From e0dff3c6609d244e17f25ba022538384429450e9 Mon Sep 17 00:00:00 2001 From: yanzexuan Date: Sun, 5 Mar 2023 16:09:36 +0800 Subject: [PATCH] Update gemini-viewer and fixed a bug of markups --- README.md | 4 +- public/demo/dxf_5.html | 74 + public/demo/libs/gemini-viewer.esm.min.js | 10906 +++++++++++++++++++- 3 files changed, 10980 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ddaa18a..411876c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # gemini-viewer-examples Examples and demos for gemini-viewer sdk. -[Online examples](https://pattern-x.github.io/gemini-viewer-examples/) -[Online demos](https://pattern-x.github.io/gemini-viewer-examples/#/demo/) +- [Online examples](https://pattern-x.github.io/gemini-viewer-examples/) +- [Online demos](https://pattern-x.github.io/gemini-viewer-examples/#/demo/) # Set up the example project npm install diff --git a/public/demo/dxf_5.html b/public/demo/dxf_5.html index 58c2e25..7f81817 100644 --- a/public/demo/dxf_5.html +++ b/public/demo/dxf_5.html @@ -28,10 +28,39 @@ height: 30px; cursor: pointer; padding: 2px; + border: 1px solid cornflowerblue; + } + .markup-toolbar-btn:hover { + border: 1px solid peru; } .btn-active { background-color: cornflowerblue; } + .markup-manager { + width: 400px; + height: 400px; + right: 20px; + top: 60px; + position: absolute; + background: white; + } + .markup-manager-text { + width: 398px; + height: calc(100% - 40px); + font-size: 10px; + background-color: #eeeeee; + position: absolute; + margin: 1px; + } + .markup-manager-bottom { + position: absolute; + width: 100%; + bottom: 3px; + margin-left: 5px; + } + .hide { + display: none; + } @@ -44,6 +73,14 @@ + + +
+ +
+ + +
diff --git a/public/demo/libs/gemini-viewer.esm.min.js b/public/demo/libs/gemini-viewer.esm.min.js index df59eaf..849ce23 100644 --- a/public/demo/libs/gemini-viewer.esm.min.js +++ b/public/demo/libs/gemini-viewer.esm.min.js @@ -1,7 +1,10909 @@ /** - * @pattern-x/gemini-viewer-threejs v0.2.19 build Tue Feb 07 2023 + * @pattern-x/gemini-viewer-threejs v0.2.23 build Sun Mar 05 2023 * https://pattern-x.github.io/gemini-viewer-examples/ * Copyright 2023 gemini * @license UNLICENSED */ -var nz=f,__create=Object[nz(419)],__defProp=Object[nz(420)],__defProps=Object[nz(421)],__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropNames=Object[nz(422)],__getOwnPropSymbols=Object[nz(423)],__getProtoOf=Object[nz(424)],__hasOwnProp=Object[nz(425)].hasOwnProperty,__propIsEnum=Object[nz(425)][nz(426)],__reflectGet=Reflect[nz(427)],__pow=Math[nz(428)],__defNormalProp=(t,e,n)=>e in t?__defProp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__spreadValues=(t,e)=>{var n=nz;for(var r in e||(e={}))__hasOwnProp[n(429)](e,r)&&__defNormalProp(t,r,e[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(e))__propIsEnum[n(429)](e,r)&&__defNormalProp(t,r,e[r]);return t},__spreadProps=(t,e)=>__defProps(t,__getOwnPropDescs(e)),__require=(t=>typeof require!==nz(430)?require:"undefined"!=typeof Proxy?new Proxy(t,{get:(t,e)=>(typeof require!==nz(430)?require:t)[e]}):t)((function(t){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')})),__esm=(t,e)=>function(){return t&&(e=(0,t[__getOwnPropNames(t)[0]])(t=0)),e},__commonJS=(t,e)=>function(){var n=nz;return e||(0,t[__getOwnPropNames(t)[0]])((e={exports:{}})[n(431)],e),e[n(431)]},__export=(t,e)=>{for(var n in e)__defProp(t,n,{get:e[n],enumerable:!0})},__copyProps=(t,e,n,r)=>{var i=nz;if(e&&"object"==typeof e||typeof e===i(432))for(let s of __getOwnPropNames(e))__hasOwnProp[i(429)](t,s)||s===n||__defProp(t,s,{get:()=>e[s],enumerable:!(r=__getOwnPropDesc(e,s))||r[i(433)]});return t},__toESM=(t,e,n)=>(n=null!=t?__create(__getProtoOf(t)):{},__copyProps(!e&&t&&t[nz(434)]?n:__defProp(n,nz(435),{value:t,enumerable:!0}),t)),__toCommonJS=t=>__copyProps(__defProp({},nz(434),{value:!0}),t),__superGet=(t,e,n)=>__reflectGet(__getProtoOf(t),n,e),__async=(t,e,n)=>new Promise(((r,i)=>{var s=f,a=t=>{var e=f;try{c(n[e(436)](t))}catch(t){i(t)}},o=t=>{var e=f;try{c(n[e(437)](t))}catch(t){i(t)}},c=t=>t[s(438)]?r(t[s(439)]):Promise[s(440)](t[s(439)]).then(a,o);c((n=n[s(441)](t,e))[s(436)]())})),factory_exports={};function _typeof(t){var e=nz;return(_typeof=typeof Symbol===e(432)&&typeof Symbol.iterator===e(442)?function(t){return typeof t}:function(t){var n=e;return t&&"function"==typeof Symbol&&t[n(443)]===Symbol&&t!==Symbol[n(425)]?"symbol":typeof t})(t)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(nz(444))}function _defineProperties(t,e){for(var n=nz,r=0;r1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,a),this[r(450)]=s(n),this._select=e(this[r(450)]),this[r(451)]=getType(i[r(452)]),this._nf=new t("en",i)}return _createClass(a,[{key:r(453),value:function(){var t=r,e=this[t(454)][t(453)](),i=e.minimumIntegerDigits,s=e[t(455)],a=e[t(456)],o=e.minimumSignificantDigits,c=e[t(457)],l={locale:this[t(450)],minimumIntegerDigits:i,minimumFractionDigits:s,maximumFractionDigits:a,pluralCategories:n(this[t(450)],"ordinal"===this._type),type:this._type};return typeof o===t(458)&&(l[t(459)]=o,l[t(457)]=c),l}},{key:r(460),value:function(t){var e=r;if(!(this instanceof a))throw new TypeError("select() called on incompatible ".concat(this));if(typeof t!==e(458)&&(t=Number(t)),!isFinite(t))return"other";var n=this[e(454)][e(461)](Math.abs(t));return this._select(n,this[e(451)]===e(462))}}],[{key:r(463),value:function(t){var e=r;return canonicalizeLocaleList(t)[e(464)](i)}}]),a}();return Object[r(420)](a,r(425),{writable:!1}),a}__export(factory_exports,{default:()=>getPluralRules});var isStructurallyValidLanguageTag,canonicalizeLocaleList,defaultLocale,getType,init_factory=__esm({"node_modules/.pnpm/intl-pluralrules@1.3.1/node_modules/intl-pluralrules/factory.mjs"(){isStructurallyValidLanguageTag=function(t){var e=f;return t[e(465)]("-")[e(466)]((function(t){return/[a-z0-9]+/i[e(467)](t)}))},canonicalizeLocaleList=function(t){var e=f;if(!t)return[];Array[e(468)](t)||(t=[t]);for(var n={},r=0;r="0"&&a<="9"&&++i}return ithis[n(488)]?e[n(489)](this[n(488)]):r}return this._minFD>0?e[n(490)](this[n(485)]):0===this._maxFD?e[n(490)](0):String(e)}}]),e}();e[n(431)]=i}}),require_plural_rules=__commonJS({"node_modules/.pnpm/intl-pluralrules@1.3.1/node_modules/intl-pluralrules/plural-rules.js"(t,e){"use strict";var n=nz,r=(init_factory(),__toCommonJS(factory_exports)),i=require_pseudo_number_format();function s(t){return t&&typeof t===f(469)&&"default"in t?t:{default:t}}var a=s(r),o=s(i);function c(t){var e=f;return(c="function"==typeof Symbol&&typeof Symbol[e(491)]===e(442)?function(t){return typeof t}:function(t){var n=e;return t&&typeof Symbol===n(432)&&t.constructor===Symbol&&t!==Symbol[n(425)]?n(442):typeof t})(t)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function l(t){var e=f;return t&&t[e(434)]&&Object[e(425)][e(492)].call(t,e(435))?t.default:t}var h,u,d,p,m,v,_,g,y,E={exports:{}};h=E,_=function(t,e){var n=f,r=!String(t)[n(465)](".")[1];return e?"other":1==t&&r?"one":"other"},y=function(t,e){var n=f;return e?n(493):1==t?n(494):2==t?"two":n(493)},u={_in:g=function(t,e){return f(493)},af:p=function(t,e){var n=f;return e?n(493):1==t?"one":n(493)},ak:m=function(t,e){var n=f;return n(e?493:0==t||1==t?494:493)},am:v=function(t,e){var n=f;return n(e?493:t>=0&&t<=1?494:493)},an:p,ar:function(t,e){var n=f,r=String(t).split("."),i=Number(r[0])==t&&r[0].slice(-2);return e?n(493):0==t?n(495):1==t?n(494):2==t?"two":i>=3&&i<=10?n(496):i>=11&&i<=99?"many":n(493)},ars:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t&&r[0][n(497)](-2);return e?"other":0==t?n(495):1==t?n(494):2==t?n(498):i>=3&&i<=10?n(496):i>=11&&i<=99?"many":n(493)},as:function(t,e){var n=f;return e?1==t||5==t||7==t||8==t||9==t||10==t?"one":2==t||3==t?"two":4==t?n(496):6==t?"many":n(493):t>=0&&t<=1?"one":n(493)},asa:p,ast:_,az:function(t,e){var n=f,r=String(t).split(".")[0],i=r[n(497)](-1),s=r.slice(-2),a=r[n(497)](-3);return e?1==i||2==i||5==i||7==i||8==i||20==s||50==s||70==s||80==s?n(494):3==i||4==i||100==a||200==a||300==a||400==a||500==a||600==a||700==a||800==a||900==a?n(496):0==r||6==i||40==s||60==s||90==s?"many":n(493):n(1==t?494:493)},be:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t,s=i&&r[0][n(497)](-1),a=i&&r[0][n(497)](-2);return n(e?2!=s&&3!=s||12==a||13==a?493:496:1==s&&11!=a?494:s>=2&&s<=4&&(a<12||a>14)?496:i&&0==s||s>=5&&s<=9||a>=11&&a<=14?499:493)},bem:p,bez:p,bg:p,bho:m,bm:g,bn:function(t,e){var n=f;return e?1==t||5==t||7==t||8==t||9==t||10==t?"one":2==t||3==t?n(498):4==t?n(496):6==t?n(499):"other":t>=0&&t<=1?"one":n(493)},bo:g,br:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t,s=i&&r[0][n(497)](-1),a=i&&r[0][n(497)](-2),o=i&&r[0][n(497)](-6);return e?n(493):1==s&&11!=a&&71!=a&&91!=a?n(494):2==s&&12!=a&&72!=a&&92!=a?n(498):(3==s||4==s||9==s)&&(a<10||a>19)&&(a<70||a>79)&&(a<90||a>99)?"few":0!=t&&i&&0==o?"many":n(493)},brx:p,bs:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=i[n(497)](-2),l=s[n(497)](-1),h=s.slice(-2);return e?"other":a&&1==o&&11!=c||1==l&&11!=h?n(494):a&&o>=2&&o<=4&&(c<12||c>14)||l>=2&&l<=4&&(h<12||h>14)?"few":n(493)},ca:function(t,e){var n=f,r=!String(t)[n(465)](".")[1];return e?1==t||3==t?n(494):2==t?n(498):4==t?n(496):"other":n(1==t&&r?494:493)},ce:p,ceb:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=s[n(497)](-1);return e?"other":n(a&&(1==i||2==i||3==i)||a&&4!=o&&6!=o&&9!=o||!a&&4!=c&&6!=c&&9!=c?494:493)},cgg:p,chr:p,ckb:p,cs:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=!r[1];return e?n(493):1==t&&s?"one":n(i>=2&&i<=4&&s?496:s?493:499)},cy:function(t,e){var n=f;return e?0==t||7==t||8==t||9==t?n(495):1==t?"one":2==t?"two":3==t||4==t?"few":n(5==t||6==t?499:493):0==t?n(495):1==t?n(494):2==t?n(498):3==t?"few":n(6==t?499:493)},da:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=Number(r[0])==t;return e?n(493):1!=t&&(s||0!=i&&1!=i)?"other":n(494)},de:_,doi:v,dsb:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-2),c=s[n(497)](-2);return n(e?493:a&&1==o||1==c?494:a&&2==o||2==c?498:a&&(3==o||4==o)||3==c||4==c?496:493)},dv:p,dz:g,ee:p,el:p,en:function(t,e){var n=f,r=String(t)[n(465)]("."),i=!r[1],s=Number(r[0])==t,a=s&&r[0][n(497)](-1),o=s&&r[0][n(497)](-2);return e?1==a&&11!=o?n(494):2==a&&12!=o?n(498):3==a&&13!=o?n(496):"other":1==t&&i?"one":n(493)},eo:p,es:p,et:_,eu:p,fa:v,ff:function(t,e){var n=f;return e?"other":n(t>=0&&t<2?494:493)},fi:_,fil:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i.slice(-1),c=s[n(497)](-1);return e?1==t?"one":n(493):n(a&&(1==i||2==i||3==i)||a&&4!=o&&6!=o&&9!=o||!a&&4!=c&&6!=c&&9!=c?494:493)},fo:p,fr:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=i[n(497)](-6);return e?1==t?"one":n(493):n(t>=0&&t<2?494:0!=i&&0==a&&s?499:493)},fur:p,fy:_,ga:function(t,e){var n=f,r=String(t).split("."),i=Number(r[0])==t;return e?n(1==t?494:493):1==t?"one":2==t?n(498):i&&t>=3&&t<=6?"few":n(i&&t>=7&&t<=10?499:493)},gd:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t;return e?1==t||11==t?"one":2==t||12==t?n(498):3==t||13==t?n(496):"other":1==t||11==t?n(494):2==t||12==t?"two":n(i&&t>=3&&t<=10||i&&t>=13&&t<=19?496:493)},gl:_,gsw:p,gu:function(t,e){var n=f;return e?n(1==t?494:2==t||3==t?498:4==t?496:6==t?499:493):t>=0&&t<=1?"one":n(493)},guw:m,gv:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=i[n(497)](-1),o=i[n(497)](-2);return e?n(493):s&&1==a?n(494):s&&2==a?n(498):!s||0!=o&&20!=o&&40!=o&&60!=o&&80!=o?n(s?493:499):"few"},ha:p,haw:p,he:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=Number(r[0])==t,o=a&&r[0][n(497)](-1);return e?n(493):1==t&&s?n(494):2==i&&s?"two":n(s&&(t<0||t>10)&&a&&0==o?499:493)},hi:function(t,e){var n=f;return e?1==t?"one":n(2==t||3==t?498:4==t?496:6==t?499:493):n(t>=0&&t<=1?494:493)},hr:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=i[n(497)](-2),l=s.slice(-1),h=s[n(497)](-2);return e?n(493):a&&1==o&&11!=c||1==l&&11!=h?"one":n(a&&o>=2&&o<=4&&(c<12||c>14)||l>=2&&l<=4&&(h<12||h>14)?496:493)},hsb:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-2),c=s[n(497)](-2);return e?"other":n(a&&1==o||1==c?494:a&&2==o||2==c?498:a&&(3==o||4==o)||3==c||4==c?496:493)},hu:function(t,e){var n=f;return e?1==t||5==t?"one":n(493):1==t?n(494):"other"},hy:function(t,e){var n=f;return e?n(1==t?494:493):t>=0&&t<2?"one":n(493)},ia:_,id:g,ig:g,ii:g,io:_,is:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=Number(r[0])==t,a=i[n(497)](-1),o=i[n(497)](-2);return e?n(493):s&&1==a&&11!=o||!s?"one":n(493)},it:function(t,e){var n=f,r=!String(t)[n(465)](".")[1];return e?n(11==t||8==t||80==t||800==t?499:493):1==t&&r?"one":"other"},iu:y,iw:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=!r[1],a=Number(r[0])==t,o=a&&r[0][n(497)](-1);return e?"other":n(1==t&&s?494:2==i&&s?498:s&&(t<0||t>10)&&a&&0==o?499:493)},ja:g,jbo:g,jgo:p,ji:_,jmc:p,jv:g,jw:g,ka:function(t,e){var n=f,r=String(t).split(".")[0],i=r[n(497)](-2);return e?1==r?n(494):0==r||i>=2&&i<=20||40==i||60==i||80==i?n(499):"other":n(1==t?494:493)},kab:function(t,e){var n=f;return n(e?493:t>=0&&t<2?494:493)},kaj:p,kcg:p,kde:g,kea:g,kk:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t,s=i&&r[0][n(497)](-1);return e?6==s||9==s||i&&0==s&&0!=t?"many":"other":n(1==t?494:493)},kkj:p,kl:p,km:g,kn:v,ko:g,ks:p,ksb:p,ksh:function(t,e){var n=f;return n(e?493:0==t?495:1==t?494:493)},ku:p,kw:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t,s=i&&r[0][n(497)](-2),a=i&&r[0][n(497)](-3),o=i&&r[0].slice(-5),c=i&&r[0].slice(-6);return e?i&&t>=1&&t<=4||s>=1&&s<=4||s>=21&&s<=24||s>=41&&s<=44||s>=61&&s<=64||s>=81&&s<=84?n(494):5==t||5==s?n(499):"other":0==t?n(495):1==t?"one":n(2==s||22==s||42==s||62==s||82==s||i&&0==a&&(o>=1e3&&o<=2e4||4e4==o||6e4==o||8e4==o)||0!=t&&1e5==c?498:3==s||23==s||43==s||63==s||83==s?496:1==t||1!=s&&21!=s&&41!=s&&61!=s&&81!=s?493:499)},ky:p,lag:function(t,e){var n=f,r=String(t)[n(465)](".")[0];return e?n(493):0==t?n(495):0!=r&&1!=r||0==t?"other":n(494)},lb:p,lg:p,lij:function(t,e){var n=f,r=String(t)[n(465)]("."),i=!r[1],s=Number(r[0])==t;return e?n(11==t||8==t||s&&t>=80&&t<=89||s&&t>=800&&t<=899?499:493):1==t&&i?"one":n(493)},lkt:g,ln:m,lo:function(t,e){var n=f;return n(e&&1==t?494:493)},lt:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[1]||"",s=Number(r[0])==t,a=s&&r[0][n(497)](-1),o=s&&r[0][n(497)](-2);return e?n(493):1==a&&(o<11||o>19)?"one":n(a>=2&&a<=9&&(o<11||o>19)?496:0!=i?499:493)},lv:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[1]||"",s=i[n(449)],a=Number(r[0])==t,o=a&&r[0][n(497)](-1),c=a&&r[0][n(497)](-2),l=i[n(497)](-2),h=i[n(497)](-1);return n(e?493:a&&0==o||c>=11&&c<=19||2==s&&l>=11&&l<=19?495:1==o&&11!=c||2==s&&1==h&&11!=l||2!=s&&1==h?494:493)},mas:p,mg:m,mgo:p,mk:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=i[n(497)](-2),l=s[n(497)](-1),h=s[n(497)](-2);return n(e?1==o&&11!=c?494:2==o&&12!=c?498:7!=o&&8!=o||17==c||18==c?493:499:a&&1==o&&11!=c||1==l&&11!=h?494:493)},ml:p,mn:p,mo:function(t,e){var n=f,r=String(t)[n(465)]("."),i=!r[1],s=Number(r[0])==t&&r[0].slice(-2);return e?1==t?n(494):"other":n(1==t&&i?494:!i||0==t||s>=2&&s<=19?496:493)},mr:function(t,e){var n=f;return e?1==t?"one":n(2==t||3==t?498:4==t?496:493):1==t?"one":n(493)},ms:function(t,e){var n=f;return e?n(1==t?494:493):"other"},mt:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t&&r[0][n(497)](-2);return n(e?493:1==t?494:0==t||i>=2&&i<=10?496:i>=11&&i<=19?499:493)},my:g,nah:p,naq:y,nb:p,nd:p,ne:function(t,e){var n=f,r=String(t).split("."),i=Number(r[0])==t;return e?n(i&&t>=1&&t<=4?494:493):1==t?n(494):"other"},nl:_,nn:p,nnh:p,no:p,nqo:g,nr:p,nso:m,ny:p,nyn:p,om:p,or:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t;return e?n(1==t||5==t||i&&t>=7&&t<=9?494:2==t||3==t?498:4==t?496:6==t?499:493):1==t?"one":n(493)},os:p,osa:g,pa:m,pap:p,pcm:v,pl:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=i.slice(-1),o=i[n(497)](-2);return n(e?493:1==t&&s?494:s&&a>=2&&a<=4&&(o<12||o>14)?496:s&&1!=i&&(0==a||1==a)||s&&a>=5&&a<=9||s&&o>=12&&o<=14?499:493)},prg:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[1]||"",s=i[n(449)],a=Number(r[0])==t,o=a&&r[0][n(497)](-1),c=a&&r[0][n(497)](-2),l=i[n(497)](-2),h=i.slice(-1);return e?n(493):a&&0==o||c>=11&&c<=19||2==s&&l>=11&&l<=19?"zero":1==o&&11!=c||2==s&&1==h&&11!=l||2!=s&&1==h?"one":"other"},ps:p,pt:function(t,e){var n=f,r=String(t)[n(465)](".")[0];return e?"other":n(0==r||1==r?494:493)},pt_PT:_,rm:p,ro:function(t,e){var n=f,r=String(t).split("."),i=!r[1],s=Number(r[0])==t&&r[0].slice(-2);return e?1==t?"one":n(493):1==t&&i?n(494):!i||0==t||s>=2&&s<=19?n(496):"other"},rof:p,root:g,ru:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=i[n(497)](-1),o=i.slice(-2);return e?n(493):s&&1==a&&11!=o?n(494):s&&a>=2&&a<=4&&(o<12||o>14)?"few":n(s&&0==a||s&&a>=5&&a<=9||s&&o>=11&&o<=14?499:493)},rwk:p,sah:g,saq:p,sat:y,sc:function(t,e){var n=f,r=!String(t)[n(465)](".")[1];return n(e?11==t||8==t||80==t||800==t?499:493:1==t&&r?494:493)},scn:function(t,e){var n=f,r=!String(t).split(".")[1];return e?n(11==t||8==t||80==t||800==t?499:493):1==t&&r?"one":n(493)},sd:p,sdh:p,se:y,seh:p,ses:g,sg:g,sh:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=i[n(497)](-2),l=s.slice(-1),h=s[n(497)](-2);return e?n(493):a&&1==o&&11!=c||1==l&&11!=h?n(494):a&&o>=2&&o<=4&&(c<12||c>14)||l>=2&&l<=4&&(h<12||h>14)?"few":n(493)},shi:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t;return e?n(493):t>=0&&t<=1?n(494):i&&t>=2&&t<=10?"few":"other"},si:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"";return n(e?493:0==t||1==t||0==i&&1==s?494:493)},sk:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1];return n(e?493:1==t&&s?494:i>=2&&i<=4&&s?496:s?493:499)},sl:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=!r[1],a=i[n(497)](-2);return n(e?493:s&&1==a?494:s&&2==a?498:s&&(3==a||4==a)||!s?496:493)},sma:y,smi:y,smj:y,smn:y,sms:y,sn:p,so:p,sq:function(t,e){var n=f,r=String(t)[n(465)]("."),i=Number(r[0])==t,s=i&&r[0][n(497)](-1),a=i&&r[0][n(497)](-2);return e?1==t?"one":n(4==s&&14!=a?499:493):n(1==t?494:493)},sr:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=i[n(497)](-2),l=s[n(497)](-1),h=s[n(497)](-2);return n(e?493:a&&1==o&&11!=c||1==l&&11!=h?494:a&&o>=2&&o<=4&&(c<12||c>14)||l>=2&&l<=4&&(h<12||h>14)?496:493)},ss:p,ssy:p,st:p,su:g,sv:function(t,e){var n=f,r=String(t)[n(465)]("."),i=!r[1],s=Number(r[0])==t,a=s&&r[0][n(497)](-1),o=s&&r[0][n(497)](-2);return n(e?1!=a&&2!=a||11==o||12==o?493:494:1==t&&i?494:493)},sw:_,syr:p,ta:p,te:p,teo:p,th:g,ti:m,tig:p,tk:function(t,e){var n=f,r=String(t).split("."),i=Number(r[0])==t&&r[0].slice(-1);return e?6==i||9==i||10==t?n(496):"other":1==t?"one":n(493)},tl:function(t,e){var n=f,r=String(t)[n(465)]("."),i=r[0],s=r[1]||"",a=!r[1],o=i[n(497)](-1),c=s[n(497)](-1);return e?1==t?n(494):"other":n(a&&(1==i||2==i||3==i)||a&&4!=o&&6!=o&&9!=o||!a&&4!=c&&6!=c&&9!=c?494:493)},tn:p,to:g,tr:p,ts:p,tzm:function(t,e){var n=f,r=String(t).split("."),i=Number(r[0])==t;return e?"other":0==t||1==t||i&&t>=11&&t<=99?"one":n(493)},ug:p,uk:function(t,e){var n=f,r=String(t).split("."),i=r[0],s=!r[1],a=Number(r[0])==t,o=a&&r[0][n(497)](-1),c=a&&r[0].slice(-2),l=i.slice(-1),h=i.slice(-2);return e?n(3==o&&13!=c?496:493):s&&1==l&&11!=h?"one":n(s&&l>=2&&l<=4&&(h<12||h>14)?496:s&&0==l||s&&l>=5&&l<=9||s&&h>=11&&h<=14?499:493)},ur:_,uz:p,ve:p,vi:function(t,e){var n=f;return e&&1==t?"one":n(493)},vo:p,vun:p,wa:m,wae:p,wo:g,xh:p,xog:p,yi:_,yo:g,yue:g,zh:g,zu:v},d=f,Object[d(420)](u,d(434),{value:!0}),h.exports=u;var T=l(E[n(431)]),I=Object[n(500)](Object.assign(Object.create(null),E[n(431)],{default:T})),z={exports:{}};!function(t,e){var r,i,s=n,a=s(495),o=s(494),c=s(498),l="few",h=s(499),u=s(493),d={cardinal:[o,u],ordinal:[u]},f={cardinal:[u],ordinal:[u]},p={cardinal:[o,l,h,u],ordinal:[u]},m={cardinal:[o,u],ordinal:[o,u]},v={cardinal:[o,c,u],ordinal:[u]};r={_in:f,af:d,ak:d,am:d,an:d,ar:{cardinal:[a,o,c,l,h,u],ordinal:[u]},ars:{cardinal:[a,o,c,l,h,u],ordinal:[u]},as:{cardinal:[o,u],ordinal:[o,c,l,h,u]},asa:d,ast:d,az:{cardinal:[o,u],ordinal:[o,l,h,u]},be:{cardinal:[o,l,h,u],ordinal:[l,u]},bem:d,bez:d,bg:d,bho:d,bm:f,bn:{cardinal:[o,u],ordinal:[o,c,l,h,u]},bo:f,br:{cardinal:[o,c,l,h,u],ordinal:[u]},brx:d,bs:{cardinal:[o,l,u],ordinal:[u]},ca:{cardinal:[o,u],ordinal:[o,c,l,u]},ce:d,ceb:d,cgg:d,chr:d,ckb:d,cs:p,cy:{cardinal:[a,o,c,l,h,u],ordinal:[a,o,c,l,h,u]},da:d,de:d,doi:d,dsb:{cardinal:[o,c,l,u],ordinal:[u]},dv:d,dz:f,ee:d,el:d,en:{cardinal:[o,u],ordinal:[o,c,l,u]},eo:d,es:d,et:d,eu:d,fa:d,ff:d,fi:d,fil:m,fo:d,fr:{cardinal:[o,h,u],ordinal:[o,u]},fur:d,fy:d,ga:{cardinal:[o,c,l,h,u],ordinal:[o,u]},gd:{cardinal:[o,c,l,u],ordinal:[o,c,l,u]},gl:d,gsw:d,gu:{cardinal:[o,u],ordinal:[o,c,l,h,u]},guw:d,gv:{cardinal:[o,c,l,h,u],ordinal:[u]},ha:d,haw:d,he:{cardinal:[o,c,h,u],ordinal:[u]},hi:{cardinal:[o,u],ordinal:[o,c,l,h,u]},hr:{cardinal:[o,l,u],ordinal:[u]},hsb:{cardinal:[o,c,l,u],ordinal:[u]},hu:m,hy:m,ia:d,id:f,ig:f,ii:f,io:d,is:d,it:{cardinal:[o,u],ordinal:[h,u]},iu:v,iw:{cardinal:[o,c,h,u],ordinal:[u]},ja:f,jbo:f,jgo:d,ji:d,jmc:d,jv:f,jw:f,ka:{cardinal:[o,u],ordinal:[o,h,u]},kab:d,kaj:d,kcg:d,kde:f,kea:f,kk:{cardinal:[o,u],ordinal:[h,u]},kkj:d,kl:d,km:f,kn:d,ko:f,ks:d,ksb:d,ksh:{cardinal:[a,o,u],ordinal:[u]},ku:d,kw:{cardinal:[a,o,c,l,h,u],ordinal:[o,h,u]},ky:d,lag:{cardinal:[a,o,u],ordinal:[u]},lb:d,lg:d,lij:{cardinal:[o,u],ordinal:[h,u]},lkt:f,ln:d,lo:{cardinal:[u],ordinal:[o,u]},lt:p,lv:{cardinal:[a,o,u],ordinal:[u]},mas:d,mg:d,mgo:d,mk:{cardinal:[o,u],ordinal:[o,c,h,u]},ml:d,mn:d,mo:{cardinal:[o,l,u],ordinal:[o,u]},mr:{cardinal:[o,u],ordinal:[o,c,l,u]},ms:{cardinal:[u],ordinal:[o,u]},mt:p,my:f,nah:d,naq:v,nb:d,nd:d,ne:m,nl:d,nn:d,nnh:d,no:d,nqo:f,nr:d,nso:d,ny:d,nyn:d,om:d,or:{cardinal:[o,u],ordinal:[o,c,l,h,u]},os:d,osa:f,pa:d,pap:d,pcm:d,pl:p,prg:{cardinal:[a,o,u],ordinal:[u]},ps:d,pt:d,pt_PT:d,rm:d,ro:{cardinal:[o,l,u],ordinal:[o,u]},rof:d,root:f,ru:p,rwk:d,sah:f,saq:d,sat:v,sc:{cardinal:[o,u],ordinal:[h,u]},scn:{cardinal:[o,u],ordinal:[h,u]},sd:d,sdh:d,se:v,seh:d,ses:f,sg:f,sh:{cardinal:[o,l,u],ordinal:[u]},shi:{cardinal:[o,l,u],ordinal:[u]},si:d,sk:p,sl:{cardinal:[o,c,l,u],ordinal:[u]},sma:v,smi:v,smj:v,smn:v,sms:v,sn:d,so:d,sq:{cardinal:[o,u],ordinal:[o,h,u]},sr:{cardinal:[o,l,u],ordinal:[u]},ss:d,ssy:d,st:d,su:f,sv:m,sw:d,syr:d,ta:d,te:d,teo:d,th:f,ti:d,tig:d,tk:{cardinal:[o,u],ordinal:[l,u]},tl:m,tn:d,to:f,tr:d,ts:d,tzm:d,ug:d,uk:{cardinal:[o,l,h,u],ordinal:[l,u]},ur:d,uz:d,ve:d,vi:{cardinal:[u],ordinal:[o,u]},vo:d,vun:d,wa:d,wae:d,wo:f,xh:d,xog:d,yi:d,yo:f,yue:f,zh:f,zu:d},i=s,Object[i(420)](r,i(434),{value:!0}),t[i(431)]=r}(z);var S=l(z[n(431)]),x=Object[n(500)](Object[n(501)](Object.create(null),z[n(431)],{default:S})),b=T||I,w=S||x,C=("undefined"==typeof Intl?n(430):c(Intl))===n(469)&&Intl[n(502)]||o[n(435)],M=function(t){var e=n;return"in"===t?e(503):t===e(504)?e(505):t},R=a[n(435)](C,(function(t){return b[M(t)]}),(function(t,e){var r=n;return w[M(t)][r(e?462:481)]}));e[n(431)]=R}}),require_polyfill=__commonJS({"node_modules/.pnpm/intl-pluralrules@1.3.1/node_modules/intl-pluralrules/polyfill.js"(t){"use strict";var e=nz,n=require_plural_rules();var r,i,s,a=(i=f,(r=n)&&typeof r===i(469)&&i(435)in r?r:{default:r});typeof Intl===e(430)?("undefined"!=typeof global?global[e(506)]={PluralRules:a[e(435)]}:typeof window!==e(430)?window.Intl={PluralRules:a.default}:t[e(506)]={PluralRules:a.default},a.default[e(507)]=!0):Intl.PluralRules?(s=["en","es","ru","zh"],Intl[e(508)].supportedLocalesOf(s)[e(449)]0&&n[0]<4?1:+(n[0]+n[1])),!r&&a&&(!(n=a[i(522)](/Edge\/(\d+)/))||n[1]>=74)&&(n=a[i(522)](/Chrome\/(\d+)/))&&(r=+n[1]),e.exports=r}}),require_symbol_constructor_detection=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/symbol-constructor-detection.js"(t,e){var n=nz,r=require_engine_v8_version(),i=require_fails();e[n(431)]=!!Object[n(423)]&&!i((function(){var t=n,e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol[t(523)]&&r&&r<41}))}}),require_use_symbol_as_uid=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/use-symbol-as-uid.js"(t,e){var n=nz,r=require_symbol_constructor_detection();e[n(431)]=r&&!Symbol[n(523)]&&typeof Symbol.iterator==n(442)}}),require_is_symbol=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/is-symbol.js"(t,e){var n=require_get_built_in(),r=require_is_callable(),i=require_object_is_prototype_of(),s=require_use_symbol_as_uid(),a=Object;e.exports=s?function(t){return typeof t==f(442)}:function(t){var e=f,s=n("Symbol");return r(s)&&i(s[e(425)],a(t))}}}),require_try_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/try-to-string.js"(t,e){var n=String;e[nz(431)]=function(t){try{return n(t)}catch(t){return"Object"}}}}),require_a_callable=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/a-callable.js"(t,e){var n=nz,r=require_is_callable(),i=require_try_to_string(),s=TypeError;e[n(431)]=function(t){var e=n;if(r(t))return t;throw s(i(t)+e(524))}}}),require_get_method=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/get-method.js"(t,e){var n=nz,r=require_a_callable(),i=require_is_null_or_undefined();e[n(431)]=function(t,e){var n=t[e];return i(n)?void 0:r(n)}}}),require_ordinary_to_primitive=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/ordinary-to-primitive.js"(t,e){var n=require_function_call(),r=require_is_callable(),i=require_is_object(),s=TypeError;e.exports=function(t,e){var a,o,c=f;if(e===c(470)&&r(a=t.toString)&&!i(o=n(a,t)))return o;if(r(a=t[c(525)])&&!i(o=n(a,t)))return o;if(e!==c(470)&&r(a=t[c(526)])&&!i(o=n(a,t)))return o;throw s(c(527))}}}),require_is_pure=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/is-pure.js"(t,e){e[nz(431)]=!1}}),require_define_global_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/define-global-property.js"(t,e){var n=require_global(),r=Object.defineProperty;e.exports=function(t,e){try{r(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}}}),require_shared_store=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/shared-store.js"(t,e){var n=nz,r=require_global(),i=require_define_global_property(),s=n(528),a=r[s]||i(s,{});e.exports=a}}),require_shared=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/shared.js"(t,e){var n=nz,r=require_is_pure(),i=require_shared_store();(e[n(431)]=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})(n(520),[]).push({version:"3.27.2",mode:r?n(529):"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:n(530),source:n(531)})}}),require_to_object=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-object.js"(t,e){var n=require_require_object_coercible(),r=Object;e.exports=function(t){return r(n(t))}}}),require_has_own_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/has-own-property.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_to_object(),s=r({}.hasOwnProperty);e[n(431)]=Object[n(532)]||function(t,e){return s(i(t),e)}}}),require_uid=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/uid.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=0,s=Math[n(533)](),a=r(1[n(526)]);e[n(431)]=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++i+s,36)}}}),require_well_known_symbol=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/well-known-symbol.js"(t,e){var n=nz,r=require_global(),i=require_shared(),s=require_has_own_property(),a=require_uid(),o=require_symbol_constructor_detection(),c=require_use_symbol_as_uid(),l=r[n(534)],h=i("wks"),u=c?l[n(535)]||l:l&&l.withoutSetter||a;e[n(431)]=function(t){var e=n;return!s(h,t)&&(h[t]=o&&s(l,t)?l[t]:u(e(536)+t)),h[t]}}}),require_to_primitive=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-primitive.js"(t,e){var n=nz,r=require_function_call(),i=require_is_object(),s=require_is_symbol(),a=require_get_method(),o=require_ordinary_to_primitive(),c=require_well_known_symbol(),l=TypeError,h=c(n(537));e[n(431)]=function(t,e){var c=n;if(!i(t)||s(t))return t;var u,d=a(t,h);if(d){if(void 0===e&&(e="default"),u=r(d,t,e),!i(u)||s(u))return u;throw l(c(527))}return void 0===e&&(e=c(458)),o(t,e)}}}),require_to_property_key=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-property-key.js"(t,e){var n=nz,r=require_to_primitive(),i=require_is_symbol();e[n(431)]=function(t){var e=r(t,n(470));return i(e)?e:e+""}}}),require_document_create_element=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/document-create-element.js"(t,e){var n=nz,r=require_global(),i=require_is_object(),s=r.document,a=i(s)&&i(s[n(538)]);e[n(431)]=function(t){return a?s.createElement(t):{}}}}),require_ie8_dom_define=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/ie8-dom-define.js"(t,e){var n=nz,r=require_descriptors(),i=require_fails(),s=require_document_create_element();e[n(431)]=!r&&!i((function(){var t=n;return 7!=Object[t(420)](s(t(539)),"a",{get:function(){return 7}}).a}))}}),require_object_get_own_property_descriptor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-get-own-property-descriptor.js"(t){var e=require_descriptors(),n=require_function_call(),r=require_object_property_is_enumerable(),i=require_create_property_descriptor(),s=require_to_indexed_object(),a=require_to_property_key(),o=require_has_own_property(),c=require_ie8_dom_define(),l=Object.getOwnPropertyDescriptor;t.f=e?l:function(t,e){if(t=s(t),e=a(e),c)try{return l(t,e)}catch(t){}if(o(t,e))return i(!n(r.f,t,e),t[e])}}}),require_v8_prototype_define_bug=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/v8-prototype-define-bug.js"(t,e){var n=require_descriptors(),r=require_fails();e.exports=n&&r((function(){var t=f;return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1})[t(425)]}))}}),require_an_object=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/an-object.js"(t,e){var n=nz,r=require_is_object(),i=String,s=TypeError;e[n(431)]=function(t){if(r(t))return t;throw s(i(t)+" is not an object")}}}),require_object_define_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-define-property.js"(t){var e=nz,n=require_descriptors(),r=require_ie8_dom_define(),i=require_v8_prototype_define_bug(),s=require_an_object(),a=require_to_property_key(),o=TypeError,c=Object[e(420)],l=Object[e(512)],h=e(433),u=e(445),d=e(446);t.f=n?i?function(t,n,r){var i=e;if(s(t),n=a(n),s(r),typeof t===i(432)&&n===i(425)&&i(439)in r&&d in r&&!r[d]){var o=l(t,n);o&&o[d]&&(t[n]=r.value,r={configurable:u in r?r[u]:o[u],enumerable:h in r?r[h]:o[h],writable:!1})}return c(t,n,r)}:c:function(t,n,i){var l=e;if(s(t),n=a(n),s(i),r)try{return c(t,n,i)}catch(t){}if("get"in i||l(540)in i)throw o(l(541));return"value"in i&&(t[n]=i[l(439)]),t}}}),require_create_non_enumerable_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/create-non-enumerable-property.js"(t,e){var n=require_descriptors(),r=require_object_define_property(),i=require_create_property_descriptor();e.exports=n?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}}}),require_function_name=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/function-name.js"(t,e){var n=nz,r=require_descriptors(),i=require_has_own_property(),s=Function.prototype,a=r&&Object[n(512)],o=i(s,"name"),c=o&&"something"===function(){}[n(542)],l=o&&(!r||r&&a(s,n(542)).configurable);e[n(431)]={EXISTS:o,PROPER:c,CONFIGURABLE:l}}}),require_inspect_source=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/inspect-source.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_is_callable(),s=require_shared_store(),a=r(Function[n(526)]);!i(s[n(543)])&&(s.inspectSource=function(t){return a(t)}),e[n(431)]=s.inspectSource}}),require_weak_map_basic_detection=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/weak-map-basic-detection.js"(t,e){var n=nz,r=require_global(),i=require_is_callable(),s=r.WeakMap;e[n(431)]=i(s)&&/native code/[n(467)](String(s))}}),require_shared_key=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/shared-key.js"(t,e){var n=nz,r=require_shared(),i=require_uid(),s=r("keys");e[n(431)]=function(t){return s[t]||(s[t]=i(t))}}}),require_hidden_keys=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/hidden-keys.js"(t,e){e[nz(431)]={}}}),require_internal_state=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/internal-state.js"(t,e){var n,r,i,s,a,o=nz,c=require_weak_map_basic_detection(),l=require_global(),h=require_is_object(),u=require_create_non_enumerable_property(),d=require_has_own_property(),f=require_shared_store(),p=require_shared_key(),m=require_hidden_keys(),v=o(544),_=l.TypeError,g=l.WeakMap;c||f[o(545)]?((s=f[o(545)]||(f[o(545)]=new g))[o(427)]=s.get,s[o(546)]=s[o(546)],s[o(540)]=s[o(540)],n=function(t,e){var n=o;if(s[n(546)](t))throw _(v);return e[n(547)]=t,s[n(540)](t,e),e},r=function(t){return s[o(427)](t)||{}},i=function(t){return s[o(546)](t)}):(m[a=p("state")]=!0,n=function(t,e){var n=o;if(d(t,a))throw _(v);return e[n(547)]=t,u(t,a,e),e},r=function(t){return d(t,a)?t[a]:{}},i=function(t){return d(t,a)}),e[o(431)]={set:n,get:r,has:i,enforce:function(t){return i(t)?r(t):n(t,{})},getterFor:function(t){return function(e){var n;if(!h(e)||(n=r(e)).type!==t)throw _("Incompatible receiver, "+t+" required");return n}}}}}),require_make_built_in=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/make-built-in.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_fails(),s=require_is_callable(),a=require_has_own_property(),o=require_descriptors(),c=require_function_name().CONFIGURABLE,l=require_inspect_source(),h=require_internal_state(),u=h[n(548)],d=h.get,f=String,p=Object.defineProperty,m=r("".slice),v=r(""[n(448)]),_=r([][n(549)]),g=o&&!i((function(){return 8!==p((function(){}),"length",{value:8}).length})),y=String(String)[n(465)](n(513)),E=e.exports=function(t,e,r){var i=n;m(f(e),0,7)===i(550)&&(e="["+v(f(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),r&&r[i(551)]&&(e=i(552)+e),r&&r[i(553)]&&(e=i(554)+e),(!a(t,"name")||c&&t[i(542)]!==e)&&(o?p(t,i(542),{value:e,configurable:!0}):t.name=e),g&&r&&a(r,i(555))&&t[i(449)]!==r[i(555)]&&p(t,i(449),{value:r[i(555)]});try{r&&a(r,i(443))&&r.constructor?o&&p(t,i(425),{writable:!1}):t.prototype&&(t[i(425)]=void 0)}catch(t){}var s=u(t);return!a(s,i(556))&&(s[i(556)]=_(y,typeof e==i(470)?e:"")),t};Function[n(425)][n(526)]=E((function(){return s(this)&&d(this).source||l(this)}),"toString")}}),require_define_built_in=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/define-built-in.js"(t,e){var n=nz,r=require_is_callable(),i=require_object_define_property(),s=require_make_built_in(),a=require_define_global_property();e[n(431)]=function(t,e,o,c){var l=n;c||(c={});var h=c.enumerable,u=void 0!==c[l(542)]?c.name:e;if(r(o)&&s(o,u,c),c[l(557)])h?t[e]=o:a(e,o);else{try{c[l(558)]?t[e]&&(h=!0):delete t[e]}catch(t){}h?t[e]=o:i.f(t,e,{value:o,enumerable:!1,configurable:!c[l(559)],writable:!c[l(560)]})}return t}}}),require_math_trunc=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-trunc.js"(t,e){var n=nz,r=Math[n(561)],i=Math[n(562)];e[n(431)]=Math.trunc||function(t){var e=+t;return(e>0?i:r)(e)}}}),require_to_integer_or_infinity=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-integer-or-infinity.js"(t,e){var n=require_math_trunc();e.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}}}),require_to_absolute_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-absolute-index.js"(t,e){var n=nz,r=require_to_integer_or_infinity(),i=Math.max,s=Math[n(563)];e[n(431)]=function(t,e){var n=r(t);return n<0?i(n+e,0):s(n,e)}}}),require_to_length=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-length.js"(t,e){var n=nz,r=require_to_integer_or_infinity(),i=Math[n(563)];e[n(431)]=function(t){return t>0?i(r(t),9007199254740991):0}}}),require_length_of_array_like=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/length-of-array-like.js"(t,e){var n=require_to_length();e.exports=function(t){return n(t[f(449)])}}}),require_array_includes=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-includes.js"(t,e){var n=nz,r=require_to_indexed_object(),i=require_to_absolute_index(),s=require_length_of_array_like(),a=function(t){return function(e,n,a){var o,c=r(e),l=s(c),h=i(a,l);if(t&&n!=n){for(;l>h;)if((o=c[h++])!=o)return!0}else for(;l>h;h++)if((t||h in c)&&c[h]===n)return t||h||0;return!t&&-1}};e[n(431)]={includes:a(!0),indexOf:a(!1)}}}),require_object_keys_internal=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-keys-internal.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_has_own_property(),s=require_to_indexed_object(),a=require_array_includes()[n(564)],o=require_hidden_keys(),c=r([][n(565)]);e[n(431)]=function(t,e){var r,l=n,h=s(t),u=0,d=[];for(r in h)!i(o,r)&&i(h,r)&&c(d,r);for(;e[l(449)]>u;)i(h,r=e[u++])&&(~a(d,r)||c(d,r));return d}}}),require_enum_bug_keys=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/enum-bug-keys.js"(t,e){var n=nz;e[n(431)]=[n(443),"hasOwnProperty",n(517),n(426),n(566),n(526),n(525)]}}),require_object_get_own_property_names=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-get-own-property-names.js"(t){var e=nz,n=require_object_keys_internal(),r=require_enum_bug_keys()[e(475)]("length",e(425));t.f=Object[e(422)]||function(t){return n(t,r)}}}),require_object_get_own_property_symbols=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-get-own-property-symbols.js"(t){var e=nz;t.f=Object[e(423)]}}),require_own_keys=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/own-keys.js"(t,e){var n=nz,r=require_get_built_in(),i=require_function_uncurry_this(),s=require_object_get_own_property_names(),a=require_object_get_own_property_symbols(),o=require_an_object(),c=i([].concat);e[n(431)]=r(n(567),n(568))||function(t){var e=s.f(o(t)),n=a.f;return n?c(e,n(t)):e}}}),require_copy_constructor_properties=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/copy-constructor-properties.js"(t,e){var n=nz,r=require_has_own_property(),i=require_own_keys(),s=require_object_get_own_property_descriptor(),a=require_object_define_property();e[n(431)]=function(t,e,o){for(var c=n,l=i(e),h=a.f,u=s.f,d=0;dd;)i.f(t,c=h[d++],l[c]);return t}}}),require_html=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/html.js"(t,e){var n=nz,r=require_get_built_in();e[n(431)]=r(n(582),n(583))}}),require_object_create=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-create.js"(t,e){var n,r=nz,i=require_an_object(),s=require_object_define_properties(),a=require_enum_bug_keys(),o=require_hidden_keys(),c=require_html(),l=require_document_create_element(),h=require_shared_key(),u=r(425),d=r(584),f=h(r(585)),p=function(){},m=function(t){return"<"+d+">"+t+""},v=function(t){var e=r;t[e(586)](m("")),t[e(587)]();var n=t[e(588)][e(578)];return t=null,n},_=function(){var t=r;try{n=new ActiveXObject(t(596))}catch(t){}_=typeof document!=t(430)?document[t(597)]&&n?v(n):function(){var t,e=r,n=l("iframe"),i=e(589)+d+":";return n[e(590)].display="none",c[e(591)](n),n[e(592)]=String(i),(t=n[e(593)][e(582)])[e(594)](),t[e(586)](m(e(595))),t[e(587)](),t.F}():v(n);for(var e=a[t(449)];e--;)delete _[u][a[e]];return _()};o[f]=!0,e[r(431)]=Object[r(419)]||function(t,e){var n;return null!==t?(p[u]=i(t),n=new p,p[u]=null,n[f]=t):n=_(),void 0===e?n:s.f(n,e)}}}),require_create_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/create-property.js"(t,e){"use strict";var n=nz,r=require_to_property_key(),i=require_object_define_property(),s=require_create_property_descriptor();e[n(431)]=function(t,e,n){var a=r(e);a in t?i.f(t,a,s(0,n)):t[a]=n}}}),require_array_slice_simple=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-slice-simple.js"(t,e){var n=require_to_absolute_index(),r=require_length_of_array_like(),i=require_create_property(),s=Array,a=Math.max;e.exports=function(t,e,o){for(var c=f,l=r(t),h=n(e,l),u=n(void 0===o?l:o,l),d=s(a(u-h,0)),p=0;hS;S++)if((f||S in T)&&(y=I(g=T[S],S,E),t))if(e)b[S]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return S;case 2:l(b,g)}else switch(t){case 4:return!1;case 7:l(b,g)}return u?-1:i||h?h:b}};e[n(431)]={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}}}),require_es_symbol_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.constructor.js"(){"use strict";var t=nz,e=require_export(),n=require_global(),r=require_function_call(),i=require_function_uncurry_this(),s=require_is_pure(),a=require_descriptors(),o=require_symbol_constructor_detection(),c=require_fails(),l=require_has_own_property(),h=require_object_is_prototype_of(),u=require_an_object(),d=require_to_indexed_object(),f=require_to_property_key(),p=require_to_string(),m=require_create_property_descriptor(),v=require_object_create(),_=require_object_keys(),g=require_object_get_own_property_names(),y=require_object_get_own_property_names_external(),E=require_object_get_own_property_symbols(),T=require_object_get_own_property_descriptor(),I=require_object_define_property(),z=require_object_define_properties(),S=require_object_property_is_enumerable(),x=require_define_built_in(),b=require_shared(),w=require_shared_key(),C=require_hidden_keys(),M=require_uid(),R=require_well_known_symbol(),A=require_well_known_symbol_wrapped(),D=require_well_known_symbol_define(),L=require_symbol_define_to_primitive(),P=require_set_to_string_tag(),O=require_internal_state(),F=require_array_iteration()[t(604)],N=w(t(605)),U=t(534),B=t(425),k=O.set,G=O[t(606)](U),V=Object[B],j=n[t(534)],H=j&&j[B],q=n[t(607)],W=n[t(608)],Y=T.f,X=I.f,J=y.f,K=S.f,Z=i([][t(565)]),$=b(t(609)),Q=b("op-symbols"),tt=b(t(610)),et=!W||!W[B]||!W[B][t(611)],nt=a&&c((function(){return 7!=v(X({},"a",{get:function(){return X(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=Y(V,e);r&&delete V[e],X(t,e,n),r&&t!==V&&X(V,e,r)}:X,rt=function(t,e){var n=$[t]=v(H);return k(n,{type:U,tag:t,description:e}),a||(n.description=e),n},it=function(t,e,n){t===V&&it(Q,e,n),u(t);var r=f(e);return u(n),l($,r)?(n.enumerable?(l(t,N)&&t[N][r]&&(t[N][r]=!1),n=v(n,{enumerable:m(0,!1)})):(l(t,N)||X(t,N,m(1,{})),t[N][r]=!0),nt(t,r,n)):X(t,r,n)},st=function(t,e){u(t);var n=d(e),i=_(n).concat(lt(n));return F(i,(function(e){a&&!r(at,n,e)||it(t,e,n[e])})),t},at=function(t){var e=f(t),n=r(K,this,e);return!(this===V&&l($,e)&&!l(Q,e))&&(!(n||!l(this,e)||!l($,e)||l(this,N)&&this[N][e])||n)},ot=function(t,e){var n=d(t),r=f(e);if(n!==V||!l($,r)||l(Q,r)){var i=Y(n,r);return i&&l($,r)&&!(l(n,N)&&n[N][r])&&(i.enumerable=!0),i}},ct=function(t){var e=J(d(t)),n=[];return F(e,(function(t){l($,t)||l(C,t)||Z(n,t)})),n},lt=function(t){var e=t===V,n=J(e?Q:d(t)),r=[];return F(n,(function(t){l($,t)&&(!e||l(V,t))&&Z(r,$[t])})),r};!o&&(j=function(){var e=t;if(h(H,this))throw q("Symbol is not a constructor");var n=arguments[e(449)]&&void 0!==arguments[0]?p(arguments[0]):void 0,i=M(n),s=function(t){this===V&&r(s,Q,t),l(this,N)&&l(this[N],i)&&(this[N][i]=!1),nt(this,i,m(1,t))};return a&&et&&nt(V,i,{configurable:!0,set:s}),rt(i,n)},x(H=j[B],"toString",(function(){var e=t;return G(this)[e(612)]})),x(j,t(613),(function(t){return rt(M(t),t)})),S.f=at,I.f=it,z.f=st,T.f=ot,g.f=y.f=ct,E.f=lt,A.f=function(t){return rt(R(t),t)},a&&(X(H,t(614),{configurable:!0,get:function(){var e=t;return G(this)[e(614)]}}),!s&&x(V,t(426),at,{unsafe:!0}))),e({global:!0,constructor:!0,wrap:!0,forced:!o,sham:!o},{Symbol:j}),F(_(tt),(function(t){D(t)})),e({target:U,stat:!0,forced:!o},{useSetter:function(){et=!0},useSimple:function(){et=!1}}),e({target:t(578),stat:!0,forced:!o,sham:!a},{create:function(t,e){return void 0===e?v(t):st(v(t),e)},defineProperty:it,defineProperties:st,getOwnPropertyDescriptor:ot}),e({target:t(578),stat:!0,forced:!o},{getOwnPropertyNames:ct}),L(),P(j,U),C[N]=!0}}),require_symbol_registry_detection=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/symbol-registry-detection.js"(t,e){var n=nz,r=require_symbol_constructor_detection();e.exports=r&&!!Symbol.for&&!!Symbol[n(615)]}}),require_es_symbol_for=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.for.js"(){var t=nz,e=require_export(),n=require_get_built_in(),r=require_has_own_property(),i=require_to_string(),s=require_shared(),a=require_symbol_registry_detection(),o=s(t(616)),c=s(t(617));e({target:t(534),stat:!0,forced:!a},{for:function(t){var e=i(t);if(r(o,e))return o[e];var s=n("Symbol")(e);return o[e]=s,c[s]=e,s}})}}),require_es_symbol_key_for=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.key-for.js"(){var t=nz,e=require_export(),n=require_has_own_property(),r=require_is_symbol(),i=require_try_to_string(),s=require_shared(),a=require_symbol_registry_detection(),o=s(t(617));e({target:t(534),stat:!0,forced:!a},{keyFor:function(e){var s=t;if(!r(e))throw TypeError(i(e)+s(618));if(n(o,e))return o[e]}})}}),require_function_apply=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/function-apply.js"(t,e){var n=nz,r=require_function_bind_native(),i=Function[n(425)],s=i[n(441)],a=i[n(429)];e[n(431)]="object"==typeof Reflect&&Reflect.apply||(r?a[n(511)](s):function(){return a[n(441)](s,arguments)})}}),require_array_slice=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-slice.js"(t,e){var n=nz,r=require_function_uncurry_this();e[n(431)]=r([][n(497)])}}),require_es_json_stringify=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.json.stringify.js"(){var t=nz,e=require_export(),n=require_get_built_in(),r=require_function_apply(),i=require_function_call(),s=require_function_uncurry_this(),a=require_fails(),o=require_is_array(),c=require_is_callable(),l=require_is_object(),h=require_is_symbol(),u=require_array_slice(),d=require_symbol_constructor_detection(),f=n(t(619),t(472)),p=s(/./[t(601)]),m=s(""[t(620)]),v=s(""[t(621)]),_=s(""[t(448)]),g=s(1[t(526)]),y=/[\uD800-\uDFFF]/g,E=/^[\uD800-\uDBFF]$/,T=/^[\uDC00-\uDFFF]$/,I=!d||a((function(){var e=t,r=n(e(534))();return f([r])!=e(622)||"{}"!=f({a:r})||"{}"!=f(Object(r))})),z=a((function(){var e=t;return'"\\udf06\\ud834"'!==f("\udf06\ud834")||f("\udead")!==e(623)})),S=function(t,e){var n=u(arguments),s=e;if((l(e)||void 0!==t)&&!h(t))return o(e)||(e=function(t,e){if(c(s)&&(e=i(s,this,t,e)),!h(e))return e}),n[1]=e,r(f,null,n)},x=function(t,e,n){var r=m(n,e-1),i=m(n,e+1);return p(E,t)&&!p(T,i)||p(T,t)&&!p(E,r)?"\\u"+g(v(t,0),16):t};f&&e({target:t(619),stat:!0,arity:3,forced:I||z},{stringify:function(e,n,i){var s=t,a=u(arguments),o=r(I?S:f,null,a);return z&&typeof o==s(470)?_(o,y,x):o}})}}),require_es_object_get_own_property_symbols=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.get-own-property-symbols.js"(){var t=require_export(),e=require_symbol_constructor_detection(),n=require_fails(),r=require_object_get_own_property_symbols(),i=require_to_object();t({target:"Object",stat:!0,forced:!e||n((function(){r.f(1)}))},{getOwnPropertySymbols:function(t){var e=r.f;return e?e(i(t)):[]}})}}),require_es_symbol=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.js"(){require_es_symbol_constructor(),require_es_symbol_for(),require_es_symbol_key_for(),require_es_json_stringify(),require_es_object_get_own_property_symbols()}}),require_es_symbol_description=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.description.js"(){"use strict";var t,e,n,r,i,s,a,o,c=nz,l=require_export(),h=require_descriptors(),u=require_global(),d=require_function_uncurry_this(),f=require_has_own_property(),p=require_is_callable(),m=require_object_is_prototype_of(),v=require_to_string(),_=require_object_define_property().f,g=require_copy_constructor_properties(),y=u[c(534)],E=y&&y.prototype;h&&p(y)&&(!(c(614)in E)||void 0!==y()[c(614)])&&(t={},e=function(){var e=arguments[c(449)]<1||void 0===arguments[0]?void 0:v(arguments[0]),n=m(E,this)?new y(e):void 0===e?y():y(e);return""===e&&(t[n]=!0),n},g(e,y),e[c(425)]=E,E[c(443)]=e,n="Symbol(test)"==String(y(c(467))),r=d(E[c(525)]),i=d(E.toString),s=/^Symbol\((.*)\)[^)]+$/,a=d(""[c(448)]),o=d(""[c(497)]),_(E,c(614),{configurable:!0,get:function(){var e=r(this);if(f(t,e))return"";var c=i(e),l=n?o(c,7,-1):a(c,s,"$1");return""===l?void 0:l}}),l({global:!0,constructor:!0,forced:!0},{Symbol:e}))}}),require_es_symbol_async_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.async-iterator.js"(){var t=nz;require_well_known_symbol_define()(t(624))}}),require_es_symbol_has_instance=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.has-instance.js"(){require_well_known_symbol_define()("hasInstance")}}),require_es_symbol_is_concat_spreadable=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js"(){require_well_known_symbol_define()("isConcatSpreadable")}}),require_es_symbol_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.iterator.js"(){var t=nz;require_well_known_symbol_define()(t(491))}}),require_es_symbol_match=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.match.js"(){var t=nz;require_well_known_symbol_define()(t(522))}}),require_es_symbol_match_all=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.match-all.js"(){require_well_known_symbol_define()("matchAll")}}),require_es_symbol_replace=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.replace.js"(){var t=nz;require_well_known_symbol_define()(t(448))}}),require_es_symbol_search=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.search.js"(){var t=nz;require_well_known_symbol_define()(t(625))}}),require_es_symbol_species=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.species.js"(){require_well_known_symbol_define()("species")}}),require_es_symbol_split=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.split.js"(){var t=nz;require_well_known_symbol_define()(t(465))}}),require_es_symbol_to_primitive=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.to-primitive.js"(){var t=nz,e=require_well_known_symbol_define(),n=require_symbol_define_to_primitive();e(t(537)),n()}}),require_es_symbol_to_string_tag=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.to-string-tag.js"(){var t=nz,e=require_get_built_in(),n=require_well_known_symbol_define(),r=require_set_to_string_tag();n(t(575)),r(e(t(534)),t(534))}}),require_es_symbol_unscopables=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.symbol.unscopables.js"(){var t=nz;require_well_known_symbol_define()(t(626))}}),require_a_possible_prototype=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/a-possible-prototype.js"(t,e){var n=require_is_callable(),r=String,i=TypeError;e.exports=function(t){var e=f;if(typeof t==e(469)||n(t))return t;throw i(e(627)+r(t)+e(628))}}}),require_object_set_prototype_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-set-prototype-of.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_an_object(),s=require_a_possible_prototype();e[n(431)]=Object[n(629)]||(n(630)in{}?function(){var t,e=n,a=!1,o={};try{(t=r(Object[e(512)](Object[e(425)],e(630))[e(540)]))(o,[]),a=o instanceof Array}catch(t){}return function(e,n){return i(e),s(n),a?t(e,n):e.__proto__=n,e}}():void 0)}}),require_proxy_accessor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/proxy-accessor.js"(t,e){var n=nz,r=require_object_define_property().f;e[n(431)]=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}}}),require_inherit_if_required=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/inherit-if-required.js"(t,e){var n=require_is_callable(),r=require_is_object(),i=require_object_set_prototype_of();e.exports=function(t,e,s){var a,o;return i&&n(a=e[f(443)])&&a!==s&&r(o=a.prototype)&&o!==s.prototype&&i(t,o),t}}}),require_normalize_string_argument=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/normalize-string-argument.js"(t,e){var n=require_to_string();e.exports=function(t,e){return void 0===t?arguments[f(449)]<2?"":e:n(t)}}}),require_install_error_cause=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/install-error-cause.js"(t,e){var n=require_is_object(),r=require_create_non_enumerable_property();e.exports=function(t,e){var i=f;n(e)&&i(631)in e&&r(t,"cause",e[i(631)])}}}),require_error_stack_clear=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/error-stack-clear.js"(t,e){var n,r,i=nz,s=require_function_uncurry_this(),a=Error,o=s(""[i(448)]),c=(n=i(633),r=i,String(a(n)[r(632)])),l=/\n\s*at [^:]*:[^\n]*/,h=l[i(467)](c);e[i(431)]=function(t,e){var n=i;if(h&&typeof t==n(470)&&!a[n(634)])for(;e--;)t=o(t,l,"");return t}}}),require_error_stack_installable=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/error-stack-installable.js"(t,e){var n=nz,r=require_fails(),i=require_create_property_descriptor();e[n(431)]=!r((function(){var t=n,e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",i(1,7)),7!==e[t(632)])}))}}),require_error_stack_install=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/error-stack-install.js"(t,e){var n=nz,r=require_create_non_enumerable_property(),i=require_error_stack_clear(),s=require_error_stack_installable(),a=Error.captureStackTrace;e[n(431)]=function(t,e,o,c){var l=n;s&&(a?a(t,e):r(t,l(632),i(o,c)))}}}),require_wrap_error_constructor_with_cause=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/wrap-error-constructor-with-cause.js"(t,e){"use strict";var n=require_get_built_in(),r=require_has_own_property(),i=require_create_non_enumerable_property(),s=require_object_is_prototype_of(),a=require_object_set_prototype_of(),o=require_copy_constructor_properties(),c=require_proxy_accessor(),l=require_inherit_if_required(),h=require_normalize_string_argument(),u=require_install_error_cause(),d=require_error_stack_install(),p=require_descriptors(),m=require_is_pure();e.exports=function(t,e,v,_){var g=f,y=g(635),E=_?2:1,T=t.split("."),I=T[T.length-1],z=n.apply(null,T);if(z){var S=z[g(425)];if(!m&&r(S,"cause")&&delete S[g(631)],!v)return z;var x=n(g(636)),b=e((function(t,e){var n=g,r=h(_?e:t,void 0),a=_?new z(t):new z;return void 0!==r&&i(a,n(637),r),d(a,b,a[n(632)],2),this&&s(S,this)&&l(a,this,b),arguments[n(449)]>E&&u(a,arguments[E]),a}));if(b[g(425)]=S,I!==g(636)?a?a(b,x):o(b,x,{name:!0}):p&&y in z&&(c(b,z,y),c(b,z,"prepareStackTrace")),o(b,z),!m)try{S[g(542)]!==I&&i(S,g(542),I),S[g(443)]=b}catch(t){}return b}}}}),require_es_error_cause=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.error.cause.js"(){var t=nz,e=require_export(),n=require_global(),r=require_function_apply(),i=require_wrap_error_constructor_with_cause(),s=t(638),a=n[s],o=7!==Error("e",{cause:7})[t(631)],c=function(t,n){var r={};r[t]=i(t,n,o),e({global:!0,constructor:!0,arity:1,forced:o},r)},l=function(t,n){if(a&&a[t]){var r={};r[t]=i(s+"."+t,n,o),e({target:s,stat:!0,constructor:!0,arity:1,forced:o},r)}};c("Error",(function(t){return function(e){return r(t,this,arguments)}})),c(t(639),(function(t){return function(e){return r(t,this,arguments)}})),c(t(640),(function(t){return function(e){return r(t,this,arguments)}})),c("ReferenceError",(function(t){return function(e){return r(t,this,arguments)}})),c(t(641),(function(t){return function(e){return r(t,this,arguments)}})),c(t(607),(function(t){return function(e){return r(t,this,arguments)}})),c(t(642),(function(t){return function(e){return r(t,this,arguments)}})),l(t(643),(function(t){return function(e){return r(t,this,arguments)}})),l(t(644),(function(t){return function(e){return r(t,this,arguments)}})),l(t(645),(function(t){return function(e){return r(t,this,arguments)}}))}}),require_error_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/error-to-string.js"(t,e){"use strict";var n=nz,r=require_descriptors(),i=require_fails(),s=require_an_object(),a=require_object_create(),o=require_normalize_string_argument(),c=Error[n(425)][n(526)],l=i((function(){var t=n;if(r){var e=a(Object[t(420)]({},t(542),{get:function(){return this===e}}));if(c[t(429)](e)!==t(646))return!0}return c[t(429)]({message:1,name:2})!==t(647)||"Error"!==c[t(429)]({})}));e[n(431)]=l?function(){var t=n,e=s(this),r=o(e[t(542)],t(636)),i=o(e[t(637)]);return r?i?r+": "+i:r:i}:c}}),require_es_error_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.error.to-string.js"(){var t=nz,e=require_define_built_in(),n=require_error_to_string(),r=Error[t(425)];r[t(526)]!==n&&e(r,t(526),n)}}),require_correct_prototype_getter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/correct-prototype-getter.js"(t,e){var n=nz,r=require_fails();e[n(431)]=!r((function(){var t=n;function e(){}return e.prototype[t(443)]=null,Object[t(424)](new e)!==e[t(425)]}))}}),require_object_get_prototype_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-get-prototype-of.js"(t,e){var n=nz,r=require_has_own_property(),i=require_is_callable(),s=require_to_object(),a=require_shared_key(),o=require_correct_prototype_getter(),c=a(n(585)),l=Object,h=l[n(425)];e[n(431)]=o?l[n(424)]:function(t){var e=n,a=s(t);if(r(a,c))return a[c];var o=a[e(443)];return i(o)&&a instanceof o?o[e(425)]:a instanceof l?h:null}}}),require_iterators=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterators.js"(t,e){e[nz(431)]={}}}),require_is_array_iterator_method=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/is-array-iterator-method.js"(t,e){var n=nz,r=require_well_known_symbol(),i=require_iterators(),s=r(n(491)),a=Array[n(425)];e[n(431)]=function(t){return void 0!==t&&(i.Array===t||a[s]===t)}}}),require_get_iterator_method=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/get-iterator-method.js"(t,e){var n=nz,r=require_classof(),i=require_get_method(),s=require_is_null_or_undefined(),a=require_iterators(),o=require_well_known_symbol()(n(491));e[n(431)]=function(t){if(!s(t))return i(t,o)||i(t,"@@iterator")||a[r(t)]}}}),require_get_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/get-iterator.js"(t,e){var n=nz,r=require_function_call(),i=require_a_callable(),s=require_an_object(),a=require_try_to_string(),o=require_get_iterator_method(),c=TypeError;e[n(431)]=function(t,e){var l=n,h=arguments.length<2?o(t):e;if(i(h))return s(r(h,t));throw c(a(t)+l(648))}}}),require_iterator_close=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterator-close.js"(t,e){var n=nz,r=require_function_call(),i=require_an_object(),s=require_get_method();e[n(431)]=function(t,e,a){var o,c,l=n;i(t);try{if(!(o=s(t,"return"))){if("throw"===e)throw a;return a}o=r(o,t)}catch(t){c=!0,o=t}if(e===l(437))throw a;if(c)throw o;return i(o),a}}}),require_iterate=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterate.js"(t,e){var n=nz,r=require_function_bind_context(),i=require_function_call(),s=require_an_object(),a=require_try_to_string(),o=require_is_array_iterator_method(),c=require_length_of_array_like(),l=require_object_is_prototype_of(),h=require_get_iterator(),u=require_get_iterator_method(),d=require_iterator_close(),p=TypeError,m=function(t,e){var n=f;this.stopped=t,this[n(649)]=e},v=m[n(425)];e[n(431)]=function(t,e,f){var _,g,y,E,T,I,z,S=n,x=f&&f[S(650)],b=!(!f||!f[S(651)]),w=!(!f||!f[S(652)]),C=!(!f||!f[S(653)]),M=!(!f||!f[S(654)]),R=r(e,x),A=function(t){return _&&d(_,S(655),t),new m(!0,t)},D=function(t){return b?(s(t),M?R(t[0],t[1],A):R(t[0],t[1])):M?R(t,A):R(t)};if(w)_=t.iterator;else if(C)_=t;else{if(!(g=u(t)))throw p(a(t)+S(648));if(o(g)){for(y=0,E=c(t);E>y;y++)if((T=D(t[y]))&&l(v,T))return T;return new m(!1)}_=h(t,g)}for(I=w?t[S(436)]:_.next;!(z=i(I,_))[S(438)];){try{T=D(z.value)}catch(t){d(_,S(437),t)}if(typeof T==S(469)&&T&&l(v,T))return T}return new m(!1)}}}),require_es_aggregate_error_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.aggregate-error.constructor.js"(){"use strict";var t=nz,e=require_export(),n=require_object_is_prototype_of(),r=require_object_get_prototype_of(),i=require_object_set_prototype_of(),s=require_copy_constructor_properties(),a=require_object_create(),o=require_create_non_enumerable_property(),c=require_create_property_descriptor(),l=require_install_error_cause(),h=require_error_stack_install(),u=require_iterate(),d=require_normalize_string_argument(),f=require_well_known_symbol()(t(575)),p=Error,m=[][t(565)],v=function(e,s){var c,g=t,y=n(_,this);i?c=i(p(),y?r(this):_):(c=y?this:a(_),o(c,f,g(636))),void 0!==s&&o(c,"message",d(s)),h(c,v,c.stack,1),arguments[g(449)]>2&&l(c,arguments[2]);var E=[];return u(e,m,{that:E}),o(c,g(656),E),c};i?i(v,p):s(v,p,{name:!0});var _=v[t(425)]=a(p[t(425)],{constructor:c(1,v),message:c(1,""),name:c(1,t(657))});e({global:!0,constructor:!0,arity:2},{AggregateError:v})}}),require_es_aggregate_error=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.aggregate-error.js"(){require_es_aggregate_error_constructor()}}),require_es_aggregate_error_cause=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.aggregate-error.cause.js"(){var t=require_export(),e=require_get_built_in(),n=require_function_apply(),r=require_fails(),i=require_wrap_error_constructor_with_cause(),s="AggregateError",a=e(s),o=!r((function(){var t=f;return 1!==a([1])[t(656)][0]}))&&r((function(){return 7!==a([1],s,{cause:7}).cause}));t({global:!0,constructor:!0,arity:2,forced:o},{AggregateError:i(s,(function(t){return function(e,r){return n(t,this,arguments)}}),o,!0)})}}),require_add_to_unscopables=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/add-to-unscopables.js"(t,e){var n=nz,r=require_well_known_symbol(),i=require_object_create(),s=require_object_define_property().f,a=r(n(626)),o=Array.prototype;null==o[a]&&s(o,a,{configurable:!0,value:i(null)}),e.exports=function(t){o[a][t]=!0}}}),require_es_array_at=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.at.js"(){"use strict";var t=nz,e=require_export(),n=require_to_object(),r=require_length_of_array_like(),i=require_to_integer_or_infinity(),s=require_add_to_unscopables();e({target:t(600),proto:!0},{at:function(t){var e=n(this),s=r(e),a=i(t),o=a>=0?a:s+a;return o<0||o>=s?void 0:e[o]}}),s("at")}}),require_does_not_exceed_safe_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/does-not-exceed-safe-integer.js"(t,e){var n=TypeError;e[nz(431)]=function(t){if(t>9007199254740991)throw n("Maximum allowed index exceeded");return t}}}),require_array_method_has_species_support=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-method-has-species-support.js"(t,e){var n=nz,r=require_fails(),i=require_well_known_symbol(),s=require_engine_v8_version(),a=i("species");e[n(431)]=function(t){return s>=51||!r((function(){var e=f,n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[t](Boolean)[e(658)]}))}}}),require_es_array_concat=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.concat.js"(){"use strict";var t=nz,e=require_export(),n=require_fails(),r=require_is_array(),i=require_is_object(),s=require_to_object(),a=require_length_of_array_like(),o=require_does_not_exceed_safe_integer(),c=require_create_property(),l=require_array_species_create(),h=require_array_method_has_species_support(),u=require_well_known_symbol(),d=require_engine_v8_version(),f=u(t(659)),p=d>=51||!n((function(){var e=t,n=[];return n[f]=!1,n[e(475)]()[0]!==n})),m=function(t){if(!i(t))return!1;var e=t[f];return void 0!==e?!!e:r(t)};e({target:"Array",proto:!0,arity:1,forced:!p||!h("concat")},{concat:function(e){var n,r,i,h,u,d=t,f=s(this),p=l(f,0),v=0;for(n=-1,i=arguments.length;n2?arguments[2]:void 0,d=o((void 0===u?c:i(u,c))-h,c-l),f=1;for(h0;)h in n?n[l]=n[h]:a(n,l),l+=f,h+=f;return n}}}),require_es_array_copy_within=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.copy-within.js"(){var t=nz,e=require_export(),n=require_array_copy_within(),r=require_add_to_unscopables();e({target:t(600),proto:!0},{copyWithin:n}),r(t(662))}}),require_array_method_is_strict=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-method-is-strict.js"(t,e){"use strict";var n=nz,r=require_fails();e[n(431)]=function(t,e){var n=[][t];return!!n&&r((function(){n[f(429)](null,e||function(){return 1},1)}))}}}),require_es_array_every=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.every.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration()[t(466)],r=require_array_method_is_strict()(t(466));e({target:t(600),proto:!0,forced:!r},{every:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}})}}),require_array_fill=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-fill.js"(t,e){"use strict";var n=nz,r=require_to_object(),i=require_to_absolute_index(),s=require_length_of_array_like();e[n(431)]=function(t){for(var e=n,a=r(this),o=s(a),c=arguments[e(449)],l=i(c>1?arguments[1]:void 0,o),h=c>2?arguments[2]:void 0,u=void 0===h?o:i(h,o);u>l;)a[l++]=t;return a}}}),require_es_array_fill=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.fill.js"(){var t=require_export(),e=require_array_fill(),n=require_add_to_unscopables();t({target:"Array",proto:!0},{fill:e}),n("fill")}}),require_es_array_filter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.filter.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration().filter;e({target:"Array",proto:!0,forced:!require_array_method_has_species_support()(t(464))},{filter:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}})}}),require_es_array_find=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.find.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration().find,r=require_add_to_unscopables(),i="find",s=!0;i in[]&&Array(1)[i]((function(){s=!1})),e({target:t(600),proto:!0,forced:s},{find:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}}),r(i)}}),require_es_array_find_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.find-index.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration()[t(663)],r=require_add_to_unscopables(),i=t(663),s=!0;i in[]&&Array(1)[i]((function(){s=!1})),e({target:t(600),proto:!0,forced:s},{findIndex:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}}),r(i)}}),require_array_iteration_from_last=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-iteration-from-last.js"(t,e){var n=nz,r=require_function_bind_context(),i=require_indexed_object(),s=require_to_object(),a=require_length_of_array_like(),o=function(t){var e=1==t;return function(n,o,c){for(var l,h=s(n),u=i(h),d=r(o,c),f=a(u);f-- >0;)if(d(l=u[f],f,h))switch(t){case 0:return l;case 1:return f}return e?-1:void 0}};e[n(431)]={findLast:o(0),findLastIndex:o(1)}}}),require_es_array_find_last=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.find-last.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration_from_last()[t(664)],r=require_add_to_unscopables();e({target:"Array",proto:!0},{findLast:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}}),r(t(664))}}),require_es_array_find_last_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.find-last-index.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration_from_last()[t(665)],r=require_add_to_unscopables();e({target:t(600),proto:!0},{findLastIndex:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}}),r("findLastIndex")}}),require_flatten_into_array=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/flatten-into-array.js"(t,e){"use strict";var n=require_is_array(),r=require_length_of_array_like(),i=require_does_not_exceed_safe_integer(),s=require_function_bind_context(),a=function(t,e,o,c,l,h,u,d){for(var f,p,m=l,v=0,_=!!u&&s(u,d);v0&&n(f)?(p=r(f),m=a(t,e,f,p,m,h-1)-1):(i(m+1),t[m]=f),m++),v++;return m};e.exports=a}}),require_es_array_flat=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.flat.js"(){"use strict";var t=nz,e=require_export(),n=require_flatten_into_array(),r=require_to_object(),i=require_length_of_array_like(),s=require_to_integer_or_infinity(),a=require_array_species_create();e({target:t(600),proto:!0},{flat:function(){var e=t,o=arguments.length?arguments[0]:void 0,c=r(this),l=i(c),h=a(c,0);return h[e(449)]=n(h,c,c,l,0,void 0===o?1:s(o)),h}})}}),require_es_array_flat_map=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.flat-map.js"(){"use strict";var t=require_export(),e=require_flatten_into_array(),n=require_a_callable(),r=require_to_object(),i=require_length_of_array_like(),s=require_array_species_create();t({target:"Array",proto:!0},{flatMap:function(t){var a,o=f,c=r(this),l=i(c);return n(t),(a=s(c,0)).length=e(a,c,c,l,0,1,t,arguments[o(449)]>1?arguments[1]:void 0),a}})}}),require_array_for_each=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-for-each.js"(t,e){"use strict";var n=nz,r=require_array_iteration()[n(604)],i=require_array_method_is_strict()(n(604));e[n(431)]=i?[].forEach:function(t){return r(this,t,arguments[n(449)]>1?arguments[1]:void 0)}}}),require_es_array_for_each=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.for-each.js"(){"use strict";var t=nz,e=require_export(),n=require_array_for_each();e({target:t(600),proto:!0,forced:[].forEach!=n},{forEach:n})}}),require_call_with_safe_iteration_closing=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/call-with-safe-iteration-closing.js"(t,e){var n=require_an_object(),r=require_iterator_close();e.exports=function(t,e,i,s){var a=f;try{return s?e(n(i)[0],i[1]):e(i)}catch(e){r(t,a(437),e)}}}}),require_array_from=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-from.js"(t,e){"use strict";var n=nz,r=require_function_bind_context(),i=require_function_call(),s=require_to_object(),a=require_call_with_safe_iteration_closing(),o=require_is_array_iterator_method(),c=require_is_constructor(),l=require_length_of_array_like(),h=require_create_property(),u=require_get_iterator(),d=require_get_iterator_method(),f=Array;e[n(431)]=function(t){var e=n,p=s(t),m=c(this),v=arguments[e(449)],_=v>1?arguments[1]:void 0,g=void 0!==_;g&&(_=r(_,v>2?arguments[2]:void 0));var y,E,T,I,z,S,x=d(p),b=0;if(!x||this===f&&o(x))for(y=l(p),E=m?new this(y):f(y);y>b;b++)S=g?_(p[b],b):p[b],h(E,b,S);else for(z=(I=u(p,x))[e(436)],E=m?new this:[];!(T=i(z,I))[e(438)];b++)S=g?a(I,_,[T.value,b],!0):T[e(439)],h(E,b,S);return E[e(449)]=b,E}}}),require_check_correctness_of_iteration=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/check-correctness-of-iteration.js"(t,e){var n,r,i=nz,s=require_well_known_symbol()(i(491)),a=!1;try{n=0,(r={next:function(){return{done:!!n++}},return:function(){a=!0}})[s]=function(){return this},Array[i(666)](r,(function(){throw 2}))}catch(t){}e[i(431)]=function(t,e){if(!e&&!a)return!1;var n=!1;try{var r={};r[s]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n}}}),require_es_array_from=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.from.js"(){var t=nz,e=require_export(),n=require_array_from(),r=!require_check_correctness_of_iteration()((function(t){Array.from(t)}));e({target:t(600),stat:!0,forced:r},{from:n})}}),require_es_array_includes=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.includes.js"(){"use strict";var t=nz,e=require_export(),n=require_array_includes()[t(667)],r=require_fails(),i=require_add_to_unscopables();e({target:"Array",proto:!0,forced:r((function(){var e=t;return!Array(1)[e(667)]()}))},{includes:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}}),i(t(667))}}),require_es_array_index_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.index-of.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this_clause(),r=require_array_includes()[t(564)],i=require_array_method_is_strict(),s=n([][t(564)]),a=!!s&&1/s([1],1,-0)<0,o=a||!i(t(564));e({target:t(600),proto:!0,forced:o},{indexOf:function(e){var n=arguments[t(449)]>1?arguments[1]:void 0;return a?s(this,e,n)||0:r(this,e,n)}})}}),require_es_array_is_array=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.is-array.js"(){require_export()({target:"Array",stat:!0},{isArray:require_is_array()})}}),require_iterators_core=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterators-core.js"(t,e){"use strict";var n,r,i,s=nz,a=require_fails(),o=require_is_callable(),c=require_is_object(),l=require_object_create(),h=require_object_get_prototype_of(),u=require_define_built_in(),d=require_well_known_symbol(),f=require_is_pure(),p=d(s(491)),m=!1;[][s(477)]&&("next"in(i=[][s(477)]())?(r=h(h(i)))!==Object[s(425)]&&(n=r):m=!0),!c(n)||a((function(){var t={};return n[p].call(t)!==t}))?n={}:f&&(n=l(n)),!o(n[p])&&u(n,p,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:m}}}),require_iterator_create_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterator-create-constructor.js"(t,e){"use strict";var n=require_iterators_core().IteratorPrototype,r=require_object_create(),i=require_create_property_descriptor(),s=require_set_to_string_tag(),a=require_iterators(),o=function(){return this};e.exports=function(t,e,c,l){var h=f,u=e+h(668);return t[h(425)]=r(n,{next:i(+!l,c)}),s(t,u,!1,!0),a[u]=o,t}}}),require_iterator_define=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/iterator-define.js"(t,e){"use strict";var n=nz,r=require_export(),i=require_function_call(),s=require_is_pure(),a=require_function_name(),o=require_is_callable(),c=require_iterator_create_constructor(),l=require_object_get_prototype_of(),h=require_object_set_prototype_of(),u=require_set_to_string_tag(),d=require_create_non_enumerable_property(),f=require_define_built_in(),p=require_well_known_symbol(),m=require_iterators(),v=require_iterators_core(),_=a[n(669)],g=a[n(670)],y=v[n(671)],E=v[n(672)],T=p(n(491)),I=n(477),z=n(673),S=n(674),x=function(){return this};e.exports=function(t,e,a,p,v,b,w){var C=n;c(a,e,p);var M,R,A,D=function(t){if(t===v&&N)return N;if(!E&&t in O)return O[t];switch(t){case I:case z:case S:return function(){return new a(this,t)}}return function(){return new a(this)}},L=e+C(668),P=!1,O=t[C(425)],F=O[T]||O[C(675)]||v&&O[v],N=!E&&F||D(v),U=e==C(600)&&O[C(674)]||F;if(U&&(M=l(U[C(429)](new t)))!==Object[C(425)]&&M.next&&(s||l(M)===y||(h?h(M,y):!o(M[T])&&f(M,T,x)),u(M,L,!0,!0),s&&(m[L]=x)),_&&v==z&&F&&F.name!==z&&(!s&&g?d(O,C(542),z):(P=!0,N=function(){return i(F,this)})),v)if(R={values:D(z),keys:b?N:D(I),entries:D(S)},w)for(A in R)(E||P||!(A in O))&&f(O,A,R[A]);else r({target:e,proto:!0,forced:E||P},R);return(!s||w)&&O[T]!==N&&f(O,T,N,{name:v}),m[e]=N,R}}}),require_create_iter_result_object=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/create-iter-result-object.js"(t,e){e[nz(431)]=function(t,e){return{value:t,done:e}}}}),require_es_array_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.iterator.js"(t,e){"use strict";var n=nz,r=require_to_indexed_object(),i=require_add_to_unscopables(),s=require_iterators(),a=require_internal_state(),o=require_object_define_property().f,c=require_iterator_define(),l=require_create_iter_result_object(),h=require_is_pure(),u=require_descriptors(),d=n(676),f=a.set,p=a[n(606)](d);e[n(431)]=c(Array,n(600),(function(t,e){f(this,{type:d,target:r(t),index:0,kind:e})}),(function(){var t=n,e=p(this),r=e[t(573)],i=e.kind,s=e[t(677)]++;return!r||s>=r[t(449)]?(e[t(573)]=void 0,l(void 0,!0)):"keys"==i?l(s,!1):i==t(673)?l(r[s],!1):l([s,r[s]],!1)}),n(673));var m=s[n(580)]=s[n(600)];if(i("keys"),i(n(673)),i(n(674)),!h&&u&&m.name!==n(673))try{o(m,n(542),{value:n(673)})}catch(t){}}}),require_es_array_join=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.join.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_indexed_object(),i=require_to_indexed_object(),s=require_array_method_is_strict(),a=n([][t(549)]),o=r!=Object||!s(t(549),",");e({target:t(600),proto:!0,forced:o},{join:function(t){return a(i(this),void 0===t?",":t)}})}}),require_array_last_index_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-last-index-of.js"(t,e){"use strict";var n=nz,r=require_function_apply(),i=require_to_indexed_object(),s=require_to_integer_or_infinity(),a=require_length_of_array_like(),o=require_array_method_is_strict(),c=Math[n(563)],l=[][n(678)],h=!!l&&1/[1][n(678)](1,-0)<0,u=o(n(678)),d=h||!u;e[n(431)]=d?function(t){if(h)return r(l,this,arguments)||0;var e=i(this),n=a(e),o=n-1;for(arguments.length>1&&(o=c(o,s(arguments[1]))),o<0&&(o=n+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:l}}),require_es_array_last_index_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.last-index-of.js"(){var t=nz,e=require_export(),n=require_array_last_index_of();e({target:"Array",proto:!0,forced:n!==[][t(678)]},{lastIndexOf:n})}}),require_es_array_map=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.map.js"(){"use strict";var t=nz,e=require_export(),n=require_array_iteration()[t(679)],r=require_array_method_has_species_support()(t(679));e({target:t(600),proto:!0,forced:!r},{map:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}})}}),require_es_array_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.of.js"(){"use strict";var t=nz,e=require_export(),n=require_fails(),r=require_is_constructor(),i=require_create_property(),s=Array,a=n((function(){var t=f;function e(){}return!(s.of[t(429)](e)instanceof e)}));e({target:t(600),stat:!0,forced:a},{of:function(){for(var e=0,n=arguments[t(449)],a=new(r(this)?this:s)(n);n>e;)i(a,e,arguments[e++]);return a.length=n,a}})}}),require_array_set_length=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-set-length.js"(t,e){"use strict";var n=nz,r=require_descriptors(),i=require_is_array(),s=TypeError,a=Object.getOwnPropertyDescriptor,o=r&&!function(){var t=f;if(void 0!==this)return!0;try{Object.defineProperty([],t(449),{writable:!1})[t(449)]=1}catch(t){return t instanceof TypeError}}();e[n(431)]=o?function(t,e){var r=n;if(i(t)&&!a(t,r(449))[r(446)])throw s(r(680));return t.length=e}:function(t,e){return t[n(449)]=e}}}),require_es_array_push=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.push.js"(){"use strict";var t=require_export(),e=require_to_object(),n=require_length_of_array_like(),r=require_array_set_length(),i=require_does_not_exceed_safe_integer();t({target:"Array",proto:!0,arity:1,forced:require_fails()((function(){var t=f;return 4294967297!==[][t(565)][t(429)]({length:4294967296},1)}))||!function(){var t=f;try{Object.defineProperty([],t(449),{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var s=f,a=e(this),o=n(a),c=arguments[s(449)];i(o+c);for(var l=0;l=0:p>m;m+=v)m in d&&(l=o(l,d[m],m,u));return l}};e.exports={left:o(!1),right:o(!0)}}}),require_engine_is_node=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/engine-is-node.js"(t,e){var n=nz,r=require_classof_raw();e[n(431)]=typeof process!=n(430)&&r(process)==n(682)}}),require_es_array_reduce=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.reduce.js"(){"use strict";var t=nz,e=require_export(),n=require_array_reduce()[t(683)],r=require_array_method_is_strict(),i=require_engine_v8_version(),s=!require_engine_is_node()&&i>79&&i<83||!r(t(684));e({target:t(600),proto:!0,forced:s},{reduce:function(t){var e=arguments.length;return n(this,t,e,e>1?arguments[1]:void 0)}})}}),require_es_array_reduce_right=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.reduce-right.js"(){"use strict";var t=nz,e=require_export(),n=require_array_reduce().right,r=require_array_method_is_strict(),i=require_engine_v8_version();e({target:"Array",proto:!0,forced:!require_engine_is_node()&&i>79&&i<83||!r(t(685))},{reduceRight:function(e){var r=t;return n(this,e,arguments[r(449)],arguments[r(449)]>1?arguments[1]:void 0)}})}}),require_es_array_reverse=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.reverse.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_is_array(),i=n([][t(686)]),s=[1,2];e({target:t(600),proto:!0,forced:String(s)===String(s[t(686)]())},{reverse:function(){var e=t;return r(this)&&(this[e(449)]=this[e(449)]),i(this)}})}}),require_es_array_slice=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array.slice.js"(){"use strict";var t=nz,e=require_export(),n=require_is_array(),r=require_is_constructor(),i=require_is_object(),s=require_to_absolute_index(),a=require_length_of_array_like(),o=require_to_indexed_object(),c=require_create_property(),l=require_well_known_symbol(),h=require_array_method_has_species_support(),u=require_array_slice(),d=h(t(497)),f=l(t(687)),p=Array,m=Math.max;e({target:t(600),proto:!0,forced:!d},{slice:function(e,l){var h,d,v,_=t,g=o(this),y=a(g),E=s(e,y),T=s(void 0===l?y:l,y);if(n(g)&&(h=g[_(443)],(r(h)&&(h===p||n(h[_(425)]))||i(h)&&null===(h=h[f]))&&(h=void 0),h===p||void 0===h))return u(g,E,T);for(d=new(void 0===h?p:h)(m(T-E,0)),v=0;E1?arguments[1]:void 0)}})}}),require_array_sort=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-sort.js"(t,e){var n=nz,r=require_array_slice_simple(),i=Math[n(562)],s=function(t,e){var c=t[n(449)],l=i(c/2);return c<8?a(t,e):o(t,s(r(t,0,l),e),s(r(t,l),e),e)},a=function(t,e){for(var r,i,s=t[n(449)],a=1;a0;)t[i]=t[--i];i!==a++&&(t[i]=r)}return t},o=function(t,e,n,r){for(var i=e.length,s=n.length,a=0,o=0;a3)){if(d)return!0;if(p)return p<603;var n,r,i,s,a="";for(n=65;n<76;n++){switch(r=String[e(689)](n),n){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(s=0;s<47;s++)m[e(565)]({k:r+s,v:i})}for(m[e(688)]((function(t,e){return e.v-t.v})),s=0;so(n)?1:-1}}(t)),n=s(h),c=0;cI-m+p;_--)h(T,_-1)}else if(p>m)for(_=I-m;_>z;_--)y=_+p-1,(g=_+m-1)in T?T[y]=T[g]:h(T,y);for(_=0;_>1,v=23===e?s(2,-24)-s(2,-77):0,_=t<0||0===t&&1/t<0?1:0,g=0;for((t=i(t))!=t||t===1/0?(h=t!=t?1:0,l=p):(l=a(o(t)/c),t*(u=s(2,-l))<1&&(l--,u*=2),(t+=l+m>=1?v/u:v*s(2,1-m))*u>=2&&(l++,u/=2),l+m>=p?(h=0,l=p):l+m>=1?(h=(t*u-1)*s(2,e),l+=m):(h=t*s(2,m-1)*s(2,e),l=0));e>=8;)d[g++]=255&h,h/=256,e-=8;for(l=l<0;)d[g++]=255&l,l/=256,f-=8;return d[--g]|=128*_,d},unpack:function(t,e){var r,i=t[n(449)],a=8*i-e-1,o=(1<>1,l=a-7,h=i-1,u=t[h--],d=127&u;for(u>>=7;l>0;)d=256*d+t[h--],l-=8;for(r=d&(1<<-l)-1,d>>=-l,l+=e;l>0;)r=256*r+t[h--],l-=8;if(0===d)d=1-c;else{if(d===o)return r?NaN:u?-1/0:1/0;r+=s(2,e),d-=c}return(u?-1:1)*r*s(2,d-e)}}}}),require_array_buffer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-buffer.js"(t,e){"use strict";var n,r,i,s,a,o,c=nz,l=require_global(),h=require_function_uncurry_this(),u=require_descriptors(),d=require_array_buffer_basic_detection(),f=require_function_name(),p=require_create_non_enumerable_property(),m=require_define_built_ins(),v=require_fails(),_=require_an_instance(),g=require_to_integer_or_infinity(),y=require_to_length(),E=require_to_index(),T=require_ieee754(),I=require_object_get_prototype_of(),z=require_object_set_prototype_of(),S=require_object_get_own_property_names().f,x=require_object_define_property().f,b=require_array_fill(),w=require_array_slice_simple(),C=require_set_to_string_tag(),M=require_internal_state(),R=f[c(669)],A=f.CONFIGURABLE,D=M[c(427)],L=M[c(540)],P=c(697),O=c(698),F=c(425),N=c(699),U=c(700),B=l[P],k=B,G=k&&k[F],V=l[O],j=V&&V[F],H=Object.prototype,q=l.Array,W=l[c(640)],Y=h(b),X=h([].reverse),J=T.pack,K=T[c(701)],Z=function(t){return[255&t]},$=function(t){return[255&t,t>>8&255]},Q=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},tt=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},et=function(t){return J(t,23,4)},nt=function(t){return J(t,52,8)},rt=function(t,e){x(t[F],e,{get:function(){return D(this)[e]}})},it=function(t,e,n,r){var i=c,s=E(n),a=D(t);if(s+e>a[i(702)])throw W(U);var o=D(a[i(703)]).bytes,l=s+a[i(704)],h=w(o,l,l+e);return r?h:X(h)},st=function(t,e,n,r,i,s){var a=c,o=E(n),l=D(t);if(o+e>l[a(702)])throw W(U);for(var h=D(l[a(703)])[a(705)],u=o+l[a(704)],d=r(+i),f=0;fi;)!((s=r[i++])in k)&&p(k,s,B[s]);G.constructor=k}z&&I(j)!==H&&z(j,H),a=new V(new k(2)),o=h(j[c(707)]),a[c(707)](0,2147483648),a[c(707)](1,2147483649),!a.getInt8(0)&&a.getInt8(1)||m(j,{setInt8:function(t,e){o(this,t,e<<24>>24)},setUint8:function(t,e){o(this,t,e<<24>>24)}},{unsafe:!0})}else G=(k=function(t){var e=c;_(this,G);var n=E(t);L(this,{bytes:Y(q(n),0),byteLength:n}),u||(this[e(702)]=n)})[F],j=(V=function(t,e,n){var r=c;_(this,j),_(t,G);var i=D(t)[r(702)],s=g(e);if(s<0||s>i)throw W(r(706));if(s+(n=void 0===n?i-s:y(n))>i)throw W(N);L(this,{buffer:t,byteLength:n,byteOffset:s}),!u&&(this.buffer=t,this[r(702)]=n,this[r(704)]=s)})[F],u&&(rt(k,"byteLength"),rt(V,c(703)),rt(V,c(702)),rt(V,c(704))),m(j,{getInt8:function(t){return it(this,1,t)[0]<<24>>24},getUint8:function(t){return it(this,1,t)[0]},getInt16:function(t){var e=it(this,2,t,arguments[c(449)]>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=it(this,2,t,arguments[c(449)]>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return tt(it(this,4,t,arguments[c(449)]>1?arguments[1]:void 0))},getUint32:function(t){return tt(it(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return K(it(this,4,t,arguments[c(449)]>1?arguments[1]:void 0),23)},getFloat64:function(t){return K(it(this,8,t,arguments[c(449)]>1?arguments[1]:void 0),52)},setInt8:function(t,e){st(this,1,t,Z,e)},setUint8:function(t,e){st(this,1,t,Z,e)},setInt16:function(t,e){st(this,2,t,$,e,arguments[c(449)]>2?arguments[2]:void 0)},setUint16:function(t,e){st(this,2,t,$,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){st(this,4,t,Q,e,arguments[c(449)]>2?arguments[2]:void 0)},setUint32:function(t,e){st(this,4,t,Q,e,arguments[c(449)]>2?arguments[2]:void 0)},setFloat32:function(t,e){st(this,4,t,et,e,arguments[c(449)]>2?arguments[2]:void 0)},setFloat64:function(t,e){st(this,8,t,nt,e,arguments[c(449)]>2?arguments[2]:void 0)}});C(k,P),C(V,O),e[c(431)]={ArrayBuffer:k,DataView:V}}}),require_es_array_buffer_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array-buffer.constructor.js"(){"use strict";var t=nz,e=require_export(),n=require_global(),r=require_array_buffer(),i=require_set_species(),s=t(697),a=r[s];e({global:!0,constructor:!0,forced:n[s]!==a},{ArrayBuffer:a}),i(s)}}),require_array_buffer_view_core=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-buffer-view-core.js"(t,e){"use strict";var n,r,i,s=nz,a=require_array_buffer_basic_detection(),o=require_descriptors(),c=require_global(),l=require_is_callable(),h=require_is_object(),u=require_has_own_property(),d=require_classof(),f=require_try_to_string(),p=require_create_non_enumerable_property(),m=require_define_built_in(),v=require_object_define_property().f,_=require_object_is_prototype_of(),g=require_object_get_prototype_of(),y=require_object_set_prototype_of(),E=require_well_known_symbol(),T=require_uid(),I=require_internal_state(),z=I[s(548)],S=I.get,x=c[s(708)],b=x&&x[s(425)],w=c[s(709)],C=w&&w.prototype,M=x&&g(x),R=b&&g(b),A=Object[s(425)],D=c[s(607)],L=E("toStringTag"),P=T("TYPED_ARRAY_TAG"),O=s(710),F=a&&!!y&&"Opera"!==d(c[s(711)]),N=!1,U={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},B={BigInt64Array:8,BigUint64Array:8},k=function(t){var e=g(t);if(h(e)){var n=S(e);return n&&u(n,O)?n[O]:k(e)}},G=function(t){if(!h(t))return!1;var e=d(t);return u(U,e)||u(B,e)};for(n in U)(i=(r=c[n])&&r[s(425)])?z(i)[O]=r:F=!1;for(n in B)(i=(r=c[n])&&r.prototype)&&(z(i)[O]=r);if((!F||!l(M)||M===Function[s(425)])&&(M=function(){throw D(s(692))},F))for(n in U)c[n]&&y(c[n],M);if((!F||!R||R===A)&&(R=M.prototype,F))for(n in U)c[n]&&y(c[n][s(425)],R);if(F&&g(C)!==R&&y(C,R),o&&!u(R,L))for(n in N=!0,v(R,L,{get:function(){return h(this)?this[P]:void 0}}),U)c[n]&&p(c[n],P,n);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:F,TYPED_ARRAY_TAG:N&&P,aTypedArray:function(t){var e=s;if(G(t))return t;throw D(e(712))},aTypedArrayConstructor:function(t){var e=s;if(l(t)&&(!y||_(M,t)))return t;throw D(f(t)+e(713))},exportTypedArrayMethod:function(t,e,n,r){var i=s;if(o){if(n)for(var a in U){var l=c[a];if(l&&u(l[i(425)],t))try{delete l[i(425)][t]}catch(n){try{l[i(425)][t]=e}catch(t){}}}(!R[t]||n)&&m(R,t,n?e:F&&b[t]||e,r)}},exportTypedArrayStaticMethod:function(t,e,n){var r,i;if(o){if(y){if(n)for(r in U)if((i=c[r])&&u(i,t))try{delete i[t]}catch(t){}if(M[t]&&!n)return;try{return m(M,t,n?e:F&&M[t]||e)}catch(t){}}for(r in U)(i=c[r])&&(!i[t]||n)&&m(i,t,e)}},getTypedArrayConstructor:k,isView:function(t){var e=s;if(!h(t))return!1;var n=d(t);return n===e(698)||u(U,n)||u(B,n)},isTypedArray:G,TypedArray:M,TypedArrayPrototype:R}}}),require_es_array_buffer_is_view=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array-buffer.is-view.js"(){var t=nz,e=require_export(),n=require_array_buffer_view_core(),r=n[t(714)];e({target:t(697),stat:!0,forced:!r},{isView:n.isView})}}),require_a_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/a-constructor.js"(t,e){var n=nz,r=require_is_constructor(),i=require_try_to_string(),s=TypeError;e[n(431)]=function(t){var e=n;if(r(t))return t;throw s(i(t)+e(715))}}}),require_species_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/species-constructor.js"(t,e){var n=nz,r=require_an_object(),i=require_a_constructor(),s=require_is_null_or_undefined(),a=require_well_known_symbol()(n(687));e.exports=function(t,e){var o,c=n,l=r(t)[c(443)];return void 0===l||s(o=r(l)[a])?e:i(o)}}}),require_es_array_buffer_slice=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.array-buffer.slice.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this_clause(),r=require_fails(),i=require_array_buffer(),s=require_an_object(),a=require_to_absolute_index(),o=require_to_length(),c=require_species_constructor(),l=i.ArrayBuffer,h=i[t(698)],u=h[t(425)],d=n(l.prototype[t(497)]),f=n(u[t(716)]),p=n(u[t(717)]),m=r((function(){var e=t;return!new l(2).slice(1,void 0)[e(702)]}));e({target:t(697),proto:!0,unsafe:!0,forced:m},{slice:function(e,n){var r=t;if(d&&void 0===n)return d(s(this),e);for(var i=s(this)[r(702)],u=a(e,i),m=a(void 0===n?i:n,i),v=new(c(this,l))(o(m-u)),_=new h(this),g=new h(v),y=0;u0;(l>>>=1)&&(o+=o))1&l&&(c+=o);return c}}}),require_string_pad=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-pad.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_to_length(),s=require_to_string(),a=require_string_repeat(),o=require_require_object_coercible(),c=r(a),l=r("".slice),h=Math.ceil,u=function(t){return function(e,n,r){var a,u,d=f,p=s(o(e)),m=i(n),v=p.length,_=void 0===r?" ":s(r);return m<=v||""==_?p:((u=c(_,h((a=m-v)/_[d(449)])))[d(449)]>a&&(u=l(u,0,a)),t?p+u:u+p)}};e[n(431)]={start:u(!1),end:u(!0)}}}),require_date_to_iso_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/date-to-iso-string.js"(t,e){"use strict";var n=nz,r=require_function_uncurry_this(),i=require_fails(),s=require_string_pad()[n(725)],a=RangeError,o=isFinite,c=Math[n(694)],l=Date[n(425)],h=l[n(726)],u=r(l.getTime),d=r(l[n(727)]),f=r(l.getUTCFullYear),p=r(l.getUTCHours),m=r(l[n(728)]),v=r(l[n(729)]),_=r(l[n(730)]),g=r(l[n(731)]);e[n(431)]=i((function(){var t=n;return h.call(new Date(-50000000000001))!=t(732)}))||!i((function(){h[n(429)](new Date(NaN))}))?function(){if(!o(u(this)))throw a("Invalid time value");var t=this,e=f(t),n=m(t),r=e<0?"-":e>9999?"+":"";return r+s(c(e),r?6:4,0)+"-"+s(_(t)+1,2,0)+"-"+s(d(t),2,0)+"T"+s(p(t),2,0)+":"+s(v(t),2,0)+":"+s(g(t),2,0)+"."+s(n,3,0)+"Z"}:h}}),require_es_date_to_iso_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.date.to-iso-string.js"(){var t=nz,e=require_export(),n=require_date_to_iso_string();e({target:t(720),proto:!0,forced:Date[t(425)].toISOString!==n},{toISOString:n})}}),require_es_date_to_json=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.date.to-json.js"(){"use strict";var t=nz,e=require_export(),n=require_fails(),r=require_to_object(),i=require_to_primitive(),s=n((function(){var t=f;return null!==new Date(NaN).toJSON()||1!==Date[t(425)][t(733)][t(429)]({toISOString:function(){return 1}})}));e({target:t(720),proto:!0,arity:1,forced:s},{toJSON:function(e){var n=t,s=r(this),a=i(s,n(458));return"number"!=typeof a||isFinite(a)?s[n(726)]():null}})}}),require_date_to_primitive=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/date-to-primitive.js"(t,e){"use strict";var n=nz,r=require_an_object(),i=require_ordinary_to_primitive(),s=TypeError;e[n(431)]=function(t){var e=n;if(r(this),t===e(470)||"default"===t)t=e(470);else if(t!==e(458))throw s(e(734));return i(this,t)}}}),require_es_date_to_primitive=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.date.to-primitive.js"(){var t=nz,e=require_has_own_property(),n=require_define_built_in(),r=require_date_to_primitive(),i=require_well_known_symbol()(t(537)),s=Date[t(425)];!e(s,i)&&n(s,i,r)}}),require_es_date_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.date.to-string.js"(){var t=nz,e=require_function_uncurry_this(),n=require_define_built_in(),r=Date[t(425)],i=t(735),s=t(526),a=e(r[s]),o=e(r.getTime);String(new Date(NaN))!=i&&n(r,s,(function(){var t=o(this);return t==t?a(this):i}))}}),require_es_escape=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.escape.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_string(),i=n(""[t(620)]),s=n("".charCodeAt),a=n(/./[t(601)]),o=n(1[t(526)]),c=n(""[t(736)]),l=/[\w*+\-./@]/,h=function(e,n){for(var r=t,i=o(e,16);i[r(449)]1?arguments[1]:void 0);e=e?e[n(436)]:r[n(755)];)for(i(e[n(439)],e[n(447)],this);e&&e[n(756)];)e=e[n(757)]},has:function(t){return!!I(this,t)}}),s(y,h?{get:function(t){var e=I(this,t);return e&&e.value},set:function(t,e){return T(this,0===t?0:t,e)}}:{add:function(t){return T(this,t=0===t?0:t,t)}}),p&&r(y,d(753),{get:function(){var t=d;return E(this)[t(753)]}}),v},setStrong:function(t,e,r){var i=n,s=e+i(668),a=g(e),o=g(s);h(t,e,(function(t,e){_(this,{type:s,target:t,state:a(t),kind:e,last:void 0})}),(function(){for(var t=i,e=o(this),n=e[t(758)],r=e.last;r&&r[t(756)];)r=r[t(757)];return e.target&&(e[t(754)]=r=r?r[t(436)]:e[t(545)].first)?u("keys"==n?r[t(447)]:"values"==n?r[t(439)]:[r[t(447)],r[t(439)]],!1):(e[t(573)]=void 0,u(void 0,!0))}),r?"entries":"values",!r,!0),d(e)}}}}),require_es_map_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.map.constructor.js"(){"use strict";var t=nz,e=require_collection(),n=require_collection_strong();e(t(759),(function(t){return function(){return t(this,arguments[f(449)]?arguments[0]:void 0)}}),n)}}),require_es_map=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.map.js"(){require_es_map_constructor()}}),require_math_log1p=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-log1p.js"(t,e){var n=nz,r=Math[n(695)];e.exports=Math[n(760)]||function(t){var e=+t;return e>-1e-8&&e<1e-8?e-e*e/2:r(1+e)}}}),require_es_math_acosh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.acosh.js"(){var t=nz,e=require_export(),n=require_math_log1p(),r=Math.acosh,i=Math[t(695)],s=Math[t(761)],a=Math[t(696)],o=!r||710!=Math[t(562)](r(Number[t(762)]))||r(1/0)!=1/0;e({target:t(509),stat:!0,forced:o},{acosh:function(t){var e=+t;return e<1?NaN:e>94906265.62425156?i(e)+a:n(e-1+s(e-1)*s(e+1))}})}}),require_es_math_asinh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.asinh.js"(){var t=nz,e=require_export(),n=Math[t(763)],r=Math[t(695)],i=Math[t(761)];e({target:"Math",stat:!0,forced:!(n&&1/n(0)>0)},{asinh:function t(e){var n=+e;return isFinite(n)&&0!=n?n<0?-t(-n):r(n+i(n*n+1)):n}})}}),require_es_math_atanh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.atanh.js"(){var t=nz,e=require_export(),n=Math[t(764)],r=Math[t(695)],i=!(n&&1/n(-0)<0);e({target:t(509),stat:!0,forced:i},{atanh:function(t){var e=+t;return 0==e?e:r((1+e)/(1-e))/2}})}}),require_math_sign=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-sign.js"(t,e){var n=nz;e[n(431)]=Math[n(765)]||function(t){var e=+t;return 0==e||e!=e?e:e<0?-1:1}}}),require_es_math_cbrt=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.cbrt.js"(){var t=nz,e=require_export(),n=require_math_sign(),r=Math[t(694)],i=Math[t(428)];e({target:t(509),stat:!0},{cbrt:function(t){var e=+t;return n(e)*i(r(e),1/3)}})}}),require_es_math_clz32=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.clz32.js"(){var t=nz,e=require_export(),n=Math[t(562)],r=Math[t(695)],i=Math[t(766)];e({target:t(509),stat:!0},{clz32:function(t){var e=t>>>0;return e?31-n(r(e+.5)*i):32}})}}),require_math_expm1=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-expm1.js"(t,e){var n=nz,r=Math[n(767)],i=Math[n(768)];e[n(431)]=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(t){var e=+t;return 0==e?e:e>-1e-6&&e<1e-6?e+e*e/2:i(e)-1}:r}}),require_es_math_cosh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.cosh.js"(){var t=require_export(),e=require_math_expm1(),n=Math.cosh,r=Math.abs,i=Math.E;t({target:"Math",stat:!0,forced:!n||n(710)===1/0},{cosh:function(t){var n=e(r(t)-1)+1;return(n+1/(n*i*i))*(i/2)}})}}),require_es_math_expm1=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.expm1.js"(){var t=nz,e=require_export(),n=require_math_expm1();e({target:"Math",stat:!0,forced:n!=Math[t(767)]},{expm1:n})}}),require_math_fround=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-fround.js"(t,e){var n=nz,r=require_math_sign(),i=Math[n(694)],s=Math[n(428)],a=s(2,-52),o=s(2,-23),c=s(2,127)*(2-o),l=s(2,-126);e[n(431)]=Math[n(769)]||function(t){var e,n,s=+t,h=i(s),u=r(s);return hc||n!=n?u*(1/0):u*n}}}),require_es_math_fround=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.fround.js"(){var t=nz,e=require_export(),n=require_math_fround();e({target:t(509),stat:!0},{fround:n})}}),require_es_math_hypot=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.hypot.js"(){var t=nz,e=require_export(),n=Math[t(770)],r=Math[t(694)],i=Math[t(761)],s=!!n&&n(1/0,NaN)!==1/0;e({target:t(509),stat:!0,arity:2,forced:s},{hypot:function(t,e){for(var n,s,a=0,o=0,c=arguments.length,l=0;o0?a+=(s=n/l)*s:a+=n;return l===1/0?1/0:l*i(a)}})}}),require_es_math_imul=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.imul.js"(){var t=nz,e=require_export(),n=require_fails(),r=Math.imul,i=n((function(){var t=f;return-5!=r(4294967295,5)||2!=r[t(449)]}));e({target:t(509),stat:!0,forced:i},{imul:function(t,e){var n=65535,r=+t,i=+e,s=n&r,a=n&i;return 0|s*a+((n&r>>>16)*a+s*(n&i>>>16)<<16>>>0)}})}}),require_math_log10=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/math-log10.js"(t,e){var n=nz,r=Math[n(695)],i=Math.LOG10E;e[n(431)]=Math.log10||function(t){return r(t)*i}}}),require_es_math_log10=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.log10.js"(){require_export()({target:"Math",stat:!0},{log10:require_math_log10()})}}),require_es_math_log1p=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.log1p.js"(){var t=nz,e=require_export(),n=require_math_log1p();e({target:t(509),stat:!0},{log1p:n})}}),require_es_math_log2=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.log2.js"(){var t=nz,e=require_export(),n=Math.log,r=Math.LN2;e({target:t(509),stat:!0},{log2:function(t){return n(t)/r}})}}),require_es_math_sign=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.sign.js"(){var t=nz,e=require_export(),n=require_math_sign();e({target:t(509),stat:!0},{sign:n})}}),require_es_math_sinh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.sinh.js"(){var t=nz,e=require_export(),n=require_fails(),r=require_math_expm1(),i=Math.abs,s=Math[t(768)],a=Math.E,o=n((function(){return-2e-17!=Math[t(771)](-2e-17)}));e({target:t(509),stat:!0,forced:o},{sinh:function(t){var e=+t;return i(e)<1?(r(e)-r(-e))/2:(s(e-1)-s(-e-1))*(a/2)}})}}),require_es_math_tanh=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.tanh.js"(){var t=require_export(),e=require_math_expm1(),n=Math.exp;t({target:"Math",stat:!0},{tanh:function(t){var r=+t,i=e(r),s=e(-r);return i==1/0?1:s==1/0?-1:(i-s)/(n(r)+n(-r))}})}}),require_es_math_to_string_tag=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.to-string-tag.js"(){require_set_to_string_tag()(Math,"Math",!0)}}),require_es_math_trunc=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.math.trunc.js"(){var t=nz,e=require_export(),n=require_math_trunc();e({target:t(509),stat:!0},{trunc:n})}}),require_this_number_value=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/this-number-value.js"(t,e){var n=nz,r=require_function_uncurry_this();e[n(431)]=r(1..valueOf)}}),require_whitespaces=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/whitespaces.js"(t,e){e[nz(431)]="\t\n\v\f\r                 \u2028\u2029\ufeff"}}),require_string_trim=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-trim.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_require_object_coercible(),s=require_to_string(),a=require_whitespaces(),o=r(""[n(448)]),c="["+a+"]",l=RegExp("^"+c+c+"*"),h=RegExp(c+c+"*$"),u=function(t){return function(e){var n=s(i(e));return 1&t&&(n=o(n,l,"")),2&t&&(n=o(n,h,"")),n}};e[n(431)]={start:u(1),end:u(2),trim:u(3)}}}),require_es_number_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.constructor.js"(){"use strict";var t=nz,e=require_export(),n=require_is_pure(),r=require_descriptors(),i=require_global(),s=require_path(),a=require_function_uncurry_this(),o=require_is_forced(),c=require_has_own_property(),l=require_inherit_if_required(),h=require_object_is_prototype_of(),u=require_is_symbol(),d=require_to_primitive(),f=require_fails(),p=require_object_get_own_property_names().f,m=require_object_get_own_property_descriptor().f,v=require_object_define_property().f,_=require_this_number_value(),g=require_string_trim()[t(772)],y=t(773),E=i[y],T=s[y],I=E[t(425)],z=i.TypeError,S=a("".slice),x=a(""[t(621)]),b=function(e){var n=t,r=d(e,"number");return typeof r==n(774)?r:w(r)},w=function(e){var n,r,i,s,a,o,c,l,h=t,f=d(e,h(458));if(u(f))throw z(h(775));if(typeof f==h(470)&&f.length>2)if(f=g(f),43===(n=x(f,0))||45===n){if(88===(r=x(f,2))||120===r)return NaN}else if(48===n){switch(x(f,1)){case 66:case 98:i=2,s=49;break;case 79:case 111:i=8,s=55;break;default:return+f}for(o=(a=S(f,2))[h(449)],c=0;cs)return NaN;return parseInt(a,i)}return+f},C=o(y,!E(t(776))||!E(t(777))||E(t(778))),M=function(t){return h(I,t)&&f((function(){_(t)}))},R=function(e){var n=arguments[t(449)]<1?0:E(b(e));return M(this)?l(Object(n),this,R):n};R[t(425)]=I,C&&!n&&(I.constructor=R),e({global:!0,constructor:!0,wrap:!0,forced:C},{Number:R});var A=function(e,n){for(var i,s=t,a=r?p(n):s(779)[s(465)](","),o=0;a.length>o;o++)c(n,i=a[o])&&!c(e,i)&&v(e,i,m(n,i))};n&&T&&A(s[y],T),(C||n)&&A(s[y],E)}}),require_es_number_epsilon=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.epsilon.js"(){var t=nz;require_export()({target:t(773),stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math[t(428)](2,-52)})}}),require_number_is_finite=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/number-is-finite.js"(t,e){var n=nz,r=require_global()[n(780)];e[n(431)]=Number[n(780)]||function(t){return typeof t==n(458)&&r(t)}}}),require_es_number_is_finite=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.is-finite.js"(){var t=nz,e=require_export(),n=require_number_is_finite();e({target:t(773),stat:!0},{isFinite:n})}}),require_is_integral_number=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/is-integral-number.js"(t,e){var n=nz,r=require_is_object(),i=Math.floor;e[n(431)]=Number[n(781)]||function(t){return!r(t)&&isFinite(t)&&i(t)===t}}}),require_es_number_is_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.is-integer.js"(){var t=nz,e=require_export(),n=require_is_integral_number();e({target:t(773),stat:!0},{isInteger:n})}}),require_es_number_is_nan=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.is-nan.js"(){var t=nz;require_export()({target:t(773),stat:!0},{isNaN:function(t){return t!=t}})}}),require_es_number_is_safe_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.is-safe-integer.js"(){var t=nz,e=require_export(),n=require_is_integral_number(),r=Math.abs;e({target:t(773),stat:!0},{isSafeInteger:function(t){return n(t)&&r(t)<=9007199254740991}})}}),require_es_number_max_safe_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.max-safe-integer.js"(){var t=nz;require_export()({target:t(773),stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})}}),require_es_number_min_safe_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.min-safe-integer.js"(){var t=nz;require_export()({target:t(773),stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})}}),require_number_parse_float=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/number-parse-float.js"(t,e){var n=nz,r=require_global(),i=require_fails(),s=require_function_uncurry_this(),a=require_to_string(),o=require_string_trim()[n(772)],c=require_whitespaces(),l=s(""[n(620)]),h=r[n(782)],u=r.Symbol,d=u&&u[n(491)],f=1/h(c+"-0")!=-1/0||d&&!i((function(){h(Object(d))}));e.exports=f?function(t){var e=o(a(t)),n=h(e);return 0===n&&"-"==l(e,0)?-0:n}:h}}),require_es_number_parse_float=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.parse-float.js"(){var t=nz,e=require_export(),n=require_number_parse_float();e({target:t(773),stat:!0,forced:Number[t(782)]!=n},{parseFloat:n})}}),require_number_parse_int=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/number-parse-int.js"(t,e){var n=nz,r=require_global(),i=require_fails(),s=require_function_uncurry_this(),a=require_to_string(),o=require_string_trim()[n(772)],c=require_whitespaces(),l=r.parseInt,h=r[n(534)],u=h&&h[n(491)],d=/^[+-]?0x/i,f=s(d[n(601)]),p=8!==l(c+"08")||22!==l(c+n(783))||u&&!i((function(){l(Object(u))}));e[n(431)]=p?function(t,e){var n=o(a(t));return l(n,e>>>0||(f(d,n)?16:10))}:l}}),require_es_number_parse_int=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.parse-int.js"(){var t=nz,e=require_export(),n=require_number_parse_int();e({target:t(773),stat:!0,forced:Number.parseInt!=n},{parseInt:n})}}),require_es_number_to_exponential=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.to-exponential.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_integer_or_infinity(),i=require_this_number_value(),s=require_string_repeat(),a=require_math_log10(),o=require_fails(),c=RangeError,l=String,h=isFinite,u=Math[t(694)],d=Math[t(562)],f=Math[t(428)],p=Math[t(784)],m=n(1..toExponential),v=n(s),_=n(""[t(497)]),g="-6.9000e-11"===m(-69e-12,4)&&m(1.255,2)===t(785)&&m(12345,3)===t(786)&&"3e+1"===m(25,0);e({target:"Number",proto:!0,forced:!g||!(o((function(){m(1,1/0)}))&&o((function(){m(1,-1/0)})))||!!o((function(){m(1/0,1/0),m(NaN,1/0)}))},{toExponential:function(e){var n=t,s=i(this);if(void 0===e)return m(s);var o=r(e);if(!h(s))return String(s);if(o<0||o>20)throw c(n(787));if(g)return m(s,o);var y="",E="",T=0,I="",z="";if(s<0&&(y="-",s=-s),0===s)T=0,E=v("0",o+1);else{var S=a(s);T=d(S);var x=0,b=f(10,T-o);2*s>=(2*(x=p(s/b))+1)*b&&(x+=1),x>=f(10,o+1)&&(x/=10,T+=1),E=l(x)}return 0!==o&&(E=_(E,0,1)+"."+_(E,1)),0===T?(I="+",z="0"):(I=T>0?"+":"-",z=l(u(T))),y+(E+="e"+I+z)}})}}),require_es_number_to_fixed=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.to-fixed.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_integer_or_infinity(),i=require_this_number_value(),s=require_string_repeat(),a=require_fails(),o=RangeError,c=String,l=Math[t(562)],h=n(s),u=n(""[t(497)]),d=n(1..toFixed),f=function(t,e,n){return 0===e?n:e%2==1?f(t,e-1,n*t):f(t*t,e/2,n)},p=function(t,e,n){for(var r=-1,i=n;++r<6;)i+=e*t[r],t[r]=i%1e7,i=l(i/1e7)},m=function(t,e){for(var n=6,r=0;--n>=0;)r+=t[n],t[n]=l(r/e),r=r%e*1e7},v=function(t){for(var e=6,n="";--e>=0;)if(""!==n||0===e||0!==t[e]){var r=c(t[e]);n=""===n?r:n+h("0",7-r.length)+r}return n},_=a((function(){var e=t;return d(8e-5,3)!==e(788)||"1"!==d(.9,0)||d(1.255,2)!==e(789)||d(0xde0b6b3a7640080,0)!==e(790)}))||!a((function(){d({})}));e({target:t(773),proto:!0,forced:_},{toFixed:function(e){var n,s,a,l,d=t,_=i(this),g=r(e),y=[0,0,0,0,0,0],E="",T="0";if(g<0||g>20)throw o("Incorrect fraction digits");if(_!=_)return d(791);if(_<=-1e21||_>=1e21)return c(_);if(_<0&&(E="-",_=-_),_>1e-21)if(n=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(_*f(2,69,1))-69,s=n<0?_*f(2,-n,1):_/f(2,n,1),s*=4503599627370496,(n=52-n)>0){for(p(y,0,s),a=g;a>=7;)p(y,1e7,0),a-=7;for(p(y,f(10,a,1),0),a=n-1;a>=23;)m(y,1<<23),a-=23;m(y,1<0?T=E+((l=T[d(449)])<=g?"0."+h("0",g-l)+T:u(T,0,l-g)+"."+u(T,l-g)):T=E+T,T}})}}),require_es_number_to_precision=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.number.to-precision.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_fails(),i=require_this_number_value(),s=n(1[t(489)]),a=r((function(){return"1"!==s(1,void 0)}))||!r((function(){s({})}));e({target:t(773),proto:!0,forced:a},{toPrecision:function(t){return void 0===t?s(i(this)):s(i(this),t)}})}}),require_object_assign=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-assign.js"(t,e){"use strict";var n=nz,r=require_descriptors(),i=require_function_uncurry_this(),s=require_function_call(),a=require_fails(),o=require_object_keys(),c=require_object_get_own_property_symbols(),l=require_object_property_is_enumerable(),h=require_to_object(),u=require_indexed_object(),d=Object[n(501)],f=Object[n(420)],p=i([].concat);e[n(431)]=!d||a((function(){var t=n;if(r&&1!==d({b:1},d(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},i={},s=Symbol(),a=t(792);return e[s]=7,a[t(465)]("")[t(604)]((function(t){i[t]=t})),7!=d({},e)[s]||o(d({},i)).join("")!=a}))?function(t,e){for(var i=n,a=h(t),d=arguments[i(449)],f=1,m=c.f,v=l.f;d>f;)for(var _,g=u(arguments[f++]),y=m?p(o(g),m(g)):o(g),E=y[i(449)],T=0;E>T;)_=y[T++],r&&!s(v,g,_)||(a[_]=g[_]);return a}:d}}),require_es_object_assign=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.assign.js"(){var t=nz,e=require_export(),n=require_object_assign();e({target:t(578),stat:!0,arity:2,forced:Object.assign!==n},{assign:n})}}),require_es_object_create=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.create.js"(){var t=nz,e=require_export(),n=require_descriptors(),r=require_object_create();e({target:t(578),stat:!0,sham:!n},{create:r})}}),require_object_prototype_accessors_forced=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-prototype-accessors-forced.js"(t,e){"use strict";var n=nz,r=require_is_pure(),i=require_global(),s=require_fails(),a=require_engine_webkit_version();e[n(431)]=r||!s((function(){if(!(a&&a<535)){var t=Math[n(533)]();__defineSetter__.call(null,t,(function(){})),delete i[t]}}))}}),require_es_object_define_getter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.define-getter.js"(){"use strict";var t=require_export(),e=require_descriptors(),n=require_object_prototype_accessors_forced(),r=require_a_callable(),i=require_to_object(),s=require_object_define_property();e&&t({target:"Object",proto:!0,forced:n},{__defineGetter__:function(t,e){s.f(i(this),t,{get:r(e),enumerable:!0,configurable:!0})}})}}),require_es_object_define_properties=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.define-properties.js"(){var t=nz,e=require_export(),n=require_descriptors(),r=require_object_define_properties().f;e({target:t(578),stat:!0,forced:Object[t(421)]!==r,sham:!n},{defineProperties:r})}}),require_es_object_define_property=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.define-property.js"(){var t=nz,e=require_export(),n=require_descriptors(),r=require_object_define_property().f;e({target:t(578),stat:!0,forced:Object[t(420)]!==r,sham:!n},{defineProperty:r})}}),require_es_object_define_setter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.define-setter.js"(){"use strict";var t=nz,e=require_export(),n=require_descriptors(),r=require_object_prototype_accessors_forced(),i=require_a_callable(),s=require_to_object(),a=require_object_define_property();n&&e({target:t(578),proto:!0,forced:r},{__defineSetter__:function(t,e){a.f(s(this),t,{set:i(e),enumerable:!0,configurable:!0})}})}}),require_object_to_array=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-to-array.js"(t,e){var n=nz,r=require_descriptors(),i=require_function_uncurry_this(),s=require_object_keys(),a=require_to_indexed_object(),o=i(require_object_property_is_enumerable().f),c=i([][n(565)]),l=function(t){return function(e){for(var n,i=f,l=a(e),h=s(l),u=h[i(449)],d=0,p=[];u>d;)n=h[d++],(!r||o(l,n))&&c(p,t?[n,l[n]]:l[n]);return p}};e[n(431)]={entries:l(!0),values:l(!1)}}}),require_es_object_entries=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.entries.js"(){var t=nz,e=require_export(),n=require_object_to_array()[t(674)];e({target:t(578),stat:!0},{entries:function(t){return n(t)}})}}),require_es_object_freeze=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.freeze.js"(){var t=nz,e=require_export(),n=require_freezing(),r=require_fails(),i=require_is_object(),s=require_internal_metadata().onFreeze,a=Object[t(500)],o=r((function(){a(1)}));e({target:t(578),stat:!0,forced:o,sham:!n},{freeze:function(t){return a&&i(t)?a(s(t)):t}})}}),require_es_object_from_entries=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.from-entries.js"(){var t=nz,e=require_export(),n=require_iterate(),r=require_create_property();e({target:t(578),stat:!0},{fromEntries:function(t){var e={};return n(t,(function(t,n){r(e,t,n)}),{AS_ENTRIES:!0}),e}})}}),require_es_object_get_own_property_descriptor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.get-own-property-descriptor.js"(){var t=nz,e=require_export(),n=require_fails(),r=require_to_indexed_object(),i=require_object_get_own_property_descriptor().f,s=require_descriptors(),a=!s||n((function(){i(1)}));e({target:t(578),stat:!0,forced:a,sham:!s},{getOwnPropertyDescriptor:function(t,e){return i(r(t),e)}})}}),require_es_object_get_own_property_descriptors=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.get-own-property-descriptors.js"(){var t=require_export(),e=require_descriptors(),n=require_own_keys(),r=require_to_indexed_object(),i=require_object_get_own_property_descriptor(),s=require_create_property();t({target:"Object",stat:!0,sham:!e},{getOwnPropertyDescriptors:function(t){for(var e,a,o=f,c=r(t),l=i.f,h=n(c),u={},d=0;h[o(449)]>d;)void 0!==(a=l(c,e=h[d++]))&&s(u,e,a);return u}})}}),require_es_object_get_own_property_names=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.get-own-property-names.js"(){var t=require_export(),e=require_fails(),n=require_object_get_own_property_names_external().f;t({target:"Object",stat:!0,forced:e((function(){return!Object[f(422)](1)}))},{getOwnPropertyNames:n})}}),require_es_object_get_prototype_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.get-prototype-of.js"(){var t=nz,e=require_export(),n=require_fails(),r=require_to_object(),i=require_object_get_prototype_of(),s=require_correct_prototype_getter(),a=n((function(){i(1)}));e({target:t(578),stat:!0,forced:a,sham:!s},{getPrototypeOf:function(t){return i(r(t))}})}}),require_es_object_has_own=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.has-own.js"(){var t=nz,e=require_export(),n=require_has_own_property();e({target:t(578),stat:!0},{hasOwn:n})}}),require_same_value=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/same-value.js"(t,e){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}}}),require_es_object_is=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.is.js"(){var t=nz,e=require_export(),n=require_same_value();e({target:t(578),stat:!0},{is:n})}}),require_es_object_is_extensible=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.is-extensible.js"(){var t=nz,e=require_export(),n=require_object_is_extensible();e({target:t(578),stat:!0,forced:Object[t(740)]!==n},{isExtensible:n})}}),require_es_object_is_frozen=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.is-frozen.js"(){var t=nz,e=require_export(),n=require_fails(),r=require_is_object(),i=require_classof_raw(),s=require_array_buffer_non_extensible(),a=Object[t(793)];e({target:"Object",stat:!0,forced:s||n((function(){a(1)}))},{isFrozen:function(e){var n=t;return!r(e)||(!(!s||i(e)!=n(697))||!!a&&a(e))}})}}),require_es_object_is_sealed=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.is-sealed.js"(){var t=nz,e=require_export(),n=require_fails(),r=require_is_object(),i=require_classof_raw(),s=require_array_buffer_non_extensible(),a=Object[t(794)],o=s||n((function(){a(1)}));e({target:t(578),stat:!0,forced:o},{isSealed:function(e){var n=t;return!r(e)||(!(!s||i(e)!=n(697))||!!a&&a(e))}})}}),require_es_object_keys=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.keys.js"(){var t=nz,e=require_export(),n=require_to_object(),r=require_object_keys(),i=require_fails()((function(){r(1)}));e({target:t(578),stat:!0,forced:i},{keys:function(t){return r(n(t))}})}}),require_es_object_lookup_getter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.lookup-getter.js"(){"use strict";var t=nz,e=require_export(),n=require_descriptors(),r=require_object_prototype_accessors_forced(),i=require_to_object(),s=require_to_property_key(),a=require_object_get_prototype_of(),o=require_object_get_own_property_descriptor().f;n&&e({target:t(578),proto:!0,forced:r},{__lookupGetter__:function(e){var n,r=t,c=i(this),l=s(e);do{if(n=o(c,l))return n[r(427)]}while(c=a(c))}})}}),require_es_object_lookup_setter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.lookup-setter.js"(){"use strict";var t=nz,e=require_export(),n=require_descriptors(),r=require_object_prototype_accessors_forced(),i=require_to_object(),s=require_to_property_key(),a=require_object_get_prototype_of(),o=require_object_get_own_property_descriptor().f;n&&e({target:t(578),proto:!0,forced:r},{__lookupSetter__:function(e){var n,r=t,c=i(this),l=s(e);do{if(n=o(c,l))return n[r(540)]}while(c=a(c))}})}}),require_es_object_prevent_extensions=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.prevent-extensions.js"(){var t=nz,e=require_export(),n=require_is_object(),r=require_internal_metadata().onFreeze,i=require_freezing(),s=require_fails(),a=Object[t(741)],o=s((function(){a(1)}));e({target:t(578),stat:!0,forced:o,sham:!i},{preventExtensions:function(t){return a&&n(t)?a(r(t)):t}})}}),require_define_built_in_accessor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/define-built-in-accessor.js"(t,e){var n=nz,r=require_make_built_in(),i=require_object_define_property();e[n(431)]=function(t,e,s){var a=n;return s[a(427)]&&r(s[a(427)],e,{getter:!0}),s[a(540)]&&r(s[a(540)],e,{setter:!0}),i.f(t,e,s)}}}),require_es_object_proto=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.proto.js"(){"use strict";var t=nz,e=require_descriptors(),n=require_define_built_in_accessor(),r=require_is_object(),i=require_to_object(),s=require_require_object_coercible(),a=Object[t(424)],o=Object[t(629)],c=Object.prototype,l=t(630);if(e&&a&&o&&!(l in c))try{n(c,l,{configurable:!0,get:function(){return a(i(this))},set:function(t){var e=s(this);(r(t)||null===t)&&r(e)&&o(e,t)}})}catch(t){}}}),require_es_object_seal=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.seal.js"(){var t=nz,e=require_export(),n=require_is_object(),r=require_internal_metadata().onFreeze,i=require_freezing(),s=require_fails(),a=Object.seal,o=s((function(){a(1)}));e({target:t(578),stat:!0,forced:o,sham:!i},{seal:function(t){return a&&n(t)?a(r(t)):t}})}}),require_es_object_set_prototype_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.set-prototype-of.js"(){var t=nz,e=require_export(),n=require_object_set_prototype_of();e({target:t(578),stat:!0},{setPrototypeOf:n})}}),require_object_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/object-to-string.js"(t,e){"use strict";var n=nz,r=require_to_string_tag_support(),i=require_classof();e[n(431)]=r?{}[n(526)]:function(){return n(795)+i(this)+"]"}}}),require_es_object_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.to-string.js"(){var t=nz,e=require_to_string_tag_support(),n=require_define_built_in(),r=require_object_to_string();!e&&n(Object[t(425)],t(526),r,{unsafe:!0})}}),require_es_object_values=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.object.values.js"(){var t=nz,e=require_export(),n=require_object_to_array()[t(673)];e({target:"Object",stat:!0},{values:function(t){return n(t)}})}}),require_es_parse_float=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.parse-float.js"(){var t=require_export(),e=require_number_parse_float();t({global:!0,forced:parseFloat!=e},{parseFloat:e})}}),require_es_parse_int=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.parse-int.js"(){var t=require_export(),e=require_number_parse_int();t({global:!0,forced:parseInt!=e},{parseInt:e})}}),require_validate_arguments_length=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/validate-arguments-length.js"(t,e){var n=TypeError;e.exports=function(t,e){if(t@^][^\s!#%&*+<=>@^]*>/,O=/a/g,F=/a/g,N=new b(O)!==O,U=m[r(861)],B=m.UNSUPPORTED_Y,k=i&&(!N||U||z||S||g((function(){var t=r;return F[x]=!1,b(O)!=O||b(F)==F||b(O,"i")!=t(862)})));if(o(r(854),k)){for(t=function(e,n){var i,s,a,o,h,m,v=r,_=u(w,this),g=d(e),T=void 0===n,I=[],x=e;if(!_&&g&&T&&e.constructor===t)return e;if((g||u(w,e))&&(e=e[v(556)],T&&(n=p(x))),e=void 0===e?"":f(e),n=void 0===n?"":f(n),x=e,z&&"dotAll"in O&&(s=!!n&&D(n,"s")>-1)&&(n=A(n,/s/g,"")),i=n,U&&"sticky"in O&&(a=!!n&&D(n,"y")>-1)&&B&&(n=A(n,/y/g,"")),S&&(o=function(t){for(var e,n=r,i=t[n(449)],s=0,a="",o=[],c={},l=!1,h=!1,u=0,d="";s<=i;s++){if("\\"===(e=R(t,s)))e+=R(t,++s);else if("]"===e)l=!1;else if(!l)switch(!0){case"["===e:l=!0;break;case"("===e:M(P,L(t,s+1))&&(s+=2,h=!0),a+=e,u++;continue;case">"===e&&h:if(""===d||y(c,d))throw new C(n(864));c[d]=!0,o[o[n(449)]]=[d,u],h=!1,d="";continue}h?d+=e:a+=e}return[a,o]}(e),e=o[0],I=o[1]),h=c(b(e,n),_?this:w,t),(s||a||I.length)&&(m=E(h),s&&(m[v(858)]=!0,m.raw=t(function(t){for(var e,n=r,i=t[n(449)],s=0,a="",o=!1;s<=i;s++)"\\"!==(e=R(t,s))?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),a+=e):a+=n(863):a+=e+R(t,++s);return a}(e),i)),a&&(m.sticky=!0),I.length&&(m[v(865)]=I)),e!==x)try{l(h,v(556),""===x?v(866):x)}catch(t){}return h},e=h(b),n=0;e.length>n;)v(t,b,e[n++]);w[r(443)]=t,t.prototype=w,_(s,r(854),t,{constructor:!0})}T(r(854))}}),require_es_regexp_dot_all=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.regexp.dot-all.js"(){var t=nz,e=require_descriptors(),n=require_regexp_unsupported_dot_all(),r=require_classof_raw(),i=require_define_built_in_accessor(),s=require_internal_state()[t(427)],a=RegExp[t(425)],o=TypeError;e&&n&&i(a,"dotAll",{configurable:!0,get:function(){var e=t;if(this!==a){if(r(this)===e(854))return!!s(this).dotAll;throw o(e(867))}}})}}),require_regexp_exec=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/regexp-exec.js"(t,e){"use strict";var n,r,i,s=nz,a=require_function_call(),o=require_function_uncurry_this(),c=require_to_string(),l=require_regexp_flags(),h=require_regexp_sticky_helpers(),u=require_shared(),d=require_object_create(),f=require_internal_state()[s(427)],p=require_regexp_unsupported_dot_all(),m=require_regexp_unsupported_ncg(),v=u(s(868),String[s(425)][s(448)]),_=RegExp[s(425)][s(601)],g=_,y=o(""[s(620)]),E=o(""[s(564)]),T=o(""[s(448)]),I=o(""[s(497)]),z=(n=s,i=/b*/g,a(_,r=/a/,"a"),a(_,i,"a"),0!==r.lastIndex||0!==i[n(855)]),S=h[s(869)],x=void 0!==/()??/.exec("")[1];(z||x||S||p||m)&&(g=function(t){var e,n,r,i,o,h,u,p=s,m=this,b=f(m),w=c(t),C=b.raw;if(C)return C[p(855)]=m[p(855)],e=a(g,C,w),m.lastIndex=C[p(855)],e;var M=b.groups,R=S&&m[p(852)],A=a(l,m),D=m[p(556)],L=0,P=w;if(R&&(A=T(A,"y",""),-1===E(A,"g")&&(A+="g"),P=I(w,m[p(855)]),m[p(855)]>0&&(!m[p(870)]||m[p(870)]&&"\n"!==y(w,m[p(855)]-1))&&(D=p(871)+D+")",P=" "+P,L++),n=new RegExp(p(872)+D+")",A)),x&&(n=new RegExp("^"+D+p(873),A)),z&&(r=m[p(855)]),i=a(_,R?n:m,P),R?i?(i.input=I(i.input,L),i[0]=I(i[0],L),i[p(677)]=m.lastIndex,m[p(855)]+=i[0][p(449)]):m[p(855)]=0:z&&i&&(m[p(855)]=m.global?i[p(677)]+i[0].length:r),x&&i&&i[p(449)]>1&&a(v,i[0],n,(function(){var t=p;for(o=1;o=0?l:c+l;return h<0||h>=c?void 0:o(a,h)}})}}),require_string_multibyte=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-multibyte.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_to_integer_or_infinity(),s=require_to_string(),a=require_require_object_coercible(),o=r("".charAt),c=r(""[n(621)]),l=r("".slice),h=function(t){return function(e,n){var r,h,u=f,d=s(a(e)),p=i(n),m=d[u(449)];return p<0||p>=m?t?"":void 0:(r=c(d,p))<55296||r>56319||p+1===m||(h=c(d,p+1))<56320||h>57343?t?o(d,p):r:t?l(d,p,p+2):h-56320+(r-55296<<10)+65536}};e[n(431)]={codeAt:h(!1),charAt:h(!0)}}}),require_es_string_code_point_at=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.code-point-at.js"(){"use strict";var t=require_export(),e=require_string_multibyte().codeAt;t({target:"String",proto:!0},{codePointAt:function(t){return e(this,t)}})}}),require_not_a_regexp=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/not-a-regexp.js"(t,e){var n=nz,r=require_is_regexp(),i=TypeError;e[n(431)]=function(t){var e=n;if(r(t))throw i(e(878));return t}}}),require_correct_is_regexp_logic=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/correct-is-regexp-logic.js"(t,e){var n=nz,r=require_well_known_symbol()(n(522));e.exports=function(t){var e=n,i=/./;try{"/./"[t](i)}catch(n){try{return i[r]=!1,e(879)[t](i)}catch(t){}}return!1}}}),require_es_string_ends_with=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.ends-with.js"(){"use strict";var t,e,n=nz,r=require_export(),i=require_function_uncurry_this_clause(),s=require_object_get_own_property_descriptor().f,a=require_to_length(),o=require_to_string(),c=require_not_a_regexp(),l=require_require_object_coercible(),h=require_correct_is_regexp_logic(),u=require_is_pure(),d=i(""[n(880)]),f=i("".slice),p=Math[n(563)],m=h(n(880)),v=!(u||m||(t=n,e=s(String[t(425)],t(880)),!e||e[t(446)]));r({target:n(513),proto:!0,forced:!v&&!m},{endsWith:function(t){var e=n,r=o(l(this));c(t);var i=arguments.length>1?arguments[1]:void 0,s=r[e(449)],h=void 0===i?s:p(a(i),s),u=o(t);return d?d(r,u,h):f(r,h-u.length,h)===u}})}}),require_es_string_from_code_point=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.from-code-point.js"(){var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_absolute_index(),i=RangeError,s=String[t(689)],a=String[t(881)],o=n([][t(549)]);e({target:"String",stat:!0,arity:1,forced:!!a&&1!=a[t(449)]},{fromCodePoint:function(e){for(var n,a=t,c=[],l=arguments[a(449)],h=0;l>h;){if(n=+arguments[h++],r(n,1114111)!==n)throw i(n+a(882));c[h]=n<65536?s(n):s(55296+((n-=65536)>>10),n%1024+56320)}return o(c,"")}})}}),require_es_string_includes=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.includes.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_not_a_regexp(),i=require_require_object_coercible(),s=require_to_string(),a=require_correct_is_regexp_logic(),o=n(""[t(564)]);e({target:t(513),proto:!0,forced:!a("includes")},{includes:function(e){var n=t;return!!~o(s(i(this)),s(r(e)),arguments[n(449)]>1?arguments[1]:void 0)}})}}),require_es_string_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.iterator.js"(){"use strict";var t=nz,e=require_string_multibyte()[t(620)],n=require_to_string(),r=require_internal_state(),i=require_iterator_define(),s=require_create_iter_result_object(),a=t(883),o=r[t(540)],c=r[t(606)](a);i(String,"String",(function(t){o(this,{type:a,string:n(t),index:0})}),(function(){var n,r=t,i=c(this),a=i[r(470)],o=i[r(677)];return o>=a[r(449)]?s(void 0,!0):(n=e(a,o),i[r(677)]+=n[r(449)],s(n,!1))}))}}),require_fix_regexp_well_known_symbol_logic=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"(t,e){"use strict";var n=nz;require_es_regexp_exec();var r=require_function_uncurry_this_clause(),i=require_define_built_in(),s=require_regexp_exec(),a=require_fails(),o=require_well_known_symbol(),c=require_create_non_enumerable_property(),l=o(n(687)),h=RegExp[n(425)];e[n(431)]=function(t,e,u,d){var p=n,m=o(t),v=!a((function(){var e={};return e[m]=function(){return 7},7!=""[t](e)})),_=v&&!a((function(){var e=f,n=!1,r=/a/;return"split"===t&&((r={})[e(443)]={},r[e(443)][l]=function(){return r},r[e(853)]="",r[m]=/./[m]),r[e(601)]=function(){return n=!0,null},r[m](""),!n}));if(!v||!_||u){var g=r(/./[m]),y=e(m,""[t],(function(t,e,n,i,a){var o=f,c=r(t),l=e.exec;return l===s||l===h[o(601)]?v&&!a?{done:!0,value:g(e,n,i)}:{done:!0,value:c(n,e,i)}:{done:!1}}));i(String.prototype,t,y[0]),i(h,m,y[1])}d&&c(h[m],p(523),!0)}}}),require_advance_string_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/advance-string-index.js"(t,e){"use strict";var n=nz,r=require_string_multibyte()[n(620)];e.exports=function(t,e,n){return e+(n?r(t,e).length:1)}}}),require_regexp_exec_abstract=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/regexp-exec-abstract.js"(t,e){var n=nz,r=require_function_call(),i=require_an_object(),s=require_is_callable(),a=require_classof_raw(),o=require_regexp_exec(),c=TypeError;e[n(431)]=function(t,e){var l=t[n(601)];if(s(l)){var h=r(l,t,e);return null!==h&&i(h),h}if("RegExp"===a(t))return r(o,t,e);throw c("RegExp#exec called on incompatible receiver")}}}),require_es_string_match=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.match.js"(){"use strict";var t=require_function_call(),e=require_fix_regexp_well_known_symbol_logic(),n=require_an_object(),r=require_is_null_or_undefined(),i=require_to_length(),s=require_to_string(),a=require_require_object_coercible(),o=require_get_method(),c=require_advance_string_index(),l=require_regexp_exec_abstract();e("match",(function(e,h,u){return[function(n){var i=a(this),c=r(n)?void 0:o(n,e);return c?t(c,n,i):new RegExp(n)[e](s(i))},function(t){var e=f,r=n(this),a=s(t),o=u(h,r,a);if(o[e(438)])return o.value;if(!r[e(557)])return l(r,a);var d=r.unicode;r.lastIndex=0;for(var p,m=[],v=0;null!==(p=l(r,a));){var _=s(p[0]);m[v]=_,""===_&&(r[e(855)]=c(a,i(r[e(855)]),d)),v++}return 0===v?null:m}]}))}}),require_es_string_match_all=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.match-all.js"(){"use strict";var t=nz,e=require_export(),n=require_function_call(),r=require_function_uncurry_this_clause(),i=require_iterator_create_constructor(),s=require_create_iter_result_object(),a=require_require_object_coercible(),o=require_to_length(),c=require_to_string(),l=require_an_object(),h=require_is_null_or_undefined(),u=require_classof_raw(),d=require_is_regexp(),f=require_regexp_get_flags(),p=require_get_method(),m=require_define_built_in(),v=require_fails(),_=require_well_known_symbol(),g=require_species_constructor(),y=require_advance_string_index(),E=require_regexp_exec_abstract(),T=require_internal_state(),I=require_is_pure(),z=_(t(884)),S="RegExp String",x=S+t(668),b=T[t(540)],w=T.getterFor(x),C=RegExp[t(425)],M=TypeError,R=r("".indexOf),A=r("".matchAll),D=!!A&&!v((function(){A("a",/./)})),L=i((function(t,e,n,r){b(this,{type:x,regexp:t,string:e,global:n,unicode:r,done:!1})}),S,(function(){var e=t,n=w(this);if(n[e(438)])return s(void 0,!0);var r=n[e(885)],i=n.string,a=E(r,i);return null===a?(n[e(438)]=!0,s(void 0,!0)):n[e(557)]?(""===c(a[0])&&(r[e(855)]=y(i,o(r[e(855)]),n[e(850)])),s(a,!1)):(n[e(438)]=!0,s(a,!1))})),P=function(e){var n,r,i,s=t,a=l(this),h=c(e),u=g(a,RegExp),d=c(f(a));return n=new u(u===RegExp?a[s(556)]:a,d),r=!!~R(d,"g"),i=!!~R(d,"u"),n[s(855)]=o(a[s(855)]),new L(n,h,r,i)};e({target:t(513),proto:!0,forced:D},{matchAll:function(e){var r,i,s,o,l=t,m=a(this);if(h(e)){if(D)return A(m,e)}else{if(d(e)&&(r=c(a(f(e))),!~R(r,"g")))throw M(l(886));if(D)return A(m,e);if(void 0===(s=p(e,z))&&I&&u(e)==l(854)&&(s=P),s)return n(s,e,m)}return i=c(m),o=new RegExp(e,"g"),I?n(P,o,i):o[z](i)}}),I||z in C||m(C,z,P)}}),require_string_pad_webkit_bug=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-pad-webkit-bug.js"(t,e){var n=nz,r=require_engine_user_agent();e[n(431)]=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//[n(467)](r)}}),require_es_string_pad_end=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.pad-end.js"(){"use strict";var t=nz,e=require_export(),n=require_string_pad()[t(887)],r=require_string_pad_webkit_bug();e({target:t(513),proto:!0,forced:r},{padEnd:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}})}}),require_es_string_pad_start=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.pad-start.js"(){"use strict";var t=nz,e=require_export(),n=require_string_pad()[t(725)],r=require_string_pad_webkit_bug();e({target:t(513),proto:!0,forced:r},{padStart:function(e){return n(this,e,arguments[t(449)]>1?arguments[1]:void 0)}})}}),require_es_string_raw=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.raw.js"(){var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_indexed_object(),i=require_to_object(),s=require_to_string(),a=require_length_of_array_like(),o=n([][t(565)]),c=n([][t(549)]);e({target:t(513),stat:!0},{raw:function(e){var n=t,l=r(i(e)[n(888)]),h=a(l);if(!h)return"";for(var u=arguments[n(449)],d=[],f=0;;){if(o(d,s(l[f++])),f===h)return c(d,"");f]*>)/g,h=/\$([$&'`]|\d{1,2})/g;e[n(431)]=function(t,e,r,u,d,f){var p=n,m=r+t.length,v=u[p(449)],_=h;return void 0!==d&&(d=i(d),_=l),o(f,_,(function(n,i){var o;switch(a(i,0)){case"$":return"$";case"&":return t;case"`":return c(e,0,r);case"'":return c(e,m);case"<":o=d[c(i,1,-1)];break;default:var l=+i;if(0===l)return n;if(l>v){var h=s(l/10);return 0===h?n:h<=v?void 0===u[h-1]?a(i,1):u[h-1]+a(i,1):n}o=u[l-1]}return void 0===o?"":o}))}}}),require_es_string_replace=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.replace.js"(){"use strict";var t=nz,e=require_function_apply(),n=require_function_call(),r=require_function_uncurry_this(),i=require_fix_regexp_well_known_symbol_logic(),s=require_fails(),a=require_an_object(),o=require_is_callable(),c=require_is_null_or_undefined(),l=require_to_integer_or_infinity(),h=require_to_length(),u=require_to_string(),d=require_require_object_coercible(),p=require_advance_string_index(),m=require_get_method(),v=require_get_substitution(),_=require_regexp_exec_abstract(),g=require_well_known_symbol()(t(448)),y=Math[t(486)],E=Math[t(563)],T=r([][t(475)]),I=r([].push),z=r(""[t(564)]),S=r(""[t(497)]),x=function(t){return void 0===t?t:String(t)},b="$0"==="a"[t(448)](/./,"$0"),w=!!/./[g]&&""===/./[g]("a","$0"),C=!s((function(){var e=t,n=/./;return n[e(601)]=function(){var t=[];return t.groups={a:"7"},t},"7"!==""[e(448)](n,e(889))}));i(t(448),(function(t,r,i){var s=w?"$":"$0";return[function(t,e){var i=d(this),s=c(t)?void 0:m(t,g);return s?n(s,t,i,e):n(r,u(i),t,e)},function(t,n){var c=f,d=a(this),m=u(t);if("string"==typeof n&&-1===z(n,s)&&-1===z(n,"$<")){var g=i(r,d,m,n);if(g[c(438)])return g.value}var b=o(n);b||(n=u(n));var w=d[c(557)];if(w){var C=d[c(850)];d.lastIndex=0}for(var M=[];;){var R=_(d,m);if(null===R)break;if(I(M,R),!w)break;""===u(R[0])&&(d[c(855)]=p(m,h(d[c(855)]),C))}for(var A="",D=0,L=0;L=D&&(A+=S(m,D,O)+k,D=O+P.length)}return A+S(m,D)}]}),!C||!b||w)}}),require_es_string_replace_all=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.replace-all.js"(){"use strict";var t=nz,e=require_export(),n=require_function_call(),r=require_function_uncurry_this(),i=require_require_object_coercible(),s=require_is_callable(),a=require_is_null_or_undefined(),o=require_is_regexp(),c=require_to_string(),l=require_get_method(),h=require_regexp_get_flags(),u=require_get_substitution(),d=require_well_known_symbol(),f=require_is_pure(),p=d(t(448)),m=TypeError,v=r("".indexOf),_=r(""[t(448)]),g=r(""[t(497)]),y=Math[t(486)],E=function(e,n,r){return r>e[t(449)]?-1:""===n?r:v(e,n,r)};e({target:"String",proto:!0},{replaceAll:function(e,r){var d,T,I,z,S,x,b,w,C,M=t,R=i(this),A=0,D=0,L="";if(!a(e)){if((d=o(e))&&(T=c(i(h(e))),!~v(T,"g")))throw m("`.replaceAll` does not allow non-global regexes");if(I=l(e,p))return n(I,e,R,r);if(f&&d)return _(c(R),e,r)}for(z=c(R),S=c(e),(x=s(r))||(r=c(r)),b=S.length,w=y(1,b),A=E(z,S,0);-1!==A;)C=x?c(r(S,A,z)):u(S,z,A,[],void 0,r),L+=g(z,D,A)+C,D=A+b,A=E(z,S,A+w);return D1||"".split(/.?/)[b(449)]?function(t,r){var s=b,a=d(c(this)),l=void 0===r?E:r>>>0;if(0===l)return[];if(void 0===t)return[a];if(!o(t))return n(i,a,t,l);for(var h,u,f,m=[],_=(t[s(849)]?"i":"")+(t.multiline?"m":"")+(t[s(850)]?"u":"")+(t[s(852)]?"y":""),g=0,y=new RegExp(t.source,_+"g");(h=n(v,y,a))&&!((u=y[s(855)])>g&&(S(m,x(a,g,h[s(677)])),h[s(449)]>1&&h[s(677)]=l));)y.lastIndex===h.index&&y.lastIndex++;return g===a[s(449)]?!f&&z(y,"")||S(m,""):S(m,x(a,g)),m[s(449)]>l?p(m,0,l):m}:"0"[b(465)](void 0,0).length?function(t,e){return void 0===t&&0===e?[]:n(i,this,t,e)}:i,[function(t,e){var i=c(this),s=a(t)?void 0:f(t,r);return s?n(s,t,i,e):n(g,d(i),t,e)},function(t,e){var n=b,r=s(this),a=d(t),o=_(g,r,a,e,g!==i);if(o[n(438)])return o[n(439)];var c=l(r,RegExp),f=r[n(850)],p=(r[n(849)]?"i":"")+(r[n(870)]?"m":"")+(r[n(850)]?"u":"")+(y?"g":"y"),v=new c(y?n(872)+r[n(556)]+")":r,p),I=void 0===e?E:e>>>0;if(0===I)return[];if(0===a.length)return null===m(v,a)?[a]:[];for(var z=0,w=0,C=[];w1?arguments[1]:void 0,r.length)),s=o(t);return d?d(r,s,i):f(r,i,i+s[e(449)])===s}})}}),require_es_string_substr=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.substr.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_require_object_coercible(),i=require_to_integer_or_infinity(),s=require_to_string(),a=n(""[t(497)]),o=Math[t(486)],c=Math[t(563)],l=!""[t(892)]||"b"!=="ab"[t(892)](-1);e({target:t(513),proto:!0,forced:l},{substr:function(e,n){var l,h,u=t,d=s(r(this)),f=d[u(449)],p=i(e);return p===1/0&&(p=0),p<0&&(p=o(f+p,0)),(l=void 0===n?f:i(n))<=0||l===1/0?"":p>=(h=c(p+l,f))?"":a(d,p,h)}})}}),require_string_trim_forced=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-trim-forced.js"(t,e){var n=nz,r=require_function_name().PROPER,i=require_fails(),s=require_whitespaces(),a=n(893);e[n(431)]=function(t){return i((function(){var e=f;return!!s[t]()||a[t]()!==a||r&&s[t][e(542)]!==t}))}}}),require_es_string_trim=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.trim.js"(){"use strict";var t=nz,e=require_export(),n=require_string_trim()[t(772)],r=require_string_trim_forced();e({target:t(513),proto:!0,forced:r("trim")},{trim:function(){return n(this)}})}}),require_string_trim_end=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-trim-end.js"(t,e){"use strict";var n=nz,r=require_string_trim()[n(887)],i=require_string_trim_forced();e[n(431)]=i(n(894))?function(){return r(this)}:"".trimEnd}}),require_es_string_trim_right=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.trim-right.js"(){var t=nz,e=require_export(),n=require_string_trim_end();e({target:"String",proto:!0,name:t(894),forced:""[t(895)]!==n},{trimRight:n})}}),require_es_string_trim_end=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.trim-end.js"(){var t=nz;require_es_string_trim_right();var e=require_export(),n=require_string_trim_end();e({target:t(513),proto:!0,name:t(894),forced:"".trimEnd!==n},{trimEnd:n})}}),require_string_trim_start=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-trim-start.js"(t,e){"use strict";var n=nz,r=require_string_trim()[n(725)],i=require_string_trim_forced();e[n(431)]=i(n(896))?function(){return r(this)}:""[n(896)]}}),require_es_string_trim_left=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.trim-left.js"(){var t=nz,e=require_export(),n=require_string_trim_start();e({target:t(513),proto:!0,name:t(896),forced:""[t(897)]!==n},{trimLeft:n})}}),require_es_string_trim_start=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.trim-start.js"(){var t=nz;require_es_string_trim_left();var e=require_export(),n=require_string_trim_start();e({target:t(513),proto:!0,name:"trimStart",forced:""[t(896)]!==n},{trimStart:n})}}),require_create_html=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/create-html.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=require_require_object_coercible(),s=require_to_string(),a=/"/g,o=r(""[n(448)]);e[n(431)]=function(t,e,n,r){var c=s(i(t)),l="<"+e;return""!==n&&(l+=" "+n+'="'+o(s(r),a,""")+'"'),l+">"+c+""}}}),require_string_html_forced=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-html-forced.js"(t,e){var n=require_fails();e.exports=function(t){return n((function(){var e=f,n=""[t]('"');return n!==n[e(570)]()||n[e(465)]('"').length>3}))}}}),require_es_string_anchor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.anchor.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(898))},{anchor:function(e){return n(this,"a",t(542),e)}})}}),require_es_string_big=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.big.js"(){"use strict";var t=require_export(),e=require_create_html();t({target:"String",proto:!0,forced:require_string_html_forced()("big")},{big:function(){return e(this,f(899),"","")}})}}),require_es_string_blink=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.blink.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(900))},{blink:function(){return n(this,t(900),"","")}})}}),require_es_string_bold=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.bold.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html();e({target:"String",proto:!0,forced:require_string_html_forced()(t(901))},{bold:function(){return n(this,"b","","")}})}}),require_es_string_fixed=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.fixed.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html();e({target:"String",proto:!0,forced:require_string_html_forced()(t(902))},{fixed:function(){return n(this,"tt","","")}})}}),require_es_string_fontcolor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.fontcolor.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(903))},{fontcolor:function(e){return n(this,t(904),"color",e)}})}}),require_es_string_fontsize=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.fontsize.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r("fontsize")},{fontsize:function(e){var r=t;return n(this,r(904),r(753),e)}})}}),require_es_string_italics=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.italics.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(905))},{italics:function(){return n(this,"i","","")}})}}),require_es_string_link=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.link.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(906))},{link:function(t){return n(this,"a","href",t)}})}}),require_es_string_small=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.small.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(907))},{small:function(){return n(this,t(907),"","")}})}}),require_es_string_strike=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.strike.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html(),r=require_string_html_forced();e({target:t(513),proto:!0,forced:r(t(908))},{strike:function(){return n(this,t(908),"","")}})}}),require_es_string_sub=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.sub.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html();e({target:"String",proto:!0,forced:require_string_html_forced()(t(909))},{sub:function(){return n(this,t(909),"","")}})}}),require_es_string_sup=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.string.sup.js"(){"use strict";var t=nz,e=require_export(),n=require_create_html();e({target:"String",proto:!0,forced:require_string_html_forced()(t(910))},{sup:function(){return n(this,t(910),"","")}})}}),require_typed_array_constructors_require_wrappers=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js"(t,e){var n=nz,r=require_global(),i=require_fails(),s=require_check_correctness_of_iteration(),a=require_array_buffer_view_core()[n(714)],o=r[n(697)],c=r[n(708)];e[n(431)]=!a||!i((function(){c(1)}))||!i((function(){new c(-1)}))||!s((function(t){new c,new c(null),new c(1.5),new c(t)}),!0)||i((function(){var t=n;return 1!==new c(new o(2),1,void 0)[t(449)]}))}}),require_to_positive_integer=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-positive-integer.js"(t,e){var n=nz,r=require_to_integer_or_infinity(),i=RangeError;e[n(431)]=function(t){var e=n,s=r(t);if(s<0)throw i(e(911));return s}}}),require_to_offset=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-offset.js"(t,e){var n=require_to_positive_integer(),r=RangeError;e.exports=function(t,e){var i=f,s=n(t);if(s%e)throw r(i(706));return s}}}),require_is_big_int_array=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/is-big-int-array.js"(t,e){var n=nz,r=require_classof();e[n(431)]=function(t){var e=n,i=r(t);return"BigInt64Array"==i||i==e(912)}}}),require_to_big_int=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/to-big-int.js"(t,e){var n=require_to_primitive(),r=TypeError;e.exports=function(t){var e=f,i=n(t,e(458));if(typeof i==e(458))throw r(e(913));return BigInt(i)}}}),require_typed_array_from=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/typed-array-from.js"(t,e){var n=nz,r=require_function_bind_context(),i=require_function_call(),s=require_a_constructor(),a=require_to_object(),o=require_length_of_array_like(),c=require_get_iterator(),l=require_get_iterator_method(),h=require_is_array_iterator_method(),u=require_is_big_int_array(),d=require_array_buffer_view_core()[n(914)],f=require_to_big_int();e[n(431)]=function(t){var e,p,m,v,_,g,y,E,T=n,I=s(this),z=a(t),S=arguments[T(449)],x=S>1?arguments[1]:void 0,b=void 0!==x,w=l(z);if(w&&!h(w))for(E=(y=c(z,w))[T(436)],z=[];!(g=i(E,y))[T(438)];)z[T(565)](g[T(439)]);for(b&&S>2&&(x=r(x,arguments[2])),p=o(z),m=new(d(I))(p),v=u(m),e=0;p>e;e++)_=b?x(z[e],e):z[e],m[e]=v?f(_):+_;return m}}}),require_typed_array_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/typed-array-constructor.js"(t,e){"use strict";var n=nz,r=require_export(),i=require_global(),s=require_function_call(),a=require_descriptors(),o=require_typed_array_constructors_require_wrappers(),c=require_array_buffer_view_core(),l=require_array_buffer(),h=require_an_instance(),u=require_create_property_descriptor(),d=require_create_non_enumerable_property(),f=require_is_integral_number(),p=require_to_length(),m=require_to_index(),v=require_to_offset(),_=require_to_property_key(),g=require_has_own_property(),y=require_classof(),E=require_is_object(),T=require_is_symbol(),I=require_object_create(),z=require_object_is_prototype_of(),S=require_object_set_prototype_of(),x=require_object_get_own_property_names().f,b=require_typed_array_from(),w=require_array_iteration()[n(604)],C=require_set_species(),M=require_object_define_property(),R=require_object_get_own_property_descriptor(),A=require_internal_state(),D=require_inherit_if_required(),L=A.get,P=A[n(540)],O=A[n(548)],F=M.f,N=R.f,U=Math[n(784)],B=i[n(640)],k=l[n(697)],G=k[n(425)],V=l.DataView,j=c[n(714)],H=c.TYPED_ARRAY_TAG,q=c[n(915)],W=c.TypedArrayPrototype,Y=c[n(914)],X=c.isTypedArray,J=n(916),K=n(699),Z=function(t,e){var r=n;Y(t);for(var i=0,s=e[r(449)],a=new t(s);s>i;)a[i]=e[i++];return a},$=function(t,e){F(t,e,{get:function(){return L(this)[e]}})},Q=function(t){var e,r=n;return z(G,t)||(e=y(t))==r(697)||"SharedArrayBuffer"==e},tt=function(t,e){return X(t)&&!T(e)&&e in t&&f(+e)&&e>=0},et=function(t,e){return e=_(e),tt(t,e)?u(2,t[e]):N(t,e)},nt=function(t,e,r){var i=n;return e=_(e),!(tt(t,e)&&E(r)&&g(r,i(439)))||g(r,i(427))||g(r,i(540))||r.configurable||g(r,i(446))&&!r[i(446)]||g(r,i(433))&&!r[i(433)]?F(t,e,r):(t[e]=r[i(439)],t)};a?(!j&&(R.f=et,M.f=nt,$(W,n(703)),$(W,n(704)),$(W,n(702)),$(W,n(449))),r({target:n(578),stat:!0,forced:!j},{getOwnPropertyDescriptor:et,defineProperty:nt}),e[n(431)]=function(t,e,a){var c=n,l=t[c(522)](/\d+$/)[0]/8,u=t+(a?c(917):"")+c(600),f=c(427)+t,_="set"+t,g=i[u],y=g,T=y&&y.prototype,z={},M=function(t,e){F(t,e,{get:function(){return function(t,e){var n=c,r=L(t);return r[n(918)][f](e*l+r.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,n){var r=c,i=L(t);a&&(n=(n=U(n))<0?0:n>255?255:255&n),i[r(918)][_](e*l+i[r(704)],n,!0)}(this,e,t)},enumerable:!0})};j?o&&(y=e((function(t,e,n,r){return h(t,T),D(E(e)?Q(e)?void 0!==r?new g(e,v(n,l),r):void 0!==n?new g(e,v(n,l)):new g(e):X(e)?Z(y,e):s(b,y,e):new g(m(e)),t,y)})),S&&S(y,q),w(x(g),(function(t){!(t in y)&&d(y,t,g[t])})),y[c(425)]=T):(y=e((function(t,e,n,r){var i=c;h(t,T);var a,o,u,d=0,f=0;if(E(e)){if(!Q(e))return X(e)?Z(y,e):s(b,y,e);a=e,f=v(n,l);var _=e[i(702)];if(void 0===r){if(_%l)throw B(K);if((o=_-f)<0)throw B(K)}else if((o=p(r)*l)+f>_)throw B(K);u=o/l}else u=m(e),a=new k(o=u*l);for(P(t,{buffer:a,byteOffset:f,byteLength:o,length:u,view:new V(a)});d=0?a:s+a;return o<0||o>=s?void 0:e[o]}))}}),require_es_typed_array_copy_within=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.copy-within.js"(){"use strict";var t=nz,e=require_function_uncurry_this(),n=require_array_buffer_view_core(),r=e(require_array_copy_within()),i=n[t(928)];(0,n[t(927)])(t(662),(function(e,n){var s=t;return r(i(this),e,n,arguments[s(449)]>2?arguments[2]:void 0)}))}}),require_es_typed_array_every=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.every.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration()[t(466)],r=e[t(928)];(0,e[t(927)])(t(466),(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_fill=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.fill.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_fill(),r=require_to_big_int(),i=require_classof(),s=require_function_call(),a=require_function_uncurry_this(),o=require_fails(),c=e[t(928)],l=e[t(927)],h=a(""[t(497)]),u=o((function(){var e=t,n=0;return new Int8Array(2)[e(929)]({valueOf:function(){return n++}}),1!==n}));l(t(929),(function(e){var a=t,o=arguments[a(449)];c(this);var l=h(i(this),0,3)===a(930)?r(e):+e;return s(n,this,l,o>1?arguments[1]:void 0,o>2?arguments[2]:void 0)}),u)}}),require_array_from_constructor_and_list=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/array-from-constructor-and-list.js"(t,e){var n=nz,r=require_length_of_array_like();e[n(431)]=function(t,e){for(var n=0,i=r(e),s=new t(i);i>n;)s[n]=e[n++];return s}}}),require_typed_array_species_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/typed-array-species-constructor.js"(t,e){var n=nz,r=require_array_buffer_view_core(),i=require_species_constructor(),s=r[n(914)],a=r[n(931)];e.exports=function(t){return s(i(t,a(t)))}}}),require_typed_array_from_species_and_list=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/typed-array-from-species-and-list.js"(t,e){var n=require_array_from_constructor_and_list(),r=require_typed_array_species_constructor();e.exports=function(t,e){return n(r(t),e)}}}),require_es_typed_array_filter=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.filter.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration()[t(464)],r=require_typed_array_from_species_and_list(),i=e[t(928)];(0,e[t(927)])("filter",(function(t){var e=n(i(this),t,arguments.length>1?arguments[1]:void 0);return r(this,e)}))}}),require_es_typed_array_find=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.find.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration()[t(932)],r=e[t(928)];(0,e[t(927)])("find",(function(t){return n(r(this),t,arguments.length>1?arguments[1]:void 0)}))}}),require_es_typed_array_find_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.find-index.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration().findIndex,r=e.aTypedArray;(0,e[t(927)])(t(663),(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_find_last=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.find-last.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration_from_last()[t(664)],r=e[t(928)];(0,e[t(927)])(t(664),(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_find_last_index=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.find-last-index.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration_from_last().findLastIndex,r=e[t(928)];(0,e.exportTypedArrayMethod)(t(665),(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_for_each=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.for-each.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration().forEach,r=e[t(928)];(0,e.exportTypedArrayMethod)(t(604),(function(t){n(r(this),t,arguments.length>1?arguments[1]:void 0)}))}}),require_es_typed_array_from=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.from.js"(){"use strict";var t=nz,e=require_typed_array_constructors_require_wrappers();(0,require_array_buffer_view_core()[t(933)])("from",require_typed_array_from(),e)}}),require_es_typed_array_includes=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.includes.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_includes()[t(667)],r=e[t(928)];(0,e[t(927)])(t(667),(function(t){return n(r(this),t,arguments.length>1?arguments[1]:void 0)}))}}),require_es_typed_array_index_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.index-of.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_includes()[t(564)],r=e[t(928)];(0,e[t(927)])("indexOf",(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.iterator.js"(){"use strict";var t=nz,e=require_global(),n=require_fails(),r=require_function_uncurry_this(),i=require_array_buffer_view_core(),s=require_es_array_iterator(),a=require_well_known_symbol()(t(491)),o=e[t(934)],c=r(s.values),l=r(s[t(477)]),h=r(s[t(674)]),u=i[t(928)],d=i[t(927)],f=o&&o[t(425)],p=!n((function(){var e=t;f[a][e(429)]([1])})),m=!!f&&f.values&&f[a]===f[t(673)]&&f[t(673)][t(542)]===t(673),v=function(){return c(u(this))};d("entries",(function(){return h(u(this))}),p),d(t(477),(function(){return l(u(this))}),p),d(t(673),v,p||!m,{name:t(673)}),d(a,v,p||!m,{name:t(673)})}}),require_es_typed_array_join=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.join.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_function_uncurry_this(),r=e[t(928)],i=e[t(927)],s=n([][t(549)]);i("join",(function(t){return s(r(this),t)}))}}),require_es_typed_array_last_index_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.last-index-of.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_function_apply(),r=require_array_last_index_of(),i=e[t(928)];(0,e[t(927)])(t(678),(function(t){var e=arguments.length;return n(r,i(this),e>1?[t,arguments[1]]:[t])}))}}),require_es_typed_array_map=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.map.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration().map,r=require_typed_array_species_constructor(),i=e[t(928)];(0,e[t(927)])("map",(function(t){return n(i(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(r(t))(e)}))}))}}),require_es_typed_array_of=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.of.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_typed_array_constructors_require_wrappers(),r=e[t(914)];(0,e[t(933)])("of",(function(){for(var e=0,n=arguments[t(449)],i=new(r(this))(n);n>e;)i[e]=arguments[e++];return i}),n)}}),require_es_typed_array_reduce=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.reduce.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_reduce().left,r=e[t(928)];(0,e.exportTypedArrayMethod)("reduce",(function(e){var i=arguments[t(449)];return n(r(this),e,i,i>1?arguments[1]:void 0)}))}}),require_es_typed_array_reduce_right=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.reduce-right.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_reduce()[t(935)],r=e[t(928)];(0,e[t(927)])(t(685),(function(e){var i=arguments[t(449)];return n(r(this),e,i,i>1?arguments[1]:void 0)}))}}),require_es_typed_array_reverse=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.reverse.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=e.aTypedArray,r=e[t(927)],i=Math[t(562)];r(t(686),(function(){for(var t,e=this,r=n(e).length,s=i(r/2),a=0;a1?arguments[1]:void 0,1),l=a(e);if(p)return n(u,this,l,o);var h=this[r(449)],f=i(l),m=0;if(f+o>h)throw c(r(699));for(;mo;)l[o]=r[o++];return l}),o)}}),require_es_typed_array_some=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.some.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_array_iteration()[t(936)],r=e[t(928)];(0,e.exportTypedArrayMethod)(t(936),(function(e){var i=t;return n(r(this),e,arguments[i(449)]>1?arguments[1]:void 0)}))}}),require_es_typed_array_sort=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.sort.js"(){"use strict";var t=nz,e=require_global(),n=require_function_uncurry_this_clause(),r=require_fails(),i=require_a_callable(),s=require_array_sort(),a=require_array_buffer_view_core(),o=require_engine_ff_version(),c=require_engine_is_ie_or_edge(),l=require_engine_v8_version(),h=require_engine_webkit_version(),u=a[t(928)],d=a.exportTypedArrayMethod,f=e[t(937)],p=f&&n(f[t(425)][t(688)]),m=!(!p||r((function(){p(new f(2),null)}))&&r((function(){p(new f(2),{})}))),v=!!p&&!r((function(){if(l)return l<74;if(o)return o<67;if(c)return!0;if(h)return h<602;var t,e,n=new f(516),r=Array(516);for(t=0;t<516;t++)e=t%4,n[t]=515-t,r[t]=t-2*e+3;for(p(n,(function(t,e){return(t/4|0)-(e/4|0)})),t=0;t<516;t++)if(n[t]!==r[t])return!0}));d(t(688),(function(t){return void 0!==t&&i(t),v?p(this,t):s(u(this),function(t){return function(e,n){return void 0!==t?+t(e,n)||0:n!=n?-1:e!=e?1:0===e&&0===n?1/e>0&&1/n<0?1:-1:e>n}}(t))}),!v||m)}}),require_es_typed_array_subarray=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.subarray.js"(){"use strict";var t=nz,e=require_array_buffer_view_core(),n=require_to_length(),r=require_to_absolute_index(),i=require_typed_array_species_constructor(),s=e[t(928)];(0,e[t(927)])("subarray",(function(e,a){var o=t,c=s(this),l=c.length,h=r(e,l);return new(i(c))(c[o(703)],c.byteOffset+h*c.BYTES_PER_ELEMENT,n((void 0===a?l:r(a,l))-h))}))}}),require_es_typed_array_to_locale_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.to-locale-string.js"(){"use strict";var t=nz,e=require_global(),n=require_function_apply(),r=require_array_buffer_view_core(),i=require_fails(),s=require_array_slice(),a=e.Int8Array,o=r.aTypedArray,c=r[t(927)],l=[][t(566)],h=!!a&&i((function(){l[t(429)](new a(1))})),u=i((function(){var e=t;return[1,2].toLocaleString()!=new a([1,2])[e(566)]()}))||!i((function(){var e=t;a[e(425)][e(566)][e(429)]([1,2])}));c(t(566),(function(){return n(l,h?s(o(this)):o(this),s(arguments))}),u)}}),require_es_typed_array_to_string=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.typed-array.to-string.js"(){"use strict";var t=nz,e=require_array_buffer_view_core()[t(927)],n=require_fails(),r=require_global(),i=require_function_uncurry_this(),s=r[t(934)],a=s&&s.prototype||{},o=[][t(526)],c=i([].join);n((function(){o.call({})}))&&(o=function(){return c(this)});var l=a[t(526)]!=o;e("toString",o,l)}}),require_es_unescape=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/es.unescape.js"(){"use strict";var t=nz,e=require_export(),n=require_function_uncurry_this(),r=require_to_string(),i=String[t(689)],s=n("".charAt),a=n(/./[t(601)]),o=n(""[t(497)]),c=/^[\da-f]{2}$/i,l=/^[\da-f]{4}$/i;e({global:!0},{unescape:function(e){for(var n,h,u=t,d=r(e),f="",p=d[u(449)],m=0;m>(-2*x&6))));return z}})}}),require_web_btoa=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.btoa.js"(){var t=nz,e=require_export(),n=require_global(),r=require_get_built_in(),i=require_function_uncurry_this(),s=require_function_call(),a=require_fails(),o=require_to_string(),c=require_validate_arguments_length(),l=require_base64_map()[t(947)],h=r("btoa"),u=i(""[t(620)]),d=i(""[t(621)]),f=!!h&&!a((function(){h()})),p=!!h&&a((function(){var e=t;return h(null)!==e(948)})),m=!!h&&1!==h.length;e({global:!0,bind:!0,enumerable:!0,forced:f||p||m},{btoa:function(e){var i=t;if(c(arguments.length,1),f||p||m)return s(h,n,o(e));for(var a,v,_=o(e),g="",y=0,E=l;u(_,y)||(E="=",y%1);){if((v=d(_,y+=3/4))>255)throw new(r(i(949)))(i(950),i(951));g+=u(E,63&(a=a<<8|v)>>8-y%1*8)}return g}})}}),require_dom_iterables=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/dom-iterables.js"(t,e){e[nz(431)]={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}}}),require_dom_token_list_prototype=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/dom-token-list-prototype.js"(t,e){var n=nz,r=require_document_create_element()("span").classList,i=r&&r.constructor&&r[n(443)][n(425)];e[n(431)]=i===Object[n(425)]?void 0:i}}),require_web_dom_collections_for_each=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.dom-collections.for-each.js"(){var t,e=require_global(),n=require_dom_iterables(),r=require_dom_token_list_prototype(),i=require_array_for_each(),s=require_create_non_enumerable_property(),a=function(t){var e=f;if(t&&t.forEach!==i)try{s(t,e(604),i)}catch(n){t[e(604)]=i}};for(t in n)n[t]&&a(e[t]&&e[t].prototype);a(r)}}),require_web_dom_collections_iterator=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.dom-collections.iterator.js"(){var t,e=nz,n=require_global(),r=require_dom_iterables(),i=require_dom_token_list_prototype(),s=require_es_array_iterator(),a=require_create_non_enumerable_property(),o=require_well_known_symbol(),c=o(e(491)),l=o("toStringTag"),h=s[e(673)],u=function(t,e){if(t){if(t[c]!==h)try{a(t,c,h)}catch(e){t[c]=h}if(!t[l]&&a(t,l,e),r[e])for(var n in s)if(t[n]!==s[n])try{a(t,n,s[n])}catch(e){t[n]=s[n]}}};for(t in r)u(n[t]&&n[t].prototype,t);u(i,e(952))}}),require_try_node_require=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/try-node-require.js"(t,e){var n=nz,r=require_engine_is_node();e[n(431)]=function(t){try{if(r)return Function('return require("'+t+'")')()}catch(t){}}}}),require_dom_exception_constants=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/dom-exception-constants.js"(t,e){var n=nz;e[n(431)]={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:n(953),c:3,m:1},WrongDocumentError:{s:n(954),c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:n(955),c:6,m:0},NoModificationAllowedError:{s:n(956),c:7,m:1},NotFoundError:{s:n(957),c:8,m:1},NotSupportedError:{s:n(958),c:9,m:1},InUseAttributeError:{s:n(959),c:10,m:1},InvalidStateError:{s:n(960),c:11,m:1},SyntaxError:{s:n(961),c:12,m:1},InvalidModificationError:{s:n(962),c:13,m:1},NamespaceError:{s:n(963),c:14,m:1},InvalidAccessError:{s:n(964),c:15,m:1},ValidationError:{s:n(965),c:16,m:0},TypeMismatchError:{s:n(966),c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:n(967),c:20,m:1},URLMismatchError:{s:n(968),c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:n(969),c:23,m:1},InvalidNodeTypeError:{s:n(970),c:24,m:1},DataCloneError:{s:n(971),c:25,m:1}}}}),require_web_dom_exception_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.dom-exception.constructor.js"(){"use strict";var t=nz,e=require_export(),n=require_try_node_require(),r=require_get_built_in(),i=require_fails(),s=require_object_create(),a=require_create_property_descriptor(),o=require_object_define_property().f,c=require_define_built_in(),l=require_define_built_in_accessor(),h=require_has_own_property(),u=require_an_instance(),d=require_an_object(),f=require_error_to_string(),p=require_normalize_string_argument(),m=require_dom_exception_constants(),v=require_error_stack_clear(),_=require_internal_state(),g=require_descriptors(),y=require_is_pure(),E=t(949),T="DATA_CLONE_ERR",I=r("Error"),z=r(E)||function(){var e=t;try{(new(r("MessageChannel")||n(e(972)).MessageChannel)).port1[e(798)](new WeakMap)}catch(t){if(t.name==T&&25==t.code)return t.constructor}}(),S=z&&z[t(425)],x=I[t(425)],b=_[t(540)],w=_[t(606)](E),C="stack"in I(E),M=function(t){return h(m,t)&&m[t].m?m[t].c:0},R=function(){var e=t;u(this,A);var n=arguments.length,r=p(n<1?void 0:arguments[0]),i=p(n<2?void 0:arguments[1],"Error"),s=M(i);if(b(this,{type:E,name:i,message:r,code:s}),!g&&(this[e(542)]=i,this[e(637)]=r,this[e(973)]=s),C){var c=I(r);c[e(542)]=E,o(this,e(632),a(1,v(c.stack,1)))}},A=R[t(425)]=s(x),D=function(t){return{enumerable:!0,configurable:!0,get:t}},L=function(t){return D((function(){return w(this)[t]}))};g&&(l(A,t(973),L("code")),l(A,t(637),L(t(637))),l(A,t(542),L(t(542)))),o(A,t(443),a(1,R));var P=i((function(){return!(new z instanceof I)})),O=P||i((function(){var e=t;return x.toString!==f||String(new z(1,2))!==e(647)})),F=P||i((function(){return 25!==new z(1,t(974)).code})),N=P||25!==z[T]||25!==S[T],U=y?O||F||N:P;e({global:!0,constructor:!0,forced:U},{DOMException:U?R:z});var B,k,G,V,j=r(E),H=j[t(425)];for(V in O&&(y||z===j)&&c(H,t(526),f),F&&g&&z===j&&l(H,t(973),D((function(){var e=t;return M(d(this)[e(542)])}))),m)h(m,V)&&(k=(B=m[V]).s,G=a(6,B.c),!h(j,k)&&o(j,k,G),!h(H,k)&&o(H,k,G))}}),require_web_dom_exception_stack=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.dom-exception.stack.js"(){"use strict";var t=nz,e=require_export(),n=require_global(),r=require_get_built_in(),i=require_create_property_descriptor(),s=require_object_define_property().f,a=require_has_own_property(),o=require_an_instance(),c=require_inherit_if_required(),l=require_normalize_string_argument(),h=require_dom_exception_constants(),u=require_error_stack_clear(),d=require_descriptors(),f=require_is_pure(),p=t(949),m=r(t(636)),v=r(p),_=function(){var e=t;o(this,g);var n=arguments[e(449)],r=l(n<1?void 0:arguments[0]),a=l(n<2?void 0:arguments[1],"Error"),h=new v(r,a),d=m(r);return d[e(542)]=p,s(h,e(632),i(1,u(d[e(632)],1))),c(h,this,_),h},g=_[t(425)]=v.prototype,y="stack"in m(p),E=t(632)in new v(1,2),T=v&&d&&Object[t(512)](n,p),I=!(!T||T[t(446)]&&T[t(445)]),z=y&&!I&&!E;e({global:!0,constructor:!0,forced:f||z},{DOMException:z?_:v});var S,x,b,w=r(p),C=w[t(425)];if(C[t(443)]!==w)for(b in!f&&s(C,t(443),i(1,w)),h)a(h,b)&&(!a(w,x=(S=h[b]).s)&&s(w,x,i(6,S.c)))}}),require_web_dom_exception_to_string_tag=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.dom-exception.to-string-tag.js"(){var t=nz,e=require_get_built_in(),n=require_set_to_string_tag(),r=t(949);n(e(r),r)}}),require_web_clear_immediate=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.clear-immediate.js"(){var t=nz,e=require_export(),n=require_global(),r=require_task()[t(750)];e({global:!0,bind:!0,enumerable:!0,forced:n[t(975)]!==r},{clearImmediate:r})}}),require_engine_is_bun=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/engine-is-bun.js"(t,e){var n=nz;e[n(431)]=typeof Bun==n(432)&&Bun&&typeof Bun.version==n(470)}}),require_schedulers_fix=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/schedulers-fix.js"(t,e){"use strict";var n,r,i=nz,s=require_global(),a=require_function_apply(),o=require_is_callable(),c=require_engine_is_bun(),l=require_engine_user_agent(),h=require_array_slice(),u=require_validate_arguments_length(),d=s[i(599)],p=/MSIE .\./[i(467)](l)||c&&(n=i,(r=s.Bun[n(521)][n(465)]("."))[n(449)]<3||0==r[0]&&(r[1]<3||3==r[1]&&0==r[2]));e[i(431)]=function(t,e){var n=e?2:1;return p?function(r,i){var s=u(arguments[f(449)],1)>n,c=o(r)?r:d(r),l=s?h(arguments,n):[],p=s?function(){a(c,this,l)}:c;return e?t(p,i):t(p)}:t}}}),require_web_set_immediate=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.set-immediate.js"(){var t=nz,e=require_export(),n=require_global(),r=require_task()[t(540)],i=require_schedulers_fix(),s=n.setImmediate?i(r,!1):r;e({global:!0,bind:!0,enumerable:!0,forced:n.setImmediate!==s},{setImmediate:s})}}),require_web_immediate=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.immediate.js"(){require_web_clear_immediate(),require_web_set_immediate()}}),require_web_queue_microtask=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.queue-microtask.js"(){var t=nz,e=require_export(),n=require_global(),r=require_microtask(),i=require_a_callable(),s=require_validate_arguments_length(),a=require_engine_is_node(),o=n[t(682)];e({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(e){var n=t;s(arguments[n(449)],1),i(e);var c=a&&o[n(597)];r(c?c.bind(e):e)}})}}),require_web_self=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.self.js"(){"use strict";var t,e=nz,n=require_export(),r=require_global(),i=require_define_built_in_accessor(),s=require_descriptors(),a=TypeError,o=Object.defineProperty,c=r.self!==r;try{s?(t=Object.getOwnPropertyDescriptor(r,e(976)),(c||!t||!t[e(427)]||!t[e(433)])&&i(r,e(976),{get:function(){return r},set:function(t){var n=e;if(this!==r)throw a(n(977));o(r,n(976),{value:t,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):n({global:!0,simple:!0,forced:c},{self:r})}catch(t){}}}),require_map_helpers=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/map-helpers.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=Map[n(425)];e[n(431)]={Map:Map,set:r(i[n(540)]),get:r(i[n(427)]),has:r(i.has),remove:r(i[n(748)]),proto:i}}}),require_set_helpers=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/set-helpers.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=Set[n(425)];e.exports={Set:Set,add:r(i[n(747)]),has:r(i[n(546)]),remove:r(i.delete),proto:i,$has:i[n(546)],$keys:i[n(477)]}}}),require_web_structured_clone=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.structured-clone.js"(){var t,e=nz,n=require_is_pure(),r=require_export(),i=require_global(),s=require_get_built_in(),a=require_function_uncurry_this(),o=require_fails(),c=require_uid(),l=require_is_callable(),h=require_is_constructor(),u=require_is_null_or_undefined(),d=require_is_object(),p=require_is_symbol(),m=require_iterate(),v=require_an_object(),_=require_classof(),g=require_has_own_property(),y=require_create_property(),E=require_create_non_enumerable_property(),T=require_length_of_array_like(),I=require_validate_arguments_length(),z=require_regexp_get_flags(),S=require_map_helpers(),x=require_set_helpers(),b=require_error_stack_installable(),w=require_engine_v8_version(),C=require_engine_is_browser(),M=require_engine_is_deno(),R=require_engine_is_node(),A=i[e(578)],D=i[e(600)],L=i[e(720)],P=i[e(636)],O=i.EvalError,F=i[e(640)],N=i.ReferenceError,U=i[e(641)],B=i[e(607)],k=i[e(642)],G=i[e(978)],V=i.WebAssembly,j=V&&V.CompileError||P,H=V&&V.LinkError||P,q=V&&V[e(645)]||P,W=s(e(949)),Y=S.Map,X=S[e(546)],J=S[e(427)],K=S.set,Z=x.Set,$=x[e(747)],Q=s(e(578),e(477)),tt=a([].push),et=a((!0).valueOf),nt=a(1[e(525)]),rt=a(""[e(525)]),it=a(L[e(425)].getTime),st=c(e(979)),at=e(974),ot=e(980),ct=function(t){return!o((function(){var e=new(i[f(981)])([7]),n=t(e),r=t(A(7));return n==e||!n.has(7)||"object"!=typeof r||7!=r}))&&t},lt=function(t,e){return!o((function(){var n=f,r=new e,i=t({a:r,b:r});return!(i&&i.a===i.b&&i.a instanceof e&&i.a[n(632)]===r[n(632)])}))},ht=i[e(979)],ut=n||!lt(ht,P)||!lt(ht,W)||(t=ht,!!o((function(){var e=f,n=t(new(i[e(657)])([1],st,{cause:3}));return n[e(542)]!=e(657)||1!=n[e(656)][0]||n[e(637)]!=st||3!=n[e(631)]}))),dt=!ht&&ct((function(t){var n=e;return new G(st,{detail:t})[n(982)]})),ft=ct(ht)||dt,pt=function(t){throw new W(e(983)+t,at)},mt=function(t,n){var r=e;throw new W((n||r(984))+r(661)+t+r(985),at)},vt=function(t,n){var r=e;if(p(t)&&pt("Symbol"),!d(t))return t;if(n){if(X(n,t))return J(n,t)}else n=new Y;var a,o,c,h,u,f,m,v,I,S,x=_(t),w=!1;switch(x){case r(600):c=D(T(t)),w=!0;break;case r(578):c={},w=!0;break;case r(759):c=new Y,w=!0;break;case r(981):c=new Z,w=!0;break;case r(854):c=new RegExp(t[r(556)],z(t));break;case r(636):switch(o=t[r(542)]){case"AggregateError":c=s("AggregateError")([]);break;case r(639):c=O();break;case r(640):c=F();break;case r(991):c=N();break;case r(641):c=U();break;case"TypeError":c=B();break;case"URIError":c=k();break;case r(643):c=j();break;case r(644):c=H();break;case"RuntimeError":c=q();break;default:c=P()}w=!0;break;case r(949):c=new W(t.message,t[r(542)]),w=!0;break;case r(698):case"Int8Array":case r(934):case r(709):case r(992):case"Uint16Array":case r(993):case r(994):case r(995):case r(996):case"BigInt64Array":case r(912):a=i[x],d(a)||mt(x),c=new a(vt(t[r(703)],n),t[r(704)],x===r(698)?t[r(702)]:t.length);break;case r(997):try{c=new DOMQuad(vt(t.p1,n),vt(t.p2,n),vt(t.p3,n),vt(t.p4,n))}catch(e){ft?c=ft(t):mt(x)}break;case r(998):if(h=function(){var t,n=e;try{t=new(i[n(986)])}catch(e){try{t=new(i[n(987)])("")[n(988)]}catch(t){}}return t&&t[n(989)]&&t[n(990)]?t:null}(),h){for(u=0,f=T(t);u92||R&&w>94||C&&w>97)return!1;var n=new ArrayBuffer(8),r=ht(n,{transfer:[n]});return 0!=n[t(702)]||8!=r[t(702)]})),gt=function(t,n){var r=e;if(!d(t))throw B(r(1025));var s=[];m(t,(function(t){tt(s,v(t))}));var a,o,c,u,f,p,g=0,y=T(s);if(_t)for(u=ht(s,{transfer:s});g1&&!u(arguments[1])?v(arguments[1]):void 0,s=i?i[r(1037)]:void 0;return void 0!==s&&(n=new Y,gt(s,n)),vt(t,n)}})}}),require_web_set_interval=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.set-interval.js"(){var t=nz,e=require_export(),n=require_global(),r=require_schedulers_fix()(n.setInterval,!0);e({global:!0,bind:!0,forced:n[t(1038)]!==r},{setInterval:r})}}),require_web_set_timeout=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.set-timeout.js"(){var t=nz,e=require_export(),n=require_global(),r=require_schedulers_fix()(n[t(1039)],!0);e({global:!0,bind:!0,forced:n.setTimeout!==r},{setTimeout:r})}}),require_web_timers=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.timers.js"(){require_web_set_interval(),require_web_set_timeout()}}),require_url_constructor_detection=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/url-constructor-detection.js"(t,e){var n=nz,r=require_fails(),i=require_well_known_symbol(),s=require_is_pure(),a=i(n(491));e.exports=!r((function(){var t=n,e=new URL(t(1040),t(1041)),r=e[t(1042)],i="";return e.pathname="c%20d",r[t(604)]((function(e,n){r[t(748)]("b"),i+=n+e})),s&&!e[t(733)]||!r[t(688)]||"http://a/c%20d?a=1&c=3"!==e[t(1043)]||"3"!==r[t(427)]("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!r[a]||"a"!==new URL("https://a@b")[t(1044)]||"b"!==new URLSearchParams(new URLSearchParams(t(1045)))[t(427)]("a")||new URL(t(1046)).host!==t(1047)||new URL(t(1048))[t(1049)]!==t(1050)||i!==t(1051)||"x"!==new URL(t(1052),void 0)[t(800)]}))}}),require_string_punycode_to_ascii=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/internals/string-punycode-to-ascii.js"(t,e){var n=nz,r=require_function_uncurry_this(),i=2147483647,s=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,o=n(1053),c=RangeError,l=r(a.exec),h=Math[n(562)],u=String.fromCharCode,d=r("".charCodeAt),f=r([].join),p=r([][n(565)]),m=r(""[n(448)]),v=r(""[n(465)]),_=r(""[n(570)]),g=function(t){return t+22+75*(t<26)},y=function(t,e,n){var r=0;for(t=n?h(t/700):t>>1,t+=h(t/e);t>455;)t=h(t/35),r+=36;return h(r+36*t/(t+38))},E=function(t){var e=n,r=[];t=function(t){for(var e=[],n=0,r=t.length;n=55296&&i<=56319&&n=m&&ah((i-v)/z))throw c(o);for(v+=(I-m)*z,m=I,s=0;si)throw c(o);if(a==m){for(var S=v,x=36;;){var b=x<=_?1:x>=_+26?26:x-_;if(S0?arguments[0]:void 0))},_t=vt[n(425)];h(_t,{append:function(t,e){var r=n;w(arguments[r(449)],2);var i=P(this);J(i[r(674)],{key:I(t),value:I(e)}),i[r(1070)]()},delete:function(t){var e=n;w(arguments[e(449)],1);for(var r=P(this),i=r[e(674)],s=I(t),a=0;ae[n(447)]?1:-1})),e[t(1070)]()},forEach:function(t){for(var e,r=n,i=P(this)[r(674)],s=g(t,arguments[r(449)]>1?arguments[1]:void 0),a=0;a1?pt(arguments[1]):{})}}),v(B)&&(mt=function(t){var e=n;return m(this,G),new B(t,arguments[e(449)]>1?pt(arguments[1]):{})},G[n(443)]=mt,mt[n(425)]=G,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:mt}))),e[n(431)]={URLSearchParams:vt,getState:P}}}),require_web_url_constructor=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.url.constructor.js"(){"use strict";var t=nz;require_es_string_iterator();var e,n=require_export(),r=require_descriptors(),i=require_url_constructor_detection(),s=require_global(),a=require_function_bind_context(),o=require_function_uncurry_this(),c=require_define_built_in(),l=require_define_built_in_accessor(),h=require_an_instance(),u=require_has_own_property(),d=require_object_assign(),f=require_array_from(),p=require_array_slice_simple(),m=require_string_multibyte()[t(1076)],v=require_string_punycode_to_ascii(),_=require_to_string(),g=require_set_to_string_tag(),y=require_validate_arguments_length(),E=require_web_url_search_params_constructor(),T=require_internal_state(),I=T[t(540)],z=T[t(606)]("URL"),S=E[t(1077)],x=E[t(1078)],b=s[t(1079)],w=s[t(607)],C=s[t(1080)],M=Math.floor,R=Math[t(428)],A=o(""[t(620)]),D=o(/./[t(601)]),L=o([][t(549)]),P=o(1[t(526)]),O=o([].pop),F=o([].push),N=o(""[t(448)]),U=o([][t(1061)]),B=o(""[t(465)]),k=o(""[t(497)]),G=o(""[t(570)]),V=o([][t(691)]),j=t(1081),H=t(1082),q=t(1083),W=t(1084),Y=/[a-z]/i,X=/[\d+-.a-z]/i,J=/\d/,K=/^0x/i,Z=/^[0-7]+$/,$=/^\d+$/,Q=/^[\da-f]+$/i,tt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,et=/[\0\t\n\r #/:<>?@[\\\]^|]/,nt=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,rt=/[\t\n\r]/g,it=function(e){var n,r,i,s,a=t;if(typeof e==a(458)){for(n=[],r=0;r<4;r++)V(n,e%256),e=M(e/256);return L(n,".")}if(typeof e==a(469)){for(n="",i=function(t){for(var e=null,n=1,r=null,i=0,s=0;s<8;s++)0!==t[s]?(i>n&&(e=r,n=i),r=null,i=0):(null===r&&(r=s),++i);return i>n&&(e=r,n=i),e}(e),r=0;r<8;r++)s&&0===e[r]||(s&&(s=!1),i===r?(n+=r?":":"::",s=!0):(n+=P(e[r],16),r<7&&(n+=":")));return"["+n+"]"}return e},st={},at=d({},st,{" ":1,'"':1,"<":1,">":1,"`":1}),ot=d({},at,{"#":1,"?":1,"{":1,"}":1}),ct=d({},ot,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),lt=function(t,e){var n=m(t,0);return n>32&&n<127&&!u(e,t)?t:encodeURIComponent(t)},ht={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ut=function(e,n){var r;return 2==e[t(449)]&&D(Y,A(e,0))&&(":"==(r=A(e,1))||!n&&"|"==r)},dt=function(e){var n,r=t;return e[r(449)]>1&&ut(k(e,0,2))&&(2==e[r(449)]||"/"===(n=A(e,2))||"\\"===n||"?"===n||"#"===n)},ft=function(t){return"."===t||"%2e"===G(t)},pt=function(e){var n=t;return".."===(e=G(e))||"%2e."===e||e===n(1085)||e===n(1086)},mt={},vt={},_t={},gt={},yt={},Et={},Tt={},It={},zt={},St={},xt={},bt={},wt={},Ct={},Mt={},Rt={},At={},Dt={},Lt={},Pt={},Ot={},Ft=function(e,n,r){var i,s,a,o=t,c=_(e);if(n){if(s=this.parse(c))throw w(s);this.searchParams=null}else{if(void 0!==r&&(i=new Ft(r,!0)),s=this[o(1087)](c,null,i))throw w(s);(a=x(new S))[o(1088)](this),this[o(1042)]=a}};Ft[t(425)]={type:t(1079),parse:function(n,r,i){var s,a,o,c,l=t,h=this,d=r||mt,m=0,v="",g=!1,y=!1,E=!1;for(n=_(n),!r&&(h[l(1089)]="",h[l(1044)]="",h.password="",h[l(800)]=null,h[l(1090)]=null,h[l(1091)]=[],h[l(1069)]=null,h[l(1092)]=null,h[l(1093)]=!1,n=N(n,nt,"")),n=N(n,rt,""),s=f(n);m<=s[l(449)];){switch(a=s[m],d){case mt:if(!a||!D(Y,a)){if(r)return H;d=_t;continue}v+=G(a),d=vt;break;case vt:if(a&&(D(X,a)||"+"==a||"-"==a||"."==a))v+=G(a);else{if(":"!=a){if(r)return H;v="",d=_t,m=0;continue}if(r&&(h[l(1094)]()!=u(ht,v)||v==l(1095)&&(h[l(1096)]()||null!==h[l(1090)])||h[l(1089)]==l(1095)&&!h[l(800)]))return;if(h[l(1089)]=v,r)return void(h[l(1094)]()&&ht[h[l(1089)]]==h[l(1090)]&&(h[l(1090)]=null));v="","file"==h[l(1089)]?d=Ct:h[l(1094)]()&&i&&i[l(1089)]==h.scheme?d=gt:h[l(1094)]()?d=It:"/"==s[m+1]?(d=yt,m++):(h[l(1093)]=!0,F(h.path,""),d=Lt)}break;case _t:if(!i||i.cannotBeABaseURL&&"#"!=a)return H;if(i.cannotBeABaseURL&&"#"==a){h.scheme=i[l(1089)],h[l(1091)]=p(i[l(1091)]),h[l(1069)]=i.query,h[l(1092)]="",h[l(1093)]=!0,d=Ot;break}d=i[l(1089)]==l(1095)?Ct:Et;continue;case gt:if("/"!=a||"/"!=s[m+1]){d=Et;continue}d=zt,m++;break;case yt:if("/"==a){d=St;break}d=Dt;continue;case Et:if(h[l(1089)]=i.scheme,a==e)h[l(1044)]=i.username,h[l(1097)]=i.password,h[l(800)]=i[l(800)],h[l(1090)]=i[l(1090)],h[l(1091)]=p(i.path),h.query=i[l(1069)];else if("/"==a||"\\"==a&&h[l(1094)]())d=Tt;else if("?"==a)h[l(1044)]=i.username,h[l(1097)]=i.password,h[l(800)]=i.host,h.port=i[l(1090)],h[l(1091)]=p(i[l(1091)]),h[l(1069)]="",d=Pt;else{if("#"!=a){h[l(1044)]=i[l(1044)],h[l(1097)]=i[l(1097)],h[l(800)]=i[l(800)],h[l(1090)]=i[l(1090)],h[l(1091)]=p(i[l(1091)]),h[l(1091)][l(449)]--,d=Dt;continue}h[l(1044)]=i[l(1044)],h[l(1097)]=i[l(1097)],h[l(800)]=i[l(800)],h[l(1090)]=i[l(1090)],h[l(1091)]=p(i[l(1091)]),h.query=i.query,h.fragment="",d=Ot}break;case Tt:if(!h.isSpecial()||"/"!=a&&"\\"!=a){if("/"!=a){h.username=i.username,h[l(1097)]=i[l(1097)],h.host=i[l(800)],h[l(1090)]=i.port,d=Dt;continue}d=St}else d=zt;break;case It:if(d=zt,"/"!=a||"/"!=A(v,m+1))continue;m++;break;case zt:if("/"!=a&&"\\"!=a){d=St;continue}break;case St:if("@"==a){g&&(v="%40"+v),g=!0,o=f(v);for(var T=0;T65535)return W;h[l(1090)]=h.isSpecial()&&S===ht[h.scheme]?null:S,v=""}if(r)return;d=At;continue}return W}v+=a;break;case Ct:if(h[l(1089)]=l(1095),"/"==a||"\\"==a)d=Mt;else{if(!i||i.scheme!=l(1095)){d=Dt;continue}if(a==e)h[l(800)]=i[l(800)],h[l(1091)]=p(i.path),h.query=i[l(1069)];else if("?"==a)h[l(800)]=i[l(800)],h[l(1091)]=p(i[l(1091)]),h[l(1069)]="",d=Pt;else{if("#"!=a){!dt(L(p(s,m),""))&&(h[l(800)]=i[l(800)],h[l(1091)]=p(i.path),h[l(1099)]()),d=Dt;continue}h.host=i[l(800)],h[l(1091)]=p(i[l(1091)]),h[l(1069)]=i.query,h.fragment="",d=Ot}}break;case Mt:if("/"==a||"\\"==a){d=Rt;break}i&&i[l(1089)]==l(1095)&&!dt(L(p(s,m),""))&&(ut(i.path[0],!0)?F(h.path,i.path[0]):h[l(800)]=i[l(800)]),d=Dt;continue;case Rt:if(a==e||"/"==a||"\\"==a||"?"==a||"#"==a){if(!r&&ut(v))d=Dt;else if(""==v){if(h[l(800)]="",r)return;d=At}else{if(c=h[l(1098)](v))return c;if(h[l(800)]==l(1100)&&(h[l(800)]=""),r)return;v="",d=At}continue}v+=a;break;case At:if(h.isSpecial()){if(d=Dt,"/"!=a&&"\\"!=a)continue}else if(r||"?"!=a)if(r||"#"!=a){if(a!=e&&(d=Dt,"/"!=a))continue}else h[l(1092)]="",d=Ot;else h.query="",d=Pt;break;case Dt:if(a==e||"/"==a||"\\"==a&&h[l(1094)]()||!r&&("?"==a||"#"==a)){if(pt(v)?(h[l(1099)](),"/"!=a&&("\\"!=a||!h[l(1094)]())&&F(h[l(1091)],"")):ft(v)?"/"!=a&&("\\"!=a||!h[l(1094)]())&&F(h[l(1091)],""):("file"==h[l(1089)]&&!h[l(1091)][l(449)]&&ut(v)&&(h.host&&(h[l(800)]=""),v=A(v,0)+":"),F(h.path,v)),v="","file"==h.scheme&&(a==e||"?"==a||"#"==a))for(;h[l(1091)][l(449)]>1&&""===h[l(1091)][0];)U(h[l(1091)]);"?"==a?(h.query="",d=Pt):"#"==a&&(h[l(1092)]="",d=Ot)}else v+=lt(a,ot);break;case Lt:"?"==a?(h.query="",d=Pt):"#"==a?(h[l(1092)]="",d=Ot):a!=e&&(h.path[0]+=lt(a,st));break;case Pt:r||"#"!=a?a!=e&&("'"==a&&h[l(1094)]()?h[l(1069)]+=l(1101):h[l(1069)]+="#"==a?"%23":lt(a,st)):(h[l(1092)]="",d=Ot);break;case Ot:a!=e&&(h.fragment+=lt(a,at))}m++}},parseHost:function(e){var n,r,i,s=t;if("["==A(e,0)){if("]"!=A(e,e.length-1))return q;if(n=function(t){var e,n,r,i,s,a,o,c=[0,0,0,0,0,0,0,0],l=0,h=null,u=0,d=function(){return A(t,u)};if(":"==d()){if(":"!=A(t,1))return;u+=2,h=++l}for(;d();){if(8==l)return;if(":"!=d()){for(e=n=0;n<4&&D(Q,d());)e=16*e+C(d(),16),u++,n++;if("."==d()){if(0==n)return;if(u-=n,l>6)return;for(r=0;d();){if(i=null,r>0){if(!("."==d()&&r<4))return;u++}if(!D(J,d()))return;for(;D(J,d());){if(s=C(d(),10),null===i)i=s;else{if(0==i)return;i=10*i+s}if(i>255)return;u++}c[l]=256*c[l]+i,2!=++r&&4!=r||l++}if(4!=r)return;break}if(":"==d()){if(u++,!d())return}else if(d())return;c[l++]=e}else{if(null!==h)return;u++,h=++l}}if(null!==h)for(a=l-h,l=7;0!=l&&a>0;)o=c[l],c[l--]=c[h+a-1],c[h+--a]=o;else if(8!=l)return;return c}(k(e,1,-1)),!n)return q;this[s(800)]=n}else if(this.isSpecial()){if(e=v(e),D(tt,e))return q;if(n=function(e){var n,r,i,s,a,o,c,l=t,h=B(e,".");if(h[l(449)]&&""==h[h[l(449)]-1]&&h[l(449)]--,(n=h[l(449)])>4)return e;for(r=[],i=0;i1&&"0"==A(s,0)&&(a=D(K,s)?16:8,s=k(s,8==a?1:2)),""===s)o=0;else{if(!D(10==a?$:8==a?Z:Q,s))return e;o=C(s,a)}F(r,o)}for(i=0;i=R(256,5-n))return null}else if(o>255)return null;for(c=O(r),i=0;i1?arguments[1]:void 0,a=I(i,new Ft(e,!1,s));!r&&(i.href=a[n(1071)](),i[n(1103)]=a[n(1107)](),i[n(799)]=a[n(1108)](),i[n(1044)]=a[n(1109)](),i[n(1097)]=a.getPassword(),i.host=a[n(1110)](),i[n(1111)]=a[n(1112)](),i[n(1090)]=a[n(1113)](),i[n(1114)]=a[n(1115)](),i.search=a.getSearch(),i[n(1042)]=a[n(1116)](),i.hash=a[n(1117)]())},kt=Bt[t(425)],Gt=function(t,e){return{get:function(){return z(this)[t]()},set:e&&function(t){return z(this)[e](t)},configurable:!0,enumerable:!0}};r&&(l(kt,"href",Gt(t(1071),t(1118))),l(kt,t(1103),Gt(t(1107))),l(kt,t(799),Gt("getProtocol",t(1119))),l(kt,t(1044),Gt(t(1109),t(1120))),l(kt,t(1097),Gt(t(1121),t(1122))),l(kt,t(800),Gt("getHost","setHost")),l(kt,"hostname",Gt("getHostname",t(1123))),l(kt,t(1090),Gt(t(1113),t(1124))),l(kt,t(1114),Gt(t(1115),"setPathname")),l(kt,t(625),Gt("getSearch","setSearch")),l(kt,t(1042),Gt(t(1116))),l(kt,t(1049),Gt(t(1117),t(1125)))),c(kt,t(733),(function(){var e=t;return z(this)[e(1071)]()}),{enumerable:!0}),c(kt,t(526),(function(){return z(this).serialize()}),{enumerable:!0}),b&&(Nt=b[t(1126)],Ut=b[t(1127)],Nt&&c(Bt,"createObjectURL",a(Nt,b)),Ut&&c(Bt,t(1127),a(Ut,b))),g(Bt,t(1079)),n({global:!0,constructor:!0,forced:!i,sham:!r},{URL:Bt})}}),require_web_url=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.url.js"(){require_web_url_constructor()}}),require_web_url_to_json=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.url.to-json.js"(){"use strict";var t=require_export(),e=require_function_call();t({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){var t=f;return e(URL[t(425)][t(526)],this)}})}}),require_web_url_search_params=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/modules/web.url-search-params.js"(){require_web_url_search_params_constructor()}}),require_stable=__commonJS({"node_modules/.pnpm/core-js@3.27.2/node_modules/core-js/stable/index.js"(t,e){var n=nz;require_es_symbol(),require_es_symbol_description(),require_es_symbol_async_iterator(),require_es_symbol_has_instance(),require_es_symbol_is_concat_spreadable(),require_es_symbol_iterator(),require_es_symbol_match(),require_es_symbol_match_all(),require_es_symbol_replace(),require_es_symbol_search(),require_es_symbol_species(),require_es_symbol_split(),require_es_symbol_to_primitive(),require_es_symbol_to_string_tag(),require_es_symbol_unscopables(),require_es_error_cause(),require_es_error_to_string(),require_es_aggregate_error(),require_es_aggregate_error_cause(),require_es_array_at(),require_es_array_concat(),require_es_array_copy_within(),require_es_array_every(),require_es_array_fill(),require_es_array_filter(),require_es_array_find(),require_es_array_find_index(),require_es_array_find_last(),require_es_array_find_last_index(),require_es_array_flat(),require_es_array_flat_map(),require_es_array_for_each(),require_es_array_from(),require_es_array_includes(),require_es_array_index_of(),require_es_array_is_array(),require_es_array_iterator(),require_es_array_join(),require_es_array_last_index_of(),require_es_array_map(),require_es_array_of(),require_es_array_push(),require_es_array_reduce(),require_es_array_reduce_right(),require_es_array_reverse(),require_es_array_slice(),require_es_array_some(),require_es_array_sort(),require_es_array_species(),require_es_array_splice(),require_es_array_unscopables_flat(),require_es_array_unscopables_flat_map(),require_es_array_unshift(),require_es_array_buffer_constructor(),require_es_array_buffer_is_view(),require_es_array_buffer_slice(),require_es_data_view(),require_es_date_get_year(),require_es_date_now(),require_es_date_set_year(),require_es_date_to_gmt_string(),require_es_date_to_iso_string(),require_es_date_to_json(),require_es_date_to_primitive(),require_es_date_to_string(),require_es_escape(),require_es_function_bind(),require_es_function_has_instance(),require_es_function_name(),require_es_global_this(),require_es_json_stringify(),require_es_json_to_string_tag(),require_es_map(),require_es_math_acosh(),require_es_math_asinh(),require_es_math_atanh(),require_es_math_cbrt(),require_es_math_clz32(),require_es_math_cosh(),require_es_math_expm1(),require_es_math_fround(),require_es_math_hypot(),require_es_math_imul(),require_es_math_log10(),require_es_math_log1p(),require_es_math_log2(),require_es_math_sign(),require_es_math_sinh(),require_es_math_tanh(),require_es_math_to_string_tag(),require_es_math_trunc(),require_es_number_constructor(),require_es_number_epsilon(),require_es_number_is_finite(),require_es_number_is_integer(),require_es_number_is_nan(),require_es_number_is_safe_integer(),require_es_number_max_safe_integer(),require_es_number_min_safe_integer(),require_es_number_parse_float(),require_es_number_parse_int(),require_es_number_to_exponential(),require_es_number_to_fixed(),require_es_number_to_precision(),require_es_object_assign(),require_es_object_create(),require_es_object_define_getter(),require_es_object_define_properties(),require_es_object_define_property(),require_es_object_define_setter(),require_es_object_entries(),require_es_object_freeze(),require_es_object_from_entries(),require_es_object_get_own_property_descriptor(),require_es_object_get_own_property_descriptors(),require_es_object_get_own_property_names(),require_es_object_get_prototype_of(),require_es_object_has_own(),require_es_object_is(),require_es_object_is_extensible(),require_es_object_is_frozen(),require_es_object_is_sealed(),require_es_object_keys(),require_es_object_lookup_getter(),require_es_object_lookup_setter(),require_es_object_prevent_extensions(),require_es_object_proto(),require_es_object_seal(),require_es_object_set_prototype_of(),require_es_object_to_string(),require_es_object_values(),require_es_parse_float(),require_es_parse_int(),require_es_promise(),require_es_promise_all_settled(),require_es_promise_any(),require_es_promise_finally(),require_es_reflect_apply(),require_es_reflect_construct(),require_es_reflect_define_property(),require_es_reflect_delete_property(),require_es_reflect_get(),require_es_reflect_get_own_property_descriptor(),require_es_reflect_get_prototype_of(),require_es_reflect_has(),require_es_reflect_is_extensible(),require_es_reflect_own_keys(),require_es_reflect_prevent_extensions(),require_es_reflect_set(),require_es_reflect_set_prototype_of(),require_es_reflect_to_string_tag(),require_es_regexp_constructor(),require_es_regexp_dot_all(),require_es_regexp_exec(),require_es_regexp_flags(),require_es_regexp_sticky(),require_es_regexp_test(),require_es_regexp_to_string(),require_es_set(),require_es_string_at_alternative(),require_es_string_code_point_at(),require_es_string_ends_with(),require_es_string_from_code_point(),require_es_string_includes(),require_es_string_iterator(),require_es_string_match(),require_es_string_match_all(),require_es_string_pad_end(),require_es_string_pad_start(),require_es_string_raw(),require_es_string_repeat(),require_es_string_replace(),require_es_string_replace_all(),require_es_string_search(),require_es_string_split(),require_es_string_starts_with(),require_es_string_substr(),require_es_string_trim(),require_es_string_trim_end(),require_es_string_trim_start(),require_es_string_anchor(),require_es_string_big(),require_es_string_blink(),require_es_string_bold(),require_es_string_fixed(),require_es_string_fontcolor(),require_es_string_fontsize(),require_es_string_italics(),require_es_string_link(),require_es_string_small(),require_es_string_strike(),require_es_string_sub(),require_es_string_sup(),require_es_typed_array_float32_array(),require_es_typed_array_float64_array(),require_es_typed_array_int8_array(),require_es_typed_array_int16_array(),require_es_typed_array_int32_array(),require_es_typed_array_uint8_array(),require_es_typed_array_uint8_clamped_array(),require_es_typed_array_uint16_array(),require_es_typed_array_uint32_array(),require_es_typed_array_at(),require_es_typed_array_copy_within(),require_es_typed_array_every(),require_es_typed_array_fill(),require_es_typed_array_filter(),require_es_typed_array_find(),require_es_typed_array_find_index(),require_es_typed_array_find_last(),require_es_typed_array_find_last_index(),require_es_typed_array_for_each(),require_es_typed_array_from(),require_es_typed_array_includes(),require_es_typed_array_index_of(),require_es_typed_array_iterator(),require_es_typed_array_join(),require_es_typed_array_last_index_of(),require_es_typed_array_map(),require_es_typed_array_of(),require_es_typed_array_reduce(),require_es_typed_array_reduce_right(),require_es_typed_array_reverse(),require_es_typed_array_set(),require_es_typed_array_slice(),require_es_typed_array_some(),require_es_typed_array_sort(),require_es_typed_array_subarray(),require_es_typed_array_to_locale_string(),require_es_typed_array_to_string(),require_es_unescape(),require_es_weak_map(),require_es_weak_set(),require_web_atob(),require_web_btoa(),require_web_dom_collections_for_each(),require_web_dom_collections_iterator(),require_web_dom_exception_constructor(),require_web_dom_exception_stack(),require_web_dom_exception_to_string_tag(),require_web_immediate(),require_web_queue_microtask(),require_web_self(),require_web_structured_clone(),require_web_timers(),require_web_url(),require_web_url_to_json(),require_web_url_search_params(),e[n(431)]=require_path()}}),require_runtime=__commonJS({"node_modules/.pnpm/regenerator-runtime@0.13.11/node_modules/regenerator-runtime/runtime.js"(t,e){var n=nz,r=function(t){"use strict";var e,n=f,r=Object[n(425)],i=r.hasOwnProperty,s=Object[n(420)]||function(t,e,r){var i=n;t[e]=r[i(439)]},a="function"==typeof Symbol?Symbol:{},o=a[n(491)]||n(675),c=a[n(624)]||n(1128),l=a[n(575)]||n(1129);function h(t,e,r){return Object[n(420)](t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},"")}catch(t){h=function(t,e,n){return t[e]=n}}function u(t,e,r,i){var a=n,o=e&&e[a(425)]instanceof y?e:y,c=Object[a(419)](o.prototype),l=new D(i||[]);return s(c,a(1130),{value:C(t,r,l)}),c}function d(t,e,r){var i=n;try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:i(437),arg:t}}}t[n(1131)]=u;var p=n(1132),m="suspendedYield",v=n(1133),_=n(1134),g={};function y(){}function E(){}function T(){}var I={};h(I,o,(function(){return this}));var z=Object.getPrototypeOf,S=z&&z(z(L([])));S&&S!==r&&i.call(S,o)&&(I=S);var x=T.prototype=y[n(425)]=Object[n(419)](I);function b(t){var e=n;[e(436),"throw",e(1137)][e(604)]((function(e){h(t,e,(function(t){return this[f(1130)](e,t)}))}))}function w(t,e){var r;function a(n,r,s,o){var c=f,l=d(t[n],t,r);if(l[c(452)]!==c(437)){var h=l[c(1141)],u=h[c(439)];return u&&typeof u===c(469)&&i[c(429)](u,"__await")?e[c(440)](u.__await)[c(829)]((function(t){a(c(436),t,s,o)}),(function(t){a(c(437),t,s,o)})):e.resolve(u).then((function(t){h.value=t,s(h)}),(function(t){return a(c(437),t,s,o)}))}o(l[c(1141)])}s(this,n(1130),{value:function(t,n){function i(){return new e((function(e,r){a(t,n,e,r)}))}return r=r?r[f(829)](i,i):i()}})}function C(t,e,n){var r=p;return function(i,s){var a=f;if(r===v)throw new Error(a(1144));if(r===_){if("throw"===i)throw s;return P()}for(n[a(1145)]=i,n[a(1141)]=s;;){var o=n[a(1146)];if(o){var c=M(o,n);if(c){if(c===g)continue;return c}}if(n[a(1145)]===a(436))n[a(1147)]=n[a(1148)]=n.arg;else if(n[a(1145)]===a(437)){if(r===p)throw r=_,n[a(1141)];n[a(1149)](n[a(1141)])}else"return"===n[a(1145)]&&n.abrupt(a(1137),n[a(1141)]);r=v;var l=d(t,e,n);if("normal"===l[a(452)]){if(r=n[a(438)]?_:m,l[a(1141)]===g)continue;return{value:l.arg,done:n[a(438)]}}l[a(452)]===a(437)&&(r=_,n.method=a(437),n[a(1141)]=l.arg)}}}function M(t,r){var i=n,s=r[i(1145)],a=t[i(491)][s];if(a===e)return r[i(1146)]=null,s===i(437)&&t[i(491)].return&&(r[i(1145)]=i(1137),r[i(1141)]=e,M(t,r),r[i(1145)]===i(437))||s!==i(1137)&&(r[i(1145)]=i(437),r.arg=new TypeError(i(1150)+s+i(1151))),g;var o=d(a,t.iterator,r.arg);if("throw"===o.type)return r[i(1145)]=i(437),r[i(1141)]=o[i(1141)],r.delegate=null,g;var c=o[i(1141)];return c?c[i(438)]?(r[t[i(1152)]]=c[i(439)],r[i(436)]=t[i(1153)],r.method!==i(1137)&&(r[i(1145)]=i(436),r[i(1141)]=e),r.delegate=null,g):c:(r[i(1145)]=i(437),r[i(1141)]=new TypeError("iterator result is not an object"),r[i(1146)]=null,g)}function R(t){var e=n,r={tryLoc:t[0]};1 in t&&(r[e(1155)]=t[1]),2 in t&&(r[e(1156)]=t[2],r[e(1157)]=t[3]),this[e(1158)].push(r)}function A(t){var e=n,r=t[e(1159)]||{};r[e(452)]="normal",delete r[e(1141)],t.completion=r}function D(t){var e=n;this[e(1158)]=[{tryLoc:"root"}],t[e(604)](R,this),this[e(1160)](!0)}function L(t){var r=n;if(t){var s=t[o];if(s)return s[r(429)](t);if(typeof t.next===r(432))return t;if(!isNaN(t.length)){var a=-1,c=function n(){for(var s=r;++a=0;--o){var c=this[r(1158)][o],l=c.completion;if(c[r(1162)]===r(1163))return a(r(887));if(c[r(1162)]<=this.prev){var h=i[r(429)](c,r(1155)),u=i[r(429)](c,r(1156));if(h&&u){if(this[r(1164)]=0;--s){var a=this[r(1158)][s];if(a[r(1162)]<=this[r(1164)]&&i.call(a,"finallyLoc")&&this[r(1164)]=0;--r){var i=this[e(1158)][r];if(i[e(1156)]===t)return this[e(1168)](i[e(1159)],i[e(1157)]),A(i),g}},catch:function(t){for(var e=n,r=this[e(1158)][e(449)]-1;r>=0;--r){var i=this.tryEntries[r];if(i[e(1162)]===t){var s=i[e(1159)];if("throw"===s[e(452)]){var a=s[e(1141)];A(i)}return a}}throw new Error(e(1170))},delegateYield:function(t,r,i){var s=n;return this.delegate={iterator:L(t),resultName:r,nextLoc:i},"next"===this[s(1145)]&&(this.arg=e),g}},t}(typeof e===n(469)?e[n(431)]:{});try{regeneratorRuntime=r}catch(t){"object"==typeof globalThis?globalThis[n(1171)]=r:Function("r",n(1172))(r)}}}),require_loglevel=__commonJS({"node_modules/.pnpm/loglevel@1.8.1/node_modules/loglevel/lib/loglevel.js"(t,e){!function(t,n){"use strict";var r=f;typeof define===r(432)&&define[r(1173)]?define(n):typeof e===r(469)&&e[r(431)]?e[r(431)]=n():t[r(695)]=n()}(t,(function(){"use strict";var t=f,e=function(){},n=t(430),r=typeof window!==n&&typeof window[t(1174)]!==n&&/Trident\/|MSIE /.test(window.navigator[t(518)]),i=["trace","debug",t(1175),t(1176),t(819)];function s(e,n){var r=t,i=e[n];if(typeof i[r(511)]===r(432))return i[r(511)](e);try{return Function[r(425)][r(511)][r(429)](i,e)}catch(t){return function(){var t=r;return Function[t(425)].apply[t(441)](i,[e,arguments])}}}function a(){var e=t;console[e(695)]&&(console[e(695)][e(441)]?console[e(695)].apply(console,arguments):Function[e(425)][e(441)][e(441)](console.log,[console,arguments])),console.trace&&console[e(1177)]()}function o(n,r){for(var s=t,a=0;a=0&&t<=h[s(1184)].SILENT))throw"log.setLevel() called with invalid level: "+t;if(a=t,!1!==r&&function(t){var e=c,r=(i[t]||e(1180))[e(736)]();if(typeof window!==n&&u){try{return void(window[e(1181)][u]=r)}catch(t){}try{window[e(582)][e(1182)]=encodeURIComponent(u)+"="+r+";"}catch(t){}}}(t),o[s(429)](h,t,e),typeof console===n&&te?1:t0))break;if(null===e[r(935)])break;if(n(t,e.right[r(447)])>0&&(l=e[r(935)],e[r(935)]=l[r(683)],l[r(683)]=e,null===(e=l)[r(935)]))break;a.right=e,a=e,e=e[r(935)]}}return a[r(935)]=e[r(683)],o.left=e[r(935)],e.left=s[r(935)],e.right=s[r(683)],e}function o(t,e,n,r){var s=f,o=new i(t,e);if(null===n)return o[s(683)]=o[s(935)]=null,o;var c=r(t,(n=a(t,n,r)).key);return c<0?(o[s(683)]=n[s(683)],o[s(935)]=n,n[s(683)]=null):c>=0&&(o[s(935)]=n[s(935)],o[s(683)]=n,n[s(935)]=null),o}function c(t,e,n){var r=f,i=null,s=null;if(e){var o=n((e=a(t,e,n))[r(447)],t);0===o?(i=e[r(683)],s=e[r(935)]):o<0?(s=e[r(935)],e[r(935)]=null,i=e):(i=e[r(683)],e[r(683)]=null,s=e)}return{left:i,right:s}}function l(t,e,n,r,i){var s=f;if(t){r(""+e+s(n?1196:1197)+i(t)+"\n");var a=e+s(n?1198:1199);t[s(683)]&&l(t[s(683)],a,!1,r,i),t[s(935)]&&l(t[s(935)],a,!0,r,i)}}var h=function(){var t=f;function e(t){var e=f;void 0===t&&(t=s),this[e(1200)]=null,this[e(1201)]=0,this[e(1202)]=t}return e[t(425)][t(1203)]=function(e,n){var r=t;return this[r(1201)]++,this[r(1200)]=o(e,n,this[r(1200)],this[r(1202)])},e[t(425)][t(747)]=function(e,n){var r=t,s=new i(e,n);null===this._root&&(s[r(683)]=s[r(935)]=null,this[r(1201)]++,this[r(1200)]=s);var o=this[r(1202)],c=a(e,this[r(1200)],o),l=o(e,c[r(447)]);return 0===l?this[r(1200)]=c:(l<0?(s[r(683)]=c[r(683)],s[r(935)]=c,c[r(683)]=null):l>0&&(s[r(935)]=c[r(935)],s[r(683)]=c,c[r(935)]=null),this[r(1201)]++,this[r(1200)]=s),this[r(1200)]},e.prototype[t(1204)]=function(e){var n=t;this[n(1200)]=this[n(1205)](e,this[n(1200)],this[n(1202)])},e.prototype._remove=function(e,n,r){var i,s=t;return null===n?null:0===r(e,(n=a(e,n,r)).key)?(null===n[s(683)]?i=n[s(935)]:(i=a(e,n[s(683)],r))[s(935)]=n[s(935)],this[s(1201)]--,i):n},e[t(425)][t(1161)]=function(){var e=t,n=this[e(1200)];if(n){for(;n[e(683)];)n=n.left;return this[e(1200)]=a(n.key,this[e(1200)],this[e(1202)]),this[e(1200)]=this[e(1205)](n[e(447)],this[e(1200)],this[e(1202)]),{key:n[e(447)],data:n[e(571)]}}return null},e[t(425)][t(1206)]=function(e){for(var n=t,r=this[n(1200)],i=this[n(1202)];r;){var s=i(e,r[n(447)]);if(0===s)return r;r=s<0?r[n(683)]:r[n(935)]}return null},e.prototype[t(932)]=function(e){var n=t;return this[n(1200)]&&(this._root=a(e,this._root,this._comparator),0!==this._comparator(e,this[n(1200)].key))?null:this[n(1200)]},e[t(425)][t(1207)]=function(e){for(var n=t,r=this._root,i=this[n(1202)];r;){var s=i(e,r[n(447)]);if(0===s)return!0;r=s<0?r[n(683)]:r[n(935)]}return!1},e.prototype[t(604)]=function(e,n){for(var r=t,i=this._root,s=[],a=!1;!a;)null!==i?(s[r(565)](i),i=i.left):0!==s[r(449)]?(i=s[r(1161)](),e[r(429)](n,i),i=i[r(935)]):a=!0;return this},e[t(425)][t(1208)]=function(e,n,r,i){for(var s=t,a=[],o=this[s(1202)],c=this[s(1200)];0!==a[s(449)]||c;)if(c)a.push(c),c=c[s(683)];else{if(o((c=a[s(1161)]()).key,n)>0)break;if(o(c[s(447)],e)>=0&&r[s(429)](i,c))return this;c=c[s(935)]}return this},e[t(425)].keys=function(){var e=t,n=[];return this[e(604)]((function(t){var r=e,i=t.key;return n[r(565)](i)})),n},e[t(425)].values=function(){var e=t,n=[];return this[e(604)]((function(t){var r=e,i=t[r(571)];return n[r(565)](i)})),n},e[t(425)][t(563)]=function(){var e=t;return this._root?this.minNode(this[e(1200)])[e(447)]:null},e[t(425)][t(486)]=function(){var e=t;return this[e(1200)]?this.maxNode(this[e(1200)])[e(447)]:null},e[t(425)][t(1209)]=function(e){var n=t;if(void 0===e&&(e=this._root),e)for(;e[n(683)];)e=e[n(683)];return e},e[t(425)][t(1210)]=function(e){var n=t;if(void 0===e&&(e=this._root),e)for(;e.right;)e=e[n(935)];return e},e[t(425)].at=function(e){for(var n=t,r=this[n(1200)],i=!1,s=0,a=[];!i;)if(r)a[n(565)](r),r=r[n(683)];else if(a[n(449)]>0){if(r=a[n(1161)](),s===e)return r;s++,r=r.right}else i=!0;return null},e[t(425)][t(436)]=function(e){var n=t,r=this[n(1200)],i=null;if(e.right){for(i=e[n(935)];i[n(683)];)i=i.left;return i}for(var s=this[n(1202)];r;){var a=s(e[n(447)],r[n(447)]);if(0===a)break;a<0?(i=r,r=r[n(683)]):r=r[n(935)]}return i},e.prototype[t(1164)]=function(e){var n=t,r=this._root,i=null;if(null!==e[n(683)]){for(i=e[n(683)];i[n(935)];)i=i.right;return i}for(var s=this[n(1202)];r;){var a=s(e.key,r[n(447)]);if(0===a)break;a<0?r=r[n(683)]:(i=r,r=r.right)}return i},e[t(425)][t(750)]=function(){return this[t(1200)]=null,this._size=0,this},e[t(425)][t(1211)]=function(){return function(t){for(var e=f,n=t,r=[],s=!1,a=new i(null,null),o=a;!s;)n?(r[e(565)](n),n=n[e(683)]):r[e(449)]>0?n=(n=o=o.next=r[e(1161)]())[e(935)]:s=!0;return o[e(436)]=null,a[e(436)]}(this[t(1200)])},e[t(425)][t(1212)]=function(e,n,r){var s=t;void 0===n&&(n=[]),void 0===r&&(r=!1);var a=e.length,o=this._comparator;if(r&&p(e,n,0,a-1,o),null===this[s(1200)])this[s(1200)]=u(e,n,0,a),this._size=a;else{var c=function(t,e,n){for(var r=f,s=new i(null,null),a=s,o=t,c=e;null!==o&&null!==c;)n(o[r(447)],c[r(447)])<0?(a.next=o,o=o[r(436)]):(a[r(436)]=c,c=c.next),a=a[r(436)];return null!==o?a[r(436)]=o:null!==c&&(a[r(436)]=c),s[r(436)]}(this[s(1211)](),function(t,e){for(var n=f,r=new i(null,null),s=r,a=0;a0){var o=n+Math[s(562)](a/2),c=t[o],l=e[o],h=new i(c,l);return h.left=u(t,e,n,o),h[s(935)]=u(t,e,o+1,r),h}return null}function d(t,e,n){var r=f,i=n-e;if(i>0){var s=e+Math.floor(i/2),a=d(t,e,s),o=t[r(810)];return o[r(683)]=a,t[r(810)]=t[r(810)][r(436)],o[r(935)]=d(t,s+1,n),o}return null}function p(t,e,n,r,i){if(!(n>=r)){for(var s=t[n+r>>1],a=n-1,o=r+1;;){do{a++}while(i(t[a],s)<0);do{o--}while(i(t[o],s)>0);if(a>=o)break;var c=t[a];t[a]=t[o],t[o]=c,c=e[a],e[a]=e[o],e[o]=c}p(t,e,n,o,i),p(t,e,o+1,r,i)}}var m=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},v=function(t,e){if(e.ur.xe.x?1:t.ye.y?1:0}}]),r(i,[{key:"link",value:function(t){var e=n;if(t[e(1220)]===this.point)throw new Error(e(1224));for(var r=t[e(1220)][e(1223)],i=0,s=r[e(449)];i=0&&l>=0?oh?-1:0:a<0&&l<0?oh?1:0:la?1:0}}}]),i}(),D=0,L=function(){var n=t;function i(t,r,s,a){var o=n;e(this,i),this.id=++D,this.leftSE=t,t.segment=this,t[o(1226)]=r,this.rightSE=r,r.segment=this,r[o(1226)]=t,this[o(1236)]=s,this[o(1237)]=a}return r(i,null,[{key:n(1218),value:function(t,e){var r=n,i=t.leftSE[r(1220)].x,s=e.leftSE[r(1220)].x,a=t[r(1233)][r(1220)].x,o=e[r(1233)].point.x;if(oc&&l>h)return-1;var d=t[r(1235)](e[r(1234)][r(1220)]);if(d<0)return 1;if(d>0)return-1;var f=e.comparePoint(t[r(1233)][r(1220)]);return 0!==f?f:-1}if(i>s){if(cl&&c>u)return 1;var p=e[r(1235)](t[r(1234)][r(1220)]);if(0!==p)return p;var m=t[r(1235)](e[r(1233)][r(1220)]);return m<0?1:m>0?-1:1}if(cl)return 1;if(ao){var _=t.comparePoint(e[r(1233)][r(1220)]);if(_<0)return 1;if(_>0)return-1}if(a!==o){var g=h-c,y=a-i,E=u-l,T=o-s;if(g>y&&ET)return-1}return a>o?1:au?1:t.ide.id?1:0}}]),r(i,[{key:n(1238),value:function(t){var e=n;this[e(1233)]=t,this[e(1233)][e(1222)]=this,this.rightSE[e(1226)]=this.leftSE,this[e(1234)][e(1226)]=this[e(1233)]}},{key:"bbox",value:function(){var t=n,e=this[t(1234)].point.y,r=this[t(1233)][t(1220)].y;return{ll:{x:this.leftSE[t(1220)].x,y:er?e:r}}}},{key:n(1239),value:function(){var t=n;return{x:this[t(1233)].point.x-this[t(1234)].point.x,y:this.rightSE[t(1220)].y-this.leftSE[t(1220)].y}}},{key:"isAnEndpoint",value:function(t){var e=n;return t.x===this[e(1234)][e(1220)].x&&t.y===this[e(1234)][e(1220)].y||t.x===this[e(1233)].point.x&&t.y===this.rightSE[e(1220)].y}},{key:"comparePoint",value:function(t){var e=n;if(this[e(1240)](t))return 0;var r=this[e(1234)][e(1220)],i=this.rightSE[e(1220)],s=this[e(1239)]();if(r.x===i.x)return t.x===r.x?0:t.x0&&l[e(1243)](),A.comparePoints(this[e(1234)][e(1220)],this[e(1233)][e(1220)])>0&&this[e(1243)](),s&&(a[e(1244)](),o.checkForConsuming()),r}},{key:n(1243),value:function(){var t=n,e=this[t(1233)];this[t(1233)]=this[t(1234)],this.leftSE=e,this[t(1234)][t(1221)]=!0,this.rightSE[t(1221)]=!1;for(var r=0,i=this.windings[t(449)];r0){var o=r;r=s,s=o}if(r.prev===s){var c=r;r=s,s=c}for(var l=0,h=s.rings.length;l0))throw new Error(c(1260)[c(475)](t.x,", ")[c(475)](t.y,"]"));s=e,a=t,o=-1}return new i(new A(s,!0),new A(a,!1),[r],[o])}}]),i}(),P=function(){var n=t;function i(t,n,r){var s=f;if(e(this,i),!Array[s(468)](t)||0===t[s(449)])throw new Error(s(1261));if(this.poly=n,this[s(1252)]=r,this[s(1262)]=[],typeof t[0][0]!==s(458)||typeof t[0][1]!==s(458))throw new Error(s(1261));var a=I[s(784)](t[0][0],t[0][1]);this[s(1242)]={ll:{x:a.x,y:a.y},ur:{x:a.x,y:a.y}};for(var o=a,c=1,l=t[s(449)];cthis[s(1242)].ur.x&&(this[s(1242)].ur.x=h.x),h.y>this[s(1242)].ur.y&&(this[s(1242)].ur.y=h.y),o=h)}(a.x!==o.x||a.y!==o.y)&&this[s(1262)][s(565)](L[s(1263)](o,a,this))}return r(i,[{key:n(1264),value:function(){for(var t=n,e=[],r=0,i=this[t(1262)][t(449)];rthis[r(1242)].ur.x&&(this[r(1242)].ur.x=o[r(1242)].ur.x),o[r(1242)].ur.y>this[r(1242)].ur.y&&(this[r(1242)].ur.y=o[r(1242)].ur.y),this[r(1266)][r(565)](o)}this[r(1267)]=n}return r(i,[{key:n(1264),value:function(){for(var t=n,e=this.exteriorRing[t(1264)](),r=0,i=this[t(1266)][t(449)];rthis[r(1242)].ur.x&&(this[r(1242)].ur.x=o[r(1242)].ur.x),o[r(1242)].ur.y>this[r(1242)].ur.y&&(this[r(1242)].ur.y=o[r(1242)].ur.y),this[r(1268)][r(565)](o)}this[r(1259)]=n}return r(i,[{key:n(1264),value:function(){for(var t=n,e=[],r=0,i=this[t(1268)].length;r0&&(e=s)}for(var a=e[t(1222)].prevInResult(),o=a?a[t(1245)]():null;;){if(!a)return null;if(!o)return a.ringOut;if(o[t(1272)]!==a.ringOut)return o[t(1272)].enclosingRing()!==a[t(1272)]?a[t(1272)]:a[t(1272)][t(1276)]();a=o[t(1245)](),o=a?a[t(1245)]():null}}}]),i}(),U=function(){var n=t;function i(t){var n=f;e(this,i),this.exteriorRing=t,t.poly=this,this[n(1266)]=[]}return r(i,[{key:n(1278),value:function(t){var e=n;this[e(1266)].push(t),t[e(1251)]=this}},{key:n(1273),value:function(){var t=n,e=[this[t(1265)].getGeom()];if(null===e[0])return null;for(var r=0,i=this[t(1266)][t(449)];r1&&void 0!==arguments[1]?arguments[1]:L[n(1218)];e(this,i),this[n(1279)]=t,this[n(1217)]=new h(r),this.segments=[]}return r(i,[{key:n(682),value:function(t){var e=n,r=t[e(1222)],i=[];if(t[e(1225)])return t.isLeft?this.queue.remove(t[e(1226)]):this[e(1217)][e(1204)](r),i;var s=t[e(1221)]?this[e(1217)].insert(r):this[e(1217)][e(932)](r);if(!s)throw new Error(e(1280)[e(475)](r.id," ")+"["[e(475)](r[e(1234)][e(1220)].x,", ")[e(475)](r.leftSE[e(1220)].y,"] -> ")+"["[e(475)](r.rightSE.point.x,", ")[e(475)](r[e(1233)][e(1220)].y,"] ")+e(1281));for(var a=s,o=s,c=void 0,l=void 0;void 0===c;)null===(a=this[e(1217)][e(1164)](a))?c=null:void 0===a[e(447)][e(1225)]&&(c=a[e(447)]);for(;void 0===l;)null===(o=this[e(1217)][e(436)](o))?l=null:void 0===o[e(447)][e(1225)]&&(l=o[e(447)]);if(t[e(1221)]){var h=null;if(c){var u=c[e(1241)](r);if(null!==u&&(r.isAnEndpoint(u)||(h=u),!c.isAnEndpoint(u)))for(var d=this._splitSafely(c,u),f=0,p=d.length;f0?(this[e(1217)][e(1204)](r),i[e(565)](t)):(this[e(1262)][e(565)](r),r[e(1164)]=c)}else{if(c&&l){var S=c[e(1241)](l);if(null!==S){if(!c[e(1240)](S))for(var x=this[e(1282)](c,S),b=0,w=x[e(449)];bG)throw new Error(i(1287));for(var S=new k(_),x=_.size,b=_[i(1161)]();b;){var w=b[i(447)];if(_.size===x){var C=w[i(1222)];throw new Error(i(1288)[i(475)](w[i(1221)]?i(683):i(935),i(1289))+"[".concat(w[i(1220)].x,", ")[i(475)](w[i(1220)].y,"] from segment #")[i(475)](C.id," ")+"[".concat(C[i(1234)][i(1220)].x,", ")[i(475)](C[i(1234)][i(1220)].y,i(1290))+"["[i(475)](C[i(1233)][i(1220)].x,", ")[i(475)](C.rightSE.point.y,"] from queue. ")+i(1291))}if(_[i(753)]>G)throw new Error(i(1292));if(S[i(1262)][i(449)]>V)throw new Error(i(1293));for(var M=S[i(682)](w),R=0,D=M[i(449)];R1?r-1:0),s=1;s1?r-1:0),s=1;s1?r-1:0),s=1;s1?r-1:0),s=1;s1?(r=n.x,i=n.y):o>0&&(r+=s*o,i+=a*o)}return(s=t.x-r)*s+(a=t.y-i)*a}function i(t,e,n,s,a){for(var o,c=s,l=e+1;lc&&(o=l,c=h)}c>s&&(o-e>1&&i(t,e,o,s,a),a.push(t[o]),n-o>1&&i(t,o,n,s,a))}function s(t,e){var n=f,r=t[n(449)]-1,s=[t[0]];return i(t,0,r,e,s),s[n(565)](t[r]),s}function a(t,e,r){if(t[f(449)]<=2)return t;var i=void 0!==e?e*e:1;return t=r?t:function(t,e){for(var r,i=f,s=t[0],a=[s],o=1,c=t[i(449)];oe&&(a.push(r),s=r);return s!==r&&a[i(565)](r),a}(t,i),t=s(t,i)}typeof define===t(432)&&define.amd?define((function(){return a})):typeof e!==t(430)?(e[t(431)]=a,e[t(431)][t(435)]=a):"undefined"!=typeof self?self[t(1294)]=a:window[t(1294)]=a}()}}),require_lodash=__commonJS({"node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"(t,e){(function(){var n,r=f,i=200,s=r(1295),a=r(1296),o="Invalid `variable` option passed into `_.template`",c=r(1297),l=500,h=r(1298),u=1,d=2,p=4,m=1,v=2,_=1,g=2,y=4,E=8,T=16,I=32,z=64,S=128,x=256,b=512,w=30,C=r(1299),M=800,R=16,A=1,D=2,L=1/0,P=9007199254740991,O=17976931348623157e292,F=NaN,N=4294967295,U=N-1,B=N>>>1,k=[[r(1300),S],["bind",_],[r(1301),g],[r(1302),E],[r(1303),T],[r(1304),b],[r(1305),I],["partialRight",z],["rearg",x]],G=r(1306),V=r(1307),j=r(1308),H=r(1309),q=r(1310),W=r(1311),Y=r(1312),X=r(1313),J=r(1314),K=r(1315),Z=r(1316),$=r(1317),Q=r(1318),tt=r(1319),et=r(1320),nt=r(1321),rt="[object Set]",it=r(1322),st=r(1323),at=r(1324),ot=r(1325),ct=r(1326),lt=r(1327),ht=r(1328),ut=r(1329),dt=r(1330),ft="[object Int8Array]",pt=r(1331),mt=r(1332),vt=r(1333),_t=r(1334),gt=r(1335),yt="[object Uint32Array]",Et=/\b__p \+= '';/g,Tt=/\b(__p \+=) '' \+/g,It=/(__e\(.*?\)|\b__t\)) \+\n'';/g,zt=/&(?:amp|lt|gt|quot|#39);/g,St=/[&<>"']/g,xt=RegExp(zt.source),bt=RegExp(St[r(556)]),wt=/<%-([\s\S]+?)%>/g,Ct=/<%([\s\S]+?)%>/g,Mt=/<%=([\s\S]+?)%>/g,Rt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,At=/^\w*$/,Dt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lt=/[\\^$.*+?()[\]{}|]/g,Pt=RegExp(Lt[r(556)]),Ot=/^\s+/,Ft=/\s/,Nt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ut=/\{\n\/\* \[wrapped with (.+)\] \*/,Bt=/,? & /,kt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Gt=/[()=,{}\[\]\/\s]/,Vt=/\\(\\)?/g,jt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ht=/\w*$/,qt=/^[-+]0x[0-9a-f]+$/i,Wt=/^0b[01]+$/i,Yt=/^\[object .+?Constructor\]$/,Xt=/^0o[0-7]+$/i,Jt=/^(?:0|[1-9]\d*)$/,Kt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Zt=/($^)/,$t=/['\n\r\u2028\u2029\\]/g,Qt="\\ud800-\\udfff",te=r(1336)+"\\ufe20-\\ufe2f\\u20d0-\\u20ff",ee=r(1337),ne=r(1338),re=r(1339),ie=r(1340),se=r(1341),ae=r(1342),oe=r(1343),ce=re+"\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf"+ie+se,le=r(1344),he="["+Qt+"]",ue="["+ce+"]",de="["+te+"]",fe=r(1345),pe="["+ee+"]",me="["+ne+"]",ve="[^"+Qt+ce+fe+ee+ne+ae+"]",_e=r(1346),ge=r(1347)+de+"|"+_e+")",ye="[^"+Qt+"]",Ee=r(1348),Te=r(1349),Ie="["+ae+"]",ze=r(1350),Se=r(1347)+me+"|"+ve+")",xe="(?:"+Ie+"|"+ve+")",be=r(1347)+le+r(1351),we="(?:"+le+r(1352),Ce=ge+"?",Me="["+oe+"]?",Re="(?:"+ze+r(1347)+[ye,Ee,Te][r(549)]("|")+")"+Me+Ce+")*",Ae=r(1353),De=r(1354),Le=Me+Ce+Re,Pe=r(1347)+[pe,Ee,Te][r(549)]("|")+")"+Le,Oe=r(1347)+[ye+de+"?",de,Ee,Te,he][r(549)]("|")+")",Fe=RegExp(le,"g"),Ne=RegExp(de,"g"),Ue=RegExp(_e+r(1355)+_e+")|"+Oe+Le,"g"),Be=RegExp([Ie+"?"+me+"+"+be+r(1355)+[ue,Ie,"$"][r(549)]("|")+")",xe+"+"+we+"(?="+[ue,Ie+Se,"$"][r(549)]("|")+")",Ie+"?"+Se+"+"+be,Ie+"+"+we,De,Ae,fe,Pe][r(549)]("|"),"g"),ke=RegExp("["+ze+Qt+te+oe+"]"),Ge=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ve=[r(600),r(1356),"DataView",r(720),r(636),r(995),r(996),r(599),r(708),"Int16Array","Int32Array",r(759),r(509),r(578),"Promise","RegExp",r(981),r(513),r(534),r(607),r(934),"Uint8ClampedArray",r(937),r(994),r(941),"_",r(1357),r(780),r(1080),r(1039)],je=-1,He={};He[ut]=He[dt]=He[ft]=He[pt]=He[mt]=He[vt]=He[_t]=He[gt]=He[yt]=!0,He[G]=He[V]=He[lt]=He[H]=He[ht]=He[q]=He[Y]=He[X]=He[K]=He[Z]=He[Q]=He[nt]=He[rt]=He[it]=He[ot]=!1;var qe={};qe[G]=qe[V]=qe[lt]=qe[ht]=qe[H]=qe[q]=qe[ut]=qe[dt]=qe[ft]=qe[pt]=qe[mt]=qe[K]=qe[Z]=qe[Q]=qe[nt]=qe[rt]=qe[it]=qe[st]=qe[vt]=qe[_t]=qe[gt]=qe[yt]=!0,qe[Y]=qe[X]=qe[ot]=!1;var We={"&":"&","<":"<",">":r(1358),'"':r(1359),"'":r(1360)},Ye={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":r(1361),"\u2029":r(1362)},Xe=parseFloat,Je=parseInt,Ke=typeof global==r(469)&&global&&global[r(578)]===Object&&global,Ze="object"==typeof self&&self&&self[r(578)]===Object&&self,$e=Ke||Ze||Function(r(510))(),Qe=typeof t==r(469)&&t&&!t[r(1363)]&&t,tn=Qe&&typeof e==r(469)&&e&&!e[r(1363)]&&e,en=tn&&tn[r(431)]===Qe,nn=en&&Ke.process,rn=function(){var t=r;try{var e=tn&&tn[t(1364)]&&tn[t(1364)](t(1365))[t(1366)];return e||nn&&nn[t(1367)]&&nn[t(1367)](t(1365))}catch(t){}}(),sn=rn&&rn[r(1368)],an=rn&&rn.isDate,on=rn&&rn[r(1369)],cn=rn&&rn[r(1370)],ln=rn&&rn[r(1371)],hn=rn&&rn[r(1372)];function un(t,e,n){var i=r;switch(n[i(449)]){case 0:return t[i(429)](e);case 1:return t[i(429)](e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t[i(429)](e,n[0],n[1],n[2])}return t[i(441)](e,n)}function dn(t,e,n,i){for(var s=-1,a=null==t?0:t[r(449)];++s-1}function gn(t,e,n){for(var i=-1,s=null==t?0:t[r(449)];++i-1;);return n}function Gn(t,e){for(var n=t[r(449)];n--&&wn(e,t[n],0)>-1;);return n}var Vn=Dn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),jn=Dn(We);function Hn(t){return"\\"+Ye[t]}function qn(t){return ke[r(467)](t)}function Wn(t){var e=r,n=-1,i=Array(t[e(753)]);return t[e(604)]((function(t,e){i[++n]=[e,t]})),i}function Yn(t,e){return function(n){return t(e(n))}}function Xn(t,e){for(var n=-1,i=t[r(449)],s=0,a=[];++n",""":'"',"'":"'"});var tr=function t(e){var Ft,Qt,te=r,ee=(e=null==e?$e:tr[te(1373)]($e[te(578)](),e,tr[te(1374)]($e,Ve)))[te(600)],ne=e.Date,re=e[te(636)],ie=e[te(599)],se=e[te(509)],ae=e.Object,oe=e.RegExp,ce=e[te(513)],le=e[te(607)],he=ee[te(425)],ue=ie[te(425)],de=ae[te(425)],fe=e[te(528)],pe=ue[te(526)],me=de.hasOwnProperty,ve=0,_e=(Qt=/[^.]+$/[(Ft=te)(601)](fe&&fe[Ft(477)]&&fe[Ft(477)][Ft(585)]||""))?Ft(1375)+Qt:"",ge=de[te(526)],ye=pe.call(ae),Ee=$e._,Te=oe("^"+pe[te(429)](me).replace(Lt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ie=en?e[te(1356)]:n,ze=e.Symbol,Se=e.Uint8Array,xe=Ie?Ie[te(1376)]:n,be=Yn(ae[te(424)],ae),we=ae[te(419)],Ce=de[te(426)],Me=he[te(690)],Re=ze?ze[te(659)]:n,Ae=ze?ze[te(491)]:n,De=ze?ze[te(575)]:n,Le=function(){var t=te;try{var e=Hs(ae,t(420));return e({},"",{}),e}catch(t){}}(),Pe=e[te(1357)]!==$e[te(1357)]&&e.clearTimeout,Oe=ne&&ne.now!==$e[te(720)][te(802)]&&ne[te(802)],Ue=e.setTimeout!==$e[te(1039)]&&e.setTimeout,ke=se[te(561)],We=se[te(562)],Ye=ae.getOwnPropertySymbols,Ke=Ie?Ie[te(1377)]:n,Ze=e[te(780)],Qe=he.join,tn=Yn(ae[te(477)],ae),nn=se.max,rn=se[te(563)],Sn=ne.now,Dn=e[te(1080)],er=se[te(533)],nr=he[te(686)],rr=Hs(e,te(698)),ir=Hs(e,te(759)),sr=Hs(e,te(814)),ar=Hs(e,te(981)),or=Hs(e,te(941)),cr=Hs(ae,"create"),lr=or&&new or,hr={},ur=va(rr),dr=va(ir),fr=va(sr),pr=va(ar),mr=va(or),vr=ze?ze[te(425)]:n,_r=vr?vr[te(525)]:n,gr=vr?vr.toString:n;function yr(t){var e=te;if(Po(t)&&!zo(t)&&!(t instanceof zr)){if(t instanceof Ir)return t;if(me[e(429)](t,e(1378)))return _a(t)}return new Ir(t)}var Er=function(){function t(){}return function(e){var r=f;if(!Lo(e))return{};if(we)return we(e);t[r(425)]=e;var i=new t;return t[r(425)]=n,i}}();function Tr(){}function Ir(t,e){var r=te;this[r(1378)]=t,this[r(1379)]=[],this[r(1380)]=!!e,this.__index__=0,this[r(1381)]=n}function zr(t){var e=te;this[e(1378)]=t,this[e(1379)]=[],this[e(1382)]=1,this.__filtered__=!1,this.__iteratees__=[],this[e(1383)]=N,this[e(1384)]=[]}function Sr(t){var e=te,n=-1,r=null==t?0:t[e(449)];for(this[e(750)]();++n=e?t:e)),t}function Gr(t,e,r,i,s,a){var o,c=te,l=e&u,h=e&d,f=e&p;if(r&&(o=s?r(t,i,s,a):r(t)),o!==n)return o;if(!Lo(t))return t;var m=zo(t);if(m){if(o=function(t){var e=te,n=t[e(449)],r=new(t[e(443)])(n);return n&&typeof t[0]==e(470)&&me.call(t,e(677))&&(r.index=t[e(677)],r[e(1400)]=t[e(1400)]),r}(t),!l)return cs(t,o)}else{var v=Ys(t),_=v==X||v==J;if(wo(t))return ns(t,l);if(v==Q||v==G||_&&!s){if(o=h||_?{}:Js(t),!l)return h?function(t,e){return ls(t,Ws(t),e)}(t,function(t,e){return t&&ls(e,uc(e),t)}(o,t)):function(t,e){return ls(t,qs(t),e)}(t,Nr(o,t))}else{if(!qe[v])return s?t:{};o=function(t,e,n){var r=t[te(443)];switch(e){case lt:return rs(t);case H:case q:return new r(+t);case ht:return function(t,e){var n=te,r=e?rs(t[n(703)]):t[n(703)];return new(t[n(443)])(r,t[n(704)],t[n(702)])}(t,n);case ut:case dt:case ft:case pt:case mt:case vt:case _t:case gt:case yt:return is(t,n);case K:return new r;case Z:case it:return new r(t);case nt:return function(t){var e=te,n=new t.constructor(t[e(556)],Ht.exec(t));return n.lastIndex=t[e(855)],n}(t);case rt:return new r;case st:return function(t){return _r?ae(_r.call(t)):{}}(t)}}(t,v,l)}}a||(a=new Cr);var g=a[c(427)](t);if(g)return g;a[c(540)](t,o),Bo(t)?t.forEach((function(n){o[c(747)](Gr(n,e,r,n,t,a))})):Oo(t)&&t[c(604)]((function(n,i){o[c(540)](i,Gr(n,e,r,i,t,a))}));var y=m?n:(f?h?Ns:Fs:h?uc:hc)(t);return fn(y||t,(function(n,i){y&&(n=t[i=n]),Pr(o,i,Gr(n,e,r,i,t,a))})),o}function Vr(t,e,r){var i=r[te(449)];if(null==t)return!i;for(t=ae(t);i--;){var s=r[i],a=e[s],o=t[s];if(o===n&&!(s in t)||!a(o))return!1}return!0}function jr(t,e,r){if(typeof t!=te(432))throw new le(a);return la((function(){t.apply(n,r)}),e)}function Hr(t,e,n,r){var s=te,a=-1,o=_n,c=!0,l=t[s(449)],h=[],u=e[s(449)];if(!l)return h;n&&(e=yn(e,Nn(n))),r?(o=gn,c=!1):e[s(449)]>=i&&(o=Bn,c=!1,e=new wr(e));t:for(;++a-1},xr[te(425)][te(540)]=function(t,e){var n=te,r=this[n(1388)],i=Or(r,t);return i<0?(++this[n(753)],r[n(565)]([t,e])):r[i][1]=e,this},br.prototype[te(750)]=function(){var t=te;this[t(753)]=0,this[t(1388)]={hash:new Sr,map:new(ir||xr),string:new Sr}},br[te(425)][te(748)]=function(t){var e=te,n=Vs(this,t)[e(748)](t);return this.size-=n?1:0,n},br[te(425)][te(427)]=function(t){var e=te;return Vs(this,t)[e(427)](t)},br[te(425)][te(546)]=function(t){var e=te;return Vs(this,t)[e(546)](t)},br[te(425)].set=function(t,e){var n=te,r=Vs(this,t),i=r[n(753)];return r[n(540)](t,e),this[n(753)]+=r[n(753)]==i?0:1,this},wr[te(425)].add=wr[te(425)][te(565)]=function(t){return this[te(1388)].set(t,c),this},wr[te(425)].has=function(t){var e=te;return this[e(1388)][e(546)](t)},Cr.prototype[te(750)]=function(){this[te(1388)]=new xr,this.size=0},Cr[te(425)][te(748)]=function(t){var e=te,n=this[e(1388)],r=n[e(748)](t);return this[e(753)]=n[e(753)],r},Cr[te(425)][te(427)]=function(t){var e=te;return this[e(1388)][e(427)](t)},Cr[te(425)][te(546)]=function(t){var e=te;return this[e(1388)][e(546)](t)},Cr[te(425)].set=function(t,e){var n=te,r=this[n(1388)];if(r instanceof xr){var s=r.__data__;if(!ir||s[n(449)]0&&n(c)?e>1?Kr(c,e-1,n,r,i):En(i,c):!r&&(i[i[s(449)]]=c)}return i}var Zr=fs(),$r=fs(!0);function Qr(t,e){return t&&Zr(t,e,hc)}function ti(t,e){return t&&$r(t,e,hc)}function ei(t,e){return vn(e,(function(e){return Ro(t[e])}))}function ni(t,e){for(var r=0,i=(e=$i(e,t)).length;null!=t&&re}function ai(t,e){return null!=t&&me[te(429)](t,e)}function oi(t,e){return null!=t&&e in ae(t)}function ci(t,e,r){for(var i=te,s=r?gn:_n,a=t[0].length,o=t[i(449)],c=o,l=ee(o),h=1/0,u=[];c--;){var d=t[c];c&&e&&(d=yn(d,Nn(e))),h=rn(d[i(449)],h),l[c]=!r&&(e||a>=120&&d[i(449)]>=120)?new wr(c&&d):n}d=t[0];var f=-1,p=l[0];t:for(;++f=c?l:l*(n[i]==r(1392)?-1:1)}return t[r(677)]-e[r(677)]}(t,e,n)}))}function Si(t,e,n){for(var r=-1,i=e[te(449)],s={};++r-1;)c!==t&&Me[i(429)](c,l,1),Me[i(429)](t,l,1);return t}function bi(t,e){for(var n=te,r=t?e[n(449)]:0,i=r-1;r--;){var s=e[r];if(r==i||s!==a){var a=s;Zs(s)?Me[n(429)](t,s,1):Hi(t,s)}}return t}function wi(t,e){return t+We(er()*(e-t+1))}function Ci(t,e){var n="";if(!t||e<1||e>P)return n;do{e%2&&(n+=t),(e=We(e/2))&&(t+=t)}while(e);return n}function Mi(t,e){return ha(sa(t,e,Fc),t+"")}function Ri(t){return Rr(yc(t))}function Ai(t,e){var n=te,r=yc(t);return fa(r,kr(e,0,r[n(449)]))}function Di(t,e,r,i){var s=te;if(!Lo(t))return t;for(var a=-1,o=(e=$i(e,t))[s(449)],c=o-1,l=t;null!=l&&++ai?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=ee(i);++r>>1,o=t[a];null!==o&&!Go(o)&&(n?o<=e:o=i){var u=e?null:Cs(t);if(u)return Jn(u);c=!1,a=Bn,h=new wr}else h=e?[]:l;t:for(;++s=i?t:Fi(t,e,r)}var es=Pe||function(t){return $e[te(1357)](t)};function ns(t,e){var n=te;if(e)return t.slice();var r=t[n(449)],i=xe?xe(r):new(t[n(443)])(r);return t.copy(i),i}function rs(t){var e=te,n=new(t[e(443)])(t[e(702)]);return new Se(n)[e(540)](new Se(t)),n}function is(t,e){var n=te,r=e?rs(t[n(703)]):t.buffer;return new(t[n(443)])(r,t[n(704)],t[n(449)])}function ss(t,e){if(t!==e){var r=t!==n,i=null===t,s=t==t,a=Go(t),o=e!==n,c=null===e,l=e==e,h=Go(e);if(!c&&!h&&!a&&t>e||a&&o&&l&&!c&&!h||i&&o&&l||!r&&l||!s)return 1;if(!i&&!a&&!h&&t1?r[a-1]:n,c=a>2?r[2]:n;for(o=t.length>3&&typeof o==i(432)?(a--,o):n,c&&$s(r[0],r[1],c)&&(o=a<3?n:o,a=1),e=ae(e);++s-1?s[a?e[o]:o]:n}}function gs(t){return Os((function(e){var r=f,i=e[r(449)],s=i,o=Ir.prototype[r(1394)];for(t&&e[r(686)]();s--;){var c=e[s];if(typeof c!=r(432))throw new le(a);if(o&&!l&&Bs(c)==r(1395))var l=new Ir([],!0)}for(s=l?s:i;++s1&&T.reverse(),u&&ll))return!1;var u=a[o(427)](t),d=a[o(427)](e);if(u&&d)return u==e&&d==t;var f=-1,p=!0,_=r&v?new wr:n;for(a.set(t,e),a.set(e,t);++f-1&&t%1==0&&t1?"& ":"")+e[i],e=e[n(549)](r>2?", ":" "),t[n(448)](Nt,n(1401)+e+n(1402))}(r,function(t,e){var n=te;return fn(k,(function(n){var r=f,i="_."+n[0];e&n[1]&&!_n(t,i)&&t[r(565)](i)})),t[n(688)]()}(function(t){var e=te,n=t[e(522)](Ut);return n?n[1][e(465)](Bt):[]}(r),n)))}function da(t){var e=0,r=0;return function(){var i=f,s=Sn(),a=R-(s-r);if(r=s,a>0){if(++e>=M)return arguments[0]}else e=0;return t[i(441)](n,arguments)}}function fa(t,e){var r=te,i=-1,s=t[r(449)],a=s-1;for(e=e===n?s:e;++i1?t[r-1]:n;return i=typeof i==e(432)?(t[e(1161)](),i):n,Na(t,i)}));function Ha(t){var e=te,n=yr(t);return n[e(1380)]=!0,n}function qa(t,e){return e(t)}var Wa=Os((function(t){var e=te,r=t[e(449)],i=r?t[0]:0,s=this[e(1378)],a=function(e){return Br(e,t)};return!(r>1||this[e(1379)][e(449)])&&s instanceof zr&&Zs(i)?((s=s[e(497)](i,+i+(r?1:0))).__actions__.push({func:qa,args:[a],thisArg:n}),new Ir(s,this[e(1380)]).thru((function(t){return r&&!t[e(449)]&&t.push(n),t}))):this[e(1394)](a)}));var Ya=hs((function(t,e,n){me.call(t,n)?++t[n]:Ur(t,n,1)}));var Xa=_s(Ta),Ja=_s(Ia);function Ka(t,e){return(zo(t)?fn:qr)(t,Gs(e,3))}function Za(t,e){return(zo(t)?pn:Wr)(t,Gs(e,3))}var $a=hs((function(t,e,n){var r=te;me[r(429)](t,n)?t[n][r(565)](e):Ur(t,n,[e])}));var Qa=Mi((function(t,e,n){var r=te,i=-1,s=typeof e==r(432),a=xo(t)?ee(t[r(449)]):[];return qr(t,(function(t){a[++i]=s?un(e,t,n):li(t,e,n)})),a})),to=hs((function(t,e,n){Ur(t,n,e)}));function eo(t,e){return(zo(t)?yn:gi)(t,Gs(e,3))}var no=hs((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var ro=Mi((function(t,e){if(null==t)return[];var n=e[te(449)];return n>1&&$s(t,e[0],e[1])?e=[]:n>2&&$s(e[0],e[1],e[2])&&(e=[e[0]]),zi(t,Kr(e,1),[])})),io=Oe||function(){var t=te;return $e[t(720)][t(802)]()};function so(t,e,r){return e=r?n:e,e=t&&null==e?t[te(449)]:e,Rs(t,S,n,n,n,n,e)}function ao(t,e){var r;if("function"!=typeof e)throw new le(a);return t=Yo(t),function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=n),r}}var oo=Mi((function(t,e,n){var r=_;if(n[te(449)]){var i=Xn(n,ks(oo));r|=I}return Rs(t,r,e,n,i)})),co=Mi((function(t,e,n){var r=_|g;if(n[te(449)]){var i=Xn(n,ks(co));r|=I}return Rs(e,r,t,n,i)}));function lo(t,e,r){var i,s,o,c,l,h,u=te,d=0,f=!1,p=!1,m=!0;if("function"!=typeof t)throw new le(a);function v(e){var r=i,a=s;return i=s=n,d=e,c=t[u(441)](a,r)}function _(t){var r=t-h;return h===n||r>=e||r<0||p&&t-d>=o}function g(){var t=io();if(_(t))return y(t);l=la(g,function(t){var n=e-(t-h);return p?rn(n,o-(t-d)):n}(t))}function y(t){return l=n,m&&i?v(t):(i=s=n,c)}function E(){var t=io(),r=_(t);if(i=arguments,s=this,h=t,r){if(l===n)return function(t){return d=t,l=la(g,e),f?v(t):c}(h);if(p)return es(l),l=la(g,e),v(h)}return l===n&&(l=la(g,e)),c}return e=Jo(e)||0,Lo(r)&&(f=!!r[u(1405)],p=u(1406)in r,o=p?nn(Jo(r[u(1406)])||0,e):o,m=u(1407)in r?!!r[u(1407)]:m),E[u(1408)]=function(){l!==n&&es(l),d=0,i=h=s=l=n},E[u(1409)]=function(){return l===n?c:y(io())},E}var ho=Mi((function(t,e){return jr(t,1,e)})),uo=Mi((function(t,e,n){return jr(t,Jo(e)||0,n)}));function fo(t,e){var n=te;if(typeof t!=n(432)||null!=e&&typeof e!=n(432))throw new le(a);var r=function(){var i=n,s=arguments,a=e?e.apply(this,s):s[0],o=r.cache;if(o.has(a))return o[i(427)](a);var c=t[i(441)](this,s);return r[i(1410)]=o[i(540)](a,c)||o,c};return r[n(1410)]=new(fo.Cache||br),r}function po(t){if("function"!=typeof t)throw new le(a);return function(){var e=f,n=arguments;switch(n[e(449)]){case 0:return!t[e(429)](this);case 1:return!t[e(429)](this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t[e(429)](this,n[0],n[1],n[2])}return!t[e(441)](this,n)}}fo[te(1411)]=br;var mo=Qi((function(t,e){var n=te,r=(e=1==e[n(449)]&&zo(e[0])?yn(e[0],Nn(Gs())):yn(Kr(e,1),Nn(Gs())))[n(449)];return Mi((function(i){for(var s=-1,a=rn(i[n(449)],r);++s=e})),Io=hi(function(){return arguments}())?hi:function(t){var e=te;return Po(t)&&me.call(t,e(579))&&!Ce.call(t,e(579))},zo=ee.isArray,So=sn?Nn(sn):function(t){return Po(t)&&ii(t)==lt};function xo(t){return null!=t&&Do(t[te(449)])&&!Ro(t)}function bo(t){return Po(t)&&xo(t)}var wo=Ke||Jc,Co=an?Nn(an):function(t){return Po(t)&&ii(t)==q};function Mo(t){var e=te;if(!Po(t))return!1;var n=ii(t);return n==Y||n==W||"string"==typeof t[e(637)]&&typeof t[e(542)]==e(470)&&!No(t)}function Ro(t){if(!Lo(t))return!1;var e=ii(t);return e==X||e==J||e==j||e==et}function Ao(t){return typeof t==te(458)&&t==Yo(t)}function Do(t){return typeof t==te(458)&&t>-1&&t%1==0&&t<=P}function Lo(t){var e=te,n=typeof t;return null!=t&&(n==e(469)||n==e(432))}function Po(t){return null!=t&&"object"==typeof t}var Oo=on?Nn(on):function(t){return Po(t)&&Ys(t)==K};function Fo(t){return typeof t==te(458)||Po(t)&&ii(t)==Z}function No(t){var e=te;if(!Po(t)||ii(t)!=Q)return!1;var n=be(t);if(null===n)return!0;var r=me[e(429)](n,e(443))&&n[e(443)];return typeof r==e(432)&&r instanceof r&&pe.call(r)==ye}var Uo=cn?Nn(cn):function(t){return Po(t)&&ii(t)==nt};var Bo=ln?Nn(ln):function(t){return Po(t)&&Ys(t)==rt};function ko(t){return typeof t==te(470)||!zo(t)&&Po(t)&&ii(t)==it}function Go(t){return"symbol"==typeof t||Po(t)&&ii(t)==st}var Vo=hn?Nn(hn):function(t){var e=te;return Po(t)&&Do(t[e(449)])&&!!He[ii(t)]};var jo=xs(_i),Ho=xs((function(t,e){return t<=e}));function qo(t){if(!t)return[];if(xo(t))return ko(t)?Zn(t):cs(t);if(Ae&&t[Ae])return function(t){for(var e,n=r,i=[];!(e=t[n(436)]()).done;)i.push(e.value);return i}(t[Ae]());var e=Ys(t);return(e==K?Wn:e==rt?Jn:yc)(t)}function Wo(t){return t?(t=Jo(t))===L||t===-L?(t<0?-1:1)*O:t==t?t:0:0===t?t:0}function Yo(t){var e=Wo(t),n=e%1;return e==e?n?e-n:e:0}function Xo(t){return t?kr(Yo(t),0,N):0}function Jo(t){var e=te;if(typeof t==e(458))return t;if(Go(t))return F;if(Lo(t)){var n="function"==typeof t[e(525)]?t[e(525)]():t;t=Lo(n)?n+"":n}if(typeof t!=e(470))return 0===t?t:+t;t=Fn(t);var r=Wt.test(t);return r||Xt.test(t)?Je(t.slice(2),r?2:8):qt.test(t)?F:+t}function Ko(t){return ls(t,uc(t))}function Zo(t){return null==t?"":Vi(t)}var $o=us((function(t,e){var n=te;if(na(e)||xo(e))ls(e,hc(e),t);else for(var r in e)me[n(429)](e,r)&&Pr(t,r,e[r])})),Qo=us((function(t,e){ls(e,uc(e),t)})),tc=us((function(t,e,n,r){ls(e,uc(e),t,r)})),ec=us((function(t,e,n,r){ls(e,hc(e),t,r)})),nc=Os(Br);var rc=Mi((function(t,e){var r=te;t=ae(t);var i=-1,s=e[r(449)],a=s>2?e[2]:n;for(a&&$s(e[0],e[1],a)&&(s=1);++i1),e})),ls(t,Ns(t),r),i&&(r=Gr(r,u|d|p,Ls));for(var s=e[n(449)];s--;)Hi(r,e[s]);return r}));var mc=Os((function(t,e){return null==t?{}:function(t,e){return Si(t,e,(function(e,n){return ac(t,n)}))}(t,e)}));function vc(t,e){if(null==t)return{};var n=yn(Ns(t),(function(t){return[t]}));return e=Gs(e),Si(t,n,(function(t,n){return e(t,n[0])}))}var _c=Ms(hc),gc=Ms(uc);function yc(t){return null==t?[]:Un(t,hc(t))}var Ec=ms((function(t,e,n){return e=e.toLowerCase(),t+(n?Tc(e):e)}));function Tc(t){return Mc(Zo(t).toLowerCase())}function Ic(t){return(t=Zo(t))&&t.replace(Kt,Vn).replace(Ne,"")}var zc=ms((function(t,e,n){return t+(n?"-":"")+e[te(570)]()})),Sc=ms((function(t,e,n){return t+(n?" ":"")+e[te(570)]()})),xc=ps(te(570));var bc=ms((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));var wc=ms((function(t,e,n){return t+(n?" ":"")+Mc(e)}));var Cc=ms((function(t,e,n){return t+(n?" ":"")+e[te(736)]()})),Mc=ps(te(736));function Rc(t,e,i){var s=te;return t=Zo(t),(e=i?n:e)===n?function(t){return Ge[r(467)](t)}(t)?function(t){return t[r(522)](Be)||[]}(t):function(t){return t.match(kt)||[]}(t):t[s(522)](e)||[]}var Ac=Mi((function(t,e){try{return un(t,n,e)}catch(t){return Mo(t)?t:new re(t)}})),Dc=Os((function(t,e){return fn(e,(function(e){e=ma(e),Ur(t,e,oo(t[e],t))})),t}));function Lc(t){return function(){return t}}var Pc=gs(),Oc=gs(!0);function Fc(t){return t}function Nc(t){return pi(typeof t==te(432)?t:Gr(t,u))}var Uc=Mi((function(t,e){return function(n){return li(n,t,e)}})),Bc=Mi((function(t,e){return function(n){return li(t,n,e)}}));function kc(t,e,n){var r=te,i=hc(e),s=ei(e,i);null==n&&(!Lo(e)||!s[r(449)]&&i[r(449)])&&(n=e,e=t,t=this,s=ei(e,hc(e)));var a=!(Lo(n)&&r(1435)in n&&!n[r(1435)]),o=Ro(t);return fn(s,(function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=f,n=this[e(1380)];if(a||n){var i=t(this[e(1378)]);return(i[e(1379)]=cs(this.__actions__))[e(565)]({func:r,args:arguments,thisArg:t}),i[e(1380)]=n,i}return r.apply(t,En([this.value()],arguments))})})),t}function Gc(){}var Vc=Is(yn),jc=Is(mn),Hc=Is(zn);function qc(t){return Qs(t)?An(ma(t)):function(t){return function(e){return ni(e,t)}}(t)}var Wc=Ss(),Yc=Ss(!0);function Xc(){return[]}function Jc(){return!1}var Kc=Ts((function(t,e){return t+e}),0),Zc=ws("ceil"),$c=Ts((function(t,e){return t/e}),1),Qc=ws("floor");var tl=Ts((function(t,e){return t*e}),1),el=ws(te(784)),nl=Ts((function(t,e){return t-e}),0);return yr[te(1436)]=function(t,e){if(typeof e!=te(432))throw new le(a);return t=Yo(t),function(){if(--t<1)return e.apply(this,arguments)}},yr[te(1300)]=so,yr[te(501)]=$o,yr[te(1437)]=Qo,yr[te(1438)]=tc,yr[te(1439)]=ec,yr.at=nc,yr[te(1440)]=ao,yr[te(511)]=oo,yr[te(1441)]=Dc,yr[te(1301)]=co,yr[te(1442)]=function(){if(!arguments[te(449)])return[];var t=arguments[0];return zo(t)?t:[t]},yr[te(1435)]=Ha,yr.chunk=function(t,e,r){var i=te;e=(r?$s(t,e,r):e===n)?1:nn(Yo(e),0);var s=null==t?0:t[i(449)];if(!s||e<1)return[];for(var a=0,o=0,c=ee(ke(s/e));as?0:s+r),(i=i===n||i>s?s:Yo(i))<0&&(i+=s),i=r>i?0:Xo(i);r>>0)?(t=Zo(t))&&("string"==typeof e||null!=e&&!Uo(e))&&!(e=Vi(e))&&qn(t)?ts(Zn(t),0,r):t[i(465)](e,r):[]},yr.spread=function(t,e){if(typeof t!=te(432))throw new le(a);return e=null==e?0:nn(Yo(e),0),Mi((function(n){var r=n[e],i=ts(n,0,e);return r&&En(i,r),un(t,this,i)}))},yr[te(811)]=function(t){var e=null==t?0:t[te(449)];return e?Fi(t,1,e):[]},yr[te(1399)]=function(t,e,r){return t&&t[te(449)]?Fi(t,0,(e=r||e===n?1:Yo(e))<0?0:e):[]},yr[te(1496)]=function(t,e,r){var i=null==t?0:t[te(449)];return i?Fi(t,(e=i-(e=r||e===n?1:Yo(e)))<0?0:e,i):[]},yr[te(1497)]=function(t,e){return t&&t[te(449)]?Wi(t,Gs(e,3),!1,!0):[]},yr.takeWhile=function(t,e){return t&&t[te(449)]?Wi(t,Gs(e,3)):[]},yr.tap=function(t,e){return e(t),t},yr[te(1498)]=function(t,e,n){var r=te,i=!0,s=!0;if(typeof t!=r(432))throw new le(a);return Lo(n)&&(i=r(1405)in n?!!n[r(1405)]:i,s=r(1407)in n?!!n[r(1407)]:s),lo(t,e,{leading:i,maxWait:e,trailing:s})},yr.thru=qa,yr[te(1499)]=qo,yr[te(1500)]=_c,yr.toPairsIn=gc,yr.toPath=function(t){return zo(t)?yn(t,ma):Go(t)?[t]:cs(pa(Zo(t)))},yr[te(1501)]=Ko,yr[te(1502)]=function(t,e,n){var r=zo(t),i=r||wo(t)||Vo(t);if(e=Gs(e,4),null==n){var s=t&&t.constructor;n=i?r?new s:[]:Lo(t)&&Ro(s)?Er(be(t)):{}}return(i?fn:Qr)(t,(function(t,r,i){return e(n,t,r,i)})),n},yr[te(1503)]=function(t){return so(t,1)},yr[te(1255)]=La,yr.unionBy=Pa,yr[te(1504)]=Oa,yr.uniq=function(t){return t&&t[te(449)]?ji(t):[]},yr[te(1505)]=function(t,e){return t&&t[te(449)]?ji(t,Gs(e,2)):[]},yr[te(1506)]=function(t,e){return e=typeof e==te(432)?e:n,t&&t.length?ji(t,n,e):[]},yr.unset=function(t,e){return null==t||Hi(t,e)},yr[te(1507)]=Fa,yr.unzipWith=Na,yr[te(1067)]=function(t,e,n){return null==t?t:qi(t,e,Zi(n))},yr.updateWith=function(t,e,r,i){return i="function"==typeof i?i:n,null==t?t:qi(t,e,Zi(r),i)},yr[te(673)]=yc,yr[te(1508)]=function(t){return null==t?[]:Un(t,uc(t))},yr[te(1509)]=Ua,yr[te(1510)]=Rc,yr.wrap=function(t,e){return vo(Zi(e),t)},yr[te(1257)]=Ba,yr[te(1511)]=ka,yr.xorWith=Ga,yr[te(1512)]=Va,yr[te(1513)]=function(t,e){return Ji(t||[],e||[],Pr)},yr.zipObjectDeep=function(t,e){return Ji(t||[],e||[],Di)},yr.zipWith=ja,yr.entries=_c,yr.entriesIn=gc,yr.extend=Qo,yr.extendWith=tc,kc(yr,yr),yr[te(747)]=Kc,yr.attempt=Ac,yr[te(1514)]=Ec,yr[te(1515)]=Tc,yr[te(561)]=Zc,yr.clamp=function(t,e,r){return r===n&&(r=e,e=n),r!==n&&(r=(r=Jo(r))==r?r:0),e!==n&&(e=(e=Jo(e))==e?e:0),kr(Jo(t),e,r)},yr[te(1014)]=function(t){return Gr(t,p)},yr[te(1516)]=function(t){return Gr(t,u|p)},yr.cloneDeepWith=function(t,e){return e=typeof e==te(432)?e:n,Gr(t,u|p,e)},yr[te(1517)]=function(t,e){return Gr(t,p,e="function"==typeof e?e:n)},yr[te(1518)]=function(t,e){return null==e||Vr(t,e,hc(e))},yr[te(1519)]=Ic,yr[te(1520)]=function(t,e){return null==t||t!=t?e:t},yr[te(1521)]=$c,yr[te(880)]=function(t,e,r){var i=te;t=Zo(t),e=Vi(e);var s=t.length,a=r=r===n?s:kr(Yo(r),0,s);return(r-=e[i(449)])>=0&&t.slice(r,a)==e},yr.eq=yo,yr.escape=function(t){var e=te;return(t=Zo(t))&&bt[e(467)](t)?t[e(448)](St,jn):t},yr[te(1522)]=function(t){var e=te;return(t=Zo(t))&&Pt[e(467)](t)?t[e(448)](Lt,"\\$&"):t},yr[te(466)]=function(t,e,r){var i=zo(t)?mn:Yr;return r&&$s(t,e,r)&&(e=n),i(t,Gs(e,3))},yr[te(932)]=Xa,yr[te(663)]=Ta,yr.findKey=function(t,e){return xn(t,Gs(e,3),Qr)},yr[te(664)]=Ja,yr[te(665)]=Ia,yr[te(1523)]=function(t,e){return xn(t,Gs(e,3),ti)},yr[te(562)]=Qc,yr[te(604)]=Ka,yr.forEachRight=Za,yr[te(1524)]=function(t,e){return null==t?t:Zr(t,Gs(e,3),uc)},yr[te(1525)]=function(t,e){return null==t?t:$r(t,Gs(e,3),uc)},yr[te(1526)]=function(t,e){return t&&Qr(t,Gs(e,3))},yr.forOwnRight=function(t,e){return t&&ti(t,Gs(e,3))},yr[te(427)]=sc,yr.gt=Eo,yr[te(1527)]=To,yr[te(546)]=function(t,e){return null!=t&&Xs(t,e,ai)},yr.hasIn=ac,yr[te(810)]=Sa,yr[te(1528)]=Fc,yr[te(667)]=function(t,e,n,r){t=xo(t)?t:yc(t),n=n&&!r?Yo(n):0;var i=t.length;return n<0&&(n=nn(i+n,0)),ko(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&wn(t,e,n)>-1},yr.indexOf=function(t,e,n){var r=null==t?0:t[te(449)];if(!r)return-1;var i=null==n?0:Yo(n);return i<0&&(i=nn(r+i,0)),wn(t,e,i)},yr.inRange=function(t,e,r){return e=Wo(e),r===n?(r=e,e=0):r=Wo(r),function(t,e,n){return t>=rn(e,n)&&t=-P&&t<=P},yr[te(1371)]=Bo,yr[te(1546)]=ko,yr[te(1547)]=Go,yr.isTypedArray=Vo,yr[te(1548)]=function(t){return t===n},yr[te(1549)]=function(t){return Po(t)&&Ys(t)==ot},yr.isWeakSet=function(t){return Po(t)&&ii(t)==ct},yr[te(549)]=function(t,e){return null==t?"":Qe[te(429)](t,e)},yr[te(1550)]=zc,yr[te(754)]=Ca,yr[te(678)]=function(t,e,r){var i=null==t?0:t.length;if(!i)return-1;var s=i;return r!==n&&(s=(s=Yo(r))<0?nn(i+s,0):rn(s,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,s):bn(t,Mn,s,!0)},yr[te(1551)]=Sc,yr.lowerFirst=xc,yr.lt=jo,yr.lte=Ho,yr[te(486)]=function(t){return t&&t[te(449)]?Xr(t,Fc,si):n},yr[te(1552)]=function(t,e){return t&&t.length?Xr(t,Gs(e,2),si):n},yr.mean=function(t){return Rn(t,Fc)},yr.meanBy=function(t,e){return Rn(t,Gs(e,2))},yr[te(563)]=function(t){return t&&t[te(449)]?Xr(t,Fc,_i):n},yr[te(1553)]=function(t,e){return t&&t.length?Xr(t,Gs(e,2),_i):n},yr[te(1554)]=Xc,yr[te(1555)]=Jc,yr[te(1556)]=function(){return{}},yr[te(1557)]=function(){return""},yr.stubTrue=function(){return!0},yr[te(1558)]=tl,yr[te(1559)]=function(t,e){return t&&t[te(449)]?Ii(t,Yo(e)):n},yr.noConflict=function(){return $e._===this&&($e._=Ee),this},yr.noop=Gc,yr[te(802)]=io,yr.pad=function(t,e,n){t=Zo(t);var r=(e=Yo(e))?Kn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return zs(We(i),n)+t+zs(ke(i),n)},yr[te(1560)]=function(t,e,n){t=Zo(t);var r=(e=Yo(e))?Kn(t):0;return e&&re){var s=t;t=e,e=s}if(r||t%1||e%1){var a=er();return rn(t+a*(e-t+Xe(i(1412)+((a+"")[i(449)]-1))),e)}return wi(t,e)},yr[te(684)]=function(t,e,n){var r=te,i=zo(t)?Tn:Ln,s=arguments[r(449)]<3;return i(t,Gs(e,4),n,s,qr)},yr[te(685)]=function(t,e,n){var r=zo(t)?In:Ln,i=arguments.length<3;return r(t,Gs(e,4),n,i,Wr)},yr[te(1562)]=function(t,e,r){return e=(r?$s(t,e,r):e===n)?1:Yo(e),Ci(Zo(t),e)},yr.replace=function(){var t=te,e=arguments,n=Zo(e[0]);return e.length<3?n:n[t(448)](e[1],e[2])},yr[te(649)]=function(t,e,r){var i=te,s=-1,a=(e=$i(e,t))[i(449)];for(!a&&(a=1,t=n);++sP)return[];var n=N,r=rn(t,N);e=Gs(e),t-=N;for(var i=On(r,e);++n=o)return t;var l=i-Kn(s);if(l<1)return s;var h=c?ts(c,0,l)[r(549)](""):t[r(497)](0,l);if(a===n)return h+s;if(c&&(l+=h[r(449)]-l),Uo(a)){if(t[r(497)](l)[r(625)](a)){var u,d=h;for(!a[r(557)]&&(a=oe(a[r(556)],Zo(Ht[r(601)](a))+"g")),a[r(855)]=0;u=a.exec(d);)var f=u.index;h=h[r(497)](0,f===n?l:f)}}else if(t.indexOf(Vi(a),l)!=l){var p=h[r(678)](a);p>-1&&(h=h[r(497)](0,p))}return h+s},yr[te(1582)]=function(t){var e=te;return(t=Zo(t))&&xt[e(467)](t)?t[e(448)](zt,Qn):t},yr.uniqueId=function(t){var e=++ve;return Zo(t)+e},yr[te(1583)]=Cc,yr.upperFirst=Mc,yr[te(1584)]=Ka,yr[te(1585)]=Za,yr.first=Sa,kc(yr,function(){var t={};return Qr(yr,(function(e,n){var r=f;!me[r(429)](yr[r(425)],n)&&(t[n]=e)})),t}(),{chain:!1}),yr[te(1586)]="4.17.21",fn(["bind",te(1301),"curry",te(1303),te(1305),te(1587)],(function(t){var e=te;yr[t][e(1393)]=yr})),fn([te(1451),"take"],(function(t,e){var r=te;zr[r(425)][t]=function(i){var s=r;i=i===n?1:nn(Yo(i),0);var a=this[s(1385)]&&!e?new zr(this):this[s(1014)]();return a.__filtered__?a[s(1383)]=rn(i,a[s(1383)]):a.__views__[s(565)]({size:rn(i,N),type:t+(a[s(1382)]<0?s(1588):"")}),a},zr[r(425)][t+r(1588)]=function(e){var n=r;return this[n(686)]()[t](e)[n(686)]()}})),fn(["filter",te(679),te(1589)],(function(t,e){var n=te,r=e+1,i=r==A||3==r;zr[n(425)][t]=function(t){var e=n,s=this.clone();return s[e(1386)][e(565)]({iteratee:Gs(t,3),type:r}),s[e(1385)]=s[e(1385)]||i,s}})),fn(["head","last"],(function(t,e){var n=te,r=n(1399)+(e?n(1588):"");zr[n(425)][t]=function(){var t=n;return this[r](1)[t(439)]()[0]}})),fn(["initial",te(811)],(function(t,e){var n=te,r="drop"+(e?"":n(1588));zr[n(425)][t]=function(){return this[n(1385)]?new zr(this):this[r](1)}})),zr[te(425)][te(1590)]=function(){return this[te(464)](Fc)},zr[te(425)].find=function(t){var e=te;return this[e(464)](t)[e(810)]()},zr[te(425)].findLast=function(t){var e=te;return this[e(686)]()[e(932)](t)},zr.prototype[te(1591)]=Mi((function(t,e){var n=te;return typeof t==n(432)?new zr(this):this[n(679)]((function(n){return li(n,t,e)}))})),zr[te(425)][te(831)]=function(t){return this[te(464)](po(Gs(t)))},zr[te(425)][te(497)]=function(t,e){var r=te;t=Yo(t);var i=this;return i.__filtered__&&(t>0||e<0)?new zr(i):(t<0?i=i[r(1496)](-t):t&&(i=i[r(1451)](t)),e!==n&&(i=(e=Yo(e))<0?i[r(1398)](-e):i[r(1399)](e-t)),i)},zr[te(425)].takeRightWhile=function(t){var e=te;return this[e(686)]()[e(1589)](t).reverse()},zr[te(425)][te(1499)]=function(){return this[te(1399)](N)},Qr(zr[te(425)],(function(t,e){var r=te,i=/^(?:filter|find|map|reject)|While$/[r(467)](e),s=/^(?:head|last)$/[r(467)](e),a=yr[s?r(1399)+(e==r(754)?r(1588):""):e],o=s||/^find/.test(e);a&&(yr[r(425)][e]=function(){var e=r,c=this[e(1378)],l=s?[1]:arguments,h=c instanceof zr,u=l[0],d=h||zo(c),f=function(t){var e=a.apply(yr,En([t],l));return s&&p?e[0]:e};d&&i&&"function"==typeof u&&1!=u[e(449)]&&(h=d=!1);var p=this[e(1380)],m=!!this[e(1379)][e(449)],v=o&&!p,_=h&&!m;if(!o&&d){c=_?c:new zr(this);var g=t.apply(c,l);return g[e(1379)][e(565)]({func:qa,args:[f],thisArg:n}),new Ir(g,p)}return v&&_?t[e(441)](this,l):(g=this.thru(f),v?s?g[e(439)]()[0]:g[e(439)]():g)})})),fn([te(1161),te(565),te(1061),te(688),te(690),te(691)],(function(t){var e=te,n=he[t],r=/^(?:push|sort|unshift)$/[e(467)](t)?e(1592):e(1394),i=/^(?:pop|shift)$/[e(467)](t);yr[e(425)][t]=function(){var t=e,s=arguments;if(i&&!this.__chain__){var a=this[t(439)]();return n[t(441)](zo(a)?a:[],s)}return this[r]((function(e){return n[t(441)](zo(e)?e:[],s)}))}})),Qr(zr[te(425)],(function(t,e){var n=te,r=yr[e];if(r){var i=r[n(542)]+"";!me[n(429)](hr,i)&&(hr[i]=[]),hr[i].push({name:e,func:r})}})),hr[ys(n,g).name]=[{name:te(1395),func:n}],zr[te(425)][te(1014)]=function(){var t=te,e=new zr(this.__wrapped__);return e[t(1379)]=cs(this.__actions__),e[t(1382)]=this[t(1382)],e[t(1385)]=this[t(1385)],e[t(1386)]=cs(this.__iteratees__),e[t(1383)]=this[t(1383)],e[t(1384)]=cs(this[t(1384)]),e},zr[te(425)][te(686)]=function(){var t=te;if(this[t(1385)]){var e=new zr(this);e.__dir__=-1,e[t(1385)]=!0}else(e=this[t(1014)]())[t(1382)]*=-1;return e},zr[te(425)][te(439)]=function(){var t=te,e=this.__wrapped__.value(),n=this[t(1382)],r=zo(e),i=n<0,s=r?e.length:0,a=function(t,e,n){var r=te,i=-1,s=n[r(449)];for(;++i=this[t(1381)][t(449)];return{done:e,value:e?n:this[t(1381)][this.__index__++]}},yr.prototype.plant=function(t){for(var e,r=te,i=this;i instanceof Tr;){var s=_a(i);s[r(1404)]=0,s[r(1381)]=n,e?a.__wrapped__=s:e=s;var a=s;i=i[r(1378)]}return a[r(1378)]=t,e},yr.prototype[te(686)]=function(){var t=te,e=this.__wrapped__;if(e instanceof zr){var r=e;return this[t(1379)][t(449)]&&(r=new zr(this)),(r=r.reverse())[t(1379)][t(565)]({func:qa,args:[Da],thisArg:n}),new Ir(r,this[t(1380)])}return this[t(1394)](Da)},yr[te(425)][te(733)]=yr[te(425)][te(525)]=yr[te(425)][te(439)]=function(){var t=te;return Yi(this[t(1378)],this[t(1379)])},yr.prototype[te(755)]=yr[te(425)][te(810)],Ae&&(yr.prototype[Ae]=function(){return this}),yr}();typeof define==r(432)&&"object"==typeof define[r(1173)]&&define[r(1173)]?($e._=tr,define((function(){return tr}))):tn?((tn[r(431)]=tr)._=tr,Qe._=tr):$e._=tr})[nz(429)](t)}}),require_rbush_min=__commonJS({"node_modules/.pnpm/rbush@3.0.1/node_modules/rbush/rbush.min.js"(t,e){var n,r,i;n=t,r=function(){"use strict";var t=f;function e(t,e,i,s,a){!function t(e,r,i,s,a){for(var o=f;s>i;){if(s-i>600){var c=s-i+1,l=r-i+1,h=Math[o(695)](c),u=.5*Math[o(768)](2*h/3),d=.5*Math[o(761)](h*u*(c-u)/c)*(l-c/2<0?-1:1);t(e,r,Math[o(486)](i,Math[o(562)](r-l*u/c+d)),Math.min(s,Math.floor(r+(c-l)*u/c+d)),a)}var p=e[r],m=i,v=s;for(n(e,i,r),a(e[s],p)>0&&n(e,i,s);m0;)v--}0===a(e[i],p)?n(e,i,v):n(e,++v,s),v<=r&&(i=v+1),r<=v&&(s=v-1)}}(t,e,i||0,s||t.length-1,a||r)}function n(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function r(t,e){return te?1:0}var i=function(t){var e=f;void 0===t&&(t=9),this._maxEntries=Math[e(486)](4,t),this[e(1595)]=Math[e(486)](2,Math[e(561)](.4*this[e(1596)])),this[e(750)]()};function s(t,e,n){var r=f;if(!n)return e[r(564)](t);for(var i=0;i=t[n(1597)]&&e[n(1600)]>=t.minY}function v(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function _(t,n,r,i,s){for(var a=f,o=[n,r];o.length;)if(!((r=o[a(1161)]())-(n=o[a(1161)]())<=i)){var c=n+Math[a(561)]((r-n)/i/2)*i;e(t,c,n,r,s),o[a(565)](n,c,c,r)}}return i[t(425)][t(515)]=function(){var e=t;return this[e(1601)](this[e(571)],[])},i[t(425)][t(625)]=function(e){var n=t,r=this.data,i=[];if(!m(e,r))return i;for(var s=this.toBBox,a=[];r;){for(var o=0;o=0&&a[n][i(1602)][i(449)]>this[i(1596)];)this[i(1613)](a,n),n--;this[i(1614)](s,a,n)},i[t(425)][t(1613)]=function(e,n){var r=t,i=e[n],s=i[r(1602)].length,o=this[r(1595)];this[r(1615)](i,o,s);var c=this._chooseSplitIndex(i,o,s),l=v(i[r(1602)][r(690)](c,i[r(1602)][r(449)]-c));l[r(1e3)]=i[r(1e3)],l.leaf=i.leaf,a(i,this[r(1605)]),a(l,this[r(1605)]),n?e[n-1][r(1602)].push(l):this[r(1607)](i,l)},i[t(425)]._splitRoot=function(e,n){var r=t;this[r(571)]=v([e,n]),this[r(571)][r(1e3)]=e[r(1e3)]+1,this[r(571)][r(1604)]=!1,a(this[r(571)],this[r(1605)])},i[t(425)][t(1616)]=function(e,n,r){for(var i,s,a,c,l,h,d,f=t,p=1/0,m=1/0,v=n;v<=r-n;v++){var _=o(e,0,v,this[f(1605)]),g=o(e,v,r,this[f(1605)]),y=(s=_,a=g,c=Math[f(486)](s[f(1597)],a.minX),l=Math.max(s.minY,a[f(1598)]),h=Math[f(563)](s[f(1599)],a[f(1599)]),d=Math[f(563)](s[f(1600)],a.maxY),Math[f(486)](0,h-c)*Math[f(486)](0,d-l)),E=u(_)+u(g);y=n;m--){var v=e.children[m];c(h,e.leaf?a(v):v),u+=d(h)}return u},i[t(425)][t(1614)]=function(t,e,n){for(var r=n;r>=0;r--)c(e[r],t)},i[t(425)]._condense=function(e){for(var n=t,r=e.length-1,i=void 0;r>=0;r--)0===e[r].children[n(449)]?r>0?(i=e[r-1][n(1602)])[n(690)](i[n(564)](e[r]),1):this[n(750)]():a(e[r],this.toBBox)},i},(i=f)(469)==typeof t&&i(430)!=typeof e?e[i(431)]=r():i(432)==typeof define&&define[i(1173)]?define(r):(n=n||self)[i(1594)]=r()}}),require_tinyqueue=__commonJS({"node_modules/.pnpm/tinyqueue@2.0.3/node_modules/tinyqueue/tinyqueue.js"(t,e){var n,r,i;n=t,r=function(){"use strict";var t=f,e=function(t,e){var r=f;if(void 0===t&&(t=[]),void 0===e&&(e=n),this[r(571)]=t,this[r(449)]=this[r(571)][r(449)],this[r(1218)]=e,this[r(449)]>0)for(var i=(this[r(449)]>>1)-1;i>=0;i--)this._down(i)};function n(t,e){return te?1:0}return e[t(425)].push=function(e){var n=t;this[n(571)].push(e),this.length++,this[n(1619)](this.length-1)},e.prototype[t(1161)]=function(){var e=t;if(0!==this[e(449)]){var n=this[e(571)][0],r=this[e(571)][e(1161)]();return this.length--,this[e(449)]>0&&(this.data[0]=r,this[e(1620)](0)),n}},e.prototype[t(1621)]=function(){return this.data[0]},e.prototype[t(1619)]=function(e){for(var n=t,r=this[n(571)],i=this[n(1218)],s=r[e];e>0;){var a=e-1>>1,o=r[a];if(i(s,o)>=0)break;r[e]=o,e=a}r[e]=s},e.prototype._down=function(e){for(var n=t,r=this[n(571)],i=this[n(1218)],s=this.length>>1,a=r[e];e=0)break;r[e]=c,e=o}r[e]=a},e},i=f,"object"==typeof t&&void 0!==e?e[i(431)]=r():typeof define===i(432)&&define[i(1173)]?define(r):(n=n||self)[i(1618)]=r()}}),require_flat=__commonJS({"node_modules/.pnpm/point-in-polygon@1.1.0/node_modules/point-in-polygon/flat.js"(t,e){var n=nz;e[n(431)]=function(t,e,r,i){var s=n,a=t[0],o=t[1],c=!1;void 0===r&&(r=0),void 0===i&&(i=e[s(449)]);for(var l=(i-r)/2,h=0,u=l-1;ho!=m>o&&a<(p-d)*(o-f)/(m-f)+d&&(c=!c)}return c}}}),require_nested=__commonJS({"node_modules/.pnpm/point-in-polygon@1.1.0/node_modules/point-in-polygon/nested.js"(t,e){e.exports=function(t,e,n,r){var i=f,s=t[0],a=t[1],o=!1;void 0===n&&(n=0),void 0===r&&(r=e[i(449)]);for(var c=r-n,l=0,h=c-1;la!=m>a&&s<(p-u)*(a-d)/(m-d)+u&&(o=!o)}return o}}}),require_point_in_polygon=__commonJS({"node_modules/.pnpm/point-in-polygon@1.1.0/node_modules/point-in-polygon/index.js"(t,e){var n=nz,r=require_flat(),i=require_nested();e.exports=function(t,e,n,s){var a=f;return e.length>0&&Array[a(468)](e[0])?i(t,e,n,s):r(t,e,n,s)},e.exports[n(1622)]=i,e[n(431)][n(1623)]=r}}),require_orient2d_min=__commonJS({"node_modules/.pnpm/robust-predicates@2.0.4/node_modules/robust-predicates/umd/orient2d.min.js"(t,e){var n,r,i;n=t,r=function(t){"use strict";var e=f;const n=134217729;function r(t,e,n,r,i){let s,a,o,c,l=e[0],h=r[0],u=0,d=0;h>l==h>-l?(s=l,l=e[++u]):(s=h,h=r[++d]);let f=0;if(ul==h>-l?(o=s-((a=l+s)-l),l=e[++u]):(o=s-((a=h+s)-h),h=r[++d]),s=a,0!==o&&(i[f++]=o);ul==h>-l?(o=s-((a=s+l)-(c=a-s))+(l-c),l=e[++u]):(o=s-((a=s+h)-(c=a-s))+(h-c),h=r[++d]),s=a,0!==o&&(i[f++]=o);for(;u0!=v>0)return _;const g=Math[p(694)](m+v);return Math.abs(_)>=33306690738754716e-32*g?_:-function(t,e,i,h,u,d,f){var m=p;let v,_,g,y,E,T,I,z,S,x,b,w,C,M,R,A,D,L;const P=t-u,O=i-u,F=e-d,N=h-d;E=(R=(z=P-(I=(T=n*P)-(T-P)))*(x=N-(S=(T=n*N)-(T-N)))-((M=P*N)-I*S-z*S-I*x))-(b=R-(D=(z=F-(I=(T=n*F)-(T-F)))*(x=O-(S=(T=n*O)-(T-O)))-((A=F*O)-I*S-z*S-I*x))),s[0]=R-(b+E)+(E-D),E=(C=M-((w=M+b)-(E=w-M))+(b-E))-(b=C-A),s[1]=C-(b+E)+(E-A),E=(L=w+b)-w,s[2]=w-(L-E)+(b-E),s[3]=L;let U=function(t,e){let n=e[0];for(let t=1;t<4;t++)n+=e[t];return n}(0,s),B=22204460492503146e-32*f;if(U>=B||-U>=B)return U;if(v=t-(P+(E=t-P))+(E-u),g=i-(O+(E=i-O))+(E-u),_=e-(F+(E=e-F))+(E-d),y=h-(N+(E=h-N))+(E-d),0===v&&0===_&&0===g&&0===y)return U;if(B=11093356479670487e-47*f+33306690738754706e-32*Math[m(694)](U),(U+=P*y+N*v-(F*g+O*_))>=B||-U>=B)return U;E=(R=(z=v-(I=(T=n*v)-(T-v)))*(x=N-(S=(T=n*N)-(T-N)))-((M=v*N)-I*S-z*S-I*x))-(b=R-(D=(z=_-(I=(T=n*_)-(T-_)))*(x=O-(S=(T=n*O)-(T-O)))-((A=_*O)-I*S-z*S-I*x))),l[0]=R-(b+E)+(E-D),E=(C=M-((w=M+b)-(E=w-M))+(b-E))-(b=C-A),l[1]=C-(b+E)+(E-A),E=(L=w+b)-w,l[2]=w-(L-E)+(b-E),l[3]=L;const k=r(4,s,4,l,a);E=(R=(z=P-(I=(T=n*P)-(T-P)))*(x=y-(S=(T=n*y)-(T-y)))-((M=P*y)-I*S-z*S-I*x))-(b=R-(D=(z=F-(I=(T=n*F)-(T-F)))*(x=g-(S=(T=n*g)-(T-g)))-((A=F*g)-I*S-z*S-I*x))),l[0]=R-(b+E)+(E-D),E=(C=M-((w=M+b)-(E=w-M))+(b-E))-(b=C-A),l[1]=C-(b+E)+(E-A),E=(L=w+b)-w,l[2]=w-(L-E)+(b-E),l[3]=L;const G=r(k,a,4,l,o);E=(R=(z=v-(I=(T=n*v)-(T-v)))*(x=y-(S=(T=n*y)-(T-y)))-((M=v*y)-I*S-z*S-I*x))-(b=R-(D=(z=_-(I=(T=n*_)-(T-_)))*(x=g-(S=(T=n*g)-(T-g)))-((A=_*g)-I*S-z*S-I*x))),l[0]=R-(b+E)+(E-D),E=(C=M-((w=M+b)-(E=w-M))+(b-E))-(b=C-A),l[1]=C-(b+E)+(E-A),E=(L=w+b)-w,l[2]=w-(L-E)+(b-E),l[3]=L;const V=r(G,o,4,l,c);return c[V-1]}(t,e,i,h,u,d,g)},t[e(1624)]=function(t,e,n,r,i,s){return(e-s)*(n-i)-(t-i)*(r-s)},Object[e(420)](t,"__esModule",{value:!0})},(i=f)(469)==typeof t&&i(430)!=typeof e?r(t):"function"==typeof define&&define.amd?define(["exports"],r):r((n=n||self).predicates={})}}),require_concaveman=__commonJS({"node_modules/.pnpm/concaveman@1.2.1/node_modules/concaveman/index.js"(t,e){"use strict";var n=nz,r=require_rbush_min(),i=require_tinyqueue(),s=require_point_in_polygon(),a=require_orient2d_min()[n(1625)];function o(t,e,i){var a=n;e=Math[a(486)](0,void 0===e?2:e),i=i||0;var o=function(t){for(var e=n,r=t[0],i=t[0],a=t[0],o=t[0],c=0;ca[0]&&(a=l),l[1]o[1]&&(o=l)}var h=[r,i,a,o],u=h[e(497)]();for(c=0;c=2&&f(r[r[e(449)]-2],r[r[e(449)]-1],t[i])<=0;)r[e(1161)]();r.push(t[i])}for(var s=[],a=t.length-1;a>=0;a--){for(;s[e(449)]>=2&&f(s[s[e(449)]-2],s[s[e(449)]-1],t[a])<=0;)s[e(1161)]();s[e(565)](t[a])}return s[e(1161)](),r[e(1161)](),r.concat(s)}(u)}(t),l=new r(16);l[a(1605)]=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},l[a(1610)]=function(t,e){return t[0]-e[0]},l[a(1611)]=function(t,e){return t[1]-e[1]},l[a(1212)](t);for(var h,u=[],d=0;do||f.push({node:v,dist:_})}for(;f[u(449)]&&!f[u(1621)]()[u(1626)][u(1602)];){var y=f[u(1161)](),E=y[u(1626)],T=g(E,e,r),I=g(E,s,a);if(y[u(1627)]=e[r(1597)]&&t[0]<=e[r(1599)]&&t[1]>=e[r(1598)]&&t[1]<=e[r(1600)]}function d(t,e,r){for(var i=n,s=Math[i(563)](t[0],e[0]),a=Math[i(563)](t[1],e[1]),o=Math[i(486)](t[0],e[0]),c=Math[i(486)](t[1],e[1]),l=r[i(625)]({minX:s,minY:a,maxX:o,maxY:c}),h=0;h0!=f(t,e,r)>0&&f(n,r,t)>0!=f(n,r,e)>0}function m(t){var e=n,r=t.p,i=t[e(436)].p;return t[e(1597)]=Math[e(563)](r[0],i[0]),t.minY=Math[e(563)](r[1],i[1]),t[e(1599)]=Math[e(486)](r[0],i[0]),t[e(1600)]=Math.max(r[1],i[1]),t}function v(t,e){var r=n,i={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(i[r(436)]=e[r(436)],i.prev=e,e[r(436)][r(1164)]=i,e[r(436)]=i):(i[r(1164)]=i,i[r(436)]=i),i}function _(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}function g(t,e,n){var r=e[0],i=e[1],s=n[0]-r,a=n[1]-i;if(0!==s||0!==a){var o=((t[0]-r)*s+(t[1]-i)*a)/(s*s+a*a);o>1?(r=n[0],i=n[1]):o>0&&(r+=s*o,i+=a*o)}return(s=t[0]-r)*s+(a=t[1]-i)*a}function y(t,e,n,r,i,s,a,o){var c,l,h,u,d=n-t,f=r-e,p=a-i,m=o-s,v=t-i,_=e-s,g=d*d+f*f,y=d*p+f*m,E=p*p+m*m,T=d*v+f*_,I=p*v+m*_,z=g*E-y*y,S=z,x=z;0===z?(l=0,S=1,u=I,x=E):(u=g*I-y*T,(l=y*I-E*T)<0?(l=0,u=I,x=E):l>S&&(l=S,u=I+y,x=E)),u<0?(u=0,-T<0?l=0:-T>g?l=S:(l=-T,S=g)):u>x&&(u=x,-T+y<0?l=0:-T+y>g?l=S:(l=-T+y,S=g));var b=(1-(h=0===u?0:u/x))*i+h*a-((1-(c=0===l?0:l/S))*t+c*n),w=(1-h)*s+h*o-((1-c)*e+c*r);return b*b+w*w}function E(t,e){return t[0]===e[0]?t[1]-e[1]:t[0]-e[0]}i[n(435)]&&(i=i[n(435)]),e.exports=o,e[n(431)].default=o}}),require_build_log=__commonJS({"node_modules/.pnpm/polybooljs@1.2.0/node_modules/polybooljs/lib/build-log.js"(t,e){e.exports=function(){var t,e=0,n=!1;function r(e,n){var r=f;return t[r(1628)][r(565)]({type:e,data:n?JSON.parse(JSON.stringify(n)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return r(f(1629),{seg1:t,seg2:e})},segmentChop:function(t,e){return r(f(1630),{seg:t,pt:e}),r("chop",{seg:t,pt:e})},statusRemove:function(t){return r(f(1631),{seg:t})},segmentUpdate:function(t){return r(f(1632),{seg:t})},segmentNew:function(t,e){return r(f(1633),{seg:t,primary:e})},segmentRemove:function(t){return r(f(1634),{seg:t})},tempStatus:function(t,e,n){return r(f(1635),{seg:t,above:e,below:n})},rewind:function(t){return r(f(1636),{seg:t})},status:function(t,e,n){return r(f(1637),{seg:t,above:e,below:n})},vert:function(e){return e===n?t:(n=e,r(f(1638),{x:e}))},log:function(t){var e=f;return typeof t!==e(470)&&(t=JSON.stringify(t,!1," ")),r(e(695),{txt:t})},reset:function(){return r(f(1160))},selected:function(t){return r(f(1639),{segs:t})},chainStart:function(t){return r(f(1640),{seg:t})},chainRemoveHead:function(t,e){return r(f(1641),{index:t,pt:e})},chainRemoveTail:function(t,e){return r(f(1642),{index:t,pt:e})},chainNew:function(t,e){return r(f(1643),{pt1:t,pt2:e})},chainMatch:function(t){return r(f(1644),{index:t})},chainClose:function(t){return r(f(1645),{index:t})},chainAddHead:function(t,e){return r(f(1646),{index:t,pt:e})},chainAddTail:function(t,e){return r("chain_add_tail",{index:t,pt:e})},chainConnect:function(t,e){return r(f(1647),{index1:t,index2:e})},chainReverse:function(t){return r(f(1648),{index:t})},chainJoin:function(t,e){return r(f(1649),{index1:t,index2:e})},done:function(){return r(f(438))}}}}}),require_epsilon=__commonJS({"node_modules/.pnpm/polybooljs@1.2.0/node_modules/polybooljs/lib/epsilon.js"(t,e){e.exports=function(t){var e=f;typeof t!==e(458)&&(t=1e-10);var n={epsilon:function(e){return"number"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,n,r){var i=n[0],s=n[1],a=r[0],o=r[1],c=e[0];return(a-i)*(e[1]-s)-(o-s)*(c-i)>=-t},pointBetween:function(e,n,r){var i=e[1]-n[1],s=r[0]-n[0],a=e[0]-n[0],o=r[1]-n[1],c=a*s+i*o;return!(c-t)},pointsSameX:function(n,r){return Math[e(694)](n[0]-r[0])t!=c-a>t&&(o-u)*(a-d)/(c-d)+u-s>t&&(l=!l),o=u,c=d}return l}};return n}}}),require_linked_list=__commonJS({"node_modules/.pnpm/polybooljs@1.2.0/node_modules/polybooljs/lib/linked-list.js"(t,e){var n={create:function(){var t={root:{root:!0,next:null},exists:function(e){return null!==e&&e!==t[f(1163)]},isEmpty:function(){var e=f;return null===t[e(1163)][e(436)]},getHead:function(){var e=f;return t.root[e(436)]},insertBefore:function(e,n){for(var r=f,i=t[r(1163)],s=t[r(1163)][r(436)];null!==s;){if(n(s))return e.prev=s[r(1164)],e[r(436)]=s,s[r(1164)][r(436)]=e,void(s[r(1164)]=e);i=s,s=s.next}i.next=e,e[r(1164)]=i,e[r(436)]=null},findTransition:function(e){for(var n=f,r=t[n(1163)],i=t[n(1163)][n(436)];null!==i&&!e(i);)r=i,i=i.next;return{before:r===t[n(1163)]?null:r,after:i,insert:function(t){var e=n;return t[e(1164)]=r,t[e(436)]=i,r[e(436)]=t,null!==i&&(i.prev=t),t}}}};return t},node:function(t){var e=f;return t[e(1164)]=null,t[e(436)]=null,t[e(1204)]=function(){var n=e;t[n(1164)][n(436)]=t.next,t[n(436)]&&(t[n(436)][n(1164)]=t[n(1164)]),t[n(1164)]=null,t[n(436)]=null},t}};e[nz(431)]=n}}),require_intersecter=__commonJS({"node_modules/.pnpm/polybooljs@1.2.0/node_modules/polybooljs/lib/intersecter.js"(t,e){var n=nz,r=require_linked_list();e[n(431)]=function(t,e,n){var i=f;function s(t,e){return{id:n?n[f(1654)]():-1,start:t,end:e,myFill:{above:null,below:null},otherFill:null}}function a(t,e,r){var i=f;return{id:n?n[i(1654)]():-1,start:t,end:e,myFill:{above:r.myFill[i(1655)],below:r[i(1656)][i(1657)]},otherFill:null}}var o=r[i(419)]();function c(t,n){var r=i;o[r(1659)](t,(function(s){var a=r,o=function(t,n,r,s,a,o){var c=i,l=e.pointsCompare(n,a);return 0!==l?l:e[c(1658)](r,o)?0:t!==s?t?1:-1:e.pointAboveOrOnLine(r,s?a:o,s?o:a)?1:-1}(t[a(1660)],t.pt,n,s.isStart,s.pt,s[a(493)].pt);return o<0}))}function l(t,e){var n=function(t,e){var n=i,s=r[n(1626)]({isStart:!0,pt:t.start,seg:t,primary:e,other:null,status:null});return c(s,t[n(887)]),s}(t,e);return function(t,e,n){var s=i,a=r[s(1626)]({isStart:!1,pt:e[s(887)],seg:e,primary:n,other:t,status:null});t[s(493)]=a,c(a,t.pt)}(n,t,e),n}function h(t,e){var r=i,s=a(e,t[r(1662)][r(887)],t[r(1662)]);return function(t,e){var r=i;n&&n[r(1661)](t[r(1662)],e),t[r(493)].remove(),t[r(1662)].end=e,t.other.pt=e,c(t.other,t.pt)}(t,e),l(s,t[r(1663)])}function u(s,a){var c=i,l=r[c(419)]();function u(t){return l.findTransition((function(n){var r=function(t,n){var r=c,i=t[r(1662)][r(725)],s=t[r(1662)][r(887)],a=n.seg[r(725)],o=n[r(1662)][r(887)];return e[r(1664)](i,a,o)?e[r(1664)](s,a,o)||e[r(1665)](s,a,o)?1:-1:e[r(1665)](i,a,o)?1:-1}(t,n.ev);return r>0}))}function d(t,r){var i=c,s=t[i(1662)],a=r[i(1662)],o=s[i(725)],l=s[i(887)],u=a[i(725)],d=a.end;n&&n[i(1666)](s,a);var f=e[i(1667)](o,l,u,d);if(!1===f){if(!e[i(1664)](o,l,u))return!1;if(e.pointsSame(o,d)||e[i(1658)](l,u))return!1;var p=e.pointsSame(o,u),m=e[i(1658)](l,d);if(p&&m)return r;var v=!p&&e[i(1668)](o,u,d),_=!m&&e[i(1668)](l,u,d);if(p)return _?h(r,l):h(t,d),r;v&&(!m&&(_?h(r,l):h(t,d)),h(r,o))}else 0===f.alongA&&(-1===f.alongB?h(t,u):0===f[i(1653)]?h(t,f.pt):1===f[i(1653)]&&h(t,d)),0===f[i(1653)]&&(-1===f[i(1652)]?h(r,o):0===f[i(1652)]?h(r,f.pt):1===f[i(1652)]&&h(r,l));return!1}for(var f=[];!o[c(1213)]();){var p=o[c(1669)]();if(n&&n[c(1638)](p.pt[0]),p.isStart){let e=function(){if(v){var t=d(p,v);if(t)return t}return!!_&&d(p,_)};n&&n.segmentNew(p[c(1662)],p[c(1663)]);var m=u(p),v=m[c(1440)]?m[c(1440)].ev:null,_=m[c(1436)]?m[c(1436)].ev:null;n&&n[c(1670)](p[c(1662)],!!v&&v[c(1662)],!!_&&_[c(1662)]);var g,y=e();if(y){var E;if(t)(E=null===p[c(1662)][c(1656)][c(1657)]||p[c(1662)][c(1656)][c(1655)]!==p.seg[c(1656)][c(1657)])&&(y.seg[c(1656)][c(1655)]=!y[c(1662)][c(1656)][c(1655)]);else y.seg[c(1671)]=p[c(1662)].myFill;n&&n[c(1672)](y[c(1662)]),p.other.remove(),p.remove()}if(o[c(1669)]()!==p){n&&n[c(1636)](p.seg);continue}if(t)E=null===p[c(1662)].myFill[c(1657)]||p.seg.myFill.above!==p.seg[c(1656)].below,_?p.seg.myFill.below=_.seg.myFill[c(1655)]:p[c(1662)][c(1656)][c(1657)]=s,p[c(1662)][c(1656)][c(1655)]=E?!p[c(1662)][c(1656)][c(1657)]:p[c(1662)][c(1656)][c(1657)];else if(null===p[c(1662)][c(1671)])g=_?p[c(1663)]===_[c(1663)]?_[c(1662)][c(1671)].above:_[c(1662)].myFill[c(1655)]:p[c(1663)]?a:s,p[c(1662)][c(1671)]={above:g,below:g};n&&n[c(1637)](p[c(1662)],!!v&&v[c(1662)],!!_&&_.seg),p.other[c(1637)]=m[c(1203)](r[c(1626)]({ev:p}))}else{var T=p[c(1637)];if(null===T)throw new Error(c(1673));if(l[c(1674)](T[c(1164)])&&l[c(1674)](T.next)&&d(T[c(1164)].ev,T.next.ev),n&&n[c(1675)](T.ev[c(1662)]),T.remove(),!p.primary){var I=p[c(1662)][c(1656)];p[c(1662)].myFill=p[c(1662)][c(1671)],p[c(1662)].otherFill=I}f[c(565)](p[c(1662)])}o.getHead()[c(1204)]()}return n&&n[c(438)](),f}return t?{addRegion:function(t){for(var n,r=i,a=t[t[r(449)]-1],o=0;oe.length)&&(n=e[r(449)]);for(var i=0,s=Array(n);il[s(1734)])throw new RangeError("Maximum BigInt size exceeded");return i}!function(e,n){var r=t;if(r(432)!=typeof n&&null!==n)throw new TypeError(r(1728));e[r(425)]=Object[r(419)](n&&n[r(425)],{constructor:{value:e,writable:!0,configurable:!0}}),Object[r(420)](e,r(425),{writable:!1}),n&&a(e,n)}(l,e);var f=u(l);return function(e,n,r){var s=t;n&&i(e[s(425)],n),r&&i(e,r),Object[s(420)](e,s(425),{writable:!1})}(l,[{key:n(1735),value:function(){var e,r=n,i=[r(1736)],s=function(e,n){var r=t,i=r(430)!=typeof Symbol&&e[Symbol[r(491)]]||e[r(675)];if(!i){if(Array.isArray(e)||(i=p(e))||n&&e&&"number"==typeof e[r(449)]){i&&(e=i);var s=0,a=function(){};return{s:a,n:function(){return s>=e[r(449)]?{done:!0}:{done:!1,value:e[s++]}},e:function(t){throw t},f:a}}throw new TypeError(r(1733))}var o,c=!0,l=!1;return{s:function(){i=i[r(429)](e)},n:function(){var t=i[r(436)]();return c=t.done,t},e:function(t){l=!0,o=t},f:function(){var t=r;try{c||null==i[t(1137)]||i[t(1137)]()}finally{if(l)throw o}}}}(this);try{for(s.s();!(e=s.n())[r(438)];){var a=e[r(439)];i[r(565)]((a?(a>>>0)[r(526)](16):a)+", ")}}catch(t){s.e(t)}finally{s.f()}return i[r(565)]("]"),i[r(549)]("")}},{key:n(526),value:function(){var t=n,e=0e||36this[i(449)]&&(r=this[i(449)]);for(var s=32767&t,a=t>>>15,o=0,c=e,h=0;h>>15,p=l.__imul(d,s),m=l[i(1746)](d,a),v=l.__imul(f,s),_=c+p+o;o=_>>>30,_&=1073741823,o+=(_+=((32767&m)<<15)+((32767&v)<<15))>>>30,c=l[i(1746)](f,a)+(m>>>15)+(v>>>15),this[i(1747)](h,1073741823&_)}if(0!==o||0!==c)throw new Error(i(1748))}},{key:n(1749),value:function(t,e,r){for(var i,s=n,a=0,o=0;o>>15,this[s(1751)](e+o,32767&i);return a}},{key:"__inplaceSub",value:function(t,e,r){var i=n,s=0;if(1&e){e>>=1;for(var a=this[i(1744)](e),o=32767&a,c=0;c>>1;c++){var l=t[i(1744)](c),h=(a>>>15)-(32767&l)-s;s=1&h>>>15,this[i(1747)](e+c,(32767&h)<<15|32767&o),s=1&(o=(32767&(a=this[i(1744)](e+c+1)))-(l>>>15)-s)>>>15}var u=t[i(1744)](c),d=(a>>>15)-(32767&u)-s;if(s=1&d>>>15,this.__setDigit(e+c,(32767&d)<<15|32767&o),e+c+1>=this[i(449)])throw new RangeError(i(1752));0==(1&r)&&(s=1&(o=(32767&(a=this[i(1744)](e+c+1)))-(u>>>15)-s)>>>15,this[i(1747)](e+t.length,1073709056&a|32767&o))}else{e>>=1;for(var f=0;f>>15)-(m>>>15)-(s=1&v>>>15);s=1&_>>>15,this[i(1747)](e+f,(32767&_)<<15|32767&v)}var g=this.__digit(e+f),y=t[i(1744)](f),E=(32767&g)-(32767&y)-s;s=1&E>>>15;var T=0;0==(1&r)&&(s=1&(T=(g>>>15)-(y>>>15)-s)>>>15),this[i(1747)](e+f,(32767&T)<<15|32767&E)}return s}},{key:n(1753),value:function(t){var e=n;if(0!==t){for(var r,i=this[e(1744)](0)>>>t,s=this[e(449)]-1,a=0;a>>t;this.__setDigit(s,i)}}},{key:n(1744),value:function(t){return this[t]}},{key:n(1754),value:function(t){return this[t]>>>0}},{key:n(1747),value:function(t,e){this[t]=0|e}},{key:n(1755),value:function(t,e){this[t]=0|e}},{key:n(1756),value:function(){var t=n,e=this[t(449)];return 32767>=this[t(1754)](e-1)?2*e-1:2*e}},{key:"__halfDigit",value:function(t){return 32767&this[t>>>1]>>>15*(1&t)}},{key:"__setHalfDigit",value:function(t,e){var r=n,i=t>>>1,s=this[r(1744)](i),a=1&t?32767&s|e<<15:1073709056&s|32767&e;this[r(1747)](i,a)}}],[{key:"BigInt",value:function(t){var e=n,i=Number[e(780)];if(e(458)==typeof t){if(0===t)return l[e(1757)]();if(l[e(1758)](t))return 0>t?l[e(1759)](-t,!0):l[e(1759)](t,!1);if(!i(t)||c(t)!==t)throw new RangeError("The number "+t+e(1760));return l.__fromDouble(t)}if(e(470)==typeof t){var s=l[e(1761)](t);if(null===s)throw new SyntaxError(e(1762)+t+e(1763));return s}if(e(1403)==typeof t)return!0===t?l[e(1759)](1,!1):l.__zero();if(e(469)===r(t)){if(t[e(443)]===l)return t;var a=l[e(1764)](t);return l[e(1765)](a)}throw new TypeError(e(1762)+t+" to a BigInt")}},{key:"toNumber",value:function(t){var e=n,r=t[e(449)];if(0===r)return 0;if(1===r){var i=t.__unsignedDigit(0);return t.sign?-i:i}var s=t[e(1744)](r-1),a=l[e(1743)](s),o=30*r-a;if(1024>>=12;var p=d-12,m=12<=d?0:h<<20+d,v=20+d;for(0>>30-p,m=h<>>30-v,v-=30;var _=l.__decideRounding(t,v,u,h);if((1===_||0===_&&1==(1&m))&&0==(m=m+1>>>0)&&0!=++f>>>20&&(f=0,1023<++c))return t[e(765)]?-1/0:1/0;var g=t[e(765)]?-2147483648:0;return c=c+1023<<20,l[e(1766)][1]=g|c|f,l[e(1766)][0]=m,l.__kBitConversionDouble[0]}},{key:n(1767),value:function(t){var e=n;if(0===t[e(449)])return t;var r=t[e(1739)]();return r[e(765)]=!t[e(765)],r}},{key:n(1768),value:function(t){var e=n;return t[e(765)]?l[e(1769)](t)[e(1740)]():l[e(1770)](t,!0)}},{key:n(1771),value:function(t,e){var r=n;if(e[r(765)])throw new RangeError(r(1772));if(0===e.length)return l.__oneDigit(1,!1);if(0===t[r(449)])return t;if(1===t.length&&1===t[r(1744)](0))return t[r(765)]&&0==(1&e[r(1744)](0))?l[r(1767)](t):t;if(1=l[r(1774)])throw new RangeError(r(1773));if(1===t.length&&2===t[r(1744)](0)){var s=1+(0|i/30),a=new l(s,t[r(765)]&&0!=(1&i));a[r(1741)]();var o=1<>=1;0!==i;i>>=1)h=l[r(1558)](h,h),0!=(1&i)&&(c=null===c?h:l.multiply(c,h));return c}},{key:n(1558),value:function(t,e){var r=n;if(0===t[r(449)])return t;if(0===e.length)return e;var i=t[r(449)]+e[r(449)];30<=t.__clzmsd()+e[r(1742)]()&&i--;var s=new l(i,t[r(765)]!==e.sign);s[r(1741)]();for(var a=0;al[r(1777)](t,e))return l[r(1757)]();var i,s=t[r(765)]!==e[r(765)],a=e[r(1754)](0);if(1===e[r(449)]&&32767>=a){if(1===a)return s===t[r(765)]?t:l[r(1767)](t);i=l[r(1778)](t,a,null)}else i=l[r(1779)](t,e,!0,!1);return i[r(765)]=s,i.__trim()}},{key:"remainder",value:function(t,e){var r=n;if(0===e.length)throw new RangeError(r(1776));if(0>l.__absoluteCompare(t,e))return t;var i=e[r(1754)](0);if(1===e[r(449)]&&32767>=i){if(1===i)return l.__zero();var s=l.__absoluteModSmall(t,i);return 0===s?l[r(1757)]():l[r(1759)](s,t.sign)}var a=l[r(1779)](t,e,!1,!0);return a[r(765)]=t[r(765)],a.__trim()}},{key:n(747),value:function(t,e){var r=n,i=t.sign;return i===e[r(765)]?l[r(1780)](t,e,i):0<=l.__absoluteCompare(t,e)?l.__absoluteSub(t,e,i):l[r(1781)](e,t,!i)}},{key:"subtract",value:function(t,e){var r=n,i=t[r(765)];return i===e[r(765)]?0<=l[r(1777)](t,e)?l[r(1781)](t,e,i):l[r(1781)](e,t,!i):l[r(1780)](t,e,i)}},{key:"leftShift",value:function(t,e){var r=n;return 0===e[r(449)]||0===t[r(449)]?t:e[r(765)]?l[r(1782)](t,e):l[r(1783)](t,e)}},{key:n(1784),value:function(t,e){var r=n;return 0===e[r(449)]||0===t[r(449)]?t:e.sign?l.__leftShiftByAbsolute(t,e):l[r(1782)](t,e)}},{key:n(1785),value:function(){throw new TypeError(n(1786))}},{key:n(1787),value:function(t,e){return 0>l.__compareToBigInt(t,e)}},{key:n(1788),value:function(t,e){return 0>=l[n(1789)](t,e)}},{key:n(1790),value:function(t,e){return 0(t=c(t)))throw new RangeError(r(1799));if(0===t)return l[r(1757)]();if(t>=l[r(1774)])return e;var i=0|(t+29)/30;if(e.length(t=c(t)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===t)return l[r(1757)]();if(e.sign){if(t>l[r(1774)])throw new RangeError(r(1773));return l[r(1801)](t,e,!1)}if(t>=l[r(1774)])return e;var i=0|(t+29)/30;if(e[r(449)]>>s)return e}return l[r(1800)](t,e)}},{key:n(1803),value:function(t,e){var r=n;if(t=l.__toPrimitive(t),e=l[r(1764)](e),r(470)==typeof t)return r(470)!=typeof e&&(e=e.toString()),t+e;if("string"==typeof e)return t[r(526)]()+e;if(t=l[r(1804)](t),e=l.__toNumeric(e),l.__isBigInt(t)&&l[r(1805)](e))return l[r(747)](t,e);if(r(458)==typeof t&&r(458)==typeof e)return t+e;throw new TypeError(r(1806))}},{key:"LT",value:function(t,e){return l[n(1807)](t,e,0)}},{key:"LE",value:function(t,e){return l[n(1807)](t,e,1)}},{key:"GT",value:function(t,e){return l[n(1807)](t,e,2)}},{key:"GE",value:function(t,e){return l[n(1807)](t,e,3)}},{key:"EQ",value:function(t,e){for(var i=n;;){if(l[i(1805)](t))return l[i(1805)](e)?l.equal(t,e):l.EQ(e,t);if(i(458)==typeof t){if(l[i(1805)](e))return l[i(1808)](e,t);if("object"!==r(e))return t==e;e=l[i(1764)](e)}else if(i(470)==typeof t){if(l.__isBigInt(e))return null!==(t=l[i(1761)](t))&&l[i(1809)](t,e);if(i(469)!==r(e))return t==e;e=l[i(1764)](e)}else if("boolean"==typeof t){if(l[i(1805)](e))return l[i(1808)](e,+t);if(i(469)!==r(e))return t==e;e=l[i(1764)](e)}else if(i(442)===r(t)){if(l.__isBigInt(e))return!1;if(i(469)!==r(e))return t==e;e=l[i(1764)](e)}else{if("object"!==r(t))return t==e;if("object"===r(e)&&e[i(443)]!==l)return t==e;t=l[i(1764)](t)}}}},{key:"NE",value:function(t,e){return!l.EQ(t,e)}},{key:n(1810),value:function(t,e){var r=n,i=!!(2>>30),u.__setDigit(2,c>>>28),u.__trim()}},{key:n(1813),value:function(t,e,r){var i=!!(3>>2,2e)i=-e-1;else{if(0===n)return-1;n--,r=t.__digit(n),i=29}var s=1<>>20)-1023,s=1+(0|i/30),a=new l(s,0>t),o=1048575&l[e(1766)][1]|1048576,c=l[e(1766)][0],h=i%30,u=0;if(h<20){var d=20-h;u=d+32,r=o>>>d,o=o<<32-d|c>>>d,c<<=32-d}else if(20===h)u=32,r=o,o=c,c=0;else{var f=h-20;u=32-f,r=o<>>32-f,o=c<>>2,o=o<<30|c>>>2,c<<=30):r=0,a[e(1747)](p,r);return a.__trim()}},{key:"__isWhitespace",value:function(t){return!!(13>=t&&9<=t)||(159>=t?32==t:131071>=t?160==t||5760==t:196607>=t?10>=(t&=131071)||40==t||41==t||47==t||95==t||4096==t:65279==t)}},{key:n(1761),value:function(t){var e=n,r=11073741824/h)return null;var d=new l(0|(29+(h*c+u>>>l[e(1820)]))/30,!1),f=10>r?r:10,p=10>=l.__kBitsPerCharTableShift;var m=[],v=[],_=!1;do{for(var g,y=0,E=0;;){if(g=void 0,o-48>>>0>>0>>0>>0>>l[e(1820)])/30;d[e(1745)](x,S,w)}while(!T)}if(a!==s){if(!l[e(1818)](o))return null;for(a++;a>>h-(o-=30))}if(0!==a){if(s>=t[i(449)])throw new Error(i(1748));t[i(1747)](s++,a)}for(;s>>1)+(85&s))>>>2)+(51&s))>>>4)+(15&s),o=e-1,c=t.__digit(i-1),h=0|(30*i-l[r(1743)](c)+a-1)/a;if(t[r(765)]&&h++,268435456>>g,p=30-g;p>=a;)u[d--]=l[r(1822)][f&o],f>>>=a,p-=a}var y=(f|c<>>a-p;0!==f;)u[d--]=l[r(1822)][f&o],f>>>=a;if(t[r(765)]&&(u[d--]="-"),-1!==d)throw new Error("implementation bug");return u[r(549)]("")}},{key:n(1823),value:function(t,e,r){var i=n,s=t.length;if(0===s)return"";if(1===s){var a=t.__unsignedDigit(0)[i(526)](e);return!1===r&&t[i(765)]&&(a="-"+a),a}var o,c,h=30*s-l.__clz30(t[i(1744)](s-1)),u=l[i(1824)][e]-1,d=h*l.__kBitsPerCharTableMultiplier,f=1+(d=0|(d+=u-1)/u)>>1,p=l[i(1771)](l.__oneDigit(e,!1),l.__oneDigit(f,!1)),m=p[i(1754)](0);if(1===p.length&&32767>=m){(o=new l(t[i(449)],!1))[i(1741)]();for(var v,_=0,g=2*t[i(449)]-1;0<=g;g--)v=_<<15|t[i(1750)](g),o[i(1751)](g,0|v/m),_=0|v%m;c=_[i(526)](e)}else{var y=l[i(1779)](t,p,!0,!0);o=y[i(1825)];var E=y[i(1826)][i(1740)]();c=l[i(1823)](E,e,!0)}o[i(1740)]();for(var T=l[i(1823)](o,e,!0);c[i(449)]s?l[r(1829)](i):0}},{key:n(1830),value:function(t,e){var r=n;if(l[r(1758)](e)){var i=t[r(765)],a=0>e;if(i!==a)return l.__unequalSign(i);if(0===t.length){if(a)throw new Error(r(1748));return 0===e?0:-1}if(1o?l[r(1828)](i):ce)return l[r(1827)](i);if(0===e)throw new Error("implementation bug: should be handled elsewhere");if(0===t[r(449)])return-1;l[r(1832)][0]=e;var s=2047&l.__kBitConversionInts[1]>>>20;if(2047==s)throw new Error(r(1833));var a=s-1023;if(0>a)return l[r(1828)](i);var o=t.length,c=t[r(1744)](o-1),h=l[r(1743)](c),u=30*o-h,d=a+1;if(ud)return l[r(1828)](i);var f=1048576|1048575&l.__kBitConversionInts[1],p=l[r(1766)][0],m=29-h;if(m!==(0|(u-1)%30))throw new Error(r(1748));var v,_=0;if(m<20){var g=20-m;_=g+32,v=f>>>g,f=f<<32-g|p>>>g,p<<=32-g}else if(20===m)_=32,v=f,f=p,p=0;else{var y=m-20;_=32-y,v=f<>>32-y,f=p<>>=0)>(v>>>=0))return l[r(1828)](i);if(c>>2,f=f<<30|p>>>2,p<<=30):v=0;var T=t[r(1754)](E);if(T>v)return l[r(1828)](i);if(Te&&t[r(1754)](0)===s(e):0===l.__compareToDouble(t,e)}},{key:n(1834),value:function(t,e){return 0===e?0>t:1===e?0>=t:2===e?0e;case 3:return t>=e}if(l.__isBigInt(t)&&i(470)==typeof e)return null!==(e=l[i(1761)](e))&&l[i(1834)](l[i(1789)](t,e),r);if(i(470)==typeof t&&l.__isBigInt(e))return null!==(t=l[i(1761)](t))&&l.__comparisonResultToBool(l[i(1789)](t,e),r);if(t=l[i(1804)](t),e=l[i(1804)](e),l.__isBigInt(t)){if(l.__isBigInt(e))return l.__comparisonResultToBool(l[i(1789)](t,e),r);if(i(458)!=typeof e)throw new Error(i(1748));return l.__comparisonResultToBool(l[i(1830)](t,e),r)}if(i(458)!=typeof t)throw new Error(i(1748));if(l.__isBigInt(e))return l[i(1834)](l[i(1830)](e,t),2^r);if(i(458)!=typeof e)throw new Error("implementation bug");return 0===r?te:3===r?t>=e:void 0}},{key:n(1780),value:function(t,e,r){var i=n;if(t[i(449)]>>30,o[i(1747)](h,1073741823&a);for(;h>>30,o[i(1747)](h,1073741823&u)}return h>>30,a[i(1747)](c,1073741823&s);for(;c>>30,a[i(1747)](c,1073741823&h)}return a.__trim()}},{key:n(1770),value:function(t,e){var r=n,i=2>>30,i.__setDigit(c,1073741823&a);return 0!==o&&i[r(1755)](s,1),i}},{key:n(1769),value:function(t,e){for(var r,i=n,s=t.length,a=new l(e=e||s,!1),o=1,c=0;c>>30,a[i(1747)](c,1073741823&r);if(0!==o)throw new Error(i(1748));for(var h=s;hs?0:t.__unsignedDigit(s)>e[r(1754)](s)?1:-1}},{key:n(1775),value:function(t,e,r,i){var s=n;if(0!==e){for(var a=32767&e,o=e>>>15,c=0,h=0,u=0;u>>15,v=l[s(1746)](p,a),_=l[s(1746)](p,o),g=l[s(1746)](m,a);c=(d+=h+v+c)>>>30,d&=1073741823,c+=(d+=((32767&_)<<15)+((32767&g)<<15))>>>30,h=l[s(1746)](m,o)+(_>>>15)+(g>>>15),r[s(1747)](i,1073741823&d)}for(;0!==c||0!==h;i++){var y=r[s(1744)](i);y+=c+h,h=0,c=y>>>30,r[s(1747)](i,1073741823&y)}}}},{key:n(1835),value:function(t,e,r,i,s){for(var a=n,o=r,c=0,h=0;h>>15,e),p=d+((32767&f)<<15)+c+o;o=p>>>30,c=f>>>15,s.__setDigit(h,1073741823&p)}if(s[a(449)]>i)for(s[a(1747)](i++,o+c);i>>0,c=0|o/e,h=0|(o=((s=0|o%e)<<15|t[r(1750)](a-1))>>>0)/e;s=0|o%e,i[r(1747)](a>>>1,c<<15|h)}return i}},{key:"__absoluteModSmall",value:function(t,e){for(var r=0,i=2*t[n(449)]-1;0<=i;i--)r=0|((r<<15|t.__halfDigit(i))>>>0)%e;return r}},{key:n(1779),value:function(t,e,r,i){var s=n,a=e[s(1756)](),o=e.length,c=t[s(1756)]()-a,h=null;r&&(h=new l(c+2>>>1,!1))[s(1741)]();var u=new l(a+2>>>1,!1);u[s(1741)]();var d=l[s(1836)](e.__halfDigit(a-1));0>>0;_=0|y/p;for(var E=0|y%p,T=e[s(1750)](a-2),I=f[s(1750)](v+a-2);l[s(1746)](_,T)>>>0>(E<<16|I)>>>0&&(_--,!(32767<(E+=p))););}l[s(1835)](e,_,0,o,u);var z=f.__inplaceSub(u,v,a+1);0!==z&&(z=f[s(1749)](e,v,a),f[s(1751)](v+a,32767&f[s(1750)](v+a)+z),_--),r&&(1&v?m=_<<15:h[s(1747)](v>>>1,m|_))}if(i)return f[s(1753)](d),r?{quotient:h,remainder:f}:f;if(r)return h;throw new Error("unreachable")}},{key:n(1836),value:function(t){return l[n(1743)](t)-15}},{key:"__specialLeftShift",value:function(t,e,r){var i=n,s=t[i(449)],a=new l(s+r,!1);if(0===e){for(var o=0;o>>30-e;return 0i)throw new RangeError(r(1773));var s=0|i/30,a=i%30,o=t.length,c=0!==a&&0!=t[r(1744)](o-1)>>>30-a,h=o+s+(c?1:0),u=new l(h,t[r(765)]);if(0===a){for(var d=0;d>>30-a;if(c)u[r(1747)](o+s,f);else if(0!==f)throw new Error(r(1748))}return u[r(1740)]()}},{key:"__rightShiftByAbsolute",value:function(t,e){var r=n,i=t[r(449)],s=t[r(765)],a=l[r(1837)](e);if(0>a)return l.__rightShiftByMaximum(s);var o=0|a/30,c=a%30,h=i-o;if(0>=h)return l[r(1838)](s);var u=!1;if(s)if(0!=(t[r(1744)](o)&(1<>>c,_=i-o-1,g=0;g<_;g++)m=t[r(1744)](g+o+1),f[r(1747)](g,1073741823&m<<30-c|v),v=m>>>c;f.__setDigit(_,v)}return u&&(f=l.__absoluteAddOne(f,!0,f)),f[r(1740)]()}},{key:n(1838),value:function(t){var e=n;return t?l[e(1759)](1,!0):l[e(1757)]()}},{key:n(1837),value:function(t){var e=n;if(1l[e(1774)]?-1:r}},{key:n(1764),value:function(t){var e=n,i=1>>h}return s[r(1747)](a,c),s[r(1740)]()}},{key:n(1801),value:function(t,e,r){for(var i,s=n,a=Math[s(563)],o=0|(t+29)/30,c=new l(o,r),h=0,u=o-1,d=0,f=a(u,e.length);h>>30,c[s(1747)](h,1073741823&i);for(;h>>_)-d,p&=g-1}return c.__setDigit(u,p),c[s(1740)]()}},{key:n(1840),value:function(t,e){for(var n=1;0>>=1,t*=t;return n}},{key:n(1758),value:function(t){return(1073741823&t)===t}}]),l}(l(Array));return v.__kMaxLength=33554432,v.__kMaxLengthBits=v[t(1734)]<<5,v[t(1824)]=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],v[t(1820)]=5,v[t(1819)]=1<>>0)/r)},v[t(1746)]=e||function(t,e){return 0|t*e},v},(i=f)(469)==typeof t&&i(430)!=typeof e?e.exports=r():i(432)==typeof define&&define.amd?define(r):(n=n||self)[i(1726)]=r()}}),require_two_product=__commonJS({"node_modules/.pnpm/two-product@1.0.2/node_modules/two-product/two-product.js"(t,e){"use strict";var n=nz;e[n(431)]=function(t,e,n){var i=t*e,s=r*t,a=s-(s-t),o=t-a,c=r*e,l=c-(c-e),h=e-l,u=o*h-(i-a*l-o*l-a*h);return n?(n[0]=u,n[1]=i,n):[u,i]};var r=+(Math[n(428)](2,27)+1)}}),require_robust_sum=__commonJS({"node_modules/.pnpm/robust-sum@1.0.0/node_modules/robust-sum/robust-sum.js"(t,e){"use strict";var n=nz;e[n(431)]=function(t,e){var r=n,i=0|t[r(449)],s=0|e[r(449)];if(1===i&&1===s)return function(t,e){var n=t+e,r=n-t,i=n-r,s=e-r,a=t-i,o=a+s;return o?[o,n]:[n]}(t[0],e[0]);var a,o,c=new Array(i+s),l=0,h=0,u=0,d=Math[r(694)],f=t[h],p=d(f),m=e[u],v=d(m);p=s?(a=f,(h+=1)=0;--a){var o=i;(h=(l=t[a])-((i=o+l)-o))&&(t[--s]=i,i=h)}var c=0;for(a=s;a=s?(a=f,(h+=1)0){if(s<=0)return a;r=i+s}else{if(!(i<0))return a;if(s>=0)return a;r=-(i+s)}var o=33306690738754716e-32*r;return a>=o||a<=-o?a:u(t,e,n)},function(t,e,n,r){var i=f,s=t[0]-r[0],a=e[0]-r[0],o=n[0]-r[0],c=t[1]-r[1],l=e[1]-r[1],h=n[1]-r[1],u=t[2]-r[2],p=e[2]-r[2],m=n[2]-r[2],v=a*h,_=o*l,g=o*c,y=s*h,E=s*l,T=a*c,I=u*(v-_)+p*(g-y)+m*(E-T),z=7771561172376103e-31*((Math[i(694)](v)+Math[i(694)](_))*Math.abs(u)+(Math[i(694)](g)+Math.abs(y))*Math[i(694)](p)+(Math[i(694)](E)+Math[i(694)](T))*Math[i(694)](m));return I>z||-I>z?I:d(t,e,n,r)}];function m(t){var e=f,n=p[t[e(449)]];return!n&&(n=p[t.length]=h(t[e(449)])),n.apply(void 0,t)}function v(t,e,n,r,i,s,a){return function(e,n,o,c,l){var h=f;switch(arguments.length){case 0:case 1:return 0;case 2:return r(e,n);case 3:return i(e,n,o);case 4:return s(e,n,o,c);case 5:return a(e,n,o,c,l)}for(var u=new Array(arguments[h(449)]),d=0;d0&&o>0||a<0&&o<0)return!1;var c=r(i,t,e),l=r(s,t,e);return!(c>0&&l>0||c<0&&l<0)&&(0!==a||0!==o||0!==c||0!==l||function(t,e,r,i){for(var s=n,a=0;a<2;++a){var o=t[a],c=e[a],l=Math[s(563)](o,c),h=Math[s(486)](o,c),u=r[a],d=i[a],f=Math.min(u,d);if(Math.max(u,d)Promise[nz(440)](_fetch(...t));var import_intl_pluralrules=__toESM(require_polyfill(),1),import_stable=__toESM(require_stable(),1),import_runtime36=__toESM(require_runtime(),1),three_module_exports={};__export(three_module_exports,{ACESFilmicToneMapping:()=>ACESFilmicToneMapping,AddEquation:()=>AddEquation,AddOperation:()=>AddOperation,AdditiveAnimationBlendMode:()=>AdditiveAnimationBlendMode,AdditiveBlending:()=>AdditiveBlending,AlphaFormat:()=>AlphaFormat,AlwaysDepth:()=>AlwaysDepth,AlwaysStencilFunc:()=>AlwaysStencilFunc,AmbientLight:()=>AmbientLight,AmbientLightProbe:()=>AmbientLightProbe,AnimationClip:()=>AnimationClip,AnimationLoader:()=>AnimationLoader,AnimationMixer:()=>AnimationMixer,AnimationObjectGroup:()=>AnimationObjectGroup,AnimationUtils:()=>AnimationUtils,ArcCurve:()=>ArcCurve,ArrayCamera:()=>ArrayCamera,ArrowHelper:()=>ArrowHelper,Audio:()=>Audio,AudioAnalyser:()=>AudioAnalyser,AudioContext:()=>AudioContext,AudioListener:()=>AudioListener,AudioLoader:()=>AudioLoader,AxesHelper:()=>AxesHelper,BackSide:()=>BackSide,BasicDepthPacking:()=>BasicDepthPacking,BasicShadowMap:()=>BasicShadowMap,Bone:()=>Bone,BooleanKeyframeTrack:()=>BooleanKeyframeTrack,Box2:()=>Box2,Box3:()=>Box3,Box3Helper:()=>Box3Helper,BoxBufferGeometry:()=>BoxBufferGeometry,BoxGeometry:()=>BoxGeometry,BoxHelper:()=>BoxHelper,BufferAttribute:()=>BufferAttribute,BufferGeometry:()=>BufferGeometry,BufferGeometryLoader:()=>BufferGeometryLoader,ByteType:()=>ByteType,Cache:()=>Cache,Camera:()=>Camera,CameraHelper:()=>CameraHelper,CanvasTexture:()=>CanvasTexture,CapsuleBufferGeometry:()=>CapsuleBufferGeometry,CapsuleGeometry:()=>CapsuleGeometry,CatmullRomCurve3:()=>CatmullRomCurve3,CineonToneMapping:()=>CineonToneMapping,CircleBufferGeometry:()=>CircleBufferGeometry,CircleGeometry:()=>CircleGeometry,ClampToEdgeWrapping:()=>ClampToEdgeWrapping,Clock:()=>Clock,Color:()=>Color,ColorKeyframeTrack:()=>ColorKeyframeTrack,ColorManagement:()=>ColorManagement,CompressedArrayTexture:()=>CompressedArrayTexture,CompressedTexture:()=>CompressedTexture,CompressedTextureLoader:()=>CompressedTextureLoader,ConeBufferGeometry:()=>ConeBufferGeometry,ConeGeometry:()=>ConeGeometry,CubeCamera:()=>CubeCamera,CubeReflectionMapping:()=>CubeReflectionMapping,CubeRefractionMapping:()=>CubeRefractionMapping,CubeTexture:()=>CubeTexture,CubeTextureLoader:()=>CubeTextureLoader,CubeUVReflectionMapping:()=>CubeUVReflectionMapping,CubicBezierCurve:()=>CubicBezierCurve,CubicBezierCurve3:()=>CubicBezierCurve3,CubicInterpolant:()=>CubicInterpolant,CullFaceBack:()=>CullFaceBack,CullFaceFront:()=>CullFaceFront,CullFaceFrontBack:()=>CullFaceFrontBack,CullFaceNone:()=>CullFaceNone,Curve:()=>Curve,CurvePath:()=>CurvePath,CustomBlending:()=>CustomBlending,CustomToneMapping:()=>CustomToneMapping,CylinderBufferGeometry:()=>CylinderBufferGeometry,CylinderGeometry:()=>CylinderGeometry,Cylindrical:()=>Cylindrical,Data3DTexture:()=>Data3DTexture,DataArrayTexture:()=>DataArrayTexture,DataTexture:()=>DataTexture,DataTexture2DArray:()=>DataTexture2DArray,DataTexture3D:()=>DataTexture3D,DataTextureLoader:()=>DataTextureLoader,DataUtils:()=>DataUtils,DecrementStencilOp:()=>DecrementStencilOp,DecrementWrapStencilOp:()=>DecrementWrapStencilOp,DefaultLoadingManager:()=>DefaultLoadingManager,DepthFormat:()=>DepthFormat,DepthStencilFormat:()=>DepthStencilFormat,DepthTexture:()=>DepthTexture,DirectionalLight:()=>DirectionalLight,DirectionalLightHelper:()=>DirectionalLightHelper,DiscreteInterpolant:()=>DiscreteInterpolant,DodecahedronBufferGeometry:()=>DodecahedronBufferGeometry,DodecahedronGeometry:()=>DodecahedronGeometry,DoubleSide:()=>DoubleSide,DstAlphaFactor:()=>DstAlphaFactor,DstColorFactor:()=>DstColorFactor,DynamicCopyUsage:()=>DynamicCopyUsage,DynamicDrawUsage:()=>DynamicDrawUsage,DynamicReadUsage:()=>DynamicReadUsage,EdgesGeometry:()=>EdgesGeometry,EllipseCurve:()=>EllipseCurve,EqualDepth:()=>EqualDepth,EqualStencilFunc:()=>EqualStencilFunc,EquirectangularReflectionMapping:()=>EquirectangularReflectionMapping,EquirectangularRefractionMapping:()=>EquirectangularRefractionMapping,Euler:()=>Euler,EventDispatcher:()=>EventDispatcher,ExtrudeBufferGeometry:()=>ExtrudeBufferGeometry,ExtrudeGeometry:()=>ExtrudeGeometry,FileLoader:()=>FileLoader,Float16BufferAttribute:()=>Float16BufferAttribute,Float32BufferAttribute:()=>Float32BufferAttribute,Float64BufferAttribute:()=>Float64BufferAttribute,FloatType:()=>FloatType,Fog:()=>Fog,FogExp2:()=>FogExp2,FramebufferTexture:()=>FramebufferTexture,FrontSide:()=>FrontSide,Frustum:()=>Frustum,GLBufferAttribute:()=>GLBufferAttribute,GLSL1:()=>GLSL1,GLSL3:()=>GLSL3,GreaterDepth:()=>GreaterDepth,GreaterEqualDepth:()=>GreaterEqualDepth,GreaterEqualStencilFunc:()=>GreaterEqualStencilFunc,GreaterStencilFunc:()=>GreaterStencilFunc,GridHelper:()=>GridHelper,Group:()=>Group,HalfFloatType:()=>HalfFloatType,HemisphereLight:()=>HemisphereLight,HemisphereLightHelper:()=>HemisphereLightHelper,HemisphereLightProbe:()=>HemisphereLightProbe,IcosahedronBufferGeometry:()=>IcosahedronBufferGeometry,IcosahedronGeometry:()=>IcosahedronGeometry,ImageBitmapLoader:()=>ImageBitmapLoader,ImageLoader:()=>ImageLoader,ImageUtils:()=>ImageUtils,ImmediateRenderObject:()=>ImmediateRenderObject,IncrementStencilOp:()=>IncrementStencilOp,IncrementWrapStencilOp:()=>IncrementWrapStencilOp,InstancedBufferAttribute:()=>InstancedBufferAttribute,InstancedBufferGeometry:()=>InstancedBufferGeometry,InstancedInterleavedBuffer:()=>InstancedInterleavedBuffer,InstancedMesh:()=>InstancedMesh,Int16BufferAttribute:()=>Int16BufferAttribute,Int32BufferAttribute:()=>Int32BufferAttribute,Int8BufferAttribute:()=>Int8BufferAttribute,IntType:()=>IntType,InterleavedBuffer:()=>InterleavedBuffer,InterleavedBufferAttribute:()=>InterleavedBufferAttribute,Interpolant:()=>Interpolant,InterpolateDiscrete:()=>InterpolateDiscrete,InterpolateLinear:()=>InterpolateLinear,InterpolateSmooth:()=>InterpolateSmooth,InvertStencilOp:()=>InvertStencilOp,KeepStencilOp:()=>KeepStencilOp,KeyframeTrack:()=>KeyframeTrack,LOD:()=>LOD,LatheBufferGeometry:()=>LatheBufferGeometry,LatheGeometry:()=>LatheGeometry,Layers:()=>Layers,LessDepth:()=>LessDepth,LessEqualDepth:()=>LessEqualDepth,LessEqualStencilFunc:()=>LessEqualStencilFunc,LessStencilFunc:()=>LessStencilFunc,Light:()=>Light,LightProbe:()=>LightProbe,Line:()=>Line,Line3:()=>Line3,LineBasicMaterial:()=>LineBasicMaterial,LineCurve:()=>LineCurve,LineCurve3:()=>LineCurve3,LineDashedMaterial:()=>LineDashedMaterial,LineLoop:()=>LineLoop,LineSegments:()=>LineSegments,LinearEncoding:()=>LinearEncoding,LinearFilter:()=>LinearFilter,LinearInterpolant:()=>LinearInterpolant,LinearMipMapLinearFilter:()=>LinearMipMapLinearFilter,LinearMipMapNearestFilter:()=>LinearMipMapNearestFilter,LinearMipmapLinearFilter:()=>LinearMipmapLinearFilter,LinearMipmapNearestFilter:()=>LinearMipmapNearestFilter,LinearSRGBColorSpace:()=>LinearSRGBColorSpace,LinearToneMapping:()=>LinearToneMapping,Loader:()=>Loader,LoaderUtils:()=>LoaderUtils,LoadingManager:()=>LoadingManager,LoopOnce:()=>LoopOnce,LoopPingPong:()=>LoopPingPong,LoopRepeat:()=>LoopRepeat,LuminanceAlphaFormat:()=>LuminanceAlphaFormat,LuminanceFormat:()=>LuminanceFormat,MOUSE:()=>MOUSE,Material:()=>Material,MaterialLoader:()=>MaterialLoader,MathUtils:()=>MathUtils,Matrix3:()=>Matrix3,Matrix4:()=>Matrix4,MaxEquation:()=>MaxEquation,Mesh:()=>Mesh,MeshBasicMaterial:()=>MeshBasicMaterial,MeshDepthMaterial:()=>MeshDepthMaterial,MeshDistanceMaterial:()=>MeshDistanceMaterial,MeshLambertMaterial:()=>MeshLambertMaterial,MeshMatcapMaterial:()=>MeshMatcapMaterial,MeshNormalMaterial:()=>MeshNormalMaterial,MeshPhongMaterial:()=>MeshPhongMaterial,MeshPhysicalMaterial:()=>MeshPhysicalMaterial,MeshStandardMaterial:()=>MeshStandardMaterial,MeshToonMaterial:()=>MeshToonMaterial,MinEquation:()=>MinEquation,MirroredRepeatWrapping:()=>MirroredRepeatWrapping,MixOperation:()=>MixOperation,MultiplyBlending:()=>MultiplyBlending,MultiplyOperation:()=>MultiplyOperation,NearestFilter:()=>NearestFilter,NearestMipMapLinearFilter:()=>NearestMipMapLinearFilter,NearestMipMapNearestFilter:()=>NearestMipMapNearestFilter,NearestMipmapLinearFilter:()=>NearestMipmapLinearFilter,NearestMipmapNearestFilter:()=>NearestMipmapNearestFilter,NeverDepth:()=>NeverDepth,NeverStencilFunc:()=>NeverStencilFunc,NoBlending:()=>NoBlending,NoColorSpace:()=>NoColorSpace,NoToneMapping:()=>NoToneMapping,NormalAnimationBlendMode:()=>NormalAnimationBlendMode,NormalBlending:()=>NormalBlending,NotEqualDepth:()=>NotEqualDepth,NotEqualStencilFunc:()=>NotEqualStencilFunc,NumberKeyframeTrack:()=>NumberKeyframeTrack,Object3D:()=>Object3D,ObjectLoader:()=>ObjectLoader,ObjectSpaceNormalMap:()=>ObjectSpaceNormalMap,OctahedronBufferGeometry:()=>OctahedronBufferGeometry,OctahedronGeometry:()=>OctahedronGeometry,OneFactor:()=>OneFactor,OneMinusDstAlphaFactor:()=>OneMinusDstAlphaFactor,OneMinusDstColorFactor:()=>OneMinusDstColorFactor,OneMinusSrcAlphaFactor:()=>OneMinusSrcAlphaFactor,OneMinusSrcColorFactor:()=>OneMinusSrcColorFactor,OrthographicCamera:()=>OrthographicCamera,PCFShadowMap:()=>PCFShadowMap,PCFSoftShadowMap:()=>PCFSoftShadowMap,PMREMGenerator:()=>PMREMGenerator,Path:()=>Path,PerspectiveCamera:()=>PerspectiveCamera,Plane:()=>Plane,PlaneBufferGeometry:()=>PlaneBufferGeometry,PlaneGeometry:()=>PlaneGeometry,PlaneHelper:()=>PlaneHelper,PointLight:()=>PointLight,PointLightHelper:()=>PointLightHelper,Points:()=>Points,PointsMaterial:()=>PointsMaterial,PolarGridHelper:()=>PolarGridHelper,PolyhedronBufferGeometry:()=>PolyhedronBufferGeometry,PolyhedronGeometry:()=>PolyhedronGeometry,PositionalAudio:()=>PositionalAudio,PropertyBinding:()=>PropertyBinding,PropertyMixer:()=>PropertyMixer,QuadraticBezierCurve:()=>QuadraticBezierCurve,QuadraticBezierCurve3:()=>QuadraticBezierCurve3,Quaternion:()=>Quaternion,QuaternionKeyframeTrack:()=>QuaternionKeyframeTrack,QuaternionLinearInterpolant:()=>QuaternionLinearInterpolant,REVISION:()=>REVISION,RGBADepthPacking:()=>RGBADepthPacking,RGBAFormat:()=>RGBAFormat,RGBAIntegerFormat:()=>RGBAIntegerFormat,RGBA_ASTC_10x10_Format:()=>RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format:()=>RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format:()=>RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format:()=>RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format:()=>RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format:()=>RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format:()=>RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format:()=>RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format:()=>RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format:()=>RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format:()=>RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format:()=>RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format:()=>RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format:()=>RGBA_ASTC_8x8_Format,RGBA_BPTC_Format:()=>RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:()=>RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format:()=>RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format:()=>RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:()=>RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format:()=>RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format:()=>RGBA_S3TC_DXT5_Format,RGBFormat:()=>RGBFormat,RGB_ETC1_Format:()=>RGB_ETC1_Format,RGB_ETC2_Format:()=>RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format:()=>RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format:()=>RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:()=>RGB_S3TC_DXT1_Format,RGFormat:()=>RGFormat,RGIntegerFormat:()=>RGIntegerFormat,RawShaderMaterial:()=>RawShaderMaterial,Ray:()=>Ray,Raycaster:()=>Raycaster,RectAreaLight:()=>RectAreaLight,RedFormat:()=>RedFormat,RedIntegerFormat:()=>RedIntegerFormat,ReinhardToneMapping:()=>ReinhardToneMapping,RepeatWrapping:()=>RepeatWrapping,ReplaceStencilOp:()=>ReplaceStencilOp,ReverseSubtractEquation:()=>ReverseSubtractEquation,RingBufferGeometry:()=>RingBufferGeometry,RingGeometry:()=>RingGeometry,SRGBColorSpace:()=>SRGBColorSpace,Scene:()=>Scene,ShaderChunk:()=>ShaderChunk,ShaderLib:()=>ShaderLib,ShaderMaterial:()=>ShaderMaterial,ShadowMaterial:()=>ShadowMaterial,Shape:()=>Shape,ShapeBufferGeometry:()=>ShapeBufferGeometry,ShapeGeometry:()=>ShapeGeometry,ShapePath:()=>ShapePath,ShapeUtils:()=>ShapeUtils,ShortType:()=>ShortType,Skeleton:()=>Skeleton,SkeletonHelper:()=>SkeletonHelper,SkinnedMesh:()=>SkinnedMesh,Source:()=>Source,Sphere:()=>Sphere,SphereBufferGeometry:()=>SphereBufferGeometry,SphereGeometry:()=>SphereGeometry,Spherical:()=>Spherical,SphericalHarmonics3:()=>SphericalHarmonics3,SplineCurve:()=>SplineCurve,SpotLight:()=>SpotLight,SpotLightHelper:()=>SpotLightHelper,Sprite:()=>Sprite,SpriteMaterial:()=>SpriteMaterial,SrcAlphaFactor:()=>SrcAlphaFactor,SrcAlphaSaturateFactor:()=>SrcAlphaSaturateFactor,SrcColorFactor:()=>SrcColorFactor,StaticCopyUsage:()=>StaticCopyUsage,StaticDrawUsage:()=>StaticDrawUsage,StaticReadUsage:()=>StaticReadUsage,StereoCamera:()=>StereoCamera,StreamCopyUsage:()=>StreamCopyUsage,StreamDrawUsage:()=>StreamDrawUsage,StreamReadUsage:()=>StreamReadUsage,StringKeyframeTrack:()=>StringKeyframeTrack,SubtractEquation:()=>SubtractEquation,SubtractiveBlending:()=>SubtractiveBlending,TOUCH:()=>TOUCH,TangentSpaceNormalMap:()=>TangentSpaceNormalMap,TetrahedronBufferGeometry:()=>TetrahedronBufferGeometry,TetrahedronGeometry:()=>TetrahedronGeometry,Texture:()=>Texture,TextureLoader:()=>TextureLoader,TorusBufferGeometry:()=>TorusBufferGeometry,TorusGeometry:()=>TorusGeometry,TorusKnotBufferGeometry:()=>TorusKnotBufferGeometry,TorusKnotGeometry:()=>TorusKnotGeometry,Triangle:()=>Triangle,TriangleFanDrawMode:()=>TriangleFanDrawMode,TriangleStripDrawMode:()=>TriangleStripDrawMode,TrianglesDrawMode:()=>TrianglesDrawMode,TubeBufferGeometry:()=>TubeBufferGeometry,TubeGeometry:()=>TubeGeometry,UVMapping:()=>UVMapping,Uint16BufferAttribute:()=>Uint16BufferAttribute,Uint32BufferAttribute:()=>Uint32BufferAttribute,Uint8BufferAttribute:()=>Uint8BufferAttribute,Uint8ClampedBufferAttribute:()=>Uint8ClampedBufferAttribute,Uniform:()=>Uniform,UniformsGroup:()=>UniformsGroup,UniformsLib:()=>UniformsLib,UniformsUtils:()=>UniformsUtils,UnsignedByteType:()=>UnsignedByteType,UnsignedInt248Type:()=>UnsignedInt248Type,UnsignedIntType:()=>UnsignedIntType,UnsignedShort4444Type:()=>UnsignedShort4444Type,UnsignedShort5551Type:()=>UnsignedShort5551Type,UnsignedShortType:()=>UnsignedShortType,VSMShadowMap:()=>VSMShadowMap,Vector2:()=>Vector2,Vector3:()=>Vector3,Vector4:()=>Vector4,VectorKeyframeTrack:()=>VectorKeyframeTrack,VideoTexture:()=>VideoTexture,WebGL1Renderer:()=>WebGL1Renderer,WebGL3DRenderTarget:()=>WebGL3DRenderTarget,WebGLArrayRenderTarget:()=>WebGLArrayRenderTarget,WebGLCubeRenderTarget:()=>WebGLCubeRenderTarget,WebGLMultipleRenderTargets:()=>WebGLMultipleRenderTargets,WebGLMultisampleRenderTarget:()=>WebGLMultisampleRenderTarget,WebGLRenderTarget:()=>WebGLRenderTarget,WebGLRenderer:()=>WebGLRenderer,WebGLUtils:()=>WebGLUtils,WireframeGeometry:()=>WireframeGeometry,WrapAroundEnding:()=>WrapAroundEnding,ZeroCurvatureEnding:()=>ZeroCurvatureEnding,ZeroFactor:()=>ZeroFactor,ZeroSlopeEnding:()=>ZeroSlopeEnding,ZeroStencilOp:()=>ZeroStencilOp,_SRGBAFormat:()=>_SRGBAFormat,sRGBEncoding:()=>sRGBEncoding});var REVISION=nz(1845),MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,LinearEncoding=3e3,sRGBEncoding=3001,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace=nz(1846),LinearSRGBColorSpace=nz(1847),ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1=nz(1848),GLSL3=nz(1849),_SRGBAFormat=1035,EventDispatcher=class{[nz(808)](t,e){var n=nz;void 0===this._listeners&&(this[n(1850)]={});const r=this[n(1850)];void 0===r[t]&&(r[t]=[]),-1===r[t].indexOf(e)&&r[t][n(565)](e)}[nz(1851)](t,e){var n=nz;if(void 0===this._listeners)return!1;const r=this[n(1850)];return void 0!==r[t]&&-1!==r[t][n(564)](e)}[nz(1716)](t,e){var n=nz;if(void 0===this[n(1850)])return;const r=this[n(1850)][t];if(void 0!==r){const t=r[n(564)](e);-1!==t&&r.splice(t,1)}}dispatchEvent(t){var e=nz;if(void 0===this[e(1850)])return;const n=this[e(1850)][t[e(452)]];if(void 0!==n){t[e(573)]=this;const r=n.slice(0);for(let n=0,i=r[e(449)];n>8&255]+_lut[e>>16&255]+_lut[e>>24&255]+"-"+_lut[255&n]+_lut[n>>8&255]+"-"+_lut[n>>16&15|64]+_lut[n>>24&255]+"-"+_lut[63&r|128]+_lut[r>>8&255]+"-"+_lut[r>>16&255]+_lut[r>>24&255]+_lut[255&i]+_lut[i>>8&255]+_lut[i>>16&255]+_lut[i>>24&255]).toLowerCase()}function clamp(t,e,n){var r=nz;return Math.max(e,Math[r(563)](n,t))}function euclideanModulo(t,e){return(t%e+e)%e}function mapLinear(t,e,n,r,i){return r+(t-e)*(i-r)/(n-e)}function inverseLerp(t,e,n){return t!==e?(n-t)/(e-t):0}function lerp(t,e,n){return(1-n)*t+n*e}function damp(t,e,n,r){return lerp(t,e,1-Math[nz(768)](-n*r))}function pingpong(t,e=1){return e-Math[nz(694)](euclideanModulo(t,2*e)-e)}function smoothstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)}function smootherstep(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)}function randInt(t,e){var n=nz;return t+Math.floor(Math[n(533)]()*(e-t+1))}function randFloat(t,e){return t+Math[nz(533)]()*(e-t)}function randFloatSpread(t){return t*(.5-Math[nz(533)]())}function seededRandom(t){void 0!==t&&(_seed=t);let e=_seed+=1831565813;return e=Math[nz(1727)](e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296}function degToRad(t){return t*DEG2RAD}function radToDeg(t){return t*RAD2DEG}function isPowerOfTwo(t){return 0==(t&t-1)&&0!==t}function ceilPowerOfTwo(t){var e=nz;return Math[e(428)](2,Math[e(561)](Math[e(695)](t)/Math[e(696)]))}function floorPowerOfTwo(t){var e=nz;return Math[e(428)](2,Math.floor(Math[e(695)](t)/Math[e(696)]))}function setQuaternionFromProperEuler(t,e,n,r,i){var s=nz;const a=Math[s(1852)],o=Math[s(1853)],c=a(n/2),l=o(n/2),h=a((e+r)/2),u=o((e+r)/2),d=a((e-r)/2),f=o((e-r)/2),p=a((r-e)/2),m=o((r-e)/2);switch(i){case s(1854):t[s(540)](c*u,l*d,l*f,c*h);break;case s(1855):t[s(540)](l*f,c*u,l*d,c*h);break;case s(1856):t[s(540)](l*d,l*f,c*u,c*h);break;case s(1857):t.set(c*u,l*m,l*p,c*h);break;case s(1858):t.set(l*p,c*u,l*m,c*h);break;case s(1859):t[s(540)](l*m,l*p,c*u,c*h);break;default:console[s(1176)]("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function denormalize(t,e){var n=nz;switch(e[n(443)]){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math[n(486)](t/32767,-1);case Int8Array:return Math[n(486)](t/127,-1);default:throw new Error(n(1860))}}function normalize(t,e){var n=nz;switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math[n(784)](255*t);case Int16Array:return Math[n(784)](32767*t);case Int8Array:return Math.round(127*t);default:throw new Error(n(1860))}}var MathUtils=Object[nz(500)]({__proto__:null,DEG2RAD:DEG2RAD,RAD2DEG:RAD2DEG,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler,normalize:normalize,denormalize:denormalize}),Vector2=class{constructor(t=0,e=0){var n=nz;Vector2.prototype[n(1861)]=!0,this.x=t,this.y=e}get[nz(999)](){return this.x}set[nz(999)](t){this.x=t}get[nz(1e3)](){return this.y}set[nz(1e3)](t){this.y=t}[nz(540)](t,e){return this.x=t,this.y=e,this}[nz(1862)](t){return this.x=t,this.y=t,this}[nz(1863)](t){return this.x=t,this}setY(t){return this.y=t,this}[nz(1864)](t,e){var n=nz;switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(n(1865)+t)}return this}[nz(1866)](t){var e=nz;switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(e(1865)+t)}}[nz(1014)](){return new(this[nz(443)])(this.x,this.y)}[nz(1867)](t){return this.x=t.x,this.y=t.y,this}[nz(747)](t){return this.x+=t.x,this.y+=t.y,this}[nz(1868)](t){return this.x+=t,this.y+=t,this}[nz(1869)](t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}[nz(1870)](t,e){return this.x+=t.x*e,this.y+=t.y*e,this}[nz(909)](t){return this.x-=t.x,this.y-=t.y,this}[nz(1871)](t){return this.x-=t,this.y-=t,this}[nz(1872)](t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}[nz(1558)](t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}[nz(1521)](t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}[nz(1873)](t){var e=nz;const n=this.x,r=this.y,i=t[e(1874)];return this.x=i[0]*n+i[3]*r+i[6],this.y=i[1]*n+i[4]*r+i[7],this}min(t){var e=nz;return this.x=Math[e(563)](this.x,t.x),this.y=Math[e(563)](this.y,t.y),this}[nz(486)](t){var e=nz;return this.x=Math[e(486)](this.x,t.x),this.y=Math[e(486)](this.y,t.y),this}[nz(1875)](t,e){var n=nz;return this.x=Math[n(486)](t.x,Math.min(e.x,this.x)),this.y=Math[n(486)](t.y,Math[n(563)](e.y,this.y)),this}clampScalar(t,e){var n=nz;return this.x=Math[n(486)](t,Math[n(563)](e,this.x)),this.y=Math[n(486)](t,Math[n(563)](e,this.y)),this}[nz(1876)](t,e){var n=nz;const r=this.length();return this[n(1877)](r||1)[n(1878)](Math.max(t,Math[n(563)](e,r)))}[nz(562)](){var t=nz;return this.x=Math[t(562)](this.x),this.y=Math[t(562)](this.y),this}[nz(561)](){var t=nz;return this.x=Math.ceil(this.x),this.y=Math[t(561)](this.y),this}[nz(784)](){var t=nz;return this.x=Math[t(784)](this.x),this.y=Math[t(784)](this.y),this}roundToZero(){var t=nz;return this.x=this.x<0?Math[t(561)](this.x):Math[t(562)](this.x),this.y=this.y<0?Math.ceil(this.y):Math[t(562)](this.y),this}[nz(1472)](){return this.x=-this.x,this.y=-this.y,this}[nz(1879)](t){return this.x*t.x+this.y*t.y}[nz(1880)](t){return this.x*t.y-this.y*t.x}[nz(1881)](){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){var t=nz;return Math[t(694)](this.x)+Math[t(694)](this.y)}[nz(569)](){var t=nz;return this.divideScalar(this[t(449)]()||1)}[nz(1882)](){return Math[nz(1883)](-this.y,-this.x)+Math.PI}distanceTo(t){var e=nz;return Math.sqrt(this[e(1884)](t))}[nz(1884)](t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}[nz(1885)](t){var e=nz;return Math.abs(this.x-t.x)+Math[e(694)](this.y-t.y)}[nz(1886)](t){var e=nz;return this.normalize()[e(1878)](t)}[nz(1887)](t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}[nz(1888)](t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}[nz(1889)](t){return t.x===this.x&&t.y===this.y}[nz(1890)](t,e=0){return this.x=t[e],this.y=t[e+1],this}[nz(1499)](t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}[nz(1891)](t,e){var n=nz;return this.x=t[n(1892)](e),this.y=t[n(1893)](e),this}rotateAround(t,e){var n=nz;const r=Math[n(1852)](e),i=Math[n(1853)](e),s=this.x-t.x,a=this.y-t.y;return this.x=s*r-a*i+t.x,this.y=s*i+a*r+t.y,this}random(){var t=nz;return this.x=Math.random(),this.y=Math[t(533)](),this}*[Symbol[nz(491)]](){yield this.x,yield this.y}},Matrix3=class{constructor(){var t=nz;Matrix3[t(425)][t(1894)]=!0,this.elements=[1,0,0,0,1,0,0,0,1]}[nz(540)](t,e,n,r,i,s,a,o,c){const l=this[nz(1874)];return l[0]=t,l[1]=r,l[2]=a,l[3]=e,l[4]=i,l[5]=o,l[6]=n,l[7]=s,l[8]=c,this}[nz(1528)](){return this.set(1,0,0,0,1,0,0,0,1),this}[nz(1867)](t){var e=nz;const n=this[e(1874)],r=t[e(1874)];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}[nz(1895)](t){const e=t[nz(1874)];return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}[nz(1558)](t){return this[nz(1896)](this,t)}premultiply(t){return this[nz(1896)](t,this)}[nz(1896)](t,e){var n=nz;const r=t[n(1874)],i=e[n(1874)],s=this.elements,a=r[0],o=r[3],c=r[6],l=r[1],h=r[4],u=r[7],d=r[2],f=r[5],p=r[8],m=i[0],v=i[3],_=i[6],g=i[1],y=i[4],E=i[7],T=i[2],I=i[5],z=i[8];return s[0]=a*m+o*g+c*T,s[3]=a*v+o*y+c*I,s[6]=a*_+o*E+c*z,s[1]=l*m+h*g+u*T,s[4]=l*v+h*y+u*I,s[7]=l*_+h*E+u*z,s[2]=d*m+f*g+p*T,s[5]=d*v+f*y+p*I,s[8]=d*_+f*E+p*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}[nz(1897)](){const t=this[nz(1874)],e=t[0],n=t[1],r=t[2],i=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8];return e*s*l-e*a*c-n*i*l+n*a*o+r*i*c-r*s*o}[nz(1465)](){const t=this[nz(1874)],e=t[0],n=t[1],r=t[2],i=t[3],s=t[4],a=t[5],o=t[6],c=t[7],l=t[8],h=l*s-a*c,u=a*o-l*i,d=c*i-s*o,f=e*h+n*u+r*d;if(0===f)return this.set(0,0,0,0,0,0,0,0,0);const p=1/f;return t[0]=h*p,t[1]=(r*c-l*n)*p,t[2]=(a*n-r*s)*p,t[3]=u*p,t[4]=(l*e-r*o)*p,t[5]=(r*i-a*e)*p,t[6]=d*p,t[7]=(n*o-c*e)*p,t[8]=(s*e-n*i)*p,this}[nz(1898)](){let t;const e=this[nz(1874)];return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this[nz(1895)](t).invert().transpose()}[nz(1899)](t){const e=this[nz(1874)];return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}[nz(1900)](t,e,n,r,i,s,a){var o=nz;const c=Math.cos(i),l=Math[o(1853)](i);return this[o(540)](n*c,n*l,-n*(c*s+l*a)+s+t,-r*l,r*c,-r*(-l*s+c*a)+a+e,0,0,1),this}[nz(1901)](t,e){const n=this[nz(1874)];return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}[nz(1902)](t){var e=nz;const n=Math[e(1852)](t),r=Math[e(1853)](t),i=this[e(1874)],s=i[0],a=i[3],o=i[6],c=i[1],l=i[4],h=i[7];return i[0]=n*s+r*c,i[3]=n*a+r*l,i[6]=n*o+r*h,i[1]=-r*s+n*c,i[4]=-r*a+n*l,i[7]=-r*o+n*h,this}translate(t,e){const n=this[nz(1874)];return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}[nz(1889)](t){var e=nz;const n=this.elements,r=t[e(1874)];for(let t=0;t<9;t++)if(n[t]!==r[t])return!1;return!0}[nz(1890)](t,e=0){var n=nz;for(let r=0;r<9;r++)this[n(1874)][r]=t[r+e];return this}[nz(1499)](t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}[nz(1014)](){var t=nz;return(new(this[t(443)]))[t(1890)](this[t(1874)])}};function arrayNeedsUint32(t){for(let e=t[nz(449)]-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}function d(){var t=["create","defineProperty","defineProperties","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","prototype","propertyIsEnumerable","get","pow","call","undefined","exports","function","enumerable","__esModule","default","next","throw","done","value","resolve","apply","symbol","constructor","Cannot call a class as a function","configurable","writable","key","replace","length","_locale","_type","type","resolvedOptions","_nf","minimumFractionDigits","maximumFractionDigits","maximumSignificantDigits","number","minimumSignificantDigits","select","format","ordinal","supportedLocalesOf","filter","split","every","test","isArray","object","string","Locales should be strings, ","stringify"," isn't.","The locale ","concat"," is not a structurally valid BCP 47 language tag.","keys","userLanguage","language","en-US","cardinal","Not a valid plural type: ","minimumIntegerDigits","_minID","_minFD","max","_minSD","_maxSD","toPrecision","toFixed","iterator","hasOwnProperty","other","one","zero","few","slice","two","many","freeze","assign","NumberFormat","_in","pt-PT","pt_PT","Intl","polyfill","PluralRules","Math","return this","bind","getOwnPropertyDescriptor","String","Can't call method on ","all","IS_HTMLDDA","isPrototypeOf","userAgent","Deno","versions","version","match","sham"," is not a function","valueOf","toString","Can't convert object to primitive value","__core-js_shared__","pure","https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE","https://github.com/zloirock/core-js","hasOwn","random","Symbol","for","Symbol.","toPrimitive","createElement","div","set","Accessors not supported","name","inspectSource","Object already initialized","state","has","facade","enforce","join","Symbol(","getter","get ","setter","set ","arity","source","global","unsafe","nonConfigurable","nonWritable","ceil","floor","min","indexOf","push","toLocaleString","Reflect","ownKeys","normalize","toLowerCase","data","NATIVE","target","dontCallGetSet","toStringTag","[object z]","Undefined","Object","callee","Arguments","Cannot convert a Symbol value to a string","document","documentElement","script","IE_PROTO","write","close","parentWindow","java","style","appendChild","src","contentWindow","open","document.F=Object","htmlfile","domain","Window","Function","Array","exec","AsyncFunction","AsyncGeneratorFunction","forEach","hidden","getterFor","TypeError","QObject","symbols","wks","findChild","tag","withoutSetter","description","keyFor","string-to-symbol-registry","symbol-to-string-registry"," is not a symbol","JSON","charAt","charCodeAt","[null]",'"\\udead"',"asyncIterator","search","unscopables","Can't set "," as a prototype","setPrototypeOf","__proto__","cause","stack","zxcasd","prepareStackTrace","stackTraceLimit","Error","message","WebAssembly","EvalError","RangeError","SyntaxError","URIError","CompileError","LinkError","RuntimeError","true","2: 1"," is not iterable","result","that","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","normal","errors","AggregateError","foo","isConcatSpreadable","Cannot delete property "," of ","copyWithin","findIndex","findLast","findLastIndex","from","includes"," Iterator","PROPER","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","values","entries","@@iterator","Array Iterator","index","lastIndexOf","map","Cannot set read only .length","Reduce of empty array with no initial value","process","left","reduce","reduceRight","reverse","species","sort","fromCharCode","splice","unshift","Incorrect invocation","Wrong length or index","abs","log","LN2","ArrayBuffer","DataView","Wrong length","Wrong index","unpack","byteLength","buffer","byteOffset","bytes","Wrong offset","setInt8","Int8Array","Uint8ClampedArray","TypedArrayConstructor","opera","Target is not a typed array"," is not a typed array constructor","NATIVE_ARRAY_BUFFER_VIEWS"," is not a constructor","getUint8","setUint8","getYear","getFullYear","Date","getTime","setFullYear","toUTCString","Wrong number of repetitions","start","toISOString","getUTCDate","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","0385-07-25T07:06:39.999Z","toJSON","Incorrect hint","Invalid Date","toUpperCase","C,a","hasInstance","globalThis","isExtensible","preventExtensions","meta","objectID","weakData","enable","Weak","add","delete","getConstructor","clear","setStrong","fastKey","size","last","first","removed","previous","kind","Map","log1p","sqrt","MAX_VALUE","asinh","atanh","sign","LOG2E","expm1","exp","fround","hypot","sinh","trim","Number","bigint","Cannot convert a Symbol value to a number"," 0o1","0b1","+0x1","MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range","isFinite","isInteger","parseFloat","0x16","round","1.25e+0","1.235e+4","Incorrect fraction digits","0.000","1.25","1000000000000000128","NaN","abcdefghijklmnopqrst","isFrozen","isSealed","[object ","setImmediate","Dispatch","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","importScripts","file:","addEventListener","removeChild","head","tail","item","WebKitMutationObserver","Promise","queueMicrotask","exit","enter","createTextNode","error","PromiseRejectionEvent","catch","finally","Bad Promise constructor","CONSTRUCTOR","REJECTION_EVENT","createEvent","dispatchEvent","unhandledrejection","then","fail","reject","rejection","promise","Promise-chain cycle","notified","Event","initEvent","Unhandled promise rejection","emit","parent","rejectionHandled","Promise can't be resolved itself","reactions","fulfilled","rejected","No one promise resolved","construct","hasIndices","ignoreCase","unicode","unicodeSets","sticky","flags","RegExp","lastIndex","abcd","str","dotAll","(?b)","$c","MISSED_STICKY","/a/i","[\\s\\S]","Invalid capture group name","groups","(?:)","Incompatible receiver, RegExp required","native-string-replace","BROKEN_CARET","multiline","(?: ","^(?:","$(?!\\s)","dgimsy","gimsy","abc","/a/b","The method doesn't accept regular expressions","/./","endsWith","fromCodePoint"," is not a valid code point","String Iterator","matchAll","regexp","`.matchAll` does not allow non-global regexes","end","raw","$","abbc","startsWith","substr","​…᠎","trimEnd","trimRight","trimStart","trimLeft","anchor","big","blink","bold","fixed","fontcolor","font","italics","link","small","strike","sub","sup","The argument can't be less than 0","BigUint64Array","Can't convert number to bigint","aTypedArrayConstructor","TypedArray","BYTES_PER_ELEMENT","Clamped","view","Float32","Float64","Int8","Int16","Int32","Uint8","Uint16","Uint32","exportTypedArrayMethod","aTypedArray","fill","Big","getTypedArrayConstructor","find","exportTypedArrayStaticMethod","Uint8Array","right","some","Uint16Array","frozen","seal","ActiveXObject","WeakMap","WeakSet","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=","ctoi","atob","The string is not correctly encoded","itoc","bnVsbA==","DOMException","The string contains characters outside of the Latin1 range","InvalidCharacterError","DOMTokenList","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","ABORT_ERR","URL_MISMATCH_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","worker_threads","code","DataCloneError","clearImmediate","self","Illegal invocation","PerformanceMark","structuredClone","Transferring","Set","detail","Uncloneable type: ","Cloning"," cannot be properly polyfilled in this engine","DataTransfer","ClipboardEvent","clipboardData","items","files","ReferenceError","Int16Array","Int32Array","Uint32Array","Float32Array","Float64Array","DOMQuad","FileList","width","height","colorSpace","Boolean","ArrayBuffer is detached","SharedArrayBuffer","Blob","DOMPointReadOnly","fromPoint","DOMRect","fromRect","DOMMatrix","fromMatrix","AudioData","VideoFrame","clone","File","CropTarget","CryptoKey","FileSystemDirectoryHandle","FileSystemFileHandle","GPUCompilationInfo","GPUCompilationMessage","ImageBitmap","RTCCertificate","WebAssembly.Module","Transfer option cannot be converted to a sequence","Duplicate transferable","getContext","transferFromImageBitmap","transferToImageBitmap","MediaSourceHandle","MessagePort","OffscreenCanvas","ReadableStream","TransformStream","WritableStream","This object cannot be transferred: ","transfer","setInterval","setTimeout","b?a=1&b=2&c=3","http://a","searchParams","href","username","a=b","http://тест","xn--e1aybc","http://a#б","hash","#%D0%B1","a1c3","http://x","Overflow: input needs wider integers to process","xn--","Iterator","fetch","Request","Headers","decodeURIComponent","encodeURIComponent","shift","%28","%29","%7E","url","parseObject","update","Expected sequence with length 2","query","updateURL","serialize","body","headers","content-type","application/x-www-form-urlencoded;charset=UTF-8","codeAt","URLSearchParams","getState","URL","parseInt","Invalid authority","Invalid scheme","Invalid host","Invalid port",".%2e","%2e%2e","parse","bindURL","scheme","port","path","fragment","cannotBeABaseURL","isSpecial","file","includesCredentials","password","parseHost","shortenPath","localhost","%27","blob","origin","null","://","cannotHaveUsernamePasswordPort","getOrigin","getProtocol","getUsername","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearchParams","getHash","setHref","setProtocol","setUsername","getPassword","setPassword","setHostname","setPort","setHash","createObjectURL","revokeObjectURL","@@asyncIterator","@@toStringTag","_invoke","wrap","suspendedStart","executing","completed","displayName","GeneratorFunction","return","isGeneratorFunction","mark","awrap","arg","AsyncIterator","async","Generator is already running","method","delegate","sent","_sent","dispatchException","The iterator does not provide a '","' method","resultName","nextLoc","Generator","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","pop","tryLoc","root","prev","try statement without catch or finally","break","continue","complete","rval","illegal catch attempt","regeneratorRuntime","regeneratorRuntime = r","amd","navigator","info","warn","trace","debug","methodFactory","silent","localStorage","cookie","removeItem","levels","getLevel","setLevel","SILENT","No console available for logging","resetLevel","enableAll","TRACE","disableAll","getLogger","getLoggers","polygonClipping","└── ","├── "," ","│ ","_root","_size","_comparator","insert","remove","_remove","findStatic","contains","range","minNode","maxNode","toList","load","isEmpty","EPSILON","xRounder","yRounder","tree","compare","comparePoints","point","isLeft","segment","events","Tried to link already linked events","consumedBy","otherSE","consume","getAvailableLinkedEvents","isInResult","getLeftmostComparator","sine","cosine","rightSE","leftSE","comparePoint","rings","windings","replaceRightSE","vector","isAnEndpoint","getIntersection","bbox","swapEvents","checkForConsuming","prevInResult","_prevInResult","beforeState","_beforeState","afterState","_afterState","poly","isExterior","_isInResult","multiPolys","union","intersection","xor","difference","isSubject","Tried to create degenerate segment at [","Input geometry is not a valid Polygon or MultiPolygon","segments","fromRing","getSweepEvents","exteriorRing","interiorRings","multiPoly","polys","POSITIVE_INFINITY","NEGATIVE_INFINITY","factory","ringOut","getGeom","isExteriorRing","_isExteriorRing","enclosingRing","_calcEnclosingRing","addInterior","queue","Unable to find segment #","in SweepLine tree. Please submit a bug report.","_splitSafely","POLYGON_CLIPPING_MAX_QUEUE_SIZE","env","POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS","run","Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.","Unable to pop() "," SweepEvent ","] -> ","Please file a bug report.","Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.","Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.","simplify","Unsupported core-js use. Try https://npms.io/search?q=ponyfill.","Expected a function","__lodash_hash_undefined__","__lodash_placeholder__","...","ary","bindKey","curry","curryRight","flip","partial","[object Arguments]","[object Array]","[object AsyncFunction]","[object Boolean]","[object Date]","[object DOMException]","[object Error]","[object Function]","[object GeneratorFunction]","[object Map]","[object Number]","[object Null]","[object Object]","[object Promise]","[object Proxy]","[object RegExp]","[object String]","[object Symbol]","[object Undefined]","[object WeakMap]","[object WeakSet]","[object ArrayBuffer]","[object DataView]","[object Float32Array]","[object Float64Array]","[object Int16Array]","[object Int32Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Uint16Array]","\\u0300-\\u036f","\\u2700-\\u27bf","a-z\\xdf-\\xf6\\xf8-\\xff","\\xac\\xb1\\xd7\\xf7","\\u2000-\\u206f"," \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000","A-Z\\xc0-\\xd6\\xd8-\\xde","\\ufe0e\\ufe0f","['’]","\\d+","\\ud83c[\\udffb-\\udfff]","(?:","(?:\\ud83c[\\udde6-\\uddff]){2}","[\\ud800-\\udbff][\\udc00-\\udfff]","\\u200d","(?:d|ll|m|re|s|t|ve))?","(?:D|LL|M|RE|S|T|VE))?","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","(?=","Buffer","clearTimeout",">",""","'","u2028","u2029","nodeType","require","util","types","binding","isArrayBuffer","isMap","isRegExp","isSet","isTypedArray","defaults","pick","Symbol(src)_1.","allocUnsafe","isBuffer","__wrapped__","__actions__","__chain__","__values__","__dir__","__takeCount__","__views__","__filtered__","__iteratees__","iteratee","__data__","offset","thisArg","criteria","desc","placeholder","thru","wrapper","plant","func","dropRight","take","input","{\n/* [wrapped with ","] */\n","boolean","__index__","leading","maxWait","trailing","cancel","flush","cache","Cache","1e-","templateSettings","imports","__p += '","evaluate","sourceURL","lodash.templateSources[","' +\n__e(",") +\n'","';\n",";\n__p += '","variable","with (obj) {\n","function(",") {\n","obj || (obj = {});\n","var __t, __p = ''",", __e = _.escape",", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n","return __p\n}","return ","separator","omission","chain","after","assignIn","assignInWith","assignWith","before","bindAll","castArray","cond","conforms","countBy","debounce","defaultsDeep","defer","differenceBy","differenceWith","drop","dropRightWhile","flatMap","flatMapDeep","flatMapDepth","flatten","flattenDeep","flattenDepth","flow","fromPairs","functionsIn","initial","intersectionBy","intersectionWith","invert","keysIn","mapKeys","matches","memoize","mergeWith","methodOf","negate","nthArg","omitBy","once","orderBy","over","overArgs","overSome","partition","property","propertyOf","pull","pullAll","pullAllBy","pullAt","rangeRight","rearg","rest","sampleSize","setWith","shuffle","sortBy","sortedUniq","sortedUniqBy","takeRight","takeRightWhile","throttle","toArray","toPairs","toPlainObject","transform","unary","unionWith","uniqBy","uniqWith","unzip","valuesIn","without","words","xorBy","zip","zipObject","camelCase","capitalize","cloneDeep","cloneWith","conformsTo","deburr","defaultTo","divide","escapeRegExp","findLastKey","forIn","forInRight","forOwn","gte","identity","invoke","isArguments","isBoolean","isDate","isElement","isError","isFunction","isLength","isMatch","isMatchWith","isNaN","isNil","isNull","isObject","isObjectLike","isPlainObject","isSafeInteger","isString","isSymbol","isUndefined","isWeakMap","kebabCase","lowerCase","maxBy","minBy","stubArray","stubFalse","stubObject","stubString","multiply","nth","padEnd","padStart","repeat","runInContext","sample","snakeCase","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","startCase","subtract","sum","template","toInteger","toLength","toLower","toSafeInteger","toUpper","truncate","unescape","upperCase","each","eachRight","VERSION","partialRight","Right","takeWhile","compact","invokeMap","tap","commit","RBush","_minEntries","_maxEntries","minX","minY","maxX","maxY","_all","children","collides","leaf","toBBox","_build","_splitRoot","_insert","_condense","compareMinX","compareMinY","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","TinyQueue","_up","_down","peek","nested","flat","orient2dfast","orient2d","node","dist","list","check","div_seg","pop_seg","seg_update","new_seg","rem_seg","temp_status","rewind","status","vert","selected","chain_start","chain_rem_head","chain_rem_tail","chain_new","chain_match","chain_close","chain_add_head","chain_con","chain_rev","chain_join","pointsSameX","pointsSameY","alongA","alongB","segmentId","above","myFill","below","pointsSame","insertBefore","isStart","segmentChop","seg","primary","pointsCollinear","pointAboveOrOnLine","checkIntersection","linesIntersect","pointBetween","getHead","tempStatus","otherFill","segmentUpdate","PolyBool: Zero-length segment detected; your epsilon is probably too small or too large","exists","statusRemove","pointsCompare","PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large","chainStart","matches_head","matches_pt1","chainNew","chainMatch","chainRemoveHead","chainRemoveTail","chainClose","chainAddHead","chainAddTail","chainReverse","chainJoin","chainConnect","selectDifference","combine","Polygon","polygon","coordinates","selectUnion","pointInsideRegion","region","regions","MultiPolygon","epsilon","addRegion","inverted","calculate","combined","inverted1","inverted2","intersect","fromPolygon","selectIntersect","selectXor","PolyBool","_callbacks","off","removeListener","removeEventListener","listeners","hasListeners","Stream","pause","readable","resume","drain","_isStdio","destroy","JSBI","imul","Super expression must either be null or a function","[native code]","this hasn't been initialised - super() hasn't been called","Derived constructors may only return object or undefined","Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.","Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.","__kMaxLength","toDebugString","BigInt[","toString() radix argument must be between 2 and 36","Convert JSBI instances to native numbers using `toNumber`.","__copy","__trim","__initializeDigits","__clzmsd","__clz30","__digit","__inplaceMultiplyAdd","__imul","__setDigit","implementation bug","__inplaceAdd","__halfDigit","__setHalfDigit","out of bounds","__inplaceRightShift","__unsignedDigit","__setDigitGrow","__halfDigitLength","__zero","__isOneDigitInt","__oneDigit"," cannot be converted to BigInt because it is not an integer","__fromString","Cannot convert "," to a BigInt","__toPrimitive","BigInt","__kBitConversionInts","unaryMinus","bitwiseNot","__absoluteSubOne","__absoluteAddOne","exponentiate","Exponent must be positive","BigInt too big","__kMaxLengthBits","__multiplyAccumulate","Division by zero","__absoluteCompare","__absoluteDivSmall","__absoluteDivLarge","__absoluteAdd","__absoluteSub","__rightShiftByAbsolute","__leftShiftByAbsolute","signedRightShift","unsignedRightShift","BigInts have no unsigned right shift; use >> instead","lessThan","lessThanOrEqual","__compareToBigInt","greaterThan","greaterThanOrEqual","notEqual","__absoluteAnd","__absoluteAndNot","__absoluteXor","bitwiseOr","__absoluteOr","asIntN","Invalid value: not (convertible to) a safe integer","__truncateToNBits","__truncateAndSubFromPowerOfTwo","asUintN","ADD","__toNumeric","__isBigInt","Cannot mix BigInt and other types, use explicit conversions","__compare","__equalToNumber","equal","DataViewGetBigInt64","DataViewGetBigUint64","getUint32","DataViewSetBigInt64","DataViewSetBigUint64","setUint32","__decideRounding","__fromDouble","__isWhitespace","__kBitsPerCharTableMultiplier","__kBitsPerCharTableShift","__toStringBasePowerOfTwo","__kConversionChars","__toStringGeneric","__kMaxBitsPerChar","quotient","remainder","__unequalSign","__absoluteGreater","__absoluteLess","__compareToNumber","__compareToDouble","__kBitConversionDouble","implementation bug: handled elsewhere","__comparisonResultToBool","__internalMultiplyAdd","__clz15","__toShiftAmount","__rightShiftByMaximum","Cannot convert object to primitive value","__digitPow","__kBitConversionBuffer","getElementById","25f64989bd772be116fe4143489d1c3e06d205c415fdbe44c41a1033cdcc31ef",'@import"https://at.alicdn.com/t/font_2809422_tyv73h24h8.css";@import"https://at.alicdn.com/t/c/font_2802048_pr0orli1rac.css";.axesRenderer{width:100px;height:100px;position:absolute;display:block;bottom:1px;left:10px;background:#ffffff00}.overview-map{width:200px;height:200px;top:10px;left:10px;position:absolute;z-index:1;border:1px #50505090 solid;background-color:#80808030}.statsOutput{position:absolute;opacity:.6;top:1px;left:1px}#navCube{position:absolute;bottom:10px;right:10px;z-index:1;pointer-events:none;cursor:pointer}#navCube:hover{opacity:1}.css3d-navcube .navcube-plane{backface-visibility:hidden;z-index:1;transition:all .2s}.css3d-navcube .navcube-plane.outer{opacity:.7;background:linear-gradient(-45deg,transparent 15px,#efefef 0) bottom right,linear-gradient(-135deg,transparent 15px,#efefef 0) top right,linear-gradient(135deg,transparent 15px,#efefef 0) top left,linear-gradient(45deg,transparent 15px,#efefef 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane.inner{margin:2px;font-size:30px;text-align:center;line-height:100px;background:linear-gradient(-45deg,transparent 14px,#2c7be5 0) bottom right,linear-gradient(-135deg,transparent 14px,#2c7be5 0) top right,linear-gradient(135deg,transparent 14px,#2c7be5 0) top left,linear-gradient(45deg,transparent 14px,#2c7be5 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane:hover{opacity:1!important}.css3d-navcube .navcube-edge{opacity:0;z-index:2;transition:all .2s}.css3d-navcube .navcube-edge:hover{opacity:1!important}.css3d-navcube .navcube-corner{opacity:.7;backface-visibility:hidden;box-sizing:content-box;transform-origin:50% 33%;top:4px;z-index:3;transition:all .2s}.css3d-navcube .navcube-corner-plane{opacity:0;backface-visibility:hidden;transform-origin:bottom;top:-6.5px;z-index:3;transition:all .2s}.css3d-navcube .highlight{opacity:1}.progress-bar{z-index:3;bottom:20%;left:25%;position:absolute;color:#ffffffa0;width:50%;user-select:none}.progress-bar.hidden{display:none}.progress-bar .progress-bar-item{width:100%;text-align:center;padding:2px}.pop-panel{z-index:99999999;top:calc(70% - 100px);left:calc(90% - 160px);position:absolute;background:#ffffff;color:#333;border-radius:4px;width:160px;box-shadow:0 12px 48px 16px #00000008,0 9px 28px #0000000d,0 6px 16px -8px #00000014}.pop-panel .pop-panel-header{font-size:16px;font-weight:bolder;padding:16px 24px 8px;color:#333;border-bottom:1px solid #EFEFEF;cursor:move;user-select:none}.pop-panel .pop-panel-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{display:inline-block;cursor:pointer;margin-right:16px;font-size:16px}.pop-panel .pop-panel-body .pop-panel-item .gemini-viewer-icon{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item:hover,.pop-panel .pop-panel-body .pop-panel-item.active{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}.model-layout-switch-bar{position:absolute;bottom:0;width:100%;height:24px;background:#ffffff;opacity:.7;display:flex;font-size:12px;line-height:1;overflow-x:scroll;z-index:1}.model-layout-switch-bar .model-layout-switch-bar-content{white-space:nowrap}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item{position:relative;display:inline-block;padding:4px 16px 0;color:#000;height:22px;margin-left:8px;cursor:pointer;transform:translate(0)}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border:1px solid #000;border-radius:0 0 5px 5px;border-top:0px;transform:perspective(8px) rotateX(-5deg) scaleY(.8);transform-origin:bottom}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:hover{color:#8080f0}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:nth-child(n+2){margin-left:15px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate{color:#fff!important}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate:before{background:#000!important}.model-layout-switch-bar.hidden{display:none}.follow-tooltip{z-index:99999999;position:absolute;left:-500px;padding:6px;background:rgba(25,25,25,.3);color:#fffc;font-size:12px;border-radius:2px}.context-menu{position:absolute;box-sizing:border-box;background-color:#fff;width:200px;padding:2px;border-radius:2px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;cursor:pointer;z-index:2}.context-menu ul{list-style:none;padding:0}.context-menu ul:last-child li{border-bottom:0px}.context-menu li{height:2rem;padding:.5rem;box-sizing:border-box}.context-menu li:hover{background-color:#d3d3d3}.context-menu li.disabled{color:#ccc;cursor:not-allowed}.context-menu li:last-child{border-bottom:1px solid #000}.toolbar{position:absolute;display:flex;box-sizing:border-box;height:68px;left:50%;bottom:40px;padding:8px 20px;border:rgba(153,153,153,.8) 1px solid;border-radius:4px;background:rgba(255,255,255,.8);transform:translate(-50%);align-items:center;z-index:10;user-select:none}.toolbar .toolbar-group{display:flex;padding:0 2px;box-sizing:border-box}.toolbar .toolbar-group-division{width:1px;background-color:#999c;height:60%}.toolbar .toolbar-menu{display:flex;box-sizing:border-box;flex-direction:column;width:50px;height:50px;padding:3px 0;margin:0 2px;transition:all .3s;cursor:pointer;color:#666;border-radius:4px}.toolbar .toolbar-menu.active{color:#2c7be5}.toolbar .toolbar-menu .icon{width:24px;height:24px;margin:auto;font-size:24px;line-height:normal}.toolbar .toolbar-menu span{display:block;width:100%;margin:auto;font-size:.75em;text-align:center;user-select:none}.toolbar .toolbar-menu:hover{color:#2c7be5;background-color:#fffc}.toolbar .toolbar-parent-menu{position:relative}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu{display:block}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu-list{background:rgba(255,255,255,.8)}.toolbar .toolbar-parent-menu:after{content:"";position:absolute;box-sizing:border-box;width:0;height:0;right:2px;top:2px;border-width:4px;border-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:transparent;border-left-color:transparent;border-radius:1px}.toolbar .toolbar-sub-menu{display:none;position:absolute;width:50px;bottom:100%}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list{margin-bottom:2px;border-radius:4px}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list .toolbar-menu{margin:0}.bottom-bar{position:absolute;bottom:0;right:0;display:flex;color:#666;z-index:3;overflow:hidden;user-select:none}.bottom-bar i{font-size:18px;padding:3px;align-self:center;opacity:.4;cursor:pointer;line-height:1}.bottom-bar i:hover,.bottom-bar i.active{color:#2c7be5;opacity:1}.bottom-bar .fps{width:4rem}.bottom-bar span{align-self:center;padding:4px;font-size:14px}#statistics-tooltip,#tips-tooltip,#cameraInfo-tooltip{position:absolute;right:5px;bottom:30px;background:#666666;color:#fff;padding:8px 8px 5px;font-size:.8rem;border-radius:4px;z-index:3;opacity:.9;user-select:none}#statistics-tooltip p,#tips-tooltip p,#cameraInfo-tooltip p{padding-bottom:3px;margin:3px}#statistics-tooltip p span,#tips-tooltip p span,#cameraInfo-tooltip p span{float:left;margin-right:10px}.hide{display:none}.bim-viewer-spinner{position:absolute;display:flex;top:calc(50% - 20px);left:calc(50% - 20px);opacity:.8;justify-content:center;align-items:center;z-index:10}.bim-viewer-spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.bim-viewer-spinner.hidden{display:none}.svg-renderer{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.spinner{position:absolute;display:flex;width:100%;height:100%;opacity:.8;background-color:#fff;justify-content:center;align-items:center;z-index:10}.spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.spinner.hidden{display:none}.compare-markups-canvas{position:absolute;top:0;left:0;pointer-events:none;user-select:none}.anchor{position:absolute;top:0;left:0;opacity:0;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;user-select:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADjRJREFUeF7tXQnQttUYvq4Zxr5MqBgaihRlKakUU7SYSBQljUhaxijtso2MTCrRn8YoldKIUlIIJRplSyKyqzGyJDSDLGHmMtfvvOb19n7fe7Zn+/7nnnnn+/7/O8t9zrne+5xzn3sh1hCS9GUA20UO9xqS20eWHXQxDpr7BOZHAMyfrBEA8+dllAAJX65BFB0lwCgBxjPAHAyMW8C4BQxCghczOW4B4xYwbgHjFjDqAWYxMJ4BxjNA8fY6iAbGM8B4BhjPAGvKGUDSYwA8FcAmAJ4EYOPw8/6R4upvAH4I4Efh580AbiJ5W2T9wRRbEWcASTuFBX/a1KLfq/Iq/HsKDN8NgLiych+tNzdYAEh6JoAXAdgtLHrrkwfAkuEyAJeTvL4LBkr7HBQAJK0fFtwLH/u0WzpHsfWvMRAMCJK3xlbqutwgACDplVMLf++uJ21B//+aAsL5PecVvQaApB0BHA3AP4dIVwE4maR/9pJ6CYBwij8GwOt7OWvpTJ0O4KQ+3iJ6BwBJXnQvvq9yK4l8hTQIDIbeUG8AsALEfeyi9mpb6AUAJL0bwBtjZ3CFlDuR5LFdj6VzAEi6EMCeXU9ER/1fRHKvjvpe3W1nAJC0NoDPAnhGwxNwF4DbZz6/m/q3u183fNaZ+n3yfw9smL8bALyA5B0N9zO3+U4AIMmL/gUAazU0aKtor/CH5M9K+pD0BAC7hI9Vzk3QnQB2JmkwtEqtA0DS7gAuqTxKn7C96F8EcBXJP1Zuf3Vzkh4WdBI7ADAYat9U9iD5ySZ4X6rNVgEg6TAA76s4wKsBnBa+6X6saY0k+bHJkuFQAM+r2PHhJE+t2N6yTbUGAEkHADiz0sBu8sKTPKdSe0XNSHpNAIKfoGvQgSQ/VKOhRW20AoDwcvfNRcxE/P034Rvvxf97RPnWiki6XwCBJcKjKnS8ZRsvjI0DILzg3VI4IX5gsahf1Ud16vTYghr7DQEMpQ9XGzT9stgoACQ9BMD3Cw9LlhyvI3ljIYharS5pMwAfALBlQcc+3G5K8k8FbXR3BpDkE+1LCpj3+/o+JH2XHxxJsg7ho8FwJZf/S0n65tQINSYBJH0QwEEFXJ9F0gfHwZMkH+heWzCQM0geXFB/yaqNAEDS8QDeUsDwsSRPLKjfu6qS/NbhN49cehfJt+ZWXqpedQCEV70SY8ltSX619kD70J6kbQBcV8DLTrWNS5oAgBc/y4KHZHV+Cia7saqSlNm4tZxV1dFVJzwYc7w/c3BPJPnTzLqDqiZpQwA/yWT6kJpGJdUAEO6/Ft05+vFdSX4mc0IGWU3SCwF8OoN5Xw23qaUPqQkAf/NzbPiOJPnejIkYfBVJRwA4JWMgp5M8JKPePapUAUDBwa+x602NyWmjjYLrcpUDYS0A5Bz87Ky5C8l/tDHRs31IesTUdnUbyd93xMd9g+1CalzCKgfCYgAEp42PJE6edftbtaXeDWrZ59ryJiz6owHcZ4bnuwH8CoD3WFsqfall/r4BIPXtYF+SRc4nNQBwMYA9EgFwCsmjEuskFZe0c7A1tAuZXcpyyC5edvmy7Z4tmBojSe8BcGRiB5eQfGlinf8rXgSA8NL340Tk+knX3/5GXK0l+U3ehievLpmYOXXPBXAqSdsiVKdwi7IUSHlKtiTdqOTFsBQAhwNIPcE3ouaVZN9/q0q9+H6bb4Jsg2BrneNJOoZAVcpUFx9BMtvKqhQAKVE3PFn+9mxd25hD0tMB+PHJLuNtkF3BDyb5nZqdBaOSr4dYB7FNF4W1zQZAppXP/rXNuCS9HMDHYmercrm9SX68ZpvBvOzsxDazrYdKAJD64nc1SVvTViNJbwdwXLUG8xo6juQ78qrOryXJ1s0phqbZL4UlALClj2PwxNJuJG3gUYXCKf/zVRorb+RZJC26q5AkB8Bw5JFYupnkprGFp8tlASBD8/dbAOuRrGK6XeFZNWeuFtV5HMlfLCoU8/dgcv5LAI+MKR/KZGkGcwHg+6rvrbF0Acl9YgsvVy5c8+z1k3JdqtH1ojasDfWj1j8XFYz5uySbkr0ipmwocxTJ5HeFXAD4TvyqBOaq2blL8jaya0LfbRY9geSba3SY4UdxHslk3UcuAL4NwFavsbRODefHgifUWD5Ly1lP4GtusbIoOM/aiTWWbiS5eWzhSblkAEiy6PVeF6u3vpbkc1IZm1e+59/+Ccvnktyv0ni/AuDZkW1ZK/hYkta0RlMOAGySlKIXr6L5G8C3f3rSn1/j7SBDM2gP4yR7zBwApKp/Nybp94IiknQBgL2LGmmvctZ+PMuepI1CuNpYzpPVwjkAsJbKzpAxdBfJB8UUXK6MJLfxawDFbZXyElnf9gXrRZZdtpikvwCIDVJxDsn9U/rNAYBdtWJ17j8n6QALRSRpXwDnFTXSfuUqyiFJDnDx+Ej2ryeZ5IrGEEc/sv3VxbYA8IDICteRjD3ELNlkBRezSHarFnsbSavLi0jStQC2jWzkrwC+FVl2dTEDINdGPaafi0m+LKbggi2gSR5L2VuqftEr3aRRSZ8AUGT0sdwAmwZAsfWqpAcDaMw7tqnVB3ALyVjRvZz0y7W2jhpa0wAoFoOSbL/XiPVQ1AzlF7qbpA0+i0iSjVzeWdTIMpWbBsABJM8qYV6SM378oKSNDuuuXWptLMlexY2Fi2kaAMUeP5K2BvC1DhexpOvNSy2Lm1aAjQAoWd7Fddd4AIxbQKHDydC3gPEQuFhKLFti6IfA8RpYDoBBXwNHRVA5ABpXBNm2P4X8DhCbgLGWKjjVPCplPE2VPZpkitncXD4SVcF2VklKX5fzGGRdc2yI91qPQQ4112oQ5QqoKL4BmIfEx6AbSPqtJppyAGBPYKdxi6Faz8F+DrXnrgNPDoFuJblBDUYTn4PPJ+mX02jKAYDTnJwQ3QOwYWnM/vBNSAFeAnuNFE1+l5/HRchVkBI36U0kk0LR5QAgNbbNYSRXlU5z0xqxUv5m6tcyCXPM4ZTQ8cma1xwAOAiU/eZjkzNfSdK++sW0BhqF2vYyNiycnW7WT3W7TwZAEMc2e35Kwoo+vEYWjwFIgZpm4c5O8oeEOf4eyeR8BbkASL2WVfOi7bkUqOkYkur1nOV9lQsA5/M9KQGdZ5MsCZb8v64kbQXgcwAemtB/G0V9/96+VuAISX5GTzHwPIbkyakDzQVAqm+ADTq8P9VyDrXPnKVQn2izWgEjgnOoz1kpQTeTfQI8eVkACOeArt3DHSjRWUT6QNW2uDC3/XYPD0yOASL+C701NkCE3wRSE0E1ESLGV8yuAkVUue9Pi7DBhIgJUqAvQaIch/+iFmMG2AFzz9p5DQYVJCoAINVP0NWqOIvObvwhcIStZ5uOHeAI3zZ0KXYBnzOGnKwiyf6A0/1mHwIDAByBs2+BIq2qPrABIHjhz2wqrP0gA0UGEPQ1VKyB4Ouif+Y6ldox03kMrGRpNJ/BIEPFBgD4abi3waKDZ7HtCV6ckMLuUgCfAuCUbQZBoxSCWQ8zWHQAQU64eN8gdmg7J2BwNbO7mT8T+wK7nv3ZH5L+2RqF3IKOC5jk1RuypMc+FC05nqIzwKTVjLBxk6qXk9yttdnuYUeSHA/Qip9UygoLN9tJFQAEKZBrvbpiEkSmrmBBQslia+sJrzUBYL11btKoRq6GqQvSZvmM+D8T9vqZNCpIASeNyk0bt2ITRs6575ckkOxn2rip80DOgXB19TFx5EIZVCVP0HQv1baACgfCSRMrNoFkYcJIz0+Vg1+jAAhbgS1TrdbMpWTjxtyO2qpXwZztRJK2yK5K1SXAlCS4MCRtymV4xSSULEgQOZk7J63aK3cil6vXGACCJEjxIprH5xnOAdRVbsHSCZfkEDE26z6ooK1kb5+UvpoGwNoh0uVaKUzNlPWTs0Oh31jQRutVg3rXvoGpCSGneb0TgCOt3tHUABoFQJAC9iNMil03Z7AOhGzzr1Wpdu9NTdxS7YZXPTt0HJoQUHup5rYgeUOTY2gcAAEEuwO4pMJAbIhhIJxWO/NYKW/BmMOL7k+NZBZ7kGzcIbYVAAQQOJ9fdn67mQWyMYZBcE7pwtWoH8y4vPDJjhlL9H84yRSXsOxhtAaAAIIDbFSRze09K14dJMIVtUzOY3kLptu7hG98SoavRV1Uy66yqCP/vVUABBDkGJMuGouTUvmw6Dy/lzV1aApZPPx66XzEPtylJHVaNAb/PTv/X0zj88q0DoAAApuSebFSHB9SxugAy84AbjAU5SoIMfu96M48Xhz4eolB+IFnu5IcwCmTM122EwAEENgY48MJVjq5Y7wLwO0zH+fimfyf2103fNaZ+n3yf7Gx+nP5s/XRfiQ7iYfcGQAmsyXJOX9LFCW5E9+HemeQPLhLRjoHQJAGqV5GXc5Zrb6z073WYqCTQ+BSzAezMnsd71hzgD1s6yoAJ5P0z86pFxJgehYk2ajkmAYPiF1Nug96J5E8vSsGenMLWDQBQZ1qEBgMK4G86F783uU96J0EmJEG3g6GvC30StwPRgLMMirJzie+i9t8OjZjaVeSww9Xzm9sHcT5XTER22+vJcAcIFiBNAGCtXF9Iiu2Jgvv6B6DoEEBYGZ7sErZEsGA2KSj2b7Z33QvPMmkGL0d8XuPbgcLgDlnBYet23TqU3ursGh3WJzJx2HZenGVKwHTigDAnK3C7/GWCk8OPye/xya8dAJGJ6ryN9yf1b+nZuYuWZi26q5IAMybvJAhNfbcUCXpY1uLWNLPCID5szcCoARVfaw7SoD5qzJKgFEC9PH7Wp+nUQKMEiAlpN14Bqj/Hey2xVECjBJglABzMDAeAsdDYLeiua3exy1g3ALGLWDcAlY7dMTQGnML+A8qtnUcTFYqYAAAAABJRU5ErkJggg==) no-repeat center center;background-size:100% 100%;background-blend-mode:lighten;filter:invert(61%) sepia(87%) saturate(845%) hue-rotate(120deg) brightness(94%) contrast(101%);transition:opacity .5s ease-in-out}.anchor.active{opacity:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}\n',"146","srgb","srgb-linear","100","300 es","_listeners","hasEventListener","cos","sin","XYX","YZY","ZXZ","XZX","YXY","ZYZ","Invalid component type.","isVector2","setScalar","setX","setComponent","index is out of range: ","getComponent","copy","addScalar","addVectors","addScaledVector","subScalar","subVectors","applyMatrix3","elements","clamp","clampLength","divideScalar","multiplyScalar","dot","cross","lengthSq","angle","atan2","distanceToSquared","manhattanDistanceTo","setLength","lerp","lerpVectors","equals","fromArray","fromBufferAttribute","getX","getY","isMatrix3","setFromMatrix4","multiplyMatrices","determinant","transpose","transposeIntoArray","setUvTransform","scale","rotate","createElementNS","http://www.w3.org/1999/xhtml","THREE.ColorManagement: .workingColorSpace is readonly.","legacyMode","Unsupported color space conversion.","workingColorSpace","isColor","setHex","setStyle","setRGB","toWorkingColorSpace","setHSL"," will be ignored.","rgb","rgba","hsl","hsla","setColorName","THREE.Color: Unknown color ","copySRGBToLinear","copyLinearToSRGB","convertSRGBToLinear","convertLinearToSRGB","getHex","fromWorkingColorSpace","000000","getHSL","getStyle","color(","rgb(","offsetHSL","addColors","lerpColors","lerpHSL","getZ","NAMES","canvas","putImageData","THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons","image/jpeg","image/png","getImageData","THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.","isSource","uuid","needsUpdate","images","isDataTexture","THREE.Texture: Unable to serialize Texture.","DEFAULT_IMAGE","DEFAULT_MAPPING","isTexture","mipmaps","mapping","wrapT","magFilter","anisotropy","center","rotation","matrixAutoUpdate","matrix","generateMipmaps","flipY","unpackAlignment","encoding","userData","isRenderTargetTexture","needsPMREMUpdate","image","wrapS","minFilter","internalFormat","premultiplyAlpha","textures","Texture","Texture.toJSON","dispose","transformUv","isVector4","setY","setW","setAxisAngleFromQuaternion","roundToZero","manhattanLength","getW","isWebGLRenderTarget","depth","scissorTest","texture","depthBuffer","stencilBuffer","depthTexture","samples","setSize","viewport","scissor","wrapR","isWebGLArrayRenderTarget","isWebGL3DRenderTarget","isWebGLMultipleRenderTargets","isQuaternion","slerpFlat","_onChangeCallback","_order","XYZ","ZXY","ZYX","YZX","XZY","THREE.Quaternion: .setFromEuler() encountered an unknown order: ","setFromRotationMatrix","angleTo","acos","conjugate","premultiply","multiplyQuaternions","slerp","_onChange","isVector3","setZ","setFromEuler","applyAxisAngle","applyQuaternion","setFromAxisAngle","applyNormalMatrix","applyMatrix4","project","matrixWorldInverse","projectionMatrix","unproject","matrixWorld","transformDirection","crossVectors","projectOnVector","reflect","distanceTo","setFromSpherical","setFromSphericalCoords","radius","phi","theta","setFromCylindrical","setFromCylindricalCoords","setFromMatrixPosition","setFromMatrixScale","setFromMatrixColumn","setFromMatrix3Column","isBox3","setFromArray","setFromBufferAttribute","count","setFromPoints","makeEmpty","expandByPoint","setFromCenterAndSize","expandByObject","getCenter","getSize","expandByVector","expandByScalar","geometry","attributes","position","boundingBox","computeBoundingBox","containsPoint","containsBox","intersectsBox","intersectsSphere","clampPoint","intersectsPlane","constant","intersectsTriangle","distanceToPoint","getBoundingBox","translate","direction","lookAt","recast","closestPointToPoint","distanceSqToPoint","distanceSqToSegment","distanceToPlane","intersectPlane","intersectBox","intersectTriangle","isMatrix4","setFromMatrix3","extractBasis","makeBasis","extractRotation","order","makeRotationFromQuaternion","compose","makeTranslation","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","makeShear","decompose","makeOrthographic","DefaultOrder","isEuler","asin","THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ","setFromQuaternion","setFromVector3","reorder","THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead","RotationOrders","YXZ","mask","toggle","disable","isObject3D","Object3D","DefaultMatrixAutoUpdate","matrixWorldNeedsUpdate","visible","receiveShadow","frustumCulled","renderOrder","onAfterRender","updateMatrix","quaternion","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnWorldAxis","rotateX","rotateOnAxis","rotateY","rotateZ","translateOnAxis","translateX","translateZ","localToWorld","worldToLocal","updateWorldMatrix","isCamera","isLight","attach","getObjectByProperty","getObjectByName","getWorldPosition","getWorldQuaternion","getWorldScale","getWorldDirection","traverse","traverseVisible","traverseAncestors","updateMatrixWorld","matrixWorldAutoUpdate","metadata","Object3D.toJSON","castShadow","layers","isInstancedMesh","InstancedMesh","instanceMatrix","instanceColor","isScene","background","environment","isMesh","isPoints","geometries","parameters","shapes","isSkinnedMesh","bindMode","bindMatrix","skeleton","skeletons","material","materials","animations","nodes","DefaultUp","DefaultMatrixWorldAutoUpdate","getNormal","getBarycoord","getUV","isFrontFacing","setFromPointsAndIndices","setFromAttributeAndIndices","getArea","getMidpoint","setFromCoplanarPoints","isMaterial","Material","blending","side","transparent","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendEquationAlpha","depthWrite","stencilWriteMask","stencilFunc","stencilFuncMask","stencilZFail","stencilZPass","stencilWrite","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaToCoverage","premultipliedAlpha","toneMapped","_alphaTest","alphaTest","onBuild","onBeforeCompile","setValues","THREE.Material: '","' parameter is undefined.",": '","' is not a property of this material.","color","roughness","metalness","sheenColor","sheenRoughness","emissive","emissiveIntensity","specular","specularIntensity","specularColor","shininess","clearcoat","clearcoatRoughness","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","clearcoatNormalScale","iridescence","iridescenceIOR","iridescenceThicknessRange","iridescenceMap","iridescenceThicknessMap","matcap","alphaMap","lightMap","lightMapIntensity","aoMap","aoMapIntensity","bumpMap","bumpScale","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","specularMap","specularIntensityMap","specularColorMap","envMap","envMapIntensity","reflectivity","refractionRatio","gradientMap","transmission","transmissionMap","thickness","thicknessMap","attenuationDistance","attenuationColor","sizeAttenuation","vertexColors","opacity","depthFunc","depthTest","stencilRef","stencilFail","linewidth","dashSize","gapSize","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","flatShading","fog","blendDstAlpha","clippingPlanes","isMeshBasicMaterial","MeshBasicMaterial","THREE.BufferAttribute: array should be a Typed Array.","isBufferAttribute","array","itemSize","normalized","usage","updateRange","onUploadCallback","setUsage","copyAt","copyArray","setXY","setXYZ","setXYZW","onUpload","copyColorsArray","THREE.BufferAttribute: copyColorsArray() was removed in r144.","THREE.BufferAttribute: copyVector2sArray() was removed in r144.","copyVector3sArray","THREE.BufferAttribute: copyVector3sArray() was removed in r144.","copyVector4sArray","THREE.BufferAttribute: copyVector4sArray() was removed in r144.","isFloat16BufferAttribute","BufferGeometry","morphAttributes","morphTargetsRelative","boundingSphere","drawRange","setIndex","getAttribute","setAttribute","hasAttribute","addGroup","setDrawRange","getNormalMatrix","tangent","computeBoundingSphere","makeScale","isGLBufferAttribute",'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".','THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.','THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".','THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',"computeTangents","THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)","computeVertexNormals","normalizeNormals","merge","THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeBufferGeometries() instead.","toNonIndexed","materialIndex","BufferGeometry.toJSON","Mesh","updateMorphTargets","morphTargetInfluences","morphTargetDictionary","raycast","ray","uv2","faceIndex","face","near","far","boneTransform","BoxGeometry","fromJSON","widthSegments","heightSegments","depthSegments","void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}","void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}","ShaderMaterial","defines","uniforms","uniformsGroups","fragmentShader","lights","clipping","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","vertexShader","extensions","glslVersion","Camera","projectionMatrixInverse","isPerspectiveCamera","PerspectiveCamera","fov","focus","aspect","filmOffset","updateProjectionMatrix","zoom","filmGauge","setFocalLength","getFilmHeight","getFocalLength","tan","getEffectiveFOV","atan","getFilmWidth","setViewOffset","enabled","offsetX","offsetY","clearViewOffset","fullWidth","makePerspective","CubeCamera","renderTarget","getRenderTarget","toneMapping","setRenderTarget","render","isCubeTexture","fromEquirectangularTexture","\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t","CubemapFromEquirect","tEquirect","isPlane","setComponents","setFromNormalAndCoplanarPoint","projectPoint","intersectLine","intersectsLine","coplanarPoint","planes","intersectsObject","requestAnimationFrame","cancelAnimationFrame","isWebGL2","createBuffer","bufferData","THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.","THREE.WebGLAttributes: Unsupported buffer data format: ","bindBuffer","bufferSubData","subarray","elementSize","isInterleavedBufferAttribute","#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif","#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif","#ifdef USE_ALPHATEST\n\tif ( diffuseColor.a < alphaTest ) discard;\n#endif","#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif","#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif","vec3 transformed = vec3( position );","vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif","#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\t return vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif","#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif","#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif","#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif","#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif","#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif","#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}","#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif","#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif","#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif","#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif","#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif","gl_FragColor = linearToOutputTexel( gl_FragColor );","vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}","#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif","#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif","#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif","#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif","#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}","#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif","#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif","LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;","uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif","#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif","ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;","varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)","BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;","varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)","struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}","\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif","#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif","#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif","#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif","#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif","#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif","#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif","#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif","#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif","float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif","#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif","#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif","#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif","#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif","#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif","#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif","#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif","#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif","#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif","#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif","#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif","#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif","#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );","vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}","#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif","#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif","float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif","#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif","#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif","#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif","#if defined( USE_SHADOWMAP ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_COORDS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif","#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif","#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif","#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif","float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif","#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif","#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }","#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif","#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif","#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif","#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif","#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif","varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}","uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\n\t#endif\n\t#include \n\t#include \n}","#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}","varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}","uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}","#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}","#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}","#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}","varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}","uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}","#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}","#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}","#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}","uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}","common","specularmap","envmap","aomap","meshbasic_vert","meshbasic_frag","bumpmap","displacementmap","meshlambert_vert","meshlambert_frag","lightmap","emissivemap","meshphong_vert","meshphong_frag","normalmap","roughnessmap","metalnessmap","meshphysical_vert","meshphysical_frag","gradientmap","meshtoon_frag","meshmatcap_vert","points_frag","linedashed_vert","linedashed_frag","depth_vert","depth_frag","meshnormal_vert","meshnormal_frag","sprite","sprite_frag","background_vert","background_frag","backgroundCube_vert","backgroundCube_frag","cube_frag","equirect_vert","equirect_frag","distanceRGBA_vert","shadow_frag","physical","standard","backgroundBlurriness","getSession","environmentBlendMode","additive","autoClear","autoClearStencil","BackgroundCubeMaterial","backgroundCube","deleteAttribute","copyPosition","t2D","buffers","setClear","getParameter","program","createVertexArray","createVertexArrayOES","bindVertexArray","bindVertexArrayOES","deleteVertexArrayOES","location","getAttributes","attribute","attributesNum","newAttributes","enabledAttributes","attributeDivisors","ANGLE_instanced_arrays","vertexAttribDivisorANGLE","disableVertexAttribArray","vertexAttribIPointer","vertexAttribPointer","isInstancedBufferGeometry","bytesPerElement","stride","locationSize","meshPerAttribute","_maxInstanceCount","isInstancedBufferAttribute","vertexAttrib3fv","drawArrays","drawArraysInstancedANGLE","THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.","renderInstances","EXT_texture_filter_anisotropic","MAX_TEXTURE_MAX_ANISOTROPY_EXT","highp","getShaderPrecisionFormat","mediump","THREE.WebGLRenderer:","not supported, using","instead.","WEBGL_draw_buffers","logarithmicDepthBuffer","OES_texture_float","uniform","numPlanes","init","beginShadows","endShadows","numIntersection","isOrthographicCamera","OrthographicCamera","top","bottom","fullHeight","_renderer","_pingPongRenderTarget","_lodMax","_lodPlanes","_sizeLods","_sigmas","_blurMaterial","_cubemapMaterial","_compileMaterial","fromScene","_allocateTargets","_sceneToCubeUV","_applyPMREM","_cleanup","fromEquirectangular","fromCubemap","_fromTexture","compileEquirectangularShader","_equirectMaterial","_dispose","_setSize","_cubeSize","compile","getClearColor","_textureToCubeUV","flipEnvMap","_blur","_halfBlur","latitudinal","longitudinal","blur direction must be either latitudinal or longitudinal!","sigmaRadians, ",", is too large and will clip, as it requested ","weights","poleAxis","mipInt","PMREM.cubeUv","SphericalGaussianBlur","\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t","EquirectangularToCubeUV","CubemapToCubeUV","\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t","\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t","getExtension","MOZ_WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc","EXT_color_buffer_float","WEBGL_depth_texture","OES_texture_half_float","OES_texture_half_float_linear","OES_standard_derivatives","OES_vertex_array_object","OES_texture_float_linear"," extension not supported.","releaseStatesOfGeometry","memory","drawElementsInstanced","THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.","setMode","calls","triangles","lines","THREE.WebGLInfo: Unknown draw mode:","frame","maxTextureSize","getUniforms","setValue","morphTargetsTexture","morphTargetsTextureSize","MAX_SAFE_INTEGER","morphTarget","morphNormal","uniform1f","uniform2f","addr","uniform3f","uniform3fv","uniform4fv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","uniform1i","uniform2i","uniform2iv","uniform3i","uniform3iv","uniform4iv","uniform2uiv","uniform3uiv","uniform4ui","allocateTextureUnit","setTexture3D","setTextureCube","setTexture2DArray","uniform1fv","uniform2fv","uniform1iv","uniform1uiv","uniform4uiv","seq","getProgramParameter","getActiveUniform","getUniformLocation","setOptional","upload","seqWithValue","shaderSource","compileShader","Linear","sRGB","( value )","getShaderInfoLog","getShaderSource","vec4 ","( vec4 value ) { return LinearTo","; }","Reinhard","OptimizedCineon","ACESFilmic","Custom","THREE.WebGLProgram: Unsupported toneMapping:","( vec3 color ) { return ","ToneMapping( color ); }","envMapCubeUVHeight","tangentSpaceNormalMap","shaderID","#extension GL_OES_standard_derivatives : enable","extensionFragDepth","rendererExtensionFragDepth","#extension GL_EXT_frag_depth : enable","extensionDrawBuffers","#extension GL_EXT_draw_buffers : require","extensionShaderTextureLOD","rendererExtensionShaderTextureLod","#define ","getActiveAttrib","getAttribLocation","numSpotLightMaps","numSpotLightShadowsWithMaps","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numSpotLightShadows","numPointLightShadows","numClippingPlanes","numClipIntersection","Can not resolve #include <","precision "," float;\nprecision "," int;","\n#define HIGH_PRECISION","\n#define MEDIUM_PRECISION","lowp","\n#define LOW_PRECISION","SHADOWMAP_TYPE_BASIC","shadowMapType","SHADOWMAP_TYPE_PCF","SHADOWMAP_TYPE_PCF_SOFT","SHADOWMAP_TYPE_VSM","ENVMAP_TYPE_CUBE","envMapMode","ENVMAP_TYPE_CUBE_UV","ENVMAP_MODE_REFLECTION","ENVMAP_MODE_REFRACTION","ENVMAP_BLENDING_NONE","ENVMAP_BLENDING_MULTIPLY","ENVMAP_BLENDING_MIX","ENVMAP_BLENDING_ADD","log2","createProgram","#version ","isRawShaderMaterial","#define SHADER_NAME ","#define USE_INSTANCING","useFog","#define USE_FOG","#define FOG_EXP2","#define USE_MAP","#define USE_ENVMAP","#define USE_LIGHTMAP","#define USE_AOMAP","#define USE_EMISSIVEMAP","#define USE_BUMPMAP","#define USE_NORMALMAP","objectSpaceNormalMap","#define TANGENTSPACE_NORMALMAP","#define USE_CLEARCOATMAP","#define USE_CLEARCOAT_NORMALMAP","#define USE_IRIDESCENCEMAP","#define USE_IRIDESCENCE_THICKNESSMAP","supportsVertexTextures","#define USE_DISPLACEMENTMAP","#define USE_SPECULARINTENSITYMAP","#define USE_SPECULARCOLORMAP","#define USE_ROUGHNESSMAP","#define USE_METALNESSMAP","#define USE_TRANSMISSION","#define USE_TRANSMISSIONMAP","#define USE_THICKNESSMAP","sheenColorMap","#define USE_SHEENCOLORMAP","sheenRoughnessMap","#define USE_SHEENROUGHNESSMAP","vertexTangents","#define USE_COLOR","vertexAlphas","vertexUvs","#define USE_UV","uvsVertexOnly","#define UVS_VERTEX_ONLY","#define FLAT_SHADED","skinning","#define USE_SKINNING","morphTargets","#define USE_MORPHTARGETS","morphNormals","morphColors","#define USE_MORPHCOLORS","morphTargetsCount","morphTextureStride","#define DOUBLE_SIDED","#define FLIP_SIDED","shadowMapEnabled","#define USE_SHADOWMAP","#define USE_LOGDEPTHBUF","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;","#ifdef USE_TANGENT","#if defined( USE_COLOR_ALPHA )","\tattribute vec3 color;","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","shaderName","fogExp2","#define USE_MATCAP","#define CUBEUV_TEXEL_WIDTH ","texelWidth","#define CUBEUV_TEXEL_HEIGHT ","texelHeight","#define OBJECTSPACE_NORMALMAP","#define USE_CLEARCOAT","#define USE_CLEARCOAT_ROUGHNESSMAP","#define USE_IRIDESCENCE","#define USE_SPECULARMAP","#define USE_ALPHAMAP","#define USE_ALPHATEST","sheen","#define USE_SHEEN","#define DECODE_VIDEO_TEXTURE","#define USE_COLOR_ALPHA","#define USE_GRADIENTMAP","doubleSided","flipSided","#define PREMULTIPLIED_ALPHA","physicallyCorrectLights","#define PHYSICALLY_CORRECT_LIGHTS","uniform mat4 viewMatrix;","#define TONE_MAPPING","tonemapping_pars_fragment","#define DITHERING","opaque","#define OPAQUE","encodings_pars_fragment","outputEncoding","useDepthPacking","depthPacking","#version 300 es\n","precision mediump sampler2DArray;","#define texture2D texture","#define varying in","layout(location = 0) out highp vec4 pc_fragColor;","#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define textureCube texture","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad","attachShader","bindAttribLocation","linkProgram","checkShaderErrors","getProgramInfoLog","vertex","THREE.WebGLProgram: Shader Error "," - VALIDATE_STATUS ","\n\nProgram Info Log: ","diagnostics","deleteShader","releaseStatesOfProgram","cacheKey","usedTimes","materialCache","_getShaderStage","_getShaderCacheForMaterial","shaderCache","getVertexShaderID","vertexTextures","distanceRGBA","basic","lambert","phong","toon","dashed","points","isMeshStandardMaterial","getMaxPrecision","THREE.WebGLProgram.getParameters:","getFragmentShaderID","isXRRenderTarget","isVideoTexture","isFogExp2","spot","spotLightMap","hemi","directionalShadowMap","pointShadowMap","spotShadowMap","shadowMap","derivatives","fragDepth","EXT_shader_texture_lod","customProgramCacheKey","customVertexShaderID","customFragmentShaderID","instancing","instancingColor","decodeVideoTexture","groupOrder","group","PointLight","HemisphereLight","RectAreaLight","DirectionalLight","SpotLight","probe","intensity","distance","shadow","isLightProbe","coefficients","isDirectionalLight","shadowBias","normalBias","shadowRadius","shadowMapSize","mapSize","directionalShadow","directionalShadowMatrix","directional","isSpotLight","coneCos","penumbraCos","penumbra","decay","spotLightMatrix","bias","isRectAreaLight","halfWidth","halfHeight","rectArea","isPointLight","shadowNormalBias","shadowCameraNear","camera","shadowCameraFar","pointShadow","pointShadowMatrix","isHemisphereLight","skyColor","groundColor","rectAreaLTC2","LTC_FLOAT_2","rectAreaLTC1","LTC_FLOAT_1","LTC_HALF_1","LTC_HALF_2","THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.","ambient","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","spotShadow","directionalLength","setup","setupView","isMeshDistanceMaterial","referencePosition","nearDistance","farDistance","uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}","HORIZONTAL_PASS","autoUpdate","getActiveCubeFace","getActiveMipmapLevel","setBlending","setTest","setScissorTest","THREE.WebGLShadowMap:","has no shadow.","getViewportCount","getViewport","updateMatrices","getFrustum","isPointLightShadow","VSM_SAMPLES","blurSamples","mapPass","shadow_pass","resolution","renderBufferDirect","customDistanceMaterial","customDepthMaterial","localClippingEnabled","colorMask","depthMask","stencilOp","clearStencil","WebGL","OpenGL ES","createTexture","bindTexture","texParameteri","texImage2D","setFunc","bindFramebuffer","drawBuffers","useProgram","EXT_blend_minmax","MAX_EXT","blendFuncSeparate","blendFunc","THREE.WebGLState: Invalid blending: ","blendEquationSeparate","setMask","setOp","frontFace","cullFace","lineWidth","activeTexture","compressedTexImage2D","THREE.WebGLState:","texSubImage3D","compressedTexSubImage3D","texStorage3D","texImage3D","getUniformBlockIndex","__bindingPointIndex","clearColor","clearDepth","maxTextures","WEBGL_multisampled_render_to_texture","THREE.WebGLRenderer: Texture has been resized from (",") to (","THREE.WebGLRenderer: Image in DataTexture is too big (","THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '","isFramebufferTexture","isCompressedTexture","__webglInit","__cacheKey","deleteTexture","__webglTexture","isWebGLCubeRenderTarget","deleteFramebuffer","__webglFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","__webglDepthRenderbuffer","__version","THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.","THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.","texParameterf","__currentAnisotropy","isDataArrayTexture","isCompressedArrayTexture","isData3DTexture","pixelStorei","convert","isDepthTexture","WebGLRenderer: Floating point depth texture requires WebGL2.","THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.","THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.","texStorage2D","texSubImage2D","compressedTexImage3D","THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()","onUpdate","compressedTexSubImage2D","THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()","__hasExternalTextures","framebufferTexture2DMultisampleEXT","framebufferTexture2D","bindRenderbuffer","renderbufferStorageMultisampleEXT","renderbufferStorageMultisample","renderbufferStorage","renderTarget.depthTexture must be an instance of THREE.DepthTexture","Unknown depthTexture format","target.depthTexture not supported in Cube render targets","createRenderbuffer","createFramebuffer","THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.","unbindTexture","THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.","framebufferRenderbuffer","__ignoreDepthValues","invalidateFramebuffer","__useRenderToTexture","EXT_sRGB","THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.","THREE.WebGLTextures: Unsupported texture encoding:","resetTextureUnits","rebindTextures","setupRenderTarget","setupDepthRenderbuffer","setupFrameBufferTexture","HALF_FLOAT_OES","SRGB_ALPHA_EXT","WEBGL_compressed_texture_s3tc_srgb","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","WEBGL_compressed_texture_etc1","COMPRESSED_RGB_ETC1_WEBGL","WEBGL_compressed_texture_etc","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGBA8_ETC2_EAC","WEBGL_compressed_texture_astc","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","UNSIGNED_INT_24_8_WEBGL","isArrayCamera","cameras","isGroup","Group","move","_targetRay","getHandSpace","_hand","hasLinearVelocity","linearVelocity","hasAngularVelocity","angularVelocity","_grip","disconnect","session","visibilityState","hand","jointName","joints","thumb-tip","inputState","pinching","pinchend","pinchstart","gripSpace","getPose","targetRaySpace","DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat","cameraAutoUpdate","isPresenting","getController","getTargetRaySpace","getControllerGrip","getGripSpace","getHand","inputSource","selectstart","squeeze","squeezeend","sessionend","setFramebufferScaleFactor","THREE.WebXRManager: Cannot change framebuffer scale while presenting.","setReferenceSpaceType","THREE.WebXRManager: Cannot change reference space type while presenting.","setReferenceSpace","getBaseLayer","getBinding","getFrame","setSession","selectend","squeezestart","inputsourceschange","xrCompatible","renderState","capabilities","antialias","alpha","stencil","updateRenderState","framebufferWidth","framebufferHeight","createProjectionLayer","textureWidth","textureHeight","properties","requestReferenceSpace","setContext","disconnected","added","getCamera","fixedFoveation","getViewerPose","setRenderTargetFramebuffer","framebuffer","getViewSubImage","setRenderTargetTextures","colorTexture","ignoreDepthValues","depthStencilTexture","setAnimationLoop","fogColor","isFog","fogNear","fogFar","fogDensity","density","isMeshLambertMaterial","isMeshToonMaterial","isMeshPhongMaterial","isMeshPhysicalMaterial","isMeshMatcapMaterial","isMeshDepthMaterial","isMeshNormalMaterial","isLineBasicMaterial","isLineDashedMaterial","isPointsMaterial","isSpriteMaterial","isShadowMaterial","isShaderMaterial","diffuse","ior","uv2Transform","uvTransform","iridescenceThicknessMinimum","iridescenceThicknessMaximum","transmissionSamplerMap","transmissionSamplerSize","__size","bindBufferBase","THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.","__cache","__offset","__data","storage","boundary","THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.","THREE.WebGLRenderer: Unsupported uniform value type.","deleteBuffer","display","block","isWebGLRenderer","context","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","getContextAttributes","autoClearDepth","toneMappingExposure","THREE.WebGLRenderer: .gammaFactor has been removed.","data-engine","three.js r","webglcontextlost","webglcontextrestored","webgl2","webgl","experimental-webgl","isWebGL1Renderer","Error creating WebGL context with your selected attributes.","Error creating WebGL context.","programs","renderLists","WEBGL_lose_context","forceContextRestore","getPixelRatio","setPixelRatio","THREE.WebGLRenderer: Can't change size while VR device is presenting.","setViewport","getDrawingBufferSize","getCurrentViewport","setScissor","getScissorTest","setOpaqueSort","setTransparentSort","setClearColor","getClearAlpha","stop","preventDefault","THREE.WebGLRenderer: Context Lost.","THREE.WebGLRenderer: Context Restored.","autoReset","THREE.WebGLRenderer: A WebGL context could not be created. Reason: ","statusMessage","releaseProgram","releaseShaderCache","setMaterial","isLine","setLineWidth","isLineSegments","isLineLoop","instanceCount","pushLight","setupLights","sessionstart","THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.","onBeforeRender","sortObjects","finish","shadowsArray","updateMultisampleRenderTarget","updateRenderTargetMipmap","isLOD","isSprite","intersectsSprite","setupLightsView","setPolygonOffset","EXT_color_buffer_half_float","overrideMaterial","modelViewMatrix","normalMatrix","getParameters","getProgramCacheKey","currentProgram","lightsStateVersion","acquireProgram","needsLights","ambientLightColor","lightProbe","directionalLights","directionalLightShadows","spotLights","spotLightShadows","ltc_1","pointLights","pointLightShadows","hemisphereLights","uniformsList","logDepthBufFC","isOrthographic","viewMatrix","bindMatrixInverse","floatVertexTextures","boneTexture","boneTextureSize","THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required.","isMeshGouraudMaterial","refreshFogUniforms","THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.","rectAreaLights","__autoAllocateDepthBuffer","__useDefaultFramebuffer","useMultisampledRTT","framebufferTextureLayer","readRenderTargetPixels","THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.","WEBGL_color_buffer_float","THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.","readPixels","copyFramebufferToTexture","setTexture2D","copyTexSubImage2D","copyTextureToTexture","generateMipmap","copyTextureToTexture3D","THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.","THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.","initTexture","resetState","observe","Fog","Scene","THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144.","isInterleavedBuffer","arrayBuffers","_uuid","THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will deinterleave buffer data.","interleavedBuffers","THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will deinterleave buffer data.","SpriteMaterial","Sprite",'THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.',"_currentLevel","addLevel","getCurrentLevel","getObjectForDistance","SkinnedMesh","attached","calculateInverses","pose","normalizeSkinWeights","detached","skinIndex","skinWeight","bones","boneInverses","isBone","Bone","boneMatrices","computeBoneTexture","THREE.Skeleton: No bone found with UUID:","Skeleton","Skeleton.toJSON","setMatrixAt","getColorAt","getMatrixAt","instanceId","LineBasicMaterial","linejoin","linecap","Line","computeLineDistances","lineDistance","threshold","LineSegments","THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.","LineLoop","Points","params","requestVideoFrameCallback","HAVE_CURRENT_DATA","isCanvasTexture","Curve","THREE.Curve: .getPoint() not implemented.","getPointAt","getUtoTmapping","getPoint","getPoints","getSpacedPoints","getLength","getLengths","arcLengthDivisions","cacheArcLengths","updateArcLengths","getTangent","getTangentAt","computeFrenetFrames","Curve.toJSON","isEllipseCurve","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","isArcCurve","ArcCurve","centripetal","isCatmullRomCurve3","CatmullRomCurve3","closed","tension","curveType","chordal","initNonuniformCatmullRom","initCatmullRom","calc","isCubicBezierCurve","CubicBezierCurve","isCubicBezierCurve3","CubicBezierCurve3","LineCurve","isLineCurve3","isQuadraticBezierCurve","QuadraticBezierCurve3","SplineCurve","curves","closePath","getCurveLengths","cacheLengths","autoClose","isLineCurve","isSplineCurve","Path","currentPoint","moveTo","lineTo","bezierCurveTo","splineThru","arc","absarc","absellipse","ellipse","LatheGeometry","phiStart","phiLength","radialSegments","CircleGeometry","thetaStart","thetaLength","CylinderGeometry","radiusTop","radiusBottom","openEnded","ConeGeometry","PolyhedronGeometry","vertices","indices","details","EdgesGeometry","getIndex","Shape","getPointsHoles","holes","extractPoints","prevZ","nextZ","steiner","area","isClockWise","triangulate","ExtrudeGeometry","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","UVGenerator","shape","triangulateShape","THREE.ExtrudeGeometry: vec does not exist","normals","binormals","generateSideWallUV","options","IcosahedronGeometry","OctahedronGeometry","RingGeometry","thetaSegments","phiSegments","ShapeGeometry","SphereGeometry","TorusGeometry","tubularSegments","TorusKnotGeometry","tube","TubeGeometry","tangents","RawShaderMaterial","MeshStandardMaterial","MeshPhysicalMaterial","_clearcoat","_iridescence","_sheen","_transmission","MeshPhongMaterial","MeshNormalMaterial","MeshMatcapMaterial","LineDashedMaterial","isView","time","tracks","times","resetDuration","ValueTypeName","bool","isInterpolantFactoryMethodGLTFCubicSpline","getValueSize","createInterpolant","resultBuffer","multiplyQuaternionsFlat","_cachedIndex","sampleValues","valueSize","settings","DefaultSettings_","parameterPositions","copySampleValue_","intervalChanged_","getSettings_","call to abstract method","_offsetPrev","_weightNext","_offsetNext","endingStart","endingEnd","_weightPrev","interpolate_","THREE.KeyframeTrack: no keyframes in track named ","TimeBufferType","ValueBufferType","DefaultInterpolation","getInterpolation","interpolation","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","setInterpolation","InterpolantFactoryMethodSmooth"," keyframe track named ","validate","THREE.KeyframeTrack: Invalid value size in track.","THREE.KeyframeTrack: Track is empty.","THREE.KeyframeTrack: Time is not a valid number.","THREE.KeyframeTrack: Out of order keys.","optimize","duration","blendMode","fps","findByName","CreateClipsFromMorphTargetSequences","CreateFromMorphTargetSequence","THREE.AnimationClip: No animation in JSONLoader data.","hierarchy",".morphTargetInfluence[",".bones[",".position",".quaternion","rot","scalar","double","float","integer","vector2","vector3","vector4","THREE.KeyframeTrack: Unsupported typeName: ","THREE.KeyframeTrack: track type undefined, can not parse","onStart","onLoad","onProgress","onError","itemStart","itemEnd","resolveURL","setURLModifier","addHandler","removeHandler","getHandler","manager","crossOrigin","anonymous","withCredentials","resourcePath","setCrossOrigin","setWithCredentials","setPath","setResourcePath","setRequestHeader","requestHeader","response","include","same-origin","mimeType","responseType","getReader","Content-Length","read","progress","enqueue",'fetch for "','" responded with ',"statusText","arraybuffer","arrayBuffer","text","parseFromString","json","decode","setMimeType","isCubemap","mipmapCount","img","itemError","setResponseType","_frameExtents","_viewportCount","_viewports","_frustum","setFromProjectionMatrix","getFrameExtents","power","_cubeUps","isDirectionalLightShadow","isAmbientLight","AmbientLight","isSphericalHarmonics3","getIrradianceAt","addScaledSH","getBasisAt","createMaterialFromType","setTextures","decodeText","extractUrlBase","drawcalls","offsets","THREE:ObjectLoader: Can't parse ","THREE.ObjectLoader: Can't load ","loadAsync","parseShapes","parseGeometries","parseImages","parseTextures","parseMaterials","parseSkeletons","bindSkeletons","parseAsync","parseAnimations","parseImagesAsync","InstancedBufferGeometry",'THREE.ObjectLoader: Unsupported geometry type "',"isBufferGeometry","THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",'THREE.ObjectLoader: No "image" specified for',"THREE.ObjectLoader: Undefined geometry","THREE.ObjectLoader: Undefined material","THREE.ObjectLoader: Undefined texture","LOD","PointCloud","THREE.ObjectLoader: No skeleton found with UUID:","isImageBitmapLoader","THREE.ImageBitmapLoader: createImageBitmap() not supported.","THREE.ImageBitmapLoader: fetch() not supported.","none","credentials","webkitAudioContext","decodeAudioData","isHemisphereLightProbe","isAmbientLightProbe","StereoCamera","eyeSep","cameraL","cameraR","_cache","autoStart","startTime","oldTime","running","getElapsedTime","getDelta","elapsedTime","AudioListener","gain","createGain","connect","destination","timeDelta","getMasterVolume","setMasterVolume","setTargetAtTime","currentTime","_clock","positionX","linearRampToValueAtTime","positionY","positionZ","forwardX","forwardY","upZ","setPosition","setOrientation","Audio","listener","detune","loopStart","loopEnd","playbackRate","isPlaying","hasPlaybackControl","sourceType","empty","_startedAt","_progress","filters","getOutput","mediaNode","createMediaElementSource","setMediaStreamSource","mediaStreamNode","createMediaStreamSource","setBuffer","autoplay","play","THREE.Audio: Audio is already playing.","createBufferSource","loop","onended","onEnded","setDetune","setPlaybackRate","THREE.Audio: this Audio has no playback control.","_connected","getFilters","getFilter","setFilter","setFilters","getPlaybackRate","getLoop","setLoop","setLoopStart","setLoopEnd","getVolume","panner","createPanner","panningModel","HRTF","getRefDistance","refDistance","setRefDistance","getRolloffFactor","rolloffFactor","setRolloffFactor","getDistanceModel","distanceModel","setDistanceModel","setMaxDistance","maxDistance","setDirectionalCone","coneInnerAngle","coneOuterAngle","coneOuterGain","orientationX","orientationZ","analyser","createAnalyser","fftSize","frequencyBinCount","getFrequencyData","getAverageFrequency","_slerp","_setAdditiveIdentityQuaternion","_select","_setAdditiveIdentityOther","_lerpAdditive","_setAdditiveIdentityNumeric","_setIdentity","_origIndex","cumulativeWeight","cumulativeWeightAdditive","useCount","accumulate","_mixBufferRegion","_addIndex","_mixBufferRegionAdditive","restoreOriginalState","_slerpAdditive","_workIndex","_lerp","\\[\\]\\.:\\/","WCOD","_targetGroup","getValue","_bindings","nCachedObjects_","unbind","parsedPath","findNode","nodeName","_getValue_unbound","_setValue_unbound","isAnimationObjectGroup","Composite","sanitizeNodeName","parseTrackName","PropertyBinding: Cannot parse trackName: ","objectName","propertyName","PropertyBinding: can not parse propertyName from trackName: ","getBoneByName","_getValue_unavailable","_setValue_unavailable","_getValue_direct","targetObject","resolvedProperty","_getValue_arrayElement","_setValue_direct_setMatrixWorldNeedsUpdate","_setValue_array","_setValue_array_setNeedsUpdate","_setValue_array_setMatrixWorldNeedsUpdate","_setValue_arrayElement","propertyIndex","_setValue_arrayElement_setNeedsUpdate","_setValue_arrayElement_setMatrixWorldNeedsUpdate","_setValue_fromArray","_setValue_fromArray_setNeedsUpdate","_setValue_fromArray_setMatrixWorldNeedsUpdate","rootNode","THREE.PropertyBinding: Trying to update node for track: "," but it wasn't found.","THREE.PropertyBinding: Can not bind to material as node does not have a material.","THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.","THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.","THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.","THREE.PropertyBinding: Can not bind to objectName of node undefined.","THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.","Versioning","None","NeedsUpdate","MatrixWorldNeedsUpdate","BindingType","Direct","THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.","ArrayElement","EntireArray","GetterByBindingType","SetterByBindingTypeAndVersioning","_getValue_array","_getValue_toArray","_setValue_direct_setNeedsUpdate","_objects","_indicesByUUID","_paths","_parsedPaths","_bindingsIndicesByPath","stats","total","uncache","subscribe_","unsubscribe_","_clip","_interpolantSettings","_interpolants","_byClipCacheIndex","_loopCount","timeScale","_effectiveTimeScale","weight","repetitions","clampWhenFinished","zeroSlopeAtStart","zeroSlopeAtEnd","_activateAction","_mixer","stopFading","stopWarping","_startTime","_isActiveAction","isScheduled","startAt","setEffectiveWeight","_effectiveWeight","getEffectiveWeight","fadeIn","_scheduleFading","fadeOut","warp","crossFadeTo","crossFadeFrom","_weightInterpolant","_takeBackControlInterpolant","setEffectiveTimeScale","paused","getEffectiveTimeScale","setDuration","halt","_lendControlInterpolant","_timeScaleInterpolant","getMixer","_localRoot","_updateTimeScale","_updateTime","_updateWeight","_propertyBindings","accumulateAdditive","_setEndings","finished","_bindAction","_bindingsByRootAndName","referenceCount","_cacheIndex","_addInactiveBinding","knownActions","saveOriginalState","_deactivateAction","_initMemoryManager","_actions","_nActiveActions","_controlInterpolants","_nActiveControlInterpolants","_nActiveBindings","_addInactiveAction","_actionsByClip","_removeInactiveAction","actionByRoot","_removeInactiveBindingsForAction","_removeInactiveBinding","_lendBinding","_takeBackBinding","__cacheIndex","clipAction","existingAction","stopAllAction","_accuIndex","_update","setTime","getRoot","uncacheClip","uncacheAction","isUniformsGroup","setName","isInstancedInterleavedBuffer","setItemSize","setFromCamera","THREE.Raycaster: Unsupported camera type: ","intersectObject","intersectObjects","makeSafe","setFromCartesianCoords","isBox2","delta","distanceSq","closestPointToPointParameter","light","cone","isSkeletonHelper","SkeletonHelper","PointLightHelper","GridHelper","PolarGridHelper","lightPlane","targetLine","cn1","cn2","cn3","cn4","cf3","CameraHelper","pointMap","setColors","cf2","cf4","BoxHelper","THREE.BoxHelper: .update() has no longer arguments.","setFromObject","box","PlaneHelper","plane","ArrowHelper","line","setDirection","setColor","ShapePath","currentPath","subPaths","quadraticCurveTo","toShapes","THREE.DataUtils.toHalfFloat(): Value out of range.","uint32View","baseTable","shiftTable","mantissaTable","exponentTable","floatView","THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry.","THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry.","THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry.","THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry.","THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry.","THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry.","THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry.","THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry.","THREE.RingBufferGeometry has been renamed to THREE.RingGeometry.","THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry.","THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry.","THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry.","THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry.","__THREE__","WARNING: Multiple instances of Three.js being imported.","batches","indexStart","indexCount","positionStart","useSharedArrayBuffer","pos","candidate","leftCacheBounds","rightCacheBounds","bounds","MeshBVH: Invalid build strategy value ","MeshBVH: Max depth of "," reached when generating BVH. Consider increasing maxDepth.","boundingData","axis","splitAxis","maxDepth","verbose","setFromPointsField","isSeparated","setFromBox","satAxes","satBounds","isExtendedTriangle","sphere","ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0.","distanceToTriangle","alignedSatBounds","invMatrix","distanceToBox","_getNewPrimitive","_primitives","getPrimitive","releasePrimitive","boundsTree","shapecast","skip tree generation","_roots","cloneBuffers","deserialize","MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.","setBoundingBox","refit","raycastFirst","intersectsGeometry","MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.","bvhcast","closestPointToGeometry","firstHitOnly","normalModel","vertexNormalsModel","vertexNormalsLength","positionWorld","positionScreen","objects","projectScene","pushNormal","pushColor","pushTriangle","pushVertex","pushLine","isSVGObject","http://www.w3.org/2000/svg","svg","sortElements","overdraw","setQuality","high","low","viewBox","setPrecision","childNodes","backgroundColor","THREE.SVGRenderer.render: camera is not an instance of Camera.","faces",") rotate(","fill:",";fill-opacity:",";stroke-opacity:",";stroke-width:",";stroke-linecap:","fill:none;stroke:","shape-rendering","#7fffbf","createSVGObject","createSnapIcon","Dot","\n M "," 0 1, 0 ",", 0\n a "," 0 1, 0 -",", 0\n ","Square","\n h ","\n v ","\n z\n ","Triangle","\n M 0, ","\n L ","Cross","\n ","Perpendicular","\n M 0, 0\n L ",", 0\n M 0, 0\n L 0, ","fill: ","; stroke: ","createLine","#fff000","stroke: ","createLabel","font-size: ","; text-anchor: middle; fill: ","fullscreenElement","mozFullScreenElement","fullScreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","mozCancelFullscreen","webkitExitFullscreen","msExitFullscreen","joinStrings","numberToString","hexToBase64","arrayToVector2","arrayToEuler","arrayOrObjectToVector3","isVectorValid","isMatrixValid","guid","xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx","expandBoxByScale","expandBoxByMinSize","generateRandomInt","#ffffff","canvasToImage","onload","[CommonUtils] performance.memory is not available in this browser","jsHeapSizeLimit","totalJSHeapSize","[CommonUtils] ",". jsHeapSizeLimit: ","M , totalJSHeapSize: ","M , usedJSHeapSize: ","printGpuInfo","[CommonUtils] gpu:","getScreenPointByEvent","getBoundingClientRect","clientY","getScreenPointByTouchEvent","touches","clientX","worldPosition2ScreenPoint","screenPoint2NdcPoint","isTouchScreenDevice","printDeviceInfo","[DI] is android","[DI] is fireFox","[DI] is tablet","[DI] is iPhone","[DI] is PC","[DI] is touch device","MESH_EDGEBREAKER_ENCODING","THREE.DRACOExporter: required the draco_encoder to work.","Encoder","MeshBuilder","AddFloatAttributeToMesh","POSITION","AddFacesToMesh","exportNormals","NORMAL","exportUvs","exportColor","PointCloudBuilder","AddFloatAttribute","DRACOExporter: Unsupported object type.","DracoInt8Array","encodeSpeed","decodeSpeed","SetSpeedOptions","encoderMethod","quantization","SetAttributeQuantization","EncodeMeshToDracoBuffer","EncodePointCloudToDracoBuffer","THREE.DRACOExporter: Draco encoding failed.","GetValue","POINT_CLOUD","TRIANGULAR_MESH","INVALID","COLOR","TEX_COORD","pluginCallbacks","register","setPlugins","NEAREST","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","REPEAT","MIRRORED_REPEAT","translation","toBlob","image/webp","convertToBlob","plugins","pending","extensionsUsed","uids","2.0","THREE.GLTFExporter","trs","processInput","application/octet-stream","binary","readAsArrayBuffer","onloadend","readAsDataURL","uri","gltfExtensions","THREE.GLTFExporter: userData of '","uid","isNormalizedNormalAttribute","attributesNormalized","createNormalizedNormalAttribute","applyTextureTransform","KHR_texture_transform","buildMetalRoughTexture","THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures.","fillStyle","#00ffff","drawImage","bufferViews","UNSIGNED_BYTE","setFloat32","UNSIGNED_SHORT","setUint16","processBuffer","ARRAY_BUFFER","byteStride","SCALAR","VEC2","VEC3","VEC4","MAT4","FLOAT","UNSIGNED_INT","THREE.GLTFExporter: Unsupported bufferAttribute component type.","ELEMENT_ARRAY_BUFFER","processBufferView","accessors","processImage","GLTFExporter: Only RGBAFormat is supported.","GLTFExporter: Image size is bigger than maxTextureSize","processBufferViewImage","bufferView","toDataURL","samplers","processTexture","processSampler","_invokeAll","writeTexture","GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.","pbrMetallicRoughness","roughnessFactor","metallicFactor","metallicRoughnessTexture","emissiveFactor","emissiveTexture","strength","occlusionTexture","alphaMode","writeMaterial","processMesh","LINES","POINTS","TRIANGLES","TEXCOORD_1","COLOR_0","WEIGHTS_0","JOINTS_0","THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.","morph","getUID",'GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.',"processAccessor","GLTFExporter: Only POSITION and NORMAL morph are supported.","extras","targetNames","targets","meshes","writeMesh","orthographic","degToRad","processAnimation","Utils","mergeMorphTargetTracks","objectIndex",'THREE.GLTFExporter: Could not export animation track "%s".',"CUBICSPLINE","STEP","clip_","processSkin","nodeMap","skins","skin","processNode","serializeUserData","mesh","processCamera","onlyVisible","writeNode","processScene","scenes","processObjects","AuxScene","beforeParse","afterParse","writer","THREE.GLTFExporter: Only directional, point, and spot lights are supported.","innerConeAngle","THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2.","THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1.","KHR_materials_unlit","isGLTFSpecularGlossinessMaterial","baseColorFactor","diffuseFactor","specularFactor","glossinessFactor","glossiness","baseColorTexture","specularGlossinessTexture","KHR_materials_clearcoat","clearcoatTexture","clearcoatRoughnessFactor","clearcoatRoughnessTexture","KHR_materials_iridescence","iridescenceIor","iridescenceThicknessTexture","transmissionTexture","KHR_materials_volume","thicknessFactor","thicknessTexture","THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.","THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead.","THREE.GLTFExporter: Morph target name not found: ",".morphTargetInfluences","insertKeyframe","vn ","exportToGltf","exportToGltfOrGlb","exportToGlb","Invalid input or filename!","addExtention","saveArrayBuffer","EXTENSION_GLTF","exportToObj","EXTENSION_OBJ","saveString","exportToDraco","EXTENSION_DRACO","exportToThreeJsJson","EXTENSION_JSON","saveJson","save","downloadLink","download","click","saveJsonString","text/csv","EXTENSION_GLB",".drc",".json","eventList","clearAllEventListener","prevTime","beginTime","frames","begin","floorNumber","areNumbersEqual","areVector2sEqual","areVector3sEqual","areNumbersClose","areVector2sClose","areVectorsClose","getArcAngleSpanRad","getIntegerPartLength","getRelativeEps","getVector2RelativeEps","current","inNormal","outNormal","outwardsNormal","inwardsNormal","Vertices overlap","offsetEdge","inverseOffset","inverse","Offset requires at least one coodinate to work with","processContour","setArcSegments","arcSegments","ensureLastPoint","setDistance","margin","offsetSegment","createArc","offsetPoint","offsetLines","padding","offsetLine","edges","offsetContour","attributesEqual","bufferAttributeEqual","tryConvertInterleavedBufferAttributes","caculateGeometryCenter","areLineSegmentsIntersecting","getLineSegmentsIntersectingPoint","isPointOnLineSegment","checkAndRebasePositionsOnRTC","shouldRebasePositionOnRTC","calculateSurfaceArea","convertGeometryWithIndexedToNonIndexed","createGeometryAttributeByIndex","getLineEndPointsByIndex","isPointInPolygon","getLineLineIntersectionPoint","convertSimpleWidthLineToMeshGeometry","getOffsetPoint","convertWidthLineToMeshGeometry","getAdjacentNonRepeatPoints","mergeBBoxes","gemini-viewer-icon","keydown","mousemove","mouseup","mousedown","Escape","Enter","axis-section-plane","axis-section-plane-control","section-plane","section-plane-control","section-box","plane-section-boxface","ObjectsBoxSection","PickPlaneSection","AxisPlaneSection","createGroundGrid","DEFAULT_WIDTH","DEFAULT_WIDTH_SEGS","DEFAULT_MAT_PARAMS","GROUND_GRID_NAME","DEFAULT_HEIGHT_SETS","GROUND_GRID","GRASS_GROUND_NAME","GRASS_GROUND","DEFAULT_HEIGHT","materialEquals","materialsEquals","colorEquals","clonedHighlightMaterials","clonedHighlightMaterial","[MaterialUtils] Invalid material: ","u_color","[MaterialUtils] Unsupported Material:","cloneMaterial","setMaterialColor",". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.","THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ",'. All geometries must have compatible attributes; make sure "','" attribute exists among all geometries, or in none of them.',". Make sure all geometries have the same number of attributes.",". .morphTargetsRelative must be consistent throughout all geometries.",". .morphAttributes must be consistent throughout all geometries.",". The geometry must have either an index or a position attribute","THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the "," attribute."," morphAttribute.","THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.","THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.","THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.","log10","text/javascript",'var Mr="146";var oo=0,Pr=1,lo=2;var Va=1,co=2,ui=3,Kn=0,Mt=1,sn=2,rn=0,Zn=1,Lr=2,Rr=3,Ir=4,ho=5,Xn=100,uo=101,fo=102,Dr=103,Nr=104,po=200,mo=201,go=202,xo=203,Ha=204,Wa=205,_o=206,vo=207,yo=208,Mo=209,bo=210,wo=0,So=1,To=2,Ws=3,Ao=4,Eo=5,Co=6,Po=7,Ga=0,Lo=1,Ro=2,Wt=0,Io=1,Do=2,No=3,Fo=4,zo=5,Xa=300,Qn=301,jn=302,Gs=303,Xs=304,ss=306,qs=1e3,At=1001,Ys=1002,ot=1003,Fr=1004;var zr=1005;var yt=1006,Oo=1007;var rs=1008;var Mn=1009,Uo=1010,Bo=1011,qa=1012,ko=1013,gn=1014,xn=1015,xi=1016,Vo=1017,Ho=1018,Jn=1020,Wo=1021,Go=1022,Et=1023,Xo=1024,qo=1025,vn=1026,ei=1027,Yo=1028,Zo=1029,Jo=1030,$o=1031,Ko=1033,fs=33776,ps=33777,ms=33778,gs=33779,Or=35840,Ur=35841,Br=35842,kr=35843,Qo=36196,Vr=37492,Hr=37496,Wr=37808,Gr=37809,Xr=37810,qr=37811,Yr=37812,Zr=37813,Jr=37814,$r=37815,Kr=37816,Qr=37817,jr=37818,ea=37819,ta=37820,na=37821,ia=36492;var Hi=2300,Wi=2301,xs=2302,sa=2400,ra=2401,aa=2402;var bn=3e3,ke=3001,jo=3200,el=3201,tl=0,nl=1;var Vt="srgb",_n="srgb-linear";var _s=7680;var il=519,oa=35044;var la="300 es",Zs=1035,an=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;let n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;let i=this._listeners[e];if(i!==void 0){let s=i.indexOf(t);s!==-1&&i.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;let n=this._listeners[e.type];if(n!==void 0){e.target=this;let i=n.slice(0);for(let s=0,o=i.length;s>8&255]+et[r>>16&255]+et[r>>24&255]+"-"+et[e&255]+et[e>>8&255]+"-"+et[e>>16&15|64]+et[e>>24&255]+"-"+et[t&63|128]+et[t>>8&255]+"-"+et[t>>16&255]+et[t>>24&255]+et[n&255]+et[n>>8&255]+et[n>>16&255]+et[n>>24&255]).toLowerCase()}function lt(r,e,t){return Math.max(e,Math.min(t,r))}function br(r,e){return(r%e+e)%e}function sl(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function rl(r,e,t){return r!==e?(t-r)/(e-r):0}function mi(r,e,t){return(1-t)*r+t*e}function al(r,e,t,n){return mi(r,e,1-Math.exp(-t*n))}function ol(r,e=1){return e-Math.abs(br(r,e*2)-e)}function ll(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function cl(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function hl(r,e){return r+Math.floor(Math.random()*(e-r+1))}function ul(r,e){return r+Math.random()*(e-r)}function dl(r){return r*(.5-Math.random())}function fl(r){r!==void 0&&(ca=r);let e=ca+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function pl(r){return r*pi}function ml(r){return r*Gi}function Js(r){return(r&r-1)===0&&r!==0}function gl(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Xi(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function xl(r,e,t,n,i){let s=Math.cos,o=Math.sin,a=s(t/2),c=o(t/2),l=s((e+n)/2),h=o((e+n)/2),f=s((e-n)/2),d=o((e-n)/2),m=s((n-e)/2),g=o((n-e)/2);switch(i){case"XYX":r.set(a*h,c*f,c*d,a*l);break;case"YZY":r.set(c*d,a*h,c*f,a*l);break;case"ZXZ":r.set(c*f,c*d,a*h,a*l);break;case"XZX":r.set(a*h,c*g,c*m,a*l);break;case"YXY":r.set(c*m,a*h,c*g,a*l);break;case"ZYZ":r.set(c*g,c*m,a*h,a*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function di(r,e){switch(e.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function at(r,e){switch(e.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var Ya=Object.freeze({__proto__:null,DEG2RAD:pi,RAD2DEG:Gi,generateUUID:si,clamp:lt,euclideanModulo:br,mapLinear:sl,inverseLerp:rl,lerp:mi,damp:al,pingpong:ol,smoothstep:ll,smootherstep:cl,randInt:hl,randFloat:ul,randFloatSpread:dl,seededRandom:fl,degToRad:pl,radToDeg:ml,isPowerOfTwo:Js,ceilPowerOfTwo:gl,floorPowerOfTwo:Xi,setQuaternionFromProperEuler:xl,normalize:at,denormalize:di}),De=class{constructor(e=0,t=0){De.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*n-o*i+e.x,this.y=s*i+o*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},ct=class{constructor(){ct.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,n,i,s,o,a,c,l){let h=this.elements;return h[0]=e,h[1]=i,h[2]=a,h[3]=t,h[4]=s,h[5]=c,h[6]=n,h[7]=o,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[3],c=n[6],l=n[1],h=n[4],f=n[7],d=n[2],m=n[5],g=n[8],p=i[0],u=i[3],x=i[6],T=i[1],w=i[4],y=i[7],S=i[2],C=i[5],F=i[8];return s[0]=o*p+a*T+c*S,s[3]=o*u+a*w+c*C,s[6]=o*x+a*y+c*F,s[1]=l*p+h*T+f*S,s[4]=l*u+h*w+f*C,s[7]=l*x+h*y+f*F,s[2]=d*p+m*T+g*S,s[5]=d*u+m*w+g*C,s[8]=d*x+m*y+g*F,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8];return t*o*h-t*a*l-n*s*h+n*a*c+i*s*l-i*o*c}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=h*o-a*l,d=a*c-h*s,m=l*s-o*c,g=t*f+n*d+i*m;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/g;return e[0]=f*p,e[1]=(i*l-h*n)*p,e[2]=(a*n-i*o)*p,e[3]=d*p,e[4]=(h*t-i*c)*p,e[5]=(i*s-a*t)*p,e[6]=m*p,e[7]=(n*c-l*t)*p,e[8]=(o*t-n*s)*p,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,s,o,a){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*o+l*a)+o+e,-i*l,i*c,-i*(-l*o+c*a)+a+t,0,0,1),this}scale(e,t){let n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){let t=Math.cos(e),n=Math.sin(e),i=this.elements,s=i[0],o=i[3],a=i[6],c=i[1],l=i[4],h=i[7];return i[0]=t*s+n*c,i[3]=t*o+n*l,i[6]=t*a+n*h,i[1]=-n*s+t*c,i[4]=-n*o+t*l,i[7]=-n*a+t*h,this}translate(e,t){let n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}};function Za(r){for(let e=r.length-1;e>=0;--e)if(r[e]>=65535)return!0;return!1}function qi(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function yn(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Vi(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var vs={[Vt]:{[_n]:yn},[_n]:{[Vt]:Vi}},bt={legacyMode:!0,get workingColorSpace(){return _n},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,e,t){if(this.legacyMode||e===t||!e||!t)return r;if(vs[e]&&vs[e][t]!==void 0){let n=vs[e][t];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,e){return this.convert(r,this.workingColorSpace,e)},toWorkingColorSpace:function(r,e){return this.convert(r,e,this.workingColorSpace)}},Ja={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},We={r:0,g:0,b:0},wt={h:0,s:0,l:0},Mi={h:0,s:0,l:0};function ys(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}function bi(r,e){return e.r=r.r,e.g=r.g,e.b=r.b,e}var ze=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,t===void 0&&n===void 0?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):typeof e=="number"?this.setHex(e):typeof e=="string"&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Vt){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,bt.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=_n){return this.r=e,this.g=t,this.b=n,bt.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=_n){if(e=br(e,1),t=lt(t,0,1),n=lt(n,0,1),t===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+t):n+t-n*t,o=2*n-s;this.r=ys(o,s,e+1/3),this.g=ys(o,s,e),this.b=ys(o,s,e-1/3)}return bt.toWorkingColorSpace(this,i),this}setStyle(e,t=Vt){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(e)){let s,o=i[1],a=i[2];switch(o){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,bt.toWorkingColorSpace(this,t),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,bt.toWorkingColorSpace(this,t),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,t)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(e)){let s=i[1],o=s.length;if(o===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,bt.toWorkingColorSpace(this,t),this;if(o===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,bt.toWorkingColorSpace(this,t),this}return e&&e.length>0?this.setColorName(e,t):this}setColorName(e,t=Vt){let n=Ja[e.toLowerCase()];return n!==void 0?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=yn(e.r),this.g=yn(e.g),this.b=yn(e.b),this}copyLinearToSRGB(e){return this.r=Vi(e.r),this.g=Vi(e.g),this.b=Vi(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Vt){return bt.fromWorkingColorSpace(bi(this,We),e),lt(We.r*255,0,255)<<16^lt(We.g*255,0,255)<<8^lt(We.b*255,0,255)<<0}getHexString(e=Vt){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=_n){bt.fromWorkingColorSpace(bi(this,We),t);let n=We.r,i=We.g,s=We.b,o=Math.max(n,i,s),a=Math.min(n,i,s),c,l,h=(a+o)/2;if(a===o)c=0,l=0;else{let f=o-a;switch(l=h<=.5?f/(o+a):f/(2-o-a),o){case n:c=(i-s)/f+(i2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap){let t=qi("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),s=i.data;for(let o=0;o1)switch(this.wrapS){case qs:e.x=e.x-Math.floor(e.x);break;case At:e.x=e.x<0?0:1;break;case Ys:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case qs:e.y=e.y-Math.floor(e.y);break;case At:e.y=e.y<0?0:1;break;case Ys:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}};gt.DEFAULT_IMAGE=null;gt.DEFAULT_MAPPING=Xa;var Ge=class{constructor(e=0,t=0,n=0,i=1){Ge.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*t+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*t+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*t+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,s,c=e.elements,l=c[0],h=c[4],f=c[8],d=c[1],m=c[5],g=c[9],p=c[2],u=c[6],x=c[10];if(Math.abs(h-d)<.01&&Math.abs(f-p)<.01&&Math.abs(g-u)<.01){if(Math.abs(h+d)<.1&&Math.abs(f+p)<.1&&Math.abs(g+u)<.1&&Math.abs(l+m+x-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let w=(l+1)/2,y=(m+1)/2,S=(x+1)/2,C=(h+d)/4,F=(f+p)/4,v=(g+u)/4;return w>y&&w>S?w<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(w),i=C/n,s=F/n):y>S?y<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(y),n=C/i,s=v/i):S<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(S),n=F/s,i=v/s),this.set(n,i,s,t),this}let T=Math.sqrt((u-g)*(u-g)+(f-p)*(f-p)+(d-h)*(d-h));return Math.abs(T)<.001&&(T=1),this.x=(u-g)/T,this.y=(f-p)/T,this.z=(d-h)/T,this.w=Math.acos((l+m+x-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},Xt=class extends an{constructor(e=1,t=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new Ge(0,0,e,t),this.scissorTest=!1,this.viewport=new Ge(0,0,e,t);let i={width:e,height:t,depth:1};this.texture=new gt(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:yt,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(e,t,n=1){(this.width!==e||this.height!==t||this.depth!==n)&&(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new Zi(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Ji=class extends gt{constructor(e=null,t=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:n,depth:i},this.magFilter=ot,this.minFilter=ot,this.wrapR=At,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var $s=class extends gt{constructor(e=null,t=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:n,depth:i},this.magFilter=ot,this.minFilter=ot,this.wrapR=At,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var on=class{constructor(e=0,t=0,n=0,i=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=i}static slerpFlat(e,t,n,i,s,o,a){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],d=s[o+0],m=s[o+1],g=s[o+2],p=s[o+3];if(a===0){e[t+0]=c,e[t+1]=l,e[t+2]=h,e[t+3]=f;return}if(a===1){e[t+0]=d,e[t+1]=m,e[t+2]=g,e[t+3]=p;return}if(f!==p||c!==d||l!==m||h!==g){let u=1-a,x=c*d+l*m+h*g+f*p,T=x>=0?1:-1,w=1-x*x;if(w>Number.EPSILON){let S=Math.sqrt(w),C=Math.atan2(S,x*T);u=Math.sin(u*C)/S,a=Math.sin(a*C)/S}let y=a*T;if(c=c*u+d*y,l=l*u+m*y,h=h*u+g*y,f=f*u+p*y,u===1-a){let S=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=S,l*=S,h*=S,f*=S}}e[t]=c,e[t+1]=l,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,n,i,s,o){let a=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[o],d=s[o+1],m=s[o+2],g=s[o+3];return e[t]=a*g+h*f+c*m-l*d,e[t+1]=c*g+h*d+l*f-a*m,e[t+2]=l*g+h*m+a*d-c*f,e[t+3]=h*g-a*f-c*d-l*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let n=e._x,i=e._y,s=e._z,o=e._order,a=Math.cos,c=Math.sin,l=a(n/2),h=a(i/2),f=a(s/2),d=c(n/2),m=c(i/2),g=c(s/2);switch(o){case"XYZ":this._x=d*h*f+l*m*g,this._y=l*m*f-d*h*g,this._z=l*h*g+d*m*f,this._w=l*h*f-d*m*g;break;case"YXZ":this._x=d*h*f+l*m*g,this._y=l*m*f-d*h*g,this._z=l*h*g-d*m*f,this._w=l*h*f+d*m*g;break;case"ZXY":this._x=d*h*f-l*m*g,this._y=l*m*f+d*h*g,this._z=l*h*g+d*m*f,this._w=l*h*f-d*m*g;break;case"ZYX":this._x=d*h*f-l*m*g,this._y=l*m*f+d*h*g,this._z=l*h*g-d*m*f,this._w=l*h*f+d*m*g;break;case"YZX":this._x=d*h*f+l*m*g,this._y=l*m*f+d*h*g,this._z=l*h*g-d*m*f,this._w=l*h*f-d*m*g;break;case"XZY":this._x=d*h*f-l*m*g,this._y=l*m*f-d*h*g,this._z=l*h*g+d*m*f,this._w=l*h*f+d*m*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],s=t[8],o=t[1],a=t[5],c=t[9],l=t[2],h=t[6],f=t[10],d=n+a+f;if(d>0){let m=.5/Math.sqrt(d+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(o-i)*m}else if(n>a&&n>f){let m=2*Math.sqrt(1+n-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+o)/m,this._z=(s+l)/m}else if(a>f){let m=2*Math.sqrt(1+a-n-f);this._w=(s-l)/m,this._x=(i+o)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-a);this._w=(o-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(lt(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,s=e._z,o=e._w,a=t._x,c=t._y,l=t._z,h=t._w;return this._x=n*h+o*a+i*l-s*c,this._y=i*h+o*c+s*a-n*l,this._z=s*h+o*l+n*c-i*a,this._w=o*h-n*a-i*c-s*l,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let n=this._x,i=this._y,s=this._z,o=this._w,a=o*e._w+n*e._x+i*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=i,this._z=s,this;let c=1-a*a;if(c<=Number.EPSILON){let m=1-t;return this._w=m*o+t*this._w,this._x=m*n+t*this._x,this._y=m*i+t*this._y,this._z=m*s+t*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,a),f=Math.sin((1-t)*h)/l,d=Math.sin(t*h)/l;return this._w=o*f+this._w*d,this._x=n*f+this._x*d,this._y=i*f+this._y*d,this._z=s*f+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(t*Math.cos(i),n*Math.sin(s),n*Math.cos(s),t*Math.sin(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},L=class{constructor(e=0,t=0,n=0){L.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(ha.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(ha.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6]*i,this.y=s[1]*t+s[4]*n+s[7]*i,this.z=s[2]*t+s[5]*n+s[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=e.elements,o=1/(s[3]*t+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*t+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*t+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*t+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,s=e.x,o=e.y,a=e.z,c=e.w,l=c*t+o*i-a*n,h=c*n+a*t-s*i,f=c*i+s*n-o*t,d=-s*t-o*n-a*i;return this.x=l*c+d*-s+h*-a-f*-o,this.y=h*c+d*-o+f*-s-l*-a,this.z=f*c+d*-a+l*-o-h*-s,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*i,this.y=s[1]*t+s[5]*n+s[9]*i,this.z=s[2]*t+s[6]*n+s[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,s=e.z,o=t.x,a=t.y,c=t.z;return this.x=i*c-s*a,this.y=s*o-n*c,this.z=n*a-i*o,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return bs.copy(this).projectOnVector(e),this.sub(bs)}reflect(e){return this.sub(bs.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(lt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,n=Math.sqrt(1-e**2);return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},bs=new L,ha=new on,wn=class{constructor(e=new L(1/0,1/0,1/0),t=new L(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=e.length;cs&&(s=h),f>o&&(o=f),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(s,o,a),this}setFromBufferAttribute(e){let t=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=e.count;cs&&(s=h),f>o&&(o=f),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(s,o,a),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,un),un.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(oi),wi.subVectors(this.max,oi),In.subVectors(e.a,oi),Dn.subVectors(e.b,oi),Nn.subVectors(e.c,oi),Jt.subVectors(Dn,In),$t.subVectors(Nn,Dn),dn.subVectors(In,Nn);let t=[0,-Jt.z,Jt.y,0,-$t.z,$t.y,0,-dn.z,dn.y,Jt.z,0,-Jt.x,$t.z,0,-$t.x,dn.z,0,-dn.x,-Jt.y,Jt.x,0,-$t.y,$t.x,0,-dn.y,dn.x,0];return!Ss(t,In,Dn,Nn,wi)||(t=[1,0,0,0,1,0,0,0,1],!Ss(t,In,Dn,Nn,wi))?!1:(Si.crossVectors(Jt,$t),t=[Si.x,Si.y,Si.z],Ss(t,In,Dn,Nn,wi))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return un.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=this.getSize(un).length()*.5,e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(zt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),zt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),zt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),zt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),zt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),zt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),zt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),zt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(zt),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},zt=[new L,new L,new L,new L,new L,new L,new L,new L],un=new L,ws=new wn,In=new L,Dn=new L,Nn=new L,Jt=new L,$t=new L,dn=new L,oi=new L,wi=new L,Si=new L,fn=new L;function Ss(r,e,t,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){fn.fromArray(r,s);let a=i.x*Math.abs(fn.x)+i.y*Math.abs(fn.y)+i.z*Math.abs(fn.z),c=e.dot(fn),l=t.dot(fn),h=n.dot(fn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>a)return!1}return!0}var vl=new wn,li=new L,Ts=new L,_i=class{constructor(e=new L,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;t!==void 0?n.copy(t):vl.setFromPoints(e).getCenter(n);let i=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;li.subVectors(e,this.center);let t=li.lengthSq();if(t>this.radius*this.radius){let n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.addScaledVector(li,i/n),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Ts.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(li.copy(e.center).add(Ts)),this.expandByPoint(li.copy(e.center).sub(Ts))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}},Ot=new L,As=new L,Ti=new L,Kt=new L,Es=new L,Ai=new L,Cs=new L,Ks=class{constructor(e=new L,t=new L(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ot)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Ot.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ot.copy(this.direction).multiplyScalar(t).add(this.origin),Ot.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){As.copy(e).add(t).multiplyScalar(.5),Ti.copy(t).sub(e).normalize(),Kt.copy(this.origin).sub(As);let s=e.distanceTo(t)*.5,o=-this.direction.dot(Ti),a=Kt.dot(this.direction),c=-Kt.dot(Ti),l=Kt.lengthSq(),h=Math.abs(1-o*o),f,d,m,g;if(h>0)if(f=o*c-a,d=o*a-c,g=s*h,f>=0)if(d>=-g)if(d<=g){let p=1/h;f*=p,d*=p,m=f*(f+o*d+2*a)+d*(o*f+d+2*c)+l}else d=s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+l;else d=-s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+l;else d<=-g?(f=Math.max(0,-(-o*s+a)),d=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+l):d<=g?(f=0,d=Math.min(Math.max(-s,-c),s),m=d*(d+2*c)+l):(f=Math.max(0,-(o*s+a)),d=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+d*(d+2*c)+l);else d=o>0?-s:s,f=Math.max(0,-(o*d+a)),m=-f*f+d*(d+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(Ti).multiplyScalar(d).add(As),m}intersectSphere(e,t){Ot.subVectors(e.center,this.origin);let n=Ot.dot(this.direction),i=Ot.dot(Ot)-n*n,s=e.radius*e.radius;if(i>s)return null;let o=Math.sqrt(s-i),a=n-o,c=n+o;return a<0&&c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,s,o,a,c,l=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,i=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,i=(e.min.x-d.x)*l),h>=0?(s=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(s=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),n>o||s>i||((s>n||isNaN(n))&&(n=s),(o=0?(a=(e.min.z-d.z)*f,c=(e.max.z-d.z)*f):(a=(e.max.z-d.z)*f,c=(e.min.z-d.z)*f),n>c||a>i)||((a>n||n!==n)&&(n=a),(c=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Ot)!==null}intersectTriangle(e,t,n,i,s){Es.subVectors(t,e),Ai.subVectors(n,e),Cs.crossVectors(Es,Ai);let o=this.direction.dot(Cs),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Kt.subVectors(this.origin,e);let c=a*this.direction.dot(Ai.crossVectors(Kt,Ai));if(c<0)return null;let l=a*this.direction.dot(Es.cross(Kt));if(l<0||c+l>o)return null;let h=-a*Kt.dot(Cs);return h<0?null:this.at(h/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Xe=class{constructor(){Xe.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,n,i,s,o,a,c,l,h,f,d,m,g,p,u){let x=this.elements;return x[0]=e,x[4]=t,x[8]=n,x[12]=i,x[1]=s,x[5]=o,x[9]=a,x[13]=c,x[2]=l,x[6]=h,x[10]=f,x[14]=d,x[3]=m,x[7]=g,x[11]=p,x[15]=u,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Xe().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/Fn.setFromMatrixColumn(e,0).length(),s=1/Fn.setFromMatrixColumn(e,1).length(),o=1/Fn.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*s,t[5]=n[5]*s,t[6]=n[6]*s,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,s=e.z,o=Math.cos(n),a=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(e.order==="XYZ"){let d=o*h,m=o*f,g=a*h,p=a*f;t[0]=c*h,t[4]=-c*f,t[8]=l,t[1]=m+g*l,t[5]=d-p*l,t[9]=-a*c,t[2]=p-d*l,t[6]=g+m*l,t[10]=o*c}else if(e.order==="YXZ"){let d=c*h,m=c*f,g=l*h,p=l*f;t[0]=d+p*a,t[4]=g*a-m,t[8]=o*l,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=m*a-g,t[6]=p+d*a,t[10]=o*c}else if(e.order==="ZXY"){let d=c*h,m=c*f,g=l*h,p=l*f;t[0]=d-p*a,t[4]=-o*f,t[8]=g+m*a,t[1]=m+g*a,t[5]=o*h,t[9]=p-d*a,t[2]=-o*l,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){let d=o*h,m=o*f,g=a*h,p=a*f;t[0]=c*h,t[4]=g*l-m,t[8]=d*l+p,t[1]=c*f,t[5]=p*l+d,t[9]=m*l-g,t[2]=-l,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){let d=o*c,m=o*l,g=a*c,p=a*l;t[0]=c*h,t[4]=p-d*f,t[8]=g*f+m,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-l*h,t[6]=m*f+g,t[10]=d-p*f}else if(e.order==="XZY"){let d=o*c,m=o*l,g=a*c,p=a*l;t[0]=c*h,t[4]=-f,t[8]=l*h,t[1]=d*f+p,t[5]=o*h,t[9]=m*f-g,t[2]=g*f-m,t[6]=a*h,t[10]=p*f+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(yl,e,Ml)}lookAt(e,t,n){let i=this.elements;return dt.subVectors(e,t),dt.lengthSq()===0&&(dt.z=1),dt.normalize(),Qt.crossVectors(n,dt),Qt.lengthSq()===0&&(Math.abs(n.z)===1?dt.x+=1e-4:dt.z+=1e-4,dt.normalize(),Qt.crossVectors(n,dt)),Qt.normalize(),Ei.crossVectors(dt,Qt),i[0]=Qt.x,i[4]=Ei.x,i[8]=dt.x,i[1]=Qt.y,i[5]=Ei.y,i[9]=dt.y,i[2]=Qt.z,i[6]=Ei.z,i[10]=dt.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[4],c=n[8],l=n[12],h=n[1],f=n[5],d=n[9],m=n[13],g=n[2],p=n[6],u=n[10],x=n[14],T=n[3],w=n[7],y=n[11],S=n[15],C=i[0],F=i[4],v=i[8],A=i[12],D=i[1],Z=i[5],ee=i[9],k=i[13],N=i[2],W=i[6],q=i[10],K=i[14],G=i[3],R=i[7],z=i[11],te=i[15];return s[0]=o*C+a*D+c*N+l*G,s[4]=o*F+a*Z+c*W+l*R,s[8]=o*v+a*ee+c*q+l*z,s[12]=o*A+a*k+c*K+l*te,s[1]=h*C+f*D+d*N+m*G,s[5]=h*F+f*Z+d*W+m*R,s[9]=h*v+f*ee+d*q+m*z,s[13]=h*A+f*k+d*K+m*te,s[2]=g*C+p*D+u*N+x*G,s[6]=g*F+p*Z+u*W+x*R,s[10]=g*v+p*ee+u*q+x*z,s[14]=g*A+p*k+u*K+x*te,s[3]=T*C+w*D+y*N+S*G,s[7]=T*F+w*Z+y*W+S*R,s[11]=T*v+w*ee+y*q+S*z,s[15]=T*A+w*k+y*K+S*te,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],s=e[12],o=e[1],a=e[5],c=e[9],l=e[13],h=e[2],f=e[6],d=e[10],m=e[14],g=e[3],p=e[7],u=e[11],x=e[15];return g*(+s*c*f-i*l*f-s*a*d+n*l*d+i*a*m-n*c*m)+p*(+t*c*m-t*l*d+s*o*d-i*o*m+i*l*h-s*c*h)+u*(+t*l*f-t*a*m-s*o*f+n*o*m+s*a*h-n*l*h)+x*(-i*a*h-t*c*f+t*a*d+i*o*f-n*o*d+n*c*h)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],d=e[10],m=e[11],g=e[12],p=e[13],u=e[14],x=e[15],T=f*u*l-p*d*l+p*c*m-a*u*m-f*c*x+a*d*x,w=g*d*l-h*u*l-g*c*m+o*u*m+h*c*x-o*d*x,y=h*p*l-g*f*l+g*a*m-o*p*m-h*a*x+o*f*x,S=g*f*c-h*p*c-g*a*d+o*p*d+h*a*u-o*f*u,C=t*T+n*w+i*y+s*S;if(C===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let F=1/C;return e[0]=T*F,e[1]=(p*d*s-f*u*s-p*i*m+n*u*m+f*i*x-n*d*x)*F,e[2]=(a*u*s-p*c*s+p*i*l-n*u*l-a*i*x+n*c*x)*F,e[3]=(f*c*s-a*d*s-f*i*l+n*d*l+a*i*m-n*c*m)*F,e[4]=w*F,e[5]=(h*u*s-g*d*s+g*i*m-t*u*m-h*i*x+t*d*x)*F,e[6]=(g*c*s-o*u*s-g*i*l+t*u*l+o*i*x-t*c*x)*F,e[7]=(o*d*s-h*c*s+h*i*l-t*d*l-o*i*m+t*c*m)*F,e[8]=y*F,e[9]=(g*f*s-h*p*s-g*n*m+t*p*m+h*n*x-t*f*x)*F,e[10]=(o*p*s-g*a*s+g*n*l-t*p*l-o*n*x+t*a*x)*F,e[11]=(h*a*s-o*f*s-h*n*l+t*f*l+o*n*m-t*a*m)*F,e[12]=S*F,e[13]=(h*p*i-g*f*i+g*n*d-t*p*d-h*n*u+t*f*u)*F,e[14]=(g*a*i-o*p*i-g*n*c+t*p*c+o*n*u-t*a*u)*F,e[15]=(o*f*i-h*a*i+h*n*c-t*f*c-o*n*d+t*a*d)*F,this}scale(e){let t=this.elements,n=e.x,i=e.y,s=e.z;return t[0]*=n,t[4]*=i,t[8]*=s,t[1]*=n,t[5]*=i,t[9]*=s,t[2]*=n,t[6]*=i,t[10]*=s,t[3]*=n,t[7]*=i,t[11]*=s,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),s=1-n,o=e.x,a=e.y,c=e.z,l=s*o,h=s*a;return this.set(l*o+n,l*a-i*c,l*c+i*a,0,l*a+i*c,h*a+n,h*c-i*o,0,l*c-i*a,h*c+i*o,s*c*c+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,s,o){return this.set(1,n,s,0,e,1,o,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,s=t._x,o=t._y,a=t._z,c=t._w,l=s+s,h=o+o,f=a+a,d=s*l,m=s*h,g=s*f,p=o*h,u=o*f,x=a*f,T=c*l,w=c*h,y=c*f,S=n.x,C=n.y,F=n.z;return i[0]=(1-(p+x))*S,i[1]=(m+y)*S,i[2]=(g-w)*S,i[3]=0,i[4]=(m-y)*C,i[5]=(1-(d+x))*C,i[6]=(u+T)*C,i[7]=0,i[8]=(g+w)*F,i[9]=(u-T)*F,i[10]=(1-(d+p))*F,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,s=Fn.set(i[0],i[1],i[2]).length(),o=Fn.set(i[4],i[5],i[6]).length(),a=Fn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),e.x=i[12],e.y=i[13],e.z=i[14],St.copy(this);let l=1/s,h=1/o,f=1/a;return St.elements[0]*=l,St.elements[1]*=l,St.elements[2]*=l,St.elements[4]*=h,St.elements[5]*=h,St.elements[6]*=h,St.elements[8]*=f,St.elements[9]*=f,St.elements[10]*=f,t.setFromRotationMatrix(St),n.x=s,n.y=o,n.z=a,this}makePerspective(e,t,n,i,s,o){let a=this.elements,c=2*s/(t-e),l=2*s/(n-i),h=(t+e)/(t-e),f=(n+i)/(n-i),d=-(o+s)/(o-s),m=-2*o*s/(o-s);return a[0]=c,a[4]=0,a[8]=h,a[12]=0,a[1]=0,a[5]=l,a[9]=f,a[13]=0,a[2]=0,a[6]=0,a[10]=d,a[14]=m,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,n,i,s,o){let a=this.elements,c=1/(t-e),l=1/(n-i),h=1/(o-s),f=(t+e)*c,d=(n+i)*l,m=(o+s)*h;return a[0]=2*c,a[4]=0,a[8]=0,a[12]=-f,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-d,a[2]=0,a[6]=0,a[10]=-2*h,a[14]=-m,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}},Fn=new L,St=new Xe,yl=new L(0,0,0),Ml=new L(1,1,1),Qt=new L,Ei=new L,dt=new L,ua=new Xe,da=new on,Sn=class{constructor(e=0,t=0,n=0,i=Sn.DefaultOrder){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,s=i[0],o=i[4],a=i[8],c=i[1],l=i[5],h=i[9],f=i[2],d=i[6],m=i[10];switch(t){case"XYZ":this._y=Math.asin(lt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-lt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(lt(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-lt(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(d,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(lt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-lt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return ua.makeRotationFromQuaternion(e),this.setFromRotationMatrix(ua,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return da.setFromEuler(this),this.setFromQuaternion(da,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}};Sn.DefaultOrder="XYZ";Sn.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];var $i=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let n=0;n0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),d.length>0&&(n.skeletons=d),m.length>0&&(n.animations=m),g.length>0&&(n.nodes=g)}return n.object=i,n;function o(a){let c=[];for(let l in a){let h=a[l];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(e,t,n,i,s){Tt.subVectors(i,t),Bt.subVectors(n,t),Ps.subVectors(e,t);let o=Tt.dot(Tt),a=Tt.dot(Bt),c=Tt.dot(Ps),l=Bt.dot(Bt),h=Bt.dot(Ps),f=o*l-a*a;if(f===0)return s.set(-2,-1,-1);let d=1/f,m=(l*c-a*h)*d,g=(o*h-a*c)*d;return s.set(1-m-g,g,m)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,kt),kt.x>=0&&kt.y>=0&&kt.x+kt.y<=1}static getUV(e,t,n,i,s,o,a,c){return this.getBarycoord(e,t,n,i,kt),c.set(0,0),c.addScaledVector(s,kt.x),c.addScaledVector(o,kt.y),c.addScaledVector(a,kt.z),c}static isFrontFacing(e,t,n,i){return Tt.subVectors(n,t),Bt.subVectors(e,t),Tt.cross(Bt).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Tt.subVectors(this.c,this.b),Bt.subVectors(this.a,this.b),Tt.cross(Bt).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return mt.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return mt.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,s){return mt.getUV(e,this.a,this.b,this.c,t,n,i,s)}containsPoint(e){return mt.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return mt.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,i=this.b,s=this.c,o,a;On.subVectors(i,n),Un.subVectors(s,n),Ls.subVectors(e,n);let c=On.dot(Ls),l=Un.dot(Ls);if(c<=0&&l<=0)return t.copy(n);Rs.subVectors(e,i);let h=On.dot(Rs),f=Un.dot(Rs);if(h>=0&&f<=h)return t.copy(i);let d=c*f-h*l;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(n).addScaledVector(On,o);Is.subVectors(e,s);let m=On.dot(Is),g=Un.dot(Is);if(g>=0&&m<=g)return t.copy(s);let p=m*l-c*g;if(p<=0&&l>=0&&g<=0)return a=l/(l-g),t.copy(n).addScaledVector(Un,a);let u=h*g-m*f;if(u<=0&&f-h>=0&&m-g>=0)return _a.subVectors(s,i),a=(f-h)/(f-h+(m-g)),t.copy(i).addScaledVector(_a,a);let x=1/(u+p+d);return o=p*x,a=d*x,t.copy(n).addScaledVector(On,o).addScaledVector(Un,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},Al=0,ti=class extends an{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Al++}),this.uuid=si(),this.name="",this.type="Material",this.blending=Zn,this.side=Kn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Ha,this.blendDst=Wa,this.blendEquation=Xn,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Ws,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=il,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=_s,this.stencilZFail=_s,this.stencilZPass=_s,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){console.warn("THREE.Material: \'"+t+"\' parameter is undefined.");continue}let i=this[t];if(i===void 0){console.warn("THREE."+this.type+": \'"+t+"\' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Zn&&(n.blending=this.blending),this.side!==Kn&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(s){let o=[];for(let a in s){let c=s[a];delete c.metadata,o.push(c)}return o}if(t){let s=i(e.textures),o=i(e.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(t!==null){let i=t.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=t[s].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},Ki=class extends ti{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ze(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ga,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},He=new L,Pi=new De,st=class{constructor(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n===!0,this.usage=oa,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,s=this.itemSize;i0&&(e.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(e[l]=c[l]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let c in n){let l=n[c];e.data.attributes[c]=l.toJSON(e.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,d=l.length;f0&&(i[c]=h,s=!0)}s&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone(t));let i=e.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(t))}let s=e.morphAttributes;for(let l in s){let h=[],f=s[l];for(let d=0,m=f.length;d0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;st.far?null:{distance:l,point:zi.clone(),object:r}}function Oi(r,e,t,n,i,s,o,a,c,l,h,f){jt.fromBufferAttribute(i,l),en.fromBufferAttribute(i,h),tn.fromBufferAttribute(i,f);let d=r.morphTargetInfluences;if(s&&d){Li.set(0,0,0),Ri.set(0,0,0),Ii.set(0,0,0);for(let g=0,p=s.length;g0?1:-1,h.push(R.x,R.y,R.z),f.push(Y/F),f.push(1-z/v),K+=1}}for(let z=0;z0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}},es=class extends ht{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Xe,this.projectionMatrix=new Xe,this.projectionMatrixInverse=new Xe}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},pt=class extends es{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=Gi*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(pi*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Gi*2*Math.atan(Math.tan(pi*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(pi*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,s=-.5*i,o=this.view;if(this.view!==null&&this.view.enabled){let c=o.fullWidth,l=o.fullHeight;s+=o.offsetX*i/c,t-=o.offsetY*n/l,i*=o.width/c,n*=o.height/l}let a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},Vn=90,Hn=1,Qs=class extends ht{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new pt(Vn,Hn,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new L(1,0,0)),this.add(i);let s=new pt(Vn,Hn,e,t);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new L(-1,0,0)),this.add(s);let o=new pt(Vn,Hn,e,t);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new L(0,1,0)),this.add(o);let a=new pt(Vn,Hn,e,t);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new L(0,-1,0)),this.add(a);let c=new pt(Vn,Hn,e,t);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new L(0,0,1)),this.add(c);let l=new pt(Vn,Hn,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new L(0,0,-1)),this.add(l)}update(e,t){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,o,a,c,l]=this.children,h=e.getRenderTarget(),f=e.toneMapping,d=e.xr.enabled;e.toneMapping=Wt,e.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,s),e.setRenderTarget(n,2),e.render(t,o),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,c),n.texture.generateMipmaps=m,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(h),e.toneMapping=f,e.xr.enabled=d,n.texture.needsPMREMUpdate=!0}},ts=class extends gt{constructor(e,t,n,i,s,o,a,c,l,h){e=e!==void 0?e:[],t=t!==void 0?t:Qn,super(e,t,n,i,s,o,a,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},js=class extends Xt{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let n={width:e,height:e,depth:1},i=[n,n,n,n,n,n];this.texture=new ts(i,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:yt}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`},i=new Tn(5,5,5),s=new Yt({name:"CubemapFromEquirect",uniforms:ni(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Mt,blending:rn});s.uniforms.tEquirect.value=t;let o=new It(i,s),a=t.minFilter;return t.minFilter===rs&&(t.minFilter=yt),new Qs(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,i){let s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,i);e.setRenderTarget(s)}},Bs=new L,Dl=new L,Nl=new ct,Ht=class{constructor(e=new L(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let i=Bs.subVectors(n,t).cross(Dl.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){let n=e.delta(Bs),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let s=-(e.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:t.copy(n).multiplyScalar(s).add(e.start)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||Nl.getNormalMatrix(e),i=this.coplanarPoint(Bs).applyMatrix4(e),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}},Wn=new _i,Ui=new L,ns=class{constructor(e=new Ht,t=new Ht,n=new Ht,i=new Ht,s=new Ht,o=new Ht){this.planes=[e,t,n,i,s,o]}set(e,t,n,i,s,o){let a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){let t=this.planes,n=e.elements,i=n[0],s=n[1],o=n[2],a=n[3],c=n[4],l=n[5],h=n[6],f=n[7],d=n[8],m=n[9],g=n[10],p=n[11],u=n[12],x=n[13],T=n[14],w=n[15];return t[0].setComponents(a-i,f-c,p-d,w-u).normalize(),t[1].setComponents(a+i,f+c,p+d,w+u).normalize(),t[2].setComponents(a+s,f+l,p+m,w+x).normalize(),t[3].setComponents(a-s,f-l,p-m,w-x).normalize(),t[4].setComponents(a-o,f-h,p-g,w-T).normalize(),t[5].setComponents(a+o,f+h,p+g,w+T).normalize(),this}intersectsObject(e){let t=e.geometry;return t.boundingSphere===null&&t.computeBoundingSphere(),Wn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(Wn)}intersectsSprite(e){return Wn.center.set(0,0,0),Wn.radius=.7071067811865476,Wn.applyMatrix4(e.matrixWorld),this.intersectsSphere(Wn)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(n)0?e.max.x:e.min.x,Ui.y=i.normal.y>0?e.max.y:e.min.y,Ui.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(Ui)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function $a(){let r=null,e=!1,t=null,n=null;function i(s,o){t(s,o),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){r=s}}}function Fl(r,e){let t=e.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,d=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,d),l.onUploadCallback();let g;if(f instanceof Float32Array)g=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(t)g=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else g=5123;else if(f instanceof Int16Array)g=5122;else if(f instanceof Uint32Array)g=5125;else if(f instanceof Int32Array)g=5124;else if(f instanceof Int8Array)g=5120;else if(f instanceof Uint8Array)g=5121;else if(f instanceof Uint8ClampedArray)g=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:g,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let d=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,d):(t?r.bufferSubData(f,m.offset*d.BYTES_PER_ELEMENT,d,m.offset,m.count):r.bufferSubData(f,m.offset*d.BYTES_PER_ELEMENT,d.subarray(m.offset,m.offset+m.count)),m.count=-1)}function o(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function a(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let d=n.get(l);(!d||d.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif`,Xl=`#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\t return vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif`,ql=`#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif`,Yl=`#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,Zl=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,Jl=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,$l=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,Kl=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,Ql=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,jl=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,ec=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif`,tc=`#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}`,nc=`#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif`,ic=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,sc=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,rc=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif`,ac=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,oc=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,lc="gl_FragColor = linearToOutputTexel( gl_FragColor );",cc=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}`,hc=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif`,uc=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif`,dc=`#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif`,fc=`#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif`,pc=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif`,mc=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,gc=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,xc=`#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif`,_c=`#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif`,vc=`#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}`,yc=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,Mc=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,bc=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,wc=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert\n#define Material_LightProbeLOD( material )\t(0)`,Sc=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif`,Tc=`#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif`,Ac=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,Ec=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)`,Cc=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,Pc=`varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)`,Lc=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif`,Rc=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}`,Ic=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif`,Dc=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,Nc=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Fc=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,zc=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Oc=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,Uc=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,Bc=`#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif`,kc=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Vc=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif`,Hc=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Wc=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,Gc=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Xc=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif`,qc=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,Yc=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,Zc=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif`,Jc=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,$c=`#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,Kc=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,Qc=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,jc=`#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif`,eh=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif`,th=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,nh=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif`,ih=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif`,sh=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,rh=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,ah=`vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}`,oh=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,lh=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,ch=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,hh=`#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif`,uh=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,dh=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,fh=`#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,ph=`#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif`,mh=`#if defined( USE_SHADOWMAP ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_COORDS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif`,gh=`float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}`,xh=`#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif`,_h=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,vh=`#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif`,yh=`#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif`,Mh=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,bh=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,wh=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,Sh=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,Th=`#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif`,Ah=`#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif`,Eh=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif`,Ch=`#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif`,Ph=`#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif`,Lh=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif`,Rh=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif`,Ih=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif`,Dh=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,Nh=`varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}`,Fh=`uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\n\t#endif\n\t#include \n\t#include \n}`,zh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Oh=`#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,Uh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Bh=`uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}`,kh=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Vh=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}`,Hh=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Wh=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,Gh=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Xh=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,qh=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Yh=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Zh=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Jh=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,$h=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,Kh=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,Qh=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,jh=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,eu=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,tu=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,nu=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,iu=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,su=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,ru=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,au=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,ou=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,lu=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}`,cu=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,hu=`#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,uu=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,du=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}`,fu=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,be={alphamap_fragment:zl,alphamap_pars_fragment:Ol,alphatest_fragment:Ul,alphatest_pars_fragment:Bl,aomap_fragment:kl,aomap_pars_fragment:Vl,begin_vertex:Hl,beginnormal_vertex:Wl,bsdfs:Gl,iridescence_fragment:Xl,bumpmap_pars_fragment:ql,clipping_planes_fragment:Yl,clipping_planes_pars_fragment:Zl,clipping_planes_pars_vertex:Jl,clipping_planes_vertex:$l,color_fragment:Kl,color_pars_fragment:Ql,color_pars_vertex:jl,color_vertex:ec,common:tc,cube_uv_reflection_fragment:nc,defaultnormal_vertex:ic,displacementmap_pars_vertex:sc,displacementmap_vertex:rc,emissivemap_fragment:ac,emissivemap_pars_fragment:oc,encodings_fragment:lc,encodings_pars_fragment:cc,envmap_fragment:hc,envmap_common_pars_fragment:uc,envmap_pars_fragment:dc,envmap_pars_vertex:fc,envmap_physical_pars_fragment:Tc,envmap_vertex:pc,fog_vertex:mc,fog_pars_vertex:gc,fog_fragment:xc,fog_pars_fragment:_c,gradientmap_pars_fragment:vc,lightmap_fragment:yc,lightmap_pars_fragment:Mc,lights_lambert_fragment:bc,lights_lambert_pars_fragment:wc,lights_pars_begin:Sc,lights_toon_fragment:Ac,lights_toon_pars_fragment:Ec,lights_phong_fragment:Cc,lights_phong_pars_fragment:Pc,lights_physical_fragment:Lc,lights_physical_pars_fragment:Rc,lights_fragment_begin:Ic,lights_fragment_maps:Dc,lights_fragment_end:Nc,logdepthbuf_fragment:Fc,logdepthbuf_pars_fragment:zc,logdepthbuf_pars_vertex:Oc,logdepthbuf_vertex:Uc,map_fragment:Bc,map_pars_fragment:kc,map_particle_fragment:Vc,map_particle_pars_fragment:Hc,metalnessmap_fragment:Wc,metalnessmap_pars_fragment:Gc,morphcolor_vertex:Xc,morphnormal_vertex:qc,morphtarget_pars_vertex:Yc,morphtarget_vertex:Zc,normal_fragment_begin:Jc,normal_fragment_maps:$c,normal_pars_fragment:Kc,normal_pars_vertex:Qc,normal_vertex:jc,normalmap_pars_fragment:eh,clearcoat_normal_fragment_begin:th,clearcoat_normal_fragment_maps:nh,clearcoat_pars_fragment:ih,iridescence_pars_fragment:sh,output_fragment:rh,packing:ah,premultiplied_alpha_fragment:oh,project_vertex:lh,dithering_fragment:ch,dithering_pars_fragment:hh,roughnessmap_fragment:uh,roughnessmap_pars_fragment:dh,shadowmap_pars_fragment:fh,shadowmap_pars_vertex:ph,shadowmap_vertex:mh,shadowmask_pars_fragment:gh,skinbase_vertex:xh,skinning_pars_vertex:_h,skinning_vertex:vh,skinnormal_vertex:yh,specularmap_fragment:Mh,specularmap_pars_fragment:bh,tonemapping_fragment:wh,tonemapping_pars_fragment:Sh,transmission_fragment:Th,transmission_pars_fragment:Ah,uv_pars_fragment:Eh,uv_pars_vertex:Ch,uv_vertex:Ph,uv2_pars_fragment:Lh,uv2_pars_vertex:Rh,uv2_vertex:Ih,worldpos_vertex:Dh,background_vert:Nh,background_frag:Fh,backgroundCube_vert:zh,backgroundCube_frag:Oh,cube_vert:Uh,cube_frag:Bh,depth_vert:kh,depth_frag:Vh,distanceRGBA_vert:Hh,distanceRGBA_frag:Wh,equirect_vert:Gh,equirect_frag:Xh,linedashed_vert:qh,linedashed_frag:Yh,meshbasic_vert:Zh,meshbasic_frag:Jh,meshlambert_vert:$h,meshlambert_frag:Kh,meshmatcap_vert:Qh,meshmatcap_frag:jh,meshnormal_vert:eu,meshnormal_frag:tu,meshphong_vert:nu,meshphong_frag:iu,meshphysical_vert:su,meshphysical_frag:ru,meshtoon_vert:au,meshtoon_frag:ou,points_vert:lu,points_frag:cu,shadow_vert:hu,shadow_frag:uu,sprite_vert:du,sprite_frag:fu},j={common:{diffuse:{value:new ze(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new ct},uv2Transform:{value:new ct},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new De(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ze(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ze(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new ct}},sprite:{diffuse:{value:new ze(16777215)},opacity:{value:1},center:{value:new De(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new ct}}},Rt={basic:{uniforms:it([j.common,j.specularmap,j.envmap,j.aomap,j.lightmap,j.fog]),vertexShader:be.meshbasic_vert,fragmentShader:be.meshbasic_frag},lambert:{uniforms:it([j.common,j.specularmap,j.envmap,j.aomap,j.lightmap,j.emissivemap,j.bumpmap,j.normalmap,j.displacementmap,j.fog,j.lights,{emissive:{value:new ze(0)}}]),vertexShader:be.meshlambert_vert,fragmentShader:be.meshlambert_frag},phong:{uniforms:it([j.common,j.specularmap,j.envmap,j.aomap,j.lightmap,j.emissivemap,j.bumpmap,j.normalmap,j.displacementmap,j.fog,j.lights,{emissive:{value:new ze(0)},specular:{value:new ze(1118481)},shininess:{value:30}}]),vertexShader:be.meshphong_vert,fragmentShader:be.meshphong_frag},standard:{uniforms:it([j.common,j.envmap,j.aomap,j.lightmap,j.emissivemap,j.bumpmap,j.normalmap,j.displacementmap,j.roughnessmap,j.metalnessmap,j.fog,j.lights,{emissive:{value:new ze(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:be.meshphysical_vert,fragmentShader:be.meshphysical_frag},toon:{uniforms:it([j.common,j.aomap,j.lightmap,j.emissivemap,j.bumpmap,j.normalmap,j.displacementmap,j.gradientmap,j.fog,j.lights,{emissive:{value:new ze(0)}}]),vertexShader:be.meshtoon_vert,fragmentShader:be.meshtoon_frag},matcap:{uniforms:it([j.common,j.bumpmap,j.normalmap,j.displacementmap,j.fog,{matcap:{value:null}}]),vertexShader:be.meshmatcap_vert,fragmentShader:be.meshmatcap_frag},points:{uniforms:it([j.points,j.fog]),vertexShader:be.points_vert,fragmentShader:be.points_frag},dashed:{uniforms:it([j.common,j.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:be.linedashed_vert,fragmentShader:be.linedashed_frag},depth:{uniforms:it([j.common,j.displacementmap]),vertexShader:be.depth_vert,fragmentShader:be.depth_frag},normal:{uniforms:it([j.common,j.bumpmap,j.normalmap,j.displacementmap,{opacity:{value:1}}]),vertexShader:be.meshnormal_vert,fragmentShader:be.meshnormal_frag},sprite:{uniforms:it([j.sprite,j.fog]),vertexShader:be.sprite_vert,fragmentShader:be.sprite_frag},background:{uniforms:{uvTransform:{value:new ct},t2D:{value:null}},vertexShader:be.background_vert,fragmentShader:be.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0}},vertexShader:be.backgroundCube_vert,fragmentShader:be.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:be.cube_vert,fragmentShader:be.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:be.equirect_vert,fragmentShader:be.equirect_frag},distanceRGBA:{uniforms:it([j.common,j.displacementmap,{referencePosition:{value:new L},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:be.distanceRGBA_vert,fragmentShader:be.distanceRGBA_frag},shadow:{uniforms:it([j.lights,j.fog,{color:{value:new ze(0)},opacity:{value:1}}]),vertexShader:be.shadow_vert,fragmentShader:be.shadow_frag}};Rt.physical={uniforms:it([Rt.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new De(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new ze(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new De},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new ze(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new ze(1,1,1)},specularColorMap:{value:null}}]),vertexShader:be.meshphysical_vert,fragmentShader:be.meshphysical_frag};function pu(r,e,t,n,i,s,o){let a=new ze(0),c=s===!0?0:1,l,h,f=null,d=0,m=null;function g(u,x){let T=!1,w=x.isScene===!0?x.background:null;w&&w.isTexture&&(w=(x.backgroundBlurriness>0?t:e).get(w));let y=r.xr,S=y.getSession&&y.getSession();S&&S.environmentBlendMode==="additive"&&(w=null),w===null?p(a,c):w&&w.isColor&&(p(w,1),T=!0),(r.autoClear||T)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),w&&(w.isCubeTexture||w.mapping===ss)?(h===void 0&&(h=new It(new Tn(1,1,1),new Yt({name:"BackgroundCubeMaterial",uniforms:ni(Rt.backgroundCube.uniforms),vertexShader:Rt.backgroundCube.vertexShader,fragmentShader:Rt.backgroundCube.fragmentShader,side:Mt,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(C,F,v){this.matrixWorld.copyPosition(v.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=w,h.material.uniforms.flipEnvMap.value=w.isCubeTexture&&w.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=x.backgroundBlurriness,(f!==w||d!==w.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=w,d=w.version,m=r.toneMapping),h.layers.enableAll(),u.unshift(h,h.geometry,h.material,0,0,null)):w&&w.isTexture&&(l===void 0&&(l=new It(new vi(2,2),new Yt({name:"BackgroundMaterial",uniforms:ni(Rt.background.uniforms),vertexShader:Rt.background.vertexShader,fragmentShader:Rt.background.fragmentShader,side:Kn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=w,w.matrixAutoUpdate===!0&&w.updateMatrix(),l.material.uniforms.uvTransform.value.copy(w.matrix),(f!==w||d!==w.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=w,d=w.version,m=r.toneMapping),l.layers.enableAll(),u.unshift(l,l.geometry,l.material,0,0,null))}function p(u,x){n.buffers.color.setClear(u.r,u.g,u.b,x,o)}return{getClearColor:function(){return a},setClearColor:function(u,x=1){a.set(u),c=x,p(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(u){c=u,p(a,c)},render:g}}function mu(r,e,t,n){let i=r.getParameter(34921),s=n.isWebGL2?null:e.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},c=u(null),l=c,h=!1;function f(N,W,q,K,G){let R=!1;if(o){let z=p(K,q,W);l!==z&&(l=z,m(l.object)),R=x(N,K,q,G),R&&T(N,K,q,G)}else{let z=W.wireframe===!0;(l.geometry!==K.id||l.program!==q.id||l.wireframe!==z)&&(l.geometry=K.id,l.program=q.id,l.wireframe=z,R=!0)}G!==null&&t.update(G,34963),(R||h)&&(h=!1,v(N,W,q,K),G!==null&&r.bindBuffer(34963,t.get(G).buffer))}function d(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(N){return n.isWebGL2?r.bindVertexArray(N):s.bindVertexArrayOES(N)}function g(N){return n.isWebGL2?r.deleteVertexArray(N):s.deleteVertexArrayOES(N)}function p(N,W,q){let K=q.wireframe===!0,G=a[N.id];G===void 0&&(G={},a[N.id]=G);let R=G[W.id];R===void 0&&(R={},G[W.id]=R);let z=R[K];return z===void 0&&(z=u(d()),R[K]=z),z}function u(N){let W=[],q=[],K=[];for(let G=0;G=0){let oe=G[Y],ve=R[Y];if(ve===void 0&&(Y==="instanceMatrix"&&N.instanceMatrix&&(ve=N.instanceMatrix),Y==="instanceColor"&&N.instanceColor&&(ve=N.instanceColor)),oe===void 0||oe.attribute!==ve||ve&&oe.data!==ve.data)return!0;z++}return l.attributesNum!==z||l.index!==K}function T(N,W,q,K){let G={},R=W.attributes,z=0,te=q.getAttributes();for(let Y in te)if(te[Y].location>=0){let oe=R[Y];oe===void 0&&(Y==="instanceMatrix"&&N.instanceMatrix&&(oe=N.instanceMatrix),Y==="instanceColor"&&N.instanceColor&&(oe=N.instanceColor));let ve={};ve.attribute=oe,oe&&oe.data&&(ve.data=oe.data),G[Y]=ve,z++}l.attributes=G,l.attributesNum=z,l.index=K}function w(){let N=l.newAttributes;for(let W=0,q=N.length;W=0){let ne=G[te];if(ne===void 0&&(te==="instanceMatrix"&&N.instanceMatrix&&(ne=N.instanceMatrix),te==="instanceColor"&&N.instanceColor&&(ne=N.instanceColor)),ne!==void 0){let oe=ne.normalized,ve=ne.itemSize,X=t.get(ne);if(X===void 0)continue;let Ie=X.buffer,ge=X.type,ye=X.bytesPerElement;if(ne.isInterleavedBufferAttribute){let ae=ne.data,Fe=ae.stride,Se=ne.offset;if(ae.isInstancedInterleavedBuffer){for(let pe=0;pe0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";F="mediump"}return F==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&r instanceof WebGL2ComputeRenderingContext,a=t.precision!==void 0?t.precision:"highp",c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);let l=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=r.getParameter(34930),d=r.getParameter(35660),m=r.getParameter(3379),g=r.getParameter(34076),p=r.getParameter(34921),u=r.getParameter(36347),x=r.getParameter(36348),T=r.getParameter(36349),w=d>0,y=o||e.has("OES_texture_float"),S=w&&y,C=o?r.getParameter(36183):0;return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:d,maxTextureSize:m,maxCubemapSize:g,maxAttributes:p,maxVertexUniforms:u,maxVaryings:x,maxFragmentUniforms:T,vertexTextures:w,floatFragmentTextures:y,floatVertexTextures:S,maxSamples:C}}function _u(r){let e=this,t=null,n=0,i=!1,s=!1,o=new Ht,a=new ct,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,d,m){let g=f.length!==0||d||n!==0||i;return i=d,t=h(f,m,0),n=f.length,g},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,l()},this.setState=function(f,d,m){let g=f.clippingPlanes,p=f.clipIntersection,u=f.clipShadows,x=r.get(f);if(!i||g===null||g.length===0||s&&!u)s?h(null):l();else{let T=s?0:n,w=T*4,y=x.clippingState||null;c.value=y,y=h(g,d,w,m);for(let S=0;S!==w;++S)y[S]=t[S];x.clippingState=y,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=T}};function l(){c.value!==t&&(c.value=t,c.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(f,d,m,g){let p=f!==null?f.length:0,u=null;if(p!==0){if(u=c.value,g!==!0||u===null){let x=m+p*4,T=d.matrixWorldInverse;a.getNormalMatrix(T),(u===null||u.length0){let l=new js(c.height/2);return l.fromEquirectangularTexture(r,o),e.set(o,l),o.addEventListener("dispose",i),t(l.texture,o.mapping)}else return null}}return o}function i(o){let a=o.target;a.removeEventListener("dispose",i);let c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function s(){e=new WeakMap}return{get:n,dispose:s}}var er=class extends es{constructor(e=-1,t=1,n=1,i=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-e,o=n+e,a=i+t,c=i-t;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,o=s+l*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}},qn=4,ya=[.125,.215,.35,.446,.526,.582],mn=20,ks=new er,Ma=new ze,Vs=null,pn=(1+Math.sqrt(5))/2,Gn=1/pn,ba=[new L(1,1,1),new L(-1,1,1),new L(1,1,-1),new L(-1,1,-1),new L(0,pn,Gn),new L(0,pn,-Gn),new L(Gn,0,pn),new L(-Gn,0,pn),new L(pn,Gn,0),new L(-pn,Gn,0)],is=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){Vs=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,n,i,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ta(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Sa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?w:0,w,w),h.setRenderTarget(i),p&&h.render(g,a),h.render(e,a)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=d,h.autoClear=f,e.background=u}_textureToCubeUV(e,t){let n=this._renderer,i=e.mapping===Qn||e.mapping===jn;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ta()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Sa());let s=i?this._cubemapMaterial:this._equirectMaterial,o=new It(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;let c=this._cubeSize;Bi(t,0,0,3*c,2*c),n.setRenderTarget(t),n.render(o,ks)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;imn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${u} samples when the maximum is set to ${mn}`);let x=[],T=0;for(let F=0;Fw-qn?i-w+qn:0),C=4*(this._cubeSize-y);Bi(t,S,C,3*y,2*y),c.setRenderTarget(t),c.render(f,ks)}};function yu(r){let e=[],t=[],n=[],i=r,s=r-qn+1+ya.length;for(let o=0;or-qn?c=ya[o-r+qn-1]:o===0&&(c=0),n.push(c);let l=1/(a-2),h=-l,f=1+l,d=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,g=6,p=3,u=2,x=1,T=new Float32Array(p*g*m),w=new Float32Array(u*g*m),y=new Float32Array(x*g*m);for(let C=0;C2?0:-1,A=[F,v,0,F+2/3,v,0,F+2/3,v+1,0,F,v,0,F+2/3,v+1,0,F,v+1,0];T.set(A,p*g*C),w.set(d,u*g*C);let D=[C,C,C,C,C,C];y.set(D,x*g*C)}let S=new qt;S.setAttribute("position",new st(T,p)),S.setAttribute("uv",new st(w,u)),S.setAttribute("faceIndex",new st(y,x)),e.push(S),i>qn&&i--}return{lodPlanes:e,sizeLods:t,sigmas:n}}function wa(r,e,t){let n=new Xt(r,e,t);return n.texture.mapping=ss,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Bi(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function Mu(r,e,t){let n=new Float32Array(mn),i=new L(0,1,0);return new Yt({name:"SphericalGaussianBlur",defines:{n:mn,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:wr(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues\' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,blending:rn,depthTest:!1,depthWrite:!1})}function Sa(){return new Yt({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:wr(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,blending:rn,depthTest:!1,depthWrite:!1})}function Ta(){return new Yt({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:wr(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,blending:rn,depthTest:!1,depthWrite:!1})}function wr(){return`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`}function bu(r){let e=new WeakMap,t=null;function n(a){if(a&&a.isTexture){let c=a.mapping,l=c===Gs||c===Xs,h=c===Qn||c===jn;if(l||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new is(r)),f=l?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{let f=a.image;if(l&&f&&f.height>0||h&&f&&i(f)){t===null&&(t=new is(r));let d=l?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",s),d.texture}else return null}}}return a}function i(a){let c=0,l=6;for(let h=0;he.maxTextureSize&&(Z=Math.ceil(D/e.maxTextureSize),D=e.maxTextureSize);let ee=new Float32Array(D*Z*4*p),k=new Ji(ee,D,Z,p);k.type=xn,k.needsUpdate=!0;let N=A*4;for(let q=0;q0)return r;let i=e*t,s=Aa[i];if(s===void 0&&(s=new Float32Array(i),Aa[i]=s),e!==0){n.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,r[o].toArray(s,a)}return s}function qe(r,e){if(r.length!==e.length)return!1;for(let t=0,n=r.length;t":" "} ${a}: ${t[o]}`)}return n.join(`\n`)}function yd(r){switch(r){case bn:return["Linear","( value )"];case ke:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Da(r,e,t){let n=r.getShaderParameter(e,35713),i=r.getShaderInfoLog(e).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let o=parseInt(s[1]);return t.toUpperCase()+`\n\n`+i+`\n\n`+vd(r.getShaderSource(e),o)}else return i}function Md(r,e){let t=yd(e);return"vec4 "+r+"( vec4 value ) { return LinearTo"+t[0]+t[1]+"; }"}function bd(r,e){let t;switch(e){case Io:t="Linear";break;case Do:t="Reinhard";break;case No:t="OptimizedCineon";break;case Fo:t="ACESFilmic";break;case zo:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+r+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function wd(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(fi).join(`\n`)}function Sd(r){let e=[];for(let t in r){let n=r[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(`\n`)}function Td(r,e){let t={},n=r.getProgramParameter(e,35721);for(let i=0;i/gm;function sr(r){return r.replace(Ad,Ed)}function Ed(r,e){let t=be[e];if(t===void 0)throw new Error("Can not resolve #include <"+e+">");return sr(t)}var Cd=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function za(r){return r.replace(Cd,Pd)}function Pd(r,e,t,n){let i="";for(let s=parseInt(e);s0&&(u+=`\n`),x=[m,g].filter(fi).join(`\n`),x.length>0&&(x+=`\n`)):(u=[Oa(t),"#define SHADER_NAME "+t.shaderName,g,t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.supportsVertexTextures?"#define VERTEX_TEXTURES":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.displacementMap&&t.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(fi).join(`\n`),x=[m,Oa(t),"#define SHADER_NAME "+t.shaderName,g,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+l:"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Wt?"#define TONE_MAPPING":"",t.toneMapping!==Wt?be.tonemapping_pars_fragment:"",t.toneMapping!==Wt?bd("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",be.encodings_pars_fragment,Md("linearToOutputTexel",t.outputEncoding),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",`\n`].filter(fi).join(`\n`)),o=sr(o),o=Na(o,t),o=Fa(o,t),a=sr(a),a=Na(a,t),a=Fa(a,t),o=za(o),a=za(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(T=`#version 300 es\n`,u=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+u,x=["#define varying in",t.glslVersion===la?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===la?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`\n`)+`\n`+x);let w=T+u+o,y=T+x+a,S=Ia(i,35633,w),C=Ia(i,35632,y);if(i.attachShader(p,S),i.attachShader(p,C),t.index0AttributeName!==void 0?i.bindAttribLocation(p,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let A=i.getProgramInfoLog(p).trim(),D=i.getShaderInfoLog(S).trim(),Z=i.getShaderInfoLog(C).trim(),ee=!0,k=!0;if(i.getProgramParameter(p,35714)===!1){ee=!1;let N=Da(i,S,"vertex"),W=Da(i,C,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+`\n\nProgram Info Log: `+A+`\n`+N+`\n`+W)}else A!==""?console.warn("THREE.WebGLProgram: Program Info Log:",A):(D===""||Z==="")&&(k=!1);k&&(this.diagnostics={runnable:ee,programLog:A,vertexShader:{log:D,prefix:u},fragmentShader:{log:Z,prefix:x}})}i.deleteShader(S),i.deleteShader(C);let F;this.getUniforms=function(){return F===void 0&&(F=new $n(i,p)),F};let v;return this.getAttributes=function(){return v===void 0&&(v=Td(i,p)),v},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=t.shaderName,this.id=_d++,this.cacheKey=e,this.usedTimes=1,this.program=p,this.vertexShader=S,this.fragmentShader=C,this}var zd=0,rr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(e);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){let t=this.shaderCache,n=t.get(e);return n===void 0&&(n=new ar(e),t.set(e,n)),n}},ar=class{constructor(e){this.id=zd++,this.code=e,this.usedTimes=0}};function Od(r,e,t,n,i,s,o){let a=new $i,c=new rr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,d=i.vertexTextures,m=i.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function p(v,A,D,Z,ee){let k=Z.fog,N=ee.geometry,W=v.isMeshStandardMaterial?Z.environment:null,q=(v.isMeshStandardMaterial?t:e).get(v.envMap||W),K=q&&q.mapping===ss?q.image.height:null,G=g[v.type];v.precision!==null&&(m=i.getMaxPrecision(v.precision),m!==v.precision&&console.warn("THREE.WebGLProgram.getParameters:",v.precision,"not supported, using",m,"instead."));let R=N.morphAttributes.position||N.morphAttributes.normal||N.morphAttributes.color,z=R!==void 0?R.length:0,te=0;N.morphAttributes.position!==void 0&&(te=1),N.morphAttributes.normal!==void 0&&(te=2),N.morphAttributes.color!==void 0&&(te=3);let Y,ne,oe,ve;if(G){let Fe=Rt[G];Y=Fe.vertexShader,ne=Fe.fragmentShader}else Y=v.vertexShader,ne=v.fragmentShader,c.update(v),oe=c.getVertexShaderID(v),ve=c.getFragmentShaderID(v);let X=r.getRenderTarget(),Ie=v.alphaTest>0,ge=v.clearcoat>0,ye=v.iridescence>0;return{isWebGL2:h,shaderID:G,shaderName:v.type,vertexShader:Y,fragmentShader:ne,defines:v.defines,customVertexShaderID:oe,customFragmentShaderID:ve,isRawShaderMaterial:v.isRawShaderMaterial===!0,glslVersion:v.glslVersion,precision:m,instancing:ee.isInstancedMesh===!0,instancingColor:ee.isInstancedMesh===!0&&ee.instanceColor!==null,supportsVertexTextures:d,outputEncoding:X===null?r.outputEncoding:X.isXRRenderTarget===!0?X.texture.encoding:bn,map:!!v.map,matcap:!!v.matcap,envMap:!!q,envMapMode:q&&q.mapping,envMapCubeUVHeight:K,lightMap:!!v.lightMap,aoMap:!!v.aoMap,emissiveMap:!!v.emissiveMap,bumpMap:!!v.bumpMap,normalMap:!!v.normalMap,objectSpaceNormalMap:v.normalMapType===nl,tangentSpaceNormalMap:v.normalMapType===tl,decodeVideoTexture:!!v.map&&v.map.isVideoTexture===!0&&v.map.encoding===ke,clearcoat:ge,clearcoatMap:ge&&!!v.clearcoatMap,clearcoatRoughnessMap:ge&&!!v.clearcoatRoughnessMap,clearcoatNormalMap:ge&&!!v.clearcoatNormalMap,iridescence:ye,iridescenceMap:ye&&!!v.iridescenceMap,iridescenceThicknessMap:ye&&!!v.iridescenceThicknessMap,displacementMap:!!v.displacementMap,roughnessMap:!!v.roughnessMap,metalnessMap:!!v.metalnessMap,specularMap:!!v.specularMap,specularIntensityMap:!!v.specularIntensityMap,specularColorMap:!!v.specularColorMap,opaque:v.transparent===!1&&v.blending===Zn,alphaMap:!!v.alphaMap,alphaTest:Ie,gradientMap:!!v.gradientMap,sheen:v.sheen>0,sheenColorMap:!!v.sheenColorMap,sheenRoughnessMap:!!v.sheenRoughnessMap,transmission:v.transmission>0,transmissionMap:!!v.transmissionMap,thicknessMap:!!v.thicknessMap,combine:v.combine,vertexTangents:!!v.normalMap&&!!N.attributes.tangent,vertexColors:v.vertexColors,vertexAlphas:v.vertexColors===!0&&!!N.attributes.color&&N.attributes.color.itemSize===4,vertexUvs:!!v.map||!!v.bumpMap||!!v.normalMap||!!v.specularMap||!!v.alphaMap||!!v.emissiveMap||!!v.roughnessMap||!!v.metalnessMap||!!v.clearcoatMap||!!v.clearcoatRoughnessMap||!!v.clearcoatNormalMap||!!v.iridescenceMap||!!v.iridescenceThicknessMap||!!v.displacementMap||!!v.transmissionMap||!!v.thicknessMap||!!v.specularIntensityMap||!!v.specularColorMap||!!v.sheenColorMap||!!v.sheenRoughnessMap,uvsVertexOnly:!(v.map||v.bumpMap||v.normalMap||v.specularMap||v.alphaMap||v.emissiveMap||v.roughnessMap||v.metalnessMap||v.clearcoatNormalMap||v.iridescenceMap||v.iridescenceThicknessMap||v.transmission>0||v.transmissionMap||v.thicknessMap||v.specularIntensityMap||v.specularColorMap||v.sheen>0||v.sheenColorMap||v.sheenRoughnessMap)&&!!v.displacementMap,fog:!!k,useFog:v.fog===!0,fogExp2:k&&k.isFogExp2,flatShading:!!v.flatShading,sizeAttenuation:v.sizeAttenuation,logarithmicDepthBuffer:f,skinning:ee.isSkinnedMesh===!0,morphTargets:N.morphAttributes.position!==void 0,morphNormals:N.morphAttributes.normal!==void 0,morphColors:N.morphAttributes.color!==void 0,morphTargetsCount:z,morphTextureStride:te,numDirLights:A.directional.length,numPointLights:A.point.length,numSpotLights:A.spot.length,numSpotLightMaps:A.spotLightMap.length,numRectAreaLights:A.rectArea.length,numHemiLights:A.hemi.length,numDirLightShadows:A.directionalShadowMap.length,numPointLightShadows:A.pointShadowMap.length,numSpotLightShadows:A.spotShadowMap.length,numSpotLightShadowsWithMaps:A.numSpotLightShadowsWithMaps,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:v.dithering,shadowMapEnabled:r.shadowMap.enabled&&D.length>0,shadowMapType:r.shadowMap.type,toneMapping:v.toneMapped?r.toneMapping:Wt,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:v.premultipliedAlpha,doubleSided:v.side===sn,flipSided:v.side===Mt,useDepthPacking:!!v.depthPacking,depthPacking:v.depthPacking||0,index0AttributeName:v.index0AttributeName,extensionDerivatives:v.extensions&&v.extensions.derivatives,extensionFragDepth:v.extensions&&v.extensions.fragDepth,extensionDrawBuffers:v.extensions&&v.extensions.drawBuffers,extensionShaderTextureLOD:v.extensions&&v.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:v.customProgramCacheKey()}}function u(v){let A=[];if(v.shaderID?A.push(v.shaderID):(A.push(v.customVertexShaderID),A.push(v.customFragmentShaderID)),v.defines!==void 0)for(let D in v.defines)A.push(D),A.push(v.defines[D]);return v.isRawShaderMaterial===!1&&(x(A,v),T(A,v),A.push(r.outputEncoding)),A.push(v.customProgramCacheKey),A.join()}function x(v,A){v.push(A.precision),v.push(A.outputEncoding),v.push(A.envMapMode),v.push(A.envMapCubeUVHeight),v.push(A.combine),v.push(A.vertexUvs),v.push(A.fogExp2),v.push(A.sizeAttenuation),v.push(A.morphTargetsCount),v.push(A.morphAttributeCount),v.push(A.numDirLights),v.push(A.numPointLights),v.push(A.numSpotLights),v.push(A.numSpotLightMaps),v.push(A.numHemiLights),v.push(A.numRectAreaLights),v.push(A.numDirLightShadows),v.push(A.numPointLightShadows),v.push(A.numSpotLightShadows),v.push(A.numSpotLightShadowsWithMaps),v.push(A.shadowMapType),v.push(A.toneMapping),v.push(A.numClippingPlanes),v.push(A.numClipIntersection),v.push(A.depthPacking)}function T(v,A){a.disableAll(),A.isWebGL2&&a.enable(0),A.supportsVertexTextures&&a.enable(1),A.instancing&&a.enable(2),A.instancingColor&&a.enable(3),A.map&&a.enable(4),A.matcap&&a.enable(5),A.envMap&&a.enable(6),A.lightMap&&a.enable(7),A.aoMap&&a.enable(8),A.emissiveMap&&a.enable(9),A.bumpMap&&a.enable(10),A.normalMap&&a.enable(11),A.objectSpaceNormalMap&&a.enable(12),A.tangentSpaceNormalMap&&a.enable(13),A.clearcoat&&a.enable(14),A.clearcoatMap&&a.enable(15),A.clearcoatRoughnessMap&&a.enable(16),A.clearcoatNormalMap&&a.enable(17),A.iridescence&&a.enable(18),A.iridescenceMap&&a.enable(19),A.iridescenceThicknessMap&&a.enable(20),A.displacementMap&&a.enable(21),A.specularMap&&a.enable(22),A.roughnessMap&&a.enable(23),A.metalnessMap&&a.enable(24),A.gradientMap&&a.enable(25),A.alphaMap&&a.enable(26),A.alphaTest&&a.enable(27),A.vertexColors&&a.enable(28),A.vertexAlphas&&a.enable(29),A.vertexUvs&&a.enable(30),A.vertexTangents&&a.enable(31),A.uvsVertexOnly&&a.enable(32),v.push(a.mask),a.disableAll(),A.fog&&a.enable(0),A.useFog&&a.enable(1),A.flatShading&&a.enable(2),A.logarithmicDepthBuffer&&a.enable(3),A.skinning&&a.enable(4),A.morphTargets&&a.enable(5),A.morphNormals&&a.enable(6),A.morphColors&&a.enable(7),A.premultipliedAlpha&&a.enable(8),A.shadowMapEnabled&&a.enable(9),A.physicallyCorrectLights&&a.enable(10),A.doubleSided&&a.enable(11),A.flipSided&&a.enable(12),A.useDepthPacking&&a.enable(13),A.dithering&&a.enable(14),A.specularIntensityMap&&a.enable(15),A.specularColorMap&&a.enable(16),A.transmission&&a.enable(17),A.transmissionMap&&a.enable(18),A.thicknessMap&&a.enable(19),A.sheen&&a.enable(20),A.sheenColorMap&&a.enable(21),A.sheenRoughnessMap&&a.enable(22),A.decodeVideoTexture&&a.enable(23),A.opaque&&a.enable(24),v.push(a.mask)}function w(v){let A=g[v.type],D;if(A){let Z=Rt[A];D=Ll.clone(Z.uniforms)}else D=v.uniforms;return D}function y(v,A){let D;for(let Z=0,ee=l.length;Z0?n.push(x):m.transparent===!0?i.push(x):t.push(x)}function c(f,d,m,g,p,u){let x=o(f,d,m,g,p,u);m.transmission>0?n.unshift(x):m.transparent===!0?i.unshift(x):t.unshift(x)}function l(f,d){t.length>1&&t.sort(f||Bd),n.length>1&&n.sort(d||Ua),i.length>1&&i.sort(d||Ua)}function h(){for(let f=e,d=r.length;f=s.length?(o=new Ba,s.push(o)):o=s[i],o}function t(){r=new WeakMap}return{get:e,dispose:t}}function Vd(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new L,color:new ze};break;case"SpotLight":t={position:new L,direction:new L,color:new ze,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new L,color:new ze,distance:0,decay:0};break;case"HemisphereLight":t={direction:new L,skyColor:new ze,groundColor:new ze};break;case"RectAreaLight":t={color:new ze,position:new L,halfWidth:new L,halfHeight:new L};break}return r[e.id]=t,t}}}function Hd(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[e.id]=t,t}}}var Wd=0;function Gd(r,e){return(e.castShadow?2:0)-(r.castShadow?2:0)+(e.map?1:0)-(r.map?1:0)}function Xd(r,e){let t=new Vd,n=Hd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)i.probe.push(new L);let s=new L,o=new Xe,a=new Xe;function c(h,f){let d=0,m=0,g=0;for(let Z=0;Z<9;Z++)i.probe[Z].set(0,0,0);let p=0,u=0,x=0,T=0,w=0,y=0,S=0,C=0,F=0,v=0;h.sort(Gd);let A=f!==!0?Math.PI:1;for(let Z=0,ee=h.length;Z0&&(e.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=j.LTC_FLOAT_1,i.rectAreaLTC2=j.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=j.LTC_HALF_1,i.rectAreaLTC2=j.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=d,i.ambient[1]=m,i.ambient[2]=g;let D=i.hash;(D.directionalLength!==p||D.pointLength!==u||D.spotLength!==x||D.rectAreaLength!==T||D.hemiLength!==w||D.numDirectionalShadows!==y||D.numPointShadows!==S||D.numSpotShadows!==C||D.numSpotMaps!==F)&&(i.directional.length=p,i.spot.length=x,i.rectArea.length=T,i.point.length=u,i.hemi.length=w,i.directionalShadow.length=y,i.directionalShadowMap.length=y,i.pointShadow.length=S,i.pointShadowMap.length=S,i.spotShadow.length=C,i.spotShadowMap.length=C,i.directionalShadowMatrix.length=y,i.pointShadowMatrix.length=S,i.spotLightMatrix.length=C+F-v,i.spotLightMap.length=F,i.numSpotLightShadowsWithMaps=v,D.directionalLength=p,D.pointLength=u,D.spotLength=x,D.rectAreaLength=T,D.hemiLength=w,D.numDirectionalShadows=y,D.numPointShadows=S,D.numSpotShadows=C,D.numSpotMaps=F,i.version=Wd++)}function l(h,f){let d=0,m=0,g=0,p=0,u=0,x=f.matrixWorldInverse;for(let T=0,w=h.length;T=a.length?(c=new ka(r,e),a.push(c)):c=a[o],c}function i(){t=new WeakMap}return{get:n,dispose:i}}var or=class extends ti{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=jo,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},lr=class extends ti{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new L,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},Yd=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,Zd=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}`;function Jd(r,e,t){let n=new ns,i=new De,s=new De,o=new Ge,a=new or({depthPacking:el}),c=new lr,l={},h=t.maxTextureSize,f={0:Mt,1:Kn,2:sn},d=new Yt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new De},radius:{value:4}},vertexShader:Yd,fragmentShader:Zd}),m=d.clone();m.defines.HORIZONTAL_PASS=1;let g=new qt;g.setAttribute("position",new st(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new It(g,d),u=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Va,this.render=function(y,S,C){if(u.enabled===!1||u.autoUpdate===!1&&u.needsUpdate===!1||y.length===0)return;let F=r.getRenderTarget(),v=r.getActiveCubeFace(),A=r.getActiveMipmapLevel(),D=r.state;D.setBlending(rn),D.buffers.color.setClear(1,1,1,1),D.buffers.depth.setTest(!0),D.setScissorTest(!1);for(let Z=0,ee=y.length;Zh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/W.x),i.x=s.x*W.x,N.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/W.y),i.y=s.y*W.y,N.mapSize.y=s.y)),N.map===null){let K=this.type!==ui?{minFilter:ot,magFilter:ot}:{};N.map=new Xt(i.x,i.y,K),N.map.texture.name=k.name+".shadowMap",N.camera.updateProjectionMatrix()}r.setRenderTarget(N.map),r.clear();let q=N.getViewportCount();for(let K=0;K0){let ee=D.uuid,k=S.uuid,N=l[ee];N===void 0&&(N={},l[ee]=N);let W=N[k];W===void 0&&(W=D.clone(),N[k]=W),D=W}return D.visible=S.visible,D.wireframe=S.wireframe,A===ui?D.side=S.shadowSide!==null?S.shadowSide:S.side:D.side=S.shadowSide!==null?S.shadowSide:f[S.side],D.alphaMap=S.alphaMap,D.alphaTest=S.alphaTest,D.clipShadows=S.clipShadows,D.clippingPlanes=S.clippingPlanes,D.clipIntersection=S.clipIntersection,D.displacementMap=S.displacementMap,D.displacementScale=S.displacementScale,D.displacementBias=S.displacementBias,D.wireframeLinewidth=S.wireframeLinewidth,D.linewidth=S.linewidth,C.isPointLight===!0&&D.isMeshDistanceMaterial===!0&&(D.referencePosition.setFromMatrixPosition(C.matrixWorld),D.nearDistance=F,D.farDistance=v),D}function w(y,S,C,F,v){if(y.visible===!1)return;if(y.layers.test(S.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&v===ui)&&(!y.frustumCulled||n.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,y.matrixWorld);let Z=e.update(y),ee=y.material;if(Array.isArray(ee)){let k=Z.groups;for(let N=0,W=k.length;N=1):G.indexOf("OpenGL ES")!==-1&&(K=parseFloat(/^OpenGL ES (\\d)/.exec(G)[1]),q=K>=2);let R=null,z={},te=r.getParameter(3088),Y=r.getParameter(2978),ne=new Ge().fromArray(te),oe=new Ge().fromArray(Y);function ve(E,B,J){let re=new Uint8Array(4),ce=r.createTexture();r.bindTexture(E,ce),r.texParameteri(E,10241,9728),r.texParameteri(E,10240,9728);for(let Ce=0;Ce$||b.height>$)&&(Q=$/Math.max(b.width,b.height)),Q<1||_===!0)if(typeof HTMLImageElement!="undefined"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&b instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&b instanceof ImageBitmap){let ie=_?Xi:Math.floor,xe=ie(Q*b.width),se=ie(Q*b.height);p===void 0&&(p=T(xe,se));let H=U?T(xe,se):p;return H.width=xe,H.height=se,H.getContext("2d").drawImage(b,0,0,xe,se),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+b.width+"x"+b.height+") to ("+xe+"x"+se+")."),H}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+b.width+"x"+b.height+")."),b;return b}function y(b){return Js(b.width)&&Js(b.height)}function S(b){return a?!1:b.wrapS!==At||b.wrapT!==At||b.minFilter!==ot&&b.minFilter!==yt}function C(b,_){return b.generateMipmaps&&_&&b.minFilter!==ot&&b.minFilter!==yt}function F(b){r.generateMipmap(b)}function v(b,_,U,$,Q=!1){if(a===!1)return _;if(b!==null){if(r[b]!==void 0)return r[b];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+b+"\'")}let ie=_;return _===6403&&(U===5126&&(ie=33326),U===5131&&(ie=33325),U===5121&&(ie=33321)),_===33319&&(U===5126&&(ie=33328),U===5131&&(ie=33327),U===5121&&(ie=33323)),_===6408&&(U===5126&&(ie=34836),U===5131&&(ie=34842),U===5121&&(ie=$===ke&&Q===!1?35907:32856),U===32819&&(ie=32854),U===32820&&(ie=32855)),(ie===33325||ie===33326||ie===33327||ie===33328||ie===34842||ie===34836)&&e.get("EXT_color_buffer_float"),ie}function A(b,_,U){return C(b,U)===!0||b.isFramebufferTexture&&b.minFilter!==ot&&b.minFilter!==yt?Math.log2(Math.max(_.width,_.height))+1:b.mipmaps!==void 0&&b.mipmaps.length>0?b.mipmaps.length:b.isCompressedTexture&&Array.isArray(b.image)?_.mipmaps.length:1}function D(b){return b===ot||b===Fr||b===zr?9728:9729}function Z(b){let _=b.target;_.removeEventListener("dispose",Z),k(_),_.isVideoTexture&&g.delete(_)}function ee(b){let _=b.target;_.removeEventListener("dispose",ee),W(_)}function k(b){let _=n.get(b);if(_.__webglInit===void 0)return;let U=b.source,$=u.get(U);if($){let Q=$[_.__cacheKey];Q.usedTimes--,Q.usedTimes===0&&N(b),Object.keys($).length===0&&u.delete(U)}n.remove(b)}function N(b){let _=n.get(b);r.deleteTexture(_.__webglTexture);let U=b.source,$=u.get(U);delete $[_.__cacheKey],o.memory.textures--}function W(b){let _=b.texture,U=n.get(b),$=n.get(_);if($.__webglTexture!==void 0&&(r.deleteTexture($.__webglTexture),o.memory.textures--),b.depthTexture&&b.depthTexture.dispose(),b.isWebGLCubeRenderTarget)for(let Q=0;Q<6;Q++)r.deleteFramebuffer(U.__webglFramebuffer[Q]),U.__webglDepthbuffer&&r.deleteRenderbuffer(U.__webglDepthbuffer[Q]);else{if(r.deleteFramebuffer(U.__webglFramebuffer),U.__webglDepthbuffer&&r.deleteRenderbuffer(U.__webglDepthbuffer),U.__webglMultisampledFramebuffer&&r.deleteFramebuffer(U.__webglMultisampledFramebuffer),U.__webglColorRenderbuffer)for(let Q=0;Q=c&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+c),q+=1,b}function R(b){let _=[];return _.push(b.wrapS),_.push(b.wrapT),_.push(b.wrapR||0),_.push(b.magFilter),_.push(b.minFilter),_.push(b.anisotropy),_.push(b.internalFormat),_.push(b.format),_.push(b.type),_.push(b.generateMipmaps),_.push(b.premultiplyAlpha),_.push(b.flipY),_.push(b.unpackAlignment),_.push(b.encoding),_.join()}function z(b,_){let U=n.get(b);if(b.isVideoTexture&&Dt(b),b.isRenderTargetTexture===!1&&b.version>0&&U.__version!==b.version){let $=b.image;if($===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if($.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{ge(U,b,_);return}}t.bindTexture(3553,U.__webglTexture,33984+_)}function te(b,_){let U=n.get(b);if(b.version>0&&U.__version!==b.version){ge(U,b,_);return}t.bindTexture(35866,U.__webglTexture,33984+_)}function Y(b,_){let U=n.get(b);if(b.version>0&&U.__version!==b.version){ge(U,b,_);return}t.bindTexture(32879,U.__webglTexture,33984+_)}function ne(b,_){let U=n.get(b);if(b.version>0&&U.__version!==b.version){ye(U,b,_);return}t.bindTexture(34067,U.__webglTexture,33984+_)}let oe={[qs]:10497,[At]:33071,[Ys]:33648},ve={[ot]:9728,[Fr]:9984,[zr]:9986,[yt]:9729,[Oo]:9985,[rs]:9987};function X(b,_,U){if(U?(r.texParameteri(b,10242,oe[_.wrapS]),r.texParameteri(b,10243,oe[_.wrapT]),(b===32879||b===35866)&&r.texParameteri(b,32882,oe[_.wrapR]),r.texParameteri(b,10240,ve[_.magFilter]),r.texParameteri(b,10241,ve[_.minFilter])):(r.texParameteri(b,10242,33071),r.texParameteri(b,10243,33071),(b===32879||b===35866)&&r.texParameteri(b,32882,33071),(_.wrapS!==At||_.wrapT!==At)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(b,10240,D(_.magFilter)),r.texParameteri(b,10241,D(_.minFilter)),_.minFilter!==ot&&_.minFilter!==yt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){let $=e.get("EXT_texture_filter_anisotropic");if(_.type===xn&&e.has("OES_texture_float_linear")===!1||a===!1&&_.type===xi&&e.has("OES_texture_half_float_linear")===!1)return;(_.anisotropy>1||n.get(_).__currentAnisotropy)&&(r.texParameterf(b,$.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(_.anisotropy,i.getMaxAnisotropy())),n.get(_).__currentAnisotropy=_.anisotropy)}}function Ie(b,_){let U=!1;b.__webglInit===void 0&&(b.__webglInit=!0,_.addEventListener("dispose",Z));let $=_.source,Q=u.get($);Q===void 0&&(Q={},u.set($,Q));let ie=R(_);if(ie!==b.__cacheKey){Q[ie]===void 0&&(Q[ie]={texture:r.createTexture(),usedTimes:0},o.memory.textures++,U=!0),Q[ie].usedTimes++;let xe=Q[b.__cacheKey];xe!==void 0&&(Q[b.__cacheKey].usedTimes--,xe.usedTimes===0&&N(_)),b.__cacheKey=ie,b.__webglTexture=Q[ie].texture}return U}function ge(b,_,U){let $=3553;(_.isDataArrayTexture||_.isCompressedArrayTexture)&&($=35866),_.isData3DTexture&&($=32879);let Q=Ie(b,_),ie=_.source;t.bindTexture($,b.__webglTexture,33984+U);let xe=n.get(ie);if(ie.version!==xe.__version||Q===!0){t.activeTexture(33984+U),r.pixelStorei(37440,_.flipY),r.pixelStorei(37441,_.premultiplyAlpha),r.pixelStorei(3317,_.unpackAlignment),r.pixelStorei(37443,0);let se=S(_)&&y(_.image)===!1,H=w(_.image,se,!1,h);H=Nt(_,H);let de=y(H)||a,me=s.convert(_.format,_.encoding),le=s.convert(_.type),fe=v(_.internalFormat,me,le,_.encoding,_.isVideoTexture);X($,_,de);let he,Ee=_.mipmaps,Oe=a&&_.isVideoTexture!==!0,Ze=xe.__version===void 0||Q===!0,E=A(_,H,de);if(_.isDepthTexture)fe=6402,a?_.type===xn?fe=36012:_.type===gn?fe=33190:_.type===Jn?fe=35056:fe=33189:_.type===xn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),_.format===vn&&fe===6402&&_.type!==qa&&_.type!==gn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),_.type=gn,le=s.convert(_.type)),_.format===ei&&fe===6402&&(fe=34041,_.type!==Jn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),_.type=Jn,le=s.convert(_.type))),Ze&&(Oe?t.texStorage2D(3553,1,fe,H.width,H.height):t.texImage2D(3553,0,fe,H.width,H.height,0,me,le,null));else if(_.isDataTexture)if(Ee.length>0&&de){Oe&&Ze&&t.texStorage2D(3553,E,fe,Ee[0].width,Ee[0].height);for(let B=0,J=Ee.length;B>=1,J>>=1}}else if(Ee.length>0&&de){Oe&&Ze&&t.texStorage2D(3553,E,fe,Ee[0].width,Ee[0].height);for(let B=0,J=Ee.length;B0&&Ze++,t.texStorage2D(34067,Ze,he,H[0].width,H[0].height));for(let B=0;B<6;B++)if(se){Ee?t.texSubImage2D(34069+B,0,0,0,H[B].width,H[B].height,le,fe,H[B].data):t.texImage2D(34069+B,0,he,H[B].width,H[B].height,0,le,fe,H[B].data);for(let J=0;J=34069&&Q<=34074)&&r.framebufferTexture2D(36160,$,Q,n.get(U).__webglTexture,0),t.bindFramebuffer(36160,null)}function Fe(b,_,U){if(r.bindRenderbuffer(36161,b),_.depthBuffer&&!_.stencilBuffer){let $=33189;if(U||Ne(_)){let Q=_.depthTexture;Q&&Q.isDepthTexture&&(Q.type===xn?$=36012:Q.type===gn&&($=33190));let ie=Qe(_);Ne(_)?d.renderbufferStorageMultisampleEXT(36161,ie,$,_.width,_.height):r.renderbufferStorageMultisample(36161,ie,$,_.width,_.height)}else r.renderbufferStorage(36161,$,_.width,_.height);r.framebufferRenderbuffer(36160,36096,36161,b)}else if(_.depthBuffer&&_.stencilBuffer){let $=Qe(_);U&&Ne(_)===!1?r.renderbufferStorageMultisample(36161,$,35056,_.width,_.height):Ne(_)?d.renderbufferStorageMultisampleEXT(36161,$,35056,_.width,_.height):r.renderbufferStorage(36161,34041,_.width,_.height),r.framebufferRenderbuffer(36160,33306,36161,b)}else{let $=_.isWebGLMultipleRenderTargets===!0?_.texture:[_.texture];for(let Q=0;Q<$.length;Q++){let ie=$[Q],xe=s.convert(ie.format,ie.encoding),se=s.convert(ie.type),H=v(ie.internalFormat,xe,se,ie.encoding),de=Qe(_);U&&Ne(_)===!1?r.renderbufferStorageMultisample(36161,de,H,_.width,_.height):Ne(_)?d.renderbufferStorageMultisampleEXT(36161,de,H,_.width,_.height):r.renderbufferStorage(36161,H,_.width,_.height)}}r.bindRenderbuffer(36161,null)}function Se(b,_){if(_&&_.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,b),!(_.depthTexture&&_.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!n.get(_.depthTexture).__webglTexture||_.depthTexture.image.width!==_.width||_.depthTexture.image.height!==_.height)&&(_.depthTexture.image.width=_.width,_.depthTexture.image.height=_.height,_.depthTexture.needsUpdate=!0),z(_.depthTexture,0);let $=n.get(_.depthTexture).__webglTexture,Q=Qe(_);if(_.depthTexture.format===vn)Ne(_)?d.framebufferTexture2DMultisampleEXT(36160,36096,3553,$,0,Q):r.framebufferTexture2D(36160,36096,3553,$,0);else if(_.depthTexture.format===ei)Ne(_)?d.framebufferTexture2DMultisampleEXT(36160,33306,3553,$,0,Q):r.framebufferTexture2D(36160,33306,3553,$,0);else throw new Error("Unknown depthTexture format")}function pe(b){let _=n.get(b),U=b.isWebGLCubeRenderTarget===!0;if(b.depthTexture&&!_.__autoAllocateDepthBuffer){if(U)throw new Error("target.depthTexture not supported in Cube render targets");Se(_.__webglFramebuffer,b)}else if(U){_.__webglDepthbuffer=[];for(let $=0;$<6;$++)t.bindFramebuffer(36160,_.__webglFramebuffer[$]),_.__webglDepthbuffer[$]=r.createRenderbuffer(),Fe(_.__webglDepthbuffer[$],b,!1)}else t.bindFramebuffer(36160,_.__webglFramebuffer),_.__webglDepthbuffer=r.createRenderbuffer(),Fe(_.__webglDepthbuffer,b,!1);t.bindFramebuffer(36160,null)}function Ke(b,_,U){let $=n.get(b);_!==void 0&&ae($.__webglFramebuffer,b,b.texture,36064,3553),U!==void 0&&pe(b)}function rt(b){let _=b.texture,U=n.get(b),$=n.get(_);b.addEventListener("dispose",ee),b.isWebGLMultipleRenderTargets!==!0&&($.__webglTexture===void 0&&($.__webglTexture=r.createTexture()),$.__version=_.version,o.memory.textures++);let Q=b.isWebGLCubeRenderTarget===!0,ie=b.isWebGLMultipleRenderTargets===!0,xe=y(b)||a;if(Q){U.__webglFramebuffer=[];for(let se=0;se<6;se++)U.__webglFramebuffer[se]=r.createFramebuffer()}else{if(U.__webglFramebuffer=r.createFramebuffer(),ie)if(i.drawBuffers){let se=b.texture;for(let H=0,de=se.length;H0&&Ne(b)===!1){let se=ie?_:[_];U.__webglMultisampledFramebuffer=r.createFramebuffer(),U.__webglColorRenderbuffer=[],t.bindFramebuffer(36160,U.__webglMultisampledFramebuffer);for(let H=0;H0&&Ne(b)===!1){let _=b.isWebGLMultipleRenderTargets?b.texture:[b.texture],U=b.width,$=b.height,Q=16384,ie=[],xe=b.stencilBuffer?33306:36096,se=n.get(b),H=b.isWebGLMultipleRenderTargets===!0;if(H)for(let de=0;de<_.length;de++)t.bindFramebuffer(36160,se.__webglMultisampledFramebuffer),r.framebufferRenderbuffer(36160,36064+de,36161,null),t.bindFramebuffer(36160,se.__webglFramebuffer),r.framebufferTexture2D(36009,36064+de,3553,null,0);t.bindFramebuffer(36008,se.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,se.__webglFramebuffer);for(let de=0;de<_.length;de++){ie.push(36064+de),b.depthBuffer&&ie.push(xe);let me=se.__ignoreDepthValues!==void 0?se.__ignoreDepthValues:!1;if(me===!1&&(b.depthBuffer&&(Q|=256),b.stencilBuffer&&(Q|=1024)),H&&r.framebufferRenderbuffer(36008,36064,36161,se.__webglColorRenderbuffer[de]),me===!0&&(r.invalidateFramebuffer(36008,[xe]),r.invalidateFramebuffer(36009,[xe])),H){let le=n.get(_[de]).__webglTexture;r.framebufferTexture2D(36009,36064,3553,le,0)}r.blitFramebuffer(0,0,U,$,0,0,U,$,Q,9728),m&&r.invalidateFramebuffer(36008,ie)}if(t.bindFramebuffer(36008,null),t.bindFramebuffer(36009,null),H)for(let de=0;de<_.length;de++){t.bindFramebuffer(36160,se.__webglMultisampledFramebuffer),r.framebufferRenderbuffer(36160,36064+de,36161,se.__webglColorRenderbuffer[de]);let me=n.get(_[de]).__webglTexture;t.bindFramebuffer(36160,se.__webglFramebuffer),r.framebufferTexture2D(36009,36064+de,3553,me,0)}t.bindFramebuffer(36009,se.__webglMultisampledFramebuffer)}}function Qe(b){return Math.min(f,b.samples)}function Ne(b){let _=n.get(b);return a&&b.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&_.__useRenderToTexture!==!1}function Dt(b){let _=o.render.frame;g.get(b)!==_&&(g.set(b,_),b.update())}function Nt(b,_){let U=b.encoding,$=b.format,Q=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||b.format===Zs||U!==bn&&(U===ke?a===!1?e.has("EXT_sRGB")===!0&&$===Et?(b.format=Zs,b.minFilter=yt,b.generateMipmaps=!1):_=Yi.sRGBToLinear(_):($!==Et||Q!==Mn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",U)),_}this.allocateTextureUnit=G,this.resetTextureUnits=K,this.setTexture2D=z,this.setTexture2DArray=te,this.setTexture3D=Y,this.setTextureCube=ne,this.rebindTextures=Ke,this.setupRenderTarget=rt,this.updateRenderTargetMipmap=tt,this.updateMultisampleRenderTarget=Pt,this.setupDepthRenderbuffer=pe,this.setupFrameBufferTexture=ae,this.useMultisampledRTT=Ne}function Qd(r,e,t){let n=t.isWebGL2;function i(s,o=null){let a;if(s===Mn)return 5121;if(s===Vo)return 32819;if(s===Ho)return 32820;if(s===Uo)return 5120;if(s===Bo)return 5122;if(s===qa)return 5123;if(s===ko)return 5124;if(s===gn)return 5125;if(s===xn)return 5126;if(s===xi)return n?5131:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===Wo)return 6406;if(s===Et)return 6408;if(s===Xo)return 6409;if(s===qo)return 6410;if(s===vn)return 6402;if(s===ei)return 34041;if(s===Yo)return 6403;if(s===Go)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(s===Zs)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===Zo)return 36244;if(s===Jo)return 33319;if(s===$o)return 33320;if(s===Ko)return 36249;if(s===fs||s===ps||s===ms||s===gs)if(o===ke)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===fs)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===ms)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===gs)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===fs)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===ms)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===gs)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Or||s===Ur||s===Br||s===kr)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===Or)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Ur)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Br)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===kr)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Qo)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Vr||s===Hr)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(s===Vr)return o===ke?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Hr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Wr||s===Gr||s===Xr||s===qr||s===Yr||s===Zr||s===Jr||s===$r||s===Kr||s===Qr||s===jr||s===ea||s===ta||s===na)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Wr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Gr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Xr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===qr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Yr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Zr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Jr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===$r)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===Kr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Qr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jr)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===ea)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ta)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===na)return o===ke?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===ia)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(s===ia)return o===ke?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return s===Jn?n?34042:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var cr=class extends pt{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},Yn=class extends ht{constructor(){super(),this.isGroup=!0,this.type="Group"}},jd={type:"move"},gi=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Yn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Yn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new L,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new L),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Yn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new L,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new L),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let i=null,s=null,o=null,a=this._targetRay,c=this._grip,l=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(l&&e.hand){o=!0;for(let p of e.hand.values()){let u=t.getJointPose(p,n);if(l.joints[p.jointName]===void 0){let T=new Yn;T.matrixAutoUpdate=!1,T.visible=!1,l.joints[p.jointName]=T,l.add(T)}let x=l.joints[p.jointName];u!==null&&(x.matrix.fromArray(u.transform.matrix),x.matrix.decompose(x.position,x.rotation,x.scale),x.jointRadius=u.radius),x.visible=u!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],d=h.position.distanceTo(f.position),m=.02,g=.005;l.inputState.pinching&&d>m+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&d<=m-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(i=t.getPose(e.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(jd)))}return a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=o!==null),this}},hr=class extends gt{constructor(e,t,n,i,s,o,a,c,l,h){if(h=h!==void 0?h:vn,h!==vn&&h!==ei)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===vn&&(n=gn),n===void 0&&h===ei&&(n=Jn),super(null,i,s,o,a,c,h,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=a!==void 0?a:ot,this.minFilter=c!==void 0?c:ot,this.flipY=!1,this.generateMipmaps=!1}},ur=class extends an{constructor(e,t){super();let n=this,i=null,s=1,o=null,a="local-floor",c=null,l=null,h=null,f=null,d=null,m=null,g=t.getContextAttributes(),p=null,u=null,x=[],T=[],w=new pt;w.layers.enable(1),w.viewport=new Ge;let y=new pt;y.layers.enable(2),y.viewport=new Ge;let S=[w,y],C=new cr;C.layers.enable(1),C.layers.enable(2);let F=null,v=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(R){let z=x[R];return z===void 0&&(z=new gi,x[R]=z),z.getTargetRaySpace()},this.getControllerGrip=function(R){let z=x[R];return z===void 0&&(z=new gi,x[R]=z),z.getGripSpace()},this.getHand=function(R){let z=x[R];return z===void 0&&(z=new gi,x[R]=z),z.getHandSpace()};function A(R){let z=T.indexOf(R.inputSource);if(z===-1)return;let te=x[z];te!==void 0&&te.dispatchEvent({type:R.type,data:R.inputSource})}function D(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",D),i.removeEventListener("inputsourceschange",Z);for(let R=0;R=0&&(T[Y]=null,x[Y].dispatchEvent({type:"disconnected",data:te}))}for(let z=0;z=T.length){T.push(te),Y=oe;break}else if(T[oe]===null){T[oe]=te,Y=oe;break}if(Y===-1)break}let ne=x[Y];ne&&ne.dispatchEvent({type:"connected",data:te})}}let ee=new L,k=new L;function N(R,z,te){ee.setFromMatrixPosition(z.matrixWorld),k.setFromMatrixPosition(te.matrixWorld);let Y=ee.distanceTo(k),ne=z.projectionMatrix.elements,oe=te.projectionMatrix.elements,ve=ne[14]/(ne[10]-1),X=ne[14]/(ne[10]+1),Ie=(ne[9]+1)/ne[5],ge=(ne[9]-1)/ne[5],ye=(ne[8]-1)/ne[0],ae=(oe[8]+1)/oe[0],Fe=ve*ye,Se=ve*ae,pe=Y/(-ye+ae),Ke=pe*-ye;z.matrixWorld.decompose(R.position,R.quaternion,R.scale),R.translateX(Ke),R.translateZ(pe),R.matrixWorld.compose(R.position,R.quaternion,R.scale),R.matrixWorldInverse.copy(R.matrixWorld).invert();let rt=ve+pe,tt=X+pe,Pt=Fe-Ke,Qe=Se+(Y-Ke),Ne=Ie*X/tt*rt,Dt=ge*X/tt*rt;R.projectionMatrix.makePerspective(Pt,Qe,Ne,Dt,rt,tt)}function W(R,z){z===null?R.matrixWorld.copy(R.matrix):R.matrixWorld.multiplyMatrices(z.matrixWorld,R.matrix),R.matrixWorldInverse.copy(R.matrixWorld).invert()}this.updateCamera=function(R){if(i===null)return;C.near=y.near=w.near=R.near,C.far=y.far=w.far=R.far,(F!==C.near||v!==C.far)&&(i.updateRenderState({depthNear:C.near,depthFar:C.far}),F=C.near,v=C.far);let z=R.parent,te=C.cameras;W(C,z);for(let ne=0;ne0&&(p.alphaTest.value=u.alphaTest);let x=e.get(u).envMap;if(x&&(p.envMap.value=x,p.flipEnvMap.value=x.isCubeTexture&&x.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=u.reflectivity,p.ior.value=u.ior,p.refractionRatio.value=u.refractionRatio),u.lightMap){p.lightMap.value=u.lightMap;let y=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=u.lightMapIntensity*y}u.aoMap&&(p.aoMap.value=u.aoMap,p.aoMapIntensity.value=u.aoMapIntensity);let T;u.map?T=u.map:u.specularMap?T=u.specularMap:u.displacementMap?T=u.displacementMap:u.normalMap?T=u.normalMap:u.bumpMap?T=u.bumpMap:u.roughnessMap?T=u.roughnessMap:u.metalnessMap?T=u.metalnessMap:u.alphaMap?T=u.alphaMap:u.emissiveMap?T=u.emissiveMap:u.clearcoatMap?T=u.clearcoatMap:u.clearcoatNormalMap?T=u.clearcoatNormalMap:u.clearcoatRoughnessMap?T=u.clearcoatRoughnessMap:u.iridescenceMap?T=u.iridescenceMap:u.iridescenceThicknessMap?T=u.iridescenceThicknessMap:u.specularIntensityMap?T=u.specularIntensityMap:u.specularColorMap?T=u.specularColorMap:u.transmissionMap?T=u.transmissionMap:u.thicknessMap?T=u.thicknessMap:u.sheenColorMap?T=u.sheenColorMap:u.sheenRoughnessMap&&(T=u.sheenRoughnessMap),T!==void 0&&(T.isWebGLRenderTarget&&(T=T.texture),T.matrixAutoUpdate===!0&&T.updateMatrix(),p.uvTransform.value.copy(T.matrix));let w;u.aoMap?w=u.aoMap:u.lightMap&&(w=u.lightMap),w!==void 0&&(w.isWebGLRenderTarget&&(w=w.texture),w.matrixAutoUpdate===!0&&w.updateMatrix(),p.uv2Transform.value.copy(w.matrix))}function s(p,u){p.diffuse.value.copy(u.color),p.opacity.value=u.opacity}function o(p,u){p.dashSize.value=u.dashSize,p.totalSize.value=u.dashSize+u.gapSize,p.scale.value=u.scale}function a(p,u,x,T){p.diffuse.value.copy(u.color),p.opacity.value=u.opacity,p.size.value=u.size*x,p.scale.value=T*.5,u.map&&(p.map.value=u.map),u.alphaMap&&(p.alphaMap.value=u.alphaMap),u.alphaTest>0&&(p.alphaTest.value=u.alphaTest);let w;u.map?w=u.map:u.alphaMap&&(w=u.alphaMap),w!==void 0&&(w.matrixAutoUpdate===!0&&w.updateMatrix(),p.uvTransform.value.copy(w.matrix))}function c(p,u){p.diffuse.value.copy(u.color),p.opacity.value=u.opacity,p.rotation.value=u.rotation,u.map&&(p.map.value=u.map),u.alphaMap&&(p.alphaMap.value=u.alphaMap),u.alphaTest>0&&(p.alphaTest.value=u.alphaTest);let x;u.map?x=u.map:u.alphaMap&&(x=u.alphaMap),x!==void 0&&(x.matrixAutoUpdate===!0&&x.updateMatrix(),p.uvTransform.value.copy(x.matrix))}function l(p,u){p.specular.value.copy(u.specular),p.shininess.value=Math.max(u.shininess,1e-4)}function h(p,u){u.gradientMap&&(p.gradientMap.value=u.gradientMap)}function f(p,u){p.roughness.value=u.roughness,p.metalness.value=u.metalness,u.roughnessMap&&(p.roughnessMap.value=u.roughnessMap),u.metalnessMap&&(p.metalnessMap.value=u.metalnessMap),e.get(u).envMap&&(p.envMapIntensity.value=u.envMapIntensity)}function d(p,u,x){p.ior.value=u.ior,u.sheen>0&&(p.sheenColor.value.copy(u.sheenColor).multiplyScalar(u.sheen),p.sheenRoughness.value=u.sheenRoughness,u.sheenColorMap&&(p.sheenColorMap.value=u.sheenColorMap),u.sheenRoughnessMap&&(p.sheenRoughnessMap.value=u.sheenRoughnessMap)),u.clearcoat>0&&(p.clearcoat.value=u.clearcoat,p.clearcoatRoughness.value=u.clearcoatRoughness,u.clearcoatMap&&(p.clearcoatMap.value=u.clearcoatMap),u.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=u.clearcoatRoughnessMap),u.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(u.clearcoatNormalScale),p.clearcoatNormalMap.value=u.clearcoatNormalMap,u.side===Mt&&p.clearcoatNormalScale.value.negate())),u.iridescence>0&&(p.iridescence.value=u.iridescence,p.iridescenceIOR.value=u.iridescenceIOR,p.iridescenceThicknessMinimum.value=u.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=u.iridescenceThicknessRange[1],u.iridescenceMap&&(p.iridescenceMap.value=u.iridescenceMap),u.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=u.iridescenceThicknessMap)),u.transmission>0&&(p.transmission.value=u.transmission,p.transmissionSamplerMap.value=x.texture,p.transmissionSamplerSize.value.set(x.width,x.height),u.transmissionMap&&(p.transmissionMap.value=u.transmissionMap),p.thickness.value=u.thickness,u.thicknessMap&&(p.thicknessMap.value=u.thicknessMap),p.attenuationDistance.value=u.attenuationDistance,p.attenuationColor.value.copy(u.attenuationColor)),p.specularIntensity.value=u.specularIntensity,p.specularColor.value.copy(u.specularColor),u.specularIntensityMap&&(p.specularIntensityMap.value=u.specularIntensityMap),u.specularColorMap&&(p.specularColorMap.value=u.specularColorMap)}function m(p,u){u.matcap&&(p.matcap.value=u.matcap)}function g(p,u){p.referencePosition.value.copy(u.referencePosition),p.nearDistance.value=u.nearDistance,p.farDistance.value=u.farDistance}return{refreshFogUniforms:t,refreshMaterialUniforms:n}}function tf(r,e,t,n){let i={},s={},o=[],a=t.isWebGL2?r.getParameter(35375):0;function c(T,w){let y=w.program;n.uniformBlockBinding(T,y)}function l(T,w){let y=i[T.id];y===void 0&&(g(T),y=h(T),i[T.id]=y,T.addEventListener("dispose",u));let S=w.program;n.updateUBOMapping(T,S);let C=e.render.frame;s[T.id]!==C&&(d(T),s[T.id]=C)}function h(T){let w=f();T.__bindingPointIndex=w;let y=r.createBuffer(),S=T.__size,C=T.usage;return r.bindBuffer(35345,y),r.bufferData(35345,S,C),r.bindBuffer(35345,null),r.bindBufferBase(35345,w,y),y}function f(){for(let T=0;T0){C=y%S;let Z=S-C;C!==0&&Z-D.boundary<0&&(y+=S-C,A.__offset=y)}y+=D.storage}return C=y%S,C>0&&(y+=S-C),T.__size=y,T.__cache={},this}function p(T){let w=T.value,y={boundary:0,storage:0};return typeof w=="number"?(y.boundary=4,y.storage=4):w.isVector2?(y.boundary=8,y.storage=8):w.isVector3||w.isColor?(y.boundary=16,y.storage=12):w.isVector4?(y.boundary=16,y.storage=16):w.isMatrix3?(y.boundary=48,y.storage=48):w.isMatrix4?(y.boundary=64,y.storage=64):w.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",w),y}function u(T){let w=T.target;w.removeEventListener("dispose",u);let y=o.indexOf(w.__bindingPointIndex);o.splice(y,1),r.deleteBuffer(i[w.id]),delete i[w.id],delete s[w.id]}function x(){for(let T in i)r.deleteBuffer(i[T]);o=[],i={},s={}}return{bind:c,update:l,dispose:x}}function nf(){let r=qi("canvas");return r.style.display="block",r}function sf(r={}){this.isWebGLRenderer=!0;let e=r.canvas!==void 0?r.canvas:nf(),t=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,o=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,a=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;t!==null?h=t.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,d=null,m=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=bn,this.physicallyCorrectLights=!1,this.toneMapping=Wt,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});let p=this,u=!1,x=0,T=0,w=null,y=-1,S=null,C=new Ge,F=new Ge,v=null,A=e.width,D=e.height,Z=1,ee=null,k=null,N=new Ge(0,0,A,D),W=new Ge(0,0,A,D),q=!1,K=new ns,G=!1,R=!1,z=null,te=new Xe,Y=new De,ne=new L,oe={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ve(){return w===null?Z:1}let X=t;function Ie(M,I){for(let O=0;O0?d=g[g.length-1]:d=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function Je(M,I,O,P){if(M.visible===!1)return;if(M.layers.test(I.layers)){if(M.isGroup)O=M.renderOrder;else if(M.isLOD)M.autoUpdate===!0&&M.update(I);else if(M.isLight)d.pushLight(M),M.castShadow&&d.pushShadow(M);else if(M.isSprite){if(!M.frustumCulled||K.intersectsSprite(M)){P&&ne.setFromMatrixPosition(M.matrixWorld).applyMatrix4(te);let _e=Qe.update(M),we=M.material;we.visible&&f.push(M,_e,we,O,ne.z,null)}}else if((M.isMesh||M.isLine||M.isPoints)&&(M.isSkinnedMesh&&M.skeleton.frame!==Fe.render.frame&&(M.skeleton.update(),M.skeleton.frame=Fe.render.frame),!M.frustumCulled||K.intersectsObject(M))){P&&ne.setFromMatrixPosition(M.matrixWorld).applyMatrix4(te);let _e=Qe.update(M),we=M.material;if(Array.isArray(we)){let Me=_e.groups;for(let Pe=0,Te=Me.length;Pe0&&ln(V,I,O),P&&ae.viewport(C.copy(P)),V.length>0&&Ue(V,I,O),ue.length>0&&Ue(ue,I,O),_e.length>0&&Ue(_e,I,O),ae.buffers.depth.setTest(!0),ae.buffers.depth.setMask(!0),ae.buffers.color.setMask(!0),ae.setPolygonOffset(!1)}function ln(M,I,O){let P=ye.isWebGL2;z===null&&(z=new Xt(1,1,{generateMipmaps:!0,type:ge.has("EXT_color_buffer_half_float")?xi:Mn,minFilter:rs,samples:P&&s===!0?4:0})),p.getDrawingBufferSize(Y),P?z.setSize(Y.x,Y.y):z.setSize(Xi(Y.x),Xi(Y.y));let V=p.getRenderTarget();p.setRenderTarget(z),p.clear();let ue=p.toneMapping;p.toneMapping=Wt,Ue(M,I,O),p.toneMapping=ue,pe.updateMultisampleRenderTarget(z),pe.updateRenderTargetMipmap(z),p.setRenderTarget(V)}function Ue(M,I,O){let P=I.isScene===!0?I.overrideMaterial:null;for(let V=0,ue=M.length;V0&&pe.useMultisampledRTT(M)===!1?V=Se.get(M).__webglMultisampledFramebuffer:V=Te,C.copy(M.viewport),F.copy(M.scissor),v=M.scissorTest}else C.copy(N).multiplyScalar(Z).floor(),F.copy(W).multiplyScalar(Z).floor(),v=q;if(ae.bindFramebuffer(36160,V)&&ye.drawBuffers&&P&&ae.drawBuffers(M,V),ae.viewport(C),ae.scissor(F),ae.setScissorTest(v),ue){let Me=Se.get(M.texture);X.framebufferTexture2D(36160,36064,34069+I,Me.__webglTexture,O)}else if(_e){let Me=Se.get(M.texture),Pe=I||0;X.framebufferTextureLayer(36160,36064,Me.__webglTexture,O||0,Pe)}y=-1},this.readRenderTargetPixels=function(M,I,O,P,V,ue,_e){if(!(M&&M.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let we=Se.get(M).__webglFramebuffer;if(M.isWebGLCubeRenderTarget&&_e!==void 0&&(we=we[_e]),we){ae.bindFramebuffer(36160,we);try{let Me=M.texture,Pe=Me.format,Te=Me.type;if(Pe!==Et&&se.convert(Pe)!==X.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Ae=Te===xi&&(ge.has("EXT_color_buffer_half_float")||ye.isWebGL2&&ge.has("EXT_color_buffer_float"));if(Te!==Mn&&se.convert(Te)!==X.getParameter(35738)&&!(Te===xn&&(ye.isWebGL2||ge.has("OES_texture_float")||ge.has("WEBGL_color_buffer_float")))&&!Ae){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}I>=0&&I<=M.width-P&&O>=0&&O<=M.height-V&&X.readPixels(I,O,P,V,se.convert(Pe),se.convert(Te),ue)}finally{let Me=w!==null?Se.get(w).__webglFramebuffer:null;ae.bindFramebuffer(36160,Me)}}},this.copyFramebufferToTexture=function(M,I,O=0){let P=Math.pow(2,-O),V=Math.floor(I.image.width*P),ue=Math.floor(I.image.height*P);pe.setTexture2D(I,0),X.copyTexSubImage2D(3553,O,0,0,M.x,M.y,V,ue),ae.unbindTexture()},this.copyTextureToTexture=function(M,I,O,P=0){let V=I.image.width,ue=I.image.height,_e=se.convert(O.format),we=se.convert(O.type);pe.setTexture2D(O,0),X.pixelStorei(37440,O.flipY),X.pixelStorei(37441,O.premultiplyAlpha),X.pixelStorei(3317,O.unpackAlignment),I.isDataTexture?X.texSubImage2D(3553,P,M.x,M.y,V,ue,_e,we,I.image.data):I.isCompressedTexture?X.compressedTexSubImage2D(3553,P,M.x,M.y,I.mipmaps[0].width,I.mipmaps[0].height,_e,I.mipmaps[0].data):X.texSubImage2D(3553,P,M.x,M.y,_e,we,I.image),P===0&&O.generateMipmaps&&X.generateMipmap(3553),ae.unbindTexture()},this.copyTextureToTexture3D=function(M,I,O,P,V=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let ue=M.max.x-M.min.x+1,_e=M.max.y-M.min.y+1,we=M.max.z-M.min.z+1,Me=se.convert(P.format),Pe=se.convert(P.type),Te;if(P.isData3DTexture)pe.setTexture3D(P,0),Te=32879;else if(P.isDataArrayTexture)pe.setTexture2DArray(P,0),Te=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}X.pixelStorei(37440,P.flipY),X.pixelStorei(37441,P.premultiplyAlpha),X.pixelStorei(3317,P.unpackAlignment);let Ae=X.getParameter(3314),Be=X.getParameter(32878),cn=X.getParameter(3316),Cn=X.getParameter(3315),Pn=X.getParameter(32877),Lt=O.isCompressedTexture?O.mipmaps[0]:O.image;X.pixelStorei(3314,Lt.width),X.pixelStorei(32878,Lt.height),X.pixelStorei(3316,M.min.x),X.pixelStorei(3315,M.min.y),X.pixelStorei(32877,M.min.z),O.isDataTexture||O.isData3DTexture?X.texSubImage3D(Te,V,I.x,I.y,I.z,ue,_e,we,Me,Pe,Lt.data):O.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),X.compressedTexSubImage3D(Te,V,I.x,I.y,I.z,ue,_e,we,Me,Lt.data)):X.texSubImage3D(Te,V,I.x,I.y,I.z,ue,_e,we,Me,Pe,Lt),X.pixelStorei(3314,Ae),X.pixelStorei(32878,Be),X.pixelStorei(3316,cn),X.pixelStorei(3315,Cn),X.pixelStorei(32877,Pn),V===0&&P.generateMipmaps&&X.generateMipmap(Te),ae.unbindTexture()},this.initTexture=function(M){M.isCubeTexture?pe.setTextureCube(M,0):M.isData3DTexture?pe.setTexture3D(M,0):M.isDataArrayTexture||M.isCompressedArrayTexture?pe.setTexture2DArray(M,0):pe.setTexture2D(M,0),ae.unbindTexture()},this.resetState=function(){x=0,T=0,w=null,ae.reset(),H.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var dr=class extends sf{};dr.prototype.isWebGL1Renderer=!0;function nn(r,e,t){return to(r)?new r.constructor(r.subarray(e,t!==void 0?t:r.length)):r.slice(e,t)}function ki(r,e,t){return!r||!t&&r.constructor===e?r:typeof e.BYTES_PER_ELEMENT=="number"?new e(r):Array.prototype.slice.call(r)}function to(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var ii=class{constructor(e,t,n,i){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new t.constructor(n),this.sampleValues=t,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,n=this._cachedIndex,i=t[n],s=t[n-1];n:{e:{let o;t:{i:if(!(e=s)){let a=t[1];e=s)break e}o=n,n=0;break t}break n}for(;n>>1;et;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);let a=this.getValueSize();this.times=nn(n,s,o),this.values=nn(this.values,s*a,o*a)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){let c=n[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(i!==void 0&&to(i))for(let a=0,c=i.length;a!==c;++a){let l=i[a];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,l),e=!1;break}}return e}optimize(){let e=nn(this.times),t=nn(this.values),n=this.getValueSize(),i=this.getInterpolation()===xs,s=e.length-1,o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*n,c=o*n,l=0;l!==n;++l)t[c+l]=t[a+l];++o}return o!==e.length?(this.times=nn(e,0,o),this.values=nn(t,0,o*n)):(this.times=e,this.values=t),this}clone(){let e=nn(this.times,0),t=nn(this.values,0),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}};Ct.prototype.TimeBufferType=Float32Array;Ct.prototype.ValueBufferType=Float32Array;Ct.prototype.DefaultInterpolation=Wi;var An=class extends Ct{};An.prototype.ValueTypeName="bool";An.prototype.ValueBufferType=Array;An.prototype.DefaultInterpolation=Hi;An.prototype.InterpolantFactoryMethodLinear=void 0;An.prototype.InterpolantFactoryMethodSmooth=void 0;var gr=class extends Ct{};gr.prototype.ValueTypeName="color";var xr=class extends Ct{};xr.prototype.ValueTypeName="number";var _r=class extends ii{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(n-t)/(i-t),l=e*a;for(let h=l+a;l!==h;l+=4)on.slerpFlat(s,0,o,l-a,o,l,c);return s}},yi=class extends Ct{InterpolantFactoryMethodLinear(e){return new _r(this.times,this.values,this.getValueSize(),e)}};yi.prototype.ValueTypeName="quaternion";yi.prototype.DefaultInterpolation=Wi;yi.prototype.InterpolantFactoryMethodSmooth=void 0;var En=class extends Ct{};En.prototype.ValueTypeName="string";En.prototype.ValueBufferType=Array;En.prototype.DefaultInterpolation=Hi;En.prototype.InterpolantFactoryMethodLinear=void 0;En.prototype.InterpolantFactoryMethodSmooth=void 0;var vr=class extends Ct{};vr.prototype.ValueTypeName="vector";var Sr="\\\\[\\\\]\\\\.:\\\\/",rf=new RegExp("["+Sr+"]","g"),Tr="[^"+Sr+"]",af="[^"+Sr.replace("\\\\.","")+"]",of=/((?:WC+[\\/:])*)/.source.replace("WC",Tr),lf=/(WCOD+)?/.source.replace("WCOD",af),cf=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",Tr),hf=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",Tr),uf=new RegExp("^"+of+lf+cf+hf+"$"),df=["material","materials","bones","map"],yr=class{constructor(e,t,n){let i=n||Re.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}},Re=class{constructor(e,t,n){this.path=t,this.parsedPath=n||Re.parseTrackName(t),this.node=Re.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new Re.Composite(e,t,n):new Re(e,t,n)}static sanitizeNodeName(e){return e.replace(/\\s/g,"_").replace(rf,"")}static parseTrackName(e){let t=uf.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);df.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){let n=function(s){for(let o=0;oMath.round(A*a);if(u[0]=`${v(S.x)}, ${v(S.y)}, ${v(S.z)}`,u[1]=`${v(C.x)}, ${v(C.y)}, ${v(C.z)}`,u[2]=`${v(F.x)}, ${v(F.y)}, ${v(F.z)}`,!(u[0]===u[1]||u[1]===u[2]||u[2]===u[0]))for(let A=0;A<3;A++){let D=(A+1)%3,Z=u[A],ee=u[D],k=cs[p[A]],N=cs[p[D]],W=`${Z}_${ee}`,q=`${ee}_${Z}`;q in x&&x[q]?(Ar.dot(x[q].normal)<=c&&(T.push(k.x,k.y,k.z),T.push(N.x,N.y,N.z)),x[q]=null):W in x||(x[W]={index0:g[A],index1:g[D],normal:Ar.clone()})}}for(let y in x)if(x[y]){let{index0:S,index1:C}=x[y];os.fromBufferAttribute(d,S),ls.fromBufferAttribute(d,C),T.push(os.x,os.y,os.z),T.push(ls.x,ls.y,ls.z)}let w=new self[h](T);no.postMessage({id:t,vertices:w},[w.buffer])}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2022 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n',"worker","loadedGeometries","jobCount","geom","revertWireframeMode","revertObjectOpacity","revertAppliedMaterialToObject","resetObjectStyleById","resetObjectStyle","setObjectOpacity","clonedMaterial","setObjectOpacityById","getObjectById","revertObjectOpacityById","Failed to find object by id: ","applyMaterialToObject","originalMaterial","revertAppliedMaterialToObjectById","materialForWireframe","setWireframeMode","revertWireframeModeById","findInner","objectId","Value","elementId","[OU] invalid floor: ","getFloorsFromString","level","matchFloors","setVisibleForFloors","traverseObjectByFloors","revertVisibleForFloors","revertVisibleForFloorsById","createOutlines","visibleOnly","createOutline","removeFromParent","addOutlines","hasOutline","setOutlinesVisibility","isOutline","OUTLINE_MATERIAL","createOutlineSync","createBox","removeEmptyObjects","isEmptyObject","removeEmptyObjectsFromRemovingObjects","setSharedVariablesOfObject","BOX_FACE_MATERIAL","resetMergeInfo","mergeInfo","removedObjects","mergedMeshes","mergedLines","mergedPoints","mergedUnknownTypeObjects","mergeInner","tryHandleMergeableObjects","mergeLineGeometries","layerName","[Merged] ","releaseGeometryManually","areObjectsMergeable","indexes","isFilteredByOtherFactors","relativeToCenter","deepMerge","[Merge] Built merged indexes for ","applyMatrix","[Merge] Ran deepMerge() in ","mergeBufferGeometriesWithLinesToLineSegements","[Merge] Geometry '","' contains index buffer, going to convert it to non-indexed.","[Merge] mergeBufferGeometries() failed with geometry at index "," attribute exists among all geometries, or in none of them","positionCount","[Merge] mergeBufferGeometries() failed while trying to merge the ","[Merge] mergeBufferAttributes() failed. THREE.BufferAttribute.itemSize must be consistent across matching attributes.","areGeometriesMergeable","isMergedMesh","isFaceIndexInBatch","getBatchByFaceIndex","[Merge]: Invalid faceIndex: ","getBatchIdByFaceIndex","batchId","getBatchByBatchId","[Merge]: Unexpected position: ",", or index: ","originalIndex","[Merge] After building bvh, the original index data is not preserved !","isExplodeUp","scene","[EXP] Invalid objectId: ","[EXP] Invalid scale: ","getObjectCenter","explode",", or this.power: ","[EXP] No children to explode!","[EXP] Exploding "," at: ","explodeObject","originalPosition","[EXP] Failed to get center for ","', will use its position as center","unexplodeObject","unexplodeLeafObject","setOnlyExplodeUp","DEFAULT_SCALE","getVisibleObjectBoundingBox","selectable","getObjectsBoundingBox","getInstancedMeshBoundingBox","[SceneUtils] Found object(",") with invalid matrix: ","unexplode","explodeObjects","modify","neighbors","collapseNeighbor","collapseCost","minCost","totalCost","costCount","assert","removeIfNonNeighbor","hasVertex","replaceVertex","computeNormal","addUniqueNeighbor","simplifyGeometry","simplifyPoints","simplifiedInfo","getNumberOfVerticesToRemove","COLOR_TEMPLATES","NAME","createSkyOfGradientRampByBoundingBox","MIN_SKY_RADIUS","MAX_SKY_RADIUS","createSkyOfGradientRamp","createSkyFromTextures","\n varying vec3 vWorldPosition;\n void main() {\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }","\n uniform vec3 topColor;\n uniform vec3 skylineColor;\n uniform vec3 bottomColor;\n uniform float offset;\n uniform float exponent;\n uniform vec3 skyCenter;\n uniform vec3 sunDirection;\n varying vec3 vWorldPosition;\n // Used to find the position to draw the sun. Sun size is bigger when this value is smaller\n const float sunDirectionDotThreshold = 0.98;\n\n void main() {\n vec3 position = vec3(vWorldPosition.x - skyCenter.x, vWorldPosition.y - skyCenter.y, vWorldPosition.z - skyCenter.z);\n vec3 normalizedPosition = normalize( position + offset );\n float h = normalizedPosition.y;\n vec3 color;\n if (h > 0.0) {\n color = mix( skylineColor, topColor, pow( h, exponent ) );\n\n // draw the sun\n float dotResult = dot(sunDirection, normalizedPosition);\n if (dotResult > sunDirectionDotThreshold) {\n const float sunSize = 1.0 - sunDirectionDotThreshold; // maximum sun size\n const vec3 sunColor = vec3(1.0, 1.0, 1.0);\n color = mix(color, sunColor, pow((dotResult + sunSize - 1.0) / sunSize, 3.0));\n }\n } else {\n color = mix( skylineColor, bottomColor, pow( -h, exponent ) );\n }\n gl_FragColor = vec4(color , 1.0);\n }","clientHeight","Top","Bottom","Front","Left","getCameraPositionByBboxAndDirection","sleep","twinkle","twinklingObjectIds","DEFAULT_LINE_WIDTH","DEFAULT_STROKE_STYLE","DEFAULT_FILL_STYLE","#000000","lineColor","fillColor","tolerance","editPointSize","editPointColor","setTolerance","ctx","draw","drawSelect","drawBounds","drawCenter","getClassType","getVertexs","setFillColor","isSelected","getBounds","transToScreenCoord","strokeStyle","stroke","restore","yellow","beginPath","drawableMap","category","addDrawable","updateDrawable","setData","removeDrawable","getDrawableById","getDrawables","getData","setDrawableDatas","createDrawable","isPointInPath","LayoutChanged","RenderAfter","drawableLists","projScreenMatrix","Invalid drawable type: ","container","viewer","viewerContainer","raycaster","getPixelSize","arrayToVector3","eye","look","initCanvas","frustum","classList","overlay-renderer","absolute","0px","userSelect","devicePixelRatio","clearCanvas","clearRect","addDrawableList","getSortedDrawables","getBoundingSphere","getDrawablesByPosition","measureTextLength","measureText","renderer","@@toPrimitive must return a primitive value.","getOwnPropertyDescriptors","output","prefix","i18next:","logger","setDebug","forward","deprecate","observers","###","obj","\\$&","&","<","/","substring","keySeparator","ignoreJSONStructure","addNamespaces","getResource","addResources","removeResourceBundle","hasResourceBundle","removeNamespaces","getResourceBundle","defaultNS","getDataByLanguage","hasLanguageSomeTranslations","processors","resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils","translator","changeLanguage","res","extractFromKey","nsSeparator","userDefinedKeySeparator","userDefinedNsSeparator","overloadTranslationOptionHandler","returnDetails","lng","appendNamespaceToCIMode","usedKey","exactUsedKey","joinArrays","handleAsObject","returnObjects","returnedObjectHandler","key '",")' returned an object instead of string.","extendTranslation","hasDefaultValue","defaultValue","missingKeyNoValueFallbackToKey","updateKey","missingKey","Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","compatibilityAPI","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestingRegexp","interpolate","nest","It seems you are nesting recursively key: "," in key: ","postProcess","handle","postProcessPassResolved","isValidLookup","namespaces","fallbackNS","shouldUseIntlApi","lngs","hasLoadedNamespace",'key "','" won\'t get resolved as namespace "',"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!","addLookupKeys","getSuffix","pluralSeparator","contextSeparator","returnEmptyString","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","hans","latn","cyrl","cans","mong","lowerCaseLng","sgn","cleanCode","isSupportedCode","languageOnly","nonExplicitSupportedLngs","getBestMatchFromCodes","rejecting language code not found in supportedLngs: ","currentOnly","ach","arn","fil","mfe","pt-BR","ast","dev","fur","mai","nah","nap","pms","sco","jbo","sah","mnk","compatibilityJSON","rules","getRule","needsPlural","pluralCategories","getPluralFormsOfKey","prepend","getSuffixRetroCompatible","no plural rule found for: ","noAbs","numbers","plural","_plural_","escape","escapeValue","useRawValueToEscape","prefixEscaped","suffix","suffixEscaped","formatSeparator","unescapePrefix","nestingPrefix","nestingPrefixEscaped","$t(","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","(.+?)","unescapeSuffix","$$$$","missingInterpolationHandler","regex","missed to pass in variable "," for interpolating ","applyPostProcessor","failed parsing options string in nesting for key ","missed to resolve ","currency","formatter","formats","DateTimeFormat","RelativeTimeFormat","ListFormat","addCached","formatName","formatParams","interpolationkey","locale","there was no format function for ","backend","store","waitingReads","maxParallelReads","maxRetries","retryTimeout","queueLoad","loaded","addResourceBundle","pendingCount","callback","readingCalls","fcName","tried","prepareLoading","No backend was added via i18next.use. Will not load resources.","toLoad","loadOne","reload","loading namespace "," for language ","loaded namespace ","services",'did not save key "','" as the namespace "',"addResource","fallback","tDescription","cimode","modules","isInitialized","isClone","initImmediate","resources","languageDetector","detection","external","init: no languageDetector is used and no lng is defined","initializedStoreOnce","initialized","languages","partialBundledLanguages","setResolvedLanguage","use","You are passing a wrong module! Please check the object you are passing to i18next.use()","postProcessor","addPostProcessor","3rdParty","isLanguageChangingTo","languageChanging","resolvedLanguage","languageChanged","loadResources","detect","getFixedT","keyPrefix","setDefaultNamespace","hasLoadedNamespace: i18next was not initialized","hasLoadedNamespace: i18n.languages were undefined or empty","precheck","loadNamespaces","loadLanguages","preload","rtl","shu","yhd","yud","aao","abh","acm","acq","acx","acy","adf","ads","aeb","aec","ajp","apc","arq","ars","arz","auz","ayh","bbz","pga","pbu","prp","prd","ydd","yds","hbo","men","xmn","pes","prs","sam","cloneInstance","createInstance","reloadResources","ClickEvent","Popup","SubMenu","Switch","OrthoMode","Measure","MeasureDistance","MeasureArea","MeasureAngle","MeasureCoordinate","MeasureClear","Markup","MarkupArrow","MarkupRect","Rect","MarkupCloudRect","MarkupPolyLine","PolyLine","MarkupCloudLine","CloudLine","MarkupCircle","Circle","MarkupText","Text","MarkupX","MarkupStrokeStyle","MarkupLineWidth","MarkupLineWidth2","LineWidth2","MarkupLineWidth5","LineWidth5","MarkupLineWidth10","LineWidth10","FontSize","FontSize14","MarkupFontSize18","FontSize18","MarkupFontSize24","FontSize24","MarkupQuit","Section","SectionBox","SectionPlane","BimTree","Viewpoint","Annotation","Property","Settings","Compared","QuitCompare","FullScreen","SceneClear","Layers","ZoomToRectangle","bimViewer","menuConfig","groupConfig","toolbar-group","toolbar-group-division","createToolbarMenu","element","hasChildNodes","widgetContainer","oncontextmenu","menuList","toolbar-sub-menu","toolbar-sub-menu-list","updateMenu","refresh","updateMenus","[Toolbar]","exists.","menuId","eventBus","active","defaultActive","customElement","createButton","activeChange","mutexIds","toolbar","setActive","onActive","onDeactive","firstChild","icon","onClick","toolbar-parent-menu","icon-new","innerHTML",'
","","Arrow","ArrowMarkup","CircleMarkup","CloudLineMarkup","CloudLineRectangle","CloudRectMarkup","DotMarkup","Ellipse","EllipseMarkup","Rectangle","RectMarkup","TextMarkup","XMarkup","change","domElement","touchAction","minZoom","maxZoom","enableDamping","dampingFactor","enableZoom","zoomSpeed","rotateSpeed","enablePan","panSpeed","keyPanSpeed","autoRotate","autoRotateSpeed","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","ROTATE","DOLLY","PAN","DOLLY_PAN","target0","position0","zoom0","_domElementKeyEvents","getPolarAngle","getAzimuthalAngle","getDistance","listenToKeyEvents","NONE","setFromUnitVectors","minAzimuthAngle","minPolarAngle","maxPolarAngle","contextmenu","pointerdown","pointercancel","wheel","pointermove","pointerup","screenSpacePanning","clientWidth","WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.","deltaY","BOTTOM","LEFT","RIGHT","pageX","pageY","enableRotate","setPointerCapture","pointerId","pointerType","touch","button","mouseButtons","MIDDLE","metaKey","ctrlKey","shiftKey","ONE","TOUCH_ROTATE","TWO","TOUCH_DOLLY_PAN","DOLLY_ROTATE","TOUCH_DOLLY_ROTATE","TOUCH_PAN","flyDuration","autoRotateRemainingTime","controls","[BimViewer] camera position and lookAt cannot be the same!","[BimViewer] invalid position or lookAt!","automaticallyAdjustCameraPosition","[BimViewer] camera could be too close to see the object!","[BimViewer] camera could be too far to see the object!","cameraUpdateInterval","flyTo","startAutoRotate","delayAutoRotate","startToRotate","rotateIntervalStartTime","rotateInterval","rotateLeftOrRight","TOUCH_DOLLY","maxAzimuthAngle","minDistance","minFov","maxFov","zoomChanged","panOffset","rotateStart","rotateEnd","dollyStart","dollyEnd","dollyDelta","panEnd","panDelta","pointers","sphericalDelta","quat","spherical","onContextMenu","onPointerDown","onPointerMove","onPointerUp","onTouchStart","onMouseDown","onTouchMove","onMouseMove","removePointer","releasePointerCapture","handlerTouchEnd","onPointerCancel","onMouseWheel","handleMouseWheel","pan","panLeft","panUp","WARNING: VRControls.js encountered an unknown camera type - pan disabled.","onKeyDown","handleKeyDown","isVRMode","domElementKeyEvents","addPointer","pointerPositions","getDist","trackPointer","handleTouchStartRotate","handleTouchStartDolly","handleMouseDownRotate","handleTouchMoveRotate","handleMouseMoveRotate","handleMouseMoveDolly","handleMouseMovePan","movable","dollyOut","handleMouseDownDolly","handleMouseDownPan","panStart","startDistBetweenFingers","updateRotate","rotateDelta","dollyIn","getSecondPointerPosition","updateFov","WARNING: VRControls.js encountered an unknown camera type - updateFov disabled.","handleTouchMoveDolly"," is not supported in OrthographicCamera","removeAllEventListeners","1.38.1","platform","PointerEvent","install","THREE","Vector3","Vector2","Spherical","Box3","Sphere","Quaternion","Matrix4","ACTION","draggingDampingFactor","azimuthRotateSpeed","polarRotateSpeed","dollySpeed","truckSpeed","dragToOffset","verticalDragToForward","boundaryFriction","restThreshold","_enabled","_affectOffset","_dollyControlAmount","_boundaryEnclosesCamera","_needsUpdate","_elementRect","_activePointers","_camera","_target","MathUtils","setFocalOffset","_focalOffsetEnd","truck","_rotateInternal","_dollyInternal","_sphericalEnd","infinityDolly","_targetEnd","_dollyControlCoord","_zoomInternal","zoomTo","_zoom","dollyToCursor","camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information.","_yAxisUpSpaceInverse","_focalOffset","_spherical","_yAxisUpSpace","_zoomEnd","_nearPlaneCorners","_updateNearPlaneCorners","_target0","_position0","_zoom0","_focalOffset0","TRUCK","ZOOM","TOUCH_DOLLY_TRUCK","TOUCH_ZOOM_TRUCK","TOUCH_TRUCK","_domElement","ownerDocument","changedTouches","identifier","touchmove","touchend","cancelable","_findPointerById","deltaX","movementX","movementY","_state","three","middle","buttons","deltaMode","_truckInternal","control","_getClientRect","controlstart","pointerLockElement","TOUCH_ZOOM_ROTATE","TOUCH_ZOOM","TOUCH_DOLLY_OFFSET","OFFSET","TOUCH_OFFSET","TOUCH_ZOOM_OFFSET","controlend","_addAllEventListeners","webkitUserSelect","touchstart","updateCameraUp","_hasRested","azimuthAngle","polarAngle","boundaryEnclosesCamera","rotateTo","rotateAzimuthTo","rotatePolarTo","_createOnRestPromise","dolly","dollyTo","colliderMeshes","_collisionTest","_encloseToBoundary","fitToBox","camera-controls: fitTo() cannot be used with an empty box. Aborting","getDistanceToFitBox","fitToSphere","getDistanceToFitSphere","setLookAt","normalizeRotations","setTarget","getPosition","setOrbitPoint","_boundary","_viewport","Vector4","DEG2RAD","getTarget","getFocalOffset","_updatedLastTime","wake","focalOffset0","focalOffset","camera-controls is already connected.","data-camera-controls-version","_removeAllEventListeners","removeAttribute","transitionstart","_enableDamping","_enableZoom","_enableRotate","_enablePan","_rotateToCursor","_mouseButtons","_touches","cameraControls","dampingFactorValue","dollySpeedValue","rotateSpeedValue","panSpeedValue","getAutoRotationAngle","clock","saveState","Back","Hide All","Show All","X-Ray","X-Ray None","Select None","Undo Select","Show Section Plane","Show Section Box","Hide Section Box","Hide Axis Section","Undo Section","Loading","Comparing","Home","Angle","Coordinate","Stroke Style","Line Width","Line Width 2","Line Width 10","Font Size","Clear Markup","Quit markup","Axis Section","Pick Section Plane","BIM Tree","Quit compare","Full Screen","Zoom","Pick a point to continue, pressing ESC to exit","Pick a point to continue, pressing ESC to exit, right click to finish","Click to pick a section plane","缩放视口到所有模型","全部显示","全部应用 X 光模式","清除 X 光模式","清空选择","缩放视口到实体","隐藏其他 (隔离)","对其他实体应用 X 光模式","显示剖切盒","显示轴向剖切","隐藏剖切盒","隐藏轴向剖切","正在加载","正在对比","主视图","正交视图","角度测量","坐标测量","清除测量","云线框","多段线","画笔颜色","线宽 5","线宽 10","清除批注","轴向剖切","剖切盒","BIM树","图纸对比","退出图纸对比","框选放大","点击继续测量, ESC 取消测量,右键完成测量","点击确定剖切面","initLocalization","enableOverlayRenderer","initViewerContainer","initWidgetContainer","viewerCfg","containerId","[BaseViewer] containerId:","is not found in dom tree! will append to document body","cssText","width: 100%; height: 100%; position: absolute; overflow: hidden;","forceContextLoss","overlayRender","groundPlane","enableRender","getRaycaster","getRaycastableObjectsByMouse","deactivateMeasurement","http://fakehost.com/","maxSize","minSize","unloadPercent","itemSet","itemList","usedSet","callbacks","unloadPriorityCallback","defaultPriorityCallback","isFull","markAllUnused","unloadUnusedContent","scheduleUnload","scheduled","currJobs","priorityCallback","schedulingCallback","_runjobs","tryRunJobs","scheduleJobRun","__lastFrameVisited","__used","__inFrustum","__isLeaf","__active","__error","__childrenWereVisible","__allChildrenLoaded","markUsed","__contentEmpty","__externalTileSet","__loadingState","__depthFromRenderedParent","requestTileContents","frameCount","loadSiblings","lruCache","stopAtEmptyTiles","tileInView","inFrustum","__depth","used","__wasSetVisible","errorTarget","errorThreshold","refine","__visible","__usedLastFrame","displayActiveTiles","__wasSetActive","__distanceFromCamera","tileSets","rootURL","rootTileSet","fetchOptions","preprocessURL","maxJobs","downloadQueue","loadRootTileSet","preprocessNode","content","boundingVolume","__loadIndex","__loadAbort","REPLACE","setTileVisible","calculateError","failed","fetchTileSet",'TilesRenderer: Failed to load tileset "','" with status '," : ","asset","1.0",'asset.version is expected to be a string of "1.0" or "0.0"',"parseQueue","disposeTile","downloading","AbortError","parsing","Failed to load model with error code ","binOffset","binLength","header","componentType","FeatureTable: Specified type does not match expected type.",'FeatureTable : Feature type not provided for "',"SHORT","DOUBLE",'FeatureTable : Feature component type not provided for "',"FeatureTable: Feature data read outside binary body length.","batchSize","workingPath","resolveExternalURL","workingPathForURL","LoaderBase: Parse not implemented.","b3dm","BATCH_LENGTH","dracoLoader","ktx2Loader","meshoptDecoder","setDDSLoader",'THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".',"setKTX2Loader","setMeshoptDecoder","KHR_BINARY_GLTF","fileLoader","extensionsRequired","KHR_MATERIALS_UNLIT","KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS","KHR_DRACO_MESH_COMPRESSION","KHR_TEXTURE_TRANSFORM","KHR_MESH_QUANTIZATION","setExtensions","KHR_draco_mesh_compression","KHR_materials_ior","KHR_materials_sheen","KHR_materials_specular","KHR_materials_transmission","KHR_texture_basisu","KHR_mesh_quantization","KHR_materials_emissive_strength","EXT_texture_webp","EXT_meshopt_compression","EXT_mesh_gpu_instancing","parser","KHR_LIGHTS_PUNCTUAL","_markDefs","_addNodeRef","_loadLight","light:","outerConeAngle","THREE.GLTFLoader: Unexpected light type: ","createUniqueName","light_","createNodeAttachment","assignTexture","KHR_MATERIALS_EMISSIVE_STRENGTH","extendMaterialParams","emissiveStrength","getMaterialType","clearcoatFactor","clearcoatNormalTexture","KHR_MATERIALS_IRIDESCENCE","iridescenceFactor","iridescenceTexture","KHR_MATERIALS_SHEEN","sheenColorFactor","sheenRoughnessFactor","sheenColorTexture","sheenRoughnessTexture","KHR_MATERIALS_TRANSMISSION","transmissionFactor","KHR_MATERIALS_VOLUME","KHR_MATERIALS_SPECULAR","specularTexture","specularColorFactor","specularColorTexture","KHR_TEXTURE_BASISU","loadTexture","THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures","EXT_TEXTURE_WEBP","isSupported","detectSupport","loadTextureImage","THREE.GLTFLoader: WebP required by asset but unsupported.","data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA","onerror","loadBufferView","getDependency","decodeGltfBufferAsync","mode","ready","decodeGltfBuffer","createNodeMesh","primitives","TRIANGLE_FAN","accessor","TRANSLATION","ROTATION","SCALE","assignFinalMaterial","glTF","THREE.GLTFLoader: Unsupported glTF-Binary header.","THREE.GLTFLoader: Legacy binary file detected.","BIN","THREE.GLTFLoader: No DRACOLoader instance provided.","decodePrimitive","extendTexture","texCoord",'THREE.GLTFLoader: Custom UV sets in "',"#ifdef USE_SPECULARMAP","#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","vec3 specularFactor = specular;","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","float glossinessFactor = glossiness;","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","uniform float roughness;","uniform vec3 specular;","uniform float glossiness;","#include ","#include ","#include ","USE_SPECULARMAP","glossinessMap","USE_GLOSSINESSMAP","USE_UV","extendParams","diffuseTexture","createMaterial","MASK","DefaultMaterial","THREE.GLTFLoader: Ignoring primitive type .extras, ","associations","primitiveCache","cameraCache","sourceCache","textureCache","nodeNamesUsed","Firefox","textureLoader","use-credentials","removeAll","beforeRoot","getDependencies","animation","afterRoot","refs","uses","_getNodeRef","_instance_","_invokeOne","loadNode","loadMesh","loadAccessor","loadBuffer","loadMaterial","loadAnimation","THREE.GLTFLoader: "," buffer type is not supported.",'THREE.GLTFLoader: Failed to load buffer "',"sparse","InterleavedBuffer:","THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.","sampler","loadImageSource","THREE.GLTFLoader: Image "," is missing URI and bufferView","THREE.GLTFLoader: Couldn't load texture","THREE.GLTFLoader: Custom UV set "," for texture "," not yet supported.","PointsMaterial:","ClonedMaterial:","specular-glossiness:","derivative-tangents:","vertex-colors:","flat-shading:","alphaCutoff","normalTexture","loadGeometries","TRIANGLE_STRIP","LINE_LOOP","THREE.GLTFLoader: Primitive mode unsupported: ","loadCamera","THREE.GLTFLoader: Missing camera parameters.","perspective","radToDeg","aspectRatio","zfar","xmag","ymag","znear","loadSkin","inverseBindMatrices","channels","animation_",'THREE.GLTFLoader: Joint "%s" could not be found.',"THREE.GLTFLoader: Missing min/max properties for accessor POSITION.","THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.","adjustmentTransform","glbBytes","cors","RTC_CENTER","batchTable","featureTable","pnts","POINTS_LENGTH","RGB","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","CONSTANT_RGBA","RGB565","NORMAL_OCT16P",'PNTSLoader: Unsupported FeatureTable feature "',"i3dm","INSTANCES_LENGTH",'I3DMLoaderBase : Failed to load file "',"path.gltf","NORMAL_UP","NORMAL_RIGHT","SCALE_NON_UNIFORM","NORMAL_UP_OCT32P",'I3DMLoader: Unsupported FeatureTable feature "',"cmpt","CMPTLoader: The contents buffer length listed in the header matches the file.","tiles","CESIUM_RTC","tilesRenderer","optimizeRaycast","getCartographicToNormal","getPositionToNormal","latStart","latEnd","lonEnd","heightStart","heightEnd","_getPoints","mapLinear","cached","boxTransform","tile","autoDisableRendererCulling","_autoDisableRendererCulling","forEachLoadedModel","cameraMap","activeTiles","visibleTiles","onLoadTileSet","onLoadModel","onDisposeModel","onTileVisibilityChange","_overridenRaycast","getOrientedBounds","setCamera","setResolution","deleteCamera","cameraInfo","ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.","sseDenominator","invScale","_loadIndex","gltfUpAxis","gltf","glb",'TilesRenderer: Content type "','" not supported.',"setTileActive","boxTransformInverse","transformInverse","pixelSize","geometricError","position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000","dom","Panel","FPS","#0ff","#0f0","#020","performance","#f08","#201","usedJSHeapSize","bold ","textBaseline","fillRect","fillText","globalAlpha","renderToScreen","THREE.Pass: .render() must be implemented in derived pass.","_mesh","25.0","\n\n\t\tuniform float cKernel[ KERNEL_SIZE_INT ];\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec2 uImageIncrement;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 imageCoord = vUv;\n\t\t\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );\n\n\t\t\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {\n\n\t\t\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];\n\t\t\t\timageCoord += uImageIncrement;\n\n\t\t\t}\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}","renderTargetX","BloomPass.x","BloomPass.y","combineUniforms","materialCombine","THREE.BloomPass relies on ConvolutionShader","convolutionUniforms","uImageIncrement","blurX","cKernel","buildKernel","materialConvolution","needsSwap","fsQuad","tDiffuse","renderTargetY","\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}","\n\n\t\tuniform float strength;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = strength * texel;\n\n\t\t}","blurY","\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor.a *= opacity;\n\n\n\t\t}","textureID","autoClearColor","setLocked","ALWAYS","KEEP","_pixelRatio","_height","_width","EffectComposer.rt1","renderTarget1","renderTarget2","EffectComposer.rt2","writeBuffer","readBuffer","passes","THREE.EffectComposer relies on CopyShader","THREE.EffectComposer relies on ShaderPass","copyPass","swapBuffers","addPass","insertPass","isLastEnabledPass","NOTEQUAL","renderScene","renderCamera","selectedObjects","edgeGlow","usePatternTexture","edgeThickness","edgeStrength","downSampleRatio","pulsePeriod","_visibilityCache","renderTargetMaskBuffer","OutlinePass.mask","depthMaterial","prepareMaskMaterial","getPrepareMaskMaterial","renderTargetDepthBuffer","OutlinePass.depth","OutlinePass.depthDownSample","renderTargetMaskDownSampleBuffer","renderTargetBlurBuffer1","renderTargetBlurBuffer2","OutlinePass.blur2","renderTargetEdgeBuffer1","OutlinePass.edge1","renderTargetEdgeBuffer2","separableBlurMaterial1","getSeperableBlurMaterial","texSize","kernelRadius","separableBlurMaterial2","overlayMaterial","THREE.OutlinePass relies on CopyShader","copyUniforms","materialCopy","_oldClearColor","oldClearAlpha","tempPulseColor2","textureMatrix","DepthToViewZ","edgeDetectionMaterial","changeVisibilityOfSelectedObjects","changeVisibilityOfNonSelectedObjects","updateTextureMatrix","cameraNearFar","tempPulseColor1","visibleEdgeColor","hiddenEdgeColor","maskTexture","BlurDirectionX","BlurDirectionY","edgeTexture1","edgeTexture2","patternTexture","#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}","#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}","getEdgeDetectionMaterial","varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}","varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}","#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}","getOverlayMaterial","varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}","clearAlpha","\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}","\n\n\t\t#include \n\n\t\tvarying vec2 vUv;\n\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\n\t\tuniform sampler2D tDepth;\n\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\n\t\t// RGBA depth\n\n\t\t#include \n\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#else\n\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );\n\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\n\t\t\tif( weightSum == 0.0 ) discard;\n\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;\n\t\t}","\n\n\t\t#include \n\n\t\tuniform vec2 size;\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tvInvSize = 1.0 / size;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}","KERNEL_RADIUS","sampleUvOffsets","sampleWeights","createSampleWeights","\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );\n\t\t\tgl_FragColor = vec4( vec3( depth ), opacity );\n\n\t\t}","supportsDepthTextureExtension","originalClearColor","blurIntermediateRenderTarget","saoRenderTarget","beautyRenderTarget","depthRenderTarget","normalMaterial","THREE.SAOPass relies on SAOShader","saoMaterial","DEPTH_PACKING","NORMAL_TEXTURE","supportsNormalTexture","PERSPECTIVE_CAMERA","tDepth","tNormal","normalRenderTarget","cameraProjectionMatrix","THREE.SAOPass relies on DepthLimitedBlurShader","vBlurMaterial","hBlurMaterial","THREE.SAOPass relies on CopyShader","THREE.SAOPass relies on UnpackDepthRGBAShader","depthCopy","renderPass","saoBias","saoIntensity","saoScale","saoKernelRadius","minResolution","saoMinResolution","cameraNear","cameraFar","saoBlurDepthCutoff","depthCutoff","saoBlurRadius","prevStdDev","saoBlurStdDev","prevNumSamples","configure","renderOverride","saoBlur","setClearAlpha","sampleLevel","unbiased","THREE.SSAARenderPass relies on CopyShader","copyMaterial","sampleRenderTarget","SSAARenderPass.sample","simplex","dot3","noise","perm","grad3","noise4d","grad4","dot4","\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNoise;\n\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\n\t\tuniform vec2 resolution;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float kernelRadius;\n\t\tuniform float minDistance; // avoid artifacts caused by neighbour fragments with minimal depth difference\n\t\tuniform float maxDistance; // avoid the influence of fragments which are too far away\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t}\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\n\t\t\tclipPosition *= clipW; // unprojection.\n\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec2 screenPosition ) {\n\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\n\t\t\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );\n\t\t\tvec3 viewNormal = getViewNormal( vUv );\n\n\t\t\tvec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );\n\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\n\t\t\t// compute matrix used to reorient a kernel vector\n\n\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\n\t\t float occlusion = 0.0;\n\n\t\t for ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\n\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point\n\n\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\n\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\n\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\tfloat delta = sampleDepth - realDepth;\n\n\t\t\t\tif ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion\n\n\t\t\t\t\tocclusion += 1.0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );\n\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );\n\n\t\t}","varying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}","uniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\n\t\tvarying vec2 vUv;\n\n\t\t#include \n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tfloat depth = getLinearDepth( vUv );\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );\n\n\t\t}","uniform sampler2D tDiffuse;\n\n\t\tuniform vec2 resolution;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 texelSize = ( 1.0 / resolution );\n\t\t\tfloat result = 0.0;\n\n\t\t\tfor ( int i = - 2; i <= 2; i ++ ) {\n\n\t\t\t\tfor ( int j = - 2; j <= 2; j ++ ) {\n\n\t\t\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;\n\t\t\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );\n\n\t\t}","kernelSize","kernel","noiseTexture","generateSampleKernel","generateRandomKernelRotations","ssaoRenderTarget","blurRenderTarget","ssaoMaterial","tNoise","cameraInverseProjectionMatrix","blurMaterial","depthRenderMaterial","OUTPUT","Blur","Depth","Normal","Default","overrideVisibility","restoreVisibility","luminosityHighPass","\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}","\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform vec3 defaultColor;\n\t\tuniform float defaultOpacity;\n\t\tuniform float luminosityThreshold;\n\t\tuniform float smoothWidth;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\tvec3 luma = vec3( 0.299, 0.587, 0.114 );\n\n\t\t\tfloat v = dot( texel.xyz, luma );\n\n\t\t\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );\n\n\t\t\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );\n\n\t\t\tgl_FragColor = mix( outputColor, texel, alpha );\n\n\t\t}","renderTargetsHorizontal","nMips","renderTargetBright","UnrealBloomPass.h","UnrealBloomPass.v","renderTargetsVertical","THREE.UnrealBloomPass relies on LuminosityHighPassShader","highPassUniforms","luminosityThreshold","materialHighPassFilter","separableBlurMaterials","compositeMaterial","getCompositeMaterial","blurTexture2","blurTexture3","blurTexture4","blurTexture5","bloomStrength","bloomRadius","bloomFactors","bloomTintColors","#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat fSigma = float(SIGMA);\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, fSigma);\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, fSigma);\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}","varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}","varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}","\n\tprecision highp float;\n\n\tuniform sampler2D tDiffuse;\n\n\tuniform vec2 resolution;\n\n\tvarying vec2 vUv;\n\n\t// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n\t//----------------------------------------------------------------------------------\n\t// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag\n\t// SDK Version: v3.00\n\t// Email: gameworks@nvidia.com\n\t// Site: http://developer.nvidia.com/\n\t//\n\t// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n\t//\n\t// Redistribution and use in source and binary forms, with or without\n\t// modification, are permitted provided that the following conditions\n\t// are met:\n\t// * Redistributions of source code must retain the above copyright\n\t// notice, this list of conditions and the following disclaimer.\n\t// * Redistributions in binary form must reproduce the above copyright\n\t// notice, this list of conditions and the following disclaimer in the\n\t// documentation and/or other materials provided with the distribution.\n\t// * Neither the name of NVIDIA CORPORATION nor the names of its\n\t// contributors may be used to endorse or promote products derived\n\t// from this software without specific prior written permission.\n\t//\n\t// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY\n\t// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n\t// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\t// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\t// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n\t// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n\t// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t//\n\t//----------------------------------------------------------------------------------\n\n\t#ifndef FXAA_DISCARD\n\t\t\t//\n\t\t\t// Only valid for PC OpenGL currently.\n\t\t\t// Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n\t\t\t//\n\t\t\t// 1 = Use discard on pixels which don't need AA.\n\t\t\t// For APIs which enable concurrent TEX+ROP from same surface.\n\t\t\t// 0 = Return unchanged color on pixels which don't need AA.\n\t\t\t//\n\t\t\t#define FXAA_DISCARD 0\n\t#endif\n\n\t/*--------------------------------------------------------------------------*/\n\t#define FxaaTexTop(t, p) texture2D(t, p, -100.0)\n\t#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0)\n\t/*--------------------------------------------------------------------------*/\n\n\t#define NUM_SAMPLES 5\n\n\t// assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha\n\tfloat contrast( vec4 a, vec4 b ) {\n\t\t\tvec4 diff = abs( a - b );\n\t\t\treturn max( max( max( diff.r, diff.g ), diff.b ), diff.a );\n\t}\n\n\t/*============================================================================\n\n\t\t\t\t\t\t\t\t\tFXAA3 QUALITY - PC\n\n\t============================================================================*/\n\n\t/*--------------------------------------------------------------------------*/\n\tvec4 FxaaPixelShader(\n\t\t\tvec2 posM,\n\t\t\tsampler2D tex,\n\t\t\tvec2 fxaaQualityRcpFrame,\n\t\t\tfloat fxaaQualityEdgeThreshold,\n\t\t\tfloat fxaaQualityinvEdgeThreshold\n\t) {\n\t\t\tvec4 rgbaM = FxaaTexTop(tex, posM);\n\t\t\tvec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy);\n\t\t\tvec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy);\n\t\t\t// . S .\n\t\t\t// W M E\n\t\t\t// . N .\n\n\t\t\tbool earlyExit = max( max( max(\n\t\t\t\t\tcontrast( rgbaM, rgbaN ),\n\t\t\t\t\tcontrast( rgbaM, rgbaS ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaE ) ),\n\t\t\t\t\tcontrast( rgbaM, rgbaW ) )\n\t\t\t\t\t< fxaaQualityEdgeThreshold;\n\t\t\t// . 0 .\n\t\t\t// 0 0 0\n\t\t\t// . 0 .\n\n\t\t\t#if (FXAA_DISCARD == 1)\n\t\t\t\t\tif(earlyExit) FxaaDiscard;\n\t\t\t#else\n\t\t\t\t\tif(earlyExit) return rgbaM;\n\t\t\t#endif\n\n\t\t\tfloat contrastN = contrast( rgbaM, rgbaN );\n\t\t\tfloat contrastS = contrast( rgbaM, rgbaS );\n\t\t\tfloat contrastE = contrast( rgbaM, rgbaE );\n\t\t\tfloat contrastW = contrast( rgbaM, rgbaW );\n\n\t\t\tfloat relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW );\n\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\tbool horzSpan = relativeVContrast > 0.;\n\t\t\t// . 1 .\n\t\t\t// 0 0 0\n\t\t\t// . 1 .\n\n\t\t\t// 45 deg edge detection and corners of objects, aka V/H contrast is too similar\n\t\t\tif( abs( relativeVContrast ) < .3 ) {\n\t\t\t\t\t// locate the edge\n\t\t\t\t\tvec2 dirToEdge;\n\t\t\t\t\tdirToEdge.x = contrastE > contrastW ? 1. : -1.;\n\t\t\t\t\tdirToEdge.y = contrastS > contrastN ? 1. : -1.;\n\t\t\t\t\t// . 2 . . 1 .\n\t\t\t\t\t// 1 0 2 ~= 0 0 1\n\t\t\t\t\t// . 1 . . 0 .\n\n\t\t\t\t\t// tap 2 pixels and see which ones are \"outside\" the edge, to\n\t\t\t\t\t// determine if the edge is vertical or horizontal\n\n\t\t\t\t\tvec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongH = contrast( rgbaM, rgbaAlongH );\n\t\t\t\t\t// . 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 H\n\n\t\t\t\t\tvec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy);\n\t\t\t\t\tfloat matchAlongV = contrast( rgbaM, rgbaAlongV );\n\t\t\t\t\t// V 1 .\n\t\t\t\t\t// 0 0 1\n\t\t\t\t\t// . 0 .\n\n\t\t\t\t\trelativeVContrast = matchAlongV - matchAlongH;\n\t\t\t\t\trelativeVContrast *= fxaaQualityinvEdgeThreshold;\n\n\t\t\t\t\tif( abs( relativeVContrast ) < .3 ) { // 45 deg edge\n\t\t\t\t\t\t\t// 1 1 .\n\t\t\t\t\t\t\t// 0 0 1\n\t\t\t\t\t\t\t// . 0 1\n\n\t\t\t\t\t\t\t// do a simple blur\n\t\t\t\t\t\t\treturn mix(\n\t\t\t\t\t\t\t\t\trgbaM,\n\t\t\t\t\t\t\t\t\t(rgbaN + rgbaS + rgbaE + rgbaW) * .25,\n\t\t\t\t\t\t\t\t\t.4\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\thorzSpan = relativeVContrast > 0.;\n\t\t\t}\n\n\t\t\tif(!horzSpan) rgbaN = rgbaW;\n\t\t\tif(!horzSpan) rgbaS = rgbaE;\n\t\t\t// . 0 . 1\n\t\t\t// 1 0 1 -> 0\n\t\t\t// . 0 . 1\n\n\t\t\tbool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS );\n\t\t\tif(!pairN) rgbaN = rgbaS;\n\n\t\t\tvec2 offNP;\n\t\t\toffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n\t\t\toffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n\n\t\t\tbool doneN = false;\n\t\t\tbool doneP = false;\n\n\t\t\tfloat nDist = 0.;\n\t\t\tfloat pDist = 0.;\n\n\t\t\tvec2 posN = posM;\n\t\t\tvec2 posP = posM;\n\n\t\t\tint iterationsUsed = 0;\n\t\t\tint iterationsUsedN = 0;\n\t\t\tint iterationsUsedP = 0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i++ ) {\n\t\t\t\t\titerationsUsed = i;\n\n\t\t\t\t\tfloat increment = float(i + 1);\n\n\t\t\t\t\tif(!doneN) {\n\t\t\t\t\t\t\tnDist += increment;\n\t\t\t\t\t\t\tposN = posM + offNP * nDist;\n\t\t\t\t\t\t\tvec4 rgbaEndN = FxaaTexTop(tex, posN.xy);\n\t\t\t\t\t\t\tdoneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN );\n\t\t\t\t\t\t\titerationsUsedN = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(!doneP) {\n\t\t\t\t\t\t\tpDist += increment;\n\t\t\t\t\t\t\tposP = posM - offNP * pDist;\n\t\t\t\t\t\t\tvec4 rgbaEndP = FxaaTexTop(tex, posP.xy);\n\t\t\t\t\t\t\tdoneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN );\n\t\t\t\t\t\t\titerationsUsedP = i;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(doneN || doneP) break;\n\t\t\t}\n\n\n\t\t\tif ( !doneP && !doneN ) return rgbaM; // failed to find end of edge\n\n\t\t\tfloat dist = min(\n\t\t\t\t\tdoneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1.,\n\t\t\t\t\tdoneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1.\n\t\t\t);\n\n\t\t\t// hacky way of reduces blurriness of mostly diagonal edges\n\t\t\t// but reduces AA quality\n\t\t\tdist = pow(dist, .5);\n\n\t\t\tdist = 1. - dist;\n\n\t\t\treturn mix(\n\t\t\t\t\trgbaM,\n\t\t\t\t\trgbaN,\n\t\t\t\t\tdist * .5\n\t\t\t);\n\t}\n\n\tvoid main() {\n\t\t\tconst float edgeDetectionQuality = .2;\n\t\t\tconst float invEdgeDetectionQuality = 1. / edgeDetectionQuality;\n\n\t\t\tgl_FragColor = FxaaPixelShader(\n\t\t\t\t\tvUv,\n\t\t\t\t\ttDiffuse,\n\t\t\t\t\tresolution,\n\t\t\t\t\tedgeDetectionQuality, // [0,1] contrast needed, otherwise early discard\n\t\t\t\t\tinvEdgeDetectionQuality\n\t\t\t);\n\n\t}\n\t","0.2.19","follow","append","childNode","parentNode","followPointer","follow-tooltip","showOnCreate","setContent","updateChildContent","textContent","bottomBar","icon-showsectionplane","statistics","hideStats","icon-info","icon-info-filled","Comupting...","components","dataset","engine","SKYBOX","

",":","

","Version","Components","Faces","Materials","Lights","Entities","tooltip","show","span","Drawcalls","Lines","Triangles","Geometries","icon-view","tips","vectorToString","\n

Camera position:","\n

top: ",", bottom: ",", left: ","

\n

zoom: ","icon-more","\n

↑: Move up

\n

↓: Move down

\n

←: Move to left

\n

→: Move to right

\n ","\n

Nothing to show

\n ","hide","bottom-bar","createItem","cfg","itemconfig","-tooltip","onclick","targetPixelHeight","canvasHeight","adjustSize","isSectionObjectVisible","gizmo","boxMax","hoverGroup","pointMarkers","activeMarker","actionType","RotateX","RotateY","RotateZ","TranslateX","TranslateY","activeActionType","activeFace","cursor","auto","stopPropagation","isMouseDown","dragStart","dragMove","getCanvasPos","lastCanvasPos","dragTranslateSectionPlane","TranslateZ","dragRotateSectionPlane","dragUp","setSectionPlane","boxMin","updatePlanes","movePlaneToCenter","setSectionObjectVisible","initSectionPlane","addMouseListener","isOpen","removeMouseListener","clearSectionPlane","setMatrix","initGizmo","initControllerMarkers","initOrUpdateFace","initOrUpdateLines","initPlanes","localToWorldVec","xLeft","xRight","zBack","updateControllerMarkers","updateHoverVisibles","curve","highlight","pickableCurve","red","blue","pickableAxis","pickable","green","objectPixelSizeHelper","Need to init Face first!","updateMouseAndRay","mousePosition","getTranslationPlane","getPointerPlaneIntersect","innerWidth","innerHeight","[Section] Can't get the intersection. dot=","initOrUpdateVertices","activeMaterial","isFollowing","diffX","diffY","offsetLeft","offsetTop","clientTop","pop-panel","pop-panel-header","axis-section-pop-panel","isVisible","createGroupSelectLayout","createActiveSelectLayout","addActiveItems","addGroupSelectItems","pop-panel-item","itemName","groupSelectNode","activeItem","pop-panel-active-select","activeSelectNode","icon-hidesectionplane","显示剖切面","Invalid bimViewer!","objectIds","axisInfoMap","getRotateParam","sectionPlane","cancelSection","getBBox","rotatePlane","enableSection","popPanel","hideSectionPlane","initPlane","isShowSectionPlane","draggableArrowView","visibleArrowView","sectionBoxBoundary","arrows","sectionPlaneMap","[Section] dragStart","dragEnd","sectionBox","sectionBox is assigned already!","initSectionBox","initOrUpdateFaces","setArrowPosition","backFace","initArrowGizmos","worldToLocalVec","getBoxFaceVerties","[BoxSection] Invalid sectionBox!","[Section] rotate, = ","clearSectionBox","pick-section-pop-panel","拾取面剖切","isActive","false","隐藏剖切面","visibleNode","icon-reset","resetNode","mouseMoved","pickFace","clickOnceListerner","showSectionPlane","pick-section-plane","点击选择面","gemini-context-menu","createMenuUI","handleClick","hideOnMouseDown","isEnable","getEnabled","isShown","shown","getTitle","createMenuGroup","createMenuItem","doAction","updateMenuItems","disabled","showMenuElement","offsetHeight","ContextMenu.","selectedObject","viewFitEntity","flyToObject","viewFitAll","hideEntity","hideOthers","hideAll","deselect","[ContextMenu] object(type: ",", name: ","clearSelection","selectObject","selectNone","xRayNone","addOrRemoveObjectOpacity","xRayEntity","sectionType","*showSectionPlane","showAxisSection","*showSectionBox","hideAxisSection","hideSectionBox","undoSection","AxisSectionPlane","text/css","__state","THREE_CHAR_HEX","hex","CSS_RGB","CSS_RGBA","HEX","RGB_ARRAY","RGBA_ARRAY","RGB_OBJ",",g:","{r:",",a:","HSV_OBJ",",s:",",v:","HSVA_OBJ","unknown format","isNumber","HSV","litmus","conversions","conversionName","conversion","BREAK","hex_with_component","Failed to interpret color arguments","toHexString","toOriginal","space","recalculateHSV","recalculateRGB","component_from_hex","extend","Corrupted color state","COMPONENTS","rgb_to_hex","__onChange","__onFinishChange","onChange","onFinishChange","updateDisplay","isModified","initialValue","onselectstart","MozUserSelect","MouseEvents","initMouseEvent","bubbles","clickCount","KeyboardEvents","initKeyboardEvent","initKeyEvent","altKey","keyCode","attachEvent","detachEvent","className","(?:^|\\s+)","(?:\\s+|$)","border-left-width","border-right-width","padding-left","border-bottom-width","padding-bottom","offsetParent","activeElement","__prev","__checkbox","checked","__select","selectedIndex","__input","blur","__min","__max","__step","step","__impliedStep","__precision","__truncationSuspended","__background","__foreground","slider","addClass","slider-fg","__button","Fire","fire","__color","__temp","makeSelectable","__selector","selector","__saturation_field","saturation-field","__field_knob","field-knob","__field_knob_border","2px solid ","__hue_knob","hue-knob","__hue_field","__input_textShadow","drag","removeClass","122px","102px","3px","#222","0px 1px 3px rgba(0,0,0,0.3)","12px","#fff","0px 1px 3px rgba(0,0,0,0.5)","15px","2px","4px solid #fff","100px","1px solid #555","100%","rgba(0,0,0,0)","#000","ns-resize","rgba(0,0,0,0.7)","marginTop","rgba(",",.7)","-moz-","-o-","-webkit-","-ms-","background: "," 0%, "," 100%); ","background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);","background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);","background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);","background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);","background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);","stylesheet","getElementsByTagName",'
\n\n Here\'s the new load parameter for your GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n
',"webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","backgroundElement","1000","opacity 0.2s linear","1001","-webkit-transform 0.2s ease-out, opacity 0.2s linear","transform 0.2s ease-out, opacity 0.2s linear","layout","webkitTransform","scale(1)","webkitTransitionEnd","transitionend","oTransitionEnd","getWidth","getHeight","__ul","__folders","__controllers","__rememberedObjectIndecesToControllers","__listening","autoPlace","preset","hideable","resizable","scrollable","closeOnTop","revert","CLASS_CLOSED","__closeButton","TEXT_OPEN","TEXT_CLOSED","unload","setItem","isLocal","CLASS_MAIN","useLocalStorage","getItem","CLASS_CLOSE_BUTTON","CLASS_CLOSE_TOP","CLASS_CLOSE_BOTTOM","controller-name","CLASS_AUTO_PLACE","__resizeHandler","onResizeDebounced","resize","gui","saveToLocalStorageIfPossible","toggleHide","CLASS_AUTO_PLACE_CONTAINER","CLASS_CONTROLLER_ROW","CLASS_TOO_TALL","taller-than-window","close-top","Close Controls","which","_keydownHandler","__li","onResize","Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.","removeFolder","folders","folder","__save_row","__resize_handle","__rememberedObjects","remembered","getSaveObject","__preset_select","nextElementSibling","firstElementChild","listen","__gui","has-slider","fakeEvent","mouseover","hover","mouseout","borderLeftColor",'Object "','" has no property "',"factoryArgs","option","has-save","save-row"," ","Save","New","save-as","dg-local-explain","dg-local-storage","dg-save-locally","Enter a new preset name.","saveAs","6px","-3px","200px","ew-resize","CLASS_DRAG","requestFullscreen","fullscreenEnabled","fullscreenchange","webkitRequestFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitfullscreenerror","mozCancelFullScreen","mozfullscreenchange","msFullscreenElement","MSFullscreenChange","MSFullscreenError","isFullscreen","multiple","accept","onchange","[Uploader] No files to be uploaded!","uploadFiles","[Uploader]: Should call derived class instead!","[Uploader]: Should call derived class instead! files: ","openFileBrowserToUpload","defaultModelConfig","stl","fbx","ifc","dae","loadLocalModel","[Uploader] Loaded ","[Uploader] Progress: ","onSuccess","[Uploader] Compared models: ",". reason: ","modelId","loadModelAsync","[Uploader] Loaded model '","jpg","viewpoint_1","panoramas","panorama_1","activatePanoramaById","front","back","THREE.RGBELoader Bad File Format: ","THREE.RGBELoader: Error: ","RGBE","no header found","bad initial token","valid","programtype","comments","gamma","exposure","missing image size specifier","wrong scanline width","unable to allocate buffer space","bad rgbe scanline format","bad scanline data","toHalfFloat","setDataType","createEnvTexture","createEnvTextureFromDataArray","HDR_CITY_STREET_64x32","Invalid pmremGenerator!","addFolder","exploderDict","Black Background","White Background","Default (City Streat 64x32)","Footprint Court (HDR Labs)","City Street","[DGH] Full screen...","No section","Box section","Plane section","Need to initialize renderer, scene first!","0.6","Common settings","showGroundGrid","Show ground grid","groundGrid","showGrassGround","grassGround","skyMode","Sky mode","skyOfGradientRamp","Gradient ramp","right.jpg","left.jpg","top.jpg","front.jpg","back.jpg","/images/skybox/cloudy/","sceneBackgroundColor","environments","Environments","pmremGenerator","venice_sunset_1k.hdr","city_street_256.hdr","/images/envmap/","homeView","goToHomeView","views","Views","getCameraDirectionByView","setToOrthographicCamera","Take snapshot","Full screen","isEnabled","request","Upload file","Model operations","transparentMode","Transparent mode","showVertexNormals","Show Vertex Normals","sectionMode","deactivateSection","activateSection","ambientLight","alVisible","alColor","alIntensity","directionalLight","Directional light","addColor","dlColor","showDlHelper","showDirectionalLightHelper","updateDirectionalLight","Hemisphere Light","hlVisible","hlColor","hlGroundColor","Enabled","fogNearDistance","fogFarDistance","Near","fogEnabled","Far","Composer","composerEnabled","Composer Enabled","renderPassEnabled","enableRenderPass","fxaaEnabled","Effect FXAA Enabled","enableFxaaPass","saoEnabled","SAO Enabled","enableSaoPass","ssaoEnabled","SSAO Enabled","enableSsaoPass","outlineEnabled","enableOutlinePass","ssaaEnabled","SSAA Enabled","bloomEnabled","Bloom Enabled","enableBloomPass","unrealBloomEnabled","Unreal Bloom Enabled","enableUnrealBloomPass","setExplodeMode","loadedModels","unexplodeObjects","beforeDestroy","isCSS2DObject","cloneNode","overflow","translate(-50%,-50%) translate(","px,","distanceToCameraSquared","zIndex","COORDINATE_AXES","AXIS_LENGTH","AXIS_COLOR_X","AXIS_COLOR_Y","AXIS_COLOR_Z","addTexts","createText","#ff0000","#0000ff","textAlign","hostCamera","initRenderer","initScene","animate","css2dRenderer","coordinateAxes","ignoreZAxis","setHostCamera","updateCameraDirection","instantiate","[Inst] instantiate() costed ","instantiateInner","geometryEquals","removeFromArray","[Instanced] ","[Inst] ","(out of ","image_type","colormap_type","THREE.TGALoader: Invalid type colormap data for colormap type.","THREE.TGALoader: No data.",'THREE.TGALoader: Invalid type "%s".',"THREE.TGALoader: Invalid image size.","pixel_size",'THREE.TGALoader: Invalid pixel size "%s".',"colormap_length","THREE.TGALoader: Format not supported.","THREE.TGALoader: Not enough data to contain header.","id_length","palettes","three_default_","unit","meter","Y_UP","build","sources","generateUUID","semantic","inputs","member","sid","arraySyntax","memberSyntax","INPUT","transforms",'THREE.ColladaLoader: Animation transform type "%s" not yet implemented.',"instance_animation","clips","THREE.ColladaLoader: Morph target animation not supported yet.","controllers","bind_shape_matrix","bindShapeMatrix","vertex_weights","vertexWeights","vcount","skinIndices","skinWeights","JOINT","WEIGHT","INV_BIND_MATRIX","init_from","THREE.ColladaLoader: Couldn't find image with ID:","profile_COMMON","profile","effects","newparam","technique","extra","surface","surfaces","blinn","emission","bump","transparency","A_ONE","repeatV","offsetU","offsetV","wrapU","wrapV","TRUE","FALSE","double_sided","texcoord","instance_effect","tga","THREE.ColladaLoader: Loader for texture %s not found.","THREE.ColladaLoader: Couldn't create texture with ID:","RGB_ZERO","A_ZERO","RGB_ONE","optics","technique_common","xfov","yfov","aspect_ratio","falloff_angle","quadratic_attenuation","polygons","THREE.ColladaLoader: Unsupported primitive type: ","linestrips","polylist","Name_array","TEXCOORD","hasUV","uvsNeedsFix","VERTEX","TEXCOORD1","materialKeys","kinematicsModels","links","prismatic","revolute","limits","static","attachment_full","attachments","joint","rigid_body","rigidBodies","physicsModels","inertia","mass","kinematicsScenes","param","inst_","visualScenes","bindJointAxis","parentElement","zeroPosition","THREE.ColladaLoader: Joint "," doesn't exist."," value "," outside of limits (min: ",", max: "," is static.","THREE.ColladaLoader: Unknown joint type: ","querySelector",'[id="',"instance_camera","instanceCameras","instance_controller","instanceControllers","instance_light","instanceLights","instance_geometry","instanceGeometries","instance_node","THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.","instance_material","THREE.ColladaLoader: Unable to find root bone of skeleton with ID:","bone","processed","boneInverse","THREE.ColladaLoader: Material with key %s not found. Apply fallback material.","application/xml","COLLADA","parsererror","THREE.ColladaLoader: Failed to parse collada file.\n","THREE.ColladaLoader: File version","library_animation_clips","animation_clip","library_controllers","controller","library_images","library_effects","effect","library_cameras","library_lights","visual_scene","library_kinematics_models","kinematics_model","library_physics_models","physics_model","upAxis","THREE.ColladaLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted, see #24289.","THREE.ColladaLoader: Please access animations over scene.animations now.","decoderPath","decoderConfig","decoderBinary","decoderPending","workerLimit","workerPool","workerNextTaskID","workerSourceURL","defaultAttributeIDs","setDecoderConfig","setWorkerLimit","decodeDracoFile","defaultAttributeTypes","decodeGeometry","THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.","_releaseTask","_createGeometry","_loadLibrary","_initDecoder","draco_decoder.js","draco_wasm_wrapper.js","wasmBinary","/* draco decoder */","_getWorker","_taskCosts","_taskLoad","Task load: ","terminate","onModuleLoaded","taskConfig","draco","Decoder","DecoderBuffer","attributeIDs","GetEncodedGeometryType","DecodeBufferToMesh","DecodeBufferToPointCloud","ptr","THREE.DRACOLoader: Decoding failed: ","error_msg","GetAttributeId","_malloc","GetTrianglesUInt32Array","_free","num_components","num_points","DT_FLOAT32","DT_INT8","DT_INT16","DT_INT32","DT_UINT8","DT_UINT16","DT_UINT32","module","unexpected EOF","invalid length/literal","invalid distance","mem",".prototype.",";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=","ondata","no stream handler","mtime","invalid gzip data","filename","invalid zlib data","invalid zlib data: preset dictionaries not supported","no callback","stream finished","invalid gzip stream","invalid utf-8 data","encode","extra field too long","flag","compression","date not in range 1980-2099","getDate","getSeconds","crc","no callback - add to ZIP archive before pushing","stream finishing","comment","filename too long","onfile","originalSize","invalid zip file","unknown compression type ","degree","knots","controlPoints","startKnot","endKnot","THREE.FBXLoader: Unknown format.","parseConnections","parseDeformers","parseScene","Connections","Objects","Video","RelativeFilename","Content","parseImage","Filename","bmp","image/bmp","jpeg","png","image/tiff",".tga","FBXLoader: TGA loader not found, skipping ","image/tga",'" is not supported.',";base64,","parseTexture","attrName","WrapModeV","Scaling","Translation","blob:","FileName","FBXLoader: PSD textures are not supported, creating placeholder texture for","parseMaterial","parseParameters",'THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',"BumpFactor","Diffuse","DiffuseColor","Color","ColorRGB","DisplacementFactor","Emissive","EmissiveColor","EmissiveFactor","Opacity","Shininess","Specular","SpecularColor","relationship","Maya|TEX_ao_map","getTexture","Maya|TEX_color_map","DisplacementColor","NormalMap","TransparentColor","VectorDisplacementColor","THREE.FBXLoader: %s map is not supported in three.js, skipping texture.","LayeredTexture","THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.","Deformer","attrType","Skin","parents","THREE.FBXLoader: skeleton attached to more than one geometry is not supported.","geometryID","BlendShape","rawTargets","THREE.FBXLoader: morph target attached to more than one geometry is not supported.","parseSkeleton","Cluster","TransformLink","Indexes","Weights","parseMorphTargets","DeformPercent","FullWeights","BlendShapeChannel","geoID","parseModels","Model","setLookAtProperties","bindSkeleton","createAmbientLight","transformData","createCamera","Light","NurbsCurve","LimbNode","Root","Null","getTransformData","buildSkeleton","rawBones","transformLink","NodeAttribute","CameraProjectionType","NearPlane","FarPlane","AspectWidth","AspectHeight","FieldOfView","FocalLength","THREE.FBXLoader: Unknown camera type ","createLight","LightType","Intensity","CastLightOnObject","FarAttenuationEnd","EnableFarAttenuation","InnerAngle","OuterAngle","THREE.FBXLoader: Unknown light type ","CastShadows","createMesh","FBX_Deformer","createCurve","inheritType","InheritType","RotationOrder","eulerOrder","Lcl_Translation","PreRotation","Lcl_Rotation","PostRotation","ScalingOffset","scalingOffset","ScalingPivot","RotationOffset","rotationOffset","rotationPivot","LookAtProperty","parsePoseNodes","Pose","BindPose","PoseNode","Node","Matrix","AmbientColor","GlobalSettings","Geometry","parseGeometry","negativeMaterialIndices","parseNurbsGeometry","parseMeshGeometry","GeometricTranslation","GeometricRotation","GeometricScaling","genGeometry","parseGeoNode","colors","weightsIndices","uvs","vertexPositions","Vertices","PolygonVertexIndex","LayerElementColor","parseVertexColors","LayerElementMaterial","parseMaterialIndices","LayerElementNormal","parseNormals","LayerElementUV","parseUVs","weightTable","genBuffers","vertexIndices","THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.","mappingType","AllSame","genFace","addMorphTargets","genMorphGeometry","ReferenceInformationType","IndexToDirect","NormalIndex","NormalsIndex","MappingInformationType","UVIndex","Colors","ColorIndex","NoMappingInformation","THREE.FBXLoader: The loader relies on NURBSCurve for any nurbs present in the model. Nurbs will show up as empty geometry.","Order","KnotVector","Form","Periodic","parseClips","addClip","AnimationCurve","parseAnimationCurves","parseAnimationLayers","AnimationCurveNode","KeyValueFloat","AnimationLayer","preRotation","postRotation","attr","parseAnimStacks","THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.","generateTracks","generateVectorTrack","modelName","generateRotationTrack","generateMorphTrack","getTimesForAllAxes","getKeyframeTrackValues","interpolateRotations","morphName",".morphTargetInfluences[","getPrevNode","nodeStack","currentIndent","getCurrentNode","getCurrentProp","currentProp","popStack","setCurrentProp","currentPropName","allNodes","}(\\w+):[\\s\\t\\r\\n](.*)","^\\t{","parseNodeBegin","parseNodeAttr","Properties70","parseNodeSpecialProperty","connections","parseNodePropertyContinued","int","enum","ULongLong","Vector3D","THREE.FBXLoader: FBX version not supported, FileVersion: ","endOfContent","parseNode","getOffset","getUint64","parseProperty","singleProperty","parseSubNode","propertyList","Lcl ","Lcl_","Vector","getString","getBoolean","getFloat64","getInt32","getInt64","getInt16","getBooleanArray","getFloat64Array","getInt32Array","getInt64Array","THREE.FBXLoader: External library fflate.min.js required.","getArrayBuffer","getFloat32Array","littleEndian","getFloat32","THREE.FBXLoader: Cannot find the version number for the file given.","ByPolygonVertex","ByPolygon","ByVertice","THREE.FBXLoader: unknown attribute mapping type ","dataSize","makeRotationFromEuler","scalingPivot","parentMatrixWorld","THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.","Font","generateShapes","yMax","yMin","glyphs",'THREE.Font: character "',"familyName","_cachedOutline","currentScript","locateFile","dirname","readFileSync","utf8","argv","uncaughtException","unhandledRejection","inspect","[Emscripten Module object]","GET","responseText","send","print","printErr","arguments","thisProgram","quit","noExitRuntime","Assertion failed: ","utf-16le","HEAP16","HEAP32","HEAPU8","HEAPU16","HEAPF32","wasmMemory","Memory","preRun","noFSInit","ignorePermissions","postRun","monitorRunDependencies","preloadedImages","preloadedAudios","onAbort","). Build with -s ASSERTIONS=1 for more info.","data:application/octet-stream;base64,","file://","web-ifc.wasm","both async and sync fetching of the wasm failed","failed to load wasm binary file at '","asm","wasm-instantiate","failed to asynchronously prepare wasm: ","instantiateStreaming","falling back to ArrayBuffer instantiation","instantiateWasm","Module.instantiateWasm callback failed with error: ","dynCall_",", at: ","unknown filename","unknown function","normalizeArray","splitPath","getRandomValues","randomBytes","ttys","registerDevice","stream_ops","tty","ops","get_char","ErrnoError","timestamp","alloc","readSync","EOF","utf-8","prompt","Input: ","createNode","isBlkdev","isFIFO","ops_table","node_ops","setattr","lookup","rename","unlink","readdir","symlink","llseek","allocate","mmap","msync","readlink","chrdev_stream_ops","dir","isFile","stream","usedBytes","contents","chrdev","isChrdev","ino","nlink","rdev","isDir","isLink","atime","blksize","blocks","resizeFileStorage","lookupNode","expandFileStorage","cwd","recurse_count","join2","isMountpoint","follow_mount","mounted","lookupPath","isRoot","mount","nameTable","hashName","name_next","mayLookup","FSNode","hashAddNode","hashRemoveNode","flagModes","nodePermissions","errno","getPath","flagsToPermissionString","MAX_OPEN_FDS","streams","FSStream","nextfd","devices","syncFSRequests"," FS.syncfs operations in flight at once, probably just doing extra work","getMounts","errored","syncfs","mounts","destroyNode","basename","mayCreate","mknod","mkdir","relative","mayDelete","trackingDelegate","willMovePath","FS.trackingDelegate['willMovePath']('","onMovePath","FS.trackingDelegate['onMovePath']('","rmdir","willDeletePath","FS.trackingDelegate['willDeletePath']('","onDeletePath","FS.trackingDelegate['onDeletePath']('","') threw an exception: ","getattr","getStream","chmod","chown","modeStringToFlags","mayOpen","createStream","logReadFiles","readFiles","FS.trackingDelegate error on read file: ","onOpenFile","openFlags","READ","tracking","WRITE","FS.trackingDelegate['onOpenFile']('","', flags) threw an exception: ","isClosed","getdents","closeStream","ungotten","seekable","onWriteToFile","ioctl",'Invalid encoding type "',"canOwn","Unsupported data type","/tmp","/home/web_user","/dev","makedev","/dev/null","default_tty_ops","default_tty1_ops","mkdev","/dev/tty1","createDevice","urandom","/dev/shm/tmp","/proc","/proc/self","/proc/self/fd","fake","stdin","/dev/tty","/dev/stdin","stdout","/dev/stdout","stderr","/dev/stderr","setErrno","FS error","genericErrors","","ensureErrnoError","createDefaultDevices","createSpecialDirectories","filesystems","_fflush","analyzePath","parentExists","parentPath","parentObject","getMode","major","isDevice","isFolder","Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.","lengthKnown","chunks","chunkSize","setDataGetter","cacheLength","HEAD","Couldn't load ",". Status: ","getResponseHeader","Accept-Ranges","Content-Encoding","gzip","invalid range (",") or no bytes requested!","only "," bytes available! programmer error!","Range","bytes=","overrideMimeType","text/plain; charset=x-user-defined","doXHR failed!","LazyFiles on gzip forces download of the whole file when length is accessed","_length","_chunkSize","Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc","createFile","forceLoadFile","cp ","canHandle","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","FILE_DATA","DB_NAME","DB_VERSION","onupgradeneeded","creating db","DB_STORE_NAME","onsuccess","transaction","readwrite","objectStore","put","readonly","createDataFile","ctime","varargs","getStreamFromFD","bad ioctl syscall ","getStr","fromWireType","_unknown","return function ",'() {\n "use strict"; return body.apply(this, arguments);\n};\n',"getterReturnType","setterArgumentType","rawConstructor","rawDestructor","getterContext","toWireType",": expected=",", actual=","fields","setterContext",'Missing field: "',"registerType registeredInstance requires argPackAdvance",'type "',"ignoreDuplicateRegistrations","Cannot register type '","Unknown boolean type size: ","registeredClass","ptrType","baseClass","upcast","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType"," instance already deleted","object already deleted: ","unregister","Object already scheduled for deletion","isAliasOf","isDeleted","deleteLater","overloadTable","Function '","' called with an invalid number of arguments (",") - expects one of (","argCount","Cannot register public name '","' twice","Cannot register multiple overloads of a function with the same number of arguments (","numArguments","getActualType","pureVirtualFunctions","Expected null or instance of ","isReference","null is not a valid ","Cannot pass deleted object as a pointer of type ","isSmartPointer",'Cannot pass "','" as a ',"isConst","Cannot convert argument of type "," to parameter type ","Passing raw pointer to smart pointer is illegal","sharingPolicy","Unsupporting sharing policy","downcast","getInheritedInstanceCount","getLiveInheritedInstances","flushPendingDeletes","setDelayFunction","ptr should not be undefined","makeClassHandle requires ptr and ptrType","Both smartPtrType and smartPtr must be specified","getPointee","destructor","instancePrototype","constPointerType","argPackAdvance","readValueFromPointer","deleteObject","pointeeType","rawGetPointee","destructorFunction","getDynCaller should only be called with i64 sigs","unknown function pointer with signature ","Use 'new' to construct ","constructor_body"," has no accessible constructor","Tried to invoke ctor of "," with invalid number of parameters (",") - expected (",") parameters instead!"," const*","constructor ","Cannot register multiple constructors with identical number of parameters (","Cannot construct "," arguments, expected ","new_ called with constructor type "," which is not a function","unknownFunctionName","argTypes array size mismatch! Must at least get return value and 'this' types!","void",") {\nif (arguments.length !== ",") {\nthrowBindingError('function "," called with ' + arguments.length + ' arguments, expected "," args!');\n}\n","var destructors = [];\n","destructors","invoker","runDestructors","classParam","var thisWired = classParam.toWireType(","Wired = argType","); // ","argType","thisWired","var rv = ","invoker(fn",");\n","runDestructors(destructors);\n","Wired","_dtor","Cannot call ","refcount","count_emval_handles","get_first_emval","Unknown float type: ",'Cannot convert "','" to '," due to unbound types","Unknown integer type: ","unsigned",'" from JS side to C/C++ side to an argument of type "',"std::string","Cannot pass non-string to C++ string type ","Cannot use deleted val. handle = "," has unknown type ","emval::as","parameter ","_emval_take_value","hrtime","grow","./this.program","strings","web_user","doWritev","getMonth","setDate","setMonth","%a %b %d %H:%M:%S %Y","%Y-%m-%d","%I:%M:%S %p","%m/%d/%y","%H:%M:%S","Sunday","Monday","Tuesday","Thursday","March","April","May","June","July","August","October","November","getDay","tm_year","tm_yday","tm_wday","tm_mon","tm_mday","tm_hour","tm_sec","0000","tm_zone","nextInode","staticInit","FS_createPath","createPath","createPreloadedFile","FS_createLazyFile","createLazyFile","FS_createDevice","FS_unlink","InternalError","BindingError","___wasm_call_ctors","_main","___getTypeName","___embind_register_native_and_builtin_types","___errno_location","dynCall_jiji","dynCall_viijii","dynCall_iiiiiijj","dynCall_iiiiij","dynCall_iiiiijj","addRunDependency","removeRunDependency","FS_createDataFile","ExitStatus","Program terminated with exit(","exception thrown: ","calledRun","onRuntimeInitialized","Running...","setStatus","onExit","preInit","noInitialRun","WebIFCWasm","FromTape","EMAIL","FAX","PHONE","POST","VERBAL","USERDEFINED","NOTDEFINED","DEAD_LOAD_G","COMPLETION_G1","LIVE_LOAD_Q","SNOW_S","WIND_W","PRESTRESSING_P","SETTLEMENT_U","TEMPERATURE_T","EARTHQUAKE_E","FIRE","IMPULSE","IMPACT","ERECTION","PROPPING","SYSTEM_IMPERFECTION","SHRINKAGE","CREEP","LACK_OF_FIT","BUOYANCY","ICE","CURRENT","WAVE","RAIN","BRAKES","PERMANENT_G","VARIABLE_Q","EXTRAORDINARY_A","ELECTRICACTUATOR","HANDOPERATEDACTUATOR","HYDRAULICACTUATOR","PNEUMATICACTUATOR","THERMOSTATICACTUATOR","OFFICE","SITE","HOME","DISTRIBUTIONPOINT","CONSTANTFLOW","VARIABLEFLOWPRESSUREDEPENDANT","VARIABLEFLOWPRESSUREINDEPENDANT","DIFFUSER","GRILLE","LOUVRE","REGISTER","FIXEDPLATECOUNTERFLOWEXCHANGER","FIXEDPLATECROSSFLOWEXCHANGER","FIXEDPLATEPARALLELFLOWEXCHANGER","ROTARYWHEEL","RUNAROUNDCOILLOOP","HEATPIPE","TWINTOWERENTHALPYRECOVERYLOOPS","THERMOSIPHONSEALEDTUBEHEATEXCHANGERS","THERMOSIPHONCOILTYPEHEATEXCHANGERS","BELL","BREAKGLASSBUTTON","LIGHT","MANUALPULLBOX","SIREN","WHISTLE","IN_PLANE_LOADING_2D","OUT_PLANE_LOADING_2D","LOADING_3D","FIRST_ORDER_THEORY","SECOND_ORDER_THEORY","THIRD_ORDER_THEORY","FULL_NONLINEAR_THEORY","DIVIDE","MULTIPLY","SUBTRACT","FACTORY","AMPLIFIER","CAMERA","DISPLAY","MICROPHONE","PLAYER","PROJECTOR","SPEAKER","SWITCHER","TELEPHONE","TUNER","POLYLINE_FORM","CIRCULAR_ARC","ELLIPTIC_ARC","PARABOLIC_ARC","HYPERBOLIC_ARC","UNSPECIFIED","PLANE_SURF","CYLINDRICAL_SURF","CONICAL_SURF","SPHERICAL_SURF","TOROIDAL_SURF","RULED_SURF","GENERALISED_CONE","QUADRIC_SURF","SURF_OF_LINEAR_EXTRUSION","BEAM","JOIST","HOLLOWCORE","LINTEL","SPANDREL","T_BEAM","GIRDER_SEGMENT","DIAPHRAGM","PIERCAP","HATSTONE","CORNICE","EDGEBEAM","FIXED_MOVEMENT","GUIDED_LONGITUDINAL","GUIDED_TRANSVERSAL","FREE_MOVEMENT","CYLINDRICAL","SPHERICAL","ELASTOMERIC","POT","GUIDE","ROCKER","ROLLER","DISK","GREATERTHAN","GREATERTHANOREQUALTO","LESSTHAN","LESSTHANOREQUALTO","EQUALTO","NOTEQUALTO","INCLUDES","NOTINCLUDES","INCLUDEDIN","NOTINCLUDEDIN","WATER","STEAM","UNION","INTERSECTION","DIFFERENCE","ABUTMENT","DECK","DECK_SEGMENT","FOUNDATION","PYLON","SUBSTRUCTURE","SUPERSTRUCTURE","SURFACESTRUCTURE","ARCHED","CABLE_STAYED","CANTILEVER","CULVERT","FRAMEWORK","GIRDER","SUSPENSION","TRUSS","INSULATION","PRECASTPANEL","APRON","COMPLEX","ELEMENT","PARTIAL","PROVISIONFORVOID","PROVISIONFORSPACE","FENESTRATION","LOADBEARING","OUTERSHELL","SHADING","TRANSPORT","REINFORCING","PRESTRESSING","BEND","CROSS","REDUCER","TEE","CABLELADDERSEGMENT","CABLETRUNKINGSEGMENT","CONDUITSEGMENT","CONNECTOR","ENTRY","EXIT","JUNCTION","TRANSITION","BUSBARSEGMENT","CABLESEGMENT","CONDUCTORSEGMENT","WELL","CAISSON","NOCHANGE","MODIFIED","ADDED","DELETED","AIRCOOLED","WATERCOOLED","HEATRECOVERY","DXCOOLINGCOIL","ELECTRICHEATINGCOIL","HYDRONICCOIL","STEAMHEATINGCOIL","WATERCOOLINGCOIL","WATERHEATINGCOIL","COLUMN","PILASTER","PIERSTEM","PIERSTEM_SEGMENT","STANDCOLUMN","ANTENNA","COMPUTER","GATEWAY","MODEM","NETWORKAPPLIANCE","NETWORKBRIDGE","NETWORKHUB","PRINTER","REPEATER","ROUTER","SCANNER","P_COMPLEX","Q_COMPLEX","DYNAMIC","RECIPROCATING","ROTARY","TROCHOIDAL","SINGLESTAGE","BOOSTER","HERMETIC","SEMIHERMETIC","WELDEDSHELLHERMETIC","ROLLINGPISTON","ROTARYVANE","SINGLESCREW","EVAPORATIVECOOLED","WATERCOOLEDBRAZEDPLATE","WATERCOOLEDSHELLCOIL","WATERCOOLEDSHELLTUBE","WATERCOOLEDTUBEINTUBE","ATPATH","ATSTART","ATEND","HARD","SOFT","ADVISORY","DEMOLISHING","EARTHMOVING","ERECTING","HEATING","LIGHTING","PAVING","PUMPING","TRANSPORTING","AGGREGATES","CONCRETE","DRYWALL","FUEL","GYPSUM","MASONRY","METAL","PLASTIC","WOOD","ASSEMBLY","FORMWORK","FLOATING","PROGRAMMABLE","PROPORTIONAL","MULTIPOSITION","TWOPOSITION","ACTIVE","PASSIVE","NATURALDRAFT","MECHANICALINDUCEDDRAFT","MECHANICALFORCEDDRAFT","BUDGET","COSTPLAN","ESTIMATE","TENDER","PRICEDBILLOFQUANTITIES","UNPRICEDBILLOFQUANTITIES","SCHEDULEOFRATES","CEILING","FLOORING","CLADDING","ROOFING","MOLDING","SKIRTINGBOARD","MEMBRANE","SLEEVING","WRAPPING","COPING","LOG_LINEAR","LOG_LOG","BACKDRAFTDAMPER","BALANCINGDAMPER","BLASTDAMPER","CONTROLDAMPER","FIREDAMPER","FIRESMOKEDAMPER","GRAVITYDAMPER","GRAVITYRELIEFDAMPER","RELIEFDAMPER","SMOKEDAMPER","MEASURED","PREDICTED","SIMULATED","AREADENSITYUNIT","COMPOUNDPLANEANGLEUNIT","DYNAMICVISCOSITYUNIT","HEATFLUXDENSITYUNIT","INTEGERCOUNTRATEUNIT","ISOTHERMALMOISTURECAPACITYUNIT","KINEMATICVISCOSITYUNIT","LINEARVELOCITYUNIT","MASSDENSITYUNIT","MASSFLOWRATEUNIT","MOISTUREDIFFUSIVITYUNIT","MOLECULARWEIGHTUNIT","SPECIFICHEATCAPACITYUNIT","THERMALADMITTANCEUNIT","THERMALCONDUCTANCEUNIT","THERMALRESISTANCEUNIT","THERMALTRANSMITTANCEUNIT","VAPORPERMEABILITYUNIT","VOLUMETRICFLOWRATEUNIT","ROTATIONALFREQUENCYUNIT","TORQUEUNIT","MOMENTOFINERTIAUNIT","LINEARMOMENTUNIT","LINEARFORCEUNIT","PLANARFORCEUNIT","MODULUSOFELASTICITYUNIT","SHEARMODULUSUNIT","LINEARSTIFFNESSUNIT","ROTATIONALSTIFFNESSUNIT","MODULUSOFSUBGRADEREACTIONUNIT","ACCELERATIONUNIT","CURVATUREUNIT","HEATINGVALUEUNIT","IONCONCENTRATIONUNIT","MASSPERLENGTHUNIT","MODULUSOFLINEARSUBGRADEREACTIONUNIT","PHUNIT","ROTATIONALMASSUNIT","SECTIONAREAINTEGRALUNIT","SOUNDPOWERLEVELUNIT","SOUNDPOWERUNIT","SOUNDPRESSURELEVELUNIT","SOUNDPRESSUREUNIT","TEMPERATUREGRADIENTUNIT","TEMPERATURERATEOFCHANGEUNIT","THERMALEXPANSIONCOEFFICIENTUNIT","WARPINGCONSTANTUNIT","WARPINGMOMENTUNIT","POSITIVE","ANCHORPLATE","BRACKET","SHOE","EXPANSION_JOINT_DEVICE","FORMEDDUCT","INSPECTIONCHAMBER","MANHOLE","METERCHAMBER","SUMP","TRENCH","VALVECHAMBER","CABLE","CABLECARRIER","DUCT","PIPE","AIRCONDITIONING","AUDIOVISUAL","CHEMICAL","CHILLEDWATER","COMMUNICATION","COMPRESSEDAIR","CONDENSERWATER","CONTROL","CONVEYING","DATA","DISPOSAL","DOMESTICCOLDWATER","DOMESTICHOTWATER","DRAINAGE","EARTHING","ELECTRICAL","ELECTROACOUSTIC","EXHAUST","FIREPROTECTION","GAS","HAZARDOUS","LIGHTNINGPROTECTION","MUNICIPALSOLIDWASTE","OIL","OPERATIONAL","POWERGENERATION","RAINWATER","SECURITY","SEWAGE","STORMWATER","VACUUM","VENT","VENTILATION","WASTEWATER","WATERSUPPLY","PUBLIC","RESTRICTED","CONFIDENTIAL","PERSONAL","DRAFT","FINALDRAFT","FINAL","REVISION","DOUBLE_ACTING","SLIDING","FOLDING","REVOLVING","ROLLINGUP","FIXEDPANEL","HIGH_GRADE_STEEL","STEEL","ALUMINIUM_WOOD","ALUMINIUM_PLASTIC","SINGLE_SWING_LEFT","SINGLE_SWING_RIGHT","DOUBLE_DOOR_SINGLE_SWING","DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT","DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT","DOUBLE_SWING_LEFT","DOUBLE_SWING_RIGHT","DOUBLE_DOOR_DOUBLE_SWING","SLIDING_TO_LEFT","SLIDING_TO_RIGHT","DOUBLE_DOOR_SLIDING","FOLDING_TO_LEFT","FOLDING_TO_RIGHT","DOUBLE_DOOR_FOLDING","DOOR","GATE","TRAPDOOR","SWING_FIXED_LEFT","SWING_FIXED_RIGHT","OBSTRUCTION","RIGIDSEGMENT","FLEXIBLESEGMENT","FLATOVAL","RECTANGULAR","ROUND","DISHWASHER","ELECTRICCOOKER","FREESTANDINGELECTRICHEATER","FREESTANDINGFAN","FREESTANDINGWATERHEATER","FREESTANDINGWATERCOOLER","FREEZER","FRIDGE_FREEZER","HANDDRYER","KITCHENMACHINE","MICROWAVE","REFRIGERATOR","TUMBLEDRYER","VENDINGMACHINE","WASHINGMACHINE","CONSUMERUNIT","DISTRIBUTIONBOARD","MOTORCONTROLCENTRE","SWITCHBOARD","BATTERY","CAPACITORBANK","HARMONICFILTER","INDUCTORBANK","UPS","CHP","ENGINEGENERATOR","STANDALONE","INDUCTION","POLYPHASE","RELUCTANCESYNCHRONOUS","SYNCHRONOUS","TIMECLOCK","TIMEDELAY","RELAY","ACCESSORY_ASSEMBLY","ARCH","BEAM_GRID","BRACED_FRAME","REINFORCEMENT_UNIT","RIGID_FRAME","SLAB_FIELD","PIER","CROSS_BRACING","EXTERNALCOMBUSTION","INTERNALCOMBUSTION","DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER","DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER","DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER","DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER","DIRECTEVAPORATIVEAIRWASHER","INDIRECTEVAPORATIVEPACKAGEAIRCOOLER","INDIRECTEVAPORATIVEWETCOIL","INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER","INDIRECTDIRECTCOMBINATION","DIRECTEXPANSION","DIRECTEXPANSIONSHELLANDTUBE","DIRECTEXPANSIONTUBEINTUBE","DIRECTEXPANSIONBRAZEDPLATE","FLOODEDSHELLANDTUBE","SHELLANDCOIL","EVENTRULE","EVENTMESSAGE","EVENTTIME","EVENTCOMPLEX","ENDEVENT","INTERMEDIATEEVENT","EXTERNAL","EXTERNAL_EARTH","EXTERNAL_WATER","EXTERNAL_FIRE","CENTRIFUGALFORWARDCURVED","CENTRIFUGALRADIAL","CENTRIFUGALBACKWARDINCLINEDCURVED","CENTRIFUGALAIRFOIL","TUBEAXIAL","VANEAXIAL","PROPELLORAXIAL","GLUE","MORTAR","WELD","AIRPARTICLEFILTER","COMPRESSEDAIRFILTER","ODORFILTER","OILFILTER","STRAINER","WATERFILTER","FIREHYDRANT","SPRINKLER","SPRINKLERDEFLECTOR","SOURCE","SINK","SOURCEANDSINK","PRESSUREGAUGE","THERMOMETER","FREQUENCYMETER","POWERFACTORMETER","PHASEANGLEMETER","VOLTMETER_PEAK","ENERGYMETER","GASMETER","OILMETER","WATERMETER","CAISSON_FOUNDATION","FOOTING_BEAM","PAD_FOOTING","PILE_CAP","CHAIR","TABLE","DESK","BED","FILECABINET","SHELF","SOFA","TERRAIN","SOIL_BORING_POINT","GRAPH_VIEW","SKETCH_VIEW","MODEL_VIEW","REFLECTED_PLAN_VIEW","SECTION_VIEW","ELEVATION_VIEW","GLOBAL_COORDS","LOCAL_COORDS","RADIAL","TRIANGULAR","IRREGULAR","PLATE","SHELLANDTUBE","STEAMINJECTION","ADIABATICAIRWASHER","ADIABATICPAN","ADIABATICWETTEDELEMENT","ADIABATICATOMIZING","ADIABATICULTRASONIC","ADIABATICRIGIDMEDIA","ADIABATICCOMPRESSEDAIRNOZZLE","ASSISTEDELECTRIC","ASSISTEDNATURALGAS","ASSISTEDPROPANE","ASSISTEDSTEAM","CYCLONIC","GREASE","PETROL","INTERNAL","ASSETINVENTORY","SPACEINVENTORY","FURNITUREINVENTORY","UNIFORM_KNOTS","QUASI_UNIFORM_KNOTS","PIECEWISE_BEZIER_KNOTS","ADMINISTRATION","CARPENTRY","CLEANING","FINISHING","GENERAL","LANDSCAPING","PAINTING","PLUMBING","SITEGRADING","STEELWORK","SURVEYING","COMPACTFLUORESCENT","FLUORESCENT","HALOGEN","HIGHPRESSUREMERCURY","HIGHPRESSURESODIUM","LED","METALHALIDE","TUNGSTENFILAMENT","AXIS1","AXIS2","AXIS3","TYPE_A","TYPE_B","TYPE_C","LIGHTEMITTINGDIODE","LOWPRESSURESODIUM","LOWVOLTAGEHALOGEN","MAINVOLTAGEHALOGEN","POINTSOURCE","DIRECTIONSOURCE","SECURITYLIGHTING","LOAD_GROUP","LOAD_CASE","LOAD_COMBINATION","LOGICALAND","LOGICALOR","LOGICALXOR","LOGICALNOTAND","LOGICALNOTOR","ANCHORBOLT","BOLT","DOWEL","NAIL","NAILPLATE","RIVET","SCREW","SHEARCONNECTOR","STAPLE","STUDSHEARCONNECTOR","COUPLER","AIRSTATION","FEEDAIRUNIT","OXYGENGENERATOR","OXYGENPLANT","VACUUMSTATION","BRACE","CHORD","MEMBER","MULLION","PURLIN","RAFTER","STRINGER","STRUT","STUD","STIFFENING_RIB","ARCH_SEGMENT","SUSPENSION_CABLE","SUSPENDER","STAY_CABLE","BELTDRIVE","COUPLING","DIRECTDRIVE","NULL","PRODUCT","RESOURCE","ACTOR","GROUP","PROJECT","CODECOMPLIANCE","CODEWAIVER","DESIGNINTENT","HEALTHANDSAFETY","MERGECONFLICT","MODELVIEW","PARAMETER","REQUIREMENT","SPECIFICATION","TRIGGERCONDITION","ASSIGNEE","ASSIGNOR","LESSEE","LESSOR","LETTINGAGENT","OWNER","TENANT","OPENING","RECESS","AUDIOVISUALOUTLET","COMMUNICATIONSOUTLET","POWEROUTLET","DATAOUTLET","TELEPHONEOUTLET","GRILL","LOUVER","SCREEN","ACCESS","BUILDING","WORK","PHYSICAL","VIRTUAL","CAST_IN_PLACE","PRECAST_CONCRETE","PREFAB_STEEL","BORED","DRIVEN","JETGROUTING","COHESION","FRICTION","SUPPORT","GUTTER","SPOOL","CURTAIN_PANEL","SHEET","FLANGE_PLATE","WEB_PLATE","STIFFENER_PLATE","GUSSET_PLATE","COVER_PLATE","BASE_PLATE","CURVE3D","PCURVE_S1","PCURVE_S2","ADVICE_CAUTION","ADVICE_WARNING","CALIBRATION","DIAGNOSTIC","SHUTDOWN","STARTUP","CURVE","AREA","CHANGEORDER","MAINTENANCEWORKORDER","MOVEORDER","PURCHASEORDER","WORKORDER","PROJECTED_LENGTH","TRUE_LENGTH","BLISTER","DEVIATOR","PSET_TYPEDRIVENONLY","PSET_TYPEDRIVENOVERRIDE","PSET_OCCURRENCEDRIVEN","PSET_PERFORMANCEDRIVEN","QTO_TYPEDRIVENONLY","QTO_TYPEDRIVENOVERRIDE","QTO_OCCURRENCEDRIVEN","ELECTRONIC","ELECTROMAGNETIC","RESIDUALCURRENT","THERMAL","CIRCUITBREAKER","EARTHLEAKAGECIRCUITBREAKER","EARTHINGSWITCH","FUSEDISCONNECTOR","RESIDUALCURRENTCIRCUITBREAKER","RESIDUALCURRENTSWITCH","VARISTOR","CIRCULATOR","ENDSUCTION","SPLITCASE","SUBMERSIBLEPUMP","SUMPPUMP","VERTICALINLINE","VERTICALTURBINE","HANDRAIL","GUARDRAIL","BALUSTRADE","STRAIGHT","SPIRAL","STRAIGHT_RUN_RAMP","TWO_STRAIGHT_RUN_RAMP","QUARTER_TURN_RAMP","TWO_QUARTER_TURN_RAMP","HALF_TURN_RAMP","SPIRAL_RAMP","DAILY","WEEKLY","MONTHLY_BY_POSITION","BY_DAY_COUNT","BY_WEEKDAY_COUNT","YEARLY_BY_DAY_OF_MONTH","YEARLY_BY_POSITION","KILOPOINT","MILEPOINT","STATION","BLINN","FLAT","GLASS","MATT","MIRROR","PHONG","STRAUSS","MAIN","SHEAR","LIGATURE","PUNCHING","EDGE","RING","ANCHORING","PLAIN","TEXTURED","SPACEBAR","SUPPLIER","MANUFACTURER","CONTRACTOR","SUBCONTRACTOR","ARCHITECT","STRUCTURALENGINEER","COSTENGINEER","CLIENT","BUILDINGOWNER","MECHANICALENGINEER","ELECTRICALENGINEER","PROJECTMANAGER","FACILITIESMANAGER","CIVILENGINEER","COMMISSIONINGENGINEER","ENGINEER","CONSULTANT","CONSTRUCTIONMANAGER","FIELDCONSTRUCTIONMANAGER","RESELLER","FLAT_ROOF","SHED_ROOF","GABLE_ROOF","HIP_ROOF","GAMBREL_ROOF","MANSARD_ROOF","BARREL_ROOF","RAINBOW_ROOF","BUTTERFLY_ROOF","PAVILION_ROOF","DOME_ROOF","FREEFORM","EXA","PETA","TERA","GIGA","MEGA","KILO","HECTO","DECA","DECI","MILLI","MICRO","NANO","PICO","FEMTO","ATTO","AMPERE","BECQUEREL","CANDELA","COULOMB","CUBIC_METRE","DEGREE_CELSIUS","FARAD","GRAM","GRAY","HENRY","HERTZ","JOULE","KELVIN","LUMEN","LUX","METRE","MOLE","NEWTON","OHM","PASCAL","SECOND","SIEMENS","SIEVERT","SQUARE_METRE","STERADIAN","TESLA","VOLT","WATT","WEBER","BATH","BIDET","CISTERN","SHOWER","SANITARYFOUNTAIN","TOILETPAN","URINAL","WASHHANDBASIN","WCSEAT","UNIFORM","TAPERED","COSENSOR","CO2SENSOR","CONDUCTANCESENSOR","CONTACTSENSOR","FIRESENSOR","FLOWSENSOR","FROSTSENSOR","GASSENSOR","HEATSENSOR","HUMIDITYSENSOR","IDENTIFIERSENSOR","IONCONCENTRATIONSENSOR","LEVELSENSOR","LIGHTSENSOR","MOISTURESENSOR","PHSENSOR","PRESSURESENSOR","RADIATIONSENSOR","SMOKESENSOR","SOUNDSENSOR","TEMPERATURESENSOR","WINDSENSOR","START_START","START_FINISH","FINISH_START","FINISH_FINISH","JALOUSIE","SHUTTER","AWNING","P_SINGLEVALUE","P_ENUMERATEDVALUE","P_BOUNDEDVALUE","P_LISTVALUE","P_TABLEVALUE","P_REFERENCEVALUE","Q_AREA","Q_COUNT","Q_WEIGHT","Q_TIME","FLOOR","ROOF","LANDING","BASESLAB","APPROACH_SLAB","WEARING","SIDEWALK","SOLARCOLLECTOR","SOLARPANEL","RADIATOR","SPACE","PARKING","GFA","CONSTRUCTION","FIRESAFETY","OCCUPANCY","BIRDCAGE","COWL","RAINWATERHOPPER","WINDER","STRAIGHT_RUN_STAIR","TWO_STRAIGHT_RUN_STAIR","QUARTER_WINDING_STAIR","QUARTER_TURN_STAIR","HALF_WINDING_STAIR","HALF_TURN_STAIR","TWO_QUARTER_WINDING_STAIR","THREE_QUARTER_WINDING_STAIR","THREE_QUARTER_TURN_STAIR","SPIRAL_STAIR","DOUBLE_RETURN_STAIR","CURVED_RUN_STAIR","TWO_CURVED_RUN_STAIR","READWRITE","READONLY","LOCKED","READWRITELOCKED","READONLYLOCKED","CONST","POLYGONAL","EQUIDISTANT","SINUS","PARABOLA","DISCRETE","RIGID_JOINED_MEMBER","PIN_JOINED_MEMBER","TENSION_MEMBER","COMPRESSION_MEMBER","BILINEAR","ISOCONTOUR","BENDING_ELEMENT","SHELL","PURCHASE","MARK","TAG","TREATMENT","DEFECT","NEGATIVE","BOTH","CONTACTOR","DIMMERSWITCH","EMERGENCYSTOP","KEYPAD","MOMENTARYSWITCH","SELECTORSWITCH","STARTER","SWITCHDISCONNECTOR","TOGGLESWITCH","PANEL","WORKSURFACE","BASIN","BREAKPRESSURE","EXPANSION","FEEDANDEXPANSION","PRESSUREVESSEL","STORAGE","VESSEL","ELAPSEDTIME","WORKTIME","ATTENDANCE","DEMOLITION","DISMANTLE","INSTALLATION","LOGISTIC","MAINTENANCE","REMOVAL","RENOVATION","FIXED_END","TENSIONING_END","GROUTING_DUCT","TRUMPET","DIABOLO","BAR","COATED","STRAND","WIRE","DOWN","CONTINUOUS","DISCRETEBINARY","PIECEWISECONSTANT","PIECEWISECONTINUOUS","FREQUENCY","INVERTER","RECTIFIER","VOLTAGE","DISCONTINUOUS","CONTSAMEGRADIENT","CONTSAMEGRADIENTSAMECURVATURE","BIQUADRATICPARABOLA","BLOSSCURVE","CLOTHOIDCURVE","COSINECURVE","CUBICPARABOLA","SINECURVE","ELEVATOR","ESCALATOR","MOVINGWALKWAY","LIFTINGGEAR","CARTESIAN","FINNED","ABSORBEDDOSEUNIT","AMOUNTOFSUBSTANCEUNIT","AREAUNIT","DOSEEQUIVALENTUNIT","ELECTRICCAPACITANCEUNIT","ELECTRICCHARGEUNIT","ELECTRICCONDUCTANCEUNIT","ELECTRICCURRENTUNIT","ELECTRICRESISTANCEUNIT","ELECTRICVOLTAGEUNIT","ENERGYUNIT","FORCEUNIT","FREQUENCYUNIT","ILLUMINANCEUNIT","INDUCTANCEUNIT","LENGTHUNIT","LUMINOUSFLUXUNIT","LUMINOUSINTENSITYUNIT","MAGNETICFLUXDENSITYUNIT","MAGNETICFLUXUNIT","MASSUNIT","POWERUNIT","PRESSUREUNIT","RADIOACTIVITYUNIT","THERMODYNAMICTEMPERATUREUNIT","TIMEUNIT","VOLUMEUNIT","ALARMPANEL","CONTROLPANEL","GASDETECTIONPANEL","INDICATORPANEL","MIMICPANEL","THERMOSTAT","WEATHERSTATION","AIRHANDLER","AIRCONDITIONINGUNIT","DEHUMIDIFIER","SPLITSYSTEM","ROOFTOPUNIT","AIRRELEASE","ANTIVACUUM","CHANGEOVER","CHECK","COMMISSIONING","DIVERTING","DRAWOFFCOCK","DOUBLEREGULATING","FAUCET","FLUSHING","GASCOCK","GASTAP","ISOLATING","MIXING","PRESSUREREDUCING","PRESSURERELIEF","REGULATING","SAFETYCUTOFF","STEAMTRAP","STOPCOCK","BENDING_YIELD","SHEAR_YIELD","AXIAL_YIELD","VISCOUS","COMPRESSION","SPRING","BASE","CUTOUT","NOTCH","HOLE","MITER","CHAMFER","MOVABLE","PARAPET","PARTITIONING","PLUMBINGWALL","SOLIDWALL","STANDARD","ELEMENTEDWALL","FLOORTRAP","FLOORWASTE","GULLYSUMP","GULLYTRAP","ROOFDRAIN","WASTEDISPOSALUNIT","WASTETRAP","SIDEHUNGRIGHTHAND","SIDEHUNGLEFTHAND","TILTANDTURNRIGHTHAND","TILTANDTURNLEFTHAND","TOPHUNG","BOTTOMHUNG","PIVOTVERTICAL","SLIDINGHORIZONTAL","SLIDINGVERTICAL","REMOVABLECASEMENT","FIXEDCASEMENT","OTHEROPERATION","TOP","ALUMINIUM","OTHER_CONSTRUCTION","SINGLE_PANEL","DOUBLE_PANEL_VERTICAL","DOUBLE_PANEL_HORIZONTAL","TRIPLE_PANEL_VERTICAL","TRIPLE_PANEL_BOTTOM","TRIPLE_PANEL_TOP","TRIPLE_PANEL_LEFT","TRIPLE_PANEL_RIGHT","TRIPLE_PANEL_HORIZONTAL","WINDOW","SKYLIGHT","LIGHTDOME","FIRSTSHIFT","SECONDSHIFT","THIRDSHIFT","ACTUAL","BASELINE","PLANNED","expressID","OwnerHistory","Name","ObjectType","Identification","PredefinedType","Status","LongDescription","GlobalId","Description","ToTape","TheActor","Role","UserDefinedRole","Representation","Tag","ObjectPlacement","RepresentationMaps","ApplicableOccurrence","HasPropertySets","ElementType","Purpose","UserDefinedPurpose","Outer","Voids","Bounds","FaceSurface","Axis","StartDistAlong","Segments","StartTag","EndTag","CurveGeometry","TangentialContinuity","HorizontalLength","StartHeight","StartGradient","Radius","IsConvex","ParabolaConstant","Horizontal","Vertical","OuterBoundary","InnerBoundaries","ApplicationDeveloper","ApplicationFullName","AppliedValue","UnitBasis","ApplicableDate","FixedUntilDate","Category","Condition","ArithmeticOperator","TimeOfApproval","Level","Qualifier","RequestingApproval","GivingApproval","Identifier","RelatingApproval","RelatedApprovals","ProfileType","ProfileName","OuterCurve","InnerCurves","OriginalValue","TotalReplacementCost","Owner","User","ResponsiblePerson","IncorporationDate","Position","BottomFlangeWidth","WebThickness","BottomFlangeThickness","BottomFlangeFilletRadius","TopFlangeThickness","BottomFlangeSlope","TopFlangeEdgeRadius","TopFlangeSlope","OverallDepth","TopFlangeWidth","TopFlangeFilletRadius","BottomFlangeEdgeRadius","Location","RefDirection","Degree","ControlPointsList","CurveForm","ClosedCurve","SelfIntersect","KnotMultiplicities","Knots","KnotSpec","UDegree","UClosed","VClosed","VDegree","SurfaceForm","UMultiplicities","VMultiplicities","UKnots","VKnots","RepeatS","RepeatT","Mode","TextureTransform","Parameter","RasterCode","XLength","YLength","ZLength","Operator","SecondOperand","FirstOperand","TranslationalStiffnessByLengthY","TranslationalStiffnessByLengthZ","RotationalStiffnessByLengthX","RotationalStiffnessByLengthY","TranslationalStiffnessByLengthX","RotationalStiffnessByLengthZ","TranslationalStiffnessByAreaY","TranslationalStiffnessByAreaX","TranslationalStiffnessByAreaZ","TranslationalStiffnessX","TranslationalStiffnessY","RotationalStiffnessX","RotationalStiffnessY","RotationalStiffnessZ","TranslationalStiffnessZ","WarpingStiffness","Corner","XDim","YDim","BaseSurface","AgreementFlag","CompositionType","LongName","ElevationOfRefHeight","ElevationOfTerrain","BuildingAddress","Elevation","WallThickness","Girth","InternalFilletRadius","Coordinates","CoordList","TagList","Axis1","Axis2","Scale","LocalOrigin","Scale2","Axis3","Scale3","Thickness","StartPoint","StartDirection","SegmentLength","IsCCW","Source","Edition","EditionDate","ReferenceTokens","Sort","CfsFaces","Red","Green","Blue","HasProperties","UsageName","TemplateType","HasPropertyTemplates","Transition","SameSense","ParentCurve","Label","Profiles","CurveOnRelatingElement","CurveOnRelatedElement","PointOnRelatingElement","PointOnRelatedElement","EccentricityInX","EccentricityInZ","EccentricityInY","SurfaceOnRelatingElement","SurfaceOnRelatedElement","VolumeOnRelatingElement","VolumeOnRelatedElement","ConstraintSource","CreatingActor","ConstraintGrade","CreationTime","UserDefinedGrade","Usage","BaseCosts","BaseQuantity","ResourceType","RepresentationContexts","UnitsInContext","Dimensions","UnitType","ConversionFactor","ConversionOffset","SourceCRS","TargetCRS","VerticalDatum","CostValues","CostQuantities","UpdateDate","SubmittedOn","TreeRootExpression","ExchangeRate","RateDateTime","RateSource","RelatedMonetaryUnit","BasisSurface","Boundaries","ImplicitOuter","CurveFont","CurveWidth","CurveColour","ModelOrDraughting","PatternList","VisibleSegmentLength","InvisibleSegmentLength","ParentProfile","Elements","UserDefinedType","Unit","Exponent","LengthExponent","MassExponent","TimeExponent","ElectricCurrentExponent","ThermodynamicTemperatureExponent","AmountOfSubstanceExponent","LuminousIntensityExponent","DirectionRatios","DistanceAlong","OffsetLateral","OffsetVertical","OffsetLongitudinal","AlongHorizontal","FlowDirection","SystemType","IntendedUse","Scope","Revision","Editors","LastRevisionTime","ElectronicFormat","ValidUntil","Confidentiality","DocumentOwner","ValidFrom","RelatedDocuments","RelationshipType","RelatingDocument","ReferencedDocument","OverallHeight","OverallWidth","OperationType","UserDefinedOperationType","LiningDepth","LiningThickness","ThresholdDepth","ThresholdThickness","TransomOffset","LiningOffset","ThresholdOffset","CasingDepth","LiningToPanelOffsetX","LiningToPanelOffsetY","TransomThickness","CasingThickness","ShapeAspectStyle","PanelOperation","PanelWidth","PanelDepth","ConstructionType","ParameterTakesPrecedence","Sizeable","EdgeStart","EdgeEnd","EdgeGeometry","EdgeList","AssemblyPlace","MethodOfMeasurement","SemiAxis1","SemiAxis2","EventTriggerType","UserDefinedEventTriggerType","EventOccurenceTime","DataOrigin","UserDefinedDataOrigin","ActualDate","EarlyDate","LateDate","ScheduleDate","ProcessType","RelatingReference","ExtrudedDirection","SweptArea","EndSweptArea","FbsmFaces","Bound","Orientation","TensionFailureY","TensionFailureZ","CompressionFailureZ","TensionFailureX","CompressionFailureX","CompressionFailureY","ModelorDraughting","FillStyles","HatchLineAppearance","StartOfNextHatchLine","PointOfReferenceHatchLine","PatternStart","HatchLineAngle","Tiles","TilingScale","TilingPattern","Directrix","EndParam","FixedReference","StartParam","ContextIdentifier","ContextType","CoordinateSpaceDimension","Precision","TrueNorth","WorldCoordinateSystem","ParentContext","TargetScale","TargetView","UserDefinedTargetView","UAxes","VAxes","WAxes","AxisTag","AxisCurve","PlacementRelTo","PlacementLocation","PlacementRefDirection","FlangeThickness","FilletRadius","FlangeEdgeRadius","FlangeSlope","URLReference","MappedTo","Colours","ColourIndex","CoordIndex","InnerCoordIndices","Maps","TexCoords","TexCoordIndex","Curve3D","AssociatedGeometry","MasterRepresentation","Jurisdiction","LastUpdateDate","CurrentValue","ResponsiblePersons","StartTime","EndTime","TimeSeriesDataType","Values","TimeStamp","ListValues","Width","EdgeRadius","LegSlope","LagValue","DurationType","Publisher","VersionDate","ReferencedLibrary","SecondaryPlaneAngle","LuminousIntensity","DistributionData","LightDistributionCurve","AmbientIntensity","LightColour","ColourAppearance","ColourTemperature","LuminousFlux","LightDistributionDataSource","ConstantAttenuation","DistanceAttenuation","QuadricAttenuation","SpreadAngle","BeamWidthAngle","ConcentrationExponent","Pnt","Dir","PlacementMeasuredAlong","Distance","CartesianPosition","RelativePlacement","Northings","OrthogonalHeight","XAxisAbscissa","XAxisOrdinate","MappingSource","MappingTarget","MaterialClassifications","ClassifiedMaterial","Fraction","MaterialConstituents","RepresentedMaterial","LayerThickness","IsVentilated","Priority","MaterialLayers","LayerSetName","ForLayerSet","LayerSetDirection","DirectionSense","OffsetFromReferenceLine","OffsetDirection","Profile","MaterialProfiles","CompositeProfile","CardinalPoint","ReferenceExtent","ForProfileSet","CardinalEndPoint","ForProfileEndSet","OffsetValues","Properties","RelatingMaterial","RelatedMaterials","Expression","ValueComponent","UnitComponent","NominalDiameter","NominalLength","Benchmark","ValueSource","DataValue","ReferencePath","Currency","BenchmarkValues","ObjectiveQualifier","UserDefinedQualifier","LogicalAggregator","BasisCurve","Roles","Addresses","RelatedOrganizations","RelatingOrganization","LateralAxisDirection","VerticalAxisDirection","EdgeElement","OwningUser","OwningApplication","State","ChangeAction","LastModifiedDate","LastModifyingUser","LastModifyingApplication","CreationDate","ReferenceCurve","LifeCyclePhase","PanelPosition","FrameDepth","FrameThickness","FamilyName","GivenName","MiddleNames","PrefixTitles","SuffixTitles","ThePerson","TheOrganization","HasQuantities","Discrimination","Quality","Height","ColourComponents","Pixel","SizeInX","SizeInY","Placement","PointParameter","PointParameterV","PolygonalBoundary","Closed","PnIndex","InternalLocation","AddressLines","PostalBox","Town","Region","PostalCode","Country","AssignedItems","LayerOn","LayerFrozen","LayerBlocked","LayerStyles","Styles","Representations","ProfileDefinition","Phase","GeodeticDatum","MapZone","MapUnit","MapProjection","UpperBoundValue","LowerBoundValue","SetPointValue","DependantProperty","DependingProperty","EnumerationValues","PropertyReference","ApplicableEntity","NominalValue","DefiningValues","DefiningUnit","DefinedUnit","DefinedValues","CurveInterpolation","ProxyType","AreaValue","Formula","CountValue","LengthValue","VolumeValue","WeightValue","WeightsData","InnerFilletRadius","OuterFilletRadius","Vsense","Usense","WeekdayComponent","MonthComponent","Interval","Occurrences","TimePeriods","RecurrenceType","TypeIdentifier","AttributeIdentifier","InstanceName","ListPositions","InnerReference","RestartDistance","TimeStep","TotalCrossSectionArea","SteelGrade","BarSurface","NominalBarDiameter","BarCount","DefinitionType","ReinforcementSectionDefinitions","CrossSectionArea","BarLength","BendingShapeCode","BendingParameters","MeshLength","MeshWidth","LongitudinalBarCrossSectionArea","TransverseBarCrossSectionArea","LongitudinalBarNominalDiameter","LongitudinalBarSpacing","TransverseBarSpacing","TransverseBarNominalDiameter","RelatingObject","RelatedObjects","RelatedObjectsType","RelatingActor","ActingRole","RelatingControl","RelatingGroup","Factor","QuantityInProcess","RelatingProcess","RelatingProduct","RelatingResource","RelatingClassification","Intent","RelatingConstraint","RelatingLibrary","ConnectionGeometry","RelatingElement","RelatedElement","RelatingPriorities","RelatedPriorities","RelatedConnectionType","RelatingConnectionType","RelatingPort","RealizingElement","RelatedPort","RelatedStructuralActivity","RelatingStructuralMember","AdditionalConditions","SupportedLength","ConditionCoordinateSystem","RelatedStructuralConnection","AppliedCondition","ConnectionConstraint","RealizingElements","ConnectionType","RelatedElements","RelatingStructure","RelatingBuildingElement","RelatingSpace","RelatedCoverings","RelatingContext","RelatedDefinitions","RelatingPropertyDefinition","RelatedPropertySets","RelatingType","RelatingOpeningElement","RelatedBuildingElement","RelatedControlElements","RelatingFlowElement","InterferenceGeometry","InterferenceType","ImpliedOrder","RelatedProducts","RelatedFeatureElement","RelatedProcess","TimeLag","SequenceType","UserDefinedSequenceType","RelatingSystem","RelatedBuildings","PhysicalOrVirtualBoundary","InternalOrExternalBoundary","ParentBoundary","CorrespondingBoundary","RelatedOpeningElement","ParamLength","ContextOfItems","RepresentationIdentifier","RepresentationType","Items","MappingOrigin","MappedRepresentation","RelatedResourceObjects","ScheduleWork","ScheduleUsage","ScheduleStart","ScheduleFinish","ScheduleContour","LevelingDelay","IsOverAllocated","ActualWork","Completion","ActualFinish","RemainingUsage","RoundingRadius","StartProfile","EndProfile","SectionType","LongitudinalStartPosition","TransversePosition","ReinforcementRole","SectionDefinition","CrossSectionReinforcementDefinitions","LongitudinalEndPosition","CrossSections","CrossSectionPositions","FixedAxisVertical","SpineCurve","ShapeRepresentations","ProductDefinitional","PartOfProductDefinitionShape","SbsmBoundary","SecondaryMeasureType","PrimaryUnit","SecondaryUnit","AccessState","PrimaryMeasureType","Enumerators","RefLatitude","RefLongitude","RefElevation","LandTitleNumber","SiteAddress","SlippageX","SlippageZ","SlippageY","ElevationWithFlooring","NumberOfRisers","NumberOfTreads","RiserHeight","TreadLength","AppliedLoad","GlobalOrLocal","DestabilizingLoad","OrientationOf2DPlane","LoadedBy","HasResults","SharedPlacement","ProjectedOrTrue","ActionType","Coefficient","SelfWeightCoefficients","ActionSource","Locations","LinearForceX","LinearForceY","LinearMomentX","LinearMomentY","LinearForceZ","LinearMomentZ","PlanarForceX","PlanarForceY","PlanarForceZ","DisplacementX","DisplacementY","DisplacementZ","RotationalDisplacementRX","RotationalDisplacementRY","RotationalDisplacementRZ","Distortion","ForceX","ForceY","ForceZ","MomentX","MomentZ","MomentY","WarpingMoment","DeltaTConstant","DeltaTY","DeltaTZ","TheoryType","ResultForLoadGroup","ParentEdge","ReferenceSurface","SweptCurve","AxisPosition","SurfaceReinforcement1","SurfaceReinforcement2","ShearReinforcement","Side","DiffuseTransmissionColour","DiffuseReflectionColour","ReflectanceColour","TransmissionColour","RefractionIndex","SurfaceColour","Transparency","DiffuseColour","SpecularHighlight","ReflectanceMethod","SpecularColour","Textures","InnerRadius","FlangeWidth","WebSlope","Rows","Columns","RowCells","IsHeading","IsMilestone","TaskTime","ScheduleDuration","EarlyFinish","LateStart","LateFinish","FreeFloat","TotalFloat","StatusTime","ActualDuration","ActualStart","EarlyStart","IsCritical","RemainingTime","Recurrence","WorkMethod","TelephoneNumbers","FacsimileNumbers","PagerNumber","WWWHomePageURL","ElectronicMailAddresses","MessagingIDs","TensionForce","PreStress","FrictionCoefficient","AnchorageSlip","MinCurvatureRadius","SheathDiameter","Literal","Extent","BoxAlignment","TextCharacterAppearance","TextStyle","TextFontStyle","FontFamily","FontStyle","FontVariant","FontWeight","Colour","BackgroundColour","TextIndent","TextAlign","TextDecoration","WordSpacing","TextTransform","LineHeight","LetterSpacing","TexCoordsList","MajorRadius","MinorRadius","StartRadius","IsEndRadiusCCW","TransitionCurveType","EndRadius","IsStartRadiusCCW","BottomXDim","TopXDim","Normals","Flags","Trim1","Trim2","SenseAgreement","Units","Magnitude","LoopVertex","OffsetDistances","IntersectingAxes","PartitioningType","UserDefinedPartitioningType","MullionThickness","FirstTransomOffset","SecondTransomOffset","FirstMullionOffset","SecondMullionOffset","WorkingTimes","ExceptionTimes","Duration","FinishTime","Creators","RecurrencePattern","Start","Finish","wasmModule","Could not find wasm module at './web-ifc' from web-ifc-api.ts","OpenModel","ExportFileAsIFC","/export.ifc","GetGeometry","GetLine","FlattenLine","WriteLine","WriteRawLineData","GetRawLineData","GetLineIDsWithType","GetAllLines","SetGeometryTransformation","getSubArray","GetIndexArray","HEAPU32","CloseModel","StreamAllMeshes","IsModelOpen","LoadAllGeometry","GetFlatMesh","hasPsets","BVH","currentWebIfcID","currentModelID","api","Init","newIfcModel","loadAllGeometry","useJSON","models","saveAllPlacedGeometriesByMaterial","generateAllGeometriesByMaterial","getGeometryAndMaterials","savePlacedGeometry","getBufferGeometry","geometryExpressID","getVertices","extractVertexData","ifcGeomToBufferGeom","GetVertexData","GetVertexDataSize","GetVertexArray","getIndices","GetIndexData","GetIndexDataSize","getMeshMatrix","saveGeometryByMaterial","storeGeometryAttribute","getSubset","removeSubset","matIDNoConfig","createSubset","isPreviousSelection","isEasySelection","addToPreviousSelection","createSelectionInScene","getGeomAndMat","isDefaultMat","getMergedGeometry","applyThreeMeshBVH","matID","modelID","isValid","ids","updatePreviousSelection","newSelectionGroup","removePrevious","containsIds","filterGeometries"," - ","IFCPROJECT","IFCSITE","IFCBUILDING","IFCCONTROLLER","IFCBOILER","IFCLAMP","IFCAIRTERMINALBOX","IFCFLOWINSTRUMENT","IFCFURNISHINGELEMENT","IFCELECTRICGENERATOR","IFCAUDIOVISUALAPPLIANCE","IFCPIPEFITTING","IFCSTAIR","IFCDUCTFITTING","IFCMECHANICALFASTENER","IFCELECTRICMOTOR","IFCSYSTEMFURNITUREELEMENT","IFCWINDOWSTANDARDCASE","IFCUNITARYCONTROLELEMENT","IFCCABLECARRIERFITTING","IFCCOIL","IFCFASTENER","IFCFLOWSTORAGEDEVICE","IFCPROTECTIVEDEVICE","IFCBEAM","IFCCOLUMN","IFCELECTRICDISTRIBUTIONBOARD","IFCFOOTING","IFCVOIDINGFEATURE","IFCFLOWSEGMENT","IFCELECTRICTIMECONTROL","IFCCABLEFITTING","IFCDISTRIBUTIONCHAMBERELEMENT","IFCDISTRIBUTIONCONTROLELEMENT","IFCMEMBER","IFCBUILDINGELEMENTPROXY","IFCSHADINGDEVICE","IFCDISCRETEACCESSORY","IFCSTACKTERMINAL","IFCFIRESUPPRESSIONTERMINAL","IFCMEDICALDEVICE","IFCFURNITURE","IFCSLAB","IFCTRANSPORTELEMENT","IFCAIRTERMINAL","IFCENERGYCONVERSIONDEVICE","IFCCIVILELEMENT","IFCELECTRICAPPLIANCE","IFCMEMBERSTANDARDCASE","IFCDISTRIBUTIONELEMENT","IFCCOVERING","IFCSPACEHEATER","IFCAIRTOAIRHEATRECOVERY","IFCFLOWCONTROLLER","IFCJUNCTIONBOX","IFCFLOWMETER","IFCFLOWTERMINAL","IFCRAILING","IFCPROTECTIVEDEVICETRIPPINGUNIT","IFCTENDONANCHOR","IFCVIBRATIONISOLATOR","IFCMOTORCONNECTION","IFCVIRTUALELEMENT","IFCENGINE","IFCBEAMSTANDARDCASE","IFCBURNER","IFCBUILDINGELEMENTPART","IFCSLABSTANDARDCASE","IFCDISTRIBUTIONFLOWELEMENT","IFCSANITARYTERMINAL","IFCOPENINGSTANDARDCASE","IFCALARM","IFCSURFACEFEATURE","IFCFLOWMOVINGDEVICE","IFCPLATE","IFCCOMMUNICATIONSAPPLIANCE","IFCDOORSTANDARDCASE","IFCRAMPFLIGHT","IFCCHIMNEY","IFCWINDOW","IFCELECTRICFLOWSTORAGEDEVICE","IFCHEATEXCHANGER","IFCGEOGRAPHICELEMENT","IFCCURTAINWALL","IFCFLOWTREATMENTDEVICE","IFCWALLSTANDARDCASE","IFCDUCTSEGMENT","IFCCOMPRESSOR","IFCPIPESEGMENT","IFCPROJECTIONELEMENT","IFCEVAPORATIVECOOLER","IFCTRANSFORMER","IFCCHILLER","IFCDAMPER","IFCELEMENTASSEMBLY","IFCCOOLEDBEAM","IFCWALLELEMENTEDCASE","IFCINTERCEPTOR","IFCVALVE","IFCCABLESEGMENT","IFCSTAIRFLIGHT","IFCFLOWFITTING","IFCACTUATOR","IFCGRID","IFCACTIONREQUEST","IFCACTOR","IFCADVANCEDBREP","IFCADVANCEDBREPWITHVOIDS","IFCADVANCEDFACE","IFCAIRTERMINALBOXTYPE","IFCAIRTERMINALTYPE","IFCAIRTOAIRHEATRECOVERYTYPE","IFCALARMTYPE","IFCALIGNMENT2DHORIZONTAL","IFCALIGNMENT2DHORIZONTALSEGMENT","IFCALIGNMENT2DSEGMENT","IFCALIGNMENT2DVERSEGCIRCULARARC","IFCALIGNMENT2DVERSEGPARABOLICARC","IFCALIGNMENT2DVERTICAL","IFCALIGNMENT2DVERTICALSEGMENT","IFCALIGNMENTCURVE","IFCAPPROVAL","IFCARBITRARYOPENPROFILEDEF","IFCASYMMETRICISHAPEPROFILEDEF","IFCAUDIOVISUALAPPLIANCETYPE","IFCAXIS1PLACEMENT","IFCAXIS2PLACEMENT2D","IFCAXIS2PLACEMENT3D","IFCBSPLINECURVEWITHKNOTS","IFCBSPLINESURFACE","IFCBSPLINESURFACEWITHKNOTS","IFCBLOCK","IFCBOILERTYPE","IFCBOOLEANCLIPPINGRESULT","IFCBOOLEANRESULT","IFCBOUNDARYCONDITION","IFCBOUNDARYCURVE","IFCBOUNDARYEDGECONDITION","IFCBOUNDARYFACECONDITION","IFCBOUNDARYNODECONDITION","IFCBOUNDARYNODECONDITIONWARPING","IFCBOUNDEDCURVE","IFCBOUNDEDSURFACE","IFCBOUNDINGBOX","IFCBOXEDHALFSPACE","IFCBRIDGE","IFCBRIDGEPART","IFCBUILDINGELEMENT","IFCBUILDINGELEMENTPROXYTYPE","IFCBUILDINGELEMENTTYPE","IFCBUILDINGSTOREY","IFCBUILDINGSYSTEM","IFCBURNERTYPE","IFCCSHAPEPROFILEDEF","IFCCABLECARRIERFITTINGTYPE","IFCCABLECARRIERSEGMENT","IFCCABLECARRIERSEGMENTTYPE","IFCCABLEFITTINGTYPE","IFCCABLESEGMENTTYPE","IFCCAISSONFOUNDATION","IFCCARTESIANPOINTLIST","IFCCARTESIANPOINTLIST2D","IFCCARTESIANPOINTLIST3D","IFCCARTESIANTRANSFORMATIONOPERATOR","IFCCARTESIANTRANSFORMATIONOPERATOR2D","IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM","IFCCARTESIANTRANSFORMATIONOPERATOR3D","IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM","IFCCENTERLINEPROFILEDEF","IFCCHILLERTYPE","IFCCIRCLE","IFCCIRCLEHOLLOWPROFILEDEF","IFCCIRCLEPROFILEDEF","IFCCIRCULARARCSEGMENT2D","IFCCIVILELEMENTTYPE","IFCCLASSIFICATIONREFERENCE","IFCCLOSEDSHELL","IFCCOILTYPE","IFCCOLOURRGB","IFCCOLOURRGBLIST","IFCCOLUMNSTANDARDCASE","IFCCOMMUNICATIONSAPPLIANCETYPE","IFCCOMPLEXPROPERTY","IFCCOMPOSITECURVE","IFCCOMPOSITECURVESEGMENT","IFCCOMPOSITEPROFILEDEF","IFCCOMPRESSORTYPE","IFCCONDENSER","IFCCONDENSERTYPE","IFCCONIC","IFCCONNECTIONCURVEGEOMETRY","IFCCONNECTIONGEOMETRY","IFCCONNECTIONSURFACEGEOMETRY","IFCCONNECTIONVOLUMEGEOMETRY","IFCCONSTRAINT","IFCCONSTRUCTIONEQUIPMENTRESOURCE","IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE","IFCCONSTRUCTIONMATERIALRESOURCE","IFCCONSTRUCTIONPRODUCTRESOURCE","IFCCONSTRUCTIONPRODUCTRESOURCETYPE","IFCCONSTRUCTIONRESOURCE","IFCCONSTRUCTIONRESOURCETYPE","IFCCONTEXT","IFCCONTEXTDEPENDENTUNIT","IFCCONTROL","IFCCONTROLLERTYPE","IFCCONVERSIONBASEDUNIT","IFCCOOLINGTOWER","IFCCOOLINGTOWERTYPE","IFCCOORDINATEOPERATION","IFCCOORDINATEREFERENCESYSTEM","IFCCOSTITEM","IFCCOVERINGTYPE","IFCCREWRESOURCE","IFCCSGSOLID","IFCCURRENCYRELATIONSHIP","IFCCURTAINWALLTYPE","IFCCURVE","IFCCURVEBOUNDEDPLANE","IFCCURVEBOUNDEDSURFACE","IFCCURVESEGMENT2D","IFCCURVESTYLE","IFCCURVESTYLEFONT","IFCCURVESTYLEFONTANDSCALING","IFCCYLINDRICALSURFACE","IFCDAMPERTYPE","IFCDEEPFOUNDATION","IFCDEEPFOUNDATIONTYPE","IFCDERIVEDPROFILEDEF","IFCDERIVEDUNIT","IFCDIMENSIONALEXPONENTS","IFCDIRECTION","IFCDISCRETEACCESSORYTYPE","IFCDISTANCEEXPRESSION","IFCDISTRIBUTIONCHAMBERELEMENTTYPE","IFCDISTRIBUTIONCONTROLELEMENTTYPE","IFCDISTRIBUTIONELEMENTTYPE","IFCDISTRIBUTIONFLOWELEMENTTYPE","IFCDOCUMENTINFORMATION","IFCDOOR","IFCDOORLININGPROPERTIES","IFCDOORPANELPROPERTIES","IFCDOORSTYLE","IFCDRAUGHTINGPREDEFINEDCOLOUR","IFCDRAUGHTINGPREDEFINEDCURVEFONT","IFCDUCTSILENCER","IFCDUCTSILENCERTYPE","IFCEDGE","IFCEDGECURVE","IFCEDGELOOP","IFCELECTRICAPPLIANCETYPE","IFCELECTRICDISTRIBUTIONBOARDTYPE","IFCELECTRICFLOWSTORAGEDEVICETYPE","IFCELECTRICGENERATORTYPE","IFCELECTRICMOTORTYPE","IFCELECTRICTIMECONTROLTYPE","IFCELEMENT","IFCELEMENTASSEMBLYTYPE","IFCELEMENTCOMPONENT","IFCELEMENTCOMPONENTTYPE","IFCELEMENTQUANTITY","IFCELEMENTTYPE","IFCELLIPSE","IFCELLIPSEPROFILEDEF","IFCENGINETYPE","IFCEVAPORATOR","IFCEVENT","IFCEVENTTIME","IFCEVENTTYPE","IFCEXTENDEDPROPERTIES","IFCEXTERNALINFORMATION","IFCEXTERNALREFERENCE","IFCEXTERNALREFERENCERELATIONSHIP","IFCEXTERNALSPATIALELEMENT","IFCEXTERNALSPATIALSTRUCTUREELEMENT","IFCEXTERNALLYDEFINEDHATCHSTYLE","IFCEXTERNALLYDEFINEDSURFACESTYLE","IFCEXTERNALLYDEFINEDTEXTFONT","IFCEXTRUDEDAREASOLID","IFCEXTRUDEDAREASOLIDTAPERED","IFCFACEBOUND","IFCFACEOUTERBOUND","IFCFACESURFACE","IFCFACETEDBREP","IFCFACETEDBREPWITHVOIDS","IFCFACILITYPART","IFCFAILURECONNECTIONCONDITION","IFCFAN","IFCFANTYPE","IFCFASTENERTYPE","IFCFEATUREELEMENT","IFCFEATUREELEMENTADDITION","IFCFILLAREASTYLE","IFCFILLAREASTYLEHATCHING","IFCFILLAREASTYLETILES","IFCFILTERTYPE","IFCFIRESUPPRESSIONTERMINALTYPE","IFCFIXEDREFERENCESWEPTAREASOLID","IFCFLOWFITTINGTYPE","IFCFLOWINSTRUMENTTYPE","IFCFLOWMETERTYPE","IFCFLOWSEGMENTTYPE","IFCFLOWSTORAGEDEVICETYPE","IFCFLOWTREATMENTDEVICETYPE","IFCFOOTINGTYPE","IFCFURNITURETYPE","IFCGEOGRAPHICELEMENTTYPE","IFCGEOMETRICCURVESET","IFCGEOMETRICREPRESENTATIONCONTEXT","IFCGEOMETRICREPRESENTATIONITEM","IFCGEOMETRICREPRESENTATIONSUBCONTEXT","IFCGEOMETRICSET","IFCGRIDAXIS","IFCGRIDPLACEMENT","IFCHALFSPACESOLID","IFCHUMIDIFIER","IFCHUMIDIFIERTYPE","IFCISHAPEPROFILEDEF","IFCIMAGETEXTURE","IFCINDEXEDPOLYGONALFACE","IFCINDEXEDPOLYGONALFACEWITHVOIDS","IFCINDEXEDTRIANGLETEXTUREMAP","IFCINTERCEPTORTYPE","IFCINTERSECTIONCURVE","IFCIRREGULARTIMESERIES","IFCJUNCTIONBOXTYPE","IFCLABORRESOURCE","IFCLAGTIME","IFCLAMPTYPE","IFCLIBRARYINFORMATION","IFCLIBRARYREFERENCE","IFCLIGHTDISTRIBUTIONDATA","IFCLIGHTFIXTURE","IFCLIGHTFIXTURETYPE","IFCLIGHTSOURCE","IFCLIGHTSOURCEAMBIENT","IFCLIGHTSOURCEDIRECTIONAL","IFCLIGHTSOURCEPOSITIONAL","IFCLINE","IFCLINESEGMENT2D","IFCLINEARPLACEMENT","IFCLINEARPOSITIONINGELEMENT","IFCLOOP","IFCMAPCONVERSION","IFCMAPPEDITEM","IFCMATERIAL","IFCMATERIALCLASSIFICATIONRELATIONSHIP","IFCMATERIALCONSTITUENTSET","IFCMATERIALDEFINITIONREPRESENTATION","IFCMATERIALLAYERSET","IFCMATERIALLAYERSETUSAGE","IFCMATERIALLAYERWITHOFFSETS","IFCMATERIALLIST","IFCMATERIALPROFILE","IFCMATERIALPROFILESET","IFCMATERIALPROFILESETUSAGE","IFCMATERIALPROFILESETUSAGETAPERING","IFCMATERIALPROFILEWITHOFFSETS","IFCMATERIALPROPERTIES","IFCMATERIALRELATIONSHIP","IFCMATERIALUSAGEDEFINITION","IFCMEASUREWITHUNIT","IFCMEDICALDEVICETYPE","IFCMEMBERTYPE","IFCMETRIC","IFCMIRROREDPROFILEDEF","IFCMONETARYUNIT","IFCNAMEDUNIT","IFCOBJECTDEFINITION","IFCOBJECTPLACEMENT","IFCOBJECTIVE","IFCOCCUPANT","IFCOFFSETCURVEBYDISTANCES","IFCOPENSHELL","IFCOPENINGELEMENT","IFCORGANIZATIONRELATIONSHIP","IFCORIENTATIONEXPRESSION","IFCORIENTEDEDGE","IFCOUTERBOUNDARYCURVE","IFCOUTLET","IFCOUTLETTYPE","IFCOWNERHISTORY","IFCPATH","IFCPCURVE","IFCPERFORMANCEHISTORY","IFCPERMEABLECOVERINGPROPERTIES","IFCPERSON","IFCPERSONANDORGANIZATION","IFCPHYSICALQUANTITY","IFCPHYSICALSIMPLEQUANTITY","IFCPIPESEGMENTTYPE","IFCPIXELTEXTURE","IFCPLACEMENT","IFCPLANARBOX","IFCPLANAREXTENT","IFCPLATESTANDARDCASE","IFCPLATETYPE","IFCPOINT","IFCPOINTONCURVE","IFCPOLYGONALBOUNDEDHALFSPACE","IFCPOLYGONALFACESET","IFCPOLYLINE","IFCPORT","IFCPOSTALADDRESS","IFCPREDEFINEDCOLOUR","IFCPREDEFINEDCURVEFONT","IFCPREDEFINEDITEM","IFCPREDEFINEDTEXTFONT","IFCPRESENTATIONITEM","IFCPRESENTATIONLAYERASSIGNMENT","IFCPRESENTATIONLAYERWITHSTYLE","IFCPRESENTATIONSTYLE","IFCPRESENTATIONSTYLEASSIGNMENT","IFCPROCEDURE","IFCPROCEDURETYPE","IFCPRODUCTDEFINITIONSHAPE","IFCPRODUCTREPRESENTATION","IFCPROFILEDEF","IFCPROFILEPROPERTIES","IFCPROJECTLIBRARY","IFCPROJECTEDCRS","IFCPROPERTYABSTRACTION","IFCPROPERTYBOUNDEDVALUE","IFCPROPERTYDEFINITION","IFCPROPERTYDEPENDENCYRELATIONSHIP","IFCPROPERTYENUMERATEDVALUE","IFCPROPERTYENUMERATION","IFCPROPERTYLISTVALUE","IFCPROPERTYSET","IFCPROPERTYSETDEFINITION","IFCPROPERTYSETTEMPLATE","IFCPROPERTYSINGLEVALUE","IFCPROPERTYTABLEVALUE","IFCPROPERTYTEMPLATE","IFCPROPERTYTEMPLATEDEFINITION","IFCPROTECTIVEDEVICETRIPPINGUNITTYPE","IFCPROXY","IFCPUMP","IFCPUMPTYPE","IFCQUANTITYAREA","IFCQUANTITYCOUNT","IFCQUANTITYLENGTH","IFCQUANTITYVOLUME","IFCQUANTITYWEIGHT","IFCRAILINGTYPE","IFCRAMPTYPE","IFCRECTANGLEHOLLOWPROFILEDEF","IFCRECTANGLEPROFILEDEF","IFCRECTANGULARPYRAMID","IFCRECTANGULARTRIMMEDSURFACE","IFCRECURRENCEPATTERN","IFCREFERENCE","IFCREFERENT","IFCREGULARTIMESERIES","IFCREINFORCEMENTBARPROPERTIES","IFCREINFORCEMENTDEFINITIONPROPERTIES","IFCREINFORCINGBAR","IFCREINFORCINGBARTYPE","IFCREINFORCINGELEMENTTYPE","IFCREINFORCINGMESH","IFCRELAGGREGATES","IFCRELASSIGNSTOACTOR","IFCRELASSIGNSTOGROUP","IFCRELASSIGNSTOGROUPBYFACTOR","IFCRELASSIGNSTOPROCESS","IFCRELASSIGNSTOPRODUCT","IFCRELASSIGNSTORESOURCE","IFCRELASSOCIATES","IFCRELASSOCIATESAPPROVAL","IFCRELASSOCIATESCLASSIFICATION","IFCRELASSOCIATESLIBRARY","IFCRELCONNECTS","IFCRELCONNECTSELEMENTS","IFCRELCONNECTSPATHELEMENTS","IFCRELCONNECTSPORTTOELEMENT","IFCRELCONNECTSPORTS","IFCRELCONNECTSSTRUCTURALACTIVITY","IFCRELCONNECTSWITHECCENTRICITY","IFCRELCONNECTSWITHREALIZINGELEMENTS","IFCRELCOVERSBLDGELEMENTS","IFCRELCOVERSSPACES","IFCRELDECLARES","IFCRELDECOMPOSES","IFCRELDEFINES","IFCRELDEFINESBYOBJECT","IFCRELDEFINESBYTEMPLATE","IFCRELDEFINESBYTYPE","IFCRELFILLSELEMENT","IFCRELNESTS","IFCRELPOSITIONS","IFCRELPROJECTSELEMENT","IFCRELREFERENCEDINSPATIALSTRUCTURE","IFCRELSEQUENCE","IFCRELSERVICESBUILDINGS","IFCRELSPACEBOUNDARY","IFCRELSPACEBOUNDARY1STLEVEL","IFCRELSPACEBOUNDARY2NDLEVEL","IFCREPARAMETRISEDCOMPOSITECURVESEGMENT","IFCREPRESENTATION","IFCREPRESENTATIONMAP","IFCRESOURCE","IFCRESOURCECONSTRAINTRELATIONSHIP","IFCRESOURCELEVELRELATIONSHIP","IFCRESOURCETIME","IFCREVOLVEDAREASOLID","IFCREVOLVEDAREASOLIDTAPERED","IFCRIGHTCIRCULARCYLINDER","IFCROOF","IFCROOFTYPE","IFCROOT","IFCSIUNIT","IFCSANITARYTERMINALTYPE","IFCSCHEDULINGTIME","IFCSEAMCURVE","IFCSECTIONPROPERTIES","IFCSECTIONEDSPINE","IFCSENSOR","IFCSENSORTYPE","IFCSHAPEASPECT","IFCSHAPEMODEL","IFCSHELLBASEDSURFACEMODEL","IFCSIMPLEPROPERTYTEMPLATE","IFCSLABTYPE","IFCSLIPPAGECONNECTIONCONDITION","IFCSOLIDMODEL","IFCSPACE","IFCSPACEHEATERTYPE","IFCSPACETYPE","IFCSPATIALELEMENT","IFCSPATIALELEMENTTYPE","IFCSPATIALSTRUCTUREELEMENT","IFCSPATIALZONE","IFCSPATIALZONETYPE","IFCSPHERE","IFCSPHERICALSURFACE","IFCSTACKTERMINALTYPE","IFCSTAIRFLIGHTTYPE","IFCSTAIRTYPE","IFCSTRUCTURALCONNECTION","IFCSTRUCTURALCONNECTIONCONDITION","IFCSTRUCTURALCURVEACTION","IFCSTRUCTURALCURVECONNECTION","IFCSTRUCTURALCURVEMEMBER","IFCSTRUCTURALCURVEREACTION","IFCSTRUCTURALITEM","IFCSTRUCTURALLOADCASE","IFCSTRUCTURALLOADCONFIGURATION","IFCSTRUCTURALLOADGROUP","IFCSTRUCTURALLOADLINEARFORCE","IFCSTRUCTURALLOADORRESULT","IFCSTRUCTURALLOADPLANARFORCE","IFCSTRUCTURALLOADSINGLEDISPLACEMENT","IFCSTRUCTURALLOADSINGLEFORCEWARPING","IFCSTRUCTURALLOADTEMPERATURE","IFCSTRUCTURALMEMBER","IFCSTRUCTURALPLANARACTION","IFCSTRUCTURALPOINTACTION","IFCSTRUCTURALPOINTREACTION","IFCSTRUCTURALREACTION","IFCSTRUCTURALRESULTGROUP","IFCSTRUCTURALSURFACEACTION","IFCSTRUCTURALSURFACEMEMBERVARYING","IFCSTRUCTURALSURFACEREACTION","IFCSTYLEMODEL","IFCSTYLEDITEM","IFCSUBCONTRACTRESOURCETYPE","IFCSUBEDGE","IFCSURFACE","IFCSURFACECURVESWEPTAREASOLID","IFCSURFACEOFLINEAREXTRUSION","IFCSURFACEOFREVOLUTION","IFCSURFACEREINFORCEMENTAREA","IFCSURFACESTYLELIGHTING","IFCSURFACESTYLERENDERING","IFCSURFACESTYLESHADING","IFCSWEPTAREASOLID","IFCSWEPTDISKSOLIDPOLYGONAL","IFCSWITCHINGDEVICE","IFCSYSTEM","IFCSYSTEMFURNITUREELEMENTTYPE","IFCTSHAPEPROFILEDEF","IFCTABLE","IFCTABLEROW","IFCTANK","IFCTANKTYPE","IFCTASK","IFCTASKTIME","IFCTASKTIMERECURRING","IFCTELECOMADDRESS","IFCTENDON","IFCTENDONANCHORTYPE","IFCTENDONCONDUIT","IFCTENDONTYPE","IFCTESSELLATEDFACESET","IFCTEXTLITERALWITHEXTENT","IFCTEXTSTYLE","IFCTEXTSTYLEFORDEFINEDFONT","IFCTEXTURECOORDINATE","IFCTEXTURECOORDINATEGENERATOR","IFCTEXTUREMAP","IFCTEXTUREVERTEX","IFCTEXTUREVERTEXLIST","IFCTIMESERIES","IFCTIMESERIESVALUE","IFCTOPOLOGICALREPRESENTATIONITEM","IFCTOPOLOGYREPRESENTATION","IFCTOROIDALSURFACE","IFCTRANSFORMERTYPE","IFCTRANSITIONCURVESEGMENT2D","IFCTRAPEZIUMPROFILEDEF","IFCTRIANGULATEDFACESET","IFCTRIANGULATEDIRREGULARNETWORK","IFCTRIMMEDCURVE","IFCTUBEBUNDLETYPE","IFCTYPEPROCESS","IFCTYPERESOURCE","IFCUSHAPEPROFILEDEF","IFCUNITASSIGNMENT","IFCUNITARYCONTROLELEMENTTYPE","IFCUNITARYEQUIPMENT","IFCUNITARYEQUIPMENTTYPE","IFCVECTOR","IFCVERTEX","IFCVERTEXLOOP","IFCVIBRATIONDAMPER","IFCVIBRATIONISOLATORTYPE","IFCVIRTUALGRIDINTERSECTION","IFCWALL","IFCWALLTYPE","IFCWASTETERMINAL","IFCWASTETERMINALTYPE","IFCWINDOWLININGPROPERTIES","IFCWINDOWPANELPROPERTIES","IFCWINDOWTYPE","IFCWORKCALENDAR","IFCWORKCONTROL","IFCWORKSCHEDULE","IFCWORKTIME","IFCZSHAPEPROFILEDEF","IFCZONE","getExpressId","getItemProperties","jsonData","getAllItemsOfType","getAllItemsOfTypeWebIfcAPI","getPropertySets","psets","getPropertyWebIfcAPI","getTypeProperties","getPropertyJSON","getMaterialsProperties","getSpatialStructure","getSpatialStructureJSON","getSpatialStructureWebIfcAPI","getAllItemsOfTypeJSON","getSpatialNode","getSpatialTreeChunks","newIfcProject","Type not found: ","filterJSONItemsByType","getAllRelatedItemsOfTypeJSON","getItemsByIDJSON","getJSONReferencesRecursively","getJSONItem","getMultipleJSONItems","getChunksJSON","aggregates","getChunksWebIfcAPI","saveChunk","relating","related","getChildren","newNode","getNodeType","isRelated","getAllRelatedItemsOfTypeWebIfcAPI","getRelated","getAllTypes","getAllTypesOfModel","IfcManager is null!","setIFCManager","ifcManager","setWasmPath","getIfcType","hideItems","hideAllItems","showItems","showAllItems","initializeMeshBVH","computeBoundsTree","acceleratedRaycast","setupThreeMeshBVH","disposeBoundsTree","expressIDCoordinatesMap","processCoordinates","editCoordinates","getCoordinates","modelCoordinates","resetCoordinates","initializeCoordinates","subsets","hider","SetWasmPath","applyWebIfcConfig","webIfcSettings","useJSONData","disposeMemory","addModelJSONData","IFC files must be given as a buffer!","setMaterialOptions","materialOptions","newmtl","setManager","setMaterials","baseUrl","materialsArray","materialsInfo","nameLookup","normalizeRGB","ignoreZeroRGBs","getAsArray","createMaterial_","map_kd","map_ks","map_ke","norm","map_d","invertTrProperty","-bm","fromDeclaration","currentMaterial","_finalize","inherited","groupCount","smooth","mtllib","groupEnd","parseVertexIndex","addVertex","parseNormalIndex","addNormal","parseUVIndex","addUV","addVertexPoint","addVertexLine","addUVLine","startObject","addLineGeometry","addPointGeometry","startMaterial","materialLibraries",'THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.',"finalize","hasUVIndices","setPropertyNameMapping","propertyNameMapping","itemType","obj_info","objInfo","char","short","ushort","int8","uint8","uint16","int32","float32","float64","countType","faceVertexUvs","posx","posy","posz","normalx","normaly","texture_u","texture_v","diffuse_red","diffuse_r","diffuse_green","diffuse_g","diffuse_b","vertex_indices","vertex_index","getInt8","int16","getUint16","uint32","uint","binary_little_endian","ascii","THREE.STLLoader: Something isn't right with the normal of face number ","THREE.STLLoader: Something isn't right with the vertices of face number ","BYLAYER","BYBLOCK","INSERT","DIMENSION","3.7.4","===","base64","malformed base64.","toBase64","toBase64URI","toBase64URL","toUint8Array","TextGeometry","];\n uniform float u_patternAngle;\n\n #include \n\n // Clamp [0..1] range\n #define saturate(a) clamp(a, 0.0, 1.0)\n\n const float EPS = 0.000001;\n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n vec2 rotate(vec2 st, float rotation) {\n const float PI = 3.1415926;\n float angle = rotation * PI/180.0;\n float sine = sin(angle), cosine = cos(angle);\n return vec2(cosine * st.x - sine * st.y, cosine * st.y + sine * st.x);\n }\n\n vec2 translate(vec2 samplePosition, vec2 offset) {\n //move samplepoint in the opposite direction that we want to move shapes in\n return samplePosition - offset;\n }\n\n vec2 scale(vec2 samplePosition, float scale) {\n return samplePosition / scale;\n }\n\n float sdfLine(vec2 st, vec2 a, vec2 b) {\n vec2 ap = st - a;\n vec2 ab = b - a;\n return abs(((ap.x * ab.y) - (ab.x * ap.y))) / length(ab);\n }\n\n float drawSpaceLine(vec2 st, float distanceBetweenLines, float thick) {\n float dist = sdfLine(st , vec2(0.0, 0.0) , vec2(1.0, 0.0));\n \n //vec2 tt = dFdy(st);\n //float scale = (abs(tt.x)+abs(tt.y))/2.0;\n //float scale = length(fwidth(st)) * 0.5;\n // close to a pixel\n //float thick = 2.0;\n //thick = (thick * 0.5 - 0.5) * scale;\n\n float lineDistance = abs(fract(dist / distanceBetweenLines + 0.5) - 0.5) * distanceBetweenLines;\n //float distanceChange = fwidth(dist) * 0.5;\n //float thresold = smoothstep(thick - distanceChange, thick + distanceChange, lineDistance);\n //float thresold = step(thick,lineDistance);\n // remove gradient\n float thresold = step(thick,lineDistance);\n\n return saturate(thresold);\n }\n\n float drawSolidLine(PatternLine patternLine, float thick) {\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta;\n float distanceBetweenLines = length(delta);\n\n origin = rotate(origin,u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n return drawSpaceLine(st, distanceBetweenLines , thick);\n }\n\n int getPatternIndex(PatternLine patternLine, float u ) {\n u = mod(u, patternLine.patternLength);\n float distance = 0.0;\n\n #pragma unroll_loop_start\n for(int i = 1; i < patternLine.patternSum.length(); i++){\n if(u < patternLine.patternSum[i]) {\n distance = u - patternLine.patternSum[i-1];\n return i - 1;\n }\n }\n #pragma unroll_loop_end\n\n return -1;\n }\n\n float drawDashedLine(PatternLine patternLine, float thick){\n float thresold = 1.0;\n vec2 origin = patternLine.origin;\n vec2 delta = patternLine.delta; \n float distanceBetweenLines = length(delta.y);\n\n origin = rotate(origin, u_patternAngle);\n vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle));\n\n float offsetX = st.y * delta.x/delta.y;\n float u = st.x - offsetX;\n int index = getPatternIndex(patternLine, u);\n if(index < 0){\n return thresold;\n }\n\n float size = patternLine.pattern[index];\n if(size >= 0.0) {\n thresold = drawSpaceLine(st, distanceBetweenLines , thick);\n }\n \n return thresold;\n }\n\n float drawLine(PatternLine patternLine, float thick) {\n float t = 0.0;\n if(patternLine.patternLength > 0.0) {\n t = drawDashedLine(patternLine, thick);\n } else {\n t = drawSolidLine(patternLine, thick);\n }\n return t;\n }\n\n void main() {\n #include \n \n if(u_cameraZoom < EPS){\n gl_FragColor = vec4(u_color, 1.0);\n return;\n }\n\n vec2 worldScale = getWorldScale();\n float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n float thick = (0.7 / averageScale) / u_cameraZoom;\n\n float total = 0.0;\n\n#if "," > 1\n #pragma unroll_loop_start\n for (int i = 0; i < u_patternLines.length(); i++) {\n PatternLine pl = u_patternLines[i];\n float t = drawLine(pl, thick);\n total += (1.0 - t);\n }\n #pragma unroll_loop_end\n#else\n float t = drawLine(u_patternLines[0], thick);\n total += (1.0 - t);\n#endif\n\n total = saturate(total);\n if (total < 0.01) {\n discard;\n }\n\n gl_FragColor = vec4(u_color * total, 1.0);\n }\n ","u_viewportScale","\n uniform mat4 modelMatrix;\n uniform vec3 diffuse;\n uniform vec3 u_color;\n uniform float opacity;\n uniform float pattern[","];\n uniform float patternLength;\n uniform float u_viewportScale;\n uniform float u_cameraZoom;\n varying float vLineDistance;\n\n #include \n\n vec2 getWorldScale() {\n return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz));\n }\n\n void main() {\n\n #include \n\n // vec2 worldScale = getWorldScale();\n // float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0;\n // When zoomed out to a certain extent, it is displayed as a solid line.\n if(patternLength * u_viewportScale * u_cameraZoom/1.5 < 1.0){\n gl_FragColor = vec4(u_color, opacity);\n return;\n }\n\n float pos = mod(vLineDistance, patternLength * u_viewportScale);\n\n for ( int i = 0; i < ","; i++ ) {\n pos = pos - abs(pattern[i] * u_viewportScale);\n if ( pos < 0.0 ) {\n if ( pattern[i] > 0.0 ) {\n gl_FragColor = vec4(u_color, opacity);\n break;\n }\n discard;\n }\n }\n }","t out of bounds [0,1]: ","degree must be at least 1 (linear)","degree must be less than or equal to point count - 1","bad knot vector length","Inches","Feet","Millimeters","Centimeters","', will return 1 for unit scale.","pointer","endian","little","range error","readBytes","decoder","readUint8","readInt8","readUint16","readInt16","readInt32","readFloat32","readFloat64","readInt64","readUint64","IsEnd","caches","reader","AutoCAD Binary DXF","Invalid DXF file","hasNext","eof","parseGroupValue","lastReadGroup","isEOF","ReadBinaryData","readNullTerminatedString","' at byte address ","int8Array","[DxfBinReader] Failed to read string! The number of bytes is ","Unexpected end of input: EOF group not read before end of file. Ended on code ","Cannot call 'next' after EOF group has been read","' cannot be cast to Boolean type","OriginalType","Outlines","PROXY","REGION","HATCH","Expected code for point value to be "," but got ","Expected code for matrix value to be ","lineType","lineTypeScale","isTrueColor","colorIndex","inPaperSpace","ownerHandle","materialObjectHandle","lineweight","layoutName","extendedData","originalHandle","outlines","originalType","ForEntityName","parseEntity","ARC","endAngle","angleLength","startAngle","extrusionDirectionX","extrusionDirectionY","extrusionDirectionZ","ATTDEF","textStyle","startPoint","endPoint","textHeight","xScale","invisible","verificationRequired","backwards","mirrored","horizontalJustification","fieldLength","ATTRIB","verticalJustification","CIRCLE","anchorPoint","middleOfText","insertionPoint","linearOrAngularPoint1","diameterOrRadiusPoint","arcPoint","dimensionType","attachmentPoint","actualMeasurement","ELLIPSE","majorAxisEndPoint","axisRatio","extrusionDirection","bCounterclockwise","numControlPoints","numKnots","bPeriodic","elevationY","elevationZ","patternScale","patternAngle","patternFillColor","solidFill","associativity","patternType","boundaryPaths","seedPointsCount","gradientColors","gradientColorCount","bulge","The reference count code 97 was expected.","minorRatio","bRational","knotValues","The reference handle code 330 was expected.","[Hatch] Failed to parse hatch polyline boundary path !","pathTypeFlag","attributesFollow","yScale","zScale","columnCount","rowCount","rowSpacing","LEADER","dimensionStyle","textWidth","arrowFlag","pathType","hasHookline","ACAD","DIMLDRBLK","DIMASZ","DIMSCALE","DIMCLRD","DIMEXE","DIMSE1","DIMSE2","DIMTAD","DIMLFAC","DIMGAP","DIMCLRT","LINE","hasContinuousLinetypePattern","constantWidth","n must be greater than 0 verticies","startWidth","endWidth","MULTILEADER","contextData","leaderStyleId","leaderLineColor","leaderLineTypeId","leaderLineWeight","doglegLength","enableDogLeg","arrowHeadId","arrowHeadSize","contentType","textLeftAttachmentType","textAngleType","textAlignmentType","textStyleId","textColor","blockContentScale","blockContentRotation","blockContentConnectionType","enableAnotationScale","arrowHeadIndex","blockAttributeTextString","textDirectionNegative","textAlignInIPE","textAttachmentPoint","textAttachmentDirectionMText","textAttachmentDirectionBottom","textAttachmentDirectionTop","contentScale","contentBasePosition","landingGap","hasMText","defaultTextContents","textLocation","textDirection","textLineSpacingStyle","textAttachment","textFlowDirection","textBackgroundScaleFactor","textBackgroundTransparency","textBackgroundColorOn","textBackgroundFillOn","textColumnType","textColumnWidth","textColumnGutterWidth","textColumnHeight","textUseWordBreak","hasBlock","blockContentNormalDirection","blockContentPosition","planeOriginPoint","planeYAxisDirection","planeNormalReversed","leaders","hasSetLastLeaderLinePoint","hasSetDoglegVector","leaderBranchIndex","leaderLines","MTEXT","lineSpaceFactor","OLE","documentType","leftUpY","rightDownX","rightDownY","rightDownZ","binaryData","POINT","curveFitTangent","splineVertex","splineControlPoint","threeDPolylineVertex","threeDPolylineMesh","polyfaceMeshVertex","faceA","faceB","faceC","includesCurveFitVertices","includesSplineFitVertices","is3dPolyline","is3dPolygonMesh","SEQEND","RAY","directionVector","modelerVersion","proprietaryData","SOLID","SPLINE","fitPoints","startTangent","endTangent","rational","planar","degreeOfSplineCurve","numberOfControlPoints","normalVector","TEXT","valign","VIEWPORT","viewportStatus","width_paperSpace","viewportId","centerPoint","centerPoint_dcs","snapBasePoint_dcs","snapSpacing_dcs","gridSpacing_dcs","viewDirection","viewTarget","perspectiveLens","frontClippingPlaneZ","viewHeight","snapAngle","circleZoomPercent","frozenLayerHandles","viewportClippingBoundaryhandleId","plotStyleSheetName","renderMode","ucsIcon","ucsOrigin","orthographicType","elevation","shadePlotMode","frequency","lightingFlag","lightingType","XLINE","ForObjectName","isHardOwner","cloningFlag","The number of Dictionary entries does not match !","LAYOUT","tabOrder","minLimit","maxLimit","basePoint","XAxis","YAxis","viewportHandle","blockTableHandle","SORTENTSTABLE","sortEntsObject","entityHandles","SPATIAL_FILTER","numberOfPointsOnClipBoundary","clipBoundaryVisible","frontClippingPlaneFlag","frontClippingPlaneDistance","backClippingPlaneFlag","backClippingPlaneDistance","invertBlockMatrix","XRECORD","registerEntityHandler","registerObjectHandler","_entityHandlers","_objectHandlers","unhandledObjects","unhandledEntities","unsupportedLineTypes","_parse","parseSync","parseStream","Empty file","SECTION","Unexpected code %s after 0:SECTION","HEADER","> HEADER","> TABLES","tables","> BLOCKS","ENTITIES","entities","OBJECTS","> OBJECTS","unhandledSections","[DxfParser] Unhandled sections and count:","[DxfParser] Unhandled entities and count:","[DxfParser] Unsupported LineTypes and count:","ENDSEC","BLOCK","[DxfParser] Block with handle '","xrefPath","name2","layer","paperSpace","blockType","ENDBLK","tableName","Unhandled Table ","ENDTAB","AcDbSymbolTable","dxfSymbolName","tableRecordsProperty","parseTableRecords","[DxfParser] Parsed ","s but expected ","ViewPort {","lowerLeftCorner","snapBasePoint","snapSpacing","lensLength","backClippingPlane","snapRotationAngle","viewTwistAngle","ucsXAxis","ucsYAxis","defaultLightingOn","ambientColor","VPORT","patternLength","pattern","[DxfParser] lengths do not match on LTYPE pattern","LType {","Layer {","LAYER","styleName","fontFile","bigFontFile","priorTextHeight","STYLE","Style {","DimStyle {","DIMEXO","DIMTXT","DIMDEC","DIMSTYLE","BlockRecord {","blockName","blockInsertUnits","blockExplodability","blockScalability","bitmap","BLOCK_RECORD","_layoutBlocks","LTYPE","styles","dimStyles","dimStyle","[DxfParser] The number of layout and block associations does not match!","associatedBlockName","entity cannot be undefined or null","unhandled group ","DATABASE_NAME","gemini_viewer_db","TABLES","viewpoint","dxfdata","dxfDataId","instance","_instance","getDatabase","getDB","deleteDataBase","getUpgradedDB","onclose","[DB] Db "," is closed."," encountered error.","onabort"," aborted.","onversionchange","closeDatabase","deleteDatabase"," delete old version ","oldVersion"," opened (version "," (version ","onblocked","[DB] Upgrade is done (new version: ","[DB] Creating table ","createTable","indexArray","[DB] All(",") tables created.","createIndex","unique","isCreatingTable","Make sure to add table '","' to IndexedDbManager.TABLES!","Derived class have to override 'tableName', and set a proper table name!","openCursor","queryAll","getAll","clearAll","polyLines","calcWidth","lastPoint","toThreeGeometry","fontdata","orientation","baseUp","baseDown","fileHeader","fileVersion","datas","graphicData","getGraphicDataByCode","DEFAULT_SIZE","parserCode","getGraphicTextShape","getFontFile","setFontFile","releaseFontData","setFontDataToIndexedDb","[FontFile] Saved '","' (",") to indexedDb","getFontDataByIndexedDb","[FontFile] Failed to get FontData from IndexedDB","gbk","啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案骯昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯本笨崩繃甭泵蹦迸逼鼻比鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鱉憋別癟彬斌瀕濱賓擯兵冰柄丙秉餅炳病並玻菠播撥缽波博勃搏鉑箔伯帛舶脖膊渤泊駁捕蔔哺補埠不布步簿部怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草廁策側冊測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟產闡顫昌猖場嘗常長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沈陳趁襯撐稱城橙成呈乘程懲澄誠承逞騁秤吃癡持匙池遲弛馳恥齒侈尺赤翅斥熾充沖蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初出櫥廚躇鋤雛滁除楚礎儲矗搐觸處揣川穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜次聰蔥囪匆從叢湊粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存寸磋撮搓措挫錯搭達答瘩打大呆歹傣戴帶殆代貸袋待逮怠耽擔丹單鄲撣膽旦氮但憚淡誕彈蛋當擋黨蕩檔刀搗蹈倒島禱導到稻悼道盜德得的蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第帝弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕雕刁掉吊釣調跌爹碟蝶叠諜疊丁盯叮釘頂鼎錠定訂丟東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督毒犢獨讀堵睹賭杜鍍肚度渡妒端短鍛段斷緞堆兌隊對墩噸蹲敦頓囤鈍盾遁掇哆多奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩而兒耳爾餌洱二貳發罰筏伐乏閥法琺藩帆番翻樊礬釩繁凡煩反返範販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飛肥匪誹吠肺廢沸費芬酚吩氛分紛墳焚汾粉奮份忿憤糞豐封楓蜂峰鋒風瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘服浮涪福袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦復傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹甘桿柑竿肝趕感稈敢贛岡剛鋼缸肛綱崗港杠篙臯高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根跟耕更庚羹埂耿梗工攻功恭龔供躬公宮弓鞏汞拱貢共鉤勾溝茍狗垢構購夠辜菇咕箍估沽孤姑鼓古蠱骨谷股故顧固雇刮瓜剮寡掛褂乖拐怪棺關官冠觀管館罐慣灌貫光廣逛瑰規圭矽歸龜閨軌鬼詭癸桂櫃跪貴劊輥滾棍鍋郭國果裹過哈骸孩海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝好耗號浩呵喝荷菏核禾和何合盒貉閡河涸赫褐鶴賀嘿黑痕很狠恨哼亨橫衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊湖弧虎唬護互滬戶花嘩華猾滑畫劃化話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黃磺蝗簧皇凰惶煌晃幌恍謊灰揮輝徽恢蛔回毀悔慧卉惠晦賄穢會燴匯諱誨繪葷昏婚魂渾混豁活夥火獲或惑霍貨禍擊圾基機畸稽積箕肌饑跡激譏雞姬績緝吉極棘輯籍集及急疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際繼紀嘉枷夾佳家加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬堿鹼揀撿簡儉剪減薦檻鑒踐賤見鍵箭件健艦劍餞漸濺澗建僵姜將漿江疆蔣槳獎講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥腳狡角餃繳絞剿教酵轎較叫窖揭接皆稭街階截劫節莖睛晶鯨京驚精粳經井警景頸靜境敬鏡徑痙靖竟競凈炯窘揪究糾玖韭久灸九酒廄救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵桔傑捷睫竭潔結解姐戒藉芥界借介疥誡屆巾筋斤金今津襟緊錦僅謹進靳晉禁近燼浸盡勁荊兢覺決訣絕均菌鈞軍君峻俊竣浚郡駿喀咖卡咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殼咳可渴克刻客課肯啃墾懇坑吭空恐孔控摳口扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠況虧盔巋窺葵奎魁傀饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊來賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫瑯榔狼廊郎朗浪撈勞牢老佬姥酪烙澇勒樂雷鐳蕾磊累儡壘擂肋類淚棱楞冷厘梨犁黎籬貍離漓理李裏鯉禮莉荔吏栗麗厲勵礫歷利傈例俐痢立粒瀝隸力璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧涼梁粱良兩輛量晾亮諒撩聊僚療燎寥遼潦了撂鐐廖料列裂烈劣獵琳林磷霖臨鄰鱗淋凜賃吝拎玲菱零齡鈴伶羚淩靈陵嶺領另令溜琉榴硫餾留劉瘤流柳六龍聾嚨籠窿隆壟攏隴樓婁摟簍漏陋蘆盧顱廬爐擄鹵虜魯麓碌露路賂鹿潞祿錄陸戮驢呂鋁侶旅履屢縷慮氯律率濾綠巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞馬罵嘛嗎埋買麥賣邁脈瞞饅蠻滿蔓曼慢漫謾芒茫盲氓忙莽貓茅錨毛矛鉚卯茂冒帽貌貿麽玫枚梅酶黴煤沒眉媒鎂每美昧寐妹媚門悶們萌蒙檬盟錳猛夢孟瞇醚靡糜迷謎彌米秘覓泌蜜密冪棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅民抿皿敏憫閩明螟鳴銘名命謬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆母墓暮幕募慕木目睦牧穆拿哪吶鈉那娜納氖乃奶耐奈南男難囊撓腦惱鬧淖呢餒內嫩能妮霓倪泥尼擬妳匿膩逆溺蔫拈年碾攆撚念娘釀鳥尿捏聶孽嚙鑷鎳涅您檸獰凝寧擰濘牛扭鈕紐膿濃農弄奴努怒女暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖拋咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨朋鵬捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗婆破魄迫粕剖撲鋪仆莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七淒漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啟契砌器氣迄棄汽泣訖掐洽牽扡釬鉛千遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌墻薔強搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵親秦琴勤芹擒禽寢沁青輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱球求囚酋泅趨區蛆曲軀屈驅渠取娶齲趣去圈顴權醛泉全痊拳犬券勸缺炔瘸卻鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁人忍韌任認刃妊紉扔仍日戎茸蓉榮融熔溶容絨冗揉柔肉茹蠕儒孺如辱乳汝入褥軟阮蕊瑞銳閏潤若弱撒灑薩腮鰓塞賽三三傘散桑嗓喪搔騷掃嫂瑟色澀森僧莎砂殺剎沙紗傻啥煞篩曬珊苫杉山刪煽衫閃陜擅贍膳善汕扇繕墑傷商賞晌上尚裳梢捎稍燒芍勺韶少哨邵紹奢賒蛇舌舍赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲生甥牲升繩省盛剩勝聖師失獅施濕詩屍虱十石拾時什食蝕實識史矢使屎駛始式示士世柿事拭誓逝勢是嗜噬適仕侍釋飾氏市恃室視試收手首守壽授售受瘦獸蔬樞梳殊抒輸叔舒淑疏書贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍豎墅庶數漱恕刷耍摔衰甩帥栓拴霜雙爽誰水睡稅吮瞬順舜說碩朔爍斯撕嘶思私司絲死肆寺嗣四伺似飼巳松聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓碎歲穗遂隧祟孫損筍蓑梭唆縮瑣索鎖所塌他它她塔獺撻蹋踏胎苔擡臺泰酞太態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探嘆炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔絳萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屜天添填田甜恬舔腆挑條迢眺跳貼鐵帖廳聽烴汀廷停亭庭挺艇通桐酮瞳同銅彤童桶捅筒統痛偷投頭透凸禿突圖徒途塗屠土吐兔湍團推頹腿蛻褪退吞屯臀拖托脫鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪王亡枉網往旺望忘妄威巍微危韋違桅圍唯惟為濰維葦萎委偉偽尾緯未蔚味畏胃餵魏位渭謂尉慰衛瘟溫蚊文聞紋吻穩紊問嗡翁甕撾蝸渦窩我斡臥握沃巫嗚鎢烏汙誣屋無蕪梧吾吳毋武五捂午舞伍侮塢戊霧晤物勿務悟誤昔熙析西硒矽晰嘻吸錫犧稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳喜銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹下廈夏嚇掀鍁先仙鮮纖鹹賢銜舷閑涎弦嫌顯險現獻縣腺餡羨憲陷限線相廂鑲香箱襄湘鄉翔祥詳想響享項巷橡像向象蕭硝霄削哮囂銷消宵淆曉小孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛新忻心信釁星腥猩惺興刑型形邢行醒幸杏性姓兄兇胸匈洶雄熊休修羞朽嗅銹秀袖繡墟戌需虛噓須徐許蓄酗敘旭序畜恤絮婿緒續軒喧宣懸旋玄選癬眩絢靴薛學穴雪血勛熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨呀丫芽牙蚜崖衙涯雅啞亞訝焉咽閹煙淹鹽嚴研蜒巖延言顏閻炎沿奄掩眼衍演艷堰燕厭硯雁唁彥焰宴諺驗殃央鴦秧楊揚佯瘍羊洋陽氧仰癢養樣漾邀腰妖瑤搖堯遙窯謠姚咬舀藥要耀椰噎耶爺野冶也頁掖業葉曳腋夜液壹壹醫揖銥依伊衣頤夷遺移儀胰疑沂宜姨彜椅蟻倚已乙矣以藝抑易邑屹億役臆逸肄疫亦裔意毅憶義益溢詣議誼譯異翼翌繹茵蔭因殷音陰姻吟銀淫寅飲尹引隱印英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹詠泳湧永恿勇用幽優悠憂尤由郵鈾猶油遊酉有友右佑釉誘又幼迂淤於盂榆虞愚輿余俞逾魚愉渝漁隅予娛雨與嶼禹宇語羽玉域芋郁籲遇喻峪禦愈欲獄育譽浴寓裕預豫馭鴛淵冤元垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰嶽粵月悅閱耘雲鄖勻隕允運蘊醞暈韻孕匝砸雜栽哉災宰載再在咱攢暫贊贓臟葬遭糟鑿藻棗早澡蚤躁噪造皂竈燥責擇則澤賊怎增憎曾贈紮喳渣劄軋鍘閘眨柵榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟章彰漳張掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟真甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯正政幀癥鄭證芝枝支吱蜘知肢脂汁之織職直植殖執值侄址指止趾只旨紙誌摯擲至致置幟峙制智秩稚質炙痔滯治窒中盅忠鐘衷終種腫重仲眾舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱豬諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築住註祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐追贅墜綴諄準捉拙卓桌琢茁酌啄著灼濁茲咨資姿滋淄孜紫仔籽滓子自漬字鬃棕蹤宗綜總縱鄒走奏揍租足卒族祖詛阻組鉆纂嘴醉最罪尊遵昨左佐柞做作坐座錒噯嬡璦曖靄諳銨鵪媼驁鰲鈀唄鈑鴇齙鵯賁錛蓽嗶潷鉍篳蹕芐緶籩驃颮飆鏢鑣鰾儐繽檳殯臏鑌髕鬢稟餑鈸鵓鈽驂黲惻鍤儕釵囅諂讖蕆懺嬋驏覘禪鐔倀萇悵閶鯧硨傖諶櫬磣齔棖檉鋮鐺飭鴟銃儔幬讎芻絀躕釧愴綞鶉輟齪鶿蓯驄樅輳攛銼鹺噠韃駘紿殫賧癉簞讜碭襠燾鐙糴詆諦綈覿鏑巔鈿癲銚鯛鰈鋌銩崠鶇竇瀆櫝牘篤黷籪懟鐓燉躉鐸諤堊閼軛鋨鍔鶚顎顓鱷誒邇鉺鴯鮞鈁魴緋鐨鯡僨灃鳧駙紱紼賻麩鮒鰒釓賅尷搟紺戇睪誥縞鋯紇鎘潁亙賡綆鯁詬緱覯詁轂鈷錮鴣鵠鶻鴰摑詿摜鸛鰥獷匭劌媯檜鮭鱖袞緄鯀堝咼幗槨蟈鉿闞絎頡灝顥訶闔蠣黌訌葒閎鱟滸鶘驊樺鏵奐繯鍰鯇鰉詼薈噦澮繢琿暉諢餛閽鈥鑊訐詰薺嘰嚌驥璣覬齏磯羈蠆躋霽鱭鯽郟浹鋏鎵蟯諫縑戔戩瞼鶼筧鰹韉絳韁撟嶠鷦鮫癤頜鮚巹藎饉縉贐覲剄涇逕弳脛靚鬮鳩鷲詎屨櫸颶鉅鋦窶齟錈鐫雋譎玨皸剴塏愾愷鎧鍇龕閌鈧銬騍緙軻鈳錁頷齦鏗嚳鄶噲膾獪髖誆誑鄺壙纊貺匱蕢憒聵簣閫錕鯤蠐崍徠淶瀨賚睞錸癩籟嵐欖斕鑭襤閬鋃嘮嶗銠鐒癆鰳誄縲儷酈壢藶蒞蘺嚦邐驪縭櫪櫟轢礪鋰鸝癘糲躒靂鱺鱧蘞奩瀲璉殮褳襝鰱魎繚釕鷯藺廩檁轔躪綾欞蟶鯪瀏騮綹鎦鷚蘢瀧瓏櫳朧礱僂蔞嘍嶁鏤瘺耬螻髏壚擼嚕閭瀘淥櫨櫓轤輅轆氌臚鸕鷺艫鱸臠孌欒鸞鑾圇犖玀濼欏腡鏍櫚褸鋝嘸嘜嬤榪勱縵鏝顙鰻麼捫燜懣鍆羋謐獼禰澠靦黽緲繆閔緡謨驀饃歿鏌鉬鐃訥鈮鯢輦鯰蔦裊隉蘗囁顢躡苧嚀聹儂噥駑釹儺謳慪甌蹣皰轡紕羆鈹諞駢縹嬪釙鏷鐠蘄騏綺榿磧頎頏鰭僉蕁慳騫繾槧鈐嬙檣戧熗錆鏘鏹羥蹌誚譙蕎繰磽蹺愜鍥篋鋟撳鯖煢蛺巰賕蟣鰍詘嶇闃覷鴝詮綣輇銓闋闕愨蕘嬈橈飪軔嶸蠑縟銣顰蜆颯毿糝繅嗇銫穡鎩鯊釃訕姍騸釤鱔坰殤觴厙灄畬詵諗瀋謚塒蒔弒軾貰鈰鰣綬攄紓閂鑠廝駟緦鍶鷥藪餿颼鎪謖穌誶蓀猻嗩脧闥鉈鰨鈦鮐曇鉭錟頇儻餳鐋鏜韜鋱緹鵜闐糶齠鰷慟鈄釷摶飩籜鼉媧膃紈綰輞諉幃闈溈潿瑋韙煒鮪閿萵齷鄔廡憮嫵騖鵡鶩餼鬩璽覡硤莧薟蘚峴獫嫻鷴癇蠔秈躚薌餉驤緗饗嘵瀟驍綃梟簫褻擷紲纈陘滎饈鵂詡頊諼鉉鏇謔澩鱈塤潯鱘埡婭椏氬厴贗儼兗讞懨閆釅魘饜鼴煬軺鷂鰩靨謁鄴曄燁詒囈嶧飴懌驛縊軼貽釔鎰鐿瘞艤銦癮塋鶯縈鎣攖嚶瀅瀠瓔鸚癭頦罌鏞蕕銪魷傴俁諛諭蕷崳飫閾嫗紆覦歟鈺鵒鷸齬櫞鳶黿鉞鄆蕓惲慍紜韞殞氳瓚趲鏨駔賾嘖幘簀譖繒譫詔釗謫輒鷓湞縝楨軫賑禎鴆諍崢鉦錚箏騭櫛梔軹輊贄鷙螄縶躓躑觶鍾紂縐佇櫧銖囀饌顳騅縋諑鐲諮緇輜貲眥錙齜鯔傯諏騶鯫鏃纘躦鱒訁譾郤猛氹阪壟堖垵墊檾蕒葤蓧蒓菇槁摣咤唚哢噝噅撅劈謔襆嶴脊仿僥獁麅餘餷饊饢楞怵懍爿漵灩混濫瀦淡寧糸絝緔瑉梘棬案橰櫫軲軤賫膁腖飈糊煆溜湣渺碸滾瞘鈈鉕鋣銱鋥鋶鐦鐧鍩鍀鍃錇鎄鎇鎿鐝鑥鑹鑔穭鶓鶥鸌癧屙瘂臒襇繈耮顬蟎麯鮁鮃鮎鯗鯝鯴鱝鯿鰠鰵鱅鞽韝齇","Can't Convert To Bytes!!","Get1Bytes","byteTosbyte","ToBoolean","ToUInt8","ToInt16","ToUInt16","ToUInt32","ToChar","ToAscii","ToUTF16String","parserHeader","The position stack is only four locations deep","CICLESPAN","_generateArcPoints","skipCode","stopFlag","0x00","FILE_STOP_FLAG","isExtend","isUniCode","isEmbedded","unsupportedChars","textShapesCache","loadFiles","saveFontDataToIndexdb","loadFile","bigfont","unifont","filesMap","[ShxFont] shx font loaded.The font file is ","getGraphicDataByChar","getCode","addUnsupportedChar","getNotFoundTextShape","getGraphicData","checkFontIsLoaded","[ShxFont] Saves font data to IndexDB","getFontData","[ShxFont] Loaded font data from cache.","polar","angle2","faceD","timer","ignorePaperSpace","angDir","pointsMaterials","lineBasicMaterials","meshBasicMaterials","meshTextureMaterials","entityCount","curveCount","averageCurveSize","enableRenderOrder","enableLocalCache","enableReleaseData","enableSimplify","enableRTC","enableWidthLine","compareContext","blockReferencesCache","blockRecordsCache","blocksCache","dictionaryOwnerHandleAndSpatialFilterHandlesCache","spatialFiltersCache","entityThreejsCache","entityTypesAndTimes","nonSnapableTypes","OLE2FRAME","entityHandlesWithRenderOrder","addViewport","abortJobs","setFont","[DxfLoader] ","getDxfDataFromIndexedDb","[DxfLoader] Loaded DxfData from indexedDb in ","[DxfLoader] Failed to parse data from indexedDb","loadEntities","[DxfLoader] Invalid ProgressEvent:","[DxfLoader] Failed to download ","[DXFLoader] Job aborted","[DxfLoader] Start parsing...","[DxfLoader] Parsed in ","s, creating entities...","[DxfLoader] No layout defined! Will add a default 'Model' layout!","MODEL_LAYOUT_NAME","setDxfDataToIndexedDb","[DxfLoader] Failed to save '","parseHeader","[DxfLoader]: Invalid header!","$ACADVER","AC1032","[DxfLoader] Unexpected version: ",". But we'll try to continue.","angBase","$ANGBASE","$ANGDIR","initRenderOrderInfo","enableMerge","parseProgress","drawEntity","getLayout","isLayoutLevelObject","directAssociatedLeafObjectSet","getLayerVisible","layerObjects","[DxfLoader] drawEntities in ","averageTime","totalTime","createCount","[DxfLoader] Entity types and cost times in ms:","[DxfLoader] Entity types and mesh count:","statsInfo","entityTypesAndMeshCount","[DxfLoader] Totally simplified/removed ",") points","[DxfLoader] Totally rebased ",") entities"," meshes, "," lines, "," points, "," unknown type,"," in ","[DxfLoader] Unsupported entity types and count:","unsupportedEntityTypes","[DxfLoader] Unsupported text style names and count:","unsupportedTextStyles","unsupportedHatchPatterns",". Filling in solid lines instead.","[DxfLoader] Ignored invisible entity types and count:","[DxfLoader] Ignored frozen layers and entity count:","ignoredFrozenLayersAndEntityCount","[DxfLoader] Ignored inserts and count (may because they don't contain anything):","ignoredInserts","[DxfLoader] Ignored paper space entity count:","releaseCachedData","releaseDxfData","[DxfLoader] LoadEntities() done in ","loadEntitiesForCompare","isTheFirstFile","threejsObject","layersAndThreejsObjects","layoutViewportsMap","Added","preservedHandles","parentHandles","setObjectColorByChange","NoChange","Removed","Modified","printMemory","[DxfLoader] loadEntities for first dxf in ","After loading entities for first dxf","Before loading entities for second dxf","[DxfLoader] loadEntities for second dxf in ","After loading entities for second dxf","ENTITY_COLOR_NO_CHANGE","ENTITY_COLOR_ADDED","ENTITY_COLOR_REMOVED","getLineBasicMaterial","getMeshBasicMaterial","getPointsMaterial","updateMaterialUniforms","lineShaderMaterials","hatchShaderMaterials","releaseEntity","patternLines","DICTIONARY","getLayerFrozen","invisibleEntities","ignoredPaperSpaceEntityTypesAndCount","drawArc","POLYLINE","drawXLine","drawRay","LWPOLYLINE","drawLWPolyline","draw3DFace","drawSolid","drawPoint","drawInsert","drawSpline","drawEllipse","drawDimension","drawAttDef","drawHatch","drawViewport","drawLeader","drawOle2frame","getLayerName","layerVisible","unsupportedEntity","getDivision","[DxfLoader] Ellipse entity (handle '%s') contains less than 2 points, ignored!","setRTCUserData","drawMText","[DxfLoader] Font parameter not set. Ignoring text entity.","getTextEncoding","mtextContentAndFormattingToTextAndStyle","lineLength","getMTextGroup","getTextMesh","translateY","horizontalAlignment","pxt","getTextLineNum","[DxfLoader] Entity is missing vertices:","[DxfLoader] Spline entity (handle '%s') contains less than 2 points, ignored!","getBSplinePolyline","[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!","getOcsMatrix","lineTypes","getLineType","[DxfLoader] Failed to convert width line to mesh geometry: %s ","drawMLeader","getDefaultDimensionStyle","textRotation","lastLeaderLinePoint","doglegVector","getBlockByHandle","drawDefaultLeadArrow","leader's vertices number must be greater than 2","arrowHeight","arrowHeadBlockHandle","transformAngleByOcsMatrix","getArcAnglesByOcsMatrix","[DxfLoader] The radius of arc (handle '","') is too small, ignored!","addTriangleFacingCamera","Standard","drawingDirection","drawText","getDefaultTextStyle","transformTextMesh","drawAttrib","dimStyleName","entityType","blockPosition","findSpatialFilterByHandle","drawSpatialFilter","clipPolylines","spatialFilterHandle","[DxfLoader] Spatial filter:","associatedSpatialFilter","polyline","[DxfLoader] Invalid clipBoundary: ","isConvex","'), converting to convex polygon!","bReversed","localMatrix","convertEdgeToPoints","IsfilteredByPathTypeFlag","[DxfLoader] The %d path type flag is filtered at the %dth boundrayPath (hatch handle '%s')","[DxfLoader] The %dth boundaryPath (hatch handle '%s') has less than 3 points, ignored!","[DxfLoader] The %dth boundaryPath (hatch handle '%s') has unknown path, ignored!","roundNumber","buildContainHierarchyTree","buildHatchGeometry","[DxfLoader] Failed to convert hatch boundaries!","setHatchMaterial","data:image/jpg;base64,","getDcs2WcsMatrix","viewDirectionFromTarget","getViewportMsToPsMatrix","height_paperSpace","psBBox","msToPsMatrix","compareChangeType","isGradientColor","[DxfLoader] Gradient colors are not supported for hatch '","', will use the first color!","getColor","[DxfLoader] Unknown colorIndex","setRenderOrderByObjectType","getHatchShaderMaterial","getLineTypeScales","celtScale","createLineShaderMaterial","viewportScaleUniform","cameraZoomUniform","findMatchedHatchShaderMaterial","dashPattern","rotateAround","[DxfLoader] delta.y is equal to zero !","maxFragmentUniforms","[DxfLoader] There will be warning in fragment shader when number of uniforms exceeds 1024, so extra hatch line patterns are ignored here!","getSimplifyTolerance","findIntersectHole","[DxfLoader] polybooljs has error: ","checkAndRebasePolygonsOnRTC","rebasedEntityCount","[DxfLoader] Why this.dictionaryObjectsCache[obj.ownerHandle] already exist?","[DxfLoader] Why this.spatialFiltersCache[spatialFilterObj.ownerHandle] already exist?","ACAD_SORTENTS","[DxfLoader] Failed to handle sortEntsTable: ","blockRecords","entitiesCache","[DxfLoader] Failed to find layout name for entity:","u_cameraZoom","cloneMaterialsForSpatialFilter","ltScale","$CELTSCALE","Unitless","Meters","[DxfLoader] Unsupported $INSUNITS '","computeLineDistance","[DxfLoader] Line with id '","[DxfLoader] computeLineDistances only possible with non-indexed BufferGeometry.","[DxfLoader] Computed line distances in ","removeEmptyObjectsFromRemovingMarkedObjects","' in ","[DxfLoader] The remove operation of deep merge costed ","[DxfLoader] Deep merge totally costed ","[DxfLoader] Totally merged "," objects to ","statLayoutAndLayerObjects","validCount","removeEmptyObjectsFromMark","transformMatrixUniform","comparedBlocks","isComparingBlock","isComparingDimension","dxf1","Invalid dxf data to compare!","ignoreEntityTypes","dxf2","changes","isDimensionBlock","compareInsertOrDemensionEntities","compareBlock","[DxfCompare] compare block: "," cost ","bIgnoreChildEntitiesOriginalType","[DxfCompare] We cannot compare insert (handle '","') yet, ignored!","arcsEqual","linesEqual","textsEqual","solidsEqual","pointEntitiesEqual","insertsEqual","splinesEqual","mtextsEqual","ellipsesEqual","dimensionsEqual","regionsEqual","attDefsEqual","hatchesEqual","leadersEqual","mleadersEqual","ole2framesEqual","vectorsEqual","numberEqual","verticesEqual","polylinesEqual","vertexEntitiesEqual","isPolyfaceMesh","halign","pointsEqual","numbersEqual","attribsEqual","elevationX","viewportsEqual","leftUpX","leftUpZ","Cannot compare region yet!","vertexEntityEqual","vectorArraysEqual","verticesArrayEqual","hatchEdgesEqual","hatchEdgeArraysEqual","hatchBoundaryPathsEqual","hatchBoundaryPathArraysEqual","leaderLineIndex","mleaderLineEqual","mleaderLinesEqual","mleaderLeadersEqual","mleaderLeaderEqual","fileCode","Unknown file code: ","wordLength","minZ","maxZ","minM","records","parseShape","parts","Shape type not supported: ","Unknown shape type at ","setBit","getInt12","setInt12","setInt6","got","6-bit prob at","expected","MESH_MATERIAL","createModel","LINE_MATERIAL","parsed","loadCompressed","parsed compressed","compress","16-bit quantized byteLength","deltaEncode6","delta-encoded byteLength","deltaEncode","storeDeltas","storeDeltas6","setInt16","deltaDecode6","getInt6","updateProgress","three/js/libs/draco/gltf/","loadFbx","loadObj","loadStl","loadIfc","loadDae","dxf","loadDxf","loadImage","loadGltf","shp","loadShp","[LoadingHelper] '#' is not allowed in filename ","parseGltf","getGltfLoader",".mtl","../three/js/libs/ifc/","[LoadingHelper] Should set font first!","loadPly","Failed to load image!","loadDxfDataAsync","gltfLoader","setDecoderPath",'var bc=Object.defineProperty,wc=Object.defineProperties;var Sc=Object.getOwnPropertyDescriptors;var Ao=Object.getOwnPropertySymbols;var Tc=Object.prototype.hasOwnProperty,Ac=Object.prototype.propertyIsEnumerable;var Eo=(r,t,e)=>t in r?bc(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Ji=(r,t)=>{for(var e in t||(t={}))Tc.call(t,e)&&Eo(r,e,t[e]);if(Ao)for(var e of Ao(t))Ac.call(t,e)&&Eo(r,e,t[e]);return r},Co=(r,t)=>wc(r,Sc(t));var oo="146";var Ec=0,Po=1,Cc=2;var Ga=1,Pc=2,Oi=3,nn=0,ue=1,Ve=2,xn=0,fi=1,Lo=2,Ro=3,Io=4,Lc=5,li=100,Rc=101,Ic=102,Do=103,No=104,Dc=200,Nc=201,Fc=202,zc=203,Wa=204,qa=205,Oc=206,Bc=207,Uc=208,kc=209,Vc=210,Hc=0,Gc=1,Wc=2,Cr=3,qc=4,Xc=5,Yc=6,Zc=7,Xa=0,Jc=1,$c=2,tn=0,Kc=1,Qc=2,jc=3,tl=4,el=5,Ya=300,mi=301,gi=302,Pr=303,Lr=304,Ds=306,Rr=1e3,Ne=1001,Ir=1002,ce=1003,Fo=1004;var zo=1005;var Ee=1006,nl=1007;var Ns=1008;var zn=1009,il=1010,sl=1011,Za=1012,rl=1013,Rn=1014,In=1015,ki=1016,ol=1017,al=1018,di=1020,cl=1021,ll=1022,Fe=1023,hl=1024,ul=1025,Nn=1026,xi=1027,fl=1028,dl=1029,pl=1030,ml=1031,gl=1033,$s=33776,Ks=33777,Qs=33778,js=33779,Oo=35840,Bo=35841,Uo=35842,ko=35843,xl=36196,Vo=37492,Ho=37496,Go=37808,Wo=37809,qo=37810,Xo=37811,Yo=37812,Zo=37813,Jo=37814,$o=37815,Ko=37816,Qo=37817,jo=37818,ta=37819,ea=37820,na=37821,ia=36492;var ys=2300,vs=2301,tr=2302,sa=2400,ra=2401,oa=2402;var On=3e3,Vt=3001,_l=3200,yl=3201,vl=0,Ml=1;var je="srgb",Dn="srgb-linear";var er=7680;var bl=519,aa=35044;var ca="300 es",Dr=1035,_n=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let i=this._listeners[t];if(i!==void 0){let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let i=n.slice(0);for(let s=0,a=i.length;s>8&255]+ee[r>>16&255]+ee[r>>24&255]+"-"+ee[t&255]+ee[t>>8&255]+"-"+ee[t>>16&15|64]+ee[t>>24&255]+"-"+ee[e&63|128]+ee[e>>8&255]+"-"+ee[e>>16&255]+ee[e>>24&255]+ee[n&255]+ee[n>>8&255]+ee[n>>16&255]+ee[n>>24&255]).toLowerCase()}function le(r,t,e){return Math.max(t,Math.min(e,r))}function wl(r,t){return(r%t+t)%t}function ir(r,t,e){return(1-e)*r+e*t}function ha(r){return(r&r-1)===0&&r!==0}function Nr(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function $i(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function _e(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var At=class{constructor(t=0,e=0){At.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,a=this.y-t.y;return this.x=s*n-a*i+t.x,this.y=s*i+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},he=class{constructor(){he.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,s,a,o,c,l){let h=this.elements;return h[0]=t,h[1]=i,h[2]=o,h[3]=e,h[4]=s,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],f=n[7],u=n[2],m=n[5],x=n[8],p=i[0],d=i[3],g=i[6],M=i[1],v=i[4],_=i[7],b=i[2],S=i[5],C=i[8];return s[0]=a*p+o*M+c*b,s[3]=a*d+o*v+c*S,s[6]=a*g+o*_+c*C,s[1]=l*p+h*M+f*b,s[4]=l*d+h*v+f*S,s[7]=l*g+h*_+f*C,s[2]=u*p+m*M+x*b,s[5]=u*d+m*v+x*S,s[8]=u*g+m*_+x*C,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8];return e*a*h-e*o*l-n*s*h+n*o*c+i*s*l-i*a*c}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=h*a-o*l,u=o*c-h*s,m=l*s-a*c,x=e*f+n*u+i*m;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/x;return t[0]=f*p,t[1]=(i*l-h*n)*p,t[2]=(o*n-i*a)*p,t[3]=u*p,t[4]=(h*e-i*c)*p,t[5]=(i*s-o*e)*p,t[6]=m*p,t[7]=(n*c-l*e)*p,t[8]=(a*e-n*s)*p,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,a,o){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*a+l*o)+a+t,-i*l,i*c,-i*(-l*a+c*o)+o+e,0,0,1),this}scale(t,e){let n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){let e=Math.cos(t),n=Math.sin(t),i=this.elements,s=i[0],a=i[3],o=i[6],c=i[1],l=i[4],h=i[7];return i[0]=e*s+n*c,i[3]=e*a+n*l,i[6]=e*o+n*h,i[1]=-n*s+e*c,i[4]=-n*a+e*l,i[7]=-n*o+e*h,this}translate(t,e){let n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}};function Ja(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function Ms(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function Fn(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function _s(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var sr={[je]:{[Dn]:Fn},[Dn]:{[je]:_s}},Le={legacyMode:!0,get workingColorSpace(){return Dn},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,t,e){if(this.legacyMode||t===e||!t||!e)return r;if(sr[t]&&sr[t][e]!==void 0){let n=sr[t][e];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,t){return this.convert(r,this.workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this.workingColorSpace)}},$a={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Wt={r:0,g:0,b:0},Re={h:0,s:0,l:0},Ki={h:0,s:0,l:0};function rr(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}function Qi(r,t){return t.r=r.r,t.g=r.g,t.b=r.b,t}var Ot=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&n===void 0?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=je){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Le.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=Dn){return this.r=t,this.g=e,this.b=n,Le.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=Dn){if(t=wl(t,1),e=le(e,0,1),n=le(n,0,1),e===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+e):n+e-n*e,a=2*n-s;this.r=rr(a,s,t+1/3),this.g=rr(a,s,t),this.b=rr(a,s,t-1/3)}return Le.toWorkingColorSpace(this,i),this}setStyle(t,e=je){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let s,a=i[1],o=i[2];switch(a){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,Le.toWorkingColorSpace(this,e),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,Le.toWorkingColorSpace(this,e),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,e)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let s=i[1],a=s.length;if(a===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,Le.toWorkingColorSpace(this,e),this;if(a===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,Le.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=je){let n=$a[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Fn(t.r),this.g=Fn(t.g),this.b=Fn(t.b),this}copyLinearToSRGB(t){return this.r=_s(t.r),this.g=_s(t.g),this.b=_s(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=je){return Le.fromWorkingColorSpace(Qi(this,Wt),t),le(Wt.r*255,0,255)<<16^le(Wt.g*255,0,255)<<8^le(Wt.b*255,0,255)<<0}getHexString(t=je){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Dn){Le.fromWorkingColorSpace(Qi(this,Wt),e);let n=Wt.r,i=Wt.g,s=Wt.b,a=Math.max(n,i,s),o=Math.min(n,i,s),c,l,h=(o+a)/2;if(o===a)c=0,l=0;else{let f=a-o;switch(l=h<=.5?f/(a+o):f/(2-a-o),a){case n:c=(i-s)/f+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=Ms("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let a=0;a1)switch(this.wrapS){case Rr:t.x=t.x-Math.floor(t.x);break;case Ne:t.x=t.x<0?0:1;break;case Ir:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Rr:t.y=t.y-Math.floor(t.y);break;case Ne:t.y=t.y<0?0:1;break;case Ir:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}};we.DEFAULT_IMAGE=null;we.DEFAULT_MAPPING=Ya;var qt=class{constructor(t=0,e=0,n=0,i=1){qt.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*i+a[12]*s,this.y=a[1]*e+a[5]*n+a[9]*i+a[13]*s,this.z=a[2]*e+a[6]*n+a[10]*i+a[14]*s,this.w=a[3]*e+a[7]*n+a[11]*i+a[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s,c=t.elements,l=c[0],h=c[4],f=c[8],u=c[1],m=c[5],x=c[9],p=c[2],d=c[6],g=c[10];if(Math.abs(h-u)<.01&&Math.abs(f-p)<.01&&Math.abs(x-d)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+p)<.1&&Math.abs(x+d)<.1&&Math.abs(l+m+g-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let v=(l+1)/2,_=(m+1)/2,b=(g+1)/2,S=(h+u)/4,C=(f+p)/4,y=(x+d)/4;return v>_&&v>b?v<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(v),i=S/n,s=C/n):_>b?_<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(_),n=S/i,s=y/i):b<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(b),n=C/s,i=y/s),this.set(n,i,s,e),this}let M=Math.sqrt((d-x)*(d-x)+(f-p)*(f-p)+(u-h)*(u-h));return Math.abs(M)<.001&&(M=1),this.x=(d-x)/M,this.y=(f-p)/M,this.z=(u-h)/M,this.w=Math.acos((l+m+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},sn=class extends _n{constructor(t=1,e=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new qt(0,0,t,e),this.scissorTest=!1,this.viewport=new qt(0,0,t,e);let i={width:t,height:e,depth:1};this.texture=new we(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Ee,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new ws(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Ss=class extends we{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ce,this.minFilter=ce,this.wrapR=Ne,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Fr=class extends we{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ce,this.minFilter=ce,this.wrapR=Ne,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var yn=class{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,s,a,o){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],u=s[a+0],m=s[a+1],x=s[a+2],p=s[a+3];if(o===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f;return}if(o===1){t[e+0]=u,t[e+1]=m,t[e+2]=x,t[e+3]=p;return}if(f!==p||c!==u||l!==m||h!==x){let d=1-o,g=c*u+l*m+h*x+f*p,M=g>=0?1:-1,v=1-g*g;if(v>Number.EPSILON){let b=Math.sqrt(v),S=Math.atan2(b,g*M);d=Math.sin(d*S)/b,o=Math.sin(o*S)/b}let _=o*M;if(c=c*d+u*_,l=l*d+m*_,h=h*d+x*_,f=f*d+p*_,d===1-o){let b=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=b,l*=b,h*=b,f*=b}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,i,s,a){let o=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[a],u=s[a+1],m=s[a+2],x=s[a+3];return t[e]=o*x+h*f+c*m-l*u,t[e+1]=c*x+h*u+l*f-o*m,t[e+2]=l*x+h*m+o*u-c*f,t[e+3]=h*x-o*f-c*u-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){let n=t._x,i=t._y,s=t._z,a=t._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(i/2),f=o(s/2),u=c(n/2),m=c(i/2),x=c(s/2);switch(a){case"XYZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"YXZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"ZXY":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"ZYX":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"YZX":this._x=u*h*f+l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f-u*m*x;break;case"XZY":this._x=u*h*f-l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f+u*m*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,n=e[0],i=e[4],s=e[8],a=e[1],o=e[5],c=e[9],l=e[2],h=e[6],f=e[10],u=n+o+f;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(a-i)*m}else if(n>o&&n>f){let m=2*Math.sqrt(1+n-o-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+a)/m,this._z=(s+l)/m}else if(o>f){let m=2*Math.sqrt(1+o-n-f);this._w=(s-l)/m,this._x=(i+a)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-o);this._w=(a-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(le(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let n=t._x,i=t._y,s=t._z,a=t._w,o=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+a*o+i*l-s*c,this._y=i*h+a*c+s*o-n*l,this._z=s*h+a*l+n*c-i*o,this._w=a*h-n*o-i*c-s*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,i=this._y,s=this._z,a=this._w,o=a*t._w+n*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=i,this._z=s,this;let c=1-o*o;if(c<=Number.EPSILON){let m=1-e;return this._w=m*a+e*this._w,this._x=m*n+e*this._x,this._y=m*i+e*this._y,this._z=m*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,o),f=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=a*f+this._w*u,this._x=n*f+this._x*u,this._y=i*f+this._y*u,this._z=s*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},P=class{constructor(t=0,e=0,n=0){P.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(ua.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ua.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=t.elements,a=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*a,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*a,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*a,this}applyQuaternion(t){let e=this.x,n=this.y,i=this.z,s=t.x,a=t.y,o=t.z,c=t.w,l=c*e+a*i-o*n,h=c*n+o*e-s*i,f=c*i+s*n-a*e,u=-s*e-a*n-o*i;return this.x=l*c+u*-s+h*-o-f*-a,this.y=h*c+u*-a+f*-s-l*-o,this.z=f*c+u*-o+l*-a-h*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let n=t.x,i=t.y,s=t.z,a=e.x,o=e.y,c=e.z;return this.x=i*c-s*o,this.y=s*a-n*c,this.z=n*o-i*a,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ar.copy(this).projectOnVector(t),this.sub(ar)}reflect(t){return this.sub(ar.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(le(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){let i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},ar=new P,ua=new yn,oe=class{constructor(t=new P(1/0,1/0,1/0),e=new P(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.length;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.count;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,An),An.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Di),ji.subVectors(this.max,Di),$n.subVectors(t.a,Di),Kn.subVectors(t.b,Di),Qn.subVectors(t.c,Di),ln.subVectors(Kn,$n),hn.subVectors(Qn,Kn),En.subVectors($n,Qn);let e=[0,-ln.z,ln.y,0,-hn.z,hn.y,0,-En.z,En.y,ln.z,0,-ln.x,hn.z,0,-hn.x,En.z,0,-En.x,-ln.y,ln.x,0,-hn.y,hn.x,0,-En.y,En.x,0];return!lr(e,$n,Kn,Qn,ji)||(e=[1,0,0,0,1,0,0,0,1],!lr(e,$n,Kn,Qn,ji))?!1:(ts.crossVectors(ln,hn),e=[ts.x,ts.y,ts.z],lr(e,$n,Kn,Qn,ji))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return An.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=this.getSize(An).length()*.5,t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Ze[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ze[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ze[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ze[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ze[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ze[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ze[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ze[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ze),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Ze=[new P,new P,new P,new P,new P,new P,new P,new P],An=new P,cr=new oe,$n=new P,Kn=new P,Qn=new P,ln=new P,hn=new P,En=new P,Di=new P,ji=new P,ts=new P,Cn=new P;function lr(r,t,e,n,i){for(let s=0,a=r.length-3;s<=a;s+=3){Cn.fromArray(r,s);let o=i.x*Math.abs(Cn.x)+i.y*Math.abs(Cn.y)+i.z*Math.abs(Cn.z),c=t.dot(Cn),l=e.dot(Cn),h=n.dot(Cn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}var Tl=new oe,Ni=new P,hr=new P,Bn=class{constructor(t=new P,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):Tl.setFromPoints(t).getCenter(n);let i=0;for(let s=0,a=t.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Ni.subVectors(t,this.center);let e=Ni.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(Ni,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(hr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Ni.copy(t.center).add(hr)),this.expandByPoint(Ni.copy(t.center).sub(hr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},Je=new P,ur=new P,es=new P,un=new P,fr=new P,ns=new P,dr=new P,zr=class{constructor(t=new P,e=new P(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Je)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=Je.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Je.copy(this.direction).multiplyScalar(e).add(this.origin),Je.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){ur.copy(t).add(e).multiplyScalar(.5),es.copy(e).sub(t).normalize(),un.copy(this.origin).sub(ur);let s=t.distanceTo(e)*.5,a=-this.direction.dot(es),o=un.dot(this.direction),c=-un.dot(es),l=un.lengthSq(),h=Math.abs(1-a*a),f,u,m,x;if(h>0)if(f=a*c-o,u=a*o-c,x=s*h,f>=0)if(u>=-x)if(u<=x){let p=1/h;f*=p,u*=p,m=f*(f+a*u+2*o)+u*(a*f+u+2*c)+l}else u=s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u=-s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u<=-x?(f=Math.max(0,-(-a*s+o)),u=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l):u<=x?(f=0,u=Math.min(Math.max(-s,-c),s),m=u*(u+2*c)+l):(f=Math.max(0,-(a*s+o)),u=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l);else u=a>0?-s:s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(es).multiplyScalar(u).add(ur),m}intersectSphere(t,e){Je.subVectors(t.center,this.origin);let n=Je.dot(this.direction),i=Je.dot(Je)-n*n,s=t.radius*t.radius;if(i>s)return null;let a=Math.sqrt(s-i),o=n-a,c=n+a;return o<0&&c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,a,o,c,l=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),h>=0?(s=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(s=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),n>a||s>i||((s>n||isNaN(n))&&(n=s),(a=0?(o=(t.min.z-u.z)*f,c=(t.max.z-u.z)*f):(o=(t.max.z-u.z)*f,c=(t.min.z-u.z)*f),n>c||o>i)||((o>n||n!==n)&&(n=o),(c=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,Je)!==null}intersectTriangle(t,e,n,i,s){fr.subVectors(e,t),ns.subVectors(n,t),dr.crossVectors(fr,ns);let a=this.direction.dot(dr),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;un.subVectors(this.origin,t);let c=o*this.direction.dot(ns.crossVectors(un,ns));if(c<0)return null;let l=o*this.direction.dot(fr.cross(un));if(l<0||c+l>a)return null;let h=-o*un.dot(dr);return h<0?null:this.at(h/a,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},zt=class{constructor(){zt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,s,a,o,c,l,h,f,u,m,x,p,d){let g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=s,g[5]=a,g[9]=o,g[13]=c,g[2]=l,g[6]=h,g[10]=f,g[14]=u,g[3]=m,g[7]=x,g[11]=p,g[15]=d,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new zt().fromArray(this.elements)}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,n=t.elements,i=1/jn.setFromMatrixColumn(t,0).length(),s=1/jn.setFromMatrixColumn(t,1).length(),a=1/jn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,i=t.y,s=t.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(t.order==="XYZ"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=-c*f,e[8]=l,e[1]=m+x*l,e[5]=u-p*l,e[9]=-o*c,e[2]=p-u*l,e[6]=x+m*l,e[10]=a*c}else if(t.order==="YXZ"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u+p*o,e[4]=x*o-m,e[8]=a*l,e[1]=a*f,e[5]=a*h,e[9]=-o,e[2]=m*o-x,e[6]=p+u*o,e[10]=a*c}else if(t.order==="ZXY"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u-p*o,e[4]=-a*f,e[8]=x+m*o,e[1]=m+x*o,e[5]=a*h,e[9]=p-u*o,e[2]=-a*l,e[6]=o,e[10]=a*c}else if(t.order==="ZYX"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=x*l-m,e[8]=u*l+p,e[1]=c*f,e[5]=p*l+u,e[9]=m*l-x,e[2]=-l,e[6]=o*c,e[10]=a*c}else if(t.order==="YZX"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=p-u*f,e[8]=x*f+m,e[1]=f,e[5]=a*h,e[9]=-o*h,e[2]=-l*h,e[6]=m*f+x,e[10]=u-p*f}else if(t.order==="XZY"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=-f,e[8]=l*h,e[1]=u*f+p,e[5]=a*h,e[9]=m*f-x,e[2]=x*f-m,e[6]=o*h,e[10]=p*f+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Al,t,El)}lookAt(t,e,n){let i=this.elements;return ye.subVectors(t,e),ye.lengthSq()===0&&(ye.z=1),ye.normalize(),fn.crossVectors(n,ye),fn.lengthSq()===0&&(Math.abs(n.z)===1?ye.x+=1e-4:ye.z+=1e-4,ye.normalize(),fn.crossVectors(n,ye)),fn.normalize(),is.crossVectors(ye,fn),i[0]=fn.x,i[4]=is.x,i[8]=ye.x,i[1]=fn.y,i[5]=is.y,i[9]=ye.y,i[2]=fn.z,i[6]=is.z,i[10]=ye.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],f=n[5],u=n[9],m=n[13],x=n[2],p=n[6],d=n[10],g=n[14],M=n[3],v=n[7],_=n[11],b=n[15],S=i[0],C=i[4],y=i[8],A=i[12],L=i[1],B=i[5],q=i[9],z=i[13],I=i[2],U=i[6],Z=i[10],J=i[14],k=i[3],D=i[7],O=i[11],et=i[15];return s[0]=a*S+o*L+c*I+l*k,s[4]=a*C+o*B+c*U+l*D,s[8]=a*y+o*q+c*Z+l*O,s[12]=a*A+o*z+c*J+l*et,s[1]=h*S+f*L+u*I+m*k,s[5]=h*C+f*B+u*U+m*D,s[9]=h*y+f*q+u*Z+m*O,s[13]=h*A+f*z+u*J+m*et,s[2]=x*S+p*L+d*I+g*k,s[6]=x*C+p*B+d*U+g*D,s[10]=x*y+p*q+d*Z+g*O,s[14]=x*A+p*z+d*J+g*et,s[3]=M*S+v*L+_*I+b*k,s[7]=M*C+v*B+_*U+b*D,s[11]=M*y+v*q+_*Z+b*O,s[15]=M*A+v*z+_*J+b*et,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],a=t[1],o=t[5],c=t[9],l=t[13],h=t[2],f=t[6],u=t[10],m=t[14],x=t[3],p=t[7],d=t[11],g=t[15];return x*(+s*c*f-i*l*f-s*o*u+n*l*u+i*o*m-n*c*m)+p*(+e*c*m-e*l*u+s*a*u-i*a*m+i*l*h-s*c*h)+d*(+e*l*f-e*o*m-s*a*f+n*a*m+s*o*h-n*l*h)+g*(-i*o*h-e*c*f+e*o*u+i*a*f-n*a*u+n*c*h)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){let i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],m=t[11],x=t[12],p=t[13],d=t[14],g=t[15],M=f*d*l-p*u*l+p*c*m-o*d*m-f*c*g+o*u*g,v=x*u*l-h*d*l-x*c*m+a*d*m+h*c*g-a*u*g,_=h*p*l-x*f*l+x*o*m-a*p*m-h*o*g+a*f*g,b=x*f*c-h*p*c-x*o*u+a*p*u+h*o*d-a*f*d,S=e*M+n*v+i*_+s*b;if(S===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/S;return t[0]=M*C,t[1]=(p*u*s-f*d*s-p*i*m+n*d*m+f*i*g-n*u*g)*C,t[2]=(o*d*s-p*c*s+p*i*l-n*d*l-o*i*g+n*c*g)*C,t[3]=(f*c*s-o*u*s-f*i*l+n*u*l+o*i*m-n*c*m)*C,t[4]=v*C,t[5]=(h*d*s-x*u*s+x*i*m-e*d*m-h*i*g+e*u*g)*C,t[6]=(x*c*s-a*d*s-x*i*l+e*d*l+a*i*g-e*c*g)*C,t[7]=(a*u*s-h*c*s+h*i*l-e*u*l-a*i*m+e*c*m)*C,t[8]=_*C,t[9]=(x*f*s-h*p*s-x*n*m+e*p*m+h*n*g-e*f*g)*C,t[10]=(a*p*s-x*o*s+x*n*l-e*p*l-a*n*g+e*o*g)*C,t[11]=(h*o*s-a*f*s-h*n*l+e*f*l+a*n*m-e*o*m)*C,t[12]=b*C,t[13]=(h*p*i-x*f*i+x*n*u-e*p*u-h*n*d+e*f*d)*C,t[14]=(x*o*i-a*p*i-x*n*c+e*p*c+a*n*d-e*o*d)*C,t[15]=(a*f*i-h*o*i+h*n*c-e*f*c-a*n*u+e*o*u)*C,this}scale(t){let e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let n=Math.cos(e),i=Math.sin(e),s=1-n,a=t.x,o=t.y,c=t.z,l=s*a,h=s*o;return this.set(l*a+n,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+n,h*c-i*a,0,l*c-i*o,h*c+i*a,s*c*c+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,a){return this.set(1,n,s,0,t,1,a,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){let i=this.elements,s=e._x,a=e._y,o=e._z,c=e._w,l=s+s,h=a+a,f=o+o,u=s*l,m=s*h,x=s*f,p=a*h,d=a*f,g=o*f,M=c*l,v=c*h,_=c*f,b=n.x,S=n.y,C=n.z;return i[0]=(1-(p+g))*b,i[1]=(m+_)*b,i[2]=(x-v)*b,i[3]=0,i[4]=(m-_)*S,i[5]=(1-(u+g))*S,i[6]=(d+M)*S,i[7]=0,i[8]=(x+v)*C,i[9]=(d-M)*C,i[10]=(1-(u+p))*C,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){let i=this.elements,s=jn.set(i[0],i[1],i[2]).length(),a=jn.set(i[4],i[5],i[6]).length(),o=jn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Ie.copy(this);let l=1/s,h=1/a,f=1/o;return Ie.elements[0]*=l,Ie.elements[1]*=l,Ie.elements[2]*=l,Ie.elements[4]*=h,Ie.elements[5]*=h,Ie.elements[6]*=h,Ie.elements[8]*=f,Ie.elements[9]*=f,Ie.elements[10]*=f,e.setFromRotationMatrix(Ie),n.x=s,n.y=a,n.z=o,this}makePerspective(t,e,n,i,s,a){let o=this.elements,c=2*s/(e-t),l=2*s/(n-i),h=(e+t)/(e-t),f=(n+i)/(n-i),u=-(a+s)/(a-s),m=-2*a*s/(a-s);return o[0]=c,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=l,o[9]=f,o[13]=0,o[2]=0,o[6]=0,o[10]=u,o[14]=m,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,s,a){let o=this.elements,c=1/(e-t),l=1/(n-i),h=1/(a-s),f=(e+t)*c,u=(n+i)*l,m=(a+s)*h;return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-f,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-u,o[2]=0,o[6]=0,o[10]=-2*h,o[14]=-m,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},jn=new P,Ie=new zt,Al=new P(0,0,0),El=new P(1,1,1),fn=new P,is=new P,ye=new P,fa=new zt,da=new yn,Un=class{constructor(t=0,e=0,n=0,i=Un.DefaultOrder){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){let i=t.elements,s=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],f=i[2],u=i[6],m=i[10];switch(e){case"XYZ":this._y=Math.asin(le(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-le(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(le(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-le(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(le(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-le(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return fa.makeRotationFromQuaternion(t),this.setFromRotationMatrix(fa,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return da.setFromEuler(this),this.setFromQuaternion(da,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}};Un.DefaultOrder="XYZ";Un.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];var Ts=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0){i.children=[];for(let o=0;o0){i.animations=[];for(let o=0;o0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),x.length>0&&(n.nodes=x)}return n.object=i,n;function a(o){let c=[];for(let l in o){let h=o[l];delete h.metadata,c.push(h)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){De.subVectors(i,e),Ke.subVectors(n,e),pr.subVectors(t,e);let a=De.dot(De),o=De.dot(Ke),c=De.dot(pr),l=Ke.dot(Ke),h=Ke.dot(pr),f=a*l-o*o;if(f===0)return s.set(-2,-1,-1);let u=1/f,m=(l*c-o*h)*u,x=(a*h-o*c)*u;return s.set(1-m-x,x,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Qe),Qe.x>=0&&Qe.y>=0&&Qe.x+Qe.y<=1}static getUV(t,e,n,i,s,a,o,c){return this.getBarycoord(t,e,n,i,Qe),c.set(0,0),c.addScaledVector(s,Qe.x),c.addScaledVector(a,Qe.y),c.addScaledVector(o,Qe.z),c}static isFrontFacing(t,e,n,i){return De.subVectors(n,e),Ke.subVectors(t,e),De.cross(Ke).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return De.subVectors(this.c,this.b),Ke.subVectors(this.a,this.b),De.cross(Ke).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ne.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ne.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return ne.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return ne.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ne.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,i=this.b,s=this.c,a,o;ei.subVectors(i,n),ni.subVectors(s,n),mr.subVectors(t,n);let c=ei.dot(mr),l=ni.dot(mr);if(c<=0&&l<=0)return e.copy(n);gr.subVectors(t,i);let h=ei.dot(gr),f=ni.dot(gr);if(h>=0&&f<=h)return e.copy(i);let u=c*f-h*l;if(u<=0&&c>=0&&h<=0)return a=c/(c-h),e.copy(n).addScaledVector(ei,a);xr.subVectors(t,s);let m=ei.dot(xr),x=ni.dot(xr);if(x>=0&&m<=x)return e.copy(s);let p=m*l-c*x;if(p<=0&&l>=0&&x<=0)return o=l/(l-x),e.copy(n).addScaledVector(ni,o);let d=h*x-m*f;if(d<=0&&f-h>=0&&m-x>=0)return ya.subVectors(s,i),o=(f-h)/(f-h+(m-x)),e.copy(i).addScaledVector(ya,o);let g=1/(d+p+u);return a=p*g,o=u*g,e.copy(n).addScaledVector(ei,a).addScaledVector(ni,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Il=0,_i=class extends _n{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Il++}),this.uuid=Gi(),this.name="",this.type="Material",this.blending=fi,this.side=nn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Wa,this.blendDst=qa,this.blendEquation=li,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Cr,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=bl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=er,this.stencilZFail=er,this.stencilZPass=er,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn("THREE.Material: \'"+e+"\' parameter is undefined.");continue}let i=this[e];if(i===void 0){console.warn("THREE."+this.type+": \'"+e+"\' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==fi&&(n.blending=this.blending),this.side!==nn&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(s){let a=[];for(let o in s){let c=s[o];delete c.metadata,a.push(c)}return a}if(e){let s=i(t.textures),a=i(t.images);s.length>0&&(n.textures=s),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,n=null;if(e!==null){let i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}},As=class extends _i{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ot(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Xa,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},Gt=new P,rs=new At,Xt=class{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n===!0,this.usage=aa,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,u=l.length;f0&&(i[c]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let i=t.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(e))}let s=t.morphAttributes;for(let l in s){let h=[],f=s[l];for(let u=0,m=f.length;u0){let i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;se.far?null:{distance:l,point:fs.clone(),object:r}}function ds(r,t,e,n,i,s,a,o,c,l,h,f){dn.fromBufferAttribute(i,l),pn.fromBufferAttribute(i,h),mn.fromBufferAttribute(i,f);let u=r.morphTargetInfluences;if(s&&u){os.set(0,0,0),as.set(0,0,0),cs.set(0,0,0);for(let x=0,p=s.length;x0?1:-1,h.push(D.x,D.y,D.z),f.push($/C),f.push(1-O/y),J+=1}}for(let O=0;O0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},Ps=class extends fe{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new zt,this.projectionMatrix=new zt,this.projectionMatrixInverse=new zt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},Me=class extends Ps{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=la*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(nr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return la*2*Math.atan(Math.tan(nr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(nr*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i,a=this.view;if(this.view!==null&&this.view.enabled){let c=a.fullWidth,l=a.fullHeight;s+=a.offsetX*i/c,e-=a.offsetY*n/l,i*=a.width/c,n*=a.height/l}let o=this.filmOffset;o!==0&&(s+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},ri=90,oi=1,Or=class extends fe{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new Me(ri,oi,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new P(1,0,0)),this.add(i);let s=new Me(ri,oi,t,e);s.layers=this.layers,s.up.set(0,-1,0),s.lookAt(new P(-1,0,0)),this.add(s);let a=new Me(ri,oi,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(new P(0,1,0)),this.add(a);let o=new Me(ri,oi,t,e);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(new P(0,-1,0)),this.add(o);let c=new Me(ri,oi,t,e);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new P(0,0,1)),this.add(c);let l=new Me(ri,oi,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new P(0,0,-1)),this.add(l)}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,a,o,c,l]=this.children,h=t.getRenderTarget(),f=t.toneMapping,u=t.xr.enabled;t.toneMapping=tn,t.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=m,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.toneMapping=f,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}},Ls=class extends we{constructor(t,e,n,i,s,a,o,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:mi,super(t,e,n,i,s,a,o,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Br=class extends sn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Ls(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Ee}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,fragmentShader:`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`},i=new kn(5,5,5),s=new rn({name:"CubemapFromEquirect",uniforms:yi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:ue,blending:xn});s.uniforms.tEquirect.value=e;let a=new He(i,s),o=e.minFilter;return e.minFilter===Ns&&(e.minFilter=Ee),new Or(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,i){let s=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,i);t.setRenderTarget(s)}},Sr=new P,Ul=new P,kl=new he,be=class{constructor(t=new P(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){let i=Sr.subVectors(n,e).cross(Ul.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){let n=t.delta(Sr),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){let e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let n=e||kl.getNormalMatrix(t),i=this.coplanarPoint(Sr).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}},ai=new Bn,ps=new P,Rs=class{constructor(t=new be,e=new be,n=new be,i=new be,s=new be,a=new be){this.planes=[t,e,n,i,s,a]}set(t,e,n,i,s,a){let o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(a),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){let e=this.planes,n=t.elements,i=n[0],s=n[1],a=n[2],o=n[3],c=n[4],l=n[5],h=n[6],f=n[7],u=n[8],m=n[9],x=n[10],p=n[11],d=n[12],g=n[13],M=n[14],v=n[15];return e[0].setComponents(o-i,f-c,p-u,v-d).normalize(),e[1].setComponents(o+i,f+c,p+u,v+d).normalize(),e[2].setComponents(o+s,f+l,p+m,v+g).normalize(),e[3].setComponents(o-s,f-l,p-m,v-g).normalize(),e[4].setComponents(o-a,f-h,p-x,v-M).normalize(),e[5].setComponents(o+a,f+h,p+x,v+M).normalize(),this}intersectsObject(t){let e=t.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),ai.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ai)}intersectsSprite(t){return ai.center.set(0,0,0),ai.radius=.7071067811865476,ai.applyMatrix4(t.matrixWorld),this.intersectsSphere(ai)}intersectsSphere(t){let e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,ps.y=i.normal.y>0?t.max.y:t.min.y,ps.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(ps)<0)return!1}return!0}containsPoint(t){let e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function Ka(){let r=null,t=!1,e=null,n=null;function i(s,a){e(s,a),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function Vl(r,t){let e=t.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,u=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,u),l.onUploadCallback();let x;if(f instanceof Float32Array)x=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)x=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=5123;else if(f instanceof Int16Array)x=5122;else if(f instanceof Uint32Array)x=5125;else if(f instanceof Int32Array)x=5124;else if(f instanceof Int8Array)x=5120;else if(f instanceof Uint8Array)x=5121;else if(f instanceof Uint8ClampedArray)x=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let u=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,u):(e?r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1)}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif`,Kl=`#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\t return vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif`,Ql=`#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif`,jl=`#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif`,th=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif`,eh=`#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif`,nh=`#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif`,ih=`#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif`,sh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif`,rh=`#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif`,oh=`#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif`,ah=`#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}`,ch=`#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif`,lh=`vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif`,hh=`#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif`,uh=`#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif`,fh=`#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif`,dh=`#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif`,ph="gl_FragColor = linearToOutputTexel( gl_FragColor );",mh=`vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}`,gh=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif`,xh=`#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif`,_h=`#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif`,yh=`#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif`,vh=`#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif`,Mh=`#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif`,bh=`#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif`,wh=`#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif`,Sh=`#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif`,Th=`#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}`,Ah=`#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif`,Eh=`#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif`,Ch=`LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;`,Ph=`varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert\n#define Material_LightProbeLOD( material )\t(0)`,Lh=`uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif`,Rh=`#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif`,Ih=`ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;`,Dh=`varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)`,Nh=`BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;`,Fh=`varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)`,zh=`PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif`,Oh=`struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}`,Bh=`\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif`,Uh=`#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif`,kh=`#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif`,Vh=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif`,Hh=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif`,Gh=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif`,Wh=`#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif`,qh=`#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif`,Xh=`#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif`,Yh=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif`,Zh=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif`,Jh=`float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif`,$h=`#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif`,Kh=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif`,Qh=`#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif`,jh=`#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif`,tu=`#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif`,eu=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;`,nu=`#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif`,iu=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,su=`#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif`,ru=`#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif`,ou=`#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif`,au=`#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif`,cu=`#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif`,lu=`#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif`,hu=`#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif`,uu=`#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );`,fu=`vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}`,du=`#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif`,pu=`vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;`,mu=`#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif`,gu=`#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif`,xu=`float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif`,_u=`#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif`,yu=`#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif`,vu=`#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif`,Mu=`#if defined( USE_SHADOWMAP ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_COORDS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif`,bu=`float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}`,wu=`#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif`,Su=`#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif`,Tu=`#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif`,Au=`#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif`,Eu=`float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif`,Cu=`#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif`,Pu=`#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif`,Lu=`#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }`,Ru=`#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif`,Iu=`#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif`,Du=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif`,Nu=`#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif`,Fu=`#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif`,zu=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif`,Ou=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif`,Bu=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif`,Uu=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif`,ku=`varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}`,Vu=`uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\n\t#endif\n\t#include \n\t#include \n}`,Hu=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,Gu=`#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}`,Wu=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}`,qu=`uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}`,Xu=`#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}`,Yu=`#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}`,Zu=`#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}`,Ju=`#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}`,$u=`varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}`,Ku=`uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}`,Qu=`uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,ju=`uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,tf=`#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,ef=`uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,nf=`#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,sf=`#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,rf=`#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}`,of=`#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,af=`#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}`,cf=`#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}`,lf=`#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,hf=`#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,uf=`#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}`,ff=`#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,df=`#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}`,pf=`#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,mf=`uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}`,gf=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,xf=`#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}`,_f=`uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}`,yf=`uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}`,vf=`uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}`,bt={alphamap_fragment:Hl,alphamap_pars_fragment:Gl,alphatest_fragment:Wl,alphatest_pars_fragment:ql,aomap_fragment:Xl,aomap_pars_fragment:Yl,begin_vertex:Zl,beginnormal_vertex:Jl,bsdfs:$l,iridescence_fragment:Kl,bumpmap_pars_fragment:Ql,clipping_planes_fragment:jl,clipping_planes_pars_fragment:th,clipping_planes_pars_vertex:eh,clipping_planes_vertex:nh,color_fragment:ih,color_pars_fragment:sh,color_pars_vertex:rh,color_vertex:oh,common:ah,cube_uv_reflection_fragment:ch,defaultnormal_vertex:lh,displacementmap_pars_vertex:hh,displacementmap_vertex:uh,emissivemap_fragment:fh,emissivemap_pars_fragment:dh,encodings_fragment:ph,encodings_pars_fragment:mh,envmap_fragment:gh,envmap_common_pars_fragment:xh,envmap_pars_fragment:_h,envmap_pars_vertex:yh,envmap_physical_pars_fragment:Rh,envmap_vertex:vh,fog_vertex:Mh,fog_pars_vertex:bh,fog_fragment:wh,fog_pars_fragment:Sh,gradientmap_pars_fragment:Th,lightmap_fragment:Ah,lightmap_pars_fragment:Eh,lights_lambert_fragment:Ch,lights_lambert_pars_fragment:Ph,lights_pars_begin:Lh,lights_toon_fragment:Ih,lights_toon_pars_fragment:Dh,lights_phong_fragment:Nh,lights_phong_pars_fragment:Fh,lights_physical_fragment:zh,lights_physical_pars_fragment:Oh,lights_fragment_begin:Bh,lights_fragment_maps:Uh,lights_fragment_end:kh,logdepthbuf_fragment:Vh,logdepthbuf_pars_fragment:Hh,logdepthbuf_pars_vertex:Gh,logdepthbuf_vertex:Wh,map_fragment:qh,map_pars_fragment:Xh,map_particle_fragment:Yh,map_particle_pars_fragment:Zh,metalnessmap_fragment:Jh,metalnessmap_pars_fragment:$h,morphcolor_vertex:Kh,morphnormal_vertex:Qh,morphtarget_pars_vertex:jh,morphtarget_vertex:tu,normal_fragment_begin:eu,normal_fragment_maps:nu,normal_pars_fragment:iu,normal_pars_vertex:su,normal_vertex:ru,normalmap_pars_fragment:ou,clearcoat_normal_fragment_begin:au,clearcoat_normal_fragment_maps:cu,clearcoat_pars_fragment:lu,iridescence_pars_fragment:hu,output_fragment:uu,packing:fu,premultiplied_alpha_fragment:du,project_vertex:pu,dithering_fragment:mu,dithering_pars_fragment:gu,roughnessmap_fragment:xu,roughnessmap_pars_fragment:_u,shadowmap_pars_fragment:yu,shadowmap_pars_vertex:vu,shadowmap_vertex:Mu,shadowmask_pars_fragment:bu,skinbase_vertex:wu,skinning_pars_vertex:Su,skinning_vertex:Tu,skinnormal_vertex:Au,specularmap_fragment:Eu,specularmap_pars_fragment:Cu,tonemapping_fragment:Pu,tonemapping_pars_fragment:Lu,transmission_fragment:Ru,transmission_pars_fragment:Iu,uv_pars_fragment:Du,uv_pars_vertex:Nu,uv_vertex:Fu,uv2_pars_fragment:zu,uv2_pars_vertex:Ou,uv2_vertex:Bu,worldpos_vertex:Uu,background_vert:ku,background_frag:Vu,backgroundCube_vert:Hu,backgroundCube_frag:Gu,cube_vert:Wu,cube_frag:qu,depth_vert:Xu,depth_frag:Yu,distanceRGBA_vert:Zu,distanceRGBA_frag:Ju,equirect_vert:$u,equirect_frag:Ku,linedashed_vert:Qu,linedashed_frag:ju,meshbasic_vert:tf,meshbasic_frag:ef,meshlambert_vert:nf,meshlambert_frag:sf,meshmatcap_vert:rf,meshmatcap_frag:of,meshnormal_vert:af,meshnormal_frag:cf,meshphong_vert:lf,meshphong_frag:hf,meshphysical_vert:uf,meshphysical_frag:ff,meshtoon_vert:df,meshtoon_frag:pf,points_vert:mf,points_frag:gf,shadow_vert:xf,shadow_frag:_f,sprite_vert:yf,sprite_frag:vf},tt={common:{diffuse:{value:new Ot(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new he},uv2Transform:{value:new he},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ot(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ot(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new he}},sprite:{diffuse:{value:new Ot(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new he}}},ke={basic:{uniforms:re([tt.common,tt.specularmap,tt.envmap,tt.aomap,tt.lightmap,tt.fog]),vertexShader:bt.meshbasic_vert,fragmentShader:bt.meshbasic_frag},lambert:{uniforms:re([tt.common,tt.specularmap,tt.envmap,tt.aomap,tt.lightmap,tt.emissivemap,tt.bumpmap,tt.normalmap,tt.displacementmap,tt.fog,tt.lights,{emissive:{value:new Ot(0)}}]),vertexShader:bt.meshlambert_vert,fragmentShader:bt.meshlambert_frag},phong:{uniforms:re([tt.common,tt.specularmap,tt.envmap,tt.aomap,tt.lightmap,tt.emissivemap,tt.bumpmap,tt.normalmap,tt.displacementmap,tt.fog,tt.lights,{emissive:{value:new Ot(0)},specular:{value:new Ot(1118481)},shininess:{value:30}}]),vertexShader:bt.meshphong_vert,fragmentShader:bt.meshphong_frag},standard:{uniforms:re([tt.common,tt.envmap,tt.aomap,tt.lightmap,tt.emissivemap,tt.bumpmap,tt.normalmap,tt.displacementmap,tt.roughnessmap,tt.metalnessmap,tt.fog,tt.lights,{emissive:{value:new Ot(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag},toon:{uniforms:re([tt.common,tt.aomap,tt.lightmap,tt.emissivemap,tt.bumpmap,tt.normalmap,tt.displacementmap,tt.gradientmap,tt.fog,tt.lights,{emissive:{value:new Ot(0)}}]),vertexShader:bt.meshtoon_vert,fragmentShader:bt.meshtoon_frag},matcap:{uniforms:re([tt.common,tt.bumpmap,tt.normalmap,tt.displacementmap,tt.fog,{matcap:{value:null}}]),vertexShader:bt.meshmatcap_vert,fragmentShader:bt.meshmatcap_frag},points:{uniforms:re([tt.points,tt.fog]),vertexShader:bt.points_vert,fragmentShader:bt.points_frag},dashed:{uniforms:re([tt.common,tt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:bt.linedashed_vert,fragmentShader:bt.linedashed_frag},depth:{uniforms:re([tt.common,tt.displacementmap]),vertexShader:bt.depth_vert,fragmentShader:bt.depth_frag},normal:{uniforms:re([tt.common,tt.bumpmap,tt.normalmap,tt.displacementmap,{opacity:{value:1}}]),vertexShader:bt.meshnormal_vert,fragmentShader:bt.meshnormal_frag},sprite:{uniforms:re([tt.sprite,tt.fog]),vertexShader:bt.sprite_vert,fragmentShader:bt.sprite_frag},background:{uniforms:{uvTransform:{value:new he},t2D:{value:null}},vertexShader:bt.background_vert,fragmentShader:bt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0}},vertexShader:bt.backgroundCube_vert,fragmentShader:bt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:bt.cube_vert,fragmentShader:bt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:bt.equirect_vert,fragmentShader:bt.equirect_frag},distanceRGBA:{uniforms:re([tt.common,tt.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:bt.distanceRGBA_vert,fragmentShader:bt.distanceRGBA_frag},shadow:{uniforms:re([tt.lights,tt.fog,{color:{value:new Ot(0)},opacity:{value:1}}]),vertexShader:bt.shadow_vert,fragmentShader:bt.shadow_frag}};ke.physical={uniforms:re([ke.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new At(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Ot(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ot(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ot(1,1,1)},specularColorMap:{value:null}}]),vertexShader:bt.meshphysical_vert,fragmentShader:bt.meshphysical_frag};function Mf(r,t,e,n,i,s,a){let o=new Ot(0),c=s===!0?0:1,l,h,f=null,u=0,m=null;function x(d,g){let M=!1,v=g.isScene===!0?g.background:null;v&&v.isTexture&&(v=(g.backgroundBlurriness>0?e:t).get(v));let _=r.xr,b=_.getSession&&_.getSession();b&&b.environmentBlendMode==="additive"&&(v=null),v===null?p(o,c):v&&v.isColor&&(p(v,1),M=!0),(r.autoClear||M)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),v&&(v.isCubeTexture||v.mapping===Ds)?(h===void 0&&(h=new He(new kn(1,1,1),new rn({name:"BackgroundCubeMaterial",uniforms:yi(ke.backgroundCube.uniforms),vertexShader:ke.backgroundCube.vertexShader,fragmentShader:ke.backgroundCube.fragmentShader,side:ue,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(S,C,y){this.matrixWorld.copyPosition(y.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=v,h.material.uniforms.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,(f!==v||u!==v.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=v,u=v.version,m=r.toneMapping),h.layers.enableAll(),d.unshift(h,h.geometry,h.material,0,0,null)):v&&v.isTexture&&(l===void 0&&(l=new He(new Vi(2,2),new rn({name:"BackgroundMaterial",uniforms:yi(ke.background.uniforms),vertexShader:ke.background.vertexShader,fragmentShader:ke.background.fragmentShader,side:nn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=v,v.matrixAutoUpdate===!0&&v.updateMatrix(),l.material.uniforms.uvTransform.value.copy(v.matrix),(f!==v||u!==v.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=v,u=v.version,m=r.toneMapping),l.layers.enableAll(),d.unshift(l,l.geometry,l.material,0,0,null))}function p(d,g){n.buffers.color.setClear(d.r,d.g,d.b,g,a)}return{getClearColor:function(){return o},setClearColor:function(d,g=1){o.set(d),c=g,p(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(d){c=d,p(o,c)},render:x}}function bf(r,t,e,n){let i=r.getParameter(34921),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||s!==null,o={},c=d(null),l=c,h=!1;function f(I,U,Z,J,k){let D=!1;if(a){let O=p(J,Z,U);l!==O&&(l=O,m(l.object)),D=g(I,J,Z,k),D&&M(I,J,Z,k)}else{let O=U.wireframe===!0;(l.geometry!==J.id||l.program!==Z.id||l.wireframe!==O)&&(l.geometry=J.id,l.program=Z.id,l.wireframe=O,D=!0)}k!==null&&e.update(k,34963),(D||h)&&(h=!1,y(I,U,Z,J),k!==null&&r.bindBuffer(34963,e.get(k).buffer))}function u(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(I){return n.isWebGL2?r.bindVertexArray(I):s.bindVertexArrayOES(I)}function x(I){return n.isWebGL2?r.deleteVertexArray(I):s.deleteVertexArrayOES(I)}function p(I,U,Z){let J=Z.wireframe===!0,k=o[I.id];k===void 0&&(k={},o[I.id]=k);let D=k[U.id];D===void 0&&(D={},k[U.id]=D);let O=D[J];return O===void 0&&(O=d(u()),D[J]=O),O}function d(I){let U=[],Z=[],J=[];for(let k=0;k=0){let at=k[$],yt=D[$];if(yt===void 0&&($==="instanceMatrix"&&I.instanceMatrix&&(yt=I.instanceMatrix),$==="instanceColor"&&I.instanceColor&&(yt=I.instanceColor)),at===void 0||at.attribute!==yt||yt&&at.data!==yt.data)return!0;O++}return l.attributesNum!==O||l.index!==J}function M(I,U,Z,J){let k={},D=U.attributes,O=0,et=Z.getAttributes();for(let $ in et)if(et[$].location>=0){let at=D[$];at===void 0&&($==="instanceMatrix"&&I.instanceMatrix&&(at=I.instanceMatrix),$==="instanceColor"&&I.instanceColor&&(at=I.instanceColor));let yt={};yt.attribute=at,at&&at.data&&(yt.data=at.data),k[$]=yt,O++}l.attributes=k,l.attributesNum=O,l.index=J}function v(){let I=l.newAttributes;for(let U=0,Z=I.length;U=0){let nt=k[et];if(nt===void 0&&(et==="instanceMatrix"&&I.instanceMatrix&&(nt=I.instanceMatrix),et==="instanceColor"&&I.instanceColor&&(nt=I.instanceColor)),nt!==void 0){let at=nt.normalized,yt=nt.itemSize,Y=e.get(nt);if(Y===void 0)continue;let Dt=Y.buffer,gt=Y.type,vt=Y.bytesPerElement;if(nt.isInterleavedBufferAttribute){let ot=nt.data,Ft=ot.stride,St=nt.offset;if(ot.isInstancedInterleavedBuffer){for(let pt=0;pt<$.locationSize;pt++)b($.location+pt,ot.meshPerAttribute);I.isInstancedMesh!==!0&&J._maxInstanceCount===void 0&&(J._maxInstanceCount=ot.meshPerAttribute*ot.count)}else for(let pt=0;pt<$.locationSize;pt++)_($.location+pt);r.bindBuffer(34962,Dt);for(let pt=0;pt<$.locationSize;pt++)C($.location+pt,yt/$.locationSize,gt,at,Ft*vt,(St+yt/$.locationSize*pt)*vt)}else{if(nt.isInstancedBufferAttribute){for(let ot=0;ot<$.locationSize;ot++)b($.location+ot,nt.meshPerAttribute);I.isInstancedMesh!==!0&&J._maxInstanceCount===void 0&&(J._maxInstanceCount=nt.meshPerAttribute*nt.count)}else for(let ot=0;ot<$.locationSize;ot++)_($.location+ot);r.bindBuffer(34962,Dt);for(let ot=0;ot<$.locationSize;ot++)C($.location+ot,yt/$.locationSize,gt,at,yt*vt,yt/$.locationSize*ot*vt)}}else if(O!==void 0){let at=O[et];if(at!==void 0)switch(at.length){case 2:r.vertexAttrib2fv($.location,at);break;case 3:r.vertexAttrib3fv($.location,at);break;case 4:r.vertexAttrib4fv($.location,at);break;default:r.vertexAttrib1fv($.location,at)}}}}S()}function A(){q();for(let I in o){let U=o[I];for(let Z in U){let J=U[Z];for(let k in J)x(J[k].object),delete J[k];delete U[Z]}delete o[I]}}function L(I){if(o[I.id]===void 0)return;let U=o[I.id];for(let Z in U){let J=U[Z];for(let k in J)x(J[k].object),delete J[k];delete U[Z]}delete o[I.id]}function B(I){for(let U in o){let Z=o[U];if(Z[I.id]===void 0)continue;let J=Z[I.id];for(let k in J)x(J[k].object),delete J[k];delete Z[I.id]}}function q(){z(),h=!0,l!==c&&(l=c,m(l.object))}function z(){c.geometry=null,c.program=null,c.wireframe=!1}return{setup:f,reset:q,resetDefaultState:z,dispose:A,releaseStatesOfGeometry:L,releaseStatesOfProgram:B,initAttributes:v,enableAttribute:_,disableUnusedAttributes:S}}function wf(r,t,e,n){let i=n.isWebGL2,s;function a(l){s=l}function o(l,h){r.drawArrays(s,l,h),e.update(h,s,1)}function c(l,h,f){if(f===0)return;let u,m;if(i)u=r,m="drawArraysInstanced";else if(u=t.get("ANGLE_instanced_arrays"),m="drawArraysInstancedANGLE",u===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}u[m](s,l,h,f),e.update(h,s,f)}this.setMode=a,this.render=o,this.renderInstances=c}function Sf(r,t,e){let n;function i(){if(n!==void 0)return n;if(t.has("EXT_texture_filter_anisotropic")===!0){let C=t.get("EXT_texture_filter_anisotropic");n=r.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function s(C){if(C==="highp"){if(r.getShaderPrecisionFormat(35633,36338).precision>0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";C="mediump"}return C==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&r instanceof WebGL2ComputeRenderingContext,o=e.precision!==void 0?e.precision:"highp",c=s(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);let l=a||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,f=r.getParameter(34930),u=r.getParameter(35660),m=r.getParameter(3379),x=r.getParameter(34076),p=r.getParameter(34921),d=r.getParameter(36347),g=r.getParameter(36348),M=r.getParameter(36349),v=u>0,_=a||t.has("OES_texture_float"),b=v&&_,S=a?r.getParameter(36183):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:o,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:x,maxAttributes:p,maxVertexUniforms:d,maxVaryings:g,maxFragmentUniforms:M,vertexTextures:v,floatFragmentTextures:_,floatVertexTextures:b,maxSamples:S}}function Tf(r){let t=this,e=null,n=0,i=!1,s=!1,a=new be,o=new he,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u,m){let x=f.length!==0||u||n!==0||i;return i=u,e=h(f,m,0),n=f.length,x},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,l()},this.setState=function(f,u,m){let x=f.clippingPlanes,p=f.clipIntersection,d=f.clipShadows,g=r.get(f);if(!i||x===null||x.length===0||s&&!d)s?h(null):l();else{let M=s?0:n,v=M*4,_=g.clippingState||null;c.value=_,_=h(x,u,v,m);for(let b=0;b!==v;++b)_[b]=e[b];g.clippingState=_,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=M}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(f,u,m,x){let p=f!==null?f.length:0,d=null;if(p!==0){if(d=c.value,x!==!0||d===null){let g=m+p*4,M=u.matrixWorldInverse;o.getNormalMatrix(M),(d===null||d.length0){let l=new Br(c.height/2);return l.fromEquirectangularTexture(r,a),t.set(a,l),a.addEventListener("dispose",i),e(l.texture,a.mapping)}else return null}}return a}function i(a){let o=a.target;o.removeEventListener("dispose",i);let c=t.get(o);c!==void 0&&(t.delete(o),c.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}var Ur=class extends Ps{constructor(t=-1,e=1,n=1,i=-1,s=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=a,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-t,a=n+t,o=i+e,c=i-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,a=s+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(s,a,o,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},hi=4,Ma=[.125,.215,.35,.446,.526,.582],Ln=20,Tr=new Ur,ba=new Ot,Ar=null,Pn=(1+Math.sqrt(5))/2,ci=1/Pn,wa=[new P(1,1,1),new P(-1,1,1),new P(1,1,-1),new P(-1,1,-1),new P(0,Pn,ci),new P(0,Pn,-ci),new P(ci,0,Pn),new P(-ci,0,Pn),new P(Pn,ci,0),new P(-Pn,ci,0)],Is=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Ar=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Aa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ta(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?v:0,v,v),h.setRenderTarget(i),p&&h.render(x,o),h.render(t,o)}x.geometry.dispose(),x.material.dispose(),h.toneMapping=u,h.autoClear=f,t.background=d}_textureToCubeUV(t,e){let n=this._renderer,i=t.mapping===mi||t.mapping===gi;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Aa()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ta());let s=i?this._cubemapMaterial:this._equirectMaterial,a=new He(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=t;let c=this._cubeSize;ms(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(a,Tr)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;iLn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${d} samples when the maximum is set to ${Ln}`);let g=[],M=0;for(let C=0;Cv-hi?i-v+hi:0),S=4*(this._cubeSize-_);ms(e,b,S,3*_,2*_),c.setRenderTarget(e),c.render(f,Tr)}};function Ef(r){let t=[],e=[],n=[],i=r,s=r-hi+1+Ma.length;for(let a=0;ar-hi?c=Ma[a-r+hi-1]:a===0&&(c=0),n.push(c);let l=1/(o-2),h=-l,f=1+l,u=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,x=6,p=3,d=2,g=1,M=new Float32Array(p*x*m),v=new Float32Array(d*x*m),_=new Float32Array(g*x*m);for(let S=0;S2?0:-1,A=[C,y,0,C+2/3,y,0,C+2/3,y+1,0,C,y,0,C+2/3,y+1,0,C,y+1,0];M.set(A,p*x*S),v.set(u,d*x*S);let L=[S,S,S,S,S,S];_.set(L,g*x*S)}let b=new ze;b.setAttribute("position",new Xt(M,p)),b.setAttribute("uv",new Xt(v,d)),b.setAttribute("faceIndex",new Xt(_,g)),t.push(b),i>hi&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Sa(r,t,e){let n=new sn(r,t,e);return n.texture.mapping=Ds,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function ms(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function Cf(r,t,e){let n=new Float32Array(Ln),i=new P(0,1,0);return new rn({name:"SphericalGaussianBlur",defines:{n:Ln,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:ao(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues\' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,blending:xn,depthTest:!1,depthWrite:!1})}function Ta(){return new rn({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ao(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,blending:xn,depthTest:!1,depthWrite:!1})}function Aa(){return new rn({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ao(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,blending:xn,depthTest:!1,depthWrite:!1})}function ao(){return`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`}function Pf(r){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){let c=o.mapping,l=c===Pr||c===Lr,h=c===mi||c===gi;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let f=t.get(o);return e===null&&(e=new Is(r)),f=l?e.fromEquirectangular(o,f):e.fromCubemap(o,f),t.set(o,f),f.texture}else{if(t.has(o))return t.get(o).texture;{let f=o.image;if(l&&f&&f.height>0||h&&f&&i(f)){e===null&&(e=new Is(r));let u=l?e.fromEquirectangular(o):e.fromCubemap(o);return t.set(o,u),o.addEventListener("dispose",s),u.texture}else return null}}}return o}function i(o){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(B=Math.ceil(L/t.maxTextureSize),L=t.maxTextureSize);let q=new Float32Array(L*B*4*p),z=new Ss(q,L,B,p);z.type=In,z.needsUpdate=!0;let I=A*4;for(let Z=0;Z0)return r;let i=t*e,s=Ea[i];if(s===void 0&&(s=new Float32Array(i),Ea[i]=s),t!==0){n.toArray(s,0);for(let a=1,o=0;a!==t;++a)o+=e,r[a].toArray(s,o)}return s}function Yt(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} ${o}: ${e[a]}`)}return n.join(`\n`)}function Ed(r){switch(r){case On:return["Linear","( value )"];case Vt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Na(r,t,e){let n=r.getShaderParameter(t,35713),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let a=parseInt(s[1]);return e.toUpperCase()+`\n\n`+i+`\n\n`+Ad(r.getShaderSource(t),a)}else return i}function Cd(r,t){let e=Ed(t);return"vec4 "+r+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Pd(r,t){let e;switch(t){case Kc:e="Linear";break;case Qc:e="Reinhard";break;case jc:e="OptimizedCineon";break;case tl:e="ACESFilmic";break;case el:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Ld(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Bi).join(`\n`)}function Rd(r){let t=[];for(let e in r){let n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(`\n`)}function Id(r,t){let e={},n=r.getProgramParameter(t,35721);for(let i=0;i/gm;function Gr(r){return r.replace(Dd,Nd)}function Nd(r,t){let e=bt[t];if(e===void 0)throw new Error("Can not resolve #include <"+t+">");return Gr(e)}var Fd=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function Oa(r){return r.replace(Fd,zd)}function zd(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(d+=`\n`),g=[m,x].filter(Bi).join(`\n`),g.length>0&&(g+=`\n`)):(d=[Ba(e),"#define SHADER_NAME "+e.shaderName,x,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif",`\n`].filter(Bi).join(`\n`),g=[m,Ba(e),"#define SHADER_NAME "+e.shaderName,x,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+f:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==tn?"#define TONE_MAPPING":"",e.toneMapping!==tn?bt.tonemapping_pars_fragment:"",e.toneMapping!==tn?Pd("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",bt.encodings_pars_fragment,Cd("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",`\n`].filter(Bi).join(`\n`)),a=Gr(a),a=Fa(a,e),a=za(a,e),o=Gr(o),o=Fa(o,e),o=za(o,e),a=Oa(a),o=Oa(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(M=`#version 300 es\n`,d=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`\n`)+`\n`+d,g=["#define varying in",e.glslVersion===ca?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===ca?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`\n`)+`\n`+g);let v=M+d+a,_=M+g+o,b=Da(i,35633,v),S=Da(i,35632,_);if(i.attachShader(p,b),i.attachShader(p,S),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let A=i.getProgramInfoLog(p).trim(),L=i.getShaderInfoLog(b).trim(),B=i.getShaderInfoLog(S).trim(),q=!0,z=!0;if(i.getProgramParameter(p,35714)===!1){q=!1;let I=Na(i,b,"vertex"),U=Na(i,S,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+`\n\nProgram Info Log: `+A+`\n`+I+`\n`+U)}else A!==""?console.warn("THREE.WebGLProgram: Program Info Log:",A):(L===""||B==="")&&(z=!1);z&&(this.diagnostics={runnable:q,programLog:A,vertexShader:{log:L,prefix:d},fragmentShader:{log:B,prefix:g}})}i.deleteShader(b),i.deleteShader(S);let C;this.getUniforms=function(){return C===void 0&&(C=new pi(i,p)),C};let y;return this.getAttributes=function(){return y===void 0&&(y=Id(i,p)),y},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=e.shaderName,this.id=Td++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=b,this.fragmentShader=S,this}var Gd=0,Wr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new qr(t),e.set(t,n)),n}},qr=class{constructor(t){this.id=Gd++,this.code=t,this.usedTimes=0}};function Wd(r,t,e,n,i,s,a){let o=new Ts,c=new Wr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,u=i.vertexTextures,m=i.precision,x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function p(y,A,L,B,q){let z=B.fog,I=q.geometry,U=y.isMeshStandardMaterial?B.environment:null,Z=(y.isMeshStandardMaterial?e:t).get(y.envMap||U),J=Z&&Z.mapping===Ds?Z.image.height:null,k=x[y.type];y.precision!==null&&(m=i.getMaxPrecision(y.precision),m!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",m,"instead."));let D=I.morphAttributes.position||I.morphAttributes.normal||I.morphAttributes.color,O=D!==void 0?D.length:0,et=0;I.morphAttributes.position!==void 0&&(et=1),I.morphAttributes.normal!==void 0&&(et=2),I.morphAttributes.color!==void 0&&(et=3);let $,nt,at,yt;if(k){let Ft=ke[k];$=Ft.vertexShader,nt=Ft.fragmentShader}else $=y.vertexShader,nt=y.fragmentShader,c.update(y),at=c.getVertexShaderID(y),yt=c.getFragmentShaderID(y);let Y=r.getRenderTarget(),Dt=y.alphaTest>0,gt=y.clearcoat>0,vt=y.iridescence>0;return{isWebGL2:h,shaderID:k,shaderName:y.type,vertexShader:$,fragmentShader:nt,defines:y.defines,customVertexShaderID:at,customFragmentShaderID:yt,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:m,instancing:q.isInstancedMesh===!0,instancingColor:q.isInstancedMesh===!0&&q.instanceColor!==null,supportsVertexTextures:u,outputEncoding:Y===null?r.outputEncoding:Y.isXRRenderTarget===!0?Y.texture.encoding:On,map:!!y.map,matcap:!!y.matcap,envMap:!!Z,envMapMode:Z&&Z.mapping,envMapCubeUVHeight:J,lightMap:!!y.lightMap,aoMap:!!y.aoMap,emissiveMap:!!y.emissiveMap,bumpMap:!!y.bumpMap,normalMap:!!y.normalMap,objectSpaceNormalMap:y.normalMapType===Ml,tangentSpaceNormalMap:y.normalMapType===vl,decodeVideoTexture:!!y.map&&y.map.isVideoTexture===!0&&y.map.encoding===Vt,clearcoat:gt,clearcoatMap:gt&&!!y.clearcoatMap,clearcoatRoughnessMap:gt&&!!y.clearcoatRoughnessMap,clearcoatNormalMap:gt&&!!y.clearcoatNormalMap,iridescence:vt,iridescenceMap:vt&&!!y.iridescenceMap,iridescenceThicknessMap:vt&&!!y.iridescenceThicknessMap,displacementMap:!!y.displacementMap,roughnessMap:!!y.roughnessMap,metalnessMap:!!y.metalnessMap,specularMap:!!y.specularMap,specularIntensityMap:!!y.specularIntensityMap,specularColorMap:!!y.specularColorMap,opaque:y.transparent===!1&&y.blending===fi,alphaMap:!!y.alphaMap,alphaTest:Dt,gradientMap:!!y.gradientMap,sheen:y.sheen>0,sheenColorMap:!!y.sheenColorMap,sheenRoughnessMap:!!y.sheenRoughnessMap,transmission:y.transmission>0,transmissionMap:!!y.transmissionMap,thicknessMap:!!y.thicknessMap,combine:y.combine,vertexTangents:!!y.normalMap&&!!I.attributes.tangent,vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!I.attributes.color&&I.attributes.color.itemSize===4,vertexUvs:!!y.map||!!y.bumpMap||!!y.normalMap||!!y.specularMap||!!y.alphaMap||!!y.emissiveMap||!!y.roughnessMap||!!y.metalnessMap||!!y.clearcoatMap||!!y.clearcoatRoughnessMap||!!y.clearcoatNormalMap||!!y.iridescenceMap||!!y.iridescenceThicknessMap||!!y.displacementMap||!!y.transmissionMap||!!y.thicknessMap||!!y.specularIntensityMap||!!y.specularColorMap||!!y.sheenColorMap||!!y.sheenRoughnessMap,uvsVertexOnly:!(y.map||y.bumpMap||y.normalMap||y.specularMap||y.alphaMap||y.emissiveMap||y.roughnessMap||y.metalnessMap||y.clearcoatNormalMap||y.iridescenceMap||y.iridescenceThicknessMap||y.transmission>0||y.transmissionMap||y.thicknessMap||y.specularIntensityMap||y.specularColorMap||y.sheen>0||y.sheenColorMap||y.sheenRoughnessMap)&&!!y.displacementMap,fog:!!z,useFog:y.fog===!0,fogExp2:z&&z.isFogExp2,flatShading:!!y.flatShading,sizeAttenuation:y.sizeAttenuation,logarithmicDepthBuffer:f,skinning:q.isSkinnedMesh===!0,morphTargets:I.morphAttributes.position!==void 0,morphNormals:I.morphAttributes.normal!==void 0,morphColors:I.morphAttributes.color!==void 0,morphTargetsCount:O,morphTextureStride:et,numDirLights:A.directional.length,numPointLights:A.point.length,numSpotLights:A.spot.length,numSpotLightMaps:A.spotLightMap.length,numRectAreaLights:A.rectArea.length,numHemiLights:A.hemi.length,numDirLightShadows:A.directionalShadowMap.length,numPointLightShadows:A.pointShadowMap.length,numSpotLightShadows:A.spotShadowMap.length,numSpotLightShadowsWithMaps:A.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:y.dithering,shadowMapEnabled:r.shadowMap.enabled&&L.length>0,shadowMapType:r.shadowMap.type,toneMapping:y.toneMapped?r.toneMapping:tn,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===Ve,flipSided:y.side===ue,useDepthPacking:!!y.depthPacking,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:y.extensions&&y.extensions.derivatives,extensionFragDepth:y.extensions&&y.extensions.fragDepth,extensionDrawBuffers:y.extensions&&y.extensions.drawBuffers,extensionShaderTextureLOD:y.extensions&&y.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:y.customProgramCacheKey()}}function d(y){let A=[];if(y.shaderID?A.push(y.shaderID):(A.push(y.customVertexShaderID),A.push(y.customFragmentShaderID)),y.defines!==void 0)for(let L in y.defines)A.push(L),A.push(y.defines[L]);return y.isRawShaderMaterial===!1&&(g(A,y),M(A,y),A.push(r.outputEncoding)),A.push(y.customProgramCacheKey),A.join()}function g(y,A){y.push(A.precision),y.push(A.outputEncoding),y.push(A.envMapMode),y.push(A.envMapCubeUVHeight),y.push(A.combine),y.push(A.vertexUvs),y.push(A.fogExp2),y.push(A.sizeAttenuation),y.push(A.morphTargetsCount),y.push(A.morphAttributeCount),y.push(A.numDirLights),y.push(A.numPointLights),y.push(A.numSpotLights),y.push(A.numSpotLightMaps),y.push(A.numHemiLights),y.push(A.numRectAreaLights),y.push(A.numDirLightShadows),y.push(A.numPointLightShadows),y.push(A.numSpotLightShadows),y.push(A.numSpotLightShadowsWithMaps),y.push(A.shadowMapType),y.push(A.toneMapping),y.push(A.numClippingPlanes),y.push(A.numClipIntersection),y.push(A.depthPacking)}function M(y,A){o.disableAll(),A.isWebGL2&&o.enable(0),A.supportsVertexTextures&&o.enable(1),A.instancing&&o.enable(2),A.instancingColor&&o.enable(3),A.map&&o.enable(4),A.matcap&&o.enable(5),A.envMap&&o.enable(6),A.lightMap&&o.enable(7),A.aoMap&&o.enable(8),A.emissiveMap&&o.enable(9),A.bumpMap&&o.enable(10),A.normalMap&&o.enable(11),A.objectSpaceNormalMap&&o.enable(12),A.tangentSpaceNormalMap&&o.enable(13),A.clearcoat&&o.enable(14),A.clearcoatMap&&o.enable(15),A.clearcoatRoughnessMap&&o.enable(16),A.clearcoatNormalMap&&o.enable(17),A.iridescence&&o.enable(18),A.iridescenceMap&&o.enable(19),A.iridescenceThicknessMap&&o.enable(20),A.displacementMap&&o.enable(21),A.specularMap&&o.enable(22),A.roughnessMap&&o.enable(23),A.metalnessMap&&o.enable(24),A.gradientMap&&o.enable(25),A.alphaMap&&o.enable(26),A.alphaTest&&o.enable(27),A.vertexColors&&o.enable(28),A.vertexAlphas&&o.enable(29),A.vertexUvs&&o.enable(30),A.vertexTangents&&o.enable(31),A.uvsVertexOnly&&o.enable(32),y.push(o.mask),o.disableAll(),A.fog&&o.enable(0),A.useFog&&o.enable(1),A.flatShading&&o.enable(2),A.logarithmicDepthBuffer&&o.enable(3),A.skinning&&o.enable(4),A.morphTargets&&o.enable(5),A.morphNormals&&o.enable(6),A.morphColors&&o.enable(7),A.premultipliedAlpha&&o.enable(8),A.shadowMapEnabled&&o.enable(9),A.physicallyCorrectLights&&o.enable(10),A.doubleSided&&o.enable(11),A.flipSided&&o.enable(12),A.useDepthPacking&&o.enable(13),A.dithering&&o.enable(14),A.specularIntensityMap&&o.enable(15),A.specularColorMap&&o.enable(16),A.transmission&&o.enable(17),A.transmissionMap&&o.enable(18),A.thicknessMap&&o.enable(19),A.sheen&&o.enable(20),A.sheenColorMap&&o.enable(21),A.sheenRoughnessMap&&o.enable(22),A.decodeVideoTexture&&o.enable(23),A.opaque&&o.enable(24),y.push(o.mask)}function v(y){let A=x[y.type],L;if(A){let B=ke[A];L=zl.clone(B.uniforms)}else L=y.uniforms;return L}function _(y,A){let L;for(let B=0,q=l.length;B0?n.push(g):m.transparent===!0?i.push(g):e.push(g)}function c(f,u,m,x,p,d){let g=a(f,u,m,x,p,d);m.transmission>0?n.unshift(g):m.transparent===!0?i.unshift(g):e.unshift(g)}function l(f,u){e.length>1&&e.sort(f||Xd),n.length>1&&n.sort(u||Ua),i.length>1&&i.sort(u||Ua)}function h(){for(let f=t,u=r.length;f=s.length?(a=new ka,s.push(a)):a=s[i],a}function e(){r=new WeakMap}return{get:t,dispose:e}}function Zd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new P,color:new Ot};break;case"SpotLight":e={position:new P,direction:new P,color:new Ot,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new Ot,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new Ot,groundColor:new Ot};break;case"RectAreaLight":e={color:new Ot,position:new P,halfWidth:new P,halfHeight:new P};break}return r[t.id]=e,e}}}function Jd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}var $d=0;function Kd(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function Qd(r,t){let e=new Zd,n=Jd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)i.probe.push(new P);let s=new P,a=new zt,o=new zt;function c(h,f){let u=0,m=0,x=0;for(let B=0;B<9;B++)i.probe[B].set(0,0,0);let p=0,d=0,g=0,M=0,v=0,_=0,b=0,S=0,C=0,y=0;h.sort(Kd);let A=f!==!0?Math.PI:1;for(let B=0,q=h.length;B0&&(t.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=tt.LTC_FLOAT_1,i.rectAreaLTC2=tt.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=tt.LTC_HALF_1,i.rectAreaLTC2=tt.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=u,i.ambient[1]=m,i.ambient[2]=x;let L=i.hash;(L.directionalLength!==p||L.pointLength!==d||L.spotLength!==g||L.rectAreaLength!==M||L.hemiLength!==v||L.numDirectionalShadows!==_||L.numPointShadows!==b||L.numSpotShadows!==S||L.numSpotMaps!==C)&&(i.directional.length=p,i.spot.length=g,i.rectArea.length=M,i.point.length=d,i.hemi.length=v,i.directionalShadow.length=_,i.directionalShadowMap.length=_,i.pointShadow.length=b,i.pointShadowMap.length=b,i.spotShadow.length=S,i.spotShadowMap.length=S,i.directionalShadowMatrix.length=_,i.pointShadowMatrix.length=b,i.spotLightMatrix.length=S+C-y,i.spotLightMap.length=C,i.numSpotLightShadowsWithMaps=y,L.directionalLength=p,L.pointLength=d,L.spotLength=g,L.rectAreaLength=M,L.hemiLength=v,L.numDirectionalShadows=_,L.numPointShadows=b,L.numSpotShadows=S,L.numSpotMaps=C,i.version=$d++)}function l(h,f){let u=0,m=0,x=0,p=0,d=0,g=f.matrixWorldInverse;for(let M=0,v=h.length;M=o.length?(c=new Va(r,t),o.push(c)):c=o[a],c}function i(){e=new WeakMap}return{get:n,dispose:i}}var Xr=class extends _i{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=_l,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},Yr=class extends _i{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new P,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},tp=`void main() {\n\tgl_Position = vec4( position, 1.0 );\n}`,ep=`uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}`;function np(r,t,e){let n=new Rs,i=new At,s=new At,a=new qt,o=new Xr({depthPacking:yl}),c=new Yr,l={},h=e.maxTextureSize,f={0:ue,1:nn,2:Ve},u=new rn({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},radius:{value:4}},vertexShader:tp,fragmentShader:ep}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let x=new ze;x.setAttribute("position",new Xt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new He(x,u),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ga,this.render=function(_,b,S){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||_.length===0)return;let C=r.getRenderTarget(),y=r.getActiveCubeFace(),A=r.getActiveMipmapLevel(),L=r.state;L.setBlending(xn),L.buffers.color.setClear(1,1,1,1),L.buffers.depth.setTest(!0),L.setScissorTest(!1);for(let B=0,q=_.length;Bh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/U.x),i.x=s.x*U.x,I.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/U.y),i.y=s.y*U.y,I.mapSize.y=s.y)),I.map===null){let J=this.type!==Oi?{minFilter:ce,magFilter:ce}:{};I.map=new sn(i.x,i.y,J),I.map.texture.name=z.name+".shadowMap",I.camera.updateProjectionMatrix()}r.setRenderTarget(I.map),r.clear();let Z=I.getViewportCount();for(let J=0;J0){let q=L.uuid,z=b.uuid,I=l[q];I===void 0&&(I={},l[q]=I);let U=I[z];U===void 0&&(U=L.clone(),I[z]=U),L=U}return L.visible=b.visible,L.wireframe=b.wireframe,A===Oi?L.side=b.shadowSide!==null?b.shadowSide:b.side:L.side=b.shadowSide!==null?b.shadowSide:f[b.side],L.alphaMap=b.alphaMap,L.alphaTest=b.alphaTest,L.clipShadows=b.clipShadows,L.clippingPlanes=b.clippingPlanes,L.clipIntersection=b.clipIntersection,L.displacementMap=b.displacementMap,L.displacementScale=b.displacementScale,L.displacementBias=b.displacementBias,L.wireframeLinewidth=b.wireframeLinewidth,L.linewidth=b.linewidth,S.isPointLight===!0&&L.isMeshDistanceMaterial===!0&&(L.referencePosition.setFromMatrixPosition(S.matrixWorld),L.nearDistance=C,L.farDistance=y),L}function v(_,b,S,C,y){if(_.visible===!1)return;if(_.layers.test(b.layers)&&(_.isMesh||_.isLine||_.isPoints)&&(_.castShadow||_.receiveShadow&&y===Oi)&&(!_.frustumCulled||n.intersectsObject(_))){_.modelViewMatrix.multiplyMatrices(S.matrixWorldInverse,_.matrixWorld);let B=t.update(_),q=_.material;if(Array.isArray(q)){let z=B.groups;for(let I=0,U=z.length;I=1):k.indexOf("OpenGL ES")!==-1&&(J=parseFloat(/^OpenGL ES (\\d)/.exec(k)[1]),Z=J>=2);let D=null,O={},et=r.getParameter(3088),$=r.getParameter(2978),nt=new qt().fromArray(et),at=new qt().fromArray($);function yt(R,G,K){let rt=new Uint8Array(4),lt=r.createTexture();r.bindTexture(R,lt),r.texParameteri(R,10241,9728),r.texParameteri(R,10240,9728);for(let Pt=0;PtQ||E.height>Q)&&(j=Q/Math.max(E.width,E.height)),j<1||w===!0)if(typeof HTMLImageElement!="undefined"&&E instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&E instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&E instanceof ImageBitmap){let it=w?Nr:Math.floor,xt=it(j*E.width),st=it(j*E.height);p===void 0&&(p=M(xt,st));let X=H?M(xt,st):p;return X.width=xt,X.height=st,X.getContext("2d").drawImage(E,0,0,xt,st),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+E.width+"x"+E.height+") to ("+xt+"x"+st+")."),X}else return"data"in E&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+E.width+"x"+E.height+")."),E;return E}function _(E){return ha(E.width)&&ha(E.height)}function b(E){return o?!1:E.wrapS!==Ne||E.wrapT!==Ne||E.minFilter!==ce&&E.minFilter!==Ee}function S(E,w){return E.generateMipmaps&&w&&E.minFilter!==ce&&E.minFilter!==Ee}function C(E){r.generateMipmap(E)}function y(E,w,H,Q,j=!1){if(o===!1)return w;if(E!==null){if(r[E]!==void 0)return r[E];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'"+E+"\'")}let it=w;return w===6403&&(H===5126&&(it=33326),H===5131&&(it=33325),H===5121&&(it=33321)),w===33319&&(H===5126&&(it=33328),H===5131&&(it=33327),H===5121&&(it=33323)),w===6408&&(H===5126&&(it=34836),H===5131&&(it=34842),H===5121&&(it=Q===Vt&&j===!1?35907:32856),H===32819&&(it=32854),H===32820&&(it=32855)),(it===33325||it===33326||it===33327||it===33328||it===34842||it===34836)&&t.get("EXT_color_buffer_float"),it}function A(E,w,H){return S(E,H)===!0||E.isFramebufferTexture&&E.minFilter!==ce&&E.minFilter!==Ee?Math.log2(Math.max(w.width,w.height))+1:E.mipmaps!==void 0&&E.mipmaps.length>0?E.mipmaps.length:E.isCompressedTexture&&Array.isArray(E.image)?w.mipmaps.length:1}function L(E){return E===ce||E===Fo||E===zo?9728:9729}function B(E){let w=E.target;w.removeEventListener("dispose",B),z(w),w.isVideoTexture&&x.delete(w)}function q(E){let w=E.target;w.removeEventListener("dispose",q),U(w)}function z(E){let w=n.get(E);if(w.__webglInit===void 0)return;let H=E.source,Q=d.get(H);if(Q){let j=Q[w.__cacheKey];j.usedTimes--,j.usedTimes===0&&I(E),Object.keys(Q).length===0&&d.delete(H)}n.remove(E)}function I(E){let w=n.get(E);r.deleteTexture(w.__webglTexture);let H=E.source,Q=d.get(H);delete Q[w.__cacheKey],a.memory.textures--}function U(E){let w=E.texture,H=n.get(E),Q=n.get(w);if(Q.__webglTexture!==void 0&&(r.deleteTexture(Q.__webglTexture),a.memory.textures--),E.depthTexture&&E.depthTexture.dispose(),E.isWebGLCubeRenderTarget)for(let j=0;j<6;j++)r.deleteFramebuffer(H.__webglFramebuffer[j]),H.__webglDepthbuffer&&r.deleteRenderbuffer(H.__webglDepthbuffer[j]);else{if(r.deleteFramebuffer(H.__webglFramebuffer),H.__webglDepthbuffer&&r.deleteRenderbuffer(H.__webglDepthbuffer),H.__webglMultisampledFramebuffer&&r.deleteFramebuffer(H.__webglMultisampledFramebuffer),H.__webglColorRenderbuffer)for(let j=0;j=c&&console.warn("THREE.WebGLTextures: Trying to use "+E+" texture units while this GPU supports only "+c),Z+=1,E}function D(E){let w=[];return w.push(E.wrapS),w.push(E.wrapT),w.push(E.wrapR||0),w.push(E.magFilter),w.push(E.minFilter),w.push(E.anisotropy),w.push(E.internalFormat),w.push(E.format),w.push(E.type),w.push(E.generateMipmaps),w.push(E.premultiplyAlpha),w.push(E.flipY),w.push(E.unpackAlignment),w.push(E.encoding),w.join()}function O(E,w){let H=n.get(E);if(E.isVideoTexture&&qe(E),E.isRenderTargetTexture===!1&&E.version>0&&H.__version!==E.version){let Q=E.image;if(Q===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Q.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{gt(H,E,w);return}}e.bindTexture(3553,H.__webglTexture,33984+w)}function et(E,w){let H=n.get(E);if(E.version>0&&H.__version!==E.version){gt(H,E,w);return}e.bindTexture(35866,H.__webglTexture,33984+w)}function $(E,w){let H=n.get(E);if(E.version>0&&H.__version!==E.version){gt(H,E,w);return}e.bindTexture(32879,H.__webglTexture,33984+w)}function nt(E,w){let H=n.get(E);if(E.version>0&&H.__version!==E.version){vt(H,E,w);return}e.bindTexture(34067,H.__webglTexture,33984+w)}let at={[Rr]:10497,[Ne]:33071,[Ir]:33648},yt={[ce]:9728,[Fo]:9984,[zo]:9986,[Ee]:9729,[nl]:9985,[Ns]:9987};function Y(E,w,H){if(H?(r.texParameteri(E,10242,at[w.wrapS]),r.texParameteri(E,10243,at[w.wrapT]),(E===32879||E===35866)&&r.texParameteri(E,32882,at[w.wrapR]),r.texParameteri(E,10240,yt[w.magFilter]),r.texParameteri(E,10241,yt[w.minFilter])):(r.texParameteri(E,10242,33071),r.texParameteri(E,10243,33071),(E===32879||E===35866)&&r.texParameteri(E,32882,33071),(w.wrapS!==Ne||w.wrapT!==Ne)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(E,10240,L(w.magFilter)),r.texParameteri(E,10241,L(w.minFilter)),w.minFilter!==ce&&w.minFilter!==Ee&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),t.has("EXT_texture_filter_anisotropic")===!0){let Q=t.get("EXT_texture_filter_anisotropic");if(w.type===In&&t.has("OES_texture_float_linear")===!1||o===!1&&w.type===ki&&t.has("OES_texture_half_float_linear")===!1)return;(w.anisotropy>1||n.get(w).__currentAnisotropy)&&(r.texParameterf(E,Q.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(w.anisotropy,i.getMaxAnisotropy())),n.get(w).__currentAnisotropy=w.anisotropy)}}function Dt(E,w){let H=!1;E.__webglInit===void 0&&(E.__webglInit=!0,w.addEventListener("dispose",B));let Q=w.source,j=d.get(Q);j===void 0&&(j={},d.set(Q,j));let it=D(w);if(it!==E.__cacheKey){j[it]===void 0&&(j[it]={texture:r.createTexture(),usedTimes:0},a.memory.textures++,H=!0),j[it].usedTimes++;let xt=j[E.__cacheKey];xt!==void 0&&(j[E.__cacheKey].usedTimes--,xt.usedTimes===0&&I(w)),E.__cacheKey=it,E.__webglTexture=j[it].texture}return H}function gt(E,w,H){let Q=3553;(w.isDataArrayTexture||w.isCompressedArrayTexture)&&(Q=35866),w.isData3DTexture&&(Q=32879);let j=Dt(E,w),it=w.source;e.bindTexture(Q,E.__webglTexture,33984+H);let xt=n.get(it);if(it.version!==xt.__version||j===!0){e.activeTexture(33984+H),r.pixelStorei(37440,w.flipY),r.pixelStorei(37441,w.premultiplyAlpha),r.pixelStorei(3317,w.unpackAlignment),r.pixelStorei(37443,0);let st=b(w)&&_(w.image)===!1,X=v(w.image,st,!1,h);X=Xe(w,X);let ft=_(X)||o,mt=s.convert(w.format,w.encoding),ct=s.convert(w.type),dt=y(w.internalFormat,mt,ct,w.encoding,w.isVideoTexture);Y(Q,w,ft);let ht,Ct=w.mipmaps,Bt=o&&w.isVideoTexture!==!0,Jt=xt.__version===void 0||j===!0,R=A(w,X,ft);if(w.isDepthTexture)dt=6402,o?w.type===In?dt=36012:w.type===Rn?dt=33190:w.type===di?dt=35056:dt=33189:w.type===In&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),w.format===Nn&&dt===6402&&w.type!==Za&&w.type!==Rn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),w.type=Rn,ct=s.convert(w.type)),w.format===xi&&dt===6402&&(dt=34041,w.type!==di&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),w.type=di,ct=s.convert(w.type))),Jt&&(Bt?e.texStorage2D(3553,1,dt,X.width,X.height):e.texImage2D(3553,0,dt,X.width,X.height,0,mt,ct,null));else if(w.isDataTexture)if(Ct.length>0&&ft){Bt&&Jt&&e.texStorage2D(3553,R,dt,Ct[0].width,Ct[0].height);for(let G=0,K=Ct.length;G>=1,K>>=1}}else if(Ct.length>0&&ft){Bt&&Jt&&e.texStorage2D(3553,R,dt,Ct[0].width,Ct[0].height);for(let G=0,K=Ct.length;G0&&Jt++,e.texStorage2D(34067,Jt,ht,X[0].width,X[0].height));for(let G=0;G<6;G++)if(st){Ct?e.texSubImage2D(34069+G,0,0,0,X[G].width,X[G].height,ct,dt,X[G].data):e.texImage2D(34069+G,0,ht,X[G].width,X[G].height,0,ct,dt,X[G].data);for(let K=0;K=34069&&j<=34074)&&r.framebufferTexture2D(36160,Q,j,n.get(H).__webglTexture,0),e.bindFramebuffer(36160,null)}function Ft(E,w,H){if(r.bindRenderbuffer(36161,E),w.depthBuffer&&!w.stencilBuffer){let Q=33189;if(H||Nt(w)){let j=w.depthTexture;j&&j.isDepthTexture&&(j.type===In?Q=36012:j.type===Rn&&(Q=33190));let it=jt(w);Nt(w)?u.renderbufferStorageMultisampleEXT(36161,it,Q,w.width,w.height):r.renderbufferStorageMultisample(36161,it,Q,w.width,w.height)}else r.renderbufferStorage(36161,Q,w.width,w.height);r.framebufferRenderbuffer(36160,36096,36161,E)}else if(w.depthBuffer&&w.stencilBuffer){let Q=jt(w);H&&Nt(w)===!1?r.renderbufferStorageMultisample(36161,Q,35056,w.width,w.height):Nt(w)?u.renderbufferStorageMultisampleEXT(36161,Q,35056,w.width,w.height):r.renderbufferStorage(36161,34041,w.width,w.height),r.framebufferRenderbuffer(36160,33306,36161,E)}else{let Q=w.isWebGLMultipleRenderTargets===!0?w.texture:[w.texture];for(let j=0;j0&&Nt(E)===!1){let st=it?w:[w];H.__webglMultisampledFramebuffer=r.createFramebuffer(),H.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,H.__webglMultisampledFramebuffer);for(let X=0;X0&&Nt(E)===!1){let w=E.isWebGLMultipleRenderTargets?E.texture:[E.texture],H=E.width,Q=E.height,j=16384,it=[],xt=E.stencilBuffer?33306:36096,st=n.get(E),X=E.isWebGLMultipleRenderTargets===!0;if(X)for(let ft=0;ft0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&w.__useRenderToTexture!==!1}function qe(E){let w=a.render.frame;x.get(E)!==w&&(x.set(E,w),E.update())}function Xe(E,w){let H=E.encoding,Q=E.format,j=E.type;return E.isCompressedTexture===!0||E.isVideoTexture===!0||E.format===Dr||H!==On&&(H===Vt?o===!1?t.has("EXT_sRGB")===!0&&Q===Fe?(E.format=Dr,E.minFilter=Ee,E.generateMipmaps=!1):w=bs.sRGBToLinear(w):(Q!==Fe||j!==zn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",H)),w}this.allocateTextureUnit=k,this.resetTextureUnits=J,this.setTexture2D=O,this.setTexture2DArray=et,this.setTexture3D=$,this.setTextureCube=nt,this.rebindTextures=Qt,this.setupRenderTarget=ae,this.updateRenderTargetMipmap=ie,this.updateMultisampleRenderTarget=Be,this.setupDepthRenderbuffer=pt,this.setupFrameBufferTexture=ot,this.useMultisampledRTT=Nt}function rp(r,t,e){let n=e.isWebGL2;function i(s,a=null){let o;if(s===zn)return 5121;if(s===ol)return 32819;if(s===al)return 32820;if(s===il)return 5120;if(s===sl)return 5122;if(s===Za)return 5123;if(s===rl)return 5124;if(s===Rn)return 5125;if(s===In)return 5126;if(s===ki)return n?5131:(o=t.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(s===cl)return 6406;if(s===Fe)return 6408;if(s===hl)return 6409;if(s===ul)return 6410;if(s===Nn)return 6402;if(s===xi)return 34041;if(s===fl)return 6403;if(s===ll)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(s===Dr)return o=t.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(s===dl)return 36244;if(s===pl)return 33319;if(s===ml)return 33320;if(s===gl)return 36249;if(s===$s||s===Ks||s===Qs||s===js)if(a===Vt)if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(s===$s)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Qs)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=t.get("WEBGL_compressed_texture_s3tc"),o!==null){if(s===$s)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Qs)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===Oo||s===Bo||s===Uo||s===ko)if(o=t.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(s===Oo)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Bo)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Uo)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===ko)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===xl)return o=t.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===Vo||s===Ho)if(o=t.get("WEBGL_compressed_texture_etc"),o!==null){if(s===Vo)return a===Vt?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(s===Ho)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Go||s===Wo||s===qo||s===Xo||s===Yo||s===Zo||s===Jo||s===$o||s===Ko||s===Qo||s===jo||s===ta||s===ea||s===na)if(o=t.get("WEBGL_compressed_texture_astc"),o!==null){if(s===Go)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Wo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===qo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Xo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Yo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Zo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Jo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===$o)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===Ko)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Qo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jo)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===ta)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ea)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===na)return a===Vt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===ia)if(o=t.get("EXT_texture_compression_bptc"),o!==null){if(s===ia)return a===Vt?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return s===di?n?34042:(o=t.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var Zr=class extends Me{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},ui=class extends fe{constructor(){super(),this.isGroup=!0,this.type="Group"}},op={type:"move"},Ui=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new ui,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new ui,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new P,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new P),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new ui,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new P,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new P),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,a=null,o=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){a=!0;for(let p of t.hand.values()){let d=e.getJointPose(p,n);if(l.joints[p.jointName]===void 0){let M=new ui;M.matrixAutoUpdate=!1,M.visible=!1,l.joints[p.jointName]=M,l.add(M)}let g=l.joints[p.jointName];d!==null&&(g.matrix.fromArray(d.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.jointRadius=d.radius),g.visible=d!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],u=h.position.distanceTo(f.position),m=.02,x=.005;l.inputState.pinching&&u>m+x?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-x&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(op)))}return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=a!==null),this}},Jr=class extends we{constructor(t,e,n,i,s,a,o,c,l,h){if(h=h!==void 0?h:Nn,h!==Nn&&h!==xi)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Nn&&(n=Rn),n===void 0&&h===xi&&(n=di),super(null,i,s,a,o,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:ce,this.minFilter=c!==void 0?c:ce,this.flipY=!1,this.generateMipmaps=!1}},$r=class extends _n{constructor(t,e){super();let n=this,i=null,s=1,a=null,o="local-floor",c=null,l=null,h=null,f=null,u=null,m=null,x=e.getContextAttributes(),p=null,d=null,g=[],M=[],v=new Me;v.layers.enable(1),v.viewport=new qt;let _=new Me;_.layers.enable(2),_.viewport=new qt;let b=[v,_],S=new Zr;S.layers.enable(1),S.layers.enable(2);let C=null,y=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(D){let O=g[D];return O===void 0&&(O=new Ui,g[D]=O),O.getTargetRaySpace()},this.getControllerGrip=function(D){let O=g[D];return O===void 0&&(O=new Ui,g[D]=O),O.getGripSpace()},this.getHand=function(D){let O=g[D];return O===void 0&&(O=new Ui,g[D]=O),O.getHandSpace()};function A(D){let O=M.indexOf(D.inputSource);if(O===-1)return;let et=g[O];et!==void 0&&et.dispatchEvent({type:D.type,data:D.inputSource})}function L(){i.removeEventListener("select",A),i.removeEventListener("selectstart",A),i.removeEventListener("selectend",A),i.removeEventListener("squeeze",A),i.removeEventListener("squeezestart",A),i.removeEventListener("squeezeend",A),i.removeEventListener("end",L),i.removeEventListener("inputsourceschange",B);for(let D=0;D=0&&(M[$]=null,g[$].dispatchEvent({type:"disconnected",data:et}))}for(let O=0;O=M.length){M.push(et),$=at;break}else if(M[at]===null){M[at]=et,$=at;break}if($===-1)break}let nt=g[$];nt&&nt.dispatchEvent({type:"connected",data:et})}}let q=new P,z=new P;function I(D,O,et){q.setFromMatrixPosition(O.matrixWorld),z.setFromMatrixPosition(et.matrixWorld);let $=q.distanceTo(z),nt=O.projectionMatrix.elements,at=et.projectionMatrix.elements,yt=nt[14]/(nt[10]-1),Y=nt[14]/(nt[10]+1),Dt=(nt[9]+1)/nt[5],gt=(nt[9]-1)/nt[5],vt=(nt[8]-1)/nt[0],ot=(at[8]+1)/at[0],Ft=yt*vt,St=yt*ot,pt=$/(-vt+ot),Qt=pt*-vt;O.matrixWorld.decompose(D.position,D.quaternion,D.scale),D.translateX(Qt),D.translateZ(pt),D.matrixWorld.compose(D.position,D.quaternion,D.scale),D.matrixWorldInverse.copy(D.matrixWorld).invert();let ae=yt+pt,ie=Y+pt,Be=Ft-Qt,jt=St+($-Qt),Nt=Dt*Y/ie*ae,qe=gt*Y/ie*ae;D.projectionMatrix.makePerspective(Be,jt,Nt,qe,ae,ie)}function U(D,O){O===null?D.matrixWorld.copy(D.matrix):D.matrixWorld.multiplyMatrices(O.matrixWorld,D.matrix),D.matrixWorldInverse.copy(D.matrixWorld).invert()}this.updateCamera=function(D){if(i===null)return;S.near=_.near=v.near=D.near,S.far=_.far=v.far=D.far,(C!==S.near||y!==S.far)&&(i.updateRenderState({depthNear:S.near,depthFar:S.far}),C=S.near,y=S.far);let O=D.parent,et=S.cameras;U(S,O);for(let nt=0;nt0&&(p.alphaTest.value=d.alphaTest);let g=t.get(d).envMap;if(g&&(p.envMap.value=g,p.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=d.reflectivity,p.ior.value=d.ior,p.refractionRatio.value=d.refractionRatio),d.lightMap){p.lightMap.value=d.lightMap;let _=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=d.lightMapIntensity*_}d.aoMap&&(p.aoMap.value=d.aoMap,p.aoMapIntensity.value=d.aoMapIntensity);let M;d.map?M=d.map:d.specularMap?M=d.specularMap:d.displacementMap?M=d.displacementMap:d.normalMap?M=d.normalMap:d.bumpMap?M=d.bumpMap:d.roughnessMap?M=d.roughnessMap:d.metalnessMap?M=d.metalnessMap:d.alphaMap?M=d.alphaMap:d.emissiveMap?M=d.emissiveMap:d.clearcoatMap?M=d.clearcoatMap:d.clearcoatNormalMap?M=d.clearcoatNormalMap:d.clearcoatRoughnessMap?M=d.clearcoatRoughnessMap:d.iridescenceMap?M=d.iridescenceMap:d.iridescenceThicknessMap?M=d.iridescenceThicknessMap:d.specularIntensityMap?M=d.specularIntensityMap:d.specularColorMap?M=d.specularColorMap:d.transmissionMap?M=d.transmissionMap:d.thicknessMap?M=d.thicknessMap:d.sheenColorMap?M=d.sheenColorMap:d.sheenRoughnessMap&&(M=d.sheenRoughnessMap),M!==void 0&&(M.isWebGLRenderTarget&&(M=M.texture),M.matrixAutoUpdate===!0&&M.updateMatrix(),p.uvTransform.value.copy(M.matrix));let v;d.aoMap?v=d.aoMap:d.lightMap&&(v=d.lightMap),v!==void 0&&(v.isWebGLRenderTarget&&(v=v.texture),v.matrixAutoUpdate===!0&&v.updateMatrix(),p.uv2Transform.value.copy(v.matrix))}function s(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity}function a(p,d){p.dashSize.value=d.dashSize,p.totalSize.value=d.dashSize+d.gapSize,p.scale.value=d.scale}function o(p,d,g,M){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.size.value=d.size*g,p.scale.value=M*.5,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let v;d.map?v=d.map:d.alphaMap&&(v=d.alphaMap),v!==void 0&&(v.matrixAutoUpdate===!0&&v.updateMatrix(),p.uvTransform.value.copy(v.matrix))}function c(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.rotation.value=d.rotation,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let g;d.map?g=d.map:d.alphaMap&&(g=d.alphaMap),g!==void 0&&(g.matrixAutoUpdate===!0&&g.updateMatrix(),p.uvTransform.value.copy(g.matrix))}function l(p,d){p.specular.value.copy(d.specular),p.shininess.value=Math.max(d.shininess,1e-4)}function h(p,d){d.gradientMap&&(p.gradientMap.value=d.gradientMap)}function f(p,d){p.roughness.value=d.roughness,p.metalness.value=d.metalness,d.roughnessMap&&(p.roughnessMap.value=d.roughnessMap),d.metalnessMap&&(p.metalnessMap.value=d.metalnessMap),t.get(d).envMap&&(p.envMapIntensity.value=d.envMapIntensity)}function u(p,d,g){p.ior.value=d.ior,d.sheen>0&&(p.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),p.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(p.sheenColorMap.value=d.sheenColorMap),d.sheenRoughnessMap&&(p.sheenRoughnessMap.value=d.sheenRoughnessMap)),d.clearcoat>0&&(p.clearcoat.value=d.clearcoat,p.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(p.clearcoatMap.value=d.clearcoatMap),d.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap),d.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),p.clearcoatNormalMap.value=d.clearcoatNormalMap,d.side===ue&&p.clearcoatNormalScale.value.negate())),d.iridescence>0&&(p.iridescence.value=d.iridescence,p.iridescenceIOR.value=d.iridescenceIOR,p.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(p.iridescenceMap.value=d.iridescenceMap),d.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=d.iridescenceThicknessMap)),d.transmission>0&&(p.transmission.value=d.transmission,p.transmissionSamplerMap.value=g.texture,p.transmissionSamplerSize.value.set(g.width,g.height),d.transmissionMap&&(p.transmissionMap.value=d.transmissionMap),p.thickness.value=d.thickness,d.thicknessMap&&(p.thicknessMap.value=d.thicknessMap),p.attenuationDistance.value=d.attenuationDistance,p.attenuationColor.value.copy(d.attenuationColor)),p.specularIntensity.value=d.specularIntensity,p.specularColor.value.copy(d.specularColor),d.specularIntensityMap&&(p.specularIntensityMap.value=d.specularIntensityMap),d.specularColorMap&&(p.specularColorMap.value=d.specularColorMap)}function m(p,d){d.matcap&&(p.matcap.value=d.matcap)}function x(p,d){p.referencePosition.value.copy(d.referencePosition),p.nearDistance.value=d.nearDistance,p.farDistance.value=d.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:n}}function cp(r,t,e,n){let i={},s={},a=[],o=e.isWebGL2?r.getParameter(35375):0;function c(M,v){let _=v.program;n.uniformBlockBinding(M,_)}function l(M,v){let _=i[M.id];_===void 0&&(x(M),_=h(M),i[M.id]=_,M.addEventListener("dispose",d));let b=v.program;n.updateUBOMapping(M,b);let S=t.render.frame;s[M.id]!==S&&(u(M),s[M.id]=S)}function h(M){let v=f();M.__bindingPointIndex=v;let _=r.createBuffer(),b=M.__size,S=M.usage;return r.bindBuffer(35345,_),r.bufferData(35345,b,S),r.bindBuffer(35345,null),r.bindBufferBase(35345,v,_),_}function f(){for(let M=0;M0){S=_%b;let B=b-S;S!==0&&B-L.boundary<0&&(_+=b-S,A.__offset=_)}_+=L.storage}return S=_%b,S>0&&(_+=b-S),M.__size=_,M.__cache={},this}function p(M){let v=M.value,_={boundary:0,storage:0};return typeof v=="number"?(_.boundary=4,_.storage=4):v.isVector2?(_.boundary=8,_.storage=8):v.isVector3||v.isColor?(_.boundary=16,_.storage=12):v.isVector4?(_.boundary=16,_.storage=16):v.isMatrix3?(_.boundary=48,_.storage=48):v.isMatrix4?(_.boundary=64,_.storage=64):v.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",v),_}function d(M){let v=M.target;v.removeEventListener("dispose",d);let _=a.indexOf(v.__bindingPointIndex);a.splice(_,1),r.deleteBuffer(i[v.id]),delete i[v.id],delete s[v.id]}function g(){for(let M in i)r.deleteBuffer(i[M]);a=[],i={},s={}}return{bind:c,update:l,dispose:g}}function lp(){let r=Ms("canvas");return r.style.display="block",r}function hp(r={}){this.isWebGLRenderer=!0;let t=r.canvas!==void 0?r.canvas:lp(),e=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,a=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,o=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;e!==null?h=e.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,u=null,m=[],x=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=On,this.physicallyCorrectLights=!1,this.toneMapping=tn,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});let p=this,d=!1,g=0,M=0,v=null,_=-1,b=null,S=new qt,C=new qt,y=null,A=t.width,L=t.height,B=1,q=null,z=null,I=new qt(0,0,A,L),U=new qt(0,0,A,L),Z=!1,J=new Rs,k=!1,D=!1,O=null,et=new zt,$=new At,nt=new P,at={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function yt(){return v===null?B:1}let Y=e;function Dt(T,F){for(let V=0;V0?u=x[x.length-1]:u=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function $t(T,F,V,N){if(T.visible===!1)return;if(T.layers.test(F.layers)){if(T.isGroup)V=T.renderOrder;else if(T.isLOD)T.autoUpdate===!0&&T.update(F);else if(T.isLight)u.pushLight(T),T.castShadow&&u.pushShadow(T);else if(T.isSprite){if(!T.frustumCulled||J.intersectsSprite(T)){N&&nt.setFromMatrixPosition(T.matrixWorld).applyMatrix4(et);let _t=jt.update(T),wt=T.material;wt.visible&&f.push(T,_t,wt,V,nt.z,null)}}else if((T.isMesh||T.isLine||T.isPoints)&&(T.isSkinnedMesh&&T.skeleton.frame!==Ft.render.frame&&(T.skeleton.update(),T.skeleton.frame=Ft.render.frame),!T.frustumCulled||J.intersectsObject(T))){N&&nt.setFromMatrixPosition(T.matrixWorld).applyMatrix4(et);let _t=jt.update(T),wt=T.material;if(Array.isArray(wt)){let Mt=_t.groups;for(let Lt=0,Tt=Mt.length;Lt0&&wn(W,F,V),N&&ot.viewport(S.copy(N)),W.length>0&&Ut(W,F,V),ut.length>0&&Ut(ut,F,V),_t.length>0&&Ut(_t,F,V),ot.buffers.depth.setTest(!0),ot.buffers.depth.setMask(!0),ot.buffers.color.setMask(!0),ot.setPolygonOffset(!1)}function wn(T,F,V){let N=vt.isWebGL2;O===null&&(O=new sn(1,1,{generateMipmaps:!0,type:gt.has("EXT_color_buffer_half_float")?ki:zn,minFilter:Ns,samples:N&&s===!0?4:0})),p.getDrawingBufferSize($),N?O.setSize($.x,$.y):O.setSize(Nr($.x),Nr($.y));let W=p.getRenderTarget();p.setRenderTarget(O),p.clear();let ut=p.toneMapping;p.toneMapping=tn,Ut(T,F,V),p.toneMapping=ut,pt.updateMultisampleRenderTarget(O),pt.updateRenderTargetMipmap(O),p.setRenderTarget(W)}function Ut(T,F,V){let N=F.isScene===!0?F.overrideMaterial:null;for(let W=0,ut=T.length;W0&&pt.useMultisampledRTT(T)===!1?W=St.get(T).__webglMultisampledFramebuffer:W=Tt,S.copy(T.viewport),C.copy(T.scissor),y=T.scissorTest}else S.copy(I).multiplyScalar(B).floor(),C.copy(U).multiplyScalar(B).floor(),y=Z;if(ot.bindFramebuffer(36160,W)&&vt.drawBuffers&&N&&ot.drawBuffers(T,W),ot.viewport(S),ot.scissor(C),ot.setScissorTest(y),ut){let Mt=St.get(T.texture);Y.framebufferTexture2D(36160,36064,34069+F,Mt.__webglTexture,V)}else if(_t){let Mt=St.get(T.texture),Lt=F||0;Y.framebufferTextureLayer(36160,36064,Mt.__webglTexture,V||0,Lt)}_=-1},this.readRenderTargetPixels=function(T,F,V,N,W,ut,_t){if(!(T&&T.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let wt=St.get(T).__webglFramebuffer;if(T.isWebGLCubeRenderTarget&&_t!==void 0&&(wt=wt[_t]),wt){ot.bindFramebuffer(36160,wt);try{let Mt=T.texture,Lt=Mt.format,Tt=Mt.type;if(Lt!==Fe&&st.convert(Lt)!==Y.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Et=Tt===ki&&(gt.has("EXT_color_buffer_half_float")||vt.isWebGL2&>.has("EXT_color_buffer_float"));if(Tt!==zn&&st.convert(Tt)!==Y.getParameter(35738)&&!(Tt===In&&(vt.isWebGL2||gt.has("OES_texture_float")||gt.has("WEBGL_color_buffer_float")))&&!Et){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}F>=0&&F<=T.width-N&&V>=0&&V<=T.height-W&&Y.readPixels(F,V,N,W,st.convert(Lt),st.convert(Tt),ut)}finally{let Mt=v!==null?St.get(v).__webglFramebuffer:null;ot.bindFramebuffer(36160,Mt)}}},this.copyFramebufferToTexture=function(T,F,V=0){let N=Math.pow(2,-V),W=Math.floor(F.image.width*N),ut=Math.floor(F.image.height*N);pt.setTexture2D(F,0),Y.copyTexSubImage2D(3553,V,0,0,T.x,T.y,W,ut),ot.unbindTexture()},this.copyTextureToTexture=function(T,F,V,N=0){let W=F.image.width,ut=F.image.height,_t=st.convert(V.format),wt=st.convert(V.type);pt.setTexture2D(V,0),Y.pixelStorei(37440,V.flipY),Y.pixelStorei(37441,V.premultiplyAlpha),Y.pixelStorei(3317,V.unpackAlignment),F.isDataTexture?Y.texSubImage2D(3553,N,T.x,T.y,W,ut,_t,wt,F.image.data):F.isCompressedTexture?Y.compressedTexSubImage2D(3553,N,T.x,T.y,F.mipmaps[0].width,F.mipmaps[0].height,_t,F.mipmaps[0].data):Y.texSubImage2D(3553,N,T.x,T.y,_t,wt,F.image),N===0&&V.generateMipmaps&&Y.generateMipmap(3553),ot.unbindTexture()},this.copyTextureToTexture3D=function(T,F,V,N,W=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let ut=T.max.x-T.min.x+1,_t=T.max.y-T.min.y+1,wt=T.max.z-T.min.z+1,Mt=st.convert(N.format),Lt=st.convert(N.type),Tt;if(N.isData3DTexture)pt.setTexture3D(N,0),Tt=32879;else if(N.isDataArrayTexture)pt.setTexture2DArray(N,0),Tt=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Y.pixelStorei(37440,N.flipY),Y.pixelStorei(37441,N.premultiplyAlpha),Y.pixelStorei(3317,N.unpackAlignment);let Et=Y.getParameter(3314),kt=Y.getParameter(32878),Sn=Y.getParameter(3316),Xn=Y.getParameter(3315),Yn=Y.getParameter(32877),Ue=V.isCompressedTexture?V.mipmaps[0]:V.image;Y.pixelStorei(3314,Ue.width),Y.pixelStorei(32878,Ue.height),Y.pixelStorei(3316,T.min.x),Y.pixelStorei(3315,T.min.y),Y.pixelStorei(32877,T.min.z),V.isDataTexture||V.isData3DTexture?Y.texSubImage3D(Tt,W,F.x,F.y,F.z,ut,_t,wt,Mt,Lt,Ue.data):V.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Y.compressedTexSubImage3D(Tt,W,F.x,F.y,F.z,ut,_t,wt,Mt,Ue.data)):Y.texSubImage3D(Tt,W,F.x,F.y,F.z,ut,_t,wt,Mt,Lt,Ue),Y.pixelStorei(3314,Et),Y.pixelStorei(32878,kt),Y.pixelStorei(3316,Sn),Y.pixelStorei(3315,Xn),Y.pixelStorei(32877,Yn),W===0&&N.generateMipmaps&&Y.generateMipmap(Tt),ot.unbindTexture()},this.initTexture=function(T){T.isCubeTexture?pt.setTextureCube(T,0):T.isData3DTexture?pt.setTexture3D(T,0):T.isDataArrayTexture||T.isCompressedArrayTexture?pt.setTexture2DArray(T,0):pt.setTexture2D(T,0),ot.unbindTexture()},this.resetState=function(){g=0,M=0,v=null,ot.reset(),X.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var Kr=class extends hp{};Kr.prototype.isWebGL1Renderer=!0;function gn(r,t,e){return nc(r)?new r.constructor(r.subarray(t,e!==void 0?e:r.length)):r.slice(t,e)}function gs(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function nc(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var vi=class{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let a;e:{i:if(!(t=s)){let o=e[1];t=s)break t}a=n,n=0;break e}break n}for(;n>>1;te;)--a;if(++a,s!==0||a!==i){s>=a&&(a=Math.max(a,1),s=a-1);let o=this.getValueSize();this.times=gn(n,s,a),this.values=gn(this.values,s*o,a*o)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let o=0;o!==s;o++){let c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),t=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),t=!1;break}a=c}if(i!==void 0&&nc(i))for(let o=0,c=i.length;o!==c;++o){let l=i[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}return t}optimize(){let t=gn(this.times),e=gn(this.values),n=this.getValueSize(),i=this.getInterpolation()===tr,s=t.length-1,a=1;for(let o=1;o0){t[a]=t[s];for(let o=s*n,c=a*n,l=0;l!==n;++l)e[c+l]=e[o+l];++a}return a!==t.length?(this.times=gn(t,0,a),this.values=gn(e,0,a*n)):(this.times=t,this.values=e),this}clone(){let t=gn(this.times,0),e=gn(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}};Oe.prototype.TimeBufferType=Float32Array;Oe.prototype.ValueBufferType=Float32Array;Oe.prototype.DefaultInterpolation=vs;var Vn=class extends Oe{};Vn.prototype.ValueTypeName="bool";Vn.prototype.ValueBufferType=Array;Vn.prototype.DefaultInterpolation=ys;Vn.prototype.InterpolantFactoryMethodLinear=void 0;Vn.prototype.InterpolantFactoryMethodSmooth=void 0;var eo=class extends Oe{};eo.prototype.ValueTypeName="color";var no=class extends Oe{};no.prototype.ValueTypeName="number";var io=class extends vi{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){let s=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-e)/(i-e),l=t*o;for(let h=l+o;l!==h;l+=4)yn.slerpFlat(s,0,a,l-o,a,l,c);return s}},Hi=class extends Oe{InterpolantFactoryMethodLinear(t){return new io(this.times,this.values,this.getValueSize(),t)}};Hi.prototype.ValueTypeName="quaternion";Hi.prototype.DefaultInterpolation=vs;Hi.prototype.InterpolantFactoryMethodSmooth=void 0;var Hn=class extends Oe{};Hn.prototype.ValueTypeName="string";Hn.prototype.ValueBufferType=Array;Hn.prototype.DefaultInterpolation=ys;Hn.prototype.InterpolantFactoryMethodLinear=void 0;Hn.prototype.InterpolantFactoryMethodSmooth=void 0;var so=class extends Oe{};so.prototype.ValueTypeName="vector";var co="\\\\[\\\\]\\\\.:\\\\/",up=new RegExp("["+co+"]","g"),lo="[^"+co+"]",fp="[^"+co.replace("\\\\.","")+"]",dp=/((?:WC+[\\/:])*)/.source.replace("WC",lo),pp=/(WCOD+)?/.source.replace("WCOD",fp),mp=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",lo),gp=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",lo),xp=new RegExp("^"+dp+pp+mp+gp+"$"),_p=["material","materials","bones","map"],ro=class{constructor(t,e,n){let i=n||It.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},It=class{constructor(t,e,n){this.path=e,this.parsedPath=n||It.parseTrackName(e),this.node=It.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new It.Composite(t,e,n):new It(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(up,"")}static parseTrackName(t){let e=xp.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);_p.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){let n=function(s){for(let a=0;ae&&(e=i,t=n)}return t}function uo(r,t){t.set(r)}function fo(r,t,e){let n,i;for(let s=0;s<3;s++){let a=s+3;n=r[s],i=t[s],e[s]=ni?n:i}}function Wi(r,t,e){for(let n=0;n<3;n++){let i=t[r+2*n],s=t[r+2*n+1],a=i-s,o=i+s;ae[n+3]&&(e[n+3]=o)}}function bi(r){let t=r[3]-r[0],e=r[4]-r[1],n=r[5]-r[2];return 2*(t*e+e*n+n*t)}function Mp(r,t){if(!r.index){let e=r.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,i;e>65535?i=new Uint32Array(new n(4*e)):i=new Uint16Array(new n(2*e)),r.setIndex(new Xt(i,1));for(let s=0;si-s);for(let i=0;ic&&(c=C),g&&_x&&(x=_);let y=r[M+2],A=r[M+3],L=y-A,B=y+A;Ll&&(l=B),g&&yp&&(p=y);let q=r[M+4],z=r[M+5],I=q-z,U=q+z;Ih&&(h=U),g&&qd&&(d=q)}n[0]=s,n[1]=a,n[2]=o,n[3]=c,n[4]=l,n[5]=h,g&&(i[0]=f,i[1]=u,i[2]=m,i[3]=x,i[4]=p,i[5]=d)}function wp(r,t,e,n){let i=1/0,s=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let h=t*6,f=(t+e)*6;ho&&(o=u);let m=r[h+2];mc&&(c=m);let x=r[h+4];xl&&(l=x)}n[0]=i,n[1]=s,n[2]=a,n[3]=o,n[4]=c,n[5]=l}function Sp(r,t,e,n,i){let s=e,a=e+n-1,o=i.pos,c=i.axis*2;for(;;){for(;s<=a&&t[s*6+c]=o;)a--;if(sr.candidate-t.candidate,vn=new Array(on).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),zs=new Float32Array(6);function Ap(r,t,e,n,i,s){let a=-1,o=0;if(s===0)a=ho(t),a!==-1&&(o=(t[a]+t[a+3])/2);else if(s===1)a=ho(r),a!==-1&&(o=Ep(e,n,i,a));else if(s===2){let c=bi(r),l=1.25*i,h=n*6,f=(n+i)*6;for(let u=0;u<3;u++){let m=t[u],d=(t[u+3]-m)/on;if(i=C.candidate?Wi(_,e,C.rightCacheBounds):(Wi(_,e,C.leftCacheBounds),C.count++)}}for(let _=0;_=on&&(S=on-1);let C=vn[S];C.count++,Wi(v,e,C.bounds)}let g=vn[on-1];uo(g.bounds,g.rightCacheBounds);for(let v=on-2;v>=0;v--){let _=vn[v],b=vn[v+1];fo(_.bounds,b.rightCacheBounds,_.rightCacheBounds)}let M=0;for(let v=0;vS&&(S=v),_>S&&(S=_);let C=(S-b)/2,y=g*2;s[m+y+0]=b+C,s[m+y+1]=C+(Math.abs(b)+C)*ic,bt[g+3]&&(t[g+3]=S)}}return s}function Pp(r,t){function e(g){u&&u(g/m)}function n(g,M,v,_=null,b=0){if(!x&&b>=c&&(x=!0,l&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(r))),v<=h||b>=c)return e(M+v),g.offset=M,g.count=v,g;let S=Ap(g.boundingData,_,a,M,v,f);if(S.axis===-1)return e(M+v),g.offset=M,g.count=v,g;let C=Sp(o,a,M,v,S);if(C===M||C===M+v)e(M+v),g.offset=M,g.count=v;else{g.splitAxis=S.axis;let y=new Gn,A=M,L=C-M;g.left=y,y.boundingData=new Float32Array(6),mo(a,A,L,y.boundingData,s),n(y,A,L,s,b+1);let B=new Gn,q=C,z=v-L;g.right=B,B.boundingData=new Float32Array(6),mo(a,q,z,B.boundingData,s),n(B,q,z,s,b+1)}return g}Mp(r,t);let i=new Float32Array(6),s=new Float32Array(6),a=Cp(r,i),o=r.index.array,c=t.maxDepth,l=t.verbose,h=t.maxLeafTris,f=t.strategy,u=t.onProgress,m=r.index.count/3,x=!1,p=[],d=bp(r);if(d.length===1){let g=d[0],M=new Gn;M.boundingData=i,wp(a,g.offset,g.count,s),n(M,g.offset,g.count,s),p.push(M)}else for(let g of d){let M=new Gn;M.boundingData=new Float32Array(6),mo(a,g.offset,g.count,M.boundingData,s),n(M,g.offset,g.count,s),p.push(M)}return p}function oc(r,t){let e=Pp(r,t),n,i,s,a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[u+6]=v/4,v=l(v,g),i[u+7]=M,v}}}var pe=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,i=-1/0;for(let s=0,a=t.length;si?c:i}this.min=n,this.max=i}setFromPoints(t,e){let n=1/0,i=-1/0;for(let s=0,a=e.length;si?c:i}this.min=n,this.max=i}isSeparated(t){return this.min>t.max||t.min>this.max}};pe.prototype.setFromBox=function(){let r=new P;return function(e,n){let i=n.min,s=n.max,a=1/0,o=-1/0;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let h=0;h<=1;h++){r.x=i.x*c+s.x*(1-c),r.y=i.y*l+s.y*(1-l),r.z=i.z*h+s.z*(1-h);let f=e.dot(r);a=Math.min(f,a),o=Math.max(f,o)}this.min=a,this.max=o}}();var Kp=function(){let r=new pe;return function(e,n){let i=e.points,s=e.satAxes,a=e.satBounds,o=n.points,c=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let f=a[h],u=s[h];if(r.setFromPoints(u,o),f.isSeparated(r))return!1}for(let h=0;h<3;h++){let f=l[h],u=c[h];if(r.setFromPoints(u,i),f.isSeparated(r))return!1}}}();var Lp=function(){let r=new P,t=new P,e=new P;return function(i,s,a){let o=i.start,c=r,l=s.start,h=t;e.subVectors(o,l),r.subVectors(i.end,i.start),t.subVectors(s.end,s.start);let f=e.dot(h),u=h.dot(c),m=h.dot(h),x=e.dot(c),d=c.dot(c)*m-u*u,g,M;d!==0?g=(f*u-x*m)/d:g=0,M=(f+g*u)/m,a.x=g,a.y=M}}(),qi=function(){let r=new At,t=new P,e=new P;return function(i,s,a,o){Lp(i,s,r);let c=r.x,l=r.y;if(c>=0&&c<=1&&l>=0&&l<=1){i.at(c,a),s.at(l,o);return}else if(c>=0&&c<=1){l<0?s.at(0,o):s.at(1,o),i.closestPointToPoint(o,!0,a);return}else if(l>=0&&l<=1){c<0?i.at(0,a):i.at(1,a),s.closestPointToPoint(a,!0,o);return}else{let h;c<0?h=i.start:h=i.end;let f;l<0?f=s.start:f=s.end;let u=t,m=e;if(i.closestPointToPoint(f,!0,t),s.closestPointToPoint(h,!0,e),u.distanceToSquared(f)<=m.distanceToSquared(h)){a.copy(u),o.copy(f);return}else{a.copy(h),o.copy(m);return}}}}(),ac=function(){let r=new P,t=new P,e=new be,n=new de;return function(s,a){let{radius:o,center:c}=s,{a:l,b:h,c:f}=a;if(n.start=l,n.end=h,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o||(n.start=l,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o)||(n.start=h,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o))return!0;let p=a.getPlane(e);if(Math.abs(p.distanceToPoint(c))<=o){let g=p.projectPoint(c,t);if(a.containsPoint(g))return!0}return!1}}();var Rp=1e-15;function wi(r){return Math.abs(r)new P),this.satBounds=new Array(4).fill().map(()=>new pe),this.points=[this.a,this.b,this.c],this.sphere=new Bn,this.plane=new be,this.needsUpdate=!0}intersectsSphere(t){return ac(t,this)}update(){let t=this.a,e=this.b,n=this.c,i=this.points,s=this.satAxes,a=this.satBounds,o=s[0],c=a[0];this.getNormal(o),c.setFromPoints(o,i);let l=s[1],h=a[1];l.subVectors(t,e),h.setFromPoints(l,i);let f=s[2],u=a[2];f.subVectors(e,n),u.setFromPoints(f,i);let m=s[3],x=a[3];m.subVectors(n,t),x.setFromPoints(m,i),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}};me.prototype.closestPointToSegment=function(){let r=new P,t=new P,e=new de;return function(i,s=null,a=null){let{start:o,end:c}=i,l=this.points,h,f=1/0;for(let u=0;u<3;u++){let m=(u+1)%3;e.start.copy(l[u]),e.end.copy(l[m]),qi(e,i,r,t),h=r.distanceToSquared(t),h1-1e-10){let M=this.satBounds,v=this.satAxes;e[0]=m.a,e[1]=m.b,e[2]=m.c;for(let S=0;S<4;S++){let C=M[S],y=v[S];if(n.setFromPoints(y,e),C.isSeparated(n))return!1}let _=m.satBounds,b=m.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let S=0;S<4;S++){let C=_[S],y=b[S];if(n.setFromPoints(y,t),C.isSeparated(n))return!1}for(let S=0;S<4;S++){let C=v[S];for(let y=0;y<4;y++){let A=b[y];if(s.crossVectors(C,A),n.setFromPoints(s,t),i.setFromPoints(s,e),n.isSeparated(i))return!1}}return x&&(p||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),x.start.set(0,0,0),x.end.set(0,0,0)),!0}else{let M=this.points,v=!1,_=0;for(let I=0;I<3;I++){let U=M[I],Z=M[(I+1)%3];l.start.copy(U),l.end.copy(Z),l.delta(a);let J=v?h.start:h.end,k=wi(g.distanceToPoint(U));if(wi(g.normal.dot(a))&&k){h.copy(l),_=2;break}if((g.intersectLine(l,J)||k)&&!wi(J.distanceTo(Z))){if(_++,v)break;v=!0}}if(_===1&&m.containsPoint(h.end))return x&&(x.start.copy(h.end),x.end.copy(h.end)),!0;if(_!==2)return!1;let b=m.points,S=!1,C=0;for(let I=0;I<3;I++){let U=b[I],Z=b[(I+1)%3];l.start.copy(U),l.end.copy(Z),l.delta(o);let J=S?f.start:f.end,k=wi(d.distanceToPoint(U));if(wi(d.normal.dot(o))&&k){f.copy(l),C=2;break}if((d.intersectLine(l,J)||k)&&!wi(J.distanceTo(Z))){if(C++,S)break;S=!0}}if(C===1&&this.containsPoint(f.end))return x&&(x.start.copy(f.end),x.end.copy(f.end)),!0;if(C!==2)return!1;if(h.delta(a),f.delta(o),a.dot(o)<0){let I=f.start;f.start=f.end,f.end=I}let y=h.start.dot(a),A=h.end.dot(a),L=f.start.dot(a),B=f.end.dot(a),q=A0?x.start.copy(h.start):x.start.copy(f.start),c.subVectors(h.end,f.end),c.dot(a)<0?x.end.copy(h.end):x.end.copy(f.end)),!0)}}}();me.prototype.distanceToPoint=function(){let r=new P;return function(e){return this.closestPointToPoint(e,r),e.distanceTo(r)}}();me.prototype.distanceToTriangle=function(){let r=new P,t=new P,e=["a","b","c"],n=new de,i=new de;return function(a,o=null,c=null){let l=o||c?n:null;if(this.intersectsTriangle(a,l))return(o||c)&&(o&&l.getCenter(o),c&&l.getCenter(c)),0;let h=1/0;for(let f=0;f<3;f++){let u,m=e[f],x=a[m];this.closestPointToPoint(x,r),u=x.distanceToSquared(r),unew P),this.satAxes=new Array(3).fill().map(()=>new P),this.satBounds=new Array(3).fill().map(()=>new pe),this.alignedSatBounds=new Array(3).fill().map(()=>new pe),this.needsUpdate=!1,t&&this.min.copy(t),e&&this.max.copy(e),n&&this.matrix.copy(n)}set(t,e,n){this.min.copy(t),this.max.copy(e),this.matrix.copy(n),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};ge.prototype.update=function(){return function(){let t=this.matrix,e=this.min,n=this.max,i=this.points;for(let l=0;l<=1;l++)for(let h=0;h<=1;h++)for(let f=0;f<=1;f++){let u=1*l|2*h|4*f,m=i[u];m.x=l?n.x:e.x,m.y=h?n.y:e.y,m.z=f?n.z:e.z,m.applyMatrix4(t)}let s=this.satBounds,a=this.satAxes,o=i[0];for(let l=0;l<3;l++){let h=a[l],f=s[l],u=1<new de),e=new Array(12).fill().map(()=>new de),n=new P,i=new P;return function(a,o=0,c=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(c||l)&&(a.getCenter(i),this.closestPointToPoint(i,n),a.closestPointToPoint(n,i),c&&c.copy(n),l&&l.copy(i)),0;let h=o*o,f=a.min,u=a.max,m=this.points,x=1/0;for(let d=0;d<8;d++){let g=m[d];i.copy(g).clamp(f,u);let M=g.distanceToSquared(i);if(M=0,m,x;u?(m=Ai(r),x=Ei(r,o)):(m=Ei(r,o),x=Ai(r));let d=qs(m,s,n,Hs)?Ws(m,t,e,n):null;if(d){let v=d.point[h];if(u?v<=s[x+l]:v>=s[x+l+3])return d}let M=qs(x,s,n,Hs)?Ws(x,t,e,n):null;return d&&M?d.distance<=M.distance?d:M:d||M||null}}var mc=function(){let r,t,e=[],n=new Si(()=>new oe);return function(...a){r=n.getPrimitive(),t=n.getPrimitive(),e.push(r,t);let o=i(...a);n.releasePrimitive(r),n.releasePrimitive(t),e.pop(),e.pop();let c=e.length;return c>0&&(t=e[c-1],r=e[c-2]),o};function i(s,a,o,c,l=null,h=0,f=0){function u(v){let _=v*2,b=Mn,S=bn;for(;!an(_,b);)v=Ai(v),_=v*2;return Wn(v,S)}function m(v){let _=v*2,b=Mn,S=bn;for(;!an(_,b);)v=Ei(v,S),_=v*2;return Wn(v,S)+Ti(_,b)}let x=s*2,p=Pi,d=Mn,g=bn;if(an(x,d)){let v=Wn(s,g),_=Ti(x,d);return Ce(s,p,r),c(v,_,!1,f,h+s,r)}else{let v=Ai(s),_=Ei(s,g),b=v,S=_,C,y,A,L;if(l&&(A=r,L=t,Ce(b,p,A),Ce(S,p,L),C=l(A),y=l(L),yi.intersectsBox(y),intersectsTriangle:y=>{y.a.applyMatrix4(l),y.b.applyMatrix4(l),y.c.applyMatrix4(l),y.needsUpdate=!0;for(let A=b*3,L=(S+b)*3;Anew me),We=class{static serialize(t,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),We.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=Ji({cloneBuffers:!0},e);let n=t.geometry,i=t._roots,s=n.getIndex(),a;return e.cloneBuffers?a={roots:i.map(o=>o.slice()),index:s.array.slice()}:a={roots:i,index:s.array},a}static deserialize(t,e,n={}){if(typeof n=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),We.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});n=Ji({setIndex:!0},n);let{index:i,roots:s}=t,a=new We(e,Co(Ji({},n),{[vo]:!0}));if(a._roots=s,n.setIndex){let o=e.getIndex();if(o===null){let c=new Xt(t.index,1,!1);e.setIndex(c)}else o.array!==i&&(o.array.set(i),o.needsUpdate=!0)}return a}constructor(t,e={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[vo]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[vo]||(this._roots=oc(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new oe))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));let e=this.geometry,n=e.index.array,i=e.attributes.position,s,a,o,c,l=0,h=this._roots;for(let u=0,m=h.length;uS&&(S=q),z<_&&(_=z),z>C&&(C=z),Iy&&(y=I)}return c[u+0]!==v||c[u+1]!==_||c[u+2]!==b||c[u+3]!==S||c[u+4]!==C||c[u+5]!==y?(c[u+0]=v,c[u+1]=_,c[u+2]=b,c[u+3]=S,c[u+4]=C,c[u+5]=y,!0):!1}else{let g=u+8,M=a[u+6],v=g+m,_=M+m,b=x,S=!1,C=!1;t?b||(S=t.has(v),C=t.has(_),b=!S&&!C):(S=!0,C=!0);let y=b||S,A=b||C,L=!1;y&&(L=f(g,m,b));let B=!1;A&&(B=f(M,m,b));let q=L||B;if(q)for(let z=0;z<3;z++){let I=g+z,U=M+z,Z=c[I],J=c[I+3],k=c[U],D=c[U+3];c[u+z]=ZD?J:D}return q}}}traverse(t,e=0){let n=this._roots[e],i=new Uint32Array(n),s=new Uint16Array(n);a(0);function a(o,c=0){let l=o*2,h=s[l+15]===65535;if(h){let f=i[o+6],u=s[l+14];t(c,h,new Float32Array(n,o*4,6),f,u)}else{let f=o+32/4,u=i[o+6],m=i[o+7];t(c,h,new Float32Array(n,o*4,6),m)||(a(f,c+1),a(u,c+1))}}}raycast(t,e=nn){let n=this._roots,i=this.geometry,s=[],a=e.isMaterial,o=Array.isArray(e),c=i.groups,l=a?e.side:e;for(let h=0,f=n.length;h{let g=x*3;return u(m,g,g+1,g+2,p,d)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let s=Ge.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){let u=c;c=(m,x,p,d,g)=>u(m,x,p,d,g)?!0:_o(m,x,i,l,p,d,s)}else c||(l?c=(u,m,x,p)=>_o(u,m,i,l,x,p,s):c=(u,m,x)=>x);let h=!1,f=0;for(let u of this._roots){if(Li(u),h=mc(0,i,o,c,a,f),Xi(),h)break;f+=u.byteLength}return Ge.releasePrimitive(s),h}bvhcast(t,e,n){let{intersectsRanges:i,intersectsTriangles:s}=n,a=this.geometry.index,o=this.geometry.attributes.position,c=t.geometry.index,l=t.geometry.attributes.position;Ri.copy(e).invert();let h=Ge.getPrimitive(),f=Ge.getPrimitive();if(s){let m=function(x,p,d,g,M,v,_,b){for(let S=d,C=d+g;Sbo.intersectsBox(m),intersectsRange:(m,x,p,d,g,M)=>(Mo.copy(M),Mo.applyMatrix4(Ri),t.shapecast({intersectsBounds:v=>Mo.intersectsBox(v),intersectsRange:(v,_,b,S,C)=>i(m,x,v,_,d,g,S,C)}))});return Ge.releasePrimitive(h),Ge.releasePrimitive(f),u}intersectsBox(t,e){return qn.set(t.min,t.max,e),qn.needsUpdate=!0,this.shapecast({intersectsBounds:n=>qn.intersectsBox(n),intersectsTriangle:n=>qn.intersectsTriangle(n)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},i={},s=0,a=1/0){t.boundingBox||t.computeBoundingBox(),qn.set(t.boundingBox.min,t.boundingBox.max,e),qn.needsUpdate=!0;let o=this.geometry,c=o.attributes.position,l=o.index,h=t.attributes.position,f=t.index,u=Ge.getPrimitive(),m=Ge.getPrimitive(),x=Xs,p=zp,d=null,g=null;i&&(d=Op,g=Bp);let M=1/0,v=null,_=null;return Ri.copy(e).invert(),Yi.matrix.copy(Ri),this.shapecast({boundsTraverseOrder:b=>qn.distanceToBox(b),intersectsBounds:(b,S,C)=>C{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:C=>Yi.distanceToBox(C),intersectsBounds:(C,y,A)=>A{for(let A=C*3,L=(C+y)*3;A(Zi.copy(t).clamp(h.min,h.max),Zi.distanceToSquared(t)),intersectsBounds:(h,f,u)=>u{h.closestPointToPoint(t,Zi);let u=t.distanceToSquared(Zi);return u{Ce(0,new Float32Array(n),xc),t.union(xc)}),t}};var wo=self;wo.addEventListener("message",async function({data:r}){let t=performance.now();function e(o){let c=performance.now();(c-t>=10||o===1)&&(postMessage({error:void 0,serialized:void 0,position:void 0,progress:o}),t=c)}let{id:n,index:i,position:s,options:a}=r;try{let o=new ze;if(o.setAttribute("position",new Xt(s,3,!1)),i&&o.setIndex(new Xt(i,1,!1)),a.includedProgressCallback&&(a.onProgress=e),a.groups){let h=a.groups;for(let f in h){let u=h[f];o.addGroup(u.start,u.count,u.materialIndex)}}let c=new We(o,a),l=We.serialize(c,{cloneBuffers:!1});wo.postMessage({id:n,error:void 0,serialized:l,position:s,progress:1},[l.index.buffer,s.buffer,...l.roots])}catch(o){wo.postMessage({id:n,error:o,serialized:void 0,position:void 0,progress:1})}});\n/*! Bundled license information:\n\nthree/build/three.module.js:\n (**\n * @license\n * Copyright 2010-2022 Three.js Authors\n * SPDX-License-Identifier: MIT\n *)\n*/\n',"isRunning","generate","[GenerateMeshBVHWorker] Already running job.","[GenerateMeshBVHWorker] Worker has been disposed.","[GenerateMeshBVHWorker] ","serialized","transferred","after update, index:","saveOriginalIndex","workers","hardwareConcurrency","[BVHHelper] Already running job.","startIndex: ","allSettled","createMeshBvhSync","TIMEOUT","timeout","INTERVAL","interval","timeoutMap","setIdMap","intervalMap","clearInterval","mouseDown","mouseMove","mouseDownPositionX","mouseDownPositionY","tempEnableRotate","setRectDomVisible","isActived","actived","activate","tempKey","deactivate","pickPositionByScreenPoint","handleZoomToRect","zoomToBBox","drawRect","rectDom","position: absolute;border: ","BORDER_WIDTH"," solid ","BORDER_COLOR","inline-block","needsFrustumCulled","snapType","snapLineVisible","drawSnapFunctions","drawDot","drawSquare","drawCross","setSnapLineVisible","osnapInfo","drawSnapLine","LINE_COLOR","LINE_WIDTH","drawDebug","SNAP_LINE_COLOR","SNAP_ICON_SIZE","rect","SnapDrawable","rgba(255, 240, 0, 0.8)","rgba(135, 206, 250, 0.5)","rgba(255, 240, 0, 0.3)","_registerDrawableClass","markers","activeOSnapType","snapTolerance","initOSnapMarkers","drawableList","updateSnapTolerance","getMarker","activateMarker","getInteractionLines","getSnapInfo","getFootOfPerpendicular","Area","tempEdgeMaterial","mouseDowned","lastMoveEvent","handleSnap","[BaseMeasurement] this.handleSnap costs ","snapPoint","onMouseClick","dblclick","getIntersections","[BaseMeasurement] The count of raycastable object is ","drawList","osnapHelper","isMeasuring","measure-tooltip","Tooltip.measure","pointerEvents","setTooltipContent","currentMeasureDrawable","drawingPoints","lastMouseDownPosition","clearClickedDrawable","clickedOnMeasurementDrawable","lastClickTime","getDrawableByPosition","intersects edge: ","is3d","getIntersectsOutline","[BaseMeasurement] filteredIntersections:","MAX_DISTANCE","labelBounds","drawing","setDrawingState","drawPoints","MAJOR_COLOR","POINT_RADIUS","label","labelPositon","LABEL_FONT_SIZE","px Arial","MINOR_COLOR","arcTo","AREA_FILL_COLOR","getUnitString","rgba(249, 157, 11, 0.9)","rgb(255, 255, 255)","rgba(249, 157, 11, 0.3)","calculateAngle","getAngleBisector","firstpointpicked","createOrUpdateAngleMeasureDrawable","arePointsCoplanar","isSelfIntersecting","calculateArea","getBarycenter","createOrUpdateAreaMeasureDrawable","[Measure] If the number of points is less than 3, the measurement area cannot be formed !","[Measure] The area formed by these points intersects itself, so the correct measurement cannot be obtained !","[Measure] No intersection found!","[Measure] The position is not coplanar with other points","createOrUpdatePointMarker","drawVerticalLine","getShortLineBySegments","createOrUpdateDistanceMeasureDrawable","history","maxCount","addRecord","undo","payload","removeMeasurementById","REMOVE","createMeasurement","addMeasurement","redo","selectedMeasurementDrawable","measure","measurements","[BaseMeasurement] this.raycaster.intersectObjects costs ","intersects: ","getActiveMeasurementType","Delete","removeMeasurement","activeMeasurementType","KeyZ","KeyY","initEvents","selectMeasurement","clickedonmeasurement","getPixelSizeInWorldCoord","[BaseMeasurement] Missing viewer.container","cameraCfg","undoRedoHelper","activateMeasurement","unselectMeasurement","isMeasurementActive","getDrawableDatas","setMeasurementsData","[Measure] Invalid points found in MeasurementData:","[Measure] Failed to add measurement data for","setMeasurementsVisibility","clearMeasurements","selectMeasurementById","clearUndoRedo","isCSS3DObject","draggable","transformStyle","scale(",")translate(","translateZ(","px)","translate(","matrix3d(","rotation2D","#2C7BE5","NavCube.front","NavCube.right","NavCube.back","NavCube.left","NavCube.top","NavCube.bottom","NAVCUBE_SIZE","clickHandler","createEdge","createCorner","navcube-plane","outer","inner","mouseenter","getElementsByClassName","group-","borderTop","px solid ","#efefef","borderLeft","px solid transparent","borderRight","navcube-corner-plane","css3d-navcube","hostViewer","navCube","setHostViewer","\n varying vec2 vUv;\n void main( void ) {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }","video","webcam","mediaDevices","getUserMedia","srcObject","onloadedmetadata","playsinline","webcamCanvas","shaderMaterial","getShaderMaterial","readyState","canvasCtx","webcamTexture","loaded3dTiles","composerRenderEnabled","savedMaterialsForOpacity","raf","renderEnabled","isFrustumInsectChecking","lastFrameExecuteTime","maxFps","twoDModelCount","timeoutSymbol","[BimViewer] '","' is loaded in ","s, adding to scene...","addLoadedModelToScene","updateOrbPoint","lastOrbPoint","[BimViewer]","viewerCfg:","increaseJobCount","keyup","KeyR","flyToRandomObject","decreaseJobCount","initSpinner","initCamera","initControls","initLights","enableDatGui","enableAxisGizmo","axes","initAxes","enableToolbar","initToolbar","initBottomBar","initNavCube","enableContextMenu","contextMenu","initContextMenu","perspectiveCamera","orthoCamera","KeyD","KeyE","KeyA","orthoCameraConrols","addEvent","initRotateToCursor","createAnchor","onAnchorPointerUp","onControlsChange","KeyW","KeyS","KeyT","handleMouseClick","sun","directionalLightHelper","shadowCameraHelper","hemisphereLight","dynamicallyUpdateControllerTarget","section","mouseDoubleClicked","measurementManager","flyToSelectedObject","datGui","enableSpinner","bim-viewer-spinner","spinner","initOthers","createGrassGround","enableWebCam","enableComposer","enableSsaaPass","outlineWidth","axesRenderer","axesInScene","initStats","statsOutput","toolbarMenuConfig","has2dModel","getAllIntersections","[BimViewer] showContextMenu intersections = ","handleRightClick","showContextMenu","sycnCameraPosition","sycnControls","perspectiveCameraControls","composer","update3dTiles","frustrumCullingByModelBBox","_visible","userConfigVisibility","webcamPlane","effectFxaaPass","saoPass","ssaoPass","outlinePass","disposeRotateToCursor","zoomToRect","Error loading ","applyOptionsAndAddToScene","loadModel","fileFormat","[BimViewer] Can't get the correct bounding box of 3dTiles '","[BimViewer] 3dTiles '","' is loaded more than once!","tryAdjustDirectionalLight","regenSkyOfGradientRamp","regenGroundGrid","' to scene in ","createMeshBvhAsync","[BimViewer] Creates mesh bvh cost ","[BimViewer] Added '","hasTransparentObject","vertexNormalsHelpers","BIM_VIEWER_BOX_HELPER","getRaycastableObjects","[BimViewer] getIntersections costs ","originalMatrix","clonedMesh","Cloned mesh for highlighting","[BimViewer] Clicked on merged mesh(id: "," Original mesh batchId: ","cloneGeometryForBatch","flyToObjects","[BimViewer] Flying to random object: ",", type: ","tryAdjustCameraNearAndFar","[BimViewer] BBox's longest side is: ","[BimViewer] camera.near(",") shouldn't bigger than ","[BimViewer] camera.far(",", will change it!","[BimViewer] this.directionalLight.position","[BimViewer] this.directionalLight.target.position","updateDirectionalLightShadow","setAnchorPosition","anchor active","disposeAnchor","ssaaRenderPass","bloomPass","unrealBloomPass","[BimViewer] No object to section!","disableSection","deactivateZoomToRect","disableWebCam","setEnvironment","setEnvironmentFromDataArray","takeObjectsScreenshot","renderer is undefined","UniqueId","setSpinnerVisibility","updateProjectSettings","scrollLeft","model-layout-switch-bar-content","resetActivate","resetActive","activechange","activateLayout","innerText","progresseItems","progress-bar","setVisibility","addProgressItem","progress-bar-item","removeProgressItem","delayRemoveProgressItem","setEditPointColor","drawArrowLine","drawArrowHead","isPointOnLineSegments","getControlPointByTwoPoints","calculateWidthAndHeight","radiusX","radiusY","PolylineMarkup","fontSize","textRow","formatText","lineText","setFontSize","updateText","Add","getMarkupById","addMarkup","updateMarkup","createMarkup","removeMarkup","Update","markup","tempPoints","pickThreejsPositionByMouse","creatingShape","isDrawing","endDraw","selectedShape","textInput","isCreateTextMode","textInitialPosition","addInput","isCreateLineMode","isCreateDotMode","drawShape","isEditing","initialDataForEditing","isCreateShapeMode","drawLine","cancelDraw","setMarkupsVisibility","isMarkupActive","viewerCanvas","getActiveMarkupType","setDrawType","getLineWidth","getFillColor","getFontSize","endEdit","Remove","removeMarkupById","getMarkupData","textarea","\n position: fixed;\n border: 1px solid red;\n background: transparent;\n outline: none;\n resize: none;\n overflow: hidden;\n z-index: 1000;\n box-sizing: content-box;\n padding: 0px 2px;\n color: ","onkeydown","onkeyup","onfocus","onblur","lineHeight","isShxFile","shx","createCSS2DObject","createDefaultHotpoint","0.8","border","2px solid #00DAB7","50%","createHotpoint","5px 9px","#ffffffdd","rgba(0, 0, 0, 0.3)","tryFindObjectId","setMaterialSection","removeSection","addSection","generateSectionPlanesByBox","generateSectionPlanesByPoints","CAMERA_Z_POSITION","CAMERA_MIN_ZOOM","masterModelId","enableHideVisuallySmallObjects","sortedHidableObjects","lastCameraZoom","activeLayoutName","layoutInfos","units","loadingDxfCount","compareMode","[DxfViewer] Initialized in ","initCSS2DRenderer","initMouseWheel","enableStats","enableProgressBar","loadingProgressBar","initLoadingProgressBar","enableSelection","webgl-renderer","css2d-renderer","onControlsEnd","[DxfViewer] Ignore too frequent mouse wheel:","checkAndGetLimitedCameraZoom","updateHidableObjectsVisibility","showStats","showPanel","dxfLayoutBar","hideLayoutBar","hotpointRoot","fpsUtils","markupManager","raycastableObjects","Before loadModelAsync","ProgressBar.Loading","LoadProgress","[DxfViewer] Loaded '","[DxfViewer] abort load dxf","[DxfViewer] Nothing was loaded from ","getDxfUnits","[DxfViewer] Units of '","' is '","enableLayoutBar","Not implemented yet!","isCompareMode","[DxfViewer] It is already under comparing mode!","[DxfViewer] Should set font first!","ProgressBar.Comparing","CompareProgress","Before comparing","[DxfViewer] Failed to parse ","[DxfViewer] loadFiles in ","[DxfViewer] compare loadFile aborted","[DxfViewer] Compared in ","Compared results:","[DxfViewer] compare change aborted","After Creating threejs objects based on comparison result","[DxfViewer] Creates threejs objects based on comparison result in ","[DxfViewer] No change found"," and ","[DxfViewer] The comparison between ","s !","dxfData","getLayoutNames","getLayouts","handleOverlayDxf","[DxfViewer] Can't find model for modelId '","switchTransformMs","addSpatialFilterSection","calBoundingBoxOfLayoutChild","showLayoutObjects","getLayoutByName","[DxfViewer] Can't find layout of ","[DxfViewer] Can't find master model for modelId '","getActiveLayoutInfo","lastCameraPosition","getLayoutViewports","isLayerFrozenForViewport","[DxfViewer] Failed to find object for modelId '","', layer '","', layout '","getFilteredViewports","[DxfViewer] Active layout:",", viewports:","[DxfViewer] generateObjectsByViewport","generateObjectsByViewport","timeEnd","setLayoutHidableObjectArray","measurementData","markupData","setMarkupData","getLayoutExtentEx","[BimViewer] Got wired bbox, max: ",", min: ",", going to calculate one...","updateGroundPlane","After activated layout '","getLayers","setModelVisibility","Failed to find model by modelId '","setLayerVisibility","' not found from dxfData!","visibleMinZoom","[DxfViewer] No object found for layer '","setLayerColor","Failed to find layer by modelId '","Failed to find layer by layerName '","[DxfViewer] Font file(s) load time","setDisplayLengthUnits","setDisplayPrecision","getMeasurements","getMeasurementsData","setMeasurements","getLayoutInfo","activateMarkup","deactivateMarkup","setLineColor","getMarkupLineColor","getLineColor","setMarkupFillColor","getMarkupFillColor","getMarkupLineWidth","setMarkupFontSize","getMarkupFontSize","setMarkups","clearMarkups","hotpointId","[DxfViewer] Hotpoint with id '","anchorPosition","html","HotpointRoot","removeHotpoint","hotpoint","clearHotpoints","getHitResult","getMsTransformMatrix","viewPort","toLocaleUpperCase","*ACTIVE","msTransformMatrix","[DxfViewer] Can't find model whose modelId is ","getModelSpaceExtent","getLayoutExtent","Header is undefined in ","viewPorts","$EXTMIN","$EXTMAX","$PEXTMIN","$PEXTMAX","') sets "," layout level object(s) to visible and "," to hidden for model '","getObjectsByBoundingBox","setMaterialUniforms","associatedLeafObjectSet","findSpatialFilter","getAnyMaterial","[DxfViewer] Material cannot set clipIntersection to different values at the same time. clipIntersection needs to be set to true here!","DxfData or its header is undefined!","$INSUNITS","[DxfViewer] clipPolyline.bConcave = true is not supported yet in spatialFilter !","Before merge","isLeafObject","[DxfViewer] getRaycastableObjects() finds "," objects","[DxfViewer] getRaycastableObjects() costs ","getViewportByPoint","[DxfViewer] Space coordinates corresponding to the mouse position:","[DxfViewer] getRaycastableObjectsByMouse() from inside of viewport:","[DxfViewer] getRaycastableObjectsByMouse() costs ","[DxfViewer] Clicked at: ","dxfEntity","[DxfViewer] Selected entity:","[DxfViewer] Camera position and lookAt cannot be the same!","[DxfViewer] Invalid position or lookAt!","[DxfViewer] Camera could be too far to see the object!","goTo","[DxfViewer] Failed to find extent for ","zoomToCompareChange","#888","[DxfViewer] Attampting to set camera's zoom value to ",", will use ","setVisibilityByCameraFrustum","[DxfViewer] setVisibilityByCameraFrustum cost: ","smoothstep","[DxfViewer] The size of bbox is 0 ! ","s, ","[DxfViewer] hidableObjects count:",", real count:",", layout count: ",", level:","updateRaycasterThreshold","updateCameraZoomUniform","[DxfViewer] updateHidableObjectsVisibility cost: ","Browser","Browserless","Headless","outlineMaterial","outlineRoot","transparentObjectIds","[SimplifiedBimViewer] '","' is loaded, adding to scene...","getMeshes","glContext","viewerMode","[SimplifiedBimViewer] Initialized","initPointerEvents","isBrowserlessMode","isBrowserMode","containerOrCanvas","[SimplifiedBimViewer] Render target size: "," x ","KeyQ","[SimplifiedBimViewer] Added '","' to scene","[SimplifiedBimViewer] flyTo: ","[SimplifiedBimViewer] BBox's longest side is: ","[SimplifiedBimViewer] camera.near(","[SimplifiedBimViewer] camera.far(",") shouldn't smaller than ","isolateObjects","applyMaterialToObjectById","[BimViewer] No object found with uniqueIds: ","getCameraDirection","isCanceled","cancelReject","thumbnailImages","getMaterials","clearFading","isEqualWith","fadingOutInterval","fadingInInterval","createThumbnailMesh","thumbnailMesh","loadTextures","loadTexturesAsync","destroyMesh","[VRCube24Faces] Wrong number of images! Expected 24, got ","ratio","subPlaneWidth1","subPlaneWidth0","createPlaneOfAFace","[VRSphere] Wrong number of images! Expected 1, got ","viewpoints","previousViewpointId","previousPanoramaId","activeViewpointId","activePanoramaId","viewpointAssetsMap","loadingPanos","controlsHelper","handleDragEnd","setCameraPositionAndDirection","mousewheel","isMousePressing","[VRViewer] Clicked on hotpoint: ","onHotpointClicked","[VRViewer] Clicked at: ",",\n Camera position: ",",\n Target direction: ","icon-loading","css3dRenderer","clearAllCachedPanoramas","creationPromise","enableAutoRotate","fianlCameraPosition","getCameraFov","setViewpoints","handleCameraUpdateInterval","css2dObjects","addPanorama","[VRViewer] Failed to find viewpoint by id '","findPanorama","setHotpointsVisibility","hotpoints","addHotpoints","[VRViewer] Duplicated hotpointId: ","relocateAnchorIfTooCloseToCamera","removeHotpoints","activeViewpointById","activatePanorama","removeCachedPanoramas","getCameraPositionAndDirection","initialDirection","viewpointId","[VRViewer] Panorama with viewpointId="," and panoramaId="," is being created","createBoxByImageOrImages","panoramaId","[VRViewer] Failed to find panorama by id '","thumbnails","[VRViewer] Invalid images!","createBoxByImage","createBoxBy6Images","[VRViewer] Wrong number of images! Expected 1/6/24, got ","createBoxBy24Images","[VRCube] Wrong number of images! Expected 24, got ","finalCameraTarget","lookToPosition","lookTo","Toolbar.markupArrow","icon-arrow","CloudRect","Toolbar.markupRect","iconfont","icon-cloud","Toolbar.markupPolyLine","Toolbar.markupCloudLine","icon-cloud-segment","icon-oval","Toolbar.markupCircle","icon-round","Toolbar.markupDot","Toolbar.markupX","Toolbar.markupText","Toolbar.markupStroke","icon-color-red","oninput","LineWidth","icon-line","toolbar-menu","icon-line-2","setMarkupLineWidth","Toolbar.markupLineWidth2","icon-line-3","Toolbar.markupLineWidth5","icon-line-4","Toolbar.markupLineWidth10","Toolbar.markupFontSize","icon-font14","icon-font18","MarkupClear","icon-eraser","Toolbar.clearMarkup","Toolbar.quitMarkup","HomeView","icon-home","Toolbar.homeView","icon-orthomode","Exit OrthoMode","icon-measure","icon-distancemeasure","icon-distancemeasure-filled","Toolbar.distanceMeasurement","icon-areameasure-filled","Toolbar.areaMeasurement","Toolbar.angleMeasurement","icon-clear","icon-clear-filled","Clearing Measure","icon-section","icon-section-filled","Toolbar.section","icon-sectionplane-filled","Toolbar.axisSection","icon-choosesectionplane-filled","Toolbar.pickSectionPlane","icon-sectionbox","icon-sectionbox-filled","Toolbar.sectionBox","icon-bimtree","icon-bimtree-filled","Toolbar.bimTree","Activate Bim Tree","Deactivate Bim Tree","icon-viewpoint","icon-viewpoint-filled","Deactivate Viewpoint","icon-annotation-filled","Toolbar.annotation","icon-property","icon-property-filled","Activate Property","Deactivate Property","icon-settings","icon-settings-filled","Activate Settings","Deactivate Settings","icon-fullscreen","icon-fullscreen-filled","Toolbar.fullscreen","isFullScreen","icon-zhushitu","icon-kuangxuanfangda","Toolbar.zoomToRectangle","activateZoomToRect","icon-celiang1","Toolbar.measurement","icon-areameasure","icon-anglemeasure","Toolbar.coordinateMeasurement","Toolbar.clearMeasurement","icon-tianjiapizhu","Toolbar.markup","Toolbar.settings","icon-compared","Toolbar.compared","Deactivate Compare","Toolbar.quitCompare","Activate Compare","icon-tucengkongzhi","Toolbar.layers","myCanvas","meters"];return(d=function(){return t})()}var TYPED_ARRAYS={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(t,e){return new TYPED_ARRAYS[t](e)}function createElementNS(t){var e=nz;return document[e(1903)](e(1904),t)}function SRGBToLinear(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function LinearToSRGB(t){return t<.0031308?12.92*t:1.055*Math[nz(428)](t,.41666)-.055}var FN={[SRGBColorSpace]:{[LinearSRGBColorSpace]:SRGBToLinear},[LinearSRGBColorSpace]:{[SRGBColorSpace]:LinearToSRGB}},ColorManagement={legacyMode:!0,get workingColorSpace(){return LinearSRGBColorSpace},set workingColorSpace(t){var e=nz;console.warn(e(1905))},convert:function(t,e,n){var r=nz;if(this[r(1906)]||e===n||!e||!n)return t;if(FN[e]&&void 0!==FN[e][n]){const r=FN[e][n];return t.r=r(t.r),t.g=r(t.g),t.b=r(t.b),t}throw new Error(r(1907))},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){var n=nz;return this.convert(t,e,this[n(1908)])}},_colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_rgb={r:0,g:0,b:0},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function toComponents(t,e){return e.r=t.r,e.g=t.g,e.b=t.b,e}var Color=class{constructor(t,e,n){var r=nz;return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this[r(540)](t):this.setRGB(t,e,n)}[nz(540)](t){var e=nz;return t&&t[e(1909)]?this[e(1867)](t):"number"==typeof t?this[e(1910)](t):typeof t===e(470)&&this[e(1911)](t),this}[nz(1862)](t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=SRGBColorSpace){return t=Math[nz(562)](t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,ColorManagement.toWorkingColorSpace(this,e),this}[nz(1912)](t,e,n,r=LinearSRGBColorSpace){var i=nz;return this.r=t,this.g=e,this.b=n,ColorManagement[i(1913)](this,r),this}[nz(1914)](t,e,n,r=LinearSRGBColorSpace){var i=nz;if(t=euclideanModulo(t,1),e=clamp(e,0,1),n=clamp(n,0,1),0===e)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+e):n+e-n*e,i=2*n-r;this.r=hue2rgb(i,r,t+1/3),this.g=hue2rgb(i,r,t),this.b=hue2rgb(i,r,t-1/3)}return ColorManagement[i(1913)](this,r),this}[nz(1911)](t,e=SRGBColorSpace){var n=nz;function r(e){var n=f;void 0!==e&&parseFloat(e)<1&&console[n(1176)]("THREE.Color: Alpha component of "+t+n(1915))}let i;if(i=/^((?:rgb|hsl)a?)\(([^\)]*)\)/[n(601)](t)){let t;const s=i[1],a=i[2];switch(s){case n(1916):case n(1917):if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math[n(563)](255,parseInt(t[2],10))/255,this.b=Math[n(563)](255,parseInt(t[3],10))/255,ColorManagement.toWorkingColorSpace(this,e),r(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/[n(601)](a))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math[n(563)](100,parseInt(t[2],10))/100,this.b=Math[n(563)](100,parseInt(t[3],10))/100,ColorManagement[n(1913)](this,e),r(t[4]),this;break;case n(1918):case n(1919):if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/[n(601)](a)){const i=parseFloat(t[1])/360,s=parseFloat(t[2])/100,a=parseFloat(t[3])/100;return r(t[4]),this[n(1914)](i,s,a,e)}}}else if(i=/^\#([A-Fa-f\d]+)$/[n(601)](t)){const t=i[1],r=t.length;if(3===r)return this.r=parseInt(t.charAt(0)+t[n(620)](0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t[n(620)](2)+t[n(620)](2),16)/255,ColorManagement[n(1913)](this,e),this;if(6===r)return this.r=parseInt(t.charAt(0)+t[n(620)](1),16)/255,this.g=parseInt(t[n(620)](2)+t[n(620)](3),16)/255,this.b=parseInt(t.charAt(4)+t[n(620)](5),16)/255,ColorManagement[n(1913)](this,e),this}return t&&t[n(449)]>0?this[n(1920)](t,e):this}[nz(1920)](t,e=SRGBColorSpace){var n=nz;const r=_colorKeywords[t[n(570)]()];return void 0!==r?this.setHex(r,e):console[n(1176)](n(1921)+t),this}clone(){return new(this[nz(443)])(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}[nz(1922)](t){return this.r=SRGBToLinear(t.r),this.g=SRGBToLinear(t.g),this.b=SRGBToLinear(t.b),this}[nz(1923)](t){return this.r=LinearToSRGB(t.r),this.g=LinearToSRGB(t.g),this.b=LinearToSRGB(t.b),this}[nz(1924)](){return this[nz(1922)](this),this}[nz(1925)](){return this.copyLinearToSRGB(this),this}[nz(1926)](t=SRGBColorSpace){return ColorManagement[nz(1927)](toComponents(this,_rgb),t),clamp(255*_rgb.r,0,255)<<16^clamp(255*_rgb.g,0,255)<<8^clamp(255*_rgb.b,0,255)<<0}getHexString(t=SRGBColorSpace){var e=nz;return(e(1928)+this[e(1926)](t).toString(16))[e(497)](-6)}[nz(1929)](t,e=LinearSRGBColorSpace){var n=nz;ColorManagement[n(1927)](toComponents(this,_rgb),e);const r=_rgb.r,i=_rgb.g,s=_rgb.b,a=Math[n(486)](r,i,s),o=Math[n(563)](r,i,s);let c,l;const h=(o+a)/2;if(o===a)c=0,l=0;else{const t=a-o;switch(l=h<=.5?t/(a+o):t/(2-a-o),a){case r:c=(i-s)/t+(i2048||n[e(1e3)]>2048?(console[e(1176)](e(1941),t),n.toDataURL(e(1942),.6)):n.toDataURL(e(1943))}static sRGBToLinear(t){var e=nz;if(typeof HTMLImageElement!==e(430)&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==e(430)&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==e(430)&&t instanceof ImageBitmap){const n=createElementNS(e(1939));n[e(999)]=t.width,n[e(1e3)]=t[e(1e3)];const r=n[e(1027)]("2d");r.drawImage(t,0,0,t[e(999)],t[e(1e3)]);const i=r[e(1944)](0,0,t[e(999)],t[e(1e3)]),s=i[e(571)];for(let t=0;t1)switch(this.wrapS){case RepeatWrapping:t.x=t.x-Math.floor(t.x);break;case ClampToEdgeWrapping:t.x=t.x<0?0:1;break;case MirroredRepeatWrapping:1===Math[e(694)](Math[e(562)](t.x)%2)?t.x=Math[e(561)](t.x)-t.x:t.x=t.x-Math[e(562)](t.x)}if(t.y<0||t.y>1)switch(this[e(1957)]){case RepeatWrapping:t.y=t.y-Math[e(562)](t.y);break;case ClampToEdgeWrapping:t.y=t.y<0?0:1;break;case MirroredRepeatWrapping:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math[e(562)](t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){var e=nz;!0===t&&(this[e(521)]++,this[e(556)][e(1948)]=!0)}};Texture[nz(1952)]=null,Texture[nz(1953)]=UVMapping;var Vector4=class{constructor(t=0,e=0,n=0,r=1){var i=nz;Vector4[i(425)][i(1981)]=!0,this.x=t,this.y=e,this.z=n,this.w=r}get[nz(999)](){return this.z}set[nz(999)](t){this.z=t}get height(){return this.w}set height(t){this.w=t}[nz(540)](t,e,n,r){return this.x=t,this.y=e,this.z=n,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}[nz(1982)](t){return this.y=t,this}setZ(t){return this.z=t,this}[nz(1983)](t){return this.w=t,this}[nz(1864)](t,e){var n=nz;switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(n(1865)+t)}return this}[nz(1866)](t){var e=nz;switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(e(1865)+t)}}[nz(1014)](){return new(this[nz(443)])(this.x,this.y,this.z,this.w)}[nz(1867)](t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}[nz(747)](t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}[nz(1869)](t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}[nz(1870)](t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}[nz(1872)](t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}[nz(1558)](t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}[nz(1878)](t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){var e=nz;const n=this.x,r=this.y,i=this.z,s=this.w,a=t[e(1874)];return this.x=a[0]*n+a[4]*r+a[8]*i+a[12]*s,this.y=a[1]*n+a[5]*r+a[9]*i+a[13]*s,this.z=a[2]*n+a[6]*r+a[10]*i+a[14]*s,this.w=a[3]*n+a[7]*r+a[11]*i+a[15]*s,this}[nz(1877)](t){return this.multiplyScalar(1/t)}[nz(1984)](t){var e=nz;this.w=2*Math.acos(t.w);const n=Math[e(761)](1-t.w*t.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/n,this.y=t.y/n,this.z=t.z/n),this}setAxisAngleFromRotationMatrix(t){var e=nz;let n,r,i,s;const a=.01,o=.1,c=t[e(1874)],l=c[0],h=c[4],u=c[8],d=c[1],f=c[5],p=c[9],m=c[2],v=c[6],_=c[10];if(Math[e(694)](h-d)c&&t>g?tg?c=0?1:-1,r=1-e*e;if(r>Number[o(1214)]){const i=Math[o(761)](r),s=Math[o(1883)](i,e*n);t=Math.sin(t*s)/i,a=Math[o(1853)](a*s)/i}const i=a*n;if(c=c*t+d*i,l=l*t+f*i,h=h*t+p*i,u=u*t+m*i,t===1-a){const t=1/Math.sqrt(c*c+l*l+h*h+u*u);c*=t,l*=t,h*=t,u*=t}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=u}static multiplyQuaternionsFlat(t,e,n,r,i,s){const a=n[r],o=n[r+1],c=n[r+2],l=n[r+3],h=i[s],u=i[s+1],d=i[s+2],f=i[s+3];return t[e]=a*f+l*h+o*d-c*u,t[e+1]=o*f+l*u+c*h-a*d,t[e+2]=c*f+l*d+a*u-o*h,t[e+3]=l*f-a*h-o*u-c*d,t}get x(){return this._x}set x(t){var e=nz;this._x=t,this[e(2005)]()}get y(){return this._y}set y(t){var e=nz;this._y=t,this[e(2005)]()}get z(){return this._z}set z(t){var e=nz;this._z=t,this[e(2005)]()}get w(){return this._w}set w(t){var e=nz;this._w=t,this[e(2005)]()}set(t,e,n,r){var i=nz;return this._x=t,this._y=e,this._z=n,this._w=r,this[i(2005)](),this}[nz(1014)](){return new(this[nz(443)])(this._x,this._y,this._z,this._w)}[nz(1867)](t){var e=nz;return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this[e(2005)](),this}setFromEuler(t,e){var n=nz;const r=t._x,i=t._y,s=t._z,a=t[n(2006)],o=Math.cos,c=Math[n(1853)],l=o(r/2),h=o(i/2),u=o(s/2),d=c(r/2),f=c(i/2),p=c(s/2);switch(a){case n(2007):this._x=d*h*u+l*f*p,this._y=l*f*u-d*h*p,this._z=l*h*p+d*f*u,this._w=l*h*u-d*f*p;break;case"YXZ":this._x=d*h*u+l*f*p,this._y=l*f*u-d*h*p,this._z=l*h*p-d*f*u,this._w=l*h*u+d*f*p;break;case n(2008):this._x=d*h*u-l*f*p,this._y=l*f*u+d*h*p,this._z=l*h*p+d*f*u,this._w=l*h*u-d*f*p;break;case n(2009):this._x=d*h*u-l*f*p,this._y=l*f*u+d*h*p,this._z=l*h*p-d*f*u,this._w=l*h*u+d*f*p;break;case n(2010):this._x=d*h*u+l*f*p,this._y=l*f*u+d*h*p,this._z=l*h*p-d*f*u,this._w=l*h*u-d*f*p;break;case n(2011):this._x=d*h*u-l*f*p,this._y=l*f*u-d*h*p,this._z=l*h*p+d*f*u,this._w=l*h*u+d*f*p;break;default:console.warn(n(2012)+a)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){var n=nz;const r=e/2,i=Math.sin(r);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(r),this[n(2005)](),this}[nz(2013)](t){var e=nz;const n=t[e(1874)],r=n[0],i=n[4],s=n[8],a=n[1],o=n[5],c=n[9],l=n[2],h=n[6],u=n[10],d=r+o+u;if(d>0){const t=.5/Math.sqrt(d+1);this._w=.25/t,this._x=(h-c)*t,this._y=(s-l)*t,this._z=(a-i)*t}else if(r>o&&r>u){const t=2*Math[e(761)](1+r-o-u);this._w=(h-c)/t,this._x=.25*t,this._y=(i+a)/t,this._z=(s+l)/t}else if(o>u){const t=2*Math[e(761)](1+o-r-u);this._w=(s-l)/t,this._x=(i+a)/t,this._y=.25*t,this._z=(c+h)/t}else{const t=2*Math[e(761)](1+u-r-o);this._w=(a-i)/t,this._x=(s+l)/t,this._y=(c+h)/t,this._z=.25*t}return this[e(2005)](),this}setFromUnitVectors(t,e){var n=nz;let r=t.dot(e)+1;return rMath[n(694)](t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=r):(this._x=0,this._y=-t.z,this._z=t.y,this._w=r)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=r),this[n(569)]()}[nz(2014)](t){var e=nz;return 2*Math[e(2015)](Math[e(694)](clamp(this[e(1879)](t),-1,1)))}rotateTowards(t,e){var n=nz;const r=this.angleTo(t);if(0===r)return this;const i=Math[n(563)](1,e/r);return this.slerp(t,i),this}[nz(1528)](){return this[nz(540)](0,0,0,1)}[nz(1465)](){return this[nz(2016)]()}[nz(2016)](){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}[nz(1879)](t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}[nz(1881)](){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}[nz(449)](){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}[nz(569)](){var t=nz;let e=this[t(449)]();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this[t(2005)](),this}multiply(t){return this.multiplyQuaternions(this,t)}[nz(2017)](t){return this[nz(2018)](t,this)}multiplyQuaternions(t,e){const n=t._x,r=t._y,i=t._z,s=t._w,a=e._x,o=e._y,c=e._z,l=e._w;return this._x=n*l+s*a+r*c-i*o,this._y=r*l+s*o+i*a-n*c,this._z=i*l+s*c+n*o-r*a,this._w=s*l-n*a-r*o-i*c,this._onChangeCallback(),this}[nz(2019)](t,e){var n=nz;if(0===e)return this;if(1===e)return this.copy(t);const r=this._x,i=this._y,s=this._z,a=this._w;let o=a*t._w+r*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=r,this._y=i,this._z=s,this;const c=1-o*o;if(c<=Number[n(1214)]){const t=1-e;return this._w=t*a+e*this._w,this._x=t*r+e*this._x,this._y=t*i+e*this._y,this._z=t*s+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math[n(761)](c),h=Math.atan2(l,o),u=Math[n(1853)]((1-e)*h)/l,d=Math.sin(e*h)/l;return this._w=a*u+this._w*d,this._x=r*u+this._x*d,this._y=i*u+this._y*d,this._z=s*u+this._z*d,this[n(2005)](),this}slerpQuaternions(t,e,n){return this[nz(1867)](t).slerp(e,n)}random(){var t=nz;const e=Math[t(533)](),n=Math.sqrt(1-e),r=Math[t(761)](e),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(n*Math[t(1852)](i),r*Math[t(1853)](s),r*Math[t(1852)](s),n*Math[t(1853)](i))}[nz(1889)](t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}[nz(1890)](t,e=0){var n=nz;return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this[n(2005)](),this}[nz(1499)](t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}[nz(1891)](t,e){var n=nz;return this._x=t[n(1892)](e),this._y=t[n(1893)](e),this._z=t[n(1937)](e),this._w=t.getW(e),this}[nz(2020)](t){return this[nz(2005)]=t,this}[nz(2005)](){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},Vector3=class{constructor(t=0,e=0,n=0){var r=nz;Vector3[r(425)][r(2021)]=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}[nz(1862)](t){return this.x=t,this.y=t,this.z=t,this}[nz(1863)](t){return this.x=t,this}setY(t){return this.y=t,this}[nz(2022)](t){return this.z=t,this}setComponent(t,e){var n=nz;switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(n(1865)+t)}return this}[nz(1866)](t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}[nz(1014)](){return new(this[nz(443)])(this.x,this.y,this.z)}[nz(1867)](t){return this.x=t.x,this.y=t.y,this.z=t.z,this}[nz(747)](t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}[nz(1868)](t){return this.x+=t,this.y+=t,this.z+=t,this}[nz(1869)](t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}[nz(909)](t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}[nz(1871)](t){return this.x-=t,this.y-=t,this.z-=t,this}[nz(1872)](t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}[nz(1558)](t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}[nz(1878)](t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){var e=nz;return this.applyQuaternion(_quaternion$4[e(2023)](t))}[nz(2024)](t,e){var n=nz;return this[n(2025)](_quaternion$4[n(2026)](t,e))}[nz(1873)](t){var e=nz;const n=this.x,r=this.y,i=this.z,s=t[e(1874)];return this.x=s[0]*n+s[3]*r+s[6]*i,this.y=s[1]*n+s[4]*r+s[7]*i,this.z=s[2]*n+s[5]*r+s[8]*i,this}[nz(2027)](t){var e=nz;return this[e(1873)](t)[e(569)]()}[nz(2028)](t){const e=this.x,n=this.y,r=this.z,i=t.elements,s=1/(i[3]*e+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*e+i[4]*n+i[8]*r+i[12])*s,this.y=(i[1]*e+i[5]*n+i[9]*r+i[13])*s,this.z=(i[2]*e+i[6]*n+i[10]*r+i[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,r=this.z,i=t.x,s=t.y,a=t.z,o=t.w,c=o*e+s*r-a*n,l=o*n+a*e-i*r,h=o*r+i*n-s*e,u=-i*e-s*n-a*r;return this.x=c*o+u*-i+l*-a-h*-s,this.y=l*o+u*-s+h*-i-c*-a,this.z=h*o+u*-a+c*-s-l*-i,this}[nz(2029)](t){var e=nz;return this[e(2028)](t[e(2030)])[e(2028)](t[e(2031)])}[nz(2032)](t){var e=nz;return this[e(2028)](t.projectionMatrixInverse)[e(2028)](t[e(2033)])}[nz(2034)](t){var e=nz;const n=this.x,r=this.y,i=this.z,s=t[e(1874)];return this.x=s[0]*n+s[4]*r+s[8]*i,this.y=s[1]*n+s[5]*r+s[9]*i,this.z=s[2]*n+s[6]*r+s[10]*i,this[e(569)]()}[nz(1521)](t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}[nz(1877)](t){return this.multiplyScalar(1/t)}[nz(563)](t){var e=nz;return this.x=Math[e(563)](this.x,t.x),this.y=Math[e(563)](this.y,t.y),this.z=Math[e(563)](this.z,t.z),this}[nz(486)](t){var e=nz;return this.x=Math.max(this.x,t.x),this.y=Math[e(486)](this.y,t.y),this.z=Math[e(486)](this.z,t.z),this}clamp(t,e){var n=nz;return this.x=Math[n(486)](t.x,Math[n(563)](e.x,this.x)),this.y=Math[n(486)](t.y,Math.min(e.y,this.y)),this.z=Math[n(486)](t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){var n=nz;return this.x=Math[n(486)](t,Math.min(e,this.x)),this.y=Math[n(486)](t,Math[n(563)](e,this.y)),this.z=Math[n(486)](t,Math[n(563)](e,this.z)),this}[nz(1876)](t,e){var n=nz;const r=this[n(449)]();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math[n(563)](e,r)))}[nz(562)](){var t=nz;return this.x=Math[t(562)](this.x),this.y=Math[t(562)](this.y),this.z=Math[t(562)](this.z),this}[nz(561)](){var t=nz;return this.x=Math[t(561)](this.x),this.y=Math[t(561)](this.y),this.z=Math.ceil(this.z),this}[nz(784)](){var t=nz;return this.x=Math[t(784)](this.x),this.y=Math[t(784)](this.y),this.z=Math.round(this.z),this}[nz(1985)](){var t=nz;return this.x=this.x<0?Math[t(561)](this.x):Math[t(562)](this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math[t(562)](this.z),this}[nz(1472)](){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}[nz(449)](){return Math[nz(761)](this.x*this.x+this.y*this.y+this.z*this.z)}[nz(1986)](){var t=nz;return Math[t(694)](this.x)+Math[t(694)](this.y)+Math[t(694)](this.z)}normalize(){var t=nz;return this[t(1877)](this[t(449)]()||1)}setLength(t){var e=nz;return this[e(569)]()[e(1878)](t)}[nz(1887)](t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}[nz(1888)](t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}[nz(1880)](t){return this[nz(2035)](this,t)}[nz(2035)](t,e){const n=t.x,r=t.y,i=t.z,s=e.x,a=e.y,o=e.z;return this.x=r*o-i*a,this.y=i*s-n*o,this.z=n*a-r*s,this}[nz(2036)](t){var e=nz;const n=t[e(1881)]();if(0===n)return this[e(540)](0,0,0);const r=t[e(1879)](this)/n;return this[e(1867)](t)[e(1878)](r)}projectOnPlane(t){var e=nz;return _vector$c.copy(this)[e(2036)](t),this[e(909)](_vector$c)}[nz(2037)](t){var e=nz;return this[e(909)](_vector$c[e(1867)](t).multiplyScalar(2*this[e(1879)](t)))}angleTo(t){var e=nz;const n=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===n)return Math.PI/2;const r=this.dot(t)/n;return Math[e(2015)](clamp(r,-1,1))}[nz(2038)](t){var e=nz;return Math[e(761)](this[e(1884)](t))}[nz(1884)](t){const e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return e*e+n*n+r*r}[nz(1885)](t){var e=nz;return Math[e(694)](this.x-t.x)+Math.abs(this.y-t.y)+Math[e(694)](this.z-t.z)}[nz(2039)](t){var e=nz;return this[e(2040)](t[e(2041)],t[e(2042)],t[e(2043)])}[nz(2040)](t,e,n){var r=nz;const i=Math[r(1853)](e)*t;return this.x=i*Math[r(1853)](n),this.y=Math[r(1852)](e)*t,this.z=i*Math[r(1852)](n),this}[nz(2044)](t){var e=nz;return this.setFromCylindricalCoords(t[e(2041)],t[e(2043)],t.y)}[nz(2045)](t,e,n){var r=nz;return this.x=t*Math[r(1853)](e),this.y=n,this.z=t*Math[r(1852)](e),this}[nz(2046)](t){const e=t[nz(1874)];return this.x=e[12],this.y=e[13],this.z=e[14],this}[nz(2047)](t){var e=nz;const n=this[e(2048)](t,0)[e(449)](),r=this.setFromMatrixColumn(t,1)[e(449)](),i=this[e(2048)](t,2)[e(449)]();return this.x=n,this.y=r,this.z=i,this}setFromMatrixColumn(t,e){var n=nz;return this[n(1890)](t[n(1874)],4*e)}[nz(2049)](t,e){var n=nz;return this.fromArray(t[n(1874)],3*e)}[nz(2023)](t){return this.x=t._x,this.y=t._y,this.z=t._z,this}[nz(1889)](t){return t.x===this.x&&t.y===this.y&&t.z===this.z}[nz(1890)](t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}[nz(1891)](t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}[nz(533)](){var t=nz;return this.x=Math[t(533)](),this.y=Math[t(533)](),this.z=Math[t(533)](),this}randomDirection(){var t=nz;const e=2*(Math[t(533)]()-.5),n=Math[t(533)]()*Math.PI*2,r=Math.sqrt(1-__pow(e,2));return this.x=r*Math[t(1852)](n),this.y=r*Math[t(1853)](n),this.z=e,this}*[Symbol[nz(491)]](){yield this.x,yield this.y,yield this.z}},_vector$c=new Vector3,_quaternion$4=new Quaternion,Box3=class{constructor(t=new Vector3(1/0,1/0,1/0),e=new Vector3(-1/0,-1/0,-1/0)){var n=nz;this[n(2050)]=!0,this[n(563)]=t,this.max=e}[nz(540)](t,e){var n=nz;return this[n(563)][n(1867)](t),this[n(486)][n(1867)](e),this}[nz(2051)](t){var e=nz;let n=1/0,r=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let e=0,c=t.length;es&&(s=c),l>a&&(a=l),h>o&&(o=h)}return this.min.set(n,r,i),this.max[e(540)](s,a,o),this}[nz(2052)](t){var e=nz;let n=1/0,r=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t[e(2053)];cs&&(s=l),h>a&&(a=h),u>o&&(o=u)}return this.min[e(540)](n,r,i),this[e(486)][e(540)](s,a,o),this}[nz(2054)](t){var e=nz;this[e(2055)]();for(let n=0,r=t[e(449)];nthis[e(486)].x||t.ythis[e(486)].y||t.zthis[e(486)].z)}[nz(2069)](t){var e=nz;return this.min.x<=t[e(563)].x&&t[e(486)].x<=this.max.x&&this[e(563)].y<=t.min.y&&t[e(486)].y<=this.max.y&&this[e(563)].z<=t.min.z&&t[e(486)].z<=this[e(486)].z}getParameter(t,e){var n=nz;return e[n(540)]((t.x-this[n(563)].x)/(this[n(486)].x-this[n(563)].x),(t.y-this[n(563)].y)/(this[n(486)].y-this[n(563)].y),(t.z-this[n(563)].z)/(this[n(486)].z-this[n(563)].z))}[nz(2070)](t){var e=nz;return!(t.max.xthis[e(486)].x||t[e(486)].ythis[e(486)].y||t.max.zthis[e(486)].z)}[nz(2071)](t){var e=nz;return this[e(2072)](t.center,_vector$b),_vector$b[e(1884)](t[e(1960)])<=t[e(2041)]*t[e(2041)]}[nz(2073)](t){var e=nz;let n,r;return t[e(655)].x>0?(n=t.normal.x*this[e(563)].x,r=t[e(655)].x*this[e(486)].x):(n=t.normal.x*this[e(486)].x,r=t[e(655)].x*this[e(563)].x),t.normal.y>0?(n+=t[e(655)].y*this[e(563)].y,r+=t[e(655)].y*this[e(486)].y):(n+=t.normal.y*this.max.y,r+=t[e(655)].y*this[e(563)].y),t[e(655)].z>0?(n+=t[e(655)].z*this[e(563)].z,r+=t.normal.z*this[e(486)].z):(n+=t[e(655)].z*this[e(486)].z,r+=t.normal.z*this[e(563)].z),n<=-t.constant&&r>=-t[e(2074)]}[nz(2075)](t){var e=nz;if(this.isEmpty())return!1;this[e(2059)](_center),_extents.subVectors(this[e(486)],_center),_v0$2[e(1872)](t.a,_center),_v1$7.subVectors(t.b,_center),_v2$4.subVectors(t.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1[e(1872)](_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let n=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!!satForAxes(n,_v0$2,_v1$7,_v2$4,_extents)&&(n=[1,0,0,0,1,0,0,0,1],!!satForAxes(n,_v0$2,_v1$7,_v2$4,_extents)&&(_triangleNormal[e(2035)](_f0,_f1),n=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(n,_v0$2,_v1$7,_v2$4,_extents)))}[nz(2072)](t,e){var n=nz;return e[n(1867)](t)[n(1875)](this[n(563)],this.max)}[nz(2076)](t){var e=nz;return _vector$b[e(1867)](t)[e(1875)](this[e(563)],this[e(486)])[e(909)](t)[e(449)]()}getBoundingSphere(t){var e=nz;return this[e(2059)](t[e(1960)]),t[e(2041)]=.5*this.getSize(_vector$b)[e(449)](),t}intersect(t){var e=nz;return this[e(563)].max(t[e(563)]),this[e(486)][e(563)](t[e(486)]),this[e(1213)]()&&this[e(2055)](),this}[nz(1255)](t){var e=nz;return this[e(563)][e(563)](t.min),this[e(486)][e(486)](t[e(486)]),this}[nz(2028)](t){var e=nz;return this.isEmpty()||(_points[0][e(540)](this[e(563)].x,this[e(563)].y,this.min.z)[e(2028)](t),_points[1][e(540)](this.min.x,this[e(563)].y,this.max.z)[e(2028)](t),_points[2][e(540)](this[e(563)].x,this[e(486)].y,this[e(563)].z).applyMatrix4(t),_points[3][e(540)](this[e(563)].x,this.max.y,this[e(486)].z)[e(2028)](t),_points[4][e(540)](this[e(486)].x,this[e(563)].y,this[e(563)].z)[e(2028)](t),_points[5][e(540)](this[e(486)].x,this[e(563)].y,this[e(486)].z)[e(2028)](t),_points[6].set(this[e(486)].x,this[e(486)].y,this[e(563)].z)[e(2028)](t),_points[7].set(this[e(486)].x,this[e(486)].y,this[e(486)].z)[e(2028)](t),this[e(2054)](_points)),this}translate(t){var e=nz;return this[e(563)][e(747)](t),this[e(486)].add(t),this}equals(t){var e=nz;return t.min.equals(this.min)&&t.max.equals(this[e(486)])}},_points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$3=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(t,e,n,r,i){var s=nz;for(let a=0,o=t.length-3;a<=o;a+=3){_testAxis[s(1890)](t,a);const o=i.x*Math.abs(_testAxis.x)+i.y*Math[s(694)](_testAxis.y)+i.z*Math.abs(_testAxis.z),c=e[s(1879)](_testAxis),l=n[s(1879)](_testAxis),h=r[s(1879)](_testAxis);if(Math[s(486)](-Math[s(486)](c,l,h),Math[s(563)](c,l,h))>o)return!1}return!0}var _box$2=new Box3,_v1$6=new Vector3,_v2$3=new Vector3,Sphere=class{constructor(t=new Vector3,e=-1){var n=nz;this[n(1960)]=t,this[n(2041)]=e}[nz(540)](t,e){var n=nz;return this.center[n(1867)](t),this[n(2041)]=e,this}setFromPoints(t,e){var n=nz;const r=this[n(1960)];void 0!==e?r[n(1867)](e):_box$2[n(2054)](t)[n(2059)](r);let i=0;for(let e=0,s=t.length;ethis.radius*this[n(2041)]&&(e.sub(this[n(1960)]).normalize(),e[n(1878)](this[n(2041)]).add(this[n(1960)])),e}[nz(2077)](t){var e=nz;return this.isEmpty()?(t[e(2055)](),t):(t[e(540)](this[e(1960)],this[e(1960)]),t[e(2062)](this.radius),t)}applyMatrix4(t){var e=nz;return this[e(1960)][e(2028)](t),this[e(2041)]=this[e(2041)]*t.getMaxScaleOnAxis(),this}[nz(2078)](t){var e=nz;return this.center[e(747)](t),this}[nz(2056)](t){var e=nz;if(this[e(1213)]())return this.center.copy(t),this[e(2041)]=0,this;_v1$6.subVectors(t,this.center);const n=_v1$6.lengthSq();if(n>this[e(2041)]*this[e(2041)]){const t=Math[e(761)](n),r=.5*(t-this.radius);this[e(1960)][e(1870)](_v1$6,r/t),this.radius+=r}return this}[nz(1255)](t){var e=nz;return t[e(1213)]()?this:this.isEmpty()?(this[e(1867)](t),this):(!0===this[e(1960)][e(1889)](t.center)?this[e(2041)]=Math[e(486)](this[e(2041)],t[e(2041)]):(_v2$3[e(1872)](t[e(1960)],this[e(1960)])[e(1886)](t[e(2041)]),this[e(2056)](_v1$6.copy(t[e(1960)])[e(747)](_v2$3)),this[e(2056)](_v1$6.copy(t[e(1960)])[e(909)](_v2$3))),this)}[nz(1889)](t){var e=nz;return t[e(1960)][e(1889)](this.center)&&t.radius===this[e(2041)]}[nz(1014)](){var t=nz;return(new this.constructor)[t(1867)](this)}},_vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3,Ray=class{constructor(t=new Vector3,e=new Vector3(0,0,-1)){var n=nz;this[n(1103)]=t,this[n(2079)]=e}set(t,e){var n=nz;return this[n(1103)][n(1867)](t),this[n(2079)][n(1867)](e),this}[nz(1867)](t){var e=nz;return this[e(1103)][e(1867)](t[e(1103)]),this[e(2079)][e(1867)](t[e(2079)]),this}at(t,e){var n=nz;return e[n(1867)](this[n(2079)])[n(1878)](t)[n(747)](this.origin)}[nz(2080)](t){var e=nz;return this.direction.copy(t)[e(909)](this[e(1103)])[e(569)](),this}[nz(2081)](t){var e=nz;return this[e(1103)][e(1867)](this.at(t,_vector$a)),this}[nz(2082)](t,e){var n=nz;e[n(1872)](t,this[n(1103)]);const r=e[n(1879)](this.direction);return r<0?e[n(1867)](this[n(1103)]):e[n(1867)](this[n(2079)])[n(1878)](r).add(this[n(1103)])}[nz(2076)](t){var e=nz;return Math[e(761)](this[e(2083)](t))}[nz(2083)](t){var e=nz;const n=_vector$a[e(1872)](t,this[e(1103)])[e(1879)](this[e(2079)]);return n<0?this.origin[e(1884)](t):(_vector$a[e(1867)](this[e(2079)])[e(1878)](n)[e(747)](this.origin),_vector$a[e(1884)](t))}[nz(2084)](t,e,n,r){var i=nz;_segCenter[i(1867)](t)[i(747)](e)[i(1878)](.5),_segDir[i(1867)](e)[i(909)](t).normalize(),_diff[i(1867)](this[i(1103)])[i(909)](_segCenter);const s=.5*t[i(2038)](e),a=-this.direction[i(1879)](_segDir),o=_diff[i(1879)](this[i(2079)]),c=-_diff[i(1879)](_segDir),l=_diff.lengthSq(),h=Math[i(694)](1-a*a);let u,d,f,p;if(h>0)if(u=a*c-o,d=a*o-c,p=s*h,u>=0)if(d>=-p)if(d<=p){const t=1/h;u*=t,d*=t,f=u*(u+a*d+2*o)+d*(a*u+d+2*c)+l}else d=s,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*c)+l;else d=-s,u=Math[i(486)](0,-(a*d+o)),f=-u*u+d*(d+2*c)+l;else d<=-p?(u=Math[i(486)](0,-(-a*s+o)),d=u>0?-s:Math[i(563)](Math[i(486)](-s,-c),s),f=-u*u+d*(d+2*c)+l):d<=p?(u=0,d=Math[i(563)](Math.max(-s,-c),s),f=d*(d+2*c)+l):(u=Math[i(486)](0,-(a*s+o)),d=u>0?s:Math[i(563)](Math.max(-s,-c),s),f=-u*u+d*(d+2*c)+l);else d=a>0?-s:s,u=Math[i(486)](0,-(a*d+o)),f=-u*u+d*(d+2*c)+l;return n&&n[i(1867)](this[i(2079)]).multiplyScalar(u)[i(747)](this[i(1103)]),r&&r.copy(_segDir)[i(1878)](d)[i(747)](_segCenter),f}intersectSphere(t,e){var n=nz;_vector$a[n(1872)](t[n(1960)],this[n(1103)]);const r=_vector$a[n(1879)](this[n(2079)]),i=_vector$a[n(1879)](_vector$a)-r*r,s=t[n(2041)]*t[n(2041)];if(i>s)return null;const a=Math[n(761)](s-i),o=r-a,c=r+a;return o<0&&c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){var e=nz;return this[e(2083)](t[e(1960)])<=t[e(2041)]*t[e(2041)]}[nz(2085)](t){var e=nz;const n=t.normal[e(1879)](this[e(2079)]);if(0===n)return 0===t[e(2076)](this[e(1103)])?0:null;const r=-(this[e(1103)][e(1879)](t.normal)+t[e(2074)])/n;return r>=0?r:null}[nz(2086)](t,e){const n=this[nz(2085)](t);return null===n?null:this.at(n,e)}[nz(2073)](t){var e=nz;const n=t.distanceToPoint(this[e(1103)]);if(0===n)return!0;return t.normal[e(1879)](this.direction)*n<0}[nz(2087)](t,e){var n=nz;let r,i,s,a,o,c;const l=1/this[n(2079)].x,h=1/this.direction.y,u=1/this[n(2079)].z,d=this[n(1103)];return l>=0?(r=(t.min.x-d.x)*l,i=(t[n(486)].x-d.x)*l):(r=(t.max.x-d.x)*l,i=(t.min.x-d.x)*l),h>=0?(s=(t[n(563)].y-d.y)*h,a=(t[n(486)].y-d.y)*h):(s=(t[n(486)].y-d.y)*h,a=(t[n(563)].y-d.y)*h),r>a||s>i?null:((s>r||isNaN(r))&&(r=s),(a=0?(o=(t[n(563)].z-d.z)*u,c=(t[n(486)].z-d.z)*u):(o=(t.max.z-d.z)*u,c=(t[n(563)].z-d.z)*u),r>c||o>i?null:((o>r||r!=r)&&(r=o),(c=0?r:i,e)))}[nz(2070)](t){return null!==this[nz(2087)](t,_vector$a)}[nz(2088)](t,e,n,r,i){var s=nz;_edge1[s(1872)](e,t),_edge2[s(1872)](n,t),_normal$1.crossVectors(_edge1,_edge2);let a,o=this[s(2079)][s(1879)](_normal$1);if(o>0){if(r)return null;a=1}else{if(!(o<0))return null;a=-1,o=-o}_diff.subVectors(this.origin,t);const c=a*this.direction[s(1879)](_edge2[s(2035)](_diff,_edge2));if(c<0)return null;const l=a*this[s(2079)].dot(_edge1.cross(_diff));if(l<0)return null;if(c+l>o)return null;const h=-a*_diff[s(1879)](_normal$1);return h<0?null:this.at(h/o,i)}[nz(2028)](t){var e=nz;return this[e(1103)].applyMatrix4(t),this[e(2079)].transformDirection(t),this}equals(t){var e=nz;return t[e(1103)][e(1889)](this[e(1103)])&&t[e(2079)][e(1889)](this[e(2079)])}clone(){var t=nz;return(new(this[t(443)]))[t(1867)](this)}},Matrix4=class{constructor(){var t=nz;Matrix4[t(425)][t(2089)]=!0,this[t(1874)]=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}[nz(540)](t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){const v=this[nz(1874)];return v[0]=t,v[4]=e,v[8]=n,v[12]=r,v[1]=i,v[5]=s,v[9]=a,v[13]=o,v[2]=c,v[6]=l,v[10]=h,v[14]=u,v[3]=d,v[7]=f,v[11]=p,v[15]=m,this}[nz(1528)](){return this[nz(540)](1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){var t=nz;return(new Matrix4)[t(1890)](this[t(1874)])}[nz(1867)](t){var e=nz;const n=this[e(1874)],r=t[e(1874)];return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],this}copyPosition(t){var e=nz;const n=this[e(1874)],r=t[e(1874)];return n[12]=r[12],n[13]=r[13],n[14]=r[14],this}[nz(2090)](t){var e=nz;const n=t[e(1874)];return this[e(540)](n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}[nz(2091)](t,e,n){var r=nz;return t[r(2048)](this,0),e[r(2048)](this,1),n[r(2048)](this,2),this}[nz(2092)](t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}[nz(2093)](t){var e=nz;const n=this.elements,r=t[e(1874)],i=1/_v1$5.setFromMatrixColumn(t,0)[e(449)](),s=1/_v1$5[e(2048)](t,1)[e(449)](),a=1/_v1$5[e(2048)](t,2)[e(449)]();return n[0]=r[0]*i,n[1]=r[1]*i,n[2]=r[2]*i,n[3]=0,n[4]=r[4]*s,n[5]=r[5]*s,n[6]=r[6]*s,n[7]=0,n[8]=r[8]*a,n[9]=r[9]*a,n[10]=r[10]*a,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(t){var e=nz;const n=this[e(1874)],r=t.x,i=t.y,s=t.z,a=Math.cos(r),o=Math[e(1853)](r),c=Math[e(1852)](i),l=Math[e(1853)](i),h=Math[e(1852)](s),u=Math[e(1853)](s);if(t.order===e(2007)){const t=a*h,e=a*u,r=o*h,i=o*u;n[0]=c*h,n[4]=-c*u,n[8]=l,n[1]=e+r*l,n[5]=t-i*l,n[9]=-o*c,n[2]=i-t*l,n[6]=r+e*l,n[10]=a*c}else if("YXZ"===t[e(2094)]){const t=c*h,e=c*u,r=l*h,i=l*u;n[0]=t+i*o,n[4]=r*o-e,n[8]=a*l,n[1]=a*u,n[5]=a*h,n[9]=-o,n[2]=e*o-r,n[6]=i+t*o,n[10]=a*c}else if(t[e(2094)]===e(2008)){const t=c*h,e=c*u,r=l*h,i=l*u;n[0]=t-i*o,n[4]=-a*u,n[8]=r+e*o,n[1]=e+r*o,n[5]=a*h,n[9]=i-t*o,n[2]=-a*l,n[6]=o,n[10]=a*c}else if(t.order===e(2009)){const t=a*h,e=a*u,r=o*h,i=o*u;n[0]=c*h,n[4]=r*l-e,n[8]=t*l+i,n[1]=c*u,n[5]=i*l+t,n[9]=e*l-r,n[2]=-l,n[6]=o*c,n[10]=a*c}else if(t[e(2094)]===e(2010)){const t=a*c,e=a*l,r=o*c,i=o*l;n[0]=c*h,n[4]=i-t*u,n[8]=r*u+e,n[1]=u,n[5]=a*h,n[9]=-o*h,n[2]=-l*h,n[6]=e*u+r,n[10]=t-i*u}else if(t[e(2094)]===e(2011)){const t=a*c,e=a*l,r=o*c,i=o*l;n[0]=c*h,n[4]=-u,n[8]=l*h,n[1]=t*u+i,n[5]=a*h,n[9]=e*u-r,n[2]=r*u-e,n[6]=o*h,n[10]=i*u+t}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}[nz(2095)](t){return this[nz(2096)](_zero,t,_one)}[nz(2080)](t,e,n){var r=nz;const i=this.elements;return _z[r(1872)](t,e),0===_z[r(1881)]()&&(_z.z=1),_z[r(569)](),_x.crossVectors(n,_z),0===_x[r(1881)]()&&(1===Math[r(694)](n.z)?_z.x+=1e-4:_z.z+=1e-4,_z[r(569)](),_x[r(2035)](n,_z)),_x[r(569)](),_y[r(2035)](_z,_x),i[0]=_x.x,i[4]=_y.x,i[8]=_z.x,i[1]=_x.y,i[5]=_y.y,i[9]=_z.y,i[2]=_x.z,i[6]=_y.z,i[10]=_z.z,this}[nz(1558)](t){return this[nz(1896)](this,t)}[nz(2017)](t){return this[nz(1896)](t,this)}[nz(1896)](t,e){var n=nz;const r=t[n(1874)],i=e[n(1874)],s=this[n(1874)],a=r[0],o=r[4],c=r[8],l=r[12],h=r[1],u=r[5],d=r[9],f=r[13],p=r[2],m=r[6],v=r[10],_=r[14],g=r[3],y=r[7],E=r[11],T=r[15],I=i[0],z=i[4],S=i[8],x=i[12],b=i[1],w=i[5],C=i[9],M=i[13],R=i[2],A=i[6],D=i[10],L=i[14],P=i[3],O=i[7],F=i[11],N=i[15];return s[0]=a*I+o*b+c*R+l*P,s[4]=a*z+o*w+c*A+l*O,s[8]=a*S+o*C+c*D+l*F,s[12]=a*x+o*M+c*L+l*N,s[1]=h*I+u*b+d*R+f*P,s[5]=h*z+u*w+d*A+f*O,s[9]=h*S+u*C+d*D+f*F,s[13]=h*x+u*M+d*L+f*N,s[2]=p*I+m*b+v*R+_*P,s[6]=p*z+m*w+v*A+_*O,s[10]=p*S+m*C+v*D+_*F,s[14]=p*x+m*M+v*L+_*N,s[3]=g*I+y*b+E*R+T*P,s[7]=g*z+y*w+E*A+T*O,s[11]=g*S+y*C+E*D+T*F,s[15]=g*x+y*M+E*L+T*N,this}[nz(1878)](t){const e=this[nz(1874)];return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this[nz(1874)],e=t[0],n=t[4],r=t[8],i=t[12],s=t[1],a=t[5],o=t[9],c=t[13],l=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+i*o*h-r*c*h-i*a*u+n*c*u+r*a*d-n*o*d)+t[7]*(+e*o*d-e*c*u+i*s*u-r*s*d+r*c*l-i*o*l)+t[11]*(+e*c*h-e*a*d-i*s*h+n*s*d+i*a*l-n*c*l)+t[15]*(-r*a*l-e*o*h+e*a*u+r*s*h-n*s*u+n*o*l)}[nz(1898)](){const t=this[nz(1874)];let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){var r=nz;const i=this[r(1874)];return t[r(2021)]?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){var t=nz;const e=this[t(1874)],n=e[0],r=e[1],i=e[2],s=e[3],a=e[4],o=e[5],c=e[6],l=e[7],h=e[8],u=e[9],d=e[10],f=e[11],p=e[12],m=e[13],v=e[14],_=e[15],g=u*v*l-m*d*l+m*c*f-o*v*f-u*c*_+o*d*_,y=p*d*l-h*v*l-p*c*f+a*v*f+h*c*_-a*d*_,E=h*m*l-p*u*l+p*o*f-a*m*f-h*o*_+a*u*_,T=p*u*c-h*m*c-p*o*d+a*m*d+h*o*v-a*u*v,I=n*g+r*y+i*E+s*T;if(0===I)return this[t(540)](0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const z=1/I;return e[0]=g*z,e[1]=(m*d*s-u*v*s-m*i*f+r*v*f+u*i*_-r*d*_)*z,e[2]=(o*v*s-m*c*s+m*i*l-r*v*l-o*i*_+r*c*_)*z,e[3]=(u*c*s-o*d*s-u*i*l+r*d*l+o*i*f-r*c*f)*z,e[4]=y*z,e[5]=(h*v*s-p*d*s+p*i*f-n*v*f-h*i*_+n*d*_)*z,e[6]=(p*c*s-a*v*s-p*i*l+n*v*l+a*i*_-n*c*_)*z,e[7]=(a*d*s-h*c*s+h*i*l-n*d*l-a*i*f+n*c*f)*z,e[8]=E*z,e[9]=(p*u*s-h*m*s-p*r*f+n*m*f+h*r*_-n*u*_)*z,e[10]=(a*m*s-p*o*s+p*r*l-n*m*l-a*r*_+n*o*_)*z,e[11]=(h*o*s-a*u*s-h*r*l+n*u*l+a*r*f-n*o*f)*z,e[12]=T*z,e[13]=(h*m*i-p*u*i+p*r*d-n*m*d-h*r*v+n*u*v)*z,e[14]=(p*o*i-a*m*i-p*r*c+n*m*c+a*r*v-n*o*v)*z,e[15]=(a*u*i-h*o*i+h*r*c-n*u*c-a*r*d+n*o*d)*z,this}scale(t){const e=this[nz(1874)],n=t.x,r=t.y,i=t.z;return e[0]*=n,e[4]*=r,e[8]*=i,e[1]*=n,e[5]*=r,e[9]*=i,e[2]*=n,e[6]*=r,e[10]*=i,e[3]*=n,e[7]*=r,e[11]*=i,this}getMaxScaleOnAxis(){var t=nz;const e=this[t(1874)],n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],r=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math[t(761)](Math[t(486)](n,r,i))}[nz(2097)](t,e,n){return this[nz(540)](1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}[nz(2098)](t){var e=nz;const n=Math[e(1852)](t),r=Math[e(1853)](t);return this[e(540)](1,0,0,0,0,n,-r,0,0,r,n,0,0,0,0,1),this}[nz(2099)](t){var e=nz;const n=Math[e(1852)](t),r=Math[e(1853)](t);return this[e(540)](n,0,r,0,0,1,0,0,-r,0,n,0,0,0,0,1),this}[nz(2100)](t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}[nz(2101)](t,e){var n=nz;const r=Math[n(1852)](e),i=Math.sin(e),s=1-r,a=t.x,o=t.y,c=t.z,l=s*a,h=s*o;return this[n(540)](l*a+r,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+r,h*c-i*a,0,l*c-i*o,h*c+i*a,s*c*c+r,0,0,0,0,1),this}makeScale(t,e,n){return this[nz(540)](t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}[nz(2102)](t,e,n,r,i,s){return this[nz(540)](1,n,i,0,t,1,s,0,e,r,1,0,0,0,0,1),this}[nz(2096)](t,e,n){const r=this.elements,i=e._x,s=e._y,a=e._z,o=e._w,c=i+i,l=s+s,h=a+a,u=i*c,d=i*l,f=i*h,p=s*l,m=s*h,v=a*h,_=o*c,g=o*l,y=o*h,E=n.x,T=n.y,I=n.z;return r[0]=(1-(p+v))*E,r[1]=(d+y)*E,r[2]=(f-g)*E,r[3]=0,r[4]=(d-y)*T,r[5]=(1-(u+v))*T,r[6]=(m+_)*T,r[7]=0,r[8]=(f+g)*I,r[9]=(m-_)*I,r[10]=(1-(u+p))*I,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}[nz(2103)](t,e,n){var r=nz;const i=this[r(1874)];let s=_v1$5.set(i[0],i[1],i[2])[r(449)]();const a=_v1$5.set(i[4],i[5],i[6])[r(449)](),o=_v1$5[r(540)](i[8],i[9],i[10]).length();this[r(1897)]()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],_m1$2.copy(this);const c=1/s,l=1/a,h=1/o;return _m1$2[r(1874)][0]*=c,_m1$2[r(1874)][1]*=c,_m1$2[r(1874)][2]*=c,_m1$2[r(1874)][4]*=l,_m1$2[r(1874)][5]*=l,_m1$2[r(1874)][6]*=l,_m1$2.elements[8]*=h,_m1$2[r(1874)][9]*=h,_m1$2[r(1874)][10]*=h,e.setFromRotationMatrix(_m1$2),n.x=s,n.y=a,n.z=o,this}makePerspective(t,e,n,r,i,s){const a=this[nz(1874)],o=2*i/(e-t),c=2*i/(n-r),l=(e+t)/(e-t),h=(n+r)/(n-r),u=-(s+i)/(s-i),d=-2*s*i/(s-i);return a[0]=o,a[4]=0,a[8]=l,a[12]=0,a[1]=0,a[5]=c,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}[nz(2104)](t,e,n,r,i,s){const a=this[nz(1874)],o=1/(e-t),c=1/(n-r),l=1/(s-i),h=(e+t)*o,u=(n+r)*c,d=(s+i)*l;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*c,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*l,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}[nz(1889)](t){var e=nz;const n=this.elements,r=t[e(1874)];for(let t=0;t<16;t++)if(n[t]!==r[t])return!1;return!0}[nz(1890)](t,e=0){var n=nz;for(let r=0;r<16;r++)this[n(1874)][r]=t[r+e];return this}toArray(t=[],e=0){const n=this[nz(1874)];return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},_v1$5=new Vector3,_m1$2=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$1=new Matrix4,_quaternion$3=new Quaternion,Euler=class{constructor(t=0,e=0,n=0,r=Euler[nz(2105)]){var i=nz;this[i(2106)]=!0,this._x=t,this._y=e,this._z=n,this[i(2006)]=r}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){var e=nz;this._y=t,this[e(2005)]()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this[nz(2006)]}set order(t){this[nz(2006)]=t,this._onChangeCallback()}[nz(540)](t,e,n,r=this[nz(2006)]){var i=nz;return this._x=t,this._y=e,this._z=n,this[i(2006)]=r,this[i(2005)](),this}clone(){return new(this[nz(443)])(this._x,this._y,this._z,this._order)}copy(t){var e=nz;return this._x=t._x,this._y=t._y,this._z=t._z,this[e(2006)]=t[e(2006)],this[e(2005)](),this}setFromRotationMatrix(t,e=this[nz(2006)],n=!0){var r=nz;const i=t.elements,s=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],u=i[2],d=i[6],f=i[10];switch(e){case r(2007):this._y=Math[r(2107)](clamp(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,f),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp(h,-1,1)),Math[r(694)](h)<.9999999?(this._y=Math.atan2(o,f),this._z=Math[r(1883)](c,l)):(this._y=Math.atan2(-u,s),this._z=0);break;case r(2008):this._x=Math[r(2107)](clamp(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math[r(1883)](-u,f),this._z=Math[r(1883)](-a,l)):(this._y=0,this._z=Math[r(1883)](c,s));break;case r(2009):this._y=Math[r(2107)](-clamp(u,-1,1)),Math[r(694)](u)<.9999999?(this._x=Math[r(1883)](d,f),this._z=Math[r(1883)](c,s)):(this._x=0,this._z=Math.atan2(-a,l));break;case r(2010):this._z=Math[r(2107)](clamp(c,-1,1)),Math[r(694)](c)<.9999999?(this._x=Math[r(1883)](-h,l),this._y=Math[r(1883)](-u,s)):(this._x=0,this._y=Math[r(1883)](o,f));break;case r(2011):this._z=Math[r(2107)](-clamp(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math[r(1883)](d,l),this._y=Math[r(1883)](o,s)):(this._x=Math[r(1883)](-h,f),this._y=0);break;default:console[r(1176)](r(2108)+e)}return this[r(2006)]=e,!0===n&&this._onChangeCallback(),this}[nz(2109)](t,e,n){var r=nz;return _matrix$1[r(2095)](t),this[r(2013)](_matrix$1,e,n)}[nz(2110)](t,e=this[nz(2006)]){return this.set(t.x,t.y,t.z,e)}[nz(2111)](t){var e=nz;return _quaternion$3.setFromEuler(this),this[e(2109)](_quaternion$3,t)}equals(t){var e=nz;return t._x===this._x&&t._y===this._y&&t._z===this._z&&t[e(2006)]===this[e(2006)]}fromArray(t){var e=nz;return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this[e(2006)]=t[3]),this[e(2005)](),this}[nz(1499)](t=[],e=0){var n=nz;return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this[n(2006)],t}_onChange(t){return this[nz(2005)]=t,this}[nz(2005)](){}*[Symbol[nz(491)]](){var t=nz;yield this._x,yield this._y,yield this._z,yield this[t(2006)]}toVector3(){var t=nz;console[t(819)](t(2112))}};Euler[nz(2105)]="XYZ",Euler[nz(2113)]=[nz(2007),nz(2010),nz(2008),nz(2011),nz(2114),nz(2009)];var Layers=class{constructor(){this[nz(2115)]=1}[nz(540)](t){this.mask=(1<>>0}[nz(745)](t){this[nz(2115)]|=1<1){for(let t=0;t1){for(let t=0;t0){i[e(1602)]=[];for(let n=0;n0){i.animations=[];for(let n=0;n0&&(r[e(2170)]=n),i.length>0&&(r[e(2179)]=i),s[e(449)]>0&&(r[e(1976)]=s),o[e(449)]>0&&(r[e(1949)]=o),c[e(449)]>0&&(r[e(2172)]=c),l[e(449)]>0&&(r[e(2177)]=l),h[e(449)]>0&&(r[e(2180)]=h),u.length>0&&(r[e(2181)]=u)}return r[e(469)]=i,r;function a(t){var n=e;const r=[];for(const e in t){const i=t[e];delete i[n(2157)],r.push(i)}return r}}clone(t){var e=nz;return(new(this[e(443)]))[e(1867)](this,t)}copy(t,e=!0){var n=nz;if(this[n(542)]=t.name,this.up[n(1867)](t.up),this[n(2065)].copy(t.position),this[n(1961)].order=t[n(1961)].order,this[n(2128)][n(1867)](t[n(2128)]),this[n(1901)].copy(t[n(1901)]),this[n(1963)][n(1867)](t[n(1963)]),this[n(2033)][n(1867)](t[n(2033)]),this[n(1962)]=t[n(1962)],this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this[n(2156)]=t[n(2156)],this[n(2160)][n(2115)]=t[n(2160)][n(2115)],this[n(2122)]=t[n(2122)],this[n(2159)]=t[n(2159)],this.receiveShadow=t[n(2123)],this[n(2124)]=t[n(2124)],this.renderOrder=t[n(2125)],this[n(1968)]=JSON[n(1087)](JSON[n(472)](t[n(1968)])),!0===e)for(let e=0;e0?r[i(1878)](1/Math.sqrt(s)):r[i(540)](0,0,0)}static[nz(2185)](t,e,n,r,i){var s=nz;_v0$1[s(1872)](r,e),_v1$3[s(1872)](n,e),_v2$2.subVectors(t,e);const a=_v0$1[s(1879)](_v0$1),o=_v0$1[s(1879)](_v1$3),c=_v0$1[s(1879)](_v2$2),l=_v1$3[s(1879)](_v1$3),h=_v1$3.dot(_v2$2),u=a*l-o*o;if(0===u)return i.set(-2,-1,-1);const d=1/u,f=(l*c-o*h)*d,p=(a*h-o*c)*d;return i[s(540)](1-f-p,p,f)}static[nz(2068)](t,e,n,r){return this[nz(2185)](t,e,n,r,_v3$1),_v3$1.x>=0&&_v3$1.y>=0&&_v3$1.x+_v3$1.y<=1}static[nz(2186)](t,e,n,r,i,s,a,o){var c=nz;return this[c(2185)](t,e,n,r,_v3$1),o[c(540)](0,0),o[c(1870)](i,_v3$1.x),o.addScaledVector(s,_v3$1.y),o[c(1870)](a,_v3$1.z),o}static[nz(2187)](t,e,n,r){var i=nz;return _v0$1[i(1872)](n,e),_v1$3[i(1872)](t,e),_v0$1.cross(_v1$3)[i(1879)](r)<0}set(t,e,n){var r=nz;return this.a.copy(t),this.b[r(1867)](e),this.c[r(1867)](n),this}[nz(2188)](t,e,n,r){var i=nz;return this.a[i(1867)](t[e]),this.b[i(1867)](t[n]),this.c.copy(t[r]),this}[nz(2189)](t,e,n,r){var i=nz;return this.a.fromBufferAttribute(t,e),this.b[i(1891)](t,n),this.c[i(1891)](t,r),this}clone(){var t=nz;return(new this.constructor)[t(1867)](this)}[nz(1867)](t){var e=nz;return this.a[e(1867)](t.a),this.b.copy(t.b),this.c[e(1867)](t.c),this}[nz(2190)](){var t=nz;return _v0$1[t(1872)](this.c,this.b),_v1$3[t(1872)](this.a,this.b),.5*_v0$1[t(1880)](_v1$3)[t(449)]()}[nz(2191)](t){var e=nz;return t[e(1869)](this.a,this.b)[e(747)](this.c)[e(1878)](1/3)}[nz(2184)](t){return Triangle.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t[nz(2192)](this.a,this.b,this.c)}getBarycoord(t,e){return Triangle[nz(2185)](t,this.a,this.b,this.c,e)}[nz(2186)](t,e,n,r,i){return Triangle.getUV(t,this.a,this.b,this.c,e,n,r,i)}[nz(2068)](t){return Triangle.containsPoint(t,this.a,this.b,this.c)}[nz(2187)](t){return Triangle.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}[nz(2082)](t,e){var n=nz;const r=this.a,i=this.b,s=this.c;let a,o;_vab.subVectors(i,r),_vac.subVectors(s,r),_vap.subVectors(t,r);const c=_vab[n(1879)](_vap),l=_vac.dot(_vap);if(c<=0&&l<=0)return e[n(1867)](r);_vbp[n(1872)](t,i);const h=_vab[n(1879)](_vbp),u=_vac.dot(_vbp);if(h>=0&&u<=h)return e[n(1867)](i);const d=c*u-h*l;if(d<=0&&c>=0&&h<=0)return a=c/(c-h),e[n(1867)](r).addScaledVector(_vab,a);_vcp[n(1872)](t,s);const f=_vab.dot(_vcp),p=_vac.dot(_vcp);if(p>=0&&f<=p)return e[n(1867)](s);const m=f*l-c*p;if(m<=0&&l>=0&&p<=0)return o=l/(l-p),e.copy(r).addScaledVector(_vac,o);const v=h*p-f*u;if(v<=0&&u-h>=0&&f-p>=0)return _vbc[n(1872)](s,i),o=(u-h)/(u-h+(f-p)),e[n(1867)](i)[n(1870)](_vbc,o);const _=1/(v+m+d);return a=m*_,o=d*_,e.copy(r)[n(1870)](_vab,a)[n(1870)](_vac,o)}[nz(1889)](t){var e=nz;return t.a[e(1889)](this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},materialId=0,Material=class extends EventDispatcher{constructor(){var t=nz;super(),this[t(2193)]=!0,Object.defineProperty(this,"id",{value:materialId++}),this[t(1947)]=generateUUID(),this[t(542)]="",this.type=t(2194),this[t(2195)]=NormalBlending,this[t(2196)]=FrontSide,this.vertexColors=!1,this.opacity=1,this[t(2197)]=!1,this[t(2198)]=SrcAlphaFactor,this[t(2199)]=OneMinusSrcAlphaFactor,this[t(2200)]=AddEquation,this[t(2201)]=null,this.blendDstAlpha=null,this[t(2202)]=null,this.depthFunc=LessEqualDepth,this.depthTest=!0,this[t(2203)]=!0,this[t(2204)]=255,this[t(2205)]=AlwaysStencilFunc,this.stencilRef=0,this[t(2206)]=255,this.stencilFail=KeepStencilOp,this[t(2207)]=KeepStencilOp,this[t(2208)]=KeepStencilOp,this[t(2209)]=!1,this.clippingPlanes=null,this[t(2210)]=!1,this[t(2211)]=!1,this[t(2212)]=null,this[t(2213)]=!0,this[t(2214)]=null,this[t(2215)]=!1,this[t(2216)]=0,this[t(2217)]=0,this[t(2218)]=!1,this[t(2219)]=!1,this[t(2220)]=!1,this[t(2122)]=!0,this[t(2221)]=!0,this.userData={},this[t(521)]=0,this._alphaTest=0}get alphaTest(){return this[nz(2222)]}set[nz(2223)](t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}[nz(2224)](){}onBeforeRender(){}[nz(2225)](){}customProgramCacheKey(){var t=nz;return this.onBeforeCompile[t(526)]()}[nz(2226)](t){var e=nz;if(void 0!==t)for(const n in t){const r=t[n];if(void 0===r){console.warn(e(2227)+n+e(2228));continue}const i=this[n];void 0!==i?i&&i[e(1909)]?i[e(540)](r):i&&i[e(2021)]&&r&&r[e(2021)]?i.copy(r):this[n]=r:console[e(1176)]("THREE."+this[e(452)]+e(2229)+n+e(2230))}}[nz(733)](t){var e=nz;const n=void 0===t||typeof t===e(470);n&&(t={textures:{},images:{}});const r={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){var n=e;const r=[];for(const e in t){const i=t[e];delete i.metadata,r[n(565)](i)}return r}if(r.uuid=this[e(1947)],r[e(452)]=this.type,""!==this[e(542)]&&(r.name=this[e(542)]),this[e(2231)]&&this.color[e(1909)]&&(r.color=this.color[e(1926)]()),void 0!==this[e(2232)]&&(r[e(2232)]=this[e(2232)]),void 0!==this.metalness&&(r[e(2233)]=this[e(2233)]),void 0!==this.sheen&&(r.sheen=this.sheen),this[e(2234)]&&this[e(2234)][e(1909)]&&(r[e(2234)]=this.sheenColor[e(1926)]()),void 0!==this.sheenRoughness&&(r[e(2235)]=this[e(2235)]),this[e(2236)]&&this[e(2236)][e(1909)]&&(r[e(2236)]=this.emissive.getHex()),this[e(2237)]&&1!==this[e(2237)]&&(r.emissiveIntensity=this[e(2237)]),this[e(2238)]&&this[e(2238)][e(1909)]&&(r[e(2238)]=this.specular[e(1926)]()),void 0!==this.specularIntensity&&(r[e(2239)]=this[e(2239)]),this[e(2240)]&&this.specularColor[e(1909)]&&(r.specularColor=this[e(2240)][e(1926)]()),void 0!==this[e(2241)]&&(r[e(2241)]=this[e(2241)]),void 0!==this.clearcoat&&(r[e(2242)]=this[e(2242)]),void 0!==this[e(2243)]&&(r[e(2243)]=this.clearcoatRoughness),this[e(2244)]&&this[e(2244)][e(1954)]&&(r[e(2244)]=this[e(2244)][e(733)](t).uuid),this.clearcoatRoughnessMap&&this[e(2245)].isTexture&&(r[e(2245)]=this.clearcoatRoughnessMap[e(733)](t)[e(1947)]),this[e(2246)]&&this[e(2246)][e(1954)]&&(r[e(2246)]=this.clearcoatNormalMap.toJSON(t)[e(1947)],r[e(2247)]=this[e(2247)].toArray()),void 0!==this[e(2248)]&&(r[e(2248)]=this.iridescence),void 0!==this[e(2249)]&&(r[e(2249)]=this.iridescenceIOR),void 0!==this[e(2250)]&&(r[e(2250)]=this[e(2250)]),this[e(2251)]&&this[e(2251)].isTexture&&(r[e(2251)]=this.iridescenceMap[e(733)](t)[e(1947)]),this[e(2252)]&&this.iridescenceThicknessMap[e(1954)]&&(r[e(2252)]=this[e(2252)][e(733)](t)[e(1947)]),this[e(679)]&&this[e(679)][e(1954)]&&(r[e(679)]=this[e(679)][e(733)](t)[e(1947)]),this[e(2253)]&&this[e(2253)][e(1954)]&&(r[e(2253)]=this[e(2253)][e(733)](t)[e(1947)]),this[e(2254)]&&this[e(2254)][e(1954)]&&(r[e(2254)]=this.alphaMap[e(733)](t).uuid),this[e(2255)]&&this[e(2255)][e(1954)]&&(r.lightMap=this[e(2255)][e(733)](t)[e(1947)],r[e(2256)]=this[e(2256)]),this[e(2257)]&&this[e(2257)][e(1954)]&&(r[e(2257)]=this[e(2257)][e(733)](t).uuid,r.aoMapIntensity=this[e(2258)]),this[e(2259)]&&this[e(2259)][e(1954)]&&(r[e(2259)]=this[e(2259)][e(733)](t)[e(1947)],r[e(2260)]=this[e(2260)]),this[e(2261)]&&this[e(2261)][e(1954)]&&(r[e(2261)]=this[e(2261)][e(733)](t).uuid,r[e(2262)]=this.normalMapType,r.normalScale=this[e(2263)][e(1499)]()),this.displacementMap&&this[e(2264)][e(1954)]&&(r[e(2264)]=this[e(2264)][e(733)](t)[e(1947)],r[e(2265)]=this[e(2265)],r[e(2266)]=this[e(2266)]),this.roughnessMap&&this[e(2267)][e(1954)]&&(r.roughnessMap=this[e(2267)][e(733)](t)[e(1947)]),this[e(2268)]&&this[e(2268)][e(1954)]&&(r[e(2268)]=this[e(2268)].toJSON(t)[e(1947)]),this[e(2269)]&&this[e(2269)].isTexture&&(r[e(2269)]=this[e(2269)].toJSON(t).uuid),this[e(2270)]&&this[e(2270)][e(1954)]&&(r[e(2270)]=this[e(2270)][e(733)](t)[e(1947)]),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(r[e(2271)]=this[e(2271)][e(733)](t)[e(1947)]),this[e(2272)]&&this[e(2272)][e(1954)]&&(r[e(2272)]=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap[e(1954)]&&(r[e(2273)]=this.envMap[e(733)](t).uuid,void 0!==this[e(1692)]&&(r[e(1692)]=this[e(1692)])),void 0!==this[e(2274)]&&(r.envMapIntensity=this[e(2274)]),void 0!==this[e(2275)]&&(r[e(2275)]=this[e(2275)]),void 0!==this[e(2276)]&&(r[e(2276)]=this.refractionRatio),this[e(2277)]&&this[e(2277)].isTexture&&(r[e(2277)]=this[e(2277)].toJSON(t)[e(1947)]),void 0!==this[e(2278)]&&(r[e(2278)]=this[e(2278)]),this[e(2279)]&&this.transmissionMap[e(1954)]&&(r.transmissionMap=this[e(2279)].toJSON(t)[e(1947)]),void 0!==this[e(2280)]&&(r[e(2280)]=this.thickness),this[e(2281)]&&this.thicknessMap[e(1954)]&&(r[e(2281)]=this[e(2281)][e(733)](t).uuid),void 0!==this[e(2282)]&&this[e(2282)]!==1/0&&(r[e(2282)]=this[e(2282)]),void 0!==this[e(2283)]&&(r[e(2283)]=this[e(2283)].getHex()),void 0!==this[e(753)]&&(r[e(753)]=this[e(753)]),null!==this[e(2212)]&&(r[e(2212)]=this[e(2212)]),void 0!==this[e(2284)]&&(r[e(2284)]=this[e(2284)]),this[e(2195)]!==NormalBlending&&(r[e(2195)]=this[e(2195)]),this[e(2196)]!==FrontSide&&(r[e(2196)]=this[e(2196)]),this[e(2285)]&&(r.vertexColors=!0),this[e(2286)]<1&&(r.opacity=this[e(2286)]),!0===this[e(2197)]&&(r.transparent=this[e(2197)]),r[e(2287)]=this[e(2287)],r.depthTest=this[e(2288)],r[e(2203)]=this[e(2203)],r[e(2213)]=this[e(2213)],r[e(2209)]=this[e(2209)],r[e(2204)]=this.stencilWriteMask,r[e(2205)]=this[e(2205)],r[e(2289)]=this[e(2289)],r[e(2206)]=this[e(2206)],r.stencilFail=this[e(2290)],r[e(2207)]=this.stencilZFail,r[e(2208)]=this[e(2208)],void 0!==this[e(1961)]&&0!==this.rotation&&(r[e(1961)]=this[e(1961)]),!0===this.polygonOffset&&(r.polygonOffset=!0),0!==this[e(2216)]&&(r[e(2216)]=this[e(2216)]),0!==this[e(2217)]&&(r[e(2217)]=this[e(2217)]),void 0!==this[e(2291)]&&1!==this[e(2291)]&&(r.linewidth=this[e(2291)]),void 0!==this[e(2292)]&&(r[e(2292)]=this.dashSize),void 0!==this[e(2293)]&&(r.gapSize=this.gapSize),void 0!==this.scale&&(r[e(1901)]=this[e(1901)]),!0===this[e(2218)]&&(r[e(2218)]=!0),this.alphaTest>0&&(r.alphaTest=this[e(2223)]),!0===this.alphaToCoverage&&(r[e(2219)]=this.alphaToCoverage),!0===this[e(2220)]&&(r[e(2220)]=this[e(2220)]),!0===this[e(2294)]&&(r[e(2294)]=this.wireframe),this[e(2295)]>1&&(r[e(2295)]=this[e(2295)]),"round"!==this.wireframeLinecap&&(r[e(2296)]=this[e(2296)]),"round"!==this[e(2297)]&&(r[e(2297)]=this.wireframeLinejoin),!0===this[e(2298)]&&(r[e(2298)]=this[e(2298)]),!1===this[e(2122)]&&(r[e(2122)]=!1),!1===this[e(2221)]&&(r.toneMapped=!1),!1===this[e(2299)]&&(r[e(2299)]=!1),"{}"!==JSON[e(472)](this.userData)&&(r[e(1968)]=this.userData),n){const n=i(t[e(1976)]),s=i(t[e(1949)]);n[e(449)]>0&&(r.textures=n),s[e(449)]>0&&(r[e(1949)]=s)}return r}[nz(1014)](){return(new this.constructor).copy(this)}copy(t){var e=nz;this.name=t.name,this.blending=t[e(2195)],this[e(2196)]=t.side,this[e(2285)]=t[e(2285)],this[e(2286)]=t[e(2286)],this[e(2197)]=t[e(2197)],this.blendSrc=t[e(2198)],this.blendDst=t.blendDst,this[e(2200)]=t[e(2200)],this[e(2201)]=t[e(2201)],this[e(2300)]=t[e(2300)],this[e(2202)]=t[e(2202)],this.depthFunc=t.depthFunc,this[e(2288)]=t.depthTest,this.depthWrite=t[e(2203)],this[e(2204)]=t.stencilWriteMask,this[e(2205)]=t[e(2205)],this[e(2289)]=t[e(2289)],this[e(2206)]=t[e(2206)],this.stencilFail=t[e(2290)],this[e(2207)]=t[e(2207)],this[e(2208)]=t[e(2208)],this[e(2209)]=t[e(2209)];const n=t[e(2301)];let r=null;if(null!==n){const t=n[e(449)];r=new Array(t);for(let i=0;i!==t;++i)r[i]=n[i][e(1014)]()}return this.clippingPlanes=r,this[e(2210)]=t[e(2210)],this[e(2211)]=t[e(2211)],this[e(2212)]=t[e(2212)],this[e(2213)]=t[e(2213)],this[e(2214)]=t[e(2214)],this[e(2215)]=t[e(2215)],this[e(2216)]=t.polygonOffsetFactor,this[e(2217)]=t[e(2217)],this[e(2218)]=t[e(2218)],this.alphaTest=t[e(2223)],this[e(2219)]=t[e(2219)],this[e(2220)]=t[e(2220)],this[e(2122)]=t[e(2122)],this.toneMapped=t.toneMapped,this.userData=JSON[e(1087)](JSON[e(472)](t[e(1968)])),this}[nz(1979)](){var t=nz;this[t(827)]({type:t(1979)})}set[nz(1948)](t){!0===t&&this.version++}},MeshBasicMaterial=class extends Material{constructor(t){var e=nz;super(),this[e(2302)]=!0,this[e(452)]=e(2303),this[e(2231)]=new Color(16777215),this[e(679)]=null,this[e(2255)]=null,this[e(2256)]=1,this.aoMap=null,this[e(2258)]=1,this[e(2270)]=null,this.alphaMap=null,this[e(2273)]=null,this[e(1692)]=MultiplyOperation,this[e(2275)]=1,this[e(2276)]=.98,this[e(2294)]=!1,this[e(2295)]=1,this[e(2296)]=e(784),this[e(2297)]="round",this.fog=!0,this[e(2226)](t)}[nz(1867)](t){var e=nz;return super[e(1867)](t),this[e(2231)][e(1867)](t[e(2231)]),this[e(679)]=t[e(679)],this[e(2255)]=t[e(2255)],this[e(2256)]=t[e(2256)],this[e(2257)]=t[e(2257)],this[e(2258)]=t[e(2258)],this[e(2270)]=t[e(2270)],this[e(2254)]=t[e(2254)],this[e(2273)]=t.envMap,this[e(1692)]=t[e(1692)],this[e(2275)]=t[e(2275)],this[e(2276)]=t[e(2276)],this[e(2294)]=t[e(2294)],this[e(2295)]=t[e(2295)],this.wireframeLinecap=t.wireframeLinecap,this[e(2297)]=t[e(2297)],this.fog=t[e(2299)],this}},_vector$9=new Vector3,_vector2$1=new Vector2,BufferAttribute=class{constructor(t,e,n){var r=nz;if(Array[r(468)](t))throw new TypeError(r(2304));this[r(2305)]=!0,this[r(542)]="",this[r(2306)]=t,this[r(2307)]=e,this[r(2053)]=void 0!==t?t.length/e:0,this[r(2308)]=!0===n,this[r(2309)]=StaticDrawUsage,this[r(2310)]={offset:0,count:-1},this[r(521)]=0}[nz(2311)](){}set needsUpdate(t){!0===t&&this[nz(521)]++}[nz(2312)](t){return this[nz(2309)]=t,this}[nz(1867)](t){var e=nz;return this[e(542)]=t[e(542)],this[e(2306)]=new(t[e(2306)][e(443)])(t.array),this[e(2307)]=t.itemSize,this.count=t[e(2053)],this.normalized=t[e(2308)],this.usage=t[e(2309)],this}[nz(2313)](t,e,n){var r=nz;t*=this.itemSize,n*=e[r(2307)];for(let i=0,s=this[r(2307)];i0&&(e.userData=this.userData),void 0!==this[t(2171)]){const n=this[t(2171)];for(const t in n)void 0!==n[t]&&(e[t]=n[t]);return e}e[t(571)]={attributes:{}};const n=this[t(677)];null!==n&&(e[t(571)][t(677)]={type:n[t(2306)].constructor[t(542)],array:Array[t(425)][t(497)].call(n[t(2306)])});const r=this[t(2064)];for(const n in r){const i=r[n];e[t(571)][t(2064)][n]=i[t(733)](e[t(571)])}const i={};let s=!1;for(const n in this.morphAttributes){const r=this[t(2328)][n],a=[];for(let n=0,i=r[t(449)];n0&&(i[n]=a,s=!0)}s&&(e.data[t(2328)]=i,e[t(571)][t(2329)]=this[t(2329)]);const a=this[t(865)];a.length>0&&(e.data[t(865)]=JSON[t(1087)](JSON[t(472)](a)));const o=this[t(2330)];return null!==o&&(e[t(571)].boundingSphere={center:o.center[t(1499)](),radius:o[t(2041)]}),e}[nz(1014)](){var t=nz;return(new this.constructor)[t(1867)](this)}[nz(1867)](t){var e=nz;this[e(677)]=null,this[e(2064)]={},this[e(2328)]={},this.groups=[],this[e(2066)]=null,this[e(2330)]=null;const n={};this[e(542)]=t[e(542)];const r=t[e(677)];null!==r&&this[e(2332)](r.clone(n));const i=t[e(2064)];for(const t in i){const r=i[t];this[e(2334)](t,r[e(1014)](n))}const s=t.morphAttributes;for(const t in s){const r=[],i=s[t];for(let t=0,s=i[e(449)];t0){const r=e[n[0]];if(void 0!==r){this[t(2358)]=[],this[t(2359)]={};for(let e=0,n=r[t(449)];en[c(2366)]?null:{distance:h,point:_intersectionPointWorld[c(1014)](),object:t}}function checkBufferGeometryIntersection(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;_vA$1[d(1891)](i,l),_vB$1[d(1891)](i,h),_vC$1[d(1891)](i,u);const f=t.morphTargetInfluences;if(s&&f){_morphA[d(540)](0,0,0),_morphB[d(540)](0,0,0),_morphC[d(540)](0,0,0);for(let t=0,e=s[d(449)];t0?1:-1,h.push(M.x,M.y,M.z),u[y(565)](o/v),u.push(1-s/_),w+=1}}for(let t=0;t<_;t++)for(let e=0;e0&&(n[e(2376)]=this[e(2376)]),n[e(2385)]=this[e(2385)],n[e(2379)]=this[e(2379)];const r={};for(const t in this.extensions)!0===this[e(2386)][t]&&(r[t]=!0);return Object[e(477)](r)[e(449)]>0&&(n[e(2386)]=r),n}},Camera=class extends Object3D{constructor(){var t=nz;super(),this[t(2143)]=!0,this.type=t(2388),this[t(2030)]=new Matrix4,this[t(2031)]=new Matrix4,this[t(2389)]=new Matrix4}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),this[n(2030)][n(1867)](t[n(2030)]),this.projectionMatrix[n(1867)](t.projectionMatrix),this[n(2389)][n(1867)](t[n(2389)]),this}getWorldDirection(t){var e=nz;this[e(2142)](!0,!1);const n=this.matrixWorld[e(1874)];return t[e(540)](-n[8],-n[9],-n[10])[e(569)]()}[nz(2155)](t){var e=nz;super.updateMatrixWorld(t),this[e(2030)][e(1867)](this[e(2033)])[e(1465)]()}[nz(2142)](t,e){var n=nz;super[n(2142)](t,e),this[n(2030)][n(1867)](this[n(2033)]).invert()}clone(){return(new(this[nz(443)])).copy(this)}},PerspectiveCamera=class extends Camera{constructor(t=50,e=1,n=.1,r=2e3){var i=nz;super(),this[i(2390)]=!0,this[i(452)]=i(2391),this[i(2392)]=t,this.zoom=1,this[i(2365)]=n,this[i(2366)]=r,this[i(2393)]=10,this[i(2394)]=e,this[i(918)]=null,this.filmGauge=35,this[i(2395)]=0,this[i(2396)]()}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),this[n(2392)]=t.fov,this[n(2397)]=t[n(2397)],this[n(2365)]=t[n(2365)],this.far=t.far,this[n(2393)]=t.focus,this[n(2394)]=t[n(2394)],this[n(918)]=null===t[n(918)]?null:Object[n(501)]({},t[n(918)]),this[n(2398)]=t[n(2398)],this[n(2395)]=t[n(2395)],this}[nz(2399)](t){var e=nz;const n=.5*this[e(2400)]()/t;this[e(2392)]=2*RAD2DEG*Math.atan(n),this.updateProjectionMatrix()}[nz(2401)](){var t=nz;const e=Math[t(2402)](.5*DEG2RAD*this[t(2392)]);return.5*this.getFilmHeight()/e}[nz(2403)](){var t=nz;return 2*RAD2DEG*Math[t(2404)](Math[t(2402)](.5*DEG2RAD*this[t(2392)])/this.zoom)}[nz(2405)](){var t=nz;return this[t(2398)]*Math.min(this[t(2394)],1)}[nz(2400)](){var t=nz;return this.filmGauge/Math[t(486)](this[t(2394)],1)}[nz(2406)](t,e,n,r,i,s){var a=nz;this.aspect=t/e,null===this[a(918)]&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view[a(2407)]=!0,this[a(918)].fullWidth=t,this.view.fullHeight=e,this[a(918)][a(2408)]=n,this[a(918)][a(2409)]=r,this[a(918)][a(999)]=i,this[a(918)][a(1e3)]=s,this.updateProjectionMatrix()}[nz(2410)](){var t=nz;null!==this[t(918)]&&(this[t(918)].enabled=!1),this[t(2396)]()}[nz(2396)](){var t=nz;const e=this[t(2365)];let n=e*Math[t(2402)](.5*DEG2RAD*this[t(2392)])/this[t(2397)],r=2*n,i=this[t(2394)]*r,s=-.5*i;const a=this[t(918)];if(null!==this[t(918)]&&this.view[t(2407)]){const e=a[t(2411)],o=a.fullHeight;s+=a.offsetX*i/e,n-=a[t(2409)]*r/o,i*=a[t(999)]/e,r*=a[t(1e3)]/o}const o=this[t(2395)];0!==o&&(s+=e*o/this[t(2405)]()),this[t(2031)][t(2412)](s,s+i,n,n-r,e,this[t(2366)]),this.projectionMatrixInverse.copy(this[t(2031)])[t(1465)]()}[nz(733)](t){var e=nz;const n=super.toJSON(t);return n[e(469)][e(2392)]=this[e(2392)],n.object[e(2397)]=this[e(2397)],n[e(469)][e(2365)]=this[e(2365)],n[e(469)][e(2366)]=this.far,n[e(469)][e(2393)]=this.focus,n[e(469)][e(2394)]=this[e(2394)],null!==this[e(918)]&&(n.object[e(918)]=Object.assign({},this[e(918)])),n[e(469)][e(2398)]=this[e(2398)],n[e(469)][e(2395)]=this[e(2395)],n}},fov=90,aspect=1,CubeCamera=class extends Object3D{constructor(t,e,n){var r=nz;super(),this[r(452)]=r(2413),this[r(2414)]=n;const i=new PerspectiveCamera(fov,aspect,t,e);i[r(2160)]=this.layers,i.up[r(540)](0,-1,0),i[r(2080)](new Vector3(1,0,0)),this[r(747)](i);const s=new PerspectiveCamera(fov,aspect,t,e);s[r(2160)]=this[r(2160)],s.up.set(0,-1,0),s.lookAt(new Vector3(-1,0,0)),this[r(747)](s);const a=new PerspectiveCamera(fov,aspect,t,e);a[r(2160)]=this[r(2160)],a.up[r(540)](0,0,1),a.lookAt(new Vector3(0,1,0)),this[r(747)](a);const o=new PerspectiveCamera(fov,aspect,t,e);o.layers=this.layers,o.up[r(540)](0,0,-1),o[r(2080)](new Vector3(0,-1,0)),this.add(o);const c=new PerspectiveCamera(fov,aspect,t,e);c[r(2160)]=this.layers,c.up[r(540)](0,-1,0),c[r(2080)](new Vector3(0,0,1)),this[r(747)](c);const l=new PerspectiveCamera(fov,aspect,t,e);l.layers=this[r(2160)],l.up.set(0,-1,0),l[r(2080)](new Vector3(0,0,-1)),this[r(747)](l)}update(t,e){var n=nz;null===this[n(840)]&&this.updateMatrixWorld();const r=this[n(2414)],[i,s,a,o,c,l]=this.children,h=t[n(2415)](),u=t.toneMapping,d=t.xr[n(2407)];t[n(2416)]=NoToneMapping,t.xr[n(2407)]=!1;const f=r[n(1991)].generateMipmaps;r.texture[n(1964)]=!1,t[n(2417)](r,0),t.render(e,i),t[n(2417)](r,1),t[n(2418)](e,s),t[n(2417)](r,2),t.render(e,a),t[n(2417)](r,3),t[n(2418)](e,o),t[n(2417)](r,4),t[n(2418)](e,c),r.texture[n(1964)]=f,t.setRenderTarget(r,5),t[n(2418)](e,l),t.setRenderTarget(h),t[n(2416)]=u,t.xr[n(2407)]=d,r[n(1991)][n(1970)]=!0}},CubeTexture=class extends Texture{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;super(t=void 0!==t?t:[],e=void 0!==e?e:CubeReflectionMapping,n,r,i,s,a,o,c,l),this[h(2419)]=!0,this[h(1965)]=!1}get[nz(1949)](){return this[nz(1971)]}set[nz(1949)](t){this[nz(1971)]=t}},WebGLCubeRenderTarget=class extends WebGLRenderTarget{constructor(t=1,e={}){var n=nz;super(t,t,e),this.isWebGLCubeRenderTarget=!0;const r={width:t,height:t,depth:1},i=[r,r,r,r,r,r];this.texture=new CubeTexture(i,e[n(1956)],e[n(1972)],e.wrapT,e.magFilter,e[n(1973)],e[n(461)],e.type,e[n(1959)],e.encoding),this[n(1991)][n(1969)]=!0,this[n(1991)][n(1964)]=void 0!==e[n(1964)]&&e[n(1964)],this.texture[n(1973)]=void 0!==e[n(1973)]?e.minFilter:LinearFilter}[nz(2420)](t,e){var n=nz;this.texture[n(452)]=e.type,this.texture[n(1967)]=e[n(1967)],this[n(1991)].generateMipmaps=e[n(1964)],this[n(1991)][n(1973)]=e[n(1973)],this[n(1991)][n(1958)]=e[n(1958)];const r={uniforms:{tEquirect:{value:null}},vertexShader:n(2421),fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new BoxGeometry(5,5,5),s=new ShaderMaterial({name:n(2422),uniforms:cloneUniforms(r[n(2377)]),vertexShader:r[n(2385)],fragmentShader:r[n(2379)],side:BackSide,blending:NoBlending});s[n(2377)][n(2423)][n(439)]=e;const a=new Mesh(i,s),o=e[n(1973)];e[n(1973)]===LinearMipmapLinearFilter&&(e[n(1973)]=LinearFilter);return new CubeCamera(1,10,this)[n(1067)](t,a),e[n(1973)]=o,a[n(2063)][n(1979)](),a[n(2178)].dispose(),this}[nz(750)](t,e,n,r){var i=nz;const s=t[i(2415)]();for(let s=0;s<6;s++)t[i(2417)](this,s),t.clear(e,n,r);t.setRenderTarget(s)}},_vector1=new Vector3,_vector2=new Vector3,_normalMatrix=new Matrix3,Plane=class{constructor(t=new Vector3(1,0,0),e=0){var n=nz;this[n(2424)]=!0,this.normal=t,this[n(2074)]=e}[nz(540)](t,e){var n=nz;return this[n(655)][n(1867)](t),this.constant=e,this}[nz(2425)](t,e,n,r){var i=nz;return this.normal[i(540)](t,e,n),this[i(2074)]=r,this}[nz(2426)](t,e){var n=nz;return this[n(655)][n(1867)](t),this.constant=-e[n(1879)](this[n(655)]),this}[nz(2192)](t,e,n){var r=nz;const i=_vector1.subVectors(n,e)[r(1880)](_vector2[r(1872)](t,e))[r(569)]();return this[r(2426)](i,t),this}[nz(1867)](t){var e=nz;return this[e(655)][e(1867)](t.normal),this.constant=t[e(2074)],this}[nz(569)](){var t=nz;const e=1/this[t(655)].length();return this[t(655)][t(1878)](e),this.constant*=e,this}[nz(1472)](){var t=nz;return this[t(2074)]*=-1,this.normal[t(1472)](),this}[nz(2076)](t){var e=nz;return this[e(655)].dot(t)+this[e(2074)]}distanceToSphere(t){var e=nz;return this.distanceToPoint(t[e(1960)])-t.radius}[nz(2427)](t,e){var n=nz;return e[n(1867)](this[n(655)]).multiplyScalar(-this[n(2076)](t))[n(747)](t)}[nz(2428)](t,e){var n=nz;const r=t.delta(_vector1),i=this[n(655)][n(1879)](r);if(0===i)return 0===this[n(2076)](t.start)?e[n(1867)](t[n(725)]):null;const s=-(t[n(725)].dot(this.normal)+this[n(2074)])/i;return s<0||s>1?null:e[n(1867)](r).multiplyScalar(s).add(t.start)}[nz(2429)](t){var e=nz;const n=this.distanceToPoint(t.start),r=this[e(2076)](t.end);return n<0&&r>0||r<0&&n>0}intersectsBox(t){return t[nz(2073)](this)}[nz(2071)](t){return t.intersectsPlane(this)}[nz(2430)](t){var e=nz;return t[e(1867)](this[e(655)])[e(1878)](-this[e(2074)])}[nz(2028)](t,e){var n=nz;const r=e||_normalMatrix[n(2338)](t),i=this[n(2430)](_vector1)[n(2028)](t),s=this[n(655)][n(1873)](r).normalize();return this[n(2074)]=-i[n(1879)](s),this}[nz(2078)](t){var e=nz;return this[e(2074)]-=t[e(1879)](this[e(655)]),this}equals(t){var e=nz;return t[e(655)][e(1889)](this[e(655)])&&t.constant===this[e(2074)]}[nz(1014)](){var t=nz;return(new(this[t(443)]))[t(1867)](this)}},_sphere$2=new Sphere,_vector$7=new Vector3,Frustum=class{constructor(t=new Plane,e=new Plane,n=new Plane,r=new Plane,i=new Plane,s=new Plane){this[nz(2431)]=[t,e,n,r,i,s]}[nz(540)](t,e,n,r,i,s){var a=nz;const o=this.planes;return o[0][a(1867)](t),o[1][a(1867)](e),o[2][a(1867)](n),o[3].copy(r),o[4][a(1867)](i),o[5][a(1867)](s),this}copy(t){var e=nz;const n=this[e(2431)];for(let r=0;r<6;r++)n[r][e(1867)](t[e(2431)][r]);return this}setFromProjectionMatrix(t){var e=nz;const n=this[e(2431)],r=t[e(1874)],i=r[0],s=r[1],a=r[2],o=r[3],c=r[4],l=r[5],h=r[6],u=r[7],d=r[8],f=r[9],p=r[10],m=r[11],v=r[12],_=r[13],g=r[14],y=r[15];return n[0][e(2425)](o-i,u-c,m-d,y-v).normalize(),n[1].setComponents(o+i,u+c,m+d,y+v)[e(569)](),n[2][e(2425)](o+s,u+l,m+f,y+_)[e(569)](),n[3][e(2425)](o-s,u-l,m-f,y-_).normalize(),n[4][e(2425)](o-a,u-h,m-p,y-g).normalize(),n[5].setComponents(o+a,u+h,m+p,y+g)[e(569)](),this}[nz(2432)](t){var e=nz;const n=t[e(2063)];return null===n[e(2330)]&&n[e(2340)](),_sphere$2[e(1867)](n[e(2330)]).applyMatrix4(t[e(2033)]),this[e(2071)](_sphere$2)}intersectsSprite(t){var e=nz;return _sphere$2.center.set(0,0,0),_sphere$2[e(2041)]=.7071067811865476,_sphere$2.applyMatrix4(t[e(2033)]),this[e(2071)](_sphere$2)}[nz(2071)](t){var e=nz;const n=this[e(2431)],r=t[e(1960)],i=-t[e(2041)];for(let t=0;t<6;t++){if(n[t].distanceToPoint(r)0?t.max.x:t[e(563)].x,_vector$7.y=i[e(655)].y>0?t[e(486)].y:t[e(563)].y,_vector$7.z=i[e(655)].z>0?t[e(486)].z:t.min.z,i[e(2076)](_vector$7)<0)return!1}return!0}[nz(2068)](t){var e=nz;const n=this.planes;for(let r=0;r<6;r++)if(n[r][e(2076)](t)<0)return!1;return!0}[nz(1014)](){var t=nz;return(new(this[t(443)]))[t(1867)](this)}};function WebGLAnimation(){let t=null,e=!1,n=null,r=null;function i(e,s){n(e,s),r=t.requestAnimationFrame(i)}return{start:function(){!0!==e&&null!==n&&(r=t[f(2433)](i),e=!0)},stop:function(){t[f(2434)](r),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function WebGLAttributes(t,e){var n=nz;const r=e[n(2435)],i=new WeakMap;return{get:function(t){var e=n;return t.isInterleavedBufferAttribute&&(t=t[e(571)]),i[e(427)](t)},remove:function(e){var r=n;e.isInterleavedBufferAttribute&&(e=e[r(571)]);const s=i[r(427)](e);s&&(t.deleteBuffer(s.buffer),i[r(748)](e))},update:function(e,s){var a=n;if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t[a(521)] 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif",iridescence_fragment=nz(2452),bumpmap_pars_fragment=nz(2453),clipping_planes_fragment=nz(2454),clipping_planes_pars_fragment="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex="#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex=nz(2455),color_fragment=nz(2456),color_pars_fragment="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex="#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex=nz(2457),common=nz(2458),cube_uv_reflection_fragment=nz(2459),defaultnormal_vertex="vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex=nz(2460),displacementmap_vertex=nz(2461),emissivemap_fragment=nz(2462),emissivemap_pars_fragment=nz(2463),encodings_fragment=nz(2464),encodings_pars_fragment=nz(2465),envmap_fragment="#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment=nz(2466),envmap_pars_fragment="#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex="#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_vertex=nz(2467),fog_vertex=nz(2468),fog_pars_vertex=nz(2469),fog_fragment="#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment="#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment=nz(2470),lightmap_fragment=nz(2471),lightmap_pars_fragment=nz(2472),lights_lambert_fragment=nz(2473),lights_lambert_pars_fragment="varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert\n#define Material_LightProbeLOD( material )\t(0)",lights_pars_begin=nz(2474),envmap_physical_pars_fragment=nz(2475),lights_toon_fragment=nz(2476),lights_toon_pars_fragment=nz(2477),lights_phong_fragment=nz(2478),lights_phong_pars_fragment=nz(2479),lights_physical_fragment="PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment=nz(2480),lights_fragment_begin=nz(2481),lights_fragment_maps=nz(2482),lights_fragment_end=nz(2483),logdepthbuf_fragment=nz(2484),logdepthbuf_pars_fragment="#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex=nz(2485),logdepthbuf_vertex=nz(2486),map_fragment=nz(2487),map_pars_fragment=nz(2488),map_particle_fragment=nz(2489),map_particle_pars_fragment="#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment=nz(2490),metalnessmap_pars_fragment=nz(2491),morphcolor_vertex=nz(2492),morphnormal_vertex=nz(2493),morphtarget_pars_vertex=nz(2494),morphtarget_vertex=nz(2495),normal_fragment_begin="float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps="#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment=nz(2496),normal_pars_vertex=nz(2496),normal_vertex=nz(2497),normalmap_pars_fragment=nz(2498),clearcoat_normal_fragment_begin=nz(2499),clearcoat_normal_fragment_maps=nz(2500),clearcoat_pars_fragment=nz(2501),iridescence_pars_fragment=nz(2502),output_fragment=nz(2503),packing=nz(2504),premultiplied_alpha_fragment=nz(2505),project_vertex="vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment=nz(2506),dithering_pars_fragment="#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment=nz(2507),roughnessmap_pars_fragment=nz(2508),shadowmap_pars_fragment=nz(2509),shadowmap_pars_vertex=nz(2510),shadowmap_vertex=nz(2511),shadowmask_pars_fragment="float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex=nz(2512),skinning_pars_vertex=nz(2513),skinning_vertex=nz(2514),skinnormal_vertex="#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment=nz(2515),specularmap_pars_fragment="#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment=nz(2516),tonemapping_pars_fragment=nz(2517),transmission_fragment="#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment=nz(2518),uv_pars_fragment="#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex=nz(2519),uv_vertex="#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment=nz(2520),uv2_pars_vertex=nz(2521),uv2_vertex="#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex=nz(2522),vertex$h=nz(2523),fragment$h=nz(2524),vertex$g="varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",fragment$g=nz(2525),vertex$f=nz(2526),fragment$f=nz(2527),vertex$e="#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",fragment$e=nz(2528),vertex$d=nz(2529),fragment$d=nz(2530),vertex$c=nz(2531),fragment$c="uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",vertex$b=nz(2532),fragment$b=nz(2533),vertex$a=nz(2534),fragment$a="uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",vertex$9=nz(2535),fragment$9=nz(2536),vertex$8=nz(2537),fragment$8=nz(2538),vertex$7="#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",fragment$7=nz(2539),vertex$6="#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",fragment$6=nz(2540),vertex$5="#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",fragment$5=nz(2541),vertex$4="#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",fragment$4=nz(2542),vertex$3="uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",fragment$3=nz(2543),vertex$2=nz(2544),fragment$2=nz(2545),vertex$1="uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",fragment$1="uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}",ShaderChunk={alphamap_fragment:alphamap_fragment,alphamap_pars_fragment:alphamap_pars_fragment,alphatest_fragment:alphatest_fragment,alphatest_pars_fragment:alphatest_pars_fragment,aomap_fragment:aomap_fragment,aomap_pars_fragment:aomap_pars_fragment,begin_vertex:begin_vertex,beginnormal_vertex:beginnormal_vertex,bsdfs:bsdfs,iridescence_fragment:iridescence_fragment,bumpmap_pars_fragment:bumpmap_pars_fragment,clipping_planes_fragment:clipping_planes_fragment,clipping_planes_pars_fragment:clipping_planes_pars_fragment,clipping_planes_pars_vertex:clipping_planes_pars_vertex,clipping_planes_vertex:clipping_planes_vertex,color_fragment:color_fragment,color_pars_fragment:color_pars_fragment,color_pars_vertex:color_pars_vertex,color_vertex:color_vertex,common:common,cube_uv_reflection_fragment:cube_uv_reflection_fragment,defaultnormal_vertex:defaultnormal_vertex,displacementmap_pars_vertex:displacementmap_pars_vertex,displacementmap_vertex:displacementmap_vertex,emissivemap_fragment:emissivemap_fragment,emissivemap_pars_fragment:emissivemap_pars_fragment,encodings_fragment:encodings_fragment,encodings_pars_fragment:encodings_pars_fragment,envmap_fragment:envmap_fragment,envmap_common_pars_fragment:envmap_common_pars_fragment,envmap_pars_fragment:envmap_pars_fragment,envmap_pars_vertex:envmap_pars_vertex,envmap_physical_pars_fragment:envmap_physical_pars_fragment,envmap_vertex:envmap_vertex,fog_vertex:fog_vertex,fog_pars_vertex:fog_pars_vertex,fog_fragment:fog_fragment,fog_pars_fragment:fog_pars_fragment,gradientmap_pars_fragment:gradientmap_pars_fragment,lightmap_fragment:lightmap_fragment,lightmap_pars_fragment:lightmap_pars_fragment,lights_lambert_fragment:lights_lambert_fragment,lights_lambert_pars_fragment:lights_lambert_pars_fragment,lights_pars_begin:lights_pars_begin,lights_toon_fragment:lights_toon_fragment,lights_toon_pars_fragment:lights_toon_pars_fragment,lights_phong_fragment:lights_phong_fragment,lights_phong_pars_fragment:lights_phong_pars_fragment,lights_physical_fragment:lights_physical_fragment,lights_physical_pars_fragment:lights_physical_pars_fragment,lights_fragment_begin:lights_fragment_begin,lights_fragment_maps:lights_fragment_maps,lights_fragment_end:lights_fragment_end,logdepthbuf_fragment:logdepthbuf_fragment,logdepthbuf_pars_fragment:logdepthbuf_pars_fragment,logdepthbuf_pars_vertex:logdepthbuf_pars_vertex,logdepthbuf_vertex:logdepthbuf_vertex,map_fragment:map_fragment,map_pars_fragment:map_pars_fragment,map_particle_fragment:map_particle_fragment,map_particle_pars_fragment:map_particle_pars_fragment,metalnessmap_fragment:metalnessmap_fragment,metalnessmap_pars_fragment:metalnessmap_pars_fragment,morphcolor_vertex:morphcolor_vertex,morphnormal_vertex:morphnormal_vertex,morphtarget_pars_vertex:morphtarget_pars_vertex,morphtarget_vertex:morphtarget_vertex,normal_fragment_begin:normal_fragment_begin,normal_fragment_maps:normal_fragment_maps,normal_pars_fragment:normal_pars_fragment,normal_pars_vertex:normal_pars_vertex,normal_vertex:normal_vertex,normalmap_pars_fragment:normalmap_pars_fragment,clearcoat_normal_fragment_begin:clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps:clearcoat_normal_fragment_maps,clearcoat_pars_fragment:clearcoat_pars_fragment,iridescence_pars_fragment:iridescence_pars_fragment,output_fragment:output_fragment,packing:packing,premultiplied_alpha_fragment:premultiplied_alpha_fragment,project_vertex:project_vertex,dithering_fragment:dithering_fragment,dithering_pars_fragment:dithering_pars_fragment,roughnessmap_fragment:roughnessmap_fragment,roughnessmap_pars_fragment:roughnessmap_pars_fragment,shadowmap_pars_fragment:shadowmap_pars_fragment,shadowmap_pars_vertex:shadowmap_pars_vertex,shadowmap_vertex:shadowmap_vertex,shadowmask_pars_fragment:shadowmask_pars_fragment,skinbase_vertex:skinbase_vertex,skinning_pars_vertex:skinning_pars_vertex,skinning_vertex:skinning_vertex,skinnormal_vertex:skinnormal_vertex,specularmap_fragment:specularmap_fragment,specularmap_pars_fragment:specularmap_pars_fragment,tonemapping_fragment:tonemapping_fragment,tonemapping_pars_fragment:tonemapping_pars_fragment,transmission_fragment:transmission_fragment,transmission_pars_fragment:transmission_pars_fragment,uv_pars_fragment:uv_pars_fragment,uv_pars_vertex:uv_pars_vertex,uv_vertex:uv_vertex,uv2_pars_fragment:uv2_pars_fragment,uv2_pars_vertex:uv2_pars_vertex,uv2_vertex:uv2_vertex,worldpos_vertex:worldpos_vertex,background_vert:vertex$h,background_frag:fragment$h,backgroundCube_vert:vertex$g,backgroundCube_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Matrix3},uv2Transform:{value:new Matrix3},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2547)],UniformsLib[nz(2548)],UniformsLib[nz(2549)],UniformsLib.lightmap,UniformsLib[nz(2299)]]),vertexShader:ShaderChunk[nz(2550)],fragmentShader:ShaderChunk[nz(2551)]},lambert:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2547)],UniformsLib[nz(2548)],UniformsLib[nz(2549)],UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib[nz(2552)],UniformsLib.normalmap,UniformsLib[nz(2553)],UniformsLib[nz(2299)],UniformsLib.lights,{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk[nz(2554)],fragmentShader:ShaderChunk[nz(2555)]},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib[nz(2548)],UniformsLib.aomap,UniformsLib[nz(2556)],UniformsLib[nz(2557)],UniformsLib[nz(2552)],UniformsLib.normalmap,UniformsLib[nz(2553)],UniformsLib[nz(2299)],UniformsLib[nz(2380)],{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk[nz(2558)],fragmentShader:ShaderChunk[nz(2559)]},standard:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2548)],UniformsLib[nz(2549)],UniformsLib[nz(2556)],UniformsLib.emissivemap,UniformsLib[nz(2552)],UniformsLib[nz(2560)],UniformsLib[nz(2553)],UniformsLib[nz(2561)],UniformsLib[nz(2562)],UniformsLib[nz(2299)],UniformsLib[nz(2380)],{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk[nz(2563)],fragmentShader:ShaderChunk[nz(2564)]},toon:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib.aomap,UniformsLib[nz(2556)],UniformsLib[nz(2557)],UniformsLib.bumpmap,UniformsLib[nz(2560)],UniformsLib[nz(2553)],UniformsLib[nz(2565)],UniformsLib[nz(2299)],UniformsLib[nz(2380)],{emissive:{value:new Color(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk[nz(2566)]},matcap:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib.bumpmap,UniformsLib[nz(2560)],UniformsLib[nz(2553)],UniformsLib[nz(2299)],{matcap:{value:null}}]),vertexShader:ShaderChunk[nz(2567)],fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib[nz(2299)]]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk[nz(2568)]},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib[nz(2299)],{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk[nz(2569)],fragmentShader:ShaderChunk[nz(2570)]},depth:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2553)]]),vertexShader:ShaderChunk[nz(2571)],fragmentShader:ShaderChunk[nz(2572)]},normal:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2552)],UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk[nz(2573)],fragmentShader:ShaderChunk[nz(2574)]},sprite:{uniforms:mergeUniforms([UniformsLib[nz(2575)],UniformsLib[nz(2299)]]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk[nz(2576)]},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null}},vertexShader:ShaderChunk[nz(2577)],fragmentShader:ShaderChunk[nz(2578)]},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0}},vertexShader:ShaderChunk[nz(2579)],fragmentShader:ShaderChunk[nz(2580)]},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk[nz(2581)]},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk[nz(2582)],fragmentShader:ShaderChunk[nz(2583)]},distanceRGBA:{uniforms:mergeUniforms([UniformsLib[nz(2546)],UniformsLib[nz(2553)],{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk[nz(2584)],fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib[nz(2380)],UniformsLib[nz(2299)],{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk[nz(2585)]}};function WebGLBackground(t,e,n,r,i,s,a){const o=new Color(0);let c,l,h=!0===s?0:1,u=null,d=0,p=null;function m(t,e){var n=f;r[n(2599)][n(2231)][n(2600)](t.r,t.g,t.b,e,a)}return{getClearColor:function(){return o},setClearColor:function(t,e=1){o.set(t),h=e,m(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(t){h=t,m(o,h)},render:function(r,s){var a=f;let v=!1,_=!0===s[a(2165)]?s[a(2166)]:null;if(_&&_.isTexture){_=(s[a(2588)]>0?n:e)[a(427)](_)}const g=t.xr,y=g[a(2589)]&&g[a(2589)]();y&&y[a(2590)]===a(2591)&&(_=null),null===_?m(o,h):_&&_[a(1909)]&&(m(_,1),v=!0),(t[a(2592)]||v)&&t[a(750)](t.autoClearColor,t.autoClearDepth,t[a(2593)]),_&&(_[a(2419)]||_.mapping===CubeUVReflectionMapping)?(void 0===l&&(l=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:a(2594),uniforms:cloneUniforms(ShaderLib[a(2595)][a(2377)]),vertexShader:ShaderLib[a(2595)][a(2385)],fragmentShader:ShaderLib.backgroundCube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),l[a(2063)][a(2596)](a(655)),l.geometry[a(2596)]("uv"),l.onBeforeRender=function(t,e,n){var r=a;this.matrixWorld[r(2597)](n[r(2033)])},Object[a(420)](l.material,a(2273),{get:function(){var t=a;return this[t(2377)][t(2273)].value}}),i[a(1067)](l)),l[a(2178)][a(2377)][a(2273)][a(439)]=_,l[a(2178)][a(2377)].flipEnvMap[a(439)]=_[a(2419)]&&!1===_[a(1969)]?-1:1,l[a(2178)][a(2377)][a(2588)][a(439)]=s[a(2588)],(u!==_||d!==_.version||p!==t[a(2416)])&&(l.material.needsUpdate=!0,u=_,d=_.version,p=t[a(2416)]),l[a(2160)][a(1190)](),r.unshift(l,l[a(2063)],l[a(2178)],0,0,null)):_&&_[a(1954)]&&(void 0===c&&(c=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib[a(2166)].uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib[a(2166)][a(2379)],side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),c[a(2063)][a(2596)](a(655)),Object[a(420)](c[a(2178)],a(679),{get:function(){var t=a;return this.uniforms[t(2598)][t(439)]}}),i[a(1067)](c)),c.material[a(2377)][a(2598)][a(439)]=_,!0===_[a(1962)]&&_.updateMatrix(),c[a(2178)].uniforms.uvTransform.value[a(1867)](_[a(1963)]),(u!==_||d!==_[a(521)]||p!==t[a(2416)])&&(c.material.needsUpdate=!0,u=_,d=_[a(521)],p=t[a(2416)]),c.layers[a(1190)](),r.unshift(c,c[a(2063)],c[a(2178)],0,0,null))}}}function WebGLBindingStates(t,e,n,r){var i=nz;const s=t[i(2601)](34921),a=r.isWebGL2?null:e[i(427)]("OES_vertex_array_object"),o=r[i(2435)]||null!==a,c={},l=p(null);let h=l,u=!1;function d(e){var n=i;return r[n(2435)]?t[n(2605)](e):a[n(2606)](e)}function f(e){var n=i;return r.isWebGL2?t.deleteVertexArray(e):a[n(2607)](e)}function p(t){const e=[],n=[],r=[];for(let t=0;t=0){const n=a[e];let r=o[e];if(void 0===r&&(e===s(2163)&&t[s(2163)]&&(r=t.instanceMatrix),e===s(2164)&&t[s(2164)]&&(r=t[s(2164)])),void 0===n)return!0;if(n.attribute!==r)return!0;if(r&&n[s(571)]!==r[s(571)])return!0;c++}}return h.attributesNum!==c||h[s(677)]!==r}(s,E,f,T),z&&function(t,e,n,r){var s=i;const a={},o=e[s(2064)];let c=0;const l=n[s(2609)]();for(const e in l){if(l[e][s(2608)]>=0){let n=o[e];void 0===n&&(e===s(2163)&&t.instanceMatrix&&(n=t[s(2163)]),"instanceColor"===e&&t.instanceColor&&(n=t[s(2164)]));const r={};r[s(2610)]=n,n&&n[s(571)]&&(r.data=n[s(571)]),a[e]=r,c++}}h[s(2064)]=a,h[s(2611)]=c,h[s(677)]=r}(s,E,f,T)}else{const t=!0===l[I(2294)];(h[I(2063)]!==E.id||h[I(2602)]!==f.id||h[I(2294)]!==t)&&(h[I(2063)]=E.id,h[I(2602)]=f.id,h[I(2294)]=t,z=!0)}null!==T&&n[I(1067)](T,34963),(z||u)&&(u=!1,function(s,a,o,c){var l=i;if(!1===r.isWebGL2&&(s.isInstancedMesh||c[l(2620)])&&null===e.get(l(2615)))return;m();const h=c[l(2064)],u=o[l(2609)](),d=a[l(2382)];for(const e in u){const r=u[e];if(r.location>=0){let i=h[e];if(void 0===i&&("instanceMatrix"===e&&s[l(2163)]&&(i=s[l(2163)]),e===l(2164)&&s[l(2164)]&&(i=s[l(2164)])),void 0!==i){const e=i.normalized,a=i[l(2307)],o=n[l(427)](i);if(void 0===o)continue;const h=o[l(703)],u=o[l(452)],d=o[l(2621)];if(i[l(2444)]){const n=i[l(571)],o=n[l(2622)],f=i[l(1389)];if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t[n(2635)](35632,36338).precision>0)return n(2634);e=n(2636)}return e===n(2636)&&t[n(2635)](35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?n(2636):"lowp"}const a=typeof WebGL2RenderingContext!==r(430)&&t instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!==r(430)&&t instanceof WebGL2ComputeRenderingContext;let o=void 0!==n.precision?n[r(2214)]:r(2634);const c=s(o);c!==o&&(console.warn(r(2637),o,r(2638),c,r(2639)),o=c);const l=a||e[r(546)](r(2640)),h=!0===n[r(2641)],u=t[r(2601)](34930),d=t.getParameter(35660),p=t[r(2601)](3379),m=t[r(2601)](34076),v=t.getParameter(34921),_=t[r(2601)](36347),g=t[r(2601)](36348),y=t[r(2601)](36349),E=d>0,T=a||e[r(546)](r(2642));return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:function(){var n=f;if(void 0!==i)return i;if(!0===e.has(n(2632))){const r=e[n(427)]("EXT_texture_filter_anisotropic");i=t[n(2601)](r[n(2633)])}else i=0;return i},getMaxPrecision:s,precision:o,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:m,maxAttributes:v,maxVertexUniforms:_,maxVaryings:g,maxFragmentUniforms:y,vertexTextures:E,floatFragmentTextures:T,floatVertexTextures:E&&T,maxSamples:a?t.getParameter(36183):0}}function WebGLClipping(t){var e=nz;const n=this;let r=null,i=0,s=!1,a=!1;const o=new Plane,c=new Matrix3,l={value:null,needsUpdate:!1};function h(){var t=e;l[t(439)]!==r&&(l[t(439)]=r,l[t(1948)]=i>0),n[t(2644)]=i,n.numIntersection=0}function u(t,r,i,s){var a=e;const h=null!==t?t[a(449)]:0;let u=null;if(0!==h){if(u=l[a(439)],!0!==s||null===u){const e=i+4*h,n=r[a(2030)];c[a(2338)](n),(null===u||u[a(449)]0){const o=new WebGLCubeRenderTarget(a.height/2);return o[s(2420)](t,i),e[s(540)](i,o),i.addEventListener(s(1979),r),n(o[s(1991)],i[s(1956)])}return null}}}return i},dispose:function(){e=new WeakMap}}}ShaderLib[nz(2586)]={uniforms:mergeUniforms([ShaderLib[nz(2587)].uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};var OrthographicCamera=class extends Camera{constructor(t=-1,e=1,n=1,r=-1,i=.1,s=2e3){var a=nz;super(),this[a(2649)]=!0,this[a(452)]=a(2650),this.zoom=1,this[a(918)]=null,this.left=t,this[a(935)]=e,this[a(2651)]=n,this.bottom=r,this[a(2365)]=i,this[a(2366)]=s,this[a(2396)]()}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),this[n(683)]=t[n(683)],this.right=t[n(935)],this[n(2651)]=t[n(2651)],this.bottom=t[n(2652)],this[n(2365)]=t.near,this.far=t.far,this[n(2397)]=t[n(2397)],this[n(918)]=null===t[n(918)]?null:Object[n(501)]({},t[n(918)]),this}[nz(2406)](t,e,n,r,i,s){var a=nz;null===this[a(918)]&&(this[a(918)]={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this[a(918)][a(2407)]=!0,this.view.fullWidth=t,this.view.fullHeight=e,this[a(918)].offsetX=n,this[a(918)][a(2409)]=r,this[a(918)][a(999)]=i,this[a(918)][a(1e3)]=s,this[a(2396)]()}clearViewOffset(){var t=nz;null!==this[t(918)]&&(this[t(918)][t(2407)]=!1),this.updateProjectionMatrix()}[nz(2396)](){var t=nz;const e=(this.right-this[t(683)])/(2*this[t(2397)]),n=(this[t(2651)]-this[t(2652)])/(2*this[t(2397)]),r=(this[t(935)]+this[t(683)])/2,i=(this.top+this[t(2652)])/2;let s=r-e,a=r+e,o=i+n,c=i-n;if(null!==this[t(918)]&&this[t(918)].enabled){const e=(this[t(935)]-this[t(683)])/this[t(918)].fullWidth/this[t(2397)],n=(this[t(2651)]-this.bottom)/this[t(918)][t(2653)]/this[t(2397)];s+=e*this[t(918)][t(2408)],a=s+e*this[t(918)][t(999)],o-=n*this[t(918)].offsetY,c=o-n*this.view.height}this[t(2031)][t(2104)](s,a,o,c,this[t(2365)],this[t(2366)]),this[t(2389)][t(1867)](this[t(2031)])[t(1465)]()}toJSON(t){var e=nz;const n=super[e(733)](t);return n[e(469)][e(2397)]=this[e(2397)],n[e(469)][e(683)]=this[e(683)],n.object[e(935)]=this.right,n.object[e(2651)]=this[e(2651)],n[e(469)][e(2652)]=this[e(2652)],n[e(469)][e(2365)]=this[e(2365)],n[e(469)][e(2366)]=this[e(2366)],null!==this.view&&(n[e(469)][e(918)]=Object[e(501)]({},this[e(918)])),n}},LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color,_oldTarget=null,PHI=(1+Math[nz(761)](5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,PHI,INV_PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(INV_PHI,0,PHI),new Vector3(-INV_PHI,0,PHI),new Vector3(PHI,INV_PHI,0),new Vector3(-PHI,INV_PHI,0)],PMREMGenerator=class{constructor(t){var e=nz;this[e(2654)]=t,this[e(2655)]=null,this[e(2656)]=0,this._cubeSize=0,this[e(2657)]=[],this[e(2658)]=[],this[e(2659)]=[],this[e(2660)]=null,this[e(2661)]=null,this._equirectMaterial=null,this[e(2662)](this._blurMaterial)}[nz(2663)](t,e=0,n=.1,r=100){var i=nz;_oldTarget=this[i(2654)][i(2415)](),this._setSize(256);const s=this[i(2664)]();return s.depthBuffer=!0,this[i(2665)](t,n,r,s),e>0&&this._blur(s,0,0,e),this[i(2666)](s),this[i(2667)](s),s}[nz(2668)](t,e=null){return this._fromTexture(t,e)}[nz(2669)](t,e=null){return this[nz(2670)](t,e)}compileCubemapShader(){var t=nz;null===this[t(2661)]&&(this[t(2661)]=_getCubemapMaterial(),this[t(2662)](this[t(2661)]))}[nz(2671)](){var t=nz;null===this[t(2672)]&&(this._equirectMaterial=_getEquirectMaterial(),this[t(2662)](this[t(2672)]))}[nz(1979)](){var t=nz;this[t(2673)](),null!==this[t(2661)]&&this[t(2661)][t(1979)](),null!==this._equirectMaterial&&this[t(2672)][t(1979)]()}[nz(2674)](t){var e=nz;this[e(2656)]=Math.floor(Math.log2(t)),this._cubeSize=Math[e(428)](2,this._lodMax)}[nz(2673)](){var t=nz;null!==this[t(2660)]&&this[t(2660)][t(1979)](),null!==this[t(2655)]&&this[t(2655)][t(1979)]();for(let e=0;e2?l:0,l,l),c[i(2417)](r),f&&c[i(2418)](d,s),c.render(t,s)}d[i(2063)][i(1979)](),d.material[i(1979)](),c[i(2416)]=h,c[i(2592)]=l,t[i(2166)]=p}[nz(2678)](t,e){var n=nz;const r=this[n(2654)],i=t[n(1956)]===CubeReflectionMapping||t[n(1956)]===CubeRefractionMapping;i?(null===this._cubemapMaterial&&(this[n(2661)]=_getCubemapMaterial()),this[n(2661)][n(2377)][n(2679)].value=!1===t[n(1969)]?-1:1):null===this[n(2672)]&&(this[n(2672)]=_getEquirectMaterial());const s=i?this[n(2661)]:this._equirectMaterial,a=new Mesh(this[n(2657)][0],s);s.uniforms.envMap[n(439)]=t;const o=this._cubeSize;_setViewport(e,0,0,3*o,2*o),r[n(2417)](e),r[n(2418)](a,_flatCamera)}_applyPMREM(t){var e=nz;const n=this[e(2654)],r=n[e(2592)];n[e(2592)]=!1;for(let n=1;nMAX_SAMPLES&&console[o(1176)](o(2685)+i+o(2686)+m+" samples when the maximum is set to "+MAX_SAMPLES);const v=[];let _=0;for(let t=0;tg-LOD_MIN?r-g+LOD_MIN:0),4*(this._cubeSize-y),3*y,2*y),c.setRenderTarget(e),c[o(2418)](h,_flatCamera)}};function _createPlanes(t){var e=nz;const n=[],r=[],i=[];let s=t;const a=t-LOD_MIN+1+EXTRA_LOD_SIGMA[e(449)];for(let o=0;ot-LOD_MIN?c=EXTRA_LOD_SIGMA[o-t+LOD_MIN-1]:0===o&&(c=0),i[e(565)](c);const l=1/(a-2),h=-l,u=1+l,d=[h,h,u,h,u,u,h,h,u,u,h,u],f=6,p=6,m=3,v=2,_=1,g=new Float32Array(m*p*f),y=new Float32Array(v*p*f),E=new Float32Array(_*p*f);for(let t=0;t2?0:-1,i=[n,r,0,n+2/3,r,0,n+2/3,r+1,0,n,r,0,n+2/3,r+1,0,n,r+1,0];g[e(540)](i,m*p*t),y.set(d,v*p*t);const s=[t,t,t,t,t,t];E.set(s,_*p*t)}const T=new BufferGeometry;T.setAttribute("position",new BufferAttribute(g,m)),T.setAttribute("uv",new BufferAttribute(y,v)),T[e(2334)](e(2363),new BufferAttribute(E,_)),n[e(565)](T),s>LOD_MIN&&s--}return{lodPlanes:n,sizeLods:r,sigmas:i}}function _createRenderTarget(t,e,n){var r=nz;const i=new WebGLRenderTarget(t,e,n);return i[r(1991)].mapping=CubeUVReflectionMapping,i[r(1991)][r(542)]=r(2690),i.scissorTest=!0,i}function _setViewport(t,e,n,r,i){var s=nz;t[s(1997)][s(540)](e,n,r,i),t[s(1998)][s(540)](e,n,r,i)}function _getBlurShader(t,e,n){var r=nz;const i=new Float32Array(MAX_SAMPLES),s=new Vector3(0,1,0);return new ShaderMaterial({name:r(2691),defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:t+".0"},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:_getCommonVertexShader(),fragmentShader:r(2692),blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getEquirectMaterial(){return new ShaderMaterial({name:nz(2693),uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCubemapMaterial(){var t=nz;return new ShaderMaterial({name:t(2694),uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:t(2695),blending:NoBlending,depthTest:!1,depthWrite:!1})}function _getCommonVertexShader(){return nz(2696)}function WebGLCubeUVMaps(t){let e=new WeakMap,n=null;function r(t){var n=f;const i=t[n(573)];i[n(1716)](n(1979),r);const s=e[n(427)](i);void 0!==s&&(e[n(748)](i),s[n(1979)]())}return{get:function(i){var s=f;if(i&&i[s(1954)]){const a=i[s(1956)],o=a===EquirectangularReflectionMapping||a===EquirectangularRefractionMapping,c=a===CubeReflectionMapping||a===CubeRefractionMapping;if(o||c){if(i[s(1969)]&&!0===i[s(1970)]){i[s(1970)]=!1;let r=e[s(427)](i);return null===n&&(n=new PMREMGenerator(t)),r=o?n[s(2668)](i,r):n[s(2669)](i,r),e[s(540)](i,r),r[s(1991)]}if(e[s(546)](i))return e[s(427)](i)[s(1991)];{const a=i[s(1971)];if(o&&a&&a[s(1e3)]>0||c&&a&&function(t){let e=0;const n=6;for(let r=0;re[d(2721)]&&(v=Math.ceil(m/e[d(2721)]),m=e[d(2721)]);const _=new Float32Array(m*v*4*i),g=new DataArrayTexture(_,m,v,i);g[d(452)]=FloatType,g[d(1948)]=!0;const y=4*p;for(let t=0;t0)return t;const i=e*n;let s=arrayCacheF32[i];if(void 0===s&&(s=new Float32Array(i),arrayCacheF32[i]=s),0!==e){r.toArray(s,0);for(let r=1,i=0;r!==e;++r)i+=n,t[r].toArray(s,i)}return s}function arraysEqual(t,e){var n=nz;if(t[n(449)]!==e[n(449)])return!1;for(let n=0,r=t.length;n":" ")+" "+s+": "+r[t])}return i[n(549)]("\n")}function getEncodingComponents(t){var e=nz;switch(t){case LinearEncoding:return[e(2765),"( value )"];case sRGBEncoding:return[e(2766),e(2767)];default:return console[e(1176)]("THREE.WebGLProgram: Unsupported encoding:",t),[e(2765),"( value )"]}}function getShaderErrors(t,e,n){var r=nz;const i=t.getShaderParameter(e,35713),s=t[r(2768)](e)[r(772)]();if(i&&""===s)return"";const a=/ERROR: 0:(\d+)/[r(601)](s);if(a){const i=parseInt(a[1]);return n[r(736)]()+"\n\n"+s+"\n\n"+handleSource(t[r(2769)](e),i)}return s}function getTexelEncodingFunction(t,e){var n=nz;const r=getEncodingComponents(e);return n(2770)+t+n(2771)+r[0]+r[1]+n(2772)}function getToneMappingFunction(t,e){var n=nz;let r;switch(e){case LinearToneMapping:r=n(2765);break;case ReinhardToneMapping:r=n(2773);break;case CineonToneMapping:r=n(2774);break;case ACESFilmicToneMapping:r=n(2775);break;case CustomToneMapping:r=n(2776);break;default:console[n(1176)](n(2777),e),r=n(2765)}return"vec3 "+t+n(2778)+r+n(2779)}function generateExtensions(t){var e=nz;return[t.extensionDerivatives||t[e(2780)]||t.bumpMap||t[e(2781)]||t[e(2246)]||t[e(2298)]||t[e(2782)]===e(2586)?e(2783):"",(t[e(2784)]||t.logarithmicDepthBuffer)&&t[e(2785)]?e(2786):"",t[e(2787)]&&t.rendererExtensionDrawBuffers?e(2788):"",(t[e(2789)]||t[e(2273)]||t.transmission)&&t[e(2790)]?"#extension GL_EXT_shader_texture_lod : enable":""][e(464)](filterEmptyLine).join("\n")}function generateDefines(t){var e=nz;const n=[];for(const r in t){const i=t[r];!1!==i&&n[e(565)](e(2791)+r+" "+i)}return n[e(549)]("\n")}function fetchAttributeLocations(t,e){var n=nz;const r={},i=t[n(2757)](e,35721);for(let s=0;s/gm;function resolveIncludes(t){return t[nz(448)](includePattern,includeReplacer)}function includeReplacer(t,e){var n=nz;const r=ShaderChunk[e];if(void 0===r)throw new Error(n(2806)+e+">");return resolveIncludes(r)}var unrollLoopPattern=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function unrollLoops(t){return t[nz(448)](unrollLoopPattern,loopReplacer)}function loopReplacer(t,e,n,r){var i=nz;let s="";for(let t=parseInt(e);t0&&(_+="\n"),g=[p,m][i(464)](filterEmptyLine).join("\n"),g[i(449)]>0&&(g+="\n")):(_=[generatePrecision(n),i(2832)+n.shaderName,m,n.instancing?i(2833):"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"",n[i(2834)]&&n[i(2299)]?i(2835):"",n[i(2834)]&&n.fogExp2?i(2836):"",n[i(679)]?i(2837):"",n[i(2273)]?i(2838):"",n[i(2273)]?i(2791)+u:"",n[i(2255)]?i(2839):"",n[i(2257)]?i(2840):"",n[i(2269)]?i(2841):"",n[i(2259)]?i(2842):"",n[i(2261)]?i(2843):"",n[i(2261)]&&n[i(2844)]?"#define OBJECTSPACE_NORMALMAP":"",n[i(2261)]&&n.tangentSpaceNormalMap?i(2845):"",n[i(2244)]?i(2846):"",n[i(2245)]?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n[i(2246)]?i(2847):"",n[i(2251)]?i(2848):"",n[i(2252)]?i(2849):"",n[i(2264)]&&n[i(2850)]?i(2851):"",n[i(2270)]?"#define USE_SPECULARMAP":"",n[i(2271)]?i(2852):"",n[i(2272)]?i(2853):"",n[i(2267)]?i(2854):"",n[i(2268)]?i(2855):"",n[i(2254)]?"#define USE_ALPHAMAP":"",n[i(2278)]?i(2856):"",n[i(2279)]?i(2857):"",n[i(2281)]?i(2858):"",n[i(2859)]?i(2860):"",n[i(2861)]?i(2862):"",n[i(2863)]?"#define USE_TANGENT":"",n[i(2285)]?i(2864):"",n[i(2865)]?"#define USE_COLOR_ALPHA":"",n[i(2866)]?i(2867):"",n[i(2868)]?i(2869):"",n[i(2298)]?i(2870):"",n[i(2871)]?i(2872):"",n[i(2873)]?i(2874):"",n[i(2875)]&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n[i(2876)]&&n[i(2435)]?i(2877):"",n[i(2878)]>0&&n[i(2435)]?"#define MORPHTARGETS_TEXTURE":"",n[i(2878)]>0&&n[i(2435)]?"#define MORPHTARGETS_TEXTURE_STRIDE "+n[i(2879)]:"",n[i(2878)]>0&&n[i(2435)]?"#define MORPHTARGETS_COUNT "+n[i(2878)]:"",n.doubleSided?i(2880):"",n.flipSided?i(2881):"",n[i(2882)]?i(2883):"",n[i(2882)]?i(2791)+l:"",n[i(2284)]?"#define USE_SIZEATTENUATION":"",n[i(2641)]?i(2884):"",n[i(2641)]&&n[i(2785)]?"#define USE_LOGDEPTHBUF_EXT":"",i(2885),i(2886),i(2887),"uniform mat4 viewMatrix;",i(2888),i(2889),i(2890),i(2891),i(2892),"#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;",i(2893),i(2894),i(2895),"attribute vec2 uv;",i(2896),"\tattribute vec4 tangent;",i(2893),i(2897),"\tattribute vec4 color;","#elif defined( USE_COLOR )",i(2898),i(2893),i(2899),i(2900),"\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;",i(2901),i(2902),i(2903),"\t\tattribute vec3 morphNormal1;",i(2904),i(2905),i(2906),"\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;",i(2907),i(2908),"\t#endif","#endif",i(2909),i(2910),"\tattribute vec4 skinWeight;",i(2893),"\n"][i(464)](filterEmptyLine).join("\n"),g=[p,generatePrecision(n),i(2832)+n[i(2911)],m,n[i(2834)]&&n.fog?i(2835):"",n[i(2834)]&&n[i(2912)]?i(2836):"",n.map?"#define USE_MAP":"",n[i(2253)]?i(2913):"",n[i(2273)]?"#define USE_ENVMAP":"",n[i(2273)]?i(2791)+h:"",n[i(2273)]?i(2791)+u:"",n[i(2273)]?i(2791)+d:"",f?i(2914)+f[i(2915)]:"",f?i(2916)+f[i(2917)]:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",n[i(2255)]?i(2839):"",n[i(2257)]?i(2840):"",n[i(2269)]?i(2841):"",n[i(2259)]?i(2842):"",n[i(2261)]?"#define USE_NORMALMAP":"",n.normalMap&&n[i(2844)]?i(2918):"",n.normalMap&&n[i(2781)]?i(2845):"",n[i(2242)]?i(2919):"",n[i(2244)]?i(2846):"",n[i(2245)]?i(2920):"",n[i(2246)]?i(2847):"",n.iridescence?i(2921):"",n.iridescenceMap?i(2848):"",n[i(2252)]?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?i(2922):"",n[i(2271)]?"#define USE_SPECULARINTENSITYMAP":"",n[i(2272)]?i(2853):"",n[i(2267)]?i(2854):"",n.metalnessMap?i(2855):"",n[i(2254)]?i(2923):"",n.alphaTest?i(2924):"",n[i(2925)]?i(2926):"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n[i(2861)]?"#define USE_SHEENROUGHNESSMAP":"",n.transmission?i(2856):"",n[i(2279)]?i(2857):"",n[i(2281)]?i(2858):"",n.decodeVideoTexture?i(2927):"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?i(2864):"",n.vertexAlphas?i(2928):"",n[i(2866)]?i(2867):"",n[i(2868)]?i(2869):"",n[i(2277)]?i(2929):"",n[i(2298)]?i(2870):"",n[i(2930)]?i(2880):"",n[i(2931)]?i(2881):"",n[i(2882)]?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?i(2791)+l:"",n[i(2220)]?i(2932):"",n[i(2933)]?i(2934):"",n.logarithmicDepthBuffer?i(2884):"",n.logarithmicDepthBuffer&&n[i(2785)]?"#define USE_LOGDEPTHBUF_EXT":"",i(2935),"uniform vec3 cameraPosition;",i(2890),n[i(2416)]!==NoToneMapping?i(2936):"",n.toneMapping!==NoToneMapping?ShaderChunk[i(2937)]:"",n[i(2416)]!==NoToneMapping?getToneMappingFunction(i(2416),n[i(2416)]):"",n[i(2218)]?i(2938):"",n[i(2939)]?i(2940):"",ShaderChunk[i(2941)],getTexelEncodingFunction("linearToOutputTexel",n[i(2942)]),n[i(2943)]?"#define DEPTH_PACKING "+n[i(2944)]:"","\n"][i(464)](filterEmptyLine).join("\n")),o=resolveIncludes(o),o=replaceLightNums(o,n),o=replaceClippingPlaneNums(o,n),c=resolveIncludes(c),c=replaceLightNums(c,n),c=replaceClippingPlaneNums(c,n),o=unrollLoops(o),c=unrollLoops(c),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(y=i(2945),_=[i(2946),"#define attribute in","#define varying out",i(2947)][i(549)]("\n")+"\n"+_,g=[i(2948),n[i(2387)]===GLSL3?"":i(2949),n[i(2387)]===GLSL3?"":i(2950),i(2951),i(2947),i(2952),"#define texture2DProj textureProj",i(2953),i(2954),i(2955),i(2956),i(2957),i(2958)][i(549)]("\n")+"\n"+g);const E=y+g+c,T=WebGLShader(s,35633,y+_+o),I=WebGLShader(s,35632,E);if(s[i(2959)](v,T),s[i(2959)](v,I),void 0!==n[i(2383)]?s[i(2960)](v,0,n[i(2383)]):!0===n[i(2873)]&&s[i(2960)](v,0,i(2065)),s[i(2961)](v),t.debug[i(2962)]){const t=s[i(2963)](v).trim(),e=s[i(2768)](T).trim(),n=s[i(2768)](I).trim();let r=!0,a=!0;if(!1===s[i(2757)](v,35714)){r=!1;const e=getShaderErrors(s,T,i(2964)),n=getShaderErrors(s,I,"fragment");console[i(819)](i(2965)+s.getError()+i(2966)+s[i(2757)](v,35715)+i(2967)+t+"\n"+e+"\n"+n)}else""!==t?console[i(1176)]("THREE.WebGLProgram: Program Info Log:",t):(""===e||""===n)&&(a=!1);a&&(this[i(2968)]={runnable:r,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:g}})}let z,S;return s[i(2969)](T),s[i(2969)](I),this[i(2722)]=function(){return void 0===z&&(z=new WebGLUniforms(s,v)),z},this[i(2609)]=function(){return void 0===S&&(S=fetchAttributeLocations(s,v)),S},this[i(1725)]=function(){r[i(2970)](this),s.deleteProgram(v),this.program=void 0},this[i(542)]=n.shaderName,this.id=programIdCount++,this[i(2971)]=e,this[i(2972)]=1,this[i(2602)]=v,this[i(2385)]=T,this.fragmentShader=I,this}var _id=0,WebGLShaderCache=class{constructor(){var t=nz;this.shaderCache=new Map,this[t(2973)]=new Map}[nz(1067)](t){var e=nz;const n=t[e(2385)],r=t[e(2379)],i=this[e(2974)](n),s=this._getShaderStage(r),a=this[e(2975)](t);return!1===a[e(546)](i)&&(a[e(747)](i),i.usedTimes++),!1===a.has(s)&&(a.add(s),s[e(2972)]++),this}[nz(1204)](t){var e=nz;const n=this.materialCache[e(427)](t);for(const t of n)t[e(2972)]--,0===t.usedTimes&&this[e(2976)][e(748)](t[e(973)]);return this.materialCache[e(748)](t),this}[nz(2977)](t){var e=nz;return this[e(2974)](t[e(2385)]).id}getFragmentShaderID(t){var e=nz;return this[e(2974)](t[e(2379)]).id}[nz(1979)](){var t=nz;this[t(2976)][t(750)](),this[t(2973)][t(750)]()}[nz(2975)](t){var e=nz;const n=this.materialCache;let r=n[e(427)](t);return void 0===r&&(r=new Set,n.set(t,r)),r}_getShaderStage(t){var e=nz;const n=this.shaderCache;let r=n[e(427)](t);return void 0===r&&(r=new WebGLShaderStage(t),n[e(540)](t,r)),r}},WebGLShaderStage=class{constructor(t){var e=nz;this.id=_id++,this[e(973)]=t,this[e(2972)]=0}};function WebGLPrograms(t,e,n,r,i,s,a){var o=nz;const c=new Layers,l=new WebGLShaderCache,h=[],u=i[o(2435)],d=i[o(2641)],f=i[o(2978)];let p=i[o(2214)];const m={MeshDepthMaterial:"depth",MeshDistanceMaterial:o(2979),MeshNormalMaterial:o(655),MeshBasicMaterial:o(2980),MeshLambertMaterial:o(2981),MeshPhongMaterial:o(2982),MeshToonMaterial:o(2983),MeshStandardMaterial:o(2586),MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:o(2984),PointsMaterial:o(2985),ShadowMaterial:"shadow",SpriteMaterial:"sprite"};return{getParameters:function(s,c,h,v,_){var g=o;const y=v.fog,E=_[g(2063)],T=s[g(2986)]?v.environment:null,I=(s.isMeshStandardMaterial?n:e)[g(427)](s[g(2273)]||T),z=I&&I[g(1956)]===CubeUVReflectionMapping?I.image[g(1e3)]:null,S=m[s[g(452)]];null!==s[g(2214)]&&(p=i[g(2987)](s[g(2214)]),p!==s[g(2214)]&&console[g(1176)](g(2988),s[g(2214)],g(2638),p,g(2639)));const x=E[g(2328)][g(2065)]||E[g(2328)][g(655)]||E[g(2328)][g(2231)],b=void 0!==x?x[g(449)]:0;let w,C,M,R,A=0;if(void 0!==E[g(2328)][g(2065)]&&(A=1),void 0!==E[g(2328)][g(655)]&&(A=2),void 0!==E.morphAttributes.color&&(A=3),S){const t=ShaderLib[S];w=t[g(2385)],C=t[g(2379)]}else w=s[g(2385)],C=s[g(2379)],l.update(s),M=l[g(2977)](s),R=l[g(2989)](s);const D=t.getRenderTarget(),L=s.alphaTest>0,P=s[g(2242)]>0,O=s[g(2248)]>0;return{isWebGL2:u,shaderID:S,shaderName:s[g(452)],vertexShader:w,fragmentShader:C,defines:s.defines,customVertexShaderID:M,customFragmentShaderID:R,isRawShaderMaterial:!0===s[g(2831)],glslVersion:s[g(2387)],precision:p,instancing:!0===_.isInstancedMesh,instancingColor:!0===_.isInstancedMesh&&null!==_[g(2164)],supportsVertexTextures:f,outputEncoding:null===D?t[g(2942)]:!0===D[g(2990)]?D[g(1991)].encoding:LinearEncoding,map:!!s[g(679)],matcap:!!s.matcap,envMap:!!I,envMapMode:I&&I[g(1956)],envMapCubeUVHeight:z,lightMap:!!s[g(2255)],aoMap:!!s[g(2257)],emissiveMap:!!s.emissiveMap,bumpMap:!!s[g(2259)],normalMap:!!s[g(2261)],objectSpaceNormalMap:s.normalMapType===ObjectSpaceNormalMap,tangentSpaceNormalMap:s.normalMapType===TangentSpaceNormalMap,decodeVideoTexture:!!s[g(679)]&&!0===s[g(679)][g(2991)]&&s[g(679)].encoding===sRGBEncoding,clearcoat:P,clearcoatMap:P&&!!s[g(2244)],clearcoatRoughnessMap:P&&!!s[g(2245)],clearcoatNormalMap:P&&!!s.clearcoatNormalMap,iridescence:O,iridescenceMap:O&&!!s[g(2251)],iridescenceThicknessMap:O&&!!s[g(2252)],displacementMap:!!s[g(2264)],roughnessMap:!!s[g(2267)],metalnessMap:!!s.metalnessMap,specularMap:!!s[g(2270)],specularIntensityMap:!!s[g(2271)],specularColorMap:!!s[g(2272)],opaque:!1===s[g(2197)]&&s.blending===NormalBlending,alphaMap:!!s[g(2254)],alphaTest:L,gradientMap:!!s[g(2277)],sheen:s[g(2925)]>0,sheenColorMap:!!s[g(2859)],sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s[g(2279)],thicknessMap:!!s[g(2281)],combine:s[g(1692)],vertexTangents:!!s[g(2261)]&&!!E[g(2064)][g(2339)],vertexColors:s.vertexColors,vertexAlphas:!0===s[g(2285)]&&!!E[g(2064)][g(2231)]&&4===E[g(2064)][g(2231)][g(2307)],vertexUvs:!!(s.map||s[g(2259)]||s[g(2261)]||s[g(2270)]||s[g(2254)]||s[g(2269)]||s[g(2267)]||s.metalnessMap||s[g(2244)]||s.clearcoatRoughnessMap||s.clearcoatNormalMap||s[g(2251)]||s[g(2252)]||s[g(2264)]||s[g(2279)]||s[g(2281)]||s[g(2271)]||s[g(2272)]||s.sheenColorMap||s[g(2861)]),uvsVertexOnly:!(s[g(679)]||s[g(2259)]||s[g(2261)]||s[g(2270)]||s[g(2254)]||s[g(2269)]||s[g(2267)]||s[g(2268)]||s[g(2246)]||s.iridescenceMap||s[g(2252)]||s.transmission>0||s[g(2279)]||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheen>0||s.sheenColorMap||s[g(2861)]||!s[g(2264)]),fog:!!y,useFog:!0===s.fog,fogExp2:y&&y[g(2992)],flatShading:!!s[g(2298)],sizeAttenuation:s[g(2284)],logarithmicDepthBuffer:d,skinning:!0===_.isSkinnedMesh,morphTargets:void 0!==E[g(2328)].position,morphNormals:void 0!==E.morphAttributes.normal,morphColors:void 0!==E.morphAttributes[g(2231)],morphTargetsCount:b,morphTextureStride:A,numDirLights:c.directional[g(449)],numPointLights:c[g(1220)][g(449)],numSpotLights:c[g(2993)][g(449)],numSpotLightMaps:c[g(2994)].length,numRectAreaLights:c.rectArea[g(449)],numHemiLights:c[g(2995)][g(449)],numDirLightShadows:c[g(2996)].length,numPointLightShadows:c[g(2997)][g(449)],numSpotLightShadows:c[g(2998)][g(449)],numSpotLightShadowsWithMaps:c[g(2795)],numClippingPlanes:a[g(2644)],numClipIntersection:a[g(2648)],dithering:s[g(2218)],shadowMapEnabled:t[g(2999)][g(2407)]&&h[g(449)]>0,shadowMapType:t.shadowMap[g(452)],toneMapping:s[g(2221)]?t[g(2416)]:NoToneMapping,physicallyCorrectLights:t[g(2933)],premultipliedAlpha:s.premultipliedAlpha,doubleSided:s[g(2196)]===DoubleSide,flipSided:s.side===BackSide,useDepthPacking:!!s[g(2944)],depthPacking:s[g(2944)]||0,index0AttributeName:s[g(2383)],extensionDerivatives:s[g(2386)]&&s[g(2386)][g(3e3)],extensionFragDepth:s[g(2386)]&&s.extensions[g(3001)],extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s[g(2386)]&&s[g(2386)].shaderTextureLOD,rendererExtensionFragDepth:u||r[g(546)]("EXT_frag_depth"),rendererExtensionDrawBuffers:u||r.has(g(2640)),rendererExtensionShaderTextureLod:u||r[g(546)](g(3002)),customProgramCacheKey:s[g(3003)]()}},getProgramCacheKey:function(e){var n=o;const r=[];if(e[n(2782)]?r[n(565)](e[n(2782)]):(r.push(e[n(3004)]),r[n(565)](e[n(3005)])),void 0!==e[n(2376)])for(const t in e.defines)r.push(t),r[n(565)](e.defines[t]);return!1===e[n(2831)]&&(function(t,e){var n=o;t[n(565)](e[n(2214)]),t[n(565)](e[n(2942)]),t.push(e.envMapMode),t[n(565)](e[n(2780)]),t.push(e[n(1692)]),t[n(565)](e[n(2866)]),t[n(565)](e[n(2912)]),t[n(565)](e[n(2284)]),t[n(565)](e[n(2878)]),t[n(565)](e.morphAttributeCount),t[n(565)](e[n(2796)]),t[n(565)](e[n(2799)]),t.push(e.numSpotLights),t[n(565)](e[n(2794)]),t[n(565)](e[n(2800)]),t[n(565)](e[n(2798)]),t[n(565)](e[n(2801)]),t[n(565)](e[n(2803)]),t[n(565)](e[n(2802)]),t.push(e.numSpotLightShadowsWithMaps),t[n(565)](e[n(2815)]),t.push(e[n(2416)]),t.push(e.numClippingPlanes),t.push(e[n(2805)]),t[n(565)](e[n(2944)])}(r,e),function(t,e){var n=o;c[n(1192)](),e[n(2435)]&&c[n(745)](0);e[n(2850)]&&c[n(745)](1);e[n(3006)]&&c[n(745)](2);e[n(3007)]&&c[n(745)](3);e[n(679)]&&c[n(745)](4);e[n(2253)]&&c[n(745)](5);e.envMap&&c[n(745)](6);e[n(2255)]&&c.enable(7);e[n(2257)]&&c[n(745)](8);e[n(2269)]&&c[n(745)](9);e.bumpMap&&c[n(745)](10);e[n(2261)]&&c[n(745)](11);e.objectSpaceNormalMap&&c[n(745)](12);e[n(2781)]&&c[n(745)](13);e.clearcoat&&c[n(745)](14);e[n(2244)]&&c[n(745)](15);e[n(2245)]&&c[n(745)](16);e.clearcoatNormalMap&&c[n(745)](17);e[n(2248)]&&c.enable(18);e[n(2251)]&&c[n(745)](19);e[n(2252)]&&c[n(745)](20);e.displacementMap&&c[n(745)](21);e[n(2270)]&&c.enable(22);e[n(2267)]&&c[n(745)](23);e[n(2268)]&&c[n(745)](24);e[n(2277)]&&c[n(745)](25);e.alphaMap&&c[n(745)](26);e.alphaTest&&c[n(745)](27);e[n(2285)]&&c[n(745)](28);e[n(2865)]&&c.enable(29);e.vertexUvs&&c.enable(30);e[n(2863)]&&c.enable(31);e[n(2868)]&&c[n(745)](32);t[n(565)](c[n(2115)]),c[n(1192)](),e[n(2299)]&&c[n(745)](0);e[n(2834)]&&c[n(745)](1);e.flatShading&&c[n(745)](2);e[n(2641)]&&c[n(745)](3);e[n(2871)]&&c[n(745)](4);e[n(2873)]&&c[n(745)](5);e[n(2875)]&&c[n(745)](6);e[n(2876)]&&c[n(745)](7);e[n(2220)]&&c[n(745)](8);e[n(2882)]&&c[n(745)](9);e[n(2933)]&&c[n(745)](10);e[n(2930)]&&c[n(745)](11);e[n(2931)]&&c[n(745)](12);e.useDepthPacking&&c[n(745)](13);e[n(2218)]&&c[n(745)](14);e.specularIntensityMap&&c[n(745)](15);e[n(2272)]&&c.enable(16);e[n(2278)]&&c[n(745)](17);e[n(2279)]&&c[n(745)](18);e[n(2281)]&&c[n(745)](19);e.sheen&&c[n(745)](20);e[n(2859)]&&c[n(745)](21);e[n(2861)]&&c[n(745)](22);e[n(3008)]&&c[n(745)](23);e[n(2939)]&&c[n(745)](24);t[n(565)](c[n(2115)])}(r,e),r[n(565)](t.outputEncoding)),r[n(565)](e[n(3003)]),r[n(549)]()},getUniforms:function(t){var e=o;const n=m[t[e(452)]];let r;if(n){const t=ShaderLib[n];r=UniformsUtils[e(1014)](t[e(2377)])}else r=t[e(2377)];return r},acquireProgram:function(e,n){var r=o;let i;for(let t=0,e=h[r(449)];t0?r.push(u):!0===a[h(2197)]?i[h(565)](u):n.push(u)},unshift:function(t,e,a,o,c,l){var h=f;const u=s(t,e,a,o,c,l);a[h(2278)]>0?r.unshift(u):!0===a[h(2197)]?i[h(691)](u):n.unshift(u)},finish:function(){var n=f;for(let r=e,i=t[n(449)];r1&&n[s(688)](t||painterSortStable),r[s(449)]>1&&r[s(688)](e||reversePainterSortStable),i[s(449)]>1&&i[s(688)](e||reversePainterSortStable)}}}function WebGLRenderLists(){let t=new WeakMap;return{get:function(e,n){var r=f;const i=t.get(e);let s;return void 0===i?(s=new WebGLRenderList,t[r(540)](e,[s])):n>=i[r(449)]?(s=new WebGLRenderList,i[r(565)](s)):s=i[n],s},dispose:function(){t=new WeakMap}}}function f(t,e){var n=d();return(f=function(t,e){return n[t-=419]})(t,e)}function UniformsCache(){const t={};return{get:function(e){var n=f;if(void 0!==t[e.id])return t[e.id];let r;switch(e.type){case"DirectionalLight":r={direction:new Vector3,color:new Color};break;case"SpotLight":r={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case n(3011):r={position:new Vector3,color:new Color,distance:0,decay:0};break;case n(3012):r={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case n(3013):r={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3}}return t[e.id]=r,r}}}function ShadowUniformsCache(){const t={};return{get:function(e){var n=f;if(void 0!==t[e.id])return t[e.id];let r;switch(e[n(452)]){case n(3014):case n(3015):r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case n(3011):r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=r,r}}}var nextVersion=0;function shadowCastingAndTexturingLightsFirst(t,e){var n=nz;return(e.castShadow?2:0)-(t[n(2159)]?2:0)+(e[n(679)]?1:0)-(t.map?1:0)}function WebGLLights(t,e){var n=nz;const r=new UniformsCache,i=ShadowUniformsCache(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let t=0;t<9;t++)s[n(3016)].push(new Vector3);const a=new Vector3,o=new Matrix4,c=new Matrix4;return{setup:function(a,o){var c=n;let l=0,h=0,u=0;for(let t=0;t<9;t++)s.probe[t][c(540)](0,0,0);let d=0,f=0,p=0,m=0,v=0,_=0,g=0,y=0,E=0,T=0;a.sort(shadowCastingAndTexturingLightsFirst);const I=!0!==o?Math.PI:1;for(let t=0,e=a.length;t0&&(e[c(2435)]?(s.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,s[c(3052)]=UniformsLib[c(3053)]):!0===t.has("OES_texture_float_linear")?(s[c(3054)]=UniformsLib[c(3055)],s[c(3052)]=UniformsLib[c(3053)]):!0===t[c(546)](c(2706))?(s[c(3054)]=UniformsLib[c(3056)],s[c(3052)]=UniformsLib[c(3057)]):console[c(819)](c(3058))),s[c(3059)][0]=l,s[c(3059)][1]=h,s[c(3059)][2]=u;const z=s[c(1049)];(z.directionalLength!==d||z[c(3060)]!==f||z[c(3061)]!==p||z[c(3062)]!==m||z[c(3063)]!==v||z[c(3064)]!==_||z[c(3065)]!==g||z[c(3066)]!==y||z[c(3067)]!==E)&&(s.directional[c(449)]=d,s.spot.length=p,s.rectArea.length=m,s.point[c(449)]=f,s.hemi.length=v,s.directionalShadow[c(449)]=_,s[c(2996)][c(449)]=_,s.pointShadow.length=g,s[c(2997)].length=g,s[c(3068)].length=y,s[c(2998)].length=y,s[c(3029)][c(449)]=_,s[c(3048)][c(449)]=g,s[c(3036)][c(449)]=y+E-T,s[c(2994)].length=E,s.numSpotLightShadowsWithMaps=T,z[c(3069)]=d,z[c(3060)]=f,z[c(3061)]=p,z[c(3062)]=m,z.hemiLength=v,z[c(3064)]=_,z.numPointShadows=g,z.numSpotShadows=y,z[c(3067)]=E,s[c(521)]=nextVersion++)},setupView:function(t,e){var r=n;let i=0,l=0,h=0,u=0,d=0;const f=e[r(2030)];for(let e=0,n=t[r(449)];e=a[s(449)]?(o=new WebGLRenderState(t,e),a.push(o)):o=a[i],o},dispose:function(){n=new WeakMap}}}var MeshDepthMaterial=class extends Material{constructor(t){var e=nz;super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this[e(679)]=null,this[e(2254)]=null,this[e(2264)]=null,this[e(2265)]=1,this[e(2266)]=0,this[e(2294)]=!1,this[e(2295)]=1,this[e(2226)](t)}[nz(1867)](t){var e=nz;return super[e(1867)](t),this[e(2944)]=t[e(2944)],this[e(679)]=t[e(679)],this[e(2254)]=t[e(2254)],this[e(2264)]=t[e(2264)],this[e(2265)]=t[e(2265)],this[e(2266)]=t[e(2266)],this.wireframe=t[e(2294)],this.wireframeLinewidth=t.wireframeLinewidth,this}},MeshDistanceMaterial=class extends Material{constructor(t){var e=nz;super(),this[e(3072)]=!0,this[e(452)]="MeshDistanceMaterial",this[e(3073)]=new Vector3,this[e(3074)]=1,this.farDistance=1e3,this.map=null,this[e(2254)]=null,this[e(2264)]=null,this.displacementScale=1,this[e(2266)]=0,this[e(2226)](t)}[nz(1867)](t){var e=nz;return super.copy(t),this.referencePosition.copy(t[e(3073)]),this.nearDistance=t.nearDistance,this[e(3075)]=t[e(3075)],this[e(679)]=t[e(679)],this[e(2254)]=t[e(2254)],this.displacementMap=t[e(2264)],this.displacementScale=t.displacementScale,this[e(2266)]=t[e(2266)],this}},vertex="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragment=nz(3076);function WebGLShadowMap(t,e,n){var r=nz;let i=new Frustum;const s=new Vector2,a=new Vector2,o=new Vector4,c=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),l=new MeshDistanceMaterial,h={},u=n[r(2721)],d={0:BackSide,1:FrontSide,2:DoubleSide},f=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment}),p=f.clone();p[r(2376)][r(3077)]=1;const m=new BufferGeometry;m.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Mesh(m,f),_=this;function g(n,i){var a=r;const o=e[a(1067)](v);f[a(2376)][a(3091)]!==n[a(3092)]&&(f[a(2376)][a(3091)]=n[a(3092)],p[a(2376)][a(3091)]=n[a(3092)],f[a(1948)]=!0,p[a(1948)]=!0),null===n[a(3093)]&&(n[a(3093)]=new WebGLRenderTarget(s.x,s.y)),f.uniforms[a(3094)].value=n[a(679)][a(1991)],f.uniforms[a(3095)][a(439)]=n[a(3027)],f[a(2377)][a(2041)][a(439)]=n[a(2041)],t[a(2417)](n[a(3093)]),t[a(750)](),t[a(3096)](i,null,o,f,v,null),p[a(2377)][a(3094)].value=n[a(3093)][a(1991)],p[a(2377)][a(3095)].value=n[a(3027)],p[a(2377)][a(2041)][a(439)]=n[a(2041)],t[a(2417)](n[a(679)]),t[a(750)](),t[a(3096)](i,null,o,p,v,null)}function y(e,n,i,s,a,o){var u=r;let f=null;const p=!0===i[u(3042)]?e[u(3097)]:e[u(3098)];if(f=void 0!==p?p:!0===i[u(3042)]?l:c,t[u(3099)]&&!0===n[u(2211)]&&Array[u(468)](n[u(2301)])&&0!==n.clippingPlanes[u(449)]||n[u(2264)]&&0!==n[u(2265)]||n[u(2254)]&&n[u(2223)]>0){const t=f[u(1947)],e=n.uuid;let r=h[t];void 0===r&&(r={},h[t]=r);let i=r[e];void 0===i&&(i=f.clone(),r[e]=i),f=i}return f[u(2122)]=n[u(2122)],f[u(2294)]=n[u(2294)],f.side=o===VSMShadowMap?null!==n.shadowSide?n.shadowSide:n[u(2196)]:null!==n[u(2212)]?n[u(2212)]:d[n.side],f[u(2254)]=n.alphaMap,f.alphaTest=n[u(2223)],f.clipShadows=n[u(2211)],f.clippingPlanes=n[u(2301)],f[u(2210)]=n[u(2210)],f.displacementMap=n[u(2264)],f[u(2265)]=n[u(2265)],f[u(2266)]=n.displacementBias,f[u(2295)]=n[u(2295)],f[u(2291)]=n.linewidth,!0===i[u(3042)]&&!0===f[u(3072)]&&(f[u(3073)].setFromMatrixPosition(i[u(2033)]),f.nearDistance=s,f[u(3075)]=a),f}function E(n,s,a,o,c){var l=r;if(!1===n[l(2122)])return;if(n[l(2160)].test(s[l(2160)])&&(n[l(2168)]||n.isLine||n[l(2169)])&&(n.castShadow||n[l(2123)]&&c===VSMShadowMap)&&(!n[l(2124)]||i[l(2432)](n))){n.modelViewMatrix[l(1896)](a[l(2030)],n[l(2033)]);const r=e[l(1067)](n),i=n[l(2178)];if(Array[l(468)](i)){const e=r[l(865)];for(let s=0,h=e.length;su||s.y>u)&&(s.x>u&&(a.x=Math[l(562)](u/f.x),s.x=a.x*f.x,d[l(3027)].x=a.x),s.y>u&&(a.y=Math.floor(u/f.y),s.y=a.y*f.y,d.mapSize.y=a.y)),null===d.map){const t=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};d[l(679)]=new WebGLRenderTarget(s.x,s.y,t),d[l(679)][l(1991)][l(542)]=h[l(542)]+".shadowMap",d[l(3045)].updateProjectionMatrix()}t[l(2417)](d[l(679)]),t[l(750)]();const m=d[l(3086)]();for(let t=0;t=1):-1!==L[r(564)](r(3105))&&(D=parseFloat(/^OpenGL ES (\d)/.exec(L)[1]),A=D>=2);let P=null,O={};const F=t[r(2601)](3088),N=t[r(2601)](2978),U=(new Vector4)[r(1890)](F),B=(new Vector4)[r(1890)](N);function k(e,n,i){var s=r;const a=new Uint8Array(4),o=t[s(3106)]();t[s(3107)](e,o),t[s(3108)](e,10241,9728),t[s(3108)](e,10240,9728);for(let e=0;er||t[i(1e3)]>r)&&(s=r/Math[i(486)](t[i(999)],t[i(1e3)])),s<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!==i(430)&&t instanceof HTMLCanvasElement||typeof ImageBitmap!==i(430)&&t instanceof ImageBitmap){const r=e?floorPowerOfTwo:Math.floor,a=r(s*t[i(999)]),o=r(s*t.height);void 0===v&&(v=y(a,o));const c=n?y(a,o):v;c[i(999)]=a,c[i(1e3)]=o;return c[i(1027)]("2d").drawImage(t,0,0,a,o),console[i(1176)](i(3138)+t[i(999)]+"x"+t[i(1e3)]+i(3139)+a+"x"+o+")."),c}return"data"in t&&console.warn(i(3140)+t.width+"x"+t[i(1e3)]+")."),t}return t}function T(t){var e=o;return isPowerOfTwo(t[e(999)])&&isPowerOfTwo(t[e(1e3)])}function I(t,e){var n=o;return t[n(1964)]&&e&&t.minFilter!==NearestFilter&&t[n(1973)]!==LinearFilter}function z(e){t.generateMipmap(e)}function S(n,r,i,s,a=!1){var l=o;if(!1===c)return r;if(null!==n){if(void 0!==t[n])return t[n];console[l(1176)](l(3141)+n+"'")}let h=r;return 6403===r&&(5126===i&&(h=33326),5131===i&&(h=33325),5121===i&&(h=33321)),33319===r&&(5126===i&&(h=33328),5131===i&&(h=33327),5121===i&&(h=33323)),6408===r&&(5126===i&&(h=34836),5131===i&&(h=34842),5121===i&&(h=s===sRGBEncoding&&!1===a?35907:32856),32819===i&&(h=32854),32820===i&&(h=32855)),(33325===h||33326===h||33327===h||33328===h||34842===h||34836===h)&&e[l(427)]("EXT_color_buffer_float"),h}function x(t,e,n){var r=o;return!0===I(t,n)||t[r(3142)]&&t[r(1973)]!==NearestFilter&&t[r(1973)]!==LinearFilter?Math[r(2828)](Math[r(486)](e.width,e.height))+1:void 0!==t[r(1955)]&&t[r(1955)][r(449)]>0?t[r(1955)].length:t[r(3143)]&&Array.isArray(t[r(1971)])?e.mipmaps[r(449)]:1}function b(t){return t===NearestFilter||t===NearestMipmapNearestFilter||t===NearestMipmapLinearFilter?9728:9729}function w(t){var e=o;const n=t.target;n[e(1716)](e(1979),w),function(t){var e=o;const n=r[e(427)](t);if(void 0===n[e(3144)])return;const i=t[e(556)],s=_.get(i);if(s){const r=s[n[e(3145)]];r[e(2972)]--,0===r.usedTimes&&M(t),0===Object[e(477)](s)[e(449)]&&_[e(748)](i)}r[e(1204)](t)}(n),n[e(2991)]&&m[e(748)](n)}function C(e){var n=o;const i=e[n(573)];i[n(1716)](n(1979),C),function(e){var n=o;const i=e.texture,s=r.get(e),c=r.get(i);if(void 0!==c[n(3147)]&&(t[n(3146)](c[n(3147)]),a[n(2712)][n(1976)]--),e[n(1994)]&&e[n(1994)].dispose(),e[n(3148)])for(let e=0;e<6;e++)t[n(3149)](s[n(3150)][e]),s.__webglDepthbuffer&&t.deleteRenderbuffer(s.__webglDepthbuffer[e]);else{if(t[n(3149)](s.__webglFramebuffer),s[n(3151)]&&t[n(3152)](s[n(3151)]),s.__webglMultisampledFramebuffer&&t[n(3149)](s[n(3153)]),s[n(3154)])for(let e=0;e0&&s[i(3156)]!==t[i(521)]){const n=t[i(1971)];if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n[i(1168)])return void F(s,t,e);console[i(1176)]("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n[i(3107)](3553,s[i(3147)],33984+e)}const D={[RepeatWrapping]:10497,[ClampToEdgeWrapping]:33071,[MirroredRepeatWrapping]:33648},L={[NearestFilter]:9728,[NearestMipmapNearestFilter]:9984,[NearestMipmapLinearFilter]:9986,[LinearFilter]:9729,[LinearMipmapNearestFilter]:9985,[LinearMipmapLinearFilter]:9987};function P(n,s,a){var l=o;if(a?(t[l(3108)](n,10242,D[s[l(1972)]]),t[l(3108)](n,10243,D[s[l(1957)]]),(32879===n||35866===n)&&t[l(3108)](n,32882,D[s[l(1999)]]),t[l(3108)](n,10240,L[s[l(1958)]]),t.texParameteri(n,10241,L[s[l(1973)]])):(t[l(3108)](n,10242,33071),t[l(3108)](n,10243,33071),(32879===n||35866===n)&&t[l(3108)](n,32882,33071),(s[l(1972)]!==ClampToEdgeWrapping||s[l(1957)]!==ClampToEdgeWrapping)&&console[l(1176)](l(3157)),t[l(3108)](n,10240,b(s.magFilter)),t.texParameteri(n,10241,b(s[l(1973)])),s[l(1973)]!==NearestFilter&&s.minFilter!==LinearFilter&&console.warn(l(3158))),!0===e[l(546)](l(2632))){const a=e.get("EXT_texture_filter_anisotropic");if(s[l(452)]===FloatType&&!1===e[l(546)](l(2709)))return;if(!1===c&&s[l(452)]===HalfFloatType&&!1===e[l(546)](l(2706)))return;(s[l(1959)]>1||r[l(427)](s).__currentAnisotropy)&&(t[l(3159)](n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math[l(563)](s.anisotropy,i.getMaxAnisotropy())),r[l(427)](s)[l(3160)]=s[l(1959)])}}function O(e,n){var r=o;let i=!1;void 0===e[r(3144)]&&(e[r(3144)]=!0,n.addEventListener("dispose",w));const s=n[r(556)];let c=_[r(427)](s);void 0===c&&(c={},_[r(540)](s,c));const l=function(t){var e=o;const n=[];return n.push(t[e(1972)]),n[e(565)](t[e(1957)]),n[e(565)](t.wrapR||0),n[e(565)](t[e(1958)]),n.push(t.minFilter),n[e(565)](t[e(1959)]),n[e(565)](t[e(1974)]),n[e(565)](t[e(461)]),n[e(565)](t[e(452)]),n.push(t[e(1964)]),n.push(t.premultiplyAlpha),n[e(565)](t[e(1965)]),n[e(565)](t[e(1966)]),n[e(565)](t.encoding),n[e(549)]()}(n);if(l!==e[r(3145)]){void 0===c[l]&&(c[l]={texture:t[r(3106)](),usedTimes:0},a[r(2712)][r(1976)]++,i=!0),c[l][r(2972)]++;const s=c[e[r(3145)]];void 0!==s&&(c[e.__cacheKey].usedTimes--,0===s[r(2972)]&&M(n)),e[r(3145)]=l,e[r(3147)]=c[l][r(1991)]}return i}function F(e,i,a){var l=o;let h=3553;(i[l(3161)]||i[l(3162)])&&(h=35866),i[l(3163)]&&(h=32879);const d=O(e,i),f=i.source;n.bindTexture(h,e[l(3147)],33984+a);const p=r[l(427)](f);if(f[l(521)]!==p[l(3156)]||!0===d){n[l(3125)](33984+a),t.pixelStorei(37440,i[l(1965)]),t[l(3164)](37441,i[l(1975)]),t[l(3164)](3317,i[l(1966)]),t.pixelStorei(37443,0);const e=function(t){var e=o;return!c&&(t.wrapS!==ClampToEdgeWrapping||t.wrapT!==ClampToEdgeWrapping||t[e(1973)]!==NearestFilter&&t[e(1973)]!==LinearFilter)}(i)&&!1===T(i.image);let r=E(i[l(1971)],e,!1,u);r=V(i,r);const m=T(r)||c,v=s[l(3165)](i[l(461)],i.encoding);let _,g=s[l(3165)](i[l(452)]),y=S(i.internalFormat,v,g,i.encoding,i[l(2991)]);P(h,i,m);const b=i[l(1955)],w=c&&!0!==i[l(2991)],C=void 0===p[l(3156)]||!0===d,M=x(i,r,m);if(i[l(3166)])y=6402,c?y=i[l(452)]===FloatType?36012:i[l(452)]===UnsignedIntType?33190:i[l(452)]===UnsignedInt248Type?35056:33189:i.type===FloatType&&console[l(819)](l(3167)),i.format===DepthFormat&&6402===y&&i[l(452)]!==UnsignedShortType&&i.type!==UnsignedIntType&&(console[l(1176)](l(3168)),i[l(452)]=UnsignedIntType,g=s[l(3165)](i[l(452)])),i[l(461)]===DepthStencilFormat&&6402===y&&(y=34041,i.type!==UnsignedInt248Type&&(console[l(1176)](l(3169)),i[l(452)]=UnsignedInt248Type,g=s.convert(i[l(452)]))),C&&(w?n.texStorage2D(3553,1,y,r[l(999)],r.height):n[l(3109)](3553,0,y,r[l(999)],r[l(1e3)],0,v,g,null));else if(i.isDataTexture)if(b[l(449)]>0&&m){w&&C&&n[l(3170)](3553,M,y,b[0][l(999)],b[0].height);for(let t=0,e=b[l(449)];t>=1,e>>=1}}else if(b[l(449)]>0&&m){w&&C&&n.texStorage2D(3553,M,y,b[0][l(999)],b[0][l(1e3)]);for(let t=0,e=b[l(449)];t=34069&&l<=34074)&&t[h(3179)](36160,c,l,r[h(427)](a)[h(3147)],0),n[h(3111)](36160,null)}function U(e,n,r){var i=o;if(t[i(3180)](36161,e),n[i(1992)]&&!n[i(1993)]){let s=33189;if(r||G(n)){const e=n[i(1994)];e&&e[i(3166)]&&(e.type===FloatType?s=36012:e.type===UnsignedIntType&&(s=33190));const r=k(n);G(n)?f[i(3181)](36161,r,s,n[i(999)],n[i(1e3)]):t[i(3182)](36161,r,s,n[i(999)],n.height)}else t[i(3183)](36161,s,n[i(999)],n[i(1e3)]);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){const s=k(n);r&&!1===G(n)?t[i(3182)](36161,s,35056,n.width,n.height):G(n)?f[i(3181)](36161,s,35056,n.width,n[i(1e3)]):t[i(3183)](36161,34041,n[i(999)],n[i(1e3)]),t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n[i(1991)]:[n[i(1991)]];for(let a=0;a0&&!0===e[n(546)](n(3137))&&!1!==i[n(3195)]}function V(t,n){var r=o;const i=t.encoding,s=t[r(461)],a=t.type;return!0===t[r(3143)]||!0===t.isVideoTexture||t[r(461)]===_SRGBAFormat||i!==LinearEncoding&&(i===sRGBEncoding?!1===c?!0===e[r(546)](r(3196))&&s===RGBAFormat?(t[r(461)]=_SRGBAFormat,t[r(1973)]=LinearFilter,t[r(1964)]=!1):n=ImageUtils.sRGBToLinear(n):(s!==RGBAFormat||a!==UnsignedByteType)&&console[r(1176)](r(3197)):console[r(819)](r(3198),i)),n}this[o(2747)]=function(){const t=R;return t>=l&&console[o(1176)]("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),R+=1,t},this[o(3199)]=function(){R=0},this.setTexture2D=A,this[o(2750)]=function(t,e){var i=o;const s=r[i(427)](t);t[i(521)]>0&&s[i(3156)]!==t[i(521)]?F(s,t,e):n.bindTexture(35866,s[i(3147)],33984+e)},this[o(2748)]=function(t,e){var i=o;const s=r[i(427)](t);t.version>0&&s[i(3156)]!==t[i(521)]?F(s,t,e):n.bindTexture(32879,s[i(3147)],33984+e)},this[o(2749)]=function(e,i){var a=o;const l=r[a(427)](e);e[a(521)]>0&&l[a(3156)]!==e[a(521)]?function(e,i,a){var l=o;if(6!==i[l(1971)].length)return;const u=O(e,i),d=i[l(556)];n.bindTexture(34067,e[l(3147)],33984+a);const f=r.get(d);if(d[l(521)]!==f[l(3156)]||!0===u){n[l(3125)](33984+a),t.pixelStorei(37440,i[l(1965)]),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i[l(1966)]),t[l(3164)](37443,0);const e=i[l(3143)]||i[l(1971)][0][l(3143)],r=i[l(1971)][0]&&i[l(1971)][0][l(1950)],o=[];for(let t=0;t<6;t++)o[t]=e||r?r?i[l(1971)][t][l(1971)]:i[l(1971)][t]:E(i[l(1971)][t],!1,!0,h),o[t]=V(i,o[t]);const p=o[0],m=T(p)||c,v=s[l(3165)](i.format,i[l(1967)]),_=s[l(3165)](i[l(452)]),g=S(i[l(1974)],v,_,i[l(1967)]),y=c&&!0!==i[l(2991)],b=void 0===f[l(3156)]||!0===u;let w,C=x(i,p,m);if(P(34067,i,m),e){y&&b&&n[l(3170)](34067,C,g,p[l(999)],p.height);for(let t=0;t<6;t++){w=o[t][l(1955)];for(let e=0;e0&&C++,n[l(3170)](34067,C,g,o[0][l(999)],o[0][l(1e3)]));for(let t=0;t<6;t++)if(r){y?n[l(3171)](34069+t,0,0,0,o[t][l(999)],o[t][l(1e3)],v,_,o[t][l(571)]):n.texImage2D(34069+t,0,g,o[t].width,o[t][l(1e3)],0,v,_,o[t].data);for(let e=0;e0&&!1===G(e)){const r=p?h:[h];u[l(3153)]=t.createFramebuffer(),u[l(3154)]=[],n[l(3111)](36160,u[l(3153)]);for(let n=0;n0&&!1===G(e)){const s=e[i(2002)]?e[i(1991)]:[e[i(1991)]],a=e.width,o=e[i(1e3)];let c=16384;const l=[],h=e[i(1993)]?33306:36096,u=r.get(e),d=!0===e[i(2002)];if(d)for(let e=0;ec+h?(l[r(3270)][r(3271)]=!1,this[r(827)]({type:r(3272),handedness:t.handedness,target:this})):!l.inputState[r(3271)]&&o<=c-h&&(l[r(3270)].pinching=!0,this[r(827)]({type:r(3273),handedness:t.handedness,target:this}))}else null!==c&&t[r(3274)]&&(s=e[r(3275)](t[r(3274)],n),null!==s&&(c.matrix[r(1890)](s[r(1502)][r(1963)]),c.matrix[r(2103)](c[r(2065)],c[r(1961)],c.scale),s[r(3259)]?(c[r(3258)]=!0,c.linearVelocity[r(1867)](s[r(3259)])):c[r(3258)]=!1,s[r(3261)]?(c[r(3260)]=!0,c[r(3261)][r(1867)](s[r(3261)])):c[r(3260)]=!1));null!==o&&(i=e[r(3275)](t[r(3276)],n),null===i&&null!==s&&(i=s),null!==i&&(o[r(1963)].fromArray(i[r(1502)][r(1963)]),o.matrix[r(2103)](o[r(2065)],o[r(1961)],o[r(1901)]),i[r(3259)]?(o.hasLinearVelocity=!0,o[r(3259)][r(1867)](i[r(3259)])):o[r(3258)]=!1,i[r(3261)]?(o[r(3260)]=!0,o[r(3261)].copy(i.angularVelocity)):o[r(3260)]=!1,this[r(827)](_moveEvent)))}return null!==o&&(o[r(2122)]=null!==i),null!==c&&(c[r(2122)]=null!==s),null!==l&&(l[r(2122)]=null!==a),this}},DepthTexture=class extends Texture{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;if((l=void 0!==l?l:DepthFormat)!==DepthFormat&&l!==DepthStencilFormat)throw new Error(h(3277));void 0===n&&l===DepthFormat&&(n=UnsignedIntType),void 0===n&&l===DepthStencilFormat&&(n=UnsignedInt248Type),super(null,r,i,s,a,o,l,n,c),this[h(3166)]=!0,this[h(1971)]={width:t,height:e},this[h(1958)]=void 0!==a?a:NearestFilter,this.minFilter=void 0!==o?o:NearestFilter,this.flipY=!1,this[h(1964)]=!1}},WebXRManager=class extends EventDispatcher{constructor(t,e){var n=nz;super();const r=this;let i=null,s=1,a=null,o="local-floor",c=null,l=null,h=null,u=null,d=null,p=null;const m=e.getContextAttributes();let v=null,_=null;const g=[],y=[],E=new PerspectiveCamera;E[n(2160)].enable(1),E[n(1997)]=new Vector4;const T=new PerspectiveCamera;T[n(2160)][n(745)](2),T[n(1997)]=new Vector4;const I=[E,T],z=new ArrayCamera;z.layers[n(745)](1),z[n(2160)].enable(2);let S=null,x=null;function b(t){var e=n;const r=y[e(564)](t[e(3285)]);if(-1===r)return;const i=g[r];void 0!==i&&i[e(827)]({type:t[e(452)],data:t[e(3285)]})}function w(){var e=n;i.removeEventListener("select",b),i[e(1716)](e(3286),b),i[e(1716)]("selectend",b),i[e(1716)](e(3287),b),i[e(1716)]("squeezestart",b),i[e(1716)](e(3288),b),i[e(1716)](e(887),w),i.removeEventListener("inputsourceschange",C);for(let t=0;t=0&&(y[i]=null,g[i][e(827)]({type:e(3317),data:r}))}for(let n=0;n=y.length){y[e(565)](r),i=t;break}if(null===y[t]){y[t]=r,i=t;break}}if(-1===i)break}const s=g[i];s&&s.dispatchEvent({type:"connected",data:r})}}this[n(3278)]=!0,this[n(2407)]=!1,this[n(3279)]=!1,this[n(3280)]=function(t){var e=n;let r=g[t];return void 0===r&&(r=new WebXRController,g[t]=r),r[e(3281)]()},this[n(3282)]=function(t){var e=n;let r=g[t];return void 0===r&&(r=new WebXRController,g[t]=r),r[e(3283)]()},this[n(3284)]=function(t){var e=n;let r=g[t];return void 0===r&&(r=new WebXRController,g[t]=r),r[e(3256)]()},this[n(3290)]=function(t){var e=n;s=t,!0===r[e(3279)]&&console.warn(e(3291))},this[n(3292)]=function(t){var e=n;o=t,!0===r[e(3279)]&&console[e(1176)](e(3293))},this.getReferenceSpace=function(){return c||a},this[n(3294)]=function(t){c=t},this[n(3295)]=function(){return null!==u?u:d},this[n(3296)]=function(){return h},this[n(3297)]=function(){return p},this[n(2589)]=function(){return i},this[n(3298)]=function(n){return __async(this,null,(function*(){var l=f;if(i=n,null!==i){if(v=t[l(2415)](),i[l(808)](l(460),b),i[l(808)]("selectstart",b),i.addEventListener(l(3299),b),i.addEventListener(l(3287),b),i[l(808)](l(3300),b),i.addEventListener("squeezeend",b),i[l(808)](l(887),w),i[l(808)](l(3301),C),!0!==m[l(3302)]&&(yield e.makeXRCompatible()),void 0===i[l(3303)].layers||!1===t[l(3304)][l(2435)]){const n={antialias:void 0!==i[l(3303)][l(2160)]||m[l(3305)],alpha:m[l(3306)],depth:m[l(1989)],stencil:m[l(3307)],framebufferScaleFactor:s};d=new XRWebGLLayer(i,e,n),i[l(3308)]({baseLayer:d}),_=new WebGLRenderTarget(d[l(3309)],d[l(3310)],{format:RGBAFormat,type:UnsignedByteType,encoding:t[l(2942)],stencilBuffer:m[l(3307)]})}else{let n=null,r=null,a=null;m[l(1989)]&&(a=m[l(3307)]?35056:33190,n=m[l(3307)]?DepthStencilFormat:DepthFormat,r=m[l(3307)]?UnsignedInt248Type:UnsignedIntType);const o={colorFormat:32856,depthFormat:a,scaleFactor:s};h=new XRWebGLBinding(i,e),u=h[l(3311)](o),i.updateRenderState({layers:[u]}),_=new WebGLRenderTarget(u[l(3312)],u[l(3313)],{format:RGBAFormat,type:UnsignedByteType,depthTexture:new DepthTexture(u[l(3312)],u[l(3313)],r,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:m.stencil,encoding:t[l(2942)],samples:m.antialias?4:0});t[l(3314)].get(_)[l(3193)]=u.ignoreDepthValues}_[l(2990)]=!0,this.setFoveation(1),c=null,a=yield i[l(3315)](o),L[l(3316)](i),L[l(725)](),r[l(3279)]=!0,r[l(827)]({type:"sessionstart"})}}))};const M=new Vector3,R=new Vector3;function A(t,e){var r=n;null===e?t.matrixWorld.copy(t[r(1963)]):t.matrixWorld[r(1896)](e[r(2033)],t.matrix),t[r(2030)][r(1867)](t[r(2033)])[r(1465)]()}this.updateCamera=function(t){var e=n;if(null===i)return;z[e(2365)]=T[e(2365)]=E[e(2365)]=t[e(2365)],z.far=T[e(2366)]=E[e(2366)]=t[e(2366)],(S!==z[e(2365)]||x!==z[e(2366)])&&(i[e(3308)]({depthNear:z.near,depthFar:z[e(2366)]}),S=z[e(2365)],x=z.far);const r=t.parent,s=z.cameras;A(z,r);for(let t=0;t0&&(n[i(2223)][i(439)]=r[i(2223)]);const s=e[i(427)](r)[i(2273)];if(s&&(n[i(2273)][i(439)]=s,n[i(2679)].value=s.isCubeTexture&&!1===s[i(1969)]?-1:1,n[i(2275)][i(439)]=r[i(2275)],n[i(3350)][i(439)]=r[i(3350)],n.refractionRatio[i(439)]=r[i(2276)]),r[i(2255)]){n[i(2255)].value=r[i(2255)];const e=!0!==t[i(2933)]?Math.PI:1;n[i(2256)].value=r[i(2256)]*e}let a,o;r[i(2257)]&&(n[i(2257)][i(439)]=r[i(2257)],n[i(2258)].value=r[i(2258)]),r.map?a=r[i(679)]:r.specularMap?a=r[i(2270)]:r[i(2264)]?a=r[i(2264)]:r[i(2261)]?a=r.normalMap:r[i(2259)]?a=r[i(2259)]:r[i(2267)]?a=r[i(2267)]:r[i(2268)]?a=r.metalnessMap:r[i(2254)]?a=r[i(2254)]:r[i(2269)]?a=r[i(2269)]:r[i(2244)]?a=r[i(2244)]:r[i(2246)]?a=r[i(2246)]:r.clearcoatRoughnessMap?a=r.clearcoatRoughnessMap:r[i(2251)]?a=r[i(2251)]:r[i(2252)]?a=r[i(2252)]:r[i(2271)]?a=r[i(2271)]:r[i(2272)]?a=r[i(2272)]:r[i(2279)]?a=r[i(2279)]:r.thicknessMap?a=r[i(2281)]:r[i(2859)]?a=r[i(2859)]:r.sheenRoughnessMap&&(a=r[i(2861)]),void 0!==a&&(a[i(1988)]&&(a=a.texture),!0===a[i(1962)]&&a[i(2127)](),n.uvTransform[i(439)][i(1867)](a[i(1963)])),r[i(2257)]?o=r[i(2257)]:r[i(2255)]&&(o=r.lightMap),void 0!==o&&(o[i(1988)]&&(o=o[i(1991)]),!0===o.matrixAutoUpdate&&o[i(2127)](),n[i(3351)].value[i(1867)](o.matrix))}return{refreshFogUniforms:function(t,e){var n=f;t[n(3330)][n(439)][n(1867)](e.color),e[n(3331)]?(t[n(3332)].value=e[n(2365)],t[n(3333)][n(439)]=e[n(2366)]):e[n(2992)]&&(t[n(3334)][n(439)]=e[n(3335)])},refreshMaterialUniforms:function(t,r,i,s,a){var o=f;r[o(2302)]||r[o(3336)]?n(t,r):r[o(3337)]?(n(t,r),function(t,e){var n=f;e[n(2277)]&&(t[n(2277)][n(439)]=e.gradientMap)}(t,r)):r[o(3338)]?(n(t,r),function(t,e){var n=f;t[n(2238)][n(439)][n(1867)](e.specular),t[n(2241)][n(439)]=Math[n(486)](e[n(2241)],1e-4)}(t,r)):r[o(2986)]?(n(t,r),function(t,n){var r=f;t[r(2232)][r(439)]=n.roughness,t[r(2233)][r(439)]=n[r(2233)],n[r(2267)]&&(t[r(2267)][r(439)]=n[r(2267)]),n[r(2268)]&&(t.metalnessMap[r(439)]=n[r(2268)]);const i=e[r(427)](n)[r(2273)];i&&(t[r(2274)].value=n[r(2274)])}(t,r),r[o(3339)]&&function(t,e,n){var r=f;t.ior[r(439)]=e[r(3350)],e.sheen>0&&(t[r(2234)][r(439)][r(1867)](e[r(2234)])[r(1878)](e[r(2925)]),t.sheenRoughness[r(439)]=e[r(2235)],e[r(2859)]&&(t[r(2859)].value=e[r(2859)]),e[r(2861)]&&(t[r(2861)].value=e[r(2861)])),e[r(2242)]>0&&(t[r(2242)].value=e.clearcoat,t[r(2243)][r(439)]=e[r(2243)],e[r(2244)]&&(t[r(2244)][r(439)]=e[r(2244)]),e[r(2245)]&&(t[r(2245)][r(439)]=e.clearcoatRoughnessMap),e[r(2246)]&&(t.clearcoatNormalScale[r(439)][r(1867)](e[r(2247)]),t[r(2246)].value=e.clearcoatNormalMap,e[r(2196)]===BackSide&&t[r(2247)][r(439)].negate())),e.iridescence>0&&(t[r(2248)][r(439)]=e[r(2248)],t[r(2249)][r(439)]=e[r(2249)],t[r(3353)][r(439)]=e[r(2250)][0],t[r(3354)][r(439)]=e.iridescenceThicknessRange[1],e[r(2251)]&&(t[r(2251)][r(439)]=e[r(2251)]),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap[r(439)]=e.iridescenceThicknessMap)),e.transmission>0&&(t[r(2278)].value=e[r(2278)],t[r(3355)].value=n[r(1991)],t[r(3356)][r(439)][r(540)](n[r(999)],n[r(1e3)]),e[r(2279)]&&(t[r(2279)].value=e.transmissionMap),t[r(2280)].value=e[r(2280)],e.thicknessMap&&(t[r(2281)][r(439)]=e[r(2281)]),t[r(2282)][r(439)]=e.attenuationDistance,t[r(2283)][r(439)][r(1867)](e.attenuationColor)),t[r(2239)][r(439)]=e[r(2239)],t[r(2240)][r(439)][r(1867)](e[r(2240)]),e[r(2271)]&&(t[r(2271)].value=e.specularIntensityMap),e[r(2272)]&&(t[r(2272)][r(439)]=e[r(2272)])}(t,r,a)):r[o(3340)]?(n(t,r),function(t,e){var n=f;e[n(2253)]&&(t[n(2253)][n(439)]=e[n(2253)])}(t,r)):r[o(3341)]?n(t,r):r[o(3072)]?(n(t,r),function(t,e){var n=f;t[n(3073)][n(439)][n(1867)](e[n(3073)]),t[n(3074)][n(439)]=e[n(3074)],t[n(3075)][n(439)]=e[n(3075)]}(t,r)):r[o(3342)]?n(t,r):r[o(3343)]?(function(t,e){var n=f;t.diffuse[n(439)][n(1867)](e[n(2231)]),t[n(2286)][n(439)]=e[n(2286)]}(t,r),r[o(3344)]&&function(t,e){var n=f;t.dashSize[n(439)]=e[n(2292)],t.totalSize[n(439)]=e[n(2292)]+e.gapSize,t[n(1901)][n(439)]=e[n(1901)]}(t,r)):r[o(3345)]?function(t,e,n,r){var i=f;let s;t[i(3349)][i(439)].copy(e[i(2231)]),t[i(2286)][i(439)]=e.opacity,t.size[i(439)]=e[i(753)]*n,t.scale.value=.5*r,e.map&&(t[i(679)][i(439)]=e[i(679)]),e[i(2254)]&&(t[i(2254)].value=e[i(2254)]),e[i(2223)]>0&&(t[i(2223)][i(439)]=e[i(2223)]),e.map?s=e.map:e[i(2254)]&&(s=e[i(2254)]);void 0!==s&&(!0===s[i(1962)]&&s.updateMatrix(),t[i(3352)][i(439)][i(1867)](s[i(1963)]))}(t,r,i,s):r[o(3346)]?function(t,e){var n=f;let r;t[n(3349)][n(439)][n(1867)](e[n(2231)]),t[n(2286)].value=e[n(2286)],t.rotation.value=e.rotation,e[n(679)]&&(t[n(679)][n(439)]=e.map),e.alphaMap&&(t[n(2254)][n(439)]=e[n(2254)]),e[n(2223)]>0&&(t.alphaTest[n(439)]=e[n(2223)]),e[n(679)]?r=e.map:e[n(2254)]&&(r=e[n(2254)]);void 0!==r&&(!0===r.matrixAutoUpdate&&r[n(2127)](),t[n(3352)][n(439)][n(1867)](r[n(1963)]))}(t,r):r[o(3347)]?(t[o(2231)][o(439)][o(1867)](r.color),t[o(2286)][o(439)]=r[o(2286)]):r[o(3348)]&&(r[o(2384)]=!1)}}}function WebGLUniformsGroups(t,e,n,r){var i=nz;let s={},a={},o=[];const c=n[i(2435)]?t.getParameter(35375):0;function l(t,e,n){var r=i;const s=t[r(439)];if(void 0===n[e])return n[e]="number"==typeof s?s:s.clone(),!0;if("number"==typeof s){if(n[e]!==s)return n[e]=s,!0}else{const t=n[e];if(!1===t[r(1889)](s))return t[r(1867)](s),!0}return!1}function h(t){var e=i;const n=t[e(439)],r={boundary:0,storage:0};return typeof n===e(458)?(r[e(3364)]=4,r.storage=4):n.isVector2?(r[e(3364)]=8,r[e(3363)]=8):n[e(2021)]||n[e(1909)]?(r[e(3364)]=16,r[e(3363)]=12):n[e(1981)]?(r.boundary=16,r.storage=16):n[e(1894)]?(r[e(3364)]=48,r.storage=48):n.isMatrix4?(r[e(3364)]=64,r.storage=64):n[e(1954)]?console[e(1176)](e(3365)):console[e(1176)](e(3366),n),r}function u(e){var n=i;const r=e[n(573)];r[n(1716)](n(1979),u);const c=o.indexOf(r[n(3133)]);o[n(690)](c,1),t[n(3367)](s[r.id]),delete s[r.id],delete a[r.id]}return{bind:function(t,e){const n=e[i(2602)];r.uniformBlockBinding(t,n)},update:function(n,d){var f=i;let p=s[n.id];void 0===p&&(function(t){var e=i;const n=t[e(2377)];let r=0;const s=16;let a=0;for(let t=0,i=n.length;t0){a=r%s;0!==a&&s-a-o[e(3364)]<0&&(r+=s-a,i[e(3361)]=r)}r+=o[e(3363)]}a=r%s,a>0&&(r+=s-a);t[e(3357)]=r,t[e(3360)]={}}(n),p=function(e){var n=i;const r=function(){var t=i;for(let e=0;e0&&function(t,n,r){var i=e;const s=q[i(2435)];null===U&&(U=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:H[i(546)](i(3435))?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:s&&!0===a?4:0})),_[i(3397)](k),s?U[i(1996)](k.x,k.y):U[i(1996)](floorPowerOfTwo(k.x),floorPowerOfTwo(k.y));const o=_[i(2415)]();_.setRenderTarget(U),_[i(750)]();const c=_[i(2416)];_[i(2416)]=NoToneMapping,Ct(t,n,r),_[i(2416)]=c,J.updateMultisampleRenderTarget(U),J.updateRenderTargetMipmap(U),_.setRenderTarget(o)}(o,n,r),i&&W.viewport(S.copy(i)),o[s(449)]>0&&Ct(o,n,r),c[s(449)]>0&&Ct(c,n,r),l[s(449)]>0&&Ct(l,n,r),W[s(2599)][s(1989)][s(3082)](!0),W[s(2599)][s(1989)][s(3120)](!0),W.buffers[s(2231)][s(3120)](!0),W[s(3434)](!1)}function Ct(t,n,r){var i=e;const s=!0===n[i(2165)]?n[i(3436)]:null;for(let e=0,a=t[i(449)];e0?v[v[r(449)]-1]:null,m[r(1161)](),d=m[r(449)]>0?m[m[r(449)]-1]:null},this[e(3079)]=function(){return y},this.getActiveMipmapLevel=function(){return E},this[e(2415)]=function(){return T},this[e(3325)]=function(t,n,r){var i=e;X[i(427)](t.texture)[i(3147)]=n,X[i(427)](t[i(1994)]).__webglTexture=r;const s=X.get(t);s[i(3177)]=!0,s.__hasExternalTextures&&(s[i(3468)]=void 0===r,!s[i(3468)]&&!0===H[i(546)](i(3137))&&(console[i(1176)]("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),s[i(3195)]=!1))},this[e(3322)]=function(t,n){var r=e;const i=X.get(t);i[r(3150)]=n,i[r(3469)]=void 0===n},this[e(2417)]=function(t,n=0,r=0){var i=e;T=t,y=n,E=r;let s=!0,a=null,o=!1,c=!1;if(t){const e=X[i(427)](t);void 0!==e[i(3469)]?(W.bindFramebuffer(36160,null),s=!1):void 0===e[i(3150)]?J.setupRenderTarget(t):e[i(3177)]&&J.rebindTextures(t,X.get(t[i(1991)])[i(3147)],X[i(427)](t.depthTexture).__webglTexture);const r=t.texture;(r[i(3163)]||r[i(3161)]||r[i(3162)])&&(c=!0);const l=X[i(427)](t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(a=l[n],o=!0):a=q.isWebGL2&&t.samples>0&&!1===J[i(3470)](t)?X[i(427)](t).__webglMultisampledFramebuffer:l,S.copy(t[i(1997)]),x[i(1867)](t.scissor),b=t[i(1990)]}else S[i(1867)](D)[i(1878)](M)[i(562)](),x[i(1867)](L)[i(1878)](M).floor(),b=P;if(W.bindFramebuffer(36160,a)&&q[i(3112)]&&s&&W[i(3112)](t,a),W[i(1997)](S),W[i(1998)](x),W[i(3083)](b),o){const e=X[i(427)](t.texture);pt[i(3179)](36160,36064,34069+n,e[i(3147)],r)}else if(c){const e=X[i(427)](t.texture),s=n||0;pt[i(3471)](36160,36064,e.__webglTexture,r||0,s)}I=-1},this[e(3472)]=function(t,n,r,i,s,a,o){var c=e;if(!t||!t[c(1988)])return void console[c(819)](c(3473));let l=X[c(427)](t)[c(3150)];if(t[c(3148)]&&void 0!==o&&(l=l[o]),l){W[c(3111)](36160,l);try{const e=t[c(1991)],o=e[c(461)],l=e[c(452)];if(o!==RGBAFormat&&ut[c(3165)](o)!==pt.getParameter(35739))return void console[c(819)]("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const h=l===HalfFloatType&&(H[c(546)](c(3435))||q[c(2435)]&&H[c(546)](c(2703)));if(!(l===UnsignedByteType||ut.convert(l)===pt[c(2601)](35738)||l===FloatType&&(q[c(2435)]||H[c(546)]("OES_texture_float")||H.has(c(3474)))||h))return void console.error(c(3475));n>=0&&n<=t[c(999)]-i&&r>=0&&r<=t[c(1e3)]-s&&pt[c(3476)](n,r,i,s,ut[c(3165)](o),ut[c(3165)](l),a)}finally{const t=null!==T?X.get(T)[c(3150)]:null;W.bindFramebuffer(36160,t)}}},this[e(3477)]=function(t,n,r=0){var i=e;const s=Math[i(428)](2,-r),a=Math.floor(n[i(1971)][i(999)]*s),o=Math.floor(n.image[i(1e3)]*s);J[i(3478)](n,0),pt[i(3479)](3553,r,0,0,t.x,t.y,a,o),W[i(3190)]()},this[e(3480)]=function(t,n,r,i=0){var s=e;const a=n[s(1971)][s(999)],o=n.image.height,c=ut[s(3165)](r[s(461)]),l=ut.convert(r[s(452)]);J[s(3478)](r,0),pt[s(3164)](37440,r[s(1965)]),pt[s(3164)](37441,r[s(1975)]),pt[s(3164)](3317,r[s(1966)]),n[s(1950)]?pt[s(3171)](3553,i,t.x,t.y,a,o,c,l,n[s(1971)][s(571)]):n.isCompressedTexture?pt[s(3175)](3553,i,t.x,t.y,n.mipmaps[0][s(999)],n.mipmaps[0].height,c,n[s(1955)][0][s(571)]):pt[s(3171)](3553,i,t.x,t.y,c,l,n.image),0===i&&r.generateMipmaps&&pt[s(3481)](3553),W[s(3190)]()},this[e(3482)]=function(t,n,r,i,s=0){var a=e;if(_[a(3386)])return void console[a(1176)](a(3483));const o=t[a(486)].x-t.min.x+1,c=t[a(486)].y-t.min.y+1,l=t[a(486)].z-t.min.z+1,h=ut[a(3165)](i[a(461)]),u=ut[a(3165)](i[a(452)]);let d;if(i[a(3163)])J.setTexture3D(i,0),d=32879;else{if(!i[a(3161)])return void console.warn(a(3484));J[a(2750)](i,0),d=35866}pt.pixelStorei(37440,i[a(1965)]),pt[a(3164)](37441,i[a(1975)]),pt.pixelStorei(3317,i[a(1966)]);const f=pt[a(2601)](3314),p=pt[a(2601)](32878),m=pt[a(2601)](3316),v=pt[a(2601)](3315),g=pt[a(2601)](32877),y=r.isCompressedTexture?r.mipmaps[0]:r.image;pt[a(3164)](3314,y[a(999)]),pt[a(3164)](32878,y[a(1e3)]),pt[a(3164)](3316,t[a(563)].x),pt[a(3164)](3315,t.min.y),pt[a(3164)](32877,t[a(563)].z),r[a(1950)]||r.isData3DTexture?pt[a(3128)](d,s,n.x,n.y,n.z,o,c,l,h,u,y[a(571)]):r[a(3162)]?(console[a(1176)]("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),pt.compressedTexSubImage3D(d,s,n.x,n.y,n.z,o,c,l,h,y[a(571)])):pt.texSubImage3D(d,s,n.x,n.y,n.z,o,c,l,h,u,y),pt[a(3164)](3314,f),pt[a(3164)](32878,p),pt.pixelStorei(3316,m),pt.pixelStorei(3315,v),pt[a(3164)](32877,g),0===s&&i[a(1964)]&&pt[a(3481)](d),W[a(3190)]()},this[e(3485)]=function(t){var n=e;t[n(2419)]?J[n(2749)](t,0):t[n(3163)]?J[n(2748)](t,0):t[n(3161)]||t.isCompressedArrayTexture?J[n(2750)](t,0):J[n(3478)](t,0),W[n(3190)]()},this[e(3486)]=function(){var t=e;y=0,E=0,T=null,W[t(1160)](),dt[t(1160)]()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__[e(827)](new CustomEvent(e(3487),{detail:this}))}var WebGL1Renderer=class extends WebGLRenderer{};WebGL1Renderer[nz(425)][nz(3386)]=!0;var _geometry,FogExp2=class{constructor(t,e=25e-5){var n=nz;this[n(2992)]=!0,this[n(542)]="",this.color=new Color(t),this[n(3335)]=e}[nz(1014)](){var t=nz;return new FogExp2(this.color,this[t(3335)])}toJSON(){var t=nz;return{type:"FogExp2",color:this[t(2231)][t(1926)](),density:this[t(3335)]}}},Fog=class{constructor(t,e=1,n=1e3){var r=nz;this[r(3331)]=!0,this[r(542)]="",this[r(2231)]=new Color(t),this[r(2365)]=e,this[r(2366)]=n}[nz(1014)](){var t=nz;return new Fog(this[t(2231)],this[t(2365)],this[t(2366)])}toJSON(){var t=nz;return{type:t(3488),color:this[t(2231)][t(1926)](),near:this[t(2365)],far:this.far}}},Scene=class extends Object3D{constructor(){var t=nz;super(),this[t(2165)]=!0,this[t(452)]=t(3489),this.background=null,this[t(2167)]=null,this[t(2299)]=null,this.backgroundBlurriness=0,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!==t(430)&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(t(3487),{detail:this}))}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),null!==t[n(2166)]&&(this[n(2166)]=t[n(2166)][n(1014)]()),null!==t[n(2167)]&&(this.environment=t.environment[n(1014)]()),null!==t[n(2299)]&&(this[n(2299)]=t[n(2299)][n(1014)]()),this.backgroundBlurriness=t.backgroundBlurriness,null!==t[n(3436)]&&(this[n(3436)]=t[n(3436)][n(1014)]()),this[n(1962)]=t[n(1962)],this}[nz(733)](t){var e=nz;const n=super[e(733)](t);return null!==this.fog&&(n.object.fog=this[e(2299)][e(733)]()),this[e(2588)]>0&&(n[e(2588)]=this[e(2588)]),n}get[nz(3078)](){var t=nz;return console.warn(t(3490)),this[t(2156)]}set autoUpdate(t){console[nz(1176)]("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}},InterleavedBuffer=class{constructor(t,e){var n=nz;this[n(3491)]=!0,this.array=t,this[n(2622)]=e,this[n(2053)]=void 0!==t?t[n(449)]/e:0,this[n(2309)]=StaticDrawUsage,this[n(2310)]={offset:0,count:-1},this[n(521)]=0,this[n(1947)]=generateUUID()}[nz(2311)](){}set needsUpdate(t){!0===t&&this.version++}[nz(2312)](t){return this[nz(2309)]=t,this}[nz(1867)](t){var e=nz;return this[e(2306)]=new(t[e(2306)][e(443)])(t[e(2306)]),this.count=t[e(2053)],this.stride=t[e(2622)],this.usage=t[e(2309)],this}[nz(2313)](t,e,n){var r=nz;t*=this[r(2622)],n*=e.stride;for(let i=0,s=this[r(2622)];it[n(2366)]||e[n(565)]({distance:c,point:_intersectPoint[n(1014)](),uv:Triangle[n(2186)](_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(t,e){var n=nz;return super[n(1867)](t,e),void 0!==t[n(1960)]&&this.center.copy(t.center),this[n(2178)]=t[n(2178)],this}};function transformVertex(t,e,n,r,i,s){var a=nz;_alignedPosition[a(1872)](t,n)[a(1868)](.5)[a(1558)](r),void 0!==i?(_rotatedPosition.x=s*_alignedPosition.x-i*_alignedPosition.y,_rotatedPosition.y=i*_alignedPosition.x+s*_alignedPosition.y):_rotatedPosition[a(1867)](_alignedPosition),t[a(1867)](e),t.x+=_rotatedPosition.x,t.y+=_rotatedPosition.y,t[a(2028)](_viewWorldMatrix)}var _v1$2=new Vector3,_v2$1=new Vector3,LOD=class extends Object3D{constructor(){var t=nz;super(),this[t(3500)]=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this[t(3078)]=!0}[nz(1867)](t){var e=nz;super[e(1867)](t,!1);const n=t[e(1184)];for(let t=0,r=n[e(449)];t0){let r,i;for(r=1,i=n[e(449)];r0){_v1$2.setFromMatrixPosition(this[n(2033)]);const r=t[n(2361)][n(1103)].distanceTo(_v1$2);this.getObjectForDistance(r)[n(2360)](t,e)}}update(t){var e=nz;const n=this[e(1184)];if(n.length>1){_v1$2.setFromMatrixPosition(t.matrixWorld),_v2$1[e(2046)](this.matrixWorld);const r=_v1$2[e(2038)](_v2$1)/t[e(2397)];let i,s;for(n[0][e(469)][e(2122)]=!0,i=1,s=n.length;i=n[i][e(3018)];i++)n[i-1][e(469)].visible=!1,n[i][e(469)].visible=!0;for(this[e(3500)]=i-1;ic)continue;d[n(2028)](this.matrixWorld);const a=t[n(2361)][n(1103)][n(2038)](d);at[n(2366)]||e[n(565)]({distance:a,point:u[n(1014)]().applyMatrix4(this[n(2033)]),index:r,face:null,faceIndex:null,object:this})}}else{for(let r=Math.max(0,a[n(725)]),i=Math[n(563)](m.count,a[n(725)]+a[n(2053)])-1;rc)continue;d[n(2028)](this[n(2033)]);const i=t[n(2361)][n(1103)][n(2038)](d);it[n(2366)]||e.push({distance:i,point:u[n(1014)]().applyMatrix4(this[n(2033)]),index:r,face:null,faceIndex:null,object:this})}}}[nz(2357)](){var t=nz;const e=this[t(2063)][t(2328)],n=Object[t(477)](e);if(n.length>0){const r=e[n[0]];if(void 0!==r){this[t(2358)]=[],this[t(2359)]={};for(let e=0,n=r[t(449)];e0){const r=e[n[0]];if(void 0!==r){this[t(2358)]=[],this[t(2359)]={};for(let e=0,n=r[t(449)];ei.far)return;s[o(565)]({distance:l,distanceToRay:Math[o(761)](c),point:n,index:e,face:null,object:a})}}var VideoTexture=class extends Texture{constructor(t,e,n,r,i,s,a,o,c){var l=nz;super(t,e,n,r,i,s,a,o,c),this[l(2991)]=!0,this[l(1973)]=void 0!==s?s:LinearFilter,this[l(1958)]=void 0!==i?i:LinearFilter,this[l(1964)]=!1;const h=this;l(3537)in t&&t[l(3537)]((function e(){var n=l;h.needsUpdate=!0,t[n(3537)](e)}))}clone(){var t=nz;return new(this[t(443)])(this[t(1971)])[t(1867)](this)}update(){var t=nz;const e=this[t(1971)];!1===t(3537)in e&&e.readyState>=e[t(3538)]&&(this[t(1948)]=!0)}},FramebufferTexture=class extends Texture{constructor(t,e,n){var r=nz;super({width:t,height:e}),this[r(3142)]=!0,this[r(461)]=n,this.magFilter=NearestFilter,this[r(1973)]=NearestFilter,this[r(1964)]=!1,this.needsUpdate=!0}},CompressedTexture=class extends Texture{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;super(null,s,a,o,c,l,r,i,h,u),this[d(3143)]=!0,this[d(1971)]={width:e,height:n},this[d(1955)]=t,this.flipY=!1,this[d(1964)]=!1}},CompressedArrayTexture=class extends CompressedTexture{constructor(t,e,n,r,i,s){var a=nz;super(t,e,n,i,s),this[a(3162)]=!0,this[a(1971)][a(1989)]=r,this.wrapR=ClampToEdgeWrapping}},CanvasTexture=class extends Texture{constructor(t,e,n,r,i,s,a,o,c){var l=nz;super(t,e,n,r,i,s,a,o,c),this[l(3539)]=!0,this[l(1948)]=!0}},Curve=class{constructor(){var t=nz;this[t(452)]=t(3540),this.arcLengthDivisions=200}getPoint(){var t=nz;return console[t(1176)](t(3541)),null}[nz(3542)](t,e){var n=nz;const r=this[n(3543)](t);return this[n(3544)](r,e)}[nz(3545)](t=5){var e=nz;const n=[];for(let r=0;r<=t;r++)n.push(this[e(3544)](r/t));return n}[nz(3546)](t=5){var e=nz;const n=[];for(let r=0;r<=t;r++)n.push(this[e(3542)](r/t));return n}[nz(3547)](){const t=this[nz(3548)]();return t[t.length-1]}[nz(3548)](t=this[nz(3549)]){var e=nz;if(this.cacheArcLengths&&this[e(3550)][e(449)]===t+1&&!this[e(1948)])return this[e(3550)];this[e(1948)]=!1;const n=[];let r,i=this.getPoint(0),s=0;n[e(565)](0);for(let a=1;a<=t;a++)r=this[e(3544)](a/t),s+=r[e(2038)](i),n[e(565)](s),i=r;return this[e(3550)]=n,n}[nz(3551)](){this[nz(1948)]=!0,this.getLengths()}[nz(3543)](t,e){var n=nz;const r=this.getLengths();let i=0;const s=r.length;let a;a=e||t*r[s-1];let o,c=0,l=s-1;for(;c<=l;)if(i=Math[n(562)](c+(l-c)/2),o=r[i]-a,o<0)c=i+1;else{if(!(o>0)){l=i;break}l=i-1}if(i=l,r[i]===a)return i/(s-1);const h=r[i];return(i+(a-h)/(r[i+1]-h))/(s-1)}[nz(3552)](t,e){var n=nz;const r=1e-4;let i=t-r,s=t+r;i<0&&(i=0),s>1&&(s=1);const a=this[n(3544)](i),o=this[n(3544)](s),c=e||(a[n(1861)]?new Vector2:new Vector3);return c[n(1867)](o)[n(909)](a)[n(569)](),c}[nz(3553)](t,e){var n=nz;const r=this[n(3543)](t);return this[n(3552)](r,e)}[nz(3554)](t,e){var n=nz;const r=new Vector3,i=[],s=[],a=[],o=new Vector3,c=new Matrix4;for(let e=0;e<=t;e++){const r=e/t;i[e]=this[n(3553)](r,new Vector3)}s[0]=new Vector3,a[0]=new Vector3;let l=Number[n(762)];const h=Math[n(694)](i[0].x),u=Math.abs(i[0].y),d=Math[n(694)](i[0].z);h<=l&&(l=h,r[n(540)](1,0,0)),u<=l&&(l=u,r[n(540)](0,1,0)),d<=l&&r[n(540)](0,0,1),o[n(2035)](i[0],r).normalize(),s[0][n(2035)](i[0],o),a[0].crossVectors(i[0],s[0]);for(let e=1;e<=t;e++){if(s[e]=s[e-1][n(1014)](),a[e]=a[e-1][n(1014)](),o[n(2035)](i[e-1],i[e]),o[n(449)]()>Number[n(1214)]){o[n(569)]();const t=Math[n(2015)](clamp(i[e-1][n(1879)](i[e]),-1,1));s[e][n(2028)](c[n(2101)](o,t))}a[e][n(2035)](i[e],s[e])}if(!0===e){let e=Math[n(2015)](clamp(s[0][n(1879)](s[t]),-1,1));e/=t,i[0][n(1879)](o.crossVectors(s[0],s[t]))>0&&(e=-e);for(let r=1;r<=t;r++)s[r][n(2028)](c[n(2101)](i[r],e*r)),a[r][n(2035)](i[r],s[r])}return{tangents:i,normals:s,binormals:a}}[nz(1014)](){var t=nz;return(new(this[t(443)]))[t(1867)](this)}[nz(1867)](t){return this[nz(3549)]=t.arcLengthDivisions,this}[nz(733)](){var t=nz;const e={metadata:{version:4.5,type:t(3540),generator:t(3555)}};return e[t(3549)]=this[t(3549)],e[t(452)]=this[t(452)],e}[nz(2369)](t){var e=nz;return this[e(3549)]=t[e(3549)],this}},EllipseCurve=class extends Curve{constructor(t=0,e=0,n=1,r=1,i=0,s=2*Math.PI,a=!1,o=0){var c=nz;super(),this[c(3556)]=!0,this[c(452)]="EllipseCurve",this.aX=t,this.aY=e,this[c(3557)]=n,this[c(3558)]=r,this[c(3559)]=i,this[c(3560)]=s,this[c(3561)]=a,this[c(3562)]=o}[nz(3544)](t,e){var n=nz;const r=e||new Vector2,i=2*Math.PI;let s=this[n(3560)]-this.aStartAngle;const a=Math[n(694)](s)i;)s-=i;s0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===h&&l===s-1&&(l=s-2,h=1),this.closed||l>0?o=i[(l-1)%s]:(tmp[n(1872)](i[0],i[1])[n(747)](i[0]),o=tmp);const u=i[l%s],d=i[(l+1)%s];if(this[n(3568)]||l+2i[n(449)]-2?i[n(449)]-1:a+1],u=i[a>i[n(449)]-3?i.length-1:a+2];return r.set(CatmullRom(o,c.x,l.x,h.x,u.x),CatmullRom(o,c.y,l.y,h.y,u.y)),r}[nz(1867)](t){var e=nz;super[e(1867)](t),this.points=[];for(let n=0,r=t.points[e(449)];n=r){const t=i[s]-r,a=this[n(3584)][s],o=a.getLength(),c=0===o?0:1-t/o;return a[n(3542)](c,e)}s++}return null}[nz(3547)](){var t=nz;const e=this[t(3586)]();return e[e[t(449)]-1]}[nz(3551)](){var t=nz;this[t(1948)]=!0,this.cacheLengths=null,this[t(3586)]()}[nz(3586)](){var t=nz;if(this[t(3587)]&&this[t(3587)][t(449)]===this[t(3584)][t(449)])return this[t(3587)];const e=[];let n=0;for(let r=0,i=this[t(3584)][t(449)];r1&&!n[n[e(449)]-1][e(1889)](n[0])&&n[e(565)](n[0]),n}[nz(1867)](t){var e=nz;super.copy(t),this[e(3584)]=[];for(let n=0,r=t[e(3584)][e(449)];n0){const t=l[c(3544)](0);!t[c(1889)](this.currentPoint)&&this[c(3594)](t.x,t.y)}this[c(3584)][c(565)](l);const h=l.getPoint(1);return this[c(3592)][c(1867)](h),this}copy(t){var e=nz;return super.copy(t),this[e(3592)][e(1867)](t[e(3592)]),this}[nz(733)](){var t=nz;const e=super[t(733)]();return e.currentPoint=this[t(3592)].toArray(),e}[nz(2369)](t){return super[nz(2369)](t),this.currentPoint.fromArray(t.currentPoint),this}},LatheGeometry=class extends BufferGeometry{constructor(t=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],e=12,n=0,r=2*Math.PI){var i=nz;super(),this[i(452)]=i(3601),this[i(2171)]={points:t,segments:e,phiStart:n,phiLength:r},e=Math[i(562)](e),r=clamp(r,0,2*Math.PI);const s=[],a=[],o=[],c=[],l=[],h=1/e,u=new Vector3,d=new Vector2,f=new Vector3,p=new Vector3,m=new Vector3;let v=0,_=0;for(let e=0;e<=t[i(449)]-1;e++)switch(e){case 0:v=t[e+1].x-t[e].x,_=t[e+1].y-t[e].y,f.x=1*_,f.y=-v,f.z=0*_,m[i(1867)](f),f[i(569)](),c[i(565)](f.x,f.y,f.z);break;case t[i(449)]-1:c[i(565)](m.x,m.y,m.z);break;default:v=t[e+1].x-t[e].x,_=t[e+1].y-t[e].y,f.x=1*_,f.y=-v,f.z=0*_,p[i(1867)](f),f.x+=m.x,f.y+=m.y,f.z+=m.z,f[i(569)](),c[i(565)](f.x,f.y,f.z),m[i(1867)](p)}for(let s=0;s<=e;s++){const f=n+s*h*r,p=Math[i(1853)](f),m=Math[i(1852)](f);for(let n=0;n<=t[i(449)]-1;n++){u.x=t[n].x*p,u.y=t[n].y,u.z=t[n].x*m,a[i(565)](u.x,u.y,u.z),d.x=s/e,d.y=n/(t[i(449)]-1),o.push(d.x,d.y);const r=c[3*n+0]*p,h=c[3*n+1],f=c[3*n+0]*m;l[i(565)](r,h,f)}}for(let n=0;n0&&g(!0),e>0&&g(!1)),this[c(2332)](h),this.setAttribute(c(2065),new Float32BufferAttribute(u,3)),this[c(2334)](c(655),new Float32BufferAttribute(d,3)),this[c(2334)]("uv",new Float32BufferAttribute(f,2))}static[nz(2369)](t){var e=nz;return new CylinderGeometry(t[e(3609)],t[e(3610)],t[e(1e3)],t[e(3604)],t[e(2371)],t[e(3611)],t[e(3606)],t.thetaLength)}},ConeGeometry=class extends CylinderGeometry{constructor(t=1,e=1,n=8,r=1,i=!1,s=0,a=2*Math.PI){var o=nz;super(0,t,e,n,r,i,s,a),this[o(452)]=o(3612),this[o(2171)]={radius:t,height:e,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:a}}static[nz(2369)](t){var e=nz;return new ConeGeometry(t[e(2041)],t[e(1e3)],t[e(3604)],t.heightSegments,t.openEnded,t[e(3606)],t[e(3607)])}},PolyhedronGeometry=class extends BufferGeometry{constructor(t=[],e=[],n=1,r=0){var i=nz;super(),this[i(452)]=i(3613),this[i(2171)]={vertices:t,indices:e,radius:n,detail:r};const s=[],a=[];function o(t,e,n,r){var s=i;const a=r+1,o=[];for(let r=0;r<=a;r++){o[r]=[];const i=t[s(1014)]()[s(1887)](n,r/a),c=e.clone()[s(1887)](n,r/a),l=a-r;for(let t=0;t<=l;t++)o[r][t]=0===t&&r===a?i:i[s(1014)]()[s(1887)](c,t/l)}for(let t=0;t.9&&o<.1&&(n<.2&&(a[e+0]+=1),r<.2&&(a[e+2]+=1),i<.2&&(a[e+4]+=1))}}()}(),this[i(2334)](i(2065),new Float32BufferAttribute(s,3)),this[i(2334)]("normal",new Float32BufferAttribute(s.slice(),3)),this.setAttribute("uv",new Float32BufferAttribute(a,2)),0===r?this[i(2349)]():this[i(2350)]()}static[nz(2369)](t){var e=nz;return new PolyhedronGeometry(t[e(3614)],t[e(3615)],t.radius,t[e(3616)])}},DodecahedronGeometry=class extends PolyhedronGeometry{constructor(t=1,e=0){var n=nz;const r=(1+Math[n(761)](5))/2,i=1/r;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-r,0,-i,r,0,i,-r,0,i,r,-i,-r,0,-i,r,0,i,-r,0,i,r,0,-r,0,-i,r,0,-i,-r,0,i,r,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this[n(452)]="DodecahedronGeometry",this[n(2171)]={radius:t,detail:e}}static[nz(2369)](t){var e=nz;return new DodecahedronGeometry(t.radius,t[e(982)])}},_v0=new Vector3,_v1$1=new Vector3,_normal=new Vector3,_triangle=new Triangle,EdgesGeometry=class extends BufferGeometry{constructor(t=null,e=1){var n=nz;if(super(),this.type=n(3617),this[n(2171)]={geometry:t,thresholdAngle:e},null!==t){const r=4,i=Math[n(428)](10,r),s=Math.cos(DEG2RAD*e),a=t[n(3618)](),o=t[n(2333)]("position"),c=a?a[n(2053)]:o[n(2053)],l=[0,0,0],h=["a","b","c"],u=new Array(3),d={},f=[];for(let t=0;t80*n){c=h=t[0],l=u=t[1];for(let e=n;eh&&(h=d),f>u&&(u=f);p=Math[r(486)](h-c,u-l),p=0!==p?32767/p:0}return earcutLinked(a,o,n,c,l,p,0),o}};function linkedList(t,e,n,r,i){var s=nz;let a,o;if(i===signedArea(t,e,n,r)>0)for(a=e;a=e;a-=r)o=insertNode(a,t[a],t[a+1],o);return o&&equals(o,o.next)&&(removeNode(o),o=o[s(436)]),o}function filterPoints(t,e){var n=nz;if(!t)return t;e||(e=t);let r,i=t;do{if(r=!1,i.steiner||!equals(i,i.next)&&0!==area(i.prev,i,i.next))i=i.next;else{if(removeNode(i),i=e=i[n(1164)],i===i.next)break;r=!0}}while(r||i!==e);return e}function earcutLinked(t,e,n,r,i,s,a){var o=nz;if(!t)return;!a&&s&&indexCurve(t,r,i,s);let c,l,h=t;for(;t.prev!==t[o(436)];)if(c=t[o(1164)],l=t[o(436)],s?isEarHashed(t,r,i,s):isEar(t))e[o(565)](c.i/n|0),e.push(t.i/n|0),e[o(565)](l.i/n|0),removeNode(t),t=l[o(436)],h=l[o(436)];else if((t=l)===h){a?1===a?earcutLinked(t=cureLocalIntersections(filterPoints(t),e,n),e,n,r,i,s,2):2===a&&splitEarcut(t,e,n,r,i,s):earcutLinked(filterPoints(t),e,n,r,i,s,1);break}}function isEar(t){var e=nz;const n=t[e(1164)],r=t,i=t[e(436)];if(area(n,r,i)>=0)return!1;const s=n.x,a=r.x,o=i.x,c=n.y,l=r.y,h=i.y,u=sa?s>o?s:o:a>o?a:o,p=c>l?c>h?c:h:l>h?l:h;let m=i.next;for(;m!==n;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&pointInTriangle(s,c,a,l,o,h,m.x,m.y)&&area(m[e(1164)],m,m[e(436)])>=0)return!1;m=m[e(436)]}return!0}function isEarHashed(t,e,n,r){var i=nz;const s=t[i(1164)],a=t,o=t[i(436)];if(area(s,a,o)>=0)return!1;const c=s.x,l=a.x,h=o.x,u=s.y,d=a.y,f=o.y,p=cl?c>h?c:h:l>h?l:h,_=u>d?u>f?u:f:d>f?d:f,g=zOrder(p,m,e,n,r),y=zOrder(v,_,e,n,r);let E=t[i(3623)],T=t[i(3624)];for(;E&&E.z>=g&&T&&T.z<=y;){if(E.x>=p&&E.x<=v&&E.y>=m&&E.y<=_&&E!==s&&E!==o&&pointInTriangle(c,u,l,d,h,f,E.x,E.y)&&area(E[i(1164)],E,E.next)>=0)return!1;if(E=E[i(3623)],T.x>=p&&T.x<=v&&T.y>=m&&T.y<=_&&T!==s&&T!==o&&pointInTriangle(c,u,l,d,h,f,T.x,T.y)&&area(T[i(1164)],T,T[i(436)])>=0)return!1;T=T[i(3624)]}for(;E&&E.z>=g;){if(E.x>=p&&E.x<=v&&E.y>=m&&E.y<=_&&E!==s&&E!==o&&pointInTriangle(c,u,l,d,h,f,E.x,E.y)&&area(E.prev,E,E[i(436)])>=0)return!1;E=E[i(3623)]}for(;T&&T.z<=y;){if(T.x>=p&&T.x<=v&&T.y>=m&&T.y<=_&&T!==s&&T!==o&&pointInTriangle(c,u,l,d,h,f,T.x,T.y)&&area(T.prev,T,T[i(436)])>=0)return!1;T=T[i(3624)]}return!0}function cureLocalIntersections(t,e,n){var r=nz;let i=t;do{const s=i[r(1164)],a=i.next[r(436)];!equals(s,a)&&intersects(s,i,i[r(436)],a)&&locallyInside(s,a)&&locallyInside(a,s)&&(e.push(s.i/n|0),e[r(565)](i.i/n|0),e[r(565)](a.i/n|0),removeNode(i),removeNode(i[r(436)]),i=t=a),i=i[r(436)]}while(i!==t);return filterPoints(i)}function splitEarcut(t,e,n,r,i,s){var a=nz;let o=t;do{let t=o[a(436)][a(436)];for(;t!==o[a(1164)];){if(o.i!==t.i&&isValidDiagonal(o,t)){let c=splitPolygon(o,t);return o=filterPoints(o,o.next),c=filterPoints(c,c[a(436)]),earcutLinked(o,e,n,r,i,s,0),void earcutLinked(c,e,n,r,i,s,0)}t=t.next}o=o[a(436)]}while(o!==t)}function eliminateHoles(t,e,n,r){var i=nz;const s=[];let a,o,c,l,h;for(a=0,o=e[i(449)];a=i[n(436)].y&&i[n(436)].y!==i.y){const t=i.x+(o-i.y)*(i[n(436)].x-i.x)/(i[n(436)].y-i.y);if(t<=a&&t>s&&(s=t,r=i.x=i.x&&i.x>=l&&a!==i.x&&pointInTriangle(or.x||i.x===r.x&§orContainsSector(r,i)))&&(r=i,d=u)),i=i.next}while(i!==c);return r}function sectorContainsSector(t,e){var n=nz;return area(t.prev,t,e[n(1164)])<0&&area(e[n(436)],t,t[n(436)])<0}function indexCurve(t,e,n,r){var i=nz;let s=t;do{0===s.z&&(s.z=zOrder(s.x,s.y,e,n,r)),s[i(3623)]=s[i(1164)],s.nextZ=s[i(436)],s=s[i(436)]}while(s!==t);s[i(3623)][i(3624)]=null,s[i(3623)]=null,sortLinked(s)}function sortLinked(t){var e=nz;let n,r,i,s,a,o,c,l,h=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,i=r,c=0,n=0;n0||l>0&&i;)0!==c&&(0===l||!i||r.z<=i.z)?(s=r,r=r[e(3624)],c--):(s=i,i=i[e(3624)],l--),a?a[e(3624)]=s:t=s,s[e(3623)]=a,a=s;r=i}a.nextZ=null,h*=2}while(o>1);return t}function zOrder(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function getLeftmost(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(r-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(i-a)*(r-o)}function isValidDiagonal(t,e){var n=nz;return t[n(436)].i!==e.i&&t[n(1164)].i!==e.i&&!intersectsPolygon(t,e)&&(locallyInside(t,e)&&locallyInside(e,t)&&middleInside(t,e)&&(area(t[n(1164)],t,e[n(1164)])||area(t,e[n(1164)],e))||equals(t,e)&&area(t[n(1164)],t,t.next)>0&&area(e[n(1164)],e,e[n(436)])>0)}function area(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals(t,e){return t.x===e.x&&t.y===e.y}function intersects(t,e,n,r){const i=sign(area(t,e,n)),s=sign(area(t,e,r)),a=sign(area(n,r,t)),o=sign(area(n,r,e));return i!==s&&a!==o||(!(0!==i||!onSegment(t,n,e))||(!(0!==s||!onSegment(t,r,e))||(!(0!==a||!onSegment(n,t,r))||!(0!==o||!onSegment(n,e,r)))))}function onSegment(t,e,n){var r=nz;return e.x<=Math[r(486)](t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math[r(486)](t.y,n.y)&&e.y>=Math[r(563)](t.y,n.y)}function sign(t){return t>0?1:t<0?-1:0}function intersectsPolygon(t,e){var n=nz;let r=t;do{if(r.i!==t.i&&r[n(436)].i!==t.i&&r.i!==e.i&&r[n(436)].i!==e.i&&intersects(r,r.next,t,e))return!0;r=r[n(436)]}while(r!==t);return!1}function locallyInside(t,e){var n=nz;return area(t[n(1164)],t,t.next)<0?area(t,e,t[n(436)])>=0&&area(t,t[n(1164)],e)>=0:area(t,e,t.prev)<0||area(t,t[n(436)],e)<0}function middleInside(t,e){var n=nz;let r=t,i=!1;const s=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r[n(436)].y!==r.y&&s<(r[n(436)].x-r.x)*(a-r.y)/(r[n(436)].y-r.y)+r.x&&(i=!i),r=r.next}while(r!==t);return i}function splitPolygon(t,e){var n=nz;const r=new Node2(t.i,t.x,t.y),i=new Node2(e.i,e.x,e.y),s=t.next,a=e[n(1164)];return t.next=e,e[n(1164)]=t,r[n(436)]=s,s[n(1164)]=r,i[n(436)]=r,r.prev=i,a[n(436)]=i,i[n(1164)]=a,i}function insertNode(t,e,n,r){var i=nz;const s=new Node2(t,e,n);return r?(s[i(436)]=r.next,s[i(1164)]=r,r[i(436)][i(1164)]=s,r.next=s):(s[i(1164)]=s,s[i(436)]=s),s}function removeNode(t){var e=nz;t.next[e(1164)]=t[e(1164)],t.prev[e(436)]=t[e(436)],t[e(3623)]&&(t.prevZ.nextZ=t[e(3624)]),t[e(3624)]&&(t[e(3624)][e(3623)]=t[e(3623)])}function Node2(t,e,n){var r=nz;this.i=t,this.x=e,this.y=n,this[r(1164)]=null,this[r(436)]=null,this.z=0,this[r(3623)]=null,this[r(3624)]=null,this.steiner=!1}function signedArea(t,e,n,r){let i=0;for(let s=e,a=n-r;s2&&t[n-1][e(1889)](t[0])&&t[e(1161)]()}function addContour(t,e){var n=nz;for(let r=0;rNumber[r(1214)]){const a=Math[r(761)](d),f=Math[r(761)](h*h+u*u),p=e.x-l/a,m=e.y+c/a,v=((n.x-u/f-p)*u-(n.y+h/f-m)*h)/(c*u-l*h);i=p+c*v-t.x,s=m+l*v-t.y;const _=i*i+s*s;if(_<=2)return new Vector2(i,s);o=Math[r(761)](_/2)}else{let t=!1;c>Number.EPSILON?h>Number[r(1214)]&&(t=!0):c<-Number[r(1214)]?h<-Number[r(1214)]&&(t=!0):Math[r(765)](l)===Math[r(765)](u)&&(t=!0),t?(i=-l,s=c,o=Math[r(761)](d)):(i=c,s=l,o=Math[r(761)](d/2))}return new Vector2(i/o,s/o)}const L=[];for(let t=0,e=C[a(449)],n=e-1,r=t+1;t=0;t--){const e=t/m,n=d*Math[a(1852)](e*Math.PI/2),r=f*Math[a(1853)](e*Math.PI/2)+p;for(let t=0,e=C.length;t=0;){const i=r;let s=r-1;s<0&&(s=t[n(449)]-1);for(let t=0,n=l+2*m;t0)&&f[o(565)](e,i,l),(t!==n-1||c0!=t>0&&this[e(521)]++,this[e(3664)]=t}get[nz(2242)](){return this[nz(3662)]}set[nz(2242)](t){var e=nz;this._clearcoat>0!=t>0&&this.version++,this[e(3662)]=t}get[nz(2248)](){return this[nz(3663)]}set[nz(2248)](t){var e=nz;this[e(3663)]>0!=t>0&&this[e(521)]++,this._iridescence=t}get transmission(){return this[nz(3665)]}set[nz(2278)](t){var e=nz;this[e(3665)]>0!=t>0&&this[e(521)]++,this._transmission=t}[nz(1867)](t){var e=nz;return super[e(1867)](t),this[e(2376)]={STANDARD:"",PHYSICAL:""},this[e(2242)]=t[e(2242)],this.clearcoatMap=t[e(2244)],this[e(2243)]=t[e(2243)],this.clearcoatRoughnessMap=t[e(2245)],this.clearcoatNormalMap=t[e(2246)],this[e(2247)][e(1867)](t.clearcoatNormalScale),this[e(3350)]=t[e(3350)],this[e(2248)]=t.iridescence,this[e(2251)]=t[e(2251)],this[e(2249)]=t[e(2249)],this.iridescenceThicknessRange=[...t[e(2250)]],this[e(2252)]=t.iridescenceThicknessMap,this[e(2925)]=t[e(2925)],this[e(2234)][e(1867)](t[e(2234)]),this[e(2859)]=t[e(2859)],this[e(2235)]=t[e(2235)],this[e(2861)]=t.sheenRoughnessMap,this.transmission=t[e(2278)],this.transmissionMap=t[e(2279)],this.thickness=t[e(2280)],this[e(2281)]=t[e(2281)],this[e(2282)]=t[e(2282)],this[e(2283)][e(1867)](t.attenuationColor),this[e(2239)]=t[e(2239)],this[e(2271)]=t[e(2271)],this[e(2240)][e(1867)](t.specularColor),this[e(2272)]=t.specularColorMap,this}},MeshPhongMaterial=class extends Material{constructor(t){var e=nz;super(),this[e(3338)]=!0,this[e(452)]=e(3666),this[e(2231)]=new Color(16777215),this[e(2238)]=new Color(1118481),this[e(2241)]=30,this.map=null,this[e(2255)]=null,this[e(2256)]=1,this[e(2257)]=null,this.aoMapIntensity=1,this[e(2236)]=new Color(0),this[e(2237)]=1,this[e(2269)]=null,this.bumpMap=null,this[e(2260)]=1,this.normalMap=null,this[e(2262)]=TangentSpaceNormalMap,this[e(2263)]=new Vector2(1,1),this[e(2264)]=null,this.displacementScale=1,this[e(2266)]=0,this[e(2270)]=null,this[e(2254)]=null,this[e(2273)]=null,this[e(1692)]=MultiplyOperation,this[e(2275)]=1,this[e(2276)]=.98,this[e(2294)]=!1,this.wireframeLinewidth=1,this[e(2296)]=e(784),this[e(2297)]=e(784),this[e(2298)]=!1,this[e(2299)]=!0,this.setValues(t)}[nz(1867)](t){var e=nz;return super[e(1867)](t),this.color[e(1867)](t[e(2231)]),this[e(2238)][e(1867)](t[e(2238)]),this.shininess=t[e(2241)],this[e(679)]=t.map,this[e(2255)]=t[e(2255)],this[e(2256)]=t[e(2256)],this.aoMap=t[e(2257)],this[e(2258)]=t[e(2258)],this.emissive[e(1867)](t[e(2236)]),this[e(2269)]=t[e(2269)],this[e(2237)]=t[e(2237)],this.bumpMap=t.bumpMap,this[e(2260)]=t.bumpScale,this[e(2261)]=t[e(2261)],this[e(2262)]=t[e(2262)],this[e(2263)][e(1867)](t[e(2263)]),this[e(2264)]=t[e(2264)],this[e(2265)]=t[e(2265)],this[e(2266)]=t[e(2266)],this[e(2270)]=t.specularMap,this[e(2254)]=t.alphaMap,this.envMap=t[e(2273)],this[e(1692)]=t[e(1692)],this[e(2275)]=t.reflectivity,this[e(2276)]=t[e(2276)],this[e(2294)]=t[e(2294)],this[e(2295)]=t[e(2295)],this.wireframeLinecap=t.wireframeLinecap,this[e(2297)]=t[e(2297)],this.flatShading=t.flatShading,this[e(2299)]=t[e(2299)],this}},MeshToonMaterial=class extends Material{constructor(t){var e=nz;super(),this.isMeshToonMaterial=!0,this[e(2376)]={TOON:""},this[e(452)]="MeshToonMaterial",this.color=new Color(16777215),this[e(679)]=null,this[e(2277)]=null,this[e(2255)]=null,this.lightMapIntensity=1,this.aoMap=null,this[e(2258)]=1,this[e(2236)]=new Color(0),this[e(2237)]=1,this.emissiveMap=null,this[e(2259)]=null,this[e(2260)]=1,this[e(2261)]=null,this[e(2262)]=TangentSpaceNormalMap,this[e(2263)]=new Vector2(1,1),this[e(2264)]=null,this[e(2265)]=1,this.displacementBias=0,this[e(2254)]=null,this[e(2294)]=!1,this[e(2295)]=1,this[e(2296)]="round",this[e(2297)]=e(784),this[e(2299)]=!0,this[e(2226)](t)}[nz(1867)](t){var e=nz;return super[e(1867)](t),this[e(2231)][e(1867)](t[e(2231)]),this[e(679)]=t[e(679)],this[e(2277)]=t[e(2277)],this[e(2255)]=t[e(2255)],this.lightMapIntensity=t[e(2256)],this[e(2257)]=t.aoMap,this.aoMapIntensity=t[e(2258)],this.emissive.copy(t[e(2236)]),this[e(2269)]=t.emissiveMap,this[e(2237)]=t[e(2237)],this[e(2259)]=t.bumpMap,this[e(2260)]=t[e(2260)],this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this[e(2263)].copy(t[e(2263)]),this[e(2264)]=t[e(2264)],this[e(2265)]=t[e(2265)],this[e(2266)]=t.displacementBias,this[e(2254)]=t[e(2254)],this.wireframe=t[e(2294)],this.wireframeLinewidth=t.wireframeLinewidth,this[e(2296)]=t[e(2296)],this[e(2297)]=t.wireframeLinejoin,this[e(2299)]=t.fog,this}},MeshNormalMaterial=class extends Material{constructor(t){var e=nz;super(),this[e(3342)]=!0,this[e(452)]=e(3667),this[e(2259)]=null,this.bumpScale=1,this[e(2261)]=null,this.normalMapType=TangentSpaceNormalMap,this[e(2263)]=new Vector2(1,1),this[e(2264)]=null,this[e(2265)]=1,this[e(2266)]=0,this[e(2294)]=!1,this.wireframeLinewidth=1,this[e(2298)]=!1,this[e(2226)](t)}copy(t){var e=nz;return super.copy(t),this[e(2259)]=t.bumpMap,this.bumpScale=t[e(2260)],this[e(2261)]=t[e(2261)],this[e(2262)]=t[e(2262)],this.normalScale.copy(t.normalScale),this[e(2264)]=t[e(2264)],this[e(2265)]=t[e(2265)],this.displacementBias=t.displacementBias,this[e(2294)]=t[e(2294)],this[e(2295)]=t[e(2295)],this.flatShading=t.flatShading,this}},MeshLambertMaterial=class extends Material{constructor(t){var e=nz;super(),this[e(3336)]=!0,this[e(452)]="MeshLambertMaterial",this.color=new Color(16777215),this[e(679)]=null,this.lightMap=null,this[e(2256)]=1,this[e(2257)]=null,this[e(2258)]=1,this.emissive=new Color(0),this[e(2237)]=1,this[e(2269)]=null,this[e(2259)]=null,this[e(2260)]=1,this.normalMap=null,this[e(2262)]=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this[e(2264)]=null,this.displacementScale=1,this[e(2266)]=0,this[e(2270)]=null,this[e(2254)]=null,this.envMap=null,this[e(1692)]=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this[e(2294)]=!1,this[e(2295)]=1,this[e(2296)]=e(784),this[e(2297)]=e(784),this[e(2298)]=!1,this[e(2299)]=!0,this[e(2226)](t)}[nz(1867)](t){var e=nz;return super.copy(t),this[e(2231)][e(1867)](t[e(2231)]),this[e(679)]=t[e(679)],this[e(2255)]=t[e(2255)],this[e(2256)]=t[e(2256)],this[e(2257)]=t[e(2257)],this[e(2258)]=t[e(2258)],this[e(2236)][e(1867)](t[e(2236)]),this[e(2269)]=t[e(2269)],this[e(2237)]=t[e(2237)],this[e(2259)]=t[e(2259)],this[e(2260)]=t[e(2260)],this[e(2261)]=t[e(2261)],this[e(2262)]=t.normalMapType,this[e(2263)][e(1867)](t.normalScale),this[e(2264)]=t[e(2264)],this[e(2265)]=t[e(2265)],this[e(2266)]=t[e(2266)],this[e(2270)]=t[e(2270)],this[e(2254)]=t[e(2254)],this[e(2273)]=t[e(2273)],this[e(1692)]=t[e(1692)],this[e(2275)]=t[e(2275)],this[e(2276)]=t[e(2276)],this[e(2294)]=t.wireframe,this[e(2295)]=t[e(2295)],this[e(2296)]=t[e(2296)],this[e(2297)]=t.wireframeLinejoin,this[e(2298)]=t[e(2298)],this[e(2299)]=t[e(2299)],this}},MeshMatcapMaterial=class extends Material{constructor(t){var e=nz;super(),this.isMeshMatcapMaterial=!0,this[e(2376)]={MATCAP:""},this[e(452)]=e(3668),this[e(2231)]=new Color(16777215),this[e(2253)]=null,this.map=null,this.bumpMap=null,this[e(2260)]=1,this[e(2261)]=null,this[e(2262)]=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this[e(2264)]=null,this[e(2265)]=1,this[e(2266)]=0,this[e(2254)]=null,this.flatShading=!1,this[e(2299)]=!0,this.setValues(t)}[nz(1867)](t){var e=nz;return super.copy(t),this[e(2376)]={MATCAP:""},this.color[e(1867)](t.color),this[e(2253)]=t[e(2253)],this.map=t.map,this[e(2259)]=t[e(2259)],this[e(2260)]=t[e(2260)],this[e(2261)]=t.normalMap,this[e(2262)]=t[e(2262)],this[e(2263)][e(1867)](t[e(2263)]),this[e(2264)]=t[e(2264)],this.displacementScale=t[e(2265)],this[e(2266)]=t.displacementBias,this[e(2254)]=t.alphaMap,this[e(2298)]=t[e(2298)],this[e(2299)]=t[e(2299)],this}},LineDashedMaterial=class extends LineBasicMaterial{constructor(t){var e=nz;super(),this[e(3344)]=!0,this[e(452)]=e(3669),this.scale=1,this[e(2292)]=3,this.gapSize=1,this.setValues(t)}[nz(1867)](t){var e=nz;return super[e(1867)](t),this[e(1901)]=t.scale,this[e(2292)]=t[e(2292)],this[e(2293)]=t[e(2293)],this}};function arraySlice(t,e,n){var r=nz;return isTypedArray(t)?new(t[r(443)])(t[r(2442)](e,void 0!==n?n:t[r(449)])):t[r(497)](e,n)}function convertArray(t,e,n){var r=nz;return!t||!n&&t[r(443)]===e?t:typeof e.BYTES_PER_ELEMENT===r(458)?new e(t):Array.prototype[r(497)][r(429)](t)}function isTypedArray(t){return ArrayBuffer[nz(3670)](t)&&!(t instanceof DataView)}function getKeyframeOrder(t){var e=nz;const n=t[e(449)],r=new Array(n);for(let t=0;t!==n;++t)r[t]=t;return r[e(688)]((function(e,n){return t[e]-t[n]})),r}function sortedArray(t,e,n){var r=nz;const i=t.length,s=new(t[r(443)])(i);for(let r=0,a=0;a!==i;++r){const i=n[r]*e;for(let n=0;n!==e;++n)s[a++]=t[i+n]}return s}function flattenJSON(t,e,n,r){var i=nz;let s=1,a=t[0];for(;void 0!==a&&void 0===a[r];)a=t[s++];if(void 0===a)return;let o=a[r];if(void 0!==o)if(Array.isArray(o))do{o=a[r],void 0!==o&&(e.push(a[i(3671)]),n[i(565)].apply(n,o)),a=t[s++]}while(void 0!==a);else if(void 0!==o[i(1499)])do{o=a[r],void 0!==o&&(e[i(565)](a.time),o.toArray(n,n[i(449)])),a=t[s++]}while(void 0!==a);else do{o=a[r],void 0!==o&&(e.push(a[i(3671)]),n[i(565)](o)),a=t[s++]}while(void 0!==a)}function subclip(t,e,n,r,i=30){var s=nz;const a=t[s(1014)]();a[s(542)]=e;const o=[];for(let t=0;t=r)){l[s(565)](e.times[t]);for(let n=0;na[s(3672)][t].times[0]&&(c=a[s(3672)][t][s(3673)][0]);for(let t=0;t=r[i(3673)][d]){const t=d*l+c,e=t+l-c;f=arraySlice(r[i(673)],t,e)}else{const t=r[i(3679)](),e=c,n=l-c;t[i(1416)](a),f=arraySlice(t[i(3680)],e,n)}if("quaternion"===s){(new Quaternion).fromArray(f)[i(569)]()[i(2016)]().toArray(f)}const p=o[i(3673)][i(449)];for(let t=0;t=s)break t;{const o=n[1];t=s)break e}a=r,r=0}}for(;r>>1;te;)--a;if(++a,0!==s||a!==i){s>=a&&(a=Math[n(486)](a,1),s=a-1);const t=this[n(3678)]();this[n(3673)]=arraySlice(r,s,a),this[n(673)]=arraySlice(this[n(673)],s*t,a*t)}return this}[nz(3710)](){var t=nz;let e=!0;const n=this.getValueSize();n-Math.floor(n)!=0&&(console.error(t(3711),this),e=!1);const r=this[t(3673)],i=this[t(673)],s=r[t(449)];0===s&&(console[t(819)](t(3712),this),e=!1);let a=null;for(let n=0;n!==s;n++){const i=r[n];if(typeof i===t(458)&&isNaN(i)){console.error(t(3713),this,n,i),e=!1;break}if(null!==a&&a>i){console[t(819)](t(3714),this,n,i,a),e=!1;break}a=i}if(void 0!==i&&isTypedArray(i))for(let n=0,r=i[t(449)];n!==r;++n){const t=i[n];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,n,t),e=!1;break}}return e}[nz(3715)](){var t=nz;const e=arraySlice(this[t(3673)]),n=arraySlice(this[t(673)]),r=this.getValueSize(),i=this[t(3703)]()===InterpolateSmooth,s=e[t(449)]-1;let a=1;for(let t=1;t0){e[a]=e[s];for(let t=s*r,e=a*r,i=0;i!==r;++i)n[e+i]=n[t+i];++a}return a!==e.length?(this[t(3673)]=arraySlice(e,0,a),this[t(673)]=arraySlice(n,0,a*r)):(this.times=e,this[t(673)]=n),this}[nz(1014)](){var t=nz;const e=arraySlice(this[t(3673)],0),n=arraySlice(this[t(673)],0),r=new(0,this[t(443)])(this[t(542)],e,n);return r.createInterpolant=this[t(3679)],r}};KeyframeTrack[nz(425)][nz(3700)]=Float32Array,KeyframeTrack[nz(425)][nz(3701)]=Float32Array,KeyframeTrack[nz(425)][nz(3702)]=InterpolateLinear;var BooleanKeyframeTrack=class extends KeyframeTrack{};BooleanKeyframeTrack[nz(425)][nz(3675)]=nz(3676),BooleanKeyframeTrack.prototype[nz(3701)]=Array,BooleanKeyframeTrack[nz(425)][nz(3702)]=InterpolateDiscrete,BooleanKeyframeTrack.prototype[nz(3706)]=void 0,BooleanKeyframeTrack[nz(425)][nz(3708)]=void 0;var ColorKeyframeTrack=class extends KeyframeTrack{};ColorKeyframeTrack[nz(425)].ValueTypeName=nz(2231);var NumberKeyframeTrack=class extends KeyframeTrack{};NumberKeyframeTrack[nz(425)][nz(3675)]=nz(458);var QuaternionLinearInterpolant=class extends Interpolant{constructor(t,e,n,r){super(t,e,n,r)}[nz(3698)](t,e,n,r){var i=nz;const s=this[i(3680)],a=this[i(3683)],o=this.valueSize,c=(n-e)/(r-e);let l=t*o;for(let t=l+o;l!==t;l+=4)Quaternion[i(2004)](s,0,a,l-o,a,l,c);return s}},QuaternionKeyframeTrack=class extends KeyframeTrack{[nz(3706)](t){var e=nz;return new QuaternionLinearInterpolant(this.times,this[e(673)],this.getValueSize(),t)}};QuaternionKeyframeTrack[nz(425)][nz(3675)]=nz(2128),QuaternionKeyframeTrack.prototype[nz(3702)]=InterpolateLinear,QuaternionKeyframeTrack[nz(425)].InterpolantFactoryMethodSmooth=void 0;var StringKeyframeTrack=class extends KeyframeTrack{};StringKeyframeTrack.prototype[nz(3675)]=nz(470),StringKeyframeTrack[nz(425)][nz(3701)]=Array,StringKeyframeTrack[nz(425)].DefaultInterpolation=InterpolateDiscrete,StringKeyframeTrack[nz(425)][nz(3706)]=void 0,StringKeyframeTrack[nz(425)][nz(3708)]=void 0;var VectorKeyframeTrack=class extends KeyframeTrack{};VectorKeyframeTrack[nz(425)].ValueTypeName=nz(1239);var AnimationClip=class{constructor(t,e=-1,n,r=NormalAnimationBlendMode){var i=nz;this[i(542)]=t,this[i(3672)]=n,this[i(3716)]=e,this[i(3717)]=r,this[i(1947)]=generateUUID(),this.duration<0&&this[i(3674)]()}static[nz(1087)](t){var e=nz;const n=[],r=t[e(3672)],i=1/(t[e(3718)]||1);for(let t=0,s=r.length;t!==s;++t)n[e(565)](parseKeyframeTrack(r[t])[e(1901)](i));const s=new this(t[e(542)],t[e(3716)],n,t.blendMode);return s[e(1947)]=t[e(1947)],s}static[nz(733)](t){var e=nz;const n=[],r=t[e(3672)],i={name:t.name,duration:t[e(3716)],tracks:n,uuid:t[e(1947)],blendMode:t[e(3717)]};for(let t=0,i=r.length;t!==i;++t)n[e(565)](KeyframeTrack.toJSON(r[t]));return i}static CreateFromMorphTargetSequence(t,e,n,r){var i=nz;const s=e[i(449)],a=[];for(let t=0;t1){const t=a[1];let e=i[t];!e&&(i[t]=e=[]),e[r(565)](n)}}const a=[];for(const t in i)a.push(this[r(3721)](t,i[t],e,n));return a}static parseAnimation(t,e){var n=nz;if(!t)return console[n(819)](n(3722)),null;const r=function(t,e,r,i,s){var a=n;if(0!==r[a(449)]){const n=[],o=[];flattenJSON(r,n,o,i),0!==n[a(449)]&&s[a(565)](new t(e,n,o))}},i=[],s=t[n(542)]||n(435),a=t.fps||30,o=t[n(3717)];let c=t[n(449)]||-1;const l=t[n(3723)]||[];for(let t=0;t{var n=i;e&&e(s),this[n(3749)].itemEnd(t)}),0),s;if(void 0!==loading[t])return void loading[t][i(565)]({onLoad:e,onProgress:n,onError:r});loading[t]=[],loading[t][i(565)]({onLoad:e,onProgress:n,onError:r});const a=new Request(t,{headers:new Headers(this.requestHeader),credentials:this[i(3752)]?i(3761):i(3762)}),o=this[i(3763)],c=this[i(3764)];fetch(a)[i(829)]((e=>{var n=i;if(200===e[n(1637)]||0===e[n(1637)]){if(0===e.status&&console[n(1176)]("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream===n(430)||void 0===e[n(1072)]||void 0===e[n(1072)][n(3765)])return e;const r=loading[t],i=e[n(1072)][n(3765)](),s=e[n(1073)][n(427)](n(3766)),a=s?parseInt(s):0,o=0!==a;let c=0;const l=new ReadableStream({start(t){!function e(){var n=f;i[n(3767)]()[n(829)]((({done:i,value:s})=>{var l=n;if(i)t[l(587)]();else{c+=s[l(702)];const n=new ProgressEvent(l(3768),{lengthComputable:o,loaded:c,total:a});for(let t=0,e=r[l(449)];t{var e=i;switch(c){case e(3773):return t[e(3774)]();case e(1102):return t[e(1102)]();case"document":return t[e(3775)]()[e(829)]((t=>{var n=e;return(new DOMParser)[n(3776)](t,o)}));case e(3777):return t[e(3777)]();default:if(void 0===o)return t.text();{const n=/charset="?([^;"\s]*)"?/i[e(601)](o),r=n&&n[1]?n[1][e(570)]():void 0,i=new TextDecoder(r);return t[e(3774)]().then((t=>i[e(3778)](t)))}}}))[i(829)]((e=>{var n=i;Cache[n(747)](t,e);const r=loading[t];delete loading[t];for(let t=0,i=r[n(449)];t{var n=i;const r=loading[t];if(void 0===r)throw this[n(3749)].itemError(t),e;delete loading[t];for(let t=0,i=r[n(449)];t{var e=i;this[e(3749)][e(3743)](t)})),this[i(3749)][i(3742)](t)}setResponseType(t){return this[nz(3764)]=t,this}[nz(3779)](t){return this[nz(3763)]=t,this}},AnimationLoader=class extends Loader{constructor(t){super(t)}[nz(1212)](t,e,n,r){var i=nz;const s=this,a=new FileLoader(this.manager);a[i(3756)](this[i(1091)]),a[i(3758)](this[i(3759)]),a[i(3755)](this[i(3752)]),a[i(1212)](t,(function(n){var a=i;try{e(s[a(1087)](JSON[a(1087)](n)))}catch(e){r?r(e):console[a(819)](e),s.manager.itemError(t)}}),n,r)}[nz(1087)](t){var e=nz;const n=[];for(let r=0;r0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const n in t[e(2377)]){const s=t[e(2377)][n];switch(i[e(2377)][n]={},s[e(452)]){case"t":i[e(2377)][n][e(439)]=r(s.value);break;case"c":i.uniforms[n][e(439)]=(new Color)[e(1910)](s.value);break;case"v2":i[e(2377)][n][e(439)]=(new Vector2)[e(1890)](s[e(439)]);break;case"v3":i[e(2377)][n][e(439)]=(new Vector3)[e(1890)](s[e(439)]);break;case"v4":i[e(2377)][n][e(439)]=(new Vector4)[e(1890)](s.value);break;case"m3":i[e(2377)][n][e(439)]=(new Matrix3)[e(1890)](s[e(439)]);break;case"m4":i[e(2377)][n].value=(new Matrix4)[e(1890)](s.value);break;default:i[e(2377)][n][e(439)]=s[e(439)]}}if(void 0!==t[e(2376)]&&(i.defines=t[e(2376)]),void 0!==t[e(2385)]&&(i[e(2385)]=t[e(2385)]),void 0!==t.fragmentShader&&(i[e(2379)]=t[e(2379)]),void 0!==t.glslVersion&&(i[e(2387)]=t.glslVersion),void 0!==t[e(2386)])for(const n in t[e(2386)])i[e(2386)][n]=t.extensions[n];if(void 0!==t.size&&(i[e(753)]=t[e(753)]),void 0!==t.sizeAttenuation&&(i[e(2284)]=t[e(2284)]),void 0!==t[e(679)]&&(i.map=r(t[e(679)])),void 0!==t[e(2253)]&&(i[e(2253)]=r(t[e(2253)])),void 0!==t[e(2254)]&&(i.alphaMap=r(t.alphaMap)),void 0!==t[e(2259)]&&(i[e(2259)]=r(t[e(2259)])),void 0!==t.bumpScale&&(i[e(2260)]=t[e(2260)]),void 0!==t[e(2261)]&&(i.normalMap=r(t.normalMap)),void 0!==t[e(2262)]&&(i[e(2262)]=t[e(2262)]),void 0!==t[e(2263)]){let n=t.normalScale;!1===Array[e(468)](n)&&(n=[n,n]),i[e(2263)]=(new Vector2)[e(1890)](n)}return void 0!==t.displacementMap&&(i[e(2264)]=r(t[e(2264)])),void 0!==t.displacementScale&&(i[e(2265)]=t.displacementScale),void 0!==t[e(2266)]&&(i.displacementBias=t[e(2266)]),void 0!==t[e(2267)]&&(i[e(2267)]=r(t.roughnessMap)),void 0!==t[e(2268)]&&(i[e(2268)]=r(t[e(2268)])),void 0!==t[e(2269)]&&(i.emissiveMap=r(t[e(2269)])),void 0!==t[e(2237)]&&(i[e(2237)]=t[e(2237)]),void 0!==t[e(2270)]&&(i[e(2270)]=r(t.specularMap)),void 0!==t[e(2271)]&&(i[e(2271)]=r(t[e(2271)])),void 0!==t[e(2272)]&&(i[e(2272)]=r(t.specularColorMap)),void 0!==t[e(2273)]&&(i[e(2273)]=r(t[e(2273)])),void 0!==t.envMapIntensity&&(i[e(2274)]=t.envMapIntensity),void 0!==t.reflectivity&&(i[e(2275)]=t[e(2275)]),void 0!==t[e(2276)]&&(i[e(2276)]=t[e(2276)]),void 0!==t.lightMap&&(i[e(2255)]=r(t[e(2255)])),void 0!==t[e(2256)]&&(i[e(2256)]=t.lightMapIntensity),void 0!==t[e(2257)]&&(i[e(2257)]=r(t.aoMap)),void 0!==t[e(2258)]&&(i.aoMapIntensity=t[e(2258)]),void 0!==t[e(2277)]&&(i.gradientMap=r(t[e(2277)])),void 0!==t[e(2244)]&&(i[e(2244)]=r(t[e(2244)])),void 0!==t[e(2245)]&&(i[e(2245)]=r(t.clearcoatRoughnessMap)),void 0!==t[e(2246)]&&(i[e(2246)]=r(t[e(2246)])),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Vector2)[e(1890)](t[e(2247)])),void 0!==t[e(2251)]&&(i.iridescenceMap=r(t[e(2251)])),void 0!==t[e(2252)]&&(i[e(2252)]=r(t.iridescenceThicknessMap)),void 0!==t.transmissionMap&&(i[e(2279)]=r(t[e(2279)])),void 0!==t[e(2281)]&&(i.thicknessMap=r(t.thicknessMap)),void 0!==t.sheenColorMap&&(i[e(2859)]=r(t.sheenColorMap)),void 0!==t[e(2861)]&&(i[e(2861)]=r(t[e(2861)])),i}[nz(3801)](t){return this.textures=t,this}static[nz(3800)](t){return new{ShadowMaterial:ShadowMaterial,SpriteMaterial:SpriteMaterial,RawShaderMaterial:RawShaderMaterial,ShaderMaterial:ShaderMaterial,PointsMaterial:PointsMaterial,MeshPhysicalMaterial:MeshPhysicalMaterial,MeshStandardMaterial:MeshStandardMaterial,MeshPhongMaterial:MeshPhongMaterial,MeshToonMaterial:MeshToonMaterial,MeshNormalMaterial:MeshNormalMaterial,MeshLambertMaterial:MeshLambertMaterial,MeshDepthMaterial:MeshDepthMaterial,MeshDistanceMaterial:MeshDistanceMaterial,MeshBasicMaterial:MeshBasicMaterial,MeshMatcapMaterial:MeshMatcapMaterial,LineDashedMaterial:LineDashedMaterial,LineBasicMaterial:LineBasicMaterial,Material:Material}[t]}},LoaderUtils=class{static[nz(3802)](t){var e=nz;if(typeof TextDecoder!==e(430))return(new TextDecoder)[e(3778)](t);let n="";for(let r=0,i=t[e(449)];r0){const r=new LoadingManager(e);s=new ImageLoader(r),s.setCrossOrigin(this[n(3750)]);for(let e=0,r=t[n(449)];e0){i=new ImageLoader(this[e(3749)]),i[e(3754)](this.crossOrigin);for(let n=0,i=t[e(449)];n0){this.source[t(3854)](this[t(3883)][0]);for(let e=1,n=this[t(3883)][t(449)];e0){this[t(556)][t(3263)](this.filters[0]);for(let e=1,n=this[t(3883)].length;e0&&this[e(3953)](r,i,this[e(3952)]*n,1,n);for(let t=n,s=n+n;t!==s;++t)if(r[t]!==r[t+n]){o[e(2723)](r,i);break}}saveOriginalState(){var t=nz;const e=this.binding,n=this[t(703)],r=this[t(3684)],i=r*this[t(3946)];e.getValue(n,i);for(let t=r,e=i;t!==e;++t)n[t]=n[i+t%r];this[t(3945)](),this[t(3947)]=0,this.cumulativeWeightAdditive=0}[nz(3954)](){var t=nz;const e=3*this[t(3684)];this[t(1367)][t(2723)](this.buffer,e)}[nz(3944)](){var t=nz;const e=this._addIndex*this[t(3684)],n=e+this[t(3684)];for(let t=e;t=.5)for(let r=0;r!==i;++r)t[e+r]=t[n+r]}[nz(3939)](t,e,n,r){Quaternion[nz(2004)](t,e,t,e,t,n,r)}[nz(3955)](t,e,n,r,i){var s=nz;const a=this[s(3956)]*i;Quaternion[s(3681)](t,a,t,e,t,n),Quaternion[s(2004)](t,e,t,e,t,a,r)}[nz(3957)](t,e,n,r,i){const s=1-r;for(let a=0;a!==i;++a){const i=e+a;t[i]=t[i]*s+t[n+a]*r}}[nz(3943)](t,e,n,r,i){for(let s=0;s!==i;++s){const i=e+s;t[i]=t[i]+t[n+s]*r}}},_RESERVED_CHARS_RE=nz(3958),_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE[nz(448)]("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/[nz(556)][nz(448)]("WC",_wordChar),_nodeRe=/(WCOD+)?/[nz(556)].replace(nz(3959),_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/[nz(556)][nz(448)]("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/[nz(556)][nz(448)]("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=[nz(2178),"materials",nz(3512),nz(679)],Composite=class{constructor(t,e,n){var r=nz;const i=n||PropertyBinding.parseTrackName(e);this[r(3960)]=t,this._bindings=t.subscribe_(e,i)}[nz(3961)](t,e){var n=nz;this[n(511)]();const r=this[n(3960)].nCachedObjects_,i=this[n(3962)][r];void 0!==i&&i[n(3961)](t,e)}setValue(t,e){var n=nz;const r=this[n(3962)];for(let i=this[n(3960)][n(3963)],s=r.length;i!==s;++i)r[i][n(2723)](t,e)}[nz(511)](){var t=nz;const e=this[t(3962)];for(let n=this[t(3960)][t(3963)],r=e[t(449)];n!==r;++n)e[n][t(511)]()}[nz(3964)](){var t=nz;const e=this[t(3962)];for(let n=this[t(3960)][t(3963)],r=e[t(449)];n!==r;++n)e[n][t(3964)]()}},PropertyBinding=class{constructor(t,e,n){var r=nz;this[r(1091)]=e,this[r(3965)]=n||PropertyBinding.parseTrackName(e),this[r(1626)]=PropertyBinding[r(3966)](t,this.parsedPath[r(3967)])||t,this.rootNode=t,this[r(3961)]=this[r(3968)],this[r(2723)]=this[r(3969)]}static[nz(419)](t,e,n){var r=nz;return t&&t[r(3970)]?new(PropertyBinding[r(3971)])(t,e,n):new PropertyBinding(t,e,n)}static[nz(3972)](t){var e=nz;return t[e(448)](/\s/g,"_")[e(448)](_reservedRe,"")}static[nz(3973)](t){var e=nz;const n=_trackRe.exec(t);if(null===n)throw new Error(e(3974)+t);const r={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},i=r.nodeName&&r[e(3967)][e(678)](".");if(void 0!==i&&-1!==i){const t=r[e(3967)].substring(i+1);-1!==_supportedObjectNames.indexOf(t)&&(r[e(3967)]=r[e(3967)].substring(0,i),r[e(3975)]=t)}if(null===r[e(3976)]||0===r[e(3976)][e(449)])throw new Error(e(3977)+t);return r}static findNode(t,e){var n=nz;if(void 0===e||""===e||"."===e||-1===e||e===t[n(542)]||e===t[n(1947)])return t;if(t.skeleton){const r=t.skeleton[n(3978)](e);if(void 0!==r)return r}if(t[n(1602)]){const r=function(t){var i=n;for(let n=0;n=s){const a=s++,l=e[a];n[l.uuid]=c,e[c]=l,n[o]=a,e[a]=t;for(let t=0,e=i;t!==e;++t){const e=r[t],n=e[a],i=e[c];e[c]=n,e[a]=i}}}this[t(3963)]=s}[nz(4026)](){var t=nz;const e=this[t(4019)],n=this[t(4020)],r=this[t(3962)],i=r[t(449)];let s=this[t(3963)],a=e[t(449)];for(let o=0,c=arguments[t(449)];o!==c;++o){const c=arguments[o].uuid,l=n[c];if(void 0!==l)if(delete n[c],l0&&(n[o[t(1947)]]=l),e[l]=o,e[t(1161)]();for(let e=0,n=i;e!==n;++e){const n=r[e];n[l]=n[s],n[t(1161)]()}}}this.nCachedObjects_=s}[nz(4027)](t,e){var n=nz;const r=this[n(4023)];let i=r[t];const s=this._bindings;if(void 0!==i)return s[i];const a=this[n(4021)],o=this[n(4022)],c=this[n(4019)],l=c[n(449)],h=this.nCachedObjects_,u=new Array(l);i=s[n(449)],r[t]=i,a[n(565)](t),o[n(565)](e),s[n(565)](u);for(let n=h,r=c.length;n!==r;++n){const r=c[n];u[n]=new PropertyBinding(r,t,e)}return u}[nz(4028)](t){var e=nz;const n=this[e(4023)],r=n[t];if(void 0!==r){const i=this[e(4021)],s=this[e(4022)],a=this[e(3962)],o=a[e(449)]-1,c=a[o];n[t[o]]=r,a[r]=c,a[e(1161)](),s[r]=s[o],s[e(1161)](),i[r]=i[o],i[e(1161)]()}}},AnimationAction=class{constructor(t,e,n=null,r=e[nz(3717)]){var i=nz;this._mixer=t,this[i(4029)]=e,this._localRoot=n,this[i(3717)]=r;const s=e[i(3672)],a=s[i(449)],o=new Array(a),c={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let t=0;t!==a;++t){const e=s[t][i(3679)](null);o[t]=e,e[i(3685)]=c}this[i(4030)]=c,this[i(4031)]=o,this._propertyBindings=new Array(a),this._cacheIndex=null,this[i(4032)]=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this[i(4033)]=-1,this._startTime=null,this.time=0,this[i(4034)]=1,this[i(4035)]=1,this[i(4036)]=1,this._effectiveWeight=1,this[i(4037)]=1/0,this.paused=!1,this[i(2407)]=!0,this[i(4038)]=!1,this[i(4039)]=!0,this[i(4040)]=!0}[nz(3892)](){var t=nz;return this._mixer[t(4041)](this),this}stop(){var t=nz;return this[t(4042)]._deactivateAction(this),this[t(1160)]()}[nz(1160)](){var t=nz;return this.paused=!1,this[t(2407)]=!0,this[t(3671)]=0,this[t(4033)]=-1,this._startTime=null,this[t(4043)]()[t(4044)]()}isRunning(){var t=nz;return this[t(2407)]&&!this.paused&&0!==this[t(4034)]&&null===this[t(4045)]&&this[t(4042)][t(4046)](this)}[nz(4047)](){var t=nz;return this._mixer[t(4046)](this)}[nz(4048)](t){return this[nz(4045)]=t,this}[nz(3908)](t,e){var n=nz;return this[n(3895)]=t,this[n(4037)]=e,this}[nz(4049)](t){var e=nz;return this[e(4036)]=t,this[e(4050)]=this[e(2407)]?t:0,this[e(4043)]()}[nz(4051)](){return this[nz(4050)]}[nz(4052)](t){return this[nz(4053)](t,0,1)}[nz(4054)](t){return this[nz(4053)](t,1,0)}crossFadeFrom(t,e,n){var r=nz;if(t.fadeOut(e),this[r(4052)](e),n){const n=this._clip[r(3716)],i=t[r(4029)][r(3716)],s=i/n,a=n/i;t[r(4055)](1,s,e),this[r(4055)](a,1,e)}return this}[nz(4056)](t,e,n){return t[nz(4057)](this,e,n)}[nz(4043)](){var t=nz;const e=this[t(4058)];return null!==e&&(this[t(4058)]=null,this[t(4042)][t(4059)](e)),this}[nz(4060)](t){var e=nz;return this[e(4034)]=t,this[e(4035)]=this[e(4061)]?0:t,this[e(4044)]()}[nz(4062)](){return this._effectiveTimeScale}[nz(4063)](t){var e=nz;return this[e(4034)]=this._clip[e(3716)]/t,this[e(4044)]()}syncWith(t){var e=nz;return this.time=t[e(3671)],this[e(4034)]=t[e(4034)],this[e(4044)]()}[nz(4064)](t){var e=nz;return this[e(4055)](this[e(4035)],0,t)}[nz(4055)](t,e,n){var r=nz;const i=this[r(4042)],s=i[r(3671)],a=this[r(4034)];let o=this._timeScaleInterpolant;null===o&&(o=i[r(4065)](),this[r(4066)]=o);const c=o[r(3687)],l=o.sampleValues;return c[0]=s,c[1]=s+n,l[0]=t/a,l[1]=e/a,this}[nz(4044)](){var t=nz;const e=this[t(4066)];return null!==e&&(this[t(4066)]=null,this[t(4042)]._takeBackControlInterpolant(e)),this}[nz(4067)](){return this._mixer}getClip(){return this[nz(4029)]}getRoot(){var t=nz;return this[t(4068)]||this[t(4042)][t(1200)]}_update(t,e,n,r){var i=nz;if(!this[i(2407)])return void this._updateWeight(t);const s=this[i(4045)];if(null!==s){const r=(t-s)*n;r<0||0===n?e=0:(this._startTime=null,e=n*r)}e*=this[i(4069)](t);const a=this[i(4070)](e),o=this[i(4071)](t);if(o>0){const t=this._interpolants,e=this[i(4072)];if(this[i(3717)]===AdditiveAnimationBlendMode)for(let n=0,r=t[i(449)];n!==r;++n)t[n][i(1416)](a),e[n][i(4073)](o);else for(let n=0,s=t.length;n!==s;++n)t[n][i(1416)](a),e[n].accumulate(r,o)}}[nz(4071)](t){var e=nz;let n=0;if(this.enabled){n=this[e(4036)];const r=this[e(4058)];if(null!==r){const i=r[e(1416)](t)[0];n*=i,t>r[e(3687)][1]&&(this[e(4043)](),0===i&&(this.enabled=!1))}}return this._effectiveWeight=n,n}[nz(4069)](t){var e=nz;let n=0;if(!this.paused){n=this.timeScale;const r=this[e(4066)];if(null!==r){n*=r.evaluate(t)[0],t>r[e(3687)][1]&&(this[e(4044)](),0===n?this[e(4061)]=!0:this[e(4034)]=n)}}return this._effectiveTimeScale=n,n}[nz(4070)](t){var e=nz;const n=this._clip.duration,r=this[e(3895)];let i=this[e(3671)]+t,s=this._loopCount;const a=r===LoopPingPong;if(0===t)return-1===s?i:a&&1==(1&s)?n-i:i;if(r===LoopOnce){-1===s&&(this[e(4033)]=0,this[e(4074)](!0,!0,!1));t:{if(i>=n)i=n;else{if(!(i<0)){this[e(3671)]=i;break t}i=0}this[e(4038)]?this[e(4061)]=!0:this.enabled=!1,this[e(3671)]=i,this[e(4042)][e(827)]({type:e(4075),action:this,direction:t<0?-1:1})}}else{if(-1===s&&(t>=0?(s=0,this[e(4074)](!0,0===this[e(4037)],a)):this[e(4074)](0===this.repetitions,!0,a)),i>=n||i<0){const r=Math[e(562)](i/n);i-=n*r,s+=Math[e(694)](r);const o=this.repetitions-s;if(o<=0)this[e(4038)]?this[e(4061)]=!0:this.enabled=!1,i=t>0?n:0,this.time=i,this[e(4042)][e(827)]({type:"finished",action:this,direction:t>0?1:-1});else{if(1===o){const n=t<0;this[e(4074)](n,!n,a)}else this[e(4074)](!1,!1,a);this[e(4033)]=s,this[e(3671)]=i,this[e(4042)][e(827)]({type:e(3895),action:this,loopDelta:r})}}else this[e(3671)]=i;if(a&&1==(1&s))return n-i}return i}_setEndings(t,e,n){var r=nz;const i=this._interpolantSettings;n?(i[r(3695)]=ZeroSlopeEnding,i[r(3696)]=ZeroSlopeEnding):(i[r(3695)]=t?this[r(4039)]?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding,i[r(3696)]=e?this[r(4040)]?ZeroSlopeEnding:ZeroCurvatureEnding:WrapAroundEnding)}[nz(4053)](t,e,n){var r=nz;const i=this[r(4042)],s=i[r(3671)];let a=this[r(4058)];null===a&&(a=i[r(4065)](),this[r(4058)]=a);const o=a[r(3687)],c=a[r(3683)];return o[0]=s,c[0]=e,o[1]=s+t,c[1]=n,this}},_controlInterpolantsResultBuffer=new Float32Array(1),AnimationMixer=class extends EventDispatcher{constructor(t){var e=nz;super(),this[e(1200)]=t,this._initMemoryManager(),this._accuIndex=0,this[e(3671)]=0,this[e(4034)]=1}[nz(4076)](t,e){var n=nz;const r=t[n(4068)]||this[n(1200)],i=t[n(4029)][n(3672)],s=i[n(449)],a=t._propertyBindings,o=t[n(4031)],c=r[n(1947)],l=this[n(4077)];let h=l[c];void 0===h&&(h={},l[c]=h);for(let t=0;t!==s;++t){const s=i[t],l=s[n(542)];let u=h[l];if(void 0!==u)++u[n(4078)],a[t]=u;else{if(u=a[t],void 0!==u){null===u[n(4079)]&&(++u[n(4078)],this[n(4080)](u,c,l));continue}const i=e&&e[n(4072)][t][n(1367)].parsedPath;u=new PropertyMixer(PropertyBinding[n(419)](r,l,i),s[n(3675)],s[n(3678)]()),++u[n(4078)],this._addInactiveBinding(u,c,l),a[t]=u}o[t][n(3680)]=u[n(703)]}}[nz(4041)](t){var e=nz;if(!this._isActiveAction(t)){if(null===t[e(4079)]){const n=(t[e(4068)]||this[e(1200)])[e(1947)],r=t[e(4029)][e(1947)],i=this._actionsByClip[r];this._bindAction(t,i&&i[e(4081)][0]),this._addInactiveAction(t,r,n)}const n=t[e(4072)];for(let t=0,r=n[e(449)];t!==r;++t){const r=n[t];0==r[e(3949)]++&&(this._lendBinding(r),r[e(4082)]())}this._lendAction(t)}}[nz(4083)](t){var e=nz;if(this._isActiveAction(t)){const n=t[e(4072)];for(let t=0,r=n[e(449)];t!==r;++t){const r=n[t];0==--r[e(3949)]&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(t)}}[nz(4084)](){var t=nz;this[t(4085)]=[],this[t(4086)]=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this[t(4077)]={},this[t(4087)]=[],this[t(4088)]=0;const e=this;this.stats={actions:{get total(){var n=t;return e[n(4085)][n(449)]},get inUse(){return e._nActiveActions}},bindings:{get total(){var n=t;return e[n(3962)][n(449)]},get inUse(){return e[t(4089)]}},controlInterpolants:{get total(){var n=t;return e[n(4087)][n(449)]},get inUse(){return e[t(4088)]}}}}[nz(4046)](t){var e=nz;const n=t[e(4079)];return null!==n&&n=0;--n)e[n][t(3405)]();return this}[nz(1067)](t){var e=nz;t*=this[e(4034)];const n=this[e(4085)],r=this[e(4086)],i=this[e(3671)]+=t,s=Math.sign(t),a=this[e(4102)]^=1;for(let o=0;o!==r;++o){n[o][e(4103)](i,t,s,a)}const o=this._bindings,c=this[e(4089)];for(let t=0;t!==c;++t)o[t].apply(a);return this}[nz(4104)](t){var e=nz;this[e(3671)]=0;for(let t=0;tthis[e(486)].x||t.ythis[e(486)].y)}[nz(2069)](t){var e=nz;return this[e(563)].x<=t[e(563)].x&&t[e(486)].x<=this[e(486)].x&&this[e(563)].y<=t[e(563)].y&&t.max.y<=this[e(486)].y}[nz(2601)](t,e){var n=nz;return e.set((t.x-this[n(563)].x)/(this[n(486)].x-this.min.x),(t.y-this.min.y)/(this[n(486)].y-this[n(563)].y))}[nz(2070)](t){var e=nz;return!(t.max.xthis[e(486)].x||t[e(486)].ythis[e(486)].y)}[nz(2072)](t,e){var n=nz;return e[n(1867)](t)[n(1875)](this[n(563)],this[n(486)])}[nz(2076)](t){var e=nz;return _vector$4.copy(t)[e(1875)](this[e(563)],this[e(486)]).sub(t)[e(449)]()}[nz(1708)](t){var e=nz;return this[e(563)][e(486)](t[e(563)]),this[e(486)].min(t[e(486)]),this}[nz(1255)](t){var e=nz;return this[e(563)][e(563)](t[e(563)]),this.max[e(486)](t[e(486)]),this}[nz(2078)](t){var e=nz;return this[e(563)][e(747)](t),this[e(486)][e(747)](t),this}[nz(1889)](t){var e=nz;return t[e(563)][e(1889)](this[e(563)])&&t[e(486)][e(1889)](this.max)}},_startP=new Vector3,_startEnd=new Vector3,Line3=class{constructor(t=new Vector3,e=new Vector3){var n=nz;this[n(725)]=t,this[n(887)]=e}set(t,e){var n=nz;return this[n(725)][n(1867)](t),this.end.copy(e),this}[nz(1867)](t){var e=nz;return this[e(725)][e(1867)](t[e(725)]),this.end.copy(t.end),this}[nz(2059)](t){var e=nz;return t.addVectors(this[e(725)],this[e(887)])[e(1878)](.5)}[nz(4119)](t){var e=nz;return t.subVectors(this[e(887)],this[e(725)])}[nz(4120)](){var t=nz;return this[t(725)][t(1884)](this[t(887)])}distance(){var t=nz;return this[t(725)][t(2038)](this[t(887)])}at(t,e){var n=nz;return this[n(4119)](e).multiplyScalar(t).add(this[n(725)])}[nz(4121)](t,e){var n=nz;_startP[n(1872)](t,this.start),_startEnd[n(1872)](this.end,this[n(725)]);const r=_startEnd.dot(_startEnd);let i=_startEnd[n(1879)](_startP)/r;return e&&(i=clamp(i,0,1)),i}closestPointToPoint(t,e,n){var r=nz;const i=this[r(4121)](t,e);return this[r(4119)](n).multiplyScalar(i)[r(747)](this[r(725)])}applyMatrix4(t){var e=nz;return this[e(725)].applyMatrix4(t),this[e(887)].applyMatrix4(t),this}equals(t){var e=nz;return t[e(725)][e(1889)](this[e(725)])&&t[e(887)].equals(this[e(887)])}clone(){return(new(this[nz(443)])).copy(this)}},_vector$3=new Vector3,SpotLightHelper=class extends Object3D{constructor(t,e){var n=nz;super(),this[n(4122)]=t,this.light.updateMatrixWorld(),this.matrix=t[n(2033)],this[n(1962)]=!1,this[n(2231)]=e;const r=new BufferGeometry,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,r=32;t1)for(let n=0;n.99999)this[e(2128)][e(540)](0,0,0,1);else if(t.y<-.99999)this[e(2128)][e(540)](1,0,0,0);else{_axis[e(540)](t.z,0,-t.x)[e(569)]();const n=Math[e(2015)](t.y);this[e(2128)][e(2026)](_axis,n)}}setLength(t,e=.2*t,n=.2*e){var r=nz;this.line[r(1901)][r(540)](1,Math[r(486)](1e-4,t-e),1),this[r(4148)][r(2127)](),this[r(4123)].scale[r(540)](n,e,n),this.cone[r(2065)].y=t,this[r(4123)][r(2127)]()}[nz(4150)](t){var e=nz;this[e(4148)][e(2178)].color[e(540)](t),this[e(4123)][e(2178)][e(2231)][e(540)](t)}[nz(1867)](t){var e=nz;return super[e(1867)](t,!1),this[e(4148)][e(1867)](t[e(4148)]),this[e(4123)][e(1867)](t[e(4123)]),this}[nz(1979)](){var t=nz;this.line[t(2063)][t(1979)](),this[t(4148)][t(2178)][t(1979)](),this[t(4123)].geometry[t(1979)](),this[t(4123)].material[t(1979)]()}},AxesHelper=class extends LineSegments{constructor(t=1){var e=nz;const n=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],r=new BufferGeometry;r[e(2334)]("position",new Float32BufferAttribute(n,3)),r.setAttribute(e(2231),new Float32BufferAttribute([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(r,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this[e(452)]="AxesHelper"}[nz(4138)](t,e,n){var r=nz;const i=new Color,s=this.geometry[r(2064)][r(2231)][r(2306)];return i[r(540)](t),i[r(1499)](s,0),i[r(1499)](s,3),i[r(540)](e),i[r(1499)](s,6),i[r(1499)](s,9),i.set(n),i[r(1499)](s,12),i[r(1499)](s,15),this.geometry[r(2064)][r(2231)][r(1948)]=!0,this}dispose(){var t=nz;this[t(2063)][t(1979)](),this.material.dispose()}},ShapePath=class{constructor(){var t=nz;this[t(452)]=t(4151),this[t(2231)]=new Color,this.subPaths=[],this.currentPath=null}[nz(3593)](t,e){var n=nz;return this[n(4152)]=new Path,this[n(4153)][n(565)](this[n(4152)]),this[n(4152)][n(3593)](t,e),this}[nz(3594)](t,e){var n=nz;return this.currentPath[n(3594)](t,e),this}[nz(4154)](t,e,n,r){var i=nz;return this[i(4152)][i(4154)](t,e,n,r),this}[nz(3595)](t,e,n,r,i,s){var a=nz;return this[a(4152)][a(3595)](t,e,n,r,i,s),this}[nz(3596)](t){var e=nz;return this[e(4152)][e(3596)](t),this}[nz(4155)](t){var e=nz;function n(t,e){const n=e[f(449)];let r=!1;for(let i=n-1,s=0;sNumber.EPSILON){if(c<0&&(n=e[s],o=-o,a=e[i],c=-c),t.ya.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=c*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;r=!r}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return r}const r=ShapeUtils.isClockWise,i=this[e(4153)];if(0===i.length)return[];let s,a,o;const c=[];if(1===i[e(449)])return a=i[0],o=new Shape,o[e(3584)]=a.curves,c[e(565)](o),c;let l=!r(i[0][e(3545)]());l=t?!l:l;const h=[],u=[];let d,p,m=[],v=0;u[v]=void 0,m[v]=[];for(let n=0,o=i.length;n1){let t=!1,r=0;for(let t=0,n=u[e(449)];t0&&!1===t&&(m=h)}for(let t=0,n=u[e(449)];t>-e-14,r[256|t]=1024>>-e-14|32768,i[t]=-e-1,i[256|t]=-e-1):e<=15?(r[t]=e+15<<10,r[256|t]=e+15<<10|32768,i[t]=13,i[256|t]=13):e<128?(r[t]=31744,r[256|t]=64512,i[t]=24,i[256|t]=24):(r[t]=31744,r[256|t]=64512,i[t]=13,i[256|t]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;0==(8388608&e);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,s[t]=e|n}for(let t=1024;t<2048;++t)s[t]=939524096+(t-1024<<13);for(let t=1;t<31;++t)a[t]=t<<23;a[31]=1199570944,a[32]=2147483648;for(let t=33;t<63;++t)a[t]=2147483648+(t-32<<23);a[63]=3347054592;for(let t=1;t<64;++t)32!==t&&(o[t]=1024);return{floatView:e,uint32View:n,baseTable:r,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function toHalfFloat(t){var e=nz;Math.abs(t)>65504&&console[e(1176)](e(4156)),t=clamp(t,-65504,65504),_tables.floatView[0]=t;const n=_tables[e(4157)][0],r=n>>23&511;return _tables[e(4158)][r]+((8388607&n)>>_tables[e(4159)][r])}function fromHalfFloat(t){var e=nz;const n=t>>10;return _tables[e(4157)][0]=_tables[e(4160)][_tables.offsetTable[n]+(1023&t)]+_tables[e(4161)][n],_tables[e(4162)][0]}var DataUtils=Object[nz(500)]({__proto__:null,toHalfFloat:toHalfFloat,fromHalfFloat:fromHalfFloat});function ImmediateRenderObject(){console[nz(819)]("THREE.ImmediateRenderObject has been removed.")}var WebGLMultisampleRenderTarget=class extends WebGLRenderTarget{constructor(t,e,n){var r=nz;console[r(819)]('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(t,e,n),this[r(1995)]=4}},DataTexture2DArray=class extends DataArrayTexture{constructor(t,e,n,r){console[nz(1176)]("THREE.DataTexture2DArray has been renamed to DataArrayTexture."),super(t,e,n,r)}},DataTexture3D=class extends Data3DTexture{constructor(t,e,n,r){console[nz(1176)]("THREE.DataTexture3D has been renamed to Data3DTexture."),super(t,e,n,r)}},BoxBufferGeometry=class extends BoxGeometry{constructor(t,e,n,r,i,s){console[nz(1176)]("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(t,e,n,r,i,s)}},CapsuleBufferGeometry=class extends CapsuleGeometry{constructor(t,e,n,r){var i=nz;console[i(1176)](i(4163)),super(t,e,n,r)}},CircleBufferGeometry=class extends CircleGeometry{constructor(t,e,n,r){var i=nz;console.warn(i(4164)),super(t,e,n,r)}},ConeBufferGeometry=class extends ConeGeometry{constructor(t,e,n,r,i,s,a){var o=nz;console.warn(o(4165)),super(t,e,n,r,i,s,a)}},CylinderBufferGeometry=class extends CylinderGeometry{constructor(t,e,n,r,i,s,a,o){var c=nz;console.warn(c(4166)),super(t,e,n,r,i,s,a,o)}},DodecahedronBufferGeometry=class extends DodecahedronGeometry{constructor(t,e){var n=nz;console[n(1176)](n(4167)),super(t,e)}},ExtrudeBufferGeometry=class extends ExtrudeGeometry{constructor(t,e){var n=nz;console[n(1176)](n(4168)),super(t,e)}},IcosahedronBufferGeometry=class extends IcosahedronGeometry{constructor(t,e){console[nz(1176)]("THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry."),super(t,e)}},LatheBufferGeometry=class extends LatheGeometry{constructor(t,e,n,r){console[nz(1176)]("THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry."),super(t,e,n,r)}},OctahedronBufferGeometry=class extends OctahedronGeometry{constructor(t,e){var n=nz;console[n(1176)](n(4169)),super(t,e)}},PlaneBufferGeometry=class extends PlaneGeometry{constructor(t,e,n,r){console[nz(1176)]("THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry."),super(t,e,n,r)}},PolyhedronBufferGeometry=class extends PolyhedronGeometry{constructor(t,e,n,r){var i=nz;console[i(1176)](i(4170)),super(t,e,n,r)}},RingBufferGeometry=class extends RingGeometry{constructor(t,e,n,r,i,s){var a=nz;console[a(1176)](a(4171)),super(t,e,n,r,i,s)}},ShapeBufferGeometry=class extends ShapeGeometry{constructor(t,e){console[nz(1176)]("THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry."),super(t,e)}},SphereBufferGeometry=class extends SphereGeometry{constructor(t,e,n,r,i,s,a){console[nz(1176)]("THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry."),super(t,e,n,r,i,s,a)}},TetrahedronBufferGeometry=class extends TetrahedronGeometry{constructor(t,e){var n=nz;console.warn(n(4172)),super(t,e)}},TorusBufferGeometry=class extends TorusGeometry{constructor(t,e,n,r,i){var s=nz;console[s(1176)](s(4173)),super(t,e,n,r,i)}},TorusKnotBufferGeometry=class extends TorusKnotGeometry{constructor(t,e,n,r,i,s){var a=nz;console[a(1176)](a(4174)),super(t,e,n,r,i,s)}},TubeBufferGeometry=class extends TubeGeometry{constructor(t,e,n,r,i){var s=nz;console.warn(s(4175)),super(t,e,n,r,i)}};typeof __THREE_DEVTOOLS__!==nz(430)&&__THREE_DEVTOOLS__[nz(827)](new CustomEvent("register",{detail:{revision:REVISION}})),typeof window!==nz(430)&&(window[nz(4176)]?console[nz(1176)](nz(4177)):window.__THREE__=REVISION);var MAX_RAYCAST_INTERSECTION_COUNT=1,_sphere2=new Sphere,_vStart=new Vector3,_vEnd=new Vector3,_interSegment=new Vector3,_interRay=new Vector3;function checkBufferGeometryIntersection2(t,e,n,r,i,s,a){var o=nz;_vStart[o(1891)](e,r)[o(2028)](t[o(2033)]),_vEnd.fromBufferAttribute(e,i)[o(2028)](t[o(2033)]);if(n.ray[o(2084)](_vStart,_vEnd,_interRay,_interSegment)>s)return!1;const c=n[o(2361)].origin[o(2038)](_interRay);return!(cn[o(2366)])&&(a[o(565)]({distance:c,point:_interSegment[o(1014)](),index:r,object:t}),!0)}Line[nz(425)].raycast=function(t,e){var n=nz;const r=this[n(2063)],i=this[n(2033)],s=t[n(3536)][n(3528)][n(3531)],a=r[n(2331)];if(null===r.boundingSphere&&r[n(2340)](),_sphere2.copy(r[n(2330)]),_sphere2[n(2028)](i),_sphere2[n(2041)]+=s,!1===t.ray[n(2071)](_sphere2))return;const o=s*s,c=this[n(3417)]?2:1,l=r[n(677)],h=r.attributes[n(2065)],u=e[n(449)];if(null!==l){const r=this[n(1968)][n(4178)];if(r&&r[n(449)]>0&&r[0][n(2330)])for(let s=0;s=MAX_RAYCAST_INTERSECTION_COUNT))return}}else{for(let r=Math.max(0,a[n(725)]),i=Math[n(563)](l.count,a[n(725)]+a[n(2053)])-1;r=MAX_RAYCAST_INTERSECTION_COUNT))return}}}else{const r=this[n(1968)][n(4178)];if(r&&r[n(449)]>0&&r[0][n(2330)])for(let s=0;s=MAX_RAYCAST_INTERSECTION_COUNT)return}else{for(let r=Math.max(0,a.start),i=Math[n(563)](h[n(2053)],a[n(725)]+a[n(2053)])-1;r=MAX_RAYCAST_INTERSECTION_COUNT)return}}};var CENTER=0,AVERAGE=1,SAH=2,CONTAINED=2,TRIANGLE_INTERSECT_COST=1.25,TRAVERSAL_COST=1,BYTES_PER_NODE=32,IS_LEAFNODE_FLAG=65535,FLOAT32_EPSILON=Math[nz(428)](2,-24),MeshBVHNode=class{constructor(){}};function arrayToBox(t,e,n){var r=nz;return n[r(563)].x=e[t],n.min.y=e[t+1],n.min.z=e[t+2],n[r(486)].x=e[t+3],n[r(486)].y=e[t+4],n[r(486)].z=e[t+5],n}function getLongestEdgeIndex(t){let e=-1,n=-1/0;for(let r=0;r<3;r++){const i=t[r+3]-t[r];i>n&&(n=i,e=r)}return e}function copyBounds(t,e){e[nz(540)](t)}function unionBounds(t,e,n){let r,i;for(let s=0;s<3;s++){const a=s+3;r=t[s],i=e[s],n[s]=ri?r:i}}function expandByTriangleBounds(t,e,n){for(let r=0;r<3;r++){const i=e[t+2*r],s=e[t+2*r+1],a=i-s,o=i+s;an[r+3]&&(n[r+3]=o)}}function computeSurfaceArea(t){const e=t[3]-t[0],n=t[4]-t[1],r=t[5]-t[2];return 2*(e*n+n*r+r*e)}function ensureIndex(t,e){var n=nz;if(!t[n(677)]){const r=t[n(2064)][n(2065)].count,i=e[n(4182)]?SharedArrayBuffer:ArrayBuffer;let s;s=r>65535?new Uint32Array(new i(4*r)):new Uint16Array(new i(2*r)),t[n(2332)](new BufferAttribute(s,1));for(let t=0;tt-e));for(let t=0;tc&&(c=g),_&&ep&&(p=e);const y=t[r+2],E=t[r+3],T=y-E,I=y+E;Tl&&(l=I),_&&ym&&(m=y);const z=t[r+4],S=t[r+5],x=z-S,b=z+S;xh&&(h=b),_&&zv&&(v=z)}r[0]=s,r[1]=a,r[2]=o,r[3]=c,r[4]=l,r[5]=h,_&&(i[0]=u,i[1]=d,i[2]=f,i[3]=p,i[4]=m,i[5]=v)}function getCentroidBounds(t,e,n,r){let i=1/0,s=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let r=6*e,h=6*(e+n);ro&&(o=e);const n=t[r+2];nc&&(c=n);const h=t[r+4];hl&&(l=h)}r[0]=i,r[1]=s,r[2]=a,r[3]=o,r[4]=c,r[5]=l}function partition(t,e,n,r,i){let s=n,a=n+r-1;const o=i[nz(4183)],c=2*i.axis;for(;;){for(;s<=a&&e[6*s+c]=o;)a--;if(!(st[nz(4184)]-e[nz(4184)],sahBins=new Array(BIN_COUNT)[nz(929)]()[nz(679)]((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),leftBounds=new Float32Array(6);function getOptimalSplit(t,e,n,r,i,s){var a=nz;let o=-1,c=0;if(s===CENTER)o=getLongestEdgeIndex(e),-1!==o&&(c=(e[o]+e[o+3])/2);else if(s===AVERAGE)o=getLongestEdgeIndex(t),-1!==o&&(c=getAverage(n,r,i,o));else if(s===SAH){const s=computeSurfaceArea(t);let l=TRIANGLE_INTERSECT_COST*i;const h=6*r,u=6*(r+i);for(let t=0;t<3;t++){const r=e[t],d=(e[t+3]-r)/BIN_COUNT;if(i=s[a(4184)]?expandByTriangleBounds(r,n,s.rightCacheBounds):(expandByTriangleBounds(r,n,s[a(4185)]),s[a(2053)]++)}}for(let n=0;n=BIN_COUNT&&(i=BIN_COUNT-1);const s=sahBins[i];s.count++,expandByTriangleBounds(e,n,s.bounds)}const e=sahBins[BIN_COUNT-1];copyBounds(e.bounds,e[a(4186)]);for(let t=BIN_COUNT-2;t>=0;t--){const e=sahBins[t],n=sahBins[t+1];unionBounds(e[a(4187)],n.rightCacheBounds,e[a(4186)])}let f=0;for(let e=0;em&&(m=i),l>m&&(m=l);const v=(m-h)/2,_=2*t;a[s+_+0]=h+v,a[s+_+1]=v+(Math.abs(h)+v)*FLOAT32_EPSILON,he[t+3]&&(e[t+3]=m)}}return a}function buildTree(t,e){var n=nz;function r(t){p&&p(t/m)}function i(e,n,s,p=null,m=0){var _=f;if(!v&&m>=l&&(v=!0,h&&(console[_(1176)](_(4189)+l+_(4190)),console[_(1176)](t))),s<=u||m>=l)return r(n+s),e[_(1389)]=n,e[_(2053)]=s,e;const g=getOptimalSplit(e[_(4191)],p,o,n,s,d);if(-1===g[_(4192)])return r(n+s),e.offset=n,e.count=s,e;const y=partition(c,o,n,s,g);if(y===n||y===n+s)r(n+s),e[_(1389)]=n,e[_(2053)]=s;else{e[_(4193)]=g[_(4192)];const t=new MeshBVHNode,r=n,c=y-n;e[_(683)]=t,t[_(4191)]=new Float32Array(6),getBounds(o,r,c,t[_(4191)],a),i(t,r,c,a,m+1);const l=new MeshBVHNode,h=y,u=s-c;e[_(935)]=l,l[_(4191)]=new Float32Array(6),getBounds(o,h,u,l[_(4191)],a),i(l,h,u,a,m+1)}return e}ensureIndex(t,e);const s=new Float32Array(6),a=new Float32Array(6),o=computeTriangleBounds(t,s),c=t[n(677)][n(2306)],l=e[n(4194)],h=e[n(4195)],u=e.maxLeafTris,d=e.strategy,p=e[n(3740)],m=t[n(677)][n(2053)]/3;let v=!1;const _=[],g=getRootIndexRanges(t);if(1===g[n(449)]){const t=g[0],e=new MeshBVHNode;e[n(4191)]=s,getCentroidBounds(o,t[n(1389)],t[n(2053)],a),i(e,t.offset,t[n(2053)],a),_[n(565)](e)}else for(let t of g){const e=new MeshBVHNode;e[n(4191)]=new Float32Array(6),getBounds(o,t[n(1389)],t[n(2053)],e.boundingData,a),i(e,t[n(1389)],t[n(2053)],a),_.push(e)}return _}function buildPackedTree(t,e){var n=nz;const r=buildTree(t,e);let i,s,a;const o=[],c=e.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let t=0;tMath[r(428)](2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return s[o+6]=c/4,c=h(c,i),s[o+7]=a,c}}}var SeparatingAxisBounds=class{constructor(){var t=nz;this[t(563)]=1/0,this[t(486)]=-1/0}[nz(4196)](t,e){var n=nz;let r=1/0,i=-1/0;for(let s=0,a=t[n(449)];si?n:i}this[n(563)]=r,this[n(486)]=i}[nz(2054)](t,e){var n=nz;let r=1/0,i=-1/0;for(let s=0,a=e.length;si?o:i}this[n(563)]=r,this[n(486)]=i}[nz(4197)](t){var e=nz;return this[e(563)]>t[e(486)]||t.min>this[e(486)]}};SeparatingAxisBounds.prototype[nz(4198)]=function(){const t=new Vector3;return function(e,n){var r=f;const i=n[r(563)],s=n[r(486)];let a=1/0,o=-1/0;for(let n=0;n<=1;n++)for(let c=0;c<=1;c++)for(let l=0;l<=1;l++){t.x=i.x*n+s.x*(1-n),t.y=i.y*c+s.y*(1-c),t.z=i.z*l+s.z*(1-l);const h=e[r(1879)](t);a=Math.min(h,a),o=Math[r(486)](h,o)}this[r(563)]=a,this[r(486)]=o}}();var areIntersecting=function(){const t=new SeparatingAxisBounds;return function(e,n){var r=f;const i=e[r(2985)],s=e[r(4199)],a=e[r(4200)],o=n[r(2985)],c=n[r(4199)],l=n.satBounds;for(let e=0;e<3;e++){const n=a[e],i=s[e];if(t[r(2054)](i,o),n.isSeparated(t))return!1}for(let e=0;e<3;e++){const n=l[e],s=c[e];if(t[r(2054)](s,i),n[r(4197)](t))return!1}}}(),closestPointLineToLine=function(){const t=new Vector3,e=new Vector3,n=new Vector3;return function(r,i,s){var a=f;const o=r[a(725)],c=t,l=i[a(725)],h=e;n[a(1872)](o,l),t[a(1872)](r[a(887)],r[a(725)]),e[a(1872)](i[a(887)],i[a(725)]);const u=n.dot(h),d=h[a(1879)](c),p=h.dot(h),m=n.dot(c),v=c[a(1879)](c)*p-d*d;let _,g;_=0!==v?(u*d-m*p)/v:0,g=(u+_*d)/p,s.x=_,s.y=g}}(),closestPointsSegmentToSegment=function(){const t=new Vector2,e=new Vector3,n=new Vector3;return function(r,i,s,a){var o=f;closestPointLineToLine(r,i,t);let c=t.x,l=t.y;if(c>=0&&c<=1&&l>=0&&l<=1)return r.at(c,s),void i.at(l,a);if(c>=0&&c<=1)return l<0?i.at(0,a):i.at(1,a),void r[o(2082)](a,!0,s);if(l>=0&&l<=1)return c<0?r.at(0,s):r.at(1,s),void i[o(2082)](s,!0,a);{let t,h;t=c<0?r[o(725)]:r[o(887)],h=l<0?i.start:i[o(887)];const u=e,d=n;return r[o(2082)](h,!0,e),i.closestPointToPoint(t,!0,n),u[o(1884)](h)<=d[o(1884)](t)?(s.copy(u),void a[o(1867)](h)):(s[o(1867)](t),void a[o(1867)](d))}}}(),sphereIntersectTriangle=function(){const t=new Vector3,e=new Vector3,n=new Plane,r=new Line3;return function(i,s){var a=f;const{radius:o,center:c}=i,{a:l,b:h,c:u}=s;r[a(725)]=l,r[a(887)]=h;if(r.closestPointToPoint(c,!0,t)[a(2038)](c)<=o)return!0;r[a(725)]=l,r[a(887)]=u;if(r.closestPointToPoint(c,!0,t)[a(2038)](c)<=o)return!0;r[a(725)]=h,r[a(887)]=u;if(r[a(2082)](c,!0,t).distanceTo(c)<=o)return!0;const d=s.getPlane(n);if(Math[a(694)](d[a(2076)](c))<=o){const t=d[a(2427)](c,e);if(s[a(2068)](t))return!0}return!1}}(),DIST_EPSILON=1e-15;function isNearZero(t){return Math[nz(694)](t)new Vector3)),this[e(4200)]=new Array(4)[e(929)]()[e(679)]((()=>new SeparatingAxisBounds)),this.points=[this.a,this.b,this.c],this[e(4202)]=new Sphere,this[e(4146)]=new Plane,this[e(1948)]=!0}[nz(2071)](t){return sphereIntersectTriangle(t,this)}update(){var t=nz;const e=this.a,n=this.b,r=this.c,i=this[t(2985)],s=this[t(4199)],a=this[t(4200)],o=s[0],c=a[0];this[t(2184)](o),c[t(2054)](o,i);const l=s[1],h=a[1];l.subVectors(e,n),h[t(2054)](l,i);const u=s[2],d=a[2];u[t(1872)](n,r),d[t(2054)](u,i);const f=s[3],p=a[3];f[t(1872)](r,e),p[t(2054)](f,i),this[t(4202)][t(2054)](this[t(2985)]),this[t(4146)][t(2426)](o,e),this[t(1948)]=!1}};ExtendedTriangle[nz(425)].closestPointToSegment=function(){const t=new Vector3,e=new Vector3,n=new Line3;return function(r,i=null,s=null){var a=f;const{start:o,end:c}=r,l=this.points;let h,u=1/0;for(let o=0;o<3;o++){const c=(o+1)%3;n.start[a(1867)](l[o]),n[a(887)][a(1867)](l[c]),closestPointsSegmentToSegment(n,r,t,e),h=t[a(1884)](e),h1-1e-10){const t=this.satBounds,a=this[v(4199)];n[0]=d.a,n[1]=d.b,n[2]=d.c;for(let e=0;e<4;e++){const i=t[e],s=a[e];if(r[v(2054)](s,n),i[v(4197)](r))return!1}const o=d.satBounds,c=d.satAxes;e[0]=this.a,e[1]=this.b,e[2]=this.c;for(let t=0;t<4;t++){const n=o[t],i=c[t];if(r[v(2054)](i,e),n[v(4197)](r))return!1}for(let t=0;t<4;t++){const o=a[t];for(let t=0;t<4;t++){const a=c[t];if(s[v(2035)](o,a),r[v(2054)](s,e),i[v(2054)](s,n),r[v(4197)](i))return!1}}return p&&(!m&&console[v(1176)](v(4203)),p[v(725)][v(540)](0,0,0),p[v(887)].set(0,0,0)),!0}{const t=this[v(2985)];let e=!1,n=0;for(let r=0;r<3;r++){const i=t[r],s=t[(r+1)%3];l.start[v(1867)](i),l[v(887)].copy(s),l[v(4119)](a);const o=e?h[v(725)]:h[v(887)],c=isNearZero(g[v(2076)](i));if(isNearZero(g[v(655)][v(1879)](a))&&c){h[v(1867)](l),n=2;break}if((g[v(2428)](l,o)||c)&&!isNearZero(o[v(2038)](s))){if(n++,e)break;e=!0}}if(1===n&&d[v(2068)](h.end))return p&&(p[v(725)].copy(h.end),p.end[v(1867)](h[v(887)])),!0;if(2!==n)return!1;const r=d[v(2985)];let i=!1,s=0;for(let t=0;t<3;t++){const e=r[t],n=r[(t+1)%3];l.start[v(1867)](e),l[v(887)][v(1867)](n),l.delta(o);const a=i?u[v(725)]:u.end,c=isNearZero(_[v(2076)](e));if(isNearZero(_.normal[v(1879)](o))&&c){u[v(1867)](l),s=2;break}if((_[v(2428)](l,a)||c)&&!isNearZero(a[v(2038)](n))){if(s++,i)break;i=!0}}if(1===s&&this.containsPoint(u[v(887)]))return p&&(p[v(725)][v(1867)](u.end),p[v(887)].copy(u[v(887)])),!0;if(2!==s)return!1;if(h[v(4119)](a),u.delta(o),a[v(1879)](o)<0){let t=u[v(725)];u.start=u[v(887)],u[v(887)]=t}const f=h[v(725)][v(1879)](a),m=h[v(887)][v(1879)](a),y=u[v(725)][v(1879)](a),E=u[v(887)].dot(a);return(f===E||y===m||m0?p[v(725)][v(1867)](h[v(725)]):p[v(725)][v(1867)](u[v(725)]),c[v(1872)](h[v(887)],u[v(887)]),c.dot(a)<0?p[v(887)][v(1867)](h[v(887)]):p.end.copy(u[v(887)])),!0)}}}(),ExtendedTriangle[nz(425)][nz(2076)]=function(){const t=new Vector3;return function(e){var n=f;return this[n(2082)](e,t),e[n(2038)](t)}}(),ExtendedTriangle[nz(425)][nz(4204)]=function(){const t=new Vector3,e=new Vector3,n=["a","b","c"],r=new Line3,i=new Line3;return function(s,a=null,o=null){var c=f;const l=a||o?r:null;if(this[c(2075)](s,l))return(a||o)&&(a&&l[c(2059)](a),o&&l[c(2059)](o)),0;let h=1/0;for(let e=0;e<3;e++){let r;const i=n[e],l=s[i];this[c(2082)](l,t),r=l.distanceToSquared(t),rnew Vector3)),this[r(4199)]=new Array(3)[r(929)]()[r(679)]((()=>new Vector3)),this[r(4200)]=new Array(3)[r(929)]()[r(679)]((()=>new SeparatingAxisBounds)),this[r(4205)]=new Array(3)[r(929)]()[r(679)]((()=>new SeparatingAxisBounds)),this[r(1948)]=!1,t&&this[r(563)][r(1867)](t),e&&this.max.copy(e),n&&this[r(1963)].copy(n)}[nz(540)](t,e,n){var r=nz;this.min[r(1867)](t),this[r(486)][r(1867)](e),this.matrix[r(1867)](n),this[r(1948)]=!0}[nz(1867)](t){var e=nz;this[e(563)].copy(t.min),this[e(486)][e(1867)](t[e(486)]),this[e(1963)].copy(t.matrix),this[e(1948)]=!0}};OrientedBox[nz(425)][nz(1067)]=function(){var t=f;const e=this[t(1963)],n=this.min,r=this[t(486)],i=this.points;for(let s=0;s<=1;s++)for(let a=0;a<=1;a++)for(let o=0;o<=1;o++){const c=i[1*s|2*a|4*o];c.x=s?r.x:n.x,c.y=a?r.y:n.y,c.z=o?r.z:n.z,c[t(2028)](e)}const s=this[t(4200)],a=this[t(4199)],o=i[0];for(let e=0;e<3;e++){const n=a[e],r=s[e],c=i[1<new Line3)),r=new Array(12).fill().map((()=>new Line3)),i=new Vector3,s=new Vector3;return function(a,o=0,c=null,l=null){var h=t;if(this[h(1948)]&&this[h(1067)](),this[h(2070)](a))return(c||l)&&(a.getCenter(s),this[h(2082)](s,i),a[h(2082)](i,s),c&&c[h(1867)](i),l&&l.copy(s)),0;const u=o*o,d=a.min,f=a.max,p=this.points;let m=1/0;for(let t=0;t<8;t++){const e=p[t];s[h(1867)](e)[h(1875)](d,f);const n=e[h(1884)](s);if(nn[r(2366)]?null:t)}function setTriangle(t,e,n,r){var i=nz;const s=t.a,a=t.b,o=t.c;let c=e,l=e+1,h=e+2;n&&(c=n.getX(e),l=n[i(1892)](e+1),h=n[i(1892)](e+2)),s.x=r[i(1892)](c),s.y=r.getY(c),s.z=r.getZ(c),a.x=r[i(1892)](l),a.y=r[i(1893)](l),a.z=r[i(1937)](l),o.x=r[i(1892)](h),o.y=r[i(1893)](h),o.z=r[i(1937)](h)}function iterateOverTriangles(t,e,n,r,i,s,a){var o=nz;const c=n[o(677)],l=n[o(2064)].position;for(let n=t,h=e+t;n=0;let h,u;l?(h=LEFT_NODE(t),u=RIGHT_NODE(t,c)):(h=RIGHT_NODE(t,c),u=LEFT_NODE(t));const d=intersectRay(h,a,r,boxIntersection)?raycastFirst(h,e,n,r):null;if(d){const t=d[i(1220)][o];if(l?t<=a[u+s]:t>=a[u+s+3])return d}const f=intersectRay(u,a,r,boxIntersection)?raycastFirst(u,e,n,r):null;return d&&f?d[i(3018)]<=f.distance?d:f:d||f||null}}var shapecast=function(){let t,e;const n=[],r=new PrimitivePool((()=>new Box3));return function(...s){var a=f;t=r.getPrimitive(),e=r.getPrimitive(),n[a(565)](t,e);const o=i(...s);r.releasePrimitive(t),r[a(4211)](e),n.pop(),n[a(1161)]();const c=n[a(449)];return c>0&&(e=n[c-1],t=n[c-2]),o};function i(n,r,s,a,o=null,c=0,l=0){function h(t){let e=2*t,n=_uint16Array,r=_uint32Array;for(;!IS_LEAF(e,n);)e=2*(t=LEFT_NODE(t));return OFFSET(t,r)}function u(t){let e=2*t,n=_uint16Array,r=_uint32Array;for(;!IS_LEAF(e,n);)e=2*(t=RIGHT_NODE(t,r));return OFFSET(t,r)+COUNT(e,n)}let d=2*n,f=_float32Array,p=_uint16Array,m=_uint32Array;if(IS_LEAF(d,p)){const e=OFFSET(n,m),r=COUNT(d,p);return arrayToBox(BOUNDING_DATA_INDEX(n),f,t),a(e,r,!1,l,c+n,t)}{const d=LEFT_NODE(n),v=RIGHT_NODE(n,m);let _,g,y,E,T=d,I=v;if(o&&(y=t,E=e,arrayToBox(BOUNDING_DATA_INDEX(T),f,y),arrayToBox(BOUNDING_DATA_INDEX(I),f,E),_=o(y),g=o(E),g<_)){T=v,I=d;const t=_;_=g,g=t,y=E}!y&&(y=t,arrayToBox(BOUNDING_DATA_INDEX(T),f,y));const z=s(y,IS_LEAF(2*T,p),_,l+1,c+T);let S;if(z===CONTAINED){const t=h(T);S=a(t,u(T)-t,!0,l+1,c+T,y)}else S=z&&i(T,r,s,a,o,c,l+1);if(S)return!0;E=e,arrayToBox(BOUNDING_DATA_INDEX(I),f,E);const x=s(E,IS_LEAF(2*I,p),g,l+1,c+I);let b;if(x===CONTAINED){const t=h(I);b=a(t,u(I)-t,!0,l+1,c+I,E)}else b=x&&i(I,r,s,a,o,c,l+1);return!!b}}}(),intersectsGeometry=function(){const t=new ExtendedTriangle,e=new ExtendedTriangle,n=new Matrix4,r=new OrientedBox,i=new OrientedBox;return function s(a,o,c,l,h=null){var u=f;let d=2*a,p=_float32Array,m=_uint16Array,v=_uint32Array;null===h&&(!c[u(2066)]&&c[u(2067)](),r[u(540)](c[u(2066)][u(563)],c[u(2066)].max,l),h=r);if(!IS_LEAF(d,m)){const t=a+8,e=v[a+6];arrayToBox(BOUNDING_DATA_INDEX(t),p,boundingBox);if(h[u(2070)](boundingBox)&&s(t,o,c,l,h))return!0;arrayToBox(BOUNDING_DATA_INDEX(e),p,boundingBox);return!!(h[u(2070)](boundingBox)&&s(e,o,c,l,h))}{const r=o,s=r[u(677)],h=r.attributes[u(2065)],f=c[u(677)],_=c.attributes[u(2065)],g=OFFSET(a,v),y=COUNT(d,m);if(n.copy(l)[u(1465)](),c[u(4212)]){arrayToBox(BOUNDING_DATA_INDEX(a),p,i),i[u(1963)].copy(n),i[u(1948)]=!0;return c.boundsTree[u(4213)]({intersectsBounds:t=>i[u(2070)](t),intersectsTriangle:t=>{var n=u;t.a[n(2028)](l),t.b.applyMatrix4(l),t.c.applyMatrix4(l),t[n(1948)]=!0;for(let r=3*g,i=3*(y+g);rnew ExtendedTriangle)),MeshBVH=class{static serialize(t,e={}){var n=nz;if(e.isBufferGeometry)return console[n(1176)]("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),MeshBVH[n(1071)](arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});e=__spreadValues({cloneBuffers:!0},e);const r=t[n(2063)],i=t[n(4215)],s=r[n(3618)]();let a;return a=e[n(4216)]?{roots:i.map((t=>t[n(497)]())),index:s.array[n(497)]()}:{roots:i,index:s.array},a}static[nz(4217)](t,e,n={}){var r=nz;if(typeof n===r(1403))return console[r(1176)]("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),MeshBVH.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});n=__spreadValues({setIndex:!0},n);const{index:i,roots:s}=t,a=new MeshBVH(e,__spreadProps(__spreadValues({},n),{[SKIP_GENERATION]:!0}));if(a[r(4215)]=s,n[r(2332)]){const n=e[r(3618)]();if(null===n){const n=new BufferAttribute(t[r(677)],1,!1);e[r(2332)](n)}else n[r(2306)]!==i&&(n.array[r(540)](i),n[r(1948)]=!0)}return a}constructor(t,e={}){var n=nz;if(!t[n(3821)])throw new Error("MeshBVH: Only BufferGeometries are supported.");if(t[n(677)]&&t.index[n(2444)])throw new Error(n(4218));if((e=Object[n(501)]({strategy:CENTER,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[SKIP_GENERATION]:!1},e)).useSharedArrayBuffer&&typeof SharedArrayBuffer===n(430))throw new Error("MeshBVH: SharedArrayBuffer is not available.");this[n(4215)]=null,!e[SKIP_GENERATION]&&(this[n(4215)]=buildPackedTree(t,e),!t[n(2066)]&&e[n(4219)]&&(t[n(2066)]=this.getBoundingBox(new Box3))),this.geometry=t}[nz(4220)](t=null){var e=nz;t&&Array[e(468)](t)&&(t=new Set(t));const n=this[e(2063)],r=n[e(677)][e(2306)],i=n[e(2064)][e(2065)];let s,a,o,c,l=0;const h=this[e(4215)];for(let t=0,n=h[e(449)];tu&&(u=a),of&&(f=o),cp&&(p=c)}return(c[n+0]!==e||c[n+1]!==s||c[n+2]!==l||c[n+3]!==u||c[n+4]!==f||c[n+5]!==p)&&(c[n+0]=e,c[n+1]=s,c[n+2]=l,c[n+3]=u,c[n+4]=f,c[n+5]=p,!0)}{const e=n+8,r=a[n+6],i=e+s,o=r+s;let d=l,f=!1,p=!1;t?!d&&(f=t[h(546)](i),p=t.has(o),d=!f&&!p):(f=!0,p=!0);const m=d||p;let v=!1;(d||f)&&(v=u(e,s,d));let _=!1;m&&(_=u(r,s,d));const g=v||_;if(g)for(let t=0;t<3;t++){const i=e+t,s=r+t,a=c[i],o=c[i+3],l=c[s],h=c[s+3];c[n+t]=ah?o:h}return g}}}traverse(t,e=0){const n=this[nz(4215)][e],r=new Uint32Array(n),i=new Uint16Array(n);!function e(s,a=0){const o=2*s,c=i[o+15]===IS_LEAFNODE_FLAG;if(c){const e=r[s+6],l=i[o+14];t(a,c,new Float32Array(n,4*s,6),e,l)}else{const i=s+BYTES_PER_NODE/4,o=r[s+6],l=r[s+7];!t(a,c,new Float32Array(n,4*s,6),l)&&(e(i,a+1),e(o,a+1))}}(0)}[nz(2360)](t,e=FrontSide){var n=nz;const r=this._roots,i=this[n(2063)],s=[],a=e.isMaterial,o=Array.isArray(e),c=i[n(865)],l=a?e[n(2196)]:e;for(let a=0,h=r[n(449)];a{const s=3*n;return t(e,s,s+1,s+2,r,i)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn(r(4223))}const s=trianglePool[r(4210)]();let{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){const t=c;c=(e,n,r,a,o)=>!!t(e,n,r,a,o)||iterateOverTriangles(e,n,i,l,r,a,s)}else!c&&(c=l?(t,e,n,r)=>iterateOverTriangles(t,e,i,l,n,r,s):(t,e,n)=>n);let h=!1,u=0;for(const t of this._roots){if(setBuffer(t),h=shapecast(0,i,o,c,a,u),clearBuffer(),h)break;u+=t[r(702)]}return trianglePool.releasePrimitive(s),h}[nz(4224)](t,e,n){var r=nz;let{intersectsRanges:i,intersectsTriangles:s}=n;const a=this[r(2063)][r(677)],o=this[r(2063)][r(2064)][r(2065)],c=t[r(2063)].index,l=t[r(2063)][r(2064)][r(2065)];tempMatrix[r(1867)](e)[r(1465)]();const h=trianglePool[r(4210)](),u=trianglePool[r(4210)]();if(s){let t=function(t,n,i,d,f,p,m,v){var _=r;for(let r=i,g=i+d;raabb2[r(2070)](t),intersectsRange:(e,n,s,a,o,c)=>{var l=r;return aabb[l(1867)](c),aabb[l(2028)](tempMatrix),t[l(4213)]({intersectsBounds:t=>aabb.intersectsBox(t),intersectsRange:(t,r,s,c,l)=>i(e,n,t,r,a,o,c,l)})}});return trianglePool.releasePrimitive(h),trianglePool.releasePrimitive(u),d}[nz(2070)](t,e){var n=nz;return obb[n(540)](t[n(563)],t[n(486)],e),obb[n(1948)]=!0,this[n(4213)]({intersectsBounds:t=>obb.intersectsBox(t),intersectsTriangle:t=>obb[n(2075)](t)})}intersectsSphere(t){var e=nz;return this[e(4213)]({intersectsBounds:n=>t[e(2070)](n),intersectsTriangle:n=>n[e(2071)](t)})}[nz(4225)](t,e,n={},r={},i=0,s=1/0){var a=nz;!t.boundingBox&&t.computeBoundingBox(),obb[a(540)](t[a(2066)][a(563)],t[a(2066)][a(486)],e),obb[a(1948)]=!0;const o=this[a(2063)],c=o[a(2064)][a(2065)],l=o[a(677)],h=t[a(2064)][a(2065)],u=t[a(677)],d=trianglePool.getPrimitive(),f=trianglePool[a(4210)]();let p=temp1,m=temp2,v=null,_=null;r&&(v=temp3,_=temp4);let g=1/0,y=null,E=null;return tempMatrix[a(1867)](e)[a(1465)](),obb2[a(1963)][a(1867)](tempMatrix),this[a(4213)]({boundsTraverseOrder:t=>obb.distanceToBox(t),intersectsBounds:(t,e,n)=>{var r=a;return n{var o=a;if(t.boundsTree)return t[o(4212)][o(4213)]({boundsTraverseOrder:t=>obb2[o(4207)](t),intersectsBounds:(t,e,n)=>n{var a=o;for(let o=3*t,T=3*(t+s);o{var n=i;return temp[n(1867)](t)[n(1875)](e[n(563)],e[n(486)]),temp[n(1884)](t)},intersectsBounds:(t,e,n)=>n{var r=i;e[r(2082)](t,temp);const a=t.distanceToSquared(temp);return a{arrayToBox(0,new Float32Array(e),tempBox),t.union(tempBox)})),t}},ray=new Ray,tmpInverseMatrix=new Matrix4,origMeshRaycastFunc=Mesh[nz(425)].raycast;function acceleratedRaycast(t,e){var n=nz;if(this[n(2063)].boundsTree){if(void 0===this[n(2178)])return;tmpInverseMatrix.copy(this[n(2033)])[n(1465)](),ray.copy(t.ray)[n(2028)](tmpInverseMatrix);const r=this[n(2063)][n(4212)];if(!0===t[n(4226)]){const i=convertRaycastIntersect(r.raycastFirst(ray,this.material),this,t);i&&e[n(565)](i)}else{const i=r.raycast(ray,this.material);for(let r=0,s=i[n(449)];rn[c(2366)]?null:{distance:h,point:_intersectionPointWorld2[c(1014)](),object:t}}function checkBufferGeometryIntersection4(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;_vA2[d(1891)](i,l),_vB2[d(1891)](i,h),_vC2[d(1891)](i,u);const f=t.morphTargetInfluences;if(s&&f){_morphA2[d(540)](0,0,0),_morphB2[d(540)](0,0,0),_morphC2[d(540)](0,0,0);for(let t=0,e=s[d(449)];t=MAX_RAYCAST_INTERSECTION_COUNT)return}}else{for(let r=Math[n(486)](0,p[n(725)]),s=Math[n(563)](o.count,p[n(725)]+p[n(2053)]);r=MAX_RAYCAST_INTERSECTION_COUNT)return}}else if(void 0!==c)if(Array.isArray(i))for(let r=0,s=f[n(449)];r=MAX_RAYCAST_INTERSECTION_COUNT)return}}else{for(let r=Math[n(486)](0,p[n(725)]),s=Math[n(563)](c[n(2053)],p[n(725)]+p[n(2053)]);r=MAX_RAYCAST_INTERSECTION_COUNT)return}}},Mesh[nz(425)][nz(2360)]=acceleratedRaycast;var _sphere4=new Sphere,_position2=new Vector3;function testPoint2(t,e,n,r,i,s){var a=nz;const o=r[a(2361)].distanceSqToPoint(t);if(or.far)return;i.push({distance:c,distanceToRay:Math[a(761)](o),point:n,index:e,face:null,object:s})}}Points.prototype[nz(2360)]=function(t,e){var n=nz;const r=this[n(2063)],i=this[n(2033)],s=t[n(3536)][n(3535)][n(3531)],a=r[n(2331)];if(null===r[n(2330)]&&r[n(2340)](),_sphere4[n(1867)](r[n(2330)]),_sphere4[n(2028)](i),_sphere4[n(2041)]+=s,!1===t[n(2361)][n(2071)](_sphere4))return;const o=s*s,c=r[n(677)],l=r[n(2064)][n(2065)],h=e[n(449)];if(null!==c){for(let r=Math.max(0,a.start),s=Math.min(c[n(2053)],a[n(725)]+a[n(2053)]);r=MAX_RAYCAST_INTERSECTION_COUNT)return}}else{for(let r=Math[n(486)](0,a[n(725)]),s=Math[n(563)](l[n(2053)],a[n(725)]+a.count);r=MAX_RAYCAST_INTERSECTION_COUNT)return}};var RenderableObject=class{constructor(){var t=nz;this.id=0,this[t(469)]=null,this.z=0,this[t(2125)]=0}},RenderableFace=class{constructor(){var t=nz;this.id=0,this.v1=new RenderableVertex,this.v2=new RenderableVertex,this.v3=new RenderableVertex,this[t(4227)]=new Vector3,this[t(4228)]=[new Vector3,new Vector3,new Vector3],this[t(4229)]=0,this[t(2231)]=new Color,this[t(2178)]=null,this.uvs=[new Vector2,new Vector2,new Vector2],this.z=0,this[t(2125)]=0}},RenderableVertex=class{constructor(){var t=nz;this[t(2065)]=new Vector3,this[t(4230)]=new Vector3,this[t(4231)]=new Vector4,this[t(2122)]=!0}[nz(1867)](t){var e=nz;this[e(4230)][e(1867)](t[e(4230)]),this[e(4231)][e(1867)](t[e(4231)])}},RenderableLine=class{constructor(){var t=nz;this.id=0,this.v1=new RenderableVertex,this.v2=new RenderableVertex,this.vertexColors=[new Color,new Color],this[t(2178)]=null,this.z=0,this[t(2125)]=0}},RenderableSprite=class{constructor(){var t=nz;this.id=0,this[t(469)]=null,this.x=0,this.y=0,this.z=0,this[t(1961)]=0,this[t(1901)]=new Vector2,this.material=null,this[t(2125)]=0}},Projector=class{constructor(){var t=nz;let e,n,r,i,s,a,o,c,l,h,u,d=0,p=0,m=0,v=0,_=0;const g={objects:[],lights:[],elements:[]},y=new Vector3,E=new Vector4,T=new Box3(new Vector3(-1,-1,-1),new Vector3(1,1,1)),I=new Box3,z=new Array(3),S=new Matrix4,x=new Matrix4,b=new Matrix4,w=new Frustum,C=[],M=[],R=[],A=[],D=[];const L=new function(){const e=[],n=[],l=[];let h=null;const d=new Matrix3;function _(t){var e=f;const n=t[e(2065)],r=t.positionWorld,i=t[e(4231)];r[e(1867)](n).applyMatrix4(u),i.copy(r).applyMatrix4(x);const s=1/i.w;i.x*=s,i.y*=s,i.z*=s,t[e(2122)]=i.x>=-1&&i.x<=1&&i.y>=-1&&i.y<=1&&i.z>=-1&&i.z<=1}function S(t,e,n){var r=f;return!0===t.visible||!0===e[r(2122)]||!0===n[r(2122)]||(z[0]=t[r(4231)],z[1]=e[r(4231)],z[2]=n[r(4231)],T[r(2070)](I[r(2054)](z)))}function w(t,e,n){var r=f;return(n.positionScreen.x-t.positionScreen.x)*(e[r(4231)].y-t[r(4231)].y)-(n[r(4231)].y-t[r(4231)].y)*(e[r(4231)].x-t[r(4231)].x)<0}return{setObject:function(t){var r=f;h=t,d[r(2338)](h[r(2033)]),e.length=0,n[r(449)]=0,l[r(449)]=0},projectVertex:_,checkTriangleVisibility:S,checkBackfaceCulling:w,pushVertex:function(e,n,s){var a=f;r=function(){var e=t;if(i===p){const t=new RenderableVertex;return M[e(565)](t),p++,i++,t}return M[i++]}(),r[a(2065)][a(540)](e,n,s),_(r)},pushNormal:function(t,n,r){e[f(565)](t,n,r)},pushColor:function(t,e,r){n[f(565)](t,e,r)},pushUv:function(t,e){l[f(565)](t,e)},pushLine:function(e,r){var i=f;const s=M[e],a=M[r];s[i(4231)].copy(s[i(2065)])[i(2028)](b),a[i(4231)][i(1867)](a[i(2065)])[i(2028)](b),!0===function(e,n){var r=t;let i=0,s=1;const a=e.z+e.w,o=n.z+n.w,c=-e.z+e.w,l=-n.z+n.w;return a>=0&&o>=0&&c>=0&&l>=0||!(a<0&&o<0||c<0&&l<0)&&(a<0?i=Math[r(486)](i,a/(a-o)):o<0&&(s=Math[r(563)](s,a/(a-o))),c<0?i=Math[r(486)](i,c/(c-l)):l<0&&(s=Math[r(563)](s,c/(c-l))),!(s=-1&&e.z<=1&&(l=function(){var e=t;if(h===_){const t=new RenderableSprite;return D[e(565)](t),_++,h++,t}return D[h++]}(),l.id=n.id,l.x=e.x*s,l.y=e.y*s,l.z=e.z,l[i(2125)]=n[i(2125)],l[i(469)]=n,l[i(1961)]=n[i(1961)],l[i(1901)].x=n[i(1901)].x*Math[i(694)](l.x-(e.x+r[i(2031)][i(1874)][0])/(e.w+r.projectionMatrix[i(1874)][12])),l[i(1901)].y=n[i(1901)].y*Math.abs(l.y-(e.y+r[i(2031)].elements[5])/(e.w+r[i(2031)][i(1874)][13])),l[i(2178)]=n[i(2178)],g[i(1874)].push(l))}function N(e,n){var r=t;return e[r(2125)]!==n[r(2125)]?e[r(2125)]-n[r(2125)]:e.z!==n.z?n.z-e.z:e.id!==n.id?e.id-n.id:0}this[t(4233)]=function(e,r,s,o){var l=t;a=0,c=0,h=0,g.elements[l(449)]=0,!0===e[l(2156)]&&e[l(2155)](),null===r[l(840)]&&!0===r.matrixWorldAutoUpdate&&r[l(2155)](),S[l(1867)](r[l(2030)]),x[l(1896)](r.projectionMatrix,S),w[l(3789)](x),n=0,g.objects[l(449)]=0,g[l(2380)][l(449)]=0,P(e),!0===s&&g.objects[l(688)](N);const d=g[l(4232)];for(let t=0,e=d.length;t0)for(let n=0;n0)for(let n=0;n0;)O[e(809)](O[e(4249)][0])}function N(e){return null!==_?e[t(490)](_):e}function U(e,n,r){var i=t;let s=n[i(1901)].x*a,c=n[i(1901)].y*o;r[i(3345)]&&(s*=r[i(753)],c*=r[i(753)]);const l="M"+N(e.x-.5*s)+","+N(e.y-.5*c)+"h"+N(s)+"v"+N(c)+"h"+N(-s)+"z";let h="";(r[i(3346)]||r.isPointsMaterial)&&(h=i(4254)+r[i(2231)][i(1930)]()+i(4255)+r.opacity),V(h,l)}function B(e,n,r){var i=t;const s="M"+N(e[i(4231)].x)+","+N(e[i(4231)].y)+"L"+N(n[i(4231)].x)+","+N(n.positionScreen.y);if(r.isLineBasicMaterial){let t="fill:none;stroke:"+r.color[i(1930)]()+i(4256)+r[i(2286)]+i(4257)+r.linewidth+i(4258)+r.linecap;r.isLineDashedMaterial&&(t=t+";stroke-dasharray:"+r[i(2292)]+","+r[i(2293)]),V(t,s)}}function k(e,n,i,s,a){var o=t;y.info[o(2418)][o(3614)]+=3,y[o(1175)][o(2418)].faces++;const c="M"+N(e[o(4231)].x)+","+N(e[o(4231)].y)+"L"+N(n[o(4231)].x)+","+N(n[o(4231)].y)+"L"+N(i[o(4231)].x)+","+N(i[o(4231)].y)+"z";let l="";a.isMeshBasicMaterial?(I[o(1867)](a[o(2231)]),a.vertexColors&&I.multiply(s.color)):a[o(3336)]||a.isMeshPhongMaterial||a[o(2986)]?(z[o(1867)](a[o(2231)]),a[o(2285)]&&z[o(1558)](s[o(2231)]),I.copy(S),C[o(1867)](e[o(4230)])[o(747)](n[o(4230)]).add(i[o(4230)])[o(1877)](3),function(e,n,r,i){var s=t;for(let t=0,a=e[s(449)];t1)continue;if(l[u(4231)].z<-1||l[u(4231)].z>1)continue;if(h[u(4231)].z<-1||h[u(4231)].z>1)continue;c[u(4231)].x*=a,c[u(4231)].y*=-o,l[u(4231)].x*=a,l[u(4231)].y*=-o,h[u(4231)].x*=a,h[u(4231)].y*=-o,this[u(4243)]>0&&(G(c[u(4231)],l[u(4231)],this[u(4243)]),G(l[u(4231)],h[u(4231)],this.overdraw),G(h[u(4231)],c[u(4231)],this[u(4243)])),T[u(2054)]([c[u(4231)],l[u(4231)],h.positionScreen]),!0===E[u(2070)](T)&&k(c,l,h,e,r)}}j(),i.traverseVisible((function(t){var e=u;if(t.isSVGObject){if(w[e(2046)](t[e(2033)]),w.applyMatrix4(D),w.z<-1||w.z>1)return;const n=w.x*a,r=-w.y*o,i=t[e(1626)];i[e(2334)](e(1502),"translate("+n+", "+r+e(4253)+t[e(1961)].z+")"),O[e(591)](i)}}))}}};function convertHexToThreeColor(t){const e={};return e.r=(t>>16&255)/255,e.g=(t>>8&255)/255,e.b=(255&t)/255,e}var loglevel=__toESM(require_loglevel(),1),log=loglevel;log[nz(1186)](nz(1175));var SVGObject2=class extends Object3D{constructor(t){var e=nz;super(),this[e(4239)]=!0,this[e(1626)]=t}},SNAP_ICON_COLOR=nz(4261),SNAP_ICON_SIZE=10,DEFAULT_LABEL_FONT_SIZE=14,DEFAULT_LINE_WIDTH=2.5,SVGObjectUtils=class{static[nz(4262)](t){return new SVGObject2(t)}static createPointMarker(t=SNAP_ICON_SIZE){var e=nz;return SVGObjectUtils[e(4263)](e(4264),SNAP_ICON_COLOR,t,"#ffffff","2")}static[nz(4263)](t,e=nz(3833),n=SNAP_ICON_SIZE,r=SNAP_ICON_COLOR,i="2"){var s=nz;const a=document[s(1903)](s(4240),s(1091));let o=n,c="";switch(t){case"Dot":o=n/3,c=s(4265)+-o+", 0\n a "+o+", "+o+s(4266)+2*o+s(4267)+o+", "+o+s(4268)+2*o+s(4269);break;case s(4270):o=n/1.2,c=s(4265)+-o/2+", "+-o/2+s(4271)+o+s(4272)+o+"\n h "+-o+s(4273);break;case s(4274):o=n/2,c=s(4275)+-o+"\n L "+-.87*o+", "+o/2+s(4276)+.87*o+", "+o/2+s(4273);break;case s(4277):o=n/1.2,c="\n M "+-o/2+", "+-o/2+s(4276)+o/2+", "+o/2+s(4265)+o/2+", "+-o/2+s(4276)+-o/2+", "+o/2+s(4278);break;case s(4279):o=n,c=s(4280)+-o/2+s(4281)+o/2+s(4265)+o/2+", "+o/2+s(4276)+-o/2+", "+o/2+"\n M "+-o/2+", "+o/2+s(4276)+-o/2+", "+-o/2+s(4278)}a[s(2334)]("d",c);const l=s(4282)+e+s(4283)+r+"; stroke-width: "+i+";";return a[s(2334)](s(590),l),this[s(4262)](a)}static[nz(4284)](t=6,e=nz(4285),n=DEFAULT_LINE_WIDTH){var r=nz;const i=document.createElementNS(r(4240),r(4148));i[r(2334)]("x1",""+-t),i.setAttribute("y1","0"),i.setAttribute("x2",""+t),i[r(2334)]("y2","0");const s=r(4286)+e+"; stroke-width: "+n+";";return i[r(2334)](r(590),s),this[r(4262)](i)}static[nz(4287)](t,e="#ffffff",n=DEFAULT_LABEL_FONT_SIZE,r=DEFAULT_LABEL_FONT_SIZE/2){var i=nz;const s=document[i(1903)](i(4240),i(3775));s.innerHTML=t,s.setAttribute("x","0"),s[i(2334)]("y",""+r);const a=i(4288)+n+i(4289)+e+";";return s[i(2334)](i(590),a),this[i(4262)](s)}},CommonUtils=class{static isFullScreen(){var t=nz;return!!(document[t(4290)]||document[t(4291)])}static[nz(4292)](t=document[nz(583)]){var e=nz;(t.requestFullscreen||t[e(4293)]||t.webkitRequestFullscreen||t[e(4294)]).call(t)}static[nz(4295)](){var t=nz;(document[t(4295)]||document[t(4296)]||document[t(4297)]||document[t(4298)]).call(document)}static displayPointMarker(t,e,n=1e3,r=10){var i=nz;const s=SVGObjectUtils.createPointMarker(r);return s[i(2065)][i(540)](e.x,e.y,e.z),t.add(s),n&&setTimeout((()=>{t[i(1204)](s)}),n),s}static[nz(4299)](...t){return t[nz(549)]("")}static[nz(4300)](t){var e=nz;let n=2;return Math[e(694)](t)<1e-6?n=2:Math[e(694)](t)<1e-5?n=7:Math[e(694)](t)<1e-4?n=6:Math[e(694)](t)<.001?n=5:Math[e(694)](t)<.01?n=4:Math[e(694)](t)<.1&&(n=3),t[e(490)](n)}static[nz(4301)](t){var e=nz;return btoa((t[e(522)](/\w{2}/g)||[])[e(679)]((function(t){return String[e(689)](parseInt(t,16))}))[e(549)](""))}static vectorToString(t){var e=nz;return t instanceof Vector3?"("+this[e(4300)](t.x)+", "+this[e(4300)](t.y)+", "+this[e(4300)](t.z)+")":"("+this.numberToString(t.x)+", "+this[e(4300)](t.y)+")"}static[nz(4302)](t){var e=nz;return t?t instanceof Vector2?t:Array[e(468)](t)&&t[e(449)]>=2?new Vector2(t[0],t[1]):void 0:t}static arrayToVector3(t){var e=nz;return t?t instanceof Vector3?t:Array[e(468)](t)&&t[e(449)]>=2?new Vector3(t[0],t[1],t.length>2?t[2]:0):void 0:t}static[nz(4303)](t){return t?t instanceof Euler?t:Array.isArray(t)&&t.length>=3?new Euler(t[0],t[1],t[2]):void 0:t}static[nz(4304)](t){var e=nz;if(!t)return t;if(t instanceof Vector3)return t;if(t instanceof Vector2)return new Vector3(t.x,t.y,0);if(Array[e(468)](t)&&t.length>=2)return new Vector3(t[0],t[1],t[2]||0);const n=t;return null!=n.x&&null!=n.y?new Vector3(n.x,n.y,n.z||0):void 0}static[nz(4305)](t){let e=t&&!isNaN(t.x)&&!isNaN(t.y)&&isFinite(t.x)&&isFinite(t.y);return e&&t instanceof Vector3&&(e=!isNaN(t.z)&&isFinite(t.z)),e}static isBoxValid(t){var e=nz;return t&&!t.isEmpty()&&this[e(4305)](t.min)&&this.isVectorValid(t[e(486)])}static[nz(4306)](t){var e=nz;const n=t&&t[e(1874)];if(!n||n[e(449)]<16)return!1;for(let t=0;t<16;++t){const e=n[t];if(Number.isNaN(e))return!1}return!0}static[nz(4307)](){var t=nz;return t(4308)[t(448)](/[xy]/g,(e=>{var n=t;const r=16*Math[n(533)]()|0;return("x"==e?r:3&r|8)[n(526)](16)}))}static[nz(4309)](t,e){var n=nz;const r=new Vector3;t.getCenter(r);const i=(t.max.x-t[n(563)].x)*e,s=(t[n(486)].y-t[n(563)].y)*e,a=(t[n(486)].z-t[n(563)].z)*e,o=new Vector3(r.x-i/2,r.y-s/2,r.z-a/2),c=new Vector3(r.x+i/2,r.y+s/2,r.z+a/2);t[n(540)](o,c)}static[nz(4310)](t,e){var n=nz;const r=new Vector3;t[n(2059)](r);const i=t[n(486)].x-t[n(563)].x,s=t.max.y-t.min.y,a=t[n(486)].z-t.min.z;i{n[f(4314)]=function(){t(n)}}))}static printMemory(t){var e=nz;const n=performance[e(2712)];if(!n)return void log[e(1176)](e(4315));const r=(n[e(4316)]/1048576)[e(490)](2),i=(n[e(4317)]/1048576)[e(490)](2),s=(n.usedJSHeapSize/1048576)[e(490)](2);log.info(e(4318)+t+e(4319)+r+e(4320)+i+e(4321)+s+"M ")}static[nz(4322)](t){var e=nz;const n=t[e(2697)]("webgl_debug_renderer_info"),r=t[e(2601)](n.UNMASKED_RENDERER_WEBGL);log[e(1175)](e(4323),r)}},setIcon=(t,e,n)=>{var r=nz;const{default:i,active:s}=e;n?(t[r(1204)](i),t[r(747)](s||i)):(s&&t[r(1204)](s),t.add(i))},CoordinateConversionUtils=class{static[nz(4324)](t,e){var n=nz;const r=new Vector2,{left:i,top:s}=e[n(4325)]();return r.x=t.clientX-i,r.y=t[n(4326)]-s,r}static[nz(4327)](t,e){var n=nz;const r=new Vector2,{left:i,top:s}=e[n(4325)]();return r.x=t[n(4328)][0][n(4329)]-i,r.y=t.touches[0][n(4326)]-s,r}static[nz(4330)](t,e,n){var r=nz;const{clientWidth:i,clientHeight:s}=n,a=t[r(1014)](),o=new Vector2;return a[r(2029)](e),o.x=Math[r(784)]((.5+a.x/2)*i),o.y=Math[r(784)]((.5-a.y/2)*s),o}static screenPoint2worldPosition(t,e,n){const r=CoordinateConversionUtils[nz(4331)](t,e,n);return new Vector3(r.x,r.y,1).unproject(e)}static[nz(4331)](t,e,n){const{clientWidth:r,clientHeight:i}=n,s=new Vector2;return s.x=t.x/r*2-1,s.y=-t.y/i*2+1,s}},defaultSettings={unit:nz(1095),decimalPrecision:99,camera:{near:.1,far:3e4},mouse:{sensitivity:3},keyboard:{sensitivity:3}},decimalPrecisionRange={"Precision from file":99,"0(1)":0,"0.1(1/2)":1,"0.01(1/4)":2,"0.001(1/8)":3,"0.0001(1/16)":4,"0.00001(1/32)":5,"0.000001(1/64)":6},showPrecisionValue=(t,e)=>t[nz(490)](e===decimalPrecisionRange["Precision from file"]?2:e),DeviceUtils=class{static[nz(4332)](){return!!("ontouchstart"in window)}static[nz(4333)](){var t=nz;const e=navigator[t(518)],n=/(?:Android)/.test(e),r=/(?:Firefox)/.test(e),i=/(?:Chrome|CriOS)/[t(467)](e),s=/(?:iPad|PlayBook)/[t(467)](e)||n&&!/(?:Mobile)/[t(467)](e)||r&&/(?:Tablet)/[t(467)](e),a=/(?:iPhone)/[t(467)](e)&&!s,o=!a&&!n,c=DeviceUtils[t(4332)]();n&&log[t(1178)](t(4334)),r&&log[t(1178)](t(4335)),i&&log[t(1178)]("[DI] is chrome"),s&&log.debug(t(4336)),a&&log[t(1178)](t(4337)),o&&log.debug(t(4338)),c&&log[t(1178)](t(4339))}},DRACOExporter=class{[nz(1087)](t,e={decodeSpeed:5,encodeSpeed:5,encoderMethod:DRACOExporter[nz(4340)],quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1}){var n=nz;if(void 0===DracoEncoderModule)throw new Error(n(4341));const r=t[n(2063)],i=DracoEncoderModule(),s=new(i[n(4342)]);let a,o;if(!0===t[n(2168)]){a=new(i[n(4343)]),o=new(i[n(2356)]);const t=r.getAttribute(n(2065));a[n(4344)](o,i[n(4345)],t[n(2053)],t.itemSize,t[n(2306)]);const s=r.getIndex();if(null!==s)a[n(4346)](o,s[n(2053)]/3,s[n(2306)]);else{const e=new(t.count>65535?Uint32Array:Uint16Array)(t.count);for(let t=0;t4?n=t.array[s*t.itemSize+e]:0===e?n=t.getX(s):1===e?n=t[r(1893)](s):2===e?n=t.getZ(s):3===e&&(n=t[r(1987)](s)),i[r(563)][e]=Math[r(563)](i[r(563)][e],n),i[r(486)][e]=Math[r(486)](i.max[e],n)}return i}function getPaddedBufferSize(t){return 4*Math[nz(561)](t/4)}function getPaddedArrayBuffer(t,e=0){var n=nz;const r=getPaddedBufferSize(t.byteLength);if(r!==t[n(702)]){const i=new Uint8Array(r);if(i[n(540)](new Uint8Array(t)),0!==e)for(let s=t[n(702)];st[n(4382)](r,e)));let r;return e===n(1942)?r=.92:e===n(4383)&&(r=.8),t[n(4384)]({type:e,quality:r})}var GLTFWriter=class{constructor(){var t=nz;this[t(4385)]=[],this.options={},this[t(4386)]=[],this.buffers=[],this[t(704)]=0,this[t(2599)]=[],this.nodeMap=new Map,this.skins=[],this[t(4387)]={},this[t(4388)]=new Map,this.uid=0,this[t(3777)]={asset:{version:t(4389),generator:t(4390)}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}[nz(4372)](t){this[nz(4385)]=t}[nz(586)](t,e,n){return __async(this,null,(function*(){var r=f;this[r(3645)]=Object[r(501)]({},{binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this[r(3645)].animations[r(449)]>0&&(this.options[r(4391)]=!0),this[r(4392)](t),yield Promise[r(515)](this[r(4386)]);const i=this,s=i[r(2599)],a=i.json;n=i[r(3645)];const o=i[r(4387)],c=new Blob(s,{type:r(4393)}),l=Object[r(477)](o);if(l[r(449)]>0&&(a.extensionsUsed=l),a[r(2599)]&&a[r(2599)][r(449)]>0&&(a[r(2599)][0][r(702)]=c[r(753)]),!0===n[r(4394)]){const t=new FileReader;t[r(4395)](c),t.onloadend=function(){var n=r;const i=getPaddedArrayBuffer(t[n(649)]),s=new DataView(new ArrayBuffer(GLB_CHUNK_PREFIX_BYTES));s.setUint32(0,i[n(702)],!0),s[n(1815)](4,GLB_CHUNK_TYPE_BIN,!0);const o=getPaddedArrayBuffer(stringToArrayBuffer(JSON.stringify(a)),32),c=new DataView(new ArrayBuffer(GLB_CHUNK_PREFIX_BYTES));c.setUint32(0,o[n(702)],!0),c[n(1815)](4,GLB_CHUNK_TYPE_JSON,!0);const l=new ArrayBuffer(GLB_HEADER_BYTES),h=new DataView(l);h[n(1815)](0,GLB_HEADER_MAGIC,!0),h[n(1815)](4,GLB_VERSION,!0);const u=GLB_HEADER_BYTES+c[n(702)]+o[n(702)]+s[n(702)]+i[n(702)];h[n(1815)](8,u,!0);const d=new Blob([l,c,o,s,i],{type:n(4393)}),f=new FileReader;f[n(4395)](d),f[n(4396)]=function(){e(f[n(649)])}}}else if(a.buffers&&a.buffers.length>0){const t=new FileReader;t[r(4397)](c),t.onloadend=function(){var n=r;const i=t[n(649)];a[n(2599)][0][n(4398)]=i,e(a)}}else e(a)}))}serializeUserData(t,e){var n=nz;if(0===Object[n(477)](t[n(1968)])[n(449)])return;const r=this.options,i=this[n(4387)];try{const s=JSON[n(1087)](JSON[n(472)](t[n(1968)]));if(r.includeCustomExtensions&&s[n(4399)]){void 0===e.extensions&&(e[n(2386)]={});for(const t in s[n(4399)])e[n(2386)][t]=s[n(4399)][t],i[t]=!0;delete s[n(4399)]}Object.keys(s).length>0&&(e.extras=s)}catch(e){console[n(1176)](n(4400)+t[n(542)]+"' won't be serialized because of JSON.stringify error - "+e[n(637)])}}getUID(t,e=!1){var n=nz;if(!1===this[n(4388)][n(546)](t)){const e=new Map;e.set(!0,this[n(4401)]++),e[n(540)](!1,this.uid++),this.uids[n(540)](t,e)}return this[n(4388)][n(427)](t).get(e)}[nz(4402)](t){var e=nz;if(this.cache[e(4403)][e(546)](t))return!1;const n=new Vector3;for(let r=0,i=t.count;r5e-4)return!1;return!0}[nz(4404)](t){var e=nz;const n=this[e(1410)];if(n[e(4403)][e(546)](t))return n[e(4403)].get(t);const r=t[e(1014)](),i=new Vector3;for(let t=0,n=r[e(2053)];t4?r=t.array[i*t[s(2307)]+n]:0===n?r=t[s(1892)](i):1===n?r=t[s(1893)](i):2===n?r=t[s(1937)](i):3===n&&(r=t.getW(i)),e===WEBGL_CONSTANTS.FLOAT?l[s(4414)](h,r,!0):e===WEBGL_CONSTANTS.UNSIGNED_INT?l[s(1815)](h,r,!0):e===WEBGL_CONSTANTS[s(4415)]?l[s(4416)](h,r,!0):e===WEBGL_CONSTANTS[s(4413)]&&l[s(717)](h,r),h+=o}const u={buffer:this[s(4417)](l.buffer),byteOffset:this[s(704)],byteLength:c};void 0!==i&&(u.target=i),i===WEBGL_CONSTANTS[s(4418)]&&(u[s(4419)]=t.itemSize*o),this.byteOffset+=c,a[s(4412)].push(u);return{id:a.bufferViews[s(449)]-1,byteLength:0}}processBufferViewImage(t){var e=nz;const n=this,r=n[e(3777)];return r[e(4412)]||(r.bufferViews=[]),new Promise((function(i){var s=e;const a=new FileReader;a.readAsArrayBuffer(t),a[s(4396)]=function(){var t=s;const e=getPaddedArrayBuffer(a[t(649)]),o={buffer:n[t(4417)](e),byteOffset:n.byteOffset,byteLength:e[t(702)]};n[t(704)]+=e[t(702)],i(r[t(4412)][t(565)](o)-1)}}))}processAccessor(t,e,n,r){var i=nz;const s=this[i(3777)],a={1:i(4420),2:i(4421),3:i(4422),4:i(4423),16:i(4424)};let o;if(t.array.constructor===Float32Array)o=WEBGL_CONSTANTS[i(4425)];else if(t[i(2306)][i(443)]===Uint32Array)o=WEBGL_CONSTANTS[i(4426)];else if(t.array[i(443)]===Uint16Array)o=WEBGL_CONSTANTS[i(4415)];else{if(t[i(2306)].constructor!==Uint8Array)throw new Error(i(4427));o=WEBGL_CONSTANTS[i(4413)]}if(void 0===n&&(n=0),void 0===r&&(r=t[i(2053)]),0===r)return null;const c=getMinMax(t,n,r);let l;void 0!==e&&(l=t===e[i(677)]?WEBGL_CONSTANTS[i(4428)]:WEBGL_CONSTANTS[i(4418)]);const h=this[i(4429)](t,o,n,r,l),u={bufferView:h.id,byteOffset:h[i(704)],componentType:o,count:r,max:c.max,min:c[i(563)],type:a[t.itemSize]};return!0===t[i(2308)]&&(u.normalized=!0),s[i(4430)]||(s[i(4430)]=[]),s.accessors[i(565)](u)-1}[nz(4431)](t,e,n,r="image/png"){var i=nz;const s=this,a=s.cache,o=s.json,c=s[i(3645)],l=s[i(4386)];a.images.has(t)||a[i(1949)][i(540)](t,{});const h=a.images[i(427)](t),u=r+":flipY/"+n[i(526)]();if(void 0!==h[u])return h[u];o[i(1949)]||(o[i(1949)]=[]);const d={mimeType:r},f=getCanvas();f[i(999)]=Math[i(563)](t[i(999)],c.maxTextureSize),f[i(1e3)]=Math.min(t[i(1e3)],c[i(2721)]);const p=f.getContext("2d");if(!0===n&&(p[i(2078)](0,f.height),p.scale(1,-1)),void 0!==t[i(571)]){e!==RGBAFormat&&console[i(819)](i(4432)),(t.width>c[i(2721)]||t.height>c[i(2721)])&&console.warn(i(4433),t);const n=new Uint8ClampedArray(t[i(1e3)]*t[i(999)]*4);for(let e=0;es[i(4434)](t)))[i(829)]((t=>{d[i(4435)]=t}))):void 0!==f[i(4436)]?d[i(4398)]=f.toDataURL(r):l.push(getToBlobPromise(f,r)[i(829)]((t=>(new FileReader)[i(4397)](t)))[i(829)]((t=>{d.uri=t})));const m=o.images[i(565)](d)-1;return h[u]=m,m}processSampler(t){var e=nz;const n=this.json;n[e(4437)]||(n[e(4437)]=[]);const r={magFilter:THREE_TO_WEBGL[t[e(1958)]],minFilter:THREE_TO_WEBGL[t[e(1973)]],wrapS:THREE_TO_WEBGL[t[e(1972)]],wrapT:THREE_TO_WEBGL[t[e(1957)]]};return n[e(4437)][e(565)](r)-1}[nz(4438)](t){var e=nz;const n=this.cache,r=this[e(3777)];if(n[e(1976)].has(t))return n[e(1976)].get(t);r[e(1976)]||(r[e(1976)]=[]);let i=t[e(1968)][e(3763)];"image/webp"===i&&(i=e(1943));const s={sampler:this[e(4439)](t),source:this.processImage(t.image,t[e(461)],t.flipY,i)};t[e(542)]&&(s.name=t[e(542)]),this[e(4440)]((function(n){n[e(4441)]&&n.writeTexture(t,s)}));const a=r[e(1976)][e(565)](s)-1;return n[e(1976)].set(t,a),a}processMaterial(t){var e=nz;const n=this[e(1410)],r=this[e(3777)];if(n.materials.has(t))return n.materials[e(427)](t);if(t.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;r[e(2179)]||(r[e(2179)]=[]);const i={pbrMetallicRoughness:{}};!0!==t[e(2986)]&&!0!==t[e(2302)]&&console[e(1176)](e(4442));const s=t.color.toArray()[e(475)]([t[e(2286)]]);if(!equalArray(s,[1,1,1,1])&&(i.pbrMetallicRoughness.baseColorFactor=s),t.isMeshStandardMaterial?(i[e(4443)].metallicFactor=t[e(2233)],i.pbrMetallicRoughness[e(4444)]=t.roughness):(i[e(4443)][e(4445)]=.5,i[e(4443)][e(4444)]=.5),t[e(2268)]||t[e(2267)]){const n=this[e(4407)](t[e(2268)],t.roughnessMap),r={index:this.processTexture(n)};this[e(4405)](r,n),i.pbrMetallicRoughness[e(4446)]=r}if(t[e(679)]){const n={index:this.processTexture(t[e(679)])};this[e(4405)](n,t[e(679)]),i[e(4443)].baseColorTexture=n}if(t.emissive){const n=t[e(2236)][e(1014)]()[e(1878)](t[e(2237)]),r=Math[e(486)](n.r,n.g,n.b);if(r>1&&(n[e(1878)](1/r),console.warn("THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited")),r>0&&(i[e(4447)]=n[e(1499)]()),t[e(2269)]){const n={index:this[e(4438)](t.emissiveMap)};this[e(4405)](n,t[e(2269)]),i[e(4448)]=n}}if(t.normalMap){const n={index:this[e(4438)](t[e(2261)])};t[e(2263)]&&1!==t[e(2263)].x&&(n.scale=t[e(2263)].x),this[e(4405)](n,t[e(2261)]),i.normalTexture=n}if(t[e(2257)]){const n={index:this[e(4438)](t[e(2257)]),texCoord:1};1!==t[e(2258)]&&(n[e(4449)]=t[e(2258)]),this[e(4405)](n,t[e(2257)]),i[e(4450)]=n}t[e(2197)]?i[e(4451)]="BLEND":t[e(2223)]>0&&(i.alphaMode="MASK",i.alphaCutoff=t[e(2223)]),t[e(2196)]===DoubleSide&&(i[e(2930)]=!0),""!==t.name&&(i.name=t[e(542)]),this.serializeUserData(t,i),this[e(4440)]((function(n){var r=e;n.writeMaterial&&n[r(4452)](t,i)}));const a=r[e(2179)][e(565)](i)-1;return n[e(2179)][e(540)](t,a),a}[nz(4453)](t){var e=nz;const n=this[e(1410)],r=this.json,i=[t[e(2063)].uuid];if(Array[e(468)](t[e(2178)]))for(let n=0,r=t.material[e(449)];n0){const r=[],i=[],s={};if(void 0!==t[e(2359)])for(const n in t[e(2359)])s[t[e(2359)][n]]=n;for(let o=0;o0&&(c[e(4467)]={},c[e(4467)][e(4468)]=i)}const m=Array.isArray(t.material);if(m&&0===a.groups.length)return null;const v=m?t.material:[t[e(2178)]],_=m?a[e(865)]:[{materialIndex:0,start:void 0,count:void 0}];for(let t=0,r=_.length;t0&&(r[e(4469)]=u),null!==a.index){let i=this[e(4463)](a[e(677)]);(void 0!==_[t].start||void 0!==_[t].count)&&(i+=":"+_[t][e(725)]+":"+_[t][e(2053)]),n[e(2064)][e(546)](i)?r.indices=n[e(2064)][e(427)](i):(r[e(3615)]=this[e(4465)](a.index,a,_[t].start,_[t][e(2053)]),n[e(2064)].set(i,r.indices)),null===r.indices&&delete r.indices}const i=this.processMaterial(v[_[t][e(2354)]]);null!==i&&(r.material=i),h[e(565)](r)}c.primitives=h,r[e(4470)]||(r[e(4470)]=[]),this[e(4440)]((function(n){var r=e;n[r(4471)]&&n[r(4471)](t,c)}));const g=r.meshes.push(c)-1;return n.meshes[e(540)](s,g),g}processCamera(t){var e=nz;const n=this[e(3777)];n[e(3251)]||(n[e(3251)]=[]);const r=t.isOrthographicCamera,i={type:r?e(4472):"perspective"};return r?i[e(4472)]={xmag:2*t[e(935)],ymag:2*t[e(2651)],zfar:t[e(2366)]<=0?.001:t.far,znear:t[e(2365)]<0?0:t[e(2365)]}:i.perspective={aspectRatio:t.aspect,yfov:MathUtils[e(4473)](t[e(2392)]),zfar:t.far<=0?.001:t[e(2366)],znear:t.near<0?0:t[e(2365)]},""!==t.name&&(i[e(542)]=t[e(452)]),n[e(3251)].push(i)-1}[nz(4474)](t,e){var n=nz;const r=this[n(3777)],i=this.nodeMap;r[n(2180)]||(r[n(2180)]=[]);const s=(t=GLTFExporter[n(4475)][n(4476)](t[n(1014)](),e))[n(3672)],a=[],o=[];for(let t=0;t0){const n=[];for(let i=0,s=t.children[e(449)];i0&&(s[e(1602)]=n)}this[e(4440)]((function(n){var r=e;n.writeNode&&n[r(4491)](t,s)}));const a=n[e(2181)].push(s)-1;return i[e(540)](t,a),a}[nz(4492)](t){var e=nz;const n=this[e(3777)],r=this[e(3645)];!n[e(4493)]&&(n[e(4493)]=[],n.scene=0);const i={};""!==t[e(542)]&&(i[e(542)]=t[e(542)]),n.scenes[e(565)](i);const s=[];for(let n=0,i=t[e(1602)][e(449)];n0&&(i[e(2181)]=s),this[e(4487)](t,i)}[nz(4494)](t){var e=nz;const n=new Scene;n[e(542)]=e(4495);for(let r=0;r0&&this[e(4494)](r);for(let t=0;t0&&(a[n(1208)]=t[n(3018)])):t[n(3031)]&&(a[n(452)]=n(2993),t[n(3018)]>0&&(a[n(1208)]=t[n(3018)]),a.spot={},a[n(2993)][n(4500)]=(t[n(3034)]-1)*t.angle*-1,a[n(2993)].outerConeAngle=t[n(1882)]),void 0!==t[n(3035)]&&2!==t.decay&&console.warn(n(4501)),t[n(573)]&&(t[n(573)].parent!==t||0!==t[n(573)][n(2065)].x||0!==t.target[n(2065)].y||-1!==t[n(573)][n(2065)].z)&&console[n(1176)](n(4502)),!s[this[n(542)]]&&(i[n(2386)]=i[n(2386)]||{},i[n(2386)][this[n(542)]]={lights:[]},s[this.name]=!0);const o=i[n(2386)][this.name][n(2380)];o.push(a),e[n(2386)]=e[n(2386)]||{},e.extensions[this[n(542)]]={light:o[n(449)]-1}}},GLTFMaterialsUnlitExtension=class{constructor(t){var e=nz;this[e(4498)]=t,this[e(542)]=e(4503)}[nz(4452)](t,e){var n=nz;if(!t[n(2302)])return;const r=this[n(4498)].extensionsUsed;e[n(2386)]=e.extensions||{},e[n(2386)][this[n(542)]]={},r[this.name]=!0,e.pbrMetallicRoughness[n(4445)]=0,e[n(4443)][n(4444)]=.9}},GLTFMaterialsPBRSpecularGlossiness=class{constructor(t){var e=nz;this[e(4498)]=t,this[e(542)]="KHR_materials_pbrSpecularGlossiness"}[nz(4452)](t,e){var n=nz;if(!t[n(4504)])return;const r=this[n(4498)],i=r.extensionsUsed,s={};e.pbrMetallicRoughness[n(4505)]&&(s[n(4506)]=e.pbrMetallicRoughness[n(4505)]);const a=[1,1,1];if(t[n(2238)][n(1499)](a,0),s[n(4507)]=a,s[n(4508)]=t[n(4509)],e.pbrMetallicRoughness[n(4510)]&&(s.diffuseTexture=e[n(4443)][n(4510)]),t[n(2270)]){const e={index:r[n(4438)](t[n(2270)])};r[n(4405)](e,t.specularMap),s[n(4511)]=e}e[n(2386)]=e[n(2386)]||{},e.extensions[this.name]=s,i[this[n(542)]]=!0}},GLTFMaterialsClearcoatExtension=class{constructor(t){var e=nz;this[e(4498)]=t,this[e(542)]=e(4512)}[nz(4452)](t,e){var n=nz;if(!t[n(3339)])return;const r=this[n(4498)],i=r[n(4387)],s={};if(s.clearcoatFactor=t[n(2242)],t[n(2244)]){const e={index:r[n(4438)](t.clearcoatMap)};r[n(4405)](e,t.clearcoatMap),s[n(4513)]=e}if(s[n(4514)]=t.clearcoatRoughness,t[n(2245)]){const e={index:r[n(4438)](t.clearcoatRoughnessMap)};r.applyTextureTransform(e,t[n(2245)]),s[n(4515)]=e}if(t[n(2246)]){const e={index:r[n(4438)](t[n(2246)])};r[n(4405)](e,t[n(2246)]),s.clearcoatNormalTexture=e}e.extensions=e[n(2386)]||{},e[n(2386)][this.name]=s,i[this[n(542)]]=!0}},GLTFMaterialsIridescenceExtension=class{constructor(t){var e=nz;this[e(4498)]=t,this[e(542)]=e(4516)}[nz(4452)](t,e){var n=nz;if(!t[n(3339)])return;const r=this.writer,i=r[n(4387)],s={};if(s.iridescenceFactor=t[n(2248)],t[n(2251)]){const e={index:r[n(4438)](t[n(2251)])};r[n(4405)](e,t[n(2251)]),s.iridescenceTexture=e}if(s[n(4517)]=t[n(2249)],s[n(3353)]=t[n(2250)][0],s[n(3354)]=t[n(2250)][1],t.iridescenceThicknessMap){const e={index:r[n(4438)](t[n(2252)])};r.applyTextureTransform(e,t[n(2252)]),s[n(4518)]=e}e[n(2386)]=e[n(2386)]||{},e[n(2386)][this[n(542)]]=s,i[this[n(542)]]=!0}},GLTFMaterialsTransmissionExtension=class{constructor(t){this[nz(4498)]=t,this.name="KHR_materials_transmission"}[nz(4452)](t,e){var n=nz;if(!t[n(3339)]||0===t.transmission)return;const r=this[n(4498)],i=r[n(4387)],s={};if(s.transmissionFactor=t[n(2278)],t.transmissionMap){const e={index:r[n(4438)](t[n(2279)])};r[n(4405)](e,t[n(2279)]),s[n(4519)]=e}e[n(2386)]=e[n(2386)]||{},e[n(2386)][this[n(542)]]=s,i[this[n(542)]]=!0}},GLTFMaterialsVolumeExtension=class{constructor(t){var e=nz;this[e(4498)]=t,this[e(542)]=e(4520)}[nz(4452)](t,e){var n=nz;if(!t[n(3339)]||0===t.transmission)return;const r=this[n(4498)],i=r.extensionsUsed,s={};if(s[n(4521)]=t[n(2280)],t.thicknessMap){const e={index:r[n(4438)](t[n(2281)])};r[n(4405)](e,t[n(2281)]),s[n(4522)]=e}s[n(2282)]=t[n(2282)],s[n(2283)]=t[n(2283)][n(1499)](),e.extensions=e[n(2386)]||{},e[n(2386)][this[n(542)]]=s,i[this[n(542)]]=!0}};GLTFExporter[nz(4475)]={insertKeyframe:function(t,e){var n=nz;const r=.001,i=t[n(3678)](),s=new(t[n(3700)])(t[n(3673)][n(449)]+1),a=new(t[n(3701)])(t[n(673)][n(449)]+i),o=t[n(3679)](new t.ValueBufferType(i));let c;if(0===t[n(3673)].length){s[0]=e;for(let t=0;tt[n(3673)][t[n(3673)][n(449)]-1]){if(Math[n(694)](t[n(3673)][t.times[n(449)]-1]-e)e){s.set(t[n(3673)].slice(0,l+1),0),s[l+1]=e,s[n(540)](t[n(3673)][n(497)](l+1),l+2),a[n(540)](t.values[n(497)](0,(l+1)*i),0),a[n(540)](o.evaluate(e),(l+1)*i),a[n(540)](t[n(673)][n(497)]((l+1)*i),(l+2)*i),c=l+1;break}}return t.times=s,t.values=a,c},mergeMorphTargetTracks:function(t,e){var n=nz;const r=[],i={},s=t[n(3672)];for(let t=0;t{var i=r;if(n.binary){e=_ExportUtils[i(4533)](e,_ExportUtils.EXTENSION_GLB);const n=t;_ExportUtils[i(4534)](n,e)}else e=_ExportUtils[i(4533)](e,_ExportUtils[i(4535)]),_ExportUtils.saveJson(t,e)}),(t=>console.log(t)),n)}static[nz(4536)](t,e){var n=nz;if(!t||!e)throw new Error(n(4532));e=_ExportUtils[n(4533)](e,_ExportUtils[n(4537)]);const r=(new OBJExporter).parse(t);_ExportUtils[n(4538)](r,e)}static[nz(4539)](t,e,n={}){var r=nz;if(!t||!e)throw new Error("Invalid input or filename!");e=_ExportUtils[r(4533)](e,_ExportUtils[r(4540)]);const i=new DRACOExporter;n=Object.assign({},{encodeSpeed:5},n);const s=i[r(1087)](t,n);_ExportUtils[r(4534)](s,e)}static[nz(4541)](t,e){var n=nz;const r=t[n(733)]();!e[n(570)]().endsWith(_ExportUtils[n(4542)])&&(e+=_ExportUtils.EXTENSION_JSON),_ExportUtils[n(4543)](r,e)}static[nz(4544)](t,e){var n=nz;let r=_ExportUtils[n(4545)];!r&&(r=document[n(538)]("a"),r[n(590)][n(3368)]="none",document[n(1072)][n(591)](r),_ExportUtils[n(4545)]=r),r.href=URL[n(1126)](t),r[n(4546)]=e,r[n(4547)]()}static[nz(4534)](t,e){_ExportUtils[nz(4544)](new Blob([t],{type:"application/octet-stream"}),e)}static[nz(4543)](t,e){var n=nz;_ExportUtils.saveJsonString(JSON[n(472)](t),e)}static[nz(4548)](t,e){_ExportUtils[nz(4544)](new Blob([t],{type:"application/json"}),e)}static[nz(4538)](t,e){var n=nz;_ExportUtils[n(4544)](new Blob([t],{type:n(4549)}),e)}static addExtention(t,e){var n=nz;return!t[n(570)]().endsWith(e[n(570)]())&&(t+=e),t}},ExportUtils=_ExportUtils;ExportUtils.EXTENSION_GLTF=".gltf",ExportUtils[nz(4550)]=".glb",ExportUtils[nz(4537)]=".obj",ExportUtils[nz(4540)]=nz(4551),ExportUtils[nz(4542)]=nz(4552);var Event=class{constructor(){this[nz(4553)]=new Map}addEventListener(t,e){var n=nz;const r=this.eventList[n(427)](t);r?r.push(e):this[n(4553)].set(t,[e])}[nz(827)](t,e){var n=nz;const r=this[n(4553)][n(427)](t);r&&r[n(604)]((t=>t(e)))}removeEventListener(t,e){var n=nz;const r=this.eventList[n(427)](t);if(r){const t=r[n(564)](e);t>-1&&r[n(690)](t,1)}}clearEventListeners(t){this[nz(4553)].delete(t)}[nz(4554)](){var t=nz;this[t(4553)][t(750)]()}},FpsUtils=class{constructor(){var t=nz;this[t(4555)]=(performance||Date)[t(802)](),this[t(4556)]=(performance||Date).now(),this[t(4557)]=0,this[t(3718)]=Number[t(791)]}[nz(4558)](){var t=nz;this[t(4556)]=(performance||Date)[t(802)]()}[nz(887)](){var t=nz;this[t(4557)]++;const e=(performance||Date)[t(802)]();return e>=this[t(4555)]+1e3&&(this[t(3718)]=Math.round(1e3*this[t(4557)]/(e-this.prevTime)),this[t(4557)]=0,this[t(4555)]=e),e}[nz(1067)](){var t=nz;this.beginTime=this[t(887)]()}},RAD_ABS_TOL=1e-15,MathUtils2=class{static roundNumber(t,e){return Math[nz(784)](t*Math.pow(10,e))/Math.pow(10,e)}static[nz(4559)](t,e){var n=nz;return Math[n(562)](t*Math[n(428)](10,e))/Math[n(428)](10,e)}static[nz(4560)](t,e,n=1e-7){var r=nz;return Math[r(694)](t-e)t[0]===e[0]&&t[1]===e[1],isNonEmptyArray=t=>{var e=nz;return Array[e(468)](t)&&t[e(449)]},orientRings=(t,e=0,n=!1)=>{var r=nz;let i,s;if(isNonEmptyArray(t)&&"number"==typeof t[0][0]){let e=0;const a=t;for(i=0,s=a[r(449)];i0||n&&e<0)&&a[r(686)]()}else for(i=0,s=t[r(449)];i0);if(0===e&&isNonEmptyArray(t)&&isNonEmptyArray(t[0])&&"number"==typeof t[0][0][0]){const e=t[0][r(497)](0,1)[0];t[0].pop(),t[0][r(565)]([e[0],e[1]])}return t},Offset=class{constructor(t,e=5){var n=nz;if(this[n(3018)]=0,this.arcSegments=e,!isArray(t))throw new Error(n(4579));this.edges=[],isArray(t)&&typeof t[0]===n(458)?this.vertices=t:(this[n(3614)]=orientRings(t),this[n(4580)](this.vertices,this.edges))}processContour(t,e){var n=nz;let r,i;if(isArray(t[0])&&typeof t[0][0]===n(458))for(i=t[n(449)],equals2(t[0],t[i-1])&&(i-=1),r=0;rh?l-h:l+c-h;const d=(a?-u:c-u)/s;t[o(565)](r);for(let r=1;r0?this[e(4585)](this.distance):this.padding(-this[e(3018)])}[nz(4586)](t,e,n,r){var i=nz;const s=[n.offset(n[i(4571)][0]*r,n[i(4571)][1]*r),n[i(4577)](n[i(4572)][0]*r,n[i(4572)][1]*r)],a=[];for(let n=0,o=2;n0&&t.push(r)}t[e(449)]>0&&(n=1===t.length?t[0]:(0,import_polygon_clipping[e(1255)])(t[0],...t[e(497)](1)))}else n=1===this[e(3614)][e(449)]?this[e(4588)](t):this[e(4593)](this.vertices,this[e(4592)]);return n}offsetContour(t,e){var n=nz;let r=[],i=0,s=0;if(isArray(t[0])&&typeof t[0][0]===n(458)){for(i=0,s=t[n(449)]-1;i0&&(r=1===r[n(449)]?[r[0]]:(0,import_polygon_clipping[n(1255)])(r[0],r[n(497)](1)))}else{const a=[];for(i=0,s=e[n(449)];i0&&a[n(565)](r)}a[n(449)]>0&&(r=1===a[n(449)]?a[0]:(0,import_polygon_clipping[n(1255)])(a[0],...a[n(497)](1)))}return r}offsetPoint(t){var e=nz;this[e(4584)](t);let n=2*this[e(4582)];const r=[],i=this[e(3614)],s=this[e(3018)];let a=0;n%2==0&&n++;for(let t=0;t{var r=e;const i=t.attributes[n];if(i instanceof InterleavedBufferAttribute){const e=i[r(1014)]();t.attributes[n]=e}}))}static isPointInPolygon(t,e,n=!1){const r=t.x,i=t.y;let s=!1;const a=e.length;for(let t=0,o=a-1;ti!=h>i;n&&(u=c>=i!=h>=i);u&&r<(l-a)*(i-c)/(h-c)+a&&(s=!s)}return s}static[nz(4597)](t){var e=nz;if(!t.hasAttribute("position"))return null;const n=t[e(2333)](e(2065));if(0===n.count)return null;const r=new Vector3,i=n[e(2307)],s=n[e(2306)],a=[0,0,0];for(let t=0;t0&&r<0||i<0&&r>0)return!1;r=i}}return!0}static[nz(4598)](t,e){var n=nz;const{start:r,end:i}=t,{start:s,end:a}=e,o=s[n(1014)]()[n(909)](r),c=i[n(1014)]()[n(909)](r),l=a[n(1014)]()[n(909)](r),h=o[n(1880)](c)[n(1879)](l[n(1880)](c)),u=r[n(1014)]()[n(909)](s),d=a[n(1014)]()[n(909)](s),f=i[n(1014)]()[n(909)](s),p=u[n(1880)](d)[n(1879)](f[n(1880)](d));return h<0&&p<0}static[nz(4599)](t,e){var n=nz;const{start:r,end:i}=t,{start:s,end:a}=e,o=tempVec1[n(1872)](i,r)[n(569)](),c=tempVec2[n(1872)](a,s).normalize();if(1===o.dot(c))return null;const l=tempVec3[n(1872)](s,r),h=o[n(1014)]().cross(c),u=l[n(1014)]().cross(c),d=l.clone()[n(1879)](h);if(d>=1e-5||d<=-1e-5)return null;const f=h.lengthSq();if(MathUtils2[n(4560)](0,f))return;const p=u[n(1014)]()[n(1879)](h)/f,m=r[n(1014)]()[n(747)](o[n(1878)](p));return m[n(1889)](r)||m[n(1889)](i)?null:m}static[nz(4600)](t,e,n=.001){var r=nz;const{start:i,end:s}=e,a=tempVec1[r(1872)](i,s)[r(449)](),o=tempVec2[r(1872)](t,i).length(),c=tempVec3[r(1872)](t,s)[r(449)]();return Math[r(694)](a-(o+c))<=n}static isPointOnLineSegments(t,e,n=.001){var r=nz;let i=!1;for(let s=0;s{r?e.add(t):(e.x+=t.x,e.y+=t.y)})),e[n(1877)](t[n(449)]);let i=!1;if(GeometryUtils[n(4602)](e)){i=!0;for(let i=0;iMAX_RTC_THRESHOLD||Math[e(694)](t.y)>MAX_RTC_THRESHOLD||t instanceof Vector3&&Math[e(694)](t.z)>MAX_RTC_THRESHOLD}static[nz(4603)](t){var e=nz;let n=0;const r=t[e(2333)]("position"),i=t[e(677)];if(i)for(let t=0;t2&&(a=e?2*s:2*s-2);const o=new i(a);let c=0;for(let t=0;t0&&t{var n=f;const r=t.geometry[n(2064)][n(2065)][n(2306)];return t[n(2140)](new Vector3(r[3*e],r[3*e+1],r[3*e+2]))};t[s(2142)](!0,!1);const o=(null==(n=t.geometry[s(3618)]())?void 0:n.array)||[],c=null!=(r=o[e])?r:e,l=null!=(i=o[e+1])?i:e+1;return[a(c),a(l)]}static arePolygonsIntersect(t,e){var n=nz;if(0===t[n(449)]||0===e[n(449)])return!1;if(tempBox1.setFromPoints(t),tempBox2[n(2054)](e),!tempBox1.intersectsBox(tempBox2))return!1;for(let r=0;r1-i)return;const c=e.y-t.y,l=t.x-e.x,h=c*t.x+l*t.y,u=r.y-n.y,d=n.x-r.x,f=u*n.x+d*n.y,p=c*d-u*l;if(Math.abs(p){r[n(565)]([t.x,t.y])}));try{i=new Offset(r)[n(4581)](2)[n(4591)](e/2)}catch(t){return}if(!i||0===i[n(449)])return;i=i[0];const s=[],a=[];for(let t=0;t{s.push(new Vector2(t[0],t[1]))})),!ShapeUtils[n(3627)](s)&&s[n(686)]();else{const e=[];i[t][n(604)]((t=>{e.push(new Vector2(t[0],t[1]))})),ShapeUtils[n(3627)](e)&&e[n(686)](),a[n(565)](e)}const o=ShapeUtils.triangulateShape(s,a),c=[];for(let t=0;ts[n(565)](...t)));const l=(new BufferGeometry)[n(2054)](s);return l[n(2332)](c),l}static releaseGeometryManually(t){var e=nz;t.index=null,t[e(2064)]={}}static[nz(4612)](t,e=1e-7){var n=nz;const r=[],i=t[n(449)];for(let s=0;s{var e=nz;return t[e(4627)]=e(4627),t[e(4628)]=e(4628),t[e(4629)]=e(4629),t})(SectionType||{}),SectionMode=(t=>{var e=nz;return t[e(4627)]=e(4627),t[e(4628)]=e(4628),t[e(4629)]=e(4629),t})(SectionMode||{}),GroundUtils=class{static[nz(4630)](t,e,n){var r=nz;t=t||this[r(4631)],e=e||this[r(4632)];const i=new GridHelper(t,e);n?i[r(2065)][r(540)](n.x,n.y,n.z):i[r(2065)].y=0;const s=i.material;return!Array[r(468)](s)&&(s.opacity=this[r(4633)][r(2286)],s.transparent=this[r(4633)][r(2197)]),i[r(542)]=this[r(4634)],i[r(2160)][r(540)](layerForUnselectableObjects),i[r(1962)]=!1,i.updateMatrix(),i}static createGrassGround(t,e,n,r,i){return __async(this,null,(function*(){var s=f;return e=e||this[s(4631)],n=n||this.DEFAULT_HEIGHT,new Promise((a=>{var o=s;(new TextureLoader)[o(1212)](t||"images/terrain/grass.jpg",(t=>{var s=o;t[s(1972)]=t[s(1957)]=RepeatWrapping,t[s(1562)][s(540)](r||this[s(4632)]/5,i||this[s(4635)]/5),t.anisotropy=16,t[s(1967)]=sRGBEncoding;const c=new MeshLambertMaterial({map:t});c.side=FrontSide;const l=new Mesh(new PlaneGeometry(e,n),c);return l[s(1961)].x=-Math.PI/2,l.position.y=0,l[s(2123)]=!0,l.name=this.GRASS_GROUND_NAME,l[s(2160)].set(layerForUnselectableObjects),l.matrixAutoUpdate=!1,l.updateMatrix(),a(l)}))}))}))}};GroundUtils[nz(4634)]=nz(4636),GroundUtils[nz(4637)]=nz(4638),GroundUtils[nz(4631)]=1e3,GroundUtils[nz(4639)]=1e3,GroundUtils[nz(4632)]=100,GroundUtils[nz(4635)]=100,GroundUtils[nz(4633)]={color:12829635,transparent:!0,opacity:.5,wireframeLinewidth:.5};var MaterialUtils=class{static[nz(4640)](t,e){var n=nz;if(t===e)return!0;if(t[n(452)]!==e[n(452)])return!1;if(t instanceof Material&&e instanceof Material){const r=t,i=e;return t[n(2223)]===e.alphaTest&&t[n(2286)]===e[n(2286)]&&t[n(2196)]===e[n(2196)]&&t[n(2122)]===e[n(2122)]&&t[n(542)]===e[n(542)]&&t[n(2197)]===e[n(2197)]&&this.colorEquals(r.color,i[n(2231)])&&this.colorEquals(r[n(2236)],i[n(2236)])&&r[n(2232)]===i[n(2232)]&&r[n(2233)]===i[n(2233)]&&r[n(2254)]===i[n(2254)]&&r.uniforms===i.uniforms&&r[n(2376)]===i.defines&&r[n(2385)]===i[n(2385)]&&r[n(2379)]===i.fragmentShader&&r[n(2301)]===i[n(2301)]&&r[n(679)]===i[n(679)]&&r.clipIntersection===i.clipIntersection}return!1}static[nz(4641)](t,e){var n=nz;if(t===e)return!0;if(Array[n(468)](t)&&Array[n(468)](e)&&t.length===e.length){for(let r=0;r0){const t=[];return r[n(604)]((r=>{var i=n;t[i(565)](this[i(4644)](r,e))})),t}if(r instanceof Material)return this[n(4644)](r,e);console.warn(n(4645)+r)}static clonedHighlightMaterial(t,e={}){var n,r=nz;const{depthTest:i,highlightColor:s=new Color(583902),opacity:a=.7}=e,o=t.clone();return o instanceof MeshStandardMaterial||o instanceof MeshPhongMaterial?(o[r(2236)][r(540)](s),o[r(2231)][r(540)](s)):o instanceof MeshBasicMaterial||o instanceof MeshLambertMaterial?o.color.set(s):o instanceof LineBasicMaterial||o instanceof LineDashedMaterial?o[r(2231)][r(540)](s):o instanceof ShaderMaterial?null==(n=o[r(2377)][r(4646)])||n[r(439)].set(s):o instanceof SpriteMaterial?o[r(2231)].set(s):console[r(1176)](r(4647),o[r(452)]),o.opacity=a,o[r(2197)]=!0,void 0!==i&&(o[r(2288)]=!1,o[r(2196)]=DoubleSide),o}static[nz(4648)](t){var e=nz;if(!t)return t;if(Array[e(468)](t)){const n=[];return t.forEach((t=>{var r=e;n.push(t[r(1014)]())})),n}return t.clone()}static getMaterialColor(t){var e=nz;let n=new Color(16777215);return t instanceof PointsMaterial||t instanceof LineBasicMaterial||t instanceof MeshBasicMaterial?n=t[e(2231)]:t instanceof ShaderMaterial&&t[e(2377)][e(4646)]&&(n=t.uniforms[e(4646)].value),n}static[nz(4649)](t,e){var n=nz;t instanceof PointsMaterial||t instanceof LineBasicMaterial||t instanceof MeshBasicMaterial?t[n(2231)]=e:t instanceof ShaderMaterial&&t.uniforms[n(4646)]&&(t.uniforms[n(4646)][n(439)]=e)}static cloneMaterials(t){const e=new Map;t.traverse((t=>{var n=f;t[n(2178)]&&(t[n(2178)]=(t=>{var n=f;let r;return Array[n(468)](t)?(r=[],t[n(604)]((t=>{var i=n;if(e[i(546)](t))r[i(565)](e[i(427)](t));else{const n=t[i(1014)]();e[i(540)](t,n),r[i(565)](n)}}))):t&&(e[n(546)](t)?r=e[n(427)](t):(r=t.clone(),e[n(540)](t,r))),r})(t[n(2178)]))}))}};function mergeBufferGeometries(t,e=!1){var n=nz;const r=null!==t[0][n(677)],i=new Set(Object[n(477)](t[0][n(2064)])),s=new Set(Object[n(477)](t[0].morphAttributes)),a={},o={},c=t[0][n(2329)],l=new BufferGeometry;let h=0;for(let u=0;u{var n=t;const r=this.geometries[n(427)](e[n(571)].id[n(526)]());(null==r?void 0:r[n(449)])>0&&(r[n(604)]((t=>{var r=n;(null==t?void 0:t[r(2063)])&&(null==t?void 0:t[r(1963)])&&(null==t?void 0:t.geom)&&(null==t?void 0:t[r(4148)])&&(t.geom[r(2171)]={geometry:t[r(2063)],thresholdAngle:5},t.geom[r(2334)]("position",new Float32BufferAttribute(e.data[r(3614)],3)),t[r(4670)][r(2028)](t[r(1963)]),t[r(4148)][r(2063)]=t[r(4670)],t.line.visible=!0)})),this[n(2170)][n(748)](e.data.id[n(526)]()),this[n(4669)]--),this.loadedGeometries[n(540)](e[n(571)].id.toString(),e[n(571)].vertices)}))}[nz(798)](t){var e=nz;this[e(4667)][e(798)](JSON[e(472)](t))}},createEdgesGeometryWorker=new CreateEdgesGeometryWorker,Default_Up=new Vector3(0,1,0),_ObjectUtils=class{static resetObjectStyle(t){var e=nz;this[e(4671)](t),this[e(4672)](t,[]),this[e(4673)](t),this.revertVisibleForFloors(t)}static[nz(4674)](t,e){var n=nz;const r=this.getObjectById(t,e);this[n(4675)](r)}static[nz(4676)](t,e=.3,n,r){var i=nz;const s=[],a=t=>{var n=f;!s[n(932)]((e=>e.id===t.id))&&(s[n(565)]({id:t.id,opacity:t.opacity,transparent:t[n(2197)],side:t[n(2196)]}),t[n(2286)]*=e,t.transparent=!0,t[n(2196)]=DoubleSide)},o=t=>{var n=f;const r=s[n(932)]((e=>e.id===t.id));if(!r){const r=t[n(1014)]();return s.push({id:t.id,opacity:t[n(2286)],transparent:t.transparent,side:t.side,material:t,clonedMaterial:r}),r[n(2286)]*=e,r[n(2197)]=!0,r}return r[n(4677)]};return t[i(2152)]((t=>{var e=i;if((!r||-1===r[e(564)](t.id))&&(!n||-1!==n[e(564)](t.id))&&t instanceof Mesh){const i=t;if(n||r){if(Array[e(468)](i[e(2178)])){const t=[];i.material[e(604)]((n=>{var r=e;const i=o(n);i&&t[r(565)](i)})),i.material=t}else if(i[e(2178)]){const t=o(i[e(2178)]);t&&(i.material=t)}}else if(Array.isArray(i[e(2178)]))i[e(2178)][e(604)]((t=>{a(t)}));else if(i[e(2178)]){const t=i[e(2178)];a(t)}}})),s}static[nz(4672)](t,e,n,r){const i=t=>{var n=f;const r=e[n(932)]((e=>e.id===t.id));r&&(t[n(2286)]=r[n(2286)],t.transparent=r[n(2197)],t[n(2196)]=r[n(2196)])},s=t=>{var n=f;const r=e[n(932)]((e=>e[n(4677)]&&e[n(4677)].id===t.id));if(r)return r[n(2178)]};t.traverse((t=>{var e=f;if((!r||-1===r[e(564)](t.id))&&(!n||-1!==n[e(564)](t.id))&&t instanceof Mesh)if(Array[e(468)](t[e(2178)])){const n=[];t[e(2178)][e(604)]((t=>{const e=s(t);e?n.push(e):i(t)})),t[e(2178)]=n}else if(t.material){const n=s(t.material);n?t.material=n:i(t[e(2178)])}}))}static[nz(4678)](t,e,n=.3,r,i){var s=nz;const a=t[s(4679)](e);if(!a)throw new Error("Failed to find object by id: "+e);return _ObjectUtils[s(4676)](a,n,r,i)}static[nz(4680)](t,e,n,r,i){var s=nz;const a=t.getObjectById(e);if(!a)throw new Error(s(4681)+e);_ObjectUtils.revertObjectOpacity(a,n,r,i)}static[nz(4682)](t,e,n,r){var i=nz;t[i(2152)]((t=>{var s=i;r&&-1!==r[s(564)](t.id)||n&&-1===n[s(564)](t.id)||t instanceof Mesh&&(!t[s(1968)][s(4683)]&&(t[s(1968)][s(4683)]=t[s(2178)]),t.material=e)}))}static revertAppliedMaterialToObject(t,e,n){var r=nz;t[r(2152)]((t=>{var i=r;n&&-1!==n[i(564)](t.id)||e&&-1===e[i(564)](t.id)||t[i(1968)].originalMaterial&&(t[i(2178)]=t.userData.originalMaterial,t.userData[i(4683)]=void 0)}))}static applyMaterialToObjectById(t,e,n,r,i){var s=nz;const a=t[s(4679)](e);if(!a)throw new Error(s(4681)+e);this[s(4682)](a,n,r,i)}static[nz(4684)](t,e,n,r){var i=nz;const s=t[i(4679)](e);if(!s)throw new Error(i(4681)+e);this[i(4673)](s,n,r)}static applyOpacityMaterialToObject(t,e,n){var r=nz;const i=new MeshBasicMaterial({color:0,transparent:!0,opacity:.05});this[r(4682)](t,i,e,n)}static setWireframeMode(t){var e=nz;const n=new MeshBasicMaterial({color:16732160,wireframe:!0,transparent:!0,opacity:.8});t[e(2153)]((t=>{var r=e;if(t instanceof Mesh){const e=t;e[r(1968)][r(4685)]=e[r(2178)],e[r(2178)]=n}}))}static setWireframeModeById(t,e){var n=nz;const r=t.getObjectById(e);if(!r)throw new Error("Failed to find object by id: "+e);_ObjectUtils[n(4686)](r)}static revertWireframeMode(t){var e=nz;t[e(2153)]((t=>{var n=e;t instanceof Mesh&&t.userData.materialForWireframe&&(t[n(2178)]=t[n(1968)].materialForWireframe,t[n(1968)].materialForWireframe=void 0)}))}static[nz(4687)](t,e){var n=nz;const r=t[n(4679)](e);if(!r)throw new Error(n(4681)+e);_ObjectUtils[n(4671)](r)}static[nz(4688)](t,e,n=[],r=!1){var i=nz;const s=e.toLowerCase(),a=[],o=t=>{var e=f;return-1!==t[e(570)]()[e(564)](s)},c=t=>-1!==t[f(526)]().indexOf(s),l=t=>{var e=f;if(t[e(542)]&&-1!==t[e(542)].toLowerCase()[e(564)](s))return!0;if(t[e(4399)]){const n=t.gltfExtensions,r=n[e(4689)]&&n.objectId[e(4690)]||n[e(4691)]&&n[e(4691)].Value;if(r&&-1!==r[e(570)]()[e(564)](s))return!0}return!1};if(n[i(449)]>0)for(let e=0;e{var e=i;(o(t.name)||c(t.id)||l(t[e(1968)]))&&a[e(565)](t)})),r&&a.length>0)return[a[0]]}else if(t.traverse((t=>{var e=i;(o(t[e(542)])||c(t.id)||l(t.userData))&&a[e(565)](t)})),r&&a[i(449)]>0)return[a[0]];return a}static find(t,e,n=[],r=!1){return this[nz(4688)](t,e,n,r)}static findFirst(t,e,n=[],r=!1){var i=nz;const s=this.findInner(t,e,n,r);if(s[i(449)]>0)return s[0]}static getFloorsFromString(t){var e=nz;const n=[],r=new RegExp(/(?:-?(?:\d+(?:\.5)?)F)(?=\W|$)/,"g").exec(t);return r&&r.length>0&&r[e(604)]((t=>{var r=e;if(t){const e=t[r(448)]("F",""),i=Number(e);i?n[r(565)](i):console[r(695)](r(4692)+t)}})),n}static matchFloor(t,e){var n=nz;return-1!==this[n(4693)](t)[n(663)]((t=>t===e))}static matchFloors(t,e){var n=nz;return-1!==this[n(4693)](t)[n(663)]((t=>-1!==e[n(663)]((e=>e===t))))}static distinctFloors(t,e){var n=nz;const r=[],i=t=>{var e=f;this[e(4693)](t)[e(604)]((t=>{r[t]=!0}))};return e[n(604)]((e=>{var r=n;const s=t.getObjectById(e);s&&s[r(2152)]((t=>{var e=r;if(i(t[e(542)]),t.userData[e(4399)]){const n=t[e(1968)].gltfExtensions;n[e(4694)]&&n[e(4694)][e(4690)]&&i(n[e(4694)][e(4690)])}}))})),Object.keys(r)[n(688)]()}static traverseObjectByFloors(t,e,n,r,i){var s=nz;const a=t[s(4679)](e);if(!a)return[];a.traverse((t=>{var e=s;let a=this[e(4695)](t[e(542)],n);if(!a&&t[e(1968)]&&t[e(1968)][e(4399)]){const r=t[e(1968)][e(4399)];r[e(4694)]&&r[e(4694)].Value&&(a=this[e(4695)](r.level[e(4690)],n))}a&&r&&r(t),!a&&i&&i(t)}))}static[nz(4696)](t,e,n,r=!0){var i=nz;this[i(4697)](t,e,n,(t=>{var e=i;let n=t;for(;n;)n[e(2122)]=!0,n=n[e(840)]||void 0}),(t=>{r&&(t[i(2122)]=!1)}))}static[nz(4698)](t){t[nz(2152)]((t=>{t.visible=!0}))}static[nz(4699)](t,e){const n=this[nz(4679)](t,e);this.revertVisibleForFloors(n)}static getObjectById(t,e){var n=nz;const r=t[n(4679)](e);if(!r)throw new Error(n(4681)+e);return r}static[nz(4700)](t,e={visibleOnly:!0,meshOnly:!0,replaceOriginalObject:!1}){var n=nz;if(!t)return[];if(0===t.children[n(449)]&&(e[n(4701)]&&!t[n(2122)]||e.meshOnly&&!(t instanceof Mesh)))return[];const r=t;for(let t=r[n(1602)][n(449)]-1;t>=0;--t){const i=r[n(1602)][t];this[n(4700)](i,e).forEach((t=>t[n(2028)](r[n(2033)])))}if(!r[n(2063)])return[];const i=[];if(r instanceof InstancedMesh)for(let t=0;t=0;--n){const r=t[e(1602)][n];r.children[e(449)]>0&&this.removeOutlines(r),r[e(1968)].isOutline&&t.remove(r)}}static[nz(4705)](t){var e=nz;let n=!1;for(let r=0;r0&&(n=this[e(4705)](i),n))break}return n}static[nz(4706)](t,e){var n=nz;t[n(2152)]((t=>{var r=n;t[r(1968)][r(4707)]&&(t.visible=e)}))}static[nz(4702)](t,e,n=this[nz(4708)]){var r=nz;const i=new EdgesGeometry,s=new LineSegments(i,n);if(s[r(2160)][r(540)](layerForUnselectableObjects),s[r(1968)][r(4707)]=!0,s.matrixAutoUpdate=matrixAutoUpdate,s[r(2122)]=!1,s[r(2127)](),createEdgesGeometryWorker[r(4668)][r(546)](t.id[r(526)]())){const n=createEdgesGeometryWorker.loadedGeometries.get(t.id[r(526)]());return i[r(2171)]={geometry:t,thresholdAngle:5},i[r(2334)]("position",new Float32BufferAttribute(n,3)),i[r(2028)](e),s[r(2063)]=i,s[r(2122)]=!0,s}return!createEdgesGeometryWorker[r(427)](t.id[r(526)]())&&createEdgesGeometryWorker[r(747)](t.id[r(526)](),[]),!createEdgesGeometryWorker.loadedGeometries[r(546)](t.id.toString())&&(createEdgesGeometryWorker[r(747)](t.id.toString(),createEdgesGeometryWorker[r(427)](t.id[r(526)]())[r(475)]([{geometry:t,matrix:e,geom:i,line:s}])),createEdgesGeometryWorker.postMessage({id:t.id,position:t.getAttribute(r(2065)).toJSON(),index:t.getIndex(),thresholdAngle:5})),s}static[nz(4709)](t,e,n=this[nz(4708)]){var r=nz;const i=new EdgesGeometry(t,5),s=new LineSegments(i,n);return s[r(2160)].set(layerForUnselectableObjects),s.userData[r(4707)]=!0,s[r(1962)]=matrixAutoUpdate,s[r(2028)](e),s}static cloneObject(t,e=!0){var n=nz;const r=t[n(1014)]();return e&&r[n(2152)]((t=>{var e=n;(t instanceof Mesh||t instanceof Line)&&(t[e(2178)]=MaterialUtils[e(4648)](t[e(2178)]))})),r}static[nz(4710)](t,e,n,r=_ObjectUtils.BOX_FACE_MATERIAL,i=!0){var s=nz;const a=[],o=(t,e,n)=>{a[f(565)](new Vector3(t,e,n))};o(0,0,0),o(t,0,0),o(t,e,0),o(0,e,0),o(0,0,n),o(t,0,n),o(t,e,n),o(0,e,n);const c=new BufferGeometry;c[s(2054)](a);const l=[0,3,2,0,2,1,4,6,7,4,5,6,0,7,3,0,4,7,3,6,2,3,7,6,1,6,5,1,2,6];return i&&l[s(565)](0,5,4,0,1,5),c[s(2332)](l),c[s(2349)](),new Mesh(c,r)}static rebaseObjectOnRTC(t){var e=nz;const n=t;if(!(n[e(2168)]||n[e(3415)]||n[e(2169)]))return t;if(!(n[e(2063)]&&n[e(2063)]instanceof BufferGeometry))return t;const r=n[e(2063)];if(!r[e(2335)](e(2065)))return t;const i=r[e(2333)](e(2065));if(0===i[e(2053)])return t;const s=i[e(2307)],a=i[e(2306)],o=[];for(let t=0;t2?o[2]:0);const l=t.matrixAutoUpdate;return t.matrixAutoUpdate=!1,t[e(2028)](c),t.matrixAutoUpdate=l,t}static isEmptyObject(t){var e=nz;if(0===t[e(1602)][e(449)]){const n=t.geometry;if(!n||!n[e(2335)](e(2065))||0===n[e(2333)](e(2065))[e(2053)])return!0}return!1}static removeEmptyObjects(t){var e=nz;for(let n=0;n{t[n(4703)]()})),this.removeEmptyObjects(e))}static[nz(4714)](t){t.uuid="",t.up=Default_Up}static isLeafObject(t){return(t instanceof Mesh||t instanceof Line||t instanceof Points)&&!(t.children.length>0||!t.geometry)}},ObjectUtils=_ObjectUtils;ObjectUtils[nz(4708)]=new LineBasicMaterial({name:"outline",color:0,transparent:!0,opacity:.2}),ObjectUtils[nz(4715)]=new MeshPhongMaterial({color:11648971,transparent:!0,opacity:.3,side:FrontSide});var tempMatrix2=new Matrix4,identifyMatrix=new Matrix4,_MergeUtils=class{static[nz(4716)](){var t=nz;this[t(4717)][t(4718)]=0,this[t(4717)][t(4719)]=0,this.mergeInfo[t(4720)]=0,this[t(4717)][t(4721)]=0,this[t(4717)][t(4722)]=0,this.mergeInfo[t(3850)]=0}static merge(t,e=!0){var n=nz;const r=Date[n(802)]();this[n(4723)](t,e),this[n(4717)][n(3850)]+=Date[n(802)]()-r}static[nz(4723)](t,e=!0){var n=nz;if(!t[n(1602)]||t[n(1602)][n(449)]<1)return;const r=t.children[n(449)],i={},s=[];for(let a=0;a0){this[n(4723)](r,e);continue}if(r.userData.relativeToCenter)continue;if(r[n(2161)])continue;if(!r[n(2063)])continue;if(!(r[n(2063)]instanceof BufferGeometry))continue;let o=!1;const c=Object[n(673)](i);for(let e=c[n(449)]-1;e>=0;--e){const r=c[e].indexes[0];if(o=this[n(4724)](t,a,r,i,s),o)break}for(let e=s[n(449)]-1;!o&&e>=0;--e){const r=s[e];if(o=this[n(4724)](t,a,r,i,s),o)break}!o&&s[n(565)](a)}if(Object[n(477)](i)[n(449)]<=0)return;const a=[],o=[],c=[],l=[];Object[n(673)](i).forEach((r=>{var i=n;const s=r.indexes,h=t.children[s[0]];let u=[],d=0,f=0,p=0;const m=[];if(s[i(604)]((n=>{var r,s,a,o=i;const c=t.children[n],l=c[o(2063)].clone();if(l.applyMatrix4(c[o(1963)]),GeometryUtils.tryConvertInterleavedBufferAttributes(l),l[o(1968)][o(3417)]=!0===c[o(3417)],u.push(l),e){const t=null==(s=null==(r=l[o(2064)])?void 0:r[o(2065)])?void 0:s[o(2053)],e=(null==(a=l[o(677)])?void 0:a[o(2053)])||0;m[o(565)]({batchId:d,positionStart:f,positionCount:t,indexStart:p,indexCount:e}),f+=t,p+=e,d++}})),0===u[i(449)])return;let v;if(h[i(2168)]){const t=mergeBufferGeometries(u);if(!t)return;t[i(1968)]={},v=new Mesh(t,h[i(2178)]),a.push(v)}else if(h[i(3415)]){const t=this[i(4725)](u,e,h.material instanceof LineDashedMaterial||h[i(2178)]instanceof ShaderMaterial,m);if(!t)return;v=new LineSegments(t,h[i(2178)]),o[i(565)](v)}else if(h[i(2169)]){const t=mergeBufferGeometries(u);if(!t)return;t.userData={},v=new Points(t,h[i(2178)]),c.push(v)}v&&(e?v[i(1968)].batches=m:v[i(1968)]=h.userData,v[i(1968)][i(4726)]=h[i(1968)].layerName,v[i(542)]=i(4727)+h[i(542)],v[i(1962)]=matrixAutoUpdate,v[i(2125)]=h.renderOrder,v[i(2160)]=h[i(2160)],v[i(2122)]=h.visible,l.push(...s)),u.forEach((t=>{GeometryUtils[i(4728)](t)})),u=[]})),l[n(688)](((t,e)=>e-t)),l.forEach((e=>{var r=n;const i=t.children[e];t[r(1204)](i)})),[...a,...o,...c][n(604)]((e=>{t.add(e)})),t[n(2127)](),this[n(4717)][n(4718)]+=l[n(449)],this[n(4717)][n(4719)]+=a[n(449)],this[n(4717)][n(4720)]+=o[n(449)],this[n(4717)][n(4721)]+=c.length}static[nz(4724)](t,e,n,r,i){var s=nz;let a=!1;const o=Array[s(468)](t),c=o?t.length:t[s(1602)][s(449)];if(e===n||e>=c||n>=c)return a;const l=o?t[e]:t[s(1602)][e],h=o?t[n]:t.children[n];return this[s(4729)](l,h)&&this.areGeometriesMergeable(l[s(2063)],h[s(2063)])&&MaterialUtils[s(4641)](l[s(2178)],h[s(2178)])&&(!r[n]&&(r[n]={indexes:[n]},this.removeFromArray(i,n)),r[n][s(4730)].push(e),a=!0),a}static[nz(4731)](t,e){var n=nz;const r=t;if(r.isMesh&&r[n(2178)][n(3348)])return!0;let i=!1,s=t;for(;s&&s!==e;){const t=s[n(1968)];if(t[n(4732)]||t.spatialFilterHandle){i=!0;break}s=s[n(840)]}return i}static[nz(4733)](t,e,n=!0,r=!0,i=!0){var s=nz;const a={added:[],removed:[]};if(t.length<=1)return a;let o=Date[s(802)]();const c={},l=[];for(let n=0;n=0;--e){const r=a[e][s(4730)][0];if(i=this[s(4724)](t,n,r,c,l),i)break}for(let e=l[s(449)]-1;!i&&e>=0;--e){const r=l[e];if(i=this.tryHandleMergeableObjects(t,n,r,c,l),i)break}!i&&l.push(n)}if(Object[s(477)](c)[s(449)]<=0)return a;log[s(1178)](s(4734)+t[s(449)]+" objects in "+(Date[s(802)]()-o)/1e3+"s"),o=Date[s(802)]();const h=[],u=[],d=[],f=[];Object[s(673)](c)[s(604)]((n=>{var r=s;const a=n[r(4730)];if(a[r(449)]<2)return;const o=t[a[0]];let c=[],l=0,p=0,m=0;const v=[];if(a.forEach((n=>{var s,a,h,u=r;const d=t[n],f=d.geometry.clone();if(o[u(2178)]instanceof LineBasicMaterial&&f[u(2596)](u(3530)),this[u(4735)](f,d,e),f.userData.isLineSegments=!0===d.isLineSegments,c[u(565)](f),i){const t=null==(a=null==(s=f.attributes)?void 0:s[u(2065)])?void 0:a[u(2053)],e=(null==(h=f[u(677)])?void 0:h[u(2053)])||0;let n;o[u(3415)]&&(!f.boundingSphere&&f[u(2340)](),n=f[u(2330)][u(1014)]()),v[u(565)]({batchId:l,positionStart:p,positionCount:t,indexStart:m,indexCount:e,boundingSphere:n}),p+=t,m+=e,l++}})),0===c[r(449)])return;let _;if(o.isMesh){const t=mergeBufferGeometries(c);if(!t)return;t[r(1968)]={},_=new Mesh(t,o.material),h[r(565)](_)}else if(o[r(3415)]){const t=this[r(4725)](c,i,o[r(2178)]instanceof LineDashedMaterial||o[r(2178)]instanceof ShaderMaterial,v);if(!t)return;_=new LineSegments(t,o[r(2178)]),u.push(_)}else if(o.isPoints){const t=mergeBufferGeometries(c);if(!t)return;t[r(1968)]={},_=new Points(t,o[r(2178)]),d.push(_)}_&&(i?_[r(1968)][r(4178)]=v:_.userData=o[r(1968)],_.userData[r(4726)]=o.userData.layerName,_[r(542)]=r(4727)+o[r(542)],_[r(1962)]=matrixAutoUpdate,_[r(2125)]=o.renderOrder,_[r(2160)]=o[r(2160)],_.visible=o[r(2122)],a[r(604)]((t=>f[r(565)](t)))),c[r(604)]((t=>{GeometryUtils[r(4728)](t)})),c=[]})),log[s(1178)](s(4736)+(Date[s(802)]()-o)/1e3+"s");const p=a[s(756)];f[s(604)]((e=>{var r=s;const i=t[e];p[r(565)](i),n&&i[r(4703)]()}));const m=a[s(3318)];return[...h,...u,...d].forEach((t=>{var r=s;m[r(565)](t),n&&e&&(e[r(747)](t),t[r(2142)](!1,!1))})),this.mergeInfo.removedObjects+=f[s(449)],this[s(4717)].mergedMeshes+=h.length,this[s(4717)][s(4720)]+=u[s(449)],this[s(4717)][s(4721)]+=d[s(449)],r&&e&&ObjectUtils[s(4711)](e),a}static applyMatrix(t,e,n){var r=nz;let i=e;for(tempMatrix2[r(1528)]();i&&i!==n&&(tempMatrix2[r(2017)](i.matrix),i[r(840)]);)i=i.parent;return tempMatrix2.equals(identifyMatrix)?t:t[r(2028)](tempMatrix2)}static mergeLineGeometries(t,e,n,r){var i=nz;let s;if(n)s=_MergeUtils[i(4737)](t,e,r);else{if(s=mergeBufferGeometries(t),!s)return;s[i(1968)]={};const n=[];let a=0;t[i(604)](((t,s)=>{var o=i;const c=t.attributes.position;if(!c)return;const l=t[o(677)],h=!0===t[o(1968)][o(3417)],u=n[o(449)];if(l)for(let t=0;t0&&n.push(a+l[o(2306)][t-1],a+e)}else for(let t=0;t0&&(h?t%2==1&&n[o(565)](a+t-1,a+t):n[o(565)](a+t-1,a+t));a+=c.count,e&&r&&(r[s].indexStart=u,r[s][o(4180)]=n[o(449)]-u)})),s[i(2332)](n)}return s}static[nz(4737)](t,e,n){var r=nz;const i=new Set(Object[r(477)](t[0][r(2064)])),s={},a=new BufferGeometry,o=[];let c=0;for(let a=0;a=0;--r)if(t[r]===e)return void t[n(690)](r,1)}static removeObjectFromArray(t,e){var n=nz;for(let r=t[n(449)]-1;r>=0;--r)if(t[r]===e)return void t[n(690)](r,1)}static[nz(4745)](t,e){var n=nz;if(!t||!e)return!1;if(t[n(452)]===n(3819)||e.type===n(3819))return!1;if(!!t[n(677)]!=!!e.index)return!1;const r=Object[n(477)](t[n(2064)]);if(r[n(449)]!==Object.keys(e.attributes).length)return!1;for(const t of r)if(!e[n(2064)][t])return!1;return!0}static[nz(4729)](t,e){var n=nz;if(t[n(2160)][n(2115)]!==e[n(2160)][n(2115)])return!1;if(t[n(2125)]!==e[n(2125)])return!1;if(t.visible!==e[n(2122)])return!1;if(t[n(1968)][n(4726)]!==e[n(1968)][n(4726)])return!1;if(t[n(452)]===e[n(452)])return!0;const r=t,i=e;return r[n(2168)]&&i[n(2168)]||r[n(3415)]&&i[n(3415)]||r[n(2169)]&&i[n(2169)]}static[nz(4746)](t){var e=nz;return!(!t||!t[e(1968)][e(4178)])}static[nz(4747)](t,e,n){var r=nz;if(t.boundsTree){const i=t.index[r(1892)](3*n);if(i>=e[r(4181)]&&i=t&&n<=i)return!0}else{const t=3*n;if(t>=e[r(4181)]&&t0?t[e(1602)][e(604)]((t=>this[e(4767)](t))):this.explodeLeafObject(t)}explodeLeafObject(t){var e=nz;if(t[e(2063)]){if(t.userData[e(4768)]=t.position[e(1014)](),t instanceof InstancedMesh){const n=new Matrix4,r=new Vector3,i=new Quaternion,s=new Vector3;for(let a=0;a0?t[e(1602)][e(604)]((t=>this.unexplodeObject(t))):this.unexplodeLeafObject(t)}unexplodeLeafObject(t){var e=nz;const n=t.userData[e(4768)];n&&(t[e(2065)][e(540)](n.x,n.y,n.z),t.updateMatrix(),delete t.userData.originalPosition)}[nz(4773)](t){this[nz(4757)]=t}getObjectCenter(t){var e=nz;const n=new Box3;if(!this.objectId)return void console[e(695)](e(4759)+this.objectId);const r=this.scene.getObjectById(this[e(4689)]);r&&r.children?(r[e(2152)]((t=>{n[e(2058)](t)})),n[e(2059)](t)):console[e(695)](e(4764))}},Exploder=_Exploder;Exploder[nz(4774)]=1;var SceneUtils=class{static[nz(4775)](t){var e=nz;const n=new Box3;return t[e(2153)]((t=>{var r=e;t instanceof Mesh&&!1!==t[r(1968)][r(4776)]&&n[r(2058)](t)})),n}static[nz(4777)](t,e,n){const r=new Box3;return e.forEach((e=>{var i=f;const s=t[i(4679)](e);if(s){const t=SceneUtils.getBoundingBox(s,n);!t[i(1213)]()&&r[i(1255)](t)}})),r}static[nz(2077)](t,e=!0){var n=nz;const r=new Box3;if(t instanceof InstancedMesh)return SceneUtils[n(4778)](t);if(0===t[n(1602)][n(449)])return r[n(2058)](t),r;const i=t[n(1602)].length;let s=1;i>20&&(s=3),i>100&&(s=5),i>200&&(s=10),i>1e3&&(s=100),t[n(2155)](!1);for(let a=0;a{var s=f;n[s(932)]((t=>t===i.id))&&(i[s(1602)]&&1===i[s(1602)].length?SceneUtils[s(4767)](i[s(1602)][0],t,e,r):SceneUtils[s(4767)](i,t,e,r))})),e}static unexplodeObjects(t,e){t[nz(2152)]((t=>{const n=e[t.id];n&&(n.unexplode(),delete e[t.id])}))}static[nz(4761)](t,e){var n=nz;const r=SceneUtils[n(2077)](t);r[n(2059)](e),e.y=r.min.y}},import_simplify_js=__toESM(require_simplify(),1),_cb=new Vector3,_ab=new Vector3,SimplifyModifier=class{[nz(4783)](t,e){var n=nz;const r=(t=t[n(1014)]())[n(2064)];for(const e in r)e!==n(2065)&&t[n(2596)](e);const i=[],s=[],a=(t=mergeVertices(t))[n(2333)](n(2065));for(let t=0;t-1&&t[n(690)](r,1)}function computeEdgeCollapseCost(t,e){var n=nz;const r=e[n(2065)][n(2038)](t[n(2065)]);let i=0;const s=[];for(let r=0,i=t[n(4252)][n(449)];r=0;t--)n[i(4252)][t]&&n[i(4252)][t][i(4792)](r)&&removeFace(n[i(4252)][t],e);for(let t=n[i(4252)][i(449)]-1;t>=0;t--)n[i(4252)][t][i(4793)](n,r);removeVertex(n,t);for(let t=0;t0){return(new SimplifyModifier)[n(4783)](t,r)}return t}static[nz(4797)](t,e=1){var n=nz;const r=(0,import_simplify_js[n(435)])(t,e);return this[n(4798)][n(4025)]+=t.length,this[n(4798)][n(756)]+=t.length-r[n(449)],r}static[nz(4799)](t,e){var n=nz;let r=0;t instanceof BufferGeometry&&t[n(677)]&&(r=t.attributes[n(2065)][n(2053)]);const i=Math[n(562)](r*e);return r<20?0:i}};SimplifyUtils[nz(4798)]={total:0,removed:0};var _SkyboxUtils=class{static createSkyOfGradientRamp(t=4e3,e=32,n=15,r=new Vector3,i=new Vector3(0,.7,.5)){var s=nz;const a=this[s(4800)][s(435)],o={topColor:{value:new Color(a[0])},skylineColor:{value:new Color(a[1])},bottomColor:{value:new Color(a[2])},offset:{value:400},exponent:{value:.9},skyCenter:{value:r||new Vector3},sunDirection:{value:i.normalize()}},c=new SphereGeometry(t,e,n),l=new ShaderMaterial({uniforms:o,vertexShader:this[s(2385)],fragmentShader:this[s(2379)],side:BackSide}),h=new Mesh(c,l);return h[s(1962)]=!1,h[s(542)]=this[s(4801)],h[s(1968)].selectable=!1,h[s(2160)][s(540)](layerForUnselectableObjects),h}static[nz(4802)](t){var e=nz;let n=2*(t[e(486)].x-t[e(563)].x+(t.max.y-t[e(563)].y)+(t[e(486)].z-t[e(563)].z));n<_SkyboxUtils.MIN_SKY_RADIUS?n=_SkyboxUtils[e(4803)]:n>_SkyboxUtils.MAX_SKY_RADIUS&&(n=_SkyboxUtils[e(4804)]);const r=new Vector3;t[e(2059)](r);const i=_SkyboxUtils[e(4805)](n,void 0,void 0,r);return i[e(2065)][e(540)](r.x,0,r.z),i}static[nz(4806)](t){return __async(this,null,(function*(){const e=new CubeTextureLoader;return new Promise((n=>{e[f(1212)](t,(t=>n(t)))}))}))}},SkyboxUtils=_SkyboxUtils;function __getPointBaseLength(){var t=nz;const e=document[t(538)]("div");e[t(2334)]("style","height: 1in; visibility: hidden; position: absolute; margin: 0; padding: 0;"),document[t(1072)][t(591)](e);return.0254/e[t(4809)]}SkyboxUtils[nz(4801)]="SKYBOX",SkyboxUtils[nz(4803)]=4e3,SkyboxUtils[nz(4804)]=2e4,SkyboxUtils[nz(2385)]=nz(4807),SkyboxUtils.fragmentShader=nz(4808),SkyboxUtils[nz(4800)]={default:[8828661,16777215,10066329],blueSky:[11189247,16777215,6974058],boardwalk:[14413823,16777215,15459804]};var unitConversionByMeter={file:1,m:1,mm:.001,cm:.01,ft:.3048,in:.0254,pt:__getPointBaseLength()},unitLabel={file:"m",m:"m",mm:"mm",cm:"cm",ft:"ft",in:"in",pt:"pt"},_getSuffix=t=>2===t?"²":3===t?"³":"",getUnitStr=(t,e=1)=>unitLabel[t]+_getSuffix(e),getLengthValueByUnit=(t,e,n,r=1)=>{var i=nz;if(null==n&&(n=e),n===e)return{value:t,unit:getUnitStr(n)};return{value:t*Math[i(428)](unitConversionByMeter[e]/unitConversionByMeter[n],r),unit:getUnitStr(n)+_getSuffix(r)}},Views=(t=>{var e=nz;return t.Top=e(4810),t[e(4811)]="Bottom",t[e(4812)]="Front",t.Back="Back",t[e(4813)]="Left",t[e(1588)]=e(1588),t})(Views||{}),_Viewer3DUtils=class{static getCameraPositionByBboxAndView(t,e,n,r,i){var s=nz;const a=_Viewer3DUtils.getCameraDirectionByView(e);return this[s(4814)](t,n,r,i,a)}static[nz(4814)](t,e,n,r,i){var s=nz;if(t[s(1213)]())return;if(!r)return;const a=new Vector3,o=new Vector3,c=new Vector3(0,1,0);t[s(2060)](o),t[s(2059)](a);let l,h,u=(o.x+o.y+o.z)/3*1.5;if(!i||(null==i?void 0:i[s(1889)](new Vector3)))l=new Vector3(a.x+u,a.y+u/1.5,a.z+u),h=l.clone().sub(a);else{const t=new Vector3(u,u/1.5,u)[s(449)]();h=new Vector3(-i.x,-i.y,-i.z)[s(569)]()[s(1878)](t),l=h[s(1014)]()[s(747)](a)}u=h[s(449)](),h=h[s(569)]();const d=new Matrix4;d.lookAt(l,a,c);const f=new Matrix4;f[s(2097)](-l.x,-l.y,-l.z);const p=t[s(1014)]().applyMatrix4(f)[s(2028)](d[s(1465)]()).applyMatrix4(r),m=Math[s(486)](Math[s(694)](p[s(486)].x),Math[s(694)](p.min.x)),v=Math.max(Math[s(694)](p[s(486)].y),Math[s(694)](p[s(563)].y));u*=1.1*Math[s(761)](Math[s(428)](m,2)+Math[s(428)](v,2)),l=h[s(1878)](u).add(a),n.set(a.x,a.y,a.z),e[s(540)](l.x,l.y,l.z)}static getCameraDirectionByView(t){var e=nz;const n=new Vector3(1,0,0);return t===e(4810)?n.set(0,-1,0):t===e(4811)?n[e(540)](0,1,0):t===e(4812)?n.set(0,0,-1):"Back"===t?n[e(540)](0,0,1):t===e(4813)?n[e(540)](1,0,0):t===e(1588)&&n[e(540)](-1,0,0),n}static[nz(4815)](t){return __async(this,null,(function*(){var e=f;let n;return new Promise((e=>{n=setTimeout((()=>{e("")}),t)}))[e(829)]((()=>{clearTimeout(n)}))}))}static[nz(4816)](t,e=500){return __async(this,null,(function*(){var n=f;const r=_Viewer3DUtils[n(4817)];r[t.id]||(r[t.id]=!0,t[n(2122)]=!t[n(2122)],yield this.sleep(e),t[n(2122)]=!t[n(2122)],yield this[n(4815)](e),t.visible=!t[n(2122)],yield this[n(4815)](e),t[n(2122)]=!t[n(2122)],yield this[n(4815)](e),t.visible=!t[n(2122)],yield this[n(4815)](e),t[n(2122)]=!t[n(2122)],delete r[t.id])}))}},Viewer3DUtils=_Viewer3DUtils;Viewer3DUtils[nz(4817)]={};var debug=!1,Drawable=class extends Event{constructor(t){var e=nz;super(),this[e(4818)]=1,this[e(4819)]="#000000",this[e(4820)]=e(4821),this[e(3124)]=this.DEFAULT_LINE_WIDTH,this[e(4822)]=this.DEFAULT_STROKE_STYLE,this[e(4823)]=this[e(4820)],this.x=0,this.y=0,this[e(2985)]=[],this[e(1968)]={},this[e(999)]=0,this[e(1e3)]=0,this[e(4824)]=1,this[e(2122)]=!0,this[e(1639)]=!1,this.needsFrustumCulled=!0,this[e(4825)]=3,this[e(4826)]=e(4312),this[e(1963)]=new Matrix4,this.id=t||CommonUtils[e(4307)]()}[nz(4827)](t){this[nz(4824)]=t}[nz(2418)](t,e){var n=nz;this[n(4828)]=t,this[n(4829)](t,e),this[n(1639)]&&this[n(4830)](t,e),debug&&(this[n(4831)](t,e),this[n(4832)](t,e))}getData(){var t=nz;return{id:this.id,points:this[t(2985)][t(679)]((t=>[t.x,t.y])),lineWidth:this[t(3124)],lineColor:this.lineColor,fillColor:this[t(4823)],type:this[t(4833)]()}}setData(t){var e=nz;this.id=t.id,this[e(3416)](t[e(3124)]),this.setLineColor(t.lineColor),this.setFillColor(t[e(4823)])}[nz(4834)](){var t=nz;return[new Vector3(this.x,this.y,0),new Vector3(this.x+this.width,this.y,0),new Vector3(this.x+this[t(999)],this.y+this[t(1e3)],0),new Vector3(this.x,this.y+this[t(1e3)],0)]}[nz(3416)](t){var e=nz;this[e(3124)]=t||this[e(4818)]}setLineColor(t){this[nz(4822)]=t||this.DEFAULT_STROKE_STYLE}[nz(4835)](t){this.fillColor=t||this.DEFAULT_FILL_STYLE}[nz(4836)](){return this[nz(1639)]}[nz(2059)](){var t=nz;return this[t(4837)]()[t(2059)](new Vector3)}[nz(4838)](t,e){var n=nz;return this.ctx?CoordinateConversionUtils[n(4330)](t,e,this.ctx[n(1939)]):new Vector2}[nz(4831)](t,e){var n=nz;const{min:r,max:i}=this[n(4837)](),s=[],a=(t,e,n)=>s.push(new Vector3(t,e,n));a(i.x,i.y,i.z),a(r.x,i.y,i.z),a(r.x,r.y,i.z),a(i.x,r.y,i.z),a(i.x,i.y,r.z),a(r.x,i.y,r.z),a(r.x,r.y,r.z),a(i.x,r.y,r.z),a(r.x,i.y,i.z),a(r.x,r.y,i.z),a(i.x,i.y,i.z),a(i.x,r.y,i.z),a(i.x,i.y,r.z),a(i.x,r.y,r.z),a(r.x,i.y,r.z),a(r.x,r.y,r.z),a(r.x,i.y,i.z),a(r.x,i.y,r.z),a(i.x,i.y,i.z),a(i.x,i.y,r.z),a(r.x,r.y,i.z),a(r.x,r.y,r.z),a(i.x,r.y,i.z),a(i.x,r.y,r.z),t[n(4544)](),t[n(4839)]="yellow",t.beginPath(),s[n(604)](((r,i)=>{var s=n;const a=this[s(4838)](r,e);i%2==0?t[s(3593)](a.x,a.y):t.lineTo(a.x,a.y)})),t.closePath(),t[n(4840)](),t[n(4841)]()}[nz(4832)](t,e){var n=nz;const r=this.transToScreenCoord(this[n(2059)](),e);t[n(4544)](),t.fillStyle=n(4842),t[n(4843)](),t.arc(r.x,r.y,5,0,2*Math.PI),t[n(3585)](),t[n(929)](),t[n(4841)]()}getBounds(){var t=nz;const e=this[t(4834)]();return(new Box3)[t(2054)](e)}},DrawableList=class{constructor(t){var e=nz;this[e(4844)]=new Map,this[e(4845)]=t}[nz(4846)](t){this[nz(4844)].set(t.id,t)}[nz(4847)](t,e){t[nz(4848)](e)}[nz(4849)](t){var e=nz;this[e(4844)][e(748)](t.id)}[nz(4850)](t){var e=nz;return this[e(4844)][e(427)](t)}[nz(750)](){var t=nz;this[t(4844)][t(750)]()}[nz(4851)](){return this[nz(4844)]}getDrawableDatas(){var t=nz;return Array[t(666)](this[t(4844)])[t(679)]((([e,n])=>n[t(4852)]()))}[nz(4853)](t){var e=nz;for(let n=0;n{var e=nz;return t[e(4856)]=e(4856),t[e(4857)]=e(4857),t})(ViewerEvent||{}),drawableClassMap={},CanvasRender=class extends Event{constructor(t){var e=nz;super(),this[e(4858)]=[],this.frustum=new Frustum,this[e(4859)]=new Matrix4,this.viewer=t,this[e(2645)]()}static _registerDrawableClass(t){var e=nz;drawableClassMap[t[e(425)][e(4833)]()]=t}static[nz(4854)](t){var e=nz;const n=drawableClassMap[t.type];if(!n)throw new Error(e(4860)+n);const r=t.points[e(679)]((t=>new Vector3(t[0],t[1],t[2]||0))),i=new n(t.id,r);return i[e(4848)](t),i}get[nz(4861)](){var t=nz;return this[t(4862)][t(4863)]}get[nz(3045)](){return this[nz(4862)].camera}get[nz(4864)](){return this[nz(4862)].getRaycaster()}[nz(4865)](t,e){var n=nz;const{clientWidth:r,clientHeight:i}=this.container;let s=0;if(e[n(452)]===n(2650)){const a=e;s=t*Math[n(486)](a[n(935)]-a[n(683)],a.top-a[n(2652)])/a.zoom/Math[n(486)](r,i)}else if(e.type===n(2391)){const r=e,a=this[n(4862)].cameraCfg,o=a&&CommonUtils[n(4866)](a[n(4867)]),c=a&&CommonUtils[n(4866)](a[n(4868)]);s=2*t*(o[n(2038)](c)*Math[n(2402)](r[n(2392)]/2*Math.PI/180))/i}return s}[nz(2645)](){var t=nz;this[t(4869)](),this.viewer[t(808)](t(4857),(()=>{var e=t;this[e(4859)][e(1896)](this[e(3045)].projectionMatrix,this[e(3045)][e(2030)]),this[e(4870)][e(3789)](this[e(4859)]),this.render()}))}initCanvas(){var t=nz;const e=this[t(1939)]=document[t(538)](t(1939)),n=this[t(4862)][t(4863)];e[t(4871)][t(747)](t(4872)),e[t(590)].pointerEvents=t(3833),e[t(590)][t(2065)]=t(4873),e[t(590)][t(683)]=t(4874),e.style[t(2651)]="0px",e[t(590)][t(4875)]=t(3833),this.context=e[t(1027)]("2d",{willReadFrequently:!0});const{clientWidth:r,clientHeight:i}=n;this[t(1996)](r,i),n[t(591)](e)}toHighDpr(t,e,n){var r=nz;const i=window[r(4876)]||1,s=this[r(1939)];return s[r(999)]=e*i,s[r(1e3)]=n*i,t.scale(i,i),s.style[r(999)]=e+"px",s.style[r(1e3)]=n+"px",t}[nz(4877)](){var t,e,n,r=nz;null==(n=this[r(3371)])||n[r(4878)](0,0,null==(t=this.canvas)?void 0:t[r(999)],null==(e=this[r(1939)])?void 0:e.height)}[nz(4879)](t){this.drawableLists.push(t)}render(){var t=nz;this[t(4877)]();const e=this[t(4880)](),n=new Sphere;for(let r=0;r{var r=t;e[r(565)](...Array[r(666)](n[r(4851)]()[r(673)]()))})),e.sort(((e,n)=>n[t(2059)]().distanceTo(this[t(3045)][t(2065)])-e[t(2059)]().distanceTo(this.camera[t(2065)]))),e}[nz(4882)](t,e){var n=nz;const r=this[n(4880)]().reverse(),i=[];for(let s=0;st[e(750)]())),this[e(4858)]=[],this[e(1939)]&&(null==(t=this[e(4862)][e(4863)])||t.removeChild(this[e(1939)]),this[e(1939)]=void 0)}};function _typeof2(t){var e=nz;return(_typeof2=e(432)==typeof Symbol&&e(442)==typeof Symbol[e(491)]?function(t){return typeof t}:function(t){var n=e;return t&&n(432)==typeof Symbol&&t[n(443)]===Symbol&&t!==Symbol[n(425)]?n(442):typeof t})(t)}function _classCallCheck2(t,e){if(!(t instanceof e))throw new TypeError(nz(444))}function _toPrimitive(t,e){var n=nz;if(_typeof2(t)!==n(469)||null===t)return t;var r=t[Symbol[n(537)]];if(void 0!==r){var i=r.call(t,e||n(435));if("object"!==_typeof2(i))return i;throw new TypeError(n(4886))}return(e===n(470)?String:Number)(t)}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"===_typeof2(e)?e:String(e)}function _defineProperties2(t,e){for(var n=nz,r=0;rt[n(449)])&&(e=t[n(449)]);for(var r=0,i=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck2(this,e),this.init(t,n)}return _createClass2(e,[{key:"init",value:function(t){var e=f,n=arguments[e(449)]>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n[e(4889)]||e(4890),this[e(4891)]=t||consoleLogger,this[e(3645)]=n,this[e(1178)]=n.debug}},{key:t(4892),value:function(t){this.debug=t}},{key:t(695),value:function(){for(var e=t,n=arguments[e(449)],r=new Array(n),i=0;i1?r-1:0),s=1;s-1?t[e(448)](/###/g,"."):t}function s(){return!t||typeof t===f(470)}for(var a=typeof e!==r(470)?[].concat(e):e[r(465)](".");a[r(449)]>1;){if(s())return{};var o=i(a[r(1061)]());!t[o]&&n&&(t[o]=new n),t=Object.prototype[r(492)][r(429)](t,o)?t[o]:{}}return s()?{}:{obj:t,k:i(a[r(1061)]())}}function setPath(t,e,n){var r=getLastOfPath(t,e,Object);r.obj[r.k]=n}function pushPath(t,e,n,r){var i=nz,s=getLastOfPath(t,e,Object),a=s.obj,o=s.k;a[o]=a[o]||[],r&&(a[o]=a[o][i(475)](n)),r||a[o][i(565)](n)}function getPath(t,e){var n=nz,r=getLastOfPath(t,e),i=r[n(4897)],s=r.k;if(i)return i[s]}function getPathWithDefaults(t,e,n){var r=getPath(t,n);return void 0!==r?r:getPath(e,n)}function deepExtend(t,e,n){var r=nz;for(var i in e)i!==r(630)&&i!==r(443)&&(i in t?typeof t[i]===r(470)||t[i]instanceof String||typeof e[i]===r(470)||e[i]instanceof String?n&&(t[i]=e[i]):deepExtend(t[i],e[i],n):t[i]=e[i]);return t}function regexEscape(t){var e=nz;return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,e(4898))}var _entityMap={"&":nz(4899),"<":nz(4900),">":nz(1358),'"':""","'":nz(1360),"/":nz(4901)};function escape2(t){var e=nz;return typeof t===e(470)?t[e(448)](/[&<>"'\/]/g,(function(t){return _entityMap[t]})):t}var isIE10=typeof window!==nz(430)&&window[nz(1174)]&&typeof window.navigator.userAgentData===nz(430)&&window[nz(1174)][nz(518)]&&window[nz(1174)][nz(518)][nz(564)]("MSIE")>-1,chars=[" ",",","?","!",";"];function looksLikeObjectPath(t,e,n){var r=nz;e=e||"",n=n||"";var i=chars[r(464)]((function(t){var i=r;return e.indexOf(t)<0&&n[i(564)](t)<0}));if(0===i[r(449)])return!0;var s=new RegExp("("[r(475)](i.map((function(t){return"?"===t?"\\?":t})).join("|"),")")),a=!s.test(t);if(!a){var o=t[r(564)](n);o>0&&!s.test(t[r(4902)](0,o))&&(a=!0)}return a}function ownKeys$1(t,e){var n=nz,r=Object[n(477)](t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i[n(464)]((function(e){return Object[n(512)](t,e).enumerable}))),r[n(565)].apply(r,i)}return r}function _objectSpread$1(t){for(var e=nz,n=1;n2&&void 0!==arguments[2]?arguments[2]:".";if(t){if(t[e])return t[e];for(var i=e[n(465)](r),s=t,a=0;aa+o;)o++,l=s[c=i[n(497)](a,a+o)[n(549)](r)];if(void 0===l)return;if(null===l)return null;if(e.endsWith(c)){if(typeof l===n(470))return l;if(c&&typeof l[c]===n(470))return l[c]}var h=i[n(497)](a+o)[n(549)](r);return h?deepFind(l,h,r):void 0}s=s[i[a]]}return s}}var ResourceStore=function(t){var e=nz;_inherits(r,EventEmitter);var n=_createSuper(r);function r(t){var e,i=f,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return _classCallCheck2(this,r),e=n[i(429)](this),isIE10&&EventEmitter[i(429)](_assertThisInitialized(e)),e[i(571)]=t||{},e[i(3645)]=s,void 0===e[i(3645)].keySeparator&&(e[i(3645)][i(4903)]="."),void 0===e[i(3645)][i(4904)]&&(e.options[i(4904)]=!0),e}return _createClass2(r,[{key:e(4905),value:function(t){var n=e;this[n(3645)].ns.indexOf(t)<0&&this.options.ns[n(565)](t)}},{key:"removeNamespaces",value:function(t){var n=e,r=this.options.ns[n(564)](t);r>-1&&this[n(3645)].ns[n(690)](r,1)}},{key:e(4906),value:function(t,n,r){var i=e,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=void 0!==s[i(4903)]?s.keySeparator:this.options[i(4903)],o=void 0!==s[i(4904)]?s[i(4904)]:this[i(3645)].ignoreJSONStructure,c=[t,n];r&&"string"!=typeof r&&(c=c[i(475)](r)),r&&"string"==typeof r&&(c=c[i(475)](a?r.split(a):r)),t[i(564)](".")>-1&&(c=t[i(465)]("."));var l=getPath(this[i(571)],c);return l||!o||typeof r!==i(470)?l:deepFind(this.data&&this[i(571)][t]&&this[i(571)][t][n],r,a)}},{key:"addResource",value:function(t,n,r,i){var s=e,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},o=this[s(3645)][s(4903)];void 0===o&&(o=".");var c=[t,n];r&&(c=c.concat(o?r[s(465)](o):r)),t[s(564)](".")>-1&&(i=n,n=(c=t[s(465)]("."))[1]),this[s(4905)](n),setPath(this[s(571)],c,i),a[s(1180)]||this.emit(s(3318),t,n,r,i)}},{key:e(4907),value:function(t,n,r){var i=e,s=arguments[i(449)]>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var a in r)typeof r[a]!==i(470)&&Object[i(425)][i(526)][i(441)](r[a])!==i(1307)||this.addResource(t,n,a,r[a],{silent:!0});s[i(1180)]||this[i(839)](i(3318),t,n,r)}},{key:"addResourceBundle",value:function(t,n,r,i,s){var a=e,o=arguments[a(449)]>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},c=[t,n];t[a(564)](".")>-1&&(i=r,r=n,n=(c=t[a(465)]("."))[1]),this[a(4905)](n);var l=getPath(this[a(571)],c)||{};i?deepExtend(l,r,s):l=_objectSpread$1(_objectSpread$1({},l),r),setPath(this.data,c,l),o[a(1180)]||this[a(839)](a(3318),t,n,r)}},{key:e(4908),value:function(t,n){var r=e;this[r(4909)](t,n)&&delete this[r(571)][t][n],this[r(4910)](n),this[r(839)]("removed",t,n)}},{key:"hasResourceBundle",value:function(t,n){return void 0!==this[e(4906)](t,n)}},{key:e(4911),value:function(t,n){var r=e;return n||(n=this[r(3645)][r(4912)]),"v1"===this[r(3645)].compatibilityAPI?_objectSpread$1(_objectSpread$1({},{}),this[r(4906)](t,n)):this[r(4906)](t,n)}},{key:e(4913),value:function(t){return this.data[t]}},{key:e(4914),value:function(t){var n=e,r=this[n(4913)](t);return!!(r&&Object[n(477)](r)||[])[n(932)]((function(t){var e=n;return r[t]&&Object[e(477)](r[t])[e(449)]>0}))}},{key:"toJSON",value:function(){return this.data}}]),r}(),postProcessor={processors:{},addPostProcessor:function(t){var e=nz;this[e(4915)][t[e(542)]]=t},handle:function(t,e,n,r,i){var s=nz,a=this;return t[s(604)]((function(t){var o=s;a[o(4915)][t]&&(e=a[o(4915)][t][o(682)](e,n,r,i))})),e}};function ownKeys$2(t,e){var n=nz,r=Object[n(477)](t);if(Object[n(423)]){var i=Object[n(423)](t);e&&(i=i[n(464)]((function(e){return Object[n(512)](t,e).enumerable}))),r[n(565)].apply(r,i)}return r}function _objectSpread$2(t){for(var e=nz,n=1;n1&&void 0!==arguments[1]?arguments[1]:{};return _classCallCheck2(this,r),e=n[i(429)](this),isIE10&&EventEmitter.call(_assertThisInitialized(e)),copy([i(4916),i(4917),i(4918),i(4919),i(4920),i(4921),i(4922)],t,_assertThisInitialized(e)),e[i(3645)]=s,void 0===e[i(3645)].keySeparator&&(e.options.keySeparator="."),e.logger=baseLogger[i(419)](i(4923)),e}return _createClass2(r,[{key:e(4924),value:function(t){t&&(this[e(479)]=t)}},{key:e(1674),value:function(t){var n=e,r=arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==t)return!1;var i=this.resolve(t,r);return i&&void 0!==i[n(4925)]}},{key:e(4926),value:function(t,n){var r=e,i=void 0!==n[r(4927)]?n[r(4927)]:this[r(3645)][r(4927)];void 0===i&&(i=":");var s=void 0!==n.keySeparator?n[r(4903)]:this.options[r(4903)],a=n.ns||this[r(3645)][r(4912)]||[],o=i&&t.indexOf(i)>-1,c=!(this[r(3645)][r(4928)]||n.keySeparator||this[r(3645)][r(4929)]||n[r(4927)]||looksLikeObjectPath(t,i,s));if(o&&!c){var l=t.match(this[r(4919)].nestingRegexp);if(l&&l[r(449)]>0)return{key:t,namespaces:a};var h=t[r(465)](i);(i!==s||i===s&&this[r(3645)].ns.indexOf(h[0])>-1)&&(a=h[r(1061)]()),t=h.join(s)}return typeof a===r(470)&&(a=[a]),{key:t,namespaces:a}}},{key:e(2078),value:function(t,n,i){var s=e,a=this;if("object"!==_typeof2(n)&&this.options.overloadTranslationOptionHandler&&(n=this[s(3645)][s(4930)](arguments)),n||(n={}),null==t)return"";Array[s(468)](t)||(t=[String(t)]);var o=void 0!==n[s(4931)]?n.returnDetails:this[s(3645)][s(4931)],c=void 0!==n.keySeparator?n[s(4903)]:this.options[s(4903)],l=this[s(4926)](t[t.length-1],n),h=l[s(447)],u=l.namespaces,d=u[u.length-1],f=n[s(4932)]||this[s(479)],p=n[s(4933)]||this[s(3645)].appendNamespaceToCIMode;if(f&&"cimode"===f[s(570)]()){if(p){var m=n[s(4927)]||this[s(3645)].nsSeparator;return o?(v[s(4925)]=""[s(475)](d)[s(475)](m)[s(475)](h),v):"".concat(d)[s(475)](m).concat(h)}return o?(v[s(4925)]=h,v):h}var v=this.resolve(t,n),_=v&&v.res,g=v&&v[s(4934)]||h,y=v&&v[s(4935)]||h,E=Object.prototype.toString[s(441)](_),T=["[object Number]",s(1313),s(1321)],I=void 0!==n[s(4936)]?n[s(4936)]:this.options.joinArrays,z=!this.i18nFormat||this[s(4921)][s(4937)],S=typeof _!==s(470)&&typeof _!==s(1403)&&"number"!=typeof _;if(z&&_&&S&&T[s(564)](E)<0&&(typeof I!==s(470)||E!==s(1307))){if(!n[s(4938)]&&!this[s(3645)][s(4938)]){!this.options.returnedObjectHandler&&this[s(4891)][s(1176)]("accessing an object - but returnObjects options is not enabled!");var x=this[s(3645)][s(4939)]?this.options[s(4939)](g,_,_objectSpread$2(_objectSpread$2({},n),{},{ns:u})):s(4940).concat(h," (").concat(this[s(479)],s(4941));return o?(v[s(4925)]=x,v):x}if(c){var b=E===s(1307),w=b?[]:{},C=b?y:g;for(var M in _)if(Object[s(425)].hasOwnProperty[s(429)](_,M)){var R=""[s(475)](C).concat(c).concat(M);w[M]=this[s(2078)](R,_objectSpread$2(_objectSpread$2({},n),{joinArrays:!1,ns:u})),w[M]===R&&(w[M]=_[M])}_=w}}else if(z&&typeof I===s(470)&&E===s(1307))(_=_.join(I))&&(_=this[s(4942)](_,t,n,i));else{var A=!1,D=!1,L=void 0!==n[s(2053)]&&"string"!=typeof n.count,P=r[s(4943)](n),O=L?this.pluralResolver.getSuffix(f,n[s(2053)],n):"",F=n[s(4944)[s(475)](O)]||n.defaultValue;!this.isValidLookup(_)&&P&&(A=!0,_=F),!this.isValidLookup(_)&&(D=!0,_=h);var N=(n.missingKeyNoValueFallbackToKey||this[s(3645)][s(4945)])&&D?void 0:_,U=P&&F!==_&&this.options.updateMissing;if(D||A||U){if(this[s(4891)][s(695)](s(U?4946:4947),f,d,h,U?F:_),c){var B=this[s(440)](h,_objectSpread$2(_objectSpread$2({},n),{},{keySeparator:!1}));B&&B[s(4925)]&&this[s(4891)][s(1176)](s(4948))}var k=[],G=this[s(4917)][s(4949)](this[s(3645)][s(4950)],n[s(4932)]||this.language);if("fallback"===this[s(3645)][s(4951)]&&G&&G[0])for(var V=0;V1&&void 0!==arguments[1]?arguments[1]:{};return typeof t===o(470)&&(t=[t]),t[o(604)]((function(t){var e=o;if(!c[e(4971)](n)){var h=c[e(4926)](t,l),u=h[e(447)];r=u;var d=h[e(4972)];c.options[e(4973)]&&(d=d[e(475)](c[e(3645)][e(4973)]));var f=void 0!==l[e(2053)]&&typeof l.count!==e(470),p=f&&!l.ordinal&&0===l[e(2053)]&&c[e(4918)][e(4974)](),m=void 0!==l[e(3371)]&&("string"==typeof l.context||typeof l[e(3371)]===e(458))&&""!==l[e(3371)],v=l[e(4975)]?l[e(4975)]:c.languageUtils[e(4952)](l[e(4932)]||c.language,l[e(4950)]);d[e(604)]((function(t){var o=e;c.isValidLookup(n)||(a=t,!checkedLoadedFor[""[o(475)](v[0],"-")[o(475)](t)]&&c.utils&&c[o(4922)][o(4976)]&&!c[o(4922)][o(4976)](a)&&(checkedLoadedFor[""[o(475)](v[0],"-")[o(475)](t)]=!0,c[o(4891)][o(1176)](o(4977).concat(r,'" for languages "')[o(475)](v.join(", "),o(4978)).concat(a,'" was not yet loaded'),o(4979))),v[o(604)]((function(e){var r=o;if(!c[r(4971)](n)){s=e;var a,h=[u];if(c[r(4921)]&&c[r(4921)][r(4980)])c[r(4921)][r(4980)](h,u,e,t,l);else{var d;f&&(d=c.pluralResolver[r(4981)](e,l[r(2053)],l));var v=""[r(475)](c[r(3645)][r(4982)],"zero");if(f&&(h[r(565)](u+d),p&&h[r(565)](u+v)),m){var _=""[r(475)](u)[r(475)](c.options[r(4983)])[r(475)](l[r(3371)]);h.push(_),f&&(h[r(565)](_+d),p&&h[r(565)](_+v))}}for(;a=h[r(1161)]();)!c.isValidLookup(n)&&(i=a,n=c[r(4906)](e,t,a,l))}})))}))}})),{res:n,usedKey:r,exactUsedKey:i,usedLng:s,usedNS:a}}},{key:"isValidLookup",value:function(t){var n=e;return!(void 0===t||!this[n(3645)].returnNull&&null===t||!this[n(3645)][n(4984)]&&""===t)}},{key:e(4906),value:function(t,n,r){var i=e,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this[i(4921)]&&this[i(4921)][i(4906)]?this.i18nFormat.getResource(t,n,r,s):this[i(4916)].getResource(t,n,r,s)}}],[{key:"hasDefaultValue",value:function(t){var n=e,r=n(4944);for(var i in t)if(Object[n(425)][n(492)][n(429)](t,i)&&r===i[n(4902)](0,r[n(449)])&&void 0!==t[i])return!0;return!1}}]),r}();function capitalize(t){return t[nz(620)](0).toUpperCase()+t.slice(1)}var LanguageUtil=function(){var t=nz;function e(t){var n=f;_classCallCheck2(this,e),this.options=t,this[n(4985)]=this.options[n(4985)]||!1,this[n(4891)]=baseLogger.create(n(4917))}return _createClass2(e,[{key:t(4986),value:function(e){var n=t;if(!e||e.indexOf("-")<0)return null;var r=e[n(465)]("-");return 2===r[n(449)]?null:(r.pop(),"x"===r[r[n(449)]-1][n(570)]()?null:this[n(4987)](r[n(549)]("-")))}},{key:t(4988),value:function(e){var n=t;if(!e||e[n(564)]("-")<0)return e;var r=e[n(465)]("-");return this[n(4987)](r[0])}},{key:t(4987),value:function(e){var n=t;if(typeof e===n(470)&&e.indexOf("-")>-1){var r=[n(4989),"hant",n(4990),n(4991),n(4992),n(4993),"arab"],i=e[n(465)]("-");return this[n(3645)][n(4994)]?i=i[n(679)]((function(t){return t.toLowerCase()})):2===i[n(449)]?(i[0]=i[0][n(570)](),i[1]=i[1][n(736)](),r[n(564)](i[1][n(570)]())>-1&&(i[1]=capitalize(i[1][n(570)]()))):3===i[n(449)]&&(i[0]=i[0][n(570)](),2===i[1][n(449)]&&(i[1]=i[1][n(736)]()),i[0]!==n(4995)&&2===i[2][n(449)]&&(i[2]=i[2][n(736)]()),r[n(564)](i[1][n(570)]())>-1&&(i[1]=capitalize(i[1].toLowerCase())),r[n(564)](i[2][n(570)]())>-1&&(i[2]=capitalize(i[2][n(570)]()))),i[n(549)]("-")}return this.options[n(4996)]||this[n(3645)][n(4994)]?e[n(570)]():e}},{key:t(4997),value:function(e){var n=t;return(this[n(3645)][n(1212)]===n(4998)||this.options[n(4999)])&&(e=this[n(4988)](e)),!this[n(4985)]||!this[n(4985)].length||this.supportedLngs[n(564)](e)>-1}},{key:t(5e3),value:function(e){var n,r=t,i=this;return e?(e.forEach((function(t){var e=f;if(!n){var r=i[e(4987)](t);i[e(3645)][e(4985)]&&!i.isSupportedCode(r)||(n=r)}})),!n&&this[r(3645)].supportedLngs&&e[r(604)]((function(t){var e=r;if(!n){var s=i[e(4988)](t);if(i[e(4997)](s))return n=s;n=i[e(3645)][e(4985)][e(932)]((function(t){if(0===t[e(564)](s))return t}))}})),n||(n=this[r(4949)](this[r(3645)][r(4950)])[0]),n):null}},{key:t(4949),value:function(e,n){var r=t;if(!e)return[];if(typeof e===r(432)&&(e=e(n)),typeof e===r(470)&&(e=[e]),"[object Array]"===Object.prototype[r(526)][r(441)](e))return e;if(!n)return e[r(435)]||[];var i=e[n];return i||(i=e[this[r(4986)](n)]),i||(i=e[this.formatLanguageCode(n)]),i||(i=e[this.getLanguagePartFromCode(n)]),i||(i=e[r(435)]),i||[]}},{key:t(4952),value:function(e,n){var r=t,i=this,s=this.getFallbackCodes(n||this[r(3645)][r(4950)]||[],e),a=[],o=function(t){var e=r;t&&(i[e(4997)](t)?a[e(565)](t):i[e(4891)][e(1176)](e(5001).concat(t)))};return typeof e===r(470)&&e[r(564)]("-")>-1?(this[r(3645)][r(1212)]!==r(4998)&&o(this[r(4987)](e)),this[r(3645)][r(1212)]!==r(4998)&&this.options.load!==r(5002)&&o(this[r(4986)](e)),this.options[r(1212)]!==r(5002)&&o(this.getLanguagePartFromCode(e))):"string"==typeof e&&o(this[r(4987)](e)),s[r(604)]((function(t){var e=r;a.indexOf(t)<0&&o(i[e(4987)](t))})),a}}]),e}(),sets=[{lngs:[nz(5003),"ak","am",nz(5004),"br",nz(5005),"gun","ln",nz(5006),"mg","mi","oc","pt",nz(5007),"tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an",nz(5008),"az","bg","bn","ca","da","de",nz(5009),"el","en","eo","es","et","eu","fi","fo",nz(5010),"fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb",nz(5011),"ml","mn","mr",nz(5012),nz(5013),"nb","ne","nl","nn","no","nso","pa","pap",nz(5014),"ps",nz(504),"rm",nz(5015),"se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja",nz(5016),"ka","km","ko","ky","lo","ms",nz(5017),"su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:[nz(5018)],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}},deprecatedJsonVersions=["v1","v2","v3"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5};function createRules(){var t={};return sets.forEach((function(e){var n=f;e[n(4975)][n(604)]((function(n){t[n]={numbers:e.nr,plurals:_rulesPluralsTypes[e.fc]}}))})),t}var PluralResolver=function(){var t=nz;function e(t){var n=f,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck2(this,e),this[n(4917)]=t,this[n(3645)]=r,this[n(4891)]=baseLogger[n(419)]("pluralResolver"),(!this[n(3645)][n(5019)]||"v4"===this[n(3645)].compatibilityJSON)&&(typeof Intl===n(430)||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger[n(819)]("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this[n(5020)]=createRules()}return _createClass2(e,[{key:"addRule",value:function(t,e){this.rules[t]=e}},{key:t(5021),value:function(e){var n=t,r=arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:{};if(this[n(4974)]())try{return new(Intl[n(508)])(e,{type:r.ordinal?n(462):n(481)})}catch(t){return}return this[n(5020)][e]||this[n(5020)][this.languageUtils[n(4988)](e)]}},{key:t(5022),value:function(e){var n=t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.getRule(e,r);return this[n(4974)]()?i&&i[n(453)]()[n(5023)][n(449)]>1:i&&i.numbers[n(449)]>1}},{key:t(5024),value:function(e,n){var r=t,i=arguments[r(449)]>2&&void 0!==arguments[2]?arguments[2]:{};return this[r(4956)](e,i).map((function(t){var e=r;return""[e(475)](n)[e(475)](t)}))}},{key:"getSuffixes",value:function(e){var n=t,r=this,i=arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:{},s=this[n(5021)](e,i);return s?this.shouldUseIntlApi()?s[n(453)]().pluralCategories[n(688)]((function(t,e){return suffixesOrder[t]-suffixesOrder[e]})).map((function(t){var e=n;return""[e(475)](r[e(3645)][e(5025)])[e(475)](t)})):s.numbers[n(679)]((function(t){return r.getSuffix(e,t,i)})):[]}},{key:"getSuffix",value:function(e,n){var r=t,i=arguments[r(449)]>2&&void 0!==arguments[2]?arguments[2]:{},s=this[r(5021)](e,i);return s?this[r(4974)]()?"".concat(this[r(3645)][r(5025)]).concat(s[r(460)](n)):this[r(5026)](s,n):(this[r(4891)][r(1176)](r(5027)[r(475)](e)),"")}},{key:t(5026),value:function(e,n){var r=t,i=this,s=e[r(5028)]?e.plurals(n):e.plurals(Math[r(694)](n)),a=e[r(5029)][s];this.options.simplifyPluralSuffix&&2===e[r(5029)][r(449)]&&1===e.numbers[0]&&(2===a?a=r(5030):1===a&&(a=""));var o=function(){var t=r;return i.options[t(5025)]&&a[t(526)]()?i[t(3645)][t(5025)]+a[t(526)]():a.toString()};return"v1"===this[r(3645)][r(5019)]?1===a?"":typeof a===r(458)?r(5031).concat(a.toString()):o():"v2"===this.options.compatibilityJSON||this[r(3645)].simplifyPluralSuffix&&2===e.numbers[r(449)]&&1===e[r(5029)][0]?o():this[r(3645)][r(5025)]&&s[r(526)]()?this.options[r(5025)]+s.toString():s.toString()}},{key:"shouldUseIntlApi",value:function(){return!deprecatedJsonVersions.includes(this.options.compatibilityJSON)}}]),e}();function ownKeys$3(t,e){var n=nz,r=Object.keys(t);if(Object[n(423)]){var i=Object[n(423)](t);e&&(i=i[n(464)]((function(e){var r=n;return Object.getOwnPropertyDescriptor(t,e)[r(433)]}))),r.push[n(441)](r,i)}return r}function _objectSpread$3(t){for(var e=nz,n=1;n0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck2(this,e),this[t(4891)]=baseLogger[t(419)]("interpolator"),this[t(3645)]=n,this[t(461)]=n[t(3704)]&&n[t(3704)][t(461)]||function(t){return t},this.init(n)}return _createClass2(e,[{key:t(2645),value:function(){var e=t,n=arguments[e(449)]>0&&void 0!==arguments[0]?arguments[0]:{};n[e(3704)]||(n[e(3704)]={escapeValue:!0});var r=n[e(3704)];this[e(5032)]=void 0!==r[e(5032)]?r[e(5032)]:escape2,this.escapeValue=void 0===r[e(5033)]||r[e(5033)],this[e(5034)]=void 0!==r[e(5034)]&&r[e(5034)],this.prefix=r[e(4889)]?regexEscape(r[e(4889)]):r[e(5035)]||"{{",this.suffix=r[e(5036)]?regexEscape(r.suffix):r[e(5037)]||"}}",this[e(5038)]=r.formatSeparator?r[e(5038)]:r.formatSeparator||",",this[e(5039)]=r.unescapeSuffix?"":r[e(5039)]||"-",this.unescapeSuffix=this[e(5039)]?"":r.unescapeSuffix||"",this[e(5040)]=r[e(5040)]?regexEscape(r[e(5040)]):r[e(5041)]||regexEscape(e(5042)),this[e(5043)]=r[e(5043)]?regexEscape(r.nestingSuffix):r[e(5044)]||regexEscape(")"),this[e(5045)]=r[e(5045)]?r[e(5045)]:r.nestingOptionsSeparator||",",this[e(5046)]=r[e(5046)]?r[e(5046)]:1e3,this[e(5047)]=void 0!==r.alwaysFormat&&r.alwaysFormat,this.resetRegExp()}},{key:t(1160),value:function(){var e=t;this[e(3645)]&&this.init(this[e(3645)])}},{key:t(5048),value:function(){var e=t,n=""[e(475)](this.prefix,e(5049))[e(475)](this[e(5036)]);this[e(885)]=new RegExp(n,"g");var r=""[e(475)](this.prefix)[e(475)](this[e(5039)],e(5049))[e(475)](this[e(5050)])[e(475)](this[e(5036)]);this.regexpUnescape=new RegExp(r,"g");var i="".concat(this[e(5040)],e(5049))[e(475)](this[e(5043)]);this[e(4963)]=new RegExp(i,"g")}},{key:t(4964),value:function(e,n,r,i){var s,a,o,c=t,l=this,h=this[c(3645)]&&this[c(3645)][c(3704)]&&this[c(3645)][c(3704)].defaultVariables||{};function u(t){var e=c;return t[e(448)](/\$/g,e(5051))}var d=function(t){var e=c;if(t[e(564)](l[e(5038)])<0){var s=getPathWithDefaults(n,h,t);return l[e(5047)]?l.format(s,void 0,r,_objectSpread$3(_objectSpread$3(_objectSpread$3({},i),n),{},{interpolationkey:t})):s}var a=t[e(465)](l[e(5038)]),o=a[e(1061)]()[e(772)](),u=a[e(549)](l[e(5038)]).trim();return l[e(461)](getPathWithDefaults(n,h,o),u,r,_objectSpread$3(_objectSpread$3(_objectSpread$3({},i),n),{},{interpolationkey:o}))};this[c(5048)]();var f=i&&i.missingInterpolationHandler||this[c(3645)][c(5052)],p=i&&i[c(3704)]&&void 0!==i.interpolation.skipOnVariables?i[c(3704)][c(4962)]:this.options[c(3704)][c(4962)];return[{regex:this.regexpUnescape,safeValue:function(t){return u(t)}},{regex:this.regexp,safeValue:function(t){var e=c;return l[e(5033)]?u(l[e(5032)](t)):u(t)}}].forEach((function(t){var n=c;for(o=0;s=t[n(5053)][n(601)](e);){var r=s[1][n(772)]();if(void 0===(a=d(r)))if(typeof f===n(432)){var h=f(e,s,i);a="string"==typeof h?h:""}else if(i&&i[n(492)](r))a="";else{if(p){a=s[0];continue}l[n(4891)][n(1176)](n(5054)[n(475)](r,n(5055))[n(475)](e)),a=""}else typeof a!==n(470)&&!l.useRawValueToEscape&&(a=makeString(a));var u=t.safeValue(a);if(e=e.replace(s[0],u),p?(t.regex[n(855)]+=a[n(449)],t[n(5053)].lastIndex-=s[0][n(449)]):t[n(5053)][n(855)]=0,++o>=l[n(5046)])break}})),e}},{key:t(4965),value:function(e,n){var r,i,s=t,a=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=_objectSpread$3({},o);function l(t,e){var n=s,r=this[n(5045)];if(t[n(564)](r)<0)return t;var i=t[n(465)](new RegExp("".concat(r,"[ ]*{"))),a="{"[n(475)](i[1]);t=i[0];var o=(a=this[n(4964)](a,c)).match(/'/g),l=a[n(522)](/"/g);(o&&o[n(449)]%2==0&&!l||l[n(449)]%2!=0)&&(a=a[n(448)](/'/g,'"'));try{c=JSON[n(1087)](a),e&&(c=_objectSpread$3(_objectSpread$3({},e),c))}catch(e){return this[n(4891)][n(1176)](n(5057).concat(t),e),""[n(475)](t)[n(475)](r)[n(475)](a)}return delete c[n(4944)],t}for(c[s(5056)]=!1,delete c.defaultValue;r=this[s(4963)][s(601)](e);){var h=[],u=!1;if(-1!==r[0].indexOf(this[s(5038)])&&!/{.*}/[s(467)](r[1])){var d=r[1].split(this[s(5038)])[s(679)]((function(t){return t[s(772)]()}));r[1]=d[s(1061)](),h=d,u=!0}if((i=n(l[s(429)](this,r[1][s(772)](),c),c))&&r[0]===e&&typeof i!==s(470))return i;typeof i!==s(470)&&(i=makeString(i)),!i&&(this.logger[s(1176)](s(5058)[s(475)](r[1]," for nesting ")[s(475)](e)),i=""),u&&(i=h[s(684)]((function(t,e){var n=s;return a[n(461)](t,e,o[n(4932)],_objectSpread$3(_objectSpread$3({},o),{},{interpolationkey:r[1][n(772)]()}))}),i[s(772)]())),e=e[s(448)](r[0],i),this[s(885)][s(855)]=0}return e}}]),e}();function ownKeys$4(t,e){var n=nz,r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object[n(423)](t);e&&(i=i[n(464)]((function(e){var r=n;return Object[r(512)](t,e)[r(433)]}))),r.push[n(441)](r,i)}return r}function _objectSpread$4(t){for(var e=nz,n=1;n-1){var i=t.split("(");n=i[0][e(570)]()[e(772)]();var s=i[1][e(4902)](0,i[1].length-1);if(n===e(5059)&&s[e(564)](":")<0)r[e(5059)]||(r[e(5059)]=s[e(772)]());else if("relativetime"===n&&s.indexOf(":")<0)r[e(1208)]||(r[e(1208)]=s[e(772)]());else s.split(";").forEach((function(t){var n=e;if(t){var i=_toArray(t.split(":")),s=i[0],a=i.slice(1).join(":")[n(772)]()[n(448)](/^'+|'+$/g,"");r[s[n(772)]()]||(r[s[n(772)]()]=a),"false"===a&&(r[s[n(772)]()]=!1),a===n(646)&&(r[s[n(772)]()]=!0),isNaN(a)||(r[s[n(772)]()]=parseInt(a,10))}}))}return{formatName:n,formatOptions:r}}function createCachedFormatter(t){var e={};return function(n,r,i){var s=r+JSON.stringify(i),a=e[s];return!a&&(a=t(r,i),e[s]=a),a(n)}}var Formatter=function(){var t=nz;function e(){var t=f,n=arguments[t(449)]>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck2(this,e),this[t(4891)]=baseLogger[t(419)](t(5060)),this[t(3645)]=n,this[t(5061)]={number:createCachedFormatter((function(e,n){var r=t,i=new(Intl[r(502)])(e,n);return function(t){return i[r(461)](t)}})),currency:createCachedFormatter((function(e,n){var r=t,i=new(Intl[r(502)])(e,_objectSpread$4(_objectSpread$4({},n),{},{style:r(5059)}));return function(t){return i[r(461)](t)}})),datetime:createCachedFormatter((function(e,n){var r=new(Intl[t(5062)])(e,_objectSpread$4({},n));return function(t){return r.format(t)}})),relativetime:createCachedFormatter((function(e,n){var r=t,i=new(Intl[r(5063)])(e,_objectSpread$4({},n));return function(t){var e=r;return i[e(461)](t,n[e(1208)]||"day")}})),list:createCachedFormatter((function(e,n){var r=new(Intl[t(5064)])(e,_objectSpread$4({},n));return function(t){return r.format(t)}}))},this[t(2645)](n)}return _createClass2(e,[{key:t(2645),value:function(e){var n=t,r=(arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}})[n(3704)];this[n(5038)]=r[n(5038)]?r.formatSeparator:r[n(5038)]||","}},{key:t(747),value:function(e,n){var r=t;this[r(5061)][e[r(570)]()[r(772)]()]=n}},{key:t(5065),value:function(e,n){var r=t;this[r(5061)][e[r(570)]().trim()]=createCachedFormatter(n)}},{key:t(461),value:function(e,n,r,i){var s=t,a=this;return n[s(465)](this.formatSeparator).reduce((function(t,e){var n=s,o=parseFormatStr(e),c=o[n(5066)],l=o.formatOptions;if(a[n(5061)][c]){var h=t;try{var u=i&&i[n(5067)]&&i[n(5067)][i[n(5068)]]||{},d=u[n(5069)]||u[n(4932)]||i[n(5069)]||i.lng||r;h=a.formats[c](t,d,_objectSpread$4(_objectSpread$4(_objectSpread$4({},l),i),u))}catch(t){a[n(4891)][n(1176)](t)}return h}return a[n(4891)][n(1176)](n(5070).concat(c)),t}),e)}}]),e}();function ownKeys$5(t,e){var n=nz,r=Object[n(477)](t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i[n(464)]((function(e){return Object[n(512)](t,e).enumerable}))),r[n(565)][n(441)](r,i)}return r}function _objectSpread$5(t){for(var e=nz,n=1;n3&&void 0!==arguments[3]?arguments[3]:{};return _classCallCheck2(this,r),s=n[a(429)](this),isIE10&&EventEmitter[a(429)](_assertThisInitialized(s)),s[a(5071)]=t,s[a(5072)]=e,s.services=i,s[a(4917)]=i[a(4917)],s[a(3645)]=o,s.logger=baseLogger.create(a(4920)),s[a(5073)]=[],s[a(5074)]=o[a(5074)]||10,s.readingCalls=0,s[a(5075)]=o[a(5075)]>=0?o[a(5075)]:5,s.retryTimeout=o[a(5076)]>=1?o[a(5076)]:350,s[a(545)]={},s[a(1279)]=[],s[a(5071)]&&s.backend[a(2645)]&&s.backend[a(2645)](i,o[a(5071)],o),s}return _createClass2(r,[{key:e(5077),value:function(t,n,r,i){var s=e,a=this,o={},c={},l={},h={};return t[s(604)]((function(t){var e=!0;n.forEach((function(n){var i=f,s=""[i(475)](t,"|")[i(475)](n);!r.reload&&a[i(5072)][i(4909)](t,n)?a[i(545)][s]=2:a[i(545)][s]<0||(1===a[i(545)][s]?void 0===c[s]&&(c[s]=!0):(a[i(545)][s]=1,e=!1,void 0===c[s]&&(c[s]=!0),void 0===o[s]&&(o[s]=!0),void 0===h[n]&&(h[n]=!0)))})),e||(l[t]=!0)})),(Object[s(477)](o)[s(449)]||Object[s(477)](c)[s(449)])&&this.queue[s(565)]({pending:c,pendingCount:Object[s(477)](c).length,loaded:{},errors:[],callback:i}),{toLoad:Object[s(477)](o),pending:Object.keys(c),toLoadLanguages:Object[s(477)](l),toLoadNamespaces:Object.keys(h)}}},{key:e(5078),value:function(t,n,r){var i=e,s=t.split("|"),a=s[0],o=s[1];n&&this[i(839)]("failedLoading",a,o,n),r&&this[i(5072)][i(5079)](a,o,r),this.state[t]=n?-1:2;var c={};this[i(1279)][i(604)]((function(e){var r=i;pushPath(e.loaded,[a],o),removePending(e,t),n&&e[r(656)].push(n),0===e[r(5080)]&&!e[r(438)]&&(Object[r(477)](e[r(5078)])[r(604)]((function(t){var n=r;c[t]||(c[t]={});var i=e[n(5078)][t];i[n(449)]&&i.forEach((function(e){void 0===c[t][e]&&(c[t][e]=!0)}))})),e[r(438)]=!0,e[r(656)].length?e[r(5081)](e[r(656)]):e.callback())})),this.emit(i(5078),c),this[i(1279)]=this.queue[i(464)]((function(t){return!t[i(438)]}))}},{key:e(3767),value:function(t,n,r){var i=e,s=this,a=arguments[i(449)]>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments[i(449)]>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,c=arguments[i(449)]>5?arguments[5]:void 0;return t[i(449)]?this[i(5082)]>=this[i(5074)]?void this[i(5073)].push({lng:t,ns:n,fcName:r,tried:a,wait:o,callback:c}):(this[i(5082)]++,this[i(5071)][r](t,n,(function(e,l){var h=i;if(s[h(5082)]--,s[h(5073)].length>0){var u=s[h(5073)][h(1061)]();s.read(u[h(4932)],u.ns,u[h(5083)],u[h(5084)],u.wait,u[h(5081)])}e&&l&&a2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this[r(5071)])return this[r(4891)].warn(r(5086)),a&&a();typeof t===r(470)&&(t=this[r(4917)].toResolveHierarchy(t)),"string"==typeof n&&(n=[n]);var o=this[r(5077)](t,n,s,a);if(!o.toLoad.length)return o.pending.length||a(),null;o[r(5087)][r(604)]((function(t){i[r(5088)](t)}))}},{key:"load",value:function(t,e,n){this.prepareLoading(t,e,{},n)}},{key:e(5089),value:function(t,n,r){this[e(5085)](t,n,{reload:!0},r)}},{key:e(5088),value:function(t){var n=e,r=this,i=arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:"",s=t[n(465)]("|"),a=s[0],o=s[1];this[n(3767)](a,o,n(3767),void 0,void 0,(function(e,s){var c=n;e&&r[c(4891)][c(1176)]("".concat(i,c(5090))[c(475)](o,c(5091))[c(475)](a," failed"),e),!e&&s&&r[c(4891)][c(695)](""[c(475)](i,c(5092))[c(475)](o," for language ").concat(a),s),r[c(5078)](t,e,s)}))}},{key:e(4954),value:function(t,n,r,i,s){var a=e,o=arguments[a(449)]>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this[a(5093)][a(4922)][a(4976)]&&!this[a(5093)].utils[a(4976)](n)?this[a(4891)][a(1176)](a(5094)[a(475)](r,a(5095))[a(475)](n,'" was not yet loaded'),a(4979)):null!=r&&""!==r&&(this.backend&&this[a(5071)][a(419)]&&this[a(5071)][a(419)](t,n,r,i,null,_objectSpread$5(_objectSpread$5({},o),{},{isUpdate:s})),t&&t[0]&&this.store[a(5096)](t[0],n,r,i))}}]),r}();function get(){var t=nz;return{debug:!1,initImmediate:!0,ns:[t(4381)],defaultNS:["translation"],fallbackLng:[t(5009)],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:t(515),preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:t(5097),saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var n=t,r={};if(_typeof2(e[1])===n(469)&&(r=e[1]),typeof e[1]===n(470)&&(r[n(4944)]=e[1]),"string"==typeof e[2]&&(r[n(5098)]=e[2]),_typeof2(e[2])===n(469)||_typeof2(e[3])===n(469)){var i=e[3]||e[2];Object[n(477)](i).forEach((function(t){r[t]=i[t]}))}return r},interpolation:{escapeValue:!0,format:function(t,e,n,r){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:t(5042),nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function transformOptions(t){var e=nz;return typeof t.ns===e(470)&&(t.ns=[t.ns]),typeof t[e(4950)]===e(470)&&(t[e(4950)]=[t[e(4950)]]),typeof t[e(4973)]===e(470)&&(t[e(4973)]=[t[e(4973)]]),t.supportedLngs&&t[e(4985)][e(564)]("cimode")<0&&(t[e(4985)]=t[e(4985)][e(475)]([e(5099)])),t}function ownKeys$6(t,e){var n=nz,r=Object[n(477)](t);if(Object[n(423)]){var i=Object[n(423)](t);e&&(i=i[n(464)]((function(e){return Object[n(512)](t,e).enumerable}))),r[n(565)][n(441)](r,i)}return r}function _objectSpread$6(t){for(var e=nz,n=1;n0&&void 0!==arguments[0]?arguments[0]:{},s=arguments[e(449)]>1?arguments[1]:void 0;if(_classCallCheck2(this,r),t=n[e(429)](this),isIE10&&EventEmitter[e(429)](_assertThisInitialized(t)),t[e(3645)]=transformOptions(i),t.services={},t[e(4891)]=baseLogger,t[e(5100)]={external:[]},bindMemberFunctions(_assertThisInitialized(t)),s&&!t[e(5101)]&&!i[e(5102)]){if(!t[e(3645)][e(5103)])return t[e(2645)](i,s),_possibleConstructorReturn(t,_assertThisInitialized(t));setTimeout((function(){t.init(i,s)}),0)}return t}return _createClass2(r,[{key:e(2645),value:function(){var t=e,n=this,r=arguments[t(449)]>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments[t(449)]>1?arguments[1]:void 0;"function"==typeof r&&(i=r,r={}),!r.defaultNS&&!1!==r[t(4912)]&&r.ns&&("string"==typeof r.ns?r[t(4912)]=r.ns:r.ns[t(564)](t(4381))<0&&(r[t(4912)]=r.ns[0]));var s=get();function a(e){return e?typeof e===t(432)?new e:e:null}if(this[t(3645)]=_objectSpread$6(_objectSpread$6(_objectSpread$6({},s),this.options),transformOptions(r)),"v1"!==this.options.compatibilityAPI&&(this[t(3645)][t(3704)]=_objectSpread$6(_objectSpread$6({},s[t(3704)]),this[t(3645)][t(3704)])),void 0!==r.keySeparator&&(this.options[t(4928)]=r.keySeparator),void 0!==r[t(4927)]&&(this[t(3645)][t(4929)]=r.nsSeparator),!this[t(3645)].isClone){var o;this[t(5100)].logger?baseLogger[t(2645)](a(this[t(5100)][t(4891)]),this[t(3645)]):baseLogger[t(2645)](null,this.options),this[t(5100)][t(5060)]?o=this[t(5100)][t(5060)]:"undefined"!=typeof Intl&&(o=Formatter);var c=new LanguageUtil(this[t(3645)]);this[t(5072)]=new ResourceStore(this[t(3645)][t(5104)],this.options);var l=this.services;l.logger=baseLogger,l[t(4916)]=this.store,l.languageUtils=c,l[t(4918)]=new PluralResolver(c,{prepend:this[t(3645)][t(4982)],compatibilityJSON:this[t(3645)][t(5019)],simplifyPluralSuffix:this[t(3645)].simplifyPluralSuffix}),o&&(!this[t(3645)].interpolation[t(461)]||this[t(3645)].interpolation[t(461)]===s[t(3704)][t(461)])&&(l[t(5060)]=a(o),l.formatter[t(2645)](l,this[t(3645)]),this.options[t(3704)].format=l[t(5060)][t(461)][t(511)](l[t(5060)])),l.interpolator=new Interpolator(this.options),l.utils={hasLoadedNamespace:this.hasLoadedNamespace[t(511)](this)},l.backendConnector=new Connector(a(this.modules[t(5071)]),l.resourceStore,l,this[t(3645)]),l[t(4920)].on("*",(function(e){for(var r=t,i=arguments[r(449)],s=new Array(i>1?i-1:0),a=1;a1?i-1:0),a=1;a0&&h[0]!==t(5009)&&(this[t(3645)][t(4932)]=h[0])}!this.services[t(5105)]&&!this[t(3645)][t(4932)]&&this.logger[t(1176)](t(5108)),[t(4906),t(4909),t(4911),"getDataByLanguage"][t(604)]((function(t){n[t]=function(){var e;return(e=n[f(5072)])[t].apply(e,arguments)}})),[t(5096),t(4907),t(5079),"removeResourceBundle"][t(604)]((function(t){n[t]=function(){var e,r=f;return(e=n.store)[t][r(441)](e,arguments),n}}));var u=defer(),d=function(){var e=t,r=function(t,e){var r=f;n[r(5101)]&&!n[r(5109)]&&n[r(4891)][r(1176)]("init: i18next is already initialized. You should call init just once!"),n[r(5101)]=!0,n[r(3645)].isClone||n[r(4891)][r(695)](r(5110),n.options),n[r(839)]("initialized",n.options),u[r(440)](e),i(t,e)};if(n[e(5111)]&&"v1"!==n[e(3645)][e(4958)]&&!n.isInitialized)return r(null,n.t[e(511)](n));n[e(4924)](n[e(3645)][e(4932)],r)};return this[t(3645)][t(5104)]||!this[t(3645)][t(5103)]?d():setTimeout(d,0),u}},{key:"loadResources",value:function(t){var n=e,r=this,i=arguments[n(449)]>1&&void 0!==arguments[1]?arguments[1]:noop,s=typeof t===n(470)?t:this.language;if(typeof t===n(432)&&(i=t),!this[n(3645)][n(5104)]||this[n(3645)][n(5112)]){if(s&&s.toLowerCase()===n(5099))return i();var a=[],o=function(t){var e=n;t&&r[e(5093)][e(4917)][e(4952)](t)[e(604)]((function(t){var n=e;a.indexOf(t)<0&&a[n(565)](t)}))};if(s)o(s);else this[n(5093)].languageUtils[n(4949)](this[n(3645)][n(4950)]).forEach((function(t){return o(t)}));this.options.preload&&this.options.preload[n(604)]((function(t){return o(t)})),this[n(5093)][n(4920)][n(1212)](a,this[n(3645)].ns,(function(t){var e=n;t||r.resolvedLanguage||!r[e(479)]||r[e(5113)](r[e(479)]),i(t)}))}else i(null)}},{key:"reloadResources",value:function(t,n,r){var i=e,s=defer();return t||(t=this[i(5111)]),n||(n=this[i(3645)].ns),r||(r=noop),this.services[i(4920)][i(5089)](t,n,(function(t){s[i(440)](),r(t)})),s}},{key:e(5114),value:function(t){var n=e;if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error(n(5115));return t[n(452)]===n(5071)&&(this[n(5100)].backend=t),(t[n(452)]===n(4891)||t[n(695)]&&t.warn&&t[n(819)])&&(this[n(5100)].logger=t),"languageDetector"===t.type&&(this[n(5100)][n(5105)]=t),t[n(452)]===n(4921)&&(this[n(5100)][n(4921)]=t),t[n(452)]===n(5116)&&postProcessor[n(5117)](t),t[n(452)]===n(5060)&&(this[n(5100)].formatter=t),t.type===n(5118)&&this.modules[n(5107)].push(t),this}},{key:e(5113),value:function(t){var n=e;if(t&&this.languages&&!([n(5099),n(5009)][n(564)](t)>-1))for(var r=0;r-1)&&this.store[n(4914)](i)){this.resolvedLanguage=i;break}}}},{key:e(4924),value:function(t,n){var r=e,i=this;this[r(5119)]=t;var s=defer();this[r(839)](r(5120),t);var a=function(t){var e=r;i.language=t,i.languages=i.services[e(4917)].toResolveHierarchy(t),i[e(5121)]=void 0,i[e(5113)](t)},o=function(e){var o=r;t||e||!i[o(5093)][o(5105)]||(e=[]);var c=typeof e===o(470)?e:i[o(5093)].languageUtils.getBestMatchFromCodes(e);c&&(!i[o(479)]&&a(c),i[o(4923)][o(479)]||i[o(4923)][o(4924)](c),i[o(5093)][o(5105)]&&i[o(5093)][o(5105)].cacheUserLanguage(c)),i[o(5123)](c,(function(t){!function(t,e){var o=r;e?(a(e),i[o(4923)][o(4924)](e),i[o(5119)]=void 0,i[o(839)](o(5122),e),i.logger[o(695)](o(5122),e)):i[o(5119)]=void 0,s[o(440)]((function(){return i.t.apply(i,arguments)})),n&&n(t,(function(){var t=o;return i.t[t(441)](i,arguments)}))}(t,c)}))};return t||!this[r(5093)].languageDetector||this[r(5093)][r(5105)].async?!t&&this[r(5093)][r(5105)]&&this.services[r(5105)][r(1143)]?this[r(5093)][r(5105)][r(5124)](o):o(t):o(this.services[r(5105)][r(5124)]()),s}},{key:e(5125),value:function(t,n,r){var i=e,s=this,a=function t(e,n){var i,a=f;if(_typeof2(n)!==a(469)){for(var o=arguments.length,c=new Array(o>2?o-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this[n(5101)])return this.logger[n(1176)](n(5128),this[n(5111)]),!1;if(!this[n(5111)]||!this[n(5111)][n(449)])return this[n(4891)][n(1176)](n(5129),this[n(5111)]),!1;var s=this[n(5121)]||this[n(5111)][0],a=!!this[n(3645)]&&this[n(3645)][n(4950)],o=this.languages[this[n(5111)].length-1];if(s[n(570)]()===n(5099))return!0;var c=function(t,e){var i=n,s=r.services[i(4920)].state[""[i(475)](t,"|").concat(e)];return-1===s||2===s};if(i.precheck){var l=i[n(5130)](this,c);if(void 0!==l)return l}return!!this[n(4909)](s,t)||(!(this[n(5093)][n(4920)][n(5071)]&&(!this[n(3645)][n(5104)]||this[n(3645)][n(5112)]))||!(!c(s,t)||a&&!c(o,t)))}},{key:e(5131),value:function(t,n){var r=e,i=this,s=defer();return this.options.ns?("string"==typeof t&&(t=[t]),t[r(604)]((function(t){var e=r;i[e(3645)].ns[e(564)](t)<0&&i[e(3645)].ns[e(565)](t)})),this[r(5123)]((function(t){s[r(440)](),n&&n(t)})),s):(n&&n(),Promise[r(440)]())}},{key:e(5132),value:function(t,n){var r=e,i=defer();typeof t===r(470)&&(t=[t]);var s=this[r(3645)][r(5133)]||[],a=t[r(464)]((function(t){return s[r(564)](t)<0}));return a[r(449)]?(this[r(3645)][r(5133)]=s.concat(a),this[r(5123)]((function(t){i[r(440)](),n&&n(t)})),i):(n&&n(),Promise[r(440)]())}},{key:"dir",value:function(t){var n=e;return t||(t=this[n(5121)]||(this[n(5111)]&&this.languages[n(449)]>0?this[n(5111)][0]:this[n(479)])),t?["ar",n(5135),"sqr","ssh","xaa",n(5136),n(5137),n(5138),n(5139),"abv",n(5140),n(5141),"acw",n(5142),n(5143),n(5144),n(5145),n(5146),n(5147),"afb",n(5148),n(5149),"apd","arb",n(5150),n(5151),"ary",n(5152),n(5153),"avl",n(5154),"ayl","ayn","ayp",n(5155),n(5156),"he","iw","ps","pbt",n(5157),"pst",n(5158),n(5159),"ug","ur",n(5160),n(5161),"yih","ji","yi",n(5162),n(5163),n(5164),"fa","jpr","peo",n(5165),n(5166),"dv",n(5167),"ckb"][n(564)](this[n(5093)][n(4917)][n(4988)](t))>-1||t[n(570)]()[n(564)]("-arab")>1?n(5134):"ltr":n(5134)}},{key:e(5168),value:function(){var t=e,n=this,i=arguments[t(449)]>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments[t(449)]>1&&void 0!==arguments[1]?arguments[1]:noop,a=_objectSpread$6(_objectSpread$6(_objectSpread$6({},this[t(3645)]),i),{isClone:!0}),o=new r(a);return(void 0!==i.debug||void 0!==i[t(4889)])&&(o[t(4891)]=o[t(4891)][t(1014)](i)),[t(5072),t(5093),"language"].forEach((function(t){o[t]=n[t]})),o[t(5093)]=_objectSpread$6({},this.services),o[t(5093)][t(4922)]={hasLoadedNamespace:o[t(4976)][t(511)](o)},o[t(4923)]=new Translator(o[t(5093)],o[t(3645)]),o[t(4923)].on("*",(function(e){for(var n=t,r=arguments[n(449)],i=new Array(r>1?r-1:0),s=1;s0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}));var instance=I18n.createInstance();instance.createInstance=I18n[nz(5169)];var createInstance=instance[nz(5169)],init=instance[nz(2645)],loadResources=instance[nz(5123)],reloadResources=instance[nz(5170)],use=instance[nz(5114)],changeLanguage=instance.changeLanguage,getFixedT=instance[nz(5125)],t=instance.t,exists=instance[nz(1674)],setDefaultNamespace=instance[nz(5127)],hasLoadedNamespace=instance.hasLoadedNamespace,loadNamespaces=instance[nz(5131)],loadLanguages=instance[nz(5132)],i18next_default=instance,import_lodash=__toESM(require_lodash(),1);function mitt_default(t){return{all:t=t||new Map,on:function(e,n){var r=f,i=t.get(e);i?i[r(565)](n):t[r(540)](e,[n])},off:function(e,n){var r=f,i=t.get(e);i&&(n?i[r(690)](i[r(564)](n)>>>0,1):t.set(e,[]))},emit:function(e,n){var r=f,i=t[r(427)](e);i&&i[r(497)]()[r(679)]((function(t){t(n)})),(i=t[r(427)]("*"))&&i[r(497)]()[r(679)]((function(t){t(e,n)}))}}}var MenuTypeEnums=(t=>{var e=nz;return t[t[e(5171)]=1]="ClickEvent",t[t[e(5172)]=2]="Popup",t[t[e(5173)]=3]=e(5173),t[t[e(5174)]=4]=e(5174),t})(MenuTypeEnums||{}),ToolbarMenuId=(t=>{var e=nz;return t.HomeView="HomeView",t[e(5175)]=e(5175),t[e(5176)]="Measure",t.MeasureDistance=e(5177),t[e(5178)]=e(5178),t[e(5179)]=e(5179),t[e(5180)]=e(5180),t[e(5181)]=e(5181),t[e(5182)]=e(5182),t[e(5183)]="Arrow",t[e(5184)]=e(5185),t[e(5186)]="CloudRect",t[e(5187)]=e(5188),t[e(5189)]=e(5190),t.MarkupEllipse="Ellipse",t[e(5191)]=e(5192),t.MarkupDot=e(4264),t[e(5193)]=e(5194),t[e(5195)]="X",t[e(5196)]="StrokeStyle",t[e(5197)]="LineWidth",t[e(5198)]=e(5199),t[e(5200)]=e(5201),t[e(5202)]=e(5203),t.MarkupFontSize=e(5204),t.MarkupFontSize14=e(5205),t[e(5206)]=e(5207),t[e(5208)]=e(5209),t.MarkupClear="MarkupClear",t[e(5210)]=e(5210),t[e(5211)]=e(5211),t[e(5212)]=e(5212),t[e(5213)]=e(5213),t.AxisSectionPlane="AxisSectionPlane",t[e(5214)]="BimTree",t[e(5215)]=e(5215),t[e(5216)]="Annotation",t[e(5217)]=e(5217),t.Settings=e(5218),t[e(5219)]="Compared",t[e(5220)]=e(5220),t.Fullscreen=e(5221),t[e(5222)]="SceneClear",t[e(5223)]=e(5223),t[e(5224)]=e(5224),t})(ToolbarMenuId||{}),Toolbar2=class{constructor(t,e,n=[...GROUP_CONFIG]){var r=nz;this[r(5225)]=t,this[r(5226)]=e,this[r(5227)]=n,this.menuList=new Map,this[r(2645)]()}init(){var t,e=nz;const n=document[e(538)](e(539));n[e(4871)][e(747)]("toolbar"),this.groupConfig[e(604)](((t,r)=>{var i=e;const s=document[i(538)](i(539));s[i(4871)][i(747)](i(5228));const a=document[i(538)](i(539));a[i(4871)].add(i(5229)),t[i(604)]((t=>{var e=i;const n=(0,import_lodash[e(427)])(this.menuConfig,t);if(n&&!1!==n[e(2122)]){const r=this[e(5230)](this[e(5225)],t,n);s[e(591)](r[e(5231)])}})),s[i(5232)]()&&(r&&n[i(591)](a),n[i(591)](s))})),this[e(5231)]=n,null==(t=this.bimViewer[e(5233)])||t[e(591)](n),n[e(5234)]=t=>{t[e(3406)]()}}[nz(5230)](t,e,n,r){var i=nz;const s=new ToolbarMenu(t,this,e,n,r);if(this[i(5235)][i(540)](e,s),n[i(1602)]){const e=document[i(538)](i(539));e[i(4871)].add(i(5236));const r=document[i(538)](i(539));r[i(4871)][i(747)](i(5237)),e.appendChild(r),(0,import_lodash[i(1524)])(n.children,((e,n)=>{var a=i;if(e&&!1!==e.visible){const i=this[a(5230)](t,n,e,s);r.appendChild(i[a(5231)])}})),s[i(5231)][i(591)](e)}return s}[nz(5238)](t,e){var n=nz;(0,import_lodash[n(501)])(this.menuConfig[t],e),this[n(5239)]()}[nz(5240)](t){var e=nz;(0,import_lodash.forEach)(t,(({menuId:t,config:e})=>{var n=f;(0,import_lodash[n(501)])(this[n(5226)][t],e)})),this[e(5239)]()}addMenu(t,e,n){var r=nz;if((0,import_lodash.keys)(this.menuConfig)[r(667)](t))log[r(819)](r(5241),t,r(5242));else{if((0,import_lodash[r(501)])(this[r(5226)],{[t]:e}),n){const[e,i]=n;if(e>this[r(5227)][r(449)]-1)this.groupConfig=(0,import_lodash.concat)(this[r(5227)],[[t]]);else{const n=this[r(5227)][e];this[r(5227)][e]=i>n[r(449)]-1?(0,import_lodash[r(475)])(n,t):(0,import_lodash[r(475)])((0,import_lodash[r(1399)])(n,i),t,(0,import_lodash[r(1496)])(n,n[r(449)]-i))}}else this[r(5227)]=(0,import_lodash[r(475)])(this[r(5227)],[[t]]);this[r(5239)]()}}[nz(5239)](){this[nz(1725)](),this.init()}show(){var t=nz;this[t(5231)]&&(this[t(5231)][t(590)][t(3368)]="")}hide(){var t=nz;this[t(5231)]&&(this[t(5231)][t(590)][t(3368)]=t(3833))}destroy(){var t=nz;this[t(5231)]&&this[t(5231)].remove(),this[t(5231)]=void 0,this.menuList[t(750)]()}},ToolbarMenu=class{constructor(t,e,n,r,i){var s=nz;this[s(5225)]=t,this.toolbar=e,this[s(5243)]=n,this[s(5244)]=mitt_default(),this[s(5245)]=r[s(5246)]||!1,this[s(5231)]=r.customElement&&r[s(5247)](t,this[s(5243)],r)||this[s(5248)](t,this.menuId,r),this[s(5244)].on(s(5249),(e=>{var n=s;e?(this[n(5231)][n(4871)].add(n(5245)),(0,import_lodash.forEach)(r[n(5250)],(t=>{var e,r=n;const i=null==(e=this[r(5251)])?void 0:e[r(5235)][r(427)](t);i&&i[r(5245)]&&i[r(5252)](!1)})),r[n(5253)]&&r[n(5253)](t)):(this[n(5231)].classList[n(1204)](n(5245)),r[n(5254)]&&r[n(5254)](t)),this.element.firstChild instanceof HTMLElement&&setIcon(this[n(5231)][n(5255)][n(4871)],r[n(5256)],this[n(5245)]),i&&i.setActive(e)})),this[s(5231)].onclick=e=>{var n=s;switch(e.stopPropagation(),r.type){case 1:r[n(5257)]&&r[n(5257)](t,this[n(5251)],e);break;case 4:r.onClick&&r[n(5257)](t,this[n(5251)],e),this[n(5245)]=!this.active,this[n(5244)][n(839)](n(5249),this[n(5245)])}}}[nz(5248)](e,n,r){var i=nz;const s=document[i(538)](i(539));s.id=n,s[i(4871)][i(747)]("toolbar-menu"),r.defaultActive&&s.classList[i(747)]("active"),r[i(1602)]&&s[i(4871)][i(747)](i(5258));const{default:a=i(5259),iconFont:o=ICON_FONT_CLASS}=r[i(5256)];return s[i(5260)]=i(5261)+o+" "+a+'">
',s[i(5262)]=t(r[i(5263)]),s.innerHTML+=i(5264)+s.title+i(5265),s}[nz(5252)](t){var e=nz;this.active=t,this[e(5244)][e(839)](e(5249),this.active)}},MarkupType=(t=>{var e=nz;return t[e(5266)]=e(5267),t[e(5192)]=e(5268),t.CloudLine=e(5269),t[e(5270)]=e(5271),t[e(4264)]=e(5272),t[e(5273)]=e(5274),t[e(5188)]="PolylineMarkup",t[e(5275)]=e(5276),t[e(5194)]=e(5277),t.X=e(5278),t})(MarkupType||{}),_changeEvent={type:nz(5279)},_startEvent={type:nz(725)},_endEvent={type:"end"},OrbitControls=class extends EventDispatcher{constructor(t,e){var n=nz;super(),this[n(469)]=t,this[n(5280)]=e,this[n(5280)].style[n(5281)]=n(3833),this[n(2407)]=!0,this[n(573)]=new Vector3,this.minDistance=0,this[n(3926)]=1/0,this[n(5282)]=0,this[n(5283)]=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this[n(5284)]=!1,this[n(5285)]=.05,this[n(5286)]=!0,this[n(5287)]=1,this.enableRotate=!0,this[n(5288)]=1,this[n(5289)]=!0,this[n(5290)]=1,this.screenSpacePanning=!0,this[n(5291)]=7,this[n(5292)]=!1,this[n(5293)]=2,this.keys={LEFT:n(5294),UP:n(5295),RIGHT:n(5296),BOTTOM:n(5297)},this.mouseButtons={LEFT:MOUSE[n(5298)],MIDDLE:MOUSE[n(5299)],RIGHT:MOUSE[n(5300)]},this[n(4328)]={ONE:TOUCH[n(5298)],TWO:TOUCH[n(5301)]},this[n(5302)]=this[n(573)].clone(),this[n(5303)]=this[n(469)][n(2065)][n(1014)](),this[n(5304)]=this[n(469)][n(2397)],this[n(5305)]=null,this[n(5306)]=function(){return o[n(2042)]},this[n(5307)]=function(){return o[n(2043)]},this[n(5308)]=function(){var t=n;return this[t(469)].position[t(2038)](this[t(573)])},this[n(5309)]=function(t){var e=n;t[e(808)](e(4615),q),this[e(5305)]=t},this.saveState=function(){var t=n;r.target0[t(1867)](r[t(573)]),r[t(5303)].copy(r.object.position),r[t(5304)]=r[t(469)].zoom},this[n(1160)]=function(){var t=n;r[t(573)][t(1867)](r[t(5302)]),r[t(469)][t(2065)][t(1867)](r[t(5303)]),r[t(469)][t(2397)]=r[t(5304)],r.object.updateProjectionMatrix(),r[t(827)](_changeEvent),r[t(1067)](),s=i[t(5310)]},this[n(1067)]=function(){var e=n;const d=new Vector3,f=(new Quaternion)[e(5311)](t.up,new Vector3(0,1,0)),p=f[e(1014)]()[e(1465)](),m=new Vector3,v=new Quaternion,_=2*Math.PI;return function(){var t=e;const g=r[t(469)][t(2065)];var y;d[t(1867)](g)[t(909)](r[t(573)]),d.applyQuaternion(f),o[t(2110)](d),r[t(5292)]&&s===i[t(5310)]&&x((y=n,2*Math.PI/60/60*r[y(5293)])),r.enableDamping?(o.theta+=c[t(2043)]*r.dampingFactor,o[t(2042)]+=c[t(2042)]*r[t(5285)]):(o[t(2043)]+=c[t(2043)],o.phi+=c[t(2042)]);let E=r[t(5312)],T=r.maxAzimuthAngle;return isFinite(E)&&isFinite(T)&&(E<-Math.PI?E+=_:E>Math.PI&&(E-=_),T<-Math.PI?T+=_:T>Math.PI&&(T-=_),o[t(2043)]=E<=T?Math[t(486)](E,Math.min(T,o[t(2043)])):o.theta>(E+T)/2?Math[t(486)](E,o[t(2043)]):Math[t(563)](T,o[t(2043)])),o[t(2042)]=Math[t(486)](r[t(5313)],Math[t(563)](r[t(5314)],o.phi)),o[t(4116)](),o[t(2041)]*=l,o[t(2041)]=Math[t(486)](r.minDistance,Math[t(563)](r[t(3926)],o[t(2041)])),!0===r[t(5284)]?r[t(573)][t(1870)](h,r[t(5285)]):r.target[t(747)](h),d[t(2039)](o),d.applyQuaternion(p),g[t(1867)](r[t(573)]).add(d),r[t(469)][t(2080)](r[t(573)]),!0===r[t(5284)]?(c[t(2043)]*=1-r[t(5285)],c.phi*=1-r[t(5285)],h.multiplyScalar(1-r[t(5285)])):(c[t(540)](0,0,0),h[t(540)](0,0,0)),l=1,!!(u||m.distanceToSquared(r[t(469)][t(2065)])>a||8*(1-v[t(1879)](r[t(469)][t(2128)]))>a)&&(r[t(827)](_changeEvent),m.copy(r.object[t(2065)]),v[t(1867)](r[t(469)][t(2128)]),u=!1,!0)}}(),this[n(1979)]=function(){var t=n;r[t(5280)][t(1716)](t(5315),W),r[t(5280)].removeEventListener(t(5316),k),r[t(5280)].removeEventListener(t(5317),j),r.domElement[t(1716)](t(5318),H),r[t(5280)][t(1716)](t(5319),G),r[t(5280)][t(1716)](t(5320),V),null!==r._domElementKeyEvents&&r[t(5305)][t(1716)]("keydown",q)};const r=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=i[n(5310)];const a=1e-6,o=new Spherical,c=new Spherical;let l=1;const h=new Vector3;let u=!1;const d=new Vector2,p=new Vector2,m=new Vector2,v=new Vector2,_=new Vector2,g=new Vector2,y=new Vector2,E=new Vector2,T=new Vector2,I=[],z={};function S(){var t=n;return Math[t(428)](.95,r[t(5287)])}function x(t){c[n(2043)]-=t}function b(t){c[n(2042)]-=t}const w=function(){const t=new Vector3;return function(e,n){var r=f;t[r(2048)](n,0),t.multiplyScalar(-e),h[r(747)](t)}}(),C=function(){const t=new Vector3;return function(e,n){var i=f;!0===r[i(5321)]?t[i(2048)](n,1):(t[i(2048)](n,0),t[i(2035)](r[i(469)].up,t)),t[i(1878)](e),h.add(t)}}(),M=function(){const t=new Vector3;return function(e,n){var i=f;const s=r[i(5280)];if(r[i(469)][i(2390)]){const a=r[i(469)][i(2065)];t[i(1867)](a).sub(r.target);let o=t[i(449)]();o*=Math[i(2402)](r[i(469)][i(2392)]/2*Math.PI/180),w(2*e*o/s.clientHeight,r[i(469)][i(1963)]),C(2*n*o/s[i(4809)],r[i(469)][i(1963)])}else r[i(469)].isOrthographicCamera?(w(e*(r[i(469)][i(935)]-r[i(469)][i(683)])/r[i(469)][i(2397)]/s[i(5322)],r.object[i(1963)]),C(n*(r[i(469)].top-r[i(469)][i(2652)])/r[i(469)][i(2397)]/s[i(4809)],r[i(469)].matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}}();function R(t){var e=n;r[e(469)][e(2390)]?l/=t:r[e(469)][e(2649)]?(r.object[e(2397)]=Math[e(486)](r[e(5282)],Math[e(563)](r[e(5283)],r[e(469)][e(2397)]*t)),r.object[e(2396)](),u=!0):(console[e(1176)]("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r[e(5286)]=!1)}function A(t){var e=n;r[e(469)][e(2390)]?l*=t:r[e(469)][e(2649)]?(r[e(469)][e(2397)]=Math[e(486)](r.minZoom,Math[e(563)](r[e(5283)],r.object.zoom/t)),r[e(469)].updateProjectionMatrix(),u=!0):(console.warn(e(5323)),r[e(5286)]=!1)}function D(t){var e=n;d.set(t[e(4329)],t[e(4326)])}function L(t){var e=n;v.set(t[e(4329)],t[e(4326)])}function P(){var t=n;if(1===I[t(449)])d.set(I[0][t(5328)],I[0][t(5329)]);else{const e=.5*(I[0][t(5328)]+I[1][t(5328)]),n=.5*(I[0].pageY+I[1].pageY);d.set(e,n)}}function O(){var t=n;if(1===I[t(449)])v[t(540)](I[0][t(5328)],I[0][t(5329)]);else{const e=.5*(I[0][t(5328)]+I[1][t(5328)]),n=.5*(I[0][t(5329)]+I[1][t(5329)]);v[t(540)](e,n)}}function F(){var t=n;const e=I[0].pageX-I[1][t(5328)],r=I[0][t(5329)]-I[1][t(5329)],i=Math[t(761)](e*e+r*r);y[t(540)](0,i)}function N(t){var e=n;if(1==I[e(449)])p[e(540)](t.pageX,t.pageY);else{const n=J(t),r=.5*(t[e(5328)]+n.x),i=.5*(t.pageY+n.y);p[e(540)](r,i)}m[e(1872)](p,d)[e(1878)](r[e(5288)]);const i=r.domElement;x(2*Math.PI*m.x/i[e(4809)]),b(2*Math.PI*m.y/i[e(4809)]),d[e(1867)](p)}function U(t){var e=n;if(1===I[e(449)])_[e(540)](t[e(5328)],t.pageY);else{const n=J(t),r=.5*(t[e(5328)]+n.x),i=.5*(t[e(5329)]+n.y);_[e(540)](r,i)}g[e(1872)](_,v)[e(1878)](r[e(5290)]),M(g.x,g.y),v[e(1867)](_)}function B(t){var e=n;const i=J(t),s=t.pageX-i.x,a=t[e(5329)]-i.y,o=Math.sqrt(s*s+a*a);E.set(0,o),T[e(540)](0,Math[e(428)](E.y/y.y,r[e(5287)])),R(T.y),y.copy(E)}function k(t){var e=n;!1!==r[e(2407)]&&(0===I[e(449)]&&(r[e(5280)][e(5331)](t[e(5332)]),r[e(5280)].addEventListener(e(5319),G),r[e(5280)][e(808)]("pointerup",V)),function(t){I[n(565)](t)}(t),"touch"===t[e(5333)]?function(t){var e=n;switch(X(t),I[e(449)]){case 1:switch(r[e(4328)][e(5341)]){case TOUCH[e(5298)]:if(!1===r[e(5330)])return;P(),s=i[e(5342)];break;case TOUCH.PAN:if(!1===r[e(5289)])return;O(),s=i.TOUCH_PAN;break;default:s=i[e(5310)]}break;case 2:switch(r[e(4328)][e(5343)]){case TOUCH[e(5301)]:if(!1===r[e(5286)]&&!1===r[e(5289)])return;a=n,r.enableZoom&&F(),r[a(5289)]&&O(),s=i[e(5344)];break;case TOUCH[e(5345)]:if(!1===r[e(5286)]&&!1===r[e(5330)])return;r[n(5286)]&&F(),r.enableRotate&&P(),s=i[e(5346)];break;default:s=i.NONE}break;default:s=i[e(5310)]}var a;s!==i.NONE&&r[e(827)](_startEvent)}(t):function(t){var e=n;let a;switch(t[e(5335)]){case 0:a=r[e(5336)].LEFT;break;case 1:a=r[e(5336)][e(5337)];break;case 2:a=r[e(5336)][e(5327)];break;default:a=-1}switch(a){case MOUSE[e(5299)]:if(!1===r[e(5286)])return;(function(t){var e=n;y[e(540)](t.clientX,t[e(4326)])})(t),s=i[e(5299)];break;case MOUSE.ROTATE:if(t.ctrlKey||t[e(5338)]||t.shiftKey){if(!1===r[e(5289)])return;L(t),s=i[e(5300)]}else{if(!1===r[e(5330)])return;D(t),s=i.ROTATE}break;case MOUSE[e(5300)]:if(t[e(5339)]||t.metaKey||t[e(5340)]){if(!1===r[e(5330)])return;D(t),s=i.ROTATE}else{if(!1===r.enablePan)return;L(t),s=i[e(5300)]}break;default:s=i[e(5310)]}s!==i[e(5310)]&&r.dispatchEvent(_startEvent)}(t))}function G(t){var e=n;!1!==r.enabled&&(t[e(5333)]===e(5334)?function(t){var e=n;switch(X(t),s){case i[e(5342)]:if(!1===r[e(5330)])return;N(t),r.update();break;case i[e(5347)]:if(!1===r[e(5289)])return;U(t),r[e(1067)]();break;case i[e(5344)]:if(!1===r.enableZoom&&!1===r[e(5289)])return;(function(t){r[n(5286)]&&B(t),r.enablePan&&U(t)})(t),r.update();break;case i.TOUCH_DOLLY_ROTATE:if(!1===r[e(5286)]&&!1===r[e(5330)])return;(function(t){var e=n;r[e(5286)]&&B(t),r[e(5330)]&&N(t)})(t),r[e(1067)]();break;default:s=i[e(5310)]}}(t):function(t){var e=n;switch(s){case i.ROTATE:if(!1===r.enableRotate)return;!function(t){var e=n;p[e(540)](t[e(4329)],t[e(4326)]),m.subVectors(p,d)[e(1878)](r[e(5288)]);const i=r[e(5280)];x(2*Math.PI*m.x/i[e(4809)]),b(2*Math.PI*m.y/i[e(4809)]),d[e(1867)](p),r[e(1067)]()}(t);break;case i[e(5299)]:if(!1===r[e(5286)])return;!function(t){var e=n;E[e(540)](t.clientX,t[e(4326)]),T[e(1872)](E,y),T.y>0?R(S()):T.y<0&&A(S()),y[e(1867)](E),r.update()}(t);break;case i[e(5300)]:if(!1===r.enablePan)return;!function(t){var e=n;_[e(540)](t.clientX,t[e(4326)]),g.subVectors(_,v)[e(1878)](r.panSpeed),M(g.x,g.y),v.copy(_),r[e(1067)]()}(t)}}(t))}function V(t){var e=n;Y(t),0===I[e(449)]&&(r[e(5280)].releasePointerCapture(t[e(5332)]),r.domElement[e(1716)](e(5319),G),r[e(5280)].removeEventListener("pointerup",V)),r[e(827)](_endEvent),s=i.NONE}function j(t){Y(t)}function H(t){var e=n;!1!==r[e(2407)]&&!1!==r[e(5286)]&&s===i[e(5310)]&&(t[e(3406)](),r[e(827)](_startEvent),function(t){var e=n;t.deltaY<0?A(S()):t[e(5324)]>0&&R(S()),r[e(1067)]()}(t),r.dispatchEvent(_endEvent))}function q(t){var e=n;!1!==r[e(2407)]&&!1!==r[e(5289)]&&function(t){var e=n;let i=!1;switch(t[e(973)]){case r.keys.UP:M(0,r[e(5291)]),i=!0;break;case r[e(477)][e(5325)]:M(0,-r[e(5291)]),i=!0;break;case r[e(477)][e(5326)]:M(r[e(5291)],0),i=!0;break;case r.keys[e(5327)]:M(-r[e(5291)],0),i=!0}i&&(t[e(3406)](),r.update())}(t)}function W(t){var e=n;!1!==r.enabled&&t[e(3406)]()}function Y(t){var e=n;delete z[t[e(5332)]];for(let n=0;ni[r(2366)]&&(t=t[r(1014)]().sub(e).normalize()[r(1878)](.9*i[r(2366)]),console.warn(r(5355)))}const a=i[r(2065)][r(1014)](),o=s[r(573)].clone(),c=this[r(5348)],l=Date[r(802)]();this[r(5356)]&&clearInterval(this[r(5356)]),this.cameraUpdateInterval=setInterval((()=>{var h=r;let u=Date.now()-l;u>c&&(u=c);const d=(t,e,n)=>{const r=t.x+(e.x-t.x)*n,i=t.y+(e.y-t.y)*n,s=t.z+(e.z-t.z)*n;return new Vector3(r,i,s)};((t,e)=>{var n=r;i.lookAt(e),i[n(2065)][n(540)](t.x,t.y,t.z),s[n(573)][n(540)](e.x,e.y,e.z),s.update()})(d(a,t,u/c),d(o,e,u/c)),u>=c&&(clearInterval(this[h(5356)]),this[h(5356)]=void 0,n&&n())}),10)}lookTo(t){var e=nz;const n=this.camera,r=this[e(5350)];if(!n||!r)return;const i=n.position,s=r[e(573)][e(2038)](i),a=t[e(569)]()[e(1878)](s),o=new Vector3(i.x+a.x,i.y+a.y,i.z+a.z);this[e(5357)](i,o)}[nz(5358)](){var t=nz;const e=this.camera,n=this.controls;if(!e||!n)return;n[t(5292)]=!0;const r=new Vector3;e[t(2148)](r);const i=n[t(573)];if(i.y===r.y)return;const s=(i.y-r.y)/50;for(let e=0;e<50;++e)setTimeout((()=>{var e=t;const r=n[e(573)].y-s;n[e(573)][e(1982)](r),n[e(1067)]()}),30*e)}[nz(5359)](){var t=nz;this[t(5349)]=5e3,this.controls&&(this.controls[t(5292)]=!1)}[nz(5360)](t){var e=nz;const n=Date[e(802)]()-this[e(5361)];this[e(5361)]=Date[e(802)](),this[e(5362)]&&n<100||(this[e(5362)]&&clearInterval(this.rotateInterval),this.rotateInterval=setInterval((()=>{var n=e;if(Date[n(802)]()-this[n(5361)]>=100)return clearInterval(this[n(5362)]),void(this[n(5362)]=void 0);t.code===n(5294)||t.code===n(5296)?this.rotateLeftOrRight(.3,t[n(973)]===n(5294)):(t.code===n(5295)||t.code===n(5297))&&this.rotateUpOrDown(.3,t.code===n(5295))}),1))}[nz(5363)](t,e=!0){var n=nz;const r=this.controls;if(!this[n(3045)]||!r)return;const i=this[n(3045)][n(2065)],s=r[n(573)],a=s.clone();let o=Math.PI*t/180;e&&(o=-o),a.x=(s.x-i.x)*Math[n(1852)](o)-(s.z-i.z)*Math.sin(o)+i.x,a.z=(s.z-i.z)*Math[n(1852)](o)+(s.x-i.x)*Math[n(1853)](o)+i.z,this[n(3045)][n(2080)](a),r.target=a,r[n(1067)]()}rotateUpOrDown(t,e=!0){var n=nz;const r=this.controls;if(!this.camera||!r)return;const i=this.camera[n(2065)],s=r[n(573)],a=s[n(1014)]();let o=Math.PI*t/180;const c=new Vector3(s.x-i.x,s.y-i.y,s.z-i.z).length(),l=s.y-i.y;!e&&(o=-o);const h=Math[n(2107)](l/c)+o;if(h<-Math.PI/2||h>Math.PI/2)return;const u=Math[n(1853)](h)*c;a.y=s.y+(u-l),r[n(573)]=a,r.update()}},STATE=(t=>{var e=nz;return t[t.NONE=-1]=e(5310),t[t.ROTATE=0]="ROTATE",t[t.DOLLY=1]=e(5299),t[t[e(5300)]=2]="PAN",t[t[e(5342)]=3]="TOUCH_ROTATE",t[t[e(5364)]=4]=e(5364),t})(STATE||{}),Keys=(t=>{var e=nz;return t[e(5326)]=e(5294),t.UP=e(5295),t[e(5327)]=e(5296),t.BOTTOM="ArrowDown",t})(Keys||{});function dispatchEventType(t){return{type:t}}var touchInfo={movable:!1,startDistBetweenFingers:0,scale:1},twoPI=2*Math.PI,EPS=1e-6,VRControls2=class extends EventDispatcher{constructor(t,e,n=!1){var r,i=nz;super(),this.enabled=!0,this[i(573)]=new Vector3,this[i(5286)]=!1,this[i(5289)]=!1,this[i(5330)]=!0,this[i(545)]=-1,this[i(5288)]=1,this[i(5287)]=1,this[i(5290)]=1,this.scale=1,this[i(5282)]=0,this[i(5283)]=1/0,this.screenSpacePanning=!0,this[i(5292)]=!0,this[i(5293)]=2,this[i(5284)]=!1,this.dampingFactor=.05,this[i(5312)]=-1/0,this[i(5365)]=1/0,this[i(5313)]=0,this.maxPolarAngle=Math.PI,this[i(5366)]=0,this.maxDistance=1/0,this[i(5291)]=7,this[i(5367)]=50,this[i(5368)]=95,this[i(5369)]=!1,this[i(5370)]=new Vector3,this.pointerPositions={},this[i(5371)]=new Vector2,this[i(5372)]=new Vector2,this.rotateDelta=new Vector2,this[i(5373)]=new Vector2,this[i(5374)]=new Vector2,this[i(5375)]=new Vector2,this.panStart=new Vector2,this[i(5376)]=new Vector2,this[i(5377)]=new Vector2,this[i(5378)]=[],this.spherical=new Spherical,this[i(5379)]=new Spherical,this[i(1067)]=function(t){const e=new Vector3,n=new Vector3,r=new Quaternion;return function(){var i=f;const s=t[i(5380)],a=s[i(1014)]()[i(1465)](),o=t[i(469)][i(2065)];e[i(1867)](o)[i(909)](t.target),e.applyQuaternion(s),t.spherical[i(2110)](e),t[i(5292)]&&-1===t.state&&(t.isVRMode?t[i(5379)].theta+=twoPI/60/60*t[i(5293)]:t.sphericalDelta[i(2043)]-=twoPI/60/60*t[i(5293)]),t[i(5284)]?(t[i(5381)][i(2043)]+=t[i(5379)].theta*t[i(5285)],t.spherical.phi+=t.sphericalDelta[i(2042)]*t[i(5285)]):(t[i(5381)][i(2043)]+=t.sphericalDelta[i(2043)],t[i(5381)][i(2042)]+=t[i(5379)][i(2042)]);let c=t[i(5312)],l=t[i(5365)];return isFinite(c)&&isFinite(l)&&(c<-Math.PI?c+=twoPI:c>Math.PI&&(c-=twoPI),l<-Math.PI?l+=twoPI:l>Math.PI&&(l-=twoPI),t[i(5381)][i(2043)]=c<=l?Math[i(486)](c,Math[i(563)](l,t[i(5381)][i(2043)])):t[i(5381)][i(2043)]>(c+l)/2?Math.max(c,t[i(5381)][i(2043)]):Math[i(563)](l,t.spherical[i(2043)])),t.spherical[i(2042)]=Math[i(486)](t[i(5313)],Math[i(563)](t[i(5314)],t.spherical.phi)),t[i(5381)].makeSafe(),t[i(5381)][i(2041)]*=t[i(1901)],t[i(5381)][i(2041)]=Math[i(486)](t.minDistance,Math[i(563)](t[i(3926)],t[i(5381)][i(2041)])),!0===t[i(5284)]?t[i(573)].addScaledVector(t.panOffset,t[i(5285)]):t[i(573)][i(747)](t.panOffset),e[i(2039)](t.spherical),e.applyQuaternion(a),o[i(1867)](t[i(573)]).add(e),t[i(469)][i(2080)](t[i(573)]),!0===t.enableDamping?(t[i(5379)].theta*=1-t[i(5285)],t.sphericalDelta.phi*=1-t[i(5285)],t[i(5370)].multiplyScalar(1-t.dampingFactor)):(t[i(5379)][i(540)](0,0,0),t[i(5370)][i(540)](0,0,0)),t[i(1901)]=1,!!(t[i(5369)]||n[i(1884)](t[i(469)][i(2065)])>EPS||8*(1-r[i(1879)](t[i(469)][i(2128)]))>EPS)&&(t.dispatchEvent(dispatchEventType(i(5279))),n[i(1867)](t[i(469)][i(2065)]),r.copy(t[i(469)].quaternion),t.zoomChanged=!1,!0)}}(this),this[i(5382)]=(r=this,t=>{var e=f;!1!==r[e(2407)]&&t[e(3406)]()}),this[i(5383)]=function(t){return e=>{var n=f;!1!==t.enabled&&(0===t[n(5378)][n(449)]&&(t[n(5280)][n(5331)](e[n(5332)]),t.domElement[n(808)](n(5319),t[n(5384)]),t[n(5280)][n(808)](n(5320),t[n(5385)])),t.addPointer(e),e[n(5333)]===n(5334)?t[n(5386)](e):t[n(5387)](e))}}(this),this.onPointerMove=function(t){return e=>{var n=f;!1!==t[n(2407)]&&(e[n(5333)]===n(5334)?t[n(5388)](e):t[n(5389)](e))}}(this),this[i(5385)]=function(t){return e=>{var n=f;t[n(5390)](e),0===t.pointers[n(449)]&&(t[n(5280)][n(5391)](e[n(5332)]),t[n(5280)][n(1716)]("pointermove",t[n(5384)]),t[n(5280)].removeEventListener(n(5320),t[n(5385)])),e[n(5333)]===n(5334)&&t[n(5392)](e),t[n(827)](dispatchEventType(n(887))),t[n(545)]=-1}}(this),this[i(5393)]=function(t){return e=>{t[f(5390)](e),t.handlerTouchEnd(e)}}(this),this[i(5394)]=function(t){return e=>{var n=f;!1!==t[n(2407)]&&!1!==t[n(5286)]&&-1===t[n(545)]&&(e[n(3406)](),e.stopPropagation(),t[n(827)](dispatchEventType("start")),t[n(5395)](e),t[n(827)](dispatchEventType(n(887))))}}(this),this[i(5396)]=function(t){const e=new Vector3;return function(n,r){var i=f;const s=t.domElement;if(t.object instanceof PerspectiveCamera){const a=t[i(469)][i(2065)];e[i(1867)](a)[i(909)](t[i(573)]);let o=e[i(449)]();o*=Math[i(2402)](t[i(469)][i(2392)]/2*Math.PI/180),t[i(5397)](2*n*o/s[i(4809)],t[i(469)][i(1963)]),t[i(5398)](2*r*o/s[i(4809)],t[i(469)].matrix)}else console.warn(i(5399)),t[i(5289)]=!1}}(this),this[i(5397)]=function(t){const e=new Vector3;return function(n,r){var i=f;e[i(2048)](r,0),e.multiplyScalar(-n),t[i(5370)][i(747)](e)}}(this),this[i(5398)]=function(t){const e=new Vector3;return function(n,r){var i=f;!0===t[i(5321)]?e[i(2048)](r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(t[i(469)].up,e)),e[i(1878)](n),t[i(5370)][i(747)](e)}}(this),this[i(5400)]=t=>{var e=i;!1!==this[e(2407)]&&!1!==this[e(5289)]&&this[e(5401)](t)},this[i(469)]=t,this.domElement=e,this[i(5402)]=n,this[i(5380)]=(new Quaternion)[i(5311)](this.object.up,new Vector3(0,1,0)),this[i(5280)]&&this[i(5280)][i(590)]&&(this[i(5280)][i(590)].touchAction=i(3833)),this.domElement[i(808)](i(5315),this[i(5382)]),this.domElement.addEventListener(i(5316),this.onPointerDown),this[i(5280)][i(808)](i(5317),this[i(5393)]),this[i(5280)][i(808)](i(5318),this[i(5394)],{passive:!1}),this[i(1067)]()}[nz(1979)](){var t=nz;this[t(5280)][t(1716)]("contextmenu",this[t(5382)]),this[t(5280)][t(1716)](t(5316),this[t(5383)]),this[t(5280)].removeEventListener(t(5317),this[t(5393)]),this[t(5280)][t(1716)]("wheel",this[t(5394)]),this[t(5280)][t(1716)](t(5319),this[t(5384)]),this[t(5280)].removeEventListener("pointerup",this[t(5385)]),this[t(5403)]&&this.domElementKeyEvents.removeEventListener(t(4615),this[t(5400)])}[nz(5404)](t){var e=nz;this.pointers[e(565)](t)}[nz(5390)](t){var e=nz;delete this[e(5405)][t[e(5332)]];for(let n=0;n0&&this[e(5416)](n),this[e(1067)]()}[nz(5410)](t){var e=nz;this.rotateStart[e(540)](t[e(4329)],t[e(4326)])}[nz(5417)](t){var e=nz;this.dollyStart[e(540)](t[e(4329)],t[e(4326)])}[nz(5418)](t){var e=nz;this[e(5419)].set(t.clientX,t[e(4326)])}[nz(5408)](){var t=nz;if(1===this[t(5378)][t(449)])this.rotateStart.set(this[t(5378)][0].pageX,this[t(5378)][0][t(5329)]);else{const e=.5*(this[t(5378)][0][t(5328)]+this.pointers[1].pageX),n=.5*(this[t(5378)][0][t(5329)]+this[t(5378)][1][t(5329)]);this.rotateStart.set(e,n)}}[nz(5409)](t){var e=nz;if(t[e(449)]<2)return;const n=t[0],r=t[1];touchInfo[e(5420)]=this.getDist([n.pageX,n[e(5329)]],[r[e(5328)],r[e(5329)]]),touchInfo[e(5415)]=!0,touchInfo[e(1901)]=1}[nz(5421)](){var t=nz;const e=this[t(5402)],n=this[t(5379)];this[t(5422)][t(1872)](this[t(5372)],this[t(5371)]).multiplyScalar(this.rotateSpeed);const r=this[t(5280)];e?(n[t(2043)]+=2*Math.PI*this[t(5422)].x/r.clientHeight,n[t(2042)]+=2*Math.PI*this[t(5422)].y/r.clientHeight):(n[t(2043)]-=2*Math.PI*this.rotateDelta.x/r[t(4809)],n[t(2042)]-=2*Math.PI*this.rotateDelta.y/r[t(4809)]),this[t(5371)][t(1867)](this[t(5372)])}[nz(5412)](t){var e=nz;this.rotateEnd[e(540)](t[e(4329)],t.clientY),this[e(5421)]()}dollyOut(t){var e=nz;this[e(469)]instanceof PerspectiveCamera?this[e(1901)]/=t:(console[e(1176)]("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this[e(5286)]=!1)}[nz(5423)](t){var e=nz;this[e(469)]instanceof PerspectiveCamera?this[e(1901)]*=t:(console[e(1176)]("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}[nz(5413)](t){var e=nz;this[e(5374)].set(t.clientX,t[e(4326)]),this.dollyDelta[e(1872)](this[e(5374)],this.dollyStart);const n=Math.pow(.95,this.zoomSpeed);this[e(5375)].y>0?this[e(5416)](n):this[e(5423)](n),this[e(5373)][e(1867)](this[e(5374)])}[nz(5414)](t){var e=nz;this.panEnd[e(540)](t[e(4329)],t[e(4326)]),this.panDelta[e(1872)](this[e(5376)],this[e(5419)])[e(1878)](this[e(5290)]),this[e(5396)](this[e(5377)].x,this[e(5377)].y),this.panStart[e(1867)](this.panEnd)}getSecondPointerPosition(t){var e=nz;const n=t[e(5332)]===this[e(5378)][0].pointerId?this[e(5378)][1]:this[e(5378)][0];return this.pointerPositions[n[e(5332)]]}[nz(5411)](t){var e=nz;if(1==this[e(5378)][e(449)])this.rotateEnd.set(t[e(5328)],t.pageY);else{const n=this[e(5424)](t),r=.5*(t[e(5328)]+n.x),i=.5*(t[e(5329)]+n.y);this[e(5372)][e(540)](r,i)}this[e(5421)]()}[nz(5425)](t){var e,n=nz;const r=this[n(469)];if(!(r&&r instanceof PerspectiveCamera))return void console[n(1176)](n(5426));const i=this[n(5367)],s=this[n(5368)],a=t=>{var e=n;let a=r[e(2392)]+t;a=Math[e(563)](a,s),a=Math[e(486)](a,i),r.fov!==a&&(r.fov=a,r.updateProjectionMatrix(),this[e(827)]({type:"change"}))},o=t/20;for(let t=0;t<20;++t)setTimeout((()=>a(o)),5*t);this.autoRotate&&(null==(e=this.controlsHelper)||e[n(5359)]())}[nz(5427)](t){var e=nz;if(!touchInfo[e(5415)]||this[e(5378)].length<2)return;const n=this[e(5424)](t),r=[t[e(5328)],t[e(5329)]],i=[n.x,n.y],s=touchInfo[e(5420)],a=this.getDist(r,i);if(!s||!a||Math[e(694)](s-a)<10)return;let o=a/s;console.log(o);o=Math[e(563)](o,3),o=Math[e(486)](o,1/3);const c=o-touchInfo.scale;if(Math.abs(c)<.05)return;let l=0;l=c>0?10*-c:10*(touchInfo[e(1901)]/o-1),this[e(5425)](l),touchInfo[e(1901)]=o}[nz(5401)](t){var e=nz;let n=!1;switch(t[e(973)]){case e(5295):this[e(5396)](0,this[e(5291)]),n=!0;break;case e(5297):this.pan(0,-this[e(5291)]),n=!0;break;case e(5294):this.pan(this.keyPanSpeed,0),n=!0;break;case e(5296):this[e(5396)](-this[e(5291)],0),n=!0}n&&(t.preventDefault(),this[e(1067)]())}[nz(5309)](t){var e=nz;t[e(808)](e(4615),this.onKeyDown),this[e(5403)]=t}},MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object[nz(500)]({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768});function isPerspectiveCamera(t){return t[nz(2390)]}function isOrthographicCamera(t){return t.isOrthographicCamera}var PI_2=2*Math.PI,PI_HALF=Math.PI/2,EPSILON=1e-5;function approxZero(t,e=EPSILON){return Math.abs(t){var r=n;e.x+=t[r(4329)],e.y+=t[r(4326)]})),e.x/=t.length,e.y/=t[n(449)]}function notSupportedInOrthographicCamera(t,e){var n=nz;return!!isOrthographicCamera(t)&&(console[n(1176)](e+n(5428)),!0)}function quatInvertCompat(t){var e=nz;return t[e(1465)]?t[e(1465)]():t[e(4578)](),t}var THREE,_ORIGIN,_AXIS_Y,_AXIS_Z,_v22,_v3A,_v3B,_v3C,_xColumn,_yColumn,_zColumn,_deltaTarget,_deltaOffset,_sphericalA,_sphericalB,_box3A,_box3B,_sphere5,_quaternionA,_quaternionB,_rotationMatrix,_raycaster,EventDispatcher2=class{constructor(){this[nz(1850)]={}}addEventListener(t,e){var n=nz;const r=this[n(1850)];void 0===r[t]&&(r[t]=[]),-1===r[t][n(564)](e)&&r[t][n(565)](e)}[nz(1851)](t,e){var n=nz;const r=this._listeners;return void 0!==r[t]&&-1!==r[t][n(564)](e)}[nz(1716)](t,e){var n=nz;const r=this[n(1850)][t];if(void 0!==r){const t=r[n(564)](e);-1!==t&&r[n(690)](t,1)}}[nz(5429)](t){var e=nz;t?Array[e(468)](this[e(1850)][t])&&(this[e(1850)][t][e(449)]=0):this[e(1850)]={}}[nz(827)](t){var e=nz;const n=this._listeners[t[e(452)]];if(void 0!==n){t[e(573)]=this;const r=n[e(497)](0);for(let n=0,i=r[e(449)];n{},this[n(5452)]=!0,this._state=ACTION[n(5310)],this._viewport=null,this[n(5453)]=!1,this[n(5454)]=0,this._hasRested=!0,this[n(5455)]=!1,this[n(5456)]=!0,this._updatedLastTime=!1,this[n(5457)]=new DOMRect,this[n(5458)]=[],this._truckInternal=(t,e,r)=>{var i=n;if(isPerspectiveCamera(this._camera)){const n=_v3A[i(1867)](this[i(5459)][i(2065)]).sub(this[i(5460)]),s=this[i(5459)][i(2403)]()*THREE[i(5461)].DEG2RAD,a=n[i(449)]()*Math[i(2402)](.5*s),o=this[i(5447)]*t*a/this[i(5457)].height,c=this[i(5447)]*e*a/this[i(5457)].height;this[i(5449)]?(r?this[i(5462)](this[i(5463)].x+o,this[i(5463)].y,this[i(5463)].z,!0):this[i(5464)](o,0,!0),this.forward(-c,!0)):r?this[i(5462)](this[i(5463)].x+o,this[i(5463)].y+c,this._focalOffsetEnd.z,!0):this[i(5464)](o,c,!0)}else if(isOrthographicCamera(this._camera)){const n=this[i(5459)],s=t*(n[i(935)]-n[i(683)])/n.zoom/this._elementRect[i(999)],a=e*(n[i(2651)]-n.bottom)/n[i(2397)]/this[i(5457)][i(1e3)];r?this.setFocalOffset(this[i(5463)].x+s,this._focalOffsetEnd.y+a,this._focalOffsetEnd.z,!0):this[i(5464)](s,a,!0)}},this[n(5465)]=(t,e)=>{var r=n;const i=PI_2*this[r(5444)]*t/this[r(5457)][r(1e3)],s=PI_2*this[r(5445)]*e/this._elementRect[r(1e3)];this.rotate(i,s,!0)},this[n(5466)]=(t,e,r)=>{var i=n;const s=Math[i(428)](.95,-t*this[i(5446)]),a=this[i(5467)][i(2041)]*s,o=this[i(5467)][i(2041)],c=o*(t>=0?-1:1);this.dollyTo(a),this[i(5468)]&&(a{var i=n;const s=Math[i(428)](.95,t*this.dollySpeed),a=this._zoomEnd;this[i(5472)](this[i(5473)]*s),this[i(5474)]&&(this[i(5454)]+=this._zoomEnd-a,this[i(5470)][i(540)](e,r))},typeof THREE===n(430)&&console[n(819)](n(5475)),this[n(5459)]=t,this._yAxisUpSpace=(new(THREE[n(5440)]))[n(5311)](this[n(5459)].up,_AXIS_Y),this[n(5476)]=quatInvertCompat(this._yAxisUpSpace.clone()),this._state=ACTION[n(5310)],this[n(5460)]=new(THREE[n(5435)]),this._targetEnd=this._target[n(1014)](),this[n(5477)]=new(THREE[n(5435)]),this[n(5463)]=this[n(5477)][n(1014)](),this[n(5478)]=(new(THREE[n(5437)]))[n(2110)](_v3A[n(1867)](this[n(5459)][n(2065)]).applyQuaternion(this[n(5479)])),this[n(5467)]=this._spherical[n(1014)](),this._zoom=this[n(5459)][n(2397)],this[n(5480)]=this[n(5473)],this[n(5481)]=[new(THREE[n(5435)]),new(THREE[n(5435)]),new(THREE[n(5435)]),new THREE.Vector3],this[n(5482)](),this._boundary=new(THREE[n(5438)])(new THREE.Vector3(-1/0,-1/0,-1/0),new(THREE[n(5435)])(1/0,1/0,1/0)),this[n(5483)]=this[n(5460)][n(1014)](),this[n(5484)]=this._camera[n(2065)].clone(),this[n(5485)]=this[n(5473)],this[n(5486)]=this[n(5477)][n(1014)](),this[n(5454)]=0,this[n(5470)]=new(THREE[n(5436)]),this.mouseButtons={left:ACTION.ROTATE,middle:ACTION[n(5299)],right:ACTION[n(5487)],wheel:isPerspectiveCamera(this[n(5459)])?ACTION[n(5299)]:isOrthographicCamera(this._camera)?ACTION[n(5488)]:ACTION[n(5310)]},this[n(4328)]={one:ACTION[n(5342)],two:isPerspectiveCamera(this[n(5459)])?ACTION[n(5489)]:isOrthographicCamera(this[n(5459)])?ACTION[n(5490)]:ACTION[n(5310)],three:ACTION[n(5491)]};const r=new THREE.Vector2,i=new THREE.Vector2,s=new(THREE[n(5436)]),a=t=>{var e=n;if(!this._enabled||!this[e(5492)])return;const r={pointerId:t[e(5332)],clientX:t.clientX,clientY:t[e(4326)],deltaX:0,deltaY:0};this[e(5458)][e(565)](r),this._domElement[e(5493)][e(1716)](e(5319),l,{passive:!1}),this[e(5492)][e(5493)][e(1716)]("pointerup",d),this._domElement.ownerDocument[e(808)](e(5319),l,{passive:!1}),this._domElement[e(5493)][e(808)]("pointerup",d),g(t)},o=t=>{var e=n;if(!this[e(5452)]||!this._domElement)return;const r={pointerId:0,clientX:t.clientX,clientY:t[e(4326)],deltaX:0,deltaY:0};this[e(5458)][e(565)](r),this[e(5492)][e(5493)].removeEventListener(e(4616),h),this[e(5492)][e(5493)][e(1716)]("mouseup",f),this[e(5492)][e(5493)][e(808)](e(4616),h),this[e(5492)].ownerDocument[e(808)]("mouseup",f),g(t)},c=t=>{var e=n;this[e(5452)]&&this._domElement&&(t[e(3406)](),Array[e(425)].forEach[e(429)](t[e(5494)],(t=>{var n=e;const r={pointerId:t[n(5495)],clientX:t[n(4329)],clientY:t[n(4326)],deltaX:0,deltaY:0};this[n(5458)][n(565)](r)})),this[e(5492)][e(5493)].removeEventListener(e(5496),u,{passive:!1}),this[e(5492)].ownerDocument.removeEventListener(e(5497),p),this._domElement.ownerDocument[e(808)](e(5496),u,{passive:!1}),this._domElement[e(5493)][e(808)]("touchend",p),g(t))},l=t=>{var e=n;t[e(5498)]&&t[e(3406)]();const r=t[e(5332)],i=this[e(5499)](r);if(i){if(i[e(4329)]=t[e(4329)],i[e(4326)]=t[e(4326)],i[e(5500)]=t[e(5501)],i.deltaY=t[e(5502)],t[e(5333)]===e(5334))switch(this[e(5458)][e(449)]){case 1:this[e(5503)]=this[e(4328)][e(494)];break;case 2:this[e(5503)]=this.touches.two;break;case 3:this[e(5503)]=this.touches[e(5504)]}else this[e(5503)]=0,(t.buttons&MOUSE_BUTTON[e(5326)])===MOUSE_BUTTON.LEFT&&(this._state=this[e(5503)]|this.mouseButtons.left),(t.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON[e(5337)]&&(this[e(5503)]=this._state|this[e(5336)][e(5505)]),(t[e(5506)]&MOUSE_BUTTON[e(5327)])===MOUSE_BUTTON[e(5327)]&&(this[e(5503)]=this[e(5503)]|this[e(5336)][e(935)]);y()}},h=t=>{var e=n;const r=this[e(5499)](0);r&&(r[e(4329)]=t[e(4329)],r[e(4326)]=t[e(4326)],r[e(5500)]=t[e(5501)],r[e(5324)]=t[e(5502)],this._state=0,(t.buttons&MOUSE_BUTTON[e(5326)])===MOUSE_BUTTON[e(5326)]&&(this._state=this[e(5503)]|this[e(5336)].left),(t[e(5506)]&MOUSE_BUTTON[e(5337)])===MOUSE_BUTTON[e(5337)]&&(this[e(5503)]=this[e(5503)]|this[e(5336)][e(5505)]),(t[e(5506)]&MOUSE_BUTTON[e(5327)])===MOUSE_BUTTON[e(5327)]&&(this._state=this._state|this[e(5336)].right),y())},u=t=>{var e=n;t.cancelable&&t[e(3406)](),Array[e(425)][e(604)].call(t[e(5494)],(t=>{var n=e;const r=t[n(5495)],i=this[n(5499)](r);i&&(i.clientX=t[n(4329)],i[n(4326)]=t[n(4326)])})),y()},d=t=>{var e=n;const r=t[e(5332)],i=this[e(5499)](r);if(i&&this[e(5458)][e(690)](this[e(5458)][e(564)](i),1),"touch"===t[e(5333)])switch(this[e(5458)][e(449)]){case 0:this[e(5503)]=ACTION[e(5310)];break;case 1:this[e(5503)]=this[e(4328)][e(494)];break;case 2:this[e(5503)]=this[e(4328)][e(498)];break;case 3:this[e(5503)]=this[e(4328)][e(5504)]}else this[e(5503)]=ACTION[e(5310)];E()},f=()=>{var t=n;const e=this[t(5499)](0);e&&this[t(5458)][t(690)](this[t(5458)].indexOf(e),1),this[t(5503)]=ACTION.NONE,E()},p=t=>{var e=n;switch(Array.prototype[e(604)][e(429)](t[e(5494)],(t=>{var n=e;const r=t[n(5495)],i=this[n(5499)](r);i&&this[n(5458)][n(690)](this[n(5458)][n(564)](i),1)})),this[e(5458)][e(449)]){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches[e(494)];break;case 2:this[e(5503)]=this[e(4328)].two;break;case 3:this[e(5503)]=this.touches[e(5504)]}E()};let m=-1;const v=t=>{var e=n;if(!this[e(5452)]||this[e(5336)][e(5318)]===ACTION[e(5310)])return;if(t[e(3406)](),this[e(5474)]||this.mouseButtons[e(5318)]===ACTION[e(5298)]||this.mouseButtons[e(5318)]===ACTION.TRUCK){const t=performance[e(802)]();m-t<1e3&&this._getClientRect(this[e(5457)]),m=t}const r=isMac?-1:-3,i=1===t[e(5507)]?t[e(5324)]/r:t[e(5324)]/(10*r),s=this[e(5474)]?(t[e(4329)]-this[e(5457)].x)/this[e(5457)][e(999)]*2-1:0,a=this[e(5474)]?(t[e(4326)]-this._elementRect.y)/this[e(5457)][e(1e3)]*-2+1:0;switch(this[e(5336)][e(5318)]){case ACTION.ROTATE:this._rotateInternal(t[e(5500)],t[e(5324)]);break;case ACTION[e(5487)]:this[e(5508)](t.deltaX,t[e(5324)],!1);break;case ACTION.OFFSET:this[e(5508)](t[e(5500)],t[e(5324)],!0);break;case ACTION[e(5299)]:this._dollyInternal(-i,s,a);break;case ACTION[e(5488)]:this._zoomInternal(-i,s,a)}this[e(827)]({type:e(5509)})},_=t=>{var e=n;this[e(5452)]&&t[e(3406)]()},g=t=>{var e=n;if(!this[e(5452)])return;extractClientCoordFromEvent(this[e(5458)],_v22),this[e(5510)](this[e(5457)]),r[e(1867)](_v22),i[e(1867)](_v22);if(this[e(5458)].length>=2){const t=_v22.x-this[e(5458)][1].clientX,n=_v22.y-this._activePointers[1][e(4326)],r=Math.sqrt(t*t+n*n);s[e(540)](0,r);const a=.5*(this[e(5458)][0][e(4329)]+this[e(5458)][1][e(4329)]),o=.5*(this[e(5458)][0].clientY+this[e(5458)][1][e(4326)]);i[e(540)](a,o)}if(e(4328)in t||e(5333)in t&&"touch"===t[e(5333)])switch(this[e(5458)][e(449)]){case 1:this[e(5503)]=this[e(4328)][e(494)];break;case 2:this[e(5503)]=this[e(4328)][e(498)];break;case 3:this[e(5503)]=this[e(4328)][e(5504)]}else this._state=0,(t[e(5506)]&MOUSE_BUTTON[e(5326)])===MOUSE_BUTTON[e(5326)]&&(this[e(5503)]=this[e(5503)]|this[e(5336)][e(683)]),(t[e(5506)]&MOUSE_BUTTON[e(5337)])===MOUSE_BUTTON[e(5337)]&&(this[e(5503)]=this[e(5503)]|this[e(5336)].middle),(t[e(5506)]&MOUSE_BUTTON[e(5327)])===MOUSE_BUTTON[e(5327)]&&(this[e(5503)]=this[e(5503)]|this[e(5336)][e(935)]);this[e(827)]({type:e(5511)})},y=()=>{var t=n;if(!this[t(5452)])return;extractClientCoordFromEvent(this[t(5458)],_v22);const e=this._domElement&&document[t(5512)]===this[t(5492)],a=e?-this[t(5458)][0][t(5500)]:i.x-_v22.x,o=e?-this[t(5458)][0].deltaY:i.y-_v22.y;if(i[t(1867)](_v22),((this[t(5503)]&ACTION[t(5298)])===ACTION[t(5298)]||(this[t(5503)]&ACTION[t(5342)])===ACTION[t(5342)]||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION[t(5346)]||(this._state&ACTION[t(5513)])===ACTION[t(5513)])&&this[t(5465)](a,o),(this._state&ACTION[t(5299)])===ACTION[t(5299)]||(this[t(5503)]&ACTION[t(5488)])===ACTION[t(5488)]){const e=this[t(5474)]?(r.x-this._elementRect.x)/this[t(5457)].width*2-1:0,n=this[t(5474)]?(r.y-this[t(5457)].y)/this[t(5457)].height*-2+1:0;(this[t(5503)]&ACTION[t(5299)])===ACTION[t(5299)]?this[t(5466)](o*TOUCH_DOLLY_FACTOR,e,n):this[t(5471)](o*TOUCH_DOLLY_FACTOR,e,n)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION[t(5364)]||(this[t(5503)]&ACTION.TOUCH_ZOOM)===ACTION[t(5514)]||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this[t(5503)]&ACTION[t(5490)])===ACTION.TOUCH_ZOOM_TRUCK||(this[t(5503)]&ACTION[t(5515)])===ACTION.TOUCH_DOLLY_OFFSET||(this[t(5503)]&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this[t(5503)]&ACTION.TOUCH_DOLLY_ROTATE)===ACTION[t(5346)]||(this[t(5503)]&ACTION.TOUCH_ZOOM_ROTATE)===ACTION[t(5513)]){const e=_v22.x-this._activePointers[1].clientX,n=_v22.y-this[t(5458)][1][t(4326)],r=Math[t(761)](e*e+n*n),a=s.y-r;s[t(540)](0,r);const o=this[t(5474)]?(i.x-this[t(5457)].x)/this[t(5457)][t(999)]*2-1:0,c=this[t(5474)]?(i.y-this._elementRect.y)/this[t(5457)][t(1e3)]*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION[t(5364)]||(this[t(5503)]&ACTION[t(5346)])===ACTION.TOUCH_DOLLY_ROTATE||(this[t(5503)]&ACTION[t(5489)])===ACTION[t(5489)]||(this[t(5503)]&ACTION[t(5515)])===ACTION[t(5515)]?this._dollyInternal(a*TOUCH_DOLLY_FACTOR,o,c):this[t(5471)](a*TOUCH_DOLLY_FACTOR,o,c)}((this[t(5503)]&ACTION[t(5487)])===ACTION[t(5487)]||(this._state&ACTION[t(5491)])===ACTION[t(5491)]||(this[t(5503)]&ACTION[t(5489)])===ACTION[t(5489)]||(this._state&ACTION[t(5490)])===ACTION[t(5490)])&&this[t(5508)](a,o,!1),((this._state&ACTION.OFFSET)===ACTION[t(5516)]||(this[t(5503)]&ACTION[t(5517)])===ACTION[t(5517)]||(this[t(5503)]&ACTION[t(5515)])===ACTION[t(5515)]||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION[t(5518)])&&this[t(5508)](a,o,!0),this.dispatchEvent({type:t(5509)})},E=()=>{var t=n;extractClientCoordFromEvent(this._activePointers,_v22),i[t(1867)](_v22),0===this._activePointers[t(449)]&&this[t(5492)]&&(this[t(5492)][t(5493)][t(1716)](t(5319),l,{passive:!1}),this._domElement[t(5493)][t(1716)](t(5320),d),this[t(5492)].ownerDocument.removeEventListener(t(5496),u,{passive:!1}),this[t(5492)][t(5493)].removeEventListener(t(5497),p),this[t(827)]({type:t(5519)}))};this[n(5520)]=t=>{var e=n;this[e(5492)]=t,this._domElement[e(590)][e(5281)]=e(3833),this._domElement[e(590)].userSelect=e(3833),this[e(5492)][e(590)][e(5521)]=e(3833),this[e(5492)][e(808)](e(5316),a),isPointerEventsNotSupported&&this[e(5492)][e(808)](e(4618),o),isPointerEventsNotSupported&&this[e(5492)][e(808)](e(5522),c),this[e(5492)][e(808)](e(5317),d),this[e(5492)][e(808)]("wheel",v,{passive:!1}),this[e(5492)][e(808)](e(5315),_)},this._removeAllEventListeners=()=>{var t=n;this._domElement&&(this._domElement[t(1716)](t(5316),a),this._domElement.removeEventListener(t(4618),o),this._domElement.removeEventListener(t(5522),c),this[t(5492)][t(1716)](t(5317),d),this._domElement[t(1716)](t(5318),v,{passive:!1}),this._domElement[t(1716)]("contextmenu",_),this[t(5492)].ownerDocument[t(1716)](t(5319),l,{passive:!1}),this._domElement.ownerDocument.removeEventListener(t(4616),h),this[t(5492)][t(5493)][t(1716)]("touchmove",u,{passive:!1}),this[t(5492)][t(5493)][t(1716)]("pointerup",d),this[t(5492)][t(5493)][t(1716)](t(4617),f),this[t(5492)][t(5493)][t(1716)]("touchend",p))},this[n(1408)]=()=>{var t=n;this[t(5503)]!==ACTION[t(5310)]&&(this._state=ACTION.NONE,this[t(5458)][t(449)]=0,E())},e&&this[n(3854)](e),this[n(1067)](0)}get[nz(3045)](){return this._camera}set[nz(3045)](t){var e=nz;this[e(5459)]=t,this[e(5523)](),this._camera[e(2396)](),this[e(5482)](),this._needsUpdate=!0}get enabled(){return this[nz(5452)]}set[nz(2407)](t){var e=nz;this[e(5492)]&&(this[e(5452)]=t,t?(this[e(5492)][e(590)].touchAction=e(3833),this._domElement[e(590)][e(4875)]=e(3833),this._domElement[e(590)][e(5521)]=e(3833)):(this[e(1408)](),this[e(5492)][e(590)][e(5281)]="",this[e(5492)][e(590)][e(4875)]="",this._domElement[e(590)].webkitUserSelect=""))}get active(){return!this[nz(5524)]}get currentAction(){return this[nz(5503)]}get[nz(3018)](){var t=nz;return this[t(5478)][t(2041)]}set[nz(3018)](t){var e=nz;this[e(5478)].radius===t&&this[e(5467)][e(2041)]===t||(this[e(5478)][e(2041)]=t,this[e(5467)].radius=t,this[e(5456)]=!0)}get[nz(5525)](){var t=nz;return this[t(5478)][t(2043)]}set[nz(5525)](t){var e=nz;this[e(5478)].theta===t&&this._sphericalEnd[e(2043)]===t||(this[e(5478)][e(2043)]=t,this._sphericalEnd[e(2043)]=t,this[e(5456)]=!0)}get[nz(5526)](){return this[nz(5478)].phi}set[nz(5526)](t){var e=nz;this[e(5478)][e(2042)]===t&&this[e(5467)][e(2042)]===t||(this[e(5478)][e(2042)]=t,this[e(5467)][e(2042)]=t,this._needsUpdate=!0)}get[nz(5527)](){return this._boundaryEnclosesCamera}set[nz(5527)](t){this._boundaryEnclosesCamera=t,this._needsUpdate=!0}[nz(808)](t,e){super[nz(808)](t,e)}[nz(1716)](t,e){super.removeEventListener(t,e)}rotate(t,e,n=!1){var r=nz;return this[r(5528)](this[r(5467)][r(2043)]+t,this[r(5467)][r(2042)]+e,n)}[nz(5529)](t,e=!1){var n=nz;return this[n(5528)](t,this[n(5467)][n(2042)],e)}[nz(5530)](t,e=!1){var n=nz;return this[n(5528)](this._sphericalEnd[n(2043)],t,e)}rotateTo(t,e,n=!1){var r=nz;const i=THREE[r(5461)][r(1875)](t,this[r(5312)],this.maxAzimuthAngle),s=THREE[r(5461)].clamp(e,this.minPolarAngle,this[r(5314)]);this[r(5467)][r(2043)]=i,this._sphericalEnd[r(2042)]=s,this[r(5467)][r(4116)](),this[r(5456)]=!0,!n&&(this._spherical[r(2043)]=this._sphericalEnd[r(2043)],this[r(5478)][r(2042)]=this._sphericalEnd.phi);const a=!n||approxEquals(this[r(5478)][r(2043)],this[r(5467)][r(2043)],this[r(5451)])&&approxEquals(this[r(5478)].phi,this[r(5467)][r(2042)],this[r(5451)]);return this[r(5531)](a)}[nz(5532)](t,e=!1){var n=nz;return this[n(5533)](this[n(5467)][n(2041)]-t,e)}[nz(5533)](t,e=!1){var n=nz;const r=this._sphericalEnd[n(2041)],i=THREE[n(5461)][n(1875)](t,this[n(5366)],this.maxDistance);if(this[n(5534)][n(449)]>=1){const t=this[n(5535)](),e=approxEquals(t,this[n(5478)].radius);if(!(r>i)&&e)return Promise[n(440)]();this._sphericalEnd[n(2041)]=Math.min(i,t)}else this._sphericalEnd.radius=i;this[n(5456)]=!0,!e&&(this._spherical[n(2041)]=this[n(5467)].radius);const s=!e||approxEquals(this[n(5478)][n(2041)],this[n(5467)][n(2041)],this[n(5451)]);return this[n(5531)](s)}[nz(2397)](t,e=!1){return this[nz(5472)](this._zoomEnd+t,e)}[nz(5472)](t,e=!1){var n=nz;this[n(5480)]=THREE[n(5461)].clamp(t,this[n(5282)],this[n(5283)]),this[n(5456)]=!0,!e&&(this[n(5473)]=this[n(5480)]);const r=!e||approxEquals(this[n(5473)],this[n(5480)],this[n(5451)]);return this[n(5531)](r)}[nz(5396)](t,e,n=!1){var r=nz;return console.warn("`pan` has been renamed to `truck`"),this[r(5464)](t,e,n)}[nz(5464)](t,e,n=!1){var r=nz;this[r(5459)][r(2127)](),_xColumn.setFromMatrixColumn(this[r(5459)][r(1963)],0),_yColumn[r(2048)](this[r(5459)][r(1963)],1),_xColumn.multiplyScalar(t),_yColumn.multiplyScalar(-e);const i=_v3A[r(1867)](_xColumn)[r(747)](_yColumn),s=_v3B[r(1867)](this[r(5469)])[r(747)](i);return this.moveTo(s.x,s.y,s.z,n)}[nz(4893)](t,e=!1){var n=nz;_v3A[n(2048)](this[n(5459)][n(1963)],0),_v3A[n(2035)](this[n(5459)].up,_v3A),_v3A[n(1878)](t);const r=_v3B.copy(this[n(5469)])[n(747)](_v3A);return this[n(3593)](r.x,r.y,r.z,e)}moveTo(t,e,n,r=!1){var i=nz;const s=_v3A[i(540)](t,e,n)[i(909)](this[i(5469)]);this[i(5536)](this[i(5469)],s,this[i(5450)]),this._needsUpdate=!0,!r&&this[i(5460)][i(1867)](this[i(5469)]);const a=!r||approxEquals(this[i(5460)].x,this[i(5469)].x,this[i(5451)])&&approxEquals(this._target.y,this[i(5469)].y,this[i(5451)])&&approxEquals(this[i(5460)].z,this[i(5469)].z,this.restThreshold);return this._createOnRestPromise(a)}[nz(5537)](t,e,{cover:n=!1,paddingLeft:r=0,paddingRight:i=0,paddingBottom:s=0,paddingTop:a=0}={}){var o=nz;const c=[],l=t[o(2050)]?_box3A.copy(t):_box3A[o(4143)](t);l.isEmpty()&&(console.warn(o(5538)),Promise[o(440)]());const h=roundToStep(this._sphericalEnd[o(2043)],PI_HALF),u=roundToStep(this[o(5467)].phi,PI_HALF);c[o(565)](this[o(5528)](h,u,e));const d=_v3A[o(2039)](this._sphericalEnd).normalize(),f=_quaternionA[o(5311)](d,_AXIS_Z),p=approxEquals(Math[o(694)](d.y),1);p&&f.multiply(_quaternionB[o(2026)](_AXIS_Y,h)),f[o(1558)](this[o(5476)]);const m=_box3B.makeEmpty();_v3B[o(1867)](l[o(563)]).applyQuaternion(f),m[o(2056)](_v3B),_v3B[o(1867)](l.min)[o(1863)](l[o(486)].x)[o(2025)](f),m[o(2056)](_v3B),_v3B.copy(l[o(563)]).setY(l[o(486)].y)[o(2025)](f),m[o(2056)](_v3B),_v3B[o(1867)](l[o(486)])[o(2022)](l[o(563)].z).applyQuaternion(f),m[o(2056)](_v3B),_v3B.copy(l[o(563)])[o(2022)](l[o(486)].z).applyQuaternion(f),m.expandByPoint(_v3B),_v3B[o(1867)](l[o(486)])[o(1982)](l.min.y).applyQuaternion(f),m.expandByPoint(_v3B),_v3B[o(1867)](l[o(486)])[o(1863)](l.min.x).applyQuaternion(f),m[o(2056)](_v3B),_v3B[o(1867)](l[o(486)]).applyQuaternion(f),m[o(2056)](_v3B),m[o(563)].x-=r,m[o(563)].y-=s,m[o(486)].x+=i,m.max.y+=a,f.setFromUnitVectors(_AXIS_Z,d),p&&f[o(2017)](_quaternionB[o(1465)]()),f[o(2017)](this[o(5479)]);const v=m[o(2060)](_v3A),_=m[o(2059)](_v3B)[o(2025)](f);if(isPerspectiveCamera(this[o(5459)])){const t=this[o(5539)](v.x,v.y,v.z,n);c[o(565)](this[o(3593)](_.x,_.y,_.z,e)),c.push(this[o(5533)](t,e)),c.push(this.setFocalOffset(0,0,0,e))}else if(isOrthographicCamera(this[o(5459)])){const t=this[o(5459)],r=t[o(935)]-t.left,i=t[o(2651)]-t[o(2652)],s=n?Math[o(486)](r/v.x,i/v.y):Math.min(r/v.x,i/v.y);c[o(565)](this[o(3593)](_.x,_.y,_.z,e)),c[o(565)](this.zoomTo(s,e)),c[o(565)](this[o(5462)](0,0,0,e))}return Promise.all(c)}[nz(5540)](t,e){var n=nz;const r=[],i=t instanceof THREE[n(5439)]?_sphere5[n(1867)](t):createBoundingSphere(t,_sphere5);if(r.push(this.moveTo(i[n(1960)].x,i[n(1960)].y,i[n(1960)].z,e)),isPerspectiveCamera(this._camera)){const t=this[n(5541)](i.radius);r[n(565)](this[n(5533)](t,e))}else if(isOrthographicCamera(this[n(5459)])){const t=this[n(5459)].right-this[n(5459)][n(683)],s=this[n(5459)][n(2651)]-this[n(5459)].bottom,a=2*i.radius,o=Math[n(563)](t/a,s/a);r[n(565)](this[n(5472)](o,e))}return r[n(565)](this[n(5462)](0,0,0,e)),Promise[n(515)](r)}[nz(5542)](t,e,n,r,i,s,a=!1){var o=nz;const c=_v3B[o(540)](r,i,s),l=_v3A[o(540)](t,e,n);this[o(5469)][o(1867)](c),this[o(5467)][o(2110)](l[o(909)](c)[o(2025)](this[o(5479)])),this.normalizeRotations(),this[o(5456)]=!0,!a&&(this._target[o(1867)](this[o(5469)]),this[o(5478)][o(1867)](this[o(5467)]));const h=!a||approxEquals(this[o(5460)].x,this._targetEnd.x,this[o(5451)])&&approxEquals(this[o(5460)].y,this[o(5469)].y,this.restThreshold)&&approxEquals(this[o(5460)].z,this[o(5469)].z,this[o(5451)])&&approxEquals(this[o(5478)][o(2043)],this[o(5467)].theta,this[o(5451)])&&approxEquals(this[o(5478)][o(2042)],this[o(5467)].phi,this[o(5451)])&&approxEquals(this._spherical.radius,this[o(5467)][o(2041)],this[o(5451)]);return this._createOnRestPromise(h)}lerpLookAt(t,e,n,r,i,s,a,o,c,l,h,u,d,f=!1){var p=nz;const m=_v3A[p(540)](r,i,s),v=_v3B.set(t,e,n);_sphericalA.setFromVector3(v[p(909)](m).applyQuaternion(this._yAxisUpSpace));const _=_v3C[p(540)](l,h,u),g=_v3B[p(540)](a,o,c);_sphericalB[p(2110)](g.sub(_)[p(2025)](this[p(5479)])),this[p(5469)][p(1867)](m[p(1887)](_,d));const y=_sphericalB[p(2043)]-_sphericalA[p(2043)],E=_sphericalB[p(2042)]-_sphericalA[p(2042)],T=_sphericalB.radius-_sphericalA.radius;this[p(5467)][p(540)](_sphericalA[p(2041)]+T*d,_sphericalA[p(2042)]+E*d,_sphericalA.theta+y*d),this[p(5543)](),this[p(5456)]=!0,!f&&(this._target[p(1867)](this[p(5469)]),this[p(5478)].copy(this[p(5467)]));const I=!f||approxEquals(this._target.x,this[p(5469)].x,this[p(5451)])&&approxEquals(this[p(5460)].y,this[p(5469)].y,this[p(5451)])&&approxEquals(this[p(5460)].z,this[p(5469)].z,this[p(5451)])&&approxEquals(this[p(5478)][p(2043)],this[p(5467)][p(2043)],this[p(5451)])&&approxEquals(this[p(5478)][p(2042)],this[p(5467)].phi,this[p(5451)])&&approxEquals(this[p(5478)][p(2041)],this[p(5467)][p(2041)],this.restThreshold);return this._createOnRestPromise(I)}[nz(3869)](t,e,n,r=!1){var i=nz;return this[i(5542)](t,e,n,this[i(5469)].x,this[i(5469)].y,this[i(5469)].z,r)}[nz(5544)](t,e,n,r=!1){var i=nz;const s=this[i(5545)](_v3A),a=this[i(5542)](s.x,s.y,s.z,t,e,n,r);return this._sphericalEnd[i(2042)]=THREE[i(5461)][i(1875)](this[i(5526)],this[i(5313)],this[i(5314)]),a}[nz(5462)](t,e,n,r=!1){var i=nz;this[i(5463)][i(540)](t,e,n),this[i(5456)]=!0,!r&&this[i(5477)][i(1867)](this[i(5463)]),this[i(5453)]=!approxZero(t)||!approxZero(e)||!approxZero(n);const s=!r||approxEquals(this[i(5477)].x,this[i(5463)].x,this[i(5451)])&&approxEquals(this[i(5477)].y,this[i(5463)].y,this[i(5451)])&&approxEquals(this[i(5477)].z,this[i(5463)].z,this[i(5451)]);return this._createOnRestPromise(s)}[nz(5546)](t,e,n){var r=nz;this[r(5459)][r(2155)](),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn[r(2048)](this[r(5459)][r(2030)],1),_zColumn[r(2048)](this._camera[r(2030)],2);const i=_v3A[r(540)](t,e,n),s=i[r(2038)](this[r(5459)][r(2065)]),a=i[r(909)](this[r(5459)][r(2065)]);_xColumn[r(1878)](a.x),_yColumn[r(1878)](a.y),_zColumn[r(1878)](a.z),_v3A[r(1867)](_xColumn)[r(747)](_yColumn)[r(747)](_zColumn),_v3A.z=_v3A.z+s,this[r(5533)](s,!1),this[r(5462)](-_v3A.x,_v3A.y,-_v3A.z,!1),this[r(3593)](t,e,n,!1)}setBoundary(t){var e=nz;if(!t)return this._boundary[e(563)][e(540)](-1/0,-1/0,-1/0),this[e(5547)][e(486)][e(540)](1/0,1/0,1/0),void(this[e(5456)]=!0);this._boundary[e(1867)](t),this._boundary[e(2072)](this[e(5469)],this[e(5469)]),this[e(5456)]=!0}setViewport(t,e,n,r){var i=nz;null!==t?(this._viewport=this[i(5548)]||new(THREE[i(5549)]),typeof t===i(458)?this._viewport[i(540)](t,e,n,r):this[i(5548)].copy(t)):this[i(5548)]=null}[nz(5539)](t,e,n,r=!1){var i=nz;if(notSupportedInOrthographicCamera(this[i(5459)],i(5539)))return this[i(5478)][i(2041)];const s=t/e,a=this._camera[i(2403)]()*THREE[i(5461)][i(5550)],o=this[i(5459)][i(2394)];return.5*((r?s>o:sr[e(5332)]===t&&(n=r,!0))),n}_encloseToBoundary(t,e,n){var r=nz;const i=e[r(1881)]();if(0===i)return t;const s=_v3B[r(1867)](e)[r(747)](t),a=this[r(5547)].clampPoint(s,_v3C)[r(909)](s),o=a.lengthSq();if(0===o)return t[r(747)](e);if(o===i)return t;if(0===n)return t[r(747)](e).add(a);{const i=1+n*o/e[r(1879)](a);return t.add(_v3B[r(1867)](e)[r(1878)](i)).add(a.multiplyScalar(1-n))}}[nz(5482)](){var t=nz;if(isPerspectiveCamera(this[t(5459)])){const e=this[t(5459)],n=e.near,r=e.getEffectiveFOV()*THREE[t(5461)][t(5550)],i=Math[t(2402)](.5*r)*n,s=i*e[t(2394)];this[t(5481)][0][t(540)](-s,-i,0),this[t(5481)][1][t(540)](s,-i,0),this[t(5481)][2][t(540)](s,i,0),this[t(5481)][3][t(540)](-s,i,0)}else if(isOrthographicCamera(this[t(5459)])){const e=this._camera,n=1/e[t(2397)],r=e[t(683)]*n,i=e[t(935)]*n,s=e[t(2651)]*n,a=e[t(2652)]*n;this._nearPlaneCorners[0][t(540)](r,s,0),this._nearPlaneCorners[1][t(540)](i,s,0),this[t(5481)][2][t(540)](i,a,0),this[t(5481)][3].set(r,a,0)}}[nz(5535)](){var t=nz;let e=1/0;if(!(this[t(5534)].length>=1))return e;if(notSupportedInOrthographicCamera(this[t(5459)],t(5535)))return e;const n=_v3A.setFromSpherical(this[t(5478)])[t(1877)](this[t(5478)].radius);_rotationMatrix[t(2080)](_ORIGIN,n,this[t(5459)].up);for(let r=0;r<4;r++){const i=_v3B[t(1867)](this._nearPlaneCorners[r]);i[t(2028)](_rotationMatrix);const s=_v3C[t(1869)](this[t(5460)],i);_raycaster.set(s,n),_raycaster.far=this[t(5478)].radius+1;const a=_raycaster[t(4115)](this[t(5534)]);0!==a[t(449)]&&a[0].distance{var n=e;const r=()=>{var e=f;this.removeEventListener(e(1489),r),t()};this.addEventListener(n(1489),r)})))}[nz(5520)](t){}_removeAllEventListeners(){}};function createBoundingSphere(t,e){var n=nz;const r=e,i=r[n(1960)];_box3A[n(2055)](),t[n(2153)]((t=>{var e=n;t[e(2168)]&&_box3A[e(2058)](t)})),_box3A.getCenter(i);let s=0;return t[n(2153)]((t=>{var e=n;if(!t[e(2168)])return;const r=t,a=r[e(2063)][e(1014)]();if(a.applyMatrix4(r[e(2033)]),a.isBufferGeometry){const t=a[e(2064)][e(2065)];for(let n=0,r=t[e(2053)];n{var e=n;this[e(2407)]&&this[e(5289)]&&this[e(5401)](t)},CameraControls[n(5433)]({THREE:three_module_exports}),this.cameraControls=new CameraControls(t,e),this.object=t,this.domElement=e,this[n(5285)]=.05,this[n(5287)]=.05,this[n(5288)]=1,this[n(5290)]=1,this[n(5336)]={LEFT:MOUSE.ROTATE,MIDDLE:MOUSE[n(5299)],RIGHT:MOUSE[n(5300)]},this[n(4328)]={ONE:TOUCH[n(5298)],TWO:TOUCH.DOLLY_PAN}}get[nz(5366)](){var t=nz;return this[t(5569)][t(5366)]}set[nz(5366)](t){this[nz(5569)].minDistance=t}get[nz(3926)](){var t=nz;return this.cameraControls[t(3926)]}set[nz(3926)](t){var e=nz;this[e(5569)][e(3926)]=t}get minZoom(){var t=nz;return this[t(5569)][t(5282)]}set[nz(5282)](t){var e=nz;this[e(5569)][e(5282)]=t}get maxZoom(){var t=nz;return this[t(5569)][t(5283)]}set maxZoom(t){var e=nz;this.cameraControls[e(5283)]=t}get minPolarAngle(){var t=nz;return this[t(5569)][t(5313)]}set[nz(5313)](t){this[nz(5569)].minPolarAngle=t}get[nz(5314)](){var t=nz;return this[t(5569)][t(5314)]}set[nz(5314)](t){var e=nz;this.cameraControls[e(5314)]=t}get[nz(5312)](){var t=nz;return this[t(5569)][t(5312)]}set[nz(5312)](t){this[nz(5569)].minAzimuthAngle=t}get[nz(5365)](){var t=nz;return this[t(5569)][t(5365)]}set[nz(5365)](t){this[nz(5569)].maxAzimuthAngle=t}get[nz(2407)](){var t=nz;return this[t(5569)][t(2407)]}set[nz(2407)](t){var e=nz;this[e(5569)][e(2407)]=t}get[nz(2065)](){return this[nz(5569)].getPosition(new Vector3)}set[nz(2065)](t){var e=nz;this.cameraControls[e(3869)](t.x,t.y,t.z)}get target(){var t=nz;const e=new Vector3;return this.cameraControls[t(5551)](e),e}set[nz(573)](t){var e=nz;this[e(5569)][e(5544)](t.x,t.y,t.z)}get[nz(5284)](){return this[nz(5562)]}set enableDamping(t){var e=nz;this._enableDamping=t,!t&&(this[e(5570)]=this.cameraControls.dampingFactor),this[e(5569)].dampingFactor=t?this.dampingFactorValue:1,this[e(5569)][e(5443)]=t?this[e(5570)]:1,t&&(this[e(5570)]=void 0)}get[nz(5285)](){return this[nz(5569)].dampingFactor}set[nz(5285)](t){var e=nz;this.cameraControls.dampingFactor=t,this[e(5569)][e(5443)]=t}get[nz(5286)](){return this[nz(5563)]}set[nz(5286)](t){var e=nz;this[e(5563)]=t,!t&&(this.dollySpeedValue=this.cameraControls[e(5446)]),this[e(5569)].dollySpeed=t?this[e(5571)]:0,t&&(this[e(5571)]=void 0)}get[nz(5287)](){var t=nz;return this[t(5569)][t(5446)]}set zoomSpeed(t){var e=nz;this[e(5569)][e(5446)]=t}get[nz(5330)](){return this[nz(5564)]}set[nz(5330)](t){var e=nz;this[e(5564)]=t,!t&&(this[e(5572)]=this[e(5569)][e(5444)]),this.cameraControls[e(5444)]=t?this.rotateSpeedValue:0,this[e(5569)][e(5445)]=t?this[e(5572)]:0,t&&(this[e(5572)]=void 0)}get[nz(5288)](){var t=nz;return this.cameraControls[t(5444)]}set rotateSpeed(t){this[nz(5569)].azimuthRotateSpeed=t,this.cameraControls.polarRotateSpeed=t}get enablePan(){return this._enablePan}set[nz(5289)](t){var e=nz;this._enablePan=t,!t&&(this[e(5573)]=this[e(5569)].truckSpeed),this[e(5569)].truckSpeed=t?this[e(5573)]:0,t&&(this[e(5573)]=void 0)}get panSpeed(){var t=nz;return this[t(5569)][t(5447)]}set[nz(5290)](t){var e=nz;this[e(5569)][e(5447)]=t}get[nz(5474)](){var t=nz;return this[t(5569)][t(5474)]}set[nz(5474)](t){this[nz(5569)].dollyToCursor=t}get screenSpacePanning(){return!this[nz(5569)].verticalDragToForward}set[nz(5321)](t){var e=nz;this[e(5569)][e(5449)]=!t}get[nz(5336)](){return this[nz(5567)]}set[nz(5336)](t){var e=nz;this[e(5567)]=t;for(const n in t){const r=getCameraControlsMouseButtons(this.object)[t[n]];"MIDDLE"===n?this.cameraControls[e(5336)][e(5318)]=r:this[e(5569)].mouseButtons[n.toLowerCase()]=r}this[e(5569)][e(5336)][e(5505)]=CameraControls.ACTION[e(5310)]}get[nz(4328)](){return this[nz(5568)]}set[nz(4328)](t){var e=nz;this[e(5568)]=t;for(const n in t){const r=getCameraControlsTouches(this.object)[t[n]],i=n[e(570)]();"one"!==i?this[e(5569)][e(4328)][i]=r:(r===CameraControls[e(5442)][e(5342)]||r===CameraControls[e(5442)].TOUCH_TRUCK)&&(this[e(5569)].touches[i]=r)}}get[nz(5302)](){var t=nz;const e=JSON[t(1087)](this[t(5569)][t(733)]()).target0;return new Vector3(e[0],e[1],e[2])}set target0(t){var e=nz;const n=JSON[e(1087)](this[e(5569)][e(733)]());n[e(5302)]=t[e(1499)](),this[e(5569)][e(2369)](JSON[e(472)](n))}get[nz(5303)](){var t=nz;const e=JSON[t(1087)](this[t(5569)].toJSON()).position0;return new Vector3(e[0],e[1],e[2])}set[nz(5303)](t){var e=nz;const n=JSON.parse(this.cameraControls[e(733)]());n[e(5303)]=t[e(1499)](),this[e(5569)][e(2369)](JSON.stringify(n))}get zoom0(){var t=nz;return JSON.parse(this[t(5569)][t(733)]())[t(5304)]}set[nz(5304)](t){var e=nz;const n=JSON[e(1087)](this[e(5569)][e(733)]());n[e(5304)]=t,this[e(5569)][e(2369)](JSON.stringify(n))}[nz(5401)](t){var e=nz;let n=!1;switch(t[e(973)]){case this[e(477)].UP:t[e(5339)]||t[e(5338)]||t[e(5340)]?this[e(5569)][e(5529)](2*Math.PI*this[e(5569)][e(5444)]/this[e(5280)][e(4809)],!1):this[e(5569)][e(5464)](0,.05*this[e(5291)]/this[e(5290)],!1),n=!0;break;case this.keys[e(5325)]:t[e(5339)]||t[e(5338)]||t[e(5340)]?this.cameraControls[e(5529)](-2*Math.PI*this[e(5569)][e(5444)]/this[e(5280)][e(4809)],!1):this[e(5569)][e(5464)](0,.05*-this[e(5291)]/this[e(5290)],!1),n=!0;break;case this[e(477)][e(5326)]:t[e(5339)]||t[e(5338)]||t[e(5340)]?this[e(5569)].rotatePolarTo(2*Math.PI*this[e(5569)][e(5445)]/this[e(5280)][e(4809)],!1):this[e(5569)].truck(.05*this[e(5291)]/this.panSpeed,0,!1),n=!0;break;case this[e(477)][e(5327)]:t.ctrlKey||t.metaKey||t[e(5340)]?this.cameraControls[e(5530)](-2*Math.PI*this[e(5569)][e(5445)]/this.domElement[e(4809)],!1):this.cameraControls.truck(.05*-this[e(5291)]/this.panSpeed,0,!1),n=!0}n&&(t[e(3406)](),this[e(1067)]())}[nz(5574)](){var t=nz;return 2*Math.PI/60/60*this[t(5293)]}[nz(5309)](t){var e=nz;t[e(808)](e(4615),this[e(5400)]),this.domElementKeyEvents=t}update(){var t=nz;const e=this[t(5575)][t(3849)]();this[t(5569)][t(1067)](e),this[t(5292)]&&this[t(5569)].currentAction===CameraControls.ACTION.NONE&&this[t(5569)][t(1902)](this[t(5574)](),0,!1)}[nz(5576)](){var t=nz;this[t(5569)][t(5576)]()}[nz(1160)](){this[nz(5569)].reset(!0)}[nz(1979)](){var t=nz;this[t(5569)][t(1979)]()}[nz(5306)](){var t=nz;return this[t(5569)][t(5526)]}getAzimuthalAngle(){return this[nz(5569)].azimuthAngle}[nz(5308)](){return this[nz(5569)].distance}[nz(808)](t,e){this[nz(5569)].addEventListener(t,e)}[nz(1716)](t,e){var n=nz;this[n(5569)][n(1716)](t,e)}[nz(827)](t){this[nz(5569)].dispatchEvent(t)}[nz(5542)](t,e){var n=nz;this[n(5569)][n(5542)](t.x,t.y,t.z,e.x,e.y,e.z,!1),this[n(5569)][n(5462)](0,0,0,!1)}setOrbitPoint(t){this.cameraControls.setOrbitPoint(t.x,t.y,t.z)}},en={NavCube:{front:nz(4812),back:nz(5577),top:nz(4810),bottom:"Bottom",left:"Left",right:nz(1588)},ContextMenu:{viewFitAll:"View Fit All",hideAll:nz(5578),showAll:nz(5579),xRayAll:nz(5580),xRayNone:nz(5581),selectNone:nz(5582),resetView:"Reset View",viewFitEntity:"View Fit",hideEntity:"Hide",hideOthers:"Hide Others",xRayEntity:nz(5580),xRayOthers:"X-Ray Others",select:"Select",deselect:nz(5583),showSectionPlane:nz(5584),showSectionBox:nz(5585),showAxisSection:"Show Axis Section",hideSectionPlane:"Hide Section Plane",hideSectionBox:nz(5586),hideAxisSection:nz(5587),undoSection:nz(5588)},ProgressBar:{Loading:nz(5589),Comparing:nz(5590)},Toolbar:{homeView:nz(5591),orthoView:"Ortho View",measurement:"Measure",distanceMeasurement:"Distance",areaMeasurement:"Area",angleMeasurement:nz(5592),coordinateMeasurement:nz(5593),clearMeasurement:"Clear",markup:nz(5182),markupArrow:nz(5266),markupRect:nz(5185),markupCloudRect:"CloudRect",markupPolyLine:nz(5188),markupCloudLine:nz(5190),markupEllipse:"Ellipse",markupCircle:nz(5192),markupDot:nz(4264),markupText:nz(5194),markupX:"X",markupStroke:nz(5594),markupLineWidth:nz(5595),markupLineWidth2:nz(5596),markupLineWidth5:"Line Width 5",markupLineWidth10:nz(5597),markupFontSize:nz(5598),markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:nz(5599),quitMarkup:nz(5600),section:nz(5211),axisSection:nz(5601),pickSectionPlane:nz(5602),sectionBox:"Section Box",bimTree:nz(5603),viewpoint:nz(5215),annotation:nz(5216),property:nz(5217),settings:nz(5218),compared:nz(5219),quitCompare:nz(5604),fullscreen:nz(5605),layers:nz(5223),zoomToRectangle:nz(5606)},Tooltip:{measure:nz(5607),areaMeasurement:nz(5608),section:nz(5609)},PopPanel:{reset:"Reset"}},cn={NavCube:{front:"前",back:"后",top:"上",bottom:"下",left:"左",right:"右"},ContextMenu:{viewFitAll:nz(5610),hideAll:"全部隐藏",showAll:nz(5611),xRayAll:nz(5612),xRayNone:nz(5613),selectNone:nz(5614),resetView:"重置视图",viewFitEntity:nz(5615),hideEntity:"隐藏",hideOthers:nz(5616),xRayEntity:"应用 X 光模式",xRayOthers:nz(5617),select:"选择",deselect:"取消选择",showSectionPlane:"显示剖切面",showSectionBox:nz(5618),showAxisSection:nz(5619),hideSectionPlane:"隐藏剖切面",hideSectionBox:nz(5620),hideAxisSection:nz(5621),undoSection:"取消剖切"},ProgressBar:{Loading:nz(5622),Comparing:nz(5623)},Toolbar:{homeView:nz(5624),orthoView:nz(5625),measurement:"测量",distanceMeasurement:"距离测量",areaMeasurement:"面积测量",angleMeasurement:nz(5626),coordinateMeasurement:nz(5627),clearMeasurement:nz(5628),markup:"批注",markupArrow:"箭头",markupRect:"矩形框",markupCloudRect:nz(5629),markupPolyLine:nz(5630),markupCloudLine:"云线",markupEllipse:"椭圆",markupCircle:"圆",markupDot:"点",markupText:"文字",markupX:"叉号",markupStroke:nz(5631),markupLineWidth:"线宽",markupLineWidth2:"线宽 2",markupLineWidth5:nz(5632),markupLineWidth10:nz(5633),markupFontSize:"字号",markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:nz(5634),quitMarkup:"退出批注",section:"剖切",axisSection:nz(5635),pickSectionPlane:"面剖切",sectionBox:nz(5636),bimTree:nz(5637),viewpoint:"视点",annotation:"批注",property:"属性",settings:"设置",compared:nz(5638),quitCompare:nz(5639),fullscreen:"全屏",layers:"图层",zoomToRectangle:nz(5640)},Tooltip:{measure:"点击继续测量, ESC 取消测量",areaMeasurement:nz(5641),section:nz(5642)},PopPanel:{reset:"重置"}},BaseViewer=class extends Event{constructor(t){var e=nz;super(),this[e(2078)]=this[e(5643)](),this[e(1e3)]=0,this[e(999)]=0,this[e(5644)]=!0,this.viewerCfg=t,this[e(5643)](),this[e(5645)](),this[e(5646)]()}[nz(5643)](){var t,e=nz;const n=(null==(t=this[e(5647)])?void 0:t[e(479)])||"cn";return i18next_default[e(2645)]({lng:n,debug:!1,resources:{en:{translation:en},cn:{translation:cn}}}),i18next_default.t}initViewerContainer(){var t=nz;let e=document[t(1842)](this.viewerCfg[t(5648)]);!e&&(log[t(819)](t(5649),this.viewerCfg.containerId,t(5650)),e=document[t(1072)]);const n=document[t(538)]("div");n[t(4871)][t(747)]("viewer-container"),n.style[t(5651)]=t(5652),e.appendChild(n),this.width=n.clientWidth,this[t(1e3)]=n.clientHeight,this[t(4863)]=n}initWidgetContainer(){var t,e=nz;const n=document.createElement(e(539));n[e(4871)][e(747)]("widget-container"),null==(t=this[e(4863)])||t[e(591)](n),this[e(5233)]=n}[nz(1725)](){var t,e,n,r=nz;null==(t=this[r(5233)])||t[r(1204)](),this[r(5233)]=void 0,null==(e=this[r(4863)])||e[r(1204)](),this[r(4863)]=void 0,null==(n=this.scene)||n[r(750)](),this[r(4758)]=void 0,this.renderer&&(this[r(4885)].domElement[r(1204)](),this.renderer[r(750)](),this.renderer.dispose(),this[r(4885)][r(5653)](),this[r(4885)]=void 0),this[r(5654)]&&(this.overlayRender[r(1725)](),this.overlayRender=void 0),this[r(3045)]=void 0,this.controls&&(this.controls[r(1979)](),this.controls=void 0),this[r(5655)]&&(this[r(5655)][r(2063)].dispose(),this[r(5655)][r(750)](),this[r(5655)]=void 0)}[nz(5656)](){}[nz(5657)](){}[nz(5658)](t){return[]}getBBox(){}flyTo(t,e){}is3d(){return!0}[nz(5659)](){}};function getUrlExtension(t){var e=nz;let n;try{n=new URL(t,e(5660))}catch(t){return null}const r=n[e(1114)].split("/")[e(1161)](),i=r[e(678)](".");if(-1===i||i===r[e(449)]-1)return null;return r[e(4902)](i+1)}function enqueueMicrotask(t){var e=nz;Promise[e(440)]()[e(829)](t)}var LRUCache=class{constructor(){var t=nz;this[t(5661)]=800,this[t(5662)]=600,this[t(5663)]=.05,this[t(5664)]=new Map,this[t(5665)]=[],this[t(5666)]=new Set,this[t(5667)]=new Map,this[t(5668)]=null;const e=this[t(5664)];this[t(5669)]=n=>e[t(427)](n)}isFull(){var t=nz;return this[t(5664)][t(753)]>=this[t(5661)]}[nz(747)](t,e){var n=nz;const r=this[n(5664)];if(r.has(t))return!1;if(this[n(5670)]())return!1;const i=this[n(5666)],s=this[n(5665)],a=this[n(5667)];return s.push(t),i[n(747)](t),r[n(540)](t,Date[n(802)]()),a[n(540)](t,e),!0}[nz(1204)](t){var e=nz;const n=this[e(5666)],r=this.itemSet,i=this[e(5665)],s=this[e(5667)];if(r[e(546)](t)){s.get(t)(t);const a=i[e(564)](t);return i[e(690)](a,1),n[e(748)](t),r[e(748)](t),s[e(748)](t),!0}return!1}markUsed(t){var e=nz;const n=this[e(5664)],r=this.usedSet;n[e(546)](t)&&!r[e(546)](t)&&(n[e(540)](t,Date[e(802)]()),r[e(747)](t))}[nz(5671)](){var t=nz;this[t(5666)][t(750)]()}[nz(5672)](){var t=nz;const e=this.unloadPercent,n=this[t(5662)],r=this[t(5665)],i=this.itemSet,s=this[t(5666)],a=this.callbacks,o=r.length-s[t(753)],c=r[t(449)]-n,l=this[t(5668)]||this[t(5669)];if(c>0&&o>0){r[t(688)](((t,e)=>{const n=s.has(t),r=s.has(e);return n&&r?0:n||r?n?1:-1:l(e)-l(t)}));const h=Math[t(563)](c,o),u=Math[t(486)](n*e,h*e);let d=Math[t(563)](u,o);d=Math[t(561)](d);const f=r[t(690)](0,d);for(let e=0,n=f[t(449)];e{var n=e;this.scheduled=!1,this[n(5672)](),t&&this[n(5671)]()})))}},PriorityQueue=class{constructor(){var t=nz;this.maxJobs=6,this.items=[],this.callbacks=new Map,this[t(5675)]=0,this.scheduled=!1,this[t(3078)]=!0,this[t(5676)]=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")},this[t(5677)]=t=>{requestAnimationFrame(t)},this[t(5678)]=()=>{var e=t;this[e(5679)](),this[e(5674)]=!1}}[nz(688)](){const t=this.priorityCallback;this.items.sort(t)}[nz(747)](t,e){return new Promise(((n,r)=>{var i=f;const s=this[i(989)],a=this[i(5667)];s.push(t),a[i(540)](t,((...t)=>e(...t)[i(829)](n)[i(821)](r))),this[i(3078)]&&this[i(5680)]()}))}[nz(1204)](t){var e=nz;const n=this[e(989)],r=this[e(5667)],i=n[e(564)](t);-1!==i&&(n.splice(i,1),r[e(748)](t))}[nz(5679)](){var t=nz;this[t(688)]();const e=this[t(989)],n=this.callbacks,r=this.maxJobs;let i=this[t(5675)];for(;r>i&&e[t(449)]>0;){i++;const r=e[t(1161)](),s=n.get(r);n[t(748)](r),s(r)[t(829)]((()=>{var e=t;this.currJobs--,this[e(3078)]&&this.scheduleJobRun()}))[t(821)]((()=>{var e=t;this[e(5675)]--,this[e(3078)]&&this[e(5680)]()}))}this.currJobs=i}scheduleJobRun(){var t=nz;!this[t(5674)]&&(this[t(5677)](this[t(5678)]),this[t(5674)]=!0)}},UNLOADED=0,LOADING=1,PARSING=2,LOADED=3,FAILED=4,WGS84_RADIUS=6378137,WGS84_FLATTENING=1/298.257223563,WGS84_HEIGHT=-(WGS84_FLATTENING*WGS84_RADIUS-WGS84_RADIUS);function isDownloadFinished(t){return t===LOADED||t===FAILED}function isUsedThisFrame(t,e){var n=nz;return t[n(5681)]===e&&t[n(5682)]}function resetFrameState(t,e){var n=nz;t[n(5681)]!==e&&(t[n(5681)]=e,t[n(5682)]=!1,t[n(5683)]=!1,t[n(5684)]=!1,t.__visible=!1,t[n(5685)]=!1,t[n(5686)]=1/0,t.__distanceFromCamera=1/0,t[n(5687)]=!1,t[n(5688)]=!1)}function recursivelyMarkUsed(t,e,n){var r=nz;if(resetFrameState(t,e),t[r(5682)]=!0,n[r(5689)](t),t.__contentEmpty){const i=t[r(1602)];for(let t=0,s=i[r(449)];t0&&t[n(5701)]+1>=a)return!0}let h=!1;const u=t[n(1602)];for(let t=0,r=u[n(449)];t{var n=nz;return t[n(5701)]!==e.__depth?t.__depth>e[n(5701)]?-1:1:t[n(5683)]!==e[n(5683)]?t[n(5683)]?1:-1:t[n(5682)]!==e[n(5682)]?t[n(5682)]?1:-1:t[n(5686)]!==e[n(5686)]?t[n(5686)]>e[n(5686)]?1:-1:t.__distanceFromCamera!==e[n(5711)]?t.__distanceFromCamera>e[n(5711)]?-1:1:0},lruPriorityCallback=t=>1/(t[nz(5693)]+1),TilesRendererBase=class{get rootTileSet(){var t=nz;const e=this[t(5712)][this[t(5713)]];return!e||e instanceof Promise?null:e}get root(){var t=nz;const e=this[t(5714)];return e?e[t(1163)]:null}constructor(t){var e=nz;this[e(5712)]={},this[e(5713)]=t,this[e(5715)]={},this[e(5716)]=null;const n=new LRUCache;n.unloadPriorityCallback=lruPriorityCallback;const r=new PriorityQueue;r[e(5717)]=4,r[e(5676)]=priorityCallback;const i=new PriorityQueue;i.maxJobs=1,i[e(5676)]=priorityCallback,this[e(5697)]=n,this[e(5718)]=r,this.parseQueue=i,this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this[e(5695)]=0,this[e(5704)]=6,this[e(5705)]=1/0,this[e(5696)]=!0,this[e(5709)]=!1,this[e(4194)]=1/0,this.stopAtEmptyTiles=!0}[nz(2152)](t,e){var n=nz;const r=this[n(5712)][this.rootURL];r&&r[n(1163)]&&traverseSet(r[n(1163)],t,e)}[nz(1067)](){var t=nz;const e=this.stats,n=this[t(5697)],r=this[t(5712)],i=r[this.rootURL];if(!(this[t(5713)]in r))return void this[t(5719)](this[t(5713)]);if(!i||!i[t(1163)])return;const s=i[t(1163)];e[t(5700)]=0,e[t(5702)]=0,e[t(5245)]=0,e[t(2122)]=0,this[t(5695)]++,determineFrustumSet(s,this),markUsedSetLeaves(s,this),skipTraversal(s,this),toggleTiles(s,this),n.scheduleUnload()}parseTile(t,e,n){return null}disposeTile(t){}[nz(5720)](t,e,n){var r=nz;t[r(5721)]&&(!("uri"in t[r(5721)])&&"url"in t.content&&(t[r(5721)][r(4398)]=t[r(5721)][r(1065)],delete t[r(5721)].url),t[r(5721)][r(4398)]&&(t[r(5721)].uri=new URL(t.content.uri,n+"/")[r(526)]()),t[r(5721)][r(5722)]&&!(r(4144)in t[r(5721)][r(5722)]||r(4202)in t[r(5721)].boundingVolume||r(1698)in t[r(5721)][r(5722)])&&delete t.content[r(5722)]),t[r(840)]=e,t[r(1602)]=t[r(1602)]||[];if(t.content&&t[r(5721)][r(4398)]){const e=getUrlExtension(t[r(5721)][r(4398)]),n=Boolean(e&&e[r(570)]()===r(3777));t.__externalTileSet=n,t[r(5690)]=n}else t[r(5691)]=!1,t.__contentEmpty=!0;t.__distanceFromCamera=1/0,t[r(5686)]=1/0,t[r(5683)]=!1,t[r(5684)]=!1,t.__usedLastFrame=!1,t.__used=!1,t[r(5703)]=!1,t.__visible=!1,t.__childrenWereVisible=!1,t[r(5688)]=!1,t[r(5710)]=!1,t[r(5685)]=!1,t[r(5692)]=UNLOADED,t[r(5723)]=0,t[r(5724)]=null,t[r(5693)]=-1,null===e?(t[r(5701)]=0,t[r(5706)]=t.refine||r(5725)):(t[r(5701)]=e[r(5701)]+1,t[r(5706)]=t[r(5706)]||e[r(5706)])}setTileActive(t,e){}[nz(5726)](t,e){}[nz(5727)](t){return 0}[nz(5699)](t){return!0}resetFailedTiles(){var t=nz;const e=this.stats;0!==e[t(5728)]&&(this.traverse((e=>{var n=t;e.__loadingState===FAILED&&(e[n(5692)]=UNLOADED)})),e.failed=0)}[nz(5729)](t,e,n=null){var r=nz;return fetch(t,e)[r(829)]((e=>{var n=r;if(e.ok)return e[n(3777)]();throw new Error(n(5730)+t+n(5731)+e[n(1637)]+n(5732)+e[n(3772)])})).then((e=>{var i=r;const s=e[i(5733)].version;console[i(4790)](s===i(5734)||"0.0"===s,i(5735));let a=t[i(448)](/\/[^\/]*\/?$/,"");return a=new URL(a,window[i(2608)][i(1043)]).toString(),traverseSet(e[i(1163)],((t,e)=>this.preprocessNode(t,e,a)),null,n,n?n.__depth:0),e}))}[nz(5719)](t){var e=nz;const n=this.tileSets;if(t in n)return n[t]instanceof Error?Promise[e(831)](n[t]):Promise[e(440)](n[t]);{const r=this[e(5729)](this.preprocessURL?this[e(5716)](t):t,this[e(5715)])[e(829)]((e=>{n[t]=e}));return r[e(821)]((r=>{console[e(819)](r),n[t]=r})),n[t]=r,r}}[nz(5694)](t){var e=nz;if(t[e(5692)]!==UNLOADED)return;const n=this[e(4024)],r=this[e(5697)],i=this[e(5718)],s=this[e(5736)],a=t[e(5691)];r[e(747)](t,(t=>{var r=e;t.__loadingState===LOADING?(t[r(5724)].abort(),t[r(5724)]=null):a?t.children[r(449)]=0:this[r(5737)](t),t[r(5692)]===LOADING?n[r(5738)]--:t[r(5692)]===PARSING&&n.parsing--,t.__loadingState=UNLOADED,t[r(5723)]++,s[r(1204)](t),i[r(1204)](t)})),t.__loadIndex++;const o=t[e(5723)],c=new AbortController,l=c.signal;n[e(5738)]++,t.__loadAbort=c,t[e(5692)]=LOADING;const h=a=>{var c=e;t[c(5723)]===o&&(a.name!==c(5739)?(s[c(1204)](t),i.remove(t),t[c(5692)]===PARSING?n[c(5740)]--:t[c(5692)]===LOADING&&n[c(5738)]--,n.failed++,console[c(819)]('TilesRenderer : Failed to load tile at url "'+t[c(5721)][c(4398)]+'".'),console.error(a),t[c(5692)]=FAILED):r.remove(t))};a?i.add(t,(t=>{var n=e;if(t[n(5723)]!==o)return Promise[n(440)]();const r=this[n(5716)]?this.preprocessURL(t[n(5721)][n(4398)]):t[n(5721)][n(4398)];return this[n(5729)](r,Object[n(501)]({signal:l},this[n(5715)]),t)})).then((r=>{var i=e;t[i(5723)]===o&&(n[i(5738)]--,t[i(5724)]=null,t[i(5692)]=LOADED,t.children[i(565)](r[i(1163)]))}))[e(821)](h):i[e(747)](t,(t=>{var n=e;if(t[n(5723)]!==o)return Promise[n(440)]();const r=this.preprocessURL?this[n(5716)](t[n(5721)][n(4398)]):t.content[n(4398)];return fetch(r,Object[n(501)]({signal:l},this[n(5715)]))}))[e(829)]((n=>{var r=e;if(t[r(5723)]===o){if(n.ok)return n[r(3774)]();throw new Error(r(5741)+n[r(1637)])}})).then((r=>{var i=e;if(t[i(5723)]===o)return n[i(5738)]--,n[i(5740)]++,t[i(5724)]=null,t[i(5692)]=PARSING,s[i(747)](t,(t=>{var e=i;if(t[e(5723)]!==o)return Promise[e(440)]();const n=getUrlExtension(t.content[e(4398)]);return this.parseTile(r,t,n)}))}))[e(829)]((()=>{var r=e;t[r(5723)]===o&&(n.parsing--,t.__loadingState=LOADED,t.__wasSetVisible&&this[r(5726)](t,!0),t[r(5710)]&&this.setTileActive(t,!0))}))[e(821)](h)}[nz(1979)](){var t=nz;const e=this[t(5697)];this[t(2152)]((n=>{e[t(1204)](n)})),this[t(4024)]={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this[t(5695)]=0}};function arrayToString(t){var e=nz;return(new TextDecoder)[e(3778)](t)}var FeatureTable=class{constructor(t,e,n,r){var i=nz;this[i(703)]=t,this[i(5742)]=e+n,this[i(5743)]=r;let s=null;if(0!==n){const r=new Uint8Array(t,e,n);s=JSON.parse(arrayToString(r))}else s={};this.header=s}getKeys(){var t=nz;return Object[t(477)](this[t(5744)])}[nz(4852)](t,e,n=null,r=null){var i=nz;const s=this[i(5744)];if(!(t in s))return null;const a=s[t];if(a instanceof Object){if(Array[i(468)](a))return a;{const{buffer:s,binOffset:o,binLength:c}=this,l=a[i(704)]||0,h=a[i(452)]||r,u=a[i(5745)]||n;if("type"in a&&r&&a[i(452)]!==r)throw new Error(i(5746));let d,f;switch(h){case i(4420):d=1;break;case i(4421):d=2;break;case i(4422):d=3;break;case i(4423):d=4;break;default:throw new Error(i(5747)+t+'".')}const p=o+l,m=e*d;switch(u){case"BYTE":f=new Int8Array(s,p,m);break;case"UNSIGNED_BYTE":f=new Uint8Array(s,p,m);break;case i(5748):f=new Int16Array(s,p,m);break;case i(4415):f=new Uint16Array(s,p,m);break;case"INT":f=new Int32Array(s,p,m);break;case i(4426):f=new Uint32Array(s,p,m);break;case i(4425):f=new Float32Array(s,p,m);break;case i(5749):f=new Float64Array(s,p,m);break;default:throw new Error(i(5750)+t+'".')}if(p+m*f[i(916)]>o+c)throw new Error(i(5751));return f}}return a}},BatchTable=class extends FeatureTable{constructor(t,e,n,r,i){var s=nz;super(t,n,r,i),this[s(5752)]=e}[nz(4852)](t,e=null,n=null){return super[nz(4852)](t,this.batchSize,e,n)}},LoaderBase=class{constructor(){var t=nz;this[t(5715)]={},this[t(5753)]=""}load(t){var e=nz;return fetch(t,this.fetchOptions)[e(829)]((n=>{var r=e;if(!n.ok)throw new Error('Failed to load file "'+t+r(5731)+n[r(1637)]+" : "+n[r(3772)]);return n[r(3774)]()}))[e(829)]((n=>{var r=e;return""===this[r(5753)]&&(this.workingPath=this.workingPathForURL(t)),this[r(1087)](n)}))}[nz(5754)](t){var e=nz;return/^[^\\/]/[e(467)](t)?this[e(5753)]+"/"+t:t}[nz(5755)](t){var e=nz;const n=t[e(465)](/[\\/]/g);n[e(1161)]();return n[e(549)]("/")+"/"}[nz(1087)](t){throw new Error(nz(5756))}};function readMagicBytes(t){var e=nz;let n;if(n=t instanceof DataView?t:new DataView(t),"{"===String[e(689)](n[e(716)](0)))return null;let r="";for(let t=0;t<4;t++)r+=String[e(689)](n.getUint8(t));return r}var B3DMLoaderBase=class extends LoaderBase{parse(t){var e=nz;const n=new DataView(t),r=readMagicBytes(n);console[e(4790)](r===e(5757));const i=n[e(1812)](4,!0);console[e(4790)](1===i);const s=n[e(1812)](8,!0);console[e(4790)](s===t[e(702)]);const a=n.getUint32(12,!0),o=n.getUint32(16,!0),c=n[e(1812)](20,!0),l=n[e(1812)](24,!0),h=t[e(497)](28,28+a+o),u=new FeatureTable(h,0,a,o),d=28+a+o,f=t[e(497)](d,d+c+l),p=new BatchTable(f,u.getData(e(5758)),0,c,l),m=d+c+l;return{version:i,featureTable:u,batchTable:p,glbBytes:new Uint8Array(t,m,s-m)}}},GLTFLoader=class extends Loader{constructor(t){var e=nz;super(t),this[e(5759)]=null,this[e(5760)]=null,this[e(5761)]=null,this[e(4370)]=[],this[e(4371)]((function(t){return new GLTFMaterialsClearcoatExtension2(t)})),this[e(4371)]((function(t){return new GLTFTextureBasisUExtension(t)})),this[e(4371)]((function(t){return new GLTFTextureWebPExtension(t)})),this[e(4371)]((function(t){return new GLTFMaterialsSheenExtension(t)})),this[e(4371)]((function(t){return new GLTFMaterialsTransmissionExtension2(t)})),this[e(4371)]((function(t){return new GLTFMaterialsVolumeExtension2(t)})),this[e(4371)]((function(t){return new GLTFMaterialsIorExtension(t)})),this[e(4371)]((function(t){return new GLTFMaterialsEmissiveStrengthExtension(t)})),this[e(4371)]((function(t){return new GLTFMaterialsSpecularExtension(t)})),this[e(4371)]((function(t){return new GLTFMaterialsIridescenceExtension2(t)})),this.register((function(t){return new GLTFLightsExtension(t)})),this[e(4371)]((function(t){return new GLTFMeshoptCompression(t)})),this[e(4371)]((function(t){return new GLTFMeshGpuInstancing(t)}))}[nz(1212)](t,e,n,r){var i=nz;const s=this;let a;a=""!==this[i(3753)]?this[i(3753)]:""!==this[i(1091)]?this[i(1091)]:LoaderUtils.extractUrlBase(t),this[i(3749)][i(3742)](t);const o=function(e){var n=i;r?r(e):console[n(819)](e),s[n(3749)][n(3783)](t),s[n(3749)].itemEnd(t)},c=new FileLoader(this[i(3749)]);c[i(3756)](this[i(1091)]),c[i(3784)](i(3773)),c.setRequestHeader(this[i(3759)]),c.setWithCredentials(this[i(3752)]),c.load(t,(function(n){try{s.parse(n,a,(function(n){var r=f;e(n),s[r(3749)].itemEnd(t)}),o)}catch(t){o(t)}}),n,o)}setDRACOLoader(t){return this[nz(5759)]=t,this}[nz(5762)](){throw new Error(nz(5763))}[nz(5764)](t){return this.ktx2Loader=t,this}[nz(5765)](t){return this.meshoptDecoder=t,this}[nz(4371)](t){var e=nz;return-1===this[e(4370)].indexOf(t)&&this[e(4370)][e(565)](t),this}unregister(t){var e=nz;return-1!==this[e(4370)].indexOf(t)&&this[e(4370)][e(690)](this[e(4370)][e(564)](t),1),this}[nz(1087)](t,e,n,r){var i=nz;let s;const a={},o={};if(typeof t===i(470))s=JSON.parse(t);else if(t instanceof ArrayBuffer){if(LoaderUtils[i(3802)](new Uint8Array(t,0,4))===BINARY_EXTENSION_HEADER_MAGIC){try{a[EXTENSIONS[i(5766)]]=new GLTFBinaryExtension(t)}catch(t){return void(r&&r(t))}s=JSON.parse(a[EXTENSIONS[i(5766)]].content)}else s=JSON.parse(LoaderUtils[i(3802)](new Uint8Array(t)))}else s=t;if(void 0===s.asset||s[i(5733)][i(521)][0]<2)return void(r&&r(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new GLTFParser(s,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this[i(3749)],ktx2Loader:this[i(5760)],meshoptDecoder:this[i(5761)]});c[i(5767)].setRequestHeader(this[i(3759)]);for(let t=0;t=0&&void 0===o[e]&&console[i(1176)]('THREE.GLTFLoader: Unknown extension "'+e+'".')}}c[i(5774)](a),c[i(4372)](o),c[i(1087)](n,r)}parseAsync(t,e){const n=this;return new Promise((function(r,i){n[f(1087)](t,e,r,i)}))}};function GLTFRegistry(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}var EXTENSIONS={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:nz(5775),KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:nz(5776),KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_SHEEN:nz(5777),KHR_MATERIALS_SPECULAR:nz(5778),KHR_MATERIALS_TRANSMISSION:nz(5779),KHR_MATERIALS_IRIDESCENCE:nz(4516),KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:nz(4520),KHR_TEXTURE_BASISU:nz(5780),KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:nz(5781),KHR_MATERIALS_EMISSIVE_STRENGTH:nz(5782),EXT_TEXTURE_WEBP:nz(5783),EXT_MESHOPT_COMPRESSION:nz(5784),EXT_MESH_GPU_INSTANCING:nz(5785)},GLTFLightsExtension=class{constructor(t){var e=nz;this[e(5786)]=t,this[e(542)]=EXTENSIONS[e(5787)],this[e(1410)]={refs:{},uses:{}}}[nz(5788)](){var t=nz;const e=this[t(5786)],n=this.parser[t(3777)].nodes||[];for(let r=0,i=n.length;r=0)throw new Error(e(5821));return null}return n.loadTextureImage(t,s[e(556)],a)}},GLTFTextureWebPExtension=class{constructor(t){var e=nz;this[e(5786)]=t,this[e(542)]=EXTENSIONS[e(5822)],this[e(5823)]=null}loadTexture(t){var e=nz;const n=this[e(542)],r=this.parser,i=r[e(3777)],s=i[e(1976)][t];if(!s.extensions||!s.extensions[n])return null;const a=s[e(2386)][n],o=i[e(1949)][a[e(556)]];let c=r.textureLoader;if(o[e(4398)]){const t=r.options[e(3749)][e(3748)](o[e(4398)]);null!==t&&(c=t)}return this[e(5824)]()[e(829)]((function(s){var o=e;if(s)return r[o(5825)](t,a.source,c);if(i.extensionsRequired&&i.extensionsRequired[o(564)](n)>=0)throw new Error(o(5826));return r[o(5820)](t)}))}detectSupport(){var t=nz;return!this.isSupported&&(this.isSupported=new Promise((function(t){var e=f;const n=new Image;n.src=e(5827),n[e(4314)]=n[e(5828)]=function(){t(1===n[e(1e3)])}}))),this[t(5823)]}},GLTFMeshoptCompression=class{constructor(t){var e=nz;this[e(542)]=EXTENSIONS.EXT_MESHOPT_COMPRESSION,this[e(5786)]=t}[nz(5829)](t){var e=nz;const n=this.parser.json,r=n[e(4412)][t];if(r[e(2386)]&&r[e(2386)][this.name]){const t=r.extensions[this[e(542)]],i=this[e(5786)][e(5830)](e(703),t[e(703)]),s=this[e(5786)][e(3645)].meshoptDecoder;if(!s||!s.supported){if(n[e(5768)]&&n[e(5768)].indexOf(this[e(542)])>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return i[e(829)]((function(n){var r=e;const i=t[r(704)]||0,a=t[r(702)]||0,o=t[r(2053)],c=t[r(4419)],l=new Uint8Array(n,i,a);return s.decodeGltfBufferAsync?s[r(5831)](o,c,l,t[r(5832)],t[r(464)]).then((function(t){return t.buffer})):s[r(5833)][r(829)]((function(){var e=r;const n=new ArrayBuffer(o*c);return s[e(5834)](new Uint8Array(n),o,c,l,t.mode,t[e(464)]),n}))}))}return null}},GLTFMeshGpuInstancing=class{constructor(t){var e=nz;this[e(542)]=EXTENSIONS.EXT_MESH_GPU_INSTANCING,this[e(5786)]=t}[nz(5835)](t){var e=nz;const n=this[e(5786)][e(3777)],r=n.nodes[t];if(!r[e(2386)]||!r[e(2386)][this[e(542)]]||void 0===r.mesh)return null;const i=n.meshes[r.mesh];for(const t of i[e(5836)])if(t[e(5832)]!==WEBGL_CONSTANTS2.TRIANGLES&&t[e(5832)]!==WEBGL_CONSTANTS2.TRIANGLE_STRIP&&t[e(5832)]!==WEBGL_CONSTANTS2[e(5837)]&&void 0!==t[e(5832)])return null;const s=r[e(2386)][this[e(542)]][e(2064)],a=[],o={};for(const t in s)a[e(565)](this[e(5786)].getDependency(e(5838),s[t])[e(829)]((e=>(o[t]=e,o[t]))));return a[e(449)]<1?null:(a[e(565)](this[e(5786)][e(5835)](t)),Promise[e(515)](a).then((t=>{var n=e;const r=t[n(1161)](),i=r[n(3252)]?r[n(1602)]:[r],s=t[0][n(2053)],a=[];for(const t of i){const e=new Matrix4,r=new Vector3,i=new Quaternion,c=new Vector3(1,1,1),l=new InstancedMesh(t[n(2063)],t[n(2178)],s);for(let t=0;t",i)[c(448)]("#include ",s)[c(448)](c(5874),a)},Object[e(421)](this,{specular:{get:function(){var t=e;return o[t(2238)][t(439)]},set:function(t){var n=e;o.specular[n(439)]=t}},specularMap:{get:function(){return o.specularMap.value},set:function(t){var n=e;o.specularMap[n(439)]=t,t?this[n(2376)][n(5875)]="":delete this[n(2376)][n(5875)]}},glossiness:{get:function(){var t=e;return o[t(4509)][t(439)]},set:function(t){var n=e;o[n(4509)][n(439)]=t}},glossinessMap:{get:function(){var t=e;return o[t(5876)][t(439)]},set:function(t){var n=e;o[n(5876)].value=t,t?(this[n(2376)][n(5877)]="",this[n(2376)].USE_UV=""):(delete this[n(2376)][n(5877)],delete this[n(2376)][n(5878)])}}}),delete this.metalness,delete this[e(2232)],delete this[e(2268)],delete this[e(2267)],this[e(2226)](t)}[nz(1867)](t){var e=nz;return super.copy(t),this.specularMap=t[e(2270)],this[e(2238)].copy(t.specular),this[e(5876)]=t[e(5876)],this[e(4509)]=t[e(4509)],delete this[e(2233)],delete this[e(2232)],delete this[e(2268)],delete this.roughnessMap,this}},GLTFMaterialsPbrSpecularGlossinessExtension=class{constructor(){var t=nz;this[t(542)]=EXTENSIONS[t(5770)],this.specularGlossinessParams=[t(2231),t(679),"lightMap","lightMapIntensity",t(2257),t(2258),t(2236),"emissiveIntensity",t(2269),t(2259),t(2260),"normalMap",t(2262),t(2264),"displacementScale",t(2266),t(2270),t(2238),t(5876),t(4509),"alphaMap","envMap",t(2274)]}[nz(5801)](){return GLTFMeshStandardSGMaterial}[nz(5879)](t,e,n){var r=nz;const i=e[r(2386)][this[r(542)]];t[r(2231)]=new Color(1,1,1),t.opacity=1;const s=[];if(Array[r(468)](i[r(4506)])){const e=i[r(4506)];t[r(2231)][r(1890)](e),t.opacity=e[3]}if(void 0!==i[r(5880)]&&s[r(565)](n[r(5797)](t,r(679),i.diffuseTexture,sRGBEncoding)),t[r(2236)]=new Color(0,0,0),t[r(4509)]=void 0!==i[r(4508)]?i[r(4508)]:1,t[r(2238)]=new Color(1,1,1),Array[r(468)](i[r(4507)])&&t[r(2238)].fromArray(i[r(4507)]),void 0!==i[r(4511)]){const e=i.specularGlossinessTexture;s[r(565)](n[r(5797)](t,"glossinessMap",e)),s[r(565)](n[r(5797)](t,r(2270),e,sRGBEncoding))}return Promise[r(515)](s)}[nz(5881)](t){var e=nz;const n=new GLTFMeshStandardSGMaterial(t);return n.fog=!0,n[e(2231)]=t.color,n[e(679)]=void 0===t[e(679)]?null:t[e(679)],n[e(2255)]=null,n.lightMapIntensity=1,n[e(2257)]=void 0===t.aoMap?null:t[e(2257)],n[e(2258)]=1,n[e(2236)]=t[e(2236)],n[e(2237)]=void 0===t[e(2237)]?1:t[e(2237)],n[e(2269)]=void 0===t[e(2269)]?null:t[e(2269)],n.bumpMap=void 0===t.bumpMap?null:t.bumpMap,n[e(2260)]=1,n[e(2261)]=void 0===t[e(2261)]?null:t.normalMap,n[e(2262)]=TangentSpaceNormalMap,t[e(2263)]&&(n[e(2263)]=t.normalScale),n[e(2264)]=null,n[e(2265)]=1,n[e(2266)]=0,n[e(2270)]=void 0===t[e(2270)]?null:t[e(2270)],n[e(2238)]=t[e(2238)],n[e(5876)]=void 0===t[e(5876)]?null:t.glossinessMap,n[e(4509)]=t.glossiness,n[e(2254)]=null,n[e(2273)]=void 0===t.envMap?null:t[e(2273)],n[e(2274)]=1,n}},GLTFMeshQuantizationExtension=class{constructor(){var t=nz;this.name=EXTENSIONS[t(5773)]}},GLTFCubicSplineInterpolant=class extends Interpolant{constructor(t,e,n,r){super(t,e,n,r)}copySampleValue_(t){var e=nz;const n=this.resultBuffer,r=this.sampleValues,i=this[e(3684)],s=t*i*3+i;for(let t=0;t!==i;t++)n[t]=r[s+t];return n}interpolate_(t,e,n,r){var i=nz;const s=this[i(3680)],a=this[i(3683)],o=this.valueSize,c=2*o,l=3*o,h=r-e,u=(n-e)/h,d=u*u,f=d*u,p=t*l,m=p-l,v=-2*f+3*d,_=f-d,g=1-v,y=_-d+u;for(let t=0;t!==o;t++){const e=a[m+t+o],n=a[m+t+c]*h,r=a[p+t+o],i=a[p+t]*h;s[t]=g*e+y*n+v*r+_*i}return s}},_q=new Quaternion,GLTFCubicSplineQuaternionInterpolant=class extends GLTFCubicSplineInterpolant{[nz(3698)](t,e,n,r){var i=nz;const s=super[i(3698)](t,e,n,r);return _q[i(1890)](s)[i(569)]().toArray(s),s}},WEBGL_CONSTANTS2={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},WEBGL_COMPONENT_TYPES={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},WEBGL_FILTERS={9728:NearestFilter,9729:LinearFilter,9984:NearestMipmapNearestFilter,9985:LinearMipmapNearestFilter,9986:NearestMipmapLinearFilter,9987:LinearMipmapLinearFilter},WEBGL_WRAPPINGS={33071:ClampToEdgeWrapping,33648:MirroredRepeatWrapping,10497:RepeatWrapping},WEBGL_TYPE_SIZES={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTES={POSITION:nz(2065),NORMAL:"normal",TANGENT:nz(2339),TEXCOORD_0:"uv",TEXCOORD_1:nz(2362),COLOR_0:"color",WEIGHTS_0:nz(3511),JOINTS_0:nz(3510)},PATH_PROPERTIES2={scale:nz(1901),translation:nz(2065),rotation:nz(2128),weights:nz(2358)},INTERPOLATION={CUBICSPLINE:void 0,LINEAR:InterpolateLinear,STEP:InterpolateDiscrete},ALPHA_MODES={OPAQUE:"OPAQUE",MASK:nz(5882),BLEND:"BLEND"};function createDefaultMaterial(t){var e=nz;return void 0===t[e(5883)]&&(t[e(5883)]=new MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:FrontSide})),t[e(5883)]}function addUnknownExtensionsToUserData(t,e,n){var r=nz;for(const i in n[r(2386)])void 0===t[i]&&(e[r(1968)][r(4399)]=e.userData[r(4399)]||{},e[r(1968)][r(4399)][i]=n[r(2386)][i])}function assignExtrasToUserData(t,e){var n=nz;void 0!==e[n(4467)]&&("object"==typeof e[n(4467)]?Object[n(501)](t[n(1968)],e.extras):console.warn(n(5884)+e.extras))}function addMorphTargets(t,e,n){var r=nz;let i=!1,s=!1,a=!1;for(let t=0,n=e.length;t0||0===t.search(/^data\:image\/jpeg/)?e(1942):t[e(625)](/\.webp($|\?)/i)>0||0===t[e(625)](/^data\:image\/webp/)?e(4383):e(1943)}var GLTFParser=class{constructor(t={},e={}){var n=nz;this[n(3777)]=t,this.extensions={},this[n(4385)]={},this[n(3645)]=e,this[n(1410)]=new GLTFRegistry,this[n(5885)]=new Map,this[n(5886)]={},this.meshCache={refs:{},uses:{}},this[n(5887)]={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this[n(5888)]={},this[n(5889)]={},this[n(5890)]={};const r=!0===/^((?!chrome|android).)*safari/i[n(467)](navigator[n(518)]),i=navigator[n(518)].indexOf(n(5891))>-1,s=i?navigator[n(518)].match(/Firefox\/([0-9]+)\./)[1]:-1;typeof createImageBitmap===n(430)||r||i&&s<98?this[n(5892)]=new TextureLoader(this[n(3645)].manager):this.textureLoader=new ImageBitmapLoader(this[n(3645)][n(3749)]),this.textureLoader.setCrossOrigin(this.options[n(3750)]),this.textureLoader[n(3758)](this[n(3645)][n(3759)]),this[n(5767)]=new FileLoader(this[n(3645)].manager),this[n(5767)][n(3784)](n(3773)),this.options[n(3750)]===n(5893)&&this[n(5767)][n(3755)](!0)}[nz(5774)](t){this[nz(2386)]=t}[nz(4372)](t){this[nz(4385)]=t}parse(t,e){var n=nz;const r=this,i=this[n(3777)],s=this[n(2386)];this[n(1410)][n(5894)](),this[n(4440)]((function(t){var e=n;return t._markDefs&&t[e(5788)]()})),Promise[n(515)](this[n(4440)]((function(t){var e=n;return t.beforeRoot&&t[e(5895)]()}))).then((function(){var t=n;return Promise.all([r[t(5896)]("scene"),r.getDependencies(t(5897)),r[t(5896)]("camera")])}))[n(829)]((function(e){var a=n;const o={scene:e[0][i.scene||0],scenes:e[0],animations:e[1],cameras:e[2],asset:i[a(5733)],parser:r,userData:{}};addUnknownExtensionsToUserData(s,o,i),assignExtrasToUserData(o,i),Promise[a(515)](r._invokeAll((function(t){return t[a(5898)]&&t.afterRoot(o)})))[a(829)]((function(){t(o)}))})).catch(e)}[nz(5788)](){var t=nz;const e=this[t(3777)].nodes||[],n=this[t(3777)][t(4484)]||[],r=this[t(3777)].meshes||[];for(let r=0,i=n.length;r{var n=r;const i=this[n(5885)][n(427)](t);null!=i&&this.associations[n(540)](e,i);for(const[r,i]of t[n(1602)][n(674)]())s(i,e[n(1602)][r])};return s(n,i),i[r(542)]+=r(5902)+t[r(5900)][e]++,i}[nz(5903)](t){var e=nz;const n=Object[e(673)](this[e(4385)]);n[e(565)](this);for(let e=0;e=2&&m[s(1982)](e,u[t*o+1]),o>=3&&m[s(2022)](e,u[t*o+2]),o>=4&&m[s(1983)](e,u[t*o+3]),o>=5)throw new Error(s(5915))}}return m}))}[nz(5820)](t){var e=nz;const n=this[e(3777)],r=this.options,i=n.textures[t][e(556)],s=n[e(1949)][i];let a=this.textureLoader;if(s[e(4398)]){const t=r[e(3749)][e(3748)](s.uri);null!==t&&(a=t)}return this.loadTextureImage(t,i,a)}[nz(5825)](t,e,n){var r=nz;const i=this,s=this.json,a=s[r(1976)][t],o=s[r(1949)][e],c=(o[r(4398)]||o[r(4435)])+":"+a[r(5916)];if(this[r(5889)][c])return this.textureCache[c];const l=this[r(5917)](e,n).then((function(e){var n=r;e.flipY=!1,e[n(542)]=a[n(542)]||o[n(542)]||"";const c=(s.samplers||{})[a[n(5916)]]||{};return e.magFilter=WEBGL_FILTERS[c[n(1958)]]||LinearFilter,e[n(1973)]=WEBGL_FILTERS[c[n(1973)]]||LinearMipmapLinearFilter,e.wrapS=WEBGL_WRAPPINGS[c[n(1972)]]||RepeatWrapping,e[n(1957)]=WEBGL_WRAPPINGS[c[n(1957)]]||RepeatWrapping,i[n(5885)].set(e,{textures:t}),e}))[r(821)]((function(){return null}));return this[r(5889)][c]=l,l}[nz(5917)](t,e){var n=nz;const r=this[n(3777)],i=this[n(3645)];if(void 0!==this[n(5888)][t])return this[n(5888)][t].then((t=>t[n(1014)]()));const s=r[n(1949)][t],a=self.URL||self.webkitURL;let o=s[n(4398)]||"",c=!1;if(void 0!==s[n(4435)])o=this.getDependency(n(4435),s[n(4435)])[n(829)]((function(t){var e=n;c=!0;const r=new Blob([t],{type:s[e(3763)]});return o=a[e(1126)](r),o}));else if(void 0===s[n(4398)])throw new Error(n(5918)+t+n(5919));const l=Promise[n(440)](o)[n(829)]((function(t){return new Promise((function(n,r){var s=f;let a=n;!0===e[s(3830)]&&(a=function(t){const e=new Texture(t);e.needsUpdate=!0,n(e)}),e[s(1212)](LoaderUtils.resolveURL(t,i[s(1091)]),a,void 0,r)}))})).then((function(t){var e=n;return!0===c&&a[e(1127)](o),t[e(1968)][e(3763)]=s[e(3763)]||getImageURIMimeType(s[e(4398)]),t}))[n(821)]((function(t){var e=n;throw console[e(819)](e(5920),o),t}));return this.sourceCache[t]=l,l}assignTexture(t,e,n,r){const i=this;return this.getDependency("texture",n.index).then((function(s){var a=f;if(void 0!==n[a(5850)]&&0!=n.texCoord&&(e!==a(2257)||1!=n[a(5850)])&&console[a(1176)](a(5921)+n[a(5850)]+a(5922)+e+a(5923)),i[a(2386)][EXTENSIONS[a(5772)]]){const t=void 0!==n.extensions?n[a(2386)][EXTENSIONS[a(5772)]]:void 0;if(t){const e=i.associations[a(427)](s);s=i.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM][a(5849)](s,t),i[a(5885)].set(s,e)}}return void 0!==r&&(s.encoding=r),t[e]=s,s}))}[nz(5842)](t){var e=nz;const n=t[e(2063)];let r=t[e(2178)];const i=void 0===n[e(2064)].tangent,s=void 0!==n[e(2064)][e(2231)],a=void 0===n[e(2064)][e(655)];if(t[e(2169)]){const t=e(5924)+r[e(1947)];let n=this[e(1410)].get(t);!n&&(n=new PointsMaterial,Material[e(425)][e(1867)][e(429)](n,r),n[e(2231)][e(1867)](r[e(2231)]),n[e(679)]=r[e(679)],n[e(2284)]=!1,this[e(1410)][e(747)](t,n)),r=n}else if(t[e(3415)]){const t="LineBasicMaterial:"+r[e(1947)];let n=this[e(1410)][e(427)](t);!n&&(n=new LineBasicMaterial,Material.prototype[e(1867)].call(n,r),n[e(2231)][e(1867)](r[e(2231)]),this[e(1410)].add(t,n)),r=n}if(i||s||a){let t=e(5925)+r[e(1947)]+":";r[e(4504)]&&(t+=e(5926)),i&&(t+=e(5927)),s&&(t+=e(5928)),a&&(t+=e(5929));let n=this[e(1410)][e(427)](t);n||(n=r[e(1014)](),s&&(n[e(2285)]=!0),a&&(n[e(2298)]=!0),i&&(n[e(2263)]&&(n[e(2263)].y*=-1),n[e(2247)]&&(n[e(2247)].y*=-1)),this.cache.add(t,n),this.associations[e(540)](n,this[e(5885)][e(427)](r))),r=n}r[e(2257)]&&void 0===n.attributes[e(2362)]&&void 0!==n.attributes.uv&&n.setAttribute(e(2362),n[e(2064)].uv),t[e(2178)]=r}[nz(5801)](){return MeshStandardMaterial}loadMaterial(t){var e=nz;const n=this,r=this.json,i=this.extensions,s=r.materials[t];let a;const o={},c=s.extensions||{},l=[];if(c[EXTENSIONS[e(5770)]]){const t=i[EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];a=t[e(5801)](),l[e(565)](t[e(5879)](o,s,n))}else if(c[EXTENSIONS[e(5769)]]){const t=i[EXTENSIONS.KHR_MATERIALS_UNLIT];a=t[e(5801)](),l[e(565)](t.extendParams(o,s,n))}else{const r=s[e(4443)]||{};if(o.color=new Color(1,1,1),o.opacity=1,Array[e(468)](r.baseColorFactor)){const t=r[e(4505)];o[e(2231)][e(1890)](t),o[e(2286)]=t[3]}void 0!==r[e(4510)]&&l[e(565)](n[e(5797)](o,e(679),r[e(4510)],sRGBEncoding)),o.metalness=void 0!==r.metallicFactor?r[e(4445)]:1,o.roughness=void 0!==r[e(4444)]?r[e(4444)]:1,void 0!==r[e(4446)]&&(l[e(565)](n[e(5797)](o,e(2268),r[e(4446)])),l[e(565)](n.assignTexture(o,e(2267),r[e(4446)]))),a=this[e(5903)]((function(n){var r=e;return n[r(5801)]&&n[r(5801)](t)})),l[e(565)](Promise[e(515)](this[e(4440)]((function(n){return n[e(5799)]&&n.extendMaterialParams(t,o)}))))}!0===s.doubleSided&&(o[e(2196)]=DoubleSide);const h=s[e(4451)]||ALPHA_MODES.OPAQUE;if(h===ALPHA_MODES.BLEND?(o.transparent=!0,o[e(2203)]=!1):(o[e(2197)]=!1,h===ALPHA_MODES[e(5882)]&&(o.alphaTest=void 0!==s[e(5930)]?s[e(5930)]:.5)),void 0!==s[e(5931)]&&a!==MeshBasicMaterial&&(l[e(565)](n[e(5797)](o,"normalMap",s[e(5931)])),o[e(2263)]=new Vector2(1,1),void 0!==s[e(5931)][e(1901)])){const t=s.normalTexture[e(1901)];o[e(2263)].set(t,t)}return void 0!==s.occlusionTexture&&a!==MeshBasicMaterial&&(l[e(565)](n[e(5797)](o,"aoMap",s.occlusionTexture)),void 0!==s[e(4450)][e(4449)]&&(o.aoMapIntensity=s[e(4450)][e(4449)])),void 0!==s[e(4447)]&&a!==MeshBasicMaterial&&(o[e(2236)]=(new Color).fromArray(s[e(4447)])),void 0!==s.emissiveTexture&&a!==MeshBasicMaterial&&l.push(n.assignTexture(o,e(2269),s[e(4448)],sRGBEncoding)),Promise[e(515)](l)[e(829)]((function(){var r=e;let c;return c=a===GLTFMeshStandardSGMaterial?i[EXTENSIONS[r(5770)]][r(5881)](o):new a(o),s.name&&(c[r(542)]=s.name),assignExtrasToUserData(c,s),n[r(5885)].set(c,{materials:t}),s[r(2386)]&&addUnknownExtensionsToUserData(i,c,s),c}))}[nz(5794)](t){var e=nz;const n=PropertyBinding.sanitizeNodeName(t||"");let r=n;for(let t=1;this[e(5890)][r];++t)r=n+"_"+t;return this.nodeNamesUsed[r]=!0,r}loadGeometries(t){var e=nz;const n=this,r=this[e(2386)],i=this[e(5886)];function s(t){var i=e;return r[EXTENSIONS[i(5771)]][i(5848)](t,n)[i(829)]((function(e){return addPrimitiveAttributes(e,t,n)}))}const a=[];for(let r=0,o=t[e(449)];r0&&updateMorphTargets(d,s),d[o(542)]=n[o(5794)](s[o(542)]||"mesh_"+t),assignExtrasToUserData(d,s),u.extensions&&addUnknownExtensionsToUserData(i,d,u),n.assignFinalMaterial(d),h[o(565)](d)}for(let e=0,r=h[o(449)];e1?new Group:1===n[o(449)]?n[0]:new Object3D,c!==n[0])for(let t=0,e=n[o(449)];t{var e=f;const n=new Map;for(const[t,r]of s[e(5885)])(t instanceof Material||t instanceof Texture)&&n[e(540)](t,r);return t[e(2152)]((t=>{var r=e;const i=s[r(5885)][r(427)](t);null!=i&&n.set(t,i)})),n})(a),a}))}};function buildNodeHierarchy(t,e,n,r){var i=nz;const s=n[i(2181)][t];return r[i(5830)](i(1626),t)[i(829)]((function(t){var e=i;if(void 0===s[e(4485)])return t;let n;return r[e(5830)](e(4485),s[e(4485)])[e(829)]((function(t){var i=e;n=t;const s=[];for(let t=0,e=n.joints[i(449)];t{var s=e;const a=this[s(3749)],o=this[s(5715)],c=a[s(3748)]("path.gltf")||new GLTFLoader(a);"include"===o[s(3834)]&&o[s(5832)]===s(5954)&&c[s(3754)](s(5893)),s(3834)in o&&c[s(3755)](o[s(3834)]===s(3761)),o.headers&&c[s(3758)](o[s(1073)]);let l=this[s(5753)];!/[\\/]$/[s(467)](l)&&l.length&&(l+="/");const h=this[s(5952)];c[s(1087)](r,l,(e=>{var r=s;const{batchTable:i,featureTable:a}=n,{scene:o}=e,c=a[r(4852)](r(5955));c&&(o[r(2065)].x+=c[0],o[r(2065)].y+=c[1],o.position.z+=c[2]),e[r(4758)][r(2127)](),e.scene[r(1963)].multiply(h),e.scene[r(1963)][r(2103)](e[r(4758)][r(2065)],e.scene[r(2128)],e[r(4758)][r(1901)]),e[r(5956)]=i,e[r(5957)]=a,o[r(5956)]=i,o.featureTable=a,t(e)}),i)}))}},PNTSLoaderBase=class extends LoaderBase{[nz(1087)](t){var e=nz;const n=new DataView(t),r=readMagicBytes(n);console.assert(r===e(5958));const i=n.getUint32(4,!0);console[e(4790)](1===i);const s=n.getUint32(8,!0);console[e(4790)](s===t[e(702)]);const a=n[e(1812)](12,!0),o=n.getUint32(16,!0),c=n[e(1812)](20,!0),l=n[e(1812)](24,!0),h=t.slice(28,28+a+o),u=new FeatureTable(h,0,a,o),d=28+a+o,f=t.slice(d,d+c+l),p=new BatchTable(f,u[e(4852)](e(5758))||u[e(4852)](e(5959)),0,c,l);return Promise[e(440)]({version:i,featureTable:u,batchTable:p})}},PNTSLoader=class extends PNTSLoaderBase{constructor(t=DefaultLoadingManager){var e=nz;super(),this[e(3749)]=t}[nz(1087)](t){var e=nz;return super[e(1087)](t)[e(829)]((t=>{var n=e;const{featureTable:r}=t,i=r.getData("POINTS_LENGTH"),s=r[n(4852)](n(4345),i,"FLOAT",n(4422)),a=r[n(4852)](n(5960),i,n(4413),"VEC3");[n(5961),n(5962),n(5963),n(5758),"POSITION_QUANTIZED","RGBA",n(5964),"NORMAL",n(5965)][n(604)]((t=>{var e=n;t in r.header&&console[e(1176)](e(5966)+t+'" detected.')}));const o=new BufferGeometry;o[n(2334)]("position",new BufferAttribute(s,3,!1));const c=new PointsMaterial;c[n(753)]=2,c[n(2284)]=!1,null!==a&&(o[n(2334)](n(2231),new BufferAttribute(a,3,!0)),c.vertexColors=!0);const l=new Points(o,c);t.scene=l,t.scene.featureTable=r;const h=r[n(4852)](n(5955));return h&&(t.scene[n(2065)].x+=h[0],t[n(4758)].position.y+=h[1],t[n(4758)][n(2065)].z+=h[2]),t}))}},I3DMLoaderBase=class extends LoaderBase{parse(t){var e=nz;const n=new DataView(t),r=readMagicBytes(n);console[e(4790)](r===e(5967));const i=n[e(1812)](4,!0);console[e(4790)](1===i);const s=n[e(1812)](8,!0);console.assert(s===t.byteLength);const a=n[e(1812)](12,!0),o=n[e(1812)](16,!0),c=n[e(1812)](20,!0),l=n.getUint32(24,!0),h=n[e(1812)](28,!0),u=t.slice(32,32+a+o),d=new FeatureTable(u,0,a,o),f=32+a+o,p=t.slice(f,f+c+l),m=new BatchTable(p,d.getData(e(5968)),0,c,l),v=f+c+l,_=new Uint8Array(t,v,s-v);let g=null,y=null;if(h)g=_,y=Promise[e(440)]();else{const t=this[e(5754)](arrayToString(_));y=fetch(t,this.fetchOptions)[e(829)]((n=>{var r=e;if(!n.ok)throw new Error(r(5969)+t+r(5731)+n[r(1637)]+r(5732)+n[r(3772)]);return n[r(3774)]()}))[e(829)]((t=>{g=new Uint8Array(t)}))}return y[e(829)]((()=>({version:i,featureTable:d,batchTable:m,glbBytes:g})))}},tempFwd=new Vector3,tempUp=new Vector3,tempRight=new Vector3,tempPos=new Vector3,tempQuat=new Quaternion,tempSca=new Vector3,tempMat=new Matrix4,I3DMLoader=class extends I3DMLoaderBase{constructor(t=DefaultLoadingManager){super(),this.manager=t,this.adjustmentTransform=new Matrix4}[nz(5754)](t){var e=nz;return this[e(3749)][e(3744)](super.resolveExternalURL(t))}parse(t){var e=nz;return super[e(1087)](t)[e(829)]((t=>{var n=e;const{featureTable:r,batchTable:i}=t,s=t[n(5953)][n(497)]().buffer;return new Promise(((t,e)=>{var a=n;const o=this[a(5715)],c=this.manager,l=c[a(3748)](a(5970))||new GLTFLoader(c);"include"===o.credentials&&o.mode===a(5954)&&l[a(3754)](a(5893)),"credentials"in o&&l[a(3755)](o[a(3834)]===a(3761)),o[a(1073)]&&l[a(3758)](o[a(1073)]);let h=this.workingPath;!/[\\/]$/[a(467)](h)&&(h+="/");const u=this[a(5952)];l[a(1087)](s,h,(e=>{var n=a;const s=r.getData(n(5968)),o=r[n(4852)]("POSITION",s,n(4425),n(4422)),c=r[n(4852)](n(5971),s,n(4425),n(4422)),l=r[n(4852)](n(5972),s,"FLOAT","VEC3"),h=r[n(4852)](n(5973),s,n(4425),n(4422)),d=r.getData(n(5841),s,n(4425),n(4420));[n(5955),n(5961),n(5962),"EAST_NORTH_UP","POSITION_QUANTIZED",n(5974),"NORMAL_RIGHT_OCT32P"].forEach((t=>{var e=n;t in r[e(5744)]&&console[e(1176)](e(5975)+t+'" detected.')}));const f=new Map,p=[];e[n(4758)].traverse((t=>{var e=n;if(t[e(2168)]){const{geometry:n,material:r}=t,i=new InstancedMesh(n,r,s);i[e(2065)][e(1867)](t[e(2065)]),i.rotation.copy(t[e(1961)]),i.scale[e(1867)](t[e(1901)]),p[e(565)](i),f[e(540)](t,i)}}));const m=new Vector3;for(let t=0;t{var r=n;const i=e[r(840)];i&&(i[r(1204)](e),i.add(t),t[r(2155)](),t[r(2065)][r(1867)](m)[r(2028)](t[r(2033)]))}));for(let t=0;t{var n=e;const r=new Group;return t[n(604)]((t=>{r[n(747)](t.scene)})),{tiles:t,scene:r}}))}},GLTFCesiumRTCExtension=class{constructor(){var t=nz;this[t(542)]=t(5979)}afterRoot(t){var e=nz;if(t[e(5786)].json[e(2386)]&&t[e(5786)][e(3777)].extensions.CESIUM_RTC){const{center:n}=t[e(5786)].json.extensions.CESIUM_RTC;n&&(t.scene[e(2065)].x+=n[0],t[e(4758)][e(2065)].y+=n[1],t[e(4758)][e(2065)].z+=n[2])}}},GLTFExtensionLoader=class extends LoaderBase{constructor(t=DefaultLoadingManager){var e=nz;super(),this[e(3749)]=t}[nz(1087)](t){return new Promise(((e,n)=>{var r=f;const i=this[r(3749)],s=this[r(5715)];let a=i[r(3748)](r(5970))||i[r(3748)]("path.glb");!a&&(a=new GLTFLoader(i),a[r(4371)]((()=>new GLTFCesiumRTCExtension)),s[r(3834)]===r(3761)&&s[r(5832)]===r(5954)&&a[r(3754)]("use-credentials"),r(3834)in s&&a[r(3755)](s[r(3834)]===r(3761)),s[r(1073)]&&a[r(3758)](s.headers));let o=a[r(3753)]||a.path||this.workingPath;!/[\\/]$/.test(o)&&o[r(449)]&&(o+="/"),a.parse(t,o,(t=>{e(t)}),n)}))}},tempMat2=new Matrix4,TilesGroup=class extends Group{constructor(t){var e=nz;super(),this[e(542)]="TilesRenderer.TilesGroup",this[e(5980)]=t}[nz(2360)](t,e){var n=nz;this.tilesRenderer[n(5981)]&&this[n(5980)][n(2360)](t,e)}updateMatrixWorld(t){var e=nz;if(this[e(1962)]&&this[e(2127)](),this[e(2121)]||t){null===this.parent?tempMat2.copy(this[e(1963)]):tempMat2[e(1896)](this.parent[e(2033)],this[e(1963)]),this[e(2121)]=!1;const t=tempMat2[e(1874)],n=this[e(2033)][e(1874)];let r=!1;for(let i=0;i<16;i++){const s=t[i],a=n[i];if(Math[e(694)](s-a)>Number.EPSILON){r=!0;break}}if(r){this[e(2033)][e(1867)](tempMat2);const t=this[e(1602)];for(let n=0,r=t.length;n=n&&o<=r&&c>=i&&c<=s){const n=getVector(t);d[e(565)](n),this.getCartographicToPosition(o,c,l,n)}}}return d}[nz(2077)](t,e){var n=nz;resetPool();const{latStart:r,latEnd:i,lonStart:s,lonEnd:a}=this;if(i-r{var i=r;Object[i(424)](t).raycast[i(429)](t,e,n)}))}function raycastTraverseFirstHit(t,e,n,r){var i=nz;if(n[i(546)](t)){if(intersectTileScene(t[i(5991)][i(4758)],r,_hitArray),_hitArray.length>0){_hitArray[i(449)]>1&&_hitArray.sort(distanceSort);const t=_hitArray[0];return _hitArray[i(449)]=0,t}return null}const s=[],a=t.children;for(let t=0,n=a[i(449)];t1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when raycasting.");const e={distance:1/0,tile:null};s[i(565)](e),e[i(3018)]=_vec2.distanceToSquared(_ray3[i(1103)])*t*t,e[i(5993)]=n}}}s[i(688)](distanceSort);let o=1/0,c=null;for(let t=0,a=s[i(449)];to)break;{const t=a[i(5993)],s=t[i(5991)][i(4758)];let l=null;if(n[i(546)](t)?(intersectTileScene(s,r,_hitArray),_hitArray.length>0&&(_hitArray.length>1&&_hitArray[i(688)](distanceSort),l=_hitArray[0])):l=raycastTraverseFirstHit(t,e,n,r),l){const t=l[i(3018)]*l[i(3018)];t{t.frustumCulled=t[INITIAL_FRUSTUM_CULLED]&&e}))}var TilesRenderer=class extends TilesRendererBase{get[nz(5994)](){return this._autoDisableRendererCulling}set[nz(5994)](t){var e=nz;this[e(5995)]!==t&&(super[e(5995)]=t,this[e(5996)]((e=>{updateFrustumCulled(e,!t)})))}constructor(...t){var e=nz;super(...t),this[e(3010)]=new TilesGroup(this),this[e(3251)]=[],this[e(5997)]=new Map,this.cameraInfo=[],this[e(5998)]=new Set,this[e(5999)]=new Set,this[e(5995)]=!0,this[e(5981)]=!0,this[e(6e3)]=null,this[e(6001)]=null,this[e(6002)]=null,this[e(6003)]=null;const n=new LoadingManager;n[e(3745)]((t=>{var n=e;return this.preprocessURL?this[n(5716)](t):t})),this[e(3749)]=n;const r=this;this[e(6004)]=function(t,n){var i=e;!r[i(5981)]&&Object[i(424)](this)[i(2360)][i(429)](this,t,n)}}getBounds(t){var e=nz;if(!this[e(1163)])return!1;const n=this[e(1163)][e(5991)],r=n[e(4144)],i=n.boxTransform;return!!r&&(t.copy(r),t[e(2028)](i),!0)}[nz(6005)](t,e){var n=nz;if(!this[n(1163)])return!1;const r=this[n(1163)].cached,i=r[n(4144)],s=r.boxTransform;return!!i&&(t[n(1867)](i),e.copy(s),!0)}getBoundingSphere(t){var e=nz;if(!this[e(1163)])return!1;const n=this[e(1163)][e(5991)][e(4202)];return!!n&&(t[e(1867)](n),!0)}[nz(5996)](t){this.traverse((e=>{var n=f;const r=e[n(5991)][n(4758)];r&&t(r,e)}))}[nz(2360)](t,e){var n=nz;if(this[n(1163)])if(t[n(4226)]){const r=raycastTraverseFirstHit(this[n(1163)],this[n(3010)],this[n(5998)],t);r&&e[n(565)](r)}else raycastTraverse(this[n(1163)],this[n(3010)],this[n(5998)],t,e)}hasCamera(t){var e=nz;return this[e(5997)][e(546)](t)}[nz(6006)](t){var e=nz;const n=this.cameras,r=this[e(5997)];return!r[e(546)](t)&&(r[e(540)](t,new Vector2),n[e(565)](t),!0)}[nz(6007)](t,e,n){var r=nz;const i=this[r(5997)];return!!i.has(t)&&(e instanceof Vector2?i[r(427)](t)[r(1867)](e):i.get(t)[r(540)](e,n),!0)}setResolutionFromRenderer(t,e){var n=nz;const r=this.cameraMap;if(!r[n(546)](t))return!1;const i=r[n(427)](t);return e[n(2060)](i),i[n(1878)](e.getPixelRatio()),!0}[nz(6008)](t){var e=nz;const n=this[e(3251)],r=this[e(5997)];if(r.has(t)){const i=n.indexOf(t);return n.splice(i,1),r[e(748)](t),!0}return!1}[nz(5729)](t,...e){var n=nz;const r=super.fetchTileSet(t,...e);return r[n(829)]((e=>{var r=n;this[r(6e3)]&&Promise.resolve().then((()=>{this[r(6e3)](e,t)}))})),r}[nz(1067)](){var t=nz;const e=this[t(3010)],n=this[t(3251)],r=this[t(5997)],i=this[t(6009)];if(0===n.length)return void console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");for(;i.length>n[t(449)];)i[t(1161)]();for(;i[t(449)]1e-6&&console[t(1176)](t(6010));for(let a=0,o=i[t(449)];at[r(4758)]));break}case"pnts":{const e=new PNTSLoader(o);e[r(5753)]=s,e[r(5715)]=a,l=e.parse(t)[r(829)]((t=>t[r(4758)]));break}case r(5967):{const e=new I3DMLoader(o);e[r(5753)]=s,e[r(5715)]=a,e.adjustmentTransform[r(1867)](tempMat3),l=e[r(1087)](t)[r(829)]((t=>t[r(4758)]));break}case"cmpt":{const e=new CMPTLoader(o);e.workingPath=s,e[r(5715)]=a,e.adjustmentTransform[r(1867)](tempMat3),l=e.parse(t).then((t=>t.scene));break}case r(6015):case r(6016):const e=new GLTFExtensionLoader(o);e[r(5753)]=s,e[r(5715)]=a,l=e[r(1087)](t).then((t=>t[r(4758)]));break;default:console[r(1176)](r(6017)+f+r(6018)),l=Promise[r(440)](null)}return l[r(829)]((t=>{var n=r;if(e[n(6013)]!==c)return;t[n(2127)](),("glb"===f||f===n(6015))&&t.matrix[n(1558)](tempMat3),t.matrix[n(2017)](d),t.matrix.decompose(t[n(2065)],t.quaternion,t[n(1901)]),t[n(2152)]((t=>{var e=n;t[INITIAL_FRUSTUM_CULLED]=t[e(2124)]})),updateFrustumCulled(t,!this[n(5994)]),u[n(4758)]=t,t[n(2152)]((t=>{var e=n;t[e(2360)]=this[e(6004)]}));const i=[],s=[],a=[];t[n(2152)]((t=>{var e=n;if(t[e(2063)]&&s[e(565)](t[e(2063)]),t.material){const n=t[e(2178)];i[e(565)](t[e(2178)]);for(const t in n){const r=n[t];r&&r.isTexture&&a[e(565)](r)}}})),u.materials=i,u.geometry=s,u[n(1976)]=a,this[n(6001)]&&this.onLoadModel(t,e)}))}[nz(5737)](t){var e=nz;const n=t[e(5991)];if(n[e(4758)]){const r=n[e(2179)],i=n[e(2063)],s=n[e(1976)],a=n[e(4758)].parent;for(let t=0,n=i[e(449)];t=a+1e3&&(c[e(1067)](1e3*o/(n-a),100),a=n,o=0,h)){var r=performance[e(2712)];h.update(r[e(6034)]/1048576,r[e(4316)]/1048576)}return n},update:function(){s=this[t(887)]()},domElement:n,setMode:i}};Stats[nz(6026)]=function(t,e,n){var r=nz,i=1/0,s=0,a=Math[r(784)],o=a(window[r(4876)]||1),c=80*o,l=48*o,h=3*o,u=2*o,d=3*o,f=15*o,p=74*o,m=30*o,v=document.createElement(r(1939));v[r(999)]=c,v[r(1e3)]=l,v.style[r(5651)]="width:80px;height:48px";var _=v[r(1027)]("2d");return _[r(904)]=r(6035)+9*o+"px Helvetica,Arial,sans-serif",_[r(6036)]=r(2651),_[r(4409)]=n,_[r(6037)](0,0,c,l),_[r(4409)]=e,_[r(6038)](t,h,u),_.fillRect(d,f,p,m),_[r(4409)]=n,_[r(6039)]=.9,_[r(6037)](d,f,p,m),{dom:v,update:function(l,g){var y=r;i=Math.min(i,l),s=Math[y(486)](s,l),_.fillStyle=n,_[y(6039)]=1,_.fillRect(0,0,c,f),_[y(4409)]=e,_[y(6038)](a(l)+" "+t+" ("+a(i)+"-"+a(s)+")",h,u),_[y(4411)](v,d+o,f,p-o,m,d,f,p-o,m),_[y(6037)](d+p-o,f,o,m),_[y(4409)]=n,_[y(6039)]=.9,_[y(6037)](d+p-o,f,o,a((1-l/g)*m))}}};var stats_module_default=Stats,Pass=class{constructor(){var t=nz;this[t(2407)]=!0,this.needsSwap=!0,this[t(750)]=!1,this[t(6040)]=!1}[nz(1996)](){}[nz(2418)](){var t=nz;console.error(t(6041))}dispose(){}},_camera2=new OrthographicCamera(-1,1,1,-1,0,1),_geometry2=new BufferGeometry;_geometry2.setAttribute(nz(2065),new Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),_geometry2[nz(2334)]("uv",new Float32BufferAttribute([0,2,0,0,2,0],2));var FullScreenQuad=class{constructor(t){this[nz(6042)]=new Mesh(_geometry2,t)}dispose(){var t=nz;this[t(6042)].geometry[t(1979)]()}[nz(2418)](t){t[nz(2418)](this._mesh,_camera2)}get material(){var t=nz;return this[t(6042)][t(2178)]}set material(t){this[nz(6042)].material=t}},ConvolutionShader={defines:{KERNEL_SIZE_FLOAT:nz(6043),KERNEL_SIZE_INT:"25"},uniforms:{tDiffuse:{value:null},uImageIncrement:{value:new Vector2(.001953125,0)},cKernel:{value:[]}},vertexShader:"\n\n\t\tuniform vec2 uImageIncrement;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:nz(6044),buildKernel:function(t){let e=2*Math[nz(561)](3*t)+1;e>25&&(e=25);const n=.5*(e-1),r=new Array(e);let i=0;for(let s=0;s0){t[s(2677)](this[s(6122)]),this.oldClearAlpha=t[s(3404)]();const e=t.autoClear;t[s(2592)]=!1,i&&t.state[s(2599)][s(3307)][s(3082)](!1),t.setClearColor(16777215,1),this[s(6128)](!1);const r=this.renderScene.background;if(this[s(6088)].background=null,this[s(6088)].overrideMaterial=this[s(6100)],t[s(2417)](this.renderTargetDepthBuffer),t[s(750)](),t[s(2418)](this[s(6088)],this.renderCamera),this[s(6128)](!0),this[s(6097)].clear(),this[s(6130)](),this[s(6129)](!1),this[s(6088)][s(3436)]=this[s(6101)],this[s(6101)].uniforms[s(6131)][s(439)].set(this[s(6089)][s(2365)],this.renderCamera[s(2366)]),this.prepareMaskMaterial.uniforms[s(1994)][s(439)]=this[s(6103)][s(1991)],this[s(6101)][s(2377)].textureMatrix.value=this[s(6125)],t[s(2417)](this[s(6098)]),t.clear(),t[s(2418)](this[s(6088)],this.renderCamera),this[s(6088)][s(3436)]=null,this[s(6129)](!0),this[s(6097)][s(750)](),this[s(6088)][s(2166)]=r,this[s(6058)][s(2178)]=this[s(6121)],this[s(6120)].tDiffuse.value=this[s(6098)][s(1991)],t[s(2417)](this[s(6106)]),t[s(750)](),this[s(6058)][s(2418)](t),this[s(6132)][s(1867)](this[s(6133)]),this[s(6124)][s(1867)](this[s(6134)]),this.pulsePeriod>0){const t=.625+.75*Math[s(1852)](.01*performance[s(802)]()/this.pulsePeriod)/2;this.tempPulseColor1[s(1878)](t),this[s(6124)][s(1878)](t)}this[s(6058)][s(2178)]=this[s(6127)],this[s(6127)][s(2377)][s(6135)][s(439)]=this.renderTargetMaskDownSampleBuffer.texture,this[s(6127)][s(2377)][s(6115)][s(439)].set(this.renderTargetMaskDownSampleBuffer[s(999)],this[s(6106)].height),this[s(6127)][s(2377)][s(6133)][s(439)]=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms[s(6134)][s(439)]=this[s(6124)],t.setRenderTarget(this[s(6110)]),t.clear(),this.fsQuad[s(2418)](t),this[s(6058)][s(2178)]=this[s(6113)],this[s(6113)][s(2377)][s(3326)][s(439)]=this[s(6110)][s(1991)],this[s(6113)][s(2377)][s(2079)][s(439)]=OutlinePass[s(6136)],this[s(6113)].uniforms.kernelRadius.value=this[s(6093)],t.setRenderTarget(this.renderTargetBlurBuffer1),t[s(750)](),this[s(6058)][s(2418)](t),this.separableBlurMaterial1.uniforms[s(3326)][s(439)]=this[s(6107)][s(1991)],this.separableBlurMaterial1[s(2377)][s(2079)][s(439)]=OutlinePass[s(6137)],t.setRenderTarget(this[s(6110)]),t.clear(),this[s(6058)][s(2418)](t),this[s(6058)][s(2178)]=this.separableBlurMaterial2,this[s(6117)][s(2377)][s(3326)][s(439)]=this[s(6110)][s(1991)],this[s(6117)].uniforms[s(2079)][s(439)]=OutlinePass.BlurDirectionX,t[s(2417)](this.renderTargetBlurBuffer2),t[s(750)](),this[s(6058)][s(2418)](t),this[s(6117)][s(2377)][s(3326)][s(439)]=this[s(6108)][s(1991)],this[s(6117)][s(2377)][s(2079)][s(439)]=OutlinePass[s(6137)],t.setRenderTarget(this[s(6112)]),t[s(750)](),this[s(6058)][s(2418)](t),this[s(6058)].material=this[s(6118)],this[s(6118)][s(2377)].maskTexture[s(439)]=this.renderTargetMaskBuffer[s(1991)],this[s(6118)][s(2377)][s(6138)][s(439)]=this.renderTargetEdgeBuffer1[s(1991)],this[s(6118)].uniforms[s(6139)][s(439)]=this[s(6112)][s(1991)],this.overlayMaterial[s(2377)][s(6140)][s(439)]=this[s(6140)],this.overlayMaterial[s(2377)][s(6094)][s(439)]=this[s(6094)],this[s(6118)][s(2377)][s(6091)][s(439)]=this[s(6091)],this[s(6118)][s(2377)][s(6092)][s(439)]=this.usePatternTexture,i&&t[s(545)][s(2599)][s(3307)][s(3082)](!0),t[s(2417)](n),this.fsQuad[s(2418)](t),t[s(3403)](this[s(6122)],this[s(6123)]),t.autoClear=e}this[s(6040)]&&(this[s(6058)].material=this[s(6121)],this[s(6120)].tDiffuse[s(439)]=n[s(1991)],t[s(2417)](null),this[s(6058)].render(t))}[nz(6102)](){var t=nz;return new ShaderMaterial({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new Vector2(.5,.5)},textureMatrix:{value:null}},vertexShader:t(6141),fragmentShader:t(6142)})}[nz(6143)](){var t=nz;return new ShaderMaterial({uniforms:{maskTexture:{value:null},texSize:{value:new Vector2(.5,.5)},visibleEdgeColor:{value:new Vector3(1,1,1)},hiddenEdgeColor:{value:new Vector3(1,1,1)}},vertexShader:t(6144),fragmentShader:t(6145)})}[nz(6114)](t){var e=nz;return new ShaderMaterial({defines:{MAX_RADIUS:t},uniforms:{colorTexture:{value:null},texSize:{value:new Vector2(.5,.5)},direction:{value:new Vector2(.5,.5)},kernelRadius:{value:1}},vertexShader:e(6144),fragmentShader:e(6146)})}[nz(6147)](){var t=nz;return new ShaderMaterial({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:t(6144),fragmentShader:t(6148),blending:AdditiveBlending,depthTest:!1,depthWrite:!1,transparent:!0})}};OutlinePass.BlurDirectionX=new Vector2(1,0),OutlinePass.BlurDirectionY=new Vector2(0,1);var RenderPass=class extends Pass{constructor(t,e,n,r,i){var s=nz;super(),this[s(4758)]=t,this[s(3045)]=e,this[s(3436)]=n,this[s(3134)]=r,this[s(6149)]=void 0!==i?i:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this[s(6122)]=new Color}[nz(2418)](t,e,n){var r=nz;const i=t[r(2592)];let s,a;t[r(2592)]=!1,void 0!==this[r(3436)]&&(a=this.scene[r(3436)],this[r(4758)][r(3436)]=this[r(3436)]),this[r(3134)]&&(t[r(2677)](this[r(6122)]),s=t[r(3404)](),t.setClearColor(this[r(3134)],this[r(6149)])),this[r(3135)]&&t[r(3135)](),t.setRenderTarget(this[r(6040)]?null:n),this.clear&&t[r(750)](t[r(6066)],t[r(3376)],t[r(2593)]),t.render(this[r(4758)],this[r(3045)]),this.clearColor&&t.setClearColor(this._oldClearColor,s),void 0!==this[r(3436)]&&(this.scene[r(3436)]=a),t[r(2592)]=i}},SAOShader={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new Vector2(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new Matrix4},cameraInverseProjectionMatrix:{value:new Matrix4},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:nz(6150),fragmentShader:nz(6151)},DepthLimitedBlurShader={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new Vector2(512,512)},sampleUvOffsets:{value:[new Vector2(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:nz(6152),fragmentShader:"\n\n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float depthCutoff;\n\n\t\tuniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];\n\t\tuniform float sampleWeights[ KERNEL_RADIUS + 1 ];\n\n\t\tvarying vec2 vUv;\n\t\tvarying vec2 vInvSize;\n\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvoid main() {\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tif( depth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\n\t\t\tfloat centerViewZ = -getViewZ( depth );\n\t\t\tbool rBreak = false, lBreak = false;\n\n\t\t\tfloat weightSum = sampleWeights[0];\n\t\t\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;\n\n\t\t\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n\t\t\t\tfloat sampleWeight = sampleWeights[i];\n\t\t\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;\n\n\t\t\t\tvec2 sampleUv = vUv + sampleUvOffset;\n\t\t\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;\n\n\t\t\t\tif( ! rBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t\tsampleUv = vUv - sampleUvOffset;\n\t\t\t\tviewZ = -getViewZ( getDepth( sampleUv ) );\n\n\t\t\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;\n\n\t\t\t\tif( ! lBreak ) {\n\t\t\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;\n\t\t\t\t\tweightSum += sampleWeight;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgl_FragColor = diffuseSum / weightSum;\n\t\t}"},BlurShaderUtils={createSampleWeights:function(t,e){var n=nz;const r=[];for(let i=0;i<=t;i++)r[n(565)](gaussian(i,e));return r},createSampleOffsets:function(t,e){var n=nz;const r=[];for(let i=0;i<=t;i++)r.push(e.clone()[n(1878)](i));return r},configure:function(t,e,n,r){var i=nz;t[i(2376)][i(6153)]=e,t[i(2377)][i(6154)].value=BlurShaderUtils.createSampleOffsets(e,r),t[i(2377)][i(6155)][i(439)]=BlurShaderUtils[i(6156)](e,n),t[i(1948)]=!0}};function gaussian(t,e){var n=nz;return Math.exp(-t*t/(e*e*2))/(Math[n(761)](2*Math.PI)*e)}var UnpackDepthRGBAShader={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:nz(6061),fragmentShader:nz(6157)},SAOPass=class extends Pass{constructor(t,e,n=!1,r=!1,i=new Vector2(256,256)){var s=nz;let a;super(),this.scene=t,this.camera=e,this.clear=!0,this[s(6057)]=!1,this[s(6158)]=n,this.supportsNormalTexture=r,this[s(6159)]=new Color,this._oldClearColor=new Color,this[s(6123)]=1,this[s(3536)]={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this[s(3095)]=new Vector2(i.x,i.y),this.saoRenderTarget=new WebGLRenderTarget(this[s(3095)].x,this[s(3095)].y),this[s(6160)]=this[s(6161)][s(1014)](),this[s(6162)]=this[s(6161)].clone(),this.normalRenderTarget=new WebGLRenderTarget(this[s(3095)].x,this[s(3095)].y,{minFilter:NearestFilter,magFilter:NearestFilter}),this[s(6163)]=this.normalRenderTarget[s(1014)](),this[s(6158)]&&(a=new DepthTexture,a[s(452)]=UnsignedShortType,this[s(6162)][s(1994)]=a,this[s(6162)][s(1992)]=!0),this.depthMaterial=new MeshDepthMaterial,this.depthMaterial[s(2944)]=RGBADepthPacking,this[s(6100)][s(2195)]=NoBlending,this[s(6164)]=new MeshNormalMaterial,this[s(6164)][s(2195)]=NoBlending,void 0===SAOShader&&console[s(819)](s(6165)),this[s(6166)]=new ShaderMaterial({defines:Object[s(501)]({},SAOShader[s(2376)]),fragmentShader:SAOShader[s(2379)],vertexShader:SAOShader.vertexShader,uniforms:UniformsUtils[s(1014)](SAOShader[s(2377)])}),this.saoMaterial[s(2386)].derivatives=!0,this[s(6166)][s(2376)][s(6167)]=this[s(6158)]?0:1,this.saoMaterial[s(2376)][s(6168)]=this[s(6169)]?1:0,this[s(6166)][s(2376)][s(6170)]=this.camera[s(2390)]?1:0,this.saoMaterial[s(2377)][s(6171)][s(439)]=this[s(6158)]?a:this[s(6163)].texture,this.saoMaterial[s(2377)][s(6172)].value=this[s(6173)][s(1991)],this[s(6166)][s(2377)][s(753)].value[s(540)](this[s(3095)].x,this[s(3095)].y),this[s(6166)][s(2377)].cameraInverseProjectionMatrix[s(439)].copy(this.camera[s(2389)]),this[s(6166)][s(2377)][s(6174)][s(439)]=this[s(3045)].projectionMatrix,this[s(6166)][s(2195)]=NoBlending,void 0===DepthLimitedBlurShader&&console[s(819)](s(6175)),this[s(6176)]=new ShaderMaterial({uniforms:UniformsUtils[s(1014)](DepthLimitedBlurShader[s(2377)]),defines:Object[s(501)]({},DepthLimitedBlurShader[s(2376)]),vertexShader:DepthLimitedBlurShader[s(2385)],fragmentShader:DepthLimitedBlurShader[s(2379)]}),this.vBlurMaterial[s(2376)].DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this[s(6176)].defines[s(6170)]=this[s(3045)][s(2390)]?1:0,this[s(6176)][s(2377)].tDiffuse[s(439)]=this[s(6161)][s(1991)],this[s(6176)][s(2377)][s(6171)].value=this.supportsDepthTextureExtension?a:this[s(6163)][s(1991)],this[s(6176)][s(2377)][s(753)][s(439)][s(540)](this[s(3095)].x,this[s(3095)].y),this[s(6176)][s(2195)]=NoBlending,this[s(6177)]=new ShaderMaterial({uniforms:UniformsUtils[s(1014)](DepthLimitedBlurShader[s(2377)]),defines:Object.assign({},DepthLimitedBlurShader[s(2376)]),vertexShader:DepthLimitedBlurShader[s(2385)],fragmentShader:DepthLimitedBlurShader[s(2379)]}),this[s(6177)].defines[s(6167)]=this.supportsDepthTextureExtension?0:1,this[s(6177)][s(2376)][s(6170)]=this[s(3045)][s(2390)]?1:0,this[s(6177)][s(2377)][s(6059)].value=this[s(6160)][s(1991)],this[s(6177)].uniforms[s(6171)][s(439)]=this.supportsDepthTextureExtension?a:this[s(6163)][s(1991)],this[s(6177)].uniforms.size.value[s(540)](this[s(3095)].x,this[s(3095)].y),this[s(6177)][s(2195)]=NoBlending,void 0===CopyShader&&console[s(819)](s(6178)),this[s(6121)]=new ShaderMaterial({uniforms:UniformsUtils[s(1014)](CopyShader[s(2377)]),vertexShader:CopyShader.vertexShader,fragmentShader:CopyShader[s(2379)],blending:NoBlending}),this[s(6121)][s(2197)]=!0,this[s(6121)][s(2288)]=!1,this[s(6121)][s(2203)]=!1,this[s(6121)][s(2195)]=CustomBlending,this[s(6121)][s(2198)]=DstColorFactor,this[s(6121)].blendDst=ZeroFactor,this[s(6121)][s(2200)]=AddEquation,this[s(6121)][s(2201)]=DstAlphaFactor,this[s(6121)][s(2300)]=ZeroFactor,this[s(6121)].blendEquationAlpha=AddEquation,void 0===UnpackDepthRGBAShader&&console[s(819)](s(6179)),this[s(6180)]=new ShaderMaterial({uniforms:UniformsUtils[s(1014)](UnpackDepthRGBAShader.uniforms),vertexShader:UnpackDepthRGBAShader.vertexShader,fragmentShader:UnpackDepthRGBAShader[s(2379)],blending:NoBlending}),this[s(6058)]=new FullScreenQuad(null)}[nz(2418)](t,e,n){var r=nz;if(this[r(6040)]&&(this.materialCopy[r(2195)]=NoBlending,this[r(6121)].uniforms[r(6059)][r(439)]=n.texture,this.materialCopy[r(1948)]=!0,this[r(6181)](t,this.materialCopy,null)),1===this[r(3536)][r(4888)])return;t[r(2677)](this[r(6122)]),this.oldClearAlpha=t[r(3404)]();const i=t[r(2592)];t.autoClear=!1,t[r(2417)](this.depthRenderTarget),t[r(750)](),this.saoMaterial.uniforms[r(3037)][r(439)]=this[r(3536)][r(6182)],this.saoMaterial.uniforms[r(3017)][r(439)]=this[r(3536)][r(6183)],this[r(6166)].uniforms[r(1901)][r(439)]=this.params[r(6184)],this[r(6166)].uniforms.kernelRadius[r(439)]=this[r(3536)][r(6185)],this[r(6166)][r(2377)][r(6186)][r(439)]=this[r(3536)][r(6187)],this[r(6166)][r(2377)][r(6188)].value=this.camera[r(2365)],this[r(6166)][r(2377)][r(6189)][r(439)]=this[r(3045)].far;const s=this[r(3536)][r(6190)]*(this[r(3045)][r(2366)]-this[r(3045)][r(2365)]);this[r(6176)].uniforms[r(6191)][r(439)]=s,this[r(6177)][r(2377)][r(6191)].value=s,this.vBlurMaterial[r(2377)][r(6188)][r(439)]=this[r(3045)].near,this[r(6176)][r(2377)][r(6189)].value=this[r(3045)][r(2366)],this.hBlurMaterial[r(2377)][r(6188)][r(439)]=this[r(3045)][r(2365)],this.hBlurMaterial[r(2377)].cameraFar[r(439)]=this.camera[r(2366)],this[r(3536)].saoBlurRadius=Math[r(562)](this.params[r(6192)]),(this[r(6193)]!==this[r(3536)][r(6194)]||this[r(6195)]!==this[r(3536)][r(6192)])&&(BlurShaderUtils[r(6196)](this[r(6176)],this[r(3536)][r(6192)],this[r(3536)][r(6194)],new Vector2(0,1)),BlurShaderUtils[r(6196)](this.hBlurMaterial,this.params[r(6192)],this[r(3536)][r(6194)],new Vector2(1,0)),this[r(6193)]=this.params[r(6194)],this[r(6195)]=this[r(3536)][r(6192)]),t[r(3403)](0),t[r(2417)](this[r(6162)]),t[r(750)](),t[r(2418)](this.scene,this[r(3045)]),!this.supportsDepthTextureExtension&&this[r(6197)](t,this.depthMaterial,this[r(6163)],0,1),this[r(6169)]&&this[r(6197)](t,this.normalMaterial,this[r(6173)],7829503,1),this[r(6181)](t,this[r(6166)],this[r(6161)],16777215,1),this[r(3536)][r(6198)]&&(this[r(6181)](t,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this[r(6181)](t,this.hBlurMaterial,this[r(6161)],16777215,1));let a=this[r(6121)];3===this[r(3536)][r(4888)]?this[r(6158)]?(this[r(6121)][r(2377)][r(6059)][r(439)]=this.beautyRenderTarget.depthTexture,this.materialCopy[r(1948)]=!0):(this[r(6180)][r(2377)][r(6059)][r(439)]=this.depthRenderTarget[r(1991)],this[r(6180)][r(1948)]=!0,a=this[r(6180)]):4===this.params[r(4888)]?(this[r(6121)].uniforms[r(6059)].value=this[r(6173)][r(1991)],this[r(6121)][r(1948)]=!0):(this.materialCopy[r(2377)].tDiffuse[r(439)]=this.saoRenderTarget[r(1991)],this[r(6121)][r(1948)]=!0),0===this.params.output?a[r(2195)]=CustomBlending:a[r(2195)]=NoBlending,this.renderPass(t,a,this[r(6040)]?null:n),t[r(3403)](this[r(6122)],this[r(6123)]),t[r(2592)]=i}[nz(6181)](t,e,n,r,i){var s=nz;t[s(2677)](this[s(6159)]);const a=t[s(3404)](),o=t[s(2592)];t.setRenderTarget(n),t.autoClear=!1,null!=r&&(t[s(3403)](r),t[s(6199)](i||0),t[s(750)]()),this[s(6058)][s(2178)]=e,this[s(6058)][s(2418)](t),t[s(2592)]=o,t[s(3403)](this[s(6159)]),t[s(6199)](a)}[nz(6197)](t,e,n,r,i){var s=nz;t.getClearColor(this.originalClearColor);const a=t.getClearAlpha(),o=t[s(2592)];t[s(2417)](n),t[s(2592)]=!1,r=e[s(3134)]||r,i=e[s(6149)]||i,null!=r&&(t[s(3403)](r),t[s(6199)](i||0),t.clear()),this[s(4758)][s(3436)]=e,t[s(2418)](this[s(4758)],this.camera),this[s(4758)].overrideMaterial=null,t[s(2592)]=o,t[s(3403)](this[s(6159)]),t[s(6199)](a)}setSize(t,e){var n=nz;this[n(6162)].setSize(t,e),this[n(6161)][n(1996)](t,e),this[n(6160)].setSize(t,e),this[n(6173)][n(1996)](t,e),this.depthRenderTarget[n(1996)](t,e),this[n(6166)].uniforms.size[n(439)][n(540)](t,e),this[n(6166)].uniforms.cameraInverseProjectionMatrix[n(439)][n(1867)](this[n(3045)][n(2389)]),this.saoMaterial[n(2377)].cameraProjectionMatrix[n(439)]=this[n(3045)][n(2031)],this[n(6166)].needsUpdate=!0,this[n(6176)].uniforms[n(753)].value[n(540)](t,e),this.vBlurMaterial[n(1948)]=!0,this[n(6177)][n(2377)][n(753)][n(439)][n(540)](t,e),this[n(6177)][n(1948)]=!0}[nz(1979)](){var t=nz;this[t(6161)][t(1979)](),this[t(6160)][t(1979)](),this[t(6162)][t(1979)](),this[t(6173)].dispose(),this[t(6163)][t(1979)](),this.depthMaterial[t(1979)](),this[t(6164)][t(1979)](),this[t(6166)][t(1979)](),this.vBlurMaterial[t(1979)](),this[t(6177)][t(1979)](),this[t(6121)][t(1979)](),this[t(6180)].dispose(),this[t(6058)][t(1979)]()}};SAOPass.OUTPUT={Beauty:1,Default:0,SAO:2,Depth:3,Normal:4};var SSAARenderPass=class extends Pass{constructor(t,e,n,r){var i=nz;super(),this[i(4758)]=t,this.camera=e,this[i(6200)]=4,this[i(6201)]=!0,this[i(3134)]=void 0!==n?n:0,this[i(6149)]=void 0!==r?r:0,this[i(6122)]=new Color,void 0===CopyShader&&console[i(819)](i(6202));const s=CopyShader;this[i(6120)]=UniformsUtils.clone(s[i(2377)]),this[i(6203)]=new ShaderMaterial({uniforms:this[i(6120)],vertexShader:s[i(2385)],fragmentShader:s.fragmentShader,transparent:!0,blending:AdditiveBlending,depthTest:!1,depthWrite:!1}),this[i(6058)]=new FullScreenQuad(this[i(6203)])}[nz(1979)](){var t=nz;this[t(6204)]&&(this[t(6204)][t(1979)](),this[t(6204)]=null),this[t(6203)][t(1979)](),this.fsQuad.dispose()}[nz(1996)](t,e){var n=nz;this.sampleRenderTarget&&this[n(6204)].setSize(t,e)}[nz(2418)](t,e,n){var r=nz;!this.sampleRenderTarget&&(this[r(6204)]=new WebGLRenderTarget(n[r(999)],n.height),this[r(6204)][r(1991)][r(542)]=r(6205));const i=_JitterVectors[Math[r(486)](0,Math[r(563)](this[r(6200)],5))],s=t[r(2592)];t[r(2592)]=!1,t[r(2677)](this[r(6122)]);const a=t.getClearAlpha(),o=1/i.length;this.copyUniforms[r(6059)].value=this.sampleRenderTarget[r(1991)];const c={fullWidth:n[r(999)],fullHeight:n[r(1e3)],offsetX:0,offsetY:0,width:n[r(999)],height:n[r(1e3)]},l=Object[r(501)]({},this[r(3045)][r(918)]);l.enabled&&Object[r(501)](c,l);for(let n=0;nd?(f=1,p=0):(f=0,p=1);const m=u-f+l,v=d-p+l,_=u-1+2*l,g=d-1+2*l,y=255&o,E=255&c,T=this.perm[y+this[n(6209)][E]]%12,I=this.perm[y+f+this[n(6209)][E+p]]%12,z=this[n(6209)][y+1+this.perm[E+1]]%12;let S=.5-u*u-d*d;S<0?r=0:(S*=S,r=S*S*this[n(1879)](this[n(6210)][T],u,d));let x=.5-m*m-v*v;x<0?i=0:(x*=x,i=x*x*this.dot(this[n(6210)][I],m,v));let b=.5-_*_-g*g;return b<0?s=0:(b*=b,s=b*b*this[n(1879)](this[n(6210)][z],_,g)),70*(r+i+s)}noise3d(t,e,n){var r=nz;let i,s,a,o;const c=(t+e+n)*(1/3),l=Math[r(562)](t+c),h=Math[r(562)](e+c),u=Math[r(562)](n+c),d=1/6,f=(l+h+u)*d,p=t-(l-f),m=e-(h-f),v=n-(u-f);let _,g,y,E,T,I;p>=m?m>=v?(_=1,g=0,y=0,E=1,T=1,I=0):p>=v?(_=1,g=0,y=0,E=1,T=0,I=1):(_=0,g=0,y=1,E=1,T=0,I=1):mI?32:0)+(T>z?16:0)+(I>z?8:0)+(T>S?4:0)+(I>S?2:0)+(z>S?1:0),b=a[x][0]>=3?1:0,w=a[x][1]>=3?1:0,C=a[x][2]>=3?1:0,M=a[x][3]>=3?1:0,R=a[x][0]>=2?1:0,A=a[x][1]>=2?1:0,D=a[x][2]>=2?1:0,L=a[x][3]>=2?1:0,P=a[x][0]>=1?1:0,O=a[x][1]>=1?1:0,F=a[x][2]>=1?1:0,N=a[x][3]>=1?1:0,U=T-b+l,B=I-w+l,k=z-C+l,G=S-M+l,V=T-R+2*l,j=I-A+2*l,H=z-D+2*l,q=S-L+2*l,W=T-P+3*l,Y=I-O+3*l,X=z-F+3*l,J=S-N+3*l,K=T-1+4*l,Z=I-1+4*l,$=z-1+4*l,Q=S-1+4*l,tt=255&v,et=255&_,nt=255&g,rt=255&y,it=o[tt+o[et+o[nt+o[rt]]]]%32,st=o[tt+b+o[et+w+o[nt+C+o[rt+M]]]]%32,at=o[tt+R+o[et+A+o[nt+D+o[rt+L]]]]%32,ot=o[tt+P+o[et+O+o[nt+F+o[rt+N]]]]%32,ct=o[tt+1+o[et+1+o[nt+1+o[rt+1]]]]%32;let lt=.6-T*T-I*I-z*z-S*S;lt<0?h=0:(lt*=lt,h=lt*lt*this[i(6213)](s[it],T,I,z,S));let ht=.6-U*U-B*B-k*k-G*G;ht<0?u=0:(ht*=ht,u=ht*ht*this[i(6213)](s[st],U,B,k,G));let ut=.6-V*V-j*j-H*H-q*q;ut<0?d=0:(ut*=ut,d=ut*ut*this.dot4(s[at],V,j,H,q));let dt=.6-W*W-Y*Y-X*X-J*J;dt<0?f=0:(dt*=dt,f=dt*dt*this[i(6213)](s[ot],W,Y,X,J));let ft=.6-K*K-Z*Z-$*$-Q*Q;return ft<0?p=0:(ft*=ft,p=ft*ft*this.dot4(s[ct],K,Z,$,Q)),27*(h+u+d+f+p)}},SSAOShader={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new Vector2},cameraProjectionMatrix:{value:new Matrix4},cameraInverseProjectionMatrix:{value:new Matrix4},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:nz(6214)},SSAODepthShader={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:nz(6215),fragmentShader:nz(6216)},SSAOBlurShader={uniforms:{tDiffuse:{value:null},resolution:{value:new Vector2}},vertexShader:nz(6215),fragmentShader:nz(6217)},SSAOPass=class extends Pass{constructor(t,e,n,r){var i=nz;super(),this[i(999)]=void 0!==n?n:512,this[i(1e3)]=void 0!==r?r:512,this.clear=!0,this[i(3045)]=e,this[i(4758)]=t,this[i(6116)]=8,this[i(6218)]=32,this[i(6219)]=[],this[i(6220)]=null,this[i(4888)]=0,this[i(5366)]=.005,this.maxDistance=.1,this[i(6097)]=new Map,this[i(6221)](),this[i(6222)]();const s=new DepthTexture;s.format=DepthStencilFormat,s[i(452)]=UnsignedInt248Type,this.beautyRenderTarget=new WebGLRenderTarget(this[i(999)],this.height),this[i(6173)]=new WebGLRenderTarget(this.width,this[i(1e3)],{minFilter:NearestFilter,magFilter:NearestFilter,depthTexture:s}),this[i(6223)]=new WebGLRenderTarget(this[i(999)],this[i(1e3)]),this[i(6224)]=this[i(6223)][i(1014)](),void 0===SSAOShader&&console[i(819)]("THREE.SSAOPass: The pass relies on SSAOShader."),this[i(6225)]=new ShaderMaterial({defines:Object[i(501)]({},SSAOShader.defines),uniforms:UniformsUtils.clone(SSAOShader[i(2377)]),vertexShader:SSAOShader[i(2385)],fragmentShader:SSAOShader.fragmentShader,blending:NoBlending}),this[i(6225)][i(2377)].tDiffuse.value=this[i(6162)][i(1991)],this.ssaoMaterial[i(2377)][i(6172)].value=this[i(6173)].texture,this[i(6225)][i(2377)].tDepth[i(439)]=this[i(6173)].depthTexture,this[i(6225)][i(2377)][i(6226)].value=this[i(6220)],this[i(6225)][i(2377)].kernel[i(439)]=this[i(6219)],this[i(6225)][i(2377)][i(6188)].value=this[i(3045)].near,this[i(6225)][i(2377)][i(6189)].value=this[i(3045)][i(2366)],this[i(6225)][i(2377)][i(3095)][i(439)][i(540)](this[i(999)],this[i(1e3)]),this[i(6225)][i(2377)][i(6174)].value[i(1867)](this.camera.projectionMatrix),this.ssaoMaterial[i(2377)][i(6227)][i(439)][i(1867)](this[i(3045)].projectionMatrixInverse),this[i(6164)]=new MeshNormalMaterial,this[i(6164)][i(2195)]=NoBlending,this[i(6228)]=new ShaderMaterial({defines:Object[i(501)]({},SSAOBlurShader.defines),uniforms:UniformsUtils.clone(SSAOBlurShader[i(2377)]),vertexShader:SSAOBlurShader.vertexShader,fragmentShader:SSAOBlurShader[i(2379)]}),this.blurMaterial[i(2377)][i(6059)][i(439)]=this[i(6223)][i(1991)],this.blurMaterial[i(2377)][i(3095)][i(439)][i(540)](this[i(999)],this[i(1e3)]),this[i(6229)]=new ShaderMaterial({defines:Object[i(501)]({},SSAODepthShader.defines),uniforms:UniformsUtils[i(1014)](SSAODepthShader[i(2377)]),vertexShader:SSAODepthShader[i(2385)],fragmentShader:SSAODepthShader[i(2379)],blending:NoBlending}),this[i(6229)].uniforms[i(6171)][i(439)]=this[i(6173)][i(1994)],this[i(6229)].uniforms.cameraNear[i(439)]=this[i(3045)][i(2365)],this[i(6229)].uniforms.cameraFar.value=this.camera[i(2366)],this[i(6203)]=new ShaderMaterial({uniforms:UniformsUtils[i(1014)](CopyShader[i(2377)]),vertexShader:CopyShader[i(2385)],fragmentShader:CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:DstColorFactor,blendDst:ZeroFactor,blendEquation:AddEquation,blendSrcAlpha:DstAlphaFactor,blendDstAlpha:ZeroFactor,blendEquationAlpha:AddEquation}),this[i(6058)]=new FullScreenQuad(null),this[i(6159)]=new Color}[nz(1979)](){var t=nz;this.beautyRenderTarget[t(1979)](),this[t(6173)][t(1979)](),this[t(6223)][t(1979)](),this[t(6224)][t(1979)](),this[t(6164)][t(1979)](),this.blurMaterial[t(1979)](),this[t(6203)].dispose(),this.depthRenderMaterial[t(1979)](),this[t(6058)][t(1979)]()}render(t,e){var n=nz;switch(!1===t[n(3304)][n(2435)]&&(this[n(6220)][n(461)]=LuminanceFormat),t[n(2417)](this[n(6162)]),t[n(750)](),t[n(2418)](this[n(4758)],this[n(3045)]),this.overrideVisibility(),this[n(6197)](t,this[n(6164)],this[n(6173)],7829503,1),this.restoreVisibility(),this[n(6225)].uniforms[n(6116)][n(439)]=this[n(6116)],this.ssaoMaterial[n(2377)][n(5366)][n(439)]=this[n(5366)],this[n(6225)][n(2377)][n(3926)][n(439)]=this[n(3926)],this.renderPass(t,this[n(6225)],this[n(6223)]),this[n(6181)](t,this[n(6228)],this.blurRenderTarget),this.output){case SSAOPass[n(6230)].SSAO:this[n(6203)][n(2377)][n(6059)].value=this[n(6223)].texture,this[n(6203)][n(2195)]=NoBlending,this[n(6181)](t,this[n(6203)],this[n(6040)]?null:e);break;case SSAOPass[n(6230)][n(6231)]:this[n(6203)][n(2377)][n(6059)][n(439)]=this[n(6224)][n(1991)],this[n(6203)][n(2195)]=NoBlending,this[n(6181)](t,this[n(6203)],this[n(6040)]?null:e);break;case SSAOPass[n(6230)].Beauty:this[n(6203)][n(2377)][n(6059)][n(439)]=this[n(6162)][n(1991)],this[n(6203)][n(2195)]=NoBlending,this[n(6181)](t,this.copyMaterial,this[n(6040)]?null:e);break;case SSAOPass[n(6230)][n(6232)]:this[n(6181)](t,this.depthRenderMaterial,this[n(6040)]?null:e);break;case SSAOPass[n(6230)][n(6233)]:this.copyMaterial.uniforms[n(6059)].value=this.normalRenderTarget[n(1991)],this[n(6203)][n(2195)]=NoBlending,this[n(6181)](t,this[n(6203)],this[n(6040)]?null:e);break;case SSAOPass.OUTPUT[n(6234)]:this[n(6203)][n(2377)][n(6059)].value=this[n(6162)][n(1991)],this[n(6203)].blending=NoBlending,this.renderPass(t,this[n(6203)],this[n(6040)]?null:e),this[n(6203)][n(2377)][n(6059)][n(439)]=this.blurRenderTarget[n(1991)],this.copyMaterial[n(2195)]=CustomBlending,this[n(6181)](t,this[n(6203)],this.renderToScreen?null:e);break;default:console[n(1176)]("THREE.SSAOPass: Unknown output type.")}}[nz(6181)](t,e,n,r,i){var s=nz;t[s(2677)](this[s(6159)]);const a=t[s(3404)](),o=t[s(2592)];t[s(2417)](n),t[s(2592)]=!1,null!=r&&(t[s(3403)](r),t[s(6199)](i||0),t.clear()),this[s(6058)].material=e,this.fsQuad[s(2418)](t),t[s(2592)]=o,t[s(3403)](this[s(6159)]),t.setClearAlpha(a)}[nz(6197)](t,e,n,r,i){var s=nz;t[s(2677)](this[s(6159)]);const a=t[s(3404)](),o=t[s(2592)];t.setRenderTarget(n),t[s(2592)]=!1,r=e[s(3134)]||r,i=e[s(6149)]||i,null!=r&&(t[s(3403)](r),t[s(6199)](i||0),t[s(750)]()),this[s(4758)][s(3436)]=e,t.render(this[s(4758)],this[s(3045)]),this[s(4758)][s(3436)]=null,t.autoClear=o,t[s(3403)](this[s(6159)]),t.setClearAlpha(a)}[nz(1996)](t,e){var n=nz;this.width=t,this.height=e,this[n(6162)][n(1996)](t,e),this[n(6223)][n(1996)](t,e),this[n(6173)][n(1996)](t,e),this[n(6224)][n(1996)](t,e),this[n(6225)][n(2377)].resolution[n(439)][n(540)](t,e),this[n(6225)][n(2377)][n(6174)][n(439)].copy(this[n(3045)].projectionMatrix),this.ssaoMaterial[n(2377)][n(6227)][n(439)].copy(this[n(3045)][n(2389)]),this[n(6228)][n(2377)][n(3095)][n(439)][n(540)](t,e)}[nz(6221)](){var t=nz;const e=this.kernelSize,n=this[t(6219)];for(let r=0;r{var e=r;this.node[e(590)][e(683)]=t[e(2408)]+15+"px",this[e(1626)][e(590)].top=t[e(2409)]-30+"px"},this.show=()=>this[r(1626)][r(2335)]("hidden")&&this[r(1626)][r(5560)](r(605)),this.hide=()=>!this[r(1626)][r(2335)](r(605))&&this.node[r(2334)](r(605),""),this[r(1725)]=()=>{var t=r;this[t(573)]?this.target[t(1716)](MOUSEMOVE_EVENT,this[t(6266)]):document.removeEventListener(MOUSEMOVE_EVENT,this.follow),this.parentNode.removeChild(this[t(1626)])},this.node=document[r(538)](r(539)),this[r(1626)].id=t,e&&this[r(1626)][r(6267)](e),this[r(6268)]=document[r(538)]("div"),this[r(573)]=null==n?void 0:n[r(573)],this.parentNode=(null==n?void 0:n[r(6269)])||document.body,(null==n?void 0:n[r(6270)])&&(this[r(1626)][r(4871)][r(747)](r(6271)),this[r(573)]?this[r(573)].addEventListener(MOUSEMOVE_EVENT,this[r(6266)]):document[r(808)](MOUSEMOVE_EVENT,this[r(6266)])),this[r(6269)].appendChild(this[r(1626)]),!(null==n?void 0:n[r(6272)])&&this[r(1626)][r(2334)](r(605),"")}[nz(6273)](t){var e=nz;this[e(1626)].textContent&&(this.node.textContent=null),(0,import_lodash2[e(604)])(this.node[e(1602)],(t=>{var n=e;this[n(1626)][n(809)](t)})),this[e(1626)].append(t),this.node[e(591)](this[e(6268)])}[nz(6274)](t){var e=nz;this[e(6268)][e(6275)]&&(this.childNode.textContent=null),(0,import_lodash2[e(604)])(this[e(6268)][e(1602)],(t=>{var n=e;this[n(6268)][n(809)](t)})),this[e(6268)][e(6267)](t)}},BOTTOM_BAR_ID=nz(6276),bottomBarItems={[nz(4024)]:{icon:{default:nz(6277)},mutexIds:[nz(6278),"cameraInfo","tips"],onActive:t=>{var e=nz;t[e(4862)]instanceof DxfViewer&&t[e(4862)].showStats()},onDeactive:t=>{var e=nz;t.viewer instanceof DxfViewer&&t[e(4862)][e(6279)]()}},statistics:{icon:{default:nz(6280),active:nz(6281)},mutexIds:[nz(4024),"cameraInfo","tips"],onActive:t=>{var e=nz;const n=document[e(538)]("span");if(!t[e(4862)][e(4758)])return void(n[e(6275)]="Failed!");n.textContent=e(6282);const r={components:{},points:0,faces:0,materials:{},lights:{}},i=[e(6286),"GROUND_GRID",e(4638),"BIM_VIEWER_BOX_HELPER"];t.viewer[e(4758)][e(2152)]((t=>{var n=e;(t instanceof Mesh||t instanceof Line||t instanceof Points)&&!i[n(667)](t[n(542)])?((t,n)=>{var r=e;if(n.components[t[r(452)]]?n[r(6283)][t[r(452)]]++:n[r(6283)][t[r(452)]]=1,t[r(2063)]){const e=t.geometry;if(t instanceof Mesh)if(e[r(677)]&&e[r(677)][r(2053)]){let i=Math[r(784)](e[r(677)][r(2053)]/3);t instanceof InstancedMesh&&(i*=t[r(2053)]),n[r(4252)]+=i}else if(e[r(865)].length>0)for(let t=0;t{var e=r;n[e(2179)][t]?n[e(2179)][t]++:n[e(2179)][t]=1},s=t[r(2178)];s instanceof Material?i(s.id):Array[r(468)](s)&&s.forEach((t=>i(t.id)))})(t,r):t instanceof Light&&(r[n(2380)][t[n(452)]]?r[n(2380)][t[n(452)]]++:r.lights[t[n(452)]]=1)}));const s=(t,r)=>{var i=e;n[i(5260)]+=i(6287)+t+i(6288)+r+i(6289)};n.innerHTML="";const a=" ("+(t=>{var n,r=e;const i=null==(n=t.renderer)?void 0:n[r(5280)];return null==i?void 0:i[r(6284)][r(6285)]})(t[e(4862)])+")";if(s(e(6290),""+version+a),s(e(6291),JSON[e(472)](r[e(6283)])),s(e(3535),r[e(2985)]),s(e(6292),r[e(4252)]),s(e(6293),Object[e(477)](r.materials).length),s(e(6294),JSON[e(472)](r[e(2380)])),t.viewer instanceof DxfViewer){const n=t[e(4862)].getEntitiesCount();s(e(6295),n)}t.tooltip.setContent(n),t[e(6296)][e(6297)]()},onDeactive:t=>{t.tooltip.hide()},onUpdate:t=>{var e=nz;const n=t.viewer[e(4885)],r=document.createElement(e(6298)),i=(t,n)=>{var i=e;r[i(5260)]+=i(6287)+t+":"+n+i(6289)};r[e(5260)]="

-- Renderer Info --

";const s=null==n?void 0:n[e(1175)];i(e(6299),JSON[e(472)](null==s?void 0:s[e(2418)][e(2716)])),i(e(3535),JSON[e(472)](null==s?void 0:s.render[e(2985)])),i(e(6300),JSON[e(472)](null==s?void 0:s[e(2418)][e(2718)])),i(e(6301),JSON.stringify(null==s?void 0:s[e(2418)][e(2717)])),i(e(6302),JSON.stringify(null==s?void 0:s[e(2712)][e(2170)])),i("Textures",JSON[e(472)](null==s?void 0:s[e(2712)][e(1976)])),t.tooltip[e(6274)](r)}},[nz(6009)]:{icon:{default:nz(6303),active:"icon-view-filled"},mutexIds:[nz(4024),"statistics",nz(6304)],onActive:t=>{var e=nz;const n=()=>{var e=f;if(!t[e(4862)]||!t.viewer[e(3045)]||!t[e(4862)][e(5350)])return;const r=t[e(4862)][e(3045)],i=t[e(4862)][e(5350)],s=t=>CommonUtils.numberToString(t),a=t=>CommonUtils[e(6305)](t),o=r[e(2065)],c=i[e(573)];if(o){const n=document[e(538)]("span");n[e(5260)]=e(6306)+a(o)+"

\n

Camera target:"+a(c)+e(6289),r instanceof OrthographicCamera&&(n.innerHTML+=e(6307)+s(r.top)+e(6308)+s(r.bottom)+e(6309)+s(r.left)+", right: "+s(r[e(935)])+e(6310)+s(r.zoom)+e(6289)),t[e(6296)][e(6273)](n)}!t[e(5245)]&&window.removeEventListener("mouseup",n)};if(n(),window[e(808)](e(4617),n),t[e(4862)]instanceof BimViewer){const r=t[e(4862)][e(5350)];null==r||r[e(808)]("update",n)}else{t[e(4862)][e(5350)][e(808)](e(5279),n)}t[e(6296)][e(6297)]()},onDeactive:t=>{t[nz(6296)].hide()}},tips:{icon:{default:nz(6311)},mutexIds:[nz(4024),nz(6009),"cameraInfo"],onActive:t=>{var e=nz;const n=document[e(538)](e(6298));t[e(4862)]instanceof BimViewer?n[e(5260)]="\n

W: Move forward

\n

A: Move backward

\n

S: Move left

\n

D: Move right

\n

Q: Rise up

\n

E: Lower down

\n

↑: Rotate up

\n

↓: Rotate down

\n

←: Rotate to left

\n

→: Rotate to right

\n ":t[e(4862)]instanceof DxfViewer?n[e(5260)]=e(6312):t[e(4862)]instanceof VRViewer?n[e(5260)]="\n

↑: Rotate up

\n

↓: Rotate down

\n

←: Rotate to left

\n

→: Rotate to right

\n ":n[e(5260)]=e(6313),t[e(6296)].setContent(n),t[e(6296)].show()},onDeactive:t=>{var e=nz;t[e(6296)][e(6314)]()}}},BottomBar=class{constructor(t){var e=nz;this[e(4862)]=t,this[e(5665)]=new Map,this.init()}[nz(1067)](){var t=nz;this[t(5665)][t(604)]((t=>{t.update()}))}[nz(2645)](){var t,e=nz;const n=document[e(538)](e(539));n.id=BOTTOM_BAR_ID,n.classList.add(e(6315)),(0,import_lodash3[e(604)])(bottomBarItems,((t,r)=>{var i=e;const s=this.createItem(this[i(4862)],r,t);n[i(591)](s[i(5231)])})),this[e(5231)]=n,null==(t=this[e(4862)].widgetContainer)||t[e(591)](this[e(5231)])}[nz(6316)](t,e,n){var r=nz;const i=new BottomBarItem(t,this,e,n);return this[r(5665)][r(540)](e,i),i}},BottomBarItem=class{constructor(t,e,n,r){var i=nz;this[i(4862)]=t,this[i(6276)]=e,this[i(5243)]=n,this[i(6317)]=r,this[i(5244)]=mitt_default(),this[i(5245)]=!1,this[i(6318)]=r,this[i(5231)]=this[i(5248)](this[i(5243)],r),this[i(6296)]=new Tooltip(n+i(6319),null,{parentNode:t[i(5233)]}),this[i(5244)].on("activeChange",(t=>{var e=i;t?(this[e(5231)].classList.add(e(5245)),(0,import_lodash3.forEach)(r.mutexIds,(t=>{var n,r=e;const i=null==(n=this[r(6276)])?void 0:n[r(5665)][r(427)](t);i&&i[r(5245)]&&i.setActive(!1)})),r[e(5253)]&&r.onActive(this)):(this[e(5231)][e(4871)][e(1204)](e(5245)),r[e(5254)]&&r.onDeactive(this)),this[e(5231)]instanceof HTMLElement&&setIcon(this[e(5231)][e(4871)],r.icon,this[e(5245)])}))}createButton(t,e){var n=nz;const r=document[n(538)]("i");r.id=t;const{default:i=n(5259),iconFont:s=ICON_FONT_CLASS}=e.icon;return r[n(4871)][n(747)]("icon"),r[n(4871)][n(747)](s),r[n(4871)].add(i),r[n(6320)]=()=>{var t=n;this[t(5245)]=!this[t(5245)],e[t(5257)]&&e.onClick(this),this[t(5244)][t(839)]("activeChange",this[t(5245)])},r}[nz(5252)](t){var e=nz;this[e(5245)]=t,this[e(5244)][e(839)](e(5249),this[e(5245)])}update(){var t=nz;this.active&&this[t(6318)][t(3174)]&&this.itemconfig.onUpdate(this)}},import_lodash4=__toESM(require_lodash(),1),ObjectPixelSizeHelper=class{constructor(t,e,n,r,i){var s=nz;this[s(6321)]=100,this[s(6322)]=800,this.camera=t,this[s(469)]=n,this[s(6321)]=r,this[s(6322)]=i,this.adjustSize(),e[s(808)](s(1067),(()=>{this.adjustSize()}))}[nz(6323)](){var t=nz;const e=new Box3;if(this[t(469)][t(2127)](),e[t(2058)](this[t(469)]),!e)return;const n=e[t(486)].x-e[t(563)].x,r=this[t(3045)][t(2065)][t(2038)](this.object.position),i=computePixelHeight(n,r,this.canvasHeight);if(Math.abs(i-this.targetPixelHeight)<5)return;let s=this[t(469)][t(1901)].x;s*=this[t(6321)]/i,this[t(469)][t(1901)][t(540)](s,s,s),this.object[t(2127)]()}},computePixelHeight=(t,e,n=800,r=45)=>{var i=nz;const s=r*(Math.PI/180);return n*(t/(2*Math[i(2402)](s/2)*e))},GEOMETRY_RADIUS=4,DEFAULT_COLOR=new Color(0,.855,.718),HIGHLIGHT_COLOR=new Color(1,1,0),RED_COLOR=new Color(1,0,0),GREEN_COLOR=new Color(0,1,0),BLUE_COLOR=new Color(0,0,1),BasePlaneSection=class{constructor(t,e,n,r){var i=nz;this.isOpen=!1,this[i(6324)]=!0,this[i(6325)]=new Group,this.canvasHeight=800,this.boxMin=new Vector3,this[i(6326)]=new Vector3,this.group=new Group,this[i(6327)]=new Group,this[i(2431)]=[],this[i(3614)]=[new Vector3,new Vector3,new Vector3,new Vector3],this[i(6328)]=[],this[i(2718)]=[],this[i(4864)]=new Raycaster,this.mousePosition=new Vector2,this.activeFace=void 0,this[i(6329)]=void 0,this.isMouseDown=!1,this.activeActionType="",this[i(5389)]=t=>{var e,n=i;if(!this[n(6324)])return;const r=(t,e=!1)=>{var r=n;const i=this[r(6325)][r(1602)][r(932)]((e=>e[r(1968)][r(6330)]===t));if(!i||0===i[r(1602)].length)return;const s=i[r(1602)][0][r(2178)],a=i[r(1602)][r(449)]>1?i[r(1602)][1]:void 0;e?(s[r(2231)][r(540)](HIGHLIGHT_COLOR),(t===r(6331)||t===r(6332)||t===r(6333))&&a&&(a.visible=!0)):t===r(6334)?s.color.set(RED_COLOR):t===r(6335)?s.color[r(540)](GREEN_COLOR):"TranslateZ"===t?s[r(2231)][r(540)](BLUE_COLOR):t===r(6331)?(s[r(2231)].set(RED_COLOR),a&&(a[r(2122)]=!1)):"RotateY"===t?(s.color[r(540)](GREEN_COLOR),a&&(a[r(2122)]=!1)):t===r(6333)&&(s[r(2231)][r(540)](BLUE_COLOR),a&&(a[r(2122)]=!1))};this.updateMouseAndRay(t);const s=[this[n(6325)],this[n(2364)]],a=this.raycaster.intersectObjects(s,!0);if(a.length<=0)return""!==this[n(6336)]&&(r(this[n(6336)],!1),this[n(6336)]=""),this.activeFace&&(this.activeFace.setActive(!1),this[n(6337)]=void 0),this[n(4885)][n(5280)].style[n(6338)]=n(6339),void(this[n(6325)][n(2122)]=!1);const o=a[0].object;if(o instanceof BoxFace){const t=o;""!==this.activeActionType&&(r(this[n(6336)],!1),this.activeActionType=""),!this[n(6337)]&&(t[n(5252)](!0),this[n(6337)]=t)}else{const t=(null==(e=o[n(840)])?void 0:e[n(1968)][n(6330)])||"";this[n(6336)]!==t&&(""!==this[n(6336)]&&r(this.activeActionType,!1),r(t,!0),this[n(6336)]=t)}this[n(6325)][n(2122)]=!0,this[n(4885)][n(5280)].style[n(6338)]="pointer"},this[i(5387)]=t=>{var e=i;if(t[e(6340)](),!this[e(6324)])return;if(!(0===t.button))return;this[e(6341)]=!0,this.updateMouseAndRay(t);this[e(4864)][e(4115)]([this.gizmo],!0)[e(449)]>0&&this[e(6342)]()},this[i(6343)]=t=>{var e=i;const n=new Vector3(1,0,0),r=new Vector3(0,1,0),s=new Vector3(0,0,1),a=this[e(6344)](t);if(!this[e(6341)])return;if(!this[e(6345)])return void(this[e(6345)]=[a[0],a[1]]);const o=this.lastCanvasPos;switch(this.activeActionType){case e(6334):this[e(6346)](n,o,a);break;case e(6335):this[e(6346)](r,o,a);break;case e(6347):this[e(6346)](s,o,a);break;case e(6331):this.dragRotateSectionPlane(n,o,a);break;case"RotateY":this[e(6348)](r,o,a);break;case"RotateZ":this[e(6348)](s,o,a)}this[e(6345)]=[a[0],a[1]],this.renderer.render(this[e(4758)],this[e(3045)])},this[i(6349)]=()=>{var t=i;this.isMouseDown=!1,this[t(5350)][t(5289)]=!0,this[t(5350)][t(5286)]=!0,this.controls[t(5330)]=!0,this[t(6345)]=void 0,window[t(1716)](t(5319),this[t(6343)]),window[t(1716)]("pointerup",this[t(6349)]),window.addEventListener(t(5319),this[t(5389)])},this[i(4758)]=t,this.camera=e,this.renderer=n,this[i(5350)]=r}[nz(6350)](t){var e=nz;t=t[e(1014)](),CommonUtils[e(4309)](t,1.2);const n=t[e(486)],r=t[e(563)],i=n.x-r.x+n.y-r.y+n.z-r.z;CommonUtils[e(4310)](t,i/3);const s=(t.min.y+t.max.y)/2;this[e(6351)][e(540)](t[e(563)].x,s,t[e(563)].z),this[e(6326)][e(540)](t[e(486)].x,s,t.max.z),GEOMETRY_RADIUS=i/300}rotatePlane(t,e){var n=nz;this[n(6325)][n(2134)](t,e),this.group[n(2134)](t,e),this[n(6352)]()}[nz(6353)](t){var e=nz;this[e(6325)][e(2065)].set(t.x,t.y,t.z),this[e(3010)][e(2065)].set(t.x,t.y,t.z),this[e(6352)]()}[nz(6354)](t){var e=nz;this.isSectionObjectVisible=t,this[e(3010)][e(2122)]=t,this[e(6325)][e(2122)]=t,this[e(4885)][e(2418)](this[e(4758)],this[e(3045)])}[nz(594)](){var t=nz;this[t(6355)](),this.setSectionObjectVisible(this[t(6324)]),this[t(6356)](),this[t(6357)]=!0}close(){var t=nz;this[t(6357)]=!1,this[t(6358)](),this[t(6359)]()}[nz(1160)](){var t=nz;this[t(587)](),this[t(594)]()}[nz(6360)](t){var e=nz;this[e(3010)].applyMatrix4(t),this.gizmo[e(2028)](t),this[e(2431)][e(604)]((e=>e.applyMatrix4(t)))}[nz(6355)](){var t=nz;this[t(3010)]=new Group,this.initOrUpdateVertices(),this[t(6361)](),this.updateHoverVisibles(),this[t(6362)](),this[t(6363)](),this[t(6364)](),this[t(6365)](),this[t(4758)][t(747)](this.gizmo),this.scene[t(747)](this.group)}[nz(6365)](){var t=nz;this.planes=[],this[t(2431)][t(565)](new Plane(new Vector3(0,-1,0)),new Plane(new Vector3(-1,0,0)),new Plane(new Vector3(0,0,1)),new Plane(new Vector3(1,0,0)),new Plane(new Vector3(0,0,-1))),this[t(6352)]()}[nz(6352)](){var t=nz;const e=new Matrix4;let n,r;e[t(2095)](this[t(6325)][t(2128)]);const i=this[t(6325)].position;r=new Vector3(0,-1,0)[t(2028)](e),this[t(2431)][0][t(2426)](r,i),r=new Vector3(-1,0,0).applyMatrix4(e),n=this[t(6328)][0][t(2065)][t(1014)](),n=this[t(6366)](n,!1),this[t(2431)][1][t(2426)](r,n[t(747)](i)),r=new Vector3(0,0,1)[t(2028)](e),n=this[t(6328)][1].position.clone(),n=this[t(6366)](n,!1),this[t(2431)][2].setFromNormalAndCoplanarPoint(r,n.add(i)),r=new Vector3(1,0,0)[t(2028)](e),n=this[t(6328)][2][t(2065)].clone(),n=this.localToWorldVec(n,!1),this[t(2431)][3][t(2426)](r,n[t(747)](i)),r=new Vector3(0,0,-1)[t(2028)](e),n=this[t(6328)][3][t(2065)][t(1014)](),n=this.localToWorldVec(n,!1),this.planes[4][t(2426)](r,n[t(747)](i))}initOrUpdateVertices(){var t=nz;const e=this[t(6326)].y;this[t(3614)][0].set(this[t(6351)].x,e,this[t(6351)].z),this[t(3614)][1].set(this[t(6351)].x,e,this[t(6326)].z),this.vertices[2].set(this.boxMax.x,e,this[t(6326)].z),this[t(3614)][3][t(540)](this[t(6326)].x,e,this[t(6351)].z)}initControllerMarkers(){var t=nz;const e=(t,e,n)=>{var r=f;const i=new SphereGeometry(GEOMETRY_RADIUS),s=new MeshPhongMaterial({color:DEFAULT_COLOR});s[r(2288)]=!1;const a=new Mesh(i,s);a[r(542)]=n,a[r(2065)][r(540)]((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2),this[r(6328)][r(565)](a),this.group[r(747)](a),a[r(2122)]=!1},n=this.vertices,r=this[t(6325)][t(2065)];e(n[0].clone()[t(909)](r),n[1].clone()[t(909)](r),t(6367)),e(n[1].clone()[t(909)](r),n[2][t(1014)]()[t(909)](r),"zFront"),e(n[2][t(1014)]().sub(r),n[3][t(1014)]()[t(909)](r),t(6368)),e(n[3][t(1014)]()[t(909)](r),n[0][t(1014)]().sub(r),t(6369))}[nz(6370)](){var t=nz;const e=(t,e,n)=>{var r=f;n[r(2065)][r(540)]((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},n=this[t(3614)],r=this.gizmo[t(2065)];e(n[0][t(1014)]().sub(r),n[1][t(1014)]()[t(909)](r),this[t(6328)][0]),e(n[1][t(1014)]()[t(909)](r),n[2][t(1014)]()[t(909)](r),this.pointMarkers[1]),e(n[2][t(1014)]().sub(r),n[3][t(1014)]()[t(909)](r),this[t(6328)][2]),e(n[3][t(1014)]()[t(909)](r),n[0].clone()[t(909)](r),this[t(6328)][3])}[nz(6363)](){var t=nz;const e=t=>{var e=f;return t[e(1014)]()[e(909)](this[e(3010)][e(2065)])},n=this[t(3614)][t(679)]((t=>e(t)));if(this[t(2364)])this[t(2364)][t(2054)](n);else{let e=0;this[t(2364)]=new BoxFace("yUp",[n[e++],n[e++],n[e++],n[e++]]),this.group[t(747)](this[t(2364)])}}[nz(6371)](){var t=nz;this[t(6325)][t(2065)][t(1863)]((this[t(6351)].x+this[t(6326)].x)/2),this[t(6325)].position[t(1982)](this[t(6326)].y),this[t(6325)][t(2065)][t(2022)]((this.boxMin.z+this[t(6326)].z)/2),this[t(3010)].position[t(1863)]((this[t(6351)].x+this[t(6326)].x)/2),this.group[t(2065)][t(1982)](this[t(6326)].y),this[t(3010)][t(2065)][t(2022)]((this[t(6351)].z+this[t(6326)].z)/2)}[nz(6361)](){var t=nz;const e={arrowHead:new CylinderGeometry(0,GEOMETRY_RADIUS,3*GEOMETRY_RADIUS),axis:new CylinderGeometry(GEOMETRY_RADIUS/5,GEOMETRY_RADIUS/5,20*GEOMETRY_RADIUS),pickableAxis:new CylinderGeometry(GEOMETRY_RADIUS,GEOMETRY_RADIUS,23*GEOMETRY_RADIUS),curve:new TorusGeometry(12*GEOMETRY_RADIUS,GEOMETRY_RADIUS/5,8,12,Math.PI/2),pickableCurve:new TorusGeometry(12*GEOMETRY_RADIUS,GEOMETRY_RADIUS,6,4,Math.PI/2),hoop:new TorusGeometry(12*GEOMETRY_RADIUS,GEOMETRY_RADIUS/5,8,64,2*Math.PI),sphere:new SphereGeometry(GEOMETRY_RADIUS)},n={red:new MeshPhongMaterial({color:RED_COLOR,depthTest:!1}),green:new MeshPhongMaterial({color:GREEN_COLOR,depthTest:!1}),blue:new MeshPhongMaterial({color:BLUE_COLOR,depthTest:!1}),center:new MeshPhongMaterial({color:DEFAULT_COLOR,depthTest:!1}),highlight:new MeshPhongMaterial({color:HIGHLIGHT_COLOR,depthTest:!1}),pickable:new MeshBasicMaterial({wireframe:!0,transparent:!0,opacity:0,side:BackSide})},r=new Matrix4;r.makeScale(.6,.6,.6);const i=(t,e)=>{var n=f;const r=new Matrix4;return r.makeRotationAxis(new Vector3(...e),MathUtils[n(4473)](t)),r},s=(t,e,n)=>{var r=f;const i=new Matrix4;return i[r(2097)](t,e,n),i},a=(t,e=r)=>{const n=new Matrix4;return n.multiplyMatrices(t,e),n},o=(t,r,i)=>{var s=f;const a=new Mesh(e[s(6372)],i[s(1014)]()),o=new Mesh(e.hoop,n[s(6373)][s(1014)]());o[s(2122)]=!1;const c=new Mesh(e[s(6374)],n.pickable[s(1014)]()),l=new Group;l[s(1968)][s(6330)]=t,l[s(747)](a,o,c),l.applyMatrix4(r),this[s(6325)][s(747)](l)};let c=a(i(90,[1,0,0]),i(90,[0,1,0]));o(t(6331),c,n[t(6375)]),c=i(90,[0,0,1]),o(t(6333),c,n[t(6376)]);const l=(r,i,s,a)=>{var o=t;const c=mergeBufferGeometries([e.arrowHead[o(1014)]()[o(2028)](s),e[o(4192)][o(1014)]().applyMatrix4(i)]),l=new Mesh(c,a),h=e[o(6377)][o(1014)]()[o(2028)](i),u=new Mesh(h,n[o(6378)]),d=new Group;d[o(1968)].actionType=r,d[o(747)](l,u),this[o(6325)].add(d)},h=10*GEOMETRY_RADIUS,u=2*h;let d=a(i(90,[0,0,1]),s(0,h,0)),p=a(i(90,[0,0,1]),s(0,u,0));l(t(6334),d,p,n[t(6375)]),d=s(0,h,0),p=a(i(0,[1,0,0]),s(0,u,0)),l(t(6335),d,p,n[t(6379)]),d=a(i(90,[1,0,0]),s(0,h,0)),p=a(i(90,[1,0,0]),s(0,u,0)),l("TranslateZ",d,p,n[t(6376)]);const m=new Mesh(e.sphere,n[t(1960)]);m[t(1968)][t(6330)]="",this[t(6325)].add(m),this[t(6325)][t(2122)]=!1,!this[t(6380)]&&(this[t(6380)]=new ObjectPixelSizeHelper(this[t(3045)],this.controls,this[t(6325)],200,this[t(6322)]));const v=this[t(6380)];setTimeout((()=>{var e=t;v.adjustSize(),this.renderer[e(2418)](this[e(4758)],this[e(3045)])}),0)}initOrUpdateLines(){var t=nz;const e=this.vertices;if(this[t(2718)]&&0!==this[t(2718)].length){let n=0;const r=this[t(6325)].position;this[t(2718)][n][t(2054)]([e[n][t(1014)]()[t(909)](r),e[++n][t(1014)]()[t(909)](r)]),this[t(2718)][n].setFromPoints([e[n][t(1014)]()[t(909)](r),e[++n][t(1014)]()[t(909)](r)]),this[t(2718)][n][t(2054)]([e[n].clone().sub(r),e[++n][t(1014)]()[t(909)](r)]),this[t(2718)][n][t(2054)]([e[n][t(1014)]().sub(r),e[0][t(1014)]().sub(r)])}else{const n=this[t(2364)];if(!n)throw Error(t(6381));const r=this[t(6325)][t(2065)];this[t(2718)][t(565)](new BoxLine([e[0].clone().sub(r),e[1][t(1014)]().sub(r)],[n]),new BoxLine([e[1][t(1014)]().sub(r),e[2][t(1014)]()[t(909)](r)],[n]),new BoxLine([e[2].clone()[t(909)](r),e[3][t(1014)]()[t(909)](r)],[n]),new BoxLine([e[3][t(1014)]()[t(909)](r),e[0].clone()[t(909)](r)],[n])),this[t(3010)][t(747)](...this[t(2718)])}}[nz(6359)](){var t=nz;this[t(4758)][t(1204)](this.group),this.scene.remove(this[t(6325)]),this[t(4885)][t(5280)][t(590)][t(6338)]=""}addMouseListener(){var t=nz;window[t(808)]("pointermove",this[t(5389)]),window[t(808)](t(5316),this.onMouseDown)}[nz(6358)](){var t=nz;window.removeEventListener(t(5319),this[t(5389)]),window[t(1716)](t(5316),this.onMouseDown)}[nz(6382)](t){var e=nz;const n=this[e(4885)].domElement,r=n[e(5322)],i=n[e(4809)];this[e(6383)][e(1863)](t[e(2408)]/r*2-1),this[e(6383)][e(1982)](-t.offsetY/i*2+1),this[e(4864)].setFromCamera(this[e(6383)],this[e(3045)])}[nz(6344)](t){return[t[nz(4329)],t.clientY]}[nz(6366)](t,e=!0){var n=nz;const r=new Matrix4;let i=t[n(1014)]();return r.makeRotationFromQuaternion(this.group[n(2128)]),i=i[n(2028)](r),e&&i.normalize(),i}[nz(6384)](t){var e=nz;let n;const r=t[e(1014)](),i=Math.abs(t.x);return n=i>Math[e(694)](t.y)&&i>Math.abs(t.z)?r[e(1880)](new Vector3(0,1,0)):r[e(1880)](new Vector3(1,0,0)),n=n[e(1880)](t),n.normalize(),n}[nz(6385)](t,e,n=0){var r=nz;let i;const s=new Vector4(0,0,0,1),a=new Matrix4;s[r(1863)](t[0]/window[r(6386)]*2-1),s[r(1982)](-(t[1]/window[r(6387)]*2-1)),a[r(1896)](this[r(3045)].projectionMatrix,this[r(3045)][r(2030)]),a[r(1465)](),s[r(2028)](a),s[r(1878)](1/s.w);const o=new Vector3(s.x,s.y,s.z),c=this[r(3045)][r(2065)];o[r(909)](c);const l=this[r(6325)][r(2065)],h=-l[r(1879)](e)-n,u=e[r(1879)](o);if(Math[r(694)](u)>1e-4){const t=-(e[r(1879)](c)+h)/u;return i=o[r(1878)](t),i=i[r(747)](c),i=i.sub(l),i}log[r(1175)](r(6388),u)}[nz(6346)](t,e,n){var r=nz;if(!this[r(6325)][r(2122)])return;const i=this[r(6366)](t),s=this.getTranslationPlane(i),a=this[r(6385)](e,s);let o=this[r(6385)](n,s);if(!a)return;if(!o)return;o=o[r(909)](a);const c=o[r(1879)](i),l=new Matrix4;l[r(2097)](i.x*c,i.y*c,i.z*c),this[r(3010)].applyMatrix4(l),this.gizmo.applyMatrix4(l),this[r(2431)].forEach((t=>{t.applyMatrix4(l)}))}[nz(6348)](t,e,n){var r=nz;if(!this[r(6325)][r(2122)])return;let i=new Vector3,s=0;const a=this[r(6366)](t);let o=this[r(6385)](e,a),c=this[r(6385)](n,a);if(!(o&&c)){const t=this.getTranslationPlane(a);o=this[r(6385)](e,t,1),c=this.getPointerPlaneIntersect(n,t,1),o&&c&&(s=o[r(1879)](a),o[r(1863)](o.x-s*a.x),o[r(1982)](o.y-s*a.y),o[r(2022)](o.z-s*a.z),s=c[r(1879)](a),c[r(1863)](c.x-s*a.x),c[r(1982)](c.y-s*a.y),c[r(2022)](c.z-s*a.z))}if(o&&c){o[r(569)](),c[r(569)](),s=o[r(1879)](c),s=MathUtils.clamp(s,-1,1);let e=Math.acos(s);i=o[r(1880)](c),i[r(1879)](a)<0&&(e=-e),this[r(6325)][r(2134)](t,e),this[r(3010)][r(2134)](t,e),this[r(6352)]()}}updatePosition(){var t=nz;this[t(6371)](),this[t(6389)](),this.initOrUpdateLines(),this[t(6370)](),this[t(6352)](),this[t(6363)]()}[nz(6342)](){var t=nz;this[t(5350)][t(5289)]=!1,this[t(5350)][t(5286)]=!1,this[t(5350)][t(5330)]=!1,log[t(1175)]("[Section] dragStart"),window[t(1716)](t(5319),this[t(5389)]),window[t(808)](t(5319),this.dragMove),window.addEventListener(t(5320),this.dragUp)}},BoxLine=class extends LineSegments{constructor(t,e){var n=nz;super(),this.normalMaterial=new LineBasicMaterial({color:7951688}),this[n(6390)]=new LineBasicMaterial({color:DEFAULT_COLOR}),e[n(604)]((t=>t[n(2718)][n(565)](this))),this.geometry=new BufferGeometry,this[n(2063)][n(2054)](t),this.normalMaterial[n(2288)]=!1,this[n(6390)][n(2288)]=!1,this[n(2178)]=this[n(6164)]}setFromPoints(t){var e=nz;this[e(2063)][e(2054)](t)}setActive(t){var e=nz;this[e(2178)]=t?this.activeMaterial:this[e(6164)]}},BoxFace=class extends Mesh{constructor(t,e){var n=nz;super(),this.lines=[],this.name=SECTION_PLANE_NAME,this[n(4192)]=t,this.lines=[],this[n(2063)]=new BufferGeometry,this[n(2063)][n(2054)](e),this[n(2063)][n(2332)]([0,3,2,0,2,1]),this[n(2063)][n(2349)](),this[n(2178)]=new MeshBasicMaterial({colorWrite:!1,depthWrite:!1,side:DoubleSide})}[nz(2054)](t){var e=nz;this[e(2063)][e(2054)](t)}[nz(5252)](t){var e=nz;this[e(2718)].forEach((n=>{n[e(5252)](t)}))}},PopPanel=class{constructor(t,e,n=document[nz(1072)]){var r=nz;this.container=n,this[r(6391)]=!1,this[r(6392)]=0,this[r(6393)]=0,this.start=t=>{var e=r;this[e(6391)]=!0,this[e(6392)]=t.clientX-this.element[e(6394)],this[e(6393)]=t[e(4326)]-this[e(5231)][e(6395)]},this[r(3405)]=()=>{this[r(6391)]=!1},this[r(6266)]=t=>{var e=r;if(!this[e(6391)])return;const n=t[e(4329)]-this[e(6392)],i=t.clientY-this.diffY;nthis[e(4861)][e(5322)]-this[e(5231)][e(5322)]?this.element[e(590)][e(683)]=this[e(4861)][e(5322)]-this[e(5231)][e(5322)]+"px":this[e(5231)][e(590)][e(683)]=n+"px",ithis[e(4861)].clientHeight-this.element[e(4809)]?this[e(5231)].style[e(2651)]=this[e(4861)][e(4809)]-this.element[e(4809)]+"px":this.element[e(590)][e(2651)]=i+"px"},this[r(5231)]=document[r(538)]("div"),this[r(5231)].id=t,this.element[r(4871)][r(747)](r(6397));const i=document[r(538)]("div");i[r(4871)][r(747)](r(6398)),i[r(6267)](e),this.element.appendChild(i),this.header=i;const s=document[r(538)](r(539));s[r(4871)][r(747)]("pop-panel-body"),this.element[r(591)](s),this[r(1072)]=s,i.addEventListener(MOUSEDOWN_EVENT,this.start),i[r(808)](MOUSEUP_EVENT,this[r(3405)]),this[r(4861)][r(808)](MOUSEMOVE_EVENT,this[r(6266)]),this[r(4861)][r(591)](this[r(5231)])}[nz(1725)](){var t=nz;this[t(4861)][t(1716)](MOUSEMOVE_EVENT,this[t(6266)]),this[t(5231)][t(1716)](MOUSEDOWN_EVENT,this[t(725)]),this[t(5231)][t(1716)](MOUSEUP_EVENT,this[t(3405)]),this[t(4861)][t(809)](this[t(5231)])}},AxisSectionPopPanel=class extends PopPanel{constructor(t){var e=nz;super(e(6399),"轴向剖切",t),this[e(4192)]="x",this[e(6400)]=!0,this.eventBus=mitt_default(),this[e(6401)](),this.addGroupSelectItems(),this[e(6402)](),this[e(6403)]()}[nz(6401)](){var t=nz;const e=document[t(538)]("div");e[t(4871)][t(747)]("pop-panel-group-select"),this[t(1072)][t(591)](e),this.groupSelectNode=e}[nz(6404)](){var t=nz;const e=(t,e,n=!1)=>{var r=f;const i=document.createElement(r(539));return i[r(4871)][r(747)](r(6405)),i[r(2334)](r(6406),t),i[r(6267)](e),n&&i[r(4871)][r(747)](r(5245)),this[r(6407)]&&this[r(6407)][r(591)](i),i},n=(t,e)=>n=>{var a,o=f;(n.stopPropagation(),this[o(6408)]!==t)&&(r[(a=f)(4871)][a(1204)](a(5245)),i[a(4871)][a(1204)]("active"),s[a(4871)][a(1204)]("active"),this[o(6408)]=t,e[o(4871)][o(747)](o(5245)),this[o(5244)][o(839)]("axis",t))},r=e("x","X",!0);r[t(6320)]=n("x",r);const i=e("y","Y");i[t(6320)]=n("y",i);const s=e("z","Z");s.onclick=n("z",s)}[nz(6402)](){var t=nz;const e=document.createElement(t(539));e[t(4871)][t(747)](t(6409)),this[t(1072)][t(591)](e),this[t(6410)]=e}[nz(6403)](){var t=nz;const e=(t,e)=>{var n=f;const r=document[n(538)]("i");r[n(4871)][n(747)](ICON_FONT_CLASS),r[n(4871)][n(747)](e),t[n(5260)]="",t[n(591)](r)},n=((t,n,r="")=>{var i=f;const s=document[i(538)](i(539));return s.classList[i(747)](i(6405)),n&&s.setAttribute(i(5262),n),s[i(2334)](i(6406),t),s[i(2334)]("isActive","false"),e(s,r),s})("visible","隐藏剖切面",t(6411));n.onclick=()=>{var r=t;this[r(6400)]=!this[r(6400)],this[r(6400)]?(e(n,r(6411)),n.setAttribute(r(5262),"隐藏剖切面")):(e(n,r(6277)),n[r(2334)](r(5262),r(6412))),this[r(5244)][r(839)]("visible",this[r(6400)])}}},AxisPlaneSection=class{constructor(t,e,n){var r=nz;if(this.container=n,this.isShowSectionPlane=!0,this.viewer=t,!t[r(3045)]||!t[r(4885)]||!t.controls)throw new Error(r(6413));this[r(3045)]=t[r(3045)],this[r(4758)]=t[r(4758)],this[r(4885)]=t[r(4885)],this[r(5350)]=t[r(5350)],this[r(6414)]=e,this[r(6415)]={x:{normal:new Vector3(1,0,0)},y:{normal:new Vector3(0,1,0)},z:{normal:new Vector3(0,0,1)}}}getRotateParam(t){var e=nz;const n=this[e(6415)][t].normal,r=new Vector3(0,1,0);let i;i=1===n.y||-1===n.y?new Vector3(1,0,0):r[e(1014)]()[e(1880)](n);return[i,Math[e(2015)](n.dot(r))]}initPlane(t){var e=nz;const[n,r]=this[e(6416)](t);this[e(6417)]&&(this[e(6418)](),this[e(6417)].close()),this[e(6417)]=new BasePlaneSection(this[e(4758)],this[e(3045)],this[e(4885)],this[e(5350)]),this[e(6417)].setSectionPlane(this[e(4862)][e(6419)]()),this[e(6417)].open(),this[e(6417)][e(6420)](n,r),this[e(6421)]()}[nz(594)](){var t=nz;this.initPlane("x"),this[t(6422)]=new AxisSectionPopPanel(this.container);const e=this[t(6422)][t(5244)];e.on("visible",(e=>{var n=t;e?this.showSectionPlane():this[n(6423)]()})),e.on("axis",(e=>{var n=t;this[n(6424)](e),this.renderer.render(this.scene,this[n(3045)])}))}[nz(587)](){var t=nz;this[t(6417)]&&(this.sectionPlane[t(587)](),this[t(6417)]=void 0),this[t(6422)]&&(this[t(6422)][t(1725)](),this[t(6422)]=void 0),this.cancelSection()}[nz(6421)](){var t=nz;this[t(6414)][t(604)]((e=>{var n=t;const r=this[n(4758)].getObjectById(e);r&&r[n(2152)]((t=>{var e,r=n;[r(2356),r(3532)].includes(t[r(452)])&&(Array.isArray(t[r(2178)])?t[r(2178)][r(604)]((t=>{var e,n=r;t[n(2301)]=null==(e=this[n(6417)])?void 0:e[n(2431)],t[n(2210)]=!0})):t[r(2178)]&&(t.material[r(2301)]=null==(e=this[r(6417)])?void 0:e[r(2431)],t.material[r(2210)]=!0))}))}))}[nz(6418)](){var t=nz;this[t(6414)][t(604)]((e=>{var n=t;const r=this[n(4758)][n(4679)](e);r&&r[n(2152)]((t=>{var e=n;[e(2356),e(3532)][e(667)](t.type)&&(Array.isArray(t[e(2178)])?t.material[e(604)]((t=>{t[e(2301)]=[]})):t[e(2178)]&&(t[e(2178)][e(2301)]=[]))}))}))}showSectionPlane(){var t=nz;this[t(6417)]&&(this[t(6425)]=!0,this[t(6417)][t(6354)](!0))}[nz(6423)](){var t=nz;this[t(6417)]&&(this.isShowSectionPlane=!1,this.sectionPlane[t(6354)](!1))}},DEFAULT_COLOR2=new Color(0,.855,.718),HIGHLIGHT_COLOR2=new Color(1,1,0),GEOMETRY_RADIUS2=.5,MIN_WIDTH=.2,getCenter=t=>{var e=nz;const n=t[0].clone(),r=t[1][e(1014)](),i=t[2][e(1014)](),s=t[3].clone();return n[e(747)](r)[e(747)](i)[e(747)](s).multiplyScalar(.25)},BaseBoxSection=class{constructor(t,e,n,r){var i=nz;this[i(6357)]=!1,this[i(6426)]="",this[i(6427)]="",this[i(6428)]=new Box3,this[i(3010)]=new Group,this[i(6429)]=new Map,this[i(2431)]=[],this[i(3614)]=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],this[i(4252)]=[],this[i(2718)]=[],this[i(6430)]=new Map,this.raycaster=new Raycaster,this[i(6383)]=new Vector2,this.activeFace=null,this[i(5389)]=t=>{var e=i;const n=(t,e=!1,n=!1)=>{var r=f;const i=this[r(6429)][r(427)](t);if(!i)return;const s=i.children[0][r(2178)];e?(s[r(2286)]=1,s[r(2231)].set(HIGHLIGHT_COLOR2)):n?(s[r(2286)]=1,s[r(2231)].set(DEFAULT_COLOR2)):(s[r(2231)][r(540)](DEFAULT_COLOR2),s[r(2286)]=0)};this[e(6382)](t);const r=[...this.arrows[e(673)](),...this[e(4252)]],s=this[e(4864)][e(4115)](r,!0);if(s[e(449)]<=0)return this.draggableArrowView&&(n(this[e(6426)],!1),this.draggableArrowView=""),this[e(6427)]&&(n(this.visibleArrowView,!1),this[e(6427)]=""),this[e(6337)]&&(this[e(6337)][e(5252)](!1),this.activeFace=null),void(this[e(4885)].domElement.style[e(6338)]=e(6339));const a=s[0][e(469)];if(a instanceof BoxFace2){const t=a;this[e(6426)]&&(t!==this.activeFace?n(this[e(6426)],!1):n(this[e(6426)],!1,!0),this[e(6426)]=""),t!==this[e(6337)]&&(this.activeFace&&(this[e(6337)][e(5252)](!1),this[e(6427)]&&(n(this[e(6427)],!1),this[e(6427)]="")),t[e(5252)](!0),n(t[e(4192)],!1,!0),this[e(6337)]=t,this[e(6427)]=t[e(4192)])}else{const t=a.userData[e(918)];this[e(6426)]!==t&&(this.draggableArrowView&&n(this[e(6426)],!1),n(t,!0),this.draggableArrowView=t)}this.renderer[e(5280)][e(590)].cursor="pointer"},this[i(6341)]=!1,this[i(5387)]=t=>{var e=i;const n=0===t[e(5335)];n&&(this[e(6341)]=!0,this.lastCanvasPos=[t.clientX,t[e(4326)]],this[e(6426)]&&n&&this[e(6342)]())},this[i(6342)]=()=>{var t=i;log[t(1175)](t(6431)),this[t(5350)].enablePan=!1,this[t(5350)].enableZoom=!1,this[t(5350)][t(5330)]=!1,window[t(1716)]("pointermove",this[t(5389)]),window.addEventListener(t(5319),this.dragMove),window[t(808)](t(5320),this[t(6432)])},this[i(6432)]=()=>{var t=i;log[t(1175)]("[Section] dragEnd"),this[t(5350)].enablePan=!0,this[t(5350)][t(5286)]=!0,this[t(5350)].enableRotate=!0,this[t(6341)]=!1,window.removeEventListener("pointermove",this[t(6343)]),window[t(1716)](t(5320),this.dragEnd),window[t(808)](t(5319),this[t(5389)])},this[i(6343)]=t=>{var e=i;const n=new Vector3(1,0,0),r=new Vector3(0,1,0),s=new Vector3(0,0,1),a=[t[e(4329)],t[e(4326)]];if(this[e(6341)]){switch(!this[e(6345)]&&(this[e(6345)]=a),this[e(6426)]){case e(4813):case e(1588):this[e(6346)](n,this[e(6345)],a);break;case e(4810):case"Bottom":this.dragTranslateSectionPlane(r,this.lastCanvasPos,a);break;case e(4812):case"Back":this[e(6346)](s,this[e(6345)],a)}this.lastCanvasPos=a,this[e(4885)][e(2418)](this[e(4758)],this[e(3045)])}},this[i(4758)]=t,this.camera=e,this[i(4885)]=n,this[i(5350)]=r}setSectionBox(t){var e=nz;if(this[e(6433)])throw new Error(e(6434));this[e(6433)]=t,CommonUtils[e(4309)](this.sectionBox,1.1);const n=t[e(486)],r=t.min,i=n.x-r.x+n.y-r.y+n.z-r.z;CommonUtils[e(4310)](this[e(6433)],i/20),MIN_WIDTH=GEOMETRY_RADIUS2=i/300}open(){var t=nz;this.initSectionBox(),this[t(6356)](),this[t(6357)]=!0}[nz(587)](){this[nz(6357)]=!1,this.removeMouseListener(),this.clearSectionBox()}reset(){var t=nz;this[t(587)](),this[t(594)]()}[nz(6435)](){var t=nz;if(!this[t(6433)])throw new Error("Need to set sectionBox first!");this[t(3010)]=new Group,this.initPlanes(),this[t(6389)](),this.initArrowGizmos();const e=this[t(6433)][t(1014)]();CommonUtils[t(4309)](e,1.5);const n=e[t(486)],r=e[t(563)],i=n.x-r.x+n.y-r.y+n.z-r.z;CommonUtils[t(4310)](e,i/10),this.sectionBoxBoundary=e;const s=new Vector3;e[t(2059)](s),this[t(3010)][t(2065)].set(s.x,s.y,s.z),this[t(6436)](),this[t(6364)](),this[t(6437)](!0),this[t(4758)].add(this.group)}[nz(6365)](){var t=nz;if(!this[t(6433)])return;const e=this[t(6433)][t(563)],n=this.sectionBox[t(486)];this[t(2431)]=[new Plane(new Vector3(0,-1,0),n.y),new Plane(new Vector3(0,1,0),-e.y),new Plane(new Vector3(1,0,0),-e.x),new Plane(new Vector3(-1,0,0),n.x),new Plane(new Vector3(0,0,-1),n.z),new Plane(new Vector3(0,0,1),-e.z)];const r=this.sectionPlaneMap;r.set("Top",this[t(2431)][0]),r.set(t(4811),this[t(2431)][1]),r[t(540)](t(4813),this[t(2431)][2]),r[t(540)](t(1588),this.planes[3]),r.set("Front",this[t(2431)][4]),r.set(t(5577),this[t(2431)][5])}[nz(6352)](){var t=nz;const e=new Matrix4,n=this.group[t(2065)];e[t(2095)](this[t(3010)][t(2128)]);for(const[r,i]of this.sectionPlaneMap){const s=i.normal[t(2028)](e),a=this[t(4252)][t(932)]((t=>t.axis===r));let o=getCenter(a[t(3614)]);o=this[t(6366)](o,!1),o=o.add(n),i[t(2426)](s,o)}}initOrUpdateVertices(){var t=nz;if(!this[t(6433)])return;const e=this[t(6433)][t(563)],n=this[t(6433)].max,r=this[t(3614)];r[0][t(540)](e.x,n.y,e.z),r[1][t(540)](n.x,n.y,e.z),r[2][t(540)](n.x,n.y,n.z),r[3][t(540)](e.x,n.y,n.z),r[4][t(540)](e.x,e.y,e.z),r[5].set(n.x,e.y,e.z),r[6][t(540)](n.x,e.y,n.z),r[7][t(540)](e.x,e.y,n.z)}[nz(6436)](){var t=nz;const e=this[t(3614)],n=e=>{var n=t;return e[n(679)]((t=>{var e=n;return t[e(1014)]()[e(909)](this[e(3010)].position)}))};if(this[t(4252)]&&0!==this[t(4252)][t(449)]){const r=this.faces;r[0].setFromPoints(n([e[0],e[1],e[2],e[3]])),r[1][t(2054)](n([e[4],e[7],e[6],e[5]])),r[2].setFromPoints(n([e[0],e[3],e[7],e[4]])),r[3][t(2054)](n([e[1],e[5],e[6],e[2]])),r[4][t(2054)](n([e[2],e[6],e[7],e[3]])),r[5].setFromPoints(n([e[0],e[4],e[5],e[1]]))}else this[t(4252)]=[new BoxFace2(t(4810),n([e[0],e[1],e[2],e[3]])),new BoxFace2("Bottom",n([e[4],e[7],e[6],e[5]])),new BoxFace2(t(4813),n([e[0],e[3],e[7],e[4]])),new BoxFace2(t(1588),n([e[1],e[5],e[6],e[2]])),new BoxFace2("Front",n([e[2],e[6],e[7],e[3]])),new BoxFace2(t(5577),n([e[0],e[4],e[5],e[1]]))],this[t(3010)][t(747)](...this.faces),this[t(4252)][t(604)]((e=>{var n=t;this[n(3010)][n(747)](e[n(6438)])}))}[nz(6364)](){var t=nz;const e=this.vertices,n=t=>{var e=f;return t[e(679)]((t=>t[e(1014)]().sub(this.group.position)))};if(this.lines&&0!==this.lines.length){let r=0;this[t(2718)][r++][t(2054)](n([e[0],e[1]])),this[t(2718)][r++][t(2054)](n([e[1],e[2]])),this[t(2718)][r++][t(2054)](n([e[2],e[3]])),this[t(2718)][r++][t(2054)](n([e[3],e[0]])),this[t(2718)][r++][t(2054)](n([e[4],e[5]])),this[t(2718)][r++][t(2054)](n([e[5],e[6]])),this.lines[r++][t(2054)](n([e[6],e[7]])),this.lines[r++][t(2054)](n([e[7],e[4]])),this[t(2718)][r++].setFromPoints(n([e[0],e[4]])),this[t(2718)][r++][t(2054)](n([e[1],e[5]])),this.lines[r++][t(2054)](n([e[2],e[6]])),this[t(2718)][r++][t(2054)](n([e[3],e[7]]))}else{const r=this.faces;if(!r)throw Error(t(6381));this[t(2718)]=[new BoxLine2(n([e[0],e[1]]),[r[0],r[5]]),new BoxLine2(n([e[1],e[2]]),[r[0],r[3]]),new BoxLine2(n([e[2],e[3]]),[r[0],r[4]]),new BoxLine2(n([e[3],e[0]]),[r[0],r[2]]),new BoxLine2(n([e[4],e[5]]),[r[1],r[5]]),new BoxLine2(n([e[5],e[6]]),[r[1],r[3]]),new BoxLine2(n([e[6],e[7]]),[r[1],r[4]]),new BoxLine2(n([e[7],e[4]]),[r[1],r[2]]),new BoxLine2(n([e[0],e[4]]),[r[2],r[5]]),new BoxLine2(n([e[1],e[5]]),[r[3],r[5]]),new BoxLine2(n([e[2],e[6]]),[r[3],r[4]]),new BoxLine2(n([e[3],e[7]]),[r[2],r[4]])],this[t(3010)][t(747)](...this[t(2718)])}}[nz(6439)](){var t=nz;const e=new MeshPhongMaterial({color:DEFAULT_COLOR2,depthTest:!1,transparent:!0,side:DoubleSide}),n=new MeshBasicMaterial({wireframe:!0,transparent:!0,opacity:0}),r=8*GEOMETRY_RADIUS2,i=12*GEOMETRY_RADIUS2,s=new CylinderGeometry(0,2*GEOMETRY_RADIUS2,r),a=new CylinderGeometry(GEOMETRY_RADIUS2/2,GEOMETRY_RADIUS2/2,i),o=new CylinderGeometry(4*GEOMETRY_RADIUS2,4*GEOMETRY_RADIUS2,r+i),c=(t,e)=>{var n=f;t[n(2028)]((new Matrix4)[n(2097)](0,e,0))};c(s,i+r/2),c(a,i/2),c(o,(i+r)/2),Object[t(673)](Views)[t(604)]((r=>{var i=t;const c=mergeBufferGeometries([s,a]),l=e.clone();l[i(2286)]=0;const h=new Mesh(c,l);h.userData.view=r;const u=new Mesh(o,n);u[i(1968)][i(918)]=r;const d=new Group;d[i(747)](h,u),d[i(2028)]((new Matrix4)[i(2101)](new Vector3(1,0,0),-Math.PI/2)),this.group[i(747)](d),this.arrows.set(r,d)}))}setArrowPosition(t=!1){var e=nz;const n=this[e(6433)];if(!n)return;const r=n[e(486)].x-n[e(563)].x,i=n[e(486)].y-n[e(563)].y,s=n[e(486)].z-n[e(563)].z,a=(t,n)=>{var r=e;const i=Math.sqrt(t.dot(t)*n.dot(n));let s=i+t[r(1879)](n),a=new Vector3;return s<1e-8*i?(s=0,Math[r(694)](t.x)>Math.abs(t.z)?(a[r(1863)](-t.y),a[r(1982)](t.x),a[r(2022)](0)):(a[r(1863)](0),a[r(1982)](-t.z),a[r(2022)](t.y))):a=t.cross(n),new Quaternion(a.x,a.y,a.z,s)[r(569)]()};for(const[n,o]of this[e(6430)]){const c=this[e(6429)].get(n);if(!c)return;if(t){const t=a(new Vector3(0,0,1),o[e(655)]),n=new Matrix4;n[e(2095)](t),c[e(2028)](n)}switch(n){case e(1588):c[e(2065)][e(540)](r/2,0,0);break;case e(4813):c[e(2065)][e(540)](-r/2,0,0);break;case e(4810):c[e(2065)][e(540)](0,i/2,0);break;case e(4811):c.position.set(0,-i/2,0);break;case e(4812):c[e(2065)][e(540)](0,0,s/2);break;case e(5577):c[e(2065)][e(540)](0,0,-s/2)}}}localToWorldVec(t,e=!0){var n=nz;const r=new Matrix4;r[n(2095)](this[n(3010)][n(2128)]);const i=t[n(2028)](r);return e&&i[n(569)](),i}[nz(6440)](t){var e=nz;const n=new Matrix4;n[e(2095)](this.group[e(2128)]),n.invert();return t.applyMatrix4(n)}[nz(6384)](t){var e=nz;const n=Math.abs(t.x);let r;return r=n>Math[e(694)](t.y)&&n>Math[e(694)](t.z)?t[e(1014)]()[e(1880)](new Vector3(0,1,0)):t[e(1014)]()[e(1880)](new Vector3(1,0,0)),r=r[e(1880)](t),r.normalize(),r}getPointerPlaneIntersect(t,e,n=0){var r=nz;let i=new Vector4(0,0,0,1),s=new Matrix4;i.x=t[0]/this[r(4885)][r(5280)][r(999)]*2-1,i.y=-(t[1]/this[r(4885)].domElement[r(1e3)]*2-1),i.z=0,i.w=1,s=s[r(1896)](this.camera[r(2031)],this[r(3045)][r(2030)]),s=s[r(1465)](),i=i[r(2028)](s),i[r(1878)](1/i.w);let a=new Vector3(i.x,i.y,i.z);const o=this[r(3045)][r(2065)][r(1014)]();a=a[r(909)](o);let c=new Vector3(0,0,0);if(this[r(6426)]){const t=this[r(6441)](this.draggableArrowView);c=getCenter(t)[r(747)](this[r(3010)][r(2065)])}const l=-c[r(1879)](e)-n,h=e[r(1879)](a);if(Math[r(694)](h)>1e-4){const t=-(e.dot(o)+l)/h;let n=a[r(1878)](t);return n=n[r(747)](o),n=n[r(909)](c),n}return!1}dragTranslateSectionPlane(t,e,n){var r=nz;let i=new Vector3;const s=this[r(6366)](t),a=this.getTranslationPlane(s);let o;const c=this.getPointerPlaneIntersect(e,a);if(!c)return void log[r(1175)]("[Section] p1 doesn't exists");if(o=this[r(6385)](n,a),!o)return void log[r(1175)]("[Section] p2 doesn't exists");const l=this[r(6433)];if(!l)return void log[r(819)](r(6442));const h=l[r(563)],u=l[r(486)];o=o[r(909)](c),i=this.worldToLocalVec(o);const d=i[r(1879)](t),f=new Vector3(t.x*d,t.y*d,t.z*d);let p,m=new Vector3;if(this[r(6426)]){const t=this[r(6441)](this[r(6426)]);m=getCenter(t)}switch(m=m[r(747)](f)[r(747)](this.group[r(2065)]),this[r(6426)]){case r(4813):p=Math[r(486)](this[r(6428)][r(563)].x,m.x),p=Math[r(563)](u.x-MIN_WIDTH,p),h.setX(p);break;case"Right":p=Math[r(563)](this[r(6428)][r(486)].x,m.x),p=Math[r(486)](h.x+MIN_WIDTH,p),u[r(1863)](p);break;case"Bottom":p=Math[r(486)](this[r(6428)][r(563)].y,m.y),p=Math[r(563)](u.y-MIN_WIDTH,p),h[r(1982)](p);break;case r(4810):p=Math[r(563)](this[r(6428)][r(486)].y,m.y),p=Math[r(486)](h.y+MIN_WIDTH,p),u[r(1982)](p);break;case"Back":p=Math.max(this[r(6428)].min.z,m.z),p=Math.min(u.z-MIN_WIDTH,p),h[r(2022)](p);break;case"Front":p=Math[r(563)](this[r(6428)][r(486)].z,m.z),p=Math[r(486)](h.z+MIN_WIDTH,p),u[r(2022)](p)}const v=new Vector3;l[r(2059)](v),this[r(3010)].position[r(540)](v.x,v.y,v.z),this[r(6389)](),this[r(6352)](),this[r(6436)](),this[r(6364)](),this.setArrowPosition()}[nz(6348)](t,e,n){var r=nz;let i=new Vector3,s=0;const a=this[r(6366)](t);let o=this[r(6385)](e,a),c=this[r(6385)](n,a);if(!(o&&c)){const t=this[r(6384)](a);o=this[r(6385)](e,t,1),c=this[r(6385)](n,t,1),o&&c&&(s=o[r(1879)](a),o.setX(o.x-s*a.x),o[r(1982)](o.y-s*a.y),o[r(2022)](o.z-s*a.z),s=c[r(1879)](a),c[r(1863)](c.x-s*a.x),c[r(1982)](c.y-s*a.y),c[r(2022)](c.z-s*a.z))}if(o&&c){o=o[r(569)](),c=c[r(569)](),s=o[r(1879)](c),s=MathUtils[r(1875)](s,-1,1);let e=Math[r(2015)](s);i=o[r(1880)](c),i[r(1879)](a)<0&&(e=-e),log[r(1175)](r(6443),e),this[r(3010)][r(2134)](t,2*e),this.updatePlanes()}}[nz(6441)](t){var e=nz;const n=this[e(4252)][e(932)]((n=>n[e(4192)]===t));return n&&n[e(3614)]}[nz(6444)](){var t=nz;this.scene[t(1204)](this[t(3010)]),this[t(4885)][t(5280)][t(590)][t(6338)]=""}[nz(6356)](){var t=nz;window[t(808)](t(5319),this[t(5389)]),window.addEventListener(t(5316),this[t(5387)])}[nz(6358)](){var t=nz;window[t(1716)]("pointermove",this[t(5389)]),window[t(1716)](t(5316),this.onMouseDown)}[nz(6382)](t){var e=nz;const n=this[e(4885)].domElement,r=n[e(5322)],i=n[e(4809)];this[e(6383)][e(1863)](t[e(2408)]/r*2-1),this[e(6383)].setY(-t[e(2409)]/i*2+1),this[e(4864)].setFromCamera(this[e(6383)],this[e(3045)])}},BoxLine2=class extends LineSegments{constructor(t,e){var n=nz;super(),this[n(6164)]=new LineBasicMaterial({color:DEFAULT_COLOR2}),this[n(6390)]=new LineBasicMaterial({color:DEFAULT_COLOR2}),e[n(604)]((t=>t[n(2718)][n(565)](this))),this[n(2063)]=new BufferGeometry,this.geometry.setFromPoints(t),this[n(2178)]=this[n(6164)]}[nz(2054)](t){var e=nz;this[e(2063)][e(2054)](t)}setActive(t){var e=nz;this[e(2178)]=t?this[e(6390)]:this[e(6164)]}},BoxFace2=class extends Mesh{constructor(t,e){var n=nz;super(),this[n(2718)]=[],this.vertices=[],this[n(4192)]=t,this[n(2718)]=[],this.geometry=new BufferGeometry,this[n(3614)]=e,this[n(2063)][n(2054)](e),this.geometry[n(2332)]([0,3,2,0,2,1]),this[n(2063)][n(2349)](),this[n(2178)]=new MeshBasicMaterial({colorWrite:!1,depthWrite:!1});const r=new MeshBasicMaterial({color:DEFAULT_COLOR2,transparent:!0,opacity:0,side:BackSide});this[n(6438)]=new Mesh(this.geometry,r)}[nz(2054)](t){var e=nz;this[e(3614)]=t,this.geometry[e(2054)](t)}[nz(5252)](t){var e=nz;this[e(2178)]=new MeshBasicMaterial({color:DEFAULT_COLOR2,transparent:!0,opacity:t?.1:0}),this[e(2718)].forEach((e=>{e.setActive(t)}))}},ObjectsBoxSection=class extends BaseBoxSection{constructor(t,e,n,r,i){var s=nz;super(t,e,n,r),this[s(6414)]=i;const a=new Box3;this[s(6414)][s(604)]((t=>{var e=s;const n=this.scene[e(4679)](t);n&&a[e(2058)](n)})),super.setSectionBox(a)}[nz(6365)](){var t=nz;super.initPlanes(),this[t(6414)][t(604)]((e=>{var n=t;const r=this[n(4758)][n(4679)](e);r&&r[n(2152)]((t=>{var e=n;[e(2356),"LineSegments"].includes(t[e(452)])&&(Array[e(468)](t.material)?t[e(2178)].forEach((t=>{var n=e;t[n(2301)]=this[n(2431)],t[n(2210)]=!1})):t.material&&(t[e(2178)][e(2301)]=this.planes,t.material.clipIntersection=!1))}))}))}[nz(6444)](){var t=nz;super[t(6444)](),this.objectIds[t(604)]((e=>{var n=t;const r=this[n(4758)].getObjectById(e);r&&r[n(2152)]((t=>{var e=n;[e(2356),e(3532)][e(667)](t[e(452)])&&(Array[e(468)](t[e(2178)])?t[e(2178)][e(604)]((t=>{t.clippingPlanes=[]})):t.material&&(t[e(2178)][e(2301)]=[]))}))}))}},PickSectionPopPanel=class extends PopPanel{constructor(t=document[nz(1072)]){var e=nz;super(e(6445),e(6446),t),this.eventBus=mitt_default(),this[e(6400)]=!0,this[e(2407)]=!0,this[e(6402)](),this[e(6403)]()}[nz(6402)](){var t=nz;const e=document.createElement(t(539));e[t(4871)][t(747)](t(6409)),this.body.appendChild(e),this[t(6410)]=e}[nz(6403)](){var t=nz;const e=(t,e)=>{var n=f;const r=document[n(538)]("i");r[n(4871)][n(747)](ICON_FONT_CLASS),r[n(4871)][n(747)](e),t[n(5260)]="",t[n(591)](r)},n=(t,n,r="")=>{var i=f;const s=document[i(538)]("div");return s[i(4871)].add(i(6405)),n&&s[i(2334)]("title",n),s.setAttribute(i(6406),t),s[i(2334)](i(6447),i(6448)),e(s,r),s},r=n(t(2122),t(6449),t(6411));r.onclick=()=>{var n=t;this[n(2407)]&&(this.isVisible=!this[n(6400)],this.isVisible?(e(r,n(6411)),r[n(2334)]("title",n(6449))):(e(r,"icon-showsectionplane"),r[n(2334)](n(5262),"显示剖切面")),this[n(5244)][n(839)]("visible",this[n(6400)]))},this[t(6410)]&&this[t(6410)].appendChild(r),this[t(6450)]=r;const i=n(t(1160),"重置",t(6451));i.onclick=n=>{var i=t;n.stopPropagation(),this.enabled&&(this[i(6400)]=!0,e(r,i(6411)),r[i(2334)](i(5262),"隐藏剖切面"),this.eventBus[i(839)](i(1160)))},this[t(6410)]&&this[t(6410)][t(591)](i),this[t(6452)]=i}[nz(745)](){var t=nz;this[t(2407)]=!0,this[t(6450)]&&this[t(6450)][t(4871)][t(1204)](t(2117))}[nz(2117)](){var t=nz;this[t(2407)]=!1,this[t(6450)]&&this[t(6450)][t(4871)][t(747)](t(2117))}},PickPlaneSection=class{constructor(t,e,n){var r=nz;if(this.container=n,this[r(6425)]=!0,this[r(4836)]=!1,this.raycaster=new Raycaster,this.clickOnceListerner=t=>{var e=r;if(this.viewer[e(6453)])return;this[e(6454)](t)&&(this[e(4836)]=!0,window.removeEventListener(e(4547),this[e(6455)]),this[e(6422)]&&this.popPanel[e(745)](),this.tooltip&&this.tooltip[e(6314)]())},this.viewer=t,!t[r(3045)]||!t[r(4885)]||!t.controls)throw new Error(r(6413));this[r(3045)]=t[r(3045)],this.scene=t[r(4758)],this[r(4885)]=t[r(4885)],this.controls=t.controls,this[r(6414)]=e,this[r(2645)]()}updateMouseAndRay(t){var e=nz;const n=new Vector2;n[e(1863)](t[e(4329)]/window[e(6386)]*2-1),n[e(1982)](-t.clientY/window[e(6387)]*2+1),this[e(4864)].setFromCamera(n,this.camera)}[nz(6454)](t){var e=nz;this[e(6382)](t);const n=[];this[e(6414)].forEach((t=>{var r=e;const i=this.scene&&this[r(4758)][r(4679)](t);i&&i[r(2122)]&&n[r(565)](i)}));const r=this[e(4864)][e(4115)](n,!0);if(0===r[e(449)])return!1;const i=r[e(932)]((t=>{var n=e;const r=t.object;return r[n(2122)]&&(!1!==r[n(1968)][n(4776)]||r instanceof Mesh)}));if(!i||!i.face)return!1;const s=(new Matrix3)[e(2338)](i.object[e(2033)]),a=i[e(2364)].normal[e(1014)]()[e(1873)](s)[e(569)](),o=i[e(1220)],c=new Vector3(0,1,0);let l;l=1===a.y||-1===a.y?new Vector3(1,0,0):c[e(1014)]()[e(1880)](a);const h=Math[e(2015)](a[e(1879)](c));return this[e(6417)]&&this.sectionPlane[e(6357)]&&this[e(6417)][e(587)](),this.sectionPlane=new BasePlaneSection(this[e(4758)],this[e(3045)],this[e(4885)],this[e(5350)]),this[e(6417)][e(6350)](this[e(4862)][e(6419)]()),this[e(6417)].open(),this[e(6417)][e(6322)]=this[e(4862)][e(1e3)],this.enableSection(),this[e(6417)][e(6420)](l,h),this.sectionPlane[e(6353)](o),!0}init(){var t=nz;this[t(4836)]=!1,this[t(6422)]=new PickSectionPopPanel(this[t(4861)]);const e=this[t(6422)].eventBus;e.on("visible",(e=>{var n=t;e?this[n(6456)]():this[n(6423)]()})),e.on(t(1160),(()=>{var e=t;this[e(6422)]&&this[e(6422)][e(2117)](),this[e(6417)]&&(this[e(6417)][e(587)](),this[e(6418)]()),this[e(6296)]&&this[e(6296)][e(6297)](),this[e(594)](),this.viewer.enableRender()})),this.tooltip=new Tooltip(t(6457),t(6458),{parentNode:this[t(4861)],followPointer:!0,showOnCreate:!0})}[nz(594)](){var t=nz;window[t(808)](t(4547),this[t(6455)])}[nz(587)](){var t=nz;this[t(6422)]&&(this.popPanel[t(5244)][t(1714)]("visible"),this.popPanel[t(5244)][t(1714)](t(1160)),this.popPanel[t(1725)](),this.popPanel=void 0),this[t(6296)]&&(this[t(6296)][t(1725)](),this[t(6296)]=void 0),this[t(6418)](),this.sectionPlane&&this[t(6417)][t(587)](),!this[t(4836)]&&window.removeEventListener("click",this[t(6455)])}[nz(6421)](){this.objectIds.forEach((t=>{var e=f;const n=this[e(4758)][e(4679)](t);n&&n[e(2152)]((t=>{var n,r=e;[r(2356),r(3532)][r(667)](t[r(452)])&&(Array[r(468)](t[r(2178)])?t.material[r(604)]((t=>{var e,n=r;t[n(2301)]=null==(e=this[n(6417)])?void 0:e[n(2431)],t[n(2210)]=!0})):t.material&&(t[r(2178)][r(2301)]=null==(n=this.sectionPlane)?void 0:n[r(2431)],t[r(2178)].clipIntersection=!0))}))}))}[nz(6418)](){var t=nz;this.objectIds[t(604)]((e=>{var n=t;const r=this[n(4758)][n(4679)](e);r&&r[n(2152)]((t=>{var e=n;[e(2356),e(3532)][e(667)](t[e(452)])&&(Array[e(468)](t.material)?t[e(2178)][e(604)]((t=>{t.clippingPlanes=[]})):t[e(2178)]&&(t[e(2178)].clippingPlanes=[]))}))}))}[nz(6423)](){var t=nz;this[t(6417)]&&(this[t(6425)]=!1,this.sectionPlane[t(6354)](!1))}[nz(6456)](){var t=nz;this[t(6417)]&&(this[t(6425)]=!0,this.sectionPlane[t(6354)](!0))}},CONTEXT_MENU_ID=nz(6459),ContextMenu=class{constructor(t){var e=nz;this[e(5665)]=[],this.id=t.id||CONTEXT_MENU_ID,this.container=t.container||document[e(1072)],this[e(3371)]=t.context||{},this[e(5231)]=this[e(6460)](t[e(989)]||[]),this[e(6461)]=()=>{this.hide()},!1!==t[e(6462)]&&document[e(808)](e(4547),this[e(6461)]),this[e(6314)]()}[nz(6463)](t){var e=nz;return t[e(6464)]?t.getEnabled(this[e(3371)]):void 0===t.enabled||t[e(2407)]}[nz(6465)](t){var e=nz;return t.getShown?t.getShown(this.context):void 0===t.shown||t[e(6466)]}[nz(6467)](t){var e=nz;return t[e(5262)]||t.getTitle&&t[e(6467)](this.context)||""}createMenuUI(t){var e=nz;const n=document[e(538)](e(539));n.id=this.id,n[e(4871)][e(747)]("context-menu");const r=this[e(6468)](t);return n[e(6267)](...r),this.container.appendChild(n),n}[nz(6468)](t){var e=nz;return(0,import_lodash4[e(679)])(t,(t=>{var n=e;const r=document[n(538)]("ul");return(0,import_lodash4[n(604)])(t,(t=>{var e=n;const i=this[e(6469)](t);r[e(6267)](i)})),r}))}[nz(6469)](t){var e=nz;const n=document[e(538)]("li");return n[e(5260)]=this[e(6467)](t),n[e(6320)]=()=>t[e(6470)]&&t[e(6470)](this[e(3371)]),this.isEnable(t)?n[e(4871)][e(1204)]("disabled"):n[e(4871)][e(747)]("disabled"),this[e(6465)](t)?n[e(5560)](e(605)):n[e(2334)]("hidden",""),this[e(5665)][e(565)]([t,n]),n}[nz(6471)](){var t=nz;(0,import_lodash4[t(604)])(this[t(5665)],(([e,n])=>{var r=t;this.isEnable(e)?n.classList[r(1204)](r(6472)):n[r(4871)][r(747)]("disabled"),this[r(6465)](e)?n.removeAttribute(r(605)):n[r(2334)](r(605),""),n.innerHTML=this[r(6467)](e)}))}[nz(6473)](t,e){var n=nz;const r=this.element[n(6474)],i=this.element.offsetWidth;e+r>window[n(6387)]&&(e=window[n(6387)]-r-5),t+i>window.innerWidth&&(t=window[n(6386)]-i-5),this[n(5231)].style[n(683)]=t+"px",this[n(5231)][n(590)][n(2651)]=e+"px"}[nz(6297)](t,e){var n=nz;this[n(6471)](),this.element[n(5560)](n(605)),this.showMenuElement(t,e)}[nz(6314)](){var t=nz;this.element[t(2334)](t(605),"")}[nz(1725)](){var t=nz;document[t(1716)](t(4547),this[t(6461)]),this.container[t(809)](this.element)}},translate=t=>({bimViewer:e})=>e.translate(nz(6475)+t),hasVisibleObject=t=>{var e,n=nz;let r=0;return null==(e=t.scene)||e[n(2153)]((t=>{t instanceof Mesh&&r++})),r>0},hasInvisibleObject=t=>{var e,n,r=nz;let i=0;return null==(e=t.scene)||e[r(2152)]((t=>{t instanceof Mesh&&i++})),null==(n=t.scene)||n[r(2153)]((t=>{t instanceof Mesh&&i--})),i>0},hasXRayedObject=t=>t.hasTransparentObject(),isObjectHideable=t=>{var e=nz;return!1!==t[e(1968)][e(4776)]},isObjectSelected=(t,e,n,r)=>{var i=nz;const s=t[i(6476)];return!(!s||!e||s.id!==e.id)&&(null!=n&&s[i(2161)]?n===s[i(1968)][i(3524)]:null==r||!MergeUtils[i(4746)](s)||r===s[i(1968)].batchId)},viewFitEntity={getTitle:translate(nz(6477)),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:e})=>{t[nz(6478)](e)}},viewFitAll={getTitle:translate(nz(6479)),getEnabled:({bimViewer:t})=>hasVisibleObject(t),doAction:({bimViewer:t})=>t[nz(6479)]()},hideEntity={getTitle:translate(nz(6480)),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:e})=>{isObjectHideable(e)&&(e.visible=!1,t.enableRender())}},hideOthers={getTitle:translate(nz(6481)),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:e})=>{var n,r=nz;null==(n=t[r(4758)])||n[r(2152)]((t=>{var e=r;t instanceof Mesh&&isObjectHideable(t)&&(t[e(2122)]=!1)})),e[r(2122)]=!0,t[r(5656)]()}},hideAll={getTitle:translate(nz(6482)),getEnabled:({bimViewer:t})=>hasVisibleObject(t),doAction:({bimViewer:t})=>{var e,n=nz;null==(e=t[n(4758)])||e[n(2152)]((t=>{var e=n;t instanceof Mesh&&isObjectHideable(t)&&(t[e(2122)]=!1)})),t[n(5656)]()}},showAll={getTitle:translate("showAll"),getEnabled:({bimViewer:t})=>hasInvisibleObject(t),doAction:({bimViewer:t})=>{var e,n=nz;null==(e=t[n(4758)])||e[n(2152)]((t=>{var e=n;t instanceof Mesh&&isObjectHideable(t)&&(t[e(2122)]=!0)})),t[n(5656)]()}},selectEntity={getTitle:({hit:t,bimViewer:e,instanceId:n,batchId:r})=>isObjectSelected(e,t,n,r)?translate(nz(6483))({bimViewer:e}):translate(nz(460))({bimViewer:e}),getShown:({hit:t})=>t,doAction:({hit:t,bimViewer:e,instanceId:n,batchId:r})=>{var i=nz;!1!==t[i(1968)][i(4776)]?isObjectSelected(e,t,n,r)?e[i(6486)]():e[i(6487)](t,t[i(3524)],r):log.debug(i(6484)+t[i(452)]+i(6485)+t[i(542)]+") not selectable!")}},selectNone={getTitle:translate(nz(6488)),getEnabled:({bimViewer:t})=>t[nz(6476)],doAction:({bimViewer:t})=>t.clearSelection()},xRayAll={getTitle:translate("xRayAll"),getShown:({bimViewer:t})=>!hasXRayedObject(t),doAction:({bimViewer:t})=>{t.addOrRemoveObjectOpacity(!0),t.enableRender()}},xRayNone={getTitle:translate(nz(6489)),getEnabled:({bimViewer:t})=>hasXRayedObject(t),doAction:({bimViewer:t})=>{var e=nz;hasXRayedObject(t)&&(t[e(6490)](!1),t[e(5656)]())}},xRayEntity={getTitle:translate(nz(6491)),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:e})=>{t[nz(6490)](!0,void 0,[e.id],void 0)}},xRayOthers={getTitle:translate("xRayOthers"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:e})=>{var n=nz;t[n(6490)](!0,.1,void 0,[e.id]),t[n(5656)]()}},showSection={getTitle:({bimViewer:t})=>{var e=nz;let n="";switch(t[e(6492)]){case e(4628):n=e(6493);break;case e(4629):n=e(6494);break;case"ObjectsBoxSection":n=e(6495)}return t[e(2078)](e(6475)+n)},getShown:({bimViewer:t,section:e})=>{var n=nz;return!(t[n(6492)]!==n(4628)&&t.sectionType!==n(4629)||!e||e[n(6425)])},doAction:({bimViewer:t,section:e})=>{var n=nz;(t[n(6492)]===n(4628)||t.sectionType===n(4629))&&(null==e||e[n(6456)]())}},hideSection={getTitle:({bimViewer:t})=>{var e=nz;let n="";switch(t[e(6492)]){case e(4628):n=e(6423);break;case"AxisPlaneSection":n=e(6496);break;case e(4627):n=e(6497)}return t[e(2078)](e(6475)+n)},getShown:t=>hitOnSection(t),doAction:({bimViewer:t,section:e})=>{var n=nz;"PickPlaneSection"===t.sectionType?null==e||e[n(6423)]():t[n(6492)]===n(4629)&&(null==e||e.hideSectionPlane())}},undoSection={getTitle:translate(nz(6498)),getShown:t=>hitOnSection(t),doAction:({bimViewer:t,toolbar:e})=>{var n=nz;if(t[n(6492)]===n(4628)){const t=null==e?void 0:e[n(5235)][n(427)](n(5213));null==t||t.setActive(!1)}else if(t[n(6492)]===n(4629)){const t=null==e?void 0:e[n(5235)].get(n(6499));null==t||t[n(5252)](!1)}else if(t[n(6492)]===n(4627)){const t=null==e?void 0:e.menuList.get(n(5212));null==t||t.setActive(!1)}}},hitOnSection=({bimViewer:t,hit:e,section:n})=>{var r=nz;return"PickPlaneSection"===t[r(6492)]?!!n&&n[r(6425)]&&(null==e?void 0:e[r(542)])===SECTION_PLANE_NAME:t[r(6492)]===r(4629)&&(!!n&&n[r(6425)]&&(null==e?void 0:e.name)===SECTION_PLANE_NAME)},contextMenuItems=[[showSection],[hideSection,undoSection],[viewFitEntity,viewFitAll],[hideEntity,hideOthers,hideAll,showAll],[xRayEntity,xRayOthers,xRayAll,xRayNone],[selectEntity,selectNone]];function ___$insertStyle(t){var e=nz;if(t&&typeof window!==e(430)){var n=document.createElement(e(590));return n[e(2334)](e(452),e(6500)),n[e(5260)]=t,document.head[e(591)](n),t}}function colorToString(t,e){var n=nz,r=t[n(6501)].conversionName[n(526)](),i=Math[n(784)](t.r),s=Math[n(784)](t.g),a=Math.round(t.b),o=t.a,c=Math[n(784)](t.h),l=t.s[n(490)](1),h=t.v[n(490)](1);if(e||r===n(6502)||"SIX_CHAR_HEX"===r){for(var u=t[n(6503)][n(526)](16);u[n(449)]<6;)u="0"+u;return"#"+u}return r===n(6504)?"rgb("+i+","+s+","+a+")":r===n(6505)?"rgba("+i+","+s+","+a+","+o+")":r===n(6506)?"0x"+t.hex[n(526)](16):r===n(6507)?"["+i+","+s+","+a+"]":r===n(6508)?"["+i+","+s+","+a+","+o+"]":r===n(6509)?"{r:"+i+n(6510)+s+",b:"+a+"}":"RGBA_OBJ"===r?n(6511)+i+n(6510)+s+",b:"+a+n(6512)+o+"}":r===n(6513)?"{h:"+c+n(6514)+l+n(6515)+h+"}":r===n(6516)?"{h:"+c+n(6514)+l+n(6515)+h+n(6512)+o+"}":n(6517)}var ARR_EACH=Array.prototype[nz(604)],ARR_SLICE=Array[nz(425)][nz(497)],Common={BREAK:{},extend:function(t){var e=nz;return this[e(1584)](ARR_SLICE[e(429)](arguments,1),(function(n){var r=e;(this[r(1542)](n)?Object[r(477)](n):[])[r(604)](function(e){!this[r(1548)](n[e])&&(t[e]=n[e])}[r(511)](this))}),this),t},defaults:function(t){var e=nz;return this[e(1584)](ARR_SLICE.call(arguments,1),(function(n){var r=e;(this[r(1542)](n)?Object[r(477)](n):[])[r(604)](function(e){this[r(1548)](t[e])&&(t[e]=n[e])}.bind(this))}),this),t},compose:function(){var t=nz,e=ARR_SLICE[t(429)](arguments);return function(){for(var n=t,r=ARR_SLICE[n(429)](arguments),i=e[n(449)]-1;i>=0;i--)r=[e[i].apply(this,r)];return r[0]}},each:function(t,e,n){var r=nz;if(t)if(ARR_EACH&&t[r(604)]&&t[r(604)]===ARR_EACH)t[r(604)](e,n);else if(t[r(449)]===t[r(449)]+0){var i,s=void 0;for(s=0,i=t[r(449)];s1?Common[t(1499)](arguments):arguments[0];return Common[t(1584)](INTERPRETATIONS,(function(n){var r=t;if(n[r(6520)](e))return Common.each(n[r(6521)],(function(t,n){var i=r;if(result=t[i(3767)](e),!1===toReturn&&!1!==result)return toReturn=result,result[i(6522)]=n,result[i(6523)]=t,Common[i(6524)]})),Common[r(6524)]})),toReturn},tmpComponent=void 0,ColorMath={hsv_to_rgb:function(t,e,n){var r=nz,i=Math[r(562)](t/60)%6,s=t/60-Math[r(562)](t/60),a=n*(1-e),o=n*(1-s*e),c=n*(1-(1-s)*e),l=[[n,c,a],[o,n,a],[a,n,c],[a,o,n],[c,a,n],[n,a,o]][i];return{r:255*l[0],g:255*l[1],b:255*l[2]}},rgb_to_hsv:function(t,e,n){var r=Math.min(t,e,n),i=Math.max(t,e,n),s=i-r,a=void 0;return 0===i?{h:NaN,s:0,v:0}:(a=t===i?(e-n)/s:e===i?2+(n-t)/s:4+(t-e)/s,(a/=6)<0&&(a+=1),{h:360*a,s:s/i,v:i/255})},rgb_to_hex:function(t,e,n){var r=nz,i=this.hex_with_component(0,2,t);return i=this[r(6525)](i,1,e),i=this.hex_with_component(i,0,n)},component_from_hex:function(t,e){return t>>8*e&255},hex_with_component:function(t,e,n){return n<<(tmpComponent=8*e)|t&~(255<-1?n[e(449)]-n[e(564)](".")-1:0}var NumberController=function(t){var e=nz;function n(t,e,r){var i=f;classCallCheck(this,n);var s=possibleConstructorReturn(this,(n[i(630)]||Object[i(424)](n))[i(429)](this,t,e)),a=r||{};return s[i(6574)]=a[i(563)],s[i(6575)]=a[i(486)],s[i(6576)]=a[i(6577)],Common.isUndefined(s[i(6576)])?0===s.initialValue?s.__impliedStep=1:s[i(6578)]=Math[i(428)](10,Math.floor(Math[i(695)](Math[i(694)](s[i(6543)]))/Math.LN10))/10:s[i(6578)]=s[i(6576)],s.__precision=numDecimals(s[i(6578)]),s}return inherits(n,Controller),createClass(n,[{key:e(2723),value:function(t){var r=e,i=t;return void 0!==this[r(6574)]&&ithis[r(6575)]&&(i=this[r(6575)]),void 0!==this[r(6576)]&&i%this[r(6576)]!=0&&(i=Math[r(784)](i/this[r(6576)])*this[r(6576)]),get3(n[r(425)][r(630)]||Object[r(424)](n[r(425)]),r(2723),this).call(this,i)}},{key:e(563),value:function(t){return this[e(6574)]=t,this}},{key:e(486),value:function(t){return this[e(6575)]=t,this}},{key:"step",value:function(t){var n=e;return this[n(6576)]=t,this[n(6578)]=t,this[n(6579)]=numDecimals(t),this}}]),n}();function roundToDecimal(t,e){var n=nz,r=Math.pow(10,e);return Math[n(784)](t*r)/r}var NumberControllerBox=function(t){var e=nz;function n(t,e,r){var i=f;classCallCheck(this,n);var s=possibleConstructorReturn(this,(n.__proto__||Object[i(424)](n))[i(429)](this,t,e,r));s[i(6580)]=!1;var a=s,o=void 0;function c(){a.__onFinishChange&&a.__onFinishChange.call(a,a.getValue())}function l(t){var e=i,n=o-t[e(4326)];a.setValue(a[e(3961)]()+n*a[e(6578)]),o=t[e(4326)]}function h(){var t=i;dom.unbind(window,t(4616),l),dom.unbind(window,t(4617),h),c()}return s[i(6572)]=document[i(538)]("input"),s[i(6572)][i(2334)](i(452),"text"),dom[i(511)](s[i(6572)],"change",(function(){var t=i,e=parseFloat(a.__input[t(439)]);!Common[t(1539)](e)&&a.setValue(e)})),dom.bind(s.__input,i(6573),(function(){c()})),dom.bind(s.__input,i(4618),(function(t){var e=i;dom[e(511)](window,e(4616),l),dom[e(511)](window,"mouseup",h),o=t[e(4326)]})),dom[i(511)](s[i(6572)],"keydown",(function(t){var e=i;13===t.keyCode&&(a[e(6580)]=!0,this[e(6573)](),a[e(6580)]=!1,c())})),s[i(6541)](),s[i(5280)][i(591)](s[i(6572)]),s}return inherits(n,NumberController),createClass(n,[{key:e(6541),value:function(){var t=e;return this[t(6572)][t(439)]=this[t(6580)]?this[t(3961)]():roundToDecimal(this[t(3961)](),this[t(6579)]),get3(n[t(425)][t(630)]||Object.getPrototypeOf(n[t(425)]),"updateDisplay",this).call(this)}}]),n}();function map2(t,e,n,r,i){return r+(t-e)/(n-e)*(i-r)}var NumberControllerSlider=function(t){function e(t,n,r,i,s){var a=f;classCallCheck(this,e);var o=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e))[a(429)](this,t,n,{min:r,max:i,step:s})),c=o;function l(t){var e=a;t.preventDefault();var n=c[e(6581)][e(4325)]();return c[e(2723)](map2(t.clientX,n[e(683)],n[e(935)],c.__min,c[e(6575)])),!1}function h(){var t=a;dom.unbind(window,t(4616),l),dom[t(3964)](window,t(4617),h),c[t(6538)]&&c[t(6538)][t(429)](c,c[t(3961)]())}function u(t){var e=a,n=t[e(4328)][0].clientX,r=c[e(6581)][e(4325)]();c.setValue(map2(n,r[e(683)],r[e(935)],c[e(6574)],c[e(6575)]))}function d(){var t=a;dom[t(3964)](window,"touchmove",u),dom[t(3964)](window,"touchend",d),c.__onFinishChange&&c[t(6538)][t(429)](c,c[t(3961)]())}return o[a(6581)]=document[a(538)](a(539)),o[a(6582)]=document.createElement("div"),dom[a(511)](o[a(6581)],"mousedown",(function(t){var e=a;document[e(6566)][e(6573)](),dom[e(511)](window,"mousemove",l),dom.bind(window,e(4617),h),l(t)})),dom[a(511)](o[a(6581)],a(5522),(function(t){var e=a;if(1!==t[e(4328)][e(449)])return;dom[e(511)](window,e(5496),u),dom[e(511)](window,"touchend",d),u(t)})),dom.addClass(o[a(6581)],a(6583)),dom[a(6584)](o[a(6582)],a(6585)),o[a(6541)](),o[a(6581)][a(591)](o.__foreground),o[a(5280)].appendChild(o[a(6581)]),o}return inherits(e,NumberController),createClass(e,[{key:"updateDisplay",value:function(){var t=f,n=(this[t(3961)]()-this[t(6574)])/(this[t(6575)]-this[t(6574)]);return this[t(6582)].style.width=100*n+"%",get3(e[t(425)][t(630)]||Object[t(424)](e[t(425)]),t(6541),this)[t(429)](this)}}]),e}(),FunctionController=function(t){function e(t,n,r){var i=f;classCallCheck(this,e);var s=possibleConstructorReturn(this,(e[i(630)]||Object[i(424)](e))[i(429)](this,t,n)),a=s;return s[i(6586)]=document[i(538)]("div"),s[i(6586)][i(5260)]=void 0===r?i(6587):r,dom[i(511)](s[i(6586)],"click",(function(t){var e=i;return t[e(3406)](),a[e(6588)](),!1})),dom[i(6584)](s.__button,"button"),s.domElement.appendChild(s.__button),s}return inherits(e,Controller),createClass(e,[{key:"fire",value:function(){var t=f;this[t(6537)]&&this.__onChange[t(429)](this),this.getValue()[t(429)](this[t(469)]),this.__onFinishChange&&this.__onFinishChange[t(429)](this,this[t(3961)]())}}]),e}(),ColorController=function(t){var e=nz;function n(t,e){var r=f;classCallCheck(this,n);var i=possibleConstructorReturn(this,(n.__proto__||Object[r(424)](n))[r(429)](this,t,e));i[r(6589)]=new Color2(i.getValue()),i[r(6590)]=new Color2(0);var s=i;i[r(5280)]=document[r(538)](r(539)),dom[r(6591)](i[r(5280)],!1),i[r(6592)]=document[r(538)](r(539)),i.__selector[r(6557)]=r(6593),i[r(6594)]=document[r(538)](r(539)),i.__saturation_field[r(6557)]=r(6595),i[r(6596)]=document[r(538)](r(539)),i[r(6596)][r(6557)]=r(6597),i[r(6598)]=r(6599),i[r(6600)]=document[r(538)](r(539)),i[r(6600)][r(6557)]=r(6601),i[r(6602)]=document.createElement(r(539)),i.__hue_field[r(6557)]="hue-field",i[r(6572)]=document[r(538)]("input"),i[r(6572)][r(452)]=r(3775),i[r(6603)]="0 1px 1px ",dom[r(511)](i[r(6572)],r(4615),(function(t){var e=r;13===t[e(6554)]&&u[e(429)](this)})),dom[r(511)](i[r(6572)],r(6573),u),dom[r(511)](i[r(6592)],"mousedown",(function(){var t=r;dom[t(6584)](this,t(6604))[t(511)](window,t(4617),(function(){var e=t;dom[e(6605)](s[e(6592)],e(6604))}))})),dom[r(511)](i.__selector,"touchstart",(function(){var t=r;dom[t(6584)](this,"drag")[t(511)](window,t(5497),(function(){var e=t;dom[e(6605)](s.__selector,e(6604))}))}));var a=document[r(538)](r(539));function o(t){var e=r;p(t),dom.bind(window,"mousemove",p),dom[e(511)](window,e(5496),p),dom[e(511)](window,"mouseup",l),dom[e(511)](window,e(5497),l)}function c(t){var e=r;m(t),dom.bind(window,e(4616),m),dom[e(511)](window,e(5496),m),dom[e(511)](window,e(4617),h),dom[e(511)](window,e(5497),h)}function l(){var t=r;dom[t(3964)](window,t(4616),p),dom[t(3964)](window,t(5496),p),dom[t(3964)](window,"mouseup",l),dom[t(3964)](window,t(5497),l),d()}function h(){var t=r;dom[t(3964)](window,t(4616),m),dom[t(3964)](window,t(5496),m),dom[t(3964)](window,t(4617),h),dom.unbind(window,"touchend",h),d()}function u(){var t=r,e=interpret(this[t(439)]);!1!==e?(s[t(6589)][t(6501)]=e,s[t(2723)](s[t(6589)][t(6528)]())):this[t(439)]=s[t(6589)][t(526)]()}function d(){var t=r;s[t(6538)]&&s[t(6538)].call(s,s.__color.toOriginal())}function p(t){var e=r;-1===t[e(452)][e(564)](e(5334))&&t[e(3406)]();var n=s[e(6594)].getBoundingClientRect(),i=t[e(4328)]&&t.touches[0]||t,a=i.clientX,o=i[e(4326)],c=(a-n[e(683)])/(n[e(935)]-n[e(683)]),l=1-(o-n[e(2651)])/(n.bottom-n[e(2651)]);return l>1?l=1:l<0&&(l=0),c>1?c=1:c<0&&(c=0),s[e(6589)].v=l,s[e(6589)].s=c,s[e(2723)](s[e(6589)][e(6528)]()),!1}function m(t){var e=r;-1===t[e(452)].indexOf(e(5334))&&t.preventDefault();var n=s[e(6602)][e(4325)](),i=1-((t[e(4328)]&&t.touches[0]||t).clientY-n[e(2651)])/(n[e(2652)]-n[e(2651)]);return i>1?i=1:i<0&&(i=0),s[e(6589)].h=360*i,s[e(2723)](s.__color[e(6528)]()),!1}return Common[r(6533)](i.__selector[r(590)],{width:r(6606),height:r(6607),padding:r(6608),backgroundColor:r(6609),boxShadow:r(6610)}),Common[r(6533)](i[r(6596)][r(590)],{position:r(4873),width:r(6611),height:"12px",border:i.__field_knob_border+(i.__color.v<.5?r(6612):"#000"),boxShadow:r(6613),borderRadius:r(6611),zIndex:1}),Common.extend(i[r(6600)][r(590)],{position:r(4873),width:r(6614),height:r(6615),borderRight:r(6616),zIndex:1}),Common[r(6533)](i[r(6594)][r(590)],{width:r(6617),height:"100px",border:r(6618),marginRight:"3px",display:"inline-block",cursor:"pointer"}),Common[r(6533)](a[r(590)],{width:"100%",height:r(6619),background:r(3833)}),linearGradient(a,r(2651),r(6620),r(6621)),Common[r(6533)](i[r(6602)][r(590)],{width:r(6614),height:r(6617),border:r(6618),cursor:r(6622),position:r(4873),top:r(6608),right:r(6608)}),hueGradient(i[r(6602)]),Common[r(6533)](i[r(6572)][r(590)],{outline:"none",textAlign:r(1960),color:r(6612),border:0,fontWeight:r(901),textShadow:i[r(6603)]+r(6623)}),dom.bind(i[r(6594)],r(4618),o),dom[r(511)](i.__saturation_field,r(5522),o),dom.bind(i.__field_knob,"mousedown",o),dom[r(511)](i[r(6596)],r(5522),o),dom[r(511)](i[r(6602)],r(4618),c),dom[r(511)](i[r(6602)],"touchstart",c),i[r(6594)][r(591)](a),i[r(6592)][r(591)](i.__field_knob),i.__selector[r(591)](i[r(6594)]),i[r(6592)][r(591)](i[r(6602)]),i[r(6602)][r(591)](i[r(6600)]),i[r(5280)][r(591)](i[r(6572)]),i[r(5280)][r(591)](i[r(6592)]),i[r(6541)](),i}return inherits(n,Controller),createClass(n,[{key:e(6541),value:function(){var t=e,n=interpret(this[t(3961)]());if(!1!==n){var r=!1;Common[t(1584)](Color2[t(6535)],(function(e){var i=t;if(!Common[i(1548)](n[e])&&!Common[i(1548)](this[i(6589)][i(6501)][e])&&n[e]!==this.__color[i(6501)][e])return r=!0,{}}),this),r&&Common.extend(this[t(6589)][t(6501)],n)}Common.extend(this[t(6590)][t(6501)],this[t(6589)].__state),this[t(6590)].a=1;var i=this[t(6589)].v<.5||this.__color.s>.5?255:0,s=255-i;Common[t(6533)](this.__field_knob[t(590)],{marginLeft:100*this[t(6589)].s-7+"px",marginTop:100*(1-this[t(6589)].v)-7+"px",backgroundColor:this[t(6590)].toHexString(),border:this[t(6598)]+t(1932)+i+","+i+","+i+")"}),this[t(6600)][t(590)][t(6624)]=100*(1-this[t(6589)].h/360)+"px",this.__temp.s=1,this.__temp.v=1,linearGradient(this[t(6594)],t(683),t(6612),this[t(6590)][t(6527)]()),this.__input[t(439)]=this.__color.toString(),Common[t(6533)](this.__input[t(590)],{backgroundColor:this[t(6589)].toHexString(),color:t(1932)+i+","+i+","+i+")",textShadow:this[t(6603)]+t(6625)+s+","+s+","+s+t(6626)})}}]),n}(),vendors=[nz(6627),nz(6628),nz(6629),nz(6630),""];function linearGradient(t,e,n,r){var i=nz;t[i(590)][i(2166)]="",Common.each(vendors,(function(s){var a=i;t.style[a(5651)]+=a(6631)+s+"linear-gradient("+e+", "+n+a(6632)+r+a(6633)}))}function hueGradient(t){var e=nz;t[e(590)][e(2166)]="",t[e(590)][e(5651)]+=e(6634),t[e(590)][e(5651)]+=e(6635),t[e(590)][e(5651)]+=e(6636),t[e(590)][e(5651)]+=e(6637),t[e(590)][e(5651)]+=e(6638)}var css={load:function(t,e){var n=nz,r=e||document,i=r[n(538)](n(906));i[n(452)]=n(6500),i.rel=n(6639),i[n(1043)]=t,r[n(6640)]("head")[0][n(591)](i)},inject:function(t,e){var n=nz,r=e||document,i=document[n(538)](n(590));i[n(452)]=n(6500),i[n(5260)]=t;var s=r.getElementsByTagName(n(810))[0];try{s[n(591)](i)}catch(t){}}},saveDialogContents=nz(6641),ControllerFactory=function(t,e){var n=nz,r=t[e];return Common.isArray(arguments[2])||Common[n(1542)](arguments[2])?new OptionController(t,e,arguments[2]):Common[n(6518)](r)?Common.isNumber(arguments[2])&&Common.isNumber(arguments[3])?Common.isNumber(arguments[4])?new NumberControllerSlider(t,e,arguments[2],arguments[3],arguments[4]):new NumberControllerSlider(t,e,arguments[2],arguments[3]):Common.isNumber(arguments[4])?new NumberControllerBox(t,e,{min:arguments[2],max:arguments[3],step:arguments[4]}):new NumberControllerBox(t,e,{min:arguments[2],max:arguments[3]}):Common.isString(r)?new StringController(t,e):Common[n(1535)](r)?new FunctionController(t,e,""):Common[n(1531)](r)?new BooleanController(t,e):null};function requestAnimationFrame2(t){setTimeout(t,1e3/60)}var requestAnimationFrame$1=window[nz(2433)]||window[nz(6642)]||window[nz(6643)]||window[nz(6644)]||window.msRequestAnimationFrame||requestAnimationFrame2,CenteredDiv=function(){var t=nz;function e(){var t=f;classCallCheck(this,e),this[t(6645)]=document[t(538)](t(539)),Common[t(6533)](this[t(6645)][t(590)],{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:t(6646),opacity:0,WebkitTransition:"opacity 0.2s linear",transition:t(6647)}),dom.makeFullscreen(this[t(6645)]),this[t(6645)].style[t(2065)]=t(902),this[t(5280)]=document[t(538)](t(539)),Common[t(6533)](this.domElement[t(590)],{position:"fixed",display:"none",zIndex:t(6648),opacity:0,WebkitTransition:t(6649),transition:t(6650)}),document.body[t(591)](this.backgroundElement),document[t(1072)][t(591)](this[t(5280)]);var n=this;dom[t(511)](this[t(6645)],t(4547),(function(){n[t(6314)]()}))}return createClass(e,[{key:t(6297),value:function(){var e=t,n=this;this[e(6645)][e(590)][e(3368)]="block",this[e(5280)][e(590)].display=e(3369),this[e(5280)][e(590)].opacity=0,this[e(5280)].style.webkitTransform="scale(1.1)",this[e(6651)](),Common[e(1448)]((function(){var t=e;n[t(6645)][t(590)][t(2286)]=1,n[t(5280)].style[t(2286)]=1,n[t(5280)][t(590)][t(6652)]=t(6653)}))}},{key:t(6314),value:function(){var e=t,n=this,r=function t(){var e=f;n.domElement.style[e(3368)]=e(3833),n[e(6645)][e(590)].display="none",dom[e(3964)](n[e(5280)],e(6654),t),dom.unbind(n[e(5280)],e(6655),t),dom.unbind(n[e(5280)],e(6656),t)};dom[e(511)](this[e(5280)],e(6654),r),dom[e(511)](this[e(5280)],e(6655),r),dom[e(511)](this[e(5280)],"oTransitionEnd",r),this[e(6645)].style[e(2286)]=0,this[e(5280)][e(590)][e(2286)]=0,this[e(5280)].style[e(6652)]="scale(1.1)"}},{key:t(6651),value:function(){var e=t;this[e(5280)][e(590)][e(683)]=window[e(6386)]/2-dom[e(6657)](this[e(5280)])/2+"px",this[e(5280)][e(590)].top=window[e(6387)]/2-dom[e(6658)](this[e(5280)])/2+"px"}}]),e}(),styleSheet=___$insertStyle(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n");css.inject(styleSheet);var CSS_NAMESPACE="dg",HIDE_KEY_CODE=72,CLOSE_BUTTON_HEIGHT=20,DEFAULT_DEFAULT_PRESET_NAME="Default",SUPPORTS_LOCAL_STORAGE=function(){var t=nz;try{return!!window[t(1181)]}catch(t){return!1}}(),SAVE_DIALOGUE=void 0,autoPlaceVirgin=!0,autoPlaceContainer=void 0,hide=!1,hideableGuis=[],GUI=function t(e){var n=nz,r=this,i=e||{};this[n(5280)]=document[n(538)](n(539)),this[n(6659)]=document[n(538)]("ul"),this[n(5280)][n(591)](this[n(6659)]),dom[n(6584)](this[n(5280)],CSS_NAMESPACE),this[n(6660)]={},this[n(6661)]=[],this.__rememberedObjects=[],this[n(6662)]=[],this[n(6663)]=[],i=Common[n(1373)](i,{closeOnTop:!1,autoPlace:!0,width:t[n(4631)]}),i=Common[n(1373)](i,{resizable:i[n(6664)],hideable:i.autoPlace}),Common[n(1548)](i[n(1212)])?i[n(1212)]={preset:DEFAULT_DEFAULT_PRESET_NAME}:i.preset&&(i.load[n(6665)]=i.preset),Common[n(1548)](i[n(840)])&&i[n(6666)]&&hideableGuis[n(565)](this),i[n(6667)]=Common[n(1548)](i[n(840)])&&i.resizable,i.autoPlace&&Common[n(1548)](i.scrollable)&&(i.scrollable=!0);var s,a,o=SUPPORTS_LOCAL_STORAGE&&localStorage.getItem(getLocalStorageHash(this,"isLocal"))===n(646),c=void 0,l=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i[n(6668)]}},autoPlace:{get:function(){return i[n(6664)]}},closeOnTop:{get:function(){return i[n(6669)]}},preset:{get:function(){var t=n;return r[t(840)]?r.getRoot()[t(6665)]:i[t(1212)][t(6665)]},set:function(t){var e=n;r[e(840)]?r[e(4105)]()[e(6665)]=t:i.load[e(6665)]=t,setPresetSelectIndex(this),r[e(6670)]()}},width:{get:function(){return i.width},set:function(t){i[n(999)]=t,setWidth(r,t)}},name:{get:function(){return i[n(542)]},set:function(t){var e=n;i[e(542)]=t,l&&(l.innerHTML=i[e(542)])}},closed:{get:function(){return i[n(3568)]},set:function(e){var s=n;i.closed=e,i[s(3568)]?dom.addClass(r[s(6659)],t[s(6671)]):dom[s(6605)](r[s(6659)],t[s(6671)]),this.onResize(),r[s(6672)]&&(r[s(6672)][s(5260)]=e?t[s(6673)]:t[s(6674)])}},load:{get:function(){return i.load}},useLocalStorage:{get:function(){return o},set:function(t){var e=n;SUPPORTS_LOCAL_STORAGE&&(o=t,t?dom[e(511)](window,e(6675),c):dom[e(3964)](window,e(6675),c),localStorage[e(6676)](getLocalStorageHash(r,e(6677)),t))}}}),Common[n(1548)](i.parent)){if(this[n(3568)]=i[n(3568)]||!1,dom[n(6584)](this.domElement,t[n(6678)]),dom[n(6591)](this.domElement,!1),SUPPORTS_LOCAL_STORAGE&&o){r[n(6679)]=!0;var h=localStorage[n(6680)](getLocalStorageHash(this,"gui"));h&&(i[n(1212)]=JSON[n(1087)](h))}this[n(6672)]=document[n(538)]("div"),this[n(6672)][n(5260)]=t[n(6674)],dom[n(6584)](this[n(6672)],t[n(6681)]),i[n(6669)]?(dom.addClass(this[n(6672)],t[n(6682)]),this[n(5280)][n(1659)](this[n(6672)],this[n(5280)].childNodes[0])):(dom[n(6584)](this.__closeButton,t[n(6683)]),this[n(5280)][n(591)](this[n(6672)])),dom[n(511)](this[n(6672)],n(4547),(function(){r.closed=!r.closed}))}else{void 0===i[n(3568)]&&(i[n(3568)]=!0);var u=document[n(818)](i.name);dom.addClass(u,n(6684)),l=addRow(r,u);dom[n(6584)](this[n(6659)],t[n(6671)]),dom[n(6584)](l,n(5262)),dom.bind(l,n(4547),(function(t){var e=n;return t[e(3406)](),r.closed=!r[e(3568)],!1})),!i[n(3568)]&&(this.closed=!1)}i.autoPlace&&(Common.isUndefined(i.parent)&&(autoPlaceVirgin&&(autoPlaceContainer=document.createElement(n(539)),dom[n(6584)](autoPlaceContainer,CSS_NAMESPACE),dom[n(6584)](autoPlaceContainer,t.CLASS_AUTO_PLACE_CONTAINER),document[n(1072)][n(591)](autoPlaceContainer),autoPlaceVirgin=!1),autoPlaceContainer.appendChild(this.domElement),dom[n(6584)](this[n(5280)],t[n(6685)])),!this[n(840)]&&setWidth(r,i[n(999)])),this[n(6686)]=function(){r[n(6687)]()},dom.bind(window,n(6688),this[n(6686)]),dom.bind(this[n(6659)],n(6654),this.__resizeHandler),dom.bind(this[n(6659)],n(6655),this[n(6686)]),dom.bind(this[n(6659)],n(6656),this.__resizeHandler),this.onResize(),i[n(6667)]&&addResizeHandle(this),c=function(){var t=n;SUPPORTS_LOCAL_STORAGE&&"true"===localStorage[t(6680)](getLocalStorageHash(r,t(6677)))&&localStorage[t(6676)](getLocalStorageHash(r,t(6689)),JSON[t(472)](r.getSaveObject()))},this[n(6690)]=c,!i[n(840)]&&((a=r[(s=n)(4105)]())[s(999)]+=1,Common[s(1448)]((function(){a.width-=1})))};function addRow(t,e,n){var r=nz,i=document[r(538)]("li");return e&&i[r(591)](e),n?t.__ul[r(1659)](i,n):t[r(6659)].appendChild(i),t[r(6701)](),i}function removeListeners(t){var e=nz;dom[e(3964)](window,e(6688),t[e(6686)]),t[e(6690)]&&dom.unbind(window,e(6675),t.saveToLocalStorageIfPossible)}function markPresetModified(t,e){var n=nz,r=t[n(6711)][t.__preset_select[n(6571)]];r[n(5260)]=e?r.value+"*":r[n(439)]}function augmentController(t,e,n){var r=nz;if(n[r(6700)]=e,n.__gui=t,Common[r(6533)](n,{options:function(e){var i=r;if(arguments[i(449)]>1){var s=n[i(6700)][i(6712)];return n.remove(),_add(t,n[i(469)],n.property,{before:s,factoryArgs:[Common[i(1499)](arguments)]})}if(Common[i(468)](e)||Common[i(1542)](e)){var a=n[i(6700)].nextElementSibling;return n[i(1204)](),_add(t,n[i(469)],n[i(1481)],{before:a,factoryArgs:[e]})}},name:function(t){var e=r;return n[e(6700)][e(6713)][e(6713)][e(5260)]=t,n},listen:function(){var t=r;return n.__gui[t(6714)](n),n},remove:function(){var t=r;return n[t(6715)][t(1204)](n),n}}),n instanceof NumberControllerSlider){var i=new NumberControllerBox(n[r(469)],n[r(1481)],{min:n[r(6574)],max:n.__max,step:n.__step});Common.each([r(6541),"onChange",r(6540),r(6577),r(563),r(486)],(function(t){var e=n[t],r=i[t];n[t]=i[t]=function(){var t=f,s=Array[t(425)][t(497)][t(429)](arguments);return r[t(441)](i,s),e.apply(n,s)}})),dom[r(6584)](e,r(6716)),n[r(5280)].insertBefore(i[r(5280)],n.domElement[r(6713)])}else if(n instanceof NumberControllerBox){var s=function(e){var i=r;if(Common[i(6518)](n[i(6574)])&&Common.isNumber(n[i(6575)])){var s=n[i(6700)][i(6713)][i(6713)].innerHTML,a=n[i(6715)][i(6663)].indexOf(n)>-1;n[i(1204)]();var o=_add(t,n[i(469)],n[i(1481)],{before:n[i(6700)][i(6712)],factoryArgs:[n[i(6574)],n[i(6575)],n[i(6576)]]});return o[i(542)](s),a&&o[i(6714)](),o}return e};n[r(563)]=Common[r(2096)](s,n[r(563)]),n.max=Common[r(2096)](s,n[r(486)])}else n instanceof BooleanController?(dom[r(511)](e,r(4547),(function(){var t=r;dom[t(6717)](n[t(6568)],t(4547))})),dom[r(511)](n[r(6568)],"click",(function(t){t[r(6340)]()}))):n instanceof FunctionController?(dom.bind(e,r(4547),(function(){var t=r;dom[t(6717)](n[t(6586)],t(4547))})),dom.bind(e,r(6718),(function(){var t=r;dom[t(6584)](n[t(6586)],t(6719))})),dom[r(511)](e,r(6720),(function(){var t=r;dom[t(6605)](n[t(6586)],"hover")}))):n instanceof ColorController&&(dom[r(6584)](e,r(2231)),n.updateDisplay=Common.compose((function(t){var i=r;return e[i(590)][i(6721)]=n.__color.toString(),t}),n[r(6541)]),n[r(6541)]());n.setValue=Common[r(2096)]((function(e){var i=r;return t.getRoot()[i(6711)]&&n[i(6542)]()&&markPresetModified(t[i(4105)](),!0),e}),n[r(2723)])}function recallSavedValue(t,e){var n=nz,r=t.getRoot(),i=r.__rememberedObjects[n(564)](e.object);if(-1!==i){var s=r.__rememberedObjectIndecesToControllers[i];if(void 0===s&&(s={},r[n(6662)][i]=s),s[e[n(1481)]]=e,r[n(1212)]&&r.load[n(6709)]){var a=r[n(1212)][n(6709)],o=void 0;if(a[t[n(6665)]])o=a[t[n(6665)]];else{if(!a[DEFAULT_DEFAULT_PRESET_NAME])return;o=a[DEFAULT_DEFAULT_PRESET_NAME]}if(o[i]&&void 0!==o[i][e[n(1481)]]){var c=o[i][e[n(1481)]];e[n(6543)]=c,e[n(2723)](c)}}}}function _add(t,e,n,r){var i=nz;if(void 0===e[n])throw new Error(i(6722)+e+i(6723)+n+'"');var s=void 0;if(r.color)s=new ColorController(e,n);else{var a=[e,n][i(475)](r[i(6724)]);s=ControllerFactory[i(441)](t,a)}r.before instanceof Controller&&(r.before=r[i(1440)][i(6700)]),recallSavedValue(t,s),dom[i(6584)](s.domElement,"c");var o=document.createElement("span");dom[i(6584)](o,"property-name"),o[i(5260)]=s[i(1481)];var c=document[i(538)](i(539));c[i(591)](o),c.appendChild(s[i(5280)]);var l=addRow(t,c,r[i(1440)]);return dom[i(6584)](l,GUI.CLASS_CONTROLLER_ROW),s instanceof ColorController?dom.addClass(l,i(2231)):dom[i(6584)](l,_typeof3(s[i(3961)]())),augmentController(t,l,s),t.__controllers[i(565)](s),s}function getLocalStorageHash(t,e){var n=nz;return document.location[n(1043)]+"."+e}function addPresetOption(t,e,n){var r=nz,i=document.createElement(r(6725));i[r(5260)]=e,i[r(439)]=e,t[r(6711)].appendChild(i),n&&(t.__preset_select[r(6571)]=t[r(6711)].length-1)}function showHideExplain(t,e){var n=nz;e[n(590)][n(3368)]=t.useLocalStorage?n(3369):n(3833)}function addSaveMenu(t){var e=nz,n=t[e(6706)]=document[e(538)]("li");dom[e(6584)](t[e(5280)],e(6726)),t[e(6659)][e(1659)](n,t[e(6659)][e(5255)]),dom[e(6584)](n,e(6727));var r=document[e(538)](e(6298));r[e(5260)]=e(6728),dom[e(6584)](r,"button gears");var i=document[e(538)](e(6298));i[e(5260)]=e(6729),dom[e(6584)](i,e(5335)),dom[e(6584)](i,e(4544));var s=document[e(538)](e(6298));s[e(5260)]=e(6730),dom[e(6584)](s,"button"),dom.addClass(s,e(6731));var a=document.createElement(e(6298));a[e(5260)]="Revert",dom[e(6584)](a,e(5335)),dom[e(6584)](a,e(6670));var o=t[e(6711)]=document.createElement("select");if(t[e(1212)]&&t[e(1212)][e(6709)]?Common[e(1584)](t[e(1212)][e(6709)],(function(n,r){addPresetOption(t,r,r===t[e(6665)])})):addPresetOption(t,DEFAULT_DEFAULT_PRESET_NAME,!1),dom[e(511)](o,e(5279),(function(){for(var n=e,r=0;r0&&(e.preset=this[t(6665)],!e.remembered&&(e[t(6709)]={}),e[t(6709)][this[t(6665)]]=getCurrentPreset(this)),e[t(6704)]={},Common[t(1584)](this[t(6660)],(function(n,r){var i=t;e[i(6704)][r]=n[i(6710)]()})),e},save:function(){var t=nz;!this.load[t(6709)]&&(this[t(1212)][t(6709)]={}),this[t(1212)][t(6709)][this[t(6665)]]=getCurrentPreset(this),markPresetModified(this,!1),this[t(6690)]()},saveAs:function(t){var e=nz;!this.load[e(6709)]&&(this[e(1212)][e(6709)]={},this.load[e(6709)][DEFAULT_DEFAULT_PRESET_NAME]=getCurrentPreset(this,!0)),this[e(1212)].remembered[t]=getCurrentPreset(this),this[e(6665)]=t,addPresetOption(this,t,!0),this[e(6690)]()},revert:function(t){var e=nz;Common[e(1584)](this[e(6661)],(function(n){var r=e;this[r(4105)]().load.remembered?recallSavedValue(t||this[r(4105)](),n):n[r(2723)](n.initialValue),n.__onFinishChange&&n.__onFinishChange[r(429)](n,n[r(3961)]())}),this),Common[e(1584)](this.__folders,(function(t){t.revert(t)})),!t&&markPresetModified(this.getRoot(),!1)},listen:function(t){var e=nz,n=0===this.__listening[e(449)];this[e(6663)][e(565)](t),n&&updateDisplays(this[e(6663)])},updateDisplay:function(){var t=nz;Common[t(1584)](this[t(6661)],(function(e){e[t(6541)]()})),Common[t(1584)](this[t(6660)],(function(e){e[t(6541)]()}))}});var GUI$1=GUI,methodMap=[[nz(6742),nz(4295),nz(4290),nz(6743),nz(6744),"fullscreenerror"],[nz(6745),nz(4297),nz(6746),nz(6747),"webkitfullscreenchange","webkitfullscreenerror"],[nz(6748),nz(6749),nz(6750),nz(6749),"webkitfullscreenchange",nz(6751)],[nz(4293),nz(6752),"mozFullScreenElement","mozFullScreenEnabled",nz(6753),"mozfullscreenerror"],[nz(4294),nz(4298),nz(6754),"msFullscreenEnabled",nz(6755),nz(6756)]],nativeAPI=(()=>{var t=nz;if(typeof document===t(430))return!1;const e=methodMap[0],n={};for(const r of methodMap){if((null==r?void 0:r[1])in document){for(const[i,s]of r[t(674)]())n[e[i]]=s;return n}}return!1})(),eventNameMap={change:nativeAPI[nz(6744)],error:nativeAPI.fullscreenerror},screenfull={request:(t=document[nz(583)],e)=>new Promise(((n,r)=>{var i=f;const s=()=>{var t=f;screenfull[t(1714)](t(5279),s),n()};screenfull.on(i(5279),s);const a=t[nativeAPI[i(6742)]](e);a instanceof Promise&&a.then(s)[i(821)](r)})),exit:()=>new Promise(((t,e)=>{var n=f;if(!screenfull[n(6757)])return void t();const r=()=>{screenfull[n(1714)]("change",r),t()};screenfull.on(n(5279),r);const i=document[nativeAPI[n(4295)]]();i instanceof Promise&&i.then(r).catch(e)})),toggle:(t,e)=>screenfull.isFullscreen?screenfull.exit():screenfull.request(t,e),onchange(t){var e=nz;screenfull.on(e(5279),t)},onerror(t){screenfull.on("error",t)},on(t,e){var n=nz;const r=eventNameMap[t];r&&document[n(808)](r,e,!1)},off(t,e){const n=eventNameMap[t];n&&document.removeEventListener(n,e,!1)},raw:nativeAPI};Object[nz(421)](screenfull,{isFullscreen:{get:()=>Boolean(document[nativeAPI[nz(4290)]])},element:{enumerable:!0,get:()=>{var t;return null!=(t=document[nativeAPI[nz(4290)]])?t:void 0}},isEnabled:{enumerable:!0,get:()=>Boolean(document[nativeAPI[nz(6743)]])}}),!nativeAPI&&(screenfull={isEnabled:!1});var screenfull_default=screenfull,IUploader=class{constructor(t="uploadModelFile"){var e=nz;this[e(1400)]=document[e(538)]("input"),this[e(1400)].id=t,this[e(1400)][e(452)]=e(1095),this[e(1400)][e(6758)]=!0,this[e(1400)][e(6759)]=this.formats()[e(679)]((t=>"."+t)).join(","),this[e(1400)][e(590)][e(3368)]=e(3833),this[e(1400)][e(6760)]=t=>{var n=e;const r=t[n(573)][n(990)];!r||r[n(449)]<=0?log[n(819)](n(6761)):this[n(6762)](r)}}formats(){var t=nz;return log[t(1176)](t(6763)),[]}[nz(6762)](t){var e=nz;log[e(1176)](e(6764)+t)}[nz(6765)](){var t=nz;this[t(1400)][t(4547)]()}},LocalModelUploader=class extends IUploader{constructor(t,e){var n=nz;super(e),this[n(6766)]={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!1},this[n(4862)]=t}[nz(5061)](){var t=nz;return[t(6015),t(6016),"dxf",t(4897),t(6767),t(6768),t(6769),t(6770),"*"]}uploadFiles(t){var e=nz;const n=t[e(449)];if(0===n)return;const r=__spreadValues({},this.defaultModelConfig);let i,s,a;const o=new Map;for(let r=0;r{var t=e;a&&(i=URL[t(1126)](a),c[t(565)](i),r.src=a[t(542)])};if(a){l();const t=LoaderUtils.extractUrlBase(i);s=new LoadingManager,s[e(3745)]((n=>{var r=e;const i=decodeURI(n).replace(t,"")[r(448)](/^(\.?\/)/,"");if(o[r(546)](i)){const t=o[r(427)](i),e=URL[r(1126)](t);return c[r(565)](e),e}return n}))}else a=t[0],l();this[e(4862)][e(6771)](i,r,s,(t=>{var n=e;const r=Math.floor(100*t.loaded/t[n(4025)]);log[n(1175)]("[Uploader] Loading "+(null==a?void 0:a[n(542)])+", "+r+"%")}))[e(829)]((()=>{var t=e;log[t(1175)](t(6772)+(null==a?void 0:a[t(542)])),c[t(604)](URL[t(1127)])}))}},LocalDxfUploader=class extends IUploader{constructor(t,e){var n=nz;super(e),this[n(6766)]={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!0},this[n(4862)]=t}formats(){return["dxf"]}uploadFiles(t){var e=nz;const n=t=>{var e=f;const n=(100*t.loaded/t[e(4025)]).toFixed(1);log[e(1175)](e(6773)+n+"%")};if(2===t[e(449)]){const r=t[0],i=t[1],s=URL[e(1126)](r),a=URL.createObjectURL(i);this[e(4862)][e(1218)]({src:s,modelId:r.name},{src:a,modelId:i[e(542)]},n)[e(829)]((()=>{var t=e;this.onSuccess&&this[t(6774)]({compare:!0}),log.debug(t(6775)+s+", "+a)})).catch((t=>{var n=e;log.error("[Uploader] Failed to compare models: "+s+", "+a+n(6776)+t)}))}else{const r=t[0],i=URL[e(1126)](r),s=__spreadValues({},this.defaultModelConfig);s[e(592)]=i,s[e(6777)]=r[e(542)];try{this[e(4862)][e(6778)](s,n)[e(829)]((()=>{var t=e;this[t(6774)]&&this[t(6774)]({}),log[t(1175)](t(6779)+s[t(592)]+"'")}))}catch(t){log[e(1175)](t)}}}},LocalImageUploader=class extends IUploader{constructor(t,e){var n=nz;super(e),this[n(4862)]=t}formats(){return["png",nz(6780),"jpeg"]}[nz(6762)](t){var e=nz;const n={panoramas:[],id:e(6781),name:"",position:[0,1,0],initialDirection:[0,0,1]};if(1===t[e(449)]){const r=[];r[e(565)](URL[e(1126)](t[0])),n[e(6782)].push({id:e(6783),images:r}),this.viewer.setViewpoints([n]),this[e(4862)][e(6784)](n.id,n[e(6782)][0].id)}else if(6===t[e(449)]){const r=n=>{var r=e;let i="";for(let e=0;e(s=c[r(564)]("\n"))&&a=t[e(702)]||!(l=r(t)))return n(1,e(6790));if(!(h=l[e(522)](/^#\?(\S+)/)))return n(3,e(6791));for(c[e(6792)]|=1,c[e(6793)]=h[1],c.string+=l+"\n";l=r(t),!1!==l;)if(c.string+=l+"\n","#"!==l[e(620)](0)){if((h=l[e(522)](i))&&(c[e(6795)]=parseFloat(h[1])),(h=l[e(522)](s))&&(c[e(6796)]=parseFloat(h[1])),(h=l[e(522)](a))&&(c[e(6792)]|=2,c[e(461)]=h[1]),(h=l.match(o))&&(c[e(6792)]|=4,c[e(1e3)]=parseInt(h[1],10),c[e(999)]=parseInt(h[2],10)),2&c.valid&&4&c[e(6792)])break}else c[e(6794)]+=l+"\n";return 2&c.valid?4&c[e(6792)]?c:n(3,e(6797)):n(3,"missing format specifier")}(a);if(-1!==o){const t=o[e(999)],r=o[e(1e3)],c=function(t,e,r){var i=f;const s=e;if(s<8||s>32767||2!==t[0]||2!==t[1]||128&t[2])return new Uint8Array(t);if(s!==(t[2]<<8|t[3]))return n(3,i(6798));const a=new Uint8Array(4*e*r);if(!a[i(449)])return n(4,i(6799));let o=0,c=0;const l=4*s,h=new Uint8Array(4),u=new Uint8Array(l);let d=r;for(;d>0&&ct[i(702)])return n(1);if(h[0]=t[c++],h[1]=t[c++],h[2]=t[c++],h[3]=t[c++],2!=h[0]||2!=h[1]||(h[2]<<8|h[3])!=s)return n(3,i(6800));let e,r=0;for(;r128;if(s&&(e-=128),0===e||r+e>l)return n(3,i(6801));if(s){const n=t[c++];for(let t=0;t{var i=f;n[i(1212)](e,(e=>{var n=i;if(t){const i=t[n(2668)](e).texture;t[n(1979)](),r(i)}}))}))}))}static[nz(6805)](t){var e=nz;return __async(this,arguments,(function*(t,n=this[e(6806)],r=64,i=32){var s=e;if(t){const e=new DataTexture(n,r,i);e[s(1965)]=!0,e.magFilter=LinearFilter,e[s(1973)]=LinearFilter,e.type=HalfFloatType,e[s(521)]=1;const a=t[s(2668)](e).texture;return t[s(1979)](),Promise.resolve(a)}return Promise[s(831)](s(6807))}))}};function makeXYZGUI(t,e,n,r,i,s,a){var o=nz;const c=t[o(6808)](e);c[o(747)](n,"x",i,s,a).onChange(r),c[o(747)](n,"y",i,s,a)[o(6539)](r),c[o(747)](n,"z",i,s,a).onChange(r)}TextureUtils[nz(6806)]=Uint16Array[nz(666)]([11910,12340,12797,15360,11926,12348,12806,15360,11958,12364,12814,15360,11974,12380,12830,15360,11958,12364,12822,15360,11926,12348,12797,15360,11878,12324,12773,15360,11830,12308,12749,15360,11798,12292,12733,15360,11782,12279,12725,15360,11765,12263,12709,15360,11749,12247,12701,15360,11733,12231,12701,15360,11701,12215,12693,15360,11685,12199,12685,15360,11685,12199,12685,15360,11701,12215,12693,15360,11717,12231,12701,15360,11733,12247,12709,15360,11749,12263,12717,15360,11749,12279,12717,15360,11765,12279,12725,15360,11765,12279,12725,15360,11765,12292,12725,15360,11798,12300,12733,15360,11830,12316,12749,15360,11846,12324,12757,15360,11894,12340,12781,15360,11926,12356,12797,15360,11942,12356,12797,15360,11926,12348,12789,15360,11926,12348,12789,15360,11942,12356,12797,15360,11942,12356,12797,15360,11942,12348,12806,15360,11942,12356,12806,15360,11942,12356,12814,15360,11958,12372,12830,15360,11974,12372,12830,15360,11974,12372,12838,15360,11990,12388,12854,15360,12055,12420,12886,15360,12119,12452,12918,15360,12167,12476,12950,15360,12231,12500,12982,15360,12263,12516,12998,15360,12231,12500,12974,15360,12199,12484,12958,15360,12199,12484,12958,15360,12199,12492,12966,15360,12247,12508,12982,15360,12247,12508,12990,15360,12231,12500,12982,15360,12199,12484,12966,15360,12167,12468,12942,15360,12119,12444,12918,15360,12087,12436,12902,15360,12055,12420,12886,15360,12055,12412,12878,15360,12039,12412,12878,15360,12022,12396,12862,15360,12006,12388,12846,15360,11958,12364,12830,15360,11910,12340,12806,15360,12119,12508,13103,15360,12087,12484,13071,15360,12055,12468,13046,15360,12006,12436,13006,15360,11926,12396,12958,15360,11878,12364,12926,15360,11846,12348,12894,15360,11782,12308,12854,15360,11749,12292,12830,15360,11717,12263,12814,15360,11685,12247,12806,15360,11669,12215,12789,15360,11685,12231,12789,15360,11701,12247,12797,15360,11701,12247,12806,15360,11717,12263,12814,15360,11749,12292,12822,15360,11782,12308,12838,15360,11798,12316,12846,15360,11814,12332,12862,15360,11846,12340,12870,15360,11862,12348,12878,15360,11846,12340,12870,15360,11846,12340,12862,15360,11878,12356,12886,15360,11910,12372,12910,15360,11942,12396,12934,15360,11958,12412,12958,15360,12039,12452,12998,15360,12071,12468,13022,15360,12039,12452,12998,15360,12039,12452,12998,15360,12006,12444,13006,15360,11974,12436,12998,15360,11942,12412,12982,15360,11926,12396,12974,15360,11926,12404,12974,15360,11958,12420,12998,15360,12006,12452,13038,15360,12055,12476,13071,15360,12039,12476,13079,15360,12087,12508,13127,15360,12247,12597,13231,15360,12388,12693,13332,15360,12420,12741,13364,15360,12436,12757,13372,15360,12468,12773,13380,15360,12500,12806,13388,15360,12516,12822,13404,15360,12629,12934,13452,15360,12741,13046,13508,15360,12806,13095,13532,15360,12757,13046,13516,15360,12645,12950,13460,15360,12565,12870,13428,15360,12532,12838,13412,15360,12549,12854,13412,15360,12516,12838,13396,15360,12452,12757,13356,15360,12420,12725,13340,15360,12404,12709,13332,15360,12372,12677,13316,15360,12279,12589,13207,15360,12135,12516,13119,15360,12388,12709,13348,15360,12247,12581,13223,15360,12055,12476,13087,15360,11910,12388,12982,15360,11733,12308,12886,15360,11669,12247,12846,15360,11621,12199,12814,15360,11541,12103,12765,15360,11492,12055,12733,15360,11508,12055,12733,15360,11476,12022,12717,15360,11525,12055,12725,15360,11589,12135,12757,15360,11669,12199,12765,15360,11765,12292,12814,15360,11862,12348,12886,15360,11910,12372,12910,15360,12006,12420,12966,15360,12071,12452,12998,15360,12119,12476,13022,15360,12167,12492,13046,15360,12183,12500,13063,15360,12199,12524,13079,15360,12308,12589,13151,15360,12300,12581,13151,15360,12167,12516,13087,15360,12087,12468,13030,15360,12022,12444,13014,15360,11990,12420,12990,15360,11974,12420,12990,15360,11974,12420,12990,15360,11990,12436,13014,15360,11990,12444,13030,15360,12103,12500,13103,15360,12087,12508,13111,15360,12039,12484,13103,15360,12039,12476,13103,15360,11942,12436,13054,15360,11974,12452,13087,15360,12039,12492,13135,15360,12103,12532,13199,15360,12183,12581,13263,15360,12308,12661,13340,15360,12484,12822,13436,15360,12613,12918,13484,15360,12725,13046,13540,15360,13046,13332,13677,15360,13143,13380,13717,15360,13223,13420,13741,15360,13396,13540,13862,15360,13436,13589,13902,15360,13484,13629,13942,15360,13468,13621,13934,15360,13412,13564,13878,15360,13372,13524,13846,15360,13287,13452,13781,15360,13223,13428,13749,15360,13340,13492,13805,15360,13239,13428,13749,15360,13095,13364,13685,15360,12918,13223,13597,15360,12822,13111,13556,15360,12613,12934,13468,15360,12532,12854,13428,15360,12565,12870,13444,15360,12468,12789,13396,15360,12372,12693,13340,15360,12087,12492,13111,15360,11846,12364,12958,15360,11717,12300,12878,15360,11557,12135,12781,15360,11476,12055,12741,15360,11460,12022,12725,15360,11476,12022,12725,15360,11476,12022,12709,15360,11476,11958,12605,15360,11364,11733,12332,15360,11111,11412,11661,15360,11223,11476,11773,15360,11388,11669,12095,15360,11765,12119,12492,15360,12388,12613,13079,15360,12661,12902,13356,15360,12998,13255,13564,15360,13372,13508,13797,15360,13412,13548,13846,15360,13287,13436,13725,15360,13271,13428,13709,15360,13287,13428,13717,15360,13014,13287,13597,15360,12709,12998,13460,15360,12452,12741,13332,15360,12364,12653,13271,15360,12404,12693,13316,15360,12420,12709,13316,15360,12420,12709,13332,15360,12263,12589,13231,15360,12332,12661,13312,15360,12300,12629,13295,15360,12263,12605,13287,15360,12231,12597,13279,15360,12247,12613,13303,15360,12231,12597,13295,15360,12231,12605,13312,15360,12199,12597,13324,15360,12231,12613,13340,15360,12516,12870,13468,15360,12725,13063,13564,15360,12741,13079,13573,15360,12854,13175,13613,15360,12902,13223,13629,15360,13046,13348,13693,15360,13356,13516,13846,15360,13605,13765,14078,15360,13717,13870,14191,15360,13765,13918,14255,15360,13765,13910,14247,15360,13701,13854,14191,15360,13573,13733,14070,15360,13508,13677,14006,15360,13380,13548,13886,15360,13111,13380,13741,15360,13063,13348,13709,15360,12886,13207,13629,15360,12725,13046,13548,15360,12645,12966,13508,15360,12677,12982,13508,15360,12629,12950,13492,15360,12452,12789,13412,15360,12324,12661,13332,15360,12356,12677,13340,15360,12388,12693,13348,15360,12279,12597,13247,15360,11894,12396,12998,15360,11637,12231,12846,15360,11573,12135,12789,15360,11589,12151,12797,15360,11621,12167,12797,15360,11637,12119,12677,15360,11079,11404,11693,15360,10517,10701,10653,15360,10252,10348,10007,15360,9902,9999,9428,15360,9846,9886,9047,15360,10135,10260,9685,15360,10412,10533,10412,15360,11268,11436,11549,15360,12364,12605,13087,15360,12444,12709,13255,15360,12549,12822,13348,15360,12613,12886,13396,15360,12597,12886,13412,15360,12581,12870,13404,15360,12661,12950,13460,15360,12725,13014,13492,15360,13079,13332,13645,15360,12757,13046,13500,15360,12677,12982,13476,15360,12854,13143,13556,15360,12693,12982,13492,15360,12581,12886,13452,15360,12709,13030,13508,15360,12372,12709,13364,15360,12324,12661,13348,15360,12292,12645,13340,15360,12292,12645,13348,15360,12468,12806,13436,15360,12532,12854,13460,15360,12500,12854,13468,15360,12500,12854,13484,15360,12725,13063,13589,15360,12982,13324,13701,15360,13111,13388,13741,15360,13014,13340,13709,15360,13014,13332,13717,15360,13287,13476,13862,15360,13436,13621,13974,15360,13532,13717,14095,15360,13725,13902,14295,15360,13942,14103,14420,15360,13974,14135,14436,15360,13862,14022,14388,15360,13725,13894,14295,15360,13789,13958,14336,15360,13830,13990,14348,15360,13372,13548,13942,15360,13014,13332,13733,15360,12886,13239,13661,15360,12854,13207,13637,15360,12757,13095,13589,15360,12757,13079,13573,15360,12645,12982,13516,15360,12629,12966,13532,15360,12549,12870,13468,15360,12356,12693,13372,15360,12151,12549,13231,15360,12215,12573,13247,15360,12199,12565,13231,15360,12071,12492,13135,15360,12055,12468,13087,15360,11878,12372,12958,15360,11685,12199,12781,15360,10774,11159,11412,15360,9533,9621,8870,15360,9308,9340,8071,15360,9276,9300,7878,15360,9324,9332,8420,15360,9191,9216,7991,15360,8950,8983,7766,15360,9493,9525,8677,15360,10252,10332,10007,15360,10661,10846,10894,15360,10701,10926,10998,15360,10950,11276,11428,15360,11364,11637,12063,15360,11958,12388,12926,15360,12183,12540,13175,15360,12340,12645,13295,15360,12420,12693,13316,15360,12757,13030,13460,15360,13046,13324,13645,15360,13095,13348,13677,15360,13303,13460,13781,15360,13207,13404,13741,15360,13127,13372,13717,15360,13372,13524,13862,15360,12693,13030,13540,15360,12725,13046,13548,15360,12468,12822,13436,15360,12263,12629,13348,15360,12436,12773,13428,15360,12693,12998,13524,15360,12725,13046,13564,15360,12645,12982,13556,15360,12613,12966,13556,15360,12886,13255,13685,15360,13436,13629,14022,15360,13637,13813,14231,15360,13621,13789,14215,15360,13878,14038,14412,15360,14022,14183,14468,15360,13926,14119,14452,15360,14054,14231,14508,15360,14135,14311,14540,15360,14348,14436,14669,15360,14460,14540,14749,15360,14404,14484,14709,15360,14420,14500,14709,15360,14653,14717,14894,15360,14119,14279,14508,15360,13484,13669,14078,15360,13063,13380,13773,15360,12677,13079,13613,15360,12484,12886,13516,15360,12436,12822,13476,15360,12468,12838,13476,15360,12039,12532,13316,15360,12231,12613,13340,15360,12468,12789,13436,15360,12388,12725,13396,15360,12135,12557,13287,15360,12151,12557,13271,15360,12039,12484,13175,15360,11878,12396,13038,15360,11814,12348,12950,15360,11492,11894,12460,15360,9950,10103,9621,15360,8830,8838,7220,15360,8565,8533,7015,15360,8541,8501,6919,15360,8332,8300,6822,15360,8412,8372,7220,15360,8710,8701,7686,15360,9372,9404,8549,15360,9533,9621,9079,15360,9268,9292,8196,15360,9452,9460,8167,15360,9533,9581,8533,15360,9742,9870,9316,15360,11460,11814,12348,15360,11942,12388,12902,15360,11749,12167,12573,15360,11300,11492,11621,15360,11974,12332,12669,15360,12436,12741,13364,15360,12597,12886,13460,15360,12966,13271,13653,15360,12998,13303,13669,15360,13476,13629,13974,15360,13733,13886,14239,15360,13364,13524,13894,15360,13063,13356,13725,15360,12982,13287,13669,15360,12484,12806,13444,15360,12565,12902,13500,15360,12950,13287,13693,15360,12934,13271,13677,15360,12693,13046,13589,15360,12661,13030,13605,15360,12870,13271,13717,15360,13348,13548,13966,15360,13621,13813,14271,15360,13797,13974,14412,15360,13942,14119,14484,15360,14263,14388,14629,15360,14420,14508,14733,15360,14460,14548,14773,15360,14982,15046,15231,15360,15564,15580,15669,15360,15974,15982,16078,15360,15805,15821,15926,15360,15460,15476,15572,15360,15436,15460,15556,15360,14781,14862,15127,15360,13621,13813,14348,15360,12789,13207,13757,15360,12452,12886,13581,15360,12263,12709,13476,15360,12039,12597,13396,15360,11942,12516,13340,15360,11846,12468,13271,15360,11733,12380,13127,15360,11926,12460,13191,15360,12055,12524,13263,15360,11878,12428,13159,15360,11605,12231,12886,15360,11412,11990,12709,15360,11508,12103,12789,15360,11637,12231,12854,15360,10661,11079,11380,15360,9541,9685,9252,15360,8573,8605,7493,15360,8404,8388,7348,15360,8830,8822,8212,15360,9308,9324,9095,15360,9324,9364,9220,15360,9047,9119,8653,15360,9023,9055,8404,15360,9055,9063,8167,15360,8870,8846,7541,15360,8862,8806,7380,15360,8950,8910,7252,15360,9268,9284,7557,15360,10316,10468,10380,15360,11239,11476,11677,15360,10653,10942,11047,15360,9661,9814,9324,15360,10693,10958,11047,15360,11396,11653,11990,15360,11878,12292,12597,15360,12468,12789,13396,15360,12773,13095,13589,15360,13364,13516,13894,15360,13894,14054,14380,15360,13717,13870,14247,15360,13420,13589,13958,15360,13255,13452,13830,15360,12806,13143,13637,15360,13159,13412,13830,15360,13629,13813,14215,15360,13303,13500,13910,15360,13079,13396,13805,15360,13191,13452,13878,15360,13412,13621,14062,15360,14103,14279,14540,15360,14773,14854,15086,15360,14717,14805,15046,15360,14295,14420,14685,15360,14380,14476,14733,15360,14572,14661,14902,15360,15596,15612,15701,15360,16351,16335,16384,15360,16484,16476,16492,15360,16516,16500,16516,15360,16388,16375,16404,15360,16054,16054,16118,15360,15918,15926,16006,15360,15556,15572,15669,15360,14653,14725,14982,15360,13637,13838,14319,15360,13412,13613,14054,15360,12870,13287,13789,15360,12404,12838,13524,15360,12199,12677,13428,15360,12324,12741,13452,15360,11942,12516,13324,15360,11765,12380,13111,15360,11428,11942,12589,15360,10886,11388,11902,15360,10372,10717,11006,15360,9846,10240,10191,15360,10252,10549,10766,15360,10613,11079,11484,15360,10581,10998,11388,15360,9613,9846,9629,15360,8525,8557,7541,15360,8605,8613,7814,15360,9292,9324,9079,15360,9388,9396,9220,15360,10709,10846,11031,15360,9894,9966,9854,15360,9252,9236,8774,15360,8822,8790,8183,15360,8292,8260,6533,15360,8111,8007,6324,15360,8228,8183,6405,15360,8501,8501,6565,15360,8814,8878,7172,15360,9260,9364,8244,15360,8902,9095,8252,15360,9444,9581,9047,15360,9509,9637,8790,15360,9477,9613,8806,15360,10725,11063,11079,15360,11508,11910,12356,15360,12484,12789,13380,15360,12838,13159,13629,15360,13428,13589,13974,15360,14135,14279,14484,15360,13942,14087,14396,15360,13677,13846,14247,15360,13436,13613,14006,15360,13597,13781,14183,15360,14183,14340,14540,15360,14022,14215,14484,15360,13637,13838,14271,15360,14038,14231,14508,15360,14380,14476,14701,15360,14757,14854,15078,15360,15030,15111,15343,15360,15420,15452,15556,15360,15476,15500,15588,15360,15351,15388,15492,15360,15572,15596,15677,15360,15653,15669,15717,15360,15821,15821,15853,15360,15845,15845,15869,15360,15998,15990,16022,15360,15926,15926,15974,15360,15653,15669,15733,15360,15661,15677,15749,15360,15612,15629,15717,15360,15271,15335,15452,15360,14484,14572,14821,15360,14215,14372,14588,15360,13468,13677,14167,15360,12773,13175,13653,15360,12725,13143,13637,15360,12452,12886,13532,15360,12263,12709,13444,15360,11894,12436,13103,15360,10252,10533,10661,15360,8613,8693,7445,15360,8742,8782,7047,15360,8420,8412,6565,15360,7926,7910,6405,15360,8806,8854,7300,15360,9127,9228,8007,15360,8685,8750,7300,15360,8348,8356,6758,15360,8380,8340,7300,15360,8991,8918,8388,15360,9838,9790,9549,15360,10055,10127,10047,15360,9501,9493,9268,15360,9332,9292,8902,15360,9079,9007,8509,15360,8300,8260,7252,15360,8693,8701,8196,15360,8228,8212,7111,15360,8469,8501,7380,15360,8420,8501,6919,15360,8549,8645,6983,15360,8581,8661,6951,15360,9268,9332,7718,15360,9063,9207,7445,15360,9284,9380,7718,15360,9412,9557,8693,15360,10276,10517,10103,15360,11830,12279,12589,15360,12725,13079,13589,15360,13127,13396,13773,15360,14087,14231,14460,15360,13974,14119,14412,15360,13677,13854,14247,15360,14119,14279,14500,15360,13990,14167,14460,15360,14364,14452,14653,15360,14564,14653,14837,15360,14404,14492,14701,15360,14870,14942,15135,15360,15388,15420,15500,15360,15207,15287,15420,15360,14797,14894,15127,15360,15271,15335,15452,15360,15926,15942,15990,15360,16207,16207,16231,15360,16118,16110,16126,15360,15741,15733,15741,15360,16239,16207,16175,15360,16444,16460,16484,15360,16046,16022,16006,15360,15942,15950,15966,15360,15773,15789,15829,15360,15789,15797,15845,15360,15693,15709,15757,15360,15540,15564,15653,15360,15303,15364,15468,15360,14733,14813,15014,15360,13862,14054,14420,15360,12838,13255,13725,15360,12789,13207,13693,15360,12468,12918,13564,15360,12404,12838,13500,15360,11428,11862,12412,15360,9143,9276,8388,15360,8541,8533,6726,15360,8444,8428,6629,15360,8212,8183,6597,15360,8388,8380,7015,15360,8726,8710,6758,15360,8332,8316,6437,15360,8453,8428,6565,15360,8597,8605,7814,15360,8701,8661,8151,15360,9452,9396,9015,15360,10581,10557,10380,15360,10950,10974,10846,15360,10380,10356,10252,15360,10749,10741,10685,15360,9870,9854,9693,15360,9023,9039,8669,15360,8790,8854,8509,15360,8196,8167,7332,15360,7975,8015,7079,15360,8589,8750,7445,15360,9095,9260,7111,15360,8983,9135,7188,15360,8902,8991,7252,15360,8862,9007,7015,15360,8967,9111,7300,15360,8742,8878,7493,15360,9557,9999,9549,15360,11292,11613,11862,15360,12135,12468,12982,15360,12215,12460,12878,15360,13356,13468,13685,15360,13821,13934,14199,15360,13548,13701,14022,15360,14103,14263,14468,15360,14279,14388,14572,15360,14364,14452,14645,15360,14709,14789,14950,15360,15143,15199,15327,15360,15388,15412,15468,15360,15476,15500,15548,15360,15420,15444,15492,15360,15436,15460,15516,15360,15612,15637,15685,15360,16086,16086,16110,15360,16396,16388,16396,15360,16094,16094,16110,15360,15869,15861,15861,15360,16135,16110,16070,15360,16428,16420,16404,15360,15588,15556,15524,15360,15484,15500,15508,15360,15335,15364,15396,15360,15677,15685,15717,15360,15604,15621,15661,15360,15420,15444,15500,15360,15303,15372,15452,15360,14717,14805,14998,15360,14412,14508,14701,15360,13548,13765,14199,15360,13271,13508,13942,15360,12661,13159,13709,15360,12468,12854,13436,15360,10260,10484,10509,15360,8613,8669,6951,15360,8151,8143,6469,15360,8653,8629,7814,15360,8469,8444,7541,15360,8718,8693,7814,15360,8372,8332,6597,15360,8356,8308,7111,15360,9047,8983,8396,15360,8822,8798,8308,15360,9372,9348,8967,15360,10364,10364,10183,15360,10268,10260,9894,15360,10541,10533,10468,15360,10380,10364,10276,15360,10621,10613,10549,15360,9910,9942,9758,15360,8364,8380,7621,15360,8581,8637,8135,15360,8252,8300,7573,15360,8119,8175,7300,15360,8372,8453,7493,15360,8420,8501,6983,15360,8742,8822,7573,15360,8782,8854,8151,15360,8581,8661,7079,15360,9220,9268,8340,15360,9549,9645,8854,15360,11717,11950,12127,15360,12468,12741,13207,15360,12709,12966,13388,15360,12300,12508,12886,15360,12492,12709,13063,15360,13239,13372,13548,15360,12476,12597,12814,15360,13581,13685,13878,15360,14476,14548,14685,15360,14556,14629,14773,15360,14765,14829,14966,15360,15159,15207,15303,15360,15372,15396,15444,15360,15516,15532,15572,15360,15653,15661,15693,15360,15829,15837,15853,15360,16022,16014,16022,15360,16311,16295,16279,15360,16343,16319,16303,15360,16412,16388,16359,15360,15813,15797,15773,15360,13063,13151,13183,15360,11484,11701,11798,15360,12300,12412,12468,15360,14613,14637,14653,15360,11974,12215,12316,15360,14135,14215,14303,15360,15604,15629,15677,15360,15524,15548,15596,15360,15351,15380,15428,15360,14797,14894,15054,15360,13990,14231,14500,15360,13492,13709,14070,15360,12886,13316,13701,15360,12613,13207,13749,15360,11525,11974,12428,15360,9284,9412,8629,15360,8597,8653,6951,15360,7806,7790,6292,15360,7589,7541,6437,15360,7485,7437,6597,15360,7453,7404,6180,15360,7774,7686,6565,15360,8300,8260,7332,15360,9918,9942,9862,15360,10348,10372,10231,15360,9725,9709,9228,15360,10613,10621,10509,15360,10199,10175,9838,15360,10380,10388,10340,15360,11207,11255,11284,15360,10661,10717,10725,15360,10103,10135,9950,15360,8444,8436,7669,15360,8469,8501,7445,15360,8950,9111,8854,15360,9485,9798,10071,15360,8364,8501,8039,15360,7959,7951,6806,15360,8597,8605,8039,15360,8501,8533,7557,15360,8758,8830,7509,15360,10758,10830,10693,15360,11508,11605,11621,15360,13524,13669,13886,15360,13830,14022,14327,15360,13926,14103,14364,15360,13460,13621,13886,15360,12854,13191,13420,15360,13597,13733,13926,15360,13846,13990,14223,15360,13773,13942,14199,15360,13910,14087,14356,15360,13813,14022,14319,15360,14247,14396,14540,15360,14693,14765,14878,15360,15223,15279,15343,15360,15508,15524,15540,15360,15540,15548,15564,15360,15327,15335,15319,15360,15303,15311,15303,15360,15918,15910,15886,15360,16247,16207,16151,15360,16175,16143,16086,15360,14436,14452,14436,15360,12263,12380,12404,15360,11476,11701,11773,15360,12380,12492,12532,15360,14797,14797,14757,15360,11372,11589,11677,15360,12597,12934,13356,15360,13990,14364,14725,15360,14183,14444,14773,15360,14231,14444,14717,15360,14412,14532,14709,15360,14054,14199,14380,15360,12372,12500,12605,15360,12199,12565,13006,15360,12581,13175,13653,15360,10055,10380,10324,15360,8557,8573,6726,15360,8167,8196,6533,15360,7517,7485,6119,15360,7244,7172,5798,15360,7071,6959,5718,15360,7669,7581,6260,15360,8661,8605,7975,15360,10942,11079,11151,15360,12573,12741,13014,15360,11902,12030,12191,15360,10308,10332,10135,15360,11255,11300,11284,15360,11276,11348,11396,15360,10055,10215,10292,15360,12183,12332,12468,15360,9918,9966,9798,15360,8734,8742,8196,15360,8967,8950,8469,15360,10260,10276,10039,15360,9734,9758,9605,15360,9388,9404,9308,15360,7943,7878,7095,15360,7726,7637,6645,15360,8047,7983,7204,15360,9284,9236,8693,15360,9621,9565,9143,15360,11255,11268,11047,15360,13175,13332,13420,15360,13773,13934,14175,15360,13854,14022,14271,15360,13870,14038,14279,15360,13388,13516,13677,15360,12279,12629,12966,15360,13348,13452,13564,15360,13821,13918,14054,15360,13701,13846,14022,15360,13460,13605,13781,15360,13492,13637,13821,15360,13709,13821,13950,15360,14372,14428,14476,15360,14516,14572,14613,15360,14741,14789,14813,15360,14725,14749,14749,15360,13452,13484,13468,15360,13476,13500,13492,15360,14990,15022,15022,15360,14556,14572,14564,15360,15094,15111,15094,15360,13231,13287,13215,15360,11255,11380,11175,15360,10677,10886,10492,15360,11846,12006,11934,15360,14327,14340,14279,15360,10766,11039,10862,15360,12918,13255,13452,15360,14231,14548,14886,15360,13878,14380,14765,15360,13444,13862,14412,15360,12151,12404,12621,15360,12637,12902,13215,15360,11549,11749,11870,15360,12279,12653,13119,15360,13223,13404,13516,15360,9228,9260,8276,15360,8087,7991,6308,15360,7918,7814,6919,15360,7469,7364,6148,15360,7485,7380,6212,15360,8228,7991,7204,15360,9276,8967,8212,15360,9806,9573,8742,15360,10135,10087,9621,15360,11452,11452,11452,15360,10629,10637,10509,15360,10693,10733,10637,15360,11095,11111,10982,15360,11292,11348,11372,15360,10199,10244,10167,15360,10814,10926,10846,15360,8669,8774,7493,15360,7870,7910,6244,15360,8204,8183,6919,15360,9806,9758,9159,15360,9460,9436,8629,15360,9159,9087,8260,15360,7637,7509,6790,15360,7758,7629,6838,15360,7967,7918,6774,15360,10854,10749,10501,15360,11508,11412,11316,15360,12372,12300,12151,15360,12030,12119,12063,15360,12781,12910,12982,15360,13476,13581,13661,15360,13484,13589,13677,15360,12404,12428,12380,15360,11605,11765,11798,15360,11492,11533,11452,15360,11838,11886,11798,15360,12263,12372,12380,15360,12151,12231,12175,15360,11492,11508,11412,15360,11119,11111,10838,15360,12508,12581,12573,15360,12621,12693,12677,15360,12573,12629,12589,15360,12292,12324,12231,15360,12476,12565,12573,15360,11998,12159,12215,15360,12950,13071,13159,15360,12263,12372,12428,15360,12380,12428,12444,15360,11300,11308,11143,15360,10199,10244,9734,15360,9709,9701,9252,15360,10492,10581,10404,15360,11476,11516,11388,15360,9477,9517,8790,15360,11717,11854,11838,15360,14247,14420,14524,15360,14054,14311,14436,15360,13597,13805,13982,15360,11364,11533,11597,15360,12263,12428,12549,15360,11436,11605,11653,15360,13079,13324,13444,15360,12516,12613,12605,15360,10039,10015,9605,15360,8693,8621,7878,15360,7951,7862,6902,15360,8196,8204,7015,15360,8677,8589,7637,15360,9284,9031,8340,15360,9814,9605,8902,15360,10685,10428,9910,15360,10492,10260,9685,15360,9404,9252,7943,15360,8830,8766,7220,15360,9220,9047,7943,15360,9693,9669,9015,15360,11412,11468,11372,15360,11135,11159,11023,15360,10087,10055,9428,15360,9910,10007,9621,15360,9236,9300,8934,15360,9597,9557,8902,15360,10669,10549,9782,15360,9926,9870,9127,15360,9894,9918,9047,15360,8685,8742,7910,15360,9958,10167,10284,15360,10215,10332,10396,15360,11396,11428,11452,15360,11223,11255,11300,15360,11814,11862,11958,15360,10685,10846,10870,15360,10340,10380,10007,15360,11175,11207,10894,15360,12103,12207,12215,15360,11143,11103,10902,15360,9910,9966,9613,15360,10015,10079,9493,15360,10806,10846,10517,15360,10862,10934,10637,15360,10838,10942,10661,15360,10958,11087,10878,15360,10709,10838,10701,15360,10669,10741,10589,15360,10581,10669,10525,15360,10252,10348,9974,15360,11396,11500,11525,15360,11207,11255,11264,15360,10878,10910,10934,15360,11031,11063,11159,15360,11292,11324,11396,15360,11223,11255,11300,15360,10693,10685,10645,15360,10428,10420,10324,15360,10300,10252,9991,15360,10838,10846,10798,15360,10428,10428,10364,15360,9669,9605,9380,15360,10167,10244,10087,15360,11709,11854,11910,15360,11223,11284,11268,15360,10231,10244,9878,15360,10199,10244,9862,15360,10183,10260,9942,15360,10525,10653,10541,15360,12500,12597,12621,15360,11814,11741,11597,15360,11533,11460,11175,15360,11103,11006,10557,15360,10444,10396,9846,15360,10007,10023,9228,15360,9653,9790,8469,15360,9316,9372,8039,15360,9557,9830,8071,15360,9621,9918,8071,15360,9677,10015,8167,15360,9991,10284,8420,15360,10215,10436,8581,15360,10260,10484,8645,15360,10292,10476,8902,15360,10324,10468,9252,15360,9910,9894,8886,15360,10525,10573,9701,15360,9782,10039,8581,15360,9565,9814,8167,15360,9950,10039,8934,15360,10749,10758,10199,15360,10669,10685,10244,15360,10838,10838,10460,15360,11215,10910,10087,15360,11492,11364,10806,15360,11095,11159,11055,15360,11364,11388,11356,15360,11023,11039,10990,15360,11653,11653,11613,15360,11798,11725,11557,15360,11974,11862,11637,15360,12039,11942,11765,15360,12119,12047,11934,15360,12151,12071,11950,15360,12087,12006,11886,15360,12047,11966,11838,15360,11990,11926,11790,15360,11974,11910,11798,15360,11998,11934,11814,15360,12111,12039,11886,15360,12231,12143,11998,15360,12292,12199,12039,15360,12039,11974,11846,15360,11822,11782,11653,15360,11862,11838,11765,15360,11798,11765,11701,15360,11782,11733,11669,15360,11798,11749,11685,15360,11838,11790,11725,15360,11870,11822,11749,15360,11741,11701,11621,15360,11565,11541,11452,15360,11533,11500,11412,15360,11621,11581,11484,15360,11605,11557,11460,15360,11516,11468,11372,15360,11565,11533,11444,15360,11677,11637,11541,15360,11725,11661,11557,15360,11725,11661,11557,15360,11733,11669,11573,15360,11838,11773,11677,15360,11998,11926,11814,15360,12014,11926,11798,15360,11460,11404,11332,15360,11637,11557,11428,15360,12014,11894,11693,15360,12167,12022,11765,15360,12119,11982,11709,15360,11926,11806,11516,15360,11685,11589,11300,15360,11476,11404,10886,15360,11239,11151,10468,15360,10766,10733,9894,15360,10565,10565,9589,15360,10436,10444,9332,15360,10308,10308,9031,15360,10308,10316,8999,15360,10199,10244,8774,15360,9725,9645,8549,15360,10244,10276,8967,15360,10878,10838,10183,15360,11055,10966,10348,15360,11119,11006,10404,15360,11264,11135,10565,15360,11404,11316,10822,15360,11492,11388,10982,15360,11798,11613,11223,15360,12047,11830,11412,15360,12039,11894,11597,15360,12127,11990,11693,15360,12127,11990,11725,15360,12191,12055,11806,15360,12191,12055,11830,15360,11870,11773,11613,15360,11573,11516,11428,15360,11533,11484,11412,15360,11541,11492,11420,15360,11565,11516,11452,15360,11589,11541,11476,15360,11605,11557,11500,15360,11637,11589,11533,15360,11669,11621,11557,15360,11701,11645,11573,15360,11733,11669,11589,15360,11798,11717,11605,15360,11838,11749,11621,15360,11878,11782,11661,15360,11894,11798,11661,15360,11926,11806,11653,15360,11958,11822,11661,15360,11982,11846,11677,15360,12006,11870,11685,15360,12095,11950,11765,15360,12047,11910,11741,15360,11886,11765,11605,15360,11838,11733,11589,15360,11814,11717,11589,15360,11814,11709,11573,15360,11790,11693,11565,15360,11741,11677,11589,15360,11733,11677,11613,15360,11733,11685,11629,15360,11717,11669,11621,15360,11685,11645,11589,15360,11629,11589,11533,15360,11573,11525,11468,15360,11492,11444,11380,15360,11316,11255,11111,15360,11348,11292,11143,15360,11516,11436,11316,15360,11854,11749,11589,15360,12127,11990,11765,15360,12199,12055,11782,15360,12340,12231,11910,15360,12372,12292,11958,15360,12380,12300,11974,15360,12348,12247,11910,15360,12324,12215,11878,15360,12247,12103,11773,15360,12095,11958,11637,15360,12055,11926,11613,15360,11974,11854,11541,15360,11870,11765,11468,15360,11966,11854,11541,15360,12300,12151,11846,15360,12396,12316,12006,15360,12388,12308,11990,15360,12388,12308,12006,15360,12396,12316,12022,15360,12396,12308,12022,15360,12396,12308,12022,15360,12364,12279,11974,15360,12340,12247,11942,15360,12340,12231,11926,15360,12215,12071,11806,15360,12095,11966,11749,15360,11741,11645,11500,15360,11420,11356,11255,15360,11364,11308,11207,15360,11356,11300,11175,15360,11348,11292,11191,15360,11372,11324,11255,15360,11412,11364,11308,15360,11420,11372,11316,15360,11428,11380,11324,15360,11444,11388,11332,15360,11484,11428,11364,15360,11508,11460,11396,15360,11557,11500,11436,15360,11589,11533,11460,15360,11613,11557,11484,15360,11621,11557,11492,15360,11613,11557,11500,15360,11621,11557,11500,15360,11629,11573,11508,15360,11629,11573,11508,15360,11605,11557,11484,15360,11589,11533,11468,15360,11557,11508,11436,15360,11549,11500,11428,15360,11557,11500,11436,15360,11549,11492,11436,15360,11533,11484,11428,15360,11525,11476,11428,15360,11516,11476,11428,15360,11525,11484,11444,15360,11516,11476,11428,15360,11468,11428,11380,15360,11428,11388,11332,15360,11356,11308,11239,15360,11308,11255,11127,15360,11167,11071,10926,15360,11223,11119,10966,15360,11276,11175,10998,15360,11404,11332,11191,15360,11773,11693,11557,15360,11926,11798,11613,15360,12207,12039,11773,15360,12348,12231,11894,15360,12308,12151,11846,15360,12332,12215,11894,15360,12364,12279,11958,15360,12380,12292,11974,15360,12396,12316,12022,15360,12404,12316,12039,15360,12412,12332,12087,15360,12412,12332,12103,15360,12436,12356,12135,15360,12372,12292,12039,15360,12420,12332,12087,15360,12396,12316,12055,15360,12356,12263,11990,15360,12340,12231,11942,15360,12271,12127,11854,15360,12215,12071,11814,15360,12292,12135,11878,15360,12288,12135,11870,15360,12111,11982,11765,15360,11990,11886,11717,15360,11637,11557,11428,15360,11364,11300,11143,15360,11316,11239,11079,15360,11300,11207,11047,15360,11268,11159,11015,15360,11268,11159,11015,15360,11268,11159,11031,15360,11300,11223,11095,15360,11340,11292,11191,15360,11348,11300,11223,15360,11372,11324,11255,15360,11380,11332,11255,15360,11372,11316,11239,15360,11396,11340,11268,15360,11468,11404,11300,15360,11460,11404,11324,15360,11484,11428,11356,15360,11492,11436,11372,15360,11500,11444,11388,15360,11508,11460,11404,15360,11500,11452,11396,15360,11492,11436,11380,15360,11468,11412,11356,15360,11444,11388,11324,15360,11444,11388,11324,15360,11428,11380,11316,15360,11412,11356,11300,15360,11404,11348,11300,15360,11404,11356,11308,15360,11396,11356,11308,15360,11388,11348,11308,15360,11372,11340,11292,15360,11348,11308,11255,15360,11284,11223,11111,15360,11231,11143,11023,15360,11199,11111,10974,15360,11047,10958,10814,15360,11127,11023,10870,15360,11119,11006,10846,15360,11175,11055,10886,15360,11292,11191,10998,15360,11525,11404,11284,15360,11822,11637,11476,15360,11878,11733,11549,15360,11918,11790,11573,15360,12063,11918,11653,15360,12223,12063,11765,15360,12300,12151,11846,15360,12255,12103,11814,15360,12271,12127,11846,15360,12271,12127,11862,15360,12271,12127,11886,15360,12308,12183,11942,15360,12175,12039,11814,15360,12063,11934,11709,15360,12159,12014,11765,15360,12215,12063,11798,15360,12143,11998,11757,15360,12071,11934,11693,15360,11998,11870,11661,15360,11974,11870,11685,15360,11998,11910,11757,15360,11846,11765,11629,15360,11468,11396,11284,15360,11308,11223,11031,15360,11215,11103,10934,15360,11207,11095,10942,15360,11215,11103,10950,15360,11191,11087,10942,15360,11175,11079,10942,15360,11167,11063,10934,15360,11143,11031,10902,15360,11247,11143,11015,15360,11284,11191,11079,15360,11300,11223,11095,15360,11316,11268,11127,15360,11340,11284,11143,15360,11340,11284,11159,15360,11356,11300,11191,15360,11372,11316,11239,15360,11380,11324,11255,15360,11372,11316,11255,15360,11380,11324,11276,15360,11380,11324,11268,15360,11372,11316,11255,15360,11364,11316,11255,15360,11364,11308,11239,15360,11348,11292,11207,15360,11340,11284,11191,15360,11348,11292,11191,15360,11348,11292,11207,15360,11340,11292,11207,15360,11340,11292,11207,15360,11324,11276,11207,15360,11308,11255,11175,15360,11264,11175,11079,15360,11119,11039,10934,15360,11103,11015,10902,15360,11095,11006,10878,15360,11031,10942,10806,15360,10990,10902,10766,15360,11047,10942,10814,15360,11031,10926,10790,15360,11055,10942,10806,15360,11119,10998,10846,15360,11151,11015,10830,15360,11268,11095,10886,15360,11484,11396,11268,15360,11790,11701,11549,15360,11886,11790,11637,15360,11838,11741,11581,15360,11838,11725,11541,15360,11902,11782,11581,15360,11966,11838,11629,15360,11974,11846,11629,15360,11958,11838,11629,15360,11950,11838,11637,15360,11814,11701,11525,15360,11581,11492,11332,15360,11645,11541,11380,15360,11806,11701,11533,15360,11902,11806,11637,15360,11950,11862,11717,15360,12014,11934,11790,15360,11942,11862,11725,15360,11565,11492,11388,15360,11292,11191,11015,15360,11231,11111,10950,15360,11159,11047,10894,15360,11119,11006,10854,15360,11127,11023,10878,15360,11159,11055,10902,15360,11135,11031,10894,15360,11111,11006,10878,15360,11095,10990,10870,15360,11095,10998,10886,15360,11071,10966,10846,15360,11111,11006,10902,15360,11191,11095,10974,15360,11268,11159,11031,15360,11284,11191,11063,15360,11292,11207,11063,15360,11300,11223,11079,15360,11332,11268,11143,15360,11316,11255,11127,15360,11316,11255,11143,15360,11308,11239,11127,15360,11316,11255,11159,15360,11300,11223,11127,15360,11292,11207,11095,15360,11300,11223,11111,15360,11300,11223,11095,15360,11300,11223,11095,15360,11308,11239,11111,15360,11300,11223,11111,15360,11292,11207,11111,15360,11264,11167,11071,15360,11215,11127,11047,15360,11135,11055,10966,15360,11015,10934,10846,15360,10918,10838,10733,15360,10982,10894,10782,15360,10974,10886,10766,15360,10982,10894,10766,15360,10958,10862,10749,15360,10982,10886,10774,15360,10958,10862,10758,15360,10958,10862,10749,15360,11015,10910,10790,15360,11023,10910,10774,15360,11079,10958,10806,15360,11103,10974,10798,15360,11191,11047,10846,15360,11468,11388,11276,15360,11846,11765,11637,15360,12006,11918,11782,15360,11998,11910,11782,15360,11902,11822,11693,15360,11838,11749,11637,15360,11782,11709,11605,15360,11806,11741,11645,15360,11782,11717,11629,15360,11773,11717,11621,15360,11870,11806,11701,15360,11942,11862,11757,15360,12183,12103,11974,15360,11974,11894,11765,15360,11476,11404,11308,15360,11268,11143,10966,15360,11183,11063,10902,15360,11111,10998,10854,15360,11055,10942,10806,15360,11023,10910,10766,15360,11047,10934,10782,15360,11039,10926,10782,15360,11079,10966,10830,15360,11031,10918,10782,15360,11031,10926,10806,15360,10990,10894,10782,15360,10974,10886,10790,15360,10966,10870,10774,15360,11006,10902,10806,15360,11039,10942,10838,15360,11127,11023,10910,15360,11175,11079,10958,15360,11191,11087,10958,15360,11207,11095,10958,15360,11268,11143,11015,15360,11276,11175,11047,15360,11284,11191,11079,15360,11292,11191,11079,15360,11276,11175,11079,15360,11239,11135,11031,15360,11268,11159,11047,15360,11215,11111,11006,15360,11239,11127,11015,15360,11255,11143,11031,15360,11223,11119,11015,15360,11199,11103,10998,15360,11175,11087,10982,15360,11143,11047,10958,15360,11031,10942,10854,15360,10958,10878,10790,15360,10910,10830,10741,15360,10942,10862,10758,15360,10926,10838,10733,15360,10854,10758,10637,15360,10918,10830,10709,15360,10910,10822,10717,15360,10942,10846,10749,15360,10942,10854,10741,15360,10942,10854,10749,15360,10966,10870,10758,15360,10966,10870,10758,15360,10958,10854,10733,15360,10998,10886,10741,15360,10942,10830,10677,15360,11039,10918,10749,15360,11095,10974,10806,15360,11308,11223,11031,15360,11468,11396,11292,15360,11605,11533,11428,15360,11701,11621,11525,15360,11693,11629,11541,15360,11685,11621,11549,15360,11685,11629,11549,15360,11629,11565,11484,15360,11589,11533,11444,15360,11364,11308,11191,15360,11191,11087,10958,15360,11135,11031,10902,15360,11135,11031,10894,15360,11055,10950,10830,15360,11015,10910,10782,15360,10958,10854,10733,15360,10942,10838,10717,15360,10974,10870,10733,15360,10982,10878,10749,15360,10990,10886,10758,15360,11015,10910,10798,15360,10966,10862,10758,15360,10950,10854,10758,15360,10910,10822,10733,15360,10894,10798,10709,15360,10902,10814,10725,15360,10934,10846,10758,15360,10910,10822,10733,15360,10950,10854,10749,15360,10974,10878,10766,15360,11047,10942,10830,15360,11095,10990,10878,15360,11167,11055,10942,15360,11199,11103,10990,15360,11191,11087,10982,15360,11151,11047,10950,15360,11135,11031,10934,15360,11095,10998,10902,15360,11143,11047,10950,15360,11079,10990,10894,15360,11079,10990,10902,15360,11103,11006,10910,15360,11079,10982,10886,15360,11023,10926,10822,15360,10982,10894,10798,15360,10958,10870,10782,15360,10910,10814,10725,15360,10926,10838,10741,15360,10934,10838,10733,15360,10950,10854,10749,15360,10886,10798,10709,15360,10910,10814,10709,15360,10926,10830,10725,15360,10910,10814,10701,15360,10862,10774,10677,15360,10950,10854,10733,15360,10926,10830,10717,15360,10926,10838,10725,15360,10926,10830,10725,15360,10894,10798,10685,15360,10926,10830,10701,15360,10958,10854,10717,15360,10934,10830,10685,15360,10950,10846,10709,15360,10974,10862,10717,15360,10942,10830,10685,15360,10958,10846,10701,15360,11006,10894,10749,15360,10950,10846,10725,15360,10958,10862,10741,15360,10894,10806,10701,15360,10854,10774,10669,15360,10886,10806,10701,15360,10862,10790,10693,15360,10878,10806,10717,15360,10982,10902,10798,15360,10990,10902,10798,15360,10950,10862,10758,15360,10942,10846,10733,15360,10870,10774,10669,15360,10894,10798,10693,15360,10918,10830,10725,15360,10894,10806,10701,15360,10926,10830,10733,15360,10902,10830,10725,15360,10870,10790,10693,15360,10886,10814,10725,15360,10814,10741,10661,15360,10838,10766,10677,15360,10822,10741,10661,15360,10822,10741,10669,15360,10862,10790,10709,15360,10846,10758,10669,15360,10894,10798,10693,15360,10974,10878,10766,15360,10966,10870,10766,15360,11023,10926,10814,15360,11079,10974,10862,15360,11006,10910,10814,15360,10950,10862,10766,15360,10982,10894,10798,15360,10958,10862,10774,15360,10958,10870,10782,15360,10910,10830,10741,15360,10950,10862,10766,15360,10982,10886,10790,15360,10918,10822,10725,15360,10886,10798,10701,15360,10854,10766,10669,15360,10894,10806,10709,15360,10926,10830,10725,15360,10926,10830,10725,15360,10958,10862,10749,15360,10958,10862,10749,15360,10894,10806,10717,15360,10902,10814,10717,15360,10878,10790,10677,15360,10942,10838,10717,15360,10918,10814,10701,15360,10886,10790,10661,15360,10942,10838,10717,15360,10950,10854,10725,15360,10950,10854,10725,15360,10910,10814,10693,15360,10910,10814,10685,15360,10942,10838,10709,15360,10894,10790,10661,15360,10910,10806,10669,15360,10822,10725,10597,15360,10749,10661,10541,15360,10830,10733,10613,15360,10838,10741,10629,15360,10806,10709,10597,15360,10854,10766,10653,15360,10862,10774,10669,15360,10798,10725,10629,15360,10822,10749,10653,15360,10854,10782,10693,15360,10806,10741,10661,15360,10862,10790,10701,15360,10870,10790,10685,15360,10870,10790,10693,15360,10878,10790,10677,15360,10862,10782,10677,15360,10870,10790,10693,15360,10870,10782,10685,15360,10894,10814,10709,15360,10886,10814,10709,15360,10846,10782,10685,15360,10741,10669,10573,15360,10766,10693,10589,15360,10709,10637,10541,15360,10741,10669,10589,15360,10741,10677,10589,15360,10709,10637,10557,15360,10774,10701,10613,15360,10862,10774,10677,15360,11006,10918,10806,15360,11006,10902,10782,15360,10974,10870,10749,15360,10958,10854,10733,15360,10934,10838,10725,15360,10934,10838,10733,15360,10934,10838,10725,15360,10886,10790,10685,15360,10854,10766,10661,15360,10886,10798,10701,15360,10838,10749,10645,15360,10878,10782,10661,15360,10822,10725,10613,15360,10822,10717,10605,15360,10846,10749,10629,15360,10854,10749,10637,15360,10950,10854,10733,15360,10958,10854,10741,15360,10910,10806,10693,15360,10926,10822,10693,15360,10934,10838,10725,15360,10910,10822,10709,15360,10910,10822,10709,15360,10886,10782,10661,15360,10910,10814,10677,15360,10910,10806,10677,15360,10926,10822,10685,15360,10958,10854,10717,15360,10974,10870,10725,15360,10926,10830,10693,15360,10926,10830,10693,15360,10918,10822,10693,15360,10934,10838,10701,15360,10918,10814,10685,15360,10878,10782,10653,15360,10870,10774,10645,15360,10838,10749,10629,15360,10806,10717,10605,15360,10822,10733,10621,15360,10822,10733,10621,15360,10846,10758,10653,15360,10846,10766,10653,15360,10822,10741,10629,15360,10806,10733,10629,15360,10806,10725,10621,15360,10790,10709,10605,15360,10766,10693,10589,15360,10814,10741,10629,15360,10846,10766,10653,15360,10838,10758,10653,15360,10878,10790,10677,15360,10894,10798,10685,15360,10830,10741,10629,15360,10830,10758,10653,15360,10798,10725,10629,15360,10806,10733,10629,15360,10717,10637,10525,15360,10661,10581,10476,15360,10701,10621,10517,15360,10733,10661,10565,15360,10782,10685,10557,15360,10862,10758,10613,15360,10974,10862,10725,15360,10958,10846,10709,15360,11006,10902,10766,15360,11006,10902,10774,15360,11039,10934,10814,15360,11006,10902,10790,15360,11006,10910,10790,15360,10950,10854,10741,15360,10934,10830,10709,15360,10918,10814,10701,15360,10854,10758,10653,15360,10918,10814,10701,15360,10870,10766,10645,15360,10830,10733,10621,15360,10934,10830,10709,15360,10990,10886,10758,15360,10950,10838,10717,15360,10910,10814,10701,15360,10926,10822,10693,15360,10934,10830,10709,15360,10878,10774,10653,15360,10934,10830,10701,15360,10926,10822,10693,15360,10878,10782,10661,15360,10878,10782,10661,15360,10862,10766,10621,15360,10886,10782,10645,15360,10886,10782,10653,15360,10926,10822,10701,15360,10902,10806,10685,15360,10926,10822,10701,15360,10918,10814,10685,15360,10878,10782,10645,15360,10910,10806,10669,15360,10854,10758,10621,15360,10886,10790,10645,15360,10854,10758,10629,15360,10830,10741,10613,15360,10918,10814,10685,15360,10862,10766,10645,15360,10830,10741,10613,15360,10806,10717,10597,15360,10741,10661,10557,15360,10774,10693,10581,15360,10749,10669,10557,15360,10774,10693,10581,15360,10766,10685,10573,15360,10790,10709,10597,15360,10782,10701,10589,15360,10790,10709,10597,15360,10838,10749,10621,15360,10870,10774,10645,15360,10894,10790,10661,15360,10878,10782,10653,15360,10846,10741,10613,15360,10790,10693,10557,15360,10814,10717,10597,15360,10790,10701,10581,15360,10741,10645,10525,15360,10717,10629,10509,15360,10774,10685,10573,15360,10725,10637,10525,15360,10854,10749,10621,15360,10950,10846,10701,15360,10966,10854,10709,15360,10934,10814,10677,15360,10926,10822,10701,15360,10982,10878,10766,15360,10998,10894,10782,15360,10990,10878,10766,15360,10998,10894,10782,15360,10998,10886,10774,15360,10998,10886,10758,15360,11006,10894,10774,15360,10942,10838,10733,15360,10958,10854,10741,15360,10958,10854,10749,15360,11006,10902,10790,15360,11015,10902,10798,15360,10982,10870,10758,15360,10998,10894,10782,15360,10974,10870,10758,15360,11006,10902,10790,15360,10998,10894,10774,15360,10974,10870,10758,15360,10950,10854,10741,15360,10878,10790,10693,15360,10902,10814,10701,15360,10918,10822,10709,15360,10838,10733,10613,15360,10878,10782,10661,15360,10934,10838,10717,15360,10902,10806,10693,15360,10918,10822,10709,15360,10926,10830,10709,15360,10838,10733,10605,15360,10910,10806,10661,15360,10942,10838,10693,15360,10886,10782,10645,15360,10886,10782,10637,15360,10854,10749,10621,15360,10926,10830,10709,15360,10966,10862,10741,15360,10846,10749,10629,15360,10830,10733,10605,15360,10854,10758,10637,15360,10822,10725,10605,15360,10886,10790,10661,15360,10902,10806,10669,15360,10918,10814,10677,15360,10830,10733,10605,15360,10806,10717,10589,15360,10870,10774,10645,15360,10934,10838,10709,15360,10958,10862,10733,15360,10886,10790,10661,15360,10894,10798,10661,15360,10958,10854,10709,15360,10934,10830,10709,15360,10814,10717,10581,15360,10862,10758,10613,15360,10854,10741,10589,15360,10814,10717,10573,15360,10886,10782,10645,15360,10814,10725,10597,15360,10862,10766,10637,15360,10910,10806,10669,15360,10942,10838,10709,15360,10966,10862,10733,15360,10974,10870,10741,15360,10974,10870,10749,15360,10958,10862,10749,15360,11031,10934,10822,15360,10998,10894,10782,15360,10974,10870,10766,15360,11023,10918,10814,15360,11039,10926,10822,15360,10958,10846,10741,15360,10918,10814,10693,15360,10966,10870,10741,15360,10982,10886,10766,15360,10982,10878,10766,15360,10942,10846,10733,15360,10958,10862,10758,15360,10950,10854,10758,15360,10934,10830,10717,15360,10966,10862,10733,15360,10942,10846,10725,15360,10934,10846,10733,15360,10934,10846,10733,15360,10878,10798,10693,15360,10886,10798,10693,15360,10910,10814,10709,15360,10942,10846,10733,15360,10838,10733,10597,15360,10878,10774,10645,15360,10918,10822,10701,15360,10878,10782,10653,15360,10894,10790,10661,15360,10934,10838,10725,15360,10958,10854,10725,15360,10966,10862,10733,15360,10910,10806,10685,15360,10982,10878,10758,15360,10942,10854,10749,15360,10934,10838,10733,15360,10918,10814,10701,15360,10894,10798,10669,15360,10894,10798,10669,15360,10814,10725,10605,15360,10902,10798,10669,15360,10814,10725,10605,15360,10894,10798,10685,15360,10958,10862,10749,15360,10910,10814,10701,15360,10910,10806,10685,15360,10918,10814,10693,15360,10926,10822,10709,15360,10894,10790,10661,15360,10902,10806,10677,15360,10902,10806,10685,15360,10934,10838,10717,15360,10934,10838,10701,15360,10934,10838,10717,15360,10950,10854,10725,15360,10894,10798,10661,15360,10862,10749,10597,15360,10894,10798,10677,15360,10878,10782,10661,15360,10926,10838,10717,15360,10926,10838,10717,15360,10918,10822,10709,15360,10934,10838,10733,15360,10926,10838,10733,15360,10958,10870,10766,15360,10942,10854,10749,15360,10958,10870,10774,15360,10974,10878,10774,15360,10958,10854,10741,15360,10950,10846,10741,15360,10950,10854,10758,15360,10934,10838,10733,15360,10942,10846,10725,15360,10966,10862,10741,15360,10926,10838,10733,15360,10958,10862,10749,15360,10910,10822,10709,15360,10942,10854,10758,15360,10926,10838,10733,15360,10910,10822,10717,15360,10934,10838,10733,15360,10934,10846,10733,15360,10902,10814,10709,15360,10926,10830,10717,15360,10918,10822,10709,15360,10838,10749,10637,15360,10878,10790,10677,15360,10942,10846,10733,15360,10926,10822,10701,15360,10958,10862,10749,15360,10886,10790,10685,15360,10918,10814,10693,15360,10910,10814,10693,15360,10902,10806,10701,15360,10878,10774,10637,15360,10798,10693,10565,15360,10822,10725,10597,15360,10934,10838,10709,15360,10958,10854,10725,15360,10886,10790,10669,15360,10910,10806,10677,15360,10886,10782,10645,15360,10830,10725,10597,15360,10822,10717,10581,15360,10862,10758,10637,15360,10878,10782,10669,15360,10926,10822,10709,15360,10974,10878,10774,15360,10966,10870,10758,15360,10918,10822,10709,15360,10846,10749,10645,15360,10894,10798,10693,15360,10918,10822,10709,15360,10974,10878,10774,15360,10918,10822,10717,15360,10982,10886,10774,15360,10974,10878,10758,15360,10950,10854,10741,15360,10958,10854,10725,15360,10982,10886,10766,15360,10918,10822,10701,15360,10878,10782,10669,15360,10886,10790,10669,15360,10934,10838,10717,15360,10950,10854,10741,15360,10934,10838,10733,15360,10982,10886,10782,15360,10886,10798,10701,15360,10870,10782,10685,15360,10894,10814,10717,15360,10910,10822,10725,15360,10934,10838,10733,15360,10950,10846,10741,15360,10934,10838,10725,15360,10934,10846,10749,15360,10902,10814,10717,15360,10878,10790,10677,15360,10878,10782,10669,15360,10854,10766,10645,15360,10838,10749,10629,15360,10902,10814,10701,15360,10910,10814,10693,15360,10902,10798,10669,15360,10910,10806,10677,15360,10886,10782,10653,15360,10854,10749,10629,15360,10870,10774,10653,15360,10974,10870,10758,15360,10990,10878,10758,15360,10918,10822,10709,15360,10926,10838,10725,15360,10958,10854,10733,15360,10894,10790,10653,15360,10822,10725,10605,15360,10878,10782,10661,15360,10974,10870,10749,15360,10902,10806,10677,15360,10934,10838,10725,15360,10870,10774,10653,15360,10798,10701,10581,15360,10854,10749,10621,15360,10894,10798,10669,15360,10934,10822,10685,15360,10942,10830,10701,15360,10910,10806,10669,15360,10870,10758,10629,15360,10886,10774,10645,15360,10950,10838,10701,15360,10966,10870,10749,15360,10886,10790,10685,15360,10870,10782,10677,15360,10934,10838,10733,15360,10934,10838,10725,15360,10822,10725,10621,15360,10878,10790,10677,15360,10894,10798,10693,15360,10822,10733,10629,15360,10894,10798,10685,15360,10998,10902,10790,15360,11015,10918,10806,15360,10950,10854,10741,15360,10950,10846,10741,15360,10934,10838,10733,15360,10942,10846,10749,15360,10910,10822,10725,15360,10846,10758,10653,15360,10878,10790,10685,15360,10894,10798,10701,15360,10862,10774,10669,15360,10814,10725,10621,15360,10846,10758,10645,15360,10870,10774,10661,15360,10870,10774,10677,15360,10878,10790,10693,15360,10878,10782,10677,15360,10830,10741,10637,15360,10870,10782,10677,15360,10966,10870,10766,15360,11015,10918,10814,15360,10910,10814,10701,15360,10942,10846,10725,15360,10950,10846,10725,15360,10942,10838,10725,15360,10934,10830,10701,15360,10910,10798,10677,15360,10886,10782,10653,15360,10838,10733,10597,15360,10902,10806,10669,15360,10830,10733,10613,15360,10838,10741,10621,15360,10838,10741,10621,15360,10894,10798,10669,15360,10934,10830,10685,15360,10886,10790,10669,15360,10902,10806,10685,15360,10854,10749,10637,15360]);var BimViewerDatGui=class{constructor(t){var e=nz;this[e(6809)]={},this.controls={showGroundGrid:!1,showGrassGround:!1,skyMode:["None",e(6810),e(6811),"Gradient ramp","Cloudy"],environments:[e(4006),e(6812),"Venice Sunset",e(6813),e(6814)],homeView:()=>console[e(695)]("[DGH] Go to home view"),views:[e(4810),"Bottom","Front",e(5577),e(4813),e(1588)],OrthographicCamera:!1,viewpoints:!1,annotations:!1,takeSnapshot:()=>console[e(695)]("[DGH] Taking snapshot..."),fullScreen:()=>console[e(695)](e(6815)),webcam:!1,uploadFile:()=>console[e(695)]("[DGH] Upload file..."),showBimTree:!1,showPropertyPanel:!1,transparentMode:!1,showVertexNormals:!1,sectionMode:[e(6816),e(6817),e(6818)],alVisible:!0,alColor:"#cccccc",alIntensity:1,dlColor:"#dddddd",showDlHelper:!1,hlVisible:!0,hlIntensity:1,hlColor:[255,255,255,.6],hlGroundColor:[200,255,200,.6],fogEnabled:!1,fogColor:14540253,fogNearDistance:1,fogFarDistance:1e3,composerEnabled:!1,renderPassEnabled:!1,fxaaEnabled:!1,saoEnabled:!1,ssaoEnabled:!1,outlineEnabled:!1,ssaaEnabled:!1,bloomEnabled:!1,unrealBloomEnabled:!1},this[e(4862)]=t,this[e(2645)]()}[nz(2645)](){var t=nz;if(!this.viewer||!this.viewer[t(4885)]||!this[t(4862)][t(4758)])throw new Error(t(6819));const e=this.viewer,n=this.viewer[t(4758)],r=this[t(5350)];this[t(6689)]=new GUI$1({name:t(5350),autoPlace:!0,width:300,closed:!0}),this.gui.domElement.style[t(2286)]=t(6820);const i=this.gui.addFolder(t(6821));i[t(747)](r,t(6822)).name(t(6823))[t(6539)]((r=>{var i=t;e[i(6824)]?e.groundGrid[i(2122)]=r:r&&(e[i(6824)]=GroundUtils.createGroundGrid(),n[i(747)](e[i(6824)]),e[i(5656)]()),e[i(5656)]()})),i[t(747)](r,t(6825))[t(542)]("Show grass ground").onChange((r=>{var i=t;e.grassGround?e[i(6826)][i(2122)]=r:r&&(()=>{__async(this,null,(function*(){var t=i;e[t(6826)]=yield GroundUtils.createGrassGround(),n[t(747)](e[t(6826)]),e.enableRender()}))})(),e[i(5656)]()}));const s=i[t(747)](r,"skyMode",r[t(6827)])[t(542)](t(6828));s[t(6539)]((r=>{var i=t;if(e[i(6829)]&&(e[i(6829)][i(2122)]=r===i(6830)),r===i(6810))n[i(2166)]=new Color(0);else if(r===i(6811))n[i(2166)]=new Color(16777215);else if("Gradient ramp"===r)!e[i(6829)]&&(e[i(6829)]=SkyboxUtils.createSkyOfGradientRamp(),n.add(e[i(6829)])),e[i(6829)][i(2122)]=!0;else if("Cloudy"===r){let t=[i(6831),i(6832),i(6833),"bottom.jpg",i(6834),i(6835)];t=t[i(679)]((t=>window[i(2608)][i(1103)]+i(6836)+t)),SkyboxUtils[i(4806)](t)[i(829)]((t=>{n[i(2166)]=t}))}else n[i(2166)]=e[i(6837)];e[i(5656)]()})),s[t(2723)](t(6830));i[t(747)](r,t(6838),r[t(6838)]).name(t(6839))[t(6539)]((r=>{var i=t;let s="";if("Default (City Streat 64x32)"===r){if(e.pmremGenerator)return TextureUtils[i(6805)](e[i(6840)])[i(829)]((t=>{n.environment=t})),void e[i(5656)]()}else"Venice Sunset"===r?s=i(6841):"Footprint Court (HDR Labs)"===r?s="footprint_court_2k.hdr":"City Street"===r&&(s=i(6842));""===s?n[i(2167)]=null:(s=window[i(2608)][i(1103)]+i(6843)+s,TextureUtils.createEnvTexture(e[i(6840)],s)[i(829)]((t=>{n[i(2167)]=t}))),e[i(5656)]()})),i[t(747)](r,t(6844))[t(542)]("Go to home view")[t(6539)]((()=>{e[t(6845)]()})),i[t(747)](r,t(6846),r[t(6846)])[t(542)](t(6847))[t(6539)]((r=>{var i,s=t;const a=new Vector3,o=new Vector3,c=SceneUtils[s(4775)](n),l=Viewer3DUtils[s(6848)](r);Viewer3DUtils.getCameraPositionByBboxAndDirection(c,a,o,null==(i=e[s(3045)])?void 0:i[s(2031)],l),e[s(5357)](a,o)})),i[t(747)](r,t(2650))[t(542)]("Orth Camera")[t(6539)]((n=>{e[t(6849)](n)})),i[t(747)](r,"takeSnapshot")[t(542)](t(6850))[t(6539)]((()=>{})),i.add(r,t(4292))[t(542)](t(6851))[t(6539)]((()=>{var n=t;screenfull_default&&screenfull_default[n(6852)]&&screenfull_default[n(6853)](),e[n(5656)]()})),i[t(747)](r,"uploadFile")[t(542)](t(6854)).onChange((()=>{var n=t;new LocalModelUploader(e)[n(6765)]()}));const a=this[t(6689)][t(6808)](t(6855));a[t(747)](r,t(6856),r.transparentMode).name(t(6857))[t(6539)]((n=>{e[t(6490)](n),e.enableRender()})),a[t(747)](r,t(6858),r.showVertexNormals).name(t(6859)).onChange((n=>{var r=t;e[r(6858)](n),e[r(5656)]()})),a[t(747)](r,t(6860),r[t(6860)])[t(542)]("Section mode").onChange((n=>{var r=t;n===r(6816)?e[r(6861)]():n===r(6817)?e[r(6862)]("ObjectsBoxSection"):n===r(6818)&&e[r(6862)](r(4628)),e[r(5656)]()}));const o=this[t(4862)][t(6863)],c=this[t(6689)].addFolder("Ambient light");c[t(747)](r,t(6864),r[t(6864)])[t(542)](t(2122)).onChange((n=>{var r=t;o&&(o.visible=n),e[r(5656)]()})),c.addColor(r,t(6865))[t(542)]("color")[t(6539)]((n=>{var r=t;o&&(o[r(2231)]=new Color(n)),e[r(5656)]()})),c[t(747)](r,t(6866),0,5)[t(542)]("intensity").onChange((n=>{var r=t;o&&(o[r(3017)]=n),e[r(5656)]()}));const l=this[t(4862)][t(6867)];if(l){const n=this[t(6689)][t(6808)](t(6868));n.add(l,t(2122)).name("visible").onChange((n=>{l&&(l[t(2122)]=n),e.enableRender()})),n[t(6869)](r,t(6870))[t(542)]("color")[t(6539)]((n=>{l&&(l[t(2231)]=new Color(n)),e.enableRender()})),n[t(747)](l,t(3017),0,5).name(t(3017))[t(6539)]((n=>{l&&(l[t(3017)]=n),e.enableRender()})),n.add(l,t(2159))[t(542)](t(2159))[t(6539)]((n=>{l&&(l[t(2159)]=n),e.enableRender()})),n[t(747)](r,t(6871))[t(542)](t(6871)).onChange((n=>{var r=t;e[r(6872)](n),e[r(5656)]()}));const i=()=>{var n=t;e[n(6873)](),e[n(5656)]()};makeXYZGUI(n,t(2065),l[t(2065)],i),makeXYZGUI(n,t(573),l[t(573)][t(2065)],i);const s=n[t(6808)]("shadow");s.add(l[t(3019)][t(3045)],t(2365))[t(542)](t(2365))[t(6539)](i),s[t(747)](l.shadow[t(3045)],t(2366)).name(t(2366))[t(6539)](i),s[t(747)](l.shadow[t(3045)],t(2397))[t(542)](t(2397)).onChange(i)}const h=this[t(4862)].hemisphereLight,u=this.gui.addFolder(t(6874));u[t(747)](r,t(6875),r[t(6875)])[t(542)]("visible")[t(6539)]((n=>{var r=t;h&&(h[r(2122)]=n),e[r(5656)]()})),u[t(747)](r,"hlIntensity",0,5)[t(542)](t(3017))[t(6539)]((n=>{var r=t;h&&(h[r(3017)]=n),e[r(5656)]()})),u[t(6869)](r,t(6876))[t(542)](t(2231))[t(6539)]((n=>{var r=t;h&&(h.color=new Color(n)),e[r(5656)]()})),u.addColor(r,t(6877))[t(542)](t(3051))[t(6539)]((n=>{var r=t;h&&(h[r(3051)]=new Color(n)),e[r(5656)]()}));const d=this[t(6689)][t(6808)](t(3488));d.add(r,"fogEnabled",r.fogEnabled)[t(542)](t(6878))[t(6539)]((i=>{var s=t;i?n.fog=new Fog(r.fogColor,r[s(6879)],r[s(6880)]):n[s(2299)]=null,e[s(5656)]()})),d[t(747)](r,t(6879),0,100).name(t(6881)).onChange((i=>{var s=t;r[s(6882)]&&n&&(n[s(2299)]=new Fog(r[s(3330)],i,r[s(6880)])),e[s(5656)]()})),d[t(747)](r,t(6880),100,2e3).name(t(6883)).onChange((i=>{var s=t;r[s(6882)]&&n&&(n[s(2299)]=new Fog(r.fogColor,r[s(6879)],i)),e[s(5656)]()}));const f=this[t(6689)].addFolder(t(6884));f[t(747)](r,t(6885),r[t(6885)])[t(542)](t(6886))[t(6539)]((t=>{e.enableComposer(t)})),f.add(r,t(6887),r[t(6887)])[t(542)]("RenderPass Enabled").onChange((n=>{e[t(6888)](n)})),f.add(r,t(6889),r[t(6889)])[t(542)](t(6890))[t(6539)]((n=>{e[t(6891)](n)})),f[t(747)](r,t(6892),r[t(6892)])[t(542)](t(6893)).onChange((n=>{e[t(6894)](n)})),f.add(r,t(6895),r.ssaoEnabled)[t(542)](t(6896))[t(6539)]((n=>{e[t(6897)](n)})),f.add(r,t(6898),r.outlineEnabled)[t(542)]("OutlinePass Enabled")[t(6539)]((n=>{e[t(6899)](n)})),f[t(747)](r,t(6900),r[t(6900)]).name(t(6901))[t(6539)]((t=>{e.enableSsaaPass(t)})),f[t(747)](r,t(6902),r[t(6902)])[t(542)](t(6903))[t(6539)]((n=>{e[t(6904)](n)})),f[t(747)](r,t(6905),r[t(6905)]).name(t(6906))[t(6539)]((n=>{e[t(6907)](n)}))}[nz(6908)](t,e=!1){var n=nz;this[n(4862)]&&this[n(4862)][n(4758)]&&this[n(4862)][n(6909)]&&this.exploderDict&&(t?SceneUtils.explodeObjects(this[n(4862)][n(4758)],this.exploderDict,Object[n(673)](this[n(4862)][n(6909)]).map((t=>t.id)),e):SceneUtils[n(6910)](this[n(4862)][n(4758)],this.exploderDict||{}))}open(){var t=nz;this.gui&&this[t(6689)][t(594)]()}[nz(587)](){var t=nz;this[t(6689)]&&this[t(6689)][t(587)]()}[nz(6911)](){var t=nz;this[t(4862)]=void 0,this[t(6689)]&&this[t(6689)][t(1725)](),this[t(6689)]=void 0,this.exploderDict=[]}},CSS2DObject=class extends Object3D{constructor(t=document[nz(538)](nz(539))){var e=nz;super(),this[e(6912)]=!0,this[e(5231)]=t,this[e(5231)][e(590)][e(2065)]=e(4873),this[e(5231)][e(590)].userSelect=e(3833),this[e(5231)][e(2334)]("draggable",!1),this[e(808)](e(756),(function(){var t=e;this[t(2152)]((function(e){var n=t;e.element instanceof Element&&null!==e.element[n(6269)]&&e[n(5231)][n(6269)][n(809)](e[n(5231)])}))}))}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),this[n(5231)]=t[n(5231)][n(6913)](!0),this}},_vector3=new Vector3,_viewMatrix=new Matrix4,_viewProjectionMatrix=new Matrix4,_a=new Vector3,_b=new Vector3,CSS2DRenderer=class{constructor(t={}){var e=nz;const n=this;let r,i,s,a;const o={objects:new WeakMap},c=void 0!==t[e(5231)]?t.element:document[e(538)](e(539));function l(t,r,i){var u=e;if(t[u(6912)]){_vector3.setFromMatrixPosition(t.matrixWorld),_vector3[u(2028)](_viewProjectionMatrix);const e=!0===t[u(2122)]&&_vector3.z>=-1&&_vector3.z<=1&&!0===t[u(2160)][u(467)](i.layers);if(t[u(5231)][u(590)].display=!0===e?"":u(3833),!0===e){t[u(3424)](n,r,i);const e=t[u(5231)];e.style.transform=u(6915)+(_vector3.x*s+s)+u(6916)+(-_vector3.y*a+a)+"px)",e[u(6269)]!==c&&c[u(591)](e),t.onAfterRender(n,r,i)}const l={distanceToCameraSquared:h(i,t)};o[u(4232)].set(t,l)}for(let e=0,n=t[u(1602)].length;e0)continue;if(!n[e(2063)])continue;let a=!1;const o=Object[e(673)](r);for(let c=o[e(449)]-1;c>=0;--c){const l=o[c][e(4730)][0],h=t[e(1602)][l];if(this[e(6941)](n[e(2063)],h[e(2063)])&&MaterialUtils[e(4641)](n[e(2178)],h[e(2178)])){!r[l]&&(r[l]={indexes:[l]},this[e(6942)](i,l)),r[l][e(4730)][e(565)](s),a=!0;break}}for(let o=i[e(449)]-1;!a&&o>=0;--o){const c=i[o],l=t.children[c];if(this.geometryEquals(n.geometry,l[e(2063)])&&MaterialUtils.materialsEquals(n[e(2178)],l.material)){!r[c]&&(r[c]={indexes:[c]},this[e(6942)](i,c)),r[c][e(4730)][e(565)](s),a=!0;break}}!a&&i[e(565)](s)}if(Object.keys(r)[e(449)]<=0)return;const s=[],a=[];Object.values(r)[e(604)]((n=>{var r=e;const i=n[r(4730)];a[r(565)](...i);const o=t.children[i[0]];let c=o[r(2178)];if(c instanceof Material)c=c.clone();else if(Array[r(468)](c)){const t=[];c[r(604)]((e=>t[r(565)](e[r(1014)]()))),c=t}const l=new InstancedMesh(o[r(2063)],c,i.length);l.name=r(6943)+o[r(542)];for(let e=0;ee-t)),a[e(604)]((n=>t[e(1204)](t.children[n]))),s.forEach((e=>{e.parent=t,t.children.push(e)})),t.updateMatrix(),console.log(e(6944)+a[e(449)]+e(6945)+n+") objects instanced to "+s[e(449)]+" InstancedMesh")}[nz(6942)](t,e){var n=nz;for(let r=t[n(449)]-1;r>=0;--r)if(t[r]===e)return void t[n(690)](r,1)}[nz(6941)](t,e){return GeometryUtils[nz(6941)](t,e)}},TGALoader=class extends DataTextureLoader{constructor(t){super(t)}[nz(1087)](t){var e=nz;const n=0,r=1,i=2,s=3,a=9,o=10,c=11,l=48,h=4,u=0,d=1,p=2,m=3;t[e(449)]<19&&console[e(819)](e(6956));let v=0;const _=new Uint8Array(t),g={id_length:_[v++],colormap_type:_[v++],image_type:_[v++],colormap_index:_[v++]|_[v++]<<8,colormap_length:_[v++]|_[v++]<<8,colormap_size:_[v++],origin:[_[v++]|_[v++]<<8,_[v++]|_[v++]<<8],width:_[v++]|_[v++]<<8,height:_[v++]|_[v++]<<8,pixel_size:_[v++],flags:_[v++]};!function(t){var e=f;switch(t[e(6946)]){case r:case a:(t.colormap_length>256||24!==t.colormap_size||1!==t.colormap_type)&&console.error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case i:case s:case o:case c:t[e(6947)]&&console[e(819)](e(6948));break;case n:console[e(819)](e(6949));default:console[e(819)](e(6950),t[e(6946)])}(t.width<=0||t.height<=0)&&console.error(e(6951)),8!==t[e(6952)]&&16!==t[e(6952)]&&24!==t[e(6952)]&&32!==t[e(6952)]&&console.error(e(6953),t.pixel_size)}(g),g.id_length+v>t[e(449)]&&console.error("THREE.TGALoader: No data."),v+=g[e(6957)];let y=!1,E=!1,T=!1;switch(g[e(6946)]){case a:y=!0,E=!0;break;case r:E=!0;break;case o:y=!0;break;case i:break;case c:y=!0,T=!0;break;case s:T=!0}const I=new Uint8Array(g[e(999)]*g[e(1e3)]*4),z=function(t,e,n,r,i){var s=f;let a,o;const c=n.pixel_size>>3,l=n.width*n.height*c;if(e&&(o=i[s(2442)](r,r+=n[s(6954)]*(n.colormap_size>>3))),t){a=new Uint8Array(l);let t,e,n,o=0;const h=new Uint8Array(c);for(;o>h){default:case p:a=0,c=1,_=e,o=0,v=1,y=n;break;case u:a=0,c=1,_=e,o=n-1,v=-1,y=-1;break;case m:a=e-1,c=-1,_=-1,o=0,v=1,y=n;break;case d:a=e-1,c=-1,_=-1,o=n-1,v=-1,y=-1}if(T)switch(g.pixel_size){case 8:!function(t,e,n,r,i,s,a,o){let c,l,h,u=0;const d=g[f(999)];for(h=e;h!==r;h+=n)for(l=i;l!==a;l+=s,u++)c=o[u],t[4*(l+d*h)+0]=c,t[4*(l+d*h)+1]=c,t[4*(l+d*h)+2]=c,t[4*(l+d*h)+3]=255}(t,o,v,y,a,c,_,r);break;case 16:!function(t,e,n,r,i,s,a,o){let c,l,h=0;const u=g[f(999)];for(l=e;l!==r;l+=n)for(c=i;c!==a;c+=s,h+=2)t[4*(c+u*l)+0]=o[h+0],t[4*(c+u*l)+1]=o[h+0],t[4*(c+u*l)+2]=o[h+0],t[4*(c+u*l)+3]=o[h+1]}(t,o,v,y,a,c,_,r);break;default:console.error(s(6955))}else switch(g.pixel_size){case 8:!function(t,e,n,r,i,s,a,o,c){const l=c;let h,u,d,f=0;const p=g.width;for(d=e;d!==r;d+=n)for(u=i;u!==a;u+=s,f++)h=o[f],t[4*(u+p*d)+3]=255,t[4*(u+p*d)+2]=l[3*h+0],t[4*(u+p*d)+1]=l[3*h+1],t[4*(u+p*d)+0]=l[3*h+2]}(t,o,v,y,a,c,_,r,i);break;case 16:!function(t,e,n,r,i,s,a,o){let c,l,h,u=0;const d=g[f(999)];for(h=e;h!==r;h+=n)for(l=i;l!==a;l+=s,u+=2)c=o[u+0]+(o[u+1]<<8),t[4*(l+d*h)+0]=(31744&c)>>7,t[4*(l+d*h)+1]=(992&c)>>2,t[4*(l+d*h)+2]=(31&c)<<3,t[4*(l+d*h)+3]=32768&c?0:255}(t,o,v,y,a,c,_,r);break;case 24:!function(t,e,n,r,i,s,a,o){let c,l,h=0;const u=g[f(999)];for(l=e;l!==r;l+=n)for(c=i;c!==a;c+=s,h+=3)t[4*(c+u*l)+3]=255,t[4*(c+u*l)+2]=o[h+0],t[4*(c+u*l)+1]=o[h+1],t[4*(c+u*l)+0]=o[h+2]}(t,o,v,y,a,c,_,r);break;case 32:!function(t,e,n,r,i,s,a,o){let c,l,h=0;const u=g[f(999)];for(l=e;l!==r;l+=n)for(c=i;c!==a;c+=s,h+=4)t[4*(c+u*l)+2]=o[h+0],t[4*(c+u*l)+1]=o[h+1],t[4*(c+u*l)+0]=o[h+2],t[4*(c+u*l)+3]=o[h+3]}(t,o,v,y,a,c,_,r);break;default:console.error(s(6955))}}(I,g[e(999)],g.height,z.pixel_data,z[e(6958)]),{data:I,width:g[e(999)],height:g.height,flipY:!0,generateMipmaps:!0,minFilter:LinearMipmapLinearFilter}}},ColladaLoader=class extends Loader{constructor(t){super(t)}[nz(1212)](t,e,n,r){var i=nz;const s=this,a=""===s[i(1091)]?LoaderUtils[i(3803)](t):s[i(1091)],o=new FileLoader(s[i(3749)]);o[i(3756)](s[i(1091)]),o.setRequestHeader(s[i(3759)]),o[i(3755)](s.withCredentials),o.load(t,(function(n){var o=i;try{e(s.parse(n,a))}catch(e){r?r(e):console[o(819)](e),s[o(3749)][o(3783)](t)}}),n,r)}parse(t,e){var n=nz;function r(t,e){var n=f;const r=[],i=t[n(4249)];for(let t=0,s=i[n(449)];t0&&e[n(565)](new VectorKeyframeTrack(i+n(3726),s,a)),o.length>0&&e[n(565)](new QuaternionKeyframeTrack(i+n(3727),s,o)),c[n(449)]>0&&e[n(565)](new VectorKeyframeTrack(i+".scale",s,c)),e}function S(t,e,n){var r=f;let i,s,a,o=!0;for(s=0,a=t[r(449)];s=0;){const i=t[e];if(null!==i[r(439)][n])return i;e--}return null}function b(t,e,n){for(var r=f;e>>0));r=r[e(570)](),n=r===e(7014)?Kt:Xt;return n}(a);if(void 0!==e){const n=e.load(a),s=t[i(6996)];if(void 0!==s&&void 0!==s[i(6995)]&&!1===c(s.technique)){const t=s[i(6995)];n[i(1972)]=t[i(7007)]?RepeatWrapping:ClampToEdgeWrapping,n[i(1957)]=t[i(7008)]?RepeatWrapping:ClampToEdgeWrapping,n[i(1389)].set(t[i(7005)]||0,t.offsetV||0),n[i(1562)][i(540)](t.repeatU||1,t[i(7004)]||1)}else n[i(1972)]=RepeatWrapping,n[i(1957)]=RepeatWrapping;return null!==r&&(n.encoding=r),n}return console[i(1176)](i(7015),a),null}return console[i(1176)](i(7016),t.id),null}i[e(542)]=t[e(542)]||"";const a=r[e(2171)];for(const t in a){const n=a[t];switch(t){case e(3349):n.color&&i.color.fromArray(n[e(2231)]),n[e(1991)]&&(i.map=s(n.texture,sRGBEncoding));break;case e(2238):n[e(2231)]&&i[e(2238)]&&i[e(2238)].fromArray(n.color),n[e(1991)]&&(i[e(2270)]=s(n.texture));break;case e(7001):n[e(1991)]&&(i[e(2261)]=s(n[e(1991)]));break;case e(3059):n[e(1991)]&&(i.lightMap=s(n.texture,sRGBEncoding));break;case"shininess":n[e(3731)]&&i[e(2241)]&&(i[e(2241)]=n[e(3731)]);break;case e(7e3):n[e(2231)]&&i[e(2236)]&&i[e(2236)][e(1890)](n[e(2231)]),n[e(1991)]&&(i.emissiveMap=s(n[e(1991)],sRGBEncoding))}}i[e(2231)].convertSRGBToLinear(),i[e(2238)]&&i[e(2238)].convertSRGBToLinear(),i[e(2236)]&&i[e(2236)][e(1924)]();let o=a[e(2197)],l=a.transparency;if(void 0===l&&o&&(l={float:1}),void 0===o&&l&&(o={opaque:e(7003),data:{color:[1,1,1,1]}}),o&&l)if(o[e(571)][e(1991)])i[e(2197)]=!0;else{const t=o.data.color;switch(o.opaque){case"A_ONE":i[e(2286)]=t[3]*l.float;break;case e(7017):i.opacity=1-t[0]*l.float;break;case e(7018):i[e(2286)]=1-t[3]*l[e(3731)];break;case e(7019):i.opacity=t[0]*l[e(3731)];break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',o[e(2939)])}i[e(2286)]<1&&(i[e(2197)]=!0)}if(void 0!==r[e(6996)]&&void 0!==r[e(6996)][e(6995)]){const t=r[e(6996)][e(6995)];for(const n in t){const r=t[n];switch(n){case e(7011):i.side=1===r?DoubleSide:FrontSide;break;case"bump":i[e(2261)]=s(r[e(1991)]),i.normalScale=new Vector2(1,1)}}}return i}function $(t){return p(ee.materials[t],Z)}function Q(t){var e=f;for(let n=0;n0?r+c:r;n[e(6967)][l]={id:t,offset:s},n[e(2622)]=Math.max(n.stride,s+1),r===e(7032)&&(n[e(7033)]=!0);break;case e(6983):n.vcount=a(i[e(6275)]);break;case"p":n.p=a(i[e(6275)])}}return n}function ut(t){var e=f;let n=0;for(let r=0,i=t.length;r0&&n0&&d.setAttribute(r(2065),new Float32BufferAttribute(s.array,s[r(2622)])),a[r(2306)][r(449)]>0&&d[r(2334)](r(655),new Float32BufferAttribute(a[r(2306)],a[r(2622)])),l[r(2306)][r(449)]>0&&d.setAttribute("color",new Float32BufferAttribute(l[r(2306)],l[r(2622)])),o.array[r(449)]>0&&d[r(2334)]("uv",new Float32BufferAttribute(o[r(2306)],o[r(2622)])),c[r(2306)].length>0&&d[r(2334)](r(2362),new Float32BufferAttribute(c[r(2306)],c.stride)),h[r(2306)][r(449)]>0&&d[r(2334)](r(3510),new Float32BufferAttribute(h.array,h.stride)),u[r(2306)].length>0&&d[r(2334)](r(3511),new Float32BufferAttribute(u[r(2306)],u[r(2622)])),i[r(571)]=d,i[r(452)]=t[0].type,i[r(7037)]=p,i}function pt(t,e,n,r,i=!1){var s=f;const a=t.p,o=t[s(2622)],c=t.vcount;function l(t){var e=s;let o=a[t+n]*u;const c=o+u;for(;o4)for(let e=1,r=n-2;e<=r;e++){const n=t+o*e,r=t+o*(e+1);l(t+0*o),l(n),l(r)}t+=o*n}}else for(let t=0,e=a[s(449)];t=n.limits.max&&(n[e(7043)]=!0),n.middlePosition=(n.limits[e(563)]+n[e(7042)][e(486)])/2,n}function Et(t){var e=f;const n={sid:t[e(2333)](e(6969)),name:t[e(2333)]("name")||"",attachments:[],transforms:[]};for(let r=0;rt[r(7042)][r(486)]||n{var n=i;this[n(7117)](t,e)[n(821)](r)}),n,r)}[nz(7117)](t,e,n,r){var i=nz;const s={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this[i(7118)],useUniqueIDs:!!n};return this[i(7119)](t,s)[i(829)](e)}decodeGeometry(t,e){var n=nz;const r=JSON[n(472)](e);if(_taskCache[n(546)](t)){const e=_taskCache[n(427)](t);if(e[n(447)]===r)return e[n(833)];if(0===t.byteLength)throw new Error(n(7120))}let i;const s=this[n(7112)]++,a=t[n(702)],o=this._getWorker(s,a)[n(829)]((n=>(i=n,new Promise(((n,r)=>{var a=f;i[a(1713)][s]={resolve:n,reject:r},i[a(798)]({type:a(3778),id:s,taskConfig:e,buffer:t},[t])}))))).then((t=>this._createGeometry(t[n(2063)])));return o[n(821)]((()=>!0)).then((()=>{i&&s&&this[n(7121)](i,s)})),_taskCache[n(540)](t,{key:r,promise:o}),o}[nz(7122)](t){var e=nz;const n=new BufferGeometry;t.index&&n[e(2332)](new BufferAttribute(t[e(677)][e(2306)],1));for(let r=0;r{r.load(t,e,void 0,n)}))}preload(){return this[nz(7124)](),this}[nz(7124)](){var t=nz;if(this.decoderPending)return this[t(7109)];const e="object"!=typeof WebAssembly||"js"===this[t(7107)].type,n=[];return e?n.push(this[t(7123)](t(7125),"text")):(n.push(this[t(7123)](t(7126),t(3775))),n[t(565)](this[t(7123)]("draco_decoder.wasm",t(3773)))),this.decoderPending=Promise[t(515)](n)[t(829)]((n=>{var r=t;const i=n[0];!e&&(this.decoderConfig[r(7127)]=n[1]);const s=DRACOWorker[r(526)](),a=[r(7128),i,"","/* worker */",s[r(4902)](s[r(564)]("{")+1,s[r(678)]("}"))][r(549)]("\n");this.workerSourceURL=URL.createObjectURL(new Blob([a]))})),this[t(7109)]}[nz(7129)](t,e){var n=nz;return this[n(7124)]()[n(829)]((()=>{var r=n;if(this.workerPool.lengthe[n(7131)]?-1:1}));const i=this[r(7111)][this[r(7111)].length-1];return i[r(7130)][t]=e,i._taskLoad+=e,i}))}[nz(7121)](t,e){var n=nz;t._taskLoad-=t[n(7130)][e],delete t[n(1713)][e],delete t[n(7130)][e]}[nz(1178)](){var t=nz;console.log(t(7132),this[t(7111)][t(679)]((e=>e[t(7131)])))}dispose(){var t=nz;for(let e=0;e{var e=i;const o=t[e(7136)],c=new(o[e(7137)]),l=new(o[e(7138)]);l.Init(new Int8Array(r),r[e(702)]);try{const t=function(t,e,r,i){var s=f;const a=i[s(7139)],o=i.attributeTypes;let c,l;const h=e[s(7140)](r);if(h===t[s(4366)])c=new(t[s(2356)]),l=e[s(7141)](r,c);else{if(h!==t[s(4365)])throw new Error("THREE.DRACOLoader: Unexpected geometry type.");c=new(t[s(3828)]),l=e[s(7142)](r,c)}if(!l.ok()||0===c[s(7143)])throw new Error(s(7144)+l[s(7145)]());const u={index:null,attributes:[]};for(const r in a){const l=self[o[r]];let h,d;if(i.useUniqueIDs)d=a[r],h=e.GetAttributeByUniqueId(c,d);else{if(d=e[s(7146)](c,t[a[r]]),-1===d)continue;h=e.GetAttribute(c,d)}u[s(2064)][s(565)](n(t,e,c,r,l,h))}return h===t[s(4366)]&&(u[s(677)]=function(t,e,n){var r=f;const i=n.num_faces(),s=3*i,a=4*s,o=t[r(7147)](a);e[r(7148)](n,a,o);const c=new Uint32Array(t.HEAPF32[r(703)],o,s)[r(497)]();return t[r(7149)](o),{array:c,itemSize:1}}(t,e,c)),t.destroy(c),u}(o,c,l,a),r=t[e(2064)][e(679)]((t=>t[e(2306)][e(703)]));t[e(677)]&&r[e(565)](t[e(677)][e(2306)][e(703)]),self[e(798)]({type:e(3778),id:s.id,geometry:t},r)}catch(t){console[e(819)](t),self[e(798)]({type:e(819),id:s.id,error:t[e(637)]})}finally{o[e(1725)](l),o[e(1725)](c)}}))}}}var fflate_module_exports={};__export(fflate_module_exports,{AsyncCompress:()=>AsyncGzip,AsyncDecompress:()=>AsyncDecompress,AsyncDeflate:()=>AsyncDeflate,AsyncGunzip:()=>AsyncGunzip,AsyncGzip:()=>AsyncGzip,AsyncInflate:()=>AsyncInflate,AsyncUnzipInflate:()=>AsyncUnzipInflate,AsyncUnzlib:()=>AsyncUnzlib,AsyncZipDeflate:()=>AsyncZipDeflate,AsyncZlib:()=>AsyncZlib,Compress:()=>Gzip,DecodeUTF8:()=>DecodeUTF8,Decompress:()=>Decompress,Deflate:()=>Deflate,EncodeUTF8:()=>EncodeUTF8,Gunzip:()=>Gunzip,Gzip:()=>Gzip,Inflate:()=>Inflate,Unzip:()=>Unzip,UnzipInflate:()=>UnzipInflate,UnzipPassThrough:()=>UnzipPassThrough,Unzlib:()=>Unzlib,Zip:()=>Zip,ZipDeflate:()=>ZipDeflate,ZipPassThrough:()=>ZipPassThrough,Zlib:()=>Zlib,compress:()=>gzip,compressSync:()=>gzipSync,decompress:()=>decompress,decompressSync:()=>decompressSync,deflate:()=>deflate,deflateSync:()=>deflateSync,gunzip:()=>gunzip,gunzipSync:()=>gunzipSync,gzip:()=>gzip,gzipSync:()=>gzipSync,inflate:()=>inflate,inflateSync:()=>inflateSync,strFromU8:()=>strFromU8,strToU8:()=>strToU8,unzip:()=>unzip,unzipSync:()=>unzipSync,unzlib:()=>unzlib,unzlibSync:()=>unzlibSync,zip:()=>zip,zipSync:()=>zipSync,zlib:()=>zlib,zlibSync:()=>zlibSync});var ch2={},durl=function(t){var e=nz;return URL[e(1126)](new Blob([t],{type:e(4665)}))},cwk=function(t){return new Worker(t)};try{URL[nz(1127)](durl(""))}catch(t){durl=function(t){return"data:application/javascript;charset=UTF-8,"+encodeURI(t)},cwk=function(t){return new Worker(t,{type:nz(7159)})}}var wk=function(t,e,n,r,i){var s=nz,a=cwk(ch2[e]||(ch2[e]=durl(t)));return a[s(5828)]=function(t){return i(t.error,null)},a[s(805)]=function(t){return i(null,t[s(571)])},a.postMessage(n,r),a},u8=Uint8Array,u16=Uint16Array,u32=Uint32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(t,e){for(var n=new u16(31),r=0;r<31;++r)n[r]=e+=1<>>1|(21845&i)<<1))>>>2|(13107&x)<<2))>>>4|(3855&x)<<4,rev[i]=((65280&x)>>>8|(255&x)<<8)>>>1;var x,hMap=function(t,e,n){for(var r=t[nz(449)],i=0,s=new u16(e);i>>c]=l}else for(a=new u16(r),i=0;i>>15-t[i]);return a},flt=new u8(288);for(i=0;i<144;++i)flt[i]=8;for(i=144;i<256;++i)flt[i]=9;for(i=256;i<280;++i)flt[i]=7;for(i=280;i<288;++i)flt[i]=8;var fdt=new u8(32);for(i=0;i<32;++i)fdt[i]=5;var i,flm=hMap(flt,9,0),flrm=hMap(flt,9,1),fdm=hMap(fdt,5,0),fdrm=hMap(fdt,5,1),max=function(t){for(var e=t[0],n=1;ne&&(e=t[n]);return e},bits=function(t,e,n){var r=e/8|0;return(t[r]|t[r+1]<<8)>>(7&e)&n},bits16=function(t,e){var n=e/8|0;return(t[n]|t[n+1]<<8|t[n+2]<<16)>>(7&e)},shft=function(t){return(t/8|0)+(7&t&&1)},slc=function(t,e,n){var r=nz;(null==e||e<0)&&(e=0),(null==n||n>t[r(449)])&&(n=t[r(449)]);var i=new(t instanceof u16?u16:t instanceof u32?u32:u8)(n-e);return i.set(t[r(2442)](e,n)),i},inflt=function(t,e,n){var r=nz,i=t[r(449)];if(!i||n&&!n.l&&i<5)return e||new u8(0);var s=!e||n,a=!n||n.i;n||(n={}),e||(e=new u8(3*i));var o=function(t){var n=r,i=e[n(449)];if(t>i){var s=new u8(Math[n(486)](2*i,t));s[n(540)](e),e=s}},c=n.f||0,l=n.p||0,h=n.b||0,u=n.l,d=n.d,f=n.m,p=n.n,m=8*i;do{if(!u){n.f=c=bits(t,l,1);var v=bits(t,l+1,3);if(l+=3,!v){var _=t[(C=shft(l)+4)-4]|t[C-3]<<8,g=C+_;if(g>i){if(a)throw r(7160);break}s&&o(h+_),e.set(t[r(2442)](C,g),h),n.b=h+=_,n.p=l=8*g;continue}if(1==v)u=flrm,d=fdrm,f=9,p=5;else{if(2!=v)throw"invalid block type";var y=bits(t,l,31)+257,E=bits(t,l+10,15)+4,T=y+bits(t,l+5,31)+1;l+=14;for(var I=new u8(T),z=new u8(19),S=0;S>>4)<16)I[S++]=C;else{var R=0,A=0;for(16==C?(A=3+bits(t,l,3),l+=2,R=I[S-1]):17==C?(A=3+bits(t,l,7),l+=3):18==C&&(A=11+bits(t,l,127),l+=7);A--;)I[S++]=R}}var D=I[r(2442)](0,y),L=I[r(2442)](y);f=max(D),p=max(L),u=hMap(D,f,1),d=hMap(L,p,1)}if(l>m){if(a)throw"unexpected EOF";break}}s&&o(h+131072);for(var P=(1<>>4;if((l+=15&R)>m){if(a)throw r(7160);break}if(!R)throw r(7161);if(N<256)e[h++]=N;else{if(256==N){F=l,u=null;break}var U=N-254;if(N>264){var B=fleb[S=N-257];U=bits(t,l,(1<>>4;if(!k)throw r(7162);l+=15&k;L=fd[G];if(G>3){B=fdeb[G];L+=bits16(t,l)&(1<m){if(a)throw r(7160);break}s&&o(h+131072);for(var V=h+U;h>>8},wbits16=function(t,e,n){n<<=7&e;var r=e/8|0;t[r]|=n,t[r+1]|=n>>>8,t[r+2]|=n>>>16},hTree=function(t,e){for(var n=nz,r=[],i=0;if&&(f=a[i].s);var p=new u16(f+1),m=ln(r[u-1],p,0);if(m>e){i=0;var v=0,_=m-e,g=1<<_;for(a.sort((function(t,e){return p[e.s]-p[t.s]||t.f-e.f}));ie))break;v+=g-(1<>>=_;v>0;){var E=a[i].s;p[E]=0&&v;--i){var T=a[i].s;p[T]==e&&(--p[T],++v)}m=e}return[new u8(p),m]},ln=function(t,e,n){var r=nz;return-1==t.s?Math[r(486)](ln(t.l,e,n+1),ln(t.r,e,n+1)):e[t.s]=n},lc=function(t){for(var e=nz,n=t[e(449)];n&&!t[--n];);for(var r=new u16(++n),i=0,s=t[0],a=1,o=function(t){r[i++]=t},c=1;c<=n;++c)if(t[c]==s&&c!=n)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[c]}return[r[e(2442)](0,i),n]},clen=function(t,e){for(var n=0,r=0;r>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s4&&!w[clim[M-1]];--M);var R,A,D,L,P=l+5<<3,O=clen(i,flt)+clen(s,fdt)+a,F=clen(i,f)+clen(s,v)+a+14+3*M+clen(S,w)+(2*S[16]+3*S[17]+7*S[18]);if(P<=O&&P<=F)return wfblk(e,h,t[u(2442)](c,c+l));if(wbits(e,h,1+(F15&&(wbits(e,h,k[x]>>>5&127),h+=k[x]>>>12)}}}else R=flm,A=flt,D=fdm,L=fdt;for(x=0;x255){G=r[x]>>>18&31;wbits16(e,h,R[G+257]),h+=A[G+257],G>7&&(wbits(e,h,r[x]>>>23&31),h+=fleb[G]);var V=31&r[x];wbits16(e,h,D[V]),h+=L[V],V>3&&(wbits16(e,h,r[x]>>>5&8191),h+=fdeb[V])}else wbits16(e,h,R[r[x]]),h+=A[r[x]];return wbits16(e,h,R[256]),h+A[256]},deo=new u32([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),et=new u8(0),dflt=function(t,e,n,r,i,s){var a=nz,o=t[a(449)],c=new u8(r+o+5*(1+Math[a(561)](o/7e3))+i),l=c[a(2442)](r,c[a(449)]-i),h=0;if(!e||o<8)for(var u=0;u<=o;u+=65535){var d=u+65535;d>>13,m=8191&f,v=(1<7e3||w>24576)&&L>423){h=wblk(t,l,0,I,z,S,b,w,M,u-M,h),w=x=b=0,M=u;for(var P=0;P<286;++P)z[P]=0;for(P=0;P<30;++P)S[P]=0}var O=2,F=0,N=m,U=A-D&32767;if(L>2&&R==T(u-U))for(var B=Math.min(p,L)-1,k=Math[a(563)](32767,u),G=Math[a(563)](258,L);U<=k&&--N&&A!=D;){if(t[u+O]==t[u+O-U]){for(var V=0;VO){if(O=V,F=U,V>B)break;var j=Math[a(563)](U,V-2),H=0;for(P=0;PH&&(H=W,D=q)}}}U+=(A=D)-(D=_[A])+32768&32767}if(F){I[w++]=268435456|revfl[O]<<18|revfd[F];var Y=31&revfl[O],X=31&revfd[F];b+=fleb[Y]+fdeb[X],++z[257+Y],++S[X],C=u+O,++x}else I[w++]=t[u],++z[t[u]]}}h=wblk(t,l,s,I,z,S,b,w,M,u-M,h),!s&&7&h&&(h=wfblk(l,h+1,et))}return slc(c,0,r+shft(h)+i)},crct=function(){for(var t=new u32(256),e=0;e<256;++e){for(var n=e,r=9;--r;)n=(1&n&&3988292384)^n>>>1;t[e]=n}return t}(),crc=function(){var t=-1;return{p:function(e){for(var n=f,r=t,i=0;i>>8;t=r},d:function(){return~t}}},adler=function(){var t=1,e=0;return{p:function(n){for(var r=f,i=t,s=e,a=n[r(449)],o=0;o!=a;){for(var c=Math[r(563)](o+2655,a);o>16),s=(65535&s)+15*(s>>16)}t=i,e=s},d:function(){return(255&(t%=65521))<<24|t>>>8<<16|(255&(e%=65521))<<8|e>>>8}}},dopt=function(t,e,n,r,i){var s=nz;return dflt(t,null==e[s(4694)]?6:e[s(4694)],null==e[s(7163)]?Math.ceil(1.5*Math.max(8,Math[s(563)](13,Math[s(695)](t[s(449)])))):12+e[s(7163)],n,r,!i)},mrg=function(t,e){var n={};for(var r in t)n[r]=t[r];for(var r in e)n[r]=e[r];return n},wcln=function(t,e,n){for(var r=nz,i=t(),s=t[r(526)](),a=s[r(497)](s[r(564)]("[")+1,s[r(678)]("]"))[r(448)](/ /g,"")[r(465)](","),o=0;o>>0},b8=function(t,e){return b4(t,e)+4294967296*b4(t,e+4)},wbytes=function(t,e,n){for(;n;++e)t[e]=n,n>>>=8},gzh=function(t,e){var n=nz,r=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e[n(4694)]<2?4:9==e[n(4694)]?2:0,t[9]=3,0!=e[n(7168)]&&wbytes(t,4,Math[n(562)](new Date(e[n(7168)]||Date[n(802)]())/1e3)),r){t[3]=8;for(var i=0;i<=r[n(449)];++i)t[i+10]=r[n(621)](i)}},gzs=function(t){var e=nz;if(31!=t[0]||139!=t[1]||8!=t[2])throw e(7169);var n=t[3],r=10;4&n&&(r+=t[10]|2+(t[11]<<8));for(var i=(n>>3&1)+(n>>4&1);i>0;i-=!t[r++]);return r+(2&n)},gzl=function(t){var e=t[nz(449)];return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0},gzhl=function(t){var e=nz;return 10+(t.filename&&t[e(7170)].length+1||0)},zlh=function(t,e){var n=e.level,r=0==n?0:n<6?1:9==n?3:2;t[0]=120,t[1]=r<<6|(r?32-2*r:1)},zlv=function(t){var e=nz;if(8!=(15&t[0])||t[0]>>>4>7||(t[0]<<8|t[1])%31)throw e(7171);if(32&t[1])throw e(7172)};function AsyncCmpStrm(t,e){var n=nz;return e||typeof t!=n(432)||(e=t,t={}),this[n(7166)]=e,t}var Deflate=function(){var t=nz;function e(t,e){var n=f;e||typeof t!=n(432)||(e=t,t={}),this[n(7166)]=e,this.o=t||{}}return e[t(425)].p=function(e,n){this[t(7166)](dopt(e,this.o,0,0,!n),n)},e[t(425)][t(565)]=function(e,n){var r=t;if(this.d)throw"stream finished";if(!this[r(7166)])throw r(7167);this.d=n,this.p(e,n||!1)},e}(),AsyncDeflate=function(t,e){var n=f;astrmify([bDflt,function(){return[astrm,Deflate]}],this,AsyncCmpStrm[n(429)](this,t,e),(function(t){var e=new Deflate(t[n(571)]);onmessage=astrm(e)}),6)};function deflate(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw r(7173);return cbify(t,e,[bDflt],(function(t){var e=r;return pbf(deflateSync(t[e(571)][0],t[e(571)][1]))}),0,n)}function deflateSync(t,e){return dopt(t,e||{},0,0)}var Inflate=function(){var t=nz;function e(t){var e=f;this.s={},this.p=new u8(0),this[e(7166)]=t}return e.prototype.e=function(t){var e=f;if(this.d)throw e(7174);if(!this[e(7166)])throw e(7167);var n=this.p[e(449)],r=new u8(n+t[e(449)]);r[e(540)](this.p),r.set(t,n),this.p=r},e[t(425)].c=function(e){var n=t;this.d=this.s.i=e||!1;var r=this.s.b,i=inflt(this.p,this.o,this.s);this[n(7166)](slc(i,r,this.s.b),this.d),this.o=slc(i,this.s.b-32768),this.s.b=this.o[n(449)],this.p=slc(this.p,this.s.p/8|0),this.s.p&=7},e[t(425)].push=function(t,e){this.e(t),this.c(e)},e}(),AsyncInflate=function(t){this[f(7166)]=t,astrmify([bInflt,function(){return[astrm,Inflate]}],this,0,(function(){var t=new Inflate;onmessage=astrm(t)}),7)};function inflate(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw r(7173);return cbify(t,e,[bInflt],(function(t){return pbf(inflateSync(t.data[0],gu8(t.data[1])))}),1,n)}function inflateSync(t,e){return inflt(t,e)}var Gzip=function(){var t=nz;function e(t,e){this.c=crc(),this.l=0,this.v=1,Deflate.call(this,t,e)}return e[t(425)][t(565)]=function(e,n){var r=t;Deflate[r(425)][r(565)][r(429)](this,e,n)},e[t(425)].p=function(e,n){var r=t;this.c.p(e),this.l+=e[r(449)];var i=dopt(e,this.o,this.v&&gzhl(this.o),n&&8,!n);this.v&&(gzh(i,this.o),this.v=0),n&&(wbytes(i,i[r(449)]-8,this.c.d()),wbytes(i,i[r(449)]-4,this.l)),this.ondata(i,n)},e}(),AsyncGzip=function(t,e){var n=f;astrmify([bDflt,gze,function(){return[astrm,Deflate,Gzip]}],this,AsyncCmpStrm[n(429)](this,t,e),(function(t){var e=new Gzip(t[n(571)]);onmessage=astrm(e)}),8)};function gzip(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw"no callback";return cbify(t,e,[bDflt,gze,function(){return[gzipSync]}],(function(t){var e=r;return pbf(gzipSync(t.data[0],t[e(571)][1]))}),2,n)}function gzipSync(t,e){var n=nz;e||(e={});var r=crc(),i=t[n(449)];r.p(t);var s=dopt(t,e,gzhl(e),8),a=s[n(449)];return gzh(s,e),wbytes(s,a-8,r.d()),wbytes(s,a-4,i),s}var Gunzip=function(){var t=nz;function e(t){var e=f;this.v=1,Inflate[e(429)](this,t)}return e[t(425)][t(565)]=function(e,n){var r=t;if(Inflate[r(425)].e.call(this,e),this.v){var i=this.p.length>3?gzs(this.p):4;if(i>=this.p[r(449)]&&!n)return;this.p=this.p[r(2442)](i),this.v=0}if(n){if(this.p[r(449)]<8)throw r(7175);this.p=this.p[r(2442)](0,-8)}Inflate[r(425)].c.call(this,n)},e}(),AsyncGunzip=function(t){this[f(7166)]=t,astrmify([bInflt,guze,function(){return[astrm,Inflate,Gunzip]}],this,0,(function(){var t=new Gunzip;onmessage=astrm(t)}),9)};function gunzip(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw"no callback";return cbify(t,e,[bInflt,guze,function(){return[gunzipSync]}],(function(t){return pbf(gunzipSync(t[r(571)][0]))}),3,n)}function gunzipSync(t,e){return inflt(t[nz(2442)](gzs(t),-8),e||new u8(gzl(t)))}var Zlib=function(){var t=nz;function e(t,e){var n=f;this.c=adler(),this.v=1,Deflate[n(429)](this,t,e)}return e[t(425)].push=function(e,n){var r=t;Deflate.prototype[r(565)][r(429)](this,e,n)},e[t(425)].p=function(e,n){var r=t;this.c.p(e);var i=dopt(e,this.o,this.v&&2,n&&4,!n);this.v&&(zlh(i,this.o),this.v=0),n&&wbytes(i,i[r(449)]-4,this.c.d()),this[r(7166)](i,n)},e}(),AsyncZlib=function(t,e){var n=f;astrmify([bDflt,zle,function(){return[astrm,Deflate,Zlib]}],this,AsyncCmpStrm[n(429)](this,t,e),(function(t){var e=new Zlib(t[n(571)]);onmessage=astrm(e)}),10)};function zlib(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw"no callback";return cbify(t,e,[bDflt,zle,function(){return[zlibSync]}],(function(t){var e=r;return pbf(zlibSync(t.data[0],t[e(571)][1]))}),4,n)}function zlibSync(t,e){var n=nz;e||(e={});var r=adler();r.p(t);var i=dopt(t,e,2,4);return zlh(i,e),wbytes(i,i[n(449)]-4,r.d()),i}var Unzlib=function(){var t=nz;function e(t){this.v=1,Inflate.call(this,t)}return e[t(425)][t(565)]=function(e,n){var r=t;if(Inflate[r(425)].e.call(this,e),this.v){if(this.p[r(449)]<2&&!n)return;this.p=this.p[r(2442)](2),this.v=0}if(n){if(this.p.length<4)throw"invalid zlib stream";this.p=this.p.subarray(0,-4)}Inflate[r(425)].c[r(429)](this,n)},e}(),AsyncUnzlib=function(t){this.ondata=t,astrmify([bInflt,zule,function(){return[astrm,Inflate,Unzlib]}],this,0,(function(){var t=new Unzlib;onmessage=astrm(t)}),11)};function unzlib(t,e,n){var r=nz;if(n||(n=e,e={}),typeof n!=r(432))throw"no callback";return cbify(t,e,[bInflt,zule,function(){return[unzlibSync]}],(function(t){var e=r;return pbf(unzlibSync(t[e(571)][0],gu8(t[e(571)][1])))}),5,n)}function unzlibSync(t,e){var n=nz;return inflt((zlv(t),t[n(2442)](2,-4)),e)}var Decompress=function(){var t=nz;function e(t){var e=f;this.G=Gunzip,this.I=Inflate,this.Z=Unzlib,this[e(7166)]=t}return e[t(425)].push=function(e,n){var r=t;if(!this[r(7166)])throw r(7167);if(this.s)this.s[r(565)](e,n);else{if(this.p&&this.p[r(449)]){var i=new u8(this.p[r(449)]+e[r(449)]);i[r(540)](this.p),i[r(540)](e,this.p.length)}else this.p=e;if(this.p[r(449)]>2){var s=this,a=function(){var t=r;s[t(7166)][t(441)](s,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(a):8!=(15&this.p[0])||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(a):new this.Z(a),this.s.push(this.p,n),this.p=null}}},e}(),AsyncDecompress=function(){var t=nz;function e(t){this.G=AsyncGunzip,this.I=AsyncInflate,this.Z=AsyncUnzlib,this.ondata=t}return e[t(425)][t(565)]=function(e,n){var r=t;Decompress[r(425)][r(565)][r(429)](this,e,n)},e}();function decompress(t,e,n){if(n||(n=e,e={}),typeof n!=nz(432))throw"no callback";return 31==t[0]&&139==t[1]&&8==t[2]?gunzip(t,e,n):8!=(15&t[0])||t[0]>>4>7||(t[0]<<8|t[1])%31?inflate(t,e,n):unzlib(t,e,n)}function decompressSync(t,e){return 31==t[0]&&139==t[1]&&8==t[2]?gunzipSync(t,e):8!=(15&t[0])||t[0]>>4>7||(t[0]<<8|t[1])%31?inflateSync(t,e):unzlibSync(t,e)}var fltn=function(t,e,n,r){var i=nz;for(var s in t){var a=t[s],o=e+s;a instanceof u8?n[o]=[a,r]:Array[i(468)](a)?n[o]=[a[0],mrg(r,a[1])]:fltn(a,o+"/",n,r)}},te=typeof TextEncoder!=nz(430)&&new TextEncoder,td=typeof TextDecoder!=nz(430)&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch(t){}var dutf8=function(t){for(var e=nz,n="",r=0;;){var i=t[r++],s=(i>127)+(i>223)+(i>239);if(r+s>t[e(449)])return[n,slc(t,r-1)];s?3==s?(i=((15&i)<<18|(63&t[r++])<<12|(63&t[r++])<<6|63&t[r++])-65536,n+=String.fromCharCode(55296|i>>10,56320|1023&i)):n+=1&s?String.fromCharCode((31&i)<<6|63&t[r++]):String.fromCharCode((15&i)<<12|(63&t[r++])<<6|63&t[r++]):n+=String.fromCharCode(i)}},DecodeUTF8=function(){function t(t){this.ondata=t,tds?this.t=new TextDecoder:this.p=et}return t.prototype.push=function(t,e){var n=f;if(!this[n(7166)])throw n(7173);if(e=!!e,this.t){if(this.ondata(this.t[n(3778)](t,{stream:!0}),e),e){if(this.t.decode()[n(449)])throw n(7176);this.t=null}}else{if(!this.p)throw n(7174);var r=new u8(this.p[n(449)]+t[n(449)]);r[n(540)](this.p),r[n(540)](t,this.p[n(449)]);var i=dutf8(r),s=i[0],a=i[1];if(e){if(a[n(449)])throw n(7176);this.p=null}else this.p=a;this[n(7166)](s,e)}},t}(),EncodeUTF8=function(){var t=nz;function e(t){this[f(7166)]=t}return e[t(425)][t(565)]=function(e,n){var r=t;if(!this[r(7166)])throw r(7173);if(this.d)throw r(7174);this[r(7166)](strToU8(e),this.d=n||!1)},e}();function strToU8(t,e){var n=nz;if(e){for(var r=new u8(t.length),i=0;i>1)),o=0,c=function(t){a[o++]=t};for(i=0;ia[n(449)]){var l=new u8(o+8+(s-i<<1));l[n(540)](a),a=l}var h=t[n(621)](i);h<128||e?c(h):h<2048?(c(192|h>>6),c(128|63&h)):h>55295&&h<57344?(c(240|(h=65536+(1047552&h)|1023&t[n(621)](++i))>>18),c(128|h>>12&63),c(128|h>>6&63),c(128|63&h)):(c(224|h>>12),c(128|h>>6&63),c(128|63&h))}return slc(a,0,o)}function strFromU8(t,e){var n=nz;if(e){for(var r="",i=0;i65535)throw e(7178);n+=i+4}return n},wzh=function(t,e,n,r,i,s,a,o){var c=nz,l=r.length,h=n.extra,u=o&&o[c(449)],d=exfl(h);wbytes(t,e,null!=a?33639248:67324752),e+=4,null!=a&&(t[e++]=20,t[e++]=n.os),t[e]=20,e+=2,t[e++]=n[c(7179)]<<1|(null==s&&8),t[e++]=i&&8,t[e++]=255&n[c(7180)],t[e++]=n[c(7180)]>>8;var f=new Date(null==n[c(7168)]?Date[c(802)]():n.mtime),p=f[c(719)]()-1980;if(p<0||p>119)throw c(7181);if(wbytes(t,e,p<<25|f.getMonth()+1<<21|f[c(7182)]()<<16|f.getHours()<<11|f.getMinutes()<<5|f[c(7183)]()>>>1),e+=4,null!=s&&(wbytes(t,e,n[c(7184)]),wbytes(t,e+4,s),wbytes(t,e+8,n[c(753)])),wbytes(t,e+12,l),wbytes(t,e+14,d),e+=16,null!=a&&(wbytes(t,e,u),wbytes(t,e+6,n.attrs),wbytes(t,e+10,a),e+=14),t[c(540)](r,e),e+=l,d)for(var m in h){var v=h[m],_=v[c(449)];wbytes(t,e,+m),wbytes(t,e+2,_),t[c(540)](v,e+4),e+=4+_}return u&&(t[c(540)](o,e),e+=u),e},wzf=function(t,e,n,r,i){wbytes(t,e,101010256),wbytes(t,e+8,n),wbytes(t,e+10,n),wbytes(t,e+12,r),wbytes(t,e+16,i)},ZipPassThrough=function(){var t=nz;function e(t){var e=f;this[e(7170)]=t,this.c=crc(),this[e(753)]=0,this.compression=0}return e[t(425)].process=function(e,n){this[t(7166)](null,e,n)},e.prototype[t(565)]=function(e,n){var r=t;if(!this[r(7166)])throw r(7185);this.c.p(e),this.size+=e.length,n&&(this[r(7184)]=this.c.d()),this[r(682)](e,n||!1)},e}(),ZipDeflate=function(){var t=nz;function e(t,e){var n=f,r=this;e||(e={}),ZipPassThrough.call(this,t),this.d=new Deflate(e,(function(t,e){r.ondata(null,t,e)})),this[n(7180)]=8,this[n(7179)]=dbf(e[n(4694)])}return e[t(425)][t(682)]=function(e,n){var r=t;try{this.d[r(565)](e,n)}catch(t){this.ondata(t,null,n)}},e.prototype[t(565)]=function(e,n){var r=t;ZipPassThrough[r(425)][r(565)][r(429)](this,e,n)},e}(),AsyncZipDeflate=function(){var t=nz;function e(t,e){var n=f,r=this;e||(e={}),ZipPassThrough[n(429)](this,t),this.d=new AsyncDeflate(e,(function(t,e,i){r[n(7166)](t,e,i)})),this[n(7180)]=8,this[n(7179)]=dbf(e[n(4694)]),this[n(7133)]=this.d[n(7133)]}return e[t(425)].process=function(e,n){var r=t;this.d[r(565)](e,n)},e[t(425)][t(565)]=function(e,n){var r=t;ZipPassThrough[r(425)][r(565)][r(429)](this,e,n)},e}(),Zip=function(){var t=nz;function e(t){this[f(7166)]=t,this.u=[],this.d=1}return e.prototype.add=function(t){var e=f,n=this;if(2&this.d)throw e(7174);var r=strToU8(t[e(7170)]),i=r[e(449)],s=t.comment,a=s&&strToU8(s),o=i!=t[e(7170)].length||a&&s[e(449)]!=a.length,c=i+exfl(t[e(6996)])+30;if(i>65535)throw"filename too long";var l=new u8(c);wzh(l,0,t,r,o);var h=[l],u=function(){for(var t=0,e=h;t65535&&b(e(7188),null),x)if(g<16e4)try{b(null,deflateSync(m,v))}catch(t){b(t,null)}else u[e(565)](deflate(m,v,b));else b(null,m)},m=0;m65535)throw n(7188);var _=u?deflateSync(l,h):l,g=_.length,y=crc();y.p(l),i[n(565)](mrg(h,{size:l[n(449)],crc:y.d(),c:_,f:S,m:p,u:d!=o[n(449)]||p&&f[n(449)]!=m,o:s,compression:u})),s+=30+d+v+g,a+=76+2*(d+v)+(m||0)+g}for(var E=new u8(a+22),T=s,I=a-s,z=0;z0){var s=Math[r(563)](this.c,e.length),a=e.subarray(0,s);if(this.c-=s,this.d?this.d[r(565)](a,!this.c):this.k[0][r(565)](a),(e=e.subarray(s)).length)return this[r(565)](e,n)}else{var o=0,c=0,l=void 0,h=void 0;this.p[r(449)]?e[r(449)]?((h=new u8(this.p.length+e[r(449)]))[r(540)](this.p),h[r(540)](e,this.p[r(449)])):h=this.p:h=e;for(var u=h[r(449)],d=this.c,f=d&&this.d,p=function(){var t,e=r,n=b4(h,c);if(67324752==n){o=1,l=c,m.d=null,m.c=0;var s=b2(h,c+6),a=b2(h,c+8),f=2048&s,p=8&s,v=b2(h,c+26),_=b2(h,c+28);if(u>c+30+v+_){var g=[];m.k.unshift(g),o=2;var y=b4(h,c+18),E=b4(h,c+22),T=strFromU8(h[e(2442)](c+30,c+=30+v),!f);4294967295==y?(t=p?[-2]:z64e(h,c),y=t[0],E=t[1]):p&&(y=-1),c+=_,m.c=y;var I,z={name:T,compression:a,start:function(){var t=e;if(!z.ondata)throw"no callback";if(y){var n=i.o[a];if(!n)throw"unknown compression type "+a;(I=y<0?new n(T):new n(T,y,E))[t(7166)]=function(e,n,r){z[t(7166)](e,n,r)};for(var r=0,s=g;r=0&&(z.size=y,z[e(7190)]=E),m[e(7189)](z)}return e(1166)}if(d){if(134695760==n)return l=c+=12+(-2==d&&8),o=3,m.c=0,e(1166);if(33639248==n)return l=c-=4,o=3,m.c=0,e(1166)}},m=this;c65558)return void e("invalid zip file",null);var o=b2(t,a+8);o||e(null,{});var c=o,l=b4(t,a+16),h=4294967295==l;if(h){if(a=b4(t,a-12),101075792!=b4(t,a))return void e("invalid zip file",null);c=o=b4(t,a+32),l=b4(t,a+48)}for(var u=function(a){var c=n,u=zh(t,l,h),d=u[0],f=u[1],p=u[2],m=u[3],v=u[4],_=u[5],g=slzh(t,_);l=v;var y=function(t,n){t?(i(),e(t,null)):(s[m]=n,--o||e(null,s))};if(d)if(8==d){var E=t[c(2442)](g,g+f);if(f<32e4)try{y(null,inflateSync(E,new u8(p)))}catch(t){y(t,null)}else r.push(inflate(E,{size:p},y))}else y(c(7192)+d,null);else y(null,slc(t,g,g+f))},d=0;d65558)throw e(7191);var i=b2(t,r+8);if(!i)return{};var s=b4(t,r+16),a=4294967295==s;if(a){if(r=b4(t,r-12),101075792!=b4(t,r))throw e(7191);i=b4(t,r+32),s=b4(t,r+48)}for(var o=0;o=n[i])return i-1;if(e<=n[t])return t;let s=t,a=i,o=Math[r(562)]((s+a)/2);for(;e=n[o+1];)e=a&&(s[i][0]=s[e][0]/c[h+1][l],r=s[i][0]*c[l][h]);const u=t-1<=h?a-1:n-t;for(let t=l>=-1?1:-l;t<=u;++t)s[i][t]=(s[e][t]-s[e][t-1])/c[h+1][l+t],r+=s[i][t]*c[l+t][h];t<=h&&(s[i][a]=-s[e][a-1]/c[h+1][t],r+=s[i][a]*c[t][h]),o[a][t]=r;const d=e;e=i,i=d}}let u=n;for(let t=1;t<=r;++t){for(let e=0;e<=n;++e)o[t][e]*=u;u*=n-t}return o}function calcBSplineDerivatives(t,e,n,r,i){var s=nz;const a=i0,a=typeof s[t(7206)]===t(470)&&""!==s.Content;if(e||a){const e=this[t(7207)](r[i]);n[s.RelativeFilename||s[t(7208)]]=e}}}}for(const r in e){const i=e[r];void 0!==n[i]?e[r]=n[i]:e[r]=e[r][t(465)]("\\")[t(1161)]()}return e}[nz(7207)](t){var e=nz;const n=t[e(7206)],r=t[e(7205)]||t[e(7208)],i=r.slice(r[e(678)](".")+1)[e(570)]();let s;switch(i){case e(7209):s=e(7210);break;case"jpg":case e(7211):s=e(1942);break;case e(7212):s=e(1943);break;case"tif":s=e(7213);break;case e(7014):null===this[e(3749)][e(3748)](e(7214))&&console.warn(e(7215),r),s=e(7216);break;default:return void console[e(1176)]('FBXLoader: Image type "'+i+e(7217))}if(typeof n===e(470))return"data:"+s+e(7218)+n;{const t=new Uint8Array(n);return window.URL[e(1126)](new Blob([t],{type:s}))}}[nz(3812)](t){var e=nz;const n=new Map;if("Texture"in fbxTree[e(7203)]){const r=fbxTree[e(7203)][e(1977)];for(const i in r){const s=this[e(7219)](r[i],t);n[e(540)](parseInt(i),s)}}return n}[nz(7219)](t,e){var n=nz;const r=this.loadTexture(t,e);r.ID=t.id,r[n(542)]=t[n(7220)];const i=t.WrapModeU,s=t[n(7221)],a=void 0!==i?i[n(439)]:0,o=void 0!==s?s[n(439)]:0;if(r[n(1972)]=0===a?RepeatWrapping:ClampToEdgeWrapping,r.wrapT=0===o?RepeatWrapping:ClampToEdgeWrapping,n(7222)in t){const e=t[n(7222)][n(439)];r[n(1562)].x=e[0],r.repeat.y=e[1]}if(n(7223)in t){const e=t[n(7223)][n(439)];r[n(1389)].x=e[0],r[n(1389)].y=e[1]}return r}loadTexture(t,e){var n=nz;let r;const i=this[n(5892)].path,s=connections.get(t.id)[n(1602)];let a;void 0!==s&&s[n(449)]>0&&void 0!==e[s[0].ID]&&(r=e[s[0].ID],(0===r[n(564)](n(7224))||0===r[n(564)]("data:"))&&this[n(5892)].setPath(void 0));const o=t[n(7225)][n(497)](-3)[n(570)]();if(o===n(7014)){const e=this[n(3749)][n(3748)](n(7214));null===e?(console[n(1176)]("FBXLoader: TGA loader not found, creating placeholder texture for",t.RelativeFilename),a=new Texture):(e[n(3756)](this[n(5892)][n(1091)]),a=e[n(1212)](r))}else"psd"===o?(console[n(1176)](n(7226),t.RelativeFilename),a=new Texture):a=this[n(5892)].load(r);return this[n(5892)][n(3756)](i),a}[nz(3813)](t){var e=nz;const n=new Map;if(e(2194)in fbxTree[e(7203)]){const e=fbxTree.Objects.Material;for(const r in e){const i=this.parseMaterial(e[r],t);null!==i&&n.set(parseInt(r),i)}}return n}[nz(7227)](t,e){var n=nz;const r=t.id,i=t.attrName;let s=t.ShadingModel;if(typeof s===n(469)&&(s=s[n(439)]),!connections.has(r))return null;const a=this[n(7228)](t,e,r);let o;switch(s.toLowerCase()){case n(2982):o=new MeshPhongMaterial;break;case n(2981):o=new MeshLambertMaterial;break;default:console[n(1176)](n(7229),s),o=new MeshPhongMaterial}return o[n(2226)](a),o.name=i,o}parseParameters(t,e,n){var r=nz;const i={};t.BumpFactor&&(i[r(2260)]=t[r(7230)][r(439)]),t[r(7231)]?i.color=(new Color).fromArray(t[r(7231)][r(439)]):t.DiffuseColor&&(t[r(7232)][r(452)]===r(7233)||t.DiffuseColor.type===r(7234))&&(i.color=(new Color).fromArray(t[r(7232)][r(439)])),t.DisplacementFactor&&(i[r(2265)]=t[r(7235)][r(439)]),t.Emissive?i.emissive=(new Color)[r(1890)](t[r(7236)].value):t[r(7237)]&&(t[r(7237)][r(452)]===r(7233)||t.EmissiveColor.type===r(7234))&&(i[r(2236)]=(new Color).fromArray(t[r(7237)].value)),t[r(7238)]&&(i[r(2237)]=parseFloat(t[r(7238)][r(439)])),t[r(7239)]&&(i[r(2286)]=parseFloat(t.Opacity[r(439)])),i[r(2286)]<1&&(i[r(2197)]=!0),t.ReflectionFactor&&(i.reflectivity=t.ReflectionFactor[r(439)]),t[r(7240)]&&(i[r(2241)]=t.Shininess[r(439)]),t[r(7241)]?i.specular=(new Color)[r(1890)](t.Specular[r(439)]):t[r(7242)]&&t[r(7242)][r(452)]===r(7233)&&(i[r(2238)]=(new Color)[r(1890)](t[r(7242)][r(439)]));const s=this;return connections[r(427)](n)[r(1602)][r(604)]((function(t){var n=r;const a=t[n(7243)];switch(a){case"Bump":i.bumpMap=s.getTexture(e,t.ID);break;case n(7244):i[n(2257)]=s[n(7245)](e,t.ID);break;case"DiffuseColor":case n(7246):i[n(679)]=s[n(7245)](e,t.ID),void 0!==i.map&&(i[n(679)][n(1967)]=sRGBEncoding);break;case n(7247):i[n(2264)]=s[n(7245)](e,t.ID);break;case n(7237):i.emissiveMap=s[n(7245)](e,t.ID),void 0!==i[n(2269)]&&(i[n(2269)].encoding=sRGBEncoding);break;case n(7248):case"Maya|TEX_normal_map":i[n(2261)]=s.getTexture(e,t.ID);break;case"ReflectionColor":i.envMap=s[n(7245)](e,t.ID),void 0!==i[n(2273)]&&(i.envMap[n(1956)]=EquirectangularReflectionMapping,i[n(2273)].encoding=sRGBEncoding);break;case n(7242):i[n(2270)]=s[n(7245)](e,t.ID),void 0!==i[n(2270)]&&(i[n(2270)][n(1967)]=sRGBEncoding);break;case n(7249):case"TransparencyFactor":i[n(2254)]=s[n(7245)](e,t.ID),i[n(2197)]=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case n(7250):default:console[n(1176)](n(7251),a)}})),i}[nz(7245)](t,e){var n=nz;return n(7252)in fbxTree[n(7203)]&&e in fbxTree[n(7203)][n(7252)]&&(console[n(1176)](n(7253)),e=connections[n(427)](e)[n(1602)][0].ID),t[n(427)](e)}[nz(7200)](){var t=nz;const e={},n={};if(t(7254)in fbxTree[t(7203)]){const r=fbxTree[t(7203)][t(7254)];for(const i in r){const s=r[i],a=connections[t(427)](parseInt(i));if(s[t(7255)]===t(7256)){const n=this.parseSkeleton(a,r);n.ID=i,a[t(7257)][t(449)]>1&&console[t(1176)](t(7258)),n[t(7259)]=a[t(7257)][0].ID,e[i]=n}else if(s[t(7255)]===t(7260)){const e={id:i};e[t(7261)]=this.parseMorphTargets(a,r),e.id=i,a[t(7257)][t(449)]>1&&console.warn(t(7262)),n[i]=e}}}return{skeletons:e,morphTargets:n}}[nz(7263)](t,e){var n=nz;const r=[];return t[n(1602)].forEach((function(t){var i=n;const s=e[t.ID];if(s[i(7255)]!==i(7264))return;const a={ID:t.ID,indices:[],weights:[],transformLink:(new Matrix4)[i(1890)](s[i(7265)].a)};i(7266)in s&&(a[i(3615)]=s[i(7266)].a,a[i(2687)]=s[i(7267)].a),r.push(a)})),{rawBones:r,bones:[]}}[nz(7268)](t,e){var n=nz;const r=[];for(let i=0;i1?a=o:o[r(449)]>0?a=o[0]:(a=new MeshPhongMaterial({color:13421772}),o[r(565)](a)),r(2231)in s.attributes&&o[r(604)]((function(t){t[r(2285)]=!0})),s[r(7309)]?(i=new SkinnedMesh(s,a),i[r(3508)]()):i=new Mesh(s,a),i}[nz(7310)](t,e){var n=nz;const r=t[n(1602)][n(684)]((function(t,r){var i=n;return e[i(546)](r.ID)&&(t=e[i(427)](r.ID)),t}),null),i=new LineBasicMaterial({color:3342591,linewidth:1});return new Line(r,i)}[nz(7285)](t,e){var n=nz;const r={};"InheritType"in e&&(r[n(7311)]=parseInt(e[n(7312)][n(439)])),n(7313)in e?r[n(7314)]=getEulerOrder(e[n(7313)].value):r[n(7314)]="ZYX",n(7315)in e&&(r.translation=e.Lcl_Translation[n(439)]),n(7316)in e&&(r.preRotation=e[n(7316)][n(439)]),n(7317)in e&&(r[n(1961)]=e.Lcl_Rotation[n(439)]),n(7318)in e&&(r.postRotation=e[n(7318)].value),"Lcl_Scaling"in e&&(r.scale=e.Lcl_Scaling[n(439)]),n(7319)in e&&(r[n(7320)]=e[n(7319)][n(439)]),n(7321)in e&&(r.scalingPivot=e[n(7321)][n(439)]),n(7322)in e&&(r[n(7323)]=e.RotationOffset.value),"RotationPivot"in e&&(r[n(7324)]=e.RotationPivot.value),t.userData.transformData=r}setLookAtProperties(t,e){var n=nz;if(n(7325)in e){connections[n(427)](t.ID)[n(1602)][n(604)]((function(e){var r=n;if("LookAtProperty"===e[r(7243)]){const n=fbxTree[r(7203)].Model[e.ID];if(r(7315)in n){const e=n[r(7315)][r(439)];void 0!==t[r(573)]?(t[r(573)][r(2065)].fromArray(e),sceneGraph.add(t[r(573)])):t[r(2080)]((new Vector3)[r(1890)](e))}}}))}}[nz(7276)](t,e,n){var r=nz;const i=this[r(7326)]();for(const s in t){const a=t[s];connections[r(427)](parseInt(a.ID)).parents.forEach((function(t){var s=r;if(e[s(546)](t.ID)){const e=t.ID;connections[s(427)](e)[s(7257)].forEach((function(t){var e=s;if(n[e(546)](t.ID)){n[e(427)](t.ID).bind(new Skeleton(a.bones),i[t.ID])}}))}}))}}[nz(7326)](){var t=nz;const e={};if(t(7327)in fbxTree[t(7203)]){const n=fbxTree[t(7203)].Pose;for(const r in n)if(n[r][t(7255)]===t(7328)&&n[r].NbPoseNodes>0){const i=n[r][t(7329)];Array.isArray(i)?i.forEach((function(n){var r=t;e[n[r(7330)]]=(new Matrix4)[r(1890)](n[r(7331)].a)})):e[i.Node]=(new Matrix4)[t(1890)](i[t(7331)].a)}}return e}[nz(7277)](){var t=nz;if("GlobalSettings"in fbxTree&&t(7332)in fbxTree[t(7333)]){const e=fbxTree[t(7333)][t(7332)][t(439)],n=e[0],r=e[1],i=e[2];if(0!==n||0!==r||0!==i){const e=new Color(n,r,i);sceneGraph[t(747)](new AmbientLight(e,1))}}}},GeometryParser=class{constructor(){this.negativeMaterialIndices=!1}parse(t){var e=nz;const n=new Map;if("Geometry"in fbxTree[e(7203)]){const r=fbxTree.Objects[e(7334)];for(const i in r){const s=connections[e(427)](parseInt(i)),a=this[e(7335)](s,r[i],t);n.set(parseInt(i),a)}}return!0===this[e(7336)]&&console[e(1176)]("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),n}[nz(7335)](t,e,n){var r=nz;switch(e[r(7255)]){case r(2356):return this.parseMeshGeometry(t,e,n);case r(7281):return this[r(7337)](e)}}[nz(7338)](t,e,n){var r=nz;const i=n[r(2177)],s=[],a=t.parents[r(679)]((function(t){return fbxTree[r(7203)].Model[t.ID]}));if(0===a[r(449)])return;const o=t.children[r(684)]((function(t,e){return void 0!==i[e.ID]&&(t=i[e.ID]),t}),null);t[r(1602)][r(604)]((function(t){var e=r;void 0!==n.morphTargets[t.ID]&&s[e(565)](n[e(2873)][t.ID])}));const c=a[0],l={};r(7313)in c&&(l[r(7314)]=getEulerOrder(c[r(7313)][r(439)])),r(7312)in c&&(l[r(7311)]=parseInt(c[r(7312)][r(439)])),r(7339)in c&&(l[r(4381)]=c.GeometricTranslation[r(439)]),"GeometricRotation"in c&&(l[r(1961)]=c[r(7340)][r(439)]),r(7341)in c&&(l.scale=c[r(7341)].value);const h=generateTransform(l);return this[r(7342)](e,o,s,h)}[nz(7342)](t,e,n,r){var i=nz;const s=new BufferGeometry;t[i(7220)]&&(s[i(542)]=t.attrName);const a=this[i(7343)](t,e),o=this.genBuffers(a),c=new Float32BufferAttribute(o[i(2964)],3);if(c[i(2028)](r),s[i(2334)]("position",c),o[i(7344)][i(449)]>0&&s.setAttribute(i(2231),new Float32BufferAttribute(o[i(7344)],3)),e&&(s[i(2334)]("skinIndex",new Uint16BufferAttribute(o[i(7345)],4)),s[i(2334)](i(3511),new Float32BufferAttribute(o[i(6982)],4)),s[i(7309)]=e),o[i(655)].length>0){const t=(new Matrix3)[i(2338)](r),e=new Float32BufferAttribute(o[i(655)],3);e[i(2027)](t),s[i(2334)](i(655),e)}if(o[i(7346)][i(604)]((function(t,e){var n=i;let r="uv"+(e+1)[n(526)]();0===e&&(r="uv"),s[n(2334)](r,new Float32BufferAttribute(o[n(7346)][e],2))})),a[i(2178)]&&"AllSame"!==a[i(2178)].mappingType){let t=o[i(2354)][0],e=0;if(o[i(2354)][i(604)]((function(n,r){n!==t&&(s[i(2336)](e,r-e,t),t=n,e=r)})),s[i(865)].length>0){const e=s[i(865)][s[i(865)][i(449)]-1],n=e[i(725)]+e[i(2053)];n!==o[i(2354)][i(449)]&&s.addGroup(n,o.materialIndex[i(449)]-n,t)}0===s[i(865)][i(449)]&&s[i(2336)](0,o[i(2354)][i(449)],o.materialIndex[0])}return this.addMorphTargets(s,t,n,r),s}[nz(7343)](t,e){var n=nz;const r={};if(r[n(7347)]=void 0!==t[n(7348)]?t[n(7348)].a:[],r.vertexIndices=void 0!==t[n(7349)]?t.PolygonVertexIndex.a:[],t[n(7350)]&&(r[n(2231)]=this[n(7351)](t[n(7350)][0])),t[n(7352)]&&(r[n(2178)]=this[n(7353)](t[n(7352)][0])),t[n(7354)]&&(r[n(655)]=this[n(7355)](t[n(7354)][0])),t[n(7356)]){r.uv=[];let e=0;for(;t[n(7356)][e];)t[n(7356)][e].UV&&r.uv[n(565)](this[n(7357)](t[n(7356)][e])),e++}return r[n(7358)]={},null!==e&&(r[n(2176)]=e,e.rawBones[n(604)]((function(t,e){var i=n;t[i(3615)].forEach((function(n,s){var a=i;void 0===r.weightTable[n]&&(r.weightTable[n]=[]),r.weightTable[n][a(565)]({id:e,weight:t[a(2687)][s]})}))}))),r}[nz(7359)](t){var e=nz;const n={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let r=0,i=0,s=!1,a=[],o=[],c=[],l=[],h=[],u=[];const d=this;return t[e(7360)].forEach((function(f,p){var m=e;let v,_=!1;f<0&&(f^=-1,_=!0);let g=[],y=[];if(a.push(3*f,3*f+1,3*f+2),t[m(2231)]){const e=getData(p,r,f,t[m(2231)]);c[m(565)](e[0],e[1],e[2])}if(t.skeleton){if(void 0!==t[m(7358)][f]&&t[m(7358)][f].forEach((function(t){var e=m;y[e(565)](t.weight),g[e(565)](t.id)})),y[m(449)]>4){!s&&(console[m(1176)](m(7361)),s=!0);const t=[0,0,0,0],e=[0,0,0,0];y[m(604)]((function(n,r){var i=m;let s=n,a=g[r];e[i(604)]((function(e,n,r){if(s>e){r[n]=s,s=e;const i=t[n];t[n]=a,a=i}}))})),g=t,y=e}for(;y[m(449)]<4;)y[m(565)](0),g[m(565)](0);for(let t=0;t<4;++t)h.push(y[t]),u[m(565)](g[t])}if(t[m(655)]){const e=getData(p,r,f,t.normal);o.push(e[0],e[1],e[2])}t[m(2178)]&&t[m(2178)][m(7362)]!==m(7363)&&(v=getData(p,r,f,t[m(2178)])[0],v<0&&(d[m(7336)]=!0,v=0)),t.uv&&t.uv[m(604)]((function(t,e){var n=m;const i=getData(p,r,f,t);void 0===l[e]&&(l[e]=[]),l[e][n(565)](i[0]),l[e][n(565)](i[1])})),i++,_&&(d[m(7364)](n,t,a,v,o,c,l,h,u,i),r++,i=0,a=[],o=[],c=[],l=[],h=[],u=[])})),n}[nz(7364)](t,e,n,r,i,s,a,o,c,l){var h=nz;for(let u=2;u1&&console[e(1176)](e(7393));const a=t[e(427)](s[0].ID);r[i]={name:n[i].attrName,layer:a}}return r}[nz(7382)](t){var e=nz;let n=[];const r=this;return t.layer[e(604)]((function(t){var i=e;n=n[i(475)](r[i(7394)](t))})),new AnimationClip(t[e(542)],-1,n)}[nz(7394)](t){var e=nz;const n=[];let r=new Vector3,i=new Quaternion,s=new Vector3;if(t[e(1502)]&&t[e(1502)][e(2103)](r,i,s),r=r[e(1499)](),i=(new Euler)[e(2109)](i,t[e(7314)]).toArray(),s=s[e(1499)](),void 0!==t.T&&Object.keys(t.T[e(3584)])[e(449)]>0){const i=this[e(7395)](t[e(7396)],t.T[e(3584)],r,"position");void 0!==i&&n[e(565)](i)}if(void 0!==t.R&&Object[e(477)](t.R[e(3584)])[e(449)]>0){const r=this[e(7397)](t[e(7396)],t.R.curves,i,t.preRotation,t[e(7390)],t.eulerOrder);void 0!==r&&n[e(565)](r)}if(void 0!==t.S&&Object[e(477)](t.S.curves).length>0){const r=this.generateVectorTrack(t.modelName,t.S[e(3584)],s,e(1901));void 0!==r&&n[e(565)](r)}if(void 0!==t[e(7269)]){const r=this[e(7398)](t);void 0!==r&&n[e(565)](r)}return n}[nz(7395)](t,e,n,r){var i=nz;const s=this[i(7399)](e),a=this[i(7400)](s,e,n);return new VectorKeyframeTrack(t+"."+r,s,a)}generateRotationTrack(t,e,n,r,i,s){var a=nz;void 0!==e.x&&(this[a(7401)](e.x),e.x.values=e.x.values[a(679)](MathUtils[a(4473)])),void 0!==e.y&&(this[a(7401)](e.y),e.y[a(673)]=e.y[a(673)].map(MathUtils[a(4473)])),void 0!==e.z&&(this[a(7401)](e.z),e.z[a(673)]=e.z[a(673)].map(MathUtils[a(4473)]));const o=this[a(7399)](e),c=this.getKeyframeTrackValues(o,e,n);void 0!==r&&((r=r[a(679)](MathUtils[a(4473)]))[a(565)](s),r=(new Euler).fromArray(r),r=(new Quaternion)[a(2023)](r)),void 0!==i&&((i=i[a(679)](MathUtils[a(4473)]))[a(565)](s),i=(new Euler)[a(1890)](i),i=(new Quaternion)[a(2023)](i)[a(1465)]());const l=new Quaternion,h=new Euler,u=[];for(let t=0;t1){let t=1,r=n[0];for(let i=1;i=180){const a=s/180,o=i/a;let c=r+o;const l=t[e(3673)][n-1],h=(t[e(3673)][n]-l)/a;let u=l+h;const d=[],f=[];for(;u1&&(r=t[1][e(448)](/^(\w+)::/,""),i=t[2]),{id:n,name:r,type:i}}parseNodeProperty(t,e,n){var r=nz;let i=e[1][r(448)](/^"/,"")[r(448)](/"$/,"")[r(772)](),s=e[2][r(448)](/^"/,"")[r(448)](/"$/,"")[r(772)]();i===r(7206)&&","===s&&(s=n.replace(/"/g,"").replace(/,$/,"")[r(772)]());const a=this[r(7407)]();if(a[r(542)]!==r(7418)){if("C"===i){const t=s[r(465)](",")[r(497)](1),e=parseInt(t[0]),n=parseInt(t[1]);let o=s.split(",")[r(497)](3);o=o[r(679)]((function(t){var e=r;return t[e(772)]()[e(448)](/^"/,"")})),i=r(7420),s=[e,n],append(s,o),void 0===a[i]&&(a[i]=[])}i===r(7330)&&(a.id=s),i in a&&Array[r(468)](a[i])?a[i][r(565)](s):"a"!==i?a[i]=s:a.a=s,this.setCurrentProp(a,i),"a"===i&&","!==s[r(497)](-1)&&(a.a=parseNumberArray(s))}else this[r(7419)](t,i,s)}[nz(7421)](t){var e=nz;const n=this.getCurrentNode();n.a+=t,","!==t[e(497)](-1)&&(n.a=parseNumberArray(n.a))}[nz(7419)](t,e,n){var r=nz;const i=n[r(465)]('",')[r(679)]((function(t){var e=r;return t[e(772)]()[e(448)](/^\"/,"").replace(/\s/,"_")})),s=i[0],a=i[1],o=i[2],c=i[3];let l=i[4];switch(a){case r(7422):case r(7423):case r(3676):case r(7424):case"double":case r(773):case r(7295):l=parseFloat(l);break;case r(7233):case"ColorRGB":case r(7425):case r(7315):case r(7317):case"Lcl_Scaling":l=parseNumberArray(l)}this.getPrevNode()[s]={type:a,type2:o,flag:c,value:l},this[r(7411)](this[r(7404)](),s)}},BinaryParser=class{[nz(1087)](t){var e=nz;const n=new BinaryReader(t);n.skip(23);const r=n.getUint32();if(r<6400)throw new Error(e(7426)+r);const i=new FBXTree;for(;!this[e(7427)](n);){const t=this[e(7428)](n,r);null!==t&&i[e(747)](t[e(542)],t)}return i}[nz(7427)](t){var e=nz;return t.size()%16==0?(t.getOffset()+160+16&-16)>=t.size():t[e(7429)]()+160+16>=t[e(753)]()}[nz(7428)](t,e){var n=nz;const r={},i=e>=7500?t[n(7430)]():t[n(1812)](),s=e>=7500?t[n(7430)]():t[n(1812)]();e>=7500?t.getUint64():t[n(1812)]();const a=t[n(716)](),o=t.getString(a);if(0===i)return null;const c=[];for(let e=0;e0?c[0]:"",h=c[n(449)]>1?c[1]:"",u=c.length>2?c[2]:"";for(r[n(7432)]=1===s&&t[n(7429)]()===i;i>t.getOffset();){const i=this[n(7428)](t,e);null!==i&&this[n(7433)](o,r,i)}return r[n(7434)]=c,typeof l===n(458)&&(r.id=l),""!==h&&(r[n(7220)]=h),""!==u&&(r[n(7255)]=u),""!==o&&(r[n(542)]=o),r}[nz(7433)](t,e,n){var r=nz;if(!0===n[r(7432)]){const t=n[r(7434)][0];Array[r(468)](t)?(e[n.name]=n,n.a=t):e[n[r(542)]]=t}else if("Connections"===t&&"C"===n[r(542)]){const t=[];n[r(7434)][r(604)]((function(e,n){0!==n&&t[r(565)](e)})),void 0===e[r(7420)]&&(e[r(7420)]=[]),e[r(7420)].push(t)}else if(n.name===r(7418)){Object[r(477)](n).forEach((function(t){e[t]=n[t]}))}else if(t===r(7418)&&"P"===n.name){let t=n[r(7434)][0],i=n[r(7434)][1];const s=n[r(7434)][2],a=n.propertyList[3];let o;0===t[r(564)](r(7435))&&(t=t[r(448)](r(7435),r(7436))),0===i.indexOf("Lcl ")&&(i=i[r(448)](r(7435),r(7436))),o=i===r(7233)||i===r(7234)||i===r(7437)||i===r(7425)||0===i[r(564)](r(7436))?[n.propertyList[4],n[r(7434)][5],n[r(7434)][6]]:n[r(7434)][4],e[t]={type:i,type2:s,flag:a,value:o}}else void 0===e[n[r(542)]]?"number"==typeof n.id?(e[n[r(542)]]={},e[n.name][n.id]=n):e[n[r(542)]]=n:n.name===r(7329)?(!Array[r(468)](e[n[r(542)]])&&(e[n[r(542)]]=[e[n[r(542)]]]),e[n[r(542)]][r(565)](n)):void 0===e[n[r(542)]][n.id]&&(e[n[r(542)]][n.id]=n)}[nz(7431)](t){var e=nz;const n=t[e(7438)](1);let r;switch(n){case"C":return t[e(7439)]();case"D":return t[e(7440)]();case"F":return t.getFloat32();case"I":return t[e(7441)]();case"L":return t[e(7442)]();case"R":return r=t[e(1812)](),t.getArrayBuffer(r);case"S":return r=t[e(1812)](),t[e(7438)](r);case"Y":return t[e(7443)]();case"b":case"c":case"d":case"f":case"i":case"l":const i=t[e(1812)](),s=t[e(1812)](),a=t[e(1812)]();if(0===s)switch(n){case"b":case"c":return t[e(7444)](i);case"d":return t[e(7445)](i);case"f":return t.getFloat32Array(i);case"i":return t[e(7446)](i);case"l":return t[e(7447)](i)}void 0===fflate_module_exports&&console[e(819)](e(7448));const o=unzlibSync(new Uint8Array(t[e(7449)](a))),c=new BinaryReader(o[e(703)]);switch(n){case"b":case"c":return c.getBooleanArray(i);case"d":return c[e(7445)](i);case"f":return c[e(7450)](i);case"i":return c[e(7446)](i);case"l":return c[e(7447)](i)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+n)}}},BinaryReader=class{constructor(t,e){var n=nz;this.dv=new DataView(t),this[n(1389)]=0,this.littleEndian=void 0===e||e}[nz(7429)](){return this[nz(1389)]}[nz(753)](){return this.dv.buffer.byteLength}skip(t){this[nz(1389)]+=t}getBoolean(){return 1==(1&this[nz(716)]())}[nz(7444)](t){var e=nz;const n=[];for(let r=0;r=0&&(n=n[e(497)](0,r)),LoaderUtils.decodeText(new Uint8Array(n))}},FBXTree=class{[nz(747)](t,e){this[t]=e}};function isFbxFormatBinary(t){var e=nz;const n="Kaydara FBX Binary \0";return t[e(702)]>=n[e(449)]&&n===convertArrayBufferToString(t,0,n[e(449)])}function isFbxFormatASCII(t){var e=nz;const n=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let r=0;function i(e){const n=t[e-1];return t=t.slice(r+e),r++,n}for(let t=0;te in t?__defProp2(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,__spreadValues2=(t,e)=>{var n=nz;for(var r in e||(e={}))__hasOwnProp2.call(e,r)&&__defNormalProp2(t,r,e[r]);if(__getOwnPropSymbols2)for(var r of __getOwnPropSymbols2(e))__propIsEnum2[n(429)](e,r)&&__defNormalProp2(t,r,e[r]);return t},__require2=t=>{if(typeof __require!==nz(430))return __require(t);throw new Error('Dynamic require of "'+t+'" is not supported')},__commonJS2=(t,e)=>function(){var n=nz;return e||(0,t[Object[n(477)](t)[0]])((e={exports:{}})[n(431)],e),e[n(431)]},__async2=(t,e,n)=>new Promise(((r,i)=>{var s=f,a=t=>{var e=f;try{c(n[e(436)](t))}catch(t){i(t)}},o=t=>{var e=f;try{c(n[e(437)](t))}catch(t){i(t)}},c=t=>t[s(438)]?r(t[s(439)]):Promise[s(440)](t[s(439)])[s(829)](a,o);c((n=n[s(441)](t,e))[s(436)]())})),require_crypto=__commonJS2({"(disabled):crypto"(){}}),require_web_ifc=__commonJS2({"dist/web-ifc.js"(t,e){var n,r,i=nz,s=(n=f,r=typeof document!==n(430)&&document.currentScript?document[n(7471)][n(592)]:void 0,typeof __filename!==n(430)&&(r=r||__filename),function(t){var e,i,s=n,a=typeof(t=t||{})!==s(430)?t:{};a[s(5833)]=new Promise((function(t,n){e=t,i=n}));var o,c={};for(o in a)a[s(492)](o)&&(c[o]=a[o]);var l,h=[],u="./this.program",d=function(t,e){throw e},p=!1,m=!1,v=!1;p=typeof window===s(469),m="function"==typeof importScripts,v=typeof process===s(469)&&"object"==typeof process[s(520)]&&"string"==typeof process[s(520)][s(1626)],l=!p&&!v&&!m;var _,g,y,E,T="";v?(T=m?__require2("path")[s(7473)](T)+"/":__dirname+"/",_=function(t,e){var n=s;return y||(y=__require2("fs")),E||(E=__require2("path")),t=E.normalize(t),y[n(7474)](t,e?null:n(7475))},g=function(t){var e=s,n=_(t,!0);return!n[e(703)]&&(n=new Uint8Array(n)),R(n[e(703)]),n},process[s(7476)].length>1&&(u=process.argv[1][s(448)](/\\/g,"/")),h=process.argv[s(497)](2),process.on(s(7477),(function(t){if(!(t instanceof Rn))throw t})),process.on(s(7478),dt),d=function(t){process[s(816)](t)},a[s(7479)]=function(){return s(7480)}):l?("undefined"!=typeof read&&(_=function(t){return read(t)}),g=function(t){var e,n=s;return typeof readbuffer===n(432)?new Uint8Array(readbuffer(t)):(R("object"==typeof(e=read(t,n(4394)))),e)},typeof scriptArgs!=s(430)?h=scriptArgs:typeof arguments!=s(430)&&(h=arguments),"function"==typeof quit&&(d=function(t){quit(t)}),typeof print!==s(430)&&("undefined"==typeof console&&(console={}),console[s(695)]=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(p||m)&&(m?T=self[s(2608)][s(1043)]:typeof document!==s(430)&&document[s(7471)]&&(T=document[s(7471)][s(592)]),r&&(T=r),T=0!==T.indexOf(s(7224))?T[s(497)](0,T.lastIndexOf("/")+1):"",_=function(t){var e=s,n=new XMLHttpRequest;return n[e(594)](e(7481),t,!1),n.send(null),n[e(7482)]},m&&(g=function(t){var e=s,n=new XMLHttpRequest;return n[e(594)](e(7481),t,!1),n[e(3764)]="arraybuffer",n[e(7483)](null),new Uint8Array(n[e(3760)])}));var I=a[s(7484)]||console[s(695)].bind(console),z=a[s(7485)]||console.warn.bind(console);for(o in c)c[s(492)](o)&&(a[o]=c[o]);c=null,a[s(7486)]&&(h=a.arguments),a[s(7487)]&&(u=a[s(7487)]),a[s(7488)]&&(d=a.quit);var S,x,b=16,w=function(t){};a.wasmBinary&&(S=a[s(7127)]),a[s(7489)]&&(x=a[s(7489)]),typeof WebAssembly!==s(469)&&dt("no native wasm support detected");var C,M=!1;function R(t,e){!t&&dt(s(7490)+e)}var A=typeof TextDecoder!==s(430)?new TextDecoder("utf8"):void 0;function D(t,e,n){for(var r=s,i=(e>>>=0)+n,a=e;t[a>>>0]&&!(a>=i);)++a;if(a-e>16&&t[r(2442)]&&A)return A[r(3778)](t[r(2442)](e>>>0,a>>>0));for(var o="";e>>0];if(128&c){var l=63&t[e++>>>0];if(192!=(224&c)){var h=63&t[e++>>>0];if((c=224==(240&c)?(15&c)<<12|l<<6|h:(7&c)<<18|l<<12|h<<6|63&t[e++>>>0])<65536)o+=String[r(689)](c);else{var u=c-65536;o+=String[r(689)](55296|u>>10,56320|1023&u)}}else o+=String[r(689)]((31&c)<<6|l)}else o+=String[r(689)](c)}return o}function L(t,e){return(t>>>=0)?D(B,t,e):""}function P(t,e,n,r){var i=s;if(!(r>0))return 0;for(var a=n>>>=0,o=n+r-1,c=0;c=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&t[i(621)](++c)),l<=127){if(n>=o)break;e[n++>>>0]=l}else if(l<=2047){if(n+1>=o)break;e[n++>>>0]=192|l>>6,e[n++>>>0]=128|63&l}else if(l<=65535){if(n+2>=o)break;e[n++>>>0]=224|l>>12,e[n++>>>0]=128|l>>6&63,e[n++>>>0]=128|63&l}else{if(n+3>=o)break;e[n++>>>0]=240|l>>18,e[n++>>>0]=128|l>>12&63,e[n++>>>0]=128|l>>6&63,e[n++>>>0]=128|63&l}}return e[n>>>0]=0,n-a}function O(t,e,n){return P(t,B,e,n)}function F(t){for(var e=s,n=0,r=0;r=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&t.charCodeAt(++r)),i<=127?++n:n+=i<=2047?2:i<=65535?3:4}return n}var N,U,B,k,G,V,j,H,q,W=typeof TextDecoder!==s(430)?new TextDecoder(s(7491)):void 0;function Y(t,e){for(var n=s,r=t,i=r>>1,a=i+e/2;!(i>=a)&&G[i>>>0];)++i;if((r=i<<1)-t>32&&W)return W.decode(B[n(2442)](t>>>0,r>>>0));for(var o="",c=0;!(c>=e/2);++c){var l=k[t+2*c>>>1];if(0==l)break;o+=String[n(689)](l)}return o}function X(t,e,n){var r=s;if(void 0===n&&(n=2147483647),n<2)return 0;for(var i=e,a=(n-=2)<2*t.length?n/2:t[r(449)],o=0;o>>1]=c,e+=2}return k[e>>>1]=0,e-i}function J(t){return 2*t[s(449)]}function K(t,e){for(var n=s,r=0,i="";!(r>=e/4);){var a=V[t+4*r>>>2];if(0==a)break;if(++r,a>=65536){var o=a-65536;i+=String[n(689)](55296|o>>10,56320|1023&o)}else i+=String[n(689)](a)}return i}function Z(t,e,n){var r=s;if(void 0===n&&(n=2147483647),n<4)return 0;for(var i=e>>>=0,a=i+n-4,o=0;o=55296&&c<=57343&&(c=65536+((1023&c)<<10)|1023&t[r(621)](++o)),V[e>>>2]=c,(e+=4)+4>a)break}return V[e>>>2]=0,e-i}function $(t){for(var e=s,n=0,r=0;r=55296&&i<=57343&&++r,n+=4}return n}function Q(t,e){return t%e>0&&(t+=e-t%e),t}function tt(t){var e=s;N=t,a.HEAP8=U=new Int8Array(t),a[e(7492)]=k=new Int16Array(t),a[e(7493)]=V=new Int32Array(t),a[e(7494)]=B=new Uint8Array(t),a[e(7495)]=G=new Uint16Array(t),a.HEAPU32=j=new Uint32Array(t),a[e(7496)]=H=new Float32Array(t),a.HEAPF64=q=new Float64Array(t)}var et=a.INITIAL_MEMORY||16777216;(C=a[s(7497)]?a[s(7497)]:new(WebAssembly[s(7498)])({initial:et/65536,maximum:65536}))&&(N=C[s(703)]),et=N.byteLength,tt(N);var nt,rt=[],it=[],st=[],at=[],ot=0,ct=null,lt=null;function ht(t){var e=s;ot++,a[e(7503)]&&a[e(7503)](ot)}function ut(t){var e=s;if(ot--,a[e(7503)]&&a[e(7503)](ot),0==ot&&(null!==ct&&(clearInterval(ct),ct=null),lt)){var n=lt;lt=null,n()}}function dt(t){var e=s;a[e(7506)]&&a[e(7506)](t),z(t+=""),M=!0,t="abort("+t+e(7507);var n=new WebAssembly.RuntimeError(t);throw i(n),n}function ft(t,e){var n=s;return String.prototype[n(891)]?t[n(891)](e):0===t[n(564)](e)}a[s(7504)]={},a[s(7505)]={};var pt=s(7508);function mt(t){return ft(t,pt)}var vt=s(7509);function _t(t){return ft(t,vt)}var gt,yt,Et,Tt,It=WasmPath+s(7510);function zt(){var t=s;try{if(S)return new Uint8Array(S);if(g)return g(It);throw t(7511)}catch(t){dt(t)}}function St(t){for(var e=s;t.length>0;){var n=t.shift();if("function"!=typeof n){var r=n[e(1397)];typeof r===e(458)?void 0===n[e(1141)]?nt.get(r)():nt[e(427)](r)(n[e(1141)]):r(void 0===n.arg?null:n[e(1141)])}else n(a)}}function xt(t,e,n){var r=s;return-1!=t[r(564)]("j")?function(t,e,n){var r=s;return n&&n[r(449)]?a["dynCall_"+t].apply(null,[e].concat(n)):a[r(7520)+t].call(null,e)}(t,e,n):nt[r(427)](e)[r(441)](null,n)}function bt(t){return V[Cn()>>>2]=t,t}!mt(It)&&(gt=It,It=a[(yt=s)(7472)]?a[yt(7472)](gt,T):T+gt);var wt={splitPath:function(t){var e=s;return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/[e(601)](t)[e(497)](1)},normalizeArray:function(t,e){for(var n=s,r=0,i=t[n(449)]-1;i>=0;i--){var a=t[i];"."===a?t[n(690)](i,1):".."===a?(t[n(690)](i,1),r++):r&&(t[n(690)](i,1),r--)}if(e)for(;r;r--)t[n(691)]("..");return t},normalize:function(t){var e=s,n="/"===t[e(620)](0),r="/"===t[e(497)](-1);return!(t=wt[e(7524)](t[e(465)]("/")[e(464)]((function(t){return!!t})),!n)[e(549)]("/"))&&!n&&(t="."),t&&r&&(t+="/"),(n?"/":"")+t},dirname:function(t){var e=s,n=wt[e(7525)](t),r=n[0],i=n[1];return r||i?(i&&(i=i[e(497)](0,i[e(449)]-1)),r+i):"."},basename:function(t){var e=s;if("/"===t)return"/";var n=(t=(t=wt[e(569)](t))[e(448)](/\/$/,""))[e(678)]("/");return-1===n?t:t[e(497)](n+1)},extname:function(t){return wt.splitPath(t)[3]},join:function(){var t=s,e=Array.prototype[t(497)].call(arguments,0);return wt[t(569)](e.join("/"))},join2:function(t,e){return wt[s(569)](t+"/"+e)}},Ct={resolve:function(){for(var t=s,e="",n=!1,r=arguments[t(449)]-1;r>=-1&&!n;r--){var i=r>=0?arguments[r]:Dt.cwd();if(typeof i!==t(470))throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,n="/"===i[t(620)](0)}return(n?"/":"")+(e=wt[t(7524)](e[t(465)]("/")[t(464)]((function(t){return!!t})),!n)[t(549)]("/"))||"."},relative:function(t,e){var n=s;function r(t){for(var e=n,r=0;r=0&&""===t[i];i--);return r>i?[]:t.slice(r,i-r+1)}t=Ct.resolve(t)[n(497)](1),e=Ct.resolve(e)[n(497)](1);for(var i=r(t.split("/")),a=r(e[n(465)]("/")),o=Math[n(563)](i[n(449)],a.length),c=o,l=0;l0?r.slice(0,i)[e(526)](e(7539)):null}else typeof window!=e(430)&&typeof window[e(7540)]==e(432)?null!==(n=window.prompt(e(7541)))&&(n+="\n"):typeof readline==e(432)&&null!==(n=readline())&&(n+="\n");if(!n)return null;t[e(1400)]=In(n,!0)}return t.input[e(1061)]()},put_char:function(t,e){var n=s;null===e||10===e?(I(D(t[n(4888)],0)),t[n(4888)]=[]):0!=e&&t[n(4888)][n(565)](e)},flush:function(t){var e=s;t[e(4888)]&&t[e(4888)][e(449)]>0&&(I(D(t[e(4888)],0)),t[e(4888)]=[])}},default_tty1_ops:{put_char:function(t,e){var n=s;null===e||10===e?(z(D(t[n(4888)],0)),t.output=[]):0!=e&&t.output[n(565)](e)},flush:function(t){var e=s;t[e(4888)]&&t[e(4888)][e(449)]>0&&(z(D(t.output,0)),t[e(4888)]=[])}}};function Rt(t){for(var e=function(t,e){return e||(e=b),Math[s(561)](t/e)*e}(t,16384),n=bn(e);t>>0]=0;return n}var At={ops_table:null,mount:function(t){return At[s(7542)](null,"/",16895,0)},createNode:function(t,e,n,r){var i=s;if(Dt[i(7543)](n)||Dt[i(7544)](n))throw new(Dt[i(7534)])(63);!At[i(7545)]&&(At.ops_table={dir:{node:{getattr:At.node_ops.getattr,setattr:At[i(7546)][i(7547)],lookup:At[i(7546)][i(7548)],mknod:At[i(7546)].mknod,rename:At.node_ops[i(7549)],unlink:At[i(7546)][i(7550)],rmdir:At[i(7546)].rmdir,readdir:At[i(7546)][i(7551)],symlink:At.node_ops[i(7552)]},stream:{llseek:At[i(7530)][i(7553)]}},file:{node:{getattr:At[i(7546)].getattr,setattr:At[i(7546)][i(7547)]},stream:{llseek:At[i(7530)][i(7553)],read:At[i(7530)][i(3767)],write:At[i(7530)][i(586)],allocate:At[i(7530)][i(7554)],mmap:At[i(7530)][i(7555)],msync:At[i(7530)][i(7556)]}},link:{node:{getattr:At[i(7546)].getattr,setattr:At[i(7546)].setattr,readlink:At[i(7546)][i(7557)]},stream:{}},chrdev:{node:{getattr:At[i(7546)].getattr,setattr:At[i(7546)][i(7547)]},stream:Dt[i(7558)]}});var a=Dt[i(7542)](t,e,n,r);return Dt.isDir(a.mode)?(a[i(7546)]=At[i(7545)].dir[i(1626)],a[i(7530)]=At[i(7545)][i(7559)].stream,a.contents={}):Dt[i(7560)](a[i(5832)])?(a.node_ops=At[i(7545)][i(1095)].node,a.stream_ops=At[i(7545)][i(1095)][i(7561)],a[i(7562)]=0,a[i(7563)]=null):Dt.isLink(a[i(5832)])?(a[i(7546)]=At[i(7545)][i(906)][i(1626)],a[i(7530)]=At[i(7545)][i(906)][i(7561)]):Dt.isChrdev(a[i(5832)])&&(a[i(7546)]=At[i(7545)][i(7564)][i(1626)],a[i(7530)]=At.ops_table[i(7564)][i(7561)]),a[i(7535)]=Date[i(802)](),t&&(t[i(7563)][e]=a),a},getFileDataAsRegularArray:function(t){var e=s;if(t[e(7563)]&&t[e(7563)][e(2442)]){for(var n=[],r=0;r>>=0;var r=t[n(7563)]?t.contents[n(449)]:0;if(!(r>=e)){e=Math[n(486)](e,r*(r<1048576?2:1.125)>>>0),0!=r&&(e=Math[n(486)](e,256));var i=t[n(7563)];t[n(7563)]=new Uint8Array(e),t[n(7562)]>0&&t[n(7563)].set(i.subarray(0,t[n(7562)]),0)}},resizeFileStorage:function(t,e){var n=s;if(e>>>=0,t.usedBytes!=e){if(0==e)return t[n(7563)]=null,void(t[n(7562)]=0);if(!t[n(7563)]||t[n(7563)].subarray){var r=t[n(7563)];return t[n(7563)]=new Uint8Array(e),r&&t[n(7563)][n(540)](r.subarray(0,Math[n(563)](e,t.usedBytes))),void(t.usedBytes=e)}if(t[n(7563)]||(t[n(7563)]=[]),t.contents.length>e)t[n(7563)][n(449)]=e;else for(;t[n(7563)][n(449)]=t.node[a(7562)])return 0;var c=Math[a(563)](t[a(1626)][a(7562)]-i,r);if(c>8&&o[a(2442)])e[a(540)](o[a(2442)](i,i+c),n);else for(var l=0;l0||r+n>>=0,U[o(540)](h,c>>>0)}else l=!1,c=h[o(704)];return{ptr:c,allocated:l}},msync:function(t,e,n,r,i){var a=s;if(!Dt[a(7560)](t[a(1626)][a(5832)]))throw new(Dt[a(7534)])(43);return 2&i||At[a(7530)][a(586)](t,e,0,r,n,!1),0}}},Dt={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(t,e){var n=s;if(e=e||{},!(t=Ct[n(440)](Dt[n(7577)](),t)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)void 0===e[i]&&(e[i]=r[i]);if(e[n(7578)]>8)throw new(Dt[n(7534)])(32);for(var a=wt[n(7524)](t.split("/")[n(464)]((function(t){return!!t})),!1),o=Dt[n(1163)],c="/",l=0;l40)throw new(Dt[n(7534)])(32)}}return{path:c,node:o}},getPath:function(t){for(var e,n=s;;){if(Dt[n(7584)](t)){var r=t[n(7585)].mountpoint;return e?"/"!==r[r.length-1]?r+"/"+e:r+e:r}e=e?t[n(542)]+"/"+e:t[n(542)],t=t[n(840)]}},hashName:function(t,e){for(var n=s,r=0,i=0;i>>0)%Dt[n(7586)][n(449)]},hashAddNode:function(t){var e=s,n=Dt[e(7587)](t[e(840)].id,t[e(542)]);t.name_next=Dt[e(7586)][n],Dt[e(7586)][n]=t},hashRemoveNode:function(t){var e=s,n=Dt[e(7587)](t[e(840)].id,t.name);if(Dt.nameTable[n]===t)Dt[e(7586)][n]=t[e(7588)];else for(var r=Dt[e(7586)][n];r;){if(r[e(7588)]===t){r[e(7588)]=t.name_next;break}r=r.name_next}},lookupNode:function(t,e){var n=s,r=Dt[n(7589)](t);if(r)throw new(Dt[n(7534)])(r,t);for(var i=Dt[n(7587)](t.id,e),a=Dt[n(7586)][i];a;a=a[n(7588)]){var o=a[n(542)];if(a[n(840)].id===t.id&&o===e)return a}return Dt[n(7548)](t,e)},createNode:function(t,e,n,r){var i=s,a=new(Dt[i(7590)])(t,e,n,r);return Dt[i(7591)](a),a},destroyNode:function(t){Dt[s(7592)](t)},isRoot:function(t){return t===t[s(840)]},isMountpoint:function(t){return!!t[s(7582)]},isFile:function(t){return 32768==(61440&t)},isDir:function(t){return 16384==(61440&t)},isLink:function(t){return 40960==(61440&t)},isChrdev:function(t){return 8192==(61440&t)},isBlkdev:function(t){return 24576==(61440&t)},isFIFO:function(t){return 4096==(61440&t)},isSocket:function(t){return 49152==(49152&t)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(t){var e=s,n=Dt[e(7593)][t];if(typeof n===e(430))throw new Error("Unknown file open mode: "+t);return n},flagsToPermissionString:function(t){var e=["r","w","rw"][3&t];return 512&t&&(e+="w"),e},nodePermissions:function(t,e){var n=s;return Dt[n(7501)]||(-1===e[n(564)]("r")||292&t.mode)&&(-1===e[n(564)]("w")||146&t[n(5832)])&&(-1===e[n(564)]("x")||73&t[n(5832)])?0:2},mayLookup:function(t){var e=s,n=Dt[e(7594)](t,"x");return n||(t[e(7546)][e(7548)]?0:2)},mayCreate:function(t,e){var n=s;try{return Dt[n(7575)](t,e),20}catch(t){}return Dt[n(7594)](t,"wx")},mayDelete:function(t,e,n){var r,i=s;try{r=Dt.lookupNode(t,e)}catch(t){return t[i(7595)]}var a=Dt.nodePermissions(t,"wx");if(a)return a;if(n){if(!Dt[i(7569)](r[i(5832)]))return 54;if(Dt[i(7584)](r)||Dt[i(7596)](r)===Dt[i(7577)]())return 10}else if(Dt[i(7569)](r.mode))return 31;return 0},mayOpen:function(t,e){var n=s;return t?Dt[n(7570)](t[n(5832)])?32:Dt[n(7569)](t[n(5832)])&&("r"!==Dt[n(7597)](e)||512&e)?31:Dt[n(7594)](t,Dt[n(7597)](e)):44},MAX_OPEN_FDS:4096,nextfd:function(t,e){var n=s;t=t||0,e=e||Dt[n(7598)];for(var r=t;r<=e;r++)if(!Dt[n(7599)][r])return r;throw new Dt.ErrnoError(33)},getStream:function(t){return Dt.streams[t]},createStream:function(t,e,n){var r=s;!Dt[r(7600)]&&(Dt[r(7600)]=function(){},Dt[r(7600)][r(425)]={object:{get:function(){return this[r(1626)]},set:function(t){this[r(1626)]=t}},isRead:{get:function(){return 1!=(2097155&this[r(853)])}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this[r(853)]}}});var i=new(Dt[r(7600)]);for(var a in t)i[a]=t[a];t=i;var o=Dt[r(7601)](e,n);return t.fd=o,Dt[r(7599)][o]=t,t},closeStream:function(t){Dt[s(7599)][t]=null},chrdev_stream_ops:{open:function(t){var e=s,n=Dt.getDevice(t[e(1626)].rdev);t.stream_ops=n[e(7530)],t[e(7530)][e(594)]&&t[e(7530)].open(t)},llseek:function(){throw new(Dt[s(7534)])(70)}},major:function(t){return t>>8},minor:function(t){return 255&t},makedev:function(t,e){return t<<8|e},registerDevice:function(t,e){Dt[s(7602)][t]={stream_ops:e}},getDevice:function(t){return Dt[s(7602)][t]},getMounts:function(t){for(var e=s,n=[],r=[t];r[e(449)];){var i=r[e(1161)]();n[e(565)](i),r[e(565)][e(441)](r,i.mounts)}return n},syncfs:function(t,e){var n=s;typeof t===n(432)&&(e=t,t=!1),Dt[n(7603)]++,Dt[n(7603)]>1&&z("warning: "+Dt[n(7603)]+n(7604));var r=Dt[n(7605)](Dt[n(1163)][n(7585)]),i=0;function a(t){return Dt[n(7603)]--,e(t)}function o(t){var e=n;if(t)return o.errored?void 0:(o[e(7606)]=!0,a(t));++i>=r[e(449)]&&a(null)}r.forEach((function(e){var r=n;if(!e[r(452)].syncfs)return o(null);e[r(452)][r(7607)](e,t,o)}))},mount:function(t,e,n){var r,i=s,a="/"===n,o=!n;if(a&&Dt[i(1163)])throw new(Dt[i(7534)])(10);if(!a&&!o){var c=Dt.lookupPath(n,{follow_mount:!1});if(n=c.path,r=c[i(1626)],Dt[i(7580)](r))throw new Dt.ErrnoError(10);if(!Dt[i(7569)](r.mode))throw new(Dt[i(7534)])(54)}var l={type:t,opts:e,mountpoint:n,mounts:[]},h=t[i(7585)](l);return h[i(7585)]=l,l[i(1163)]=h,a?Dt[i(1163)]=h:r&&(r[i(7582)]=l,r[i(7585)]&&r[i(7585)][i(7608)][i(565)](l)),h},unmount:function(t){var e=s,n=Dt.lookupPath(t,{follow_mount:!1});if(!Dt.isMountpoint(n[e(1626)]))throw new(Dt[e(7534)])(28);var r=n[e(1626)],i=r[e(7582)],a=Dt[e(7605)](i);Object[e(477)](Dt[e(7586)])[e(604)]((function(t){for(var n=e,r=Dt[n(7586)][t];r;){var i=r[n(7588)];-1!==a[n(564)](r[n(7585)])&&Dt[n(7609)](r),r=i}})),r[e(7582)]=null;var o=r[e(7585)][e(7608)][e(564)](i);r[e(7585)][e(7608)][e(690)](o,1)},lookup:function(t,e){var n=s;return t[n(7546)][n(7548)](t,e)},mknod:function(t,e,n){var r=s,i=Dt[r(7583)](t,{parent:!0})[r(1626)],a=wt[r(7610)](t);if(!a||"."===a||".."===a)throw new(Dt[r(7534)])(28);var o=Dt[r(7611)](i,a);if(o)throw new(Dt[r(7534)])(o);if(!i[r(7546)][r(7612)])throw new Dt.ErrnoError(63);return i[r(7546)].mknod(i,a,e,n)},create:function(t,e){return e=void 0!==e?e:438,e&=4095,e|=32768,Dt.mknod(t,e,0)},mkdir:function(t,e){return e=void 0!==e?e:511,e&=1023,e|=16384,Dt.mknod(t,e,0)},mkdirTree:function(t,e){for(var n=s,r=t[n(465)]("/"),i="",a=0;a>>=0,r<0||i<0)throw new(Dt[a(7534)])(28);if(Dt[a(7644)](t))throw new Dt.ErrnoError(8);if(1==(2097155&t[a(853)]))throw new(Dt[a(7534)])(8);if(Dt[a(7569)](t.node[a(5832)]))throw new(Dt[a(7534)])(31);if(!t.stream_ops.read)throw new Dt.ErrnoError(28);var o=void 0!==i;if(o){if(!t.seekable)throw new(Dt[a(7534)])(70)}else i=t[a(2065)];var c=t.stream_ops[a(3767)](t,e,n,r,i);return o||(t[a(2065)]+=c),c},write:function(t,e,n,r,i,a){var o=s;if(n>>>=0,r<0||i<0)throw new(Dt[o(7534)])(28);if(Dt.isClosed(t))throw new Dt.ErrnoError(8);if(0==(2097155&t[o(853)]))throw new(Dt[o(7534)])(8);if(Dt[o(7569)](t[o(1626)][o(5832)]))throw new(Dt[o(7534)])(31);if(!t[o(7530)][o(586)])throw new(Dt[o(7534)])(28);t[o(7648)]&&1024&t.flags&&Dt[o(7553)](t,0,2);var c=void 0!==i;if(c){if(!t.seekable)throw new(Dt[o(7534)])(70)}else i=t.position;var l=t[o(7530)].write(t,e,n,r,i,a);c||(t[o(2065)]+=l);try{t[o(1091)]&&Dt[o(7616)][o(7649)]&&Dt[o(7616)][o(7649)](t.path)}catch(e){z("FS.trackingDelegate['onWriteToFile']('"+t[o(1091)]+o(7626)+e[o(637)])}return l},allocate:function(t,e,n){var r=s;if(Dt.isClosed(t))throw new(Dt[r(7534)])(8);if(e<0||n<=0)throw new(Dt[r(7534)])(28);if(0==(2097155&t[r(853)]))throw new(Dt[r(7534)])(8);if(!Dt.isFile(t[r(1626)][r(5832)])&&!Dt[r(7569)](t[r(1626)].mode))throw new Dt.ErrnoError(43);if(!t[r(7530)][r(7554)])throw new(Dt[r(7534)])(138);t.stream_ops[r(7554)](t,e,n)},mmap:function(t,e,n,r,i,a){var o=s;if(e>>>=0,0!=(2&i)&&0==(2&a)&&2!=(2097155&t[o(853)]))throw new(Dt[o(7534)])(2);if(1==(2097155&t.flags))throw new Dt.ErrnoError(2);if(!t[o(7530)][o(7555)])throw new(Dt[o(7534)])(43);return t[o(7530)].mmap(t,e,n,r,i,a)},msync:function(t,e,n,r,i){var a=s;return n>>>=0,t&&t[a(7530)][a(7556)]?t.stream_ops[a(7556)](t,e,n,r,i):0},munmap:function(t){return 0},ioctl:function(t,e,n){var r=s;if(!t[r(7530)].ioctl)throw new Dt.ErrnoError(59);return t.stream_ops[r(7650)](t,e,n)},readFile:function(t,e){var n=s;if((e=e||{}).flags=e.flags||0,e.encoding=e[n(1967)]||"binary",e[n(1967)]!==n(7475)&&"binary"!==e[n(1967)])throw new Error(n(7651)+e.encoding+'"');var r,i=Dt[n(594)](t,e.flags),a=Dt.stat(t)[n(753)],o=new Uint8Array(a);return Dt[n(3767)](i,o,0,a,0),e[n(1967)]===n(7475)?r=D(o,0):e[n(1967)]===n(4394)&&(r=o),Dt.close(i),r},writeFile:function(t,e,n){var r=s;(n=n||{})[r(853)]=n[r(853)]||577;var i=Dt[r(594)](t,n[r(853)],n[r(5832)]);if(typeof e===r(470)){var a=new Uint8Array(F(e)+1),o=P(e,a,0,a.length);Dt[r(586)](i,a,0,o,void 0,n[r(7652)])}else{if(!ArrayBuffer[r(3670)](e))throw new Error(r(7653));Dt[r(586)](i,e,0,e[r(702)],void 0,n[r(7652)])}Dt[r(587)](i)},cwd:function(){return Dt.currentPath},chdir:function(t){var e=s,n=Dt[e(7583)](t,{follow:!0});if(null===n[e(1626)])throw new Dt.ErrnoError(44);if(!Dt[e(7569)](n.node.mode))throw new(Dt[e(7534)])(54);var r=Dt[e(7594)](n[e(1626)],"x");if(r)throw new Dt.ErrnoError(r);Dt[e(4152)]=n.path},createDefaultDirectories:function(){var t=s;Dt[t(7613)](t(7654)),Dt.mkdir("/home"),Dt[t(7613)](t(7655))},createDefaultDevices:function(){var t=s;Dt[t(7613)](t(7656)),Dt.registerDevice(Dt[t(7657)](1,3),{read:function(){return 0},write:function(t,e,n,r,i){return r}}),Dt.mkdev(t(7658),Dt[t(7657)](1,3)),Mt.register(Dt[t(7657)](5,0),Mt[t(7659)]),Mt[t(4371)](Dt.makedev(6,0),Mt[t(7660)]),Dt[t(7661)]("/dev/tty",Dt[t(7657)](5,0)),Dt[t(7661)](t(7662),Dt.makedev(6,0));var e=function(){var t=s;if(typeof crypto===t(469)&&typeof crypto[t(7526)]===t(432)){var e=new Uint8Array(1);return function(){return crypto[t(7526)](e),e[0]}}if(v)try{var n=require_crypto();return function(){return n[t(7527)](1)[0]}}catch(t){}return function(){dt("randomDevice")}}();Dt.createDevice(t(7656),t(533),e),Dt[t(7663)](t(7656),t(7664),e),Dt[t(7613)]("/dev/shm"),Dt[t(7613)](t(7665))},createSpecialDirectories:function(){var t=s;Dt[t(7613)](t(7666)),Dt.mkdir(t(7667)),Dt[t(7613)](t(7668)),Dt[t(7585)]({mount:function(){var e=t,n=Dt[e(7542)]("/proc/self","fd",16895,73);return n[e(7546)]={lookup:function(t,n){var r=e,i=+n,s=Dt[r(7628)](i);if(!s)throw new(Dt[r(7534)])(8);var a={parent:null,mount:{mountpoint:r(7669)},node_ops:{readlink:function(){return s[r(1091)]}}};return a[r(840)]=a,a}},n}},{},t(7668))},createStandardStreams:function(){var t=s;a[t(7670)]?Dt[t(7663)]("/dev","stdin",a[t(7670)]):Dt[t(7552)](t(7671),t(7672)),a[t(7673)]?Dt[t(7663)](t(7656),t(7673),null,a[t(7673)]):Dt[t(7552)](t(7671),t(7674)),a[t(7675)]?Dt[t(7663)](t(7656),t(7675),null,a.stderr):Dt[t(7552)](t(7662),"/dev/stderr"),Dt[t(594)](t(7672),0),Dt[t(594)](t(7674),1),Dt.open(t(7676),1)},ensureErrnoError:function(){var t=s;Dt[t(7534)]||(Dt[t(7534)]=function(e,n){var r=t;this.node=n,this[r(7677)]=function(t){this[r(7595)]=t},this.setErrno(e),this.message=r(7678)},Dt[t(7534)][t(425)]=new Error,Dt[t(7534)][t(425)][t(443)]=Dt.ErrnoError,[44][t(604)]((function(e){var n=t;Dt[n(7679)][e]=new(Dt[n(7534)])(e),Dt[n(7679)][e][n(632)]=n(7680)})))},staticInit:function(){var t=s;Dt[t(7681)](),Dt[t(7586)]=new Array(4096),Dt[t(7585)](At,{},"/"),Dt.createDefaultDirectories(),Dt[t(7682)](),Dt[t(7683)](),Dt[t(7684)]={MEMFS:At}},init:function(t,e,n){var r=s;Dt[r(2645)][r(5110)]=!0,Dt[r(7681)](),a[r(7670)]=t||a[r(7670)],a[r(7673)]=e||a.stdout,a[r(7675)]=n||a[r(7675)],Dt.createStandardStreams()},quit:function(){var t=s;Dt.init.initialized=!1;var e=a[t(7685)];e&&e(0);for(var n=0;nthis.length-1||t<0)){var n=t%this.chunkSize,r=t/this[e(7697)]|0;return this[e(551)](r)[n]}},o.prototype[a(7698)]=function(t){this[a(551)]=t},o[a(425)][a(7699)]=function(){var t=a,e=new XMLHttpRequest;if(e[t(594)](t(7700),n,!1),e[t(7483)](null),!(e[t(1637)]>=200&&e[t(1637)]<300||304===e[t(1637)]))throw new Error(t(7701)+n+t(7702)+e.status);var r,i=Number(e[t(7703)]("Content-length")),s=(r=e[t(7703)](t(7704)))&&"bytes"===r,o=(r=e[t(7703)](t(7705)))&&r===t(7706),c=1048576;s||(c=i);var l=this;l[t(7698)]((function(e){var r=t,s=e*c,a=(e+1)*c-1;if(a=Math.min(a,i-1),typeof l[r(7696)][e]===r(430)&&(l[r(7696)][e]=function(e,r){var s=t;if(e>r)throw new Error(s(7707)+e+", "+r+s(7708));if(r>i-1)throw new Error(s(7709)+i+s(7710));var a=new XMLHttpRequest;if(a[s(594)](s(7481),n,!1),i!==c&&a[s(3758)](s(7711),s(7712)+e+"-"+r),typeof Uint8Array!=s(430)&&(a[s(3764)]=s(3773)),a[s(7713)]&&a[s(7713)](s(7714)),a[s(7483)](null),!(a[s(1637)]>=200&&a[s(1637)]<300||304===a[s(1637)]))throw new Error(s(7701)+n+s(7702)+a[s(1637)]);return void 0!==a[s(3760)]?new Uint8Array(a[s(3760)]||[]):In(a.responseText||"",!0)}(s,a)),typeof l.chunks[e]===r(430))throw new Error(r(7715));return l.chunks[e]})),(o||!i)&&(c=i=1,i=this[t(551)](0)[t(449)],c=i,I(t(7716))),this[t(7717)]=i,this[t(7718)]=c,this[t(7695)]=!0},typeof XMLHttpRequest!==a(430)){if(!m)throw a(7719);var c=new o;Object[a(421)](c,{length:{get:function(){var t=a;return!this[t(7695)]&&this[t(7699)](),this[t(7717)]}},chunkSize:{get:function(){var t=a;return!this[t(7695)]&&this.cacheLength(),this[t(7718)]}}});var l={isDevice:!1,contents:c}}else l={isDevice:!1,url:n};var h=Dt[a(7720)](t,e,l,r,i);l[a(7563)]?h[a(7563)]=l[a(7563)]:l[a(1065)]&&(h.contents=null,h[a(1065)]=l[a(1065)]),Object[a(421)](h,{usedBytes:{get:function(){var t=a;return this[t(7563)][t(449)]}}});var u={};return Object[a(477)](h[a(7530)])[a(604)]((function(t){var e=h.stream_ops[t];u[t]=function(){return Dt[f(7721)](h),e.apply(null,arguments)}})),u[a(3767)]=function(t,e,n,r,i){var s=a;Dt[s(7721)](h);var o=t.node.contents;if(i>=o[s(449)])return 0;var c=Math[s(563)](o[s(449)]-i,r);if(o[s(497)])for(var l=0;l>>2]=i.dev,V[n+4>>>2]=0,V[n+8>>>2]=i[r(7566)],V[n+12>>>2]=i[r(5832)],V[n+16>>>2]=i[r(7567)],V[n+20>>>2]=i[r(4401)],V[n+24>>>2]=i.gid,V[n+28>>>2]=i.rdev,V[n+32>>>2]=0,Tt=[i[r(753)]>>>0,(Et=i[r(753)],+Math[r(694)](Et)>=1?Et>0?(0|Math[r(563)](+Math.floor(Et/4294967296),4294967295))>>>0:~~+Math[r(561)]((Et-+(~~Et>>>0))/4294967296)>>>0:0)],V[n+40>>>2]=Tt[0],V[n+44>>>2]=Tt[1],V[n+48>>>2]=4096,V[n+52>>>2]=i[r(7573)],V[n+56>>>2]=i[r(7571)][r(721)]()/1e3|0,V[n+60>>>2]=0,V[n+64>>>2]=i[r(7168)].getTime()/1e3|0,V[n+68>>>2]=0,V[n+72>>>2]=i[r(7742)][r(721)]()/1e3|0,V[n+76>>>2]=0,Tt=[i[r(7566)]>>>0,(Et=i.ino,+Math[r(694)](Et)>=1?Et>0?(0|Math[r(563)](+Math[r(562)](Et/4294967296),4294967295))>>>0:~~+Math[r(561)]((Et-+(~~Et>>>0))/4294967296)>>>0:0)],V[n+80>>>2]=Tt[0],V[n+84>>>2]=Tt[1],0},doMsync:function(t,e,n,r,i){var a=B[s(497)](t,t+n);Dt.msync(e,a,i,n,r)},doMkdir:function(t,e){var n=s;return"/"===(t=wt[n(569)](t))[t.length-1]&&(t=t[n(497)](0,t[n(449)]-1)),Dt[n(7613)](t,e,0),0},doMknod:function(t,e,n){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Dt.mknod(t,e,n),0},doReadlink:function(t,e,n){var r=s;if(n<=0)return-28;var i=Dt.readlink(t),a=Math[r(563)](n,F(i)),o=U[e+a>>>0];return O(i,e,n+1),U[e+a>>>0]=o,a},doAccess:function(t,e){var n,r=s;if(-8&e)return-28;if(!(n=Dt[r(7583)](t,{follow:!0})[r(1626)]))return-44;var i="";return 4&e&&(i+="r"),2&e&&(i+="w"),1&e&&(i+="x"),i&&Dt[r(7594)](n,i)?-2:0},doDup:function(t,e,n){var r=s,i=Dt[r(7628)](n);return i&&Dt[r(587)](i),Dt[r(594)](t,e,0,n,n).fd},doReadv:function(t,e,n,r){for(var i=s,a=0,o=0;o>>2],l=V[e+(8*o+4)>>>2],h=Dt[i(3767)](t,U,c,l,r);if(h<0)return-1;if(a+=h,h>>2],l=V[e+(8*o+4)>>>2],h=Dt[i(586)](t,U,c,l,r);if(h<0)return-1;a+=h}return a},varargs:void 0,get:function(){var t=s;return Lt[t(7743)]+=4,V[Lt[t(7743)]-4>>>2]},getStr:function(t){return L(t)},getStreamFromFD:function(t){var e=s,n=Dt[e(7628)](t);if(!n)throw new(Dt[e(7534)])(8);return n},get64:function(t,e){return t}},Pt={};function Ot(t){for(var e=s;t[e(449)];){var n=t[e(1161)]();t.pop()(n)}}function Ft(t){return this[s(7747)](j[t>>>2])}var Nt={},Ut={},Bt={},kt=48,Gt=57;function Vt(t){var e=s;if(void 0===t)return e(7748);var n=(t=t.replace(/[^a-zA-Z0-9_]/g,"$"))[e(621)](0);return n>=kt&&n<=Gt?"_"+t:t}function jt(t,e){var n=s;return t=Vt(t),new Function("body",n(7749)+t+n(7750))(e)}function Ht(t,e){var n=s,r=jt(e,(function(t){var n=f;this[n(542)]=e,this[n(637)]=t;var r=new Error(t)[n(632)];void 0!==r&&(this[n(632)]=this.toString()+"\n"+r[n(448)](/^Error(:[^\n]*)?\n/,""))}));return r[n(425)]=Object[n(419)](t[n(425)]),r.prototype[n(443)]=r,r[n(425)][n(526)]=function(){var t=n;return void 0===this[t(637)]?this[t(542)]:this[t(542)]+": "+this.message},r}var qt=void 0;function Wt(t){throw new qt(t)}function Yt(t,e,n){var r=s;function i(e){var i=r,s=n(e);s.length!==t[i(449)]&&Wt("Mismatched type converter count");for(var a=0;a>>0];)e+=Kt[B[n++>>>0]];return e}var $t=void 0;function Qt(t){throw new $t(t)}function te(t,e,n){var r=s;if(n=n||{},!("argPackAdvance"in e))throw new TypeError(r(7762));var i=e[r(542)];if(!t&&Qt(r(7763)+i+'" must have a positive integer typeid pointer'),Ut[r(492)](t)){if(n[r(7764)])return;Qt(r(7765)+i+"' twice")}if(Ut[t]=e,delete Bt[t],Nt.hasOwnProperty(t)){var a=Nt[t];delete Nt[t],a[r(604)]((function(t){t()}))}}function ee(t){var e=s;if(!(this instanceof me))return!1;if(!(t instanceof me))return!1;for(var n=this.$$.ptrType[e(7767)],r=this.$$[e(7143)],i=t.$$[e(7768)][e(7767)],a=t.$$[e(7143)];n[e(7769)];)r=n.upcast(r),n=n[e(7769)];for(;i[e(7769)];)a=i[e(7770)](a),i=i[e(7769)];return n===i&&r===a}function ne(t){var e=s;return{count:t[e(2053)],deleteScheduled:t[e(7771)],preservePointerOnDelete:t[e(7772)],ptr:t.ptr,ptrType:t.ptrType,smartPtr:t[e(7773)],smartPtrType:t[e(7774)]}}function re(t){var e,n=s;Qt((e=f,t.$$[e(7768)][e(7767)][e(542)]+n(7775)))}var ie=!1;function se(t){}function ae(t){var e=s;t[e(2053)][e(439)]-=1,0===t.count[e(439)]&&function(t){var e=s;t[e(7773)]?t[e(7774)].rawDestructor(t[e(7773)]):t.ptrType[e(7767)][e(7754)](t.ptr)}(t)}function oe(t){var e=s;return typeof FinalizationGroup===e(430)?(oe=function(t){return t},t):(ie=new FinalizationGroup((function(t){for(var n=e,r=t[n(436)]();!r[n(438)];r=t[n(436)]()){var i=r[n(439)];i[n(7143)]?ae(i):console[n(1176)](n(7776)+i[n(7143)])}})),se=function(t){ie[e(7777)](t.$$)},(oe=function(t){return ie[e(4371)](t,t.$$,t.$$),t})(t))}function ce(){var t=s;if(!this.$$.ptr&&re(this),this.$$[t(7772)])return this.$$.count.value+=1,this;var e=oe(Object[t(419)](Object[t(424)](this),{$$:{value:ne(this.$$)}}));return e.$$[t(2053)][t(439)]+=1,e.$$.deleteScheduled=!1,e}function le(){var t=s;!this.$$[t(7143)]&&re(this),this.$$[t(7771)]&&!this.$$[t(7772)]&&Qt(t(7778)),se(this),ae(this.$$),!this.$$[t(7772)]&&(this.$$[t(7773)]=void 0,this.$$.ptr=void 0)}function he(){return!this.$$.ptr}var ue=void 0,de=[];function fe(){for(var t=s;de.length;){var e=de[t(1161)]();e.$$[t(7771)]=!1,e[t(748)]()}}function pe(){var t=s;return!this.$$.ptr&&re(this),this.$$[t(7771)]&&!this.$$[t(7772)]&&Qt(t(7778)),de[t(565)](this),1===de[t(449)]&&ue&&ue(fe),this.$$[t(7771)]=!0,this}function me(){}var ve={};function _e(t,e,n){var r=s;if(void 0===t[e][r(7782)]){var i=t[e];t[e]=function(){var i=r;return!t[e][i(7782)][i(492)](arguments[i(449)])&&Qt(i(7783)+n+i(7784)+arguments.length+i(7785)+t[e][i(7782)]+")!"),t[e][i(7782)][arguments[i(449)]][i(441)](this,arguments)},t[e][r(7782)]=[],t[e][r(7782)][i[r(7786)]]=i}}function ge(t,e,n){var r=s;a.hasOwnProperty(t)?((void 0===n||void 0!==a[t][r(7782)]&&void 0!==a[t][r(7782)][n])&&Qt(r(7787)+t+r(7788)),_e(a,t,t),a[r(492)](n)&&Qt(r(7789)+n+")!"),a[t].overloadTable[n]=e):(a[t]=e,void 0!==n&&(a[t][r(7790)]=n))}function ye(t,e,n,r,i,a,o,c){var l=s;this[l(542)]=t,this[l(443)]=e,this.instancePrototype=n,this.rawDestructor=r,this[l(7769)]=i,this[l(7791)]=a,this[l(7770)]=o,this.downcast=c,this[l(7792)]=[]}function Ee(t,e,n){for(var r=s;e!==n;)!e[r(7770)]&&Qt(r(7793)+n[r(542)]+", got an instance of "+e.name),t=e.upcast(t),e=e[r(7769)];return t}function Te(t,e){var n=s;if(null===e)return this[n(7794)]&&Qt(n(7795)+this.name),0;!e.$$&&Qt('Cannot pass "'+Je(e)+'" as a '+this[n(542)]),!e.$$[n(7143)]&&Qt(n(7796)+this[n(542)]);var r=e.$$.ptrType[n(7767)];return Ee(e.$$[n(7143)],r,this.registeredClass)}function Ie(t,e){var n,r=s;if(null===e)return this.isReference&&Qt(r(7795)+this[r(542)]),this[r(7797)]?(n=this[r(7753)](),null!==t&&t[r(565)](this.rawDestructor,n),n):0;!e.$$&&Qt(r(7798)+Je(e)+r(7799)+this[r(542)]),!e.$$[r(7143)]&&Qt(r(7796)+this[r(542)]),!this[r(7800)]&&e.$$.ptrType[r(7800)]&&Qt(r(7801)+(e.$$.smartPtrType?e.$$[r(7774)][r(542)]:e.$$[r(7768)][r(542)])+r(7802)+this[r(542)]);var i=e.$$[r(7768)][r(7767)];if(n=Ee(e.$$[r(7143)],i,this[r(7767)]),this[r(7797)])switch(void 0===e.$$[r(7773)]&&Qt(r(7803)),this[r(7804)]){case 0:e.$$[r(7774)]===this?n=e.$$[r(7773)]:Qt(r(7801)+(e.$$[r(7774)]?e.$$[r(7774)][r(542)]:e.$$[r(7768)][r(542)])+r(7802)+this[r(542)]);break;case 1:n=e.$$[r(7773)];break;case 2:if(e.$$.smartPtrType===this)n=e.$$[r(7773)];else{var a=e.clone();n=this.rawShare(n,Xe((function(){a.delete()}))),null!==t&&t[r(565)](this[r(7754)],n)}break;default:Qt(r(7805))}return n}function ze(t,e){var n=s;if(null===e)return this.isReference&&Qt("null is not a valid "+this[n(542)]),0;!e.$$&&Qt(n(7798)+Je(e)+n(7799)+this[n(542)]),!e.$$[n(7143)]&&Qt(n(7796)+this[n(542)]),e.$$[n(7768)][n(7800)]&&Qt(n(7801)+e.$$.ptrType[n(542)]+n(7802)+this.name);var r=e.$$[n(7768)][n(7767)];return Ee(e.$$[n(7143)],r,this[n(7767)])}function Se(t){return this.rawGetPointee&&(t=this.rawGetPointee(t)),t}function xe(t){var e=s;this.rawDestructor&&this[e(7754)](t)}function be(t){null!==t&&t[s(748)]()}function we(t,e,n){var r=s;if(e===n)return t;if(void 0===n[r(7769)])return null;var i=we(t,e,n[r(7769)]);return null===i?null:n[r(7806)](i)}function Ce(){var t=s;return Object[t(477)](Ae)[t(449)]}function Me(){var t=s,e=[];for(var n in Ae)Ae.hasOwnProperty(n)&&e[t(565)](Ae[n]);return e}function Re(t){ue=t,de.length&&ue&&ue(fe)}var Ae={};function De(t,e){return e=function(t,e){var n=s;for(void 0===e&&Qt(n(7811));t[n(7769)];)e=t.upcast(e),t=t[n(7769)];return e}(t,e),Ae[e]}function Le(t,e){var n=s;return(!e[n(7768)]||!e.ptr)&&Wt(n(7812)),!!e.smartPtrType!=!!e[n(7773)]&&Wt(n(7813)),e[n(2053)]={value:1},oe(Object[n(419)](t,{$$:{value:e}}))}function Pe(t){var e=s,n=this[e(7814)](t);if(!n)return this[e(7815)](t),null;var r=De(this[e(7767)],n);if(void 0!==r){if(0===r.$$[e(2053)].value)return r.$$.ptr=n,r.$$.smartPtr=t,r[e(1014)]();var i=r[e(1014)]();return this[e(7815)](t),i}function a(){var r=e;return this[r(7797)]?Le(this[r(7767)][r(7816)],{ptrType:this.pointeeType,ptr:n,smartPtrType:this,smartPtr:t}):Le(this[r(7767)][r(7816)],{ptrType:this,ptr:t})}var o,c=this[e(7767)][e(7791)](n),l=ve[c];if(!l)return a[e(429)](this);o=this[e(7800)]?l[e(7817)]:l[e(5333)];var h=we(n,this[e(7767)],o[e(7767)]);return null===h?a[e(429)](this):this[e(7797)]?Le(o[e(7767)][e(7816)],{ptrType:o,ptr:h,smartPtrType:this,smartPtr:t}):Le(o[e(7767)][e(7816)],{ptrType:o,ptr:h})}function Oe(t,e,n,r,i,a,o,c,l,h,u){var d=s;this[d(542)]=t,this[d(7767)]=e,this.isReference=n,this.isConst=r,this.isSmartPointer=i,this[d(7821)]=a,this[d(7804)]=o,this[d(7822)]=c,this[d(7753)]=l,this.rawShare=h,this[d(7754)]=u,i||void 0!==e[d(7769)]?this[d(7756)]=Ie:r?(this.toWireType=Te,this[d(7823)]=null):(this[d(7756)]=ze,this[d(7823)]=null)}function Fe(t,e,n){var r=s;!a[r(492)](t)&&Wt("Replacing nonexistant public symbol"),void 0!==a[t][r(7782)]&&void 0!==n?a[t][r(7782)][n]=e:(a[t]=e,a[t][r(7786)]=n)}function Ne(t,e){var n,r=s,i=-1!=(t=Zt(t))[(n=f)(564)]("j")?function(t,e){var n=s;R(t[n(564)]("j")>=0,n(7824));var r=[];return function(){var i=n;r[i(449)]=arguments.length;for(var s=0;s>2)+i>>>0]);return r}function Ve(t,e,n,r,i){var a=s,o=e[a(449)];o<2&&Qt(a(7841));for(var c=null!==e[1]&&null!==n,l=!1,h=1;h0?", ":"")+f),p+=(u?a(7857):"")+a(7858)+(f.length>0?", ":"")+f+a(7859),l)p+=a(7860);else for(h=c?1:2;h4&&0==--He[t][e(7864)]&&(He[t]=void 0,je[e(565)](t))}function We(){for(var t=s,e=0,n=5;n>>2])};case 3:return function(t){return this[f(7747)](q[t>>>3])};default:throw new TypeError(n(7867)+t)}}function Ze(t,e,n){var r=s;switch(e){case 0:return n?function(t){return U[t>>>0]}:function(t){return B[t>>>0]};case 1:return n?function(t){return k[t>>>1]}:function(t){return G[t>>>1]};case 2:return n?function(t){return V[t>>>2]}:function(t){return j[t>>>2]};default:throw new TypeError(r(7871)+t)}}function $e(t){var e=s;return!t&&Qt(e(7876)+t),He[t][e(439)]}function Qe(t,e){var n=s,r=Ut[t];return void 0===r&&Qt(e+n(7877)+Be(t)),r}var tn,en={};function nn(t){var e=en[t];return void 0===e?Zt(t):e}function rn(){var t=s;return typeof globalThis===t(469)?globalThis:Function(t(510))()}tn=v?function(){var t=process[s(7881)]();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance[s(802)]()};var sn=!0;function an(t){var e=s;try{return C[e(7882)](t-N[e(702)]+65535>>>16),tt(C[e(703)]),1}catch(t){}}var on={};function cn(){var t=s;if(!cn[t(7884)]){var e=("object"==typeof navigator&&navigator[t(5111)]&&navigator.languages[0]||"C")[t(448)]("-","_")+".UTF-8",n={USER:t(7885),LOGNAME:t(7885),PATH:"/",PWD:"/",HOME:t(7655),LANG:e,_:u||s(7883)};for(var r in on)n[r]=on[r];var i=[];for(var r in n)i[t(565)](r+"="+n[r]);cn[t(7884)]=i}return cn[t(7884)]}function ln(t){return t%4==0&&(t%100!=0||t%400==0)}function hn(t,e){for(var n=0,r=0;r<=e;n+=t[r++]);return n}var un=[31,29,31,30,31,30,31,31,30,31,30,31],dn=[31,28,31,30,31,30,31,31,30,31,30,31];function fn(t,e){for(var n=s,r=new Date(t[n(721)]());e>0;){var i=ln(r[n(719)]()),a=r[n(7887)](),o=(i?un:dn)[a];if(!(e>o-r.getDate()))return r[n(7888)](r[n(7182)]()+e),r;e-=o-r[n(7182)]()+1,r[n(7888)](1),a<11?r[n(7889)](a+1):(r[n(7889)](0),r[n(722)](r.getFullYear()+1))}return r}function pn(t,e,n,r){var i=s,a=V[r+40>>>2],o={tm_sec:V[r>>>2],tm_min:V[r+4>>>2],tm_hour:V[r+8>>>2],tm_mday:V[r+12>>>2],tm_mon:V[r+16>>>2],tm_year:V[r+20>>>2],tm_wday:V[r+24>>>2],tm_yday:V[r+28>>>2],tm_isdst:V[r+32>>>2],tm_gmtoff:V[r+36>>>2],tm_zone:a?L(a):""},c=L(n),l={"%c":i(7890),"%D":"%m/%d/%y","%F":i(7891),"%h":"%b","%r":i(7892),"%R":"%H:%M","%T":"%H:%M:%S","%x":i(7893),"%X":i(7894),"%Ec":"%c","%EC":"%C","%Ex":i(7893),"%EX":i(7894),"%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var h in l)c=c.replace(new RegExp(h,"g"),l[h]);var u=[i(7895),i(7896),i(7897),"Wednesday",i(7898),"Friday","Saturday"],d=["January","February",i(7899),i(7900),i(7901),i(7902),i(7903),i(7904),"September",i(7905),i(7906),"December"];function f(t,e,n){for(var r=i,s=typeof t===r(458)?t[r(526)]():t||"";s.length0?1:0}return 0===(n=s(t[r(719)]()-e[r(719)]()))&&0===(n=s(t[r(7887)]()-e[r(7887)]()))&&(n=s(t[r(7182)]()-e[r(7182)]())),n}function v(t){var e=i;switch(t[e(7907)]()){case 0:return new Date(t.getFullYear()-1,11,29);case 1:return t;case 2:return new Date(t.getFullYear(),0,3);case 3:return new Date(t.getFullYear(),0,2);case 4:return new Date(t[e(719)](),0,1);case 5:return new Date(t[e(719)]()-1,11,31);case 6:return new Date(t[e(719)]()-1,11,30)}}function _(t){var e=i,n=fn(new Date(t[e(7908)]+1900,0,1),t[e(7909)]),r=new Date(n.getFullYear(),0,4),s=new Date(n.getFullYear()+1,0,4),a=v(r),o=v(s);return m(a,n)<=0?m(o,n)<=0?n.getFullYear()+1:n[e(719)]():n[e(719)]()-1}var g={"%a":function(t){var e=i;return u[t[e(7910)]][e(4902)](0,3)},"%A":function(t){return u[t[i(7910)]]},"%b":function(t){var e=i;return d[t.tm_mon][e(4902)](0,3)},"%B":function(t){return d[t[i(7911)]]},"%C":function(t){return p((t[i(7908)]+1900)/100|0,2)},"%d":function(t){return p(t.tm_mday,2)},"%e":function(t){return f(t[i(7912)],2," ")},"%g":function(t){var e=i;return _(t).toString()[e(4902)](2)},"%G":function(t){return _(t)},"%H":function(t){return p(t[i(7913)],2)},"%I":function(t){var e=t[i(7913)];return 0==e?e=12:e>12&&(e-=12),p(e,2)},"%j":function(t){var e=i;return p(t[e(7912)]+hn(ln(t.tm_year+1900)?un:dn,t[e(7911)]-1),3)},"%m":function(t){return p(t[i(7911)]+1,2)},"%M":function(t){return p(t.tm_min,2)},"%n":function(){return"\n"},"%p":function(t){return t.tm_hour>=0&&t.tm_hour<12?"AM":"PM"},"%S":function(t){return p(t[i(7914)],2)},"%t":function(){return"\t"},"%u":function(t){return t[i(7910)]||7},"%U":function(t){var e=i,n=new Date(t[e(7908)]+1900,0,1),r=0===n[e(7907)]()?n:fn(n,7-n[e(7907)]()),s=new Date(t.tm_year+1900,t.tm_mon,t[e(7912)]);if(m(r,s)<0){var a=hn(ln(s[e(719)]())?un:dn,s[e(7887)]()-1)-31,o=31-r[e(7182)]()+a+s[e(7182)]();return p(Math[e(561)](o/7),2)}return 0===m(r,n)?"01":"00"},"%V":function(t){var e,n=i,r=new Date(t[n(7908)]+1900,0,4),s=new Date(t[n(7908)]+1901,0,4),a=v(r),o=v(s),c=fn(new Date(t[n(7908)]+1900,0,1),t[n(7909)]);return m(c,a)<0?"53":m(o,c)<=0?"01":(e=a[n(719)]()=0;return n=(n=Math[e(694)](n)/60)/60*100+n%60,(r?"+":"-")+String(e(7915)+n)[e(497)](-4)},"%Z":function(t){return t[i(7916)]},"%%":function(){return"%"}};for(var h in g)c[i(564)](h)>=0&&(c=c[i(448)](new RegExp(h,"g"),g[h](o)));var y=In(c,!1);return y[i(449)]>e?0:(function(t,e){U[s(540)](t,e>>>0)}(y,t),y[i(449)]-1)}var mn,vn,_n,gn,yn=function(t,e,n,r){var i=s;!t&&(t=this),this[i(840)]=t,this.mount=t[i(7585)],this[i(7582)]=null,this.id=Dt[i(7917)]++,this[i(542)]=e,this[i(5832)]=n,this[i(7546)]={},this[i(7530)]={},this.rdev=r},En=365,Tn=146;function In(t,e,n){var r=s,i=n>0?n:F(t)+1,a=new Array(i),o=P(t,a,0,a[r(449)]);return e&&(a.length=o),a}Object.defineProperties(yn[s(425)],{read:{get:function(){return(this.mode&En)===En},set:function(t){var e=s;t?this[e(5832)]|=En:this[e(5832)]&=~En}},write:{get:function(){return(this[s(5832)]&Tn)===Tn},set:function(t){t?this[s(5832)]|=Tn:this.mode&=~Tn}},isFolder:{get:function(){var t=s;return Dt[t(7569)](this[t(5832)])}},isDevice:{get:function(){return Dt.isChrdev(this.mode)}}}),Dt[s(7590)]=yn,Dt[s(7918)](),a[s(7919)]=Dt[s(7920)],a.FS_createDataFile=Dt[s(7741)],a.FS_createPreloadedFile=Dt[s(7921)],a[s(7922)]=Dt[s(7923)],a[s(7924)]=Dt.createDevice,a[s(7925)]=Dt[s(7550)],qt=a[s(7926)]=Ht(Error,s(7926)),function(){for(var t=s,e=new Array(256),n=0;n<256;++n)e[n]=String[t(689)](n);Kt=e}(),$t=a[s(7927)]=Ht(Error,s(7927)),me[(gn=s)(425)][gn(7779)]=ee,me[gn(425)][gn(1014)]=ce,me[gn(425)].delete=le,me[gn(425)][gn(7780)]=he,me.prototype[gn(7781)]=pe,Oe[(_n=s)(425)].getPointee=Se,Oe.prototype[_n(7815)]=xe,Oe[_n(425)][_n(7818)]=8,Oe[_n(425)][_n(7819)]=Ft,Oe.prototype[_n(7820)]=be,Oe[_n(425)][_n(7747)]=Pe,a[(vn=s)(7807)]=Ce,a[vn(7808)]=Me,a[vn(7809)]=fe,a[vn(7810)]=Re,Ue=a.UnboundTypeError=Ht(Error,"UnboundTypeError"),a[(mn=s)(7865)]=We,a[mn(7866)]=Ye,it[s(565)]({func:function(){xn()}});var zn,Sn={x:function(t,e,n,r){var i=s;dt(i(7490)+L(t)+i(7521)+[e?L(e):i(7522),n,r?L(r):i(7523)])},A:function(t,e,n){var r=s;Lt[r(7743)]=n;try{var i=Lt[r(7744)](t);switch(e){case 0:return(a=Lt.get())<0?-28:Dt.open(i.path,i.flags,0,a).fd;case 1:case 2:case 13:case 14:return 0;case 3:return i[r(853)];case 4:var a=Lt[r(427)]();return i[r(853)]|=a,0;case 12:return a=Lt.get(),k[a+0>>>1]=2,0;case 16:case 8:default:return-28;case 9:return bt(28),-1}}catch(t){return void 0!==Dt&&t instanceof Dt[r(7534)]||dt(t),-t[r(7595)]}},P:function(t,e,n){var r=s;Lt[r(7743)]=n;try{var i=Lt.getStreamFromFD(t);switch(e){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return i[r(7531)]?0:-59;case 21519:if(!i[r(7531)])return-59;var a=Lt[r(427)]();return V[a>>>2]=0,0;case 21520:return i.tty?-28:-59;case 21531:return a=Lt.get(),Dt[r(7650)](i,e,a);default:dt(r(7745)+e)}}catch(t){return typeof Dt!==r(430)&&t instanceof Dt.ErrnoError||dt(t),-t[r(7595)]}},Q:function(t,e,n){var r=s;Lt[r(7743)]=n;try{var i=Lt[r(7746)](t),a=Lt[r(427)]();return Dt[r(594)](i,e,a).fd}catch(t){return void 0!==Dt&&t instanceof Dt[r(7534)]||dt(t),-t[r(7595)]}},U:function(t){var e=s,n=Pt[t];delete Pt[t];var r=n[e(1874)],i=r.length,a=r[e(679)]((function(t){return t[e(7751)]}))[e(475)](r[e(679)]((function(t){return t[e(7752)]}))),o=n[e(7753)],c=n[e(7754)];Yt([t],a,(function(t){var s=e;return r[s(604)]((function(e,n){var r=s,a=t[n],o=e[r(551)],c=e[r(7755)],l=t[n+i],h=e[r(553)],u=e.setterContext;e.read=function(t){return a.fromWireType(o(c,t))},e[r(586)]=function(t,e){var n=[];h(u,t,l[r(7756)](n,e)),Ot(n)}})),[{name:n[s(542)],fromWireType:function(t){for(var e=s,n=new Array(i),a=0;a>>s])},destructorFunction:null})},v:function(t,e,n,r,i,s,a,o,c,l,h,u,d){h=Zt(h),s=Ne(i,s),o&&(o=Ne(a,o)),l&&(l=Ne(c,l)),d=Ne(u,d);var p=Vt(h);ge(p,(function(){ke("Cannot construct "+h+" due to unbound types",[r])})),Yt([t,e,n],r?[r]:[],(function(e){var n,i,a=f;e=e[0],i=r?(n=e[a(7767)])[a(7816)]:me[a(425)];var c=jt(p,(function(){var t=a;if(Object.getPrototypeOf(this)!==u)throw new $t(t(7826)+h);if(void 0===m[t(7827)])throw new $t(h+t(7828));var e=m.constructor_body[arguments[t(449)]];if(void 0===e)throw new $t(t(7829)+h+t(7830)+arguments[t(449)]+t(7831)+Object[t(477)](m.constructor_body).toString()+t(7832));return e[t(441)](this,arguments)})),u=Object[a(419)](i,{constructor:{value:c}});c[a(425)]=u;var m=new ye(h,c,u,d,n,s,o,l),v=new Oe(h,m,!0,!1,!1),_=new Oe(h+"*",m,!1,!1,!1),g=new Oe(h+a(7833),m,!1,!0,!1);return ve[t]={pointerType:_,constPointerType:g},Fe(p,c),[v,_,g]}))},u:function(t,e,n,r,i,s){R(e>0);var a=Ge(e,n);i=Ne(r,i);var o=[s],c=[];Yt([],[t],(function(t){var n=f;t=t[0];var r=n(7834)+t[n(542)];if(void 0===t.registeredClass[n(7827)]&&(t[n(7767)].constructor_body=[]),void 0!==t[n(7767)].constructor_body[e-1])throw new $t(n(7835)+(e-1)+") for class '"+t[n(542)]+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return t[n(7767)][n(7827)][e-1]=function(){var e=n;ke(e(7836)+t[e(542)]+" due to unbound types",a)},Yt([],a,(function(n){return t.registeredClass.constructor_body[e-1]=function(){var t=f;arguments.length!==e-1&&Qt(r+" called with "+arguments[t(449)]+t(7837)+(e-1)),c[t(449)]=0,o[t(449)]=e;for(var s=1;s>>l}}var h=-1!=e[a(564)](a(7872));te(t,{name:e,fromWireType:c,toWireType:function(t,n){var s=a;if(typeof n!==s(458)&&typeof n!==s(1403))throw new TypeError('Cannot convert "'+Je(n)+s(7869)+this.name);if(ni)throw new TypeError('Passing a number "'+Je(n)+s(7873)+e+'", which is outside the valid range ['+r+", "+i+"]!");return h?n>>>0:0|n},argPackAdvance:8,readValueFromPointer:Ze(e,o,0!==r),destructorFunction:null})},k:function(t,e,n){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][e];function i(t){var e=j,n=e[(t>>=2)>>>0],i=e[t+1>>>0];return new r(N,i,n)}te(t,{name:n=Zt(n),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},D:function(t,e){var n=s,r=(e=Zt(e))===n(7874);te(t,{name:e,fromWireType:function(t){var e,i=n,s=j[t>>>2];if(r)for(var a=t+4,o=0;o<=s;++o){var c=t+4+o;if(o==s||0==B[c>>>0]){var l=L(a,c-a);void 0===e?e=l:(e+=String[i(689)](0),e+=l),a=c+1}}else{var h=new Array(s);for(o=0;o>>0]);e=h[i(549)]("")}return Mn(t),e},toWireType:function(t,e){var i=n;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var s=typeof e===i(470);!(s||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array)&&Qt("Cannot pass non-string to std::string");var a=(r&&s?function(){return F(e)}:function(){return e.length})(),o=bn(4+a+1);if(j[(o>>>=0)>>>2]=a,r&&s)O(e,o+4,a+1);else if(s)for(var c=0;c255&&(Mn(o),Qt("String has UTF-16 code units that do not fit in 8 bits")),B[o+4+c>>>0]=l}else for(c=0;c>>0]=e[c];return null!==t&&t[i(565)](Mn,o),o},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:function(t){Mn(t)}})},w:function(t,e,n){var r,i,s,a,o;n=Zt(n),2===e?(r=Y,i=X,a=J,s=function(){return G},o=1):4===e&&(r=K,i=Z,a=$,s=function(){return j},o=2),te(t,{name:n,fromWireType:function(t){for(var n,i=f,a=j[t>>>2],c=s(),l=t+4,h=0;h<=a;++h){var u=t+4+h*e;if(h==a||0==c[u>>>o]){var d=r(l,u-l);void 0===n?n=d:(n+=String[i(689)](0),n+=d),l=u+e}}return Mn(t),n},toWireType:function(t,r){var s=f;typeof r!==s(470)&&Qt(s(7875)+n);var c=a(r),l=bn(4+c+e);return j[(l>>>=0)>>>2]=c>>o,i(r,l+4,c+e),null!==t&&t[s(565)](Mn,l),l},argPackAdvance:8,readValueFromPointer:Ft,destructorFunction:function(t){Mn(t)}})},V:function(t,e,n,r,i,s){Pt[t]={name:Zt(e),rawConstructor:Ne(n,r),rawDestructor:Ne(i,s),elements:[]}},g:function(t,e,n,r,i,s,a,o,c){Pt[t].elements.push({getterReturnType:e,getter:Ne(n,r),getterContext:i,setterArgumentType:s,setter:Ne(a,o),setterContext:c})},t:function(t,e,n,r,i,s){Xt[t]={name:Zt(e),rawConstructor:Ne(n,r),rawDestructor:Ne(i,s),fields:[]}},j:function(t,e,n,r,i,a,o,c,l,h){var u=s;Xt[t][u(7759)][u(565)]({fieldName:Zt(e),getterReturnType:n,getter:Ne(r,i),getterContext:a,setterArgumentType:o,setter:Ne(c,l),setterContext:h})},T:function(t,e){te(t,{isVoid:!0,name:e=Zt(e),argPackAdvance:0,fromWireType:function(){},toWireType:function(t,e){}})},q:function(t,e,n){var r=s;t=$e(t),e=Qe(e,r(7878));var i=[],a=Xe(i);return V[n>>>2]=a,e[r(7756)](i,t)},W:function(t,e,n,r){var i=s;t=$e(t);for(var a=function(t,e){for(var n=s,r=new Array(t),i=0;i>2)+i>>>0],n(7879)+i);return r}(e,n),o=new Array(e),c=0;c4&&(He[t].refcount+=1)},N:function(t,e){return(t=$e(t))instanceof(e=$e(e))},E:function(t){var e=s;return typeof(t=$e(t))===e(458)},y:function(){return Xe([])},f:function(t){return Xe(nn(t))},r:function(){return Xe({})},p:function(t){var e=s;Ot(He[t][e(439)]),qe(t)},i:function(t,e,n){t=$e(t),e=$e(e),n=$e(n),t[e]=n},e:function(t,e){var n=s;return Xe((t=Qe(t,n(7880)))[n(7819)](e))},c:function(){dt()},M:function(t,e){var n;if(0===t)n=Date[s(802)]();else{if(1!==t&&4!==t||!sn)return bt(28),-1;n=tn()}return V[e>>>2]=n/1e3|0,V[e+4>>>2]=n%1e3*1e3*1e3|0,0},I:function(t,e,n){B[s(662)](t>>>0,e>>>0,e+n>>>0)},o:function(t){var e=s;t>>>=0;var n=B[s(449)],r=4294967296;if(t>r)return!1;for(var i=1;i<=4;i*=2){var a=n*(1+.2/i);if(a=Math.min(a,t+100663296),an(Math[e(563)](r,Q(Math[e(486)](16777216,t,a),65536))))return!0}return!1},K:function(t,e){var n=s;try{var r=0;return cn().forEach((function(n,i){var a=e+r;V[t+4*i>>>2]=a,function(t,e,n){for(var r=s,i=0;i>>0]=t[r(621)](i);n||(U[e>>>0]=0)}(n,a),r+=n.length+1})),0}catch(t){return typeof Dt!==n(430)&&t instanceof Dt[n(7534)]||dt(t),t[n(7595)]}},L:function(t,e){var n=s;try{var r=cn();V[t>>>2]=r[n(449)];var i=0;return r[n(604)]((function(t){i+=t[n(449)]+1})),V[e>>>2]=i,0}catch(t){return void 0!==Dt&&t instanceof Dt[n(7534)]||dt(t),t.errno}},B:function(t){var e=s;try{var n=Lt.getStreamFromFD(t);return Dt[e(587)](n),0}catch(t){return typeof Dt!==e(430)&&t instanceof Dt.ErrnoError||dt(t),t.errno}},O:function(t,e,n,r){var i=s;try{var a=Lt[i(7744)](t),o=Lt.doReadv(a,e,n);return V[r>>>2]=o,0}catch(t){return typeof Dt!==i(430)&&t instanceof Dt.ErrnoError||dt(t),t[i(7595)]}},G:function(t,e,n,r,i){var a=s;try{var o=Lt.getStreamFromFD(t),c=4294967296*n+(e>>>0),l=9007199254740992;return c<=-l||c>=l?-61:(Dt[a(7553)](o,c,r),Tt=[o.position>>>0,(Et=o[a(2065)],+Math[a(694)](Et)>=1?Et>0?(0|Math[a(563)](+Math[a(562)](Et/4294967296),4294967295))>>>0:~~+Math[a(561)]((Et-+(~~Et>>>0))/4294967296)>>>0:0)],V[i>>>2]=Tt[0],V[i+4>>>2]=Tt[1],o[a(7645)]&&0===c&&0===r&&(o.getdents=null),0)}catch(t){return void 0!==Dt&&t instanceof Dt[a(7534)]||dt(t),t[a(7595)]}},z:function(t,e,n,r){var i=s;try{var a=Lt.getStreamFromFD(t),o=Lt[i(7886)](a,e,n);return V[r>>>2]=o,0}catch(t){return typeof Dt!==i(430)&&t instanceof Dt[i(7534)]||dt(t),t[i(7595)]}},a:C,H:function(t){w(0|t)},J:function(t,e,n,r){return pn(t,e,n,r)}},xn=(function(){var t,e=s,n={a:Sn};function r(t,e){var n=f,r=t[n(431)];a[n(7513)]=r,nt=a[n(7513)].X,ut(n(7514))}function o(t){r(t.instance)}function c(t){var r,i=e;return(r=s,S||!p&&!m||"function"!=typeof fetch||_t(It)?Promise[r(440)]()[r(829)](zt):fetch(It,{credentials:r(3762)}).then((function(t){var e=r;if(!t.ok)throw e(7512)+It+"'";return t[e(3774)]()}))[r(821)]((function(){return zt()})))[i(829)]((function(t){return WebAssembly[i(6938)](t,n)}))[i(829)](t,(function(t){z(i(7515)+t),dt(t)}))}if(ht(e(7514)),a[e(7518)])try{return a[e(7518)](n,r)}catch(t){return z(e(7519)+t),!1}(t=e,S||typeof WebAssembly[t(7516)]!==t(432)||mt(It)||_t(It)||"function"!=typeof fetch?c(o):fetch(It,{credentials:t(3762)})[t(829)]((function(e){var r=t;return WebAssembly[r(7516)](e,n)[r(829)](o,(function(t){var e=r;return z("wasm streaming compile failed: "+t),z(e(7517)),c(o)}))})))[e(821)](i)}(),a[s(7928)]=function(){var t=s;return(xn=a[t(7928)]=a.asm.Y)[t(441)](null,arguments)}),bn=(a._main=function(){var t=s;return(a[t(7929)]=a[t(7513)].Z)[t(441)](null,arguments)},a[s(7147)]=function(){var t=s;return(bn=a[t(7147)]=a[t(7513)]._)[t(441)](null,arguments)}),wn=a[s(7930)]=function(){return(wn=a[s(7930)]=a.asm.$).apply(null,arguments)},Cn=(a.___embind_register_native_and_builtin_types=function(){var t=s;return(a[t(7931)]=a.asm.aa)[t(441)](null,arguments)},a[s(7932)]=function(){var t=s;return(Cn=a[t(7932)]=a.asm.ba)[t(441)](null,arguments)}),Mn=a[s(7149)]=function(){var t=s;return(Mn=a._free=a.asm.ca)[t(441)](null,arguments)};function Rn(t){var e=s;this[e(542)]=e(7941),this.message=e(7942)+t+")",this[e(1637)]=t}function An(t){var e=s,n=a[e(7929)];try{!function(t,e){var n=s;e&&x&&0===t||(x||(a[n(7948)]&&a[n(7948)](t),M=!0),d(t,new Rn(t)))}(n(0,0),!0)}catch(t){if(t instanceof Rn)return;if("unwind"==t)return void(x=!0);var r=t;t&&typeof t===e(469)&&t[e(632)]&&(r=[t,t[e(632)]]),z(e(7943)+r),d(1,t)}}function Dn(t){var n=s;function r(){var t,n=f;zn||(zn=!0,a[n(7944)]=!0,M||(a[(t=s)(7500)]||Dt[t(2645)].initialized||Dt[t(2645)](),Mt[t(2645)](),St(it),Dt[s(7501)]=!1,St(st),e(a),a[n(7945)]&&a[n(7945)](),Ln&&An(),function(){var t,e=s;if(a[e(7502)])for(typeof a[e(7502)]==e(432)&&(a.postRun=[a.postRun]);a[e(7502)][e(449)];)t=a[e(7502)][e(1061)](),at[s(691)](t);St(at)}()))}t=t||h,ot>0||(function(){var t,e=s;if(a[e(7499)])for(typeof a[e(7499)]==e(432)&&(a[e(7499)]=[a[e(7499)]]);a[e(7499)][e(449)];)t=a.preRun[e(1061)](),rt.unshift(t);St(rt)}(),ot>0||(a.setStatus?(a.setStatus(n(7946)),setTimeout((function(){setTimeout((function(){a[f(7947)]("")}),1),r()}),1)):r()))}if(a[s(7933)]=function(){var t=s;return(a[t(7933)]=a[t(7513)].da)[t(441)](null,arguments)},a[s(7934)]=function(){var t=s;return(a[t(7934)]=a[t(7513)].ea)[t(441)](null,arguments)},a[s(7935)]=function(){var t=s;return(a.dynCall_iiiiiijj=a[t(7513)].fa).apply(null,arguments)},a[s(7936)]=function(){var t=s;return(a[t(7936)]=a[t(7513)].ga).apply(null,arguments)},a[s(7937)]=function(){var t=s;return(a.dynCall_iiiiijj=a.asm.ha)[t(441)](null,arguments)},a[s(7938)]=ht,a[s(7939)]=ut,a[s(7919)]=Dt[s(7920)],a[s(7940)]=Dt.createDataFile,a.FS_createPreloadedFile=Dt[s(7921)],a[s(7922)]=Dt.createLazyFile,a[s(7924)]=Dt[s(7663)],a.FS_unlink=Dt[s(7550)],a.FS=Dt,lt=function t(){zn||Dn(),zn||(lt=t)},a[s(1286)]=Dn,a.preInit)for(typeof a[s(7949)]==s(432)&&(a[s(7949)]=[a.preInit]);a[s(7949)][s(449)]>0;)a[s(7949)][s(1161)]()();var Ln=!0;return a[s(7950)]&&(Ln=!1),x=!0,Dn(),t[s(5833)]});typeof t===i(469)&&typeof e===i(469)?e[i(431)]=s:"function"==typeof define&&define[i(1173)]?define([],(function(){return s})):typeof t===i(469)&&(t[i(7951)]=s)}}),IFCACTIONREQUEST=3821786052,IFCACTOR=2296667514,IFCACTORROLE=3630933823,IFCACTUATOR=4288193352,IFCACTUATORTYPE=2874132201,IFCADDRESS=618182010,IFCADVANCEDBREP=1635779807,IFCADVANCEDBREPWITHVOIDS=2603310189,IFCADVANCEDFACE=3406155212,IFCAIRTERMINAL=1634111441,IFCAIRTERMINALBOX=177149247,IFCAIRTERMINALBOXTYPE=1411407467,IFCAIRTERMINALTYPE=3352864051,IFCAIRTOAIRHEATRECOVERY=2056796094,IFCAIRTOAIRHEATRECOVERYTYPE=1871374353,IFCALARM=3087945054,IFCALARMTYPE=3001207471,IFCALIGNMENT=325726236,IFCALIGNMENT2DHORIZONTAL=749761778,IFCALIGNMENT2DHORIZONTALSEGMENT=3199563722,IFCALIGNMENT2DSEGMENT=2483840362,IFCALIGNMENT2DVERSEGCIRCULARARC=3379348081,IFCALIGNMENT2DVERSEGLINE=3239324667,IFCALIGNMENT2DVERSEGPARABOLICARC=4263986512,IFCALIGNMENT2DVERTICAL=53199957,IFCALIGNMENT2DVERTICALSEGMENT=2029264950,IFCALIGNMENTCURVE=3512275521,IFCANNOTATION=1674181508,IFCANNOTATIONFILLAREA=669184980,IFCAPPLICATION=639542469,IFCAPPLIEDVALUE=411424972,IFCAPPROVAL=130549933,IFCAPPROVALRELATIONSHIP=3869604511,IFCARBITRARYCLOSEDPROFILEDEF=3798115385,IFCARBITRARYOPENPROFILEDEF=1310608509,IFCARBITRARYPROFILEDEFWITHVOIDS=2705031697,IFCASSET=3460190687,IFCASYMMETRICISHAPEPROFILEDEF=3207858831,IFCAUDIOVISUALAPPLIANCE=277319702,IFCAUDIOVISUALAPPLIANCETYPE=1532957894,IFCAXIS1PLACEMENT=4261334040,IFCAXIS2PLACEMENT2D=3125803723,IFCAXIS2PLACEMENT3D=2740243338,IFCBSPLINECURVE=1967976161,IFCBSPLINECURVEWITHKNOTS=2461110595,IFCBSPLINESURFACE=2887950389,IFCBSPLINESURFACEWITHKNOTS=167062518,IFCBEAM=753842376,IFCBEAMSTANDARDCASE=2906023776,IFCBEAMTYPE=819618141,IFCBEARING=4196446775,IFCBEARINGTYPE=3649138523,IFCBLOBTEXTURE=616511568,IFCBLOCK=1334484129,IFCBOILER=32344328,IFCBOILERTYPE=231477066,IFCBOOLEANCLIPPINGRESULT=3649129432,IFCBOOLEANRESULT=2736907675,IFCBOUNDARYCONDITION=4037036970,IFCBOUNDARYCURVE=1136057603,IFCBOUNDARYEDGECONDITION=1560379544,IFCBOUNDARYFACECONDITION=3367102660,IFCBOUNDARYNODECONDITION=1387855156,IFCBOUNDARYNODECONDITIONWARPING=2069777674,IFCBOUNDEDCURVE=1260505505,IFCBOUNDEDSURFACE=4182860854,IFCBOUNDINGBOX=2581212453,IFCBOXEDHALFSPACE=2713105998,IFCBRIDGE=644574406,IFCBRIDGEPART=963979645,IFCBUILDING=4031249490,IFCBUILDINGELEMENT=3299480353,IFCBUILDINGELEMENTPART=2979338954,IFCBUILDINGELEMENTPARTTYPE=39481116,IFCBUILDINGELEMENTPROXY=1095909175,IFCBUILDINGELEMENTPROXYTYPE=1909888760,IFCBUILDINGELEMENTTYPE=1950629157,IFCBUILDINGSTOREY=3124254112,IFCBUILDINGSYSTEM=1177604601,IFCBURNER=2938176219,IFCBURNERTYPE=2188180465,IFCCSHAPEPROFILEDEF=2898889636,IFCCABLECARRIERFITTING=635142910,IFCCABLECARRIERFITTINGTYPE=395041908,IFCCABLECARRIERSEGMENT=3758799889,IFCCABLECARRIERSEGMENTTYPE=3293546465,IFCCABLEFITTING=1051757585,IFCCABLEFITTINGTYPE=2674252688,IFCCABLESEGMENT=4217484030,IFCCABLESEGMENTTYPE=1285652485,IFCCAISSONFOUNDATION=3999819293,IFCCAISSONFOUNDATIONTYPE=3203706013,IFCCARTESIANPOINT=1123145078,IFCCARTESIANPOINTLIST=574549367,IFCCARTESIANPOINTLIST2D=1675464909,IFCCARTESIANPOINTLIST3D=2059837836,IFCCARTESIANTRANSFORMATIONOPERATOR=59481748,IFCCARTESIANTRANSFORMATIONOPERATOR2D=3749851601,IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM=3486308946,IFCCARTESIANTRANSFORMATIONOPERATOR3D=3331915920,IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM=1416205885,IFCCENTERLINEPROFILEDEF=3150382593,IFCCHILLER=3902619387,IFCCHILLERTYPE=2951183804,IFCCHIMNEY=3296154744,IFCCHIMNEYTYPE=2197970202,IFCCIRCLE=2611217952,IFCCIRCLEHOLLOWPROFILEDEF=2937912522,IFCCIRCLEPROFILEDEF=1383045692,IFCCIRCULARARCSEGMENT2D=1062206242,IFCCIVILELEMENT=1677625105,IFCCIVILELEMENTTYPE=3893394355,IFCCLASSIFICATION=747523909,IFCCLASSIFICATIONREFERENCE=647927063,IFCCLOSEDSHELL=2205249479,IFCCOIL=639361253,IFCCOILTYPE=2301859152,IFCCOLOURRGB=776857604,IFCCOLOURRGBLIST=3285139300,IFCCOLOURSPECIFICATION=3264961684,IFCCOLUMN=843113511,IFCCOLUMNSTANDARDCASE=905975707,IFCCOLUMNTYPE=300633059,IFCCOMMUNICATIONSAPPLIANCE=3221913625,IFCCOMMUNICATIONSAPPLIANCETYPE=400855858,IFCCOMPLEXPROPERTY=2542286263,IFCCOMPLEXPROPERTYTEMPLATE=3875453745,IFCCOMPOSITECURVE=3732776249,IFCCOMPOSITECURVEONSURFACE=15328376,IFCCOMPOSITECURVESEGMENT=2485617015,IFCCOMPOSITEPROFILEDEF=1485152156,IFCCOMPRESSOR=3571504051,IFCCOMPRESSORTYPE=3850581409,IFCCONDENSER=2272882330,IFCCONDENSERTYPE=2816379211,IFCCONIC=2510884976,IFCCONNECTEDFACESET=370225590,IFCCONNECTIONCURVEGEOMETRY=1981873012,IFCCONNECTIONGEOMETRY=2859738748,IFCCONNECTIONPOINTECCENTRICITY=45288368,IFCCONNECTIONPOINTGEOMETRY=2614616156,IFCCONNECTIONSURFACEGEOMETRY=2732653382,IFCCONNECTIONVOLUMEGEOMETRY=775493141,IFCCONSTRAINT=1959218052,IFCCONSTRUCTIONEQUIPMENTRESOURCE=3898045240,IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE=2185764099,IFCCONSTRUCTIONMATERIALRESOURCE=1060000209,IFCCONSTRUCTIONMATERIALRESOURCETYPE=4105962743,IFCCONSTRUCTIONPRODUCTRESOURCE=488727124,IFCCONSTRUCTIONPRODUCTRESOURCETYPE=1525564444,IFCCONSTRUCTIONRESOURCE=2559216714,IFCCONSTRUCTIONRESOURCETYPE=2574617495,IFCCONTEXT=3419103109,IFCCONTEXTDEPENDENTUNIT=3050246964,IFCCONTROL=3293443760,IFCCONTROLLER=25142252,IFCCONTROLLERTYPE=578613899,IFCCONVERSIONBASEDUNIT=2889183280,IFCCONVERSIONBASEDUNITWITHOFFSET=2713554722,IFCCOOLEDBEAM=4136498852,IFCCOOLEDBEAMTYPE=335055490,IFCCOOLINGTOWER=3640358203,IFCCOOLINGTOWERTYPE=2954562838,IFCCOORDINATEOPERATION=1785450214,IFCCOORDINATEREFERENCESYSTEM=1466758467,IFCCOSTITEM=3895139033,IFCCOSTSCHEDULE=1419761937,IFCCOSTVALUE=602808272,IFCCOVERING=1973544240,IFCCOVERINGTYPE=1916426348,IFCCREWRESOURCE=3295246426,IFCCREWRESOURCETYPE=1815067380,IFCCSGPRIMITIVE3D=2506170314,IFCCSGSOLID=2147822146,IFCCURRENCYRELATIONSHIP=539742890,IFCCURTAINWALL=3495092785,IFCCURTAINWALLTYPE=1457835157,IFCCURVE=2601014836,IFCCURVEBOUNDEDPLANE=2827736869,IFCCURVEBOUNDEDSURFACE=2629017746,IFCCURVESEGMENT2D=1186437898,IFCCURVESTYLE=3800577675,IFCCURVESTYLEFONT=1105321065,IFCCURVESTYLEFONTANDSCALING=2367409068,IFCCURVESTYLEFONTPATTERN=3510044353,IFCCYLINDRICALSURFACE=1213902940,IFCDAMPER=4074379575,IFCDAMPERTYPE=3961806047,IFCDEEPFOUNDATION=3426335179,IFCDEEPFOUNDATIONTYPE=1306400036,IFCDERIVEDPROFILEDEF=3632507154,IFCDERIVEDUNIT=1765591967,IFCDERIVEDUNITELEMENT=1045800335,IFCDIMENSIONALEXPONENTS=2949456006,IFCDIRECTION=32440307,IFCDISCRETEACCESSORY=1335981549,IFCDISCRETEACCESSORYTYPE=2635815018,IFCDISTANCEEXPRESSION=1945343521,IFCDISTRIBUTIONCHAMBERELEMENT=1052013943,IFCDISTRIBUTIONCHAMBERELEMENTTYPE=1599208980,IFCDISTRIBUTIONCIRCUIT=562808652,IFCDISTRIBUTIONCONTROLELEMENT=1062813311,IFCDISTRIBUTIONCONTROLELEMENTTYPE=2063403501,IFCDISTRIBUTIONELEMENT=1945004755,IFCDISTRIBUTIONELEMENTTYPE=3256556792,IFCDISTRIBUTIONFLOWELEMENT=3040386961,IFCDISTRIBUTIONFLOWELEMENTTYPE=3849074793,IFCDISTRIBUTIONPORT=3041715199,IFCDISTRIBUTIONSYSTEM=3205830791,IFCDOCUMENTINFORMATION=1154170062,IFCDOCUMENTINFORMATIONRELATIONSHIP=770865208,IFCDOCUMENTREFERENCE=3732053477,IFCDOOR=395920057,IFCDOORLININGPROPERTIES=2963535650,IFCDOORPANELPROPERTIES=1714330368,IFCDOORSTANDARDCASE=3242481149,IFCDOORSTYLE=526551008,IFCDOORTYPE=2323601079,IFCDRAUGHTINGPREDEFINEDCOLOUR=445594917,IFCDRAUGHTINGPREDEFINEDCURVEFONT=4006246654,IFCDUCTFITTING=342316401,IFCDUCTFITTINGTYPE=869906466,IFCDUCTSEGMENT=3518393246,IFCDUCTSEGMENTTYPE=3760055223,IFCDUCTSILENCER=1360408905,IFCDUCTSILENCERTYPE=2030761528,IFCEDGE=3900360178,IFCEDGECURVE=476780140,IFCEDGELOOP=1472233963,IFCELECTRICAPPLIANCE=1904799276,IFCELECTRICAPPLIANCETYPE=663422040,IFCELECTRICDISTRIBUTIONBOARD=862014818,IFCELECTRICDISTRIBUTIONBOARDTYPE=2417008758,IFCELECTRICFLOWSTORAGEDEVICE=3310460725,IFCELECTRICFLOWSTORAGEDEVICETYPE=3277789161,IFCELECTRICGENERATOR=264262732,IFCELECTRICGENERATORTYPE=1534661035,IFCELECTRICMOTOR=402227799,IFCELECTRICMOTORTYPE=1217240411,IFCELECTRICTIMECONTROL=1003880860,IFCELECTRICTIMECONTROLTYPE=712377611,IFCELEMENT=1758889154,IFCELEMENTASSEMBLY=4123344466,IFCELEMENTASSEMBLYTYPE=2397081782,IFCELEMENTCOMPONENT=1623761950,IFCELEMENTCOMPONENTTYPE=2590856083,IFCELEMENTQUANTITY=1883228015,IFCELEMENTTYPE=339256511,IFCELEMENTARYSURFACE=2777663545,IFCELLIPSE=1704287377,IFCELLIPSEPROFILEDEF=2835456948,IFCENERGYCONVERSIONDEVICE=1658829314,IFCENERGYCONVERSIONDEVICETYPE=2107101300,IFCENGINE=2814081492,IFCENGINETYPE=132023988,IFCEVAPORATIVECOOLER=3747195512,IFCEVAPORATIVECOOLERTYPE=3174744832,IFCEVAPORATOR=484807127,IFCEVAPORATORTYPE=3390157468,IFCEVENT=4148101412,IFCEVENTTIME=211053100,IFCEVENTTYPE=4024345920,IFCEXTENDEDPROPERTIES=297599258,IFCEXTERNALINFORMATION=4294318154,IFCEXTERNALREFERENCE=3200245327,IFCEXTERNALREFERENCERELATIONSHIP=1437805879,IFCEXTERNALSPATIALELEMENT=1209101575,IFCEXTERNALSPATIALSTRUCTUREELEMENT=2853485674,IFCEXTERNALLYDEFINEDHATCHSTYLE=2242383968,IFCEXTERNALLYDEFINEDSURFACESTYLE=1040185647,IFCEXTERNALLYDEFINEDTEXTFONT=3548104201,IFCEXTRUDEDAREASOLID=477187591,IFCEXTRUDEDAREASOLIDTAPERED=2804161546,IFCFACE=2556980723,IFCFACEBASEDSURFACEMODEL=2047409740,IFCFACEBOUND=1809719519,IFCFACEOUTERBOUND=803316827,IFCFACESURFACE=3008276851,IFCFACETEDBREP=807026263,IFCFACETEDBREPWITHVOIDS=3737207727,IFCFACILITY=24185140,IFCFACILITYPART=1310830890,IFCFAILURECONNECTIONCONDITION=4219587988,IFCFAN=3415622556,IFCFANTYPE=346874300,IFCFASTENER=647756555,IFCFASTENERTYPE=2489546625,IFCFEATUREELEMENT=2827207264,IFCFEATUREELEMENTADDITION=2143335405,IFCFEATUREELEMENTSUBTRACTION=1287392070,IFCFILLAREASTYLE=738692330,IFCFILLAREASTYLEHATCHING=374418227,IFCFILLAREASTYLETILES=315944413,IFCFILTER=819412036,IFCFILTERTYPE=1810631287,IFCFIRESUPPRESSIONTERMINAL=1426591983,IFCFIRESUPPRESSIONTERMINALTYPE=4222183408,IFCFIXEDREFERENCESWEPTAREASOLID=2652556860,IFCFLOWCONTROLLER=2058353004,IFCFLOWCONTROLLERTYPE=3907093117,IFCFLOWFITTING=4278956645,IFCFLOWFITTINGTYPE=3198132628,IFCFLOWINSTRUMENT=182646315,IFCFLOWINSTRUMENTTYPE=4037862832,IFCFLOWMETER=2188021234,IFCFLOWMETERTYPE=3815607619,IFCFLOWMOVINGDEVICE=3132237377,IFCFLOWMOVINGDEVICETYPE=1482959167,IFCFLOWSEGMENT=987401354,IFCFLOWSEGMENTTYPE=1834744321,IFCFLOWSTORAGEDEVICE=707683696,IFCFLOWSTORAGEDEVICETYPE=1339347760,IFCFLOWTERMINAL=2223149337,IFCFLOWTERMINALTYPE=2297155007,IFCFLOWTREATMENTDEVICE=3508470533,IFCFLOWTREATMENTDEVICETYPE=3009222698,IFCFOOTING=900683007,IFCFOOTINGTYPE=1893162501,IFCFURNISHINGELEMENT=263784265,IFCFURNISHINGELEMENTTYPE=4238390223,IFCFURNITURE=1509553395,IFCFURNITURETYPE=1268542332,IFCGEOGRAPHICELEMENT=3493046030,IFCGEOGRAPHICELEMENTTYPE=4095422895,IFCGEOMETRICCURVESET=987898635,IFCGEOMETRICREPRESENTATIONCONTEXT=3448662350,IFCGEOMETRICREPRESENTATIONITEM=2453401579,IFCGEOMETRICREPRESENTATIONSUBCONTEXT=4142052618,IFCGEOMETRICSET=3590301190,IFCGRID=3009204131,IFCGRIDAXIS=852622518,IFCGRIDPLACEMENT=178086475,IFCGROUP=2706460486,IFCHALFSPACESOLID=812098782,IFCHEATEXCHANGER=3319311131,IFCHEATEXCHANGERTYPE=1251058090,IFCHUMIDIFIER=2068733104,IFCHUMIDIFIERTYPE=1806887404,IFCISHAPEPROFILEDEF=1484403080,IFCIMAGETEXTURE=3905492369,IFCINDEXEDCOLOURMAP=3570813810,IFCINDEXEDPOLYCURVE=2571569899,IFCINDEXEDPOLYGONALFACE=178912537,IFCINDEXEDPOLYGONALFACEWITHVOIDS=2294589976,IFCINDEXEDTEXTUREMAP=1437953363,IFCINDEXEDTRIANGLETEXTUREMAP=2133299955,IFCINTERCEPTOR=4175244083,IFCINTERCEPTORTYPE=3946677679,IFCINTERSECTIONCURVE=3113134337,IFCINVENTORY=2391368822,IFCIRREGULARTIMESERIES=3741457305,IFCIRREGULARTIMESERIESVALUE=3020489413,IFCJUNCTIONBOX=2176052936,IFCJUNCTIONBOXTYPE=4288270099,IFCLSHAPEPROFILEDEF=572779678,IFCLABORRESOURCE=3827777499,IFCLABORRESOURCETYPE=428585644,IFCLAGTIME=1585845231,IFCLAMP=76236018,IFCLAMPTYPE=1051575348,IFCLIBRARYINFORMATION=2655187982,IFCLIBRARYREFERENCE=3452421091,IFCLIGHTDISTRIBUTIONDATA=4162380809,IFCLIGHTFIXTURE=629592764,IFCLIGHTFIXTURETYPE=1161773419,IFCLIGHTINTENSITYDISTRIBUTION=1566485204,IFCLIGHTSOURCE=1402838566,IFCLIGHTSOURCEAMBIENT=125510826,IFCLIGHTSOURCEDIRECTIONAL=2604431987,IFCLIGHTSOURCEGONIOMETRIC=4266656042,IFCLIGHTSOURCEPOSITIONAL=1520743889,IFCLIGHTSOURCESPOT=3422422726,IFCLINE=1281925730,IFCLINESEGMENT2D=3092502836,IFCLINEARPLACEMENT=388784114,IFCLINEARPOSITIONINGELEMENT=1154579445,IFCLOCALPLACEMENT=2624227202,IFCLOOP=1008929658,IFCMANIFOLDSOLIDBREP=1425443689,IFCMAPCONVERSION=3057273783,IFCMAPPEDITEM=2347385850,IFCMATERIAL=1838606355,IFCMATERIALCLASSIFICATIONRELATIONSHIP=1847130766,IFCMATERIALCONSTITUENT=3708119e3,IFCMATERIALCONSTITUENTSET=2852063980,IFCMATERIALDEFINITION=760658860,IFCMATERIALDEFINITIONREPRESENTATION=2022407955,IFCMATERIALLAYER=248100487,IFCMATERIALLAYERSET=3303938423,IFCMATERIALLAYERSETUSAGE=1303795690,IFCMATERIALLAYERWITHOFFSETS=1847252529,IFCMATERIALLIST=2199411900,IFCMATERIALPROFILE=2235152071,IFCMATERIALPROFILESET=164193824,IFCMATERIALPROFILESETUSAGE=3079605661,IFCMATERIALPROFILESETUSAGETAPERING=3404854881,IFCMATERIALPROFILEWITHOFFSETS=552965576,IFCMATERIALPROPERTIES=3265635763,IFCMATERIALRELATIONSHIP=853536259,IFCMATERIALUSAGEDEFINITION=1507914824,IFCMEASUREWITHUNIT=2597039031,IFCMECHANICALFASTENER=377706215,IFCMECHANICALFASTENERTYPE=2108223431,IFCMEDICALDEVICE=1437502449,IFCMEDICALDEVICETYPE=1114901282,IFCMEMBER=1073191201,IFCMEMBERSTANDARDCASE=1911478936,IFCMEMBERTYPE=3181161470,IFCMETRIC=3368373690,IFCMIRROREDPROFILEDEF=2998442950,IFCMONETARYUNIT=2706619895,IFCMOTORCONNECTION=2474470126,IFCMOTORCONNECTIONTYPE=977012517,IFCNAMEDUNIT=1918398963,IFCOBJECT=3888040117,IFCOBJECTDEFINITION=219451334,IFCOBJECTPLACEMENT=3701648758,IFCOBJECTIVE=2251480897,IFCOCCUPANT=4143007308,IFCOFFSETCURVE=590820931,IFCOFFSETCURVE2D=3388369263,IFCOFFSETCURVE3D=3505215534,IFCOFFSETCURVEBYDISTANCES=2485787929,IFCOPENSHELL=2665983363,IFCOPENINGELEMENT=3588315303,IFCOPENINGSTANDARDCASE=3079942009,IFCORGANIZATION=4251960020,IFCORGANIZATIONRELATIONSHIP=1411181986,IFCORIENTATIONEXPRESSION=643959842,IFCORIENTEDEDGE=1029017970,IFCOUTERBOUNDARYCURVE=144952367,IFCOUTLET=3694346114,IFCOUTLETTYPE=2837617999,IFCOWNERHISTORY=1207048766,IFCPARAMETERIZEDPROFILEDEF=2529465313,IFCPATH=2519244187,IFCPCURVE=1682466193,IFCPERFORMANCEHISTORY=2382730787,IFCPERMEABLECOVERINGPROPERTIES=3566463478,IFCPERMIT=3327091369,IFCPERSON=2077209135,IFCPERSONANDORGANIZATION=101040310,IFCPHYSICALCOMPLEXQUANTITY=3021840470,IFCPHYSICALQUANTITY=2483315170,IFCPHYSICALSIMPLEQUANTITY=2226359599,IFCPILE=1687234759,IFCPILETYPE=1158309216,IFCPIPEFITTING=310824031,IFCPIPEFITTINGTYPE=804291784,IFCPIPESEGMENT=3612865200,IFCPIPESEGMENTTYPE=4231323485,IFCPIXELTEXTURE=597895409,IFCPLACEMENT=2004835150,IFCPLANARBOX=603570806,IFCPLANAREXTENT=1663979128,IFCPLANE=220341763,IFCPLATE=3171933400,IFCPLATESTANDARDCASE=1156407060,IFCPLATETYPE=4017108033,IFCPOINT=2067069095,IFCPOINTONCURVE=4022376103,IFCPOINTONSURFACE=1423911732,IFCPOLYLOOP=2924175390,IFCPOLYGONALBOUNDEDHALFSPACE=2775532180,IFCPOLYGONALFACESET=2839578677,IFCPOLYLINE=3724593414,IFCPORT=3740093272,IFCPOSITIONINGELEMENT=1946335990,IFCPOSTALADDRESS=3355820592,IFCPREDEFINEDCOLOUR=759155922,IFCPREDEFINEDCURVEFONT=2559016684,IFCPREDEFINEDITEM=3727388367,IFCPREDEFINEDPROPERTIES=3778827333,IFCPREDEFINEDPROPERTYSET=3967405729,IFCPREDEFINEDTEXTFONT=1775413392,IFCPRESENTATIONITEM=677532197,IFCPRESENTATIONLAYERASSIGNMENT=2022622350,IFCPRESENTATIONLAYERWITHSTYLE=1304840413,IFCPRESENTATIONSTYLE=3119450353,IFCPRESENTATIONSTYLEASSIGNMENT=2417041796,IFCPROCEDURE=2744685151,IFCPROCEDURETYPE=569719735,IFCPROCESS=2945172077,IFCPRODUCT=4208778838,IFCPRODUCTDEFINITIONSHAPE=673634403,IFCPRODUCTREPRESENTATION=2095639259,IFCPROFILEDEF=3958567839,IFCPROFILEPROPERTIES=2802850158,IFCPROJECT=103090709,IFCPROJECTLIBRARY=653396225,IFCPROJECTORDER=2904328755,IFCPROJECTEDCRS=3843373140,IFCPROJECTIONELEMENT=3651124850,IFCPROPERTY=2598011224,IFCPROPERTYABSTRACTION=986844984,IFCPROPERTYBOUNDEDVALUE=871118103,IFCPROPERTYDEFINITION=1680319473,IFCPROPERTYDEPENDENCYRELATIONSHIP=148025276,IFCPROPERTYENUMERATEDVALUE=4166981789,IFCPROPERTYENUMERATION=3710013099,IFCPROPERTYLISTVALUE=2752243245,IFCPROPERTYREFERENCEVALUE=941946838,IFCPROPERTYSET=1451395588,IFCPROPERTYSETDEFINITION=3357820518,IFCPROPERTYSETTEMPLATE=492091185,IFCPROPERTYSINGLEVALUE=3650150729,IFCPROPERTYTABLEVALUE=110355661,IFCPROPERTYTEMPLATE=3521284610,IFCPROPERTYTEMPLATEDEFINITION=1482703590,IFCPROTECTIVEDEVICE=738039164,IFCPROTECTIVEDEVICETRIPPINGUNIT=2295281155,IFCPROTECTIVEDEVICETRIPPINGUNITTYPE=655969474,IFCPROTECTIVEDEVICETYPE=1842657554,IFCPROXY=3219374653,IFCPUMP=90941305,IFCPUMPTYPE=2250791053,IFCQUANTITYAREA=2044713172,IFCQUANTITYCOUNT=2093928680,IFCQUANTITYLENGTH=931644368,IFCQUANTITYSET=2090586900,IFCQUANTITYTIME=3252649465,IFCQUANTITYVOLUME=2405470396,IFCQUANTITYWEIGHT=825690147,IFCRAILING=2262370178,IFCRAILINGTYPE=2893384427,IFCRAMP=3024970846,IFCRAMPFLIGHT=3283111854,IFCRAMPFLIGHTTYPE=2324767716,IFCRAMPTYPE=1469900589,IFCRATIONALBSPLINECURVEWITHKNOTS=1232101972,IFCRATIONALBSPLINESURFACEWITHKNOTS=683857671,IFCRECTANGLEHOLLOWPROFILEDEF=2770003689,IFCRECTANGLEPROFILEDEF=3615266464,IFCRECTANGULARPYRAMID=2798486643,IFCRECTANGULARTRIMMEDSURFACE=3454111270,IFCRECURRENCEPATTERN=3915482550,IFCREFERENCE=2433181523,IFCREFERENT=4021432810,IFCREGULARTIMESERIES=3413951693,IFCREINFORCEMENTBARPROPERTIES=1580146022,IFCREINFORCEMENTDEFINITIONPROPERTIES=3765753017,IFCREINFORCINGBAR=979691226,IFCREINFORCINGBARTYPE=2572171363,IFCREINFORCINGELEMENT=3027567501,IFCREINFORCINGELEMENTTYPE=964333572,IFCREINFORCINGMESH=2320036040,IFCREINFORCINGMESHTYPE=2310774935,IFCRELAGGREGATES=160246688,IFCRELASSIGNS=3939117080,IFCRELASSIGNSTOACTOR=1683148259,IFCRELASSIGNSTOCONTROL=2495723537,IFCRELASSIGNSTOGROUP=1307041759,IFCRELASSIGNSTOGROUPBYFACTOR=1027710054,IFCRELASSIGNSTOPROCESS=4278684876,IFCRELASSIGNSTOPRODUCT=2857406711,IFCRELASSIGNSTORESOURCE=205026976,IFCRELASSOCIATES=1865459582,IFCRELASSOCIATESAPPROVAL=4095574036,IFCRELASSOCIATESCLASSIFICATION=919958153,IFCRELASSOCIATESCONSTRAINT=2728634034,IFCRELASSOCIATESDOCUMENT=982818633,IFCRELASSOCIATESLIBRARY=3840914261,IFCRELASSOCIATESMATERIAL=2655215786,IFCRELCONNECTS=826625072,IFCRELCONNECTSELEMENTS=1204542856,IFCRELCONNECTSPATHELEMENTS=3945020480,IFCRELCONNECTSPORTTOELEMENT=4201705270,IFCRELCONNECTSPORTS=3190031847,IFCRELCONNECTSSTRUCTURALACTIVITY=2127690289,IFCRELCONNECTSSTRUCTURALMEMBER=1638771189,IFCRELCONNECTSWITHECCENTRICITY=504942748,IFCRELCONNECTSWITHREALIZINGELEMENTS=3678494232,IFCRELCONTAINEDINSPATIALSTRUCTURE=3242617779,IFCRELCOVERSBLDGELEMENTS=886880790,IFCRELCOVERSSPACES=2802773753,IFCRELDECLARES=2565941209,IFCRELDECOMPOSES=2551354335,IFCRELDEFINES=693640335,IFCRELDEFINESBYOBJECT=1462361463,IFCRELDEFINESBYPROPERTIES=4186316022,IFCRELDEFINESBYTEMPLATE=307848117,IFCRELDEFINESBYTYPE=781010003,IFCRELFILLSELEMENT=3940055652,IFCRELFLOWCONTROLELEMENTS=279856033,IFCRELINTERFERESELEMENTS=427948657,IFCRELNESTS=3268803585,IFCRELPOSITIONS=1441486842,IFCRELPROJECTSELEMENT=750771296,IFCRELREFERENCEDINSPATIALSTRUCTURE=1245217292,IFCRELSEQUENCE=4122056220,IFCRELSERVICESBUILDINGS=366585022,IFCRELSPACEBOUNDARY=3451746338,IFCRELSPACEBOUNDARY1STLEVEL=3523091289,IFCRELSPACEBOUNDARY2NDLEVEL=1521410863,IFCRELVOIDSELEMENT=1401173127,IFCRELATIONSHIP=478536968,IFCREPARAMETRISEDCOMPOSITECURVESEGMENT=816062949,IFCREPRESENTATION=1076942058,IFCREPRESENTATIONCONTEXT=3377609919,IFCREPRESENTATIONITEM=3008791417,IFCREPRESENTATIONMAP=1660063152,IFCRESOURCE=2914609552,IFCRESOURCEAPPROVALRELATIONSHIP=2943643501,IFCRESOURCECONSTRAINTRELATIONSHIP=1608871552,IFCRESOURCELEVELRELATIONSHIP=2439245199,IFCRESOURCETIME=1042787934,IFCREVOLVEDAREASOLID=1856042241,IFCREVOLVEDAREASOLIDTAPERED=3243963512,IFCRIGHTCIRCULARCONE=4158566097,IFCRIGHTCIRCULARCYLINDER=3626867408,IFCROOF=2016517767,IFCROOFTYPE=2781568857,IFCROOT=2341007311,IFCROUNDEDRECTANGLEPROFILEDEF=2778083089,IFCSIUNIT=448429030,IFCSANITARYTERMINAL=3053780830,IFCSANITARYTERMINALTYPE=1768891740,IFCSCHEDULINGTIME=1054537805,IFCSEAMCURVE=2157484638,IFCSECTIONPROPERTIES=2042790032,IFCSECTIONREINFORCEMENTPROPERTIES=4165799628,IFCSECTIONEDSOLID=1862484736,IFCSECTIONEDSOLIDHORIZONTAL=1290935644,IFCSECTIONEDSPINE=1509187699,IFCSENSOR=4086658281,IFCSENSORTYPE=1783015770,IFCSHADINGDEVICE=1329646415,IFCSHADINGDEVICETYPE=4074543187,IFCSHAPEASPECT=867548509,IFCSHAPEMODEL=3982875396,IFCSHAPEREPRESENTATION=4240577450,IFCSHELLBASEDSURFACEMODEL=4124623270,IFCSIMPLEPROPERTY=3692461612,IFCSIMPLEPROPERTYTEMPLATE=3663146110,IFCSITE=4097777520,IFCSLAB=1529196076,IFCSLABELEMENTEDCASE=3127900445,IFCSLABSTANDARDCASE=3027962421,IFCSLABTYPE=2533589738,IFCSLIPPAGECONNECTIONCONDITION=2609359061,IFCSOLARDEVICE=3420628829,IFCSOLARDEVICETYPE=1072016465,IFCSOLIDMODEL=723233188,IFCSPACE=3856911033,IFCSPACEHEATER=1999602285,IFCSPACEHEATERTYPE=1305183839,IFCSPACETYPE=3812236995,IFCSPATIALELEMENT=1412071761,IFCSPATIALELEMENTTYPE=710998568,IFCSPATIALSTRUCTUREELEMENT=2706606064,IFCSPATIALSTRUCTUREELEMENTTYPE=3893378262,IFCSPATIALZONE=463610769,IFCSPATIALZONETYPE=2481509218,IFCSPHERE=451544542,IFCSPHERICALSURFACE=4015995234,IFCSTACKTERMINAL=1404847402,IFCSTACKTERMINALTYPE=3112655638,IFCSTAIR=331165859,IFCSTAIRFLIGHT=4252922144,IFCSTAIRFLIGHTTYPE=1039846685,IFCSTAIRTYPE=338393293,IFCSTRUCTURALACTION=682877961,IFCSTRUCTURALACTIVITY=3544373492,IFCSTRUCTURALANALYSISMODEL=2515109513,IFCSTRUCTURALCONNECTION=1179482911,IFCSTRUCTURALCONNECTIONCONDITION=2273995522,IFCSTRUCTURALCURVEACTION=1004757350,IFCSTRUCTURALCURVECONNECTION=4243806635,IFCSTRUCTURALCURVEMEMBER=214636428,IFCSTRUCTURALCURVEMEMBERVARYING=2445595289,IFCSTRUCTURALCURVEREACTION=2757150158,IFCSTRUCTURALITEM=3136571912,IFCSTRUCTURALLINEARACTION=1807405624,IFCSTRUCTURALLOAD=2162789131,IFCSTRUCTURALLOADCASE=385403989,IFCSTRUCTURALLOADCONFIGURATION=3478079324,IFCSTRUCTURALLOADGROUP=1252848954,IFCSTRUCTURALLOADLINEARFORCE=1595516126,IFCSTRUCTURALLOADORRESULT=609421318,IFCSTRUCTURALLOADPLANARFORCE=2668620305,IFCSTRUCTURALLOADSINGLEDISPLACEMENT=2473145415,IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION=1973038258,IFCSTRUCTURALLOADSINGLEFORCE=1597423693,IFCSTRUCTURALLOADSINGLEFORCEWARPING=1190533807,IFCSTRUCTURALLOADSTATIC=2525727697,IFCSTRUCTURALLOADTEMPERATURE=3408363356,IFCSTRUCTURALMEMBER=530289379,IFCSTRUCTURALPLANARACTION=1621171031,IFCSTRUCTURALPOINTACTION=2082059205,IFCSTRUCTURALPOINTCONNECTION=734778138,IFCSTRUCTURALPOINTREACTION=1235345126,IFCSTRUCTURALREACTION=3689010777,IFCSTRUCTURALRESULTGROUP=2986769608,IFCSTRUCTURALSURFACEACTION=3657597509,IFCSTRUCTURALSURFACECONNECTION=1975003073,IFCSTRUCTURALSURFACEMEMBER=3979015343,IFCSTRUCTURALSURFACEMEMBERVARYING=2218152070,IFCSTRUCTURALSURFACEREACTION=603775116,IFCSTYLEMODEL=2830218821,IFCSTYLEDITEM=3958052878,IFCSTYLEDREPRESENTATION=3049322572,IFCSUBCONTRACTRESOURCE=148013059,IFCSUBCONTRACTRESOURCETYPE=4095615324,IFCSUBEDGE=2233826070,IFCSURFACE=2513912981,IFCSURFACECURVE=699246055,IFCSURFACECURVESWEPTAREASOLID=2028607225,IFCSURFACEFEATURE=3101698114,IFCSURFACEOFLINEAREXTRUSION=2809605785,IFCSURFACEOFREVOLUTION=4124788165,IFCSURFACEREINFORCEMENTAREA=2934153892,IFCSURFACESTYLE=1300840506,IFCSURFACESTYLELIGHTING=3303107099,IFCSURFACESTYLEREFRACTION=1607154358,IFCSURFACESTYLERENDERING=1878645084,IFCSURFACESTYLESHADING=846575682,IFCSURFACESTYLEWITHTEXTURES=1351298697,IFCSURFACETEXTURE=626085974,IFCSWEPTAREASOLID=2247615214,IFCSWEPTDISKSOLID=1260650574,IFCSWEPTDISKSOLIDPOLYGONAL=1096409881,IFCSWEPTSURFACE=230924584,IFCSWITCHINGDEVICE=1162798199,IFCSWITCHINGDEVICETYPE=2315554128,IFCSYSTEM=2254336722,IFCSYSTEMFURNITUREELEMENT=413509423,IFCSYSTEMFURNITUREELEMENTTYPE=1580310250,IFCTSHAPEPROFILEDEF=3071757647,IFCTABLE=985171141,IFCTABLECOLUMN=2043862942,IFCTABLEROW=531007025,IFCTANK=812556717,IFCTANKTYPE=5716631,IFCTASK=3473067441,IFCTASKTIME=1549132990,IFCTASKTIMERECURRING=2771591690,IFCTASKTYPE=3206491090,IFCTELECOMADDRESS=912023232,IFCTENDON=3824725483,IFCTENDONANCHOR=2347447852,IFCTENDONANCHORTYPE=3081323446,IFCTENDONCONDUIT=3663046924,IFCTENDONCONDUITTYPE=2281632017,IFCTENDONTYPE=2415094496,IFCTESSELLATEDFACESET=2387106220,IFCTESSELLATEDITEM=901063453,IFCTEXTLITERAL=4282788508,IFCTEXTLITERALWITHEXTENT=3124975700,IFCTEXTSTYLE=1447204868,IFCTEXTSTYLEFONTMODEL=1983826977,IFCTEXTSTYLEFORDEFINEDFONT=2636378356,IFCTEXTSTYLETEXTMODEL=1640371178,IFCTEXTURECOORDINATE=280115917,IFCTEXTURECOORDINATEGENERATOR=1742049831,IFCTEXTUREMAP=2552916305,IFCTEXTUREVERTEX=1210645708,IFCTEXTUREVERTEXLIST=3611470254,IFCTIMEPERIOD=1199560280,IFCTIMESERIES=3101149627,IFCTIMESERIESVALUE=581633288,IFCTOPOLOGICALREPRESENTATIONITEM=1377556343,IFCTOPOLOGYREPRESENTATION=1735638870,IFCTOROIDALSURFACE=1935646853,IFCTRANSFORMER=3825984169,IFCTRANSFORMERTYPE=1692211062,IFCTRANSITIONCURVESEGMENT2D=2595432518,IFCTRANSPORTELEMENT=1620046519,IFCTRANSPORTELEMENTTYPE=2097647324,IFCTRAPEZIUMPROFILEDEF=2715220739,IFCTRIANGULATEDFACESET=2916149573,IFCTRIANGULATEDIRREGULARNETWORK=1229763772,IFCTRIMMEDCURVE=3593883385,IFCTUBEBUNDLE=3026737570,IFCTUBEBUNDLETYPE=1600972822,IFCTYPEOBJECT=1628702193,IFCTYPEPROCESS=3736923433,IFCTYPEPRODUCT=2347495698,IFCTYPERESOURCE=3698973494,IFCUSHAPEPROFILEDEF=427810014,IFCUNITASSIGNMENT=180925521,IFCUNITARYCONTROLELEMENT=630975310,IFCUNITARYCONTROLELEMENTTYPE=3179687236,IFCUNITARYEQUIPMENT=4292641817,IFCUNITARYEQUIPMENTTYPE=1911125066,IFCVALVE=4207607924,IFCVALVETYPE=728799441,IFCVECTOR=1417489154,IFCVERTEX=2799835756,IFCVERTEXLOOP=2759199220,IFCVERTEXPOINT=1907098498,IFCVIBRATIONDAMPER=1530820697,IFCVIBRATIONDAMPERTYPE=3956297820,IFCVIBRATIONISOLATOR=2391383451,IFCVIBRATIONISOLATORTYPE=3313531582,IFCVIRTUALELEMENT=2769231204,IFCVIRTUALGRIDINTERSECTION=891718957,IFCVOIDINGFEATURE=926996030,IFCWALL=2391406946,IFCWALLELEMENTEDCASE=4156078855,IFCWALLSTANDARDCASE=3512223829,IFCWALLTYPE=1898987631,IFCWASTETERMINAL=4237592921,IFCWASTETERMINALTYPE=1133259667,IFCWINDOW=3304561284,IFCWINDOWLININGPROPERTIES=336235671,IFCWINDOWPANELPROPERTIES=512836454,IFCWINDOWSTANDARDCASE=486154966,IFCWINDOWSTYLE=1299126871,IFCWINDOWTYPE=4009809668,IFCWORKCALENDAR=4088093105,IFCWORKCONTROL=1028945134,IFCWORKPLAN=4218914973,IFCWORKSCHEDULE=3342526732,IFCWORKTIME=1236880293,IFCZSHAPEPROFILEDEF=2543172580,IFCZONE=1033361043,FromRawLineData={};FromRawLineData[IFCACTIONREQUEST]=t=>{var e=nz;return IfcActionRequest.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCACTOR]=t=>{var e=nz;return IfcActor[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCACTORROLE]=t=>{var e=nz;return IfcActorRole.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCACTUATOR]=t=>{var e=nz;return IfcActuator.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCACTUATORTYPE]=t=>{var e=nz;return IfcActuatorType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCADDRESS]=t=>{var e=nz;return IfcAddress.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCADVANCEDBREP]=t=>{var e=nz;return IfcAdvancedBrep[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCADVANCEDBREPWITHVOIDS]=t=>{var e=nz;return IfcAdvancedBrepWithVoids[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCADVANCEDFACE]=t=>{var e=nz;return IfcAdvancedFace.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCAIRTERMINAL]=t=>{var e=nz;return IfcAirTerminal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAIRTERMINALBOX]=t=>{var e=nz;return IfcAirTerminalBox.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAIRTERMINALBOXTYPE]=t=>{var e=nz;return IfcAirTerminalBoxType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCAIRTERMINALTYPE]=t=>{var e=nz;return IfcAirTerminalType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCAIRTOAIRHEATRECOVERY]=t=>IfcAirToAirHeatRecovery[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCAIRTOAIRHEATRECOVERYTYPE]=t=>{var e=nz;return IfcAirToAirHeatRecoveryType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCALARM]=t=>{var e=nz;return IfcAlarm.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCALARMTYPE]=t=>{var e=nz;return IfcAlarmType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCALIGNMENT]=t=>{var e=nz;return IfcAlignment[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCALIGNMENT2DHORIZONTAL]=t=>{var e=nz;return IfcAlignment2DHorizontal[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCALIGNMENT2DHORIZONTALSEGMENT]=t=>{var e=nz;return IfcAlignment2DHorizontalSegment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCALIGNMENT2DSEGMENT]=t=>{var e=nz;return IfcAlignment2DSegment[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCALIGNMENT2DVERSEGCIRCULARARC]=t=>{var e=nz;return IfcAlignment2DVerSegCircularArc.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCALIGNMENT2DVERSEGLINE]=t=>{var e=nz;return IfcAlignment2DVerSegLine[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCALIGNMENT2DVERSEGPARABOLICARC]=t=>{var e=nz;return IfcAlignment2DVerSegParabolicArc[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCALIGNMENT2DVERTICAL]=t=>IfcAlignment2DVertical[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCALIGNMENT2DVERTICALSEGMENT]=t=>{var e=nz;return IfcAlignment2DVerticalSegment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCALIGNMENTCURVE]=t=>{var e=nz;return IfcAlignmentCurve[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCANNOTATION]=t=>{var e=nz;return IfcAnnotation[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCANNOTATIONFILLAREA]=t=>{var e=nz;return IfcAnnotationFillArea[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAPPLICATION]=t=>{var e=nz;return IfcApplication[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAPPLIEDVALUE]=t=>{var e=nz;return IfcAppliedValue.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAPPROVAL]=t=>{var e=nz;return IfcApproval[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAPPROVALRELATIONSHIP]=t=>{var e=nz;return IfcApprovalRelationship[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCARBITRARYCLOSEDPROFILEDEF]=t=>{var e=nz;return IfcArbitraryClosedProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCARBITRARYOPENPROFILEDEF]=t=>{var e=nz;return IfcArbitraryOpenProfileDef.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCARBITRARYPROFILEDEFWITHVOIDS]=t=>{var e=nz;return IfcArbitraryProfileDefWithVoids.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCASSET]=t=>{var e=nz;return IfcAsset[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCASYMMETRICISHAPEPROFILEDEF]=t=>{var e=nz;return IfcAsymmetricIShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAUDIOVISUALAPPLIANCE]=t=>{var e=nz;return IfcAudioVisualAppliance[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAUDIOVISUALAPPLIANCETYPE]=t=>{var e=nz;return IfcAudioVisualApplianceType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCAXIS1PLACEMENT]=t=>{var e=nz;return IfcAxis1Placement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAXIS2PLACEMENT2D]=t=>{var e=nz;return IfcAxis2Placement2D[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCAXIS2PLACEMENT3D]=t=>{var e=nz;return IfcAxis2Placement3D[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBSPLINECURVE]=t=>{var e=nz;return IfcBSplineCurve.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBSPLINECURVEWITHKNOTS]=t=>{var e=nz;return IfcBSplineCurveWithKnots[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBSPLINESURFACE]=t=>{var e=nz;return IfcBSplineSurface[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBSPLINESURFACEWITHKNOTS]=t=>{var e=nz;return IfcBSplineSurfaceWithKnots.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBEAM]=t=>IfcBeam[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCBEAMSTANDARDCASE]=t=>{var e=nz;return IfcBeamStandardCase[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBEAMTYPE]=t=>{var e=nz;return IfcBeamType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBEARING]=t=>{var e=nz;return IfcBearing.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBEARINGTYPE]=t=>IfcBearingType[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCBLOBTEXTURE]=t=>{var e=nz;return IfcBlobTexture[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBLOCK]=t=>{var e=nz;return IfcBlock[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBOILER]=t=>{var e=nz;return IfcBoiler[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBOILERTYPE]=t=>{var e=nz;return IfcBoilerType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOOLEANCLIPPINGRESULT]=t=>IfcBooleanClippingResult[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCBOOLEANRESULT]=t=>{var e=nz;return IfcBooleanResult.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOUNDARYCONDITION]=t=>{var e=nz;return IfcBoundaryCondition[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOUNDARYCURVE]=t=>{var e=nz;return IfcBoundaryCurve.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBOUNDARYEDGECONDITION]=t=>{var e=nz;return IfcBoundaryEdgeCondition[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOUNDARYFACECONDITION]=t=>{var e=nz;return IfcBoundaryFaceCondition[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBOUNDARYNODECONDITION]=t=>{var e=nz;return IfcBoundaryNodeCondition[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCBOUNDARYNODECONDITIONWARPING]=t=>{var e=nz;return IfcBoundaryNodeConditionWarping.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBOUNDEDCURVE]=t=>{var e=nz;return IfcBoundedCurve[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOUNDEDSURFACE]=t=>{var e=nz;return IfcBoundedSurface.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBOUNDINGBOX]=t=>{var e=nz;return IfcBoundingBox.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBOXEDHALFSPACE]=t=>{var e=nz;return IfcBoxedHalfSpace[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBRIDGE]=t=>{var e=nz;return IfcBridge[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBRIDGEPART]=t=>{var e=nz;return IfcBridgePart[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBUILDING]=t=>{var e=nz;return IfcBuilding[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGELEMENT]=t=>{var e=nz;return IfcBuildingElement.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBUILDINGELEMENTPART]=t=>{var e=nz;return IfcBuildingElementPart[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGELEMENTPARTTYPE]=t=>{var e=nz;return IfcBuildingElementPartType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGELEMENTPROXY]=t=>{var e=nz;return IfcBuildingElementProxy[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGELEMENTPROXYTYPE]=t=>{var e=nz;return IfcBuildingElementProxyType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGELEMENTTYPE]=t=>{var e=nz;return IfcBuildingElementType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGSTOREY]=t=>{var e=nz;return IfcBuildingStorey[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBUILDINGSYSTEM]=t=>{var e=nz;return IfcBuildingSystem[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCBURNER]=t=>{var e=nz;return IfcBurner.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCBURNERTYPE]=t=>{var e=nz;return IfcBurnerType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCSHAPEPROFILEDEF]=t=>{var e=nz;return IfcCShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCABLECARRIERFITTING]=t=>{var e=nz;return IfcCableCarrierFitting[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCABLECARRIERFITTINGTYPE]=t=>{var e=nz;return IfcCableCarrierFittingType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCABLECARRIERSEGMENT]=t=>{var e=nz;return IfcCableCarrierSegment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCABLECARRIERSEGMENTTYPE]=t=>{var e=nz;return IfcCableCarrierSegmentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCABLEFITTING]=t=>IfcCableFitting[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCCABLEFITTINGTYPE]=t=>{var e=nz;return IfcCableFittingType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCABLESEGMENT]=t=>{var e=nz;return IfcCableSegment.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCABLESEGMENTTYPE]=t=>{var e=nz;return IfcCableSegmentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCAISSONFOUNDATION]=t=>{var e=nz;return IfcCaissonFoundation.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCAISSONFOUNDATIONTYPE]=t=>{var e=nz;return IfcCaissonFoundationType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCARTESIANPOINT]=t=>{var e=nz;return IfcCartesianPoint[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCARTESIANPOINTLIST]=t=>{var e=nz;return IfcCartesianPointList[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCARTESIANPOINTLIST2D]=t=>{var e=nz;return IfcCartesianPointList2D[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCARTESIANPOINTLIST3D]=t=>{var e=nz;return IfcCartesianPointList3D[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR]=t=>{var e=nz;return IfcCartesianTransformationOperator[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR2D]=t=>{var e=nz;return IfcCartesianTransformationOperator2D[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM]=t=>{var e=nz;return IfcCartesianTransformationOperator2DnonUniform[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR3D]=t=>{var e=nz;return IfcCartesianTransformationOperator3D.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM]=t=>{var e=nz;return IfcCartesianTransformationOperator3DnonUniform[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCENTERLINEPROFILEDEF]=t=>{var e=nz;return IfcCenterLineProfileDef.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCHILLER]=t=>{var e=nz;return IfcChiller[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCHILLERTYPE]=t=>{var e=nz;return IfcChillerType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCHIMNEY]=t=>{var e=nz;return IfcChimney[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCHIMNEYTYPE]=t=>{var e=nz;return IfcChimneyType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCIRCLE]=t=>{var e=nz;return IfcCircle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCIRCLEHOLLOWPROFILEDEF]=t=>{var e=nz;return IfcCircleHollowProfileDef.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCIRCLEPROFILEDEF]=t=>{var e=nz;return IfcCircleProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCIRCULARARCSEGMENT2D]=t=>{var e=nz;return IfcCircularArcSegment2D[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCIVILELEMENT]=t=>{var e=nz;return IfcCivilElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCIVILELEMENTTYPE]=t=>{var e=nz;return IfcCivilElementType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCLASSIFICATION]=t=>{var e=nz;return IfcClassification[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCLASSIFICATIONREFERENCE]=t=>{var e=nz;return IfcClassificationReference.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCLOSEDSHELL]=t=>{var e=nz;return IfcClosedShell.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOIL]=t=>{var e=nz;return IfcCoil[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOILTYPE]=t=>{var e=nz;return IfcCoilType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLOURRGB]=t=>{var e=nz;return IfcColourRgb[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLOURRGBLIST]=t=>{var e=nz;return IfcColourRgbList.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLOURSPECIFICATION]=t=>{var e=nz;return IfcColourSpecification[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLUMN]=t=>{var e=nz;return IfcColumn[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLUMNSTANDARDCASE]=t=>{var e=nz;return IfcColumnStandardCase.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOLUMNTYPE]=t=>{var e=nz;return IfcColumnType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOMMUNICATIONSAPPLIANCE]=t=>{var e=nz;return IfcCommunicationsAppliance.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOMMUNICATIONSAPPLIANCETYPE]=t=>{var e=nz;return IfcCommunicationsApplianceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOMPLEXPROPERTY]=t=>{var e=nz;return IfcComplexProperty[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCOMPLEXPROPERTYTEMPLATE]=t=>{var e=nz;return IfcComplexPropertyTemplate[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOMPOSITECURVE]=t=>{var e=nz;return IfcCompositeCurve[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOMPOSITECURVEONSURFACE]=t=>{var e=nz;return IfcCompositeCurveOnSurface[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOMPOSITECURVESEGMENT]=t=>{var e=nz;return IfcCompositeCurveSegment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOMPOSITEPROFILEDEF]=t=>{var e=nz;return IfcCompositeProfileDef[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOMPRESSOR]=t=>{var e=nz;return IfcCompressor.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOMPRESSORTYPE]=t=>{var e=nz;return IfcCompressorType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONDENSER]=t=>{var e=nz;return IfcCondenser[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCONDENSERTYPE]=t=>{var e=nz;return IfcCondenserType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCONIC]=t=>{var e=nz;return IfcConic.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONNECTEDFACESET]=t=>{var e=nz;return IfcConnectedFaceSet.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONNECTIONCURVEGEOMETRY]=t=>{var e=nz;return IfcConnectionCurveGeometry[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONNECTIONGEOMETRY]=t=>{var e=nz;return IfcConnectionGeometry[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONNECTIONPOINTECCENTRICITY]=t=>{var e=nz;return IfcConnectionPointEccentricity[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONNECTIONPOINTGEOMETRY]=t=>{var e=nz;return IfcConnectionPointGeometry.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONNECTIONSURFACEGEOMETRY]=t=>{var e=nz;return IfcConnectionSurfaceGeometry.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONNECTIONVOLUMEGEOMETRY]=t=>{var e=nz;return IfcConnectionVolumeGeometry[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONSTRAINT]=t=>{var e=nz;return IfcConstraint[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONEQUIPMENTRESOURCE]=t=>{var e=nz;return IfcConstructionEquipmentResource[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE]=t=>{var e=nz;return IfcConstructionEquipmentResourceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONMATERIALRESOURCE]=t=>{var e=nz;return IfcConstructionMaterialResource[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONMATERIALRESOURCETYPE]=t=>{var e=nz;return IfcConstructionMaterialResourceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONPRODUCTRESOURCE]=t=>{var e=nz;return IfcConstructionProductResource.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONPRODUCTRESOURCETYPE]=t=>{var e=nz;return IfcConstructionProductResourceType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONRESOURCE]=t=>{var e=nz;return IfcConstructionResource[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONSTRUCTIONRESOURCETYPE]=t=>{var e=nz;return IfcConstructionResourceType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONTEXT]=t=>{var e=nz;return IfcContext.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONTEXTDEPENDENTUNIT]=t=>{var e=nz;return IfcContextDependentUnit[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONTROL]=t=>{var e=nz;return IfcControl[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCONTROLLER]=t=>IfcController[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCCONTROLLERTYPE]=t=>{var e=nz;return IfcControllerType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONVERSIONBASEDUNIT]=t=>{var e=nz;return IfcConversionBasedUnit[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCONVERSIONBASEDUNITWITHOFFSET]=t=>{var e=nz;return IfcConversionBasedUnitWithOffset[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOOLEDBEAM]=t=>{var e=nz;return IfcCooledBeam[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCOOLEDBEAMTYPE]=t=>{var e=nz;return IfcCooledBeamType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOOLINGTOWER]=t=>IfcCoolingTower[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCCOOLINGTOWERTYPE]=t=>{var e=nz;return IfcCoolingTowerType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOORDINATEOPERATION]=t=>{var e=nz;return IfcCoordinateOperation.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOORDINATEREFERENCESYSTEM]=t=>{var e=nz;return IfcCoordinateReferenceSystem[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOSTITEM]=t=>{var e=nz;return IfcCostItem[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOSTSCHEDULE]=t=>{var e=nz;return IfcCostSchedule[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOSTVALUE]=t=>{var e=nz;return IfcCostValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCOVERING]=t=>{var e=nz;return IfcCovering[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCOVERINGTYPE]=t=>{var e=nz;return IfcCoveringType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCREWRESOURCE]=t=>{var e=nz;return IfcCrewResource[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCREWRESOURCETYPE]=t=>{var e=nz;return IfcCrewResourceType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCSGPRIMITIVE3D]=t=>{var e=nz;return IfcCsgPrimitive3D[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCSGSOLID]=t=>{var e=nz;return IfcCsgSolid.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCURRENCYRELATIONSHIP]=t=>{var e=nz;return IfcCurrencyRelationship[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCURTAINWALL]=t=>{var e=nz;return IfcCurtainWall.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCURTAINWALLTYPE]=t=>{var e=nz;return IfcCurtainWallType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCURVE]=t=>{var e=nz;return IfcCurve[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCURVEBOUNDEDPLANE]=t=>{var e=nz;return IfcCurveBoundedPlane[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCURVEBOUNDEDSURFACE]=t=>{var e=nz;return IfcCurveBoundedSurface[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCURVESEGMENT2D]=t=>{var e=nz;return IfcCurveSegment2D[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCURVESTYLE]=t=>{var e=nz;return IfcCurveStyle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCCURVESTYLEFONT]=t=>{var e=nz;return IfcCurveStyleFont[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCURVESTYLEFONTANDSCALING]=t=>{var e=nz;return IfcCurveStyleFontAndScaling[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCCURVESTYLEFONTPATTERN]=t=>{var e=nz;return IfcCurveStyleFontPattern[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCCYLINDRICALSURFACE]=t=>{var e=nz;return IfcCylindricalSurface.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCDAMPER]=t=>{var e=nz;return IfcDamper[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDAMPERTYPE]=t=>{var e=nz;return IfcDamperType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDEEPFOUNDATION]=t=>IfcDeepFoundation[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCDEEPFOUNDATIONTYPE]=t=>{var e=nz;return IfcDeepFoundationType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDERIVEDPROFILEDEF]=t=>{var e=nz;return IfcDerivedProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDERIVEDUNIT]=t=>{var e=nz;return IfcDerivedUnit.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDERIVEDUNITELEMENT]=t=>{var e=nz;return IfcDerivedUnitElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDIMENSIONALEXPONENTS]=t=>{var e=nz;return IfcDimensionalExponents[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDIRECTION]=t=>IfcDirection[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCDISCRETEACCESSORY]=t=>{var e=nz;return IfcDiscreteAccessory[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCDISCRETEACCESSORYTYPE]=t=>{var e=nz;return IfcDiscreteAccessoryType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTANCEEXPRESSION]=t=>{var e=nz;return IfcDistanceExpression.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONCHAMBERELEMENT]=t=>{var e=nz;return IfcDistributionChamberElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONCHAMBERELEMENTTYPE]=t=>{var e=nz;return IfcDistributionChamberElementType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCDISTRIBUTIONCIRCUIT]=t=>{var e=nz;return IfcDistributionCircuit[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONCONTROLELEMENT]=t=>{var e=nz;return IfcDistributionControlElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONCONTROLELEMENTTYPE]=t=>{var e=nz;return IfcDistributionControlElementType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONELEMENT]=t=>{var e=nz;return IfcDistributionElement.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONELEMENTTYPE]=t=>{var e=nz;return IfcDistributionElementType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONFLOWELEMENT]=t=>IfcDistributionFlowElement[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCDISTRIBUTIONFLOWELEMENTTYPE]=t=>{var e=nz;return IfcDistributionFlowElementType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONPORT]=t=>{var e=nz;return IfcDistributionPort.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDISTRIBUTIONSYSTEM]=t=>{var e=nz;return IfcDistributionSystem[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDOCUMENTINFORMATION]=t=>{var e=nz;return IfcDocumentInformation[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDOCUMENTINFORMATIONRELATIONSHIP]=t=>{var e=nz;return IfcDocumentInformationRelationship[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDOCUMENTREFERENCE]=t=>{var e=nz;return IfcDocumentReference.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDOOR]=t=>{var e=nz;return IfcDoor[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDOORLININGPROPERTIES]=t=>{var e=nz;return IfcDoorLiningProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDOORPANELPROPERTIES]=t=>{var e=nz;return IfcDoorPanelProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDOORSTANDARDCASE]=t=>{var e=nz;return IfcDoorStandardCase[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCDOORSTYLE]=t=>{var e=nz;return IfcDoorStyle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDOORTYPE]=t=>{var e=nz;return IfcDoorType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDRAUGHTINGPREDEFINEDCOLOUR]=t=>{var e=nz;return IfcDraughtingPreDefinedColour.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDRAUGHTINGPREDEFINEDCURVEFONT]=t=>{var e=nz;return IfcDraughtingPreDefinedCurveFont.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDUCTFITTING]=t=>{var e=nz;return IfcDuctFitting.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDUCTFITTINGTYPE]=t=>{var e=nz;return IfcDuctFittingType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDUCTSEGMENT]=t=>{var e=nz;return IfcDuctSegment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCDUCTSEGMENTTYPE]=t=>{var e=nz;return IfcDuctSegmentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDUCTSILENCER]=t=>{var e=nz;return IfcDuctSilencer[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCDUCTSILENCERTYPE]=t=>{var e=nz;return IfcDuctSilencerType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCEDGE]=t=>{var e=nz;return IfcEdge[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEDGECURVE]=t=>{var e=nz;return IfcEdgeCurve[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEDGELOOP]=t=>{var e=nz;return IfcEdgeLoop[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCELECTRICAPPLIANCE]=t=>{var e=nz;return IfcElectricAppliance[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELECTRICAPPLIANCETYPE]=t=>{var e=nz;return IfcElectricApplianceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICDISTRIBUTIONBOARD]=t=>IfcElectricDistributionBoard[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCELECTRICDISTRIBUTIONBOARDTYPE]=t=>{var e=nz;return IfcElectricDistributionBoardType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELECTRICFLOWSTORAGEDEVICE]=t=>{var e=nz;return IfcElectricFlowStorageDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICFLOWSTORAGEDEVICETYPE]=t=>{var e=nz;return IfcElectricFlowStorageDeviceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICGENERATOR]=t=>{var e=nz;return IfcElectricGenerator.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICGENERATORTYPE]=t=>{var e=nz;return IfcElectricGeneratorType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELECTRICMOTOR]=t=>{var e=nz;return IfcElectricMotor.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICMOTORTYPE]=t=>{var e=nz;return IfcElectricMotorType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELECTRICTIMECONTROL]=t=>{var e=nz;return IfcElectricTimeControl[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELECTRICTIMECONTROLTYPE]=t=>{var e=nz;return IfcElectricTimeControlType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELEMENT]=t=>{var e=nz;return IfcElement.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCELEMENTASSEMBLY]=t=>{var e=nz;return IfcElementAssembly.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCELEMENTASSEMBLYTYPE]=t=>{var e=nz;return IfcElementAssemblyType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELEMENTCOMPONENT]=t=>{var e=nz;return IfcElementComponent[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELEMENTCOMPONENTTYPE]=t=>{var e=nz;return IfcElementComponentType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELEMENTQUANTITY]=t=>{var e=nz;return IfcElementQuantity[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCELEMENTTYPE]=t=>{var e=nz;return IfcElementType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELEMENTARYSURFACE]=t=>{var e=nz;return IfcElementarySurface[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELLIPSE]=t=>{var e=nz;return IfcEllipse.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCELLIPSEPROFILEDEF]=t=>{var e=nz;return IfcEllipseProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCENERGYCONVERSIONDEVICE]=t=>{var e=nz;return IfcEnergyConversionDevice.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCENERGYCONVERSIONDEVICETYPE]=t=>{var e=nz;return IfcEnergyConversionDeviceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCENGINE]=t=>{var e=nz;return IfcEngine[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCENGINETYPE]=t=>{var e=nz;return IfcEngineType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEVAPORATIVECOOLER]=t=>{var e=nz;return IfcEvaporativeCooler.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEVAPORATIVECOOLERTYPE]=t=>{var e=nz;return IfcEvaporativeCoolerType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCEVAPORATOR]=t=>{var e=nz;return IfcEvaporator[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEVAPORATORTYPE]=t=>{var e=nz;return IfcEvaporatorType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCEVENT]=t=>{var e=nz;return IfcEvent[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEVENTTIME]=t=>{var e=nz;return IfcEventTime.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEVENTTYPE]=t=>{var e=nz;return IfcEventType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTENDEDPROPERTIES]=t=>{var e=nz;return IfcExtendedProperties.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTERNALINFORMATION]=t=>{var e=nz;return IfcExternalInformation.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTERNALREFERENCE]=t=>{var e=nz;return IfcExternalReference.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTERNALREFERENCERELATIONSHIP]=t=>{var e=nz;return IfcExternalReferenceRelationship.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCEXTERNALSPATIALELEMENT]=t=>{var e=nz;return IfcExternalSpatialElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTERNALSPATIALSTRUCTUREELEMENT]=t=>{var e=nz;return IfcExternalSpatialStructureElement[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCEXTERNALLYDEFINEDHATCHSTYLE]=t=>{var e=nz;return IfcExternallyDefinedHatchStyle[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCEXTERNALLYDEFINEDSURFACESTYLE]=t=>{var e=nz;return IfcExternallyDefinedSurfaceStyle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTERNALLYDEFINEDTEXTFONT]=t=>{var e=nz;return IfcExternallyDefinedTextFont[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCEXTRUDEDAREASOLID]=t=>{var e=nz;return IfcExtrudedAreaSolid[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCEXTRUDEDAREASOLIDTAPERED]=t=>{var e=nz;return IfcExtrudedAreaSolidTapered[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCFACE]=t=>{var e=nz;return IfcFace[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACEBASEDSURFACEMODEL]=t=>{var e=nz;return IfcFaceBasedSurfaceModel[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFACEBOUND]=t=>{var e=nz;return IfcFaceBound[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACEOUTERBOUND]=t=>{var e=nz;return IfcFaceOuterBound[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACESURFACE]=t=>{var e=nz;return IfcFaceSurface[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACETEDBREP]=t=>{var e=nz;return IfcFacetedBrep[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACETEDBREPWITHVOIDS]=t=>{var e=nz;return IfcFacetedBrepWithVoids.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFACILITY]=t=>{var e=nz;return IfcFacility.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFACILITYPART]=t=>{var e=nz;return IfcFacilityPart.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFAILURECONNECTIONCONDITION]=t=>IfcFailureConnectionCondition[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCFAN]=t=>{var e=nz;return IfcFan[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFANTYPE]=t=>{var e=nz;return IfcFanType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFASTENER]=t=>{var e=nz;return IfcFastener[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFASTENERTYPE]=t=>{var e=nz;return IfcFastenerType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFEATUREELEMENT]=t=>{var e=nz;return IfcFeatureElement[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCFEATUREELEMENTADDITION]=t=>{var e=nz;return IfcFeatureElementAddition[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCFEATUREELEMENTSUBTRACTION]=t=>{var e=nz;return IfcFeatureElementSubtraction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFILLAREASTYLE]=t=>{var e=nz;return IfcFillAreaStyle.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFILLAREASTYLEHATCHING]=t=>{var e=nz;return IfcFillAreaStyleHatching[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFILLAREASTYLETILES]=t=>{var e=nz;return IfcFillAreaStyleTiles[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFILTER]=t=>{var e=nz;return IfcFilter[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFILTERTYPE]=t=>{var e=nz;return IfcFilterType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFIRESUPPRESSIONTERMINAL]=t=>{var e=nz;return IfcFireSuppressionTerminal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFIRESUPPRESSIONTERMINALTYPE]=t=>{var e=nz;return IfcFireSuppressionTerminalType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFIXEDREFERENCESWEPTAREASOLID]=t=>{var e=nz;return IfcFixedReferenceSweptAreaSolid[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWCONTROLLER]=t=>{var e=nz;return IfcFlowController.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWCONTROLLERTYPE]=t=>{var e=nz;return IfcFlowControllerType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWFITTING]=t=>{var e=nz;return IfcFlowFitting[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWFITTINGTYPE]=t=>{var e=nz;return IfcFlowFittingType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCFLOWINSTRUMENT]=t=>{var e=nz;return IfcFlowInstrument[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWINSTRUMENTTYPE]=t=>{var e=nz;return IfcFlowInstrumentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWMETER]=t=>{var e=nz;return IfcFlowMeter[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWMETERTYPE]=t=>{var e=nz;return IfcFlowMeterType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWMOVINGDEVICE]=t=>{var e=nz;return IfcFlowMovingDevice.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCFLOWMOVINGDEVICETYPE]=t=>{var e=nz;return IfcFlowMovingDeviceType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWSEGMENT]=t=>IfcFlowSegment[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCFLOWSEGMENTTYPE]=t=>{var e=nz;return IfcFlowSegmentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWSTORAGEDEVICE]=t=>{var e=nz;return IfcFlowStorageDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWSTORAGEDEVICETYPE]=t=>{var e=nz;return IfcFlowStorageDeviceType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWTERMINAL]=t=>{var e=nz;return IfcFlowTerminal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFLOWTERMINALTYPE]=t=>{var e=nz;return IfcFlowTerminalType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWTREATMENTDEVICE]=t=>{var e=nz;return IfcFlowTreatmentDevice[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFLOWTREATMENTDEVICETYPE]=t=>{var e=nz;return IfcFlowTreatmentDeviceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFOOTING]=t=>{var e=nz;return IfcFooting[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFOOTINGTYPE]=t=>{var e=nz;return IfcFootingType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFURNISHINGELEMENT]=t=>{var e=nz;return IfcFurnishingElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFURNISHINGELEMENTTYPE]=t=>{var e=nz;return IfcFurnishingElementType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCFURNITURE]=t=>{var e=nz;return IfcFurniture.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCFURNITURETYPE]=t=>{var e=nz;return IfcFurnitureType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCGEOGRAPHICELEMENT]=t=>{var e=nz;return IfcGeographicElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCGEOGRAPHICELEMENTTYPE]=t=>{var e=nz;return IfcGeographicElementType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCGEOMETRICCURVESET]=t=>{var e=nz;return IfcGeometricCurveSet[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCGEOMETRICREPRESENTATIONCONTEXT]=t=>IfcGeometricRepresentationContext[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCGEOMETRICREPRESENTATIONITEM]=t=>{var e=nz;return IfcGeometricRepresentationItem[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCGEOMETRICREPRESENTATIONSUBCONTEXT]=t=>{var e=nz;return IfcGeometricRepresentationSubContext.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCGEOMETRICSET]=t=>IfcGeometricSet[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCGRID]=t=>{var e=nz;return IfcGrid[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCGRIDAXIS]=t=>{var e=nz;return IfcGridAxis[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCGRIDPLACEMENT]=t=>{var e=nz;return IfcGridPlacement.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCGROUP]=t=>{var e=nz;return IfcGroup[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCHALFSPACESOLID]=t=>{var e=nz;return IfcHalfSpaceSolid[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCHEATEXCHANGER]=t=>{var e=nz;return IfcHeatExchanger[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCHEATEXCHANGERTYPE]=t=>IfcHeatExchangerType[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCHUMIDIFIER]=t=>{var e=nz;return IfcHumidifier[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCHUMIDIFIERTYPE]=t=>{var e=nz;return IfcHumidifierType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCISHAPEPROFILEDEF]=t=>{var e=nz;return IfcIShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCIMAGETEXTURE]=t=>{var e=nz;return IfcImageTexture.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCINDEXEDCOLOURMAP]=t=>{var e=nz;return IfcIndexedColourMap[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCINDEXEDPOLYCURVE]=t=>{var e=nz;return IfcIndexedPolyCurve[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCINDEXEDPOLYGONALFACE]=t=>{var e=nz;return IfcIndexedPolygonalFace[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCINDEXEDPOLYGONALFACEWITHVOIDS]=t=>{var e=nz;return IfcIndexedPolygonalFaceWithVoids.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCINDEXEDTEXTUREMAP]=t=>{var e=nz;return IfcIndexedTextureMap[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCINDEXEDTRIANGLETEXTUREMAP]=t=>{var e=nz;return IfcIndexedTriangleTextureMap[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCINTERCEPTOR]=t=>{var e=nz;return IfcInterceptor.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCINTERCEPTORTYPE]=t=>{var e=nz;return IfcInterceptorType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCINTERSECTIONCURVE]=t=>{var e=nz;return IfcIntersectionCurve[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCINVENTORY]=t=>{var e=nz;return IfcInventory.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCIRREGULARTIMESERIES]=t=>{var e=nz;return IfcIrregularTimeSeries[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCIRREGULARTIMESERIESVALUE]=t=>{var e=nz;return IfcIrregularTimeSeriesValue.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCJUNCTIONBOX]=t=>{var e=nz;return IfcJunctionBox[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCJUNCTIONBOXTYPE]=t=>IfcJunctionBoxType[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCLSHAPEPROFILEDEF]=t=>{var e=nz;return IfcLShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLABORRESOURCE]=t=>{var e=nz;return IfcLaborResource[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLABORRESOURCETYPE]=t=>{var e=nz;return IfcLaborResourceType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLAGTIME]=t=>{var e=nz;return IfcLagTime[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLAMP]=t=>{var e=nz;return IfcLamp[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCLAMPTYPE]=t=>{var e=nz;return IfcLampType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLIBRARYINFORMATION]=t=>{var e=nz;return IfcLibraryInformation[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIBRARYREFERENCE]=t=>{var e=nz;return IfcLibraryReference[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTDISTRIBUTIONDATA]=t=>{var e=nz;return IfcLightDistributionData.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTFIXTURE]=t=>{var e=nz;return IfcLightFixture[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTFIXTURETYPE]=t=>{var e=nz;return IfcLightFixtureType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTINTENSITYDISTRIBUTION]=t=>{var e=nz;return IfcLightIntensityDistribution.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLIGHTSOURCE]=t=>{var e=nz;return IfcLightSource[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTSOURCEAMBIENT]=t=>{var e=nz;return IfcLightSourceAmbient.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLIGHTSOURCEDIRECTIONAL]=t=>{var e=nz;return IfcLightSourceDirectional[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTSOURCEGONIOMETRIC]=t=>{var e=nz;return IfcLightSourceGoniometric[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLIGHTSOURCEPOSITIONAL]=t=>{var e=nz;return IfcLightSourcePositional[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLIGHTSOURCESPOT]=t=>IfcLightSourceSpot[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCLINE]=t=>{var e=nz;return IfcLine[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLINESEGMENT2D]=t=>{var e=nz;return IfcLineSegment2D[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCLINEARPLACEMENT]=t=>{var e=nz;return IfcLinearPlacement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLINEARPOSITIONINGELEMENT]=t=>{var e=nz;return IfcLinearPositioningElement.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLOCALPLACEMENT]=t=>{var e=nz;return IfcLocalPlacement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCLOOP]=t=>{var e=nz;return IfcLoop.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMANIFOLDSOLIDBREP]=t=>{var e=nz;return IfcManifoldSolidBrep[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMAPCONVERSION]=t=>{var e=nz;return IfcMapConversion.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMAPPEDITEM]=t=>{var e=nz;return IfcMappedItem.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIAL]=t=>{var e=nz;return IfcMaterial[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALCLASSIFICATIONRELATIONSHIP]=t=>{var e=nz;return IfcMaterialClassificationRelationship[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALCONSTITUENT]=t=>{var e=nz;return IfcMaterialConstituent.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALCONSTITUENTSET]=t=>{var e=nz;return IfcMaterialConstituentSet.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALDEFINITION]=t=>{var e=nz;return IfcMaterialDefinition[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALDEFINITIONREPRESENTATION]=t=>{var e=nz;return IfcMaterialDefinitionRepresentation[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMATERIALLAYER]=t=>{var e=nz;return IfcMaterialLayer[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIALLAYERSET]=t=>{var e=nz;return IfcMaterialLayerSet[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIALLAYERSETUSAGE]=t=>{var e=nz;return IfcMaterialLayerSetUsage[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMATERIALLAYERWITHOFFSETS]=t=>{var e=nz;return IfcMaterialLayerWithOffsets[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALLIST]=t=>{var e=nz;return IfcMaterialList[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALPROFILE]=t=>{var e=nz;return IfcMaterialProfile[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALPROFILESET]=t=>{var e=nz;return IfcMaterialProfileSet[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIALPROFILESETUSAGE]=t=>{var e=nz;return IfcMaterialProfileSetUsage[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMATERIALPROFILESETUSAGETAPERING]=t=>{var e=nz;return IfcMaterialProfileSetUsageTapering.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMATERIALPROFILEWITHOFFSETS]=t=>{var e=nz;return IfcMaterialProfileWithOffsets[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMATERIALPROPERTIES]=t=>{var e=nz;return IfcMaterialProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIALRELATIONSHIP]=t=>{var e=nz;return IfcMaterialRelationship[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMATERIALUSAGEDEFINITION]=t=>{var e=nz;return IfcMaterialUsageDefinition[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMEASUREWITHUNIT]=t=>{var e=nz;return IfcMeasureWithUnit.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMECHANICALFASTENER]=t=>{var e=nz;return IfcMechanicalFastener.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMECHANICALFASTENERTYPE]=t=>{var e=nz;return IfcMechanicalFastenerType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMEDICALDEVICE]=t=>{var e=nz;return IfcMedicalDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMEDICALDEVICETYPE]=t=>{var e=nz;return IfcMedicalDeviceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMEMBER]=t=>{var e=nz;return IfcMember[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMEMBERSTANDARDCASE]=t=>{var e=nz;return IfcMemberStandardCase.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMEMBERTYPE]=t=>{var e=nz;return IfcMemberType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMETRIC]=t=>IfcMetric.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCMIRROREDPROFILEDEF]=t=>{var e=nz;return IfcMirroredProfileDef.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCMONETARYUNIT]=t=>{var e=nz;return IfcMonetaryUnit.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCMOTORCONNECTION]=t=>{var e=nz;return IfcMotorConnection[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCMOTORCONNECTIONTYPE]=t=>{var e=nz;return IfcMotorConnectionType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCNAMEDUNIT]=t=>{var e=nz;return IfcNamedUnit[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOBJECT]=t=>{var e=nz;return IfcObject[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOBJECTDEFINITION]=t=>{var e=nz;return IfcObjectDefinition.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOBJECTPLACEMENT]=t=>{var e=nz;return IfcObjectPlacement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOBJECTIVE]=t=>{var e=nz;return IfcObjective[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOCCUPANT]=t=>IfcOccupant[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCOFFSETCURVE]=t=>{var e=nz;return IfcOffsetCurve.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOFFSETCURVE2D]=t=>{var e=nz;return IfcOffsetCurve2D[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCOFFSETCURVE3D]=t=>{var e=nz;return IfcOffsetCurve3D.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOFFSETCURVEBYDISTANCES]=t=>{var e=nz;return IfcOffsetCurveByDistances.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCOPENSHELL]=t=>{var e=nz;return IfcOpenShell.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOPENINGELEMENT]=t=>{var e=nz;return IfcOpeningElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOPENINGSTANDARDCASE]=t=>{var e=nz;return IfcOpeningStandardCase[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCORGANIZATION]=t=>{var e=nz;return IfcOrganization[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCORGANIZATIONRELATIONSHIP]=t=>{var e=nz;return IfcOrganizationRelationship[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCORIENTATIONEXPRESSION]=t=>{var e=nz;return IfcOrientationExpression[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCORIENTEDEDGE]=t=>{var e=nz;return IfcOrientedEdge[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCOUTERBOUNDARYCURVE]=t=>{var e=nz;return IfcOuterBoundaryCurve.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOUTLET]=t=>{var e=nz;return IfcOutlet.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOUTLETTYPE]=t=>{var e=nz;return IfcOutletType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCOWNERHISTORY]=t=>{var e=nz;return IfcOwnerHistory[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPARAMETERIZEDPROFILEDEF]=t=>{var e=nz;return IfcParameterizedProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPATH]=t=>{var e=nz;return IfcPath[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPCURVE]=t=>{var e=nz;return IfcPcurve[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPERFORMANCEHISTORY]=t=>{var e=nz;return IfcPerformanceHistory[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPERMEABLECOVERINGPROPERTIES]=t=>{var e=nz;return IfcPermeableCoveringProperties[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPERMIT]=t=>{var e=nz;return IfcPermit[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPERSON]=t=>{var e=nz;return IfcPerson[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPERSONANDORGANIZATION]=t=>{var e=nz;return IfcPersonAndOrganization[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPHYSICALCOMPLEXQUANTITY]=t=>{var e=nz;return IfcPhysicalComplexQuantity[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPHYSICALQUANTITY]=t=>{var e=nz;return IfcPhysicalQuantity[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPHYSICALSIMPLEQUANTITY]=t=>{var e=nz;return IfcPhysicalSimpleQuantity[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPILE]=t=>{var e=nz;return IfcPile[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPILETYPE]=t=>{var e=nz;return IfcPileType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPIPEFITTING]=t=>{var e=nz;return IfcPipeFitting[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPIPEFITTINGTYPE]=t=>{var e=nz;return IfcPipeFittingType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPIPESEGMENT]=t=>{var e=nz;return IfcPipeSegment[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPIPESEGMENTTYPE]=t=>{var e=nz;return IfcPipeSegmentType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPIXELTEXTURE]=t=>{var e=nz;return IfcPixelTexture.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPLACEMENT]=t=>IfcPlacement.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCPLANARBOX]=t=>{var e=nz;return IfcPlanarBox[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPLANAREXTENT]=t=>{var e=nz;return IfcPlanarExtent[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPLANE]=t=>{var e=nz;return IfcPlane[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPLATE]=t=>{var e=nz;return IfcPlate[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPLATESTANDARDCASE]=t=>{var e=nz;return IfcPlateStandardCase[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPLATETYPE]=t=>{var e=nz;return IfcPlateType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPOINT]=t=>{var e=nz;return IfcPoint[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPOINTONCURVE]=t=>{var e=nz;return IfcPointOnCurve.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPOINTONSURFACE]=t=>{var e=nz;return IfcPointOnSurface.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPOLYLOOP]=t=>{var e=nz;return IfcPolyLoop[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPOLYGONALBOUNDEDHALFSPACE]=t=>{var e=nz;return IfcPolygonalBoundedHalfSpace.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPOLYGONALFACESET]=t=>{var e=nz;return IfcPolygonalFaceSet.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPOLYLINE]=t=>{var e=nz;return IfcPolyline[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPORT]=t=>{var e=nz;return IfcPort[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPOSITIONINGELEMENT]=t=>{var e=nz;return IfcPositioningElement.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPOSTALADDRESS]=t=>{var e=nz;return IfcPostalAddress[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPREDEFINEDCOLOUR]=t=>{var e=nz;return IfcPreDefinedColour[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPREDEFINEDCURVEFONT]=t=>{var e=nz;return IfcPreDefinedCurveFont[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPREDEFINEDITEM]=t=>{var e=nz;return IfcPreDefinedItem[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPREDEFINEDPROPERTIES]=t=>{var e=nz;return IfcPreDefinedProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPREDEFINEDPROPERTYSET]=t=>{var e=nz;return IfcPreDefinedPropertySet.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPREDEFINEDTEXTFONT]=t=>{var e=nz;return IfcPreDefinedTextFont[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPRESENTATIONITEM]=t=>{var e=nz;return IfcPresentationItem[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPRESENTATIONLAYERASSIGNMENT]=t=>{var e=nz;return IfcPresentationLayerAssignment[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPRESENTATIONLAYERWITHSTYLE]=t=>{var e=nz;return IfcPresentationLayerWithStyle.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPRESENTATIONSTYLE]=t=>{var e=nz;return IfcPresentationStyle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPRESENTATIONSTYLEASSIGNMENT]=t=>{var e=nz;return IfcPresentationStyleAssignment[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROCEDURE]=t=>{var e=nz;return IfcProcedure[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROCEDURETYPE]=t=>{var e=nz;return IfcProcedureType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROCESS]=t=>{var e=nz;return IfcProcess[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPRODUCT]=t=>{var e=nz;return IfcProduct[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPRODUCTDEFINITIONSHAPE]=t=>{var e=nz;return IfcProductDefinitionShape[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPRODUCTREPRESENTATION]=t=>{var e=nz;return IfcProductRepresentation[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPROFILEDEF]=t=>IfcProfileDef[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCPROFILEPROPERTIES]=t=>IfcProfileProperties[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCPROJECT]=t=>{var e=nz;return IfcProject[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROJECTLIBRARY]=t=>{var e=nz;return IfcProjectLibrary.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROJECTORDER]=t=>{var e=nz;return IfcProjectOrder[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROJECTEDCRS]=t=>{var e=nz;return IfcProjectedCRS[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPROJECTIONELEMENT]=t=>{var e=nz;return IfcProjectionElement[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPROPERTY]=t=>{var e=nz;return IfcProperty[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYABSTRACTION]=t=>{var e=nz;return IfcPropertyAbstraction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYBOUNDEDVALUE]=t=>{var e=nz;return IfcPropertyBoundedValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYDEFINITION]=t=>{var e=nz;return IfcPropertyDefinition[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPROPERTYDEPENDENCYRELATIONSHIP]=t=>{var e=nz;return IfcPropertyDependencyRelationship[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROPERTYENUMERATEDVALUE]=t=>{var e=nz;return IfcPropertyEnumeratedValue[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROPERTYENUMERATION]=t=>{var e=nz;return IfcPropertyEnumeration.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYLISTVALUE]=t=>{var e=nz;return IfcPropertyListValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYREFERENCEVALUE]=t=>{var e=nz;return IfcPropertyReferenceValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYSET]=t=>{var e=nz;return IfcPropertySet[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYSETDEFINITION]=t=>{var e=nz;return IfcPropertySetDefinition.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCPROPERTYSETTEMPLATE]=t=>{var e=nz;return IfcPropertySetTemplate.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYSINGLEVALUE]=t=>{var e=nz;return IfcPropertySingleValue.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYTABLEVALUE]=t=>{var e=nz;return IfcPropertyTableValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROPERTYTEMPLATE]=t=>{var e=nz;return IfcPropertyTemplate[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROPERTYTEMPLATEDEFINITION]=t=>{var e=nz;return IfcPropertyTemplateDefinition[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROTECTIVEDEVICE]=t=>{var e=nz;return IfcProtectiveDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROTECTIVEDEVICETRIPPINGUNIT]=t=>{var e=nz;return IfcProtectiveDeviceTrippingUnit[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCPROTECTIVEDEVICETRIPPINGUNITTYPE]=t=>{var e=nz;return IfcProtectiveDeviceTrippingUnitType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROTECTIVEDEVICETYPE]=t=>{var e=nz;return IfcProtectiveDeviceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPROXY]=t=>{var e=nz;return IfcProxy[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPUMP]=t=>{var e=nz;return IfcPump[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCPUMPTYPE]=t=>{var e=nz;return IfcPumpType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCQUANTITYAREA]=t=>IfcQuantityArea[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCQUANTITYCOUNT]=t=>{var e=nz;return IfcQuantityCount[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCQUANTITYLENGTH]=t=>{var e=nz;return IfcQuantityLength.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCQUANTITYSET]=t=>{var e=nz;return IfcQuantitySet[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCQUANTITYTIME]=t=>{var e=nz;return IfcQuantityTime[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCQUANTITYVOLUME]=t=>IfcQuantityVolume[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCQUANTITYWEIGHT]=t=>{var e=nz;return IfcQuantityWeight[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRAILING]=t=>{var e=nz;return IfcRailing[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRAILINGTYPE]=t=>{var e=nz;return IfcRailingType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRAMP]=t=>{var e=nz;return IfcRamp[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRAMPFLIGHT]=t=>{var e=nz;return IfcRampFlight[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRAMPFLIGHTTYPE]=t=>{var e=nz;return IfcRampFlightType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRAMPTYPE]=t=>{var e=nz;return IfcRampType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRATIONALBSPLINECURVEWITHKNOTS]=t=>{var e=nz;return IfcRationalBSplineCurveWithKnots[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRATIONALBSPLINESURFACEWITHKNOTS]=t=>{var e=nz;return IfcRationalBSplineSurfaceWithKnots[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRECTANGLEHOLLOWPROFILEDEF]=t=>{var e=nz;return IfcRectangleHollowProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRECTANGLEPROFILEDEF]=t=>{var e=nz;return IfcRectangleProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRECTANGULARPYRAMID]=t=>{var e=nz;return IfcRectangularPyramid[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRECTANGULARTRIMMEDSURFACE]=t=>IfcRectangularTrimmedSurface[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCRECURRENCEPATTERN]=t=>{var e=nz;return IfcRecurrencePattern.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCREFERENCE]=t=>{var e=nz;return IfcReference[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCREFERENT]=t=>{var e=nz;return IfcReferent.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCREGULARTIMESERIES]=t=>{var e=nz;return IfcRegularTimeSeries[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREINFORCEMENTBARPROPERTIES]=t=>{var e=nz;return IfcReinforcementBarProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCREINFORCEMENTDEFINITIONPROPERTIES]=t=>{var e=nz;return IfcReinforcementDefinitionProperties[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCREINFORCINGBAR]=t=>{var e=nz;return IfcReinforcingBar[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCREINFORCINGBARTYPE]=t=>{var e=nz;return IfcReinforcingBarType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREINFORCINGELEMENT]=t=>{var e=nz;return IfcReinforcingElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREINFORCINGELEMENTTYPE]=t=>{var e=nz;return IfcReinforcingElementType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREINFORCINGMESH]=t=>{var e=nz;return IfcReinforcingMesh[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREINFORCINGMESHTYPE]=t=>{var e=nz;return IfcReinforcingMeshType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELAGGREGATES]=t=>{var e=nz;return IfcRelAggregates[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELASSIGNS]=t=>{var e=nz;return IfcRelAssigns[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSIGNSTOACTOR]=t=>{var e=nz;return IfcRelAssignsToActor[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSIGNSTOCONTROL]=t=>IfcRelAssignsToControl[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCRELASSIGNSTOGROUP]=t=>{var e=nz;return IfcRelAssignsToGroup[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELASSIGNSTOGROUPBYFACTOR]=t=>{var e=nz;return IfcRelAssignsToGroupByFactor[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELASSIGNSTOPROCESS]=t=>IfcRelAssignsToProcess[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCRELASSIGNSTOPRODUCT]=t=>{var e=nz;return IfcRelAssignsToProduct.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSIGNSTORESOURCE]=t=>{var e=nz;return IfcRelAssignsToResource[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELASSOCIATES]=t=>{var e=nz;return IfcRelAssociates[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSOCIATESAPPROVAL]=t=>{var e=nz;return IfcRelAssociatesApproval[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSOCIATESCLASSIFICATION]=t=>{var e=nz;return IfcRelAssociatesClassification[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSOCIATESCONSTRAINT]=t=>{var e=nz;return IfcRelAssociatesConstraint[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSOCIATESDOCUMENT]=t=>{var e=nz;return IfcRelAssociatesDocument[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELASSOCIATESLIBRARY]=t=>{var e=nz;return IfcRelAssociatesLibrary.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELASSOCIATESMATERIAL]=t=>{var e=nz;return IfcRelAssociatesMaterial[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELCONNECTS]=t=>{var e=nz;return IfcRelConnects[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELCONNECTSELEMENTS]=t=>{var e=nz;return IfcRelConnectsElements.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELCONNECTSPATHELEMENTS]=t=>{var e=nz;return IfcRelConnectsPathElements.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELCONNECTSPORTTOELEMENT]=t=>{var e=nz;return IfcRelConnectsPortToElement[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELCONNECTSPORTS]=t=>{var e=nz;return IfcRelConnectsPorts[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELCONNECTSSTRUCTURALACTIVITY]=t=>{var e=nz;return IfcRelConnectsStructuralActivity[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELCONNECTSSTRUCTURALMEMBER]=t=>{var e=nz;return IfcRelConnectsStructuralMember.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELCONNECTSWITHECCENTRICITY]=t=>{var e=nz;return IfcRelConnectsWithEccentricity.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELCONNECTSWITHREALIZINGELEMENTS]=t=>{var e=nz;return IfcRelConnectsWithRealizingElements[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELCONTAINEDINSPATIALSTRUCTURE]=t=>{var e=nz;return IfcRelContainedInSpatialStructure[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELCOVERSBLDGELEMENTS]=t=>{var e=nz;return IfcRelCoversBldgElements[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELCOVERSSPACES]=t=>{var e=nz;return IfcRelCoversSpaces.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELDECLARES]=t=>{var e=nz;return IfcRelDeclares[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELDECOMPOSES]=t=>{var e=nz;return IfcRelDecomposes[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELDEFINES]=t=>{var e=nz;return IfcRelDefines[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELDEFINESBYOBJECT]=t=>{var e=nz;return IfcRelDefinesByObject[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELDEFINESBYPROPERTIES]=t=>{var e=nz;return IfcRelDefinesByProperties.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELDEFINESBYTEMPLATE]=t=>{var e=nz;return IfcRelDefinesByTemplate[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELDEFINESBYTYPE]=t=>{var e=nz;return IfcRelDefinesByType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELFILLSELEMENT]=t=>{var e=nz;return IfcRelFillsElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELFLOWCONTROLELEMENTS]=t=>{var e=nz;return IfcRelFlowControlElements[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELINTERFERESELEMENTS]=t=>IfcRelInterferesElements[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCRELNESTS]=t=>{var e=nz;return IfcRelNests[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELPOSITIONS]=t=>{var e=nz;return IfcRelPositions[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELPROJECTSELEMENT]=t=>{var e=nz;return IfcRelProjectsElement.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELREFERENCEDINSPATIALSTRUCTURE]=t=>{var e=nz;return IfcRelReferencedInSpatialStructure.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELSEQUENCE]=t=>{var e=nz;return IfcRelSequence[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELSERVICESBUILDINGS]=t=>{var e=nz;return IfcRelServicesBuildings[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRELSPACEBOUNDARY]=t=>{var e=nz;return IfcRelSpaceBoundary[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELSPACEBOUNDARY1STLEVEL]=t=>{var e=nz;return IfcRelSpaceBoundary1stLevel[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELSPACEBOUNDARY2NDLEVEL]=t=>{var e=nz;return IfcRelSpaceBoundary2ndLevel[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRELVOIDSELEMENT]=t=>{var e=nz;return IfcRelVoidsElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRELATIONSHIP]=t=>IfcRelationship[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCREPARAMETRISEDCOMPOSITECURVESEGMENT]=t=>{var e=nz;return IfcReparametrisedCompositeCurveSegment[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCREPRESENTATION]=t=>{var e=nz;return IfcRepresentation[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCREPRESENTATIONCONTEXT]=t=>{var e=nz;return IfcRepresentationContext.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCREPRESENTATIONITEM]=t=>{var e=nz;return IfcRepresentationItem[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREPRESENTATIONMAP]=t=>{var e=nz;return IfcRepresentationMap[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRESOURCE]=t=>{var e=nz;return IfcResource[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCRESOURCEAPPROVALRELATIONSHIP]=t=>{var e=nz;return IfcResourceApprovalRelationship[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRESOURCECONSTRAINTRELATIONSHIP]=t=>{var e=nz;return IfcResourceConstraintRelationship.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRESOURCELEVELRELATIONSHIP]=t=>{var e=nz;return IfcResourceLevelRelationship[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRESOURCETIME]=t=>{var e=nz;return IfcResourceTime.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCREVOLVEDAREASOLID]=t=>{var e=nz;return IfcRevolvedAreaSolid[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCREVOLVEDAREASOLIDTAPERED]=t=>{var e=nz;return IfcRevolvedAreaSolidTapered.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCRIGHTCIRCULARCONE]=t=>{var e=nz;return IfcRightCircularCone.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCRIGHTCIRCULARCYLINDER]=t=>{var e=nz;return IfcRightCircularCylinder[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCROOF]=t=>{var e=nz;return IfcRoof[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCROOFTYPE]=t=>{var e=nz;return IfcRoofType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCROOT]=t=>{var e=nz;return IfcRoot[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCROUNDEDRECTANGLEPROFILEDEF]=t=>{var e=nz;return IfcRoundedRectangleProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSIUNIT]=t=>IfcSIUnit[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCSANITARYTERMINAL]=t=>{var e=nz;return IfcSanitaryTerminal.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSANITARYTERMINALTYPE]=t=>{var e=nz;return IfcSanitaryTerminalType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSCHEDULINGTIME]=t=>{var e=nz;return IfcSchedulingTime.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSEAMCURVE]=t=>{var e=nz;return IfcSeamCurve.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSECTIONPROPERTIES]=t=>{var e=nz;return IfcSectionProperties[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSECTIONREINFORCEMENTPROPERTIES]=t=>{var e=nz;return IfcSectionReinforcementProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSECTIONEDSOLID]=t=>{var e=nz;return IfcSectionedSolid[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSECTIONEDSOLIDHORIZONTAL]=t=>{var e=nz;return IfcSectionedSolidHorizontal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSECTIONEDSPINE]=t=>{var e=nz;return IfcSectionedSpine[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSENSOR]=t=>{var e=nz;return IfcSensor[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSENSORTYPE]=t=>{var e=nz;return IfcSensorType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSHADINGDEVICE]=t=>{var e=nz;return IfcShadingDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSHADINGDEVICETYPE]=t=>{var e=nz;return IfcShadingDeviceType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSHAPEASPECT]=t=>{var e=nz;return IfcShapeAspect[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSHAPEMODEL]=t=>{var e=nz;return IfcShapeModel[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSHAPEREPRESENTATION]=t=>{var e=nz;return IfcShapeRepresentation.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSHELLBASEDSURFACEMODEL]=t=>{var e=nz;return IfcShellBasedSurfaceModel.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSIMPLEPROPERTY]=t=>{var e=nz;return IfcSimpleProperty[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSIMPLEPROPERTYTEMPLATE]=t=>{var e=nz;return IfcSimplePropertyTemplate.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSITE]=t=>{var e=nz;return IfcSite[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSLAB]=t=>{var e=nz;return IfcSlab[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSLABELEMENTEDCASE]=t=>{var e=nz;return IfcSlabElementedCase.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSLABSTANDARDCASE]=t=>{var e=nz;return IfcSlabStandardCase[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSLABTYPE]=t=>{var e=nz;return IfcSlabType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSLIPPAGECONNECTIONCONDITION]=t=>{var e=nz;return IfcSlippageConnectionCondition.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSOLARDEVICE]=t=>{var e=nz;return IfcSolarDevice.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSOLARDEVICETYPE]=t=>IfcSolarDeviceType.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCSOLIDMODEL]=t=>{var e=nz;return IfcSolidModel[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPACE]=t=>{var e=nz;return IfcSpace[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPACEHEATER]=t=>{var e=nz;return IfcSpaceHeater[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSPACEHEATERTYPE]=t=>{var e=nz;return IfcSpaceHeaterType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPACETYPE]=t=>{var e=nz;return IfcSpaceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPATIALELEMENT]=t=>{var e=nz;return IfcSpatialElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPATIALELEMENTTYPE]=t=>{var e=nz;return IfcSpatialElementType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSPATIALSTRUCTUREELEMENT]=t=>{var e=nz;return IfcSpatialStructureElement.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSPATIALSTRUCTUREELEMENTTYPE]=t=>{var e=nz;return IfcSpatialStructureElementType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSPATIALZONE]=t=>{var e=nz;return IfcSpatialZone[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSPATIALZONETYPE]=t=>{var e=nz;return IfcSpatialZoneType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSPHERE]=t=>{var e=nz;return IfcSphere[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSPHERICALSURFACE]=t=>{var e=nz;return IfcSphericalSurface.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTACKTERMINAL]=t=>{var e=nz;return IfcStackTerminal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTACKTERMINALTYPE]=t=>{var e=nz;return IfcStackTerminalType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTAIR]=t=>IfcStair[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCSTAIRFLIGHT]=t=>{var e=nz;return IfcStairFlight[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTAIRFLIGHTTYPE]=t=>{var e=nz;return IfcStairFlightType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTAIRTYPE]=t=>{var e=nz;return IfcStairType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALACTION]=t=>{var e=nz;return IfcStructuralAction.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALACTIVITY]=t=>{var e=nz;return IfcStructuralActivity[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALANALYSISMODEL]=t=>{var e=nz;return IfcStructuralAnalysisModel.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCONNECTION]=t=>{var e=nz;return IfcStructuralConnection[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCONNECTIONCONDITION]=t=>{var e=nz;return IfcStructuralConnectionCondition.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALCURVEACTION]=t=>{var e=nz;return IfcStructuralCurveAction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCURVECONNECTION]=t=>{var e=nz;return IfcStructuralCurveConnection[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCURVEMEMBER]=t=>{var e=nz;return IfcStructuralCurveMember[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCURVEMEMBERVARYING]=t=>{var e=nz;return IfcStructuralCurveMemberVarying[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALCURVEREACTION]=t=>{var e=nz;return IfcStructuralCurveReaction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALITEM]=t=>{var e=nz;return IfcStructuralItem.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLINEARACTION]=t=>{var e=nz;return IfcStructuralLinearAction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOAD]=t=>{var e=nz;return IfcStructuralLoad[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADCASE]=t=>IfcStructuralLoadCase.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCSTRUCTURALLOADCONFIGURATION]=t=>{var e=nz;return IfcStructuralLoadConfiguration[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADGROUP]=t=>{var e=nz;return IfcStructuralLoadGroup.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADLINEARFORCE]=t=>{var e=nz;return IfcStructuralLoadLinearForce[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALLOADORRESULT]=t=>{var e=nz;return IfcStructuralLoadOrResult.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADPLANARFORCE]=t=>{var e=nz;return IfcStructuralLoadPlanarForce.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALLOADSINGLEDISPLACEMENT]=t=>{var e=nz;return IfcStructuralLoadSingleDisplacement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION]=t=>{var e=nz;return IfcStructuralLoadSingleDisplacementDistortion[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALLOADSINGLEFORCE]=t=>{var e=nz;return IfcStructuralLoadSingleForce[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADSINGLEFORCEWARPING]=t=>IfcStructuralLoadSingleForceWarping[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCSTRUCTURALLOADSTATIC]=t=>{var e=nz;return IfcStructuralLoadStatic[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALLOADTEMPERATURE]=t=>{var e=nz;return IfcStructuralLoadTemperature[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALMEMBER]=t=>{var e=nz;return IfcStructuralMember[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALPLANARACTION]=t=>{var e=nz;return IfcStructuralPlanarAction[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALPOINTACTION]=t=>IfcStructuralPointAction.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCSTRUCTURALPOINTCONNECTION]=t=>{var e=nz;return IfcStructuralPointConnection.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALPOINTREACTION]=t=>{var e=nz;return IfcStructuralPointReaction[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTRUCTURALREACTION]=t=>{var e=nz;return IfcStructuralReaction[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALRESULTGROUP]=t=>{var e=nz;return IfcStructuralResultGroup[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALSURFACEACTION]=t=>{var e=nz;return IfcStructuralSurfaceAction[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALSURFACECONNECTION]=t=>{var e=nz;return IfcStructuralSurfaceConnection[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALSURFACEMEMBER]=t=>{var e=nz;return IfcStructuralSurfaceMember[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTRUCTURALSURFACEMEMBERVARYING]=t=>{var e=nz;return IfcStructuralSurfaceMemberVarying[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSTRUCTURALSURFACEREACTION]=t=>{var e=nz;return IfcStructuralSurfaceReaction.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTYLEMODEL]=t=>{var e=nz;return IfcStyleModel[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSTYLEDITEM]=t=>{var e=nz;return IfcStyledItem[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSTYLEDREPRESENTATION]=t=>{var e=nz;return IfcStyledRepresentation[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSUBCONTRACTRESOURCE]=t=>{var e=nz;return IfcSubContractResource.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSUBCONTRACTRESOURCETYPE]=t=>{var e=nz;return IfcSubContractResourceType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSUBEDGE]=t=>{var e=nz;return IfcSubedge[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACE]=t=>{var e=nz;return IfcSurface[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACECURVE]=t=>{var e=nz;return IfcSurfaceCurve[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSURFACECURVESWEPTAREASOLID]=t=>{var e=nz;return IfcSurfaceCurveSweptAreaSolid.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSURFACEFEATURE]=t=>{var e=nz;return IfcSurfaceFeature.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACEOFLINEAREXTRUSION]=t=>{var e=nz;return IfcSurfaceOfLinearExtrusion[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACEOFREVOLUTION]=t=>{var e=nz;return IfcSurfaceOfRevolution.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACEREINFORCEMENTAREA]=t=>{var e=nz;return IfcSurfaceReinforcementArea[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSURFACESTYLE]=t=>IfcSurfaceStyle.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCSURFACESTYLELIGHTING]=t=>{var e=nz;return IfcSurfaceStyleLighting.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSURFACESTYLEREFRACTION]=t=>{var e=nz;return IfcSurfaceStyleRefraction.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSURFACESTYLERENDERING]=t=>{var e=nz;return IfcSurfaceStyleRendering[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACESTYLESHADING]=t=>{var e=nz;return IfcSurfaceStyleShading[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACESTYLEWITHTEXTURES]=t=>{var e=nz;return IfcSurfaceStyleWithTextures[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSURFACETEXTURE]=t=>{var e=nz;return IfcSurfaceTexture[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSWEPTAREASOLID]=t=>{var e=nz;return IfcSweptAreaSolid[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSWEPTDISKSOLID]=t=>IfcSweptDiskSolid[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCSWEPTDISKSOLIDPOLYGONAL]=t=>{var e=nz;return IfcSweptDiskSolidPolygonal[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSWEPTSURFACE]=t=>{var e=nz;return IfcSweptSurface.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSWITCHINGDEVICE]=t=>{var e=nz;return IfcSwitchingDevice[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCSWITCHINGDEVICETYPE]=t=>{var e=nz;return IfcSwitchingDeviceType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSYSTEM]=t=>{var e=nz;return IfcSystem[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCSYSTEMFURNITUREELEMENT]=t=>{var e=nz;return IfcSystemFurnitureElement[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCSYSTEMFURNITUREELEMENTTYPE]=t=>{var e=nz;return IfcSystemFurnitureElementType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTSHAPEPROFILEDEF]=t=>{var e=nz;return IfcTShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTABLE]=t=>{var e=nz;return IfcTable[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTABLECOLUMN]=t=>{var e=nz;return IfcTableColumn[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTABLEROW]=t=>IfcTableRow[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCTANK]=t=>{var e=nz;return IfcTank[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTANKTYPE]=t=>{var e=nz;return IfcTankType.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTASK]=t=>{var e=nz;return IfcTask[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTASKTIME]=t=>{var e=nz;return IfcTaskTime[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTASKTIMERECURRING]=t=>{var e=nz;return IfcTaskTimeRecurring[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTASKTYPE]=t=>{var e=nz;return IfcTaskType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTELECOMADDRESS]=t=>{var e=nz;return IfcTelecomAddress.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTENDON]=t=>{var e=nz;return IfcTendon.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTENDONANCHOR]=t=>{var e=nz;return IfcTendonAnchor[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTENDONANCHORTYPE]=t=>{var e=nz;return IfcTendonAnchorType[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTENDONCONDUIT]=t=>{var e=nz;return IfcTendonConduit.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTENDONCONDUITTYPE]=t=>{var e=nz;return IfcTendonConduitType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTENDONTYPE]=t=>{var e=nz;return IfcTendonType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTESSELLATEDFACESET]=t=>{var e=nz;return IfcTessellatedFaceSet[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTESSELLATEDITEM]=t=>{var e=nz;return IfcTessellatedItem[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTEXTLITERAL]=t=>{var e=nz;return IfcTextLiteral[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTEXTLITERALWITHEXTENT]=t=>{var e=nz;return IfcTextLiteralWithExtent[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTEXTSTYLE]=t=>{var e=nz;return IfcTextStyle.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTEXTSTYLEFONTMODEL]=t=>{var e=nz;return IfcTextStyleFontModel[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTEXTSTYLEFORDEFINEDFONT]=t=>{var e=nz;return IfcTextStyleForDefinedFont[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTEXTSTYLETEXTMODEL]=t=>{var e=nz;return IfcTextStyleTextModel[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTEXTURECOORDINATE]=t=>{var e=nz;return IfcTextureCoordinate[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTEXTURECOORDINATEGENERATOR]=t=>{var e=nz;return IfcTextureCoordinateGenerator.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTEXTUREMAP]=t=>{var e=nz;return IfcTextureMap.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTEXTUREVERTEX]=t=>{var e=nz;return IfcTextureVertex[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTEXTUREVERTEXLIST]=t=>{var e=nz;return IfcTextureVertexList[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTIMEPERIOD]=t=>{var e=nz;return IfcTimePeriod[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTIMESERIES]=t=>{var e=nz;return IfcTimeSeries[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTIMESERIESVALUE]=t=>{var e=nz;return IfcTimeSeriesValue[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTOPOLOGICALREPRESENTATIONITEM]=t=>{var e=nz;return IfcTopologicalRepresentationItem[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTOPOLOGYREPRESENTATION]=t=>{var e=nz;return IfcTopologyRepresentation.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTOROIDALSURFACE]=t=>{var e=nz;return IfcToroidalSurface[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRANSFORMER]=t=>{var e=nz;return IfcTransformer.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTRANSFORMERTYPE]=t=>{var e=nz;return IfcTransformerType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRANSITIONCURVESEGMENT2D]=t=>IfcTransitionCurveSegment2D.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCTRANSPORTELEMENT]=t=>{var e=nz;return IfcTransportElement.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTRANSPORTELEMENTTYPE]=t=>{var e=nz;return IfcTransportElementType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRAPEZIUMPROFILEDEF]=t=>{var e=nz;return IfcTrapeziumProfileDef.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRIANGULATEDFACESET]=t=>{var e=nz;return IfcTriangulatedFaceSet[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRIANGULATEDIRREGULARNETWORK]=t=>{var e=nz;return IfcTriangulatedIrregularNetwork.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTRIMMEDCURVE]=t=>{var e=nz;return IfcTrimmedCurve[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCTUBEBUNDLE]=t=>{var e=nz;return IfcTubeBundle[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTUBEBUNDLETYPE]=t=>{var e=nz;return IfcTubeBundleType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTYPEOBJECT]=t=>{var e=nz;return IfcTypeObject[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCTYPEPROCESS]=t=>{var e=nz;return IfcTypeProcess[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTYPEPRODUCT]=t=>{var e=nz;return IfcTypeProduct[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCTYPERESOURCE]=t=>{var e=nz;return IfcTypeResource[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCUSHAPEPROFILEDEF]=t=>{var e=nz;return IfcUShapeProfileDef[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCUNITASSIGNMENT]=t=>{var e=nz;return IfcUnitAssignment[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCUNITARYCONTROLELEMENT]=t=>{var e=nz;return IfcUnitaryControlElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCUNITARYCONTROLELEMENTTYPE]=t=>{var e=nz;return IfcUnitaryControlElementType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCUNITARYEQUIPMENT]=t=>{var e=nz;return IfcUnitaryEquipment[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCUNITARYEQUIPMENTTYPE]=t=>{var e=nz;return IfcUnitaryEquipmentType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVALVE]=t=>{var e=nz;return IfcValve.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCVALVETYPE]=t=>{var e=nz;return IfcValveType.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCVECTOR]=t=>{var e=nz;return IfcVector[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVERTEX]=t=>{var e=nz;return IfcVertex[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCVERTEXLOOP]=t=>{var e=nz;return IfcVertexLoop.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVERTEXPOINT]=t=>{var e=nz;return IfcVertexPoint.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVIBRATIONDAMPER]=t=>{var e=nz;return IfcVibrationDamper[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVIBRATIONDAMPERTYPE]=t=>{var e=nz;return IfcVibrationDamperType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVIBRATIONISOLATOR]=t=>{var e=nz;return IfcVibrationIsolator[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCVIBRATIONISOLATORTYPE]=t=>{var e=nz;return IfcVibrationIsolatorType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVIRTUALELEMENT]=t=>{var e=nz;return IfcVirtualElement[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCVIRTUALGRIDINTERSECTION]=t=>{var e=nz;return IfcVirtualGridIntersection.FromTape(t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCVOIDINGFEATURE]=t=>{var e=nz;return IfcVoidingFeature[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWALL]=t=>{var e=nz;return IfcWall.FromTape(t.ID,t.type,t[e(7486)])},FromRawLineData[IFCWALLELEMENTEDCASE]=t=>{var e=nz;return IfcWallElementedCase.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWALLSTANDARDCASE]=t=>{var e=nz;return IfcWallStandardCase.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWALLTYPE]=t=>{var e=nz;return IfcWallType.FromTape(t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWASTETERMINAL]=t=>{var e=nz;return IfcWasteTerminal[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWASTETERMINALTYPE]=t=>{var e=nz;return IfcWasteTerminalType[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWINDOW]=t=>{var e=nz;return IfcWindow[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWINDOWLININGPROPERTIES]=t=>{var e=nz;return IfcWindowLiningProperties[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCWINDOWPANELPROPERTIES]=t=>{var e=nz;return IfcWindowPanelProperties[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWINDOWSTANDARDCASE]=t=>{var e=nz;return IfcWindowStandardCase[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCWINDOWSTYLE]=t=>IfcWindowStyle[nz(7952)](t.ID,t.type,t.arguments),FromRawLineData[IFCWINDOWTYPE]=t=>{var e=nz;return IfcWindowType[e(7952)](t.ID,t[e(452)],t.arguments)},FromRawLineData[IFCWORKCALENDAR]=t=>{var e=nz;return IfcWorkCalendar[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWORKCONTROL]=t=>{var e=nz;return IfcWorkControl[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWORKPLAN]=t=>{var e=nz;return IfcWorkPlan[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCWORKSCHEDULE]=t=>IfcWorkSchedule.FromTape(t.ID,t.type,t.arguments),FromRawLineData[IFCWORKTIME]=t=>{var e=nz;return IfcWorkTime[e(7952)](t.ID,t.type,t[e(7486)])},FromRawLineData[IFCZSHAPEPROFILEDEF]=t=>{var e=nz;return IfcZShapeProfileDef[e(7952)](t.ID,t[e(452)],t[e(7486)])},FromRawLineData[IFCZONE]=t=>{var e=nz;return IfcZone[e(7952)](t.ID,t.type,t[e(7486)])};var IfcActionRequestTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcActionRequestTypeEnum[nz(7953)]="EMAIL",IfcActionRequestTypeEnum[nz(7954)]=nz(7954),IfcActionRequestTypeEnum.PHONE=nz(7955),IfcActionRequestTypeEnum.POST=nz(7956),IfcActionRequestTypeEnum[nz(7957)]=nz(7957),IfcActionRequestTypeEnum[nz(7958)]=nz(7958),IfcActionRequestTypeEnum.NOTDEFINED=nz(7959);var IfcActionSourceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcActionSourceTypeEnum[nz(7960)]=nz(7960),IfcActionSourceTypeEnum[nz(7961)]=nz(7961),IfcActionSourceTypeEnum[nz(7962)]=nz(7962),IfcActionSourceTypeEnum[nz(7963)]=nz(7963),IfcActionSourceTypeEnum[nz(7964)]="WIND_W",IfcActionSourceTypeEnum[nz(7965)]=nz(7965),IfcActionSourceTypeEnum[nz(7966)]=nz(7966),IfcActionSourceTypeEnum.TEMPERATURE_T=nz(7967),IfcActionSourceTypeEnum[nz(7968)]="EARTHQUAKE_E",IfcActionSourceTypeEnum[nz(7969)]=nz(7969),IfcActionSourceTypeEnum.IMPULSE=nz(7970),IfcActionSourceTypeEnum.IMPACT=nz(7971),IfcActionSourceTypeEnum.TRANSPORT="TRANSPORT",IfcActionSourceTypeEnum[nz(7972)]=nz(7972),IfcActionSourceTypeEnum[nz(7973)]=nz(7973),IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION=nz(7974),IfcActionSourceTypeEnum[nz(7975)]=nz(7975),IfcActionSourceTypeEnum[nz(7976)]="CREEP",IfcActionSourceTypeEnum.LACK_OF_FIT=nz(7977),IfcActionSourceTypeEnum.BUOYANCY=nz(7978),IfcActionSourceTypeEnum[nz(7979)]="ICE",IfcActionSourceTypeEnum[nz(7980)]=nz(7980),IfcActionSourceTypeEnum[nz(7981)]=nz(7981),IfcActionSourceTypeEnum[nz(7982)]=nz(7982),IfcActionSourceTypeEnum[nz(7983)]=nz(7983),IfcActionSourceTypeEnum[nz(7958)]=nz(7958),IfcActionSourceTypeEnum[nz(7959)]=nz(7959);var IfcActionTypeEnum=class{constructor(t){this.value=t}};IfcActionTypeEnum[nz(7984)]=nz(7984),IfcActionTypeEnum.VARIABLE_Q=nz(7985),IfcActionTypeEnum[nz(7986)]="EXTRAORDINARY_A",IfcActionTypeEnum.USERDEFINED=nz(7958),IfcActionTypeEnum[nz(7959)]=nz(7959);var IfcActuatorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcActuatorTypeEnum[nz(7987)]="ELECTRICACTUATOR",IfcActuatorTypeEnum[nz(7988)]=nz(7988),IfcActuatorTypeEnum.HYDRAULICACTUATOR=nz(7989),IfcActuatorTypeEnum[nz(7990)]=nz(7990),IfcActuatorTypeEnum.THERMOSTATICACTUATOR=nz(7991),IfcActuatorTypeEnum.USERDEFINED=nz(7958),IfcActuatorTypeEnum[nz(7959)]=nz(7959);var IfcAddressTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAddressTypeEnum[nz(7992)]="OFFICE",IfcAddressTypeEnum[nz(7993)]="SITE",IfcAddressTypeEnum[nz(7994)]=nz(7994),IfcAddressTypeEnum[nz(7995)]="DISTRIBUTIONPOINT",IfcAddressTypeEnum[nz(7958)]=nz(7958);var IfcAirTerminalBoxTypeEnum=class{constructor(t){this.value=t}};IfcAirTerminalBoxTypeEnum.CONSTANTFLOW=nz(7996),IfcAirTerminalBoxTypeEnum[nz(7997)]=nz(7997),IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT=nz(7998),IfcAirTerminalBoxTypeEnum[nz(7958)]="USERDEFINED",IfcAirTerminalBoxTypeEnum.NOTDEFINED=nz(7959);var IfcAirTerminalTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAirTerminalTypeEnum.DIFFUSER=nz(7999),IfcAirTerminalTypeEnum.GRILLE=nz(8e3),IfcAirTerminalTypeEnum[nz(8001)]="LOUVRE",IfcAirTerminalTypeEnum.REGISTER=nz(8002),IfcAirTerminalTypeEnum.USERDEFINED=nz(7958),IfcAirTerminalTypeEnum[nz(7959)]=nz(7959);var IfcAirToAirHeatRecoveryTypeEnum=class{constructor(t){this.value=t}};IfcAirToAirHeatRecoveryTypeEnum[nz(8003)]=nz(8003),IfcAirToAirHeatRecoveryTypeEnum[nz(8004)]=nz(8004),IfcAirToAirHeatRecoveryTypeEnum[nz(8005)]=nz(8005),IfcAirToAirHeatRecoveryTypeEnum[nz(8006)]=nz(8006),IfcAirToAirHeatRecoveryTypeEnum[nz(8007)]=nz(8007),IfcAirToAirHeatRecoveryTypeEnum[nz(8008)]="HEATPIPE",IfcAirToAirHeatRecoveryTypeEnum[nz(8009)]=nz(8009),IfcAirToAirHeatRecoveryTypeEnum[nz(8010)]="THERMOSIPHONSEALEDTUBEHEATEXCHANGERS",IfcAirToAirHeatRecoveryTypeEnum[nz(8011)]=nz(8011),IfcAirToAirHeatRecoveryTypeEnum[nz(7958)]=nz(7958),IfcAirToAirHeatRecoveryTypeEnum[nz(7959)]=nz(7959);var IfcAlarmTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAlarmTypeEnum[nz(8012)]=nz(8012),IfcAlarmTypeEnum.BREAKGLASSBUTTON=nz(8013),IfcAlarmTypeEnum.LIGHT=nz(8014),IfcAlarmTypeEnum[nz(8015)]=nz(8015),IfcAlarmTypeEnum.SIREN=nz(8016),IfcAlarmTypeEnum[nz(8017)]=nz(8017),IfcAlarmTypeEnum[nz(7958)]=nz(7958),IfcAlarmTypeEnum[nz(7959)]=nz(7959);var IfcAlignmentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAlignmentTypeEnum.USERDEFINED=nz(7958),IfcAlignmentTypeEnum[nz(7959)]=nz(7959);var IfcAnalysisModelTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAnalysisModelTypeEnum[nz(8018)]="IN_PLANE_LOADING_2D",IfcAnalysisModelTypeEnum[nz(8019)]=nz(8019),IfcAnalysisModelTypeEnum[nz(8020)]=nz(8020),IfcAnalysisModelTypeEnum[nz(7958)]=nz(7958),IfcAnalysisModelTypeEnum[nz(7959)]=nz(7959);var IfcAnalysisTheoryTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAnalysisTheoryTypeEnum[nz(8021)]="FIRST_ORDER_THEORY",IfcAnalysisTheoryTypeEnum[nz(8022)]=nz(8022),IfcAnalysisTheoryTypeEnum[nz(8023)]=nz(8023),IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY=nz(8024),IfcAnalysisTheoryTypeEnum[nz(7958)]="USERDEFINED",IfcAnalysisTheoryTypeEnum[nz(7959)]=nz(7959);var IfcArithmeticOperatorEnum=class{constructor(t){this[nz(439)]=t}};IfcArithmeticOperatorEnum.ADD="ADD",IfcArithmeticOperatorEnum.DIVIDE=nz(8025),IfcArithmeticOperatorEnum[nz(8026)]=nz(8026),IfcArithmeticOperatorEnum[nz(8027)]=nz(8027);var IfcAssemblyPlaceEnum=class{constructor(t){this[nz(439)]=t}};IfcAssemblyPlaceEnum[nz(7993)]="SITE",IfcAssemblyPlaceEnum[nz(8028)]="FACTORY",IfcAssemblyPlaceEnum[nz(7959)]="NOTDEFINED";var IfcAudioVisualApplianceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcAudioVisualApplianceTypeEnum[nz(8029)]="AMPLIFIER",IfcAudioVisualApplianceTypeEnum[nz(8030)]=nz(8030),IfcAudioVisualApplianceTypeEnum[nz(8031)]=nz(8031),IfcAudioVisualApplianceTypeEnum[nz(8032)]=nz(8032),IfcAudioVisualApplianceTypeEnum[nz(8033)]=nz(8033),IfcAudioVisualApplianceTypeEnum.PROJECTOR=nz(8034),IfcAudioVisualApplianceTypeEnum.RECEIVER="RECEIVER",IfcAudioVisualApplianceTypeEnum[nz(8035)]=nz(8035),IfcAudioVisualApplianceTypeEnum.SWITCHER=nz(8036),IfcAudioVisualApplianceTypeEnum[nz(8037)]=nz(8037),IfcAudioVisualApplianceTypeEnum[nz(8038)]=nz(8038),IfcAudioVisualApplianceTypeEnum.USERDEFINED=nz(7958),IfcAudioVisualApplianceTypeEnum[nz(7959)]=nz(7959);var IfcBSplineCurveForm=class{constructor(t){this.value=t}};IfcBSplineCurveForm[nz(8039)]="POLYLINE_FORM",IfcBSplineCurveForm[nz(8040)]=nz(8040),IfcBSplineCurveForm[nz(8041)]=nz(8041),IfcBSplineCurveForm[nz(8042)]="PARABOLIC_ARC",IfcBSplineCurveForm[nz(8043)]=nz(8043),IfcBSplineCurveForm[nz(8044)]=nz(8044);var IfcBSplineSurfaceForm=class{constructor(t){this[nz(439)]=t}};IfcBSplineSurfaceForm[nz(8045)]=nz(8045),IfcBSplineSurfaceForm[nz(8046)]="CYLINDRICAL_SURF",IfcBSplineSurfaceForm[nz(8047)]=nz(8047),IfcBSplineSurfaceForm[nz(8048)]=nz(8048),IfcBSplineSurfaceForm[nz(8049)]="TOROIDAL_SURF",IfcBSplineSurfaceForm.SURF_OF_REVOLUTION="SURF_OF_REVOLUTION",IfcBSplineSurfaceForm[nz(8050)]=nz(8050),IfcBSplineSurfaceForm.GENERALISED_CONE=nz(8051),IfcBSplineSurfaceForm[nz(8052)]="QUADRIC_SURF",IfcBSplineSurfaceForm[nz(8053)]="SURF_OF_LINEAR_EXTRUSION",IfcBSplineSurfaceForm[nz(8044)]=nz(8044);var IfcBeamTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBeamTypeEnum[nz(8054)]=nz(8054),IfcBeamTypeEnum[nz(8055)]="JOIST",IfcBeamTypeEnum[nz(8056)]="HOLLOWCORE",IfcBeamTypeEnum.LINTEL=nz(8057),IfcBeamTypeEnum.SPANDREL=nz(8058),IfcBeamTypeEnum.T_BEAM=nz(8059),IfcBeamTypeEnum[nz(8060)]="GIRDER_SEGMENT",IfcBeamTypeEnum[nz(8061)]=nz(8061),IfcBeamTypeEnum.PIERCAP=nz(8062),IfcBeamTypeEnum.HATSTONE=nz(8063),IfcBeamTypeEnum[nz(8064)]="CORNICE",IfcBeamTypeEnum[nz(8065)]=nz(8065),IfcBeamTypeEnum.USERDEFINED=nz(7958),IfcBeamTypeEnum[nz(7959)]=nz(7959);var IfcBearingTypeDisplacementEnum=class{constructor(t){this[nz(439)]=t}};IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT=nz(8066),IfcBearingTypeDisplacementEnum[nz(8067)]=nz(8067),IfcBearingTypeDisplacementEnum[nz(8068)]="GUIDED_TRANSVERSAL",IfcBearingTypeDisplacementEnum.FREE_MOVEMENT=nz(8069),IfcBearingTypeDisplacementEnum[nz(7959)]="NOTDEFINED";var IfcBearingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBearingTypeEnum[nz(8070)]=nz(8070),IfcBearingTypeEnum[nz(8071)]="SPHERICAL",IfcBearingTypeEnum[nz(8072)]=nz(8072),IfcBearingTypeEnum[nz(8073)]=nz(8073),IfcBearingTypeEnum[nz(8074)]=nz(8074),IfcBearingTypeEnum[nz(8075)]=nz(8075),IfcBearingTypeEnum[nz(8076)]="ROLLER",IfcBearingTypeEnum.DISK=nz(8077),IfcBearingTypeEnum.USERDEFINED=nz(7958),IfcBearingTypeEnum[nz(7959)]="NOTDEFINED";var IfcBenchmarkEnum=class{constructor(t){this[nz(439)]=t}};IfcBenchmarkEnum.GREATERTHAN=nz(8078),IfcBenchmarkEnum[nz(8079)]=nz(8079),IfcBenchmarkEnum[nz(8080)]=nz(8080),IfcBenchmarkEnum[nz(8081)]=nz(8081),IfcBenchmarkEnum[nz(8082)]="EQUALTO",IfcBenchmarkEnum[nz(8083)]="NOTEQUALTO",IfcBenchmarkEnum[nz(8084)]=nz(8084),IfcBenchmarkEnum[nz(8085)]=nz(8085),IfcBenchmarkEnum[nz(8086)]=nz(8086),IfcBenchmarkEnum[nz(8087)]=nz(8087);var IfcBoilerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBoilerTypeEnum[nz(8088)]=nz(8088),IfcBoilerTypeEnum[nz(8089)]=nz(8089),IfcBoilerTypeEnum[nz(7958)]="USERDEFINED",IfcBoilerTypeEnum[nz(7959)]="NOTDEFINED";var IfcBooleanOperator=class{constructor(t){this[nz(439)]=t}};IfcBooleanOperator[nz(8090)]="UNION",IfcBooleanOperator.INTERSECTION=nz(8091),IfcBooleanOperator[nz(8092)]=nz(8092);var IfcBridgePartTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBridgePartTypeEnum[nz(8093)]=nz(8093),IfcBridgePartTypeEnum[nz(8094)]="DECK",IfcBridgePartTypeEnum[nz(8095)]=nz(8095),IfcBridgePartTypeEnum[nz(8096)]=nz(8096),IfcBridgePartTypeEnum.PIER="PIER",IfcBridgePartTypeEnum.PIER_SEGMENT="PIER_SEGMENT",IfcBridgePartTypeEnum.PYLON=nz(8097),IfcBridgePartTypeEnum.SUBSTRUCTURE=nz(8098),IfcBridgePartTypeEnum[nz(8099)]="SUPERSTRUCTURE",IfcBridgePartTypeEnum[nz(8100)]=nz(8100),IfcBridgePartTypeEnum[nz(7958)]="USERDEFINED",IfcBridgePartTypeEnum.NOTDEFINED=nz(7959);var IfcBridgeTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBridgeTypeEnum[nz(8101)]=nz(8101),IfcBridgeTypeEnum[nz(8102)]=nz(8102),IfcBridgeTypeEnum.CANTILEVER=nz(8103),IfcBridgeTypeEnum[nz(8104)]=nz(8104),IfcBridgeTypeEnum.FRAMEWORK=nz(8105),IfcBridgeTypeEnum[nz(8106)]="GIRDER",IfcBridgeTypeEnum[nz(8107)]="SUSPENSION",IfcBridgeTypeEnum[nz(8108)]="TRUSS",IfcBridgeTypeEnum[nz(7958)]=nz(7958),IfcBridgeTypeEnum[nz(7959)]=nz(7959);var IfcBuildingElementPartTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBuildingElementPartTypeEnum[nz(8109)]="INSULATION",IfcBuildingElementPartTypeEnum[nz(8110)]=nz(8110),IfcBuildingElementPartTypeEnum[nz(8111)]=nz(8111),IfcBuildingElementPartTypeEnum[nz(7958)]="USERDEFINED",IfcBuildingElementPartTypeEnum[nz(7959)]=nz(7959);var IfcBuildingElementProxyTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBuildingElementProxyTypeEnum.COMPLEX=nz(8112),IfcBuildingElementProxyTypeEnum[nz(8113)]=nz(8113),IfcBuildingElementProxyTypeEnum[nz(8114)]=nz(8114),IfcBuildingElementProxyTypeEnum[nz(8115)]=nz(8115),IfcBuildingElementProxyTypeEnum[nz(8116)]=nz(8116),IfcBuildingElementProxyTypeEnum[nz(7958)]=nz(7958),IfcBuildingElementProxyTypeEnum.NOTDEFINED=nz(7959);var IfcBuildingSystemTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBuildingSystemTypeEnum[nz(8117)]="FENESTRATION",IfcBuildingSystemTypeEnum.FOUNDATION="FOUNDATION",IfcBuildingSystemTypeEnum.LOADBEARING=nz(8118),IfcBuildingSystemTypeEnum[nz(8119)]="OUTERSHELL",IfcBuildingSystemTypeEnum[nz(8120)]=nz(8120),IfcBuildingSystemTypeEnum[nz(8121)]=nz(8121),IfcBuildingSystemTypeEnum[nz(8122)]=nz(8122),IfcBuildingSystemTypeEnum[nz(8123)]=nz(8123),IfcBuildingSystemTypeEnum[nz(7958)]=nz(7958),IfcBuildingSystemTypeEnum.NOTDEFINED="NOTDEFINED";var IfcBurnerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcBurnerTypeEnum.USERDEFINED=nz(7958),IfcBurnerTypeEnum.NOTDEFINED=nz(7959);var IfcCableCarrierFittingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCableCarrierFittingTypeEnum[nz(8124)]=nz(8124),IfcCableCarrierFittingTypeEnum[nz(8125)]=nz(8125),IfcCableCarrierFittingTypeEnum[nz(8126)]=nz(8126),IfcCableCarrierFittingTypeEnum[nz(8127)]=nz(8127),IfcCableCarrierFittingTypeEnum[nz(7958)]=nz(7958),IfcCableCarrierFittingTypeEnum[nz(7959)]=nz(7959);var IfcCableCarrierSegmentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCableCarrierSegmentTypeEnum[nz(8128)]=nz(8128),IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT="CABLETRAYSEGMENT",IfcCableCarrierSegmentTypeEnum[nz(8129)]="CABLETRUNKINGSEGMENT",IfcCableCarrierSegmentTypeEnum[nz(8130)]=nz(8130),IfcCableCarrierSegmentTypeEnum.USERDEFINED=nz(7958),IfcCableCarrierSegmentTypeEnum[nz(7959)]=nz(7959);var IfcCableFittingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCableFittingTypeEnum[nz(8131)]=nz(8131),IfcCableFittingTypeEnum.ENTRY=nz(8132),IfcCableFittingTypeEnum.EXIT=nz(8133),IfcCableFittingTypeEnum[nz(8134)]="JUNCTION",IfcCableFittingTypeEnum[nz(8135)]="TRANSITION",IfcCableFittingTypeEnum[nz(7958)]="USERDEFINED",IfcCableFittingTypeEnum[nz(7959)]=nz(7959);var IfcCableSegmentTypeEnum=class{constructor(t){this.value=t}};IfcCableSegmentTypeEnum[nz(8136)]=nz(8136),IfcCableSegmentTypeEnum[nz(8137)]="CABLESEGMENT",IfcCableSegmentTypeEnum[nz(8138)]=nz(8138),IfcCableSegmentTypeEnum.CORESEGMENT="CORESEGMENT",IfcCableSegmentTypeEnum[nz(7958)]=nz(7958),IfcCableSegmentTypeEnum[nz(7959)]=nz(7959);var IfcCaissonFoundationTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCaissonFoundationTypeEnum[nz(8139)]=nz(8139),IfcCaissonFoundationTypeEnum[nz(8140)]=nz(8140),IfcCaissonFoundationTypeEnum[nz(7958)]=nz(7958),IfcCaissonFoundationTypeEnum[nz(7959)]="NOTDEFINED";var IfcChangeActionEnum=class{constructor(t){this[nz(439)]=t}};IfcChangeActionEnum[nz(8141)]=nz(8141),IfcChangeActionEnum[nz(8142)]=nz(8142),IfcChangeActionEnum[nz(8143)]=nz(8143),IfcChangeActionEnum[nz(8144)]=nz(8144),IfcChangeActionEnum[nz(7959)]=nz(7959);var IfcChillerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcChillerTypeEnum[nz(8145)]=nz(8145),IfcChillerTypeEnum.WATERCOOLED=nz(8146),IfcChillerTypeEnum[nz(8147)]=nz(8147),IfcChillerTypeEnum[nz(7958)]="USERDEFINED",IfcChillerTypeEnum[nz(7959)]=nz(7959);var IfcChimneyTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcChimneyTypeEnum[nz(7958)]=nz(7958),IfcChimneyTypeEnum[nz(7959)]=nz(7959);var IfcCoilTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCoilTypeEnum[nz(8148)]="DXCOOLINGCOIL",IfcCoilTypeEnum[nz(8149)]="ELECTRICHEATINGCOIL",IfcCoilTypeEnum.GASHEATINGCOIL="GASHEATINGCOIL",IfcCoilTypeEnum[nz(8150)]=nz(8150),IfcCoilTypeEnum.STEAMHEATINGCOIL=nz(8151),IfcCoilTypeEnum[nz(8152)]=nz(8152),IfcCoilTypeEnum[nz(8153)]=nz(8153),IfcCoilTypeEnum[nz(7958)]=nz(7958),IfcCoilTypeEnum.NOTDEFINED=nz(7959);var IfcColumnTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcColumnTypeEnum[nz(8154)]=nz(8154),IfcColumnTypeEnum[nz(8155)]=nz(8155),IfcColumnTypeEnum[nz(8156)]="PIERSTEM",IfcColumnTypeEnum.PIERSTEM_SEGMENT=nz(8157),IfcColumnTypeEnum[nz(8158)]=nz(8158),IfcColumnTypeEnum.USERDEFINED=nz(7958),IfcColumnTypeEnum[nz(7959)]=nz(7959);var IfcCommunicationsApplianceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCommunicationsApplianceTypeEnum.ANTENNA=nz(8159),IfcCommunicationsApplianceTypeEnum[nz(8160)]=nz(8160),IfcCommunicationsApplianceTypeEnum[nz(7954)]=nz(7954),IfcCommunicationsApplianceTypeEnum[nz(8161)]=nz(8161),IfcCommunicationsApplianceTypeEnum.MODEM=nz(8162),IfcCommunicationsApplianceTypeEnum[nz(8163)]="NETWORKAPPLIANCE",IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE=nz(8164),IfcCommunicationsApplianceTypeEnum[nz(8165)]=nz(8165),IfcCommunicationsApplianceTypeEnum[nz(8166)]="PRINTER",IfcCommunicationsApplianceTypeEnum[nz(8167)]=nz(8167),IfcCommunicationsApplianceTypeEnum.ROUTER=nz(8168),IfcCommunicationsApplianceTypeEnum[nz(8169)]=nz(8169),IfcCommunicationsApplianceTypeEnum[nz(7958)]=nz(7958),IfcCommunicationsApplianceTypeEnum.NOTDEFINED=nz(7959);var IfcComplexPropertyTemplateTypeEnum=class{constructor(t){this.value=t}};IfcComplexPropertyTemplateTypeEnum.P_COMPLEX=nz(8170),IfcComplexPropertyTemplateTypeEnum[nz(8171)]="Q_COMPLEX";var IfcCompressorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCompressorTypeEnum[nz(8172)]="DYNAMIC",IfcCompressorTypeEnum[nz(8173)]=nz(8173),IfcCompressorTypeEnum[nz(8174)]="ROTARY",IfcCompressorTypeEnum.SCROLL="SCROLL",IfcCompressorTypeEnum.TROCHOIDAL=nz(8175),IfcCompressorTypeEnum[nz(8176)]=nz(8176),IfcCompressorTypeEnum[nz(8177)]=nz(8177),IfcCompressorTypeEnum.OPENTYPE="OPENTYPE",IfcCompressorTypeEnum[nz(8178)]=nz(8178),IfcCompressorTypeEnum.SEMIHERMETIC=nz(8179),IfcCompressorTypeEnum[nz(8180)]=nz(8180),IfcCompressorTypeEnum[nz(8181)]=nz(8181),IfcCompressorTypeEnum[nz(8182)]="ROTARYVANE",IfcCompressorTypeEnum[nz(8183)]=nz(8183),IfcCompressorTypeEnum.TWINSCREW="TWINSCREW",IfcCompressorTypeEnum[nz(7958)]=nz(7958),IfcCompressorTypeEnum[nz(7959)]=nz(7959);var IfcCondenserTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCondenserTypeEnum[nz(8145)]=nz(8145),IfcCondenserTypeEnum[nz(8184)]=nz(8184),IfcCondenserTypeEnum[nz(8146)]=nz(8146),IfcCondenserTypeEnum[nz(8185)]=nz(8185),IfcCondenserTypeEnum[nz(8186)]=nz(8186),IfcCondenserTypeEnum[nz(8187)]=nz(8187),IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE=nz(8188),IfcCondenserTypeEnum[nz(7958)]=nz(7958),IfcCondenserTypeEnum[nz(7959)]=nz(7959);var IfcConnectionTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcConnectionTypeEnum[nz(8189)]=nz(8189),IfcConnectionTypeEnum[nz(8190)]=nz(8190),IfcConnectionTypeEnum[nz(8191)]=nz(8191),IfcConnectionTypeEnum[nz(7959)]=nz(7959);var IfcConstraintEnum=class{constructor(t){this[nz(439)]=t}};IfcConstraintEnum[nz(8192)]="HARD",IfcConstraintEnum[nz(8193)]=nz(8193),IfcConstraintEnum[nz(8194)]=nz(8194),IfcConstraintEnum[nz(7958)]=nz(7958),IfcConstraintEnum[nz(7959)]=nz(7959);var IfcConstructionEquipmentResourceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING=nz(8195),IfcConstructionEquipmentResourceTypeEnum[nz(8196)]=nz(8196),IfcConstructionEquipmentResourceTypeEnum[nz(8197)]=nz(8197),IfcConstructionEquipmentResourceTypeEnum[nz(8198)]="HEATING",IfcConstructionEquipmentResourceTypeEnum.LIGHTING=nz(8199),IfcConstructionEquipmentResourceTypeEnum.PAVING=nz(8200),IfcConstructionEquipmentResourceTypeEnum.PUMPING=nz(8201),IfcConstructionEquipmentResourceTypeEnum[nz(8202)]="TRANSPORTING",IfcConstructionEquipmentResourceTypeEnum[nz(7958)]=nz(7958),IfcConstructionEquipmentResourceTypeEnum[nz(7959)]=nz(7959);var IfcConstructionMaterialResourceTypeEnum=class{constructor(t){this.value=t}};IfcConstructionMaterialResourceTypeEnum.AGGREGATES=nz(8203),IfcConstructionMaterialResourceTypeEnum[nz(8204)]=nz(8204),IfcConstructionMaterialResourceTypeEnum[nz(8205)]=nz(8205),IfcConstructionMaterialResourceTypeEnum[nz(8206)]=nz(8206),IfcConstructionMaterialResourceTypeEnum[nz(8207)]=nz(8207),IfcConstructionMaterialResourceTypeEnum[nz(8208)]=nz(8208),IfcConstructionMaterialResourceTypeEnum[nz(8209)]=nz(8209),IfcConstructionMaterialResourceTypeEnum[nz(8210)]=nz(8210),IfcConstructionMaterialResourceTypeEnum.WOOD=nz(8211),IfcConstructionMaterialResourceTypeEnum.NOTDEFINED="NOTDEFINED",IfcConstructionMaterialResourceTypeEnum.USERDEFINED="USERDEFINED";var IfcConstructionProductResourceTypeEnum=class{constructor(t){this.value=t}};IfcConstructionProductResourceTypeEnum[nz(8212)]=nz(8212),IfcConstructionProductResourceTypeEnum.FORMWORK=nz(8213),IfcConstructionProductResourceTypeEnum[nz(7958)]=nz(7958),IfcConstructionProductResourceTypeEnum[nz(7959)]="NOTDEFINED";var IfcControllerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcControllerTypeEnum[nz(8214)]=nz(8214),IfcControllerTypeEnum[nz(8215)]=nz(8215),IfcControllerTypeEnum.PROPORTIONAL=nz(8216),IfcControllerTypeEnum[nz(8217)]=nz(8217),IfcControllerTypeEnum[nz(8218)]=nz(8218),IfcControllerTypeEnum[nz(7958)]=nz(7958),IfcControllerTypeEnum[nz(7959)]=nz(7959);var IfcCooledBeamTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCooledBeamTypeEnum.ACTIVE=nz(8219),IfcCooledBeamTypeEnum[nz(8220)]=nz(8220),IfcCooledBeamTypeEnum[nz(7958)]=nz(7958),IfcCooledBeamTypeEnum[nz(7959)]=nz(7959);var IfcCoolingTowerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCoolingTowerTypeEnum[nz(8221)]=nz(8221),IfcCoolingTowerTypeEnum[nz(8222)]=nz(8222),IfcCoolingTowerTypeEnum[nz(8223)]=nz(8223),IfcCoolingTowerTypeEnum[nz(7958)]=nz(7958),IfcCoolingTowerTypeEnum[nz(7959)]=nz(7959);var IfcCostItemTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCostItemTypeEnum[nz(7958)]=nz(7958),IfcCostItemTypeEnum[nz(7959)]=nz(7959);var IfcCostScheduleTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCostScheduleTypeEnum.BUDGET=nz(8224),IfcCostScheduleTypeEnum[nz(8225)]="COSTPLAN",IfcCostScheduleTypeEnum[nz(8226)]=nz(8226),IfcCostScheduleTypeEnum[nz(8227)]="TENDER",IfcCostScheduleTypeEnum[nz(8228)]=nz(8228),IfcCostScheduleTypeEnum[nz(8229)]=nz(8229),IfcCostScheduleTypeEnum[nz(8230)]=nz(8230),IfcCostScheduleTypeEnum[nz(7958)]=nz(7958),IfcCostScheduleTypeEnum[nz(7959)]=nz(7959);var IfcCoveringTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCoveringTypeEnum[nz(8231)]=nz(8231),IfcCoveringTypeEnum[nz(8232)]=nz(8232),IfcCoveringTypeEnum.CLADDING=nz(8233),IfcCoveringTypeEnum[nz(8234)]="ROOFING",IfcCoveringTypeEnum[nz(8235)]="MOLDING",IfcCoveringTypeEnum[nz(8236)]=nz(8236),IfcCoveringTypeEnum[nz(8109)]=nz(8109),IfcCoveringTypeEnum.MEMBRANE=nz(8237),IfcCoveringTypeEnum[nz(8238)]=nz(8238),IfcCoveringTypeEnum[nz(8239)]="WRAPPING",IfcCoveringTypeEnum[nz(8240)]=nz(8240),IfcCoveringTypeEnum[nz(7958)]=nz(7958),IfcCoveringTypeEnum[nz(7959)]=nz(7959);var IfcCrewResourceTypeEnum=class{constructor(t){this.value=t}};IfcCrewResourceTypeEnum[nz(7992)]=nz(7992),IfcCrewResourceTypeEnum[nz(7993)]=nz(7993),IfcCrewResourceTypeEnum[nz(7958)]=nz(7958),IfcCrewResourceTypeEnum[nz(7959)]="NOTDEFINED";var IfcCurtainWallTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcCurtainWallTypeEnum[nz(7958)]=nz(7958),IfcCurtainWallTypeEnum[nz(7959)]=nz(7959);var IfcCurveInterpolationEnum=class{constructor(t){this[nz(439)]=t}};IfcCurveInterpolationEnum[nz(4376)]=nz(4376),IfcCurveInterpolationEnum.LOG_LINEAR=nz(8241),IfcCurveInterpolationEnum[nz(8242)]="LOG_LOG",IfcCurveInterpolationEnum.NOTDEFINED=nz(7959);var IfcDamperTypeEnum=class{constructor(t){this.value=t}};IfcDamperTypeEnum[nz(8243)]=nz(8243),IfcDamperTypeEnum[nz(8244)]="BALANCINGDAMPER",IfcDamperTypeEnum[nz(8245)]=nz(8245),IfcDamperTypeEnum[nz(8246)]="CONTROLDAMPER",IfcDamperTypeEnum.FIREDAMPER=nz(8247),IfcDamperTypeEnum[nz(8248)]=nz(8248),IfcDamperTypeEnum.FUMEHOODEXHAUST="FUMEHOODEXHAUST",IfcDamperTypeEnum.GRAVITYDAMPER=nz(8249),IfcDamperTypeEnum[nz(8250)]="GRAVITYRELIEFDAMPER",IfcDamperTypeEnum[nz(8251)]="RELIEFDAMPER",IfcDamperTypeEnum[nz(8252)]="SMOKEDAMPER",IfcDamperTypeEnum[nz(7958)]=nz(7958),IfcDamperTypeEnum[nz(7959)]=nz(7959);var IfcDataOriginEnum=class{constructor(t){this[nz(439)]=t}};IfcDataOriginEnum[nz(8253)]=nz(8253),IfcDataOriginEnum[nz(8254)]=nz(8254),IfcDataOriginEnum[nz(8255)]=nz(8255),IfcDataOriginEnum[nz(7958)]=nz(7958),IfcDataOriginEnum[nz(7959)]="NOTDEFINED";var IfcDerivedUnitEnum=class{constructor(t){this.value=t}};IfcDerivedUnitEnum.ANGULARVELOCITYUNIT="ANGULARVELOCITYUNIT",IfcDerivedUnitEnum[nz(8256)]=nz(8256),IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT=nz(8257),IfcDerivedUnitEnum[nz(8258)]="DYNAMICVISCOSITYUNIT",IfcDerivedUnitEnum[nz(8259)]=nz(8259),IfcDerivedUnitEnum[nz(8260)]=nz(8260),IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT=nz(8261),IfcDerivedUnitEnum[nz(8262)]=nz(8262),IfcDerivedUnitEnum[nz(8263)]=nz(8263),IfcDerivedUnitEnum[nz(8264)]=nz(8264),IfcDerivedUnitEnum[nz(8265)]="MASSFLOWRATEUNIT",IfcDerivedUnitEnum[nz(8266)]=nz(8266),IfcDerivedUnitEnum[nz(8267)]=nz(8267),IfcDerivedUnitEnum[nz(8268)]=nz(8268),IfcDerivedUnitEnum[nz(8269)]=nz(8269),IfcDerivedUnitEnum[nz(8270)]="THERMALCONDUCTANCEUNIT",IfcDerivedUnitEnum.THERMALRESISTANCEUNIT=nz(8271),IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT=nz(8272),IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT=nz(8273),IfcDerivedUnitEnum[nz(8274)]=nz(8274),IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT=nz(8275),IfcDerivedUnitEnum.TORQUEUNIT=nz(8276),IfcDerivedUnitEnum[nz(8277)]=nz(8277),IfcDerivedUnitEnum[nz(8278)]=nz(8278),IfcDerivedUnitEnum[nz(8279)]=nz(8279),IfcDerivedUnitEnum[nz(8280)]=nz(8280),IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT=nz(8281),IfcDerivedUnitEnum.SHEARMODULUSUNIT=nz(8282),IfcDerivedUnitEnum[nz(8283)]="LINEARSTIFFNESSUNIT",IfcDerivedUnitEnum[nz(8284)]="ROTATIONALSTIFFNESSUNIT",IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT=nz(8285),IfcDerivedUnitEnum[nz(8286)]="ACCELERATIONUNIT",IfcDerivedUnitEnum[nz(8287)]="CURVATUREUNIT",IfcDerivedUnitEnum[nz(8288)]=nz(8288),IfcDerivedUnitEnum[nz(8289)]="IONCONCENTRATIONUNIT",IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT="LUMINOUSINTENSITYDISTRIBUTIONUNIT",IfcDerivedUnitEnum[nz(8290)]=nz(8290),IfcDerivedUnitEnum[nz(8291)]=nz(8291),IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT="MODULUSOFROTATIONALSUBGRADEREACTIONUNIT",IfcDerivedUnitEnum[nz(8292)]="PHUNIT",IfcDerivedUnitEnum.ROTATIONALMASSUNIT=nz(8293),IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT=nz(8294),IfcDerivedUnitEnum.SECTIONMODULUSUNIT="SECTIONMODULUSUNIT",IfcDerivedUnitEnum[nz(8295)]=nz(8295),IfcDerivedUnitEnum[nz(8296)]=nz(8296),IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT=nz(8297),IfcDerivedUnitEnum[nz(8298)]="SOUNDPRESSUREUNIT",IfcDerivedUnitEnum[nz(8299)]=nz(8299),IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT=nz(8300),IfcDerivedUnitEnum[nz(8301)]=nz(8301),IfcDerivedUnitEnum[nz(8302)]=nz(8302),IfcDerivedUnitEnum[nz(8303)]=nz(8303),IfcDerivedUnitEnum[nz(7958)]=nz(7958);var IfcDirectionSenseEnum=class{constructor(t){this[nz(439)]=t}};IfcDirectionSenseEnum[nz(8304)]=nz(8304),IfcDirectionSenseEnum.NEGATIVE="NEGATIVE";var IfcDiscreteAccessoryTypeEnum=class{constructor(t){this.value=t}};IfcDiscreteAccessoryTypeEnum[nz(8305)]="ANCHORPLATE",IfcDiscreteAccessoryTypeEnum[nz(8306)]=nz(8306),IfcDiscreteAccessoryTypeEnum[nz(8307)]=nz(8307),IfcDiscreteAccessoryTypeEnum[nz(8308)]=nz(8308),IfcDiscreteAccessoryTypeEnum.USERDEFINED=nz(7958),IfcDiscreteAccessoryTypeEnum[nz(7959)]=nz(7959);var IfcDistributionChamberElementTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDistributionChamberElementTypeEnum[nz(8309)]=nz(8309),IfcDistributionChamberElementTypeEnum[nz(8310)]=nz(8310),IfcDistributionChamberElementTypeEnum.INSPECTIONPIT="INSPECTIONPIT",IfcDistributionChamberElementTypeEnum[nz(8311)]=nz(8311),IfcDistributionChamberElementTypeEnum[nz(8312)]=nz(8312),IfcDistributionChamberElementTypeEnum[nz(8313)]=nz(8313),IfcDistributionChamberElementTypeEnum[nz(8314)]=nz(8314),IfcDistributionChamberElementTypeEnum[nz(8315)]=nz(8315),IfcDistributionChamberElementTypeEnum[nz(7958)]="USERDEFINED",IfcDistributionChamberElementTypeEnum[nz(7959)]=nz(7959);var IfcDistributionPortTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDistributionPortTypeEnum[nz(8316)]=nz(8316),IfcDistributionPortTypeEnum[nz(8317)]="CABLECARRIER",IfcDistributionPortTypeEnum[nz(8318)]=nz(8318),IfcDistributionPortTypeEnum[nz(8319)]="PIPE",IfcDistributionPortTypeEnum[nz(7958)]="USERDEFINED",IfcDistributionPortTypeEnum[nz(7959)]="NOTDEFINED";var IfcDistributionSystemEnum=class{constructor(t){this.value=t}};IfcDistributionSystemEnum[nz(8320)]=nz(8320),IfcDistributionSystemEnum[nz(8321)]=nz(8321),IfcDistributionSystemEnum[nz(8322)]=nz(8322),IfcDistributionSystemEnum[nz(8323)]=nz(8323),IfcDistributionSystemEnum[nz(8324)]=nz(8324),IfcDistributionSystemEnum[nz(8325)]=nz(8325),IfcDistributionSystemEnum.CONDENSERWATER=nz(8326),IfcDistributionSystemEnum.CONTROL=nz(8327),IfcDistributionSystemEnum.CONVEYING=nz(8328),IfcDistributionSystemEnum[nz(8329)]=nz(8329),IfcDistributionSystemEnum[nz(8330)]=nz(8330),IfcDistributionSystemEnum[nz(8331)]=nz(8331),IfcDistributionSystemEnum[nz(8332)]="DOMESTICHOTWATER",IfcDistributionSystemEnum[nz(8333)]="DRAINAGE",IfcDistributionSystemEnum[nz(8334)]=nz(8334),IfcDistributionSystemEnum[nz(8335)]="ELECTRICAL",IfcDistributionSystemEnum[nz(8336)]=nz(8336),IfcDistributionSystemEnum[nz(8337)]="EXHAUST",IfcDistributionSystemEnum[nz(8338)]=nz(8338),IfcDistributionSystemEnum.FUEL=nz(8206),IfcDistributionSystemEnum[nz(8339)]=nz(8339),IfcDistributionSystemEnum.HAZARDOUS=nz(8340),IfcDistributionSystemEnum[nz(8198)]="HEATING",IfcDistributionSystemEnum[nz(8199)]="LIGHTING",IfcDistributionSystemEnum[nz(8341)]=nz(8341),IfcDistributionSystemEnum[nz(8342)]=nz(8342),IfcDistributionSystemEnum[nz(8343)]=nz(8343),IfcDistributionSystemEnum[nz(8344)]=nz(8344),IfcDistributionSystemEnum[nz(8345)]=nz(8345),IfcDistributionSystemEnum[nz(8346)]="RAINWATER",IfcDistributionSystemEnum.REFRIGERATION="REFRIGERATION",IfcDistributionSystemEnum[nz(8347)]=nz(8347),IfcDistributionSystemEnum[nz(8348)]=nz(8348),IfcDistributionSystemEnum.SIGNAL="SIGNAL",IfcDistributionSystemEnum[nz(8349)]=nz(8349),IfcDistributionSystemEnum[nz(8037)]=nz(8037),IfcDistributionSystemEnum.TV="TV",IfcDistributionSystemEnum[nz(8350)]=nz(8350),IfcDistributionSystemEnum.VENT=nz(8351),IfcDistributionSystemEnum.VENTILATION=nz(8352),IfcDistributionSystemEnum[nz(8353)]=nz(8353),IfcDistributionSystemEnum[nz(8354)]=nz(8354),IfcDistributionSystemEnum.USERDEFINED=nz(7958),IfcDistributionSystemEnum[nz(7959)]=nz(7959);var IfcDocumentConfidentialityEnum=class{constructor(t){this[nz(439)]=t}};IfcDocumentConfidentialityEnum[nz(8355)]=nz(8355),IfcDocumentConfidentialityEnum.RESTRICTED=nz(8356),IfcDocumentConfidentialityEnum[nz(8357)]=nz(8357),IfcDocumentConfidentialityEnum[nz(8358)]="PERSONAL",IfcDocumentConfidentialityEnum[nz(7958)]="USERDEFINED",IfcDocumentConfidentialityEnum[nz(7959)]=nz(7959);var IfcDocumentStatusEnum=class{constructor(t){this[nz(439)]=t}};IfcDocumentStatusEnum[nz(8359)]=nz(8359),IfcDocumentStatusEnum.FINALDRAFT=nz(8360),IfcDocumentStatusEnum[nz(8361)]=nz(8361),IfcDocumentStatusEnum[nz(8362)]=nz(8362),IfcDocumentStatusEnum[nz(7959)]=nz(7959);var IfcDoorPanelOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorPanelOperationEnum.SWINGING="SWINGING",IfcDoorPanelOperationEnum[nz(8363)]=nz(8363),IfcDoorPanelOperationEnum[nz(8364)]=nz(8364),IfcDoorPanelOperationEnum[nz(8365)]=nz(8365),IfcDoorPanelOperationEnum[nz(8366)]="REVOLVING",IfcDoorPanelOperationEnum.ROLLINGUP=nz(8367),IfcDoorPanelOperationEnum[nz(8368)]="FIXEDPANEL",IfcDoorPanelOperationEnum[nz(7958)]="USERDEFINED",IfcDoorPanelOperationEnum[nz(7959)]=nz(7959);var IfcDoorPanelPositionEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorPanelPositionEnum[nz(5326)]=nz(5326),IfcDoorPanelPositionEnum[nz(5337)]=nz(5337),IfcDoorPanelPositionEnum[nz(5327)]=nz(5327),IfcDoorPanelPositionEnum[nz(7959)]=nz(7959);var IfcDoorStyleConstructionEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorStyleConstructionEnum.ALUMINIUM="ALUMINIUM",IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL=nz(8369),IfcDoorStyleConstructionEnum[nz(8370)]=nz(8370),IfcDoorStyleConstructionEnum[nz(8211)]=nz(8211),IfcDoorStyleConstructionEnum[nz(8371)]=nz(8371),IfcDoorStyleConstructionEnum[nz(8372)]="ALUMINIUM_PLASTIC",IfcDoorStyleConstructionEnum[nz(8210)]=nz(8210),IfcDoorStyleConstructionEnum[nz(7958)]=nz(7958),IfcDoorStyleConstructionEnum[nz(7959)]=nz(7959);var IfcDoorStyleOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorStyleOperationEnum[nz(8373)]=nz(8373),IfcDoorStyleOperationEnum[nz(8374)]=nz(8374),IfcDoorStyleOperationEnum[nz(8375)]="DOUBLE_DOOR_SINGLE_SWING",IfcDoorStyleOperationEnum[nz(8376)]=nz(8376),IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT=nz(8377),IfcDoorStyleOperationEnum[nz(8378)]=nz(8378),IfcDoorStyleOperationEnum[nz(8379)]=nz(8379),IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING=nz(8380),IfcDoorStyleOperationEnum.SLIDING_TO_LEFT=nz(8381),IfcDoorStyleOperationEnum[nz(8382)]=nz(8382),IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING=nz(8383),IfcDoorStyleOperationEnum[nz(8384)]=nz(8384),IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT=nz(8385),IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING=nz(8386),IfcDoorStyleOperationEnum[nz(8366)]=nz(8366),IfcDoorStyleOperationEnum[nz(8367)]="ROLLINGUP",IfcDoorStyleOperationEnum[nz(7958)]=nz(7958),IfcDoorStyleOperationEnum.NOTDEFINED="NOTDEFINED";var IfcDoorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorTypeEnum[nz(8387)]=nz(8387),IfcDoorTypeEnum[nz(8388)]=nz(8388),IfcDoorTypeEnum[nz(8389)]=nz(8389),IfcDoorTypeEnum[nz(7958)]="USERDEFINED",IfcDoorTypeEnum[nz(7959)]=nz(7959);var IfcDoorTypeOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT="SINGLE_SWING_LEFT",IfcDoorTypeOperationEnum[nz(8374)]="SINGLE_SWING_RIGHT",IfcDoorTypeOperationEnum[nz(8375)]=nz(8375),IfcDoorTypeOperationEnum[nz(8376)]=nz(8376),IfcDoorTypeOperationEnum[nz(8377)]=nz(8377),IfcDoorTypeOperationEnum[nz(8378)]=nz(8378),IfcDoorTypeOperationEnum[nz(8379)]=nz(8379),IfcDoorTypeOperationEnum[nz(8380)]=nz(8380),IfcDoorTypeOperationEnum[nz(8381)]=nz(8381),IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT=nz(8382),IfcDoorTypeOperationEnum[nz(8383)]=nz(8383),IfcDoorTypeOperationEnum[nz(8384)]="FOLDING_TO_LEFT",IfcDoorTypeOperationEnum[nz(8385)]=nz(8385),IfcDoorTypeOperationEnum[nz(8386)]=nz(8386),IfcDoorTypeOperationEnum[nz(8366)]=nz(8366),IfcDoorTypeOperationEnum.ROLLINGUP="ROLLINGUP",IfcDoorTypeOperationEnum[nz(8390)]=nz(8390),IfcDoorTypeOperationEnum[nz(8391)]=nz(8391),IfcDoorTypeOperationEnum[nz(7958)]="USERDEFINED",IfcDoorTypeOperationEnum[nz(7959)]=nz(7959);var IfcDuctFittingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDuctFittingTypeEnum.BEND=nz(8124),IfcDuctFittingTypeEnum[nz(8131)]="CONNECTOR",IfcDuctFittingTypeEnum.ENTRY=nz(8132),IfcDuctFittingTypeEnum.EXIT=nz(8133),IfcDuctFittingTypeEnum.JUNCTION=nz(8134),IfcDuctFittingTypeEnum[nz(8392)]=nz(8392),IfcDuctFittingTypeEnum[nz(8135)]=nz(8135),IfcDuctFittingTypeEnum[nz(7958)]=nz(7958),IfcDuctFittingTypeEnum[nz(7959)]=nz(7959);var IfcDuctSegmentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDuctSegmentTypeEnum[nz(8393)]="RIGIDSEGMENT",IfcDuctSegmentTypeEnum[nz(8394)]=nz(8394),IfcDuctSegmentTypeEnum[nz(7958)]="USERDEFINED",IfcDuctSegmentTypeEnum[nz(7959)]=nz(7959);var IfcDuctSilencerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcDuctSilencerTypeEnum[nz(8395)]=nz(8395),IfcDuctSilencerTypeEnum.RECTANGULAR=nz(8396),IfcDuctSilencerTypeEnum[nz(8397)]=nz(8397),IfcDuctSilencerTypeEnum.USERDEFINED=nz(7958),IfcDuctSilencerTypeEnum[nz(7959)]=nz(7959);var IfcElectricApplianceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcElectricApplianceTypeEnum[nz(8398)]=nz(8398),IfcElectricApplianceTypeEnum[nz(8399)]=nz(8399),IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER=nz(8400),IfcElectricApplianceTypeEnum[nz(8401)]="FREESTANDINGFAN",IfcElectricApplianceTypeEnum[nz(8402)]="FREESTANDINGWATERHEATER",IfcElectricApplianceTypeEnum[nz(8403)]=nz(8403),IfcElectricApplianceTypeEnum[nz(8404)]=nz(8404),IfcElectricApplianceTypeEnum[nz(8405)]=nz(8405),IfcElectricApplianceTypeEnum[nz(8406)]=nz(8406),IfcElectricApplianceTypeEnum[nz(8407)]="KITCHENMACHINE",IfcElectricApplianceTypeEnum[nz(8408)]=nz(8408),IfcElectricApplianceTypeEnum.PHOTOCOPIER="PHOTOCOPIER",IfcElectricApplianceTypeEnum[nz(8409)]=nz(8409),IfcElectricApplianceTypeEnum[nz(8410)]="TUMBLEDRYER",IfcElectricApplianceTypeEnum.VENDINGMACHINE=nz(8411),IfcElectricApplianceTypeEnum.WASHINGMACHINE=nz(8412),IfcElectricApplianceTypeEnum.USERDEFINED=nz(7958),IfcElectricApplianceTypeEnum.NOTDEFINED=nz(7959);var IfcElectricDistributionBoardTypeEnum=class{constructor(t){this.value=t}};IfcElectricDistributionBoardTypeEnum[nz(8413)]=nz(8413),IfcElectricDistributionBoardTypeEnum[nz(8414)]=nz(8414),IfcElectricDistributionBoardTypeEnum[nz(8415)]=nz(8415),IfcElectricDistributionBoardTypeEnum[nz(8416)]=nz(8416),IfcElectricDistributionBoardTypeEnum[nz(7958)]=nz(7958),IfcElectricDistributionBoardTypeEnum[nz(7959)]=nz(7959);var IfcElectricFlowStorageDeviceTypeEnum=class{constructor(t){this.value=t}};IfcElectricFlowStorageDeviceTypeEnum[nz(8417)]=nz(8417),IfcElectricFlowStorageDeviceTypeEnum[nz(8418)]="CAPACITORBANK",IfcElectricFlowStorageDeviceTypeEnum[nz(8419)]=nz(8419),IfcElectricFlowStorageDeviceTypeEnum[nz(8420)]=nz(8420),IfcElectricFlowStorageDeviceTypeEnum[nz(8421)]=nz(8421),IfcElectricFlowStorageDeviceTypeEnum[nz(7958)]=nz(7958),IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED=nz(7959);var IfcElectricGeneratorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcElectricGeneratorTypeEnum[nz(8422)]=nz(8422),IfcElectricGeneratorTypeEnum[nz(8423)]=nz(8423),IfcElectricGeneratorTypeEnum.STANDALONE=nz(8424),IfcElectricGeneratorTypeEnum[nz(7958)]=nz(7958),IfcElectricGeneratorTypeEnum[nz(7959)]=nz(7959);var IfcElectricMotorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcElectricMotorTypeEnum.DC="DC",IfcElectricMotorTypeEnum.INDUCTION=nz(8425),IfcElectricMotorTypeEnum[nz(8426)]="POLYPHASE",IfcElectricMotorTypeEnum[nz(8427)]=nz(8427),IfcElectricMotorTypeEnum.SYNCHRONOUS=nz(8428),IfcElectricMotorTypeEnum.USERDEFINED="USERDEFINED",IfcElectricMotorTypeEnum[nz(7959)]=nz(7959);var IfcElectricTimeControlTypeEnum=class{constructor(t){this.value=t}};IfcElectricTimeControlTypeEnum[nz(8429)]=nz(8429),IfcElectricTimeControlTypeEnum.TIMEDELAY=nz(8430),IfcElectricTimeControlTypeEnum[nz(8431)]=nz(8431),IfcElectricTimeControlTypeEnum[nz(7958)]="USERDEFINED",IfcElectricTimeControlTypeEnum[nz(7959)]=nz(7959);var IfcElementAssemblyTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY=nz(8432),IfcElementAssemblyTypeEnum.ARCH=nz(8433),IfcElementAssemblyTypeEnum[nz(8434)]="BEAM_GRID",IfcElementAssemblyTypeEnum[nz(8435)]=nz(8435),IfcElementAssemblyTypeEnum[nz(8106)]=nz(8106),IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT=nz(8436),IfcElementAssemblyTypeEnum[nz(8437)]=nz(8437),IfcElementAssemblyTypeEnum.SLAB_FIELD=nz(8438),IfcElementAssemblyTypeEnum[nz(8108)]="TRUSS",IfcElementAssemblyTypeEnum[nz(8093)]="ABUTMENT",IfcElementAssemblyTypeEnum[nz(8439)]=nz(8439),IfcElementAssemblyTypeEnum[nz(8097)]=nz(8097),IfcElementAssemblyTypeEnum[nz(8440)]=nz(8440),IfcElementAssemblyTypeEnum[nz(8094)]=nz(8094),IfcElementAssemblyTypeEnum[nz(7958)]=nz(7958),IfcElementAssemblyTypeEnum[nz(7959)]=nz(7959);var IfcElementCompositionEnum=class{constructor(t){this[nz(439)]=t}};IfcElementCompositionEnum[nz(8112)]=nz(8112),IfcElementCompositionEnum[nz(8113)]=nz(8113),IfcElementCompositionEnum.PARTIAL=nz(8114);var IfcEngineTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcEngineTypeEnum[nz(8441)]="EXTERNALCOMBUSTION",IfcEngineTypeEnum[nz(8442)]="INTERNALCOMBUSTION",IfcEngineTypeEnum[nz(7958)]="USERDEFINED",IfcEngineTypeEnum.NOTDEFINED=nz(7959);var IfcEvaporativeCoolerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcEvaporativeCoolerTypeEnum[nz(8443)]="DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER",IfcEvaporativeCoolerTypeEnum[nz(8444)]=nz(8444),IfcEvaporativeCoolerTypeEnum[nz(8445)]=nz(8445),IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER=nz(8446),IfcEvaporativeCoolerTypeEnum[nz(8447)]=nz(8447),IfcEvaporativeCoolerTypeEnum[nz(8448)]=nz(8448),IfcEvaporativeCoolerTypeEnum[nz(8449)]="INDIRECTEVAPORATIVEWETCOIL",IfcEvaporativeCoolerTypeEnum[nz(8450)]=nz(8450),IfcEvaporativeCoolerTypeEnum[nz(8451)]=nz(8451),IfcEvaporativeCoolerTypeEnum[nz(7958)]=nz(7958),IfcEvaporativeCoolerTypeEnum.NOTDEFINED=nz(7959);var IfcEvaporatorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcEvaporatorTypeEnum[nz(8452)]=nz(8452),IfcEvaporatorTypeEnum[nz(8453)]=nz(8453),IfcEvaporatorTypeEnum[nz(8454)]=nz(8454),IfcEvaporatorTypeEnum[nz(8455)]=nz(8455),IfcEvaporatorTypeEnum[nz(8456)]=nz(8456),IfcEvaporatorTypeEnum.SHELLANDCOIL=nz(8457),IfcEvaporatorTypeEnum[nz(7958)]=nz(7958),IfcEvaporatorTypeEnum.NOTDEFINED=nz(7959);var IfcEventTriggerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcEventTriggerTypeEnum[nz(8458)]=nz(8458),IfcEventTriggerTypeEnum[nz(8459)]=nz(8459),IfcEventTriggerTypeEnum.EVENTTIME=nz(8460),IfcEventTriggerTypeEnum[nz(8461)]=nz(8461),IfcEventTriggerTypeEnum[nz(7958)]="USERDEFINED",IfcEventTriggerTypeEnum.NOTDEFINED="NOTDEFINED";var IfcEventTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcEventTypeEnum.STARTEVENT="STARTEVENT",IfcEventTypeEnum[nz(8462)]=nz(8462),IfcEventTypeEnum[nz(8463)]=nz(8463),IfcEventTypeEnum.USERDEFINED=nz(7958),IfcEventTypeEnum[nz(7959)]=nz(7959);var IfcExternalSpatialElementTypeEnum=class{constructor(t){this.value=t}};IfcExternalSpatialElementTypeEnum[nz(8464)]=nz(8464),IfcExternalSpatialElementTypeEnum[nz(8465)]=nz(8465),IfcExternalSpatialElementTypeEnum[nz(8466)]=nz(8466),IfcExternalSpatialElementTypeEnum[nz(8467)]="EXTERNAL_FIRE",IfcExternalSpatialElementTypeEnum[nz(7958)]=nz(7958),IfcExternalSpatialElementTypeEnum[nz(7959)]=nz(7959);var IfcFanTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFanTypeEnum[nz(8468)]=nz(8468),IfcFanTypeEnum[nz(8469)]=nz(8469),IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED=nz(8470),IfcFanTypeEnum.CENTRIFUGALAIRFOIL=nz(8471),IfcFanTypeEnum.TUBEAXIAL=nz(8472),IfcFanTypeEnum[nz(8473)]=nz(8473),IfcFanTypeEnum[nz(8474)]=nz(8474),IfcFanTypeEnum[nz(7958)]=nz(7958),IfcFanTypeEnum[nz(7959)]=nz(7959);var IfcFastenerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFastenerTypeEnum.GLUE=nz(8475),IfcFastenerTypeEnum[nz(8476)]=nz(8476),IfcFastenerTypeEnum[nz(8477)]=nz(8477),IfcFastenerTypeEnum[nz(7958)]=nz(7958),IfcFastenerTypeEnum[nz(7959)]=nz(7959);var IfcFilterTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFilterTypeEnum.AIRPARTICLEFILTER=nz(8478),IfcFilterTypeEnum[nz(8479)]=nz(8479),IfcFilterTypeEnum[nz(8480)]=nz(8480),IfcFilterTypeEnum[nz(8481)]="OILFILTER",IfcFilterTypeEnum[nz(8482)]=nz(8482),IfcFilterTypeEnum[nz(8483)]=nz(8483),IfcFilterTypeEnum.USERDEFINED=nz(7958),IfcFilterTypeEnum.NOTDEFINED=nz(7959);var IfcFireSuppressionTerminalTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET="BREECHINGINLET",IfcFireSuppressionTerminalTypeEnum[nz(8484)]="FIREHYDRANT",IfcFireSuppressionTerminalTypeEnum.HOSEREEL="HOSEREEL",IfcFireSuppressionTerminalTypeEnum[nz(8485)]=nz(8485),IfcFireSuppressionTerminalTypeEnum[nz(8486)]=nz(8486),IfcFireSuppressionTerminalTypeEnum[nz(7958)]=nz(7958),IfcFireSuppressionTerminalTypeEnum[nz(7959)]=nz(7959);var IfcFlowDirectionEnum=class{constructor(t){this[nz(439)]=t}};IfcFlowDirectionEnum[nz(8487)]="SOURCE",IfcFlowDirectionEnum[nz(8488)]=nz(8488),IfcFlowDirectionEnum[nz(8489)]=nz(8489),IfcFlowDirectionEnum.NOTDEFINED=nz(7959);var IfcFlowInstrumentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFlowInstrumentTypeEnum.PRESSUREGAUGE=nz(8490),IfcFlowInstrumentTypeEnum[nz(8491)]="THERMOMETER",IfcFlowInstrumentTypeEnum.AMMETER="AMMETER",IfcFlowInstrumentTypeEnum[nz(8492)]=nz(8492),IfcFlowInstrumentTypeEnum[nz(8493)]=nz(8493),IfcFlowInstrumentTypeEnum.PHASEANGLEMETER=nz(8494),IfcFlowInstrumentTypeEnum[nz(8495)]=nz(8495),IfcFlowInstrumentTypeEnum.VOLTMETER_RMS="VOLTMETER_RMS",IfcFlowInstrumentTypeEnum[nz(7958)]="USERDEFINED",IfcFlowInstrumentTypeEnum[nz(7959)]=nz(7959);var IfcFlowMeterTypeEnum=class{constructor(t){this.value=t}};IfcFlowMeterTypeEnum[nz(8496)]=nz(8496),IfcFlowMeterTypeEnum[nz(8497)]=nz(8497),IfcFlowMeterTypeEnum[nz(8498)]=nz(8498),IfcFlowMeterTypeEnum.WATERMETER=nz(8499),IfcFlowMeterTypeEnum[nz(7958)]="USERDEFINED",IfcFlowMeterTypeEnum.NOTDEFINED="NOTDEFINED";var IfcFootingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFootingTypeEnum[nz(8500)]=nz(8500),IfcFootingTypeEnum[nz(8501)]="FOOTING_BEAM",IfcFootingTypeEnum[nz(8502)]=nz(8502),IfcFootingTypeEnum[nz(8503)]=nz(8503),IfcFootingTypeEnum.STRIP_FOOTING="STRIP_FOOTING",IfcFootingTypeEnum.USERDEFINED="USERDEFINED",IfcFootingTypeEnum[nz(7959)]=nz(7959);var IfcFurnitureTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcFurnitureTypeEnum[nz(8504)]=nz(8504),IfcFurnitureTypeEnum.TABLE=nz(8505),IfcFurnitureTypeEnum.DESK=nz(8506),IfcFurnitureTypeEnum[nz(8507)]=nz(8507),IfcFurnitureTypeEnum[nz(8508)]=nz(8508),IfcFurnitureTypeEnum[nz(8509)]=nz(8509),IfcFurnitureTypeEnum.SOFA=nz(8510),IfcFurnitureTypeEnum[nz(7958)]=nz(7958),IfcFurnitureTypeEnum[nz(7959)]=nz(7959);var IfcGeographicElementTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcGeographicElementTypeEnum[nz(8511)]=nz(8511),IfcGeographicElementTypeEnum[nz(8512)]=nz(8512),IfcGeographicElementTypeEnum[nz(7958)]=nz(7958),IfcGeographicElementTypeEnum[nz(7959)]=nz(7959);var IfcGeometricProjectionEnum=class{constructor(t){this[nz(439)]=t}};IfcGeometricProjectionEnum[nz(8513)]=nz(8513),IfcGeometricProjectionEnum[nz(8514)]=nz(8514),IfcGeometricProjectionEnum[nz(8515)]=nz(8515),IfcGeometricProjectionEnum.PLAN_VIEW="PLAN_VIEW",IfcGeometricProjectionEnum[nz(8516)]="REFLECTED_PLAN_VIEW",IfcGeometricProjectionEnum.SECTION_VIEW=nz(8517),IfcGeometricProjectionEnum[nz(8518)]=nz(8518),IfcGeometricProjectionEnum[nz(7958)]=nz(7958),IfcGeometricProjectionEnum[nz(7959)]=nz(7959);var IfcGlobalOrLocalEnum=class{constructor(t){this[nz(439)]=t}};IfcGlobalOrLocalEnum[nz(8519)]="GLOBAL_COORDS",IfcGlobalOrLocalEnum[nz(8520)]=nz(8520);var IfcGridTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcGridTypeEnum[nz(8396)]="RECTANGULAR",IfcGridTypeEnum[nz(8521)]="RADIAL",IfcGridTypeEnum[nz(8522)]="TRIANGULAR",IfcGridTypeEnum[nz(8523)]=nz(8523),IfcGridTypeEnum[nz(7958)]=nz(7958),IfcGridTypeEnum[nz(7959)]="NOTDEFINED";var IfcHeatExchangerTypeEnum=class{constructor(t){this.value=t}};IfcHeatExchangerTypeEnum.PLATE=nz(8524),IfcHeatExchangerTypeEnum[nz(8525)]=nz(8525),IfcHeatExchangerTypeEnum[nz(7958)]=nz(7958),IfcHeatExchangerTypeEnum[nz(7959)]=nz(7959);var IfcHumidifierTypeEnum=class{constructor(t){this.value=t}};IfcHumidifierTypeEnum[nz(8526)]=nz(8526),IfcHumidifierTypeEnum[nz(8527)]=nz(8527),IfcHumidifierTypeEnum[nz(8528)]=nz(8528),IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT=nz(8529),IfcHumidifierTypeEnum[nz(8530)]="ADIABATICATOMIZING",IfcHumidifierTypeEnum[nz(8531)]=nz(8531),IfcHumidifierTypeEnum[nz(8532)]=nz(8532),IfcHumidifierTypeEnum[nz(8533)]=nz(8533),IfcHumidifierTypeEnum[nz(8534)]=nz(8534),IfcHumidifierTypeEnum[nz(8535)]="ASSISTEDNATURALGAS",IfcHumidifierTypeEnum[nz(8536)]=nz(8536),IfcHumidifierTypeEnum.ASSISTEDBUTANE="ASSISTEDBUTANE",IfcHumidifierTypeEnum[nz(8537)]=nz(8537),IfcHumidifierTypeEnum[nz(7958)]=nz(7958),IfcHumidifierTypeEnum[nz(7959)]=nz(7959);var IfcInterceptorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcInterceptorTypeEnum[nz(8538)]=nz(8538),IfcInterceptorTypeEnum.GREASE=nz(8539),IfcInterceptorTypeEnum.OIL=nz(8343),IfcInterceptorTypeEnum[nz(8540)]=nz(8540),IfcInterceptorTypeEnum[nz(7958)]=nz(7958),IfcInterceptorTypeEnum[nz(7959)]=nz(7959);var IfcInternalOrExternalEnum=class{constructor(t){this[nz(439)]=t}};IfcInternalOrExternalEnum[nz(8541)]=nz(8541),IfcInternalOrExternalEnum[nz(8464)]="EXTERNAL",IfcInternalOrExternalEnum[nz(8465)]=nz(8465),IfcInternalOrExternalEnum[nz(8466)]=nz(8466),IfcInternalOrExternalEnum.EXTERNAL_FIRE=nz(8467),IfcInternalOrExternalEnum[nz(7959)]="NOTDEFINED";var IfcInventoryTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcInventoryTypeEnum.ASSETINVENTORY=nz(8542),IfcInventoryTypeEnum.SPACEINVENTORY=nz(8543),IfcInventoryTypeEnum[nz(8544)]="FURNITUREINVENTORY",IfcInventoryTypeEnum[nz(7958)]=nz(7958),IfcInventoryTypeEnum[nz(7959)]=nz(7959);var IfcJunctionBoxTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcJunctionBoxTypeEnum[nz(8329)]=nz(8329),IfcJunctionBoxTypeEnum.POWER="POWER",IfcJunctionBoxTypeEnum.USERDEFINED=nz(7958),IfcJunctionBoxTypeEnum[nz(7959)]="NOTDEFINED";var IfcKnotType=class{constructor(t){this.value=t}};IfcKnotType[nz(8545)]=nz(8545),IfcKnotType.QUASI_UNIFORM_KNOTS=nz(8546),IfcKnotType.PIECEWISE_BEZIER_KNOTS=nz(8547),IfcKnotType.UNSPECIFIED=nz(8044);var IfcLaborResourceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcLaborResourceTypeEnum[nz(8548)]=nz(8548),IfcLaborResourceTypeEnum[nz(8549)]=nz(8549),IfcLaborResourceTypeEnum[nz(8550)]=nz(8550),IfcLaborResourceTypeEnum[nz(8204)]=nz(8204),IfcLaborResourceTypeEnum.DRYWALL=nz(8205),IfcLaborResourceTypeEnum.ELECTRIC="ELECTRIC",IfcLaborResourceTypeEnum[nz(8551)]=nz(8551),IfcLaborResourceTypeEnum[nz(8232)]=nz(8232),IfcLaborResourceTypeEnum[nz(8552)]=nz(8552),IfcLaborResourceTypeEnum.HVAC="HVAC",IfcLaborResourceTypeEnum.LANDSCAPING=nz(8553),IfcLaborResourceTypeEnum[nz(8208)]=nz(8208),IfcLaborResourceTypeEnum[nz(8554)]=nz(8554),IfcLaborResourceTypeEnum[nz(8200)]=nz(8200),IfcLaborResourceTypeEnum.PLUMBING=nz(8555),IfcLaborResourceTypeEnum[nz(8234)]=nz(8234),IfcLaborResourceTypeEnum[nz(8556)]=nz(8556),IfcLaborResourceTypeEnum[nz(8557)]=nz(8557),IfcLaborResourceTypeEnum[nz(8558)]=nz(8558),IfcLaborResourceTypeEnum[nz(7958)]="USERDEFINED",IfcLaborResourceTypeEnum[nz(7959)]=nz(7959);var IfcLampTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcLampTypeEnum[nz(8559)]=nz(8559),IfcLampTypeEnum[nz(8560)]=nz(8560),IfcLampTypeEnum[nz(8561)]=nz(8561),IfcLampTypeEnum[nz(8562)]=nz(8562),IfcLampTypeEnum[nz(8563)]=nz(8563),IfcLampTypeEnum[nz(8564)]="LED",IfcLampTypeEnum[nz(8565)]=nz(8565),IfcLampTypeEnum.OLED="OLED",IfcLampTypeEnum[nz(8566)]=nz(8566),IfcLampTypeEnum.USERDEFINED="USERDEFINED",IfcLampTypeEnum[nz(7959)]=nz(7959);var IfcLayerSetDirectionEnum=class{constructor(t){this[nz(439)]=t}};IfcLayerSetDirectionEnum.AXIS1=nz(8567),IfcLayerSetDirectionEnum[nz(8568)]=nz(8568),IfcLayerSetDirectionEnum[nz(8569)]="AXIS3";var IfcLightDistributionCurveEnum=class{constructor(t){this[nz(439)]=t}};IfcLightDistributionCurveEnum[nz(8570)]="TYPE_A",IfcLightDistributionCurveEnum[nz(8571)]=nz(8571),IfcLightDistributionCurveEnum[nz(8572)]=nz(8572),IfcLightDistributionCurveEnum.NOTDEFINED="NOTDEFINED";var IfcLightEmissionSourceEnum=class{constructor(t){this[nz(439)]=t}};IfcLightEmissionSourceEnum.COMPACTFLUORESCENT=nz(8559),IfcLightEmissionSourceEnum[nz(8560)]=nz(8560),IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY="HIGHPRESSUREMERCURY",IfcLightEmissionSourceEnum[nz(8563)]=nz(8563),IfcLightEmissionSourceEnum[nz(8573)]="LIGHTEMITTINGDIODE",IfcLightEmissionSourceEnum.LOWPRESSURESODIUM=nz(8574),IfcLightEmissionSourceEnum[nz(8575)]=nz(8575),IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN=nz(8576),IfcLightEmissionSourceEnum.METALHALIDE=nz(8565),IfcLightEmissionSourceEnum[nz(8566)]=nz(8566),IfcLightEmissionSourceEnum.NOTDEFINED=nz(7959);var IfcLightFixtureTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcLightFixtureTypeEnum[nz(8577)]=nz(8577),IfcLightFixtureTypeEnum[nz(8578)]=nz(8578),IfcLightFixtureTypeEnum[nz(8579)]="SECURITYLIGHTING",IfcLightFixtureTypeEnum[nz(7958)]="USERDEFINED",IfcLightFixtureTypeEnum[nz(7959)]=nz(7959);var IfcLoadGroupTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcLoadGroupTypeEnum[nz(8580)]=nz(8580),IfcLoadGroupTypeEnum[nz(8581)]=nz(8581),IfcLoadGroupTypeEnum[nz(8582)]="LOAD_COMBINATION",IfcLoadGroupTypeEnum[nz(7958)]=nz(7958),IfcLoadGroupTypeEnum[nz(7959)]="NOTDEFINED";var IfcLogicalOperatorEnum=class{constructor(t){this.value=t}};IfcLogicalOperatorEnum[nz(8583)]=nz(8583),IfcLogicalOperatorEnum[nz(8584)]="LOGICALOR",IfcLogicalOperatorEnum[nz(8585)]=nz(8585),IfcLogicalOperatorEnum[nz(8586)]=nz(8586),IfcLogicalOperatorEnum.LOGICALNOTOR=nz(8587);var IfcMechanicalFastenerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcMechanicalFastenerTypeEnum[nz(8588)]=nz(8588),IfcMechanicalFastenerTypeEnum[nz(8589)]=nz(8589),IfcMechanicalFastenerTypeEnum[nz(8590)]=nz(8590),IfcMechanicalFastenerTypeEnum[nz(8591)]="NAIL",IfcMechanicalFastenerTypeEnum[nz(8592)]=nz(8592),IfcMechanicalFastenerTypeEnum[nz(8593)]=nz(8593),IfcMechanicalFastenerTypeEnum[nz(8594)]=nz(8594),IfcMechanicalFastenerTypeEnum[nz(8595)]=nz(8595),IfcMechanicalFastenerTypeEnum[nz(8596)]=nz(8596),IfcMechanicalFastenerTypeEnum[nz(8597)]=nz(8597),IfcMechanicalFastenerTypeEnum[nz(8598)]=nz(8598),IfcMechanicalFastenerTypeEnum[nz(7958)]="USERDEFINED",IfcMechanicalFastenerTypeEnum[nz(7959)]=nz(7959);var IfcMedicalDeviceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcMedicalDeviceTypeEnum[nz(8599)]=nz(8599),IfcMedicalDeviceTypeEnum.FEEDAIRUNIT=nz(8600),IfcMedicalDeviceTypeEnum[nz(8601)]=nz(8601),IfcMedicalDeviceTypeEnum[nz(8602)]="OXYGENPLANT",IfcMedicalDeviceTypeEnum[nz(8603)]=nz(8603),IfcMedicalDeviceTypeEnum[nz(7958)]=nz(7958),IfcMedicalDeviceTypeEnum[nz(7959)]="NOTDEFINED";var IfcMemberTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcMemberTypeEnum.BRACE=nz(8604),IfcMemberTypeEnum[nz(8605)]=nz(8605),IfcMemberTypeEnum.COLLAR="COLLAR",IfcMemberTypeEnum[nz(8606)]=nz(8606),IfcMemberTypeEnum.MULLION=nz(8607),IfcMemberTypeEnum.PLATE=nz(8524),IfcMemberTypeEnum[nz(7956)]=nz(7956),IfcMemberTypeEnum[nz(8608)]=nz(8608),IfcMemberTypeEnum[nz(8609)]=nz(8609),IfcMemberTypeEnum[nz(8610)]=nz(8610),IfcMemberTypeEnum[nz(8611)]="STRUT",IfcMemberTypeEnum[nz(8612)]=nz(8612),IfcMemberTypeEnum[nz(8613)]=nz(8613),IfcMemberTypeEnum[nz(8614)]=nz(8614),IfcMemberTypeEnum[nz(8615)]=nz(8615),IfcMemberTypeEnum[nz(8616)]=nz(8616),IfcMemberTypeEnum.STAY_CABLE=nz(8617),IfcMemberTypeEnum[nz(7958)]="USERDEFINED",IfcMemberTypeEnum[nz(7959)]="NOTDEFINED";var IfcMotorConnectionTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcMotorConnectionTypeEnum[nz(8618)]=nz(8618),IfcMotorConnectionTypeEnum[nz(8619)]="COUPLING",IfcMotorConnectionTypeEnum[nz(8620)]=nz(8620),IfcMotorConnectionTypeEnum.USERDEFINED="USERDEFINED",IfcMotorConnectionTypeEnum[nz(7959)]=nz(7959);var IfcNullStyle=class{constructor(t){this.value=t}};IfcNullStyle.NULL=nz(8621);var IfcObjectTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcObjectTypeEnum[nz(8622)]=nz(8622),IfcObjectTypeEnum.PROCESS="PROCESS",IfcObjectTypeEnum.CONTROL=nz(8327),IfcObjectTypeEnum[nz(8623)]=nz(8623),IfcObjectTypeEnum[nz(8624)]=nz(8624),IfcObjectTypeEnum.GROUP=nz(8625),IfcObjectTypeEnum[nz(8626)]=nz(8626),IfcObjectTypeEnum.NOTDEFINED=nz(7959);var IfcObjectiveEnum=class{constructor(t){this[nz(439)]=t}};IfcObjectiveEnum[nz(8627)]=nz(8627),IfcObjectiveEnum[nz(8628)]=nz(8628),IfcObjectiveEnum.DESIGNINTENT=nz(8629),IfcObjectiveEnum[nz(8464)]=nz(8464),IfcObjectiveEnum[nz(8630)]=nz(8630),IfcObjectiveEnum.MERGECONFLICT=nz(8631),IfcObjectiveEnum.MODELVIEW=nz(8632),IfcObjectiveEnum.PARAMETER=nz(8633),IfcObjectiveEnum[nz(8634)]=nz(8634),IfcObjectiveEnum[nz(8635)]=nz(8635),IfcObjectiveEnum[nz(8636)]=nz(8636),IfcObjectiveEnum[nz(7958)]="USERDEFINED",IfcObjectiveEnum.NOTDEFINED=nz(7959);var IfcOccupantTypeEnum=class{constructor(t){this.value=t}};IfcOccupantTypeEnum[nz(8637)]=nz(8637),IfcOccupantTypeEnum[nz(8638)]="ASSIGNOR",IfcOccupantTypeEnum.LESSEE=nz(8639),IfcOccupantTypeEnum[nz(8640)]=nz(8640),IfcOccupantTypeEnum[nz(8641)]=nz(8641),IfcOccupantTypeEnum[nz(8642)]=nz(8642),IfcOccupantTypeEnum.TENANT=nz(8643),IfcOccupantTypeEnum[nz(7958)]=nz(7958),IfcOccupantTypeEnum[nz(7959)]=nz(7959);var IfcOpeningElementTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcOpeningElementTypeEnum[nz(8644)]="OPENING",IfcOpeningElementTypeEnum[nz(8645)]=nz(8645),IfcOpeningElementTypeEnum[nz(7958)]=nz(7958),IfcOpeningElementTypeEnum[nz(7959)]=nz(7959);var IfcOutletTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcOutletTypeEnum[nz(8646)]=nz(8646),IfcOutletTypeEnum[nz(8647)]="COMMUNICATIONSOUTLET",IfcOutletTypeEnum[nz(8648)]="POWEROUTLET",IfcOutletTypeEnum[nz(8649)]=nz(8649),IfcOutletTypeEnum[nz(8650)]=nz(8650),IfcOutletTypeEnum[nz(7958)]=nz(7958),IfcOutletTypeEnum.NOTDEFINED="NOTDEFINED";var IfcPerformanceHistoryTypeEnum=class{constructor(t){this.value=t}};IfcPerformanceHistoryTypeEnum.USERDEFINED="USERDEFINED",IfcPerformanceHistoryTypeEnum[nz(7959)]=nz(7959);var IfcPermeableCoveringOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcPermeableCoveringOperationEnum[nz(8651)]="GRILL",IfcPermeableCoveringOperationEnum[nz(8652)]="LOUVER",IfcPermeableCoveringOperationEnum[nz(8653)]="SCREEN",IfcPermeableCoveringOperationEnum[nz(7958)]=nz(7958),IfcPermeableCoveringOperationEnum.NOTDEFINED=nz(7959);var IfcPermitTypeEnum=class{constructor(t){this.value=t}};IfcPermitTypeEnum.ACCESS=nz(8654),IfcPermitTypeEnum[nz(8655)]=nz(8655),IfcPermitTypeEnum[nz(8656)]="WORK",IfcPermitTypeEnum.USERDEFINED=nz(7958),IfcPermitTypeEnum[nz(7959)]="NOTDEFINED";var IfcPhysicalOrVirtualEnum=class{constructor(t){this[nz(439)]=t}};IfcPhysicalOrVirtualEnum[nz(8657)]=nz(8657),IfcPhysicalOrVirtualEnum[nz(8658)]=nz(8658),IfcPhysicalOrVirtualEnum.NOTDEFINED="NOTDEFINED";var IfcPileConstructionEnum=class{constructor(t){this.value=t}};IfcPileConstructionEnum[nz(8659)]=nz(8659),IfcPileConstructionEnum.COMPOSITE="COMPOSITE",IfcPileConstructionEnum[nz(8660)]=nz(8660),IfcPileConstructionEnum[nz(8661)]=nz(8661),IfcPileConstructionEnum[nz(7958)]="USERDEFINED",IfcPileConstructionEnum[nz(7959)]=nz(7959);var IfcPileTypeEnum=class{constructor(t){this.value=t}};IfcPileTypeEnum.BORED=nz(8662),IfcPileTypeEnum[nz(8663)]=nz(8663),IfcPileTypeEnum[nz(8664)]="JETGROUTING",IfcPileTypeEnum.COHESION=nz(8665),IfcPileTypeEnum[nz(8666)]=nz(8666),IfcPileTypeEnum[nz(8667)]=nz(8667),IfcPileTypeEnum[nz(7958)]="USERDEFINED",IfcPileTypeEnum[nz(7959)]="NOTDEFINED";var IfcPipeFittingTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcPipeFittingTypeEnum[nz(8124)]=nz(8124),IfcPipeFittingTypeEnum[nz(8131)]=nz(8131),IfcPipeFittingTypeEnum[nz(8132)]=nz(8132),IfcPipeFittingTypeEnum.EXIT=nz(8133),IfcPipeFittingTypeEnum[nz(8134)]=nz(8134),IfcPipeFittingTypeEnum[nz(8392)]="OBSTRUCTION",IfcPipeFittingTypeEnum[nz(8135)]="TRANSITION",IfcPipeFittingTypeEnum[nz(7958)]=nz(7958),IfcPipeFittingTypeEnum[nz(7959)]=nz(7959);var IfcPipeSegmentTypeEnum=class{constructor(t){this.value=t}};IfcPipeSegmentTypeEnum[nz(8104)]=nz(8104),IfcPipeSegmentTypeEnum[nz(8394)]="FLEXIBLESEGMENT",IfcPipeSegmentTypeEnum[nz(8393)]=nz(8393),IfcPipeSegmentTypeEnum.GUTTER=nz(8668),IfcPipeSegmentTypeEnum[nz(8669)]=nz(8669),IfcPipeSegmentTypeEnum[nz(7958)]=nz(7958),IfcPipeSegmentTypeEnum[nz(7959)]=nz(7959);var IfcPlateTypeEnum=class{constructor(t){this.value=t}};IfcPlateTypeEnum[nz(8670)]=nz(8670),IfcPlateTypeEnum.SHEET=nz(8671),IfcPlateTypeEnum[nz(8672)]=nz(8672),IfcPlateTypeEnum[nz(8673)]=nz(8673),IfcPlateTypeEnum.STIFFENER_PLATE=nz(8674),IfcPlateTypeEnum[nz(8675)]=nz(8675),IfcPlateTypeEnum[nz(8676)]=nz(8676),IfcPlateTypeEnum.SPLICE_PLATE="SPLICE_PLATE",IfcPlateTypeEnum.BASE_PLATE=nz(8677),IfcPlateTypeEnum[nz(7958)]=nz(7958),IfcPlateTypeEnum[nz(7959)]=nz(7959);var IfcPreferredSurfaceCurveRepresentation=class{constructor(t){this.value=t}};IfcPreferredSurfaceCurveRepresentation[nz(8678)]="CURVE3D",IfcPreferredSurfaceCurveRepresentation[nz(8679)]=nz(8679),IfcPreferredSurfaceCurveRepresentation.PCURVE_S2=nz(8680);var IfcProcedureTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcProcedureTypeEnum[nz(8681)]="ADVICE_CAUTION",IfcProcedureTypeEnum.ADVICE_NOTE="ADVICE_NOTE",IfcProcedureTypeEnum[nz(8682)]=nz(8682),IfcProcedureTypeEnum[nz(8683)]=nz(8683),IfcProcedureTypeEnum[nz(8684)]=nz(8684),IfcProcedureTypeEnum[nz(8685)]=nz(8685),IfcProcedureTypeEnum.STARTUP=nz(8686),IfcProcedureTypeEnum[nz(7958)]=nz(7958),IfcProcedureTypeEnum.NOTDEFINED="NOTDEFINED";var IfcProfileTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcProfileTypeEnum[nz(8687)]=nz(8687),IfcProfileTypeEnum[nz(8688)]="AREA";var IfcProjectOrderTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcProjectOrderTypeEnum[nz(8689)]=nz(8689),IfcProjectOrderTypeEnum[nz(8690)]=nz(8690),IfcProjectOrderTypeEnum.MOVEORDER=nz(8691),IfcProjectOrderTypeEnum[nz(8692)]=nz(8692),IfcProjectOrderTypeEnum[nz(8693)]=nz(8693),IfcProjectOrderTypeEnum[nz(7958)]=nz(7958),IfcProjectOrderTypeEnum[nz(7959)]=nz(7959);var IfcProjectedOrTrueLengthEnum=class{constructor(t){this.value=t}};IfcProjectedOrTrueLengthEnum[nz(8694)]=nz(8694),IfcProjectedOrTrueLengthEnum[nz(8695)]="TRUE_LENGTH";var IfcProjectionElementTypeEnum=class{constructor(t){this.value=t}};IfcProjectionElementTypeEnum[nz(8696)]="BLISTER",IfcProjectionElementTypeEnum[nz(8697)]=nz(8697),IfcProjectionElementTypeEnum[nz(7958)]="USERDEFINED",IfcProjectionElementTypeEnum.NOTDEFINED=nz(7959);var IfcPropertySetTemplateTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcPropertySetTemplateTypeEnum[nz(8698)]=nz(8698),IfcPropertySetTemplateTypeEnum[nz(8699)]="PSET_TYPEDRIVENOVERRIDE",IfcPropertySetTemplateTypeEnum[nz(8700)]=nz(8700),IfcPropertySetTemplateTypeEnum[nz(8701)]=nz(8701),IfcPropertySetTemplateTypeEnum[nz(8702)]=nz(8702),IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE=nz(8703),IfcPropertySetTemplateTypeEnum[nz(8704)]=nz(8704),IfcPropertySetTemplateTypeEnum[nz(7959)]="NOTDEFINED";var IfcProtectiveDeviceTrippingUnitTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC=nz(8705),IfcProtectiveDeviceTrippingUnitTypeEnum[nz(8706)]="ELECTROMAGNETIC",IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT=nz(8707),IfcProtectiveDeviceTrippingUnitTypeEnum[nz(8708)]="THERMAL",IfcProtectiveDeviceTrippingUnitTypeEnum[nz(7958)]="USERDEFINED",IfcProtectiveDeviceTrippingUnitTypeEnum[nz(7959)]=nz(7959);var IfcProtectiveDeviceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcProtectiveDeviceTypeEnum[nz(8709)]=nz(8709),IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER=nz(8710),IfcProtectiveDeviceTypeEnum[nz(8711)]=nz(8711),IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR=nz(8712),IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER=nz(8713),IfcProtectiveDeviceTypeEnum[nz(8714)]=nz(8714),IfcProtectiveDeviceTypeEnum[nz(8715)]="VARISTOR",IfcProtectiveDeviceTypeEnum[nz(7958)]=nz(7958),IfcProtectiveDeviceTypeEnum[nz(7959)]=nz(7959);var IfcPumpTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcPumpTypeEnum[nz(8716)]=nz(8716),IfcPumpTypeEnum[nz(8717)]="ENDSUCTION",IfcPumpTypeEnum[nz(8718)]="SPLITCASE",IfcPumpTypeEnum[nz(8719)]="SUBMERSIBLEPUMP",IfcPumpTypeEnum[nz(8720)]=nz(8720),IfcPumpTypeEnum[nz(8721)]="VERTICALINLINE",IfcPumpTypeEnum[nz(8722)]=nz(8722),IfcPumpTypeEnum[nz(7958)]=nz(7958),IfcPumpTypeEnum[nz(7959)]="NOTDEFINED";var IfcRailingTypeEnum=class{constructor(t){this.value=t}};IfcRailingTypeEnum[nz(8723)]=nz(8723),IfcRailingTypeEnum[nz(8724)]=nz(8724),IfcRailingTypeEnum[nz(8725)]=nz(8725),IfcRailingTypeEnum[nz(7958)]="USERDEFINED",IfcRailingTypeEnum[nz(7959)]=nz(7959);var IfcRampFlightTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcRampFlightTypeEnum[nz(8726)]="STRAIGHT",IfcRampFlightTypeEnum[nz(8727)]=nz(8727),IfcRampFlightTypeEnum[nz(7958)]="USERDEFINED",IfcRampFlightTypeEnum[nz(7959)]="NOTDEFINED";var IfcRampTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcRampTypeEnum[nz(8728)]="STRAIGHT_RUN_RAMP",IfcRampTypeEnum[nz(8729)]="TWO_STRAIGHT_RUN_RAMP",IfcRampTypeEnum.QUARTER_TURN_RAMP=nz(8730),IfcRampTypeEnum[nz(8731)]=nz(8731),IfcRampTypeEnum[nz(8732)]="HALF_TURN_RAMP",IfcRampTypeEnum[nz(8733)]=nz(8733),IfcRampTypeEnum[nz(7958)]=nz(7958),IfcRampTypeEnum.NOTDEFINED=nz(7959);var IfcRecurrenceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcRecurrenceTypeEnum[nz(8734)]=nz(8734),IfcRecurrenceTypeEnum[nz(8735)]=nz(8735),IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH="MONTHLY_BY_DAY_OF_MONTH",IfcRecurrenceTypeEnum[nz(8736)]=nz(8736),IfcRecurrenceTypeEnum[nz(8737)]=nz(8737),IfcRecurrenceTypeEnum[nz(8738)]=nz(8738),IfcRecurrenceTypeEnum[nz(8739)]="YEARLY_BY_DAY_OF_MONTH",IfcRecurrenceTypeEnum[nz(8740)]=nz(8740);var IfcReferentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcReferentTypeEnum[nz(8741)]=nz(8741),IfcReferentTypeEnum[nz(8742)]=nz(8742),IfcReferentTypeEnum[nz(8743)]=nz(8743),IfcReferentTypeEnum.USERDEFINED=nz(7958),IfcReferentTypeEnum.NOTDEFINED=nz(7959);var IfcReflectanceMethodEnum=class{constructor(t){this[nz(439)]=t}};IfcReflectanceMethodEnum[nz(8744)]=nz(8744),IfcReflectanceMethodEnum[nz(8745)]=nz(8745),IfcReflectanceMethodEnum.GLASS=nz(8746),IfcReflectanceMethodEnum.MATT=nz(8747),IfcReflectanceMethodEnum.METAL="METAL",IfcReflectanceMethodEnum[nz(8748)]="MIRROR",IfcReflectanceMethodEnum[nz(8749)]="PHONG",IfcReflectanceMethodEnum.PLASTIC=nz(8210),IfcReflectanceMethodEnum[nz(8750)]=nz(8750),IfcReflectanceMethodEnum[nz(7959)]=nz(7959);var IfcReinforcingBarRoleEnum=class{constructor(t){this[nz(439)]=t}};IfcReinforcingBarRoleEnum[nz(8751)]=nz(8751),IfcReinforcingBarRoleEnum.SHEAR=nz(8752),IfcReinforcingBarRoleEnum[nz(8753)]="LIGATURE",IfcReinforcingBarRoleEnum[nz(8612)]=nz(8612),IfcReinforcingBarRoleEnum.PUNCHING=nz(8754),IfcReinforcingBarRoleEnum[nz(8755)]=nz(8755),IfcReinforcingBarRoleEnum[nz(8756)]=nz(8756),IfcReinforcingBarRoleEnum[nz(8757)]=nz(8757),IfcReinforcingBarRoleEnum[nz(7958)]=nz(7958),IfcReinforcingBarRoleEnum[nz(7959)]="NOTDEFINED";var IfcReinforcingBarSurfaceEnum=class{constructor(t){this[nz(439)]=t}};IfcReinforcingBarSurfaceEnum[nz(8758)]=nz(8758),IfcReinforcingBarSurfaceEnum.TEXTURED=nz(8759);var IfcReinforcingBarTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcReinforcingBarTypeEnum[nz(8757)]=nz(8757),IfcReinforcingBarTypeEnum[nz(8755)]=nz(8755),IfcReinforcingBarTypeEnum[nz(8753)]=nz(8753),IfcReinforcingBarTypeEnum[nz(8751)]="MAIN",IfcReinforcingBarTypeEnum[nz(8754)]=nz(8754),IfcReinforcingBarTypeEnum.RING="RING",IfcReinforcingBarTypeEnum.SHEAR=nz(8752),IfcReinforcingBarTypeEnum.STUD=nz(8612),IfcReinforcingBarTypeEnum[nz(8760)]=nz(8760),IfcReinforcingBarTypeEnum.USERDEFINED=nz(7958),IfcReinforcingBarTypeEnum[nz(7959)]="NOTDEFINED";var IfcReinforcingMeshTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcReinforcingMeshTypeEnum[nz(7958)]="USERDEFINED",IfcReinforcingMeshTypeEnum[nz(7959)]=nz(7959);var IfcRoleEnum=class{constructor(t){this[nz(439)]=t}};IfcRoleEnum[nz(8761)]=nz(8761),IfcRoleEnum.MANUFACTURER=nz(8762),IfcRoleEnum[nz(8763)]=nz(8763),IfcRoleEnum[nz(8764)]=nz(8764),IfcRoleEnum[nz(8765)]=nz(8765),IfcRoleEnum[nz(8766)]=nz(8766),IfcRoleEnum[nz(8767)]=nz(8767),IfcRoleEnum[nz(8768)]="CLIENT",IfcRoleEnum[nz(8769)]=nz(8769),IfcRoleEnum.BUILDINGOPERATOR="BUILDINGOPERATOR",IfcRoleEnum[nz(8770)]=nz(8770),IfcRoleEnum[nz(8771)]=nz(8771),IfcRoleEnum[nz(8772)]=nz(8772),IfcRoleEnum[nz(8773)]=nz(8773),IfcRoleEnum.CIVILENGINEER=nz(8774),IfcRoleEnum[nz(8775)]="COMMISSIONINGENGINEER",IfcRoleEnum.ENGINEER=nz(8776),IfcRoleEnum.OWNER=nz(8642),IfcRoleEnum[nz(8777)]=nz(8777),IfcRoleEnum.CONSTRUCTIONMANAGER=nz(8778),IfcRoleEnum[nz(8779)]="FIELDCONSTRUCTIONMANAGER",IfcRoleEnum.RESELLER=nz(8780),IfcRoleEnum[nz(7958)]=nz(7958);var IfcRoofTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcRoofTypeEnum[nz(8781)]="FLAT_ROOF",IfcRoofTypeEnum[nz(8782)]=nz(8782),IfcRoofTypeEnum[nz(8783)]=nz(8783),IfcRoofTypeEnum[nz(8784)]=nz(8784),IfcRoofTypeEnum.HIPPED_GABLE_ROOF="HIPPED_GABLE_ROOF",IfcRoofTypeEnum[nz(8785)]=nz(8785),IfcRoofTypeEnum[nz(8786)]=nz(8786),IfcRoofTypeEnum[nz(8787)]="BARREL_ROOF",IfcRoofTypeEnum[nz(8788)]=nz(8788),IfcRoofTypeEnum[nz(8789)]=nz(8789),IfcRoofTypeEnum[nz(8790)]=nz(8790),IfcRoofTypeEnum.DOME_ROOF=nz(8791),IfcRoofTypeEnum[nz(8792)]=nz(8792),IfcRoofTypeEnum[nz(7958)]="USERDEFINED",IfcRoofTypeEnum.NOTDEFINED=nz(7959);var IfcSIPrefix=class{constructor(t){this[nz(439)]=t}};IfcSIPrefix[nz(8793)]=nz(8793),IfcSIPrefix[nz(8794)]=nz(8794),IfcSIPrefix[nz(8795)]=nz(8795),IfcSIPrefix[nz(8796)]=nz(8796),IfcSIPrefix[nz(8797)]=nz(8797),IfcSIPrefix[nz(8798)]=nz(8798),IfcSIPrefix[nz(8799)]=nz(8799),IfcSIPrefix[nz(8800)]="DECA",IfcSIPrefix.DECI=nz(8801),IfcSIPrefix.CENTI="CENTI",IfcSIPrefix[nz(8802)]=nz(8802),IfcSIPrefix[nz(8803)]=nz(8803),IfcSIPrefix[nz(8804)]=nz(8804),IfcSIPrefix[nz(8805)]=nz(8805),IfcSIPrefix[nz(8806)]=nz(8806),IfcSIPrefix[nz(8807)]=nz(8807);var IfcSIUnitName=class{constructor(t){this.value=t}};IfcSIUnitName[nz(8808)]=nz(8808),IfcSIUnitName[nz(8809)]="BECQUEREL",IfcSIUnitName[nz(8810)]="CANDELA",IfcSIUnitName[nz(8811)]="COULOMB",IfcSIUnitName[nz(8812)]=nz(8812),IfcSIUnitName[nz(8813)]="DEGREE_CELSIUS",IfcSIUnitName.FARAD=nz(8814),IfcSIUnitName[nz(8815)]=nz(8815),IfcSIUnitName[nz(8816)]=nz(8816),IfcSIUnitName[nz(8817)]="HENRY",IfcSIUnitName[nz(8818)]=nz(8818),IfcSIUnitName[nz(8819)]=nz(8819),IfcSIUnitName[nz(8820)]=nz(8820),IfcSIUnitName[nz(8821)]=nz(8821),IfcSIUnitName[nz(8822)]=nz(8822),IfcSIUnitName[nz(8823)]=nz(8823),IfcSIUnitName.MOLE=nz(8824),IfcSIUnitName[nz(8825)]=nz(8825),IfcSIUnitName[nz(8826)]="OHM",IfcSIUnitName.PASCAL=nz(8827),IfcSIUnitName.RADIAN="RADIAN",IfcSIUnitName[nz(8828)]=nz(8828),IfcSIUnitName.SIEMENS=nz(8829),IfcSIUnitName[nz(8830)]=nz(8830),IfcSIUnitName[nz(8831)]=nz(8831),IfcSIUnitName[nz(8832)]=nz(8832),IfcSIUnitName[nz(8833)]=nz(8833),IfcSIUnitName[nz(8834)]=nz(8834),IfcSIUnitName[nz(8835)]=nz(8835),IfcSIUnitName[nz(8836)]=nz(8836);var IfcSanitaryTerminalTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSanitaryTerminalTypeEnum[nz(8837)]=nz(8837),IfcSanitaryTerminalTypeEnum[nz(8838)]=nz(8838),IfcSanitaryTerminalTypeEnum[nz(8839)]=nz(8839),IfcSanitaryTerminalTypeEnum[nz(8840)]=nz(8840),IfcSanitaryTerminalTypeEnum[nz(8488)]=nz(8488),IfcSanitaryTerminalTypeEnum[nz(8841)]="SANITARYFOUNTAIN",IfcSanitaryTerminalTypeEnum[nz(8842)]=nz(8842),IfcSanitaryTerminalTypeEnum[nz(8843)]=nz(8843),IfcSanitaryTerminalTypeEnum[nz(8844)]=nz(8844),IfcSanitaryTerminalTypeEnum[nz(8845)]=nz(8845),IfcSanitaryTerminalTypeEnum.USERDEFINED=nz(7958),IfcSanitaryTerminalTypeEnum[nz(7959)]=nz(7959);var IfcSectionTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSectionTypeEnum[nz(8846)]=nz(8846),IfcSectionTypeEnum.TAPERED=nz(8847);var IfcSensorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSensorTypeEnum[nz(8848)]=nz(8848),IfcSensorTypeEnum.CO2SENSOR=nz(8849),IfcSensorTypeEnum[nz(8850)]="CONDUCTANCESENSOR",IfcSensorTypeEnum[nz(8851)]=nz(8851),IfcSensorTypeEnum[nz(8852)]=nz(8852),IfcSensorTypeEnum[nz(8853)]=nz(8853),IfcSensorTypeEnum[nz(8854)]=nz(8854),IfcSensorTypeEnum[nz(8855)]=nz(8855),IfcSensorTypeEnum[nz(8856)]=nz(8856),IfcSensorTypeEnum[nz(8857)]=nz(8857),IfcSensorTypeEnum[nz(8858)]=nz(8858),IfcSensorTypeEnum[nz(8859)]=nz(8859),IfcSensorTypeEnum[nz(8860)]=nz(8860),IfcSensorTypeEnum[nz(8861)]=nz(8861),IfcSensorTypeEnum[nz(8862)]="MOISTURESENSOR",IfcSensorTypeEnum.MOVEMENTSENSOR="MOVEMENTSENSOR",IfcSensorTypeEnum[nz(8863)]="PHSENSOR",IfcSensorTypeEnum[nz(8864)]=nz(8864),IfcSensorTypeEnum.RADIATIONSENSOR=nz(8865),IfcSensorTypeEnum.RADIOACTIVITYSENSOR="RADIOACTIVITYSENSOR",IfcSensorTypeEnum.SMOKESENSOR=nz(8866),IfcSensorTypeEnum[nz(8867)]=nz(8867),IfcSensorTypeEnum[nz(8868)]=nz(8868),IfcSensorTypeEnum.WINDSENSOR=nz(8869),IfcSensorTypeEnum[nz(7958)]=nz(7958),IfcSensorTypeEnum[nz(7959)]=nz(7959);var IfcSequenceEnum=class{constructor(t){this.value=t}};IfcSequenceEnum[nz(8870)]=nz(8870),IfcSequenceEnum[nz(8871)]="START_FINISH",IfcSequenceEnum[nz(8872)]="FINISH_START",IfcSequenceEnum[nz(8873)]=nz(8873),IfcSequenceEnum[nz(7958)]=nz(7958),IfcSequenceEnum[nz(7959)]=nz(7959);var IfcShadingDeviceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcShadingDeviceTypeEnum[nz(8874)]=nz(8874),IfcShadingDeviceTypeEnum.SHUTTER=nz(8875),IfcShadingDeviceTypeEnum[nz(8876)]="AWNING",IfcShadingDeviceTypeEnum[nz(7958)]="USERDEFINED",IfcShadingDeviceTypeEnum.NOTDEFINED=nz(7959);var IfcSimplePropertyTemplateTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE=nz(8877),IfcSimplePropertyTemplateTypeEnum[nz(8878)]=nz(8878),IfcSimplePropertyTemplateTypeEnum[nz(8879)]=nz(8879),IfcSimplePropertyTemplateTypeEnum[nz(8880)]=nz(8880),IfcSimplePropertyTemplateTypeEnum[nz(8881)]=nz(8881),IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE=nz(8882),IfcSimplePropertyTemplateTypeEnum.Q_LENGTH="Q_LENGTH",IfcSimplePropertyTemplateTypeEnum[nz(8883)]=nz(8883),IfcSimplePropertyTemplateTypeEnum.Q_VOLUME="Q_VOLUME",IfcSimplePropertyTemplateTypeEnum[nz(8884)]=nz(8884),IfcSimplePropertyTemplateTypeEnum[nz(8885)]=nz(8885),IfcSimplePropertyTemplateTypeEnum[nz(8886)]=nz(8886);var IfcSlabTypeEnum=class{constructor(t){this.value=t}};IfcSlabTypeEnum[nz(8887)]=nz(8887),IfcSlabTypeEnum[nz(8888)]=nz(8888),IfcSlabTypeEnum[nz(8889)]="LANDING",IfcSlabTypeEnum[nz(8890)]=nz(8890),IfcSlabTypeEnum[nz(8891)]="APPROACH_SLAB",IfcSlabTypeEnum.PAVING=nz(8200),IfcSlabTypeEnum[nz(8892)]=nz(8892),IfcSlabTypeEnum[nz(8893)]="SIDEWALK",IfcSlabTypeEnum[nz(7958)]=nz(7958),IfcSlabTypeEnum[nz(7959)]=nz(7959);var IfcSolarDeviceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSolarDeviceTypeEnum[nz(8894)]=nz(8894),IfcSolarDeviceTypeEnum[nz(8895)]=nz(8895),IfcSolarDeviceTypeEnum[nz(7958)]="USERDEFINED",IfcSolarDeviceTypeEnum[nz(7959)]=nz(7959);var IfcSpaceHeaterTypeEnum=class{constructor(t){this.value=t}};IfcSpaceHeaterTypeEnum.CONVECTOR="CONVECTOR",IfcSpaceHeaterTypeEnum[nz(8896)]=nz(8896),IfcSpaceHeaterTypeEnum[nz(7958)]=nz(7958),IfcSpaceHeaterTypeEnum[nz(7959)]="NOTDEFINED";var IfcSpaceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSpaceTypeEnum[nz(8897)]="SPACE",IfcSpaceTypeEnum[nz(8898)]=nz(8898),IfcSpaceTypeEnum.GFA=nz(8899),IfcSpaceTypeEnum[nz(8541)]=nz(8541),IfcSpaceTypeEnum.EXTERNAL="EXTERNAL",IfcSpaceTypeEnum[nz(7958)]=nz(7958),IfcSpaceTypeEnum[nz(7959)]=nz(7959);var IfcSpatialZoneTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSpatialZoneTypeEnum[nz(8900)]=nz(8900),IfcSpatialZoneTypeEnum.FIRESAFETY=nz(8901),IfcSpatialZoneTypeEnum.LIGHTING="LIGHTING",IfcSpatialZoneTypeEnum[nz(8902)]=nz(8902),IfcSpatialZoneTypeEnum[nz(8347)]=nz(8347),IfcSpatialZoneTypeEnum[nz(8708)]="THERMAL",IfcSpatialZoneTypeEnum[nz(8121)]=nz(8121),IfcSpatialZoneTypeEnum[nz(8352)]=nz(8352),IfcSpatialZoneTypeEnum[nz(7958)]="USERDEFINED",IfcSpatialZoneTypeEnum[nz(7959)]=nz(7959);var IfcStackTerminalTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcStackTerminalTypeEnum[nz(8903)]=nz(8903),IfcStackTerminalTypeEnum[nz(8904)]="COWL",IfcStackTerminalTypeEnum[nz(8905)]=nz(8905),IfcStackTerminalTypeEnum[nz(7958)]=nz(7958),IfcStackTerminalTypeEnum[nz(7959)]="NOTDEFINED";var IfcStairFlightTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcStairFlightTypeEnum[nz(8726)]=nz(8726),IfcStairFlightTypeEnum[nz(8906)]="WINDER",IfcStairFlightTypeEnum.SPIRAL=nz(8727),IfcStairFlightTypeEnum.CURVED="CURVED",IfcStairFlightTypeEnum[nz(8792)]=nz(8792),IfcStairFlightTypeEnum[nz(7958)]=nz(7958),IfcStairFlightTypeEnum[nz(7959)]=nz(7959);var IfcStairTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcStairTypeEnum[nz(8907)]=nz(8907),IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR=nz(8908),IfcStairTypeEnum[nz(8909)]=nz(8909),IfcStairTypeEnum[nz(8910)]=nz(8910),IfcStairTypeEnum[nz(8911)]=nz(8911),IfcStairTypeEnum.HALF_TURN_STAIR=nz(8912),IfcStairTypeEnum[nz(8913)]=nz(8913),IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR="TWO_QUARTER_TURN_STAIR",IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR=nz(8914),IfcStairTypeEnum[nz(8915)]=nz(8915),IfcStairTypeEnum[nz(8916)]="SPIRAL_STAIR",IfcStairTypeEnum[nz(8917)]=nz(8917),IfcStairTypeEnum[nz(8918)]=nz(8918),IfcStairTypeEnum.TWO_CURVED_RUN_STAIR=nz(8919),IfcStairTypeEnum[nz(7958)]=nz(7958),IfcStairTypeEnum.NOTDEFINED=nz(7959);var IfcStateEnum=class{constructor(t){this[nz(439)]=t}};IfcStateEnum[nz(8920)]="READWRITE",IfcStateEnum[nz(8921)]="READONLY",IfcStateEnum[nz(8922)]=nz(8922),IfcStateEnum[nz(8923)]=nz(8923),IfcStateEnum.READONLYLOCKED=nz(8924);var IfcStructuralCurveActivityTypeEnum=class{constructor(t){this.value=t}};IfcStructuralCurveActivityTypeEnum[nz(8925)]="CONST",IfcStructuralCurveActivityTypeEnum[nz(4376)]=nz(4376),IfcStructuralCurveActivityTypeEnum[nz(8926)]=nz(8926),IfcStructuralCurveActivityTypeEnum[nz(8927)]="EQUIDISTANT",IfcStructuralCurveActivityTypeEnum[nz(8928)]=nz(8928),IfcStructuralCurveActivityTypeEnum[nz(8929)]="PARABOLA",IfcStructuralCurveActivityTypeEnum.DISCRETE=nz(8930),IfcStructuralCurveActivityTypeEnum[nz(7958)]=nz(7958),IfcStructuralCurveActivityTypeEnum[nz(7959)]="NOTDEFINED";var IfcStructuralCurveMemberTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcStructuralCurveMemberTypeEnum[nz(8931)]=nz(8931),IfcStructuralCurveMemberTypeEnum[nz(8932)]=nz(8932),IfcStructuralCurveMemberTypeEnum[nz(8316)]=nz(8316),IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER=nz(8933),IfcStructuralCurveMemberTypeEnum[nz(8934)]=nz(8934),IfcStructuralCurveMemberTypeEnum[nz(7958)]="USERDEFINED",IfcStructuralCurveMemberTypeEnum[nz(7959)]=nz(7959);var IfcStructuralSurfaceActivityTypeEnum=class{constructor(t){this.value=t}};IfcStructuralSurfaceActivityTypeEnum[nz(8925)]=nz(8925),IfcStructuralSurfaceActivityTypeEnum.BILINEAR=nz(8935),IfcStructuralSurfaceActivityTypeEnum.DISCRETE="DISCRETE",IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR=nz(8936),IfcStructuralSurfaceActivityTypeEnum[nz(7958)]=nz(7958),IfcStructuralSurfaceActivityTypeEnum[nz(7959)]="NOTDEFINED";var IfcStructuralSurfaceMemberTypeEnum=class{constructor(t){this.value=t}};IfcStructuralSurfaceMemberTypeEnum[nz(8937)]=nz(8937),IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT="MEMBRANE_ELEMENT",IfcStructuralSurfaceMemberTypeEnum[nz(8938)]=nz(8938),IfcStructuralSurfaceMemberTypeEnum[nz(7958)]=nz(7958),IfcStructuralSurfaceMemberTypeEnum[nz(7959)]=nz(7959);var IfcSubContractResourceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSubContractResourceTypeEnum[nz(8939)]=nz(8939),IfcSubContractResourceTypeEnum.WORK=nz(8656),IfcSubContractResourceTypeEnum[nz(7958)]=nz(7958),IfcSubContractResourceTypeEnum[nz(7959)]=nz(7959);var IfcSurfaceFeatureTypeEnum=class{constructor(t){this.value=t}};IfcSurfaceFeatureTypeEnum[nz(8940)]=nz(8940),IfcSurfaceFeatureTypeEnum[nz(8941)]=nz(8941),IfcSurfaceFeatureTypeEnum[nz(8942)]="TREATMENT",IfcSurfaceFeatureTypeEnum[nz(8943)]="DEFECT",IfcSurfaceFeatureTypeEnum[nz(7958)]=nz(7958),IfcSurfaceFeatureTypeEnum.NOTDEFINED=nz(7959);var IfcSurfaceSide=class{constructor(t){this.value=t}};IfcSurfaceSide.POSITIVE=nz(8304),IfcSurfaceSide[nz(8944)]=nz(8944),IfcSurfaceSide[nz(8945)]=nz(8945);var IfcSwitchingDeviceTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcSwitchingDeviceTypeEnum[nz(8946)]=nz(8946),IfcSwitchingDeviceTypeEnum[nz(8947)]=nz(8947),IfcSwitchingDeviceTypeEnum[nz(8948)]=nz(8948),IfcSwitchingDeviceTypeEnum[nz(8949)]=nz(8949),IfcSwitchingDeviceTypeEnum[nz(8950)]=nz(8950),IfcSwitchingDeviceTypeEnum[nz(8951)]=nz(8951),IfcSwitchingDeviceTypeEnum[nz(8952)]=nz(8952),IfcSwitchingDeviceTypeEnum[nz(8953)]="SWITCHDISCONNECTOR",IfcSwitchingDeviceTypeEnum[nz(8954)]=nz(8954),IfcSwitchingDeviceTypeEnum[nz(7958)]="USERDEFINED",IfcSwitchingDeviceTypeEnum[nz(7959)]=nz(7959);var IfcSystemFurnitureElementTypeEnum=class{constructor(t){this.value=t}};IfcSystemFurnitureElementTypeEnum[nz(8955)]=nz(8955),IfcSystemFurnitureElementTypeEnum.WORKSURFACE=nz(8956),IfcSystemFurnitureElementTypeEnum[nz(7958)]=nz(7958),IfcSystemFurnitureElementTypeEnum[nz(7959)]=nz(7959);var IfcTankTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTankTypeEnum.BASIN=nz(8957),IfcTankTypeEnum.BREAKPRESSURE=nz(8958),IfcTankTypeEnum[nz(8959)]=nz(8959),IfcTankTypeEnum[nz(8960)]=nz(8960),IfcTankTypeEnum[nz(8961)]="PRESSUREVESSEL",IfcTankTypeEnum[nz(8962)]="STORAGE",IfcTankTypeEnum[nz(8963)]=nz(8963),IfcTankTypeEnum[nz(7958)]=nz(7958),IfcTankTypeEnum.NOTDEFINED=nz(7959);var IfcTaskDurationEnum=class{constructor(t){this[nz(439)]=t}};IfcTaskDurationEnum[nz(8964)]="ELAPSEDTIME",IfcTaskDurationEnum[nz(8965)]=nz(8965),IfcTaskDurationEnum[nz(7959)]=nz(7959);var IfcTaskTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTaskTypeEnum.ATTENDANCE=nz(8966),IfcTaskTypeEnum[nz(8900)]=nz(8900),IfcTaskTypeEnum[nz(8967)]="DEMOLITION",IfcTaskTypeEnum.DISMANTLE=nz(8968),IfcTaskTypeEnum[nz(8330)]=nz(8330),IfcTaskTypeEnum.INSTALLATION=nz(8969),IfcTaskTypeEnum[nz(8970)]="LOGISTIC",IfcTaskTypeEnum[nz(8971)]=nz(8971),IfcTaskTypeEnum.MOVE="MOVE",IfcTaskTypeEnum.OPERATION="OPERATION",IfcTaskTypeEnum[nz(8972)]=nz(8972),IfcTaskTypeEnum[nz(8973)]=nz(8973),IfcTaskTypeEnum.USERDEFINED=nz(7958),IfcTaskTypeEnum.NOTDEFINED=nz(7959);var IfcTendonAnchorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTendonAnchorTypeEnum[nz(8598)]=nz(8598),IfcTendonAnchorTypeEnum.FIXED_END=nz(8974),IfcTendonAnchorTypeEnum[nz(8975)]=nz(8975),IfcTendonAnchorTypeEnum.USERDEFINED="USERDEFINED",IfcTendonAnchorTypeEnum[nz(7959)]="NOTDEFINED";var IfcTendonConduitTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTendonConduitTypeEnum[nz(8318)]=nz(8318),IfcTendonConduitTypeEnum.COUPLER=nz(8598),IfcTendonConduitTypeEnum[nz(8976)]=nz(8976),IfcTendonConduitTypeEnum[nz(8977)]="TRUMPET",IfcTendonConduitTypeEnum[nz(8978)]=nz(8978),IfcTendonConduitTypeEnum.USERDEFINED=nz(7958),IfcTendonConduitTypeEnum[nz(7959)]="NOTDEFINED";var IfcTendonTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTendonTypeEnum[nz(8979)]=nz(8979),IfcTendonTypeEnum[nz(8980)]="COATED",IfcTendonTypeEnum[nz(8981)]=nz(8981),IfcTendonTypeEnum.WIRE=nz(8982),IfcTendonTypeEnum.USERDEFINED=nz(7958),IfcTendonTypeEnum[nz(7959)]=nz(7959);var IfcTextPath=class{constructor(t){this[nz(439)]=t}};IfcTextPath[nz(5326)]=nz(5326),IfcTextPath[nz(5327)]=nz(5327),IfcTextPath.UP="UP",IfcTextPath[nz(8983)]=nz(8983);var IfcTimeSeriesDataTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTimeSeriesDataTypeEnum[nz(8984)]=nz(8984),IfcTimeSeriesDataTypeEnum.DISCRETE=nz(8930),IfcTimeSeriesDataTypeEnum[nz(8985)]=nz(8985),IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY="PIECEWISEBINARY",IfcTimeSeriesDataTypeEnum[nz(8986)]=nz(8986),IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS=nz(8987),IfcTimeSeriesDataTypeEnum.NOTDEFINED=nz(7959);var IfcTransformerTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTransformerTypeEnum[nz(7980)]=nz(7980),IfcTransformerTypeEnum[nz(8988)]=nz(8988),IfcTransformerTypeEnum[nz(8989)]=nz(8989),IfcTransformerTypeEnum[nz(8990)]=nz(8990),IfcTransformerTypeEnum[nz(8991)]=nz(8991),IfcTransformerTypeEnum[nz(7958)]=nz(7958),IfcTransformerTypeEnum[nz(7959)]="NOTDEFINED";var IfcTransitionCode=class{constructor(t){this[nz(439)]=t}};IfcTransitionCode[nz(8992)]=nz(8992),IfcTransitionCode.CONTINUOUS="CONTINUOUS",IfcTransitionCode[nz(8993)]=nz(8993),IfcTransitionCode[nz(8994)]=nz(8994);var IfcTransitionCurveType=class{constructor(t){this[nz(439)]=t}};IfcTransitionCurveType[nz(8995)]=nz(8995),IfcTransitionCurveType[nz(8996)]=nz(8996),IfcTransitionCurveType[nz(8997)]=nz(8997),IfcTransitionCurveType[nz(8998)]="COSINECURVE",IfcTransitionCurveType[nz(8999)]=nz(8999),IfcTransitionCurveType[nz(9e3)]=nz(9e3);var IfcTransportElementTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTransportElementTypeEnum.ELEVATOR=nz(9001),IfcTransportElementTypeEnum[nz(9002)]=nz(9002),IfcTransportElementTypeEnum[nz(9003)]=nz(9003),IfcTransportElementTypeEnum.CRANEWAY="CRANEWAY",IfcTransportElementTypeEnum[nz(9004)]=nz(9004),IfcTransportElementTypeEnum[nz(7958)]=nz(7958),IfcTransportElementTypeEnum[nz(7959)]=nz(7959);var IfcTrimmingPreference=class{constructor(t){this[nz(439)]=t}};IfcTrimmingPreference.CARTESIAN=nz(9005),IfcTrimmingPreference[nz(8633)]=nz(8633),IfcTrimmingPreference.UNSPECIFIED=nz(8044);var IfcTubeBundleTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcTubeBundleTypeEnum[nz(9006)]="FINNED",IfcTubeBundleTypeEnum[nz(7958)]=nz(7958),IfcTubeBundleTypeEnum[nz(7959)]="NOTDEFINED";var IfcUnitEnum=class{constructor(t){this[nz(439)]=t}};IfcUnitEnum[nz(9007)]=nz(9007),IfcUnitEnum[nz(9008)]=nz(9008),IfcUnitEnum[nz(9009)]=nz(9009),IfcUnitEnum[nz(9010)]=nz(9010),IfcUnitEnum[nz(9011)]="ELECTRICCAPACITANCEUNIT",IfcUnitEnum[nz(9012)]=nz(9012),IfcUnitEnum[nz(9013)]=nz(9013),IfcUnitEnum.ELECTRICCURRENTUNIT=nz(9014),IfcUnitEnum[nz(9015)]="ELECTRICRESISTANCEUNIT",IfcUnitEnum[nz(9016)]=nz(9016),IfcUnitEnum[nz(9017)]=nz(9017),IfcUnitEnum[nz(9018)]=nz(9018),IfcUnitEnum[nz(9019)]=nz(9019),IfcUnitEnum[nz(9020)]="ILLUMINANCEUNIT",IfcUnitEnum[nz(9021)]=nz(9021),IfcUnitEnum.LENGTHUNIT=nz(9022),IfcUnitEnum[nz(9023)]=nz(9023),IfcUnitEnum.LUMINOUSINTENSITYUNIT=nz(9024),IfcUnitEnum[nz(9025)]="MAGNETICFLUXDENSITYUNIT",IfcUnitEnum[nz(9026)]="MAGNETICFLUXUNIT",IfcUnitEnum.MASSUNIT=nz(9027),IfcUnitEnum.PLANEANGLEUNIT="PLANEANGLEUNIT",IfcUnitEnum.POWERUNIT=nz(9028),IfcUnitEnum.PRESSUREUNIT=nz(9029),IfcUnitEnum[nz(9030)]=nz(9030),IfcUnitEnum.SOLIDANGLEUNIT="SOLIDANGLEUNIT",IfcUnitEnum[nz(9031)]=nz(9031),IfcUnitEnum.TIMEUNIT=nz(9032),IfcUnitEnum[nz(9033)]=nz(9033),IfcUnitEnum.USERDEFINED=nz(7958);var IfcUnitaryControlElementTypeEnum=class{constructor(t){this.value=t}};IfcUnitaryControlElementTypeEnum[nz(9034)]=nz(9034),IfcUnitaryControlElementTypeEnum[nz(9035)]=nz(9035),IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL=nz(9036),IfcUnitaryControlElementTypeEnum[nz(9037)]="INDICATORPANEL",IfcUnitaryControlElementTypeEnum[nz(9038)]="MIMICPANEL",IfcUnitaryControlElementTypeEnum.HUMIDISTAT="HUMIDISTAT",IfcUnitaryControlElementTypeEnum[nz(9039)]="THERMOSTAT",IfcUnitaryControlElementTypeEnum[nz(9040)]=nz(9040),IfcUnitaryControlElementTypeEnum[nz(7958)]="USERDEFINED",IfcUnitaryControlElementTypeEnum[nz(7959)]="NOTDEFINED";var IfcUnitaryEquipmentTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcUnitaryEquipmentTypeEnum[nz(9041)]=nz(9041),IfcUnitaryEquipmentTypeEnum[nz(9042)]="AIRCONDITIONINGUNIT",IfcUnitaryEquipmentTypeEnum[nz(9043)]="DEHUMIDIFIER",IfcUnitaryEquipmentTypeEnum[nz(9044)]=nz(9044),IfcUnitaryEquipmentTypeEnum[nz(9045)]="ROOFTOPUNIT",IfcUnitaryEquipmentTypeEnum.USERDEFINED="USERDEFINED",IfcUnitaryEquipmentTypeEnum.NOTDEFINED=nz(7959);var IfcValveTypeEnum=class{constructor(t){this.value=t}};IfcValveTypeEnum[nz(9046)]="AIRRELEASE",IfcValveTypeEnum[nz(9047)]=nz(9047),IfcValveTypeEnum[nz(9048)]="CHANGEOVER",IfcValveTypeEnum[nz(9049)]="CHECK",IfcValveTypeEnum[nz(9050)]=nz(9050),IfcValveTypeEnum[nz(9051)]=nz(9051),IfcValveTypeEnum[nz(9052)]="DRAWOFFCOCK",IfcValveTypeEnum.DOUBLECHECK="DOUBLECHECK",IfcValveTypeEnum[nz(9053)]=nz(9053),IfcValveTypeEnum[nz(9054)]="FAUCET",IfcValveTypeEnum[nz(9055)]=nz(9055),IfcValveTypeEnum.GASCOCK=nz(9056),IfcValveTypeEnum[nz(9057)]="GASTAP",IfcValveTypeEnum.ISOLATING=nz(9058),IfcValveTypeEnum[nz(9059)]="MIXING",IfcValveTypeEnum[nz(9060)]=nz(9060),IfcValveTypeEnum[nz(9061)]=nz(9061),IfcValveTypeEnum[nz(9062)]=nz(9062),IfcValveTypeEnum[nz(9063)]=nz(9063),IfcValveTypeEnum[nz(9064)]=nz(9064),IfcValveTypeEnum[nz(9065)]=nz(9065),IfcValveTypeEnum[nz(7958)]="USERDEFINED",IfcValveTypeEnum[nz(7959)]="NOTDEFINED";var IfcVibrationDamperTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcVibrationDamperTypeEnum[nz(9066)]=nz(9066),IfcVibrationDamperTypeEnum[nz(9067)]=nz(9067),IfcVibrationDamperTypeEnum[nz(9068)]=nz(9068),IfcVibrationDamperTypeEnum.FRICTION=nz(8666),IfcVibrationDamperTypeEnum[nz(9069)]=nz(9069),IfcVibrationDamperTypeEnum.RUBBER="RUBBER",IfcVibrationDamperTypeEnum[nz(7958)]="USERDEFINED",IfcVibrationDamperTypeEnum[nz(7959)]=nz(7959);var IfcVibrationIsolatorTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcVibrationIsolatorTypeEnum[nz(9070)]=nz(9070),IfcVibrationIsolatorTypeEnum.SPRING=nz(9071),IfcVibrationIsolatorTypeEnum[nz(9072)]=nz(9072),IfcVibrationIsolatorTypeEnum.USERDEFINED="USERDEFINED",IfcVibrationIsolatorTypeEnum[nz(7959)]=nz(7959);var IfcVoidingFeatureTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcVoidingFeatureTypeEnum.CUTOUT=nz(9073),IfcVoidingFeatureTypeEnum[nz(9074)]=nz(9074),IfcVoidingFeatureTypeEnum.HOLE=nz(9075),IfcVoidingFeatureTypeEnum[nz(9076)]=nz(9076),IfcVoidingFeatureTypeEnum.CHAMFER=nz(9077),IfcVoidingFeatureTypeEnum.EDGE="EDGE",IfcVoidingFeatureTypeEnum.USERDEFINED="USERDEFINED",IfcVoidingFeatureTypeEnum[nz(7959)]="NOTDEFINED";var IfcWallTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcWallTypeEnum[nz(9078)]=nz(9078),IfcWallTypeEnum[nz(9079)]=nz(9079),IfcWallTypeEnum[nz(9080)]="PARTITIONING",IfcWallTypeEnum[nz(9081)]=nz(9081),IfcWallTypeEnum[nz(8752)]="SHEAR",IfcWallTypeEnum[nz(9082)]="SOLIDWALL",IfcWallTypeEnum.STANDARD=nz(9083),IfcWallTypeEnum[nz(8926)]=nz(8926),IfcWallTypeEnum[nz(9084)]=nz(9084),IfcWallTypeEnum.RETAININGWALL="RETAININGWALL",IfcWallTypeEnum[nz(7958)]=nz(7958),IfcWallTypeEnum[nz(7959)]=nz(7959);var IfcWasteTerminalTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcWasteTerminalTypeEnum[nz(9085)]=nz(9085),IfcWasteTerminalTypeEnum[nz(9086)]=nz(9086),IfcWasteTerminalTypeEnum[nz(9087)]=nz(9087),IfcWasteTerminalTypeEnum[nz(9088)]=nz(9088),IfcWasteTerminalTypeEnum[nz(9089)]=nz(9089),IfcWasteTerminalTypeEnum[nz(9090)]=nz(9090),IfcWasteTerminalTypeEnum[nz(9091)]=nz(9091),IfcWasteTerminalTypeEnum.USERDEFINED=nz(7958),IfcWasteTerminalTypeEnum.NOTDEFINED="NOTDEFINED";var IfcWindowPanelOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowPanelOperationEnum[nz(9092)]=nz(9092),IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND=nz(9093),IfcWindowPanelOperationEnum[nz(9094)]="TILTANDTURNRIGHTHAND",IfcWindowPanelOperationEnum[nz(9095)]=nz(9095),IfcWindowPanelOperationEnum[nz(9096)]=nz(9096),IfcWindowPanelOperationEnum[nz(9097)]=nz(9097),IfcWindowPanelOperationEnum.PIVOTHORIZONTAL="PIVOTHORIZONTAL",IfcWindowPanelOperationEnum[nz(9098)]=nz(9098),IfcWindowPanelOperationEnum[nz(9099)]=nz(9099),IfcWindowPanelOperationEnum[nz(9100)]=nz(9100),IfcWindowPanelOperationEnum[nz(9101)]=nz(9101),IfcWindowPanelOperationEnum.FIXEDCASEMENT=nz(9102),IfcWindowPanelOperationEnum.OTHEROPERATION=nz(9103),IfcWindowPanelOperationEnum.NOTDEFINED="NOTDEFINED";var IfcWindowPanelPositionEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowPanelPositionEnum[nz(5326)]=nz(5326),IfcWindowPanelPositionEnum[nz(5337)]=nz(5337),IfcWindowPanelPositionEnum[nz(5327)]=nz(5327),IfcWindowPanelPositionEnum.BOTTOM=nz(5325),IfcWindowPanelPositionEnum.TOP=nz(9104),IfcWindowPanelPositionEnum[nz(7959)]=nz(7959);var IfcWindowStyleConstructionEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowStyleConstructionEnum[nz(9105)]=nz(9105),IfcWindowStyleConstructionEnum[nz(8369)]=nz(8369),IfcWindowStyleConstructionEnum[nz(8370)]=nz(8370),IfcWindowStyleConstructionEnum[nz(8211)]=nz(8211),IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD=nz(8371),IfcWindowStyleConstructionEnum.PLASTIC="PLASTIC",IfcWindowStyleConstructionEnum[nz(9106)]=nz(9106),IfcWindowStyleConstructionEnum[nz(7959)]=nz(7959);var IfcWindowStyleOperationEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowStyleOperationEnum[nz(9107)]=nz(9107),IfcWindowStyleOperationEnum[nz(9108)]="DOUBLE_PANEL_VERTICAL",IfcWindowStyleOperationEnum[nz(9109)]="DOUBLE_PANEL_HORIZONTAL",IfcWindowStyleOperationEnum[nz(9110)]="TRIPLE_PANEL_VERTICAL",IfcWindowStyleOperationEnum[nz(9111)]=nz(9111),IfcWindowStyleOperationEnum[nz(9112)]="TRIPLE_PANEL_TOP",IfcWindowStyleOperationEnum[nz(9113)]=nz(9113),IfcWindowStyleOperationEnum[nz(9114)]=nz(9114),IfcWindowStyleOperationEnum[nz(9115)]="TRIPLE_PANEL_HORIZONTAL",IfcWindowStyleOperationEnum[nz(7958)]=nz(7958),IfcWindowStyleOperationEnum.NOTDEFINED=nz(7959);var IfcWindowTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowTypeEnum[nz(9116)]="WINDOW",IfcWindowTypeEnum[nz(9117)]="SKYLIGHT",IfcWindowTypeEnum[nz(9118)]="LIGHTDOME",IfcWindowTypeEnum.USERDEFINED=nz(7958),IfcWindowTypeEnum[nz(7959)]=nz(7959);var IfcWindowTypePartitioningEnum=class{constructor(t){this[nz(439)]=t}};IfcWindowTypePartitioningEnum[nz(9107)]=nz(9107),IfcWindowTypePartitioningEnum[nz(9108)]="DOUBLE_PANEL_VERTICAL",IfcWindowTypePartitioningEnum[nz(9109)]="DOUBLE_PANEL_HORIZONTAL",IfcWindowTypePartitioningEnum[nz(9110)]=nz(9110),IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM=nz(9111),IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP="TRIPLE_PANEL_TOP",IfcWindowTypePartitioningEnum[nz(9113)]=nz(9113),IfcWindowTypePartitioningEnum[nz(9114)]="TRIPLE_PANEL_RIGHT",IfcWindowTypePartitioningEnum[nz(9115)]=nz(9115),IfcWindowTypePartitioningEnum[nz(7958)]="USERDEFINED",IfcWindowTypePartitioningEnum[nz(7959)]=nz(7959);var IfcWorkCalendarTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcWorkCalendarTypeEnum[nz(9119)]=nz(9119),IfcWorkCalendarTypeEnum[nz(9120)]="SECONDSHIFT",IfcWorkCalendarTypeEnum.THIRDSHIFT=nz(9121),IfcWorkCalendarTypeEnum.USERDEFINED=nz(7958),IfcWorkCalendarTypeEnum[nz(7959)]="NOTDEFINED";var IfcWorkPlanTypeEnum=class{constructor(t){this[nz(439)]=t}};IfcWorkPlanTypeEnum[nz(9122)]="ACTUAL",IfcWorkPlanTypeEnum.BASELINE=nz(9123),IfcWorkPlanTypeEnum[nz(9124)]=nz(9124),IfcWorkPlanTypeEnum.USERDEFINED=nz(7958),IfcWorkPlanTypeEnum[nz(7959)]=nz(7959);var IfcWorkScheduleTypeEnum=class{constructor(t){this.value=t}};IfcWorkScheduleTypeEnum[nz(9122)]=nz(9122),IfcWorkScheduleTypeEnum[nz(9123)]="BASELINE",IfcWorkScheduleTypeEnum.PLANNED="PLANNED",IfcWorkScheduleTypeEnum.USERDEFINED=nz(7958),IfcWorkScheduleTypeEnum[nz(7959)]=nz(7959);var IfcActionRequest=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9129)]=o,this[u(9130)]=c,this[u(9131)]=l,this[u(9132)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcActionRequest(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9129)]),e[t(565)](this.PredefinedType),e[t(565)](this[t(9131)]),e[t(565)](this.LongDescription),e}},IfcActor=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9128)]=a,this.TheActor=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcActor(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9136)]),e}},IfcActorRole=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9137)]=n,this[s(9138)]=r,this[s(9134)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcActorRole(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9137)]),e[t(565)](this.UserDefinedRole),e[t(565)](this[t(9134)]),e}},IfcActuator=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcActuator(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcActuatorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcActuatorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcAddress=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9146)]=n,this.Description=r,this.UserDefinedPurpose=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcAddress(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9146)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9147)]),e}},IfcAdvancedBrep=class{constructor(t,e,n){this[nz(9125)]=t,this.type=e,this.Outer=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcAdvancedBrep(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9148)]),e}},IfcAdvancedBrepWithVoids=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.Outer=n,this.Voids=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcAdvancedBrepWithVoids(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9148)]),e[t(565)](this[t(9149)]),e}},IfcAdvancedFace=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9150)]=n,this[s(9151)]=r,this.SameSense=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcAdvancedFace(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Bounds),e[t(565)](this.FaceSurface),e.push(this.SameSense),e}},IfcAirTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAirTerminal(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcAirTerminalBox=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAirTerminalBox(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcAirTerminalBoxType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAirTerminalBoxType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcAirTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAirTerminalType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcAirToAirHeatRecovery=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAirToAirHeatRecovery(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcAirToAirHeatRecoveryType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAirToAirHeatRecoveryType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcAlarm=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAlarm(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcAlarmType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAlarmType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcAlignment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9152)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAlignment(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9152)]),e[t(565)](this[t(9130)]),e}},IfcAlignment2DHorizontal=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9153)]=n,this[i(9154)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcAlignment2DHorizontal(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9153)]),e.push(this[t(9154)]),e}},IfcAlignment2DHorizontalSegment=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.TangentialContinuity=n,this[a(9155)]=r,this[a(9156)]=i,this.CurveGeometry=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcAlignment2DHorizontalSegment(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.TangentialContinuity),e[t(565)](this[t(9155)]),e[t(565)](this[t(9156)]),e.push(this[t(9157)]),e}},IfcAlignment2DSegment=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9158)]=n,this[s(9155)]=r,this[s(9156)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcAlignment2DSegment(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.TangentialContinuity),e[t(565)](this[t(9155)]),e.push(this.EndTag),e}},IfcAlignment2DVerSegCircularArc=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.TangentialContinuity=n,this[u(9155)]=r,this.EndTag=i,this[u(9153)]=s,this[u(9159)]=a,this[u(9160)]=o,this[u(9161)]=c,this[u(9162)]=l,this[u(9163)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAlignment2DVerSegCircularArc(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9158)]),e[t(565)](this[t(9155)]),e[t(565)](this[t(9156)]),e.push(this[t(9153)]),e[t(565)](this[t(9159)]),e.push(this[t(9160)]),e.push(this[t(9161)]),e[t(565)](this.Radius),e[t(565)](this[t(9163)]),e}},IfcAlignment2DVerSegLine=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9158)]=n,this.StartTag=r,this[l(9156)]=i,this[l(9153)]=s,this[l(9159)]=a,this.StartHeight=o,this[l(9161)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcAlignment2DVerSegLine(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9158)]),e[t(565)](this.StartTag),e.push(this.EndTag),e.push(this[t(9153)]),e[t(565)](this[t(9159)]),e[t(565)](this[t(9160)]),e[t(565)](this[t(9161)]),e}},IfcAlignment2DVerSegParabolicArc=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.TangentialContinuity=n,this.StartTag=r,this[u(9156)]=i,this[u(9153)]=s,this.HorizontalLength=a,this[u(9160)]=o,this[u(9161)]=c,this[u(9164)]=l,this.IsConvex=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAlignment2DVerSegParabolicArc(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9158)]),e[t(565)](this[t(9155)]),e[t(565)](this[t(9156)]),e[t(565)](this.StartDistAlong),e[t(565)](this[t(9159)]),e[t(565)](this[t(9160)]),e[t(565)](this[t(9161)]),e[t(565)](this[t(9164)]),e.push(this.IsConvex),e}},IfcAlignment2DVertical=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9154)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcAlignment2DVertical(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9154)]),e}},IfcAlignment2DVerticalSegment=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.TangentialContinuity=n,this.StartTag=r,this[l(9156)]=i,this.StartDistAlong=s,this[l(9159)]=a,this.StartHeight=o,this[l(9161)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcAlignment2DVerticalSegment(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9158)]),e[t(565)](this.StartTag),e[t(565)](this.EndTag),e[t(565)](this[t(9153)]),e[t(565)](this[t(9159)]),e.push(this[t(9160)]),e[t(565)](this[t(9161)]),e}},IfcAlignmentCurve=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9165)]=n,this.Vertical=r,this[s(9140)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcAlignmentCurve(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9165)]),e[t(565)](this[t(9166)]),e[t(565)](this[t(9140)]),e}},IfcAnnotation=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this.Name=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9141)]=o,this[l(9139)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcAnnotation(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e}},IfcAnnotationFillArea=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9167)]=n,this.InnerBoundaries=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcAnnotationFillArea(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9167)]),e[t(565)](this[t(9168)]),e}},IfcApplication=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9169)]=n,this[a(6290)]=r,this[a(9170)]=i,this.ApplicationIdentifier=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcApplication(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e.push(this[t(9169)]),e[t(565)](this.Version),e[t(565)](this.ApplicationFullName),e[t(565)](this.ApplicationIdentifier),e}},IfcAppliedValue=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9127)]=n,this[d(9134)]=r,this[d(9171)]=i,this[d(9172)]=s,this[d(9173)]=a,this[d(9174)]=o,this[d(9175)]=c,this[d(9176)]=l,this.ArithmeticOperator=h,this[d(6291)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAppliedValue(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9171)]),e.push(this[t(9172)]),e.push(this[t(9173)]),e[t(565)](this[t(9174)]),e[t(565)](this[t(9175)]),e.push(this[t(9176)]),e.push(this[t(9177)]),e[t(565)](this[t(6291)]),e}},IfcApproval=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.Identifier=n,this[u(9127)]=r,this[u(9134)]=i,this[u(9178)]=s,this[u(9131)]=a,this[u(9179)]=o,this[u(9180)]=c,this[u(9181)]=l,this[u(9182)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcApproval(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9183)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9178)]),e.push(this[t(9131)]),e[t(565)](this.Level),e[t(565)](this[t(9180)]),e.push(this[t(9181)]),e[t(565)](this[t(9182)]),e}},IfcApprovalRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9127)]=n,this.Description=r,this[a(9184)]=i,this[a(9185)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcApprovalRelationship(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9184)]),e[t(565)](this[t(9185)]),e}},IfcArbitraryClosedProfileDef=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9186)]=n,this[s(9187)]=r,this[s(9188)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcArbitraryClosedProfileDef(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this.ProfileName),e[t(565)](this[t(9188)]),e}},IfcArbitraryOpenProfileDef=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9186)]=n,this[s(9187)]=r,this[s(3540)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcArbitraryOpenProfileDef(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9186)]),e[t(565)](this[t(9187)]),e.push(this[t(3540)]),e}},IfcArbitraryProfileDefWithVoids=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9186)]=n,this.ProfileName=r,this[a(9188)]=i,this[a(9189)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcArbitraryProfileDefWithVoids(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9188)]),e[t(565)](this.InnerCurves),e}},IfcAsset=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){var v=nz;this[v(9125)]=t,this[v(452)]=e,this[v(9133)]=n,this[v(9126)]=r,this[v(9127)]=i,this[v(9134)]=s,this.ObjectType=a,this[v(9129)]=o,this[v(9190)]=c,this.CurrentValue=l,this[v(9191)]=h,this[v(9192)]=u,this[v(9193)]=d,this[v(9194)]=f,this.IncorporationDate=p,this.DepreciatedValue=m}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++];return new IfcAsset(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this.Name),e[t(565)](this.Description),e[t(565)](this.ObjectType),e[t(565)](this.Identification),e[t(565)](this.OriginalValue),e[t(565)](this.CurrentValue),e.push(this[t(9191)]),e[t(565)](this[t(9192)]),e[t(565)](this[t(9193)]),e.push(this.ResponsiblePerson),e[t(565)](this[t(9195)]),e.push(this.DepreciatedValue),e}},IfcAsymmetricIShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v){var _=nz;this[_(9125)]=t,this.type=e,this[_(9186)]=n,this[_(9187)]=r,this[_(9196)]=i,this[_(9197)]=s,this.OverallDepth=a,this[_(9198)]=o,this[_(9199)]=c,this[_(9200)]=l,this.TopFlangeWidth=h,this[_(9201)]=u,this.TopFlangeFilletRadius=d,this.BottomFlangeEdgeRadius=f,this[_(9202)]=p,this[_(9203)]=m,this[_(9204)]=v}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++];return new IfcAsymmetricIShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ProfileType),e.push(this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9197)]),e[t(565)](this[t(9205)]),e.push(this[t(9198)]),e[t(565)](this[t(9199)]),e.push(this[t(9200)]),e[t(565)](this[t(9206)]),e.push(this.TopFlangeThickness),e[t(565)](this[t(9207)]),e[t(565)](this[t(9208)]),e.push(this[t(9202)]),e[t(565)](this[t(9203)]),e[t(565)](this[t(9204)]),e}},IfcAudioVisualAppliance=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcAudioVisualAppliance(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcAudioVisualApplianceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcAudioVisualApplianceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcAxis1Placement=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9209)]=n,this[i(9152)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcAxis1Placement(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e[t(565)](this[t(9152)]),e}},IfcAxis2Placement2D=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9209)]=n,this[i(9210)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcAxis2Placement2D(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e.push(this.RefDirection),e}},IfcAxis2Placement3D=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9209)]=n,this[s(9152)]=r,this[s(9210)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcAxis2Placement3D(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e[t(565)](this[t(9152)]),e[t(565)](this[t(9210)]),e}},IfcBSplineCurve=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9211)]=n,this[o(9212)]=r,this[o(9213)]=i,this[o(9214)]=s,this[o(9215)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcBSplineCurve(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9211)]),e[t(565)](this[t(9212)]),e[t(565)](this.CurveForm),e[t(565)](this[t(9214)]),e.push(this[t(9215)]),e}},IfcBSplineCurveWithKnots=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9211)]=n,this.ControlPointsList=r,this[h(9213)]=i,this[h(9214)]=s,this[h(9215)]=a,this[h(9216)]=o,this[h(9217)]=c,this.KnotSpec=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcBSplineCurveWithKnots(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e.push(this[t(9211)]),e[t(565)](this.ControlPointsList),e[t(565)](this[t(9213)]),e[t(565)](this[t(9214)]),e[t(565)](this.SelfIntersect),e[t(565)](this[t(9216)]),e.push(this[t(9217)]),e.push(this[t(9218)]),e}},IfcBSplineSurface=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9219)]=n,this.VDegree=r,this[l(9212)]=i,this.SurfaceForm=s,this[l(9220)]=a,this[l(9221)]=o,this[l(9215)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcBSplineSurface(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e.push(this.UDegree),e.push(this[t(9222)]),e.push(this.ControlPointsList),e[t(565)](this[t(9223)]),e[t(565)](this[t(9220)]),e[t(565)](this[t(9221)]),e[t(565)](this[t(9215)]),e}},IfcBSplineSurfaceWithKnots=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this[p(9219)]=n,this.VDegree=r,this[p(9212)]=i,this.SurfaceForm=s,this[p(9220)]=a,this[p(9221)]=o,this[p(9215)]=c,this[p(9224)]=l,this[p(9225)]=h,this[p(9226)]=u,this[p(9227)]=d,this.KnotSpec=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcBSplineSurfaceWithKnots(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9219)]),e.push(this[t(9222)]),e[t(565)](this[t(9212)]),e.push(this[t(9223)]),e.push(this[t(9220)]),e[t(565)](this.VClosed),e[t(565)](this[t(9215)]),e.push(this[t(9224)]),e[t(565)](this[t(9225)]),e[t(565)](this[t(9226)]),e.push(this[t(9227)]),e.push(this[t(9218)]),e}},IfcBeam=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBeam(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this.Representation),e[t(565)](this.Tag),e.push(this[t(9130)]),e}},IfcBeamStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBeamStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcBeamType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBeamType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e.push(this.ElementType),e[t(565)](this.PredefinedType),e}},IfcBearing=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBearing(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this.Tag),e.push(this.PredefinedType),e}},IfcBearingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBearingType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcBlobTexture=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9228)]=n,this[l(9229)]=r,this[l(9230)]=i,this[l(9231)]=s,this[l(9232)]=a,this.RasterFormat=o,this[l(9233)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcBlobTexture(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.RepeatS),e.push(this.RepeatT),e[t(565)](this[t(9230)]),e[t(565)](this[t(9231)]),e[t(565)](this[t(9232)]),e[t(565)](this.RasterFormat),e[t(565)](this[t(9233)]),e}},IfcBlock=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9196)]=n,this[a(9234)]=r,this[a(9235)]=i,this[a(9236)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcBlock(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Position),e[t(565)](this.XLength),e.push(this[t(9235)]),e[t(565)](this.ZLength),e}},IfcBoiler=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBoiler(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcBoilerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBoilerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e.push(this[t(9130)]),e}},IfcBooleanClippingResult=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9237)]=n,this.FirstOperand=r,this[s(9238)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcBooleanClippingResult(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Operator),e[t(565)](this.FirstOperand),e[t(565)](this[t(9238)]),e}},IfcBooleanResult=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this.type=e,this[s(9237)]=n,this.FirstOperand=r,this[s(9238)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcBooleanResult(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9237)]),e[t(565)](this[t(9239)]),e.push(this[t(9238)]),e}},IfcBoundaryCondition=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcBoundaryCondition(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcBoundaryCurve=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.Segments=n,this[i(9215)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcBoundaryCurve(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this.Segments),e[t(565)](this[t(9215)]),e}},IfcBoundaryEdgeCondition=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this.Name=n,this.TranslationalStiffnessByLengthX=r,this[l(9240)]=i,this[l(9241)]=s,this[l(9242)]=a,this[l(9243)]=o,this.RotationalStiffnessByLengthZ=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcBoundaryEdgeCondition(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9244)]),e.push(this[t(9240)]),e[t(565)](this[t(9241)]),e[t(565)](this[t(9242)]),e[t(565)](this[t(9243)]),e[t(565)](this[t(9245)]),e}},IfcBoundaryFaceCondition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this.TranslationalStiffnessByAreaX=r,this[a(9246)]=i,this.TranslationalStiffnessByAreaZ=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcBoundaryFaceCondition(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9247)]),e[t(565)](this[t(9246)]),e[t(565)](this[t(9248)]),e}},IfcBoundaryNodeCondition=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(9127)]=n,this[l(9249)]=r,this[l(9250)]=i,this.TranslationalStiffnessZ=s,this[l(9251)]=a,this[l(9252)]=o,this[l(9253)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcBoundaryNodeCondition(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9249)]),e[t(565)](this[t(9250)]),e[t(565)](this[t(9254)]),e[t(565)](this[t(9251)]),e[t(565)](this.RotationalStiffnessY),e.push(this[t(9253)]),e}},IfcBoundaryNodeConditionWarping=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.Name=n,this[h(9249)]=r,this[h(9250)]=i,this[h(9254)]=s,this.RotationalStiffnessX=a,this[h(9252)]=o,this[h(9253)]=c,this[h(9255)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcBoundaryNodeConditionWarping(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.TranslationalStiffnessX),e[t(565)](this[t(9250)]),e.push(this[t(9254)]),e[t(565)](this[t(9251)]),e[t(565)](this[t(9252)]),e[t(565)](this[t(9253)]),e[t(565)](this[t(9255)]),e}},IfcBoundedCurve=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static[nz(7952)](t,e,n){return new IfcBoundedCurve(t,e)}ToTape(){return[]}},IfcBoundedSurface=class{constructor(t,e){var n=nz;this.expressID=t,this[n(452)]=e}static FromTape(t,e,n){return new IfcBoundedSurface(t,e)}ToTape(){return[]}},IfcBoundingBox=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9256)]=n,this[a(9257)]=r,this[a(9258)]=i,this.ZDim=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcBoundingBox(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Corner),e[t(565)](this.XDim),e.push(this.YDim),e.push(this.ZDim),e}},IfcBoxedHalfSpace=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this.type=e,this[s(9259)]=n,this[s(9260)]=r,this.Enclosure=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcBoxedHalfSpace(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this.BaseSurface),e[t(565)](this[t(9260)]),e[t(565)](this.Enclosure),e}},IfcBridge=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[d(9128)]=a,this[d(9141)]=o,this.Representation=c,this.LongName=l,this[d(9261)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBridge(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e.push(this[t(9261)]),e.push(this.PredefinedType),e}},IfcBridgePart=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this[d(9262)]=l,this[d(9261)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBridgePart(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e[t(565)](this[t(9261)]),e[t(565)](this[t(9130)]),e}},IfcBuilding=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this[p(452)]=e,this[p(9133)]=n,this.OwnerHistory=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9128)]=a,this.ObjectPlacement=o,this.Representation=c,this.LongName=l,this.CompositionType=h,this[p(9263)]=u,this[p(9264)]=d,this[p(9265)]=f}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcBuilding(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e.push(this.CompositionType),e[t(565)](this[t(9263)]),e[t(565)](this[t(9264)]),e[t(565)](this[t(9265)]),e}},IfcBuildingElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this.Representation=c,this.Tag=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcBuildingElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e}},IfcBuildingElementPart=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBuildingElementPart(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcBuildingElementPartType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this.Tag=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBuildingElementPartType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcBuildingElementProxy=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBuildingElementProxy(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcBuildingElementProxyType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBuildingElementProxyType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcBuildingElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBuildingElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcBuildingStorey=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this.LongName=l,this[d(9261)]=h,this[d(9266)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBuildingStorey(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9262)]),e[t(565)](this[t(9261)]),e[t(565)](this[t(9266)]),e}},IfcBuildingSystem=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9130)]=o,this[l(9262)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcBuildingSystem(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.PredefinedType),e[t(565)](this.LongName),e}},IfcBurner=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcBurner(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcBurnerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcBurnerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e.push(this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcCShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this.ProfileType=n,this[h(9187)]=r,this[h(9196)]=i,this.Depth=s,this.Width=a,this[h(9267)]=o,this[h(9268)]=c,this[h(9269)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcCShapeProfileDef(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this.Depth),e[t(565)](this.Width),e[t(565)](this[t(9267)]),e[t(565)](this[t(9268)]),e[t(565)](this[t(9269)]),e}},IfcCableCarrierFitting=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCableCarrierFitting(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this.Representation),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcCableCarrierFittingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCableCarrierFittingType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcCableCarrierSegment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCableCarrierSegment(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcCableCarrierSegmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCableCarrierSegmentType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCableFitting=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCableFitting(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcCableFittingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCableFittingType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcCableSegment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCableSegment(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcCableSegmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCableSegmentType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcCaissonFoundation=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCaissonFoundation(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcCaissonFoundationType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCaissonFoundationType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e.push(this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcCartesianPoint=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9270)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcCartesianPoint(t,e,i)}[nz(9135)](){let t=[];return t.push(this.Coordinates),t}},IfcCartesianPointList=class{constructor(t,e){var n=nz;this.expressID=t,this[n(452)]=e}static FromTape(t,e,n){return new IfcCartesianPointList(t,e)}[nz(9135)](){return[]}},IfcCartesianPointList2D=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9271)]=n,this.TagList=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCartesianPointList2D(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.CoordList),e[t(565)](this[t(9272)]),e}},IfcCartesianPointList3D=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9271)]=n,this[i(9272)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCartesianPointList3D(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9271)]),e[t(565)](this[t(9272)]),e}},IfcCartesianTransformationOperator=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9273)]=n,this[a(9274)]=r,this.LocalOrigin=i,this[a(9275)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCartesianTransformationOperator(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9273)]),e.push(this.Axis2),e[t(565)](this[t(9276)]),e[t(565)](this[t(9275)]),e}},IfcCartesianTransformationOperator2D=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this.Axis1=n,this[a(9274)]=r,this[a(9276)]=i,this[a(9275)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCartesianTransformationOperator2D(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Axis1),e[t(565)](this.Axis2),e[t(565)](this[t(9276)]),e[t(565)](this.Scale),e}},IfcCartesianTransformationOperator2DnonUniform=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this.Axis1=n,this[o(9274)]=r,this[o(9276)]=i,this.Scale=s,this.Scale2=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcCartesianTransformationOperator2DnonUniform(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9273)]),e[t(565)](this[t(9274)]),e[t(565)](this[t(9276)]),e[t(565)](this[t(9275)]),e.push(this[t(9277)]),e}},IfcCartesianTransformationOperator3D=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9273)]=n,this.Axis2=r,this[o(9276)]=i,this[o(9275)]=s,this[o(9278)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcCartesianTransformationOperator3D(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9273)]),e[t(565)](this[t(9274)]),e[t(565)](this[t(9276)]),e.push(this[t(9275)]),e[t(565)](this[t(9278)]),e}},IfcCartesianTransformationOperator3DnonUniform=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(9273)]=n,this[l(9274)]=r,this[l(9276)]=i,this.Scale=s,this.Axis3=a,this[l(9277)]=o,this[l(9279)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcCartesianTransformationOperator3DnonUniform(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9273)]),e[t(565)](this[t(9274)]),e.push(this.LocalOrigin),e[t(565)](this[t(9275)]),e.push(this[t(9278)]),e[t(565)](this.Scale2),e[t(565)](this[t(9279)]),e}},IfcCenterLineProfileDef=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9186)]=n,this[a(9187)]=r,this[a(3540)]=i,this[a(9280)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCenterLineProfileDef(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e[t(565)](this.ProfileName),e[t(565)](this.Curve),e[t(565)](this[t(9280)]),e}},IfcChiller=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcChiller(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcChillerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcChillerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcChimney=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcChimney(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcChimneyType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcChimneyType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCircle=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9196)]=n,this[i(9162)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCircle(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Position),e[t(565)](this[t(9162)]),e}},IfcCircleHollowProfileDef=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9186)]=n,this.ProfileName=r,this.Position=i,this[o(9162)]=s,this[o(9267)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcCircleHollowProfileDef(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ProfileType),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this.Radius),e[t(565)](this[t(9267)]),e}},IfcCircleProfileDef=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9186)]=n,this[a(9187)]=r,this[a(9196)]=i,this[a(9162)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCircleProfileDef(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9186)]),e.push(this[t(9187)]),e[t(565)](this.Position),e.push(this.Radius),e}},IfcCircularArcSegment2D=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9281)]=n,this[o(9282)]=r,this[o(9283)]=i,this[o(9162)]=s,this[o(9284)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcCircularArcSegment2D(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9281)]),e[t(565)](this[t(9282)]),e[t(565)](this[t(9283)]),e[t(565)](this[t(9162)]),e[t(565)](this[t(9284)]),e}},IfcCivilElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcCivilElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e}},IfcCivilElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCivilElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcClassification=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9285)]=n,this[l(9286)]=r,this[l(9287)]=i,this[l(9127)]=s,this[l(9134)]=a,this[l(9209)]=o,this[l(9288)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcClassification(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9285)]),e[t(565)](this[t(9286)]),e[t(565)](this[t(9287)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9209)]),e[t(565)](this.ReferenceTokens),e}},IfcClassificationReference=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9209)]=n,this.Identification=r,this.Name=i,this.ReferencedSource=s,this[c(9134)]=a,this[c(9289)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcClassificationReference(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9209)]),e.push(this[t(9129)]),e[t(565)](this[t(9127)]),e.push(this.ReferencedSource),e[t(565)](this[t(9134)]),e[t(565)](this[t(9289)]),e}},IfcClosedShell=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this.type=e,this[r(9290)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcClosedShell(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9290)]),e}},IfcCoil=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCoil(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this.PredefinedType),e}},IfcCoilType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCoilType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this.Tag),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcColourRgb=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9127)]=n,this[a(9291)]=r,this[a(9292)]=i,this[a(9293)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcColourRgb(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this[t(9291)]),e[t(565)](this[t(9292)]),e[t(565)](this[t(9293)]),e}},IfcColourRgbList=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this.ColourList=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcColourRgbList(t,e,i)}ToTape(){let t=[];return t.push(this.ColourList),t}},IfcColourSpecification=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcColourSpecification(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcColumn=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcColumn(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcColumnStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcColumnStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcColumnType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcColumnType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCommunicationsAppliance=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCommunicationsAppliance(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcCommunicationsApplianceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCommunicationsApplianceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this.Description),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcComplexProperty=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.Name=n,this[a(9134)]=r,this.UsageName=i,this[a(9294)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcComplexProperty(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9295)]),e[t(565)](this[t(9294)]),e}},IfcComplexPropertyTemplate=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this.Name=i,this.Description=s,this[l(9295)]=a,this[l(9296)]=o,this[l(9297)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcComplexPropertyTemplate(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.UsageName),e[t(565)](this[t(9296)]),e.push(this[t(9297)]),e}},IfcCompositeCurve=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9154)]=n,this[i(9215)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCompositeCurve(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9154)]),e.push(this[t(9215)]),e}},IfcCompositeCurveOnSurface=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this.Segments=n,this[i(9215)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCompositeCurveOnSurface(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9154)]),e[t(565)](this[t(9215)]),e}},IfcCompositeCurveSegment=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9298)]=n,this[s(9299)]=r,this.ParentCurve=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcCompositeCurveSegment(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Transition),e[t(565)](this[t(9299)]),e[t(565)](this[t(9300)]),e}},IfcCompositeProfileDef=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9186)]=n,this[a(9187)]=r,this.Profiles=i,this[a(9301)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCompositeProfileDef(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e.push(this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9302)]),e[t(565)](this[t(9301)]),e}},IfcCompressor=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCompressor(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this.PredefinedType),e}},IfcCompressorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCompressorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcCondenser=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCondenser(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcCondenserType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this.RepresentationMaps=c,this.Tag=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCondenserType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e.push(this.ElementType),e.push(this[t(9130)]),e}},IfcConic=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9196)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcConic(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.Position),t}},IfcConnectedFaceSet=class{constructor(t,e,n){var r=nz;this.expressID=t,this.type=e,this[r(9290)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcConnectedFaceSet(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9290)]),e}},IfcConnectionCurveGeometry=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9303)]=n,this.CurveOnRelatedElement=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcConnectionCurveGeometry(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9303)]),e[t(565)](this[t(9304)]),e}},IfcConnectionGeometry=class{constructor(t,e){var n=nz;this.expressID=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcConnectionGeometry(t,e)}[nz(9135)](){return[]}},IfcConnectionPointEccentricity=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9305)]=n,this[o(9306)]=r,this[o(9307)]=i,this.EccentricityInY=s,this[o(9308)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcConnectionPointEccentricity(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.PointOnRelatingElement),e[t(565)](this[t(9306)]),e[t(565)](this[t(9307)]),e[t(565)](this[t(9309)]),e[t(565)](this[t(9308)]),e}},IfcConnectionPointGeometry=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.PointOnRelatingElement=n,this.PointOnRelatedElement=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcConnectionPointGeometry(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9305)]),e[t(565)](this[t(9306)]),e}},IfcConnectionSurfaceGeometry=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9310)]=n,this[i(9311)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcConnectionSurfaceGeometry(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9310)]),e[t(565)](this[t(9311)]),e}},IfcConnectionVolumeGeometry=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.VolumeOnRelatingElement=n,this.VolumeOnRelatedElement=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcConnectionVolumeGeometry(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9312)]),e[t(565)](this[t(9313)]),e}},IfcConstraint=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9127)]=n,this.Description=r,this.ConstraintGrade=i,this[l(9314)]=s,this[l(9315)]=a,this.CreationTime=o,this.UserDefinedGrade=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcConstraint(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9316)]),e[t(565)](this[t(9314)]),e[t(565)](this.CreatingActor),e[t(565)](this[t(9317)]),e[t(565)](this[t(9318)]),e}},IfcConstructionEquipmentResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this.Name=i,this[f(9134)]=s,this[f(9128)]=a,this[f(9129)]=o,this[f(9132)]=c,this[f(9319)]=l,this[f(9320)]=h,this.BaseQuantity=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcConstructionEquipmentResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this[t(9319)]),e[t(565)](this[t(9320)]),e[t(565)](this[t(9321)]),e[t(565)](this[t(9130)]),e}},IfcConstructionEquipmentResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this.GlobalId=n,this[p(9126)]=r,this.Name=i,this[p(9134)]=s,this.ApplicableOccurrence=a,this[p(9144)]=o,this[p(9129)]=c,this[p(9132)]=l,this[p(9322)]=h,this.BaseCosts=u,this[p(9321)]=d,this.PredefinedType=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcConstructionEquipmentResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this.ResourceType),e.push(this[t(9320)]),e.push(this.BaseQuantity),e[t(565)](this.PredefinedType),e}},IfcConstructionMaterialResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this.Description=s,this.ObjectType=a,this[f(9129)]=o,this[f(9132)]=c,this[f(9319)]=l,this[f(9320)]=h,this[f(9321)]=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcConstructionMaterialResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this.LongDescription),e[t(565)](this[t(9319)]),e[t(565)](this.BaseCosts),e[t(565)](this[t(9321)]),e.push(this[t(9130)]),e}},IfcConstructionMaterialResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this.type=e,this.GlobalId=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9143)]=a,this[p(9144)]=o,this[p(9129)]=c,this[p(9132)]=l,this[p(9322)]=h,this.BaseCosts=u,this.BaseQuantity=d,this[p(9130)]=f}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcConstructionMaterialResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9129)]),e.push(this[t(9132)]),e[t(565)](this.ResourceType),e.push(this.BaseCosts),e.push(this.BaseQuantity),e[t(565)](this[t(9130)]),e}},IfcConstructionProductResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this.OwnerHistory=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9128)]=a,this[f(9129)]=o,this[f(9132)]=c,this[f(9319)]=l,this[f(9320)]=h,this[f(9321)]=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcConstructionProductResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this.Identification),e[t(565)](this[t(9132)]),e.push(this.Usage),e[t(565)](this[t(9320)]),e[t(565)](this.BaseQuantity),e[t(565)](this[t(9130)]),e}},IfcConstructionProductResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this[p(452)]=e,this[p(9133)]=n,this.OwnerHistory=r,this.Name=i,this[p(9134)]=s,this[p(9143)]=a,this[p(9144)]=o,this[p(9129)]=c,this[p(9132)]=l,this.ResourceType=h,this[p(9320)]=u,this[p(9321)]=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcConstructionProductResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.Identification),e[t(565)](this[t(9132)]),e[t(565)](this[t(9322)]),e[t(565)](this.BaseCosts),e[t(565)](this[t(9321)]),e[t(565)](this.PredefinedType),e}},IfcConstructionResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this.ObjectType=a,this[d(9129)]=o,this.LongDescription=c,this[d(9319)]=l,this[d(9320)]=h,this[d(9321)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcConstructionResource(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e[t(565)](this[t(9319)]),e[t(565)](this[t(9320)]),e[t(565)](this[t(9321)]),e}},IfcConstructionResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this.Description=s,this[f(9143)]=a,this[f(9144)]=o,this[f(9129)]=c,this.LongDescription=l,this.ResourceType=h,this[f(9320)]=u,this[f(9321)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcConstructionResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9129)]),e[t(565)](this.LongDescription),e.push(this.ResourceType),e[t(565)](this.BaseCosts),e[t(565)](this[t(9321)]),e}},IfcContext=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9262)]=o,this.Phase=c,this[u(9323)]=l,this[u(9324)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcContext(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9262)]),e.push(this.Phase),e.push(this[t(9323)]),e[t(565)](this[t(9324)]),e}},IfcContextDependentUnit=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9325)]=n,this[s(9326)]=r,this.Name=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcContextDependentUnit(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Dimensions),e[t(565)](this[t(9326)]),e[t(565)](this[t(9127)]),e}},IfcControl=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.GlobalId=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this.ObjectType=a,this[c(9129)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcControl(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.Identification),e}},IfcController=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcController(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcControllerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcControllerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcConversionBasedUnit=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9325)]=n,this[a(9326)]=r,this[a(9127)]=i,this[a(9327)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcConversionBasedUnit(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9325)]),e[t(565)](this[t(9326)]),e[t(565)](this.Name),e[t(565)](this[t(9327)]),e}},IfcConversionBasedUnitWithOffset=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this.type=e,this.Dimensions=n,this[o(9326)]=r,this.Name=i,this[o(9327)]=s,this[o(9328)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcConversionBasedUnitWithOffset(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Dimensions),e[t(565)](this[t(9326)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9327)]),e[t(565)](this[t(9328)]),e}},IfcCooledBeam=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCooledBeam(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcCooledBeamType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCooledBeamType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcCoolingTower=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCoolingTower(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcCoolingTowerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCoolingTowerType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCoordinateOperation=class{constructor(t,e,n,r){this[nz(9125)]=t,this.type=e,this.SourceCRS=n,this.TargetCRS=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCoordinateOperation(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9329)]),e[t(565)](this[t(9330)]),e}},IfcCoordinateReferenceSystem=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this.Name=n,this.Description=r,this.GeodeticDatum=i,this[a(9331)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcCoordinateReferenceSystem(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.GeodeticDatum),e[t(565)](this[t(9331)]),e}},IfcCostItem=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9129)]=o,this[u(9130)]=c,this[u(9332)]=l,this[u(9333)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCostItem(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this.PredefinedType),e[t(565)](this[t(9332)]),e[t(565)](this[t(9333)]),e}},IfcCostSchedule=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9129)]=o,this.PredefinedType=c,this[d(9131)]=l,this.SubmittedOn=h,this[d(9334)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCostSchedule(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this.Description),e.push(this[t(9128)]),e.push(this[t(9129)]),e.push(this[t(9130)]),e.push(this[t(9131)]),e.push(this[t(9335)]),e[t(565)](this[t(9334)]),e}},IfcCostValue=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9127)]=n,this[d(9134)]=r,this[d(9171)]=i,this[d(9172)]=s,this.ApplicableDate=a,this[d(9174)]=o,this[d(9175)]=c,this.Condition=l,this[d(9177)]=h,this[d(6291)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCostValue(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.AppliedValue),e.push(this[t(9172)]),e.push(this[t(9173)]),e.push(this.FixedUntilDate),e.push(this[t(9175)]),e[t(565)](this[t(9176)]),e[t(565)](this[t(9177)]),e[t(565)](this[t(6291)]),e}},IfcCovering=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this.Description=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCovering(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e.push(this[t(9130)]),e}},IfcCoveringType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCoveringType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCrewResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this.expressID=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this.Name=i,this[f(9134)]=s,this[f(9128)]=a,this[f(9129)]=o,this.LongDescription=c,this[f(9319)]=l,this[f(9320)]=h,this[f(9321)]=u,this.PredefinedType=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcCrewResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.Identification),e[t(565)](this.LongDescription),e[t(565)](this.Usage),e[t(565)](this[t(9320)]),e[t(565)](this[t(9321)]),e.push(this[t(9130)]),e}},IfcCrewResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this[p(9133)]=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this.ApplicableOccurrence=a,this[p(9144)]=o,this[p(9129)]=c,this[p(9132)]=l,this[p(9322)]=h,this[p(9320)]=u,this.BaseQuantity=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcCrewResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9129)]),e[t(565)](this.LongDescription),e.push(this.ResourceType),e[t(565)](this.BaseCosts),e[t(565)](this[t(9321)]),e[t(565)](this.PredefinedType),e}},IfcCsgPrimitive3D=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.Position=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcCsgPrimitive3D(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.Position),t}},IfcCsgSolid=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9336)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcCsgSolid(t,e,i)}[nz(9135)](){let t=[];return t.push(this.TreeRootExpression),t}},IfcCurrencyRelationship=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9127)]=n,this[l(9134)]=r,this.RelatingMonetaryUnit=i,this.RelatedMonetaryUnit=s,this[l(9337)]=a,this[l(9338)]=o,this[l(9339)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcCurrencyRelationship(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e.push(this.Description),e[t(565)](this.RelatingMonetaryUnit),e[t(565)](this[t(9340)]),e[t(565)](this[t(9337)]),e[t(565)](this[t(9338)]),e[t(565)](this[t(9339)]),e}},IfcCurtainWall=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcCurtainWall(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e.push(this.PredefinedType),e}},IfcCurtainWallType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcCurtainWallType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcCurve=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcCurve(t,e)}ToTape(){return[]}},IfcCurveBoundedPlane=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9341)]=n,this[s(9167)]=r,this.InnerBoundaries=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcCurveBoundedPlane(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9341)]),e[t(565)](this[t(9167)]),e[t(565)](this[t(9168)]),e}},IfcCurveBoundedSurface=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9341)]=n,this[s(9342)]=r,this[s(9343)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcCurveBoundedSurface(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9341)]),e.push(this[t(9342)]),e[t(565)](this[t(9343)]),e}},IfcCurveSegment2D=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.StartPoint=n,this.StartDirection=r,this[s(9283)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcCurveSegment2D(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9281)]),e[t(565)](this[t(9282)]),e[t(565)](this[t(9283)]),e}},IfcCurveStyle=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9127)]=n,this[o(9344)]=r,this[o(9345)]=i,this[o(9346)]=s,this[o(9347)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcCurveStyle(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this.CurveFont),e[t(565)](this[t(9345)]),e[t(565)](this[t(9346)]),e[t(565)](this.ModelOrDraughting),e}},IfcCurveStyleFont=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9127)]=n,this[i(9348)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCurveStyleFont(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this[t(9348)]),e}},IfcCurveStyleFontAndScaling=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9127)]=n,this.CurveFont=r,this.CurveFontScaling=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcCurveStyleFontAndScaling(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9344)]),e[t(565)](this.CurveFontScaling),e}},IfcCurveStyleFontPattern=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9349)]=n,this[i(9350)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCurveStyleFontPattern(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9349)]),e.push(this[t(9350)]),e}},IfcCylindricalSurface=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9196)]=n,this[i(9162)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcCylindricalSurface(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9196)]),e[t(565)](this[t(9162)]),e}},IfcDamper=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDamper(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcDamperType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDamperType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this.PredefinedType),e}},IfcDeepFoundation=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this[h(9139)]=c,this.Tag=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcDeepFoundation(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e}},IfcDeepFoundationType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[u(9140)]=l,this.ElementType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDeepFoundationType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e}},IfcDerivedProfileDef=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9186)]=n,this[o(9187)]=r,this[o(9351)]=i,this[o(9237)]=s,this[o(9301)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcDerivedProfileDef(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9351)]),e.push(this[t(9237)]),e.push(this[t(9301)]),e}},IfcDerivedUnit=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9352)]=n,this[s(9326)]=r,this[s(9353)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcDerivedUnit(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Elements),e.push(this.UnitType),e[t(565)](this[t(9353)]),e}},IfcDerivedUnitElement=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9354)]=n,this[i(9355)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcDerivedUnitElement(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9354)]),e[t(565)](this.Exponent),e}},IfcDimensionalExponents=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9356)]=n,this[l(9357)]=r,this[l(9358)]=i,this[l(9359)]=s,this[l(9360)]=a,this[l(9361)]=o,this[l(9362)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcDimensionalExponents(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9356)]),e[t(565)](this[t(9357)]),e[t(565)](this[t(9358)]),e[t(565)](this.ElectricCurrentExponent),e[t(565)](this[t(9360)]),e.push(this[t(9361)]),e[t(565)](this[t(9362)]),e}},IfcDirection=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9363)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcDirection(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9363)]),e}},IfcDiscreteAccessory=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDiscreteAccessory(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcDiscreteAccessoryType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDiscreteAccessoryType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcDistanceExpression=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this.type=e,this[o(9364)]=n,this[o(9365)]=r,this[o(9366)]=i,this[o(9367)]=s,this.AlongHorizontal=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcDistanceExpression(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9364)]),e[t(565)](this[t(9365)]),e[t(565)](this[t(9366)]),e[t(565)](this[t(9367)]),e[t(565)](this[t(9368)]),e}},IfcDistributionChamberElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDistributionChamberElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcDistributionChamberElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDistributionChamberElementType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcDistributionCircuit=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this.LongName=o,this[l(9130)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcDistributionCircuit(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this.LongName),e.push(this[t(9130)]),e}},IfcDistributionControlElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcDistributionControlElement(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e}},IfcDistributionControlElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[u(9142)]=c,this.Tag=l,this.ElementType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDistributionControlElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcDistributionElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this.Tag=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcDistributionElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ObjectType),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e}},IfcDistributionElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this.RepresentationMaps=c,this[u(9140)]=l,this.ElementType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDistributionElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e}},IfcDistributionFlowElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this.Representation=c,this.Tag=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcDistributionFlowElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e}},IfcDistributionFlowElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this.RepresentationMaps=c,this[u(9140)]=l,this.ElementType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDistributionFlowElementType(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e}},IfcDistributionPort=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this.Representation=c,this[d(9369)]=l,this[d(9130)]=h,this[d(9370)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDistributionPort(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9369)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9370)]),e}},IfcDistributionSystem=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this.GlobalId=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this.LongName=o,this[l(9130)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcDistributionSystem(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9262)]),e.push(this[t(9130)]),e}},IfcDocumentInformation=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g){var y=nz;this[y(9125)]=t,this[y(452)]=e,this[y(9129)]=n,this[y(9127)]=r,this[y(9134)]=i,this[y(9209)]=s,this[y(9146)]=a,this[y(9371)]=o,this[y(9372)]=c,this[y(9373)]=l,this.DocumentOwner=h,this[y(9374)]=u,this[y(9317)]=d,this[y(9375)]=f,this[y(9376)]=p,this.ValidFrom=m,this[y(9377)]=v,this[y(9378)]=_,this[y(9131)]=g}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++];return new IfcDocumentInformation(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Identification),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9209)]),e[t(565)](this.Purpose),e[t(565)](this[t(9371)]),e.push(this[t(9372)]),e.push(this[t(9373)]),e[t(565)](this[t(9379)]),e[t(565)](this.Editors),e[t(565)](this.CreationTime),e.push(this[t(9375)]),e[t(565)](this[t(9376)]),e[t(565)](this[t(9380)]),e[t(565)](this[t(9377)]),e[t(565)](this[t(9378)]),e[t(565)](this[t(9131)]),e}},IfcDocumentInformationRelationship=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9127)]=n,this[o(9134)]=r,this.RelatingDocument=i,this[o(9381)]=s,this[o(9382)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcDocumentInformationRelationship(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9383)]),e[t(565)](this[t(9381)]),e.push(this[t(9382)]),e}},IfcDocumentReference=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9209)]=n,this.Identification=r,this[o(9127)]=i,this.Description=s,this[o(9384)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcDocumentReference(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e.push(this.Identification),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this.ReferencedDocument),e}},IfcDoor=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9141)]=o,this[m(9139)]=c,this[m(9140)]=l,this[m(9385)]=h,this[m(9386)]=u,this[m(9130)]=d,this[m(9387)]=f,this[m(9388)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcDoor(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9385)]),e[t(565)](this.OverallWidth),e[t(565)](this[t(9130)]),e.push(this[t(9387)]),e[t(565)](this.UserDefinedOperationType),e}},IfcDoorLiningProperties=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g){var y=nz;this[y(9125)]=t,this[y(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[y(9127)]=i,this[y(9134)]=s,this[y(9389)]=a,this[y(9390)]=o,this[y(9391)]=c,this[y(9392)]=l,this.TransomThickness=h,this[y(9393)]=u,this[y(9394)]=d,this[y(9395)]=f,this.CasingThickness=p,this[y(9396)]=m,this.ShapeAspectStyle=v,this[y(9397)]=_,this[y(9398)]=g}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++];return new IfcDoorLiningProperties(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9389)]),e[t(565)](this[t(9390)]),e[t(565)](this[t(9391)]),e[t(565)](this[t(9392)]),e[t(565)](this[t(9399)]),e[t(565)](this[t(9393)]),e[t(565)](this.LiningOffset),e[t(565)](this.ThresholdOffset),e[t(565)](this[t(9400)]),e[t(565)](this.CasingDepth),e[t(565)](this[t(9401)]),e[t(565)](this[t(9397)]),e.push(this[t(9398)]),e}},IfcDoorPanelProperties=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.PanelDepth=a,this[u(9402)]=o,this[u(9403)]=c,this.PanelPosition=l,this[u(9401)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDoorPanelProperties(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9404)]),e[t(565)](this[t(9402)]),e[t(565)](this[t(9403)]),e[t(565)](this.PanelPosition),e[t(565)](this[t(9401)]),e}},IfcDoorStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this.Name=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9141)]=o,this[m(9139)]=c,this.Tag=l,this[m(9385)]=h,this[m(9386)]=u,this[m(9130)]=d,this[m(9387)]=f,this.UserDefinedOperationType=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcDoorStandardCase(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9385)]),e[t(565)](this.OverallWidth),e[t(565)](this[t(9130)]),e[t(565)](this[t(9387)]),e[t(565)](this[t(9388)]),e}},IfcDoorStyle=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this.type=e,this[p(9133)]=n,this[p(9126)]=r,this[p(9127)]=i,this.Description=s,this[p(9143)]=a,this.HasPropertySets=o,this[p(9142)]=c,this[p(9140)]=l,this[p(9387)]=h,this[p(9405)]=u,this[p(9406)]=d,this[p(9407)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcDoorStyle(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9387)]),e[t(565)](this[t(9405)]),e[t(565)](this[t(9406)]),e[t(565)](this.Sizeable),e}},IfcDoorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this.expressID=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9143)]=a,this.HasPropertySets=o,this[m(9142)]=c,this[m(9140)]=l,this.ElementType=h,this.PredefinedType=u,this.OperationType=d,this.ParameterTakesPrecedence=f,this[m(9388)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcDoorType(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9387)]),e[t(565)](this[t(9406)]),e[t(565)](this[t(9388)]),e}},IfcDraughtingPreDefinedColour=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcDraughtingPreDefinedColour(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e}},IfcDraughtingPreDefinedCurveFont=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcDraughtingPreDefinedCurveFont(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcDuctFitting=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDuctFitting(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcDuctFittingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this.ElementType=h,this.PredefinedType=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDuctFittingType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcDuctSegment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDuctSegment(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcDuctSegmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDuctSegmentType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e.push(this.ElementType),e[t(565)](this[t(9130)]),e}},IfcDuctSilencer=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcDuctSilencer(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcDuctSilencerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcDuctSilencerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e.push(this.Tag),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcEdge=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9408)]=n,this[i(9409)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcEdge(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this.EdgeStart),e[t(565)](this[t(9409)]),e}},IfcEdgeCurve=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9408)]=n,this[a(9409)]=r,this[a(9410)]=i,this[a(9299)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcEdgeCurve(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9408)]),e[t(565)](this.EdgeEnd),e[t(565)](this.EdgeGeometry),e[t(565)](this.SameSense),e}},IfcEdgeLoop=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9411)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcEdgeLoop(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9411)]),e}},IfcElectricAppliance=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricAppliance(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcElectricApplianceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricApplianceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcElectricDistributionBoard=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricDistributionBoard(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcElectricDistributionBoardType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricDistributionBoardType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcElectricFlowStorageDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricFlowStorageDevice(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcElectricFlowStorageDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricFlowStorageDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this.PredefinedType),e}},IfcElectricGenerator=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricGenerator(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcElectricGeneratorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricGeneratorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcElectricMotor=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricMotor(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this.Representation),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcElectricMotorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricMotorType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcElectricTimeControl=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElectricTimeControl(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this.PredefinedType),e}},IfcElectricTimeControlType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this.Tag=l,this.ElementType=h,this.PredefinedType=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElectricTimeControlType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this.Representation=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e}},IfcElementAssembly=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9128)]=a,this[d(9141)]=o,this.Representation=c,this[d(9140)]=l,this[d(9412)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElementAssembly(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e.push(this[t(9412)]),e[t(565)](this[t(9130)]),e}},IfcElementAssemblyType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcElementAssemblyType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcElementComponent=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcElementComponent(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e.push(this.Description),e.push(this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e.push(this.Tag),e}},IfcElementComponentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElementComponentType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcElementQuantity=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9413)]=a,this.Quantities=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcElementQuantity(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9413)]),e[t(565)](this.Quantities),e}},IfcElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcElementarySurface=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9196)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcElementarySurface(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.Position),t}},IfcEllipse=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9196)]=n,this[s(9414)]=r,this.SemiAxis2=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcEllipse(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Position),e[t(565)](this[t(9414)]),e[t(565)](this[t(9415)]),e}},IfcEllipseProfileDef=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9186)]=n,this[o(9187)]=r,this.Position=i,this[o(9414)]=s,this[o(9415)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcEllipseProfileDef(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this.ProfileType),e[t(565)](this.ProfileName),e[t(565)](this[t(9196)]),e[t(565)](this[t(9414)]),e[t(565)](this[t(9415)]),e}},IfcEnergyConversionDevice=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcEnergyConversionDevice(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e}},IfcEnergyConversionDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this[u(9144)]=o,this[u(9142)]=c,this.Tag=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcEnergyConversionDeviceType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this.ElementType),e}},IfcEngine=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcEngine(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this.PredefinedType),e}},IfcEngineType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this.Tag=l,this.ElementType=h,this.PredefinedType=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcEngineType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcEvaporativeCooler=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcEvaporativeCooler(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcEvaporativeCoolerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcEvaporativeCoolerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcEvaporator=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcEvaporator(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this.PredefinedType),e}},IfcEvaporatorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcEvaporatorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcEvent=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9128)]=a,this.Identification=o,this[f(9132)]=c,this[f(9130)]=l,this[f(9416)]=h,this[f(9417)]=u,this[f(9418)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcEvent(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.Identification),e[t(565)](this.LongDescription),e[t(565)](this[t(9130)]),e[t(565)](this[t(9416)]),e[t(565)](this.UserDefinedEventTriggerType),e[t(565)](this.EventOccurenceTime),e}},IfcEventTime=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9127)]=n,this[l(9419)]=r,this[l(9420)]=i,this[l(9421)]=s,this[l(9422)]=a,this[l(9423)]=o,this[l(9424)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcEventTime(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9419)]),e[t(565)](this[t(9420)]),e[t(565)](this[t(9421)]),e[t(565)](this[t(9422)]),e[t(565)](this[t(9423)]),e[t(565)](this[t(9424)]),e}},IfcEventType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9143)]=a,this.HasPropertySets=o,this[p(9129)]=c,this[p(9132)]=l,this[p(9425)]=h,this[p(9130)]=u,this[p(9416)]=d,this.UserDefinedEventTriggerType=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcEventType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}ToTape(){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e.push(this[t(9129)]),e[t(565)](this[t(9132)]),e[t(565)](this[t(9425)]),e[t(565)](this[t(9130)]),e.push(this.EventTriggerType),e[t(565)](this[t(9417)]),e}},IfcExtendedProperties=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Name=n,this[s(9134)]=r,this.Properties=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcExtendedProperties(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.Properties),e}},IfcExternalInformation=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcExternalInformation(t,e)}[nz(9135)](){return[]}},IfcExternalReference=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Location=n,this.Identification=r,this[s(9127)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcExternalReference(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e[t(565)](this.Identification),e[t(565)](this[t(9127)]),e}},IfcExternalReferenceRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this.Name=n,this[a(9134)]=r,this[a(9426)]=i,this.RelatedResourceObjects=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcExternalReferenceRelationship(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9426)]),e[t(565)](this.RelatedResourceObjects),e}},IfcExternalSpatialElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9262)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcExternalSpatialElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9262)]),e.push(this[t(9130)]),e}},IfcExternalSpatialStructureElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[h(9139)]=c,this[h(9262)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcExternalSpatialStructureElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e.push(this.Representation),e[t(565)](this[t(9262)]),e}},IfcExternallyDefinedHatchStyle=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9209)]=n,this[s(9129)]=r,this[s(9127)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcExternallyDefinedHatchStyle(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e[t(565)](this.Identification),e.push(this.Name),e}},IfcExternallyDefinedSurfaceStyle=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9209)]=n,this[s(9129)]=r,this[s(9127)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcExternallyDefinedSurfaceStyle(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9209)]),e[t(565)](this.Identification),e.push(this[t(9127)]),e}},IfcExternallyDefinedTextFont=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9209)]=n,this[s(9129)]=r,this[s(9127)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcExternallyDefinedTextFont(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9209)]),e[t(565)](this[t(9129)]),e.push(this[t(9127)]),e}},IfcExtrudedAreaSolid=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.SweptArea=n,this[a(9196)]=r,this[a(9427)]=i,this.Depth=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcExtrudedAreaSolid(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this.SweptArea),e[t(565)](this[t(9196)]),e[t(565)](this[t(9427)]),e[t(565)](this[t(6232)]),e}},IfcExtrudedAreaSolidTapered=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9428)]=n,this[o(9196)]=r,this[o(9427)]=i,this[o(6232)]=s,this[o(9429)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcExtrudedAreaSolidTapered(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9428)]),e.push(this[t(9196)]),e.push(this[t(9427)]),e[t(565)](this.Depth),e[t(565)](this[t(9429)]),e}},IfcFace=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9150)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcFace(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9150)]),e}},IfcFaceBasedSurfaceModel=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this.FbsmFaces=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcFaceBasedSurfaceModel(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9430)]),e}},IfcFaceBound=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9431)]=n,this[i(9432)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcFaceBound(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9431)]),e[t(565)](this[t(9432)]),e}},IfcFaceOuterBound=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9431)]=n,this[i(9432)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcFaceOuterBound(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Bound),e[t(565)](this[t(9432)]),e}},IfcFaceSurface=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9150)]=n,this[s(9151)]=r,this[s(9299)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcFaceSurface(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9150)]),e[t(565)](this[t(9151)]),e[t(565)](this[t(9299)]),e}},IfcFacetedBrep=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9148)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcFacetedBrep(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9148)]),e}},IfcFacetedBrepWithVoids=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9148)]=n,this[i(9149)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcFacetedBrepWithVoids(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9148)]),e[t(565)](this[t(9149)]),e}},IfcFacility=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.LongName=l,this.CompositionType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFacility(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e.push(this[t(9261)]),e}},IfcFacilityPart=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9262)]=l,this.CompositionType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFacilityPart(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9262)]),e[t(565)](this.CompositionType),e}},IfcFailureConnectionCondition=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9127)]=n,this.TensionFailureX=r,this[l(9433)]=i,this[l(9434)]=s,this.CompressionFailureX=a,this.CompressionFailureY=o,this[l(9435)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcFailureConnectionCondition(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9436)]),e.push(this.TensionFailureY),e[t(565)](this[t(9434)]),e[t(565)](this[t(9437)]),e[t(565)](this[t(9438)]),e.push(this.CompressionFailureZ),e}},IfcFan=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFan(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcFanType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFanType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this.PredefinedType),e}},IfcFastener=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this.Tag=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFastener(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcFastenerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFastenerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcFeatureElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.GlobalId=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this.Representation=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFeatureElement(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e.push(this.ObjectPlacement),e.push(this[t(9139)]),e.push(this[t(9140)]),e}},IfcFeatureElementAddition=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this.Representation=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFeatureElementAddition(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e}},IfcFeatureElementSubtraction=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.GlobalId=n,this[h(9126)]=r,this.Name=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFeatureElementSubtraction(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e}},IfcFillAreaStyle=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9127)]=n,this.FillStyles=r,this[s(9439)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcFillAreaStyle(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9440)]),e[t(565)](this.ModelorDraughting),e}},IfcFillAreaStyleHatching=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9441)]=n,this[o(9442)]=r,this[o(9443)]=i,this[o(9444)]=s,this.HatchLineAngle=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcFillAreaStyleHatching(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9441)]),e[t(565)](this.StartOfNextHatchLine),e[t(565)](this.PointOfReferenceHatchLine),e[t(565)](this.PatternStart),e.push(this[t(9445)]),e}},IfcFillAreaStyleTiles=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.TilingPattern=n,this[s(9446)]=r,this[s(9447)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcFillAreaStyleTiles(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9448)]),e[t(565)](this[t(9446)]),e[t(565)](this[t(9447)]),e}},IfcFilter=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFilter(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcFilterType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFilterType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e.push(this[t(9130)]),e}},IfcFireSuppressionTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFireSuppressionTerminal(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcFireSuppressionTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFireSuppressionTerminalType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcFixedReferenceSweptAreaSolid=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9428)]=n,this[c(9196)]=r,this[c(9449)]=i,this.StartParam=s,this[c(9450)]=a,this[c(9451)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcFixedReferenceSweptAreaSolid(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9428)]),e[t(565)](this[t(9196)]),e[t(565)](this.Directrix),e[t(565)](this[t(9452)]),e[t(565)](this[t(9450)]),e[t(565)](this[t(9451)]),e}},IfcFlowController=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[h(9126)]=r,this[h(9127)]=i,this.Description=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowController(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e}},IfcFlowControllerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this.RepresentationMaps=c,this.Tag=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowControllerType(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e}},IfcFlowFitting=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this.type=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this.Description=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowFitting(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e}},IfcFlowFittingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowFittingType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this.Name),e.push(this[t(9134)]),e.push(this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e}},IfcFlowInstrument=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowInstrument(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcFlowInstrumentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFlowInstrumentType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcFlowMeter=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowMeter(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcFlowMeterType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFlowMeterType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcFlowMovingDevice=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.GlobalId=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowMovingDevice(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e}},IfcFlowMovingDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowMovingDeviceType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e}},IfcFlowSegment=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this.Description=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowSegment(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e}},IfcFlowSegmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowSegmentType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e}},IfcFlowStorageDevice=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowStorageDevice(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this.Description),e[t(565)](this.ObjectType),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e}},IfcFlowStorageDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this[u(9143)]=a,this.HasPropertySets=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowStorageDeviceType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this.ElementType),e}},IfcFlowTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowTerminal(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e}},IfcFlowTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this.ElementType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowTerminalType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e}},IfcFlowTreatmentDevice=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this.Tag=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFlowTreatmentDevice(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e}},IfcFlowTreatmentDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFlowTreatmentDeviceType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcFooting=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFooting(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcFootingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcFootingType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcFurnishingElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this.Representation=c,this[h(9140)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcFurnishingElement(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e.push(this.ObjectPlacement),e.push(this.Representation),e[t(565)](this[t(9140)]),e}},IfcFurnishingElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this.Tag=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFurnishingElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e}},IfcFurniture=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcFurniture(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcFurnitureType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this.OwnerHistory=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9143)]=a,this[f(9144)]=o,this[f(9142)]=c,this[f(9140)]=l,this[f(9145)]=h,this[f(9412)]=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcFurnitureType(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this.Tag),e[t(565)](this.ElementType),e[t(565)](this.AssemblyPlace),e[t(565)](this[t(9130)]),e}},IfcGeographicElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this.Description=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcGeographicElement(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcGeographicElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcGeographicElementType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this.Tag),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcGeometricCurveSet=class{constructor(t,e,n){this[nz(9125)]=t,this.type=e,this.Elements=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcGeometricCurveSet(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9352)]),e}},IfcGeometricRepresentationContext=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9453)]=n,this[c(9454)]=r,this[c(9455)]=i,this[c(9456)]=s,this.WorldCoordinateSystem=a,this[c(9457)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcGeometricRepresentationContext(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9453)]),e[t(565)](this[t(9454)]),e[t(565)](this[t(9455)]),e[t(565)](this.Precision),e[t(565)](this[t(9458)]),e[t(565)](this[t(9457)]),e}},IfcGeometricRepresentationItem=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static FromTape(t,e,n){return new IfcGeometricRepresentationItem(t,e)}ToTape(){return[]}},IfcGeometricRepresentationSubContext=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.ContextIdentifier=n,this[d(9454)]=r,this[d(9455)]=i,this[d(9456)]=s,this.WorldCoordinateSystem=a,this.TrueNorth=o,this[d(9459)]=c,this[d(9460)]=l,this[d(9461)]=h,this[d(9462)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcGeometricRepresentationSubContext(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9453)]),e[t(565)](this[t(9454)]),e[t(565)](this[t(9455)]),e[t(565)](this.Precision),e[t(565)](this[t(9458)]),e.push(this[t(9457)]),e[t(565)](this[t(9459)]),e.push(this[t(9460)]),e[t(565)](this.TargetView),e[t(565)](this[t(9462)]),e}},IfcGeometricSet=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9352)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcGeometricSet(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9352)]),e}},IfcGrid=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this.GlobalId=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9128)]=a,this.ObjectPlacement=o,this[f(9139)]=c,this[f(9463)]=l,this[f(9464)]=h,this[f(9465)]=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcGrid(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e.push(this.Representation),e.push(this[t(9463)]),e[t(565)](this[t(9464)]),e[t(565)](this[t(9465)]),e.push(this[t(9130)]),e}},IfcGridAxis=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9466)]=n,this[s(9467)]=r,this.SameSense=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcGridAxis(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this.AxisTag),e.push(this.AxisCurve),e[t(565)](this[t(9299)]),e}},IfcGridPlacement=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this.type=e,this[s(9468)]=n,this[s(9469)]=r,this[s(9470)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcGridPlacement(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9468)]),e[t(565)](this[t(9469)]),e[t(565)](this[t(9470)]),e}},IfcGroup=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9133)]=n,this[o(9126)]=r,this[o(9127)]=i,this.Description=s,this[o(9128)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcGroup(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e}},IfcHalfSpaceSolid=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9259)]=n,this[i(9260)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcHalfSpaceSolid(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9259)]),e[t(565)](this[t(9260)]),e}},IfcHeatExchanger=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcHeatExchanger(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcHeatExchangerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcHeatExchangerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcHumidifier=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcHumidifier(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcHumidifierType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcHumidifierType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcIShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.ProfileType=n,this.ProfileName=r,this[d(9196)]=i,this.OverallWidth=s,this[d(9205)]=a,this.WebThickness=o,this[d(9471)]=c,this[d(9472)]=l,this[d(9473)]=h,this[d(9474)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcIShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9386)]),e[t(565)](this[t(9205)]),e[t(565)](this[t(9198)]),e.push(this[t(9471)]),e[t(565)](this.FilletRadius),e[t(565)](this.FlangeEdgeRadius),e[t(565)](this[t(9474)]),e}},IfcImageTexture=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9228)]=n,this.RepeatT=r,this[c(9230)]=i,this[c(9231)]=s,this[c(9232)]=a,this[c(9475)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcImageTexture(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.RepeatS),e[t(565)](this.RepeatT),e[t(565)](this[t(9230)]),e[t(565)](this[t(9231)]),e[t(565)](this[t(9232)]),e[t(565)](this[t(9475)]),e}},IfcIndexedColourMap=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9476)]=n,this[a(7239)]=r,this[a(9477)]=i,this[a(9478)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcIndexedColourMap(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.MappedTo),e[t(565)](this[t(7239)]),e[t(565)](this.Colours),e.push(this[t(9478)]),e}},IfcIndexedPolyCurve=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(3535)]=n,this[s(9154)]=r,this[s(9215)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcIndexedPolyCurve(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(3535)]),e[t(565)](this[t(9154)]),e[t(565)](this.SelfIntersect),e}},IfcIndexedPolygonalFace=class{constructor(t,e,n){this.expressID=t,this.type=e,this.CoordIndex=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcIndexedPolygonalFace(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9479)]),e}},IfcIndexedPolygonalFaceWithVoids=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9479)]=n,this[i(9480)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcIndexedPolygonalFaceWithVoids(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9479)]),e[t(565)](this[t(9480)]),e}},IfcIndexedTextureMap=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Maps=n,this[s(9476)]=r,this.TexCoords=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcIndexedTextureMap(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9481)]),e[t(565)](this[t(9476)]),e[t(565)](this[t(9482)]),e}},IfcIndexedTriangleTextureMap=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9481)]=n,this[a(9476)]=r,this[a(9482)]=i,this[a(9483)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcIndexedTriangleTextureMap(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9481)]),e[t(565)](this[t(9476)]),e.push(this[t(9482)]),e[t(565)](this.TexCoordIndex),e}},IfcInterceptor=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcInterceptor(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcInterceptorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcInterceptorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e.push(this.PredefinedType),e}},IfcIntersectionCurve=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9484)]=n,this[s(9485)]=r,this[s(9486)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcIntersectionCurve(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9484)]),e[t(565)](this[t(9485)]),e[t(565)](this[t(9486)]),e}},IfcInventory=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this.expressID=t,this[f(452)]=e,this[f(9133)]=n,this.OwnerHistory=r,this[f(9127)]=i,this[f(9134)]=s,this.ObjectType=a,this[f(9130)]=o,this[f(9487)]=c,this.ResponsiblePersons=l,this[f(9488)]=h,this[f(9489)]=u,this[f(9190)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcInventory(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e.push(this.PredefinedType),e[t(565)](this.Jurisdiction),e[t(565)](this[t(9490)]),e[t(565)](this[t(9488)]),e[t(565)](this[t(9489)]),e.push(this[t(9190)]),e}},IfcIrregularTimeSeries=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.Name=n,this[u(9134)]=r,this.StartTime=i,this.EndTime=s,this.TimeSeriesDataType=a,this[u(9419)]=o,this[u(9420)]=c,this[u(9354)]=l,this.Values=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcIrregularTimeSeries(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9491)]),e[t(565)](this[t(9492)]),e[t(565)](this[t(9493)]),e.push(this[t(9419)]),e.push(this[t(9420)]),e.push(this[t(9354)]),e[t(565)](this[t(9494)]),e}},IfcIrregularTimeSeriesValue=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9495)]=n,this[i(9496)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcIrregularTimeSeriesValue(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9495)]),e[t(565)](this[t(9496)]),e}},IfcJunctionBox=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcJunctionBox(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcJunctionBoxType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcJunctionBoxType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcLShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9186)]=n,this.ProfileName=r,this[u(9196)]=i,this[u(6232)]=s,this[u(9497)]=a,this[u(9280)]=o,this[u(9472)]=c,this[u(9498)]=l,this.LegSlope=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcLShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(6232)]),e[t(565)](this[t(9497)]),e[t(565)](this[t(9280)]),e[t(565)](this[t(9472)]),e[t(565)](this[t(9498)]),e[t(565)](this[t(9499)]),e}},IfcLaborResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this.expressID=t,this[f(452)]=e,this.GlobalId=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9128)]=a,this[f(9129)]=o,this[f(9132)]=c,this.Usage=l,this[f(9320)]=h,this[f(9321)]=u,this[f(9130)]=d}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcLaborResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this.Usage),e.push(this[t(9320)]),e.push(this.BaseQuantity),e.push(this.PredefinedType),e}},IfcLaborResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this.type=e,this.GlobalId=n,this.OwnerHistory=r,this[p(9127)]=i,this.Description=s,this[p(9143)]=a,this.HasPropertySets=o,this[p(9129)]=c,this.LongDescription=l,this[p(9322)]=h,this[p(9320)]=u,this.BaseQuantity=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcLaborResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this.ResourceType),e[t(565)](this[t(9320)]),e[t(565)](this.BaseQuantity),e.push(this[t(9130)]),e}},IfcLagTime=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9127)]=n,this[o(9419)]=r,this[o(9420)]=i,this[o(9500)]=s,this[o(9501)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcLagTime(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Name),e.push(this[t(9419)]),e[t(565)](this[t(9420)]),e[t(565)](this[t(9500)]),e[t(565)](this[t(9501)]),e}},IfcLamp=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcLamp(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e.push(this[t(9130)]),e}},IfcLampType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcLampType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcLibraryInformation=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9127)]=n,this.Version=r,this[c(9502)]=i,this[c(9503)]=s,this[c(9209)]=a,this[c(9134)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcLibraryInformation(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(6290)]),e[t(565)](this[t(9502)]),e[t(565)](this.VersionDate),e[t(565)](this[t(9209)]),e[t(565)](this.Description),e}},IfcLibraryReference=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9209)]=n,this.Identification=r,this.Name=i,this[c(9134)]=s,this.Language=a,this[c(9504)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcLibraryReference(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e[t(565)](this[t(9129)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.Language),e.push(this[t(9504)]),e}},IfcLightDistributionData=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.MainPlaneAngle=n,this[s(9505)]=r,this[s(9506)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcLightDistributionData(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this.MainPlaneAngle),e[t(565)](this[t(9505)]),e[t(565)](this[t(9506)]),e}},IfcLightFixture=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcLightFixture(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcLightFixtureType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcLightFixtureType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcLightIntensityDistribution=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this.LightDistributionCurve=n,this[i(9507)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcLightIntensityDistribution(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9508)]),e[t(565)](this[t(9507)]),e}},IfcLightSource=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9127)]=n,this.LightColour=r,this[a(9509)]=i,this[a(7300)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcLightSource(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9510)]),e[t(565)](this[t(9509)]),e.push(this[t(7300)]),e}},IfcLightSourceAmbient=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9127)]=n,this[a(9510)]=r,this.AmbientIntensity=i,this.Intensity=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcLightSourceAmbient(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9510)]),e[t(565)](this[t(9509)]),e[t(565)](this[t(7300)]),e}},IfcLightSourceDirectional=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9127)]=n,this[o(9510)]=r,this.AmbientIntensity=i,this[o(7300)]=s,this[o(9432)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcLightSourceDirectional(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9510)]),e.push(this[t(9509)]),e.push(this[t(7300)]),e[t(565)](this[t(9432)]),e}},IfcLightSourceGoniometric=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9127)]=n,this[d(9510)]=r,this.AmbientIntensity=i,this[d(7300)]=s,this.Position=a,this[d(9511)]=o,this[d(9512)]=c,this[d(9513)]=l,this.LightEmissionSource=h,this[d(9514)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcLightSourceGoniometric(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9510)]),e[t(565)](this.AmbientIntensity),e[t(565)](this.Intensity),e.push(this[t(9196)]),e[t(565)](this[t(9511)]),e[t(565)](this[t(9512)]),e[t(565)](this[t(9513)]),e[t(565)](this.LightEmissionSource),e[t(565)](this[t(9514)]),e}},IfcLightSourcePositional=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9127)]=n,this[u(9510)]=r,this.AmbientIntensity=i,this[u(7300)]=s,this[u(9196)]=a,this[u(9162)]=o,this[u(9515)]=c,this[u(9516)]=l,this[u(9517)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcLightSourcePositional(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.LightColour),e[t(565)](this.AmbientIntensity),e.push(this[t(7300)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9162)]),e[t(565)](this.ConstantAttenuation),e.push(this.DistanceAttenuation),e[t(565)](this[t(9517)]),e}},IfcLightSourceSpot=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this.expressID=t,this[m(452)]=e,this[m(9127)]=n,this.LightColour=r,this[m(9509)]=i,this.Intensity=s,this[m(9196)]=a,this[m(9162)]=o,this[m(9515)]=c,this[m(9516)]=l,this[m(9517)]=h,this.Orientation=u,this.ConcentrationExponent=d,this[m(9518)]=f,this[m(9519)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcLightSourceSpot(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this.LightColour),e[t(565)](this.AmbientIntensity),e.push(this.Intensity),e[t(565)](this[t(9196)]),e[t(565)](this[t(9162)]),e.push(this[t(9515)]),e[t(565)](this.DistanceAttenuation),e[t(565)](this[t(9517)]),e[t(565)](this[t(9432)]),e[t(565)](this[t(9520)]),e[t(565)](this[t(9518)]),e[t(565)](this[t(9519)]),e}},IfcLine=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9521)]=n,this[i(9522)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcLine(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9521)]),e[t(565)](this[t(9522)]),e}},IfcLineSegment2D=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9281)]=n,this[s(9282)]=r,this.SegmentLength=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcLineSegment2D(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.StartPoint),e[t(565)](this[t(9282)]),e.push(this[t(9283)]),e}},IfcLinearPlacement=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9468)]=n,this[o(9523)]=r,this.Distance=i,this.Orientation=s,this.CartesianPosition=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcLinearPlacement(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e.push(this[t(9468)]),e[t(565)](this[t(9523)]),e[t(565)](this[t(9524)]),e[t(565)](this.Orientation),e[t(565)](this[t(9525)]),e}},IfcLinearPositioningElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this[h(9141)]=o,this[h(9139)]=c,this.Axis=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcLinearPositioningElement(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9152)]),e}},IfcLocalPlacement=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9468)]=n,this[i(9526)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcLocalPlacement(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9468)]),e.push(this[t(9526)]),e}},IfcLoop=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcLoop(t,e)}[nz(9135)](){return[]}},IfcManifoldSolidBrep=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this.type=e,this[r(9148)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcManifoldSolidBrep(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9148)]),e}},IfcMapConversion=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9329)]=n,this[h(9330)]=r,this.Eastings=i,this[h(9527)]=s,this[h(9528)]=a,this[h(9529)]=o,this[h(9530)]=c,this[h(9275)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcMapConversion(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9329)]),e[t(565)](this[t(9330)]),e[t(565)](this.Eastings),e[t(565)](this[t(9527)]),e.push(this[t(9528)]),e[t(565)](this.XAxisAbscissa),e.push(this[t(9530)]),e.push(this[t(9275)]),e}},IfcMappedItem=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9531)]=n,this[i(9532)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcMappedItem(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9531)]),e[t(565)](this[t(9532)]),e}},IfcMaterial=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Name=n,this[s(9134)]=r,this[s(9175)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcMaterial(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9175)]),e}},IfcMaterialClassificationRelationship=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9533)]=n,this[i(9534)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcMaterialClassificationRelationship(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9533)]),e[t(565)](this[t(9534)]),e}},IfcMaterialConstituent=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9127)]=n,this.Description=r,this[o(2194)]=i,this[o(9535)]=s,this[o(9175)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcMaterialConstituent(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this.Description),e.push(this[t(2194)]),e[t(565)](this[t(9535)]),e[t(565)](this.Category),e}},IfcMaterialConstituentSet=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9127)]=n,this[s(9134)]=r,this[s(9536)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcMaterialConstituentSet(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9536)]),e}},IfcMaterialDefinition=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcMaterialDefinition(t,e)}[nz(9135)](){return[]}},IfcMaterialDefinitionRepresentation=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this.type=e,this.Name=n,this[a(9134)]=r,this.Representations=i,this[a(9537)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcMaterialDefinitionRepresentation(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this.Representations),e[t(565)](this[t(9537)]),e}},IfcMaterialLayer=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(2194)]=n,this[l(9538)]=r,this[l(9539)]=i,this[l(9127)]=s,this.Description=a,this[l(9175)]=o,this[l(9540)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcMaterialLayer(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Material),e[t(565)](this.LayerThickness),e[t(565)](this.IsVentilated),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9175)]),e[t(565)](this[t(9540)]),e}},IfcMaterialLayerSet=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9541)]=n,this[s(9542)]=r,this[s(9134)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcMaterialLayerSet(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9541)]),e[t(565)](this[t(9542)]),e.push(this[t(9134)]),e}},IfcMaterialLayerSetUsage=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9543)]=n,this[o(9544)]=r,this[o(9545)]=i,this[o(9546)]=s,this.ReferenceExtent=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcMaterialLayerSetUsage(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9543)]),e[t(565)](this[t(9544)]),e.push(this.DirectionSense),e[t(565)](this[t(9546)]),e.push(this.ReferenceExtent),e}},IfcMaterialLayerWithOffsets=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(2194)]=n,this[u(9538)]=r,this[u(9539)]=i,this.Name=s,this.Description=a,this[u(9175)]=o,this.Priority=c,this[u(9547)]=l,this.OffsetValues=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcMaterialLayerWithOffsets(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(2194)]),e[t(565)](this[t(9538)]),e.push(this[t(9539)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9175)]),e.push(this[t(9540)]),e[t(565)](this[t(9547)]),e[t(565)](this.OffsetValues),e}},IfcMaterialList=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(6293)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcMaterialList(t,e,i)}ToTape(){var t=nz;let e=[];return e.push(this[t(6293)]),e}},IfcMaterialProfile=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9127)]=n,this[c(9134)]=r,this[c(2194)]=i,this.Profile=s,this[c(9540)]=a,this[c(9175)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcMaterialProfile(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this[t(9134)]),e.push(this.Material),e.push(this[t(9548)]),e.push(this[t(9540)]),e[t(565)](this[t(9175)]),e}},IfcMaterialProfileSet=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this[a(9549)]=i,this[a(9550)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcMaterialProfileSet(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this.MaterialProfiles),e[t(565)](this[t(9550)]),e}},IfcMaterialProfileSetUsage=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.ForProfileSet=n,this[s(9551)]=r,this[s(9552)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcMaterialProfileSetUsage(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ForProfileSet),e.push(this.CardinalPoint),e.push(this[t(9552)]),e}},IfcMaterialProfileSetUsageTapering=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9553)]=n,this[o(9551)]=r,this[o(9552)]=i,this.ForProfileEndSet=s,this[o(9554)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcMaterialProfileSetUsageTapering(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ForProfileSet),e[t(565)](this.CardinalPoint),e[t(565)](this[t(9552)]),e[t(565)](this[t(9555)]),e[t(565)](this.CardinalEndPoint),e}},IfcMaterialProfileWithOffsets=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9127)]=n,this[l(9134)]=r,this[l(2194)]=i,this[l(9548)]=s,this[l(9540)]=a,this[l(9175)]=o,this[l(9556)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcMaterialProfileWithOffsets(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this.Description),e.push(this[t(2194)]),e.push(this[t(9548)]),e[t(565)](this[t(9540)]),e.push(this[t(9175)]),e[t(565)](this.OffsetValues),e}},IfcMaterialProperties=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this[a(9557)]=i,this[a(2194)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcMaterialProperties(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.Properties),e[t(565)](this.Material),e}},IfcMaterialRelationship=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this.Name=n,this[o(9134)]=r,this[o(9558)]=i,this[o(9559)]=s,this[o(9560)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcMaterialRelationship(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingMaterial),e[t(565)](this[t(9559)]),e[t(565)](this[t(9560)]),e}},IfcMaterialUsageDefinition=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcMaterialUsageDefinition(t,e)}[nz(9135)](){return[]}},IfcMeasureWithUnit=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9561)]=n,this[i(9562)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcMeasureWithUnit(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ValueComponent),e[t(565)](this.UnitComponent),e}},IfcMechanicalFastener=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this.ObjectType=a,this[f(9141)]=o,this.Representation=c,this[f(9140)]=l,this[f(9563)]=h,this[f(9564)]=u,this.PredefinedType=d}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcMechanicalFastener(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9563)]),e.push(this.NominalLength),e.push(this[t(9130)]),e}},IfcMechanicalFastenerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9143)]=a,this[p(9144)]=o,this[p(9142)]=c,this.Tag=l,this[p(9145)]=h,this[p(9130)]=u,this[p(9563)]=d,this.NominalLength=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcMechanicalFastenerType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9563)]),e[t(565)](this[t(9564)]),e}},IfcMedicalDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcMedicalDevice(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcMedicalDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcMedicalDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcMember=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcMember(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcMemberStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcMemberStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this.PredefinedType),e}},IfcMemberType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcMemberType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcMetric=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this.expressID=t,this.type=e,this[f(9127)]=n,this[f(9134)]=r,this[f(9316)]=i,this[f(9314)]=s,this[f(9315)]=a,this.CreationTime=o,this[f(9318)]=c,this[f(9565)]=l,this[f(9566)]=h,this[f(9567)]=u,this[f(9568)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcMetric(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9316)]),e[t(565)](this[t(9314)]),e[t(565)](this[t(9315)]),e[t(565)](this.CreationTime),e[t(565)](this[t(9318)]),e.push(this[t(9565)]),e[t(565)](this[t(9566)]),e[t(565)](this[t(9567)]),e[t(565)](this[t(9568)]),e}},IfcMirroredProfileDef=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9186)]=n,this[o(9187)]=r,this[o(9351)]=i,this[o(9237)]=s,this.Label=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcMirroredProfileDef(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this.ProfileName),e.push(this.ParentProfile),e[t(565)](this[t(9237)]),e[t(565)](this[t(9301)]),e}},IfcMonetaryUnit=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9569)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcMonetaryUnit(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9569)]),e}},IfcMotorConnection=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcMotorConnection(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcMotorConnectionType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcMotorConnectionType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcNamedUnit=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9325)]=n,this.UnitType=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcNamedUnit(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9325)]),e.push(this.UnitType),e}},IfcObject=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this.GlobalId=n,this[o(9126)]=r,this[o(9127)]=i,this.Description=s,this[o(9128)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcObject(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e}},IfcObjectDefinition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this.Name=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcObjectDefinition(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e}},IfcObjectPlacement=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9468)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcObjectPlacement(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9468)]),e}},IfcObjective=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9127)]=n,this.Description=r,this[f(9316)]=i,this.ConstraintSource=s,this[f(9315)]=a,this[f(9317)]=o,this[f(9318)]=c,this[f(9570)]=l,this.LogicalAggregator=h,this[f(9571)]=u,this[f(9572)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcObjective(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this.Description),e[t(565)](this.ConstraintGrade),e[t(565)](this.ConstraintSource),e[t(565)](this[t(9315)]),e.push(this[t(9317)]),e[t(565)](this[t(9318)]),e[t(565)](this[t(9570)]),e[t(565)](this[t(9573)]),e.push(this[t(9571)]),e.push(this[t(9572)]),e}},IfcOccupant=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9136)]=o,this[l(9130)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcOccupant(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9136)]),e[t(565)](this.PredefinedType),e}},IfcOffsetCurve=class{constructor(t,e,n){var r=nz;this.expressID=t,this.type=e,this[r(9574)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcOffsetCurve(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9574)]),e}},IfcOffsetCurve2D=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this.BasisCurve=n,this[s(9524)]=r,this[s(9215)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcOffsetCurve2D(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this.BasisCurve),e[t(565)](this[t(9524)]),e[t(565)](this.SelfIntersect),e}},IfcOffsetCurve3D=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9574)]=n,this[a(9524)]=r,this[a(9215)]=i,this[a(9210)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcOffsetCurve3D(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9574)]),e.push(this.Distance),e[t(565)](this.SelfIntersect),e.push(this.RefDirection),e}},IfcOffsetCurveByDistances=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9574)]=n,this[s(9556)]=r,this.Tag=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcOffsetCurveByDistances(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.BasisCurve),e[t(565)](this[t(9556)]),e.push(this[t(9140)]),e}},IfcOpenShell=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.CfsFaces=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcOpenShell(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.CfsFaces),t}},IfcOpeningElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcOpeningElement(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ObjectType),e.push(this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcOpeningStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcOpeningStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcOrganization=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9129)]=n,this.Name=r,this[o(9134)]=i,this[o(9575)]=s,this[o(9576)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcOrganization(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Identification),e.push(this.Name),e[t(565)](this[t(9134)]),e.push(this.Roles),e.push(this[t(9576)]),e}},IfcOrganizationRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9127)]=n,this[a(9134)]=r,this.RelatingOrganization=i,this[a(9577)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcOrganizationRelationship(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9578)]),e[t(565)](this[t(9577)]),e}},IfcOrientationExpression=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9579)]=n,this[i(9580)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcOrientationExpression(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9579)]),e.push(this[t(9580)]),e}},IfcOrientedEdge=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9408)]=n,this[a(9409)]=r,this[a(9581)]=i,this[a(9432)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcOrientedEdge(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9408)]),e[t(565)](this.EdgeEnd),e[t(565)](this[t(9581)]),e[t(565)](this[t(9432)]),e}},IfcOuterBoundaryCurve=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9154)]=n,this[i(9215)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcOuterBoundaryCurve(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9154)]),e.push(this[t(9215)]),e}},IfcOutlet=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcOutlet(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcOutletType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcOutletType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this.ElementType),e.push(this[t(9130)]),e}},IfcOwnerHistory=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9582)]=n,this[h(9583)]=r,this[h(9584)]=i,this[h(9585)]=s,this[h(9586)]=a,this[h(9587)]=o,this[h(9588)]=c,this[h(9589)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcOwnerHistory(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9582)]),e[t(565)](this[t(9583)]),e[t(565)](this[t(9584)]),e[t(565)](this[t(9585)]),e[t(565)](this[t(9586)]),e.push(this[t(9587)]),e[t(565)](this[t(9588)]),e.push(this.CreationDate),e}},IfcParameterizedProfileDef=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9186)]=n,this[s(9187)]=r,this[s(9196)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcParameterizedProfileDef(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e}},IfcPath=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9411)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcPath(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9411)]),e}},IfcPcurve=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9341)]=n,this.ReferenceCurve=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcPcurve(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9341)]),e[t(565)](this[t(9590)]),e}},IfcPerformanceHistory=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this.Name=i,this[h(9134)]=s,this[h(9128)]=a,this.Identification=o,this[h(9591)]=c,this[h(9130)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcPerformanceHistory(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.Identification),e.push(this[t(9591)]),e[t(565)](this[t(9130)]),e}},IfcPermeableCoveringProperties=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9387)]=a,this[u(9592)]=o,this[u(9593)]=c,this[u(9594)]=l,this[u(9401)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPermeableCoveringProperties(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9387)]),e.push(this[t(9592)]),e[t(565)](this[t(9593)]),e[t(565)](this.FrameThickness),e[t(565)](this[t(9401)]),e}},IfcPermit=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9129)]=o,this[u(9130)]=c,this.Status=l,this[u(9132)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPermit(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9129)]),e.push(this[t(9130)]),e.push(this[t(9131)]),e.push(this[t(9132)]),e}},IfcPerson=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9129)]=n,this[h(9595)]=r,this[h(9596)]=i,this[h(9597)]=s,this[h(9598)]=a,this[h(9599)]=o,this[h(9575)]=c,this[h(9576)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcPerson(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9129)]),e[t(565)](this[t(9595)]),e.push(this[t(9596)]),e[t(565)](this[t(9597)]),e[t(565)](this[t(9598)]),e[t(565)](this[t(9599)]),e.push(this[t(9575)]),e[t(565)](this[t(9576)]),e}},IfcPersonAndOrganization=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9600)]=n,this[s(9601)]=r,this[s(9575)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcPersonAndOrganization(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e.push(this[t(9600)]),e[t(565)](this.TheOrganization),e[t(565)](this[t(9575)]),e}},IfcPhysicalComplexQuantity=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.Name=n,this[c(9134)]=r,this[c(9602)]=i,this[c(9603)]=s,this.Quality=a,this[c(9319)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcPhysicalComplexQuantity(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this.Description),e.push(this[t(9602)]),e[t(565)](this[t(9603)]),e[t(565)](this[t(9604)]),e.push(this.Usage),e}},IfcPhysicalQuantity=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9127)]=n,this[i(9134)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcPhysicalQuantity(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9134)]),e}},IfcPhysicalSimpleQuantity=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this.Name=n,this.Description=r,this[s(9354)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcPhysicalSimpleQuantity(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this.Unit),e}},IfcPile=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this.Tag=l,this[d(9130)]=h,this[d(9405)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPile(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this.PredefinedType),e.push(this[t(9405)]),e}},IfcPileType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPileType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcPipeFitting=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPipeFitting(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcPipeFittingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPipeFittingType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e.push(this[t(9130)]),e}},IfcPipeSegment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPipeSegment(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcPipeSegmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPipeSegmentType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcPixelTexture=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9228)]=n,this[u(9229)]=r,this[u(9230)]=i,this[u(9231)]=s,this[u(9232)]=a,this[u(9497)]=o,this[u(9605)]=c,this[u(9606)]=l,this[u(9607)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPixelTexture(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9228)]),e[t(565)](this[t(9229)]),e.push(this.Mode),e[t(565)](this[t(9231)]),e.push(this[t(9232)]),e[t(565)](this.Width),e[t(565)](this.Height),e[t(565)](this[t(9606)]),e[t(565)](this[t(9607)]),e}},IfcPlacement=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9209)]=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcPlacement(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9209)]),e}},IfcPlanarBox=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9608)]=n,this[s(9609)]=r,this[s(9610)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcPlanarBox(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this.SizeInX),e.push(this.SizeInY),e[t(565)](this[t(9610)]),e}},IfcPlanarExtent=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9608)]=n,this[i(9609)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcPlanarExtent(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9608)]),e[t(565)](this.SizeInY),e}},IfcPlane=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9196)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPlane(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9196)]),e}},IfcPlate=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPlate(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e.push(this.Tag),e.push(this[t(9130)]),e}},IfcPlateStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPlateStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcPlateType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPlateType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcPoint=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static FromTape(t,e,n){return new IfcPoint(t,e)}[nz(9135)](){return[]}},IfcPointOnCurve=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this.type=e,this[i(9574)]=n,this[i(9611)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcPointOnCurve(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this.BasisCurve),e[t(565)](this[t(9611)]),e}},IfcPointOnSurface=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9341)]=n,this.PointParameterU=r,this[s(9612)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcPointOnSurface(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9341)]),e.push(this.PointParameterU),e.push(this.PointParameterV),e}},IfcPolyLoop=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(1693)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPolyLoop(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(1693)]),e}},IfcPolygonalBoundedHalfSpace=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9259)]=n,this[a(9260)]=r,this[a(9196)]=i,this[a(9613)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPolygonalBoundedHalfSpace(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9259)]),e[t(565)](this[t(9260)]),e[t(565)](this[t(9196)]),e.push(this[t(9613)]),e}},IfcPolygonalFaceSet=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9270)]=n,this[a(9614)]=r,this[a(6292)]=i,this[a(9615)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPolygonalFaceSet(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Coordinates),e[t(565)](this[t(9614)]),e[t(565)](this.Faces),e[t(565)](this[t(9615)]),e}},IfcPolyline=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(3535)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPolyline(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(3535)]),e}},IfcPort=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.GlobalId=n,this[l(9126)]=r,this.Name=i,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this[l(9139)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcPort(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e}},IfcPositioningElement=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9141)]=o,this[l(9139)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcPositioningElement(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e}},IfcPostalAddress=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9146)]=n,this[d(9134)]=r,this[d(9147)]=i,this[d(9616)]=s,this[d(9617)]=a,this[d(9618)]=o,this[d(9619)]=c,this[d(9620)]=l,this[d(9621)]=h,this[d(9622)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPostalAddress(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9146)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9147)]),e[t(565)](this[t(9616)]),e[t(565)](this[t(9617)]),e[t(565)](this[t(9618)]),e.push(this[t(9619)]),e[t(565)](this[t(9620)]),e.push(this[t(9621)]),e[t(565)](this[t(9622)]),e}},IfcPreDefinedColour=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPreDefinedColour(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.Name),t}},IfcPreDefinedCurveFont=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPreDefinedCurveFont(t,e,i)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e}},IfcPreDefinedItem=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this.type=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPreDefinedItem(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcPreDefinedProperties=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static[nz(7952)](t,e,n){return new IfcPreDefinedProperties(t,e)}[nz(9135)](){return[]}},IfcPreDefinedPropertySet=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this[a(9127)]=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPreDefinedPropertySet(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e}},IfcPreDefinedTextFont=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPreDefinedTextFont(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcPresentationItem=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcPresentationItem(t,e)}[nz(9135)](){return[]}},IfcPresentationLayerAssignment=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this.Name=n,this[a(9134)]=r,this[a(9623)]=i,this.Identifier=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPresentationLayerAssignment(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9623)]),e[t(565)](this[t(9183)]),e}},IfcPresentationLayerWithStyle=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this.Name=n,this.Description=r,this[h(9623)]=i,this[h(9183)]=s,this[h(9624)]=a,this[h(9625)]=o,this[h(9626)]=c,this[h(9627)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcPresentationLayerWithStyle(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9623)]),e[t(565)](this[t(9183)]),e.push(this[t(9624)]),e[t(565)](this[t(9625)]),e[t(565)](this[t(9626)]),e[t(565)](this.LayerStyles),e}},IfcPresentationStyle=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9127)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPresentationStyle(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcPresentationStyleAssignment=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this.type=e,this[r(9628)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcPresentationStyleAssignment(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9628)]),e}},IfcProcedure=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this.Description=s,this.ObjectType=a,this[h(9129)]=o,this.LongDescription=c,this[h(9130)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcProcedure(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e[t(565)](this[t(9130)]),e}},IfcProcedureType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this.Identification=c,this[d(9132)]=l,this[d(9425)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcProcedureType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this.ProcessType),e[t(565)](this[t(9130)]),e}},IfcProcess=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(9133)]=n,this.OwnerHistory=r,this[l(9127)]=i,this[l(9134)]=s,this.ObjectType=a,this[l(9129)]=o,this[l(9132)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcProcess(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e}},IfcProduct=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.GlobalId=n,this[l(9126)]=r,this[l(9127)]=i,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this[l(9139)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcProduct(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e}},IfcProductDefinitionShape=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9127)]=n,this[s(9134)]=r,this[s(9629)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcProductDefinitionShape(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9629)]),e}},IfcProductRepresentation=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this.Name=n,this[s(9134)]=r,this[s(9629)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcProductRepresentation(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9629)]),e}},IfcProfileDef=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9186)]=n,this.ProfileName=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcProfileDef(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9186)]),e[t(565)](this[t(9187)]),e}},IfcProfileProperties=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this[a(9557)]=i,this[a(9630)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcProfileProperties(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9557)]),e[t(565)](this[t(9630)]),e}},IfcProject=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9262)]=o,this[u(9631)]=c,this[u(9323)]=l,this[u(9324)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProject(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9262)]),e[t(565)](this[t(9631)]),e.push(this[t(9323)]),e.push(this[t(9324)]),e}},IfcProjectLibrary=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9262)]=o,this[u(9631)]=c,this[u(9323)]=l,this.UnitsInContext=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProjectLibrary(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9262)]),e[t(565)](this[t(9631)]),e.push(this.RepresentationContexts),e.push(this[t(9324)]),e}},IfcProjectOrder=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this.Identification=o,this[u(9130)]=c,this[u(9131)]=l,this[u(9132)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProjectOrder(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this.Name),e.push(this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9131)]),e[t(565)](this[t(9132)]),e}},IfcProjectedCRS=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this.type=e,this[l(9127)]=n,this.Description=r,this[l(9632)]=i,this.VerticalDatum=s,this.MapProjection=a,this[l(9633)]=o,this[l(9634)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcProjectedCRS(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9632)]),e[t(565)](this[t(9331)]),e[t(565)](this[t(9635)]),e[t(565)](this[t(9633)]),e.push(this[t(9634)]),e}},IfcProjectionElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProjectionElement(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcProperty=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.Name=n,this[i(9134)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcProperty(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e}},IfcPropertyAbstraction=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static[nz(7952)](t,e,n){return new IfcPropertyAbstraction(t,e)}ToTape(){return[]}},IfcPropertyBoundedValue=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9127)]=n,this[c(9134)]=r,this[c(9636)]=i,this[c(9637)]=s,this.Unit=a,this[c(9638)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcPropertyBoundedValue(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9636)]),e[t(565)](this[t(9637)]),e[t(565)](this[t(9354)]),e[t(565)](this[t(9638)]),e}},IfcPropertyDefinition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9133)]=n,this[a(9126)]=r,this[a(9127)]=i,this.Description=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyDefinition(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e}},IfcPropertyDependencyRelationship=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9127)]=n,this[o(9134)]=r,this.DependingProperty=i,this[o(9639)]=s,this[o(9560)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcPropertyDependencyRelationship(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9640)]),e.push(this.DependantProperty),e[t(565)](this[t(9560)]),e}},IfcPropertyEnumeratedValue=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.Name=n,this[a(9134)]=r,this[a(9641)]=i,this.EnumerationReference=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyEnumeratedValue(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9641)]),e[t(565)](this.EnumerationReference),e}},IfcPropertyEnumeration=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9127)]=n,this[s(9641)]=r,this[s(9354)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcPropertyEnumeration(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9641)]),e[t(565)](this.Unit),e}},IfcPropertyListValue=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this.ListValues=i,this[a(9354)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyListValue(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9496)]),e[t(565)](this[t(9354)]),e}},IfcPropertyReferenceValue=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this[a(9295)]=i,this[a(9642)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyReferenceValue(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9295)]),e[t(565)](this[t(9642)]),e}},IfcPropertySet=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this.type=e,this[o(9133)]=n,this[o(9126)]=r,this[o(9127)]=i,this.Description=s,this[o(9294)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcPropertySet(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9294)]),e}},IfcPropertySetDefinition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9133)]=n,this[a(9126)]=r,this.Name=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertySetDefinition(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e}},IfcPropertySetTemplate=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this.type=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9296)]=a,this[l(9643)]=o,this[l(9297)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcPropertySetTemplate(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.TemplateType),e[t(565)](this[t(9643)]),e.push(this[t(9297)]),e}},IfcPropertySingleValue=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this.Description=r,this.NominalValue=i,this.Unit=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertySingleValue(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9644)]),e[t(565)](this[t(9354)]),e}},IfcPropertyTableValue=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.Name=n,this[h(9134)]=r,this[h(9645)]=i,this.DefinedValues=s,this[h(9560)]=a,this[h(9646)]=o,this[h(9647)]=c,this.CurveInterpolation=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcPropertyTableValue(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.DefiningValues),e.push(this[t(9648)]),e[t(565)](this[t(9560)]),e.push(this[t(9646)]),e[t(565)](this[t(9647)]),e[t(565)](this[t(9649)]),e}},IfcPropertyTemplate=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[a(9127)]=i,this[a(9134)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyTemplate(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e}},IfcPropertyTemplateDefinition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this.Name=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcPropertyTemplateDefinition(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e}},IfcProtectiveDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProtectiveDevice(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcProtectiveDeviceTrippingUnit=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProtectiveDeviceTrippingUnit(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcProtectiveDeviceTrippingUnitType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcProtectiveDeviceTrippingUnitType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcProtectiveDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcProtectiveDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e}},IfcProxy=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.ProxyType=l,this[u(9140)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcProxy(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9650)]),e[t(565)](this[t(9140)]),e}},IfcPump=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcPump(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcPumpType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcPumpType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcQuantityArea=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9127)]=n,this.Description=r,this.Unit=i,this[o(9651)]=s,this[o(9652)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityArea(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.Unit),e[t(565)](this.AreaValue),e.push(this[t(9652)]),e}},IfcQuantityCount=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this.Name=n,this[o(9134)]=r,this[o(9354)]=i,this[o(9653)]=s,this[o(9652)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityCount(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.Unit),e[t(565)](this.CountValue),e[t(565)](this.Formula),e}},IfcQuantityLength=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this.Name=n,this[o(9134)]=r,this[o(9354)]=i,this[o(9654)]=s,this[o(9652)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityLength(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9354)]),e[t(565)](this[t(9654)]),e[t(565)](this[t(9652)]),e}},IfcQuantitySet=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9133)]=n,this[a(9126)]=r,this[a(9127)]=i,this.Description=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcQuantitySet(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e.push(this.Description),e}},IfcQuantityTime=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this.Name=n,this.Description=r,this[o(9354)]=i,this.TimeValue=s,this[o(9652)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityTime(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.Unit),e.push(this.TimeValue),e[t(565)](this[t(9652)]),e}},IfcQuantityVolume=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9127)]=n,this[o(9134)]=r,this[o(9354)]=i,this[o(9655)]=s,this.Formula=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityVolume(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.Unit),e[t(565)](this[t(9655)]),e[t(565)](this.Formula),e}},IfcQuantityWeight=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this.type=e,this[o(9127)]=n,this[o(9134)]=r,this[o(9354)]=i,this[o(9656)]=s,this[o(9652)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcQuantityWeight(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9354)]),e[t(565)](this.WeightValue),e[t(565)](this[t(9652)]),e}},IfcRailing=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRailing(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcRailingType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRailingType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcRamp=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRamp(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e.push(this.ObjectPlacement),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcRampFlight=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRampFlight(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcRampFlightType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRampFlightType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcRampType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRampType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcRationalBSplineCurveWithKnots=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.Degree=n,this[u(9212)]=r,this[u(9213)]=i,this[u(9214)]=s,this[u(9215)]=a,this.KnotMultiplicities=o,this[u(9217)]=c,this[u(9218)]=l,this.WeightsData=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRationalBSplineCurveWithKnots(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9211)]),e[t(565)](this[t(9212)]),e[t(565)](this[t(9213)]),e[t(565)](this.ClosedCurve),e[t(565)](this[t(9215)]),e.push(this[t(9216)]),e.push(this[t(9217)]),e[t(565)](this.KnotSpec),e.push(this.WeightsData),e}},IfcRationalBSplineSurfaceWithKnots=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9219)]=n,this[m(9222)]=r,this[m(9212)]=i,this[m(9223)]=s,this[m(9220)]=a,this[m(9221)]=o,this[m(9215)]=c,this[m(9224)]=l,this[m(9225)]=h,this[m(9226)]=u,this[m(9227)]=d,this[m(9218)]=f,this[m(9657)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcRationalBSplineSurfaceWithKnots(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9219)]),e[t(565)](this[t(9222)]),e.push(this[t(9212)]),e[t(565)](this[t(9223)]),e[t(565)](this.UClosed),e.push(this[t(9221)]),e[t(565)](this[t(9215)]),e[t(565)](this[t(9224)]),e.push(this.VMultiplicities),e[t(565)](this[t(9226)]),e[t(565)](this[t(9227)]),e[t(565)](this.KnotSpec),e[t(565)](this.WeightsData),e}},IfcRectangleHollowProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9186)]=n,this[h(9187)]=r,this[h(9196)]=i,this[h(9257)]=s,this[h(9258)]=a,this.WallThickness=o,this[h(9658)]=c,this[h(9659)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcRectangleHollowProfileDef(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this.ProfileType),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9257)]),e.push(this[t(9258)]),e.push(this[t(9267)]),e.push(this[t(9658)]),e[t(565)](this[t(9659)]),e}},IfcRectangleProfileDef=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9186)]=n,this[o(9187)]=r,this[o(9196)]=i,this.XDim=s,this[o(9258)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcRectangleProfileDef(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ProfileType),e[t(565)](this.ProfileName),e[t(565)](this.Position),e[t(565)](this.XDim),e[t(565)](this[t(9258)]),e}},IfcRectangularPyramid=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9196)]=n,this.XLength=r,this[a(9235)]=i,this[a(9605)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRectangularPyramid(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9196)]),e[t(565)](this[t(9234)]),e[t(565)](this.YLength),e.push(this[t(9605)]),e}},IfcRectangularTrimmedSurface=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9341)]=n,this.U1=r,this.V1=i,this.U2=s,this.V2=a,this.Usense=o,this[l(9660)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRectangularTrimmedSurface(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9341)]),e[t(565)](this.U1),e.push(this.V1),e[t(565)](this.U2),e[t(565)](this.V2),e[t(565)](this[t(9661)]),e[t(565)](this[t(9660)]),e}},IfcRecurrencePattern=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.RecurrenceType=n,this.DayComponent=r,this[h(9662)]=i,this[h(9663)]=s,this[h(9196)]=a,this[h(9664)]=o,this[h(9665)]=c,this[h(9666)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcRecurrencePattern(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9667)]),e[t(565)](this.DayComponent),e.push(this[t(9662)]),e[t(565)](this[t(9663)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9664)]),e[t(565)](this[t(9665)]),e[t(565)](this[t(9666)]),e}},IfcReference=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9668)]=n,this[o(9669)]=r,this[o(9670)]=i,this[o(9671)]=s,this[o(9672)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcReference(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9668)]),e.push(this.AttributeIdentifier),e[t(565)](this.InstanceName),e[t(565)](this[t(9671)]),e.push(this[t(9672)]),e}},IfcReferent=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9130)]=l,this[u(9673)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcReferent(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this.ObjectPlacement),e.push(this.Representation),e.push(this[t(9130)]),e[t(565)](this.RestartDistance),e}},IfcRegularTimeSeries=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9127)]=n,this[d(9134)]=r,this.StartTime=i,this[d(9492)]=s,this[d(9493)]=a,this.DataOrigin=o,this[d(9420)]=c,this[d(9354)]=l,this.TimeStep=h,this[d(9494)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRegularTimeSeries(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9491)]),e.push(this.EndTime),e[t(565)](this[t(9493)]),e[t(565)](this[t(9419)]),e[t(565)](this[t(9420)]),e.push(this.Unit),e[t(565)](this[t(9674)]),e[t(565)](this.Values),e}},IfcReinforcementBarProperties=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9675)]=n,this[c(9676)]=r,this[c(9677)]=i,this.EffectiveDepth=s,this[c(9678)]=a,this[c(9679)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcReinforcementBarProperties(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9675)]),e.push(this[t(9676)]),e[t(565)](this[t(9677)]),e[t(565)](this.EffectiveDepth),e.push(this[t(9678)]),e[t(565)](this[t(9679)]),e}},IfcReinforcementDefinitionProperties=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this.Name=i,this[c(9134)]=s,this[c(9680)]=a,this[c(9681)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcReinforcementDefinitionProperties(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9680)]),e[t(565)](this[t(9681)]),e}},IfcReinforcingBar=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){var v=nz;this[v(9125)]=t,this[v(452)]=e,this[v(9133)]=n,this.OwnerHistory=r,this[v(9127)]=i,this[v(9134)]=s,this[v(9128)]=a,this.ObjectPlacement=o,this[v(9139)]=c,this[v(9140)]=l,this[v(9676)]=h,this.NominalDiameter=u,this[v(9682)]=d,this.BarLength=f,this[v(9130)]=p,this[v(9677)]=m}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++];return new IfcReinforcingBar(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e[t(565)](this[t(9676)]),e[t(565)](this[t(9563)]),e.push(this[t(9682)]),e[t(565)](this[t(9683)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9677)]),e}},IfcReinforcingBarType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_){var g=nz;this.expressID=t,this[g(452)]=e,this[g(9133)]=n,this[g(9126)]=r,this[g(9127)]=i,this[g(9134)]=s,this[g(9143)]=a,this[g(9144)]=o,this[g(9142)]=c,this.Tag=l,this[g(9145)]=h,this.PredefinedType=u,this.NominalDiameter=d,this.CrossSectionArea=f,this[g(9683)]=p,this[g(9677)]=m,this[g(9684)]=v,this.BendingParameters=_}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++];return new IfcReinforcingBarType(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e.push(this[t(9130)]),e.push(this.NominalDiameter),e[t(565)](this[t(9682)]),e[t(565)](this.BarLength),e[t(565)](this[t(9677)]),e.push(this[t(9684)]),e[t(565)](this[t(9685)]),e}},IfcReinforcingElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9676)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcReinforcingElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9676)]),e}},IfcReinforcingElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcReinforcingElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e.push(this[t(9145)]),e}},IfcReinforcingMesh=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y){var E=nz;this[E(9125)]=t,this[E(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this[E(9134)]=s,this[E(9128)]=a,this[E(9141)]=o,this.Representation=c,this[E(9140)]=l,this[E(9676)]=h,this[E(9686)]=u,this[E(9687)]=d,this.LongitudinalBarNominalDiameter=f,this.TransverseBarNominalDiameter=p,this[E(9688)]=m,this[E(9689)]=v,this.LongitudinalBarSpacing=_,this.TransverseBarSpacing=g,this.PredefinedType=y}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++],T=n[r++];return new IfcReinforcingMesh(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.SteelGrade),e[t(565)](this[t(9686)]),e[t(565)](this[t(9687)]),e[t(565)](this[t(9690)]),e[t(565)](this.TransverseBarNominalDiameter),e[t(565)](this[t(9688)]),e.push(this[t(9689)]),e[t(565)](this[t(9691)]),e[t(565)](this[t(9692)]),e.push(this[t(9130)]),e}},IfcReinforcingMeshType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T){var I=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[I(9126)]=r,this[I(9127)]=i,this[I(9134)]=s,this[I(9143)]=a,this.HasPropertySets=o,this[I(9142)]=c,this[I(9140)]=l,this[I(9145)]=h,this[I(9130)]=u,this[I(9686)]=d,this[I(9687)]=f,this.LongitudinalBarNominalDiameter=p,this[I(9693)]=m,this.LongitudinalBarCrossSectionArea=v,this[I(9689)]=_,this[I(9691)]=g,this[I(9692)]=y,this[I(9684)]=E,this.BendingParameters=T}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++],T=n[r++],I=n[r++],z=n[r++];return new IfcReinforcingMeshType(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T,I,z)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9686)]),e[t(565)](this.MeshWidth),e[t(565)](this[t(9690)]),e[t(565)](this.TransverseBarNominalDiameter),e[t(565)](this.LongitudinalBarCrossSectionArea),e[t(565)](this[t(9689)]),e[t(565)](this[t(9691)]),e[t(565)](this[t(9692)]),e.push(this.BendingShapeCode),e.push(this.BendingParameters),e}},IfcRelAggregates=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9694)]=a,this[c(9695)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAggregates(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingObject),e[t(565)](this[t(9695)]),e}},IfcRelAssigns=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.GlobalId=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9695)]=a,this[c(9696)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssigns(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9695)]),e[t(565)](this[t(9696)]),e}},IfcRelAssignsToActor=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this.OwnerHistory=r,this[h(9127)]=i,this.Description=s,this[h(9695)]=a,this[h(9696)]=o,this[h(9697)]=c,this[h(9698)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcRelAssignsToActor(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9695)]),e[t(565)](this[t(9696)]),e.push(this[t(9697)]),e[t(565)](this[t(9698)]),e}},IfcRelAssignsToControl=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this.Name=i,this.Description=s,this[l(9695)]=a,this[l(9696)]=o,this.RelatingControl=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelAssignsToControl(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9695)]),e[t(565)](this[t(9696)]),e[t(565)](this[t(9699)]),e}},IfcRelAssignsToGroup=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.GlobalId=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this.RelatedObjects=a,this[l(9696)]=o,this[l(9700)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelAssignsToGroup(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.RelatedObjects),e[t(565)](this.RelatedObjectsType),e[t(565)](this[t(9700)]),e}},IfcRelAssignsToGroupByFactor=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this.Name=i,this[h(9134)]=s,this[h(9695)]=a,this[h(9696)]=o,this[h(9700)]=c,this[h(9701)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcRelAssignsToGroupByFactor(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.RelatedObjects),e[t(565)](this[t(9696)]),e[t(565)](this.RelatingGroup),e[t(565)](this.Factor),e}},IfcRelAssignsToProcess=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9695)]=a,this[h(9696)]=o,this.RelatingProcess=c,this[h(9702)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcRelAssignsToProcess(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9695)]),e[t(565)](this[t(9696)]),e[t(565)](this[t(9703)]),e[t(565)](this[t(9702)]),e}},IfcRelAssignsToProduct=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this.Name=i,this[l(9134)]=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this[l(9704)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelAssignsToProduct(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9695)]),e.push(this[t(9696)]),e[t(565)](this.RelatingProduct),e}},IfcRelAssignsToResource=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9695)]=a,this[l(9696)]=o,this[l(9705)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelAssignsToResource(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.RelatedObjects),e[t(565)](this[t(9696)]),e[t(565)](this.RelatingResource),e}},IfcRelAssociates=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9133)]=n,this[o(9126)]=r,this.Name=i,this[o(9134)]=s,this.RelatedObjects=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcRelAssociates(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatedObjects),e}},IfcRelAssociatesApproval=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9695)]=a,this[c(9184)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssociatesApproval(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9695)]),e.push(this[t(9184)]),e}},IfcRelAssociatesClassification=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this.RelatedObjects=a,this[c(9706)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssociatesClassification(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9695)]),e[t(565)](this.RelatingClassification),e}},IfcRelAssociatesConstraint=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.GlobalId=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9695)]=a,this[l(9707)]=o,this[l(9708)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelAssociatesConstraint(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9695)]),e[t(565)](this.Intent),e.push(this[t(9708)]),e}},IfcRelAssociatesDocument=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this.GlobalId=n,this[c(9126)]=r,this.Name=i,this[c(9134)]=s,this.RelatedObjects=a,this[c(9383)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssociatesDocument(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatedObjects),e[t(565)](this.RelatingDocument),e}},IfcRelAssociatesLibrary=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this.Name=i,this[c(9134)]=s,this[c(9695)]=a,this[c(9709)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssociatesLibrary(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.RelatedObjects),e[t(565)](this[t(9709)]),e}},IfcRelAssociatesMaterial=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this.Description=s,this.RelatedObjects=a,this.RelatingMaterial=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelAssociatesMaterial(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9695)]),e[t(565)](this[t(9558)]),e}},IfcRelConnects=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this.Name=i,this.Description=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRelConnects(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e}},IfcRelConnectsElements=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this.Name=i,this[l(9134)]=s,this[l(9710)]=a,this[l(9711)]=o,this[l(9712)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelConnectsElements(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9710)]),e.push(this[t(9711)]),e[t(565)](this.RelatedElement),e}},IfcRelConnectsPathElements=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9710)]=a,this[f(9711)]=o,this[f(9712)]=c,this[f(9713)]=l,this[f(9714)]=h,this[f(9715)]=u,this.RelatingConnectionType=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcRelConnectsPathElements(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9710)]),e[t(565)](this[t(9711)]),e[t(565)](this[t(9712)]),e[t(565)](this.RelatingPriorities),e[t(565)](this[t(9714)]),e[t(565)](this.RelatedConnectionType),e[t(565)](this[t(9716)]),e}},IfcRelConnectsPortToElement=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this[c(9134)]=s,this.RelatingPort=a,this[c(9712)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelConnectsPortToElement(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingPort),e.push(this[t(9712)]),e}},IfcRelConnectsPorts=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9133)]=n,this.OwnerHistory=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9717)]=a,this.RelatedPort=o,this[l(9718)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcRelConnectsPorts(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.RelatingPort),e.push(this[t(9719)]),e[t(565)](this[t(9718)]),e}},IfcRelConnectsStructuralActivity=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9711)]=a,this[c(9720)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelConnectsStructuralActivity(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9711)]),e[t(565)](this[t(9720)]),e}},IfcRelConnectsStructuralMember=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9721)]=a,this.RelatedStructuralConnection=o,this.AppliedCondition=c,this[d(9722)]=l,this[d(9723)]=h,this[d(9724)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRelConnectsStructuralMember(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9721)]),e[t(565)](this[t(9725)]),e[t(565)](this[t(9726)]),e.push(this[t(9722)]),e[t(565)](this[t(9723)]),e[t(565)](this.ConditionCoordinateSystem),e}},IfcRelConnectsWithEccentricity=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this.RelatingStructuralMember=a,this[f(9725)]=o,this[f(9726)]=c,this[f(9722)]=l,this[f(9723)]=h,this[f(9724)]=u,this[f(9727)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcRelConnectsWithEccentricity(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9721)]),e[t(565)](this.RelatedStructuralConnection),e[t(565)](this[t(9726)]),e.push(this[t(9722)]),e[t(565)](this[t(9723)]),e.push(this.ConditionCoordinateSystem),e[t(565)](this.ConnectionConstraint),e}},IfcRelConnectsWithRealizingElements=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this.Description=s,this[u(9710)]=a,this[u(9711)]=o,this.RelatedElement=c,this[u(9728)]=l,this[u(9729)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRelConnectsWithRealizingElements(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9710)]),e.push(this.RelatingElement),e[t(565)](this[t(9712)]),e.push(this[t(9728)]),e[t(565)](this[t(9729)]),e}},IfcRelContainedInSpatialStructure=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this.Description=s,this[c(9730)]=a,this[c(9731)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelContainedInSpatialStructure(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9730)]),e[t(565)](this.RelatingStructure),e}},IfcRelCoversBldgElements=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this.Description=s,this[c(9732)]=a,this.RelatedCoverings=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelCoversBldgElements(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingBuildingElement),e[t(565)](this.RelatedCoverings),e}},IfcRelCoversSpaces=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9733)]=a,this[c(9734)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelCoversSpaces(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9733)]),e[t(565)](this[t(9734)]),e}},IfcRelDeclares=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this.type=e,this.GlobalId=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9735)]=a,this.RelatedDefinitions=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelDeclares(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9735)]),e.push(this[t(9736)]),e}},IfcRelDecomposes=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this.Description=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRelDecomposes(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e}},IfcRelDefines=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.GlobalId=n,this[a(9126)]=r,this.Name=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRelDefines(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e}},IfcRelDefinesByObject=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this.Name=i,this[c(9134)]=s,this.RelatedObjects=a,this[c(9694)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelDefinesByObject(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9695)]),e[t(565)](this[t(9694)]),e}},IfcRelDefinesByProperties=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[c(9695)]=a,this.RelatingPropertyDefinition=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelDefinesByProperties(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9695)]),e[t(565)](this[t(9737)]),e}},IfcRelDefinesByTemplate=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9133)]=n,this.OwnerHistory=r,this.Name=i,this[c(9134)]=s,this.RelatedPropertySets=a,this.RelatingTemplate=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelDefinesByTemplate(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9738)]),e[t(565)](this.RelatingTemplate),e}},IfcRelDefinesByType=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this.Name=i,this[c(9134)]=s,this[c(9695)]=a,this[c(9739)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelDefinesByType(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatedObjects),e.push(this[t(9739)]),e}},IfcRelFillsElement=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9740)]=a,this[c(9741)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelFillsElement(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this.Description),e[t(565)](this[t(9740)]),e[t(565)](this[t(9741)]),e}},IfcRelFlowControlElements=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9742)]=a,this[c(9743)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelFlowControlElements(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9742)]),e[t(565)](this[t(9743)]),e}},IfcRelInterferesElements=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.RelatingElement=a,this[u(9712)]=o,this[u(9744)]=c,this[u(9745)]=l,this[u(9746)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRelInterferesElements(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9711)]),e.push(this[t(9712)]),e.push(this[t(9744)]),e[t(565)](this[t(9745)]),e.push(this.ImpliedOrder),e}},IfcRelNests=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9694)]=a,this[c(9695)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelNests(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.RelatingObject),e[t(565)](this[t(9695)]),e}},IfcRelPositions=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[c(9127)]=i,this.Description=s,this.RelatingPositioningElement=a,this[c(9747)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelPositions(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingPositioningElement),e.push(this[t(9747)]),e}},IfcRelProjectsElement=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this.GlobalId=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9711)]=a,this.RelatedFeatureElement=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelProjectsElement(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9711)]),e[t(565)](this[t(9748)]),e}},IfcRelReferencedInSpatialStructure=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9730)]=a,this[c(9731)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelReferencedInSpatialStructure(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9730)]),e[t(565)](this[t(9731)]),e}},IfcRelSequence=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.RelatingProcess=a,this[u(9749)]=o,this[u(9750)]=c,this[u(9751)]=l,this[u(9752)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRelSequence(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingProcess),e.push(this.RelatedProcess),e[t(565)](this.TimeLag),e.push(this.SequenceType),e[t(565)](this.UserDefinedSequenceType),e}},IfcRelServicesBuildings=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this.Description=s,this[c(9753)]=a,this.RelatedBuildings=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelServicesBuildings(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9753)]),e[t(565)](this[t(9754)]),e}},IfcRelSpaceBoundary=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this[u(9710)]=c,this[u(9755)]=l,this[u(9756)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRelSpaceBoundary(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.RelatingSpace),e[t(565)](this[t(9741)]),e[t(565)](this[t(9710)]),e.push(this[t(9755)]),e[t(565)](this[t(9756)]),e}},IfcRelSpaceBoundary1stLevel=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9733)]=a,this[d(9741)]=o,this.ConnectionGeometry=c,this[d(9755)]=l,this[d(9756)]=h,this[d(9757)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRelSpaceBoundary1stLevel(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.RelatingSpace),e[t(565)](this[t(9741)]),e[t(565)](this.ConnectionGeometry),e[t(565)](this.PhysicalOrVirtualBoundary),e[t(565)](this[t(9756)]),e[t(565)](this[t(9757)]),e}},IfcRelSpaceBoundary2ndLevel=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this.RelatingSpace=a,this[f(9741)]=o,this.ConnectionGeometry=c,this.PhysicalOrVirtualBoundary=l,this[f(9756)]=h,this.ParentBoundary=u,this[f(9758)]=d}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcRelSpaceBoundary2ndLevel(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9733)]),e[t(565)](this[t(9741)]),e[t(565)](this[t(9710)]),e[t(565)](this[t(9755)]),e.push(this[t(9756)]),e[t(565)](this[t(9757)]),e[t(565)](this[t(9758)]),e}},IfcRelVoidsElement=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9133)]=n,this.OwnerHistory=r,this[c(9127)]=i,this[c(9134)]=s,this[c(9732)]=a,this[c(9759)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRelVoidsElement(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9732)]),e[t(565)](this[t(9759)]),e}},IfcRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this[a(9127)]=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRelationship(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e}},IfcReparametrisedCompositeCurveSegment=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9298)]=n,this[a(9299)]=r,this.ParentCurve=i,this[a(9760)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcReparametrisedCompositeCurveSegment(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Transition),e[t(565)](this.SameSense),e[t(565)](this[t(9300)]),e.push(this[t(9760)]),e}},IfcRepresentation=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this.type=e,this[a(9761)]=n,this[a(9762)]=r,this[a(9763)]=i,this[a(9764)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRepresentation(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9761)]),e[t(565)](this[t(9762)]),e[t(565)](this[t(9763)]),e[t(565)](this.Items),e}},IfcRepresentationContext=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9453)]=n,this[i(9454)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcRepresentationContext(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9453)]),e.push(this.ContextType),e}},IfcRepresentationItem=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcRepresentationItem(t,e)}[nz(9135)](){return[]}},IfcRepresentationMap=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this[i(9765)]=n,this[i(9766)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcRepresentationMap(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9765)]),e.push(this[t(9766)]),e}},IfcResource=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9129)]=o,this[l(9132)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcResource(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e}},IfcResourceApprovalRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this.Name=n,this[a(9134)]=r,this[a(9767)]=i,this[a(9184)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcResourceApprovalRelationship(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9767)]),e.push(this[t(9184)]),e}},IfcResourceConstraintRelationship=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9127)]=n,this[a(9134)]=r,this.RelatingConstraint=i,this[a(9767)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcResourceConstraintRelationship(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.RelatingConstraint),e.push(this[t(9767)]),e}},IfcResourceLevelRelationship=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.Name=n,this.Description=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcResourceLevelRelationship(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this[t(9134)]),e}},IfcResourceTime=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y){var E=nz;this[E(9125)]=t,this[E(452)]=e,this[E(9127)]=n,this[E(9419)]=r,this.UserDefinedDataOrigin=i,this[E(9768)]=s,this[E(9769)]=a,this[E(9770)]=o,this[E(9771)]=c,this[E(9772)]=l,this[E(9773)]=h,this[E(9774)]=u,this.StatusTime=d,this[E(9775)]=f,this.ActualUsage=p,this.ActualStart=m,this.ActualFinish=v,this.RemainingWork=_,this.RemainingUsage=g,this[E(9776)]=y}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++],T=n[r++];return new IfcResourceTime(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9419)]),e[t(565)](this[t(9420)]),e.push(this.ScheduleWork),e[t(565)](this[t(9769)]),e.push(this.ScheduleStart),e[t(565)](this.ScheduleFinish),e[t(565)](this.ScheduleContour),e.push(this[t(9773)]),e[t(565)](this[t(9774)]),e[t(565)](this.StatusTime),e[t(565)](this[t(9775)]),e[t(565)](this.ActualUsage),e[t(565)](this.ActualStart),e[t(565)](this[t(9777)]),e[t(565)](this.RemainingWork),e.push(this[t(9778)]),e.push(this[t(9776)]),e}},IfcRevolvedAreaSolid=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.SweptArea=n,this[a(9196)]=r,this[a(9152)]=i,this[a(5592)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRevolvedAreaSolid(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9428)]),e.push(this[t(9196)]),e[t(565)](this[t(9152)]),e.push(this.Angle),e}},IfcRevolvedAreaSolidTapered=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9428)]=n,this[o(9196)]=r,this[o(9152)]=i,this.Angle=s,this[o(9429)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcRevolvedAreaSolidTapered(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this.SweptArea),e[t(565)](this.Position),e[t(565)](this[t(9152)]),e[t(565)](this[t(5592)]),e[t(565)](this[t(9429)]),e}},IfcRightCircularCone=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Position=n,this[s(9605)]=r,this.BottomRadius=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcRightCircularCone(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9196)]),e[t(565)](this[t(9605)]),e[t(565)](this.BottomRadius),e}},IfcRightCircularCylinder=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9196)]=n,this.Height=r,this[s(9162)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcRightCircularCylinder(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Position),e[t(565)](this[t(9605)]),e[t(565)](this.Radius),e}},IfcRoof=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcRoof(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcRoofType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcRoofType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcRoot=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9133)]=n,this[a(9126)]=r,this[a(9127)]=i,this[a(9134)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcRoot(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e}},IfcRoundedRectangleProfileDef=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9186)]=n,this.ProfileName=r,this[c(9196)]=i,this[c(9257)]=s,this[c(9258)]=a,this.RoundingRadius=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcRoundedRectangleProfileDef(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ProfileType),e.push(this[t(9187)]),e.push(this[t(9196)]),e.push(this[t(9257)]),e[t(565)](this[t(9258)]),e[t(565)](this[t(9779)]),e}},IfcSIUnit=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9325)]=n,this[a(9326)]=r,this.Prefix=i,this.Name=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSIUnit(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Dimensions),e[t(565)](this[t(9326)]),e[t(565)](this.Prefix),e[t(565)](this[t(9127)]),e}},IfcSanitaryTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSanitaryTerminal(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.ObjectPlacement),e.push(this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcSanitaryTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSanitaryTerminalType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this.PredefinedType),e}},IfcSchedulingTime=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9127)]=n,this.DataOrigin=r,this[s(9420)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSchedulingTime(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9419)]),e.push(this[t(9420)]),e}},IfcSeamCurve=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.Curve3D=n,this[s(9485)]=r,this[s(9486)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSeamCurve(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9484)]),e[t(565)](this[t(9485)]),e[t(565)](this[t(9486)]),e}},IfcSectionProperties=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this.SectionType=n,this[s(9780)]=r,this[s(9781)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSectionProperties(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9782)]),e[t(565)](this[t(9780)]),e[t(565)](this[t(9781)]),e}},IfcSectionReinforcementProperties=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this[c(9783)]=n,this.LongitudinalEndPosition=r,this[c(9784)]=i,this[c(9785)]=s,this[c(9786)]=a,this[c(9787)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcSectionReinforcementProperties(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9783)]),e.push(this[t(9788)]),e[t(565)](this.TransversePosition),e.push(this[t(9785)]),e[t(565)](this[t(9786)]),e[t(565)](this[t(9787)]),e}},IfcSectionedSolid=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9449)]=n,this.CrossSections=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSectionedSolid(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Directrix),e.push(this[t(9789)]),e}},IfcSectionedSolidHorizontal=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this.type=e,this[a(9449)]=n,this.CrossSections=r,this[a(9790)]=i,this.FixedAxisVertical=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSectionedSolidHorizontal(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Directrix),e[t(565)](this.CrossSections),e[t(565)](this[t(9790)]),e[t(565)](this[t(9791)]),e}},IfcSectionedSpine=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9792)]=n,this[s(9789)]=r,this.CrossSectionPositions=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSectionedSpine(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9792)]),e[t(565)](this.CrossSections),e[t(565)](this[t(9790)]),e}},IfcSensor=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSensor(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this.Representation),e.push(this.Tag),e[t(565)](this.PredefinedType),e}},IfcSensorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSensorType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcShadingDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcShadingDevice(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcShadingDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcShadingDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcShapeAspect=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9793)]=n,this[o(9127)]=r,this[o(9134)]=i,this[o(9794)]=s,this[o(9795)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcShapeAspect(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9793)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9794)]),e[t(565)](this.PartOfProductDefinitionShape),e}},IfcShapeModel=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9761)]=n,this[a(9762)]=r,this[a(9763)]=i,this.Items=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcShapeModel(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.ContextOfItems),e.push(this[t(9762)]),e.push(this[t(9763)]),e[t(565)](this.Items),e}},IfcShapeRepresentation=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this.ContextOfItems=n,this[a(9762)]=r,this[a(9763)]=i,this[a(9764)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcShapeRepresentation(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9761)]),e[t(565)](this[t(9762)]),e[t(565)](this[t(9763)]),e[t(565)](this[t(9764)]),e}},IfcShellBasedSurfaceModel=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9796)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcShellBasedSurfaceModel(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9796)]),e}},IfcSimpleProperty=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9127)]=n,this.Description=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSimpleProperty(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9134)]),e}},IfcSimplePropertyTemplate=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this.type=e,this[p(9133)]=n,this.OwnerHistory=r,this.Name=i,this[p(9134)]=s,this[p(9296)]=a,this.PrimaryMeasureType=o,this[p(9797)]=c,this.Enumerators=l,this[p(9798)]=h,this[p(9799)]=u,this[p(9560)]=d,this[p(9800)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcSimplePropertyTemplate(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.TemplateType),e.push(this[t(9801)]),e[t(565)](this.SecondaryMeasureType),e[t(565)](this[t(9802)]),e.push(this[t(9798)]),e[t(565)](this[t(9799)]),e.push(this.Expression),e[t(565)](this.AccessState),e}},IfcSite=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){var v=nz;this[v(9125)]=t,this[v(452)]=e,this[v(9133)]=n,this[v(9126)]=r,this[v(9127)]=i,this[v(9134)]=s,this[v(9128)]=a,this[v(9141)]=o,this.Representation=c,this[v(9262)]=l,this.CompositionType=h,this[v(9803)]=u,this[v(9804)]=d,this[v(9805)]=f,this[v(9806)]=p,this[v(9807)]=m}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++];return new IfcSite(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e.push(this.Representation),e.push(this[t(9262)]),e[t(565)](this[t(9261)]),e[t(565)](this[t(9803)]),e[t(565)](this[t(9804)]),e.push(this[t(9805)]),e[t(565)](this.LandTitleNumber),e.push(this[t(9807)]),e}},IfcSlab=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSlab(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcSlabElementedCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSlabElementedCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcSlabStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSlabStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e.push(this[t(9130)]),e}},IfcSlabType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSlabType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e.push(this[t(9144)]),e.push(this.RepresentationMaps),e.push(this[t(9140)]),e.push(this[t(9145)]),e.push(this[t(9130)]),e}},IfcSlippageConnectionCondition=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9808)]=r,this.SlippageY=i,this[a(9809)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSlippageConnectionCondition(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9808)]),e[t(565)](this[t(9810)]),e[t(565)](this[t(9809)]),e}},IfcSolarDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this.Name=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSolarDevice(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcSolarDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSolarDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcSolidModel=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static[nz(7952)](t,e,n){return new IfcSolidModel(t,e)}[nz(9135)](){return[]}},IfcSpace=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[f(9139)]=c,this[f(9262)]=l,this.CompositionType=h,this[f(9130)]=u,this.ElevationWithFlooring=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcSpace(t,e,i,s,a,o,c,l,h,u,d,f,p)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e.push(this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9262)]),e[t(565)](this[t(9261)]),e[t(565)](this[t(9130)]),e[t(565)](this[t(9811)]),e}},IfcSpaceHeater=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSpaceHeater(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this.Tag),e[t(565)](this[t(9130)]),e}},IfcSpaceHeaterType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSpaceHeaterType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this.Description),e.push(this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcSpaceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9143)]=a,this[f(9144)]=o,this[f(9142)]=c,this[f(9140)]=l,this[f(9145)]=h,this.PredefinedType=u,this[f(9262)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcSpaceType(t,e,i,s,a,o,c,l,h,u,d,f,p)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e.push(this[t(9130)]),e[t(565)](this[t(9262)]),e}},IfcSpatialElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[h(9139)]=c,this[h(9262)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcSpatialElement(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e}},IfcSpatialElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this[u(9144)]=o,this[u(9142)]=c,this.Tag=l,this[u(9145)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSpatialElementType(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e.push(this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e}},IfcSpatialStructureElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9262)]=l,this[u(9261)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSpatialStructureElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e[t(565)](this[t(9261)]),e}},IfcSpatialStructureElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9142)]=c,this[u(9140)]=l,this[u(9145)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSpatialStructureElementType(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e}},IfcSpatialZone=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9262)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSpatialZone(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9262)]),e[t(565)](this[t(9130)]),e}},IfcSpatialZoneType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this[f(9126)]=r,this.Name=i,this[f(9134)]=s,this[f(9143)]=a,this[f(9144)]=o,this[f(9142)]=c,this[f(9140)]=l,this[f(9145)]=h,this[f(9130)]=u,this[f(9262)]=d}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcSpatialZoneType(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e.push(this[t(9130)]),e.push(this.LongName),e}},IfcSphere=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9196)]=n,this[i(9162)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSphere(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9196)]),e.push(this[t(9162)]),e}},IfcSphericalSurface=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9196)]=n,this[i(9162)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSphericalSurface(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9196)]),e[t(565)](this[t(9162)]),e}},IfcStackTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStackTerminal(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ObjectType),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcStackTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStackTerminalType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e.push(this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcStair=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStair(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcStairFlight=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this.GlobalId=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9141)]=o,this[m(9139)]=c,this.Tag=l,this[m(9812)]=h,this[m(9813)]=u,this[m(9814)]=d,this[m(9815)]=f,this[m(9130)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcStairFlight(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9812)]),e[t(565)](this[t(9813)]),e[t(565)](this.RiserHeight),e.push(this.TreadLength),e[t(565)](this[t(9130)]),e}},IfcStairFlightType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStairFlightType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcStairType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStairType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcStructuralAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this.ObjectPlacement=o,this.Representation=c,this[d(9816)]=l,this[d(9817)]=h,this[d(9818)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralAction(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9816)]),e.push(this.GlobalOrLocal),e[t(565)](this[t(9818)]),e}},IfcStructuralActivity=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9816)]=l,this.GlobalOrLocal=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralActivity(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9816)]),e[t(565)](this[t(9817)]),e}},IfcStructuralAnalysisModel=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this.PredefinedType=o,this[d(9819)]=c,this.LoadedBy=l,this.HasResults=h,this.SharedPlacement=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralAnalysisModel(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this[t(9130)]),e[t(565)](this.OrientationOf2DPlane),e.push(this[t(9820)]),e[t(565)](this[t(9821)]),e[t(565)](this[t(9822)]),e}},IfcStructuralConnection=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this.GlobalId=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9726)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcStructuralConnection(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9726)]),e}},IfcStructuralConnectionCondition=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.Name=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcStructuralConnectionCondition(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.Name),t}},IfcStructuralCurveAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this.type=e,this[p(9133)]=n,this[p(9126)]=r,this[p(9127)]=i,this.Description=s,this[p(9128)]=a,this[p(9141)]=o,this.Representation=c,this[p(9816)]=l,this[p(9817)]=h,this.DestabilizingLoad=u,this[p(9823)]=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcStructuralCurveAction(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9816)]),e.push(this.GlobalOrLocal),e[t(565)](this[t(9818)]),e.push(this[t(9823)]),e[t(565)](this[t(9130)]),e}},IfcStructuralCurveConnection=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9726)]=l,this.Axis=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralCurveConnection(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9726)]),e.push(this[t(9152)]),e}},IfcStructuralCurveMember=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9130)]=l,this[u(9152)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralCurveMember(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9130)]),e[t(565)](this[t(9152)]),e}},IfcStructuralCurveMemberVarying=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this.PredefinedType=l,this.Axis=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralCurveMemberVarying(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this.Representation),e[t(565)](this.PredefinedType),e.push(this[t(9152)]),e}},IfcStructuralCurveReaction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this[d(9816)]=l,this[d(9817)]=h,this.PredefinedType=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralCurveReaction(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.AppliedLoad),e.push(this[t(9817)]),e[t(565)](this[t(9130)]),e}},IfcStructuralItem=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this.ObjectType=a,this[l(9141)]=o,this[l(9139)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcStructuralItem(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e}},IfcStructuralLinearAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this[p(9133)]=n,this[p(9126)]=r,this.Name=i,this[p(9134)]=s,this[p(9128)]=a,this[p(9141)]=o,this[p(9139)]=c,this[p(9816)]=l,this[p(9817)]=h,this[p(9818)]=u,this[p(9823)]=d,this[p(9130)]=f}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcStructuralLinearAction(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9816)]),e[t(565)](this[t(9817)]),e.push(this[t(9818)]),e[t(565)](this[t(9823)]),e[t(565)](this[t(9130)]),e}},IfcStructuralLoad=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.Name=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcStructuralLoad(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcStructuralLoadCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this[f(9127)]=i,this[f(9134)]=s,this[f(9128)]=a,this.PredefinedType=o,this[f(9824)]=c,this.ActionSource=l,this[f(9825)]=h,this[f(9146)]=u,this[f(9826)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcStructuralLoadCase(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.PredefinedType),e.push(this.ActionType),e[t(565)](this[t(9827)]),e[t(565)](this[t(9825)]),e[t(565)](this[t(9146)]),e.push(this.SelfWeightCoefficients),e}},IfcStructuralLoadConfiguration=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9127)]=n,this[s(9494)]=r,this[s(9828)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcStructuralLoadConfiguration(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9494)]),e[t(565)](this[t(9828)]),e}},IfcStructuralLoadGroup=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this.ObjectType=a,this[d(9130)]=o,this[d(9824)]=c,this.ActionSource=l,this.Coefficient=h,this[d(9146)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralLoadGroup(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9130)]),e[t(565)](this.ActionType),e[t(565)](this[t(9827)]),e.push(this[t(9825)]),e[t(565)](this[t(9146)]),e}},IfcStructuralLoadLinearForce=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.Name=n,this[l(9829)]=r,this[l(9830)]=i,this.LinearForceZ=s,this[l(9831)]=a,this[l(9832)]=o,this.LinearMomentZ=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcStructuralLoadLinearForce(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9829)]),e[t(565)](this[t(9830)]),e[t(565)](this[t(9833)]),e[t(565)](this.LinearMomentX),e[t(565)](this[t(9832)]),e.push(this[t(9834)]),e}},IfcStructuralLoadOrResult=class{constructor(t,e,n){this[nz(9125)]=t,this.type=e,this.Name=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcStructuralLoadOrResult(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcStructuralLoadPlanarForce=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9127)]=n,this[a(9835)]=r,this[a(9836)]=i,this.PlanarForceZ=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcStructuralLoadPlanarForce(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9835)]),e.push(this[t(9836)]),e.push(this[t(9837)]),e}},IfcStructuralLoadSingleDisplacement=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this.Name=n,this[l(9838)]=r,this[l(9839)]=i,this[l(9840)]=s,this[l(9841)]=a,this[l(9842)]=o,this.RotationalDisplacementRZ=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcStructuralLoadSingleDisplacement(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9838)]),e.push(this[t(9839)]),e.push(this[t(9840)]),e[t(565)](this.RotationalDisplacementRX),e[t(565)](this[t(9842)]),e[t(565)](this[t(9843)]),e}},IfcStructuralLoadSingleDisplacementDistortion=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.Name=n,this.DisplacementX=r,this[h(9839)]=i,this[h(9840)]=s,this[h(9841)]=a,this[h(9842)]=o,this[h(9843)]=c,this.Distortion=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcStructuralLoadSingleDisplacementDistortion(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9838)]),e[t(565)](this[t(9839)]),e[t(565)](this[t(9840)]),e[t(565)](this[t(9841)]),e.push(this[t(9842)]),e[t(565)](this[t(9843)]),e.push(this[t(9844)]),e}},IfcStructuralLoadSingleForce=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this.Name=n,this[l(9845)]=r,this[l(9846)]=i,this[l(9847)]=s,this[l(9848)]=a,this.MomentY=o,this[l(9849)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcStructuralLoadSingleForce(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9845)]),e[t(565)](this.ForceY),e[t(565)](this[t(9847)]),e[t(565)](this[t(9848)]),e[t(565)](this[t(9850)]),e[t(565)](this.MomentZ),e}},IfcStructuralLoadSingleForceWarping=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9127)]=n,this[h(9845)]=r,this.ForceY=i,this[h(9847)]=s,this[h(9848)]=a,this.MomentY=o,this[h(9849)]=c,this[h(9851)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcStructuralLoadSingleForceWarping(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9845)]),e[t(565)](this.ForceY),e[t(565)](this.ForceZ),e.push(this.MomentX),e[t(565)](this[t(9850)]),e[t(565)](this[t(9849)]),e[t(565)](this[t(9851)]),e}},IfcStructuralLoadStatic=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.Name=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcStructuralLoadStatic(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e}},IfcStructuralLoadTemperature=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9852)]=r,this[a(9853)]=i,this[a(9854)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcStructuralLoadTemperature(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this[t(9852)]),e[t(565)](this[t(9853)]),e[t(565)](this[t(9854)]),e}},IfcStructuralMember=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this.expressID=t,this[l(452)]=e,this[l(9133)]=n,this[l(9126)]=r,this[l(9127)]=i,this[l(9134)]=s,this[l(9128)]=a,this[l(9141)]=o,this[l(9139)]=c}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcStructuralMember(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e}},IfcStructuralPlanarAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this[p(9133)]=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9128)]=a,this[p(9141)]=o,this[p(9139)]=c,this.AppliedLoad=l,this[p(9817)]=h,this[p(9818)]=u,this.ProjectedOrTrue=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcStructuralPlanarAction(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e.push(this.ObjectType),e.push(this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9816)]),e[t(565)](this[t(9817)]),e[t(565)](this[t(9818)]),e[t(565)](this[t(9823)]),e.push(this[t(9130)]),e}},IfcStructuralPointAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=c,this[d(9816)]=l,this[d(9817)]=h,this[d(9818)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralPointAction(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this.Representation),e[t(565)](this.AppliedLoad),e[t(565)](this[t(9817)]),e[t(565)](this[t(9818)]),e}},IfcStructuralPointConnection=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this.ObjectType=a,this.ObjectPlacement=o,this[u(9139)]=c,this.AppliedCondition=l,this[u(9724)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralPointConnection(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e.push(this.AppliedCondition),e[t(565)](this.ConditionCoordinateSystem),e}},IfcStructuralPointReaction=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this.AppliedLoad=l,this[u(9817)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralPointReaction(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9816)]),e[t(565)](this[t(9817)]),e}},IfcStructuralReaction=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this.AppliedLoad=l,this[u(9817)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralReaction(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9816)]),e.push(this[t(9817)]),e}},IfcStructuralResultGroup=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9855)]=o,this[h(9856)]=c,this.IsLinear=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcStructuralResultGroup(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ObjectType),e[t(565)](this[t(9855)]),e[t(565)](this[t(9856)]),e[t(565)](this.IsLinear),e}},IfcStructuralSurfaceAction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this.type=e,this[p(9133)]=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9128)]=a,this[p(9141)]=o,this[p(9139)]=c,this.AppliedLoad=l,this.GlobalOrLocal=h,this[p(9818)]=u,this.ProjectedOrTrue=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcStructuralSurfaceAction(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9816)]),e[t(565)](this[t(9817)]),e.push(this.DestabilizingLoad),e[t(565)](this.ProjectedOrTrue),e[t(565)](this[t(9130)]),e}},IfcStructuralSurfaceConnection=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this[h(9127)]=i,this.Description=s,this[h(9128)]=a,this.ObjectPlacement=o,this[h(9139)]=c,this[h(9726)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcStructuralSurfaceConnection(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.AppliedCondition),e}},IfcStructuralSurfaceMember=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9130)]=l,this[u(9280)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralSurfaceMember(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this.ObjectPlacement),e.push(this.Representation),e[t(565)](this.PredefinedType),e.push(this.Thickness),e}},IfcStructuralSurfaceMemberVarying=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9130)]=l,this.Thickness=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcStructuralSurfaceMemberVarying(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this.PredefinedType),e[t(565)](this[t(9280)]),e}},IfcStructuralSurfaceReaction=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this[d(9816)]=l,this.GlobalOrLocal=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcStructuralSurfaceReaction(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9816)]),e[t(565)](this[t(9817)]),e.push(this[t(9130)]),e}},IfcStyleModel=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this.ContextOfItems=n,this[a(9762)]=r,this[a(9763)]=i,this[a(9764)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcStyleModel(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9761)]),e.push(this[t(9762)]),e[t(565)](this[t(9763)]),e[t(565)](this[t(9764)]),e}},IfcStyledItem=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this.Item=n,this[s(9628)]=r,this[s(9127)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcStyledItem(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Item),e.push(this[t(9628)]),e[t(565)](this[t(9127)]),e}},IfcStyledRepresentation=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9761)]=n,this[a(9762)]=r,this[a(9763)]=i,this[a(9764)]=s}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcStyledRepresentation(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9761)]),e.push(this[t(9762)]),e[t(565)](this[t(9763)]),e[t(565)](this[t(9764)]),e}},IfcSubContractResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this[f(9125)]=t,this.type=e,this[f(9133)]=n,this.OwnerHistory=r,this[f(9127)]=i,this.Description=s,this[f(9128)]=a,this[f(9129)]=o,this.LongDescription=c,this[f(9319)]=l,this[f(9320)]=h,this[f(9321)]=u,this[f(9130)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcSubContractResource(t,e,i,s,a,o,c,l,h,u,d,f,p)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e.push(this[t(9319)]),e[t(565)](this[t(9320)]),e[t(565)](this[t(9321)]),e[t(565)](this[t(9130)]),e}},IfcSubContractResourceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this[p(452)]=e,this[p(9133)]=n,this.OwnerHistory=r,this[p(9127)]=i,this.Description=s,this.ApplicableOccurrence=a,this[p(9144)]=o,this[p(9129)]=c,this.LongDescription=l,this.ResourceType=h,this[p(9320)]=u,this[p(9321)]=d,this[p(9130)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcSubContractResourceType(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this.Identification),e.push(this[t(9132)]),e.push(this[t(9322)]),e[t(565)](this[t(9320)]),e[t(565)](this.BaseQuantity),e[t(565)](this[t(9130)]),e}},IfcSubedge=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9408)]=n,this[s(9409)]=r,this[s(9857)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSubedge(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.EdgeStart),e.push(this[t(9409)]),e[t(565)](this.ParentEdge),e}},IfcSurface=class{constructor(t,e){this[nz(9125)]=t,this.type=e}static[nz(7952)](t,e,n){return new IfcSurface(t,e)}ToTape(){return[]}},IfcSurfaceCurve=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9484)]=n,this.AssociatedGeometry=r,this[s(9486)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSurfaceCurve(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9484)]),e[t(565)](this[t(9485)]),e[t(565)](this[t(9486)]),e}},IfcSurfaceCurveSweptAreaSolid=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this.type=e,this[c(9428)]=n,this.Position=r,this[c(9449)]=i,this[c(9452)]=s,this[c(9450)]=a,this[c(9858)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcSurfaceCurveSweptAreaSolid(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e.push(this[t(9428)]),e[t(565)](this[t(9196)]),e[t(565)](this[t(9449)]),e[t(565)](this[t(9452)]),e[t(565)](this.EndParam),e[t(565)](this[t(9858)]),e}},IfcSurfaceFeature=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSurfaceFeature(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcSurfaceOfLinearExtrusion=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9859)]=n,this[a(9196)]=r,this.ExtrudedDirection=i,this.Depth=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSurfaceOfLinearExtrusion(t,e,i,s,a,o)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9859)]),e[t(565)](this.Position),e[t(565)](this[t(9427)]),e[t(565)](this.Depth),e}},IfcSurfaceOfRevolution=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9859)]=n,this.Position=r,this[s(9860)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSurfaceOfRevolution(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9859)]),e[t(565)](this[t(9196)]),e[t(565)](this.AxisPosition),e}},IfcSurfaceReinforcementArea=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this[a(452)]=e,this[a(9127)]=n,this[a(9861)]=r,this[a(9862)]=i,this[a(9863)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSurfaceReinforcementArea(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e[t(565)](this.SurfaceReinforcement1),e.push(this.SurfaceReinforcement2),e[t(565)](this.ShearReinforcement),e}},IfcSurfaceStyle=class{constructor(t,e,n,r,i){var s=nz;this.expressID=t,this[s(452)]=e,this[s(9127)]=n,this[s(9864)]=r,this[s(9628)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcSurfaceStyle(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this.Side),e[t(565)](this[t(9628)]),e}},IfcSurfaceStyleLighting=class{constructor(t,e,n,r,i,s){var a=nz;this.expressID=t,this[a(452)]=e,this[a(9865)]=n,this[a(9866)]=r,this.TransmissionColour=i,this[a(9867)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcSurfaceStyleLighting(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9865)]),e.push(this.DiffuseReflectionColour),e[t(565)](this[t(9868)]),e[t(565)](this[t(9867)]),e}},IfcSurfaceStyleRefraction=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this.type=e,this[i(9869)]=n,this.DispersionFactor=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSurfaceStyleRefraction(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9869)]),e.push(this.DispersionFactor),e}},IfcSurfaceStyleRendering=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9870)]=n,this[u(9871)]=r,this[u(9872)]=i,this.TransmissionColour=s,this[u(9865)]=a,this.ReflectionColour=o,this.SpecularColour=c,this[u(9873)]=l,this[u(9874)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSurfaceStyleRendering(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.SurfaceColour),e[t(565)](this[t(9871)]),e[t(565)](this[t(9872)]),e[t(565)](this[t(9868)]),e[t(565)](this[t(9865)]),e.push(this.ReflectionColour),e[t(565)](this[t(9875)]),e[t(565)](this[t(9873)]),e[t(565)](this[t(9874)]),e}},IfcSurfaceStyleShading=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this[i(452)]=e,this.SurfaceColour=n,this[i(9871)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSurfaceStyleShading(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9870)]),e[t(565)](this[t(9871)]),e}},IfcSurfaceStyleWithTextures=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.Textures=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcSurfaceStyleWithTextures(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9876)]),e}},IfcSurfaceTexture=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9228)]=n,this[o(9229)]=r,this.Mode=i,this[o(9231)]=s,this[o(9232)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcSurfaceTexture(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9228)]),e[t(565)](this[t(9229)]),e[t(565)](this[t(9230)]),e[t(565)](this[t(9231)]),e[t(565)](this[t(9232)]),e}},IfcSweptAreaSolid=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9428)]=n,this.Position=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSweptAreaSolid(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9428)]),e[t(565)](this[t(9196)]),e}},IfcSweptDiskSolid=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this.type=e,this[o(9449)]=n,this.Radius=r,this.InnerRadius=i,this[o(9452)]=s,this[o(9450)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcSweptDiskSolid(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9449)]),e[t(565)](this[t(9162)]),e.push(this[t(9877)]),e[t(565)](this[t(9452)]),e[t(565)](this[t(9450)]),e}},IfcSweptDiskSolidPolygonal=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.Directrix=n,this[c(9162)]=r,this[c(9877)]=i,this[c(9452)]=s,this[c(9450)]=a,this[c(9472)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcSweptDiskSolidPolygonal(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Directrix),e[t(565)](this[t(9162)]),e[t(565)](this[t(9877)]),e[t(565)](this[t(9452)]),e.push(this.EndParam),e.push(this[t(9472)]),e}},IfcSweptSurface=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9859)]=n,this[i(9196)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcSweptSurface(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9859)]),e.push(this[t(9196)]),e}},IfcSwitchingDevice=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSwitchingDevice(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcSwitchingDeviceType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSwitchingDeviceType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this.HasPropertySets),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcSystem=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9133)]=n,this[o(9126)]=r,this.Name=i,this.Description=s,this[o(9128)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcSystem(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e}},IfcSystemFurnitureElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcSystemFurnitureElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcSystemFurnitureElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcSystemFurnitureElementType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e.push(this.Tag),e[t(565)](this.ElementType),e.push(this[t(9130)]),e}},IfcTShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this[p(9125)]=t,this.type=e,this[p(9186)]=n,this[p(9187)]=r,this[p(9196)]=i,this[p(6232)]=s,this[p(9878)]=a,this[p(9198)]=o,this[p(9471)]=c,this[p(9472)]=l,this[p(9473)]=h,this.WebEdgeRadius=u,this[p(9879)]=d,this[p(9474)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcTShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e.push(this[t(6232)]),e[t(565)](this[t(9878)]),e[t(565)](this[t(9198)]),e[t(565)](this[t(9471)]),e[t(565)](this.FilletRadius),e.push(this.FlangeEdgeRadius),e[t(565)](this.WebEdgeRadius),e[t(565)](this[t(9879)]),e[t(565)](this[t(9474)]),e}},IfcTable=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9127)]=n,this[s(9880)]=r,this.Columns=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcTable(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e.push(this.Rows),e[t(565)](this[t(9881)]),e}},IfcTableColumn=class{constructor(t,e,n,r,i,s,a){var o=nz;this.expressID=t,this[o(452)]=e,this[o(9183)]=n,this[o(9127)]=r,this[o(9134)]=i,this.Unit=s,this[o(9568)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcTableColumn(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9183)]),e[t(565)](this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9354)]),e.push(this[t(9568)]),e}},IfcTableRow=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this[i(9882)]=n,this[i(9883)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcTableRow(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this.RowCells),e[t(565)](this[t(9883)]),e}},IfcTank=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTank(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9141)]),e.push(this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcTankType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTankType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcTask=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9133)]=n,this.OwnerHistory=r,this[m(9127)]=i,this[m(9134)]=s,this.ObjectType=a,this[m(9129)]=o,this[m(9132)]=c,this[m(9131)]=l,this.WorkMethod=h,this[m(9884)]=u,this[m(9540)]=d,this[m(9885)]=f,this.PredefinedType=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcTask(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e.push(this[t(9129)]),e.push(this[t(9132)]),e.push(this[t(9131)]),e.push(this.WorkMethod),e[t(565)](this[t(9884)]),e[t(565)](this[t(9540)]),e[t(565)](this[t(9885)]),e[t(565)](this[t(9130)]),e}},IfcTaskTime=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T){var I=nz;this[I(9125)]=t,this.type=e,this.Name=n,this.DataOrigin=r,this[I(9420)]=i,this[I(9501)]=s,this[I(9886)]=a,this[I(9770)]=o,this[I(9771)]=c,this.EarlyStart=l,this[I(9887)]=h,this[I(9888)]=u,this[I(9889)]=d,this[I(9890)]=f,this[I(9891)]=p,this.IsCritical=m,this[I(9892)]=v,this[I(9893)]=_,this[I(9894)]=g,this[I(9777)]=y,this.RemainingTime=E,this[I(9776)]=T}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++],T=n[r++],I=n[r++],z=n[r++];return new IfcTaskTime(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T,I,z)}ToTape(){var t=nz;let e=[];return e.push(this[t(9127)]),e.push(this.DataOrigin),e[t(565)](this[t(9420)]),e.push(this[t(9501)]),e[t(565)](this[t(9886)]),e[t(565)](this[t(9770)]),e[t(565)](this.ScheduleFinish),e[t(565)](this[t(9895)]),e.push(this[t(9887)]),e[t(565)](this[t(9888)]),e[t(565)](this[t(9889)]),e[t(565)](this[t(9890)]),e[t(565)](this[t(9891)]),e.push(this[t(9896)]),e[t(565)](this.StatusTime),e[t(565)](this[t(9893)]),e[t(565)](this[t(9894)]),e.push(this.ActualFinish),e[t(565)](this[t(9897)]),e[t(565)](this[t(9776)]),e}},IfcTaskTimeRecurring=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T,I){var z=nz;this.expressID=t,this[z(452)]=e,this.Name=n,this[z(9419)]=r,this.UserDefinedDataOrigin=i,this[z(9501)]=s,this[z(9886)]=a,this.ScheduleStart=o,this.ScheduleFinish=c,this[z(9895)]=l,this.EarlyFinish=h,this[z(9888)]=u,this.LateFinish=d,this[z(9890)]=f,this[z(9891)]=p,this[z(9896)]=m,this[z(9892)]=v,this.ActualDuration=_,this[z(9894)]=g,this[z(9777)]=y,this[z(9897)]=E,this[z(9776)]=T,this[z(9898)]=I}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++],T=n[r++],I=n[r++],z=n[r++],S=n[r++];return new IfcTaskTimeRecurring(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E,T,I,z,S)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9419)]),e[t(565)](this[t(9420)]),e.push(this[t(9501)]),e[t(565)](this[t(9886)]),e[t(565)](this[t(9770)]),e[t(565)](this[t(9771)]),e[t(565)](this[t(9895)]),e[t(565)](this[t(9887)]),e[t(565)](this[t(9888)]),e[t(565)](this.LateFinish),e[t(565)](this.FreeFloat),e[t(565)](this[t(9891)]),e.push(this[t(9896)]),e[t(565)](this[t(9892)]),e[t(565)](this.ActualDuration),e[t(565)](this[t(9894)]),e[t(565)](this[t(9777)]),e[t(565)](this[t(9897)]),e[t(565)](this[t(9776)]),e[t(565)](this[t(9898)]),e}},IfcTaskType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d){var f=nz;this.expressID=t,this[f(452)]=e,this[f(9133)]=n,this[f(9126)]=r,this.Name=i,this[f(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[f(9129)]=c,this[f(9132)]=l,this.ProcessType=h,this[f(9130)]=u,this[f(9899)]=d}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++];return new IfcTaskType(t,e,i,s,a,o,c,l,h,u,d,f,p)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this[t(9143)]),e.push(this.HasPropertySets),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e[t(565)](this[t(9425)]),e[t(565)](this[t(9130)]),e[t(565)](this.WorkMethod),e}},IfcTelecomAddress=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9146)]=n,this[u(9134)]=r,this.UserDefinedPurpose=i,this[u(9900)]=s,this[u(9901)]=a,this[u(9902)]=o,this.ElectronicMailAddresses=c,this[u(9903)]=l,this.MessagingIDs=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTelecomAddress(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9146)]),e.push(this.Description),e.push(this[t(9147)]),e[t(565)](this.TelephoneNumbers),e[t(565)](this[t(9901)]),e.push(this.PagerNumber),e[t(565)](this[t(9904)]),e.push(this[t(9903)]),e[t(565)](this[t(9905)]),e}},IfcTendon=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g){var y=nz;this.expressID=t,this.type=e,this.GlobalId=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this.ObjectType=a,this[y(9141)]=o,this[y(9139)]=c,this.Tag=l,this[y(9676)]=h,this[y(9130)]=u,this.NominalDiameter=d,this[y(9682)]=f,this[y(9906)]=p,this[y(9907)]=m,this[y(9908)]=v,this[y(9909)]=_,this[y(9910)]=g}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++],E=n[r++];return new IfcTendon(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y,E)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ObjectType),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.SteelGrade),e[t(565)](this[t(9130)]),e[t(565)](this[t(9563)]),e[t(565)](this[t(9682)]),e.push(this[t(9906)]),e[t(565)](this[t(9907)]),e[t(565)](this[t(9908)]),e[t(565)](this.AnchorageSlip),e.push(this[t(9910)]),e}},IfcTendonAnchor=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9128)]=a,this[d(9141)]=o,this[d(9139)]=c,this[d(9140)]=l,this[d(9676)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTendonAnchor(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e.push(this[t(9140)]),e.push(this[t(9676)]),e.push(this[t(9130)]),e}},IfcTendonAnchorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTendonAnchorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcTendonConduit=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9128)]=a,this[d(9141)]=o,this.Representation=c,this[d(9140)]=l,this[d(9676)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTendonConduit(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9676)]),e[t(565)](this.PredefinedType),e}},IfcTendonConduitType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this.RepresentationMaps=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTendonConduitType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcTendonType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9143)]=a,this[m(9144)]=o,this[m(9142)]=c,this[m(9140)]=l,this[m(9145)]=h,this.PredefinedType=u,this.NominalDiameter=d,this[m(9682)]=f,this[m(9911)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcTendonType(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e.push(this.HasPropertySets),e[t(565)](this.RepresentationMaps),e.push(this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e[t(565)](this.NominalDiameter),e.push(this[t(9682)]),e[t(565)](this[t(9911)]),e}},IfcTessellatedFaceSet=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9270)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcTessellatedFaceSet(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9270)]),e}},IfcTessellatedItem=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static FromTape(t,e,n){return new IfcTessellatedItem(t,e)}[nz(9135)](){return[]}},IfcTextLiteral=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this.Literal=n,this[s(9610)]=r,this.Path=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcTextLiteral(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9912)]),e[t(565)](this[t(9610)]),e[t(565)](this.Path),e}},IfcTextLiteralWithExtent=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9912)]=n,this[o(9610)]=r,this.Path=i,this[o(9913)]=s,this[o(9914)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcTextLiteralWithExtent(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Literal),e[t(565)](this[t(9610)]),e[t(565)](this.Path),e[t(565)](this[t(9913)]),e[t(565)](this[t(9914)]),e}},IfcTextStyle=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9127)]=n,this[o(9915)]=r,this[o(9916)]=i,this[o(9917)]=s,this[o(9347)]=a}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcTextStyle(t,e,i,s,a,o,c)}ToTape(){var t=nz;let e=[];return e.push(this.Name),e[t(565)](this[t(9915)]),e[t(565)](this[t(9916)]),e[t(565)](this[t(9917)]),e[t(565)](this[t(9347)]),e}},IfcTextStyleFontModel=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9127)]=n,this[c(9918)]=r,this[c(9919)]=i,this[c(9920)]=s,this[c(9921)]=a,this[c(5204)]=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcTextStyleFontModel(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this.Name),e[t(565)](this[t(9918)]),e[t(565)](this[t(9919)]),e[t(565)](this[t(9920)]),e[t(565)](this[t(9921)]),e[t(565)](this[t(5204)]),e}},IfcTextStyleForDefinedFont=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this.type=e,this[i(9922)]=n,this[i(9923)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcTextStyleForDefinedFont(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Colour),e.push(this[t(9923)]),e}},IfcTextStyleTextModel=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9924)]=n,this[l(9925)]=r,this[l(9926)]=i,this.LetterSpacing=s,this[l(9927)]=a,this[l(9928)]=o,this[l(9929)]=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcTextStyleTextModel(t,e,i,s,a,o,c,l,h)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.TextIndent),e[t(565)](this.TextAlign),e.push(this[t(9926)]),e[t(565)](this[t(9930)]),e[t(565)](this[t(9927)]),e[t(565)](this[t(9928)]),e[t(565)](this[t(9929)]),e}},IfcTextureCoordinate=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9481)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcTextureCoordinate(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9481)]),e}},IfcTextureCoordinateGenerator=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9481)]=n,this[s(9230)]=r,this.Parameter=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcTextureCoordinateGenerator(t,e,i,s,a)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.Maps),e[t(565)](this[t(9230)]),e[t(565)](this.Parameter),e}},IfcTextureMap=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this[s(452)]=e,this[s(9481)]=n,this[s(7348)]=r,this[s(9476)]=i}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcTextureMap(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e.push(this[t(9481)]),e[t(565)](this[t(7348)]),e[t(565)](this[t(9476)]),e}},IfcTextureVertex=class{constructor(t,e,n){var r=nz;this.expressID=t,this.type=e,this[r(9270)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcTextureVertex(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9270)]),e}},IfcTextureVertexList=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9931)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcTextureVertexList(t,e,i)}[nz(9135)](){let t=[];return t[nz(565)](this.TexCoordsList),t}},IfcTimePeriod=class{constructor(t,e,n,r){var i=nz;this[i(9125)]=t,this[i(452)]=e,this.StartTime=n,this[i(9492)]=r}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcTimePeriod(t,e,i,s)}ToTape(){var t=nz;let e=[];return e[t(565)](this.StartTime),e[t(565)](this.EndTime),e}},IfcTimeSeries=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this[h(452)]=e,this[h(9127)]=n,this[h(9134)]=r,this[h(9491)]=i,this[h(9492)]=s,this[h(9493)]=a,this[h(9419)]=o,this[h(9420)]=c,this[h(9354)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcTimeSeries(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9491)]),e[t(565)](this[t(9492)]),e[t(565)](this[t(9493)]),e.push(this.DataOrigin),e[t(565)](this[t(9420)]),e[t(565)](this.Unit),e}},IfcTimeSeriesValue=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this[r(9496)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcTimeSeriesValue(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9496)]),e}},IfcTopologicalRepresentationItem=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcTopologicalRepresentationItem(t,e)}ToTape(){return[]}},IfcTopologyRepresentation=class{constructor(t,e,n,r,i,s){var a=nz;this[a(9125)]=t,this.type=e,this[a(9761)]=n,this[a(9762)]=r,this.RepresentationType=i,this[a(9764)]=s}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++];return new IfcTopologyRepresentation(t,e,i,s,a,o)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9761)]),e[t(565)](this[t(9762)]),e.push(this[t(9763)]),e[t(565)](this.Items),e}},IfcToroidalSurface=class{constructor(t,e,n,r,i){var s=nz;this[s(9125)]=t,this.type=e,this[s(9196)]=n,this[s(9932)]=r,this[s(9933)]=i}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++];return new IfcToroidalSurface(t,e,i,s,a)}ToTape(){var t=nz;let e=[];return e.push(this[t(9196)]),e.push(this[t(9932)]),e.push(this[t(9933)]),e}},IfcTransformer=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTransformer(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcTransformerType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTransformerType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e.push(this[t(9134)]),e.push(this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this.PredefinedType),e}},IfcTransitionCurveSegment2D=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this.type=e,this.StartPoint=n,this.StartDirection=r,this.SegmentLength=i,this[h(9934)]=s,this.EndRadius=a,this.IsStartRadiusCCW=o,this[h(9935)]=c,this[h(9936)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcTransitionCurveSegment2D(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.StartPoint),e[t(565)](this.StartDirection),e[t(565)](this.SegmentLength),e[t(565)](this[t(9934)]),e[t(565)](this[t(9937)]),e.push(this[t(9938)]),e[t(565)](this[t(9935)]),e[t(565)](this[t(9936)]),e}},IfcTransportElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTransportElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcTransportElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTransportElementType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcTrapeziumProfileDef=class{constructor(t,e,n,r,i,s,a,o,c){var l=nz;this[l(9125)]=t,this[l(452)]=e,this[l(9186)]=n,this[l(9187)]=r,this[l(9196)]=i,this[l(9939)]=s,this[l(9940)]=a,this[l(9258)]=o,this.TopXOffset=c}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++];return new IfcTrapeziumProfileDef(t,e,i,s,a,o,c,l,h)}ToTape(){var t=nz;let e=[];return e[t(565)](this.ProfileType),e[t(565)](this[t(9187)]),e[t(565)](this[t(9196)]),e[t(565)](this.BottomXDim),e.push(this[t(9940)]),e[t(565)](this[t(9258)]),e[t(565)](this.TopXOffset),e}},IfcTriangulatedFaceSet=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9270)]=n,this.Normals=r,this[o(9614)]=i,this[o(9479)]=s,this.PnIndex=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcTriangulatedFaceSet(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e.push(this.Coordinates),e.push(this[t(9941)]),e.push(this.Closed),e[t(565)](this[t(9479)]),e.push(this[t(9615)]),e}},IfcTriangulatedIrregularNetwork=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9270)]=n,this[c(9941)]=r,this[c(9614)]=i,this[c(9479)]=s,this[c(9615)]=a,this.Flags=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcTriangulatedIrregularNetwork(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9270)]),e[t(565)](this[t(9941)]),e.push(this[t(9614)]),e[t(565)](this[t(9479)]),e.push(this[t(9615)]),e.push(this[t(9942)]),e}},IfcTrimmedCurve=class{constructor(t,e,n,r,i,s,a){var o=nz;this[o(9125)]=t,this[o(452)]=e,this[o(9574)]=n,this[o(9943)]=r,this[o(9944)]=i,this[o(9945)]=s,this[o(9486)]=a}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++];return new IfcTrimmedCurve(t,e,i,s,a,o,c)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9574)]),e[t(565)](this[t(9943)]),e[t(565)](this[t(9944)]),e.push(this[t(9945)]),e[t(565)](this[t(9486)]),e}},IfcTubeBundle=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTubeBundle(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this.Name),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e.push(this.ObjectPlacement),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcTubeBundleType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this.GlobalId=n,this[d(9126)]=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcTubeBundleType(t,e,i,s,a,o,c,l,h,u,d,f)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcTypeObject=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this.type=e,this[c(9133)]=n,this[c(9126)]=r,this[c(9127)]=i,this[c(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcTypeObject(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e.push(this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e}},IfcTypeProcess=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9143)]=a,this[u(9144)]=o,this[u(9129)]=c,this[u(9132)]=l,this[u(9425)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTypeProcess(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9143)]),e.push(this[t(9144)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9132)]),e[t(565)](this.ProcessType),e}},IfcTypeProduct=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this[h(9125)]=t,this.type=e,this[h(9133)]=n,this[h(9126)]=r,this[h(9127)]=i,this[h(9134)]=s,this[h(9143)]=a,this[h(9144)]=o,this[h(9142)]=c,this[h(9140)]=l}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcTypeProduct(t,e,i,s,a,o,c,l,h,u)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e}},IfcTypeResource=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this.ApplicableOccurrence=a,this[u(9144)]=o,this.Identification=c,this[u(9132)]=l,this[u(9322)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcTypeResource(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9129)]),e.push(this[t(9132)]),e[t(565)](this[t(9322)]),e}},IfcUShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this.expressID=t,this[d(452)]=e,this[d(9186)]=n,this[d(9187)]=r,this.Position=i,this[d(6232)]=s,this[d(9878)]=a,this[d(9198)]=o,this[d(9471)]=c,this.FilletRadius=l,this[d(9498)]=h,this.FlangeSlope=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcUShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this.ProfileName),e[t(565)](this[t(9196)]),e.push(this.Depth),e[t(565)](this[t(9878)]),e[t(565)](this[t(9198)]),e[t(565)](this[t(9471)]),e[t(565)](this[t(9472)]),e[t(565)](this[t(9498)]),e[t(565)](this[t(9474)]),e}},IfcUnitAssignment=class{constructor(t,e,n){var r=nz;this.expressID=t,this[r(452)]=e,this[r(9946)]=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcUnitAssignment(t,e,i)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9946)]),e}},IfcUnitaryControlElement=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcUnitaryControlElement(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcUnitaryControlElementType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcUnitaryControlElementType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this.HasPropertySets),e.push(this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcUnitaryEquipment=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcUnitaryEquipment(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e.push(this.ObjectType),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcUnitaryEquipmentType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this[d(9143)]=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcUnitaryEquipmentType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this.RepresentationMaps),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcValve=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this.ObjectType=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcValve(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcValveType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this.Tag=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcValveType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e[t(565)](this.ElementType),e[t(565)](this[t(9130)]),e}},IfcVector=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this.type=e,this[i(9432)]=n,this[i(9947)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcVector(t,e,i,s)}ToTape(){var t=nz;let e=[];return e.push(this[t(9432)]),e[t(565)](this[t(9947)]),e}},IfcVertex=class{constructor(t,e){var n=nz;this[n(9125)]=t,this[n(452)]=e}static[nz(7952)](t,e,n){return new IfcVertex(t,e)}[nz(9135)](){return[]}},IfcVertexLoop=class{constructor(t,e,n){this[nz(9125)]=t,this.type=e,this.LoopVertex=n}static[nz(7952)](t,e,n){let r=0,i=n[r++];return new IfcVertexLoop(t,e,i)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9948)]),e}},IfcVertexPoint=class{constructor(t,e,n){var r=nz;this[r(9125)]=t,this[r(452)]=e,this.VertexGeometry=n}static FromTape(t,e,n){let r=0,i=n[r++];return new IfcVertexPoint(t,e,i)}[nz(9135)](){let t=[];return t.push(this.VertexGeometry),t}},IfcVibrationDamper=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcVibrationDamper(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this.Description),e.push(this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e.push(this[t(9130)]),e}},IfcVibrationDamperType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this.OwnerHistory=r,this[d(9127)]=i,this.Description=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcVibrationDamperType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this.PredefinedType),e}},IfcVibrationIsolator=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this.Tag=l,this.PredefinedType=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcVibrationIsolator(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e.push(this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this.Tag),e[t(565)](this[t(9130)]),e}},IfcVibrationIsolatorType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this.type=e,this[d(9133)]=n,this.OwnerHistory=r,this.Name=i,this[d(9134)]=s,this[d(9143)]=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcVibrationIsolatorType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this.HasPropertySets),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcVirtualElement=class{constructor(t,e,n,r,i,s,a,o,c,l){var h=nz;this.expressID=t,this[h(452)]=e,this[h(9133)]=n,this[h(9126)]=r,this.Name=i,this[h(9134)]=s,this[h(9128)]=a,this[h(9141)]=o,this[h(9139)]=c,this[h(9140)]=l}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++];return new IfcVirtualElement(t,e,i,s,a,o,c,l,h,u)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this.Name),e[t(565)](this.Description),e.push(this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e}},IfcVirtualGridIntersection=class{constructor(t,e,n,r){var i=nz;this.expressID=t,this.type=e,this.IntersectingAxes=n,this[i(9949)]=r}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++];return new IfcVirtualGridIntersection(t,e,i,s)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9950)]),e[t(565)](this[t(9949)]),e}},IfcVoidingFeature=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcVoidingFeature(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcWall=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this.Representation=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWall(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this.OwnerHistory),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcWallElementedCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this[u(9134)]=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWallElementedCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ObjectType),e.push(this[t(9141)]),e.push(this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this.PredefinedType),e}},IfcWallStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this[u(9128)]=a,this.ObjectPlacement=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWallStandardCase(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this[t(9139)]),e.push(this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcWallType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this[d(9133)]=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this[d(9142)]=c,this[d(9140)]=l,this[d(9145)]=h,this.PredefinedType=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcWallType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e.push(this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e.push(this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this[t(9140)]),e.push(this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcWasteTerminal=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this.expressID=t,this[u(452)]=e,this.GlobalId=n,this[u(9126)]=r,this[u(9127)]=i,this.Description=s,this[u(9128)]=a,this[u(9141)]=o,this[u(9139)]=c,this[u(9140)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWasteTerminal(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this[t(9128)]),e[t(565)](this.ObjectPlacement),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9130)]),e}},IfcWasteTerminalType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u){var d=nz;this[d(9125)]=t,this[d(452)]=e,this.GlobalId=n,this[d(9126)]=r,this[d(9127)]=i,this[d(9134)]=s,this.ApplicableOccurrence=a,this[d(9144)]=o,this[d(9142)]=c,this[d(9140)]=l,this.ElementType=h,this[d(9130)]=u}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++];return new IfcWasteTerminalType(t,e,i,s,a,o,c,l,h,u,d,f)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.ApplicableOccurrence),e[t(565)](this.HasPropertySets),e[t(565)](this.RepresentationMaps),e.push(this[t(9140)]),e[t(565)](this[t(9145)]),e[t(565)](this[t(9130)]),e}},IfcWindow=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this.type=e,this[m(9133)]=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9141)]=o,this[m(9139)]=c,this[m(9140)]=l,this[m(9385)]=h,this[m(9386)]=u,this.PredefinedType=d,this[m(9951)]=f,this.UserDefinedPartitioningType=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcWindow(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}ToTape(){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9141)]),e[t(565)](this.Representation),e[t(565)](this[t(9140)]),e[t(565)](this.OverallHeight),e[t(565)](this.OverallWidth),e[t(565)](this.PredefinedType),e[t(565)](this.PartitioningType),e[t(565)](this[t(9952)]),e}},IfcWindowLiningProperties=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m,v,_){var g=nz;this[g(9125)]=t,this.type=e,this[g(9133)]=n,this[g(9126)]=r,this[g(9127)]=i,this[g(9134)]=s,this.LiningDepth=a,this.LiningThickness=o,this[g(9399)]=c,this[g(9953)]=l,this[g(9954)]=h,this[g(9955)]=u,this[g(9956)]=d,this[g(9957)]=f,this[g(9401)]=p,this[g(9394)]=m,this[g(9397)]=v,this[g(9398)]=_}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++],g=n[r++],y=n[r++];return new IfcWindowLiningProperties(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_,g,y)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this.Description),e[t(565)](this.LiningDepth),e[t(565)](this[t(9390)]),e.push(this[t(9399)]),e[t(565)](this[t(9953)]),e[t(565)](this[t(9954)]),e[t(565)](this.SecondTransomOffset),e.push(this[t(9956)]),e[t(565)](this[t(9957)]),e[t(565)](this[t(9401)]),e[t(565)](this[t(9394)]),e[t(565)](this.LiningToPanelOffsetX),e[t(565)](this.LiningToPanelOffsetY),e}},IfcWindowPanelProperties=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this.type=e,this[u(9133)]=n,this.OwnerHistory=r,this.Name=i,this.Description=s,this[u(9387)]=a,this[u(9592)]=o,this[u(9593)]=c,this[u(9594)]=l,this[u(9401)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWindowPanelProperties(t,e,i,s,a,o,c,l,h,u,d)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this.OperationType),e[t(565)](this.PanelPosition),e[t(565)](this[t(9593)]),e[t(565)](this[t(9594)]),e[t(565)](this[t(9401)]),e}},IfcWindowStandardCase=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this.expressID=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this.Name=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9141)]=o,this[m(9139)]=c,this[m(9140)]=l,this.OverallHeight=h,this[m(9386)]=u,this[m(9130)]=d,this[m(9951)]=f,this.UserDefinedPartitioningType=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcWindowStandardCase(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}ToTape(){var t=nz;let e=[];return e.push(this[t(9133)]),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9141)]),e[t(565)](this[t(9139)]),e[t(565)](this[t(9140)]),e[t(565)](this[t(9385)]),e.push(this[t(9386)]),e.push(this[t(9130)]),e[t(565)](this[t(9951)]),e.push(this[t(9952)]),e}},IfcWindowStyle=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f){var p=nz;this.expressID=t,this[p(452)]=e,this.GlobalId=n,this[p(9126)]=r,this[p(9127)]=i,this[p(9134)]=s,this[p(9143)]=a,this[p(9144)]=o,this[p(9142)]=c,this[p(9140)]=l,this.ConstructionType=h,this[p(9387)]=u,this[p(9406)]=d,this[p(9407)]=f}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++];return new IfcWindowStyle(t,e,i,s,a,o,c,l,h,u,d,f,p,m)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e.push(this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9143)]),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e.push(this[t(9140)]),e.push(this.ConstructionType),e[t(565)](this.OperationType),e[t(565)](this[t(9406)]),e[t(565)](this[t(9407)]),e}},IfcWindowType=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this[m(452)]=e,this[m(9133)]=n,this[m(9126)]=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9143)]=a,this[m(9144)]=o,this[m(9142)]=c,this.Tag=l,this[m(9145)]=h,this[m(9130)]=u,this[m(9951)]=d,this.ParameterTakesPrecedence=f,this[m(9952)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcWindowType(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e.push(this.ApplicableOccurrence),e[t(565)](this[t(9144)]),e[t(565)](this[t(9142)]),e[t(565)](this.Tag),e.push(this.ElementType),e.push(this[t(9130)]),e[t(565)](this[t(9951)]),e[t(565)](this[t(9406)]),e[t(565)](this.UserDefinedPartitioningType),e}},IfcWorkCalendar=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9133)]=n,this[u(9126)]=r,this[u(9127)]=i,this[u(9134)]=s,this.ObjectType=a,this[u(9129)]=o,this[u(9958)]=c,this[u(9959)]=l,this[u(9130)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcWorkCalendar(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this.OwnerHistory),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this.Identification),e.push(this.WorkingTimes),e[t(565)](this[t(9959)]),e.push(this[t(9130)]),e}},IfcWorkControl=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p){var m=nz;this[m(9125)]=t,this.type=e,this[m(9133)]=n,this.OwnerHistory=r,this[m(9127)]=i,this[m(9134)]=s,this[m(9128)]=a,this[m(9129)]=o,this[m(9589)]=c,this.Creators=l,this[m(9146)]=h,this[m(9960)]=u,this[m(9891)]=d,this[m(9491)]=f,this[m(9961)]=p}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++];return new IfcWorkControl(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v)}[nz(9135)](){var t=nz;let e=[];return e.push(this.GlobalId),e[t(565)](this.OwnerHistory),e.push(this[t(9127)]),e.push(this.Description),e[t(565)](this[t(9128)]),e.push(this[t(9129)]),e.push(this[t(9589)]),e[t(565)](this[t(9962)]),e[t(565)](this[t(9146)]),e[t(565)](this[t(9960)]),e[t(565)](this[t(9891)]),e[t(565)](this[t(9491)]),e[t(565)](this[t(9961)]),e}},IfcWorkPlan=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){var v=nz;this[v(9125)]=t,this[v(452)]=e,this[v(9133)]=n,this[v(9126)]=r,this[v(9127)]=i,this[v(9134)]=s,this[v(9128)]=a,this.Identification=o,this[v(9589)]=c,this[v(9962)]=l,this[v(9146)]=h,this[v(9960)]=u,this[v(9891)]=d,this.StartTime=f,this[v(9961)]=p,this[v(9130)]=m}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++];return new IfcWorkPlan(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e[t(565)](this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e.push(this[t(9129)]),e[t(565)](this[t(9589)]),e[t(565)](this[t(9962)]),e[t(565)](this.Purpose),e[t(565)](this[t(9960)]),e[t(565)](this[t(9891)]),e[t(565)](this[t(9491)]),e[t(565)](this.FinishTime),e[t(565)](this.PredefinedType),e}},IfcWorkSchedule=class{constructor(t,e,n,r,i,s,a,o,c,l,h,u,d,f,p,m){var v=nz;this[v(9125)]=t,this[v(452)]=e,this[v(9133)]=n,this[v(9126)]=r,this[v(9127)]=i,this[v(9134)]=s,this.ObjectType=a,this[v(9129)]=o,this[v(9589)]=c,this[v(9962)]=l,this[v(9146)]=h,this[v(9960)]=u,this[v(9891)]=d,this.StartTime=f,this[v(9961)]=p,this[v(9130)]=m}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++],f=n[r++],p=n[r++],m=n[r++],v=n[r++],_=n[r++];return new IfcWorkSchedule(t,e,i,s,a,o,c,l,h,u,d,f,p,m,v,_)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9133)]),e[t(565)](this[t(9126)]),e.push(this[t(9127)]),e[t(565)](this[t(9134)]),e[t(565)](this[t(9128)]),e[t(565)](this[t(9129)]),e[t(565)](this[t(9589)]),e[t(565)](this[t(9962)]),e[t(565)](this[t(9146)]),e[t(565)](this.Duration),e[t(565)](this[t(9891)]),e[t(565)](this.StartTime),e[t(565)](this[t(9961)]),e[t(565)](this[t(9130)]),e}},IfcWorkTime=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this.expressID=t,this[c(452)]=e,this[c(9127)]=n,this[c(9419)]=r,this[c(9420)]=i,this[c(9963)]=s,this[c(9964)]=a,this[c(9965)]=o}static FromTape(t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcWorkTime(t,e,i,s,a,o,c,l)}[nz(9135)](){var t=nz;let e=[];return e.push(this[t(9127)]),e[t(565)](this[t(9419)]),e[t(565)](this.UserDefinedDataOrigin),e.push(this.RecurrencePattern),e[t(565)](this[t(9964)]),e[t(565)](this[t(9965)]),e}},IfcZShapeProfileDef=class{constructor(t,e,n,r,i,s,a,o,c,l,h){var u=nz;this[u(9125)]=t,this[u(452)]=e,this[u(9186)]=n,this[u(9187)]=r,this[u(9196)]=i,this[u(6232)]=s,this[u(9878)]=a,this.WebThickness=o,this[u(9471)]=c,this[u(9472)]=l,this[u(9498)]=h}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++],h=n[r++],u=n[r++],d=n[r++];return new IfcZShapeProfileDef(t,e,i,s,a,o,c,l,h,u,d)}[nz(9135)](){var t=nz;let e=[];return e[t(565)](this[t(9186)]),e.push(this[t(9187)]),e[t(565)](this.Position),e[t(565)](this[t(6232)]),e[t(565)](this[t(9878)]),e[t(565)](this[t(9198)]),e.push(this.FlangeThickness),e.push(this[t(9472)]),e[t(565)](this[t(9498)]),e}},IfcZone=class{constructor(t,e,n,r,i,s,a,o){var c=nz;this[c(9125)]=t,this[c(452)]=e,this.GlobalId=n,this[c(9126)]=r,this.Name=i,this[c(9134)]=s,this[c(9128)]=a,this.LongName=o}static[nz(7952)](t,e,n){let r=0,i=n[r++],s=n[r++],a=n[r++],o=n[r++],c=n[r++],l=n[r++];return new IfcZone(t,e,i,s,a,o,c,l)}ToTape(){var t=nz;let e=[];return e[t(565)](this.GlobalId),e[t(565)](this[t(9126)]),e[t(565)](this.Name),e[t(565)](this[t(9134)]),e[t(565)](this.ObjectType),e.push(this[t(9262)]),e}},WebIFCWasm=require_web_ifc(),IfcAPI=class{constructor(){this[nz(9966)]=void 0,this.fs=void 0}Init(){return __async2(this,null,(function*(){var t=f;WebIFCWasm?(this[t(9966)]=yield WebIFCWasm({noInitialRun:!0}),this.fs=this[t(9966)].FS):console.error(t(9967))}))}[nz(9968)](t,e){var n=nz;this[n(9966)][n(7940)]("/",n(7170),t,!0,!0,!0);let r=__spreadValues2({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},e),i=this.wasmModule[n(9968)](r);return this[n(9966)][n(7925)]("/filename"),i}CreateModel(t){let e=__spreadValues2({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},t);return this.wasmModule.CreateModel(e)}[nz(9969)](t){var e=nz;this[e(9966)][e(9969)](t);let n=this.fs.readFile(e(9970));return this[e(9966)][e(7925)](e(9970)),n}[nz(9971)](t,e){var n=nz;return this[n(9966)][n(9971)](t,e)}[nz(9972)](t,e,n=!1){var r=nz;let i=this.GetRawLineData(t,e),s=FromRawLineData[i.type](i);return n&&this[r(9973)](t,s),s}[nz(9974)](t,e){var n=nz;Object[n(477)](e)[n(604)]((r=>{var i=n;let s=e[r];if(s&&void 0!==s[i(9125)])this[i(9974)](t,s),e[r]={type:5,value:s[i(9125)]};else if(Array[i(468)](s)&&s[i(449)]>0)for(let n=0;n{var i=n;let s=e[r];if(s&&5===s[i(452)])e[r]=this[i(9972)](t,s.value,!0);else if(Array.isArray(s)&&s[i(449)]>0&&5===s[0][i(452)])for(let n=0;nmergeBufferGeometries(t,e),newFloatAttr=(t,e)=>new BufferAttribute(new Float32Array(t),e),newIntAttr=(t,e)=>new BufferAttribute(new Uint32Array(t),e),DEFAULT=nz(435),PropsNames={aggregates:{name:IFCRELAGGREGATES,relating:nz(9694),related:nz(9695),key:nz(1602)},spatial:{name:IFCRELCONTAINEDINSPATIALSTRUCTURE,relating:nz(9731),related:nz(9730),key:"children"},psets:{name:IFCRELDEFINESBYPROPERTIES,relating:nz(9737),related:"RelatedObjects",key:nz(9988)},materials:{name:IFCRELASSOCIATESMATERIAL,relating:nz(9558),related:nz(9695),key:"hasMaterial"},type:{name:IFCRELDEFINESBYTYPE,relating:"RelatingType",related:nz(9695),key:"hasType"}},IFCParser=class{constructor(t,e){var n=nz;this[n(545)]=t,this[n(9989)]=e,this[n(6909)]=0,this[n(9990)]=-1,this[n(9991)]=-1}[nz(1087)](t){return __async(this,null,(function*(){var e=f;return void 0===this[e(545)][e(9992)][e(9966)]&&(yield this[e(545)].api[e(9993)]()),this[e(9994)](t),this[e(6909)]++,this[e(9995)]()}))}[nz(9994)](t){var e=nz;const n=new Uint8Array(t);this.currentWebIfcID=this[e(545)][e(9992)].OpenModel(n,this[e(545)].webIfcSettings),this[e(9991)]=this[e(545)][e(9996)]?this[e(6909)]:this[e(9990)],this[e(545)][e(9997)][this[e(9991)]]={modelID:this.currentModelID,mesh:{},items:{},types:{},jsonData:{}}}[nz(9995)](){var t=nz;return this[t(9998)](),this[t(9999)]()}[nz(9999)](){var t=nz;const{geometry:e,materials:n}=this[t(1e4)]();this[t(9989)].applyThreeMeshBVH(e);const r=new Mesh(e,n);return r.modelID=this[t(9991)],this[t(545)][t(9997)][this[t(9991)]][t(4488)]=r,r}[nz(1e4)](){var t=nz;const e=this.state[t(9997)][this.currentModelID][t(989)],n=[],r=[];for(const i in e){r[t(565)](e[i][t(2178)]);const s=Object[t(673)](e[i][t(2170)]);n.push(merge(s))}return{geometry:merge(n,!0),materials:r}}[nz(9998)](){var t=nz;const e=this[t(545)][t(9992)][t(9986)](this[t(9990)]);for(let n=0;n0?merge(t,e):new BufferGeometry}isConfigValid(t){var e=nz;return this[e(10030)](t[e(4758)])&&this[e(10030)](t[e(10029)])&&this[e(10030)](t[e(10031)])&&this[e(10030)](t.removePrevious)}[nz(10030)](t){return null!=t&&null!=t}[nz(10024)](t){var e=nz;const n=[],r=[];for(const i in t){const s=Object[e(673)](t[i][e(2170)]);s.length&&(r[e(565)](t[i][e(2178)]),s.length>1?n.push(merge(s)):n[e(565)](...s))}return{geomsByMaterial:n,materials:r}}[nz(10032)](t,e){var n=nz;const r=this[n(1639)][this[n(10028)](e)];if(!r)return this[n(10033)](e);t[n(1204)](r[n(4488)]),e[n(10034)]?r.ids=new Set(e[n(10031)]):e[n(10031)][n(604)]((t=>r[n(10031)][n(747)](t)))}[nz(10033)](t){var e=nz;this[e(1639)][this.matID(t)]={ids:new Set(t[e(10031)]),mesh:{}}}[nz(10020)](t){var e=nz;if(!this[e(1639)][this.matID(t)])return!1;if(this[e(10035)](t))return!0;const n=this[e(1639)][this.matID(t)][e(10031)];return JSON.stringify(t[e(10031)])===JSON.stringify(n)}containsIds(t){var e=nz;const n=t.ids,r=Array.from(this[e(1639)][this.matID(t)].ids);return n[e(466)]((i=0,t=>i=r.indexOf(t,i)+1));var i}addToPreviousSelection(t){var e=nz;const n=this.selected[this[e(10028)](t)],r=this.filter(t),i=Object.values(r).map((t=>Object[e(673)](t[e(2170)])))[e(1623)](),s=n[e(4488)][e(2063)];n[e(4488)][e(2063)]=merge([s,...i]),t[e(10031)][e(604)]((t=>n[e(10031)][e(747)](t)))}[nz(464)](t){var e=nz;const n=this[e(1639)][this.matID(t)][e(10031)],r=this[e(545)][e(9997)][t.modelID].items,i={};for(const t in r)i[t]={material:r[t].material,geometries:this[e(10036)](n,r[t][e(2170)])};return i}[nz(10036)](t,e){var n=nz;const r=Array[n(666)](t);return Object[n(477)](e)[n(464)]((t=>r.includes(parseInt(t,10)))).reduce(((t,n)=>__spreadProps(__spreadValues({},t),{[n]:e[n]})),{})}isEasySelection(t){var e=nz;const n=this[e(10028)](t);if(!t[e(10034)]&&!this.isDefaultMat(t)&&this[e(1639)][n])return!0}isDefaultMat(t){return this.matIDNoConfig(t.modelID)===this.matID(t)}matID(t){var e=nz;let n;return n=t[e(2178)]&&t[e(2178)][e(1947)]||DEFAULT,n.concat(" - ")[e(475)](t.modelID.toString())}matIDNoConfig(t,e){var n=nz;let r=DEFAULT;return e&&(r=e[n(1947)]),r[n(475)](n(10037)).concat(t[n(526)]())}},IfcElements={103090709:nz(10038),4097777520:nz(10039),4031249490:nz(10040),3124254112:"IFCBUILDINGSTOREY",3856911033:"IFCSPACE",1674181508:"IFCANNOTATION",25142252:nz(10041),32344328:nz(10042),76236018:nz(10043),90941305:"IFCPUMP",177149247:nz(10044),182646315:nz(10045),263784265:nz(10046),264262732:nz(10047),277319702:nz(10048),310824031:nz(10049),331165859:nz(10050),342316401:nz(10051),377706215:nz(10052),395920057:"IFCDOOR",402227799:nz(10053),413509423:nz(10054),484807127:"IFCEVAPORATOR",486154966:nz(10055),629592764:"IFCLIGHTFIXTURE",630975310:nz(10056),635142910:nz(10057),639361253:nz(10058),647756555:nz(10059),707683696:nz(10060),738039164:nz(10061),753842376:nz(10062),812556717:"IFCTANK",819412036:"IFCFILTER",843113511:nz(10063),862014818:nz(10064),900683007:nz(10065),905975707:"IFCCOLUMNSTANDARDCASE",926996030:nz(10066),979691226:"IFCREINFORCINGBAR",987401354:nz(10067),1003880860:nz(10068),1051757585:nz(10069),1052013943:nz(10070),1062813311:nz(10071),1073191201:nz(10072),1095909175:nz(10073),1156407060:"IFCPLATESTANDARDCASE",1162798199:"IFCSWITCHINGDEVICE",1329646415:nz(10074),1335981549:nz(10075),1360408905:"IFCDUCTSILENCER",1404847402:nz(10076),1426591983:nz(10077),1437502449:nz(10078),1509553395:nz(10079),1529196076:nz(10080),1620046519:nz(10081),1634111441:nz(10082),1658829314:nz(10083),1677625105:nz(10084),1687234759:"IFCPILE",1904799276:nz(10085),1911478936:nz(10086),1945004755:nz(10087),1973544240:nz(10088),1999602285:nz(10089),2016517767:"IFCROOF",2056796094:nz(10090),2058353004:nz(10091),2068733104:"IFCHUMIDIFIER",2176052936:nz(10092),2188021234:nz(10093),2223149337:nz(10094),2262370178:nz(10095),2272882330:"IFCCONDENSER",2295281155:nz(10096),2320036040:"IFCREINFORCINGMESH",2347447852:nz(10097),2391383451:nz(10098),2391406946:"IFCWALL",2474470126:nz(10099),2769231204:nz(10100),2814081492:nz(10101),2906023776:nz(10102),2938176219:nz(10103),2979338954:nz(10104),3024970846:"IFCRAMP",3026737570:"IFCTUBEBUNDLE",3027962421:nz(10105),3040386961:nz(10106),3053780830:nz(10107),3079942009:nz(10108),3087945054:nz(10109),3101698114:nz(10110),3127900445:"IFCSLABELEMENTEDCASE",3132237377:nz(10111),3171933400:nz(10112),3221913625:nz(10113),3242481149:nz(10114),3283111854:nz(10115),3296154744:nz(10116),3304561284:nz(10117),3310460725:nz(10118),3319311131:nz(10119),3415622556:"IFCFAN",3420628829:"IFCSOLARDEVICE",3493046030:nz(10120),3495092785:nz(10121),3508470533:nz(10122),3512223829:nz(10123),3518393246:nz(10124),3571504051:nz(10125),3588315303:"IFCOPENINGELEMENT",3612865200:nz(10126),3640358203:"IFCCOOLINGTOWER",3651124850:nz(10127),3694346114:"IFCOUTLET",3747195512:nz(10128),3758799889:"IFCCABLECARRIERSEGMENT",3824725483:"IFCTENDON",3825984169:nz(10129),3902619387:nz(10130),4074379575:nz(10131),4086658281:"IFCSENSOR",4123344466:nz(10132),4136498852:nz(10133),4156078855:nz(10134),4175244083:nz(10135),4207607924:nz(10136),4217484030:nz(10137),4237592921:"IFCWASTETERMINAL",4252922144:nz(10138),4278956645:nz(10139),4288193352:nz(10140),4292641817:"IFCUNITARYEQUIPMENT",3009204131:nz(10141)},IfcTypesMap={3821786052:nz(10142),2296667514:nz(10143),3630933823:"IFCACTORROLE",4288193352:nz(10140),2874132201:"IFCACTUATORTYPE",618182010:"IFCADDRESS",1635779807:nz(10144),2603310189:nz(10145),3406155212:nz(10146),1634111441:"IFCAIRTERMINAL",177149247:"IFCAIRTERMINALBOX",1411407467:nz(10147),3352864051:nz(10148),2056796094:nz(10090),1871374353:nz(10149),3087945054:nz(10109),3001207471:nz(10150),325726236:"IFCALIGNMENT",749761778:nz(10151),3199563722:nz(10152),2483840362:nz(10153),3379348081:nz(10154),3239324667:"IFCALIGNMENT2DVERSEGLINE",4263986512:nz(10155),53199957:nz(10156),2029264950:nz(10157),3512275521:nz(10158),1674181508:"IFCANNOTATION",669184980:"IFCANNOTATIONFILLAREA",639542469:"IFCAPPLICATION",411424972:"IFCAPPLIEDVALUE",130549933:nz(10159),3869604511:"IFCAPPROVALRELATIONSHIP",3798115385:"IFCARBITRARYCLOSEDPROFILEDEF",1310608509:nz(10160),2705031697:"IFCARBITRARYPROFILEDEFWITHVOIDS",3460190687:"IFCASSET",3207858831:nz(10161),277319702:nz(10048),1532957894:nz(10162),4261334040:nz(10163),3125803723:nz(10164),2740243338:nz(10165),1967976161:"IFCBSPLINECURVE",2461110595:nz(10166),2887950389:nz(10167),167062518:nz(10168),753842376:"IFCBEAM",2906023776:nz(10102),819618141:"IFCBEAMTYPE",4196446775:"IFCBEARING",3649138523:"IFCBEARINGTYPE",616511568:"IFCBLOBTEXTURE",1334484129:nz(10169),32344328:"IFCBOILER",231477066:nz(10170),3649129432:nz(10171),2736907675:nz(10172),4037036970:nz(10173),1136057603:nz(10174),1560379544:nz(10175),3367102660:nz(10176),1387855156:nz(10177),2069777674:nz(10178),1260505505:nz(10179),4182860854:nz(10180),2581212453:nz(10181),2713105998:nz(10182),644574406:nz(10183),963979645:nz(10184),4031249490:nz(10040),3299480353:nz(10185),2979338954:nz(10104),39481116:"IFCBUILDINGELEMENTPARTTYPE",1095909175:nz(10073),1909888760:nz(10186),1950629157:nz(10187),3124254112:nz(10188),1177604601:nz(10189),2938176219:nz(10103),2188180465:nz(10190),2898889636:nz(10191),635142910:nz(10057),395041908:nz(10192),3758799889:nz(10193),3293546465:nz(10194),1051757585:nz(10069),2674252688:nz(10195),4217484030:"IFCCABLESEGMENT",1285652485:nz(10196),3999819293:nz(10197),3203706013:"IFCCAISSONFOUNDATIONTYPE",1123145078:"IFCCARTESIANPOINT",574549367:nz(10198),1675464909:nz(10199),2059837836:nz(10200),59481748:nz(10201),3749851601:nz(10202),3486308946:nz(10203),3331915920:nz(10204),1416205885:nz(10205),3150382593:nz(10206),3902619387:nz(10130),2951183804:nz(10207),3296154744:nz(10116),2197970202:"IFCCHIMNEYTYPE",2611217952:nz(10208),2937912522:nz(10209),1383045692:nz(10210),1062206242:nz(10211),1677625105:nz(10084),3893394355:nz(10212),747523909:"IFCCLASSIFICATION",647927063:nz(10213),2205249479:nz(10214),639361253:nz(10058),2301859152:nz(10215),776857604:nz(10216),3285139300:nz(10217),3264961684:"IFCCOLOURSPECIFICATION",843113511:nz(10063),905975707:nz(10218),300633059:"IFCCOLUMNTYPE",3221913625:nz(10113),400855858:nz(10219),2542286263:nz(10220),3875453745:"IFCCOMPLEXPROPERTYTEMPLATE",3732776249:nz(10221),15328376:"IFCCOMPOSITECURVEONSURFACE",2485617015:nz(10222),1485152156:nz(10223),3571504051:nz(10125),3850581409:nz(10224),2272882330:nz(10225),2816379211:nz(10226),2510884976:nz(10227),370225590:"IFCCONNECTEDFACESET",1981873012:nz(10228),2859738748:nz(10229),45288368:"IFCCONNECTIONPOINTECCENTRICITY",2614616156:"IFCCONNECTIONPOINTGEOMETRY",2732653382:nz(10230),775493141:nz(10231),1959218052:nz(10232),3898045240:nz(10233),2185764099:nz(10234),1060000209:nz(10235),4105962743:"IFCCONSTRUCTIONMATERIALRESOURCETYPE",488727124:nz(10236),1525564444:nz(10237),2559216714:nz(10238),2574617495:nz(10239),3419103109:nz(10240),3050246964:nz(10241),3293443760:nz(10242),25142252:nz(10041),578613899:nz(10243),2889183280:nz(10244),2713554722:"IFCCONVERSIONBASEDUNITWITHOFFSET",4136498852:nz(10133),335055490:"IFCCOOLEDBEAMTYPE",3640358203:nz(10245),2954562838:nz(10246),1785450214:nz(10247),1466758467:nz(10248),3895139033:nz(10249),1419761937:"IFCCOSTSCHEDULE",602808272:"IFCCOSTVALUE",1973544240:nz(10088),1916426348:nz(10250),3295246426:nz(10251),1815067380:"IFCCREWRESOURCETYPE",2506170314:"IFCCSGPRIMITIVE3D",2147822146:nz(10252),539742890:nz(10253),3495092785:nz(10121),1457835157:nz(10254),2601014836:nz(10255),2827736869:nz(10256),2629017746:nz(10257),1186437898:nz(10258),3800577675:nz(10259),1105321065:nz(10260),2367409068:nz(10261),3510044353:"IFCCURVESTYLEFONTPATTERN",1213902940:nz(10262),4074379575:nz(10131),3961806047:nz(10263),3426335179:nz(10264),1306400036:nz(10265),3632507154:nz(10266),1765591967:nz(10267),1045800335:"IFCDERIVEDUNITELEMENT",2949456006:nz(10268),32440307:nz(10269),1335981549:nz(10075),2635815018:nz(10270),1945343521:nz(10271),1052013943:"IFCDISTRIBUTIONCHAMBERELEMENT",1599208980:nz(10272),562808652:"IFCDISTRIBUTIONCIRCUIT",1062813311:nz(10071),2063403501:nz(10273),1945004755:nz(10087),3256556792:nz(10274),3040386961:nz(10106),3849074793:nz(10275),3041715199:"IFCDISTRIBUTIONPORT",3205830791:"IFCDISTRIBUTIONSYSTEM",1154170062:nz(10276),770865208:"IFCDOCUMENTINFORMATIONRELATIONSHIP",3732053477:"IFCDOCUMENTREFERENCE",395920057:nz(10277),2963535650:nz(10278),1714330368:nz(10279),3242481149:nz(10114),526551008:nz(10280),2323601079:"IFCDOORTYPE",445594917:nz(10281),4006246654:nz(10282),342316401:nz(10051),869906466:"IFCDUCTFITTINGTYPE",3518393246:"IFCDUCTSEGMENT",3760055223:"IFCDUCTSEGMENTTYPE",1360408905:nz(10283),2030761528:nz(10284),3900360178:nz(10285),476780140:nz(10286),1472233963:nz(10287),1904799276:nz(10085),663422040:nz(10288),862014818:nz(10064),2417008758:nz(10289),3310460725:"IFCELECTRICFLOWSTORAGEDEVICE",3277789161:nz(10290),264262732:"IFCELECTRICGENERATOR",1534661035:nz(10291),402227799:nz(10053),1217240411:nz(10292),1003880860:nz(10068),712377611:nz(10293),1758889154:nz(10294),4123344466:nz(10132),2397081782:nz(10295),1623761950:nz(10296),2590856083:nz(10297),1883228015:nz(10298),339256511:nz(10299),2777663545:"IFCELEMENTARYSURFACE",1704287377:nz(10300),2835456948:nz(10301),1658829314:nz(10083),2107101300:"IFCENERGYCONVERSIONDEVICETYPE",2814081492:nz(10101),132023988:nz(10302),3747195512:nz(10128),3174744832:"IFCEVAPORATIVECOOLERTYPE",484807127:nz(10303),3390157468:"IFCEVAPORATORTYPE",4148101412:nz(10304),211053100:nz(10305),4024345920:nz(10306),297599258:nz(10307),4294318154:nz(10308),3200245327:nz(10309),1437805879:nz(10310),1209101575:nz(10311),2853485674:nz(10312),2242383968:nz(10313),1040185647:nz(10314),3548104201:nz(10315),477187591:nz(10316),2804161546:nz(10317),2556980723:"IFCFACE",2047409740:"IFCFACEBASEDSURFACEMODEL",1809719519:nz(10318),803316827:nz(10319),3008276851:nz(10320),807026263:nz(10321),3737207727:nz(10322),24185140:"IFCFACILITY",1310830890:nz(10323),4219587988:nz(10324),3415622556:nz(10325),346874300:nz(10326),647756555:nz(10059),2489546625:nz(10327),2827207264:nz(10328),2143335405:nz(10329),1287392070:"IFCFEATUREELEMENTSUBTRACTION",738692330:nz(10330),374418227:nz(10331),315944413:nz(10332),819412036:"IFCFILTER",1810631287:nz(10333),1426591983:nz(10077),4222183408:nz(10334),2652556860:nz(10335),2058353004:nz(10091),3907093117:"IFCFLOWCONTROLLERTYPE",4278956645:nz(10139),3198132628:nz(10336),182646315:nz(10045),4037862832:nz(10337),2188021234:nz(10093),3815607619:nz(10338),3132237377:nz(10111),1482959167:"IFCFLOWMOVINGDEVICETYPE",987401354:nz(10067),1834744321:nz(10339),707683696:nz(10060),1339347760:nz(10340),2223149337:nz(10094),2297155007:"IFCFLOWTERMINALTYPE",3508470533:"IFCFLOWTREATMENTDEVICE",3009222698:nz(10341),900683007:nz(10065),1893162501:nz(10342),263784265:nz(10046),4238390223:"IFCFURNISHINGELEMENTTYPE",1509553395:"IFCFURNITURE",1268542332:nz(10343),3493046030:"IFCGEOGRAPHICELEMENT",4095422895:nz(10344),987898635:nz(10345),3448662350:nz(10346),2453401579:nz(10347),4142052618:nz(10348),3590301190:nz(10349),3009204131:"IFCGRID",852622518:nz(10350),178086475:nz(10351),2706460486:"IFCGROUP",812098782:nz(10352),3319311131:"IFCHEATEXCHANGER",1251058090:"IFCHEATEXCHANGERTYPE",2068733104:nz(10353),1806887404:nz(10354),1484403080:nz(10355),3905492369:nz(10356),3570813810:"IFCINDEXEDCOLOURMAP",2571569899:"IFCINDEXEDPOLYCURVE",178912537:nz(10357),2294589976:nz(10358),1437953363:"IFCINDEXEDTEXTUREMAP",2133299955:nz(10359),4175244083:"IFCINTERCEPTOR",3946677679:nz(10360),3113134337:nz(10361),2391368822:"IFCINVENTORY",3741457305:nz(10362),3020489413:"IFCIRREGULARTIMESERIESVALUE",2176052936:nz(10092),4288270099:nz(10363),572779678:"IFCLSHAPEPROFILEDEF",3827777499:nz(10364),428585644:"IFCLABORRESOURCETYPE",1585845231:nz(10365),76236018:nz(10043),1051575348:nz(10366),2655187982:nz(10367),3452421091:nz(10368),4162380809:nz(10369),629592764:nz(10370),1161773419:nz(10371),1566485204:"IFCLIGHTINTENSITYDISTRIBUTION",1402838566:nz(10372),125510826:nz(10373),2604431987:nz(10374),4266656042:"IFCLIGHTSOURCEGONIOMETRIC",1520743889:nz(10375),3422422726:"IFCLIGHTSOURCESPOT",1281925730:nz(10376),3092502836:nz(10377),388784114:nz(10378),1154579445:nz(10379),2624227202:"IFCLOCALPLACEMENT",1008929658:nz(10380),1425443689:"IFCMANIFOLDSOLIDBREP",3057273783:nz(10381),2347385850:nz(10382),1838606355:nz(10383),1847130766:nz(10384),3708119e3:"IFCMATERIALCONSTITUENT",2852063980:nz(10385),760658860:"IFCMATERIALDEFINITION",2022407955:nz(10386),248100487:"IFCMATERIALLAYER",3303938423:nz(10387),1303795690:nz(10388),1847252529:nz(10389),2199411900:nz(10390),2235152071:nz(10391),164193824:nz(10392),3079605661:nz(10393),3404854881:nz(10394),552965576:nz(10395),3265635763:nz(10396),853536259:nz(10397),1507914824:nz(10398),2597039031:nz(10399),377706215:"IFCMECHANICALFASTENER",2108223431:"IFCMECHANICALFASTENERTYPE",1437502449:nz(10078),1114901282:nz(10400),1073191201:"IFCMEMBER",1911478936:nz(10086),3181161470:nz(10401),3368373690:nz(10402),2998442950:nz(10403),2706619895:nz(10404),2474470126:nz(10099),977012517:"IFCMOTORCONNECTIONTYPE",1918398963:nz(10405),3888040117:"IFCOBJECT",219451334:nz(10406),3701648758:nz(10407),2251480897:nz(10408),4143007308:nz(10409),590820931:"IFCOFFSETCURVE",3388369263:"IFCOFFSETCURVE2D",3505215534:"IFCOFFSETCURVE3D",2485787929:nz(10410),2665983363:nz(10411),3588315303:nz(10412),3079942009:nz(10108),4251960020:"IFCORGANIZATION",1411181986:nz(10413),643959842:nz(10414),1029017970:nz(10415),144952367:nz(10416),3694346114:nz(10417),2837617999:nz(10418),1207048766:nz(10419),2529465313:"IFCPARAMETERIZEDPROFILEDEF",2519244187:nz(10420),1682466193:nz(10421),2382730787:nz(10422),3566463478:nz(10423),3327091369:"IFCPERMIT",2077209135:nz(10424),101040310:nz(10425),3021840470:"IFCPHYSICALCOMPLEXQUANTITY",2483315170:nz(10426),2226359599:nz(10427),1687234759:"IFCPILE",1158309216:"IFCPILETYPE",310824031:nz(10049),804291784:"IFCPIPEFITTINGTYPE",3612865200:nz(10126),4231323485:nz(10428),597895409:nz(10429),2004835150:nz(10430),603570806:nz(10431),1663979128:nz(10432),220341763:"IFCPLANE",3171933400:nz(10112),1156407060:nz(10433),4017108033:nz(10434),2067069095:nz(10435),4022376103:nz(10436),1423911732:"IFCPOINTONSURFACE",2924175390:"IFCPOLYLOOP",2775532180:nz(10437),2839578677:nz(10438),3724593414:nz(10439),3740093272:nz(10440),1946335990:"IFCPOSITIONINGELEMENT",3355820592:nz(10441),759155922:nz(10442),2559016684:nz(10443),3727388367:nz(10444),3778827333:"IFCPREDEFINEDPROPERTIES",3967405729:"IFCPREDEFINEDPROPERTYSET",1775413392:nz(10445),677532197:nz(10446),2022622350:nz(10447),1304840413:nz(10448),3119450353:nz(10449),2417041796:nz(10450),2744685151:nz(10451),569719735:nz(10452),2945172077:"IFCPROCESS",4208778838:"IFCPRODUCT",673634403:nz(10453),2095639259:nz(10454),3958567839:nz(10455),2802850158:nz(10456),103090709:"IFCPROJECT",653396225:nz(10457),2904328755:"IFCPROJECTORDER",3843373140:nz(10458),3651124850:nz(10127),2598011224:"IFCPROPERTY",986844984:nz(10459),871118103:nz(10460),1680319473:nz(10461),148025276:nz(10462),4166981789:nz(10463),3710013099:nz(10464),2752243245:nz(10465),941946838:"IFCPROPERTYREFERENCEVALUE",1451395588:nz(10466),3357820518:nz(10467),492091185:nz(10468),3650150729:nz(10469),110355661:nz(10470),3521284610:nz(10471),1482703590:nz(10472),738039164:nz(10061),2295281155:nz(10096),655969474:nz(10473),1842657554:"IFCPROTECTIVEDEVICETYPE",3219374653:nz(10474),90941305:nz(10475),2250791053:nz(10476),2044713172:nz(10477),2093928680:nz(10478),931644368:nz(10479),2090586900:"IFCQUANTITYSET",3252649465:"IFCQUANTITYTIME",2405470396:nz(10480),825690147:nz(10481),2262370178:"IFCRAILING",2893384427:nz(10482),3024970846:"IFCRAMP",3283111854:"IFCRAMPFLIGHT",2324767716:"IFCRAMPFLIGHTTYPE",1469900589:nz(10483),1232101972:"IFCRATIONALBSPLINECURVEWITHKNOTS",683857671:"IFCRATIONALBSPLINESURFACEWITHKNOTS",2770003689:nz(10484),3615266464:nz(10485),2798486643:nz(10486),3454111270:nz(10487),3915482550:nz(10488),2433181523:nz(10489),4021432810:nz(10490),3413951693:nz(10491),1580146022:nz(10492),3765753017:nz(10493),979691226:nz(10494),2572171363:nz(10495),3027567501:"IFCREINFORCINGELEMENT",964333572:nz(10496),2320036040:nz(10497),2310774935:"IFCREINFORCINGMESHTYPE",160246688:nz(10498),3939117080:"IFCRELASSIGNS",1683148259:nz(10499),2495723537:"IFCRELASSIGNSTOCONTROL",1307041759:nz(10500),1027710054:nz(10501),4278684876:nz(10502),2857406711:nz(10503),205026976:nz(10504),1865459582:nz(10505),4095574036:nz(10506),919958153:nz(10507),2728634034:"IFCRELASSOCIATESCONSTRAINT",982818633:"IFCRELASSOCIATESDOCUMENT",3840914261:nz(10508),2655215786:"IFCRELASSOCIATESMATERIAL",826625072:nz(10509),1204542856:nz(10510),3945020480:nz(10511),4201705270:nz(10512),3190031847:nz(10513),2127690289:nz(10514),1638771189:"IFCRELCONNECTSSTRUCTURALMEMBER",504942748:nz(10515),3678494232:nz(10516),3242617779:"IFCRELCONTAINEDINSPATIALSTRUCTURE",886880790:nz(10517),2802773753:nz(10518),2565941209:nz(10519),2551354335:nz(10520),693640335:nz(10521),1462361463:nz(10522),4186316022:"IFCRELDEFINESBYPROPERTIES",307848117:nz(10523),781010003:nz(10524),3940055652:nz(10525),279856033:"IFCRELFLOWCONTROLELEMENTS",427948657:"IFCRELINTERFERESELEMENTS",3268803585:nz(10526),1441486842:nz(10527),750771296:nz(10528),1245217292:nz(10529),4122056220:nz(10530),366585022:nz(10531),3451746338:nz(10532),3523091289:nz(10533),1521410863:nz(10534),1401173127:"IFCRELVOIDSELEMENT",478536968:"IFCRELATIONSHIP",816062949:nz(10535),1076942058:nz(10536),3377609919:"IFCREPRESENTATIONCONTEXT",3008791417:"IFCREPRESENTATIONITEM",1660063152:nz(10537),2914609552:nz(10538),2943643501:"IFCRESOURCEAPPROVALRELATIONSHIP",1608871552:nz(10539),2439245199:nz(10540),1042787934:nz(10541),1856042241:nz(10542),3243963512:nz(10543),4158566097:"IFCRIGHTCIRCULARCONE",3626867408:nz(10544),2016517767:nz(10545),2781568857:nz(10546),2341007311:nz(10547),2778083089:"IFCROUNDEDRECTANGLEPROFILEDEF",448429030:nz(10548),3053780830:nz(10107),1768891740:nz(10549),1054537805:nz(10550),2157484638:nz(10551),2042790032:nz(10552),4165799628:"IFCSECTIONREINFORCEMENTPROPERTIES",1862484736:"IFCSECTIONEDSOLID",1290935644:"IFCSECTIONEDSOLIDHORIZONTAL",1509187699:nz(10553),4086658281:nz(10554),1783015770:nz(10555),1329646415:nz(10074),4074543187:"IFCSHADINGDEVICETYPE",867548509:nz(10556),3982875396:nz(10557),4240577450:"IFCSHAPEREPRESENTATION",4124623270:nz(10558),3692461612:"IFCSIMPLEPROPERTY",3663146110:nz(10559),4097777520:nz(10039),1529196076:"IFCSLAB",3127900445:"IFCSLABELEMENTEDCASE",3027962421:"IFCSLABSTANDARDCASE",2533589738:nz(10560),2609359061:nz(10561),3420628829:"IFCSOLARDEVICE",1072016465:"IFCSOLARDEVICETYPE",723233188:nz(10562),3856911033:nz(10563),1999602285:nz(10089),1305183839:nz(10564),3812236995:nz(10565),1412071761:nz(10566),710998568:nz(10567),2706606064:nz(10568),3893378262:"IFCSPATIALSTRUCTUREELEMENTTYPE",463610769:nz(10569),2481509218:nz(10570),451544542:nz(10571),4015995234:nz(10572),1404847402:nz(10076),3112655638:nz(10573),331165859:nz(10050),4252922144:nz(10138),1039846685:nz(10574),338393293:nz(10575),682877961:"IFCSTRUCTURALACTION",3544373492:"IFCSTRUCTURALACTIVITY",2515109513:"IFCSTRUCTURALANALYSISMODEL",1179482911:nz(10576),2273995522:nz(10577),1004757350:nz(10578),4243806635:nz(10579),214636428:nz(10580),2445595289:"IFCSTRUCTURALCURVEMEMBERVARYING",2757150158:nz(10581),3136571912:nz(10582),1807405624:"IFCSTRUCTURALLINEARACTION",2162789131:"IFCSTRUCTURALLOAD",385403989:nz(10583),3478079324:nz(10584),1252848954:nz(10585),1595516126:nz(10586),609421318:nz(10587),2668620305:nz(10588),2473145415:nz(10589),1973038258:"IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION",1597423693:"IFCSTRUCTURALLOADSINGLEFORCE",1190533807:nz(10590),2525727697:"IFCSTRUCTURALLOADSTATIC",3408363356:nz(10591),530289379:nz(10592),1621171031:nz(10593),2082059205:nz(10594),734778138:"IFCSTRUCTURALPOINTCONNECTION",1235345126:nz(10595),3689010777:nz(10596),2986769608:nz(10597),3657597509:nz(10598),1975003073:"IFCSTRUCTURALSURFACECONNECTION",3979015343:"IFCSTRUCTURALSURFACEMEMBER",2218152070:nz(10599),603775116:nz(10600),2830218821:nz(10601),3958052878:nz(10602),3049322572:"IFCSTYLEDREPRESENTATION",148013059:"IFCSUBCONTRACTRESOURCE",4095615324:nz(10603),2233826070:nz(10604),2513912981:nz(10605),699246055:"IFCSURFACECURVE",2028607225:nz(10606),3101698114:nz(10110),2809605785:nz(10607),4124788165:nz(10608),2934153892:nz(10609),1300840506:"IFCSURFACESTYLE",3303107099:nz(10610),1607154358:"IFCSURFACESTYLEREFRACTION",1878645084:nz(10611),846575682:nz(10612),1351298697:"IFCSURFACESTYLEWITHTEXTURES",626085974:"IFCSURFACETEXTURE",2247615214:nz(10613),1260650574:"IFCSWEPTDISKSOLID",1096409881:nz(10614),230924584:"IFCSWEPTSURFACE",1162798199:nz(10615),2315554128:"IFCSWITCHINGDEVICETYPE",2254336722:nz(10616),413509423:nz(10054),1580310250:nz(10617),3071757647:nz(10618),985171141:nz(10619),2043862942:"IFCTABLECOLUMN",531007025:nz(10620),812556717:nz(10621),5716631:nz(10622),3473067441:nz(10623),1549132990:nz(10624),2771591690:nz(10625),3206491090:"IFCTASKTYPE",912023232:nz(10626),3824725483:nz(10627),2347447852:nz(10097),3081323446:nz(10628),3663046924:nz(10629),2281632017:"IFCTENDONCONDUITTYPE",2415094496:nz(10630),2387106220:nz(10631),901063453:"IFCTESSELLATEDITEM",4282788508:"IFCTEXTLITERAL",3124975700:nz(10632),1447204868:nz(10633),1983826977:"IFCTEXTSTYLEFONTMODEL",2636378356:nz(10634),1640371178:"IFCTEXTSTYLETEXTMODEL",280115917:nz(10635),1742049831:nz(10636),2552916305:nz(10637),1210645708:nz(10638),3611470254:nz(10639),1199560280:"IFCTIMEPERIOD",3101149627:nz(10640),581633288:nz(10641),1377556343:nz(10642),1735638870:nz(10643),1935646853:nz(10644),3825984169:nz(10129),1692211062:nz(10645),2595432518:nz(10646),1620046519:nz(10081),2097647324:"IFCTRANSPORTELEMENTTYPE",2715220739:nz(10647),2916149573:nz(10648),1229763772:nz(10649),3593883385:nz(10650),3026737570:"IFCTUBEBUNDLE",1600972822:nz(10651),1628702193:"IFCTYPEOBJECT",3736923433:nz(10652),2347495698:"IFCTYPEPRODUCT",3698973494:nz(10653),427810014:nz(10654),180925521:nz(10655),630975310:nz(10056),3179687236:nz(10656),4292641817:nz(10657),1911125066:nz(10658),4207607924:nz(10136),728799441:"IFCVALVETYPE",1417489154:nz(10659),2799835756:nz(10660),2759199220:nz(10661),1907098498:"IFCVERTEXPOINT",1530820697:nz(10662),3956297820:"IFCVIBRATIONDAMPERTYPE",2391383451:nz(10098),3313531582:nz(10663),2769231204:nz(10100),891718957:nz(10664),926996030:"IFCVOIDINGFEATURE",2391406946:nz(10665),4156078855:nz(10134),3512223829:nz(10123),1898987631:nz(10666),4237592921:nz(10667),1133259667:nz(10668),3304561284:nz(10117),336235671:nz(10669),512836454:nz(10670),486154966:nz(10055),1299126871:"IFCWINDOWSTYLE",4009809668:nz(10671),4088093105:nz(10672),1028945134:nz(10673),4218914973:"IFCWORKPLAN",3342526732:nz(10674),1236880293:nz(10675),2543172580:nz(10676),1033361043:nz(10677)},PropertyManager=class{constructor(t){this.state=t}[nz(10678)](t,e){var n=nz;if(!t.index)return;const r=t[n(677)][n(2306)];return t[n(2064)][IdAttrName].getX(r[3*e])}[nz(10679)](t,e,n=!1){var r=nz;return this.state[r(9996)]?__spreadValues({},this.state[r(9997)][t][r(10680)][e]):this[r(545)][r(9992)][r(9972)](t,e,n)}[nz(10681)](t,e,n){var r=nz;return this[r(545)][r(9996)]?this.getAllItemsOfTypeJSON(t,e,n):this[r(10682)](t,e,n)}[nz(10683)](t,e,n=!1){var r=nz;return this[r(545)].useJSON?this.getPropertyJSON(t,e,n,PropsNames[r(10684)]):this[r(10685)](t,e,n,PropsNames.psets)}[nz(10686)](t,e,n=!1){var r=nz;return this[r(545)][r(9996)]?this[r(10687)](t,e,n,PropsNames[r(452)]):this[r(10685)](t,e,n,PropsNames[r(452)])}[nz(10688)](t,e,n=!1){var r=nz;return this[r(545)][r(9996)]?this[r(10687)](t,e,n,PropsNames[r(2179)]):this[r(10685)](t,e,n,PropsNames[r(2179)])}[nz(10689)](t){var e=nz;return this.state[e(9996)]?this[e(10690)](t):this[e(10691)](t)}[nz(10690)](t){var e=nz;const n=this.getSpatialTreeChunks(t),r=this[e(10692)](t,IFCPROJECT,!1)[0],i=this.newIfcProject(r);return this[e(10693)](t,i,n),__spreadValues({},i)}[nz(10691)](t){var e=nz;const n=this[e(10694)](t),r=this[e(545)][e(9992)][e(9977)](t,IFCPROJECT).get(0),i=this[e(10695)](r);return this[e(10693)](t,i,n),i}[nz(10692)](t,e,n){var r=nz;const i=this.state[r(9997)][t][r(10680)],s=IfcTypesMap[e];if(!s)throw new Error(r(10696)+e);return this[r(10697)](i,s,n)}[nz(10697)](t,e,n){var r=nz;const i=[];return Object[r(477)](t)[r(604)]((s=>{var a=r;const o=parseInt(s);t[o][a(452)][a(736)]()===e&&i.push(n?__spreadValues({},t[o]):o)})),i}getItemsByIDJSON(t,e){var n=nz;const r=this[n(545)][n(9997)][t][n(10680)],i=[];return e[n(604)]((t=>i[n(565)](__spreadValues({},r[t])))),i}[nz(10687)](t,e,n=!1,r){var i=nz;const s=this[i(10698)](t,e,r),a=this[i(10699)](t,s);return n&&a[i(604)]((e=>this[i(10700)](t,e))),a}[nz(10700)](t,e){var n=nz;if(null==e)return;const r=Object[n(477)](e);for(let i=0;i{var n=f;return 5===e.type&&(e=this[n(10699)](t,[e.value])[0],this[n(10700)](t,e)),e}))}getPropertyWebIfcAPI(t,e,n=!1,r){var i=nz;return this.getAllRelatedItemsOfTypeWebIfcAPI(t,e,r)[i(679)]((e=>this[i(545)][i(9992)][i(9972)](t,e,n)))}[nz(10682)](t,e,n){var r=nz;const i=[],s=this[r(545)][r(9992)].GetLineIDsWithType(t,e);for(let t=0;tthis[r(545)].api[r(9972)](t,e))):i}newIfcProject(t){return{expressID:t,type:nz(10038),children:[]}}[nz(10694)](t){var e=nz;const n={};return this[e(545)].useJSON?(this.getChunksJSON(t,n,PropsNames.aggregates),this[e(10703)](t,n,PropsNames.spatial)):(this.getChunksWebIfcAPI(t,n,PropsNames[e(10704)]),this[e(10705)](t,n,PropsNames.spatial)),n}[nz(10703)](t,e,n){var r=nz;this[r(10692)](t,n[r(542)],!0)[r(604)]((t=>{this.saveChunk(e,n,t)}))}getChunksWebIfcAPI(t,e,n){var r=nz;const i=this[r(545)].api[r(9977)](t,n[r(542)]);for(let s=0;st[r(439)]));null==t[i]?t[i]=s:t[i]=t[i][r(475)](s)}[nz(10693)](t,e,n){var r=nz;this[r(10709)](t,e,n,PropsNames[r(10704)]),this[r(10709)](t,e,n,PropsNames.spatial)}[nz(10709)](t,e,n,r){var i=nz;const s=n[e[i(9125)]];if(null==s)return;e[r[i(447)]]=s[i(679)]((e=>{var r=i;const s=this[r(10710)](t,e);return this[r(10693)](t,s,n),s}))}newNode(t,e){return{expressID:e,type:this.getNodeType(t,e),children:[]}}[nz(10711)](t,e){var n=nz;if(this[n(545)][n(9996)])return this.state[n(9997)][t][n(10680)][e][n(452)];const r=this[n(545)][n(9997)][t][n(1366)][e];return IfcElements[r]}[nz(10698)](t,e,n){var r=nz;const i=this[r(10692)](t,n[r(542)],!0),s=[];return i[r(604)]((t=>{this[r(10712)](e,t,n)&&this.getRelated(t,n,s)})),s}[nz(10713)](t,e,n){var r=nz;const i=this[r(545)].api.GetLineIDsWithType(t,n[r(542)]),s=[];for(let a=0;an[r(565)](t.value))):n[r(565)](i.value)}isRelated(t,e,n){var r=nz;const i=e[n[r(10708)]];if(Array.isArray(i)){return i[r(679)]((t=>t.value))[r(667)](t)}return i[r(439)]===t}},TypeManager=class{constructor(t){this[nz(545)]=t}[nz(10715)](){var t=nz;for(const e in this[t(545)][t(9997)]){const n=this[t(545)][t(9997)][e][t(1366)];0==Object[t(477)](n)[t(449)]&&this[t(10716)](parseInt(e))}}[nz(10716)](t){var e=nz;this[e(545)][e(9997)][t].types;const n=Object[e(477)](IfcElements).map((t=>parseInt(t))),r=this[e(545)][e(9997)][t][e(1366)];n[e(604)]((n=>{var i=e;const s=this[i(545)].api[i(9977)](t,n);for(let t=0;t{var e=r;i[t]&&s[e(565)](...i[t])}));const a=this[r(10734)](t),o=this[r(10735)][t];n?s[r(604)]((t=>a[r(540)]([0,0,0],t))):s[r(604)]((t=>a[r(540)]([o[t],o[t+1],o[t+2]],t))),this[r(2609)](t)[r(2065)].needsUpdate=!0}showAllItems(t){var e=nz;this[e(10735)][t]&&(this[e(10736)](t),this[e(2609)](t).position[e(1948)]=!0)}hideAllItems(t){var e=nz;this[e(10734)](t)[e(929)](0),this[e(2609)](t)[e(2065)][e(1948)]=!0}[nz(10737)](t){var e=nz;const n=this[e(10734)](t);!this[e(10735)][t]&&(this[e(10735)][t]=new Float32Array(n))}resetCoordinates(t){var e=nz;const n=this[e(10735)][t];this[e(10734)](t)[e(540)](n)}[nz(10734)](t){var e=nz;return this.getAttributes(t)[e(2065)][e(2306)]}[nz(2609)](t){var e=nz;return this[e(545)][e(9997)][t].mesh[e(2063)][e(2064)]}},IFCManager=class{constructor(){var t=nz;this[t(545)]={models:[],api:new IfcAPI,useJSON:!1},this[t(9989)]=new BvhManager,this[t(5786)]=new IFCParser(this[t(545)],this[t(9989)]),this[t(10738)]=new SubsetManager(this[t(545)],this[t(9989)]),this[t(3314)]=new PropertyManager(this[t(545)]),this[t(1366)]=new TypeManager(this[t(545)]),this[t(10739)]=new ItemsHider(this[t(545)])}parse(t){return __async(this,null,(function*(){var e=f;const n=yield this[e(5786)][e(1087)](t);this[e(545)][e(9996)]?this.disposeMemory():this[e(1366)][e(10715)](),this.hider[e(10732)](n[e(10029)]);const r=new IFCModel(n[e(2063)],n[e(2178)]);return r[e(10718)](this),r}))}[nz(10720)](t){var e=nz;this.state.api[e(10740)](t)}[nz(10741)](t){var e=nz;this[e(545)][e(10742)]=t}[nz(10743)](t=!0){var e=nz;this[e(545)][e(9996)]=t,this[e(10744)]()}[nz(10745)](t,e){var n=nz;const r=this[n(545)][n(9997)][t];r&&(r[n(10680)]=e)}[nz(10744)](){var t=nz;this[t(545)][t(9992)]=null,this[t(545)][t(9992)]=new IfcAPI}[nz(10729)](t,e,n){var r=nz;this[r(9989)][r(10726)](t,e,n)}[nz(587)](t,e){var n=nz;this[n(545)][n(9992)][n(9983)](t),e&&e.remove(this[n(545)][n(9997)][t][n(4488)]),delete this[n(545)][n(9997)][t]}getExpressId(t,e){return this[nz(3314)].getExpressId(t,e)}[nz(10681)](t,e,n){var r=nz;return this[r(3314)][r(10681)](t,e,n)}[nz(10679)](t,e,n=!1){var r=nz;return this[r(3314)][r(10679)](t,e,n)}[nz(10683)](t,e,n=!1){return this[nz(3314)].getPropertySets(t,e,n)}[nz(10686)](t,e,n=!1){return this.properties.getTypeProperties(t,e,n)}[nz(10688)](t,e,n=!1){var r=nz;return this[r(3314)][r(10688)](t,e,n)}getIfcType(t,e){var n=nz;const r=this[n(545)].models[t][n(1366)][e];return IfcElements[r]}[nz(10689)](t){var e=nz;return this[e(3314)][e(10689)](t)}getSubset(t,e){var n=nz;return this[n(10738)][n(10016)](t,e)}[nz(10017)](t,e,n){this[nz(10738)].removeSubset(t,e,n)}[nz(10019)](t){var e=nz;return this.subsets[e(10019)](t)}[nz(10722)](t,e){var n=nz;this[n(10739)][n(10722)](t,e)}hideAllItems(t){var e=nz;this[e(10739)][e(10723)](t)}[nz(10724)](t,e){var n=nz;this[n(10739)][n(10724)](t,e)}[nz(10725)](t){this.hider.showAllItems(t)}},IFCLoader=class extends Loader{constructor(t){super(t),this.ifcManager=new IFCManager}[nz(1212)](t,e,n,r){var i=nz;const s=this,a=new FileLoader(s[i(3749)]);a[i(3756)](s[i(1091)]),a[i(3784)](i(3773)),a[i(3758)](s.requestHeader),a[i(3755)](s.withCredentials),a.load(t,(function(n){return __async(this,null,(function*(){var i=f;try{if(typeof n==i(470))throw new Error(i(10746));e(yield s.parse(n))}catch(e){r?r(e):console[i(819)](e),s[i(3749)].itemError(t)}}))}),n,r)}parse(t){var e=nz;return this.ifcManager[e(1087)](t)}},MTLLoader=class extends Loader{constructor(t){super(t)}[nz(1212)](t,e,n,r){var i=nz;const s=this,a=""===this[i(1091)]?LoaderUtils.extractUrlBase(t):this.path,o=new FileLoader(this[i(3749)]);o[i(3756)](this.path),o[i(3758)](this[i(3759)]),o.setWithCredentials(this[i(3752)]),o.load(t,(function(n){var o=i;try{e(s[o(1087)](n,a))}catch(e){r?r(e):console[o(819)](e),s.manager[o(3783)](t)}}),n,r)}[nz(10747)](t){return this[nz(10748)]=t,this}[nz(1087)](t,e){var n=nz;const r=t.split("\n");let i={};const s=/\s+/,a={};for(let t=0;t=0?e[n(4902)](0,o):e;c=c[n(570)]();let l=o>=0?e[n(4902)](o+1):"";if(l=l.trim(),c===n(10749))i={name:l},a[l]=i;else if("ka"===c||"kd"===c||"ks"===c||"ke"===c){const t=l.split(s,3);i[c]=[parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2])]}else i[c]=l}const o=new MaterialCreator(this.resourcePath||e,this.materialOptions);return o[n(3754)](this[n(3750)]),o[n(10750)](this[n(3749)]),o[n(10751)](a),o}},MaterialCreator=class{constructor(t="",e={}){var n=nz;this[n(10752)]=t,this.options=e,this.materialsInfo={},this.materials={},this[n(10753)]=[],this.nameLookup={},this[n(3750)]=n(3751),this[n(2196)]=void 0!==this[n(3645)][n(2196)]?this.options[n(2196)]:FrontSide,this[n(1131)]=void 0!==this[n(3645)][n(1131)]?this[n(3645)][n(1131)]:RepeatWrapping}setCrossOrigin(t){return this[nz(3750)]=t,this}[nz(10750)](t){this[nz(3749)]=t}[nz(10751)](t){var e=nz;this[e(10754)]=this[e(3165)](t),this.materials={},this.materialsArray=[],this[e(10755)]={}}convert(t){var e=nz;if(!this[e(3645)])return t;const n={};for(const r in t){const i=t[r],s={};n[r]=s;for(const t in i){let n=!0,r=i[t];const a=t[e(570)]();switch(a){case"kd":case"ka":case"ks":this.options&&this[e(3645)][e(10756)]&&(r=[r[0]/255,r[1]/255,r[2]/255]),this[e(3645)]&&this[e(3645)][e(10757)]&&0===r[0]&&0===r[1]&&0===r[2]&&(n=!1)}n&&(s[a]=r)}}return n}[nz(5133)](){var t=nz;for(const e in this[t(10754)])this[t(419)](e)}[nz(3618)](t){return this[nz(10755)][t]}[nz(10758)](){var t=nz;let e=0;for(const n in this[t(10754)])this[t(10753)][e]=this[t(419)](n),this[t(10755)][n]=e,e++;return this[t(10753)]}[nz(419)](t){var e=nz;return void 0===this[e(2179)][t]&&this[e(10759)](t),this[e(2179)][t]}[nz(10759)](t){var e=nz;const n=this,r=this[e(10754)][t],i={name:t,side:this.side};function s(t,r){var s=e;if(i[t])return;const a=n.getTextureParams(r,i),o=n.loadTexture(function(t,n){return"string"!=typeof n||""===n?"":/^https?:\/\//i[e(467)](n)?n:t+n}(n[s(10752)],a.url));o[s(1562)][s(1867)](a[s(1901)]),o[s(1389)][s(1867)](a[s(1389)]),o.wrapS=n[s(1131)],o[s(1957)]=n[s(1131)],(t===s(679)||"emissiveMap"===t)&&(o.encoding=sRGBEncoding),i[t]=o}for(const t in r){const n=r[t];let a;if(""!==n)switch(t[e(570)]()){case"kd":i.color=(new Color).fromArray(n).convertSRGBToLinear();break;case"ks":i[e(2238)]=(new Color).fromArray(n)[e(1924)]();break;case"ke":i.emissive=(new Color)[e(1890)](n)[e(1924)]();break;case e(10760):s(e(679),n);break;case e(10761):s("specularMap",n);break;case e(10762):s(e(2269),n);break;case e(10763):s(e(2261),n);break;case"map_bump":case e(7001):s("bumpMap",n);break;case e(10764):s("alphaMap",n),i[e(2197)]=!0;break;case"ns":i[e(2241)]=parseFloat(n);break;case"d":a=parseFloat(n),a<1&&(i.opacity=a,i[e(2197)]=!0);break;case"tr":a=parseFloat(n),this[e(3645)]&&this[e(3645)][e(10765)]&&(a=1-a),a>0&&(i[e(2286)]=1-a,i[e(2197)]=!0)}}return this[e(2179)][t]=new MeshPhongMaterial(i),this[e(2179)][t]}getTextureParams(t,e){var n=nz;const r={scale:new Vector2(1,1),offset:new Vector2(0,0)},i=t[n(465)](/\s+/);let s;return s=i[n(564)](n(10766)),s>=0&&(e[n(2260)]=parseFloat(i[s+1]),i.splice(s,2)),s=i[n(564)]("-s"),s>=0&&(r[n(1901)][n(540)](parseFloat(i[s+1]),parseFloat(i[s+2])),i[n(690)](s,4)),s=i[n(564)]("-o"),s>=0&&(r[n(1389)][n(540)](parseFloat(i[s+1]),parseFloat(i[s+2])),i[n(690)](s,4)),r[n(1065)]=i[n(549)](" ")[n(772)](),r}loadTexture(t,e,n,r,i){var s=nz;const a=void 0!==this.manager?this[s(3749)]:DefaultLoadingManager;let o=a.getHandler(t);null===o&&(o=new TextureLoader(a)),o[s(3754)]&&o.setCrossOrigin(this[s(3750)]);const c=o[s(1212)](t,n,r,i);return void 0!==e&&(c[s(1956)]=e),c}},_object_pattern=/^[og]\s*(.+)?/,_material_library_pattern=/^mtllib /,_material_use_pattern=/^usemtl /,_map_use_pattern=/^usemap /,_face_vertex_data_separator_pattern=/\s+/,_vA3=new Vector3,_vB3=new Vector3,_vC3=new Vector3,_ab2=new Vector3,_cb2=new Vector3,_color=new Color;function ParserState(){const t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(t,e){var n=f;if(this[n(469)]&&!1===this[n(469)][n(10767)])return this.object[n(542)]=t,void(this[n(469)].fromDeclaration=!1!==e);const r=this[n(469)]&&typeof this[n(469)].currentMaterial===n(432)?this[n(469)][n(10768)]():void 0;if(this[n(469)]&&"function"==typeof this.object[n(10769)]&&this[n(469)][n(10769)](!0),this[n(469)]={name:t||"",fromDeclaration:!1!==e,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(t,e){var r=n;const i=this._finalize(!1);i&&(i[r(10770)]||i[r(10771)]<=0)&&this.materials[r(690)](i[r(677)],1);const s={index:this[r(2179)][r(449)],name:t||"",mtllib:Array[r(468)](e)&&e[r(449)]>0?e[e[r(449)]-1]:"",smooth:void 0!==i?i[r(10772)]:this[r(10772)],groupStart:void 0!==i?i.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(t){var e=r;const n={index:typeof t===e(458)?t:this[e(677)],name:this[e(542)],mtllib:this[e(10773)],smooth:this[e(10772)],groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return n[e(1014)]=this[e(1014)].bind(n),n}};return this[r(2179)][r(565)](s),s},currentMaterial:function(){var t=n;if(this[t(2179)][t(449)]>0)return this.materials[this.materials[t(449)]-1]},_finalize:function(t){var e=n;const r=this[e(10768)]();if(r&&-1===r[e(10774)]&&(r[e(10774)]=this[e(2063)].vertices[e(449)]/3,r[e(10771)]=r[e(10774)]-r.groupStart,r.inherited=!1),t&&this[e(2179)][e(449)]>1)for(let t=this[e(2179)][e(449)]-1;t>=0;t--)this[e(2179)][t][e(10771)]<=0&&this[e(2179)][e(690)](t,1);return t&&0===this[e(2179)][e(449)]&&this[e(2179)][e(565)]({name:"",smooth:this[e(10772)]}),r}},r&&r[n(542)]&&"function"==typeof r[n(1014)]){const t=r[n(1014)](0);t[n(10770)]=!0,this[n(469)][n(2179)][n(565)](t)}this[n(4232)][n(565)](this[n(469)])},finalize:function(){var t=f;this.object&&typeof this[t(469)][t(10769)]===t(432)&&this.object[t(10769)](!0)},parseVertexIndex:function(t,e){const n=parseInt(t,10);return 3*(n>=0?n-1:n+e/3)},parseNormalIndex:function(t,e){const n=parseInt(t,10);return 3*(n>=0?n-1:n+e/3)},parseUVIndex:function(t,e){const n=parseInt(t,10);return 2*(n>=0?n-1:n+e/2)},addVertex:function(t,e,n){var r=f;const i=this[r(3614)],s=this.object[r(2063)][r(3614)];s.push(i[t+0],i[t+1],i[t+2]),s[r(565)](i[e+0],i[e+1],i[e+2]),s[r(565)](i[n+0],i[n+1],i[n+2])},addVertexPoint:function(t){var e=f;const n=this[e(3614)];this.object[e(2063)][e(3614)][e(565)](n[t+0],n[t+1],n[t+2])},addVertexLine:function(t){var e=f;const n=this[e(3614)];this[e(469)][e(2063)].vertices[e(565)](n[t+0],n[t+1],n[t+2])},addNormal:function(t,e,n){var r=f;const i=this[r(3642)],s=this.object[r(2063)].normals;s[r(565)](i[t+0],i[t+1],i[t+2]),s[r(565)](i[e+0],i[e+1],i[e+2]),s[r(565)](i[n+0],i[n+1],i[n+2])},addFaceNormal:function(t,e,n){var r=f;const i=this[r(3614)],s=this[r(469)][r(2063)][r(3642)];_vA3[r(1890)](i,t),_vB3[r(1890)](i,e),_vC3[r(1890)](i,n),_cb2[r(1872)](_vC3,_vB3),_ab2.subVectors(_vA3,_vB3),_cb2[r(1880)](_ab2),_cb2.normalize(),s[r(565)](_cb2.x,_cb2.y,_cb2.z),s[r(565)](_cb2.x,_cb2.y,_cb2.z),s[r(565)](_cb2.x,_cb2.y,_cb2.z)},addColor:function(t,e,n){var r=f;const i=this.colors,s=this[r(469)].geometry[r(7344)];void 0!==i[t]&&s[r(565)](i[t+0],i[t+1],i[t+2]),void 0!==i[e]&&s[r(565)](i[e+0],i[e+1],i[e+2]),void 0!==i[n]&&s.push(i[n+0],i[n+1],i[n+2])},addUV:function(t,e,n){var r=f;const i=this[r(7346)],s=this.object[r(2063)][r(7346)];s[r(565)](i[t+0],i[t+1]),s[r(565)](i[e+0],i[e+1]),s.push(i[n+0],i[n+1])},addDefaultUV:function(){var t=f;const e=this[t(469)][t(2063)][t(7346)];e.push(0,0),e[t(565)](0,0),e.push(0,0)},addUVLine:function(t){var e=f;const n=this.uvs;this[e(469)][e(2063)].uvs[e(565)](n[t+0],n[t+1])},addFace:function(t,e,n,r,i,s,a,o,c){var l=f;const h=this[l(3614)][l(449)];let u=this[l(10775)](t,h),d=this.parseVertexIndex(e,h),p=this[l(10775)](n,h);if(this[l(10776)](u,d,p),this[l(6869)](u,d,p),void 0!==a&&""!==a){const t=this.normals[l(449)];u=this[l(10777)](a,t),d=this[l(10777)](o,t),p=this[l(10777)](c,t),this[l(10778)](u,d,p)}else this.addFaceNormal(u,d,p);if(void 0!==r&&""!==r){const t=this[l(7346)][l(449)];u=this[l(10779)](r,t),d=this[l(10779)](i,t),p=this[l(10779)](s,t),this[l(10780)](u,d,p),this[l(469)].geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(t){var e=f;this.object[e(2063)][e(452)]=e(3535);const n=this[e(3614)].length;for(let r=0,i=t[e(449)];r=7?(_color[e(1912)](parseFloat(t[4]),parseFloat(t[5]),parseFloat(t[6]))[e(1924)](),n.colors[e(565)](_color.r,_color.g,_color.b)):n[e(7344)][e(565)](void 0,void 0,void 0);break;case"vn":n[e(3642)][e(565)](parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3]));break;case"vt":n.uvs.push(parseFloat(t[1]),parseFloat(t[2]))}}else if("f"===a){const t=s[e(497)](1)[e(772)]()[e(465)](_face_vertex_data_separator_pattern),r=[];for(let n=0,i=t.length;n0){const t=i[e(465)]("/");r[e(565)](t)}}const i=r[0];for(let t=1,s=r[e(449)]-1;t1){const t=i[1][e(772)]().toLowerCase();n.object[e(10772)]="0"!==t&&"off"!==t}else n[e(469)][e(10772)]=!0;const t=n.object[e(10768)]();t&&(t[e(10772)]=n[e(469)][e(10772)])}else{if("\0"===s)continue;console[e(1176)]('THREE.OBJLoader: Unexpected line: "'+s+'"')}}n[e(10790)]();const s=new Group;s[e(10788)]=[].concat(n[e(10788)]);if(!0===!(1===n[e(4232)][e(449)]&&0===n[e(4232)][0][e(2063)].vertices[e(449)]))for(let t=0,r=n[e(4232)][e(449)];t0&&h[e(2334)](e(655),new Float32BufferAttribute(i.normals,3)),i[e(7344)][e(449)]>0&&(l=!0,h.setAttribute("color",new Float32BufferAttribute(i[e(7344)],3))),!0===i[e(10791)]&&h.setAttribute("uv",new Float32BufferAttribute(i[e(7346)],2));const u=[];for(let t=0,r=a[e(449)];t1){for(let t=0,n=a[e(449)];t0){const t=new PointsMaterial({size:1,sizeAttenuation:!1}),r=new BufferGeometry;r[e(2334)](e(2065),new Float32BufferAttribute(n.vertices,3)),n.colors[e(449)]>0&&void 0!==n[e(7344)][0]&&(r[e(2334)](e(2231),new Float32BufferAttribute(n[e(7344)],3)),t[e(2285)]=!0);const i=new Points(r,t);s[e(747)](i)}return s}},_color3=new Color,PLYLoader=class extends Loader{constructor(t){super(t),this.propertyNameMapping={}}load(t,e,n,r){var i=nz;const s=this,a=new FileLoader(this[i(3749)]);a[i(3756)](this[i(1091)]),a[i(3784)](i(3773)),a[i(3758)](this[i(3759)]),a[i(3755)](this[i(3752)]),a[i(1212)](t,(function(n){var a=i;try{e(s.parse(n))}catch(e){r?r(e):console[a(819)](e),s[a(3749)][a(3783)](t)}}),n,r)}[nz(10792)](t){this[nz(10793)]=t}parse(t){var e=nz;function n(t){var e=f;let n="",r=0;const i=/^ply([\s\S]*)end_header(\r\n|\r|\n)/[e(601)](t);null!==i&&(n=i[1],r=new Blob([i[0]])[e(753)]);const s={comments:[],elements:[],headerLength:r,objInfo:""},a=n[e(465)](/\r\n|\r|\n/);let o;function c(t,n){var r=e;const i={type:t[0]};return i.type===r(1628)?(i.name=t[3],i.countType=t[1],i[r(10794)]=t[2]):i[r(542)]=t[1],i[r(542)]in n&&(i.name=n[i.name]),i}for(let t=0;t=e[n(1874)][h][n(2053)]&&(h++,u=0);const a=i(e.elements[h][n(3314)],s);o(r,e.elements[h][n(542)],a),u++}return a(r)}function a(t){var e=f;let n=new BufferGeometry;return t[e(3615)][e(449)]>0&&n[e(2332)](t.indices),n[e(2334)](e(2065),new Float32BufferAttribute(t[e(3614)],3)),t[e(3642)][e(449)]>0&&n[e(2334)](e(655),new Float32BufferAttribute(t[e(3642)],3)),t.uvs[e(449)]>0&&n[e(2334)]("uv",new Float32BufferAttribute(t[e(7346)],2)),t[e(7344)][e(449)]>0&&n[e(2334)](e(2231),new Float32BufferAttribute(t[e(7344)],3)),t[e(10807)].length>0&&(n=n[e(2353)](),n[e(2334)]("uv",new Float32BufferAttribute(t.faceVertexUvs,2))),n[e(2340)](),n}function o(t,e,n){var r=f;function i(t){for(let e=0,r=t[f(449)];e>5&31)/31,a=(t>>10&31)/31):(i=c,s=l,a=h)}for(let c=1;c<=3;c++){const l=r+12*c,h=3*t*3+3*(c-1);m[h]=n.getFloat32(l,!0),m[h+1]=n[e(7452)](l+4,!0),m[h+2]=n[e(7452)](l+8,!0),v[h]=u,v[h+1]=f,v[h+2]=p,d&&(o[h]=i,o[h+1]=s,o[h+2]=a)}}return p[e(2334)](e(2065),new BufferAttribute(m,3)),p[e(2334)](e(655),new BufferAttribute(v,3)),d&&(p[e(2334)](e(2231),new BufferAttribute(o,3)),p.hasColors=!0,p[e(3306)]=u),p}(n):function(t){var e=f;const n=new BufferGeometry,r=/solid([\s\S]*?)endsolid/g,i=/facet([\s\S]*?)endfacet/g;let s=0;const a=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp(e(2964)+a+a+a,"g"),c=new RegExp(e(655)+a+a+a,"g"),l=[],h=[],u=new Vector3;let d,p=0,m=0,v=0;for(;null!==(d=r[e(601)](t));){m=v;const t=d[0];for(;null!==(d=i[e(601)](t));){let t=0,n=0;const r=d[0];for(;null!==(d=c[e(601)](r));)u.x=parseFloat(d[1]),u.y=parseFloat(d[2]),u.z=parseFloat(d[3]),n++;for(;null!==(d=o[e(601)](r));)l.push(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3])),h.push(u.x,u.y,u.z),t++,v++;1!==n&&console[e(819)](e(10829)+s),3!==t&&console.error(e(10830)+s),s++}const r=m,a=v-m;n[e(2336)](r,a,p),p++}return n.setAttribute(e(2065),new Float32BufferAttribute(l,3)),n[e(2334)]("normal",new Float32BufferAttribute(h,3)),n}(typeof(r=t)!==(i=f)(470)?LoaderUtils[i(3802)](new Uint8Array(r)):r);var r,i}},BYLAYER=nz(10831),BYBLOCK=nz(10832),NestCompareTypes=[nz(10833),nz(10834)],import_concaveman=__toESM(require_concaveman(),1),version2=nz(10835),VERSION2=version2,_hasatob="function"==typeof atob,_hasbtoa=typeof btoa===nz(432),_hasBuffer="function"==typeof Buffer,_TD=typeof TextDecoder===nz(432)?new TextDecoder:void 0,_TE=typeof TextEncoder===nz(432)?new TextEncoder:void 0,b64ch=nz(943),b64chs=Array[nz(425)].slice[nz(429)](b64ch),b64tab=(t=>{let e={};return b64chs.forEach(((t,n)=>e[t]=n)),e})(),b64re=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,_fromCC=String[nz(689)].bind(String),_U8Afrom=typeof Uint8Array[nz(666)]===nz(432)?Uint8Array[nz(666)][nz(511)](Uint8Array):(t,e=(t=>t))=>new Uint8Array(Array[nz(425)][nz(497)][nz(429)](t,0)[nz(679)](e)),_mkUriSafe=t=>t[nz(448)](/=/g,"")[nz(448)](/[+\/]/g,(t=>"+"==t?"-":"_")),_tidyB64=t=>t[nz(448)](/[^A-Za-z0-9\+\/]/g,""),btoaPolyfill=t=>{var e=nz;let n,r,i,s,a="";const o=t[e(449)]%3;for(let o=0;o255||(i=t[e(621)](o++))>255||(s=t[e(621)](o++))>255)throw new TypeError("invalid character found");n=r<<16|i<<8|s,a+=b64chs[n>>18&63]+b64chs[n>>12&63]+b64chs[n>>6&63]+b64chs[63&n]}return o?a.slice(0,o-3)+e(10836)[e(4902)](o):a},_btoa=_hasbtoa?t=>btoa(t):_hasBuffer?t=>Buffer[nz(666)](t,nz(4394)).toString(nz(10837)):btoaPolyfill,_fromUint8Array=_hasBuffer?t=>Buffer[nz(666)](t)[nz(526)](nz(10837)):t=>{var e=nz;let n=[];for(let r=0,i=t[e(449)];re?_mkUriSafe(_fromUint8Array(t)):_fromUint8Array(t),cb_utob=t=>{var e=nz;if(t[e(449)]<2)return(n=t[e(621)](0))<128?t:n<2048?_fromCC(192|n>>>6)+_fromCC(128|63&n):_fromCC(224|n>>>12&15)+_fromCC(128|n>>>6&63)+_fromCC(128|63&n);var n=65536+1024*(t[e(621)](0)-55296)+(t[e(621)](1)-56320);return _fromCC(240|n>>>18&7)+_fromCC(128|n>>>12&63)+_fromCC(128|n>>>6&63)+_fromCC(128|63&n)},re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,utob=t=>t[nz(448)](re_utob,cb_utob),_encode=_hasBuffer?t=>Buffer[nz(666)](t,"utf8")[nz(526)](nz(10837)):_TE?t=>_fromUint8Array(_TE.encode(t)):t=>_btoa(utob(t)),encode=(t,e=!1)=>e?_mkUriSafe(_encode(t)):_encode(t),encodeURI2=t=>encode(t,!0),re_btou=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,cb_btou=t=>{var e=nz;switch(t[e(449)]){case 4:var n=((7&t[e(621)](0))<<18|(63&t[e(621)](1))<<12|(63&t[e(621)](2))<<6|63&t[e(621)](3))-65536;return _fromCC(55296+(n>>>10))+_fromCC(56320+(1023&n));case 3:return _fromCC((15&t[e(621)](0))<<12|(63&t.charCodeAt(1))<<6|63&t[e(621)](2));default:return _fromCC((31&t[e(621)](0))<<6|63&t[e(621)](1))}},btou=t=>t[nz(448)](re_btou,cb_btou),atobPolyfill=t=>{var e=nz;if(t=t[e(448)](/\s+/g,""),!b64re[e(467)](t))throw new TypeError(e(10838));t+="=="[e(497)](2-(3&t[e(449)]));let n,r,i,s="";for(let a=0;a>16&255):64===i?_fromCC(n>>16&255,n>>8&255):_fromCC(n>>16&255,n>>8&255,255&n);return s},_atob=_hasatob?t=>atob(_tidyB64(t)):_hasBuffer?t=>Buffer[nz(666)](t,nz(10837))[nz(526)]("binary"):atobPolyfill,_toUint8Array=_hasBuffer?t=>_U8Afrom(Buffer[nz(666)](t,nz(10837))):t=>_U8Afrom(_atob(t),(t=>t[nz(621)](0))),toUint8Array=t=>_toUint8Array(_unURI(t)),_decode=_hasBuffer?t=>Buffer.from(t,nz(10837))[nz(526)](nz(7475)):_TD?t=>_TD[nz(3778)](_toUint8Array(t)):t=>btou(_atob(t)),_unURI=t=>_tidyB64(t[nz(448)](/[-_]/g,(t=>"-"==t?"+":"/"))),decode=t=>_decode(_unURI(t)),isValid=t=>{var e=nz;if("string"!=typeof t)return!1;const n=t.replace(/\s+/g,"")[e(448)](/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/[e(467)](n)||!/[^\s0-9a-zA-Z\-_]/[e(467)](n)},_noEnum=t=>({value:t,enumerable:!1,writable:!0,configurable:!0}),extendString=function(){var t=nz;const e=(e,n)=>Object[t(420)](String[t(425)],e,_noEnum(n));e("fromBase64",(function(){return decode(this)})),e(t(10839),(function(t){return encode(this,t)})),e(t(10840),(function(){return encode(this,!0)})),e(t(10841),(function(){return encode(this,!0)})),e(t(10842),(function(){return toUint8Array(this)}))},extendUint8Array=function(){var t=nz;const e=(e,n)=>Object[t(420)](Uint8Array[t(425)],e,_noEnum(n));e(t(10839),(function(t){return fromUint8Array(this,t)})),e(t(10840),(function(){return fromUint8Array(this,!0)})),e(t(10841),(function(){return fromUint8Array(this,!0)}))},extendBuiltins=()=>{extendString(),extendUint8Array()},gBase64={version:version2,VERSION:VERSION2,atob:_atob,atobPolyfill:atobPolyfill,btoa:_btoa,btoaPolyfill:btoaPolyfill,fromBase64:decode,toBase64:encode,encode:encode,encodeURI:encodeURI2,encodeURL:encodeURI2,utob:utob,btou:btou,decode:decode,isValid:isValid,fromUint8Array:fromUint8Array,toUint8Array:toUint8Array,extendString:extendString,extendUint8Array:extendUint8Array,extendBuiltins:extendBuiltins},polybooljs=__toESM(require_polybooljs(),1),TextGeometry=class extends ExtrudeGeometry{constructor(t,e={}){var n=nz;const r=e[n(904)];if(void 0===r)super();else{const i=r[n(7464)](t,e.size);e.depth=void 0!==e[n(1e3)]?e[n(1e3)]:50,void 0===e[n(3633)]&&(e.bevelThickness=10),void 0===e[n(3634)]&&(e[n(3634)]=8),void 0===e[n(3632)]&&(e.bevelEnabled=!1),super(i,e)}this[n(452)]=n(10843)}};function createHatchPatternShaderMaterial(t,e,n,r){var i=nz;const s={u_cameraZoom:n,u_patternLines:{value:t},u_patternAngle:{value:e},u_color:{value:r}},a="\n uniform mat4 modelMatrix;\n uniform float u_cameraZoom;\n uniform vec3 u_color;\n varying vec3 v_pos;\n\n struct PatternLine {\n vec2 origin;\n vec2 delta;\n float angle;\n float pattern[MAX_PATTERN_SEGMENT_COUNT];\n float patternSum[MAX_PATTERN_SEGMENT_COUNT+1];\n float patternLength;\n };\n\n uniform PatternLine u_patternLines["+t.length+i(10844)+t[i(449)]+i(10845);return new ShaderMaterial({uniforms:s,vertexShader:"\n varying vec3 v_pos;\n\n #include \n void main() {\n //vec4 worldPosition = modelMatrix * vec4(position, 1.0);\n v_pos = position;\n\n #include \n #include \n #include \n }",fragmentShader:a,clipping:!0})}var LinePatternShaders=class{static createLineShaderMaterial(t,e,n,r,i){var s=nz;let a=0;const o=[];for(let e=0;e\n\n void main() {\n vLineDistance = lineDistance;\n\n #include \n #include \n #include \n }",fragmentShader:l,clipping:!0})}},round10_default=(t,e)=>{var n=nz;return void 0===e||0==+e?Math.round(t):(t=+t,e=+e,isNaN(t)||"number"!=typeof e||e%1!=0?NaN:(t=t[n(526)]().split("e"),+((t=(t=Math.round(+(t[0]+"e"+(t[1]?+t[1]-e:-e))))[n(526)]().split("e"))[0]+"e"+(t[1]?+t[1]+e:e))))},bspline_default=(t,e,n,r,i)=>{var s=nz;const a=n[s(449)],o=n[0][s(449)];if(t<0||t>1)throw new Error(s(10850)+t);if(e<1)throw new Error(s(10851));if(e>a-1)throw new Error(s(10852));if(r){if(r[s(449)]!==a+e+1)throw new Error(s(10853))}else{r=[];for(let t=0;t=r[u]&&t<=r[u+1]);u++);const d=[];for(let t=0;tu-e-1+n;i--){f=(t-r[i])/(r[i+e+1-n]-r[i]);for(let t=0;t{var n=nz;t=t.replace(/%%(.)/g,((t,e)=>dxfTextControlCodeSymbolMap[e]||e));const r=null==e?void 0:e.encoding;let i,s=r instanceof TextDecoder?r:void 0,a="";const o=[],c=t=>{var e=f;a&&(o[e(565)](a),a=""),o[e(565)](t)};for(let e=0;e(t=decodeDxfTextUnicodeCodePoints(t),e?decodeDxfTextMbcsCharacterCodes(t,e):t),decodeDxfTextUnicodeCodePoints=t=>t[nz(448)](/\\[uU]\+([0-9a-fA-F]{4})/g,((t,e)=>String[nz(881)](parseInt(e,16)))),decodeDxfTextMbcsCharacterCodes=(t,e)=>{var n=nz;let r=e instanceof TextDecoder?e:new TextDecoder(e);return t.replace(/\\[mM]\+[0|1]([0-9a-fA-F]{2})([0-9a-fA-F]{2})/g,((t,i,s)=>(r=r||new TextDecoder(e))[n(3778)](new Uint8Array([parseInt(i,16),parseInt(s,16)]))))},parseDxfTextContent=(t,e)=>{var n=nz;let r=0,i={text:""};const s=[i],a=(t=decodeDxfTextCharacterCodes(t,null==e?void 0:e[n(1967)]))[n(884)](/%%(\d\d\d|.)/g);for(const e of a){i.text+=t[n(497)](r,e.index);const a=e[1][n(570)](),o=dxfTextControlCodeSymbolMap2[a];o?i[n(3775)]+=o:3===a.length?i.text+=String.fromCodePoint(+a):"k"===a||"o"===a||"u"===a?(i=__spreadProps(__spreadValues({},i),{text:""}),i[a]?delete i[a]:i[a]=1,s[n(565)](i)):i[n(3775)]+=a,r=e[n(677)]+e[0][n(449)]}return i[n(3775)]+=t[n(497)](r),s.filter((t=>t[n(3775)]))},unitScaleToMeter=t=>{var e=nz;return"Unitless"===t?1:t===e(10854)?.0254:t===e(10855)?.3048:t===e(10856)?.001:t===e(10857)?.01:("Meters"===t||console[e(1176)]("[Units] Unsupported unit '"+t+e(10858)),1)},unitScaleConversion=(t,e)=>unitScaleToMeter(t)/unitScaleToMeter(e),import_stream=__toESM(require_stream(),1),AutoCadColorIndex_default=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215],DxfBaseReader=class{constructor(){this[nz(10859)]=0,this.eof=!1}},import_jsbi=__toESM(require_jsbi_umd(),1),BinaryReader2=class{constructor(t,e){var n=nz;this[n(10860)]=e?e===n(899)?n(899):n(10861):"little",this.position=0,this[n(571)]=new DataView(t)}readAsciiString(t){var e=nz;if(this[e(571)][e(702)]=0&&t<=9)return this.readNullTerminatedString();if(t>=10&&t<=59)return this[e(10876)].readFloat64();if(t>=60&&t<=79)return this[e(10876)][e(10868)]();if(t>=90&&t<=99)return this[e(10876)][e(10869)]();if(t>=100&&t<=109)return this.readNullTerminatedString();if(t>=110&&t<=149)return this.reader.readFloat64();if(t>=160&&t<=169)return this[e(10876)].readInt64();if(t>=170&&t<=179)return this[e(10876)][e(10868)]();if(t>=210&&t<=239)return this[e(10876)][e(10871)]();if(t>=270&&t<=289)return this[e(10876)][e(10868)]();if(t>=290&&t<=299)return this[e(10876)][e(10866)]()>0;if(t>=300&&t<=309)return this.readNullTerminatedString();if(t>=310&&t<=319){return buf2hex(this[e(10884)]())}if(t>=320&&t<=369)return this.readNullTerminatedString();if(t>=370&&t<=389)return this.reader[e(10868)]();if(t>=390&&t<=399)return this[e(10885)]();if(t>=400&&t<=409)return this[e(10876)][e(10868)]();if(t>=410&&t<=419)return this.readNullTerminatedString();if(t>=420&&t<=429)return this[e(10876)][e(10869)]();if(t>=430&&t<=439)return this[e(10885)]();if(t>=440&&t<=459)return this[e(10876)][e(10869)]();if(t>=460&&t<=469)return this[e(10876)][e(10871)]();if(t>=470&&t<=481)return this[e(10885)]();if(999===t)throw new Error("The comment group 999, is not used in binary DXF files at byte address!");if(1004===t){return buf2hex(this[e(10884)]())}return t>=1e3&&t<=1009?this[e(10885)]():t>=1010&&t<=1059?this[e(10876)][e(10871)]():t>=1060&&t<=1070?this.reader[e(10868)]():1071===t?this[e(10876)][e(10869)]():void log.warn("[DxfBinReader] Invalid code '"+t+e(10886)+this.reader[e(5545)]())}[nz(10885)](){var t,e=nz;!this[e(10864)]&&(this[e(10864)]=new TextDecoder(e(7539)));let n=0,r=this[e(10876)][e(10866)]();for(;0!==r;)this[e(10887)][n++]=r,r=this.reader[e(10866)]();if(0===n)return"";if(n>MAX_BYTES_COUNT)return log.warn(e(10888)+n+" !"),"";const i=this[e(10887)][e(2442)](0,n),s=i[e(526)]();if(this[e(10875)][s])return this[e(10875)][s];const a=null==(t=this[e(10864)])?void 0:t[e(3778)](i);return this[e(10875)][s]=a,a}[nz(10884)](){var t=nz;const e=this[t(10876)][t(10865)]();return this.reader[t(10863)](e)}};function buf2hex(t){var e=nz;return Array[e(425)].map[e(429)](t,(t=>("00"+t.toString(16))[e(497)](-2)))[e(549)]("")}var DxfTextRender=class extends DxfBaseReader{constructor(t){var e=nz;super(),this[e(571)]=t}[nz(436)](){var t=nz;if(!this[t(10879)]())throw this[t(10880)]?new Error(t(10890)):new Error(t(10889)+this.data[this.pointer]);const e={code:parseInt(this[t(571)][this[t(10859)]])};return this.pointer++,e[t(439)]=parseGroupValue(e.code,this[t(571)][this[t(10859)]][t(772)]()),this[t(10859)]++,0===e[t(973)]&&"EOF"===e.value&&(this.eof=!0),this.lastReadGroup=e,e}[nz(10879)](){var t=nz;return!this[t(10880)]&&!(this[t(10859)]>this[t(571)][t(449)]-2)}[nz(10883)](){return this[nz(10880)]}};function parseGroupValue(t,e){var n=nz;return t>=0&&t<=9?e:t>=10&&t<=59?parseFloat(e):t>=60&&t<=99?parseInt(e):t>=100&&t<=109?e:t>=110&&t<=149?parseFloat(e):t>=160&&t<=179?parseInt(e):t>=210&&t<=239?parseFloat(e):t>=270&&t<=289?parseInt(e):t>=290&&t<=299?parseBoolean(e):t>=300&&t<=369?e:t>=370&&t<=389?parseInt(e):t>=390&&t<=399?e:t>=400&&t<=409?parseInt(e):t>=410&&t<=419?e:t>=420&&t<=429?parseInt(e):t>=430&&t<=439?e:t>=440&&t<=459?parseInt(e):t>=460&&t<=469?parseFloat(e):t>=470&&t<=481||999===t||t>=1e3&&t<=1009?e:t>=1010&&t<=1059?parseFloat(e):t>=1060&&t<=1071?parseInt(e):(log[n(1175)]("WARNING: Group code does not have a defined type: %j",{code:t,value:e}),e)}function parseBoolean(t){if("0"===t)return!1;if("1"===t)return!0;throw TypeError("String '"+t+nz(10891))}var import_lodash5=__toESM(require_lodash(),1),XDATA_KEY_ORIGINAL_HANDLE="OriginalHandle",XDATA_KEY_ORIGINAL_TYPE=nz(10892),XDATA_KEY_OUTLINES=nz(10893),originalTypes=[nz(10894),nz(10895),nz(10833),nz(10896)];function getAcadColor(t){return AutoCadColorIndex_default[t]}function parsePoint(t){var e=nz;const n={};let r=t[e(10882)],i=r[e(973)];if(n.x=r[e(439)],i+=10,r=t[e(436)](),r[e(973)]!=i)throw new Error(e(10897)+i+e(10898)+r.code);return n.y=r[e(439)],i+=10,r=t[e(436)](),r.code!=i||(n.z=r[e(439)],t.next()),n}function parseMatrix(t,e){var n=nz;let r=t[n(10882)];const i=[];for(let s=0;s<16;s++){if(r.code!==e)throw new Error(n(10899)+e+n(10898)+r[n(973)]);i[n(565)](r.value),r=t[n(436)]()}return i}function checkCommonEntityProperties(t,e){var n=nz;switch(e.code){case 0:t[n(452)]=e[n(439)];break;case 5:t[n(4969)]=e[n(439)];break;case 6:t[n(10900)]=e[n(439)][n(736)]();break;case 8:t.layer=e.value;break;case 48:t.lineTypeScale=e[n(439)],t.lineTypeScale<=0&&(t[n(10901)]=1);break;case 60:t.visible=0===e[n(439)];break;case 62:!t[n(10902)]&&(t[n(10903)]=e[n(439)],t.colorIndex<0&&log.warn("[DxfParser] a negative value of colorIndex indicates that the layer is turned off"),t[n(2231)]=getAcadColor(Math.abs(e[n(439)])));break;case 67:t[n(10904)]=0!==e[n(439)];break;case 100:case 1001:break;case 330:t[n(10905)]=e.value;break;case 347:t[n(10906)]=e[n(439)];break;case 370:t[n(10907)]=e[n(439)];break;case 410:t[n(10908)]=e[n(439)];break;case 420:t[n(10902)]=!0,t[n(2231)]=e.value;break;case 1e3:if(e.value&&e[n(439)].includes(XDATA_KEY_ORIGINAL_HANDLE)){const r=e[n(439)][n(465)](":")[n(679)]((t=>t[n(772)]()));!t.extendedData&&(t[n(10909)]={}),t[n(10909)][n(10910)]=r[1]}if(t[n(10909)]&&t[n(10909)][n(10911)])try{t.extendedData[n(10911)]=JSON[n(1087)](e[n(439)]||"[]")}catch(e){t[n(10909)][n(10911)]=void 0}if(e.value&&e[n(439)][n(667)](XDATA_KEY_OUTLINES)&&(!t[n(10909)]&&(t[n(10909)]={}),t.extendedData[n(10911)]=[]),e[n(439)]&&e.value[n(667)](XDATA_KEY_ORIGINAL_TYPE)){const r=e.value[n(465)](":").map((t=>t[n(772)]()));!t[n(10909)]&&(t[n(10909)]={}),t[n(10909)][n(10912)]=r[1]}break;default:return!1}return!0}function checkCommonObjectProperties(t,e){var n=nz;switch(e.code){case 0:t.type=e[n(439)];break;case 5:t.handle=e[n(439)];break;case 330:t[n(10905)]=e[n(439)];break;case 1e3:case 1001:break;default:return!1}return!0}var ThreeDface=class{constructor(){this[nz(10913)]="3DFACE"}[nz(10914)](t,e){var n=nz;const r={type:e.value,vertices:[]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 70:if(0!==e[n(439)]){const t=Math.log2(e[n(439)])-1;r.vertices[n(690)](t,1)}e=t[n(436)]();break;case 10:r[n(3614)]=parse3dFaceVertices(t,e),e=t[n(10882)];break;case 101:for(;0!=e.code;)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}};function parse3dFaceVertices(t,e){var n=nz;const r=[];let i=!1,s=!1;for(let a=0;a<=4;a++){const a={};for(;!t[n(10883)]()&&0!==e[n(973)]&&!s;){switch(e[n(973)]){case 10:case 11:case 12:case 13:if(i){s=!0;continue}a.x=e[n(439)],i=!0;break;case 20:case 21:case 22:case 23:a.y=e.value;break;case 30:case 31:case 32:case 33:a.z=e.value;break;default:return r}e=t[n(436)]()}!(0,import_lodash5[n(1213)])(a)&&r[n(565)](a),i=!1,s=!1}return r}var Arc=class{constructor(){var t=nz;this[t(10913)]=t(10915)}[nz(10914)](t,e){var n=nz;const r={type:e.value};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e.code){case 10:r[n(1960)]=parsePoint(t),e=t[n(10882)];break;case 40:r.radius=e.value,e=t[n(436)]();break;case 50:r.startAngle=Math.PI/180*e[n(439)],e=t[n(436)]();break;case 51:r[n(10916)]=Math.PI/180*e[n(439)],r[n(10917)]=r[n(10916)]-r[n(10918)],e=t.next();break;case 210:r[n(10919)]=e.value,e=t[n(436)]();break;case 220:r[n(10920)]=e[n(439)],e=t[n(436)]();break;case 230:r[n(10921)]=e.value,e=t.next();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t.next()}return r}},Attdef=class{constructor(){var t=nz;this[t(10913)]=t(10922)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],xScale:1,textStyle:"STANDARD"};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 1:r[n(3775)]=e[n(439)],e=t[n(436)]();break;case 2:r[n(612)]=e[n(439)],e=t[n(436)]();break;case 3:r[n(7540)]=e[n(439)],e=t.next();break;case 7:r[n(10923)]=e[n(439)],e=t[n(436)]();break;case 10:r[n(10924)]=parsePoint(t),e=t[n(10882)];break;case 11:r[n(10925)]=parsePoint(t),e=t[n(10882)];break;case 39:r.thickness=e[n(439)],e=t[n(436)]();break;case 40:r[n(10926)]=e[n(439)],e=t[n(436)]();break;case 41:r[n(10927)]=e[n(439)],e=t[n(436)]();break;case 50:r[n(1961)]=e.value,e=t[n(436)]();break;case 51:r.obliqueAngle=e[n(439)],e=t[n(436)]();break;case 70:r[n(10928)]=!!(1&e[n(439)]),r.constant=!!(2&e[n(439)]),r[n(10929)]=!!(4&e[n(439)]),r[n(6665)]=!!(8&e[n(439)]),e=t.next();break;case 71:r[n(10930)]=!!(2&e[n(439)]),r[n(10931)]=!!(4&e[n(439)]),e=t[n(436)]();break;case 72:r[n(10932)]=e[n(439)],e=t[n(436)]();break;case 73:r[n(10933)]=e[n(439)],e=t[n(436)]();break;case 74:r.verticalJustification=e[n(439)],e=t[n(436)]();break;case 100:e=t[n(436)]();break;case 210:r[n(10919)]=e[n(439)],e=t[n(436)]();break;case 220:r[n(10920)]=e.value,e=t[n(436)]();break;case 230:r[n(10921)]=e[n(439)],e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Attrib=class{constructor(){var t=nz;this.ForEntityName=t(10934)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],xScale:1,textStyle:n(9083)};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 1:r[n(3775)]=e[n(439)],e=t.next();break;case 2:r[n(612)]=e[n(439)],e=t[n(436)]();break;case 3:r[n(7540)]=e[n(439)],e=t[n(436)]();break;case 7:r[n(10923)]=e.value,e=t[n(436)]();break;case 10:r[n(10924)]=parsePoint(t),e=t[n(10882)];break;case 11:r[n(10925)]=parsePoint(t),e=t[n(10882)];break;case 39:r[n(2280)]=e[n(439)],e=t[n(436)]();break;case 40:r.textHeight=e.value,e=t[n(436)]();break;case 41:r[n(10927)]=e[n(439)],e=t[n(436)]();break;case 50:r[n(1961)]=e[n(439)],e=t[n(436)]();break;case 51:r.obliqueAngle=e[n(439)],e=t.next();break;case 70:r[n(10928)]=!!(1&e[n(439)]),r[n(2074)]=!!(2&e[n(439)]),r[n(10929)]=!!(4&e[n(439)]),r[n(6665)]=!!(8&e.value),e=t[n(436)]();break;case 71:r[n(10930)]=!!(2&e[n(439)]),r[n(10931)]=!!(4&e[n(439)]),e=t.next();break;case 72:r[n(10932)]=e[n(439)],e=t[n(436)]();break;case 73:r.fieldLength=e[n(439)],e=t[n(436)]();break;case 74:r[n(10935)]=e.value,e=t[n(436)]();break;case 100:e=t[n(436)]();break;case 210:r[n(10919)]=e[n(439)],e=t[n(436)]();break;case 220:r.extrusionDirectionY=e[n(439)],e=t.next();break;case 230:r[n(10921)]=e[n(439)],e=t[n(436)]();break;case 101:for(;0!=e.code;)e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Circle=class{constructor(){var t=nz;this[t(10913)]=t(10936)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)]};for(e=t.next();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:r[n(1960)]=parsePoint(t),e=t[n(10882)];break;case 40:r[n(2041)]=e[n(439)],e=t[n(436)]();break;case 50:r[n(10918)]=Math.PI/180*e[n(439)],e=t.next();break;case 51:const i=Math.PI/180*e[n(439)];i=0&&r[n(565)]({angle:t,origin:s,delta:a,dashPattern:c})}return r}function parseGradientColors(t,e){var n=nz;const r=[];let i=e.next();for(;r.length0&&(r.colorIndex=e[n(439)],r[n(2231)]=getAcadColor(Math[n(694)](e[n(439)])))))}e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}};function getDimStylePropertyName(t){var e=nz;switch(t){case 40:return e(10989);case 41:return e(10988);case 42:return"DIMEXO";case 44:return e(10991);case 75:return e(10992);case 76:return e(10993);case 77:return e(10994);case 140:return"DIMTXT";case 144:return e(10995);case 147:return e(10996);case 176:return e(10990);case 178:return e(10997);case 271:return"DIMDEC";case 341:return"DIMLDRBLK";default:return null}}var Line2=class{constructor(){var t=nz;this.ForEntityName=t(10998)}[nz(10914)](t,e){var n=nz;const r={type:e.value,vertices:[]};for(e=t[n(436)]();!t.isEOF()&&0!==e[n(973)];)switch(e[n(973)]){case 10:r[n(3614)][n(691)](parsePoint(t)),e=t[n(10882)];break;case 11:r[n(3614)][n(565)](parsePoint(t)),e=t.lastReadGroup;break;case 210:r[n(10949)]=parsePoint(t),e=t[n(10882)];break;case 100:e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Lwpolyline=class{constructor(){this[nz(10913)]="LWPOLYLINE"}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],vertices:[]};let i=0;for(e=t[n(436)]();!t.isEOF()&&0!==e[n(973)];)switch(e[n(973)]){case 38:r.elevation=e[n(439)],e=t[n(436)]();break;case 39:r[n(2280)]=e.value,e=t.next();break;case 70:r[n(3639)]=1==(1&e[n(439)]),r[n(10999)]=128==(128&e[n(439)]),e=t[n(436)]();break;case 90:i=e[n(439)],e=t[n(436)]();break;case 10:r[n(3614)][n(565)](...parseLWPolylineVertices(i,t)),e=t[n(10882)];break;case 43:0!==e[n(439)]&&(r[n(11e3)]=e[n(439)]),e=t[n(436)]();break;case 210:r.extrusionDirectionX=e[n(439)],e=t[n(436)]();break;case 220:r.extrusionDirectionY=e.value,e=t.next();break;case 230:r[n(10921)]=e[n(439)],e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t.next()}return r}};function parseLWPolylineVertices(t,e){var n=nz;if(!t||t<=0)throw Error(n(11001));const r=[];let i=!1,s=!1,a=e[n(10882)];const o={};for(;!e[n(10883)]()&&0!==a[n(973)]&&!s;)switch(a[n(973)]){case 10:if(i){s=!0;continue}o.x=a[n(439)],i=!0,a=e[n(436)]();break;case 20:o.y=a.value,a=e[n(436)]();break;case 30:o.z=a[n(439)],a=e[n(436)]();break;case 40:o[n(11002)]=a[n(439)],a=e[n(436)]();break;case 41:o[n(11003)]=a[n(439)],a=e[n(436)]();break;case 42:0!=a.value&&(o[n(10966)]=a[n(439)]),a=e[n(436)]();break;default:return i&&r[n(565)](o),r}return r[n(565)](o),i=!1,s=!1,r}var MLeader=class{constructor(){var t=nz;this.ForEntityName=t(11004)}[nz(10914)](t,e){var n=nz;const r={type:e.value};function i(){for(var i=n;!t[i(10883)]();)switch(e[i(973)]){case 40:r[i(11005)][i(11032)]=e[i(439)],e=t[i(436)]();break;case 10:r[i(11005)][i(11033)]=parsePoint(t),e=t.lastReadGroup;break;case 145:r.contextData[i(11034)]=e[i(439)],e=t[i(436)]();break;case 290:r[i(11005)][i(11035)]=e[i(439)],e=t.next();break;case 304:r[i(11005)][i(11036)]=e[i(439)],e=t.next();break;case 11:r[i(11005)].textNormalDirection=parsePoint(t),e=t.lastReadGroup;break;case 12:r[i(11005)][i(11037)]=parsePoint(t),e=t[i(10882)];break;case 13:r[i(11005)][i(11038)]=parsePoint(t),e=t.lastReadGroup;break;case 140:r.contextData[i(11013)]=e[i(439)],e=t[i(436)]();break;case 41:r.contextData[i(10926)]=e[i(439)],e=t.next();break;case 42:r[i(11005)].textRotation=e.value,e=t.next();break;case 43:r.contextData[i(10982)]=e.value,e=t[i(436)]();break;case 44:default:e=t[i(436)]();break;case 45:r[i(11005)].textLineSpacingFactor=e.value,e=t[i(436)]();break;case 90:r[i(11005)][i(11019)]=e[i(439)],e=t[i(436)]();break;case 170:r.contextData[i(11039)]=e[i(439)],e=t[i(436)]();break;case 171:r[i(11005)][i(11040)]=e[i(439)],e=t[i(436)]();break;case 172:r.contextData[i(11041)]=e[i(439)],e=t[i(436)]();break;case 141:r[i(11005)][i(11042)]=e[i(439)],e=t[i(436)]();break;case 92:r.contextData[i(11043)]=e.value,e=t[i(436)]();break;case 291:r[i(11005)][i(11044)]=e[i(439)],e=t.next();break;case 292:r[i(11005)][i(11045)]=e[i(439)],e=t[i(436)]();break;case 293:r.contextData.textUseAutoHeight=e[i(439)],e=t[i(436)]();break;case 173:r.contextData[i(11046)]=e[i(439)],e=t.next();break;case 142:r[i(11005)][i(11047)]=e[i(439)],e=t[i(436)]();break;case 143:r[i(11005)][i(11048)]=e[i(439)],e=t[i(436)]();break;case 144:r[i(11005)][i(11049)]=e.value,e=t.next();break;case 295:r[i(11005)][i(11050)]=e[i(439)],e=t[i(436)]();break;case 296:r[i(11005)][i(11051)]=e[i(439)],e=t[i(436)]();break;case 341:r[i(11005)].blockContentId=e[i(439)],e=t[i(436)]();break;case 14:r[i(11005)][i(11052)]=parsePoint(t),e=t.lastReadGroup;break;case 15:r[i(11005)][i(11053)]=parsePoint(t),e=t[i(10882)];break;case 16:r[i(11005)][i(11020)]=e[i(439)],e=t[i(436)]();break;case 46:r[i(11005)][i(11021)]=e[i(439)],e=t[i(436)]();break;case 93:r.contextData.blockContentColor=e.value,e=t[i(436)]();break;case 47:r[i(11005)].blockTransformationMatrix=parseMatrix(t,47),e=t[i(10882)];break;case 110:r[i(11005)][i(11054)]=parsePoint(t),e=t[i(10882)];break;case 111:r[i(11005)].planeXAxisDirection=parsePoint(t),e=t[i(10882)];break;case 112:r.contextData[i(11055)]=parsePoint(t),e=t.lastReadGroup;break;case 297:r.contextData[i(11056)]=e[i(439)],e=t[i(436)]();break;case 301:return;case 302:s(),e=t[i(10882)]}}function s(){var i=n;const s={leaderLines:[]};for(r[i(11005)][i(11057)][i(565)](s);!t[i(10883)]();)switch(e[i(973)]){case 290:s[i(11058)]=e.value,e=t[i(436)]();break;case 291:s[i(11059)]=e[i(439)],e=t.next();break;case 10:s.lastLeaderLinePoint=parsePoint(t),e=t[i(10882)];break;case 11:s.doglegVector=parsePoint(t),e=t[i(10882)];break;case 90:s[i(11060)]=e[i(439)],e=t[i(436)]();break;case 40:s[i(11010)]=e[i(439)],e=t[i(436)]();break;case 303:return;case 304:a(),e=t.lastReadGroup;break;default:e=t[i(436)]()}}function a(){var i=n;const s={vertices:[[]]};for(r[i(11005)][i(11057)][r[i(11005)].leaders.length-1][i(11061)][i(565)](s);!t[i(10883)]();)switch(e[i(973)]){case 10:s[i(3614)][0].push(parsePoint(t)),e=t[i(10882)];break;case 305:return;default:e=t.next()}}return r[n(11005)]={leaders:[]},e=t[n(436)](),function(){for(var s=n;!t.isEOF();)switch(e[s(973)]){case 0:return;case 340:r[s(11006)]=e.value,e=t.next();break;case 170:r.leaderLineType=e[s(439)],e=t[s(436)]();break;case 91:r[s(11007)]=e.value,e=t[s(436)]();break;case 341:r[s(11008)]=e[s(439)],e=t.next();break;case 171:r[s(11009)]=e[s(439)],e=t[s(436)]();break;case 41:r[s(11010)]=e[s(439)],e=t[s(436)]();break;case 290:r.enableLanding=e.value,e=t[s(436)]();break;case 291:r[s(11011)]=e[s(439)],e=t.next();break;case 342:r[s(11012)]=e[s(439)],e=t.next();break;case 42:r[s(11013)]=e[s(439)],e=t[s(436)]();break;case 172:r[s(11014)]=e[s(439)],e=t[s(436)]();break;case 173:r[s(11015)]=e[s(439)],e=t[s(436)]();break;case 95:r.textLeftAttachmentType=e[s(439)],e=t[s(436)]();break;case 174:r[s(11016)]=e[s(439)],e=t[s(436)]();break;case 175:r[s(11017)]=e.value,e=t.next();break;case 343:r[s(11018)]=e[s(439)],e=t[s(436)]();break;case 92:r[s(11019)]=e.value,e=t.next();break;case 292:r.enableFrameText=e[s(439)],e=t[s(436)]();break;case 344:r.blockContentId=e[s(439)],e=t[s(436)]();break;case 93:r.blockContentColor=e[s(439)],e=t.next();break;case 10:r[s(11020)]=parsePoint(t),e=t.lastReadGroup;break;case 43:r[s(11021)]=e[s(439)],e=t[s(436)]();break;case 176:r[s(11022)]=e[s(439)],e=t.next();break;case 293:r[s(11023)]=e[s(439)],e=t.next();break;case 94:r[s(11024)]=e[s(439)],e=t[s(436)]();break;case 177:r.blockAttributeIndex=e[s(439)],e=t[s(436)]();break;case 44:r.blockAttributeWidth=e.value,e=t[s(436)]();break;case 302:r[s(11025)]=e.value,e=t[s(436)]();break;case 294:r[s(11026)]=e[s(439)],e=t[s(436)]();break;case 178:r[s(11027)]=e.value,e=t[s(436)]();break;case 179:r[s(11028)]=e.value,e=t[s(436)]();break;case 271:r[s(11029)]=e.value,e=t[s(436)]();break;case 272:r[s(11030)]=e[s(439)],e=t.next();break;case 273:r[s(11031)]=e.value,e=t.next();break;case 300:i(),e=t[s(10882)];break;case 101:for(;0!=e[s(973)];)e=t[s(436)]();break;default:checkCommonEntityProperties(r,e),e=t[s(436)]()}}(),r}},Mtext=class{constructor(){var t=nz;this.ForEntityName=t(11062)}parseEntity(t,e){var n=nz;const r={type:e[n(439)]};for(e=t.next();!t.isEOF()&&0!==e[n(973)];)switch(e[n(973)]){case 3:r.text?r.text+=e[n(439)]:r[n(3775)]=e.value,e=t[n(436)]();break;case 1:r[n(3775)]?r[n(3775)]+=e[n(439)]:r[n(3775)]=e[n(439)],e=t[n(436)]();break;case 10:r[n(2065)]=parsePoint(t),e=t.lastReadGroup;break;case 7:r[n(10923)]=e[n(439)],e=t[n(436)]();break;case 44:r[n(11063)]=e[n(439)],e=t[n(436)]();break;case 11:r.directionVector=parsePoint(t),e=t[n(10882)];break;case 40:r[n(1e3)]=e[n(439)],e=t[n(436)]();break;case 41:r[n(999)]=e[n(439)],e=t[n(436)]();break;case 50:r[n(1961)]=e[n(439)],e=t.next();break;case 71:r[n(10944)]=e[n(439)],e=t[n(436)]();break;case 72:r.drawingDirection=e[n(439)],e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Ole=class{constructor(){this.ForEntityName="OLE2FRAME"}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],binaryData:""};for(e=t.next();e.value!==n(11064)&&0!==e[n(973)];)switch(e[n(973)]){case 3:r[n(11065)]=e.value,e=t[n(436)]();break;case 70:r[n(521)]=e[n(439)],e=t[n(436)]();break;case 10:r.leftUpX=e[n(439)],e=t[n(436)]();break;case 20:r[n(11066)]=e[n(439)],e=t[n(436)]();break;case 30:r.leftUpZ=e.value,e=t[n(436)]();break;case 11:r[n(11067)]=e[n(439)],e=t[n(436)]();break;case 21:r[n(11068)]=e[n(439)],e=t[n(436)]();break;case 31:r[n(11069)]=e[n(439)],e=t.next();break;case 90:r.lengthOfBinaryData=e[n(439)],e=t[n(436)]();break;case 310:r[n(11070)]+=e.value,e=t.next();break;case 101:for(;0!=e.code;)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Point=class{constructor(){var t=nz;this[t(10913)]=t(11071)}[nz(10914)](t,e){var n=nz;const r={type:e.value};for(e=t.next();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:r[n(2065)]=parsePoint(t),e=t[n(10882)];break;case 39:r[n(2280)]=e[n(439)],e=t.next();break;case 210:r[n(10949)]=parsePoint(t),e=t[n(10882)];break;case 100:e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Vertex2=class{constructor(){var t=nz;this.ForEntityName=t(7035)}[nz(10914)](t,e){var n=nz,r={type:e.value};for(e=t[n(436)]();!t[n(10883)]()&&0!==e.code;)switch(e[n(973)]){case 10:r.x=e.value,e=t[n(436)]();break;case 20:r.y=e[n(439)],e=t[n(436)]();break;case 30:r.z=e[n(439)],e=t[n(436)]();break;case 40:case 50:e=t[n(436)]();break;case 41:e=t.next();break;case 42:0!=e[n(439)]&&(r[n(10966)]=e[n(439)]),e=t.next();break;case 70:r.curveFittingVertex=0!=(1&e.value),r[n(11072)]=0!=(2&e[n(439)]),r[n(11073)]=0!=(8&e.value),r[n(11074)]=0!=(16&e[n(439)]),r[n(11075)]=0!=(32&e[n(439)]),r[n(11076)]=0!=(64&e.value),r[n(11077)]=0!=(128&e.value),e=t.next();break;case 71:r[n(11078)]=e[n(439)],e=t[n(436)]();break;case 72:r[n(11079)]=e[n(439)],e=t[n(436)]();break;case 73:r[n(11080)]=e.value,e=t.next();break;case 74:r.faceD=e[n(439)],e=t.next();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t.next()}return r}},Polyline=class{constructor(){this[nz(10913)]="POLYLINE"}parseEntity(t,e){var n=nz,r={type:e[n(439)],vertices:[]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:case 30:case 41:case 71:case 74:e=t[n(436)]();break;case 20:case 40:case 72:case 73:case 75:e=t.next();break;case 39:e=t[n(436)](),r.thickness=e[n(439)];break;case 70:r[n(3639)]=0!=(1&e[n(439)]),r[n(11081)]=0!=(2&e[n(439)]),r[n(11082)]=0!=(4&e[n(439)]),r[n(11083)]=0!=(8&e.value),r[n(11084)]=0!=(16&e[n(439)]),r.is3dPolygonMeshClosed=0!=(32&e[n(439)]),r.isPolyfaceMesh=0!=(64&e.value),r[n(10999)]=0!=(128&e.value),e=t[n(436)]();break;case 210:r[n(10949)]=parsePoint(t),e=t[n(10882)];break;case 101:for(;0!=e.code;)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t.next()}return r.vertices=parsePolylineVertices(t,e),r}};function parsePolylineVertices(t,e){var n=nz;const r=new Vertex2,i=[];for(;!t[n(10883)]();)if(0===e[n(973)])if(e[n(439)]===n(7035))i[n(565)](r[n(10914)](t,e)),e=t[n(10882)];else if(e[n(439)]===n(11085)){parseSeqEnd(t,e);break}return i}function parseSeqEnd(t,e){var n=nz;const r={type:e.value};for(e=t[n(436)]();!t.isEOF()&&0!==e[n(973)];)if(101===e[n(973)])for(;0!=e[n(973)];)e=t[n(436)]();else checkCommonEntityProperties(r,e),e=t[n(436)]();return r}var Ray2=class{constructor(){var t=nz;this[t(10913)]=t(11086)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],vertices:[]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e.code){case 10:r[n(3614)][n(691)](parsePoint(t)),e=t[n(10882)];break;case 11:r[n(11087)]=parsePoint(t),e=t[n(10882)];break;case 100:e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Region=class{constructor(){var t=nz;this[t(10913)]=t(10895)}parseEntity(t,e){var n=nz;const r={type:e[n(439)]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 70:r[n(11088)]=e.value,e=t[n(436)]();break;case 1:r[n(11089)]=e.value,e=t.next();break;case 3:r[n(11089)]+=e.value,e=t[n(436)]();break;case 101:for(;0!=e.code;)e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Seqend=class{constructor(){this.ForEntityName="SEQEND"}[nz(10914)](t,e){var n=nz;const r={type:e.value};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)if(-2===e[n(973)]);else checkCommonEntityProperties(r,e),e=t[n(436)]();return r}},Solid=class{constructor(){var t=nz;this[t(10913)]=t(11090)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],points:[]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:r.points[0]=parsePoint(t),e=t[n(10882)];break;case 11:r[n(2985)][1]=parsePoint(t),e=t.lastReadGroup;break;case 12:r.points[2]=parsePoint(t),e=t[n(10882)];break;case 13:r[n(2985)][3]=parsePoint(t),e=t[n(10882)];break;case 210:r[n(10949)]=parsePoint(t),e=t[n(10882)];break;case 101:for(;0!=e[n(973)];)e=t.next();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Spline=class{constructor(){var t=nz;this[t(10913)]=t(11091)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:!r[n(7195)]&&(r[n(7195)]=[]),r.controlPoints[n(565)](parsePoint(t)),e=t[n(10882)];break;case 11:!r[n(11092)]&&(r[n(11092)]=[]),r[n(11092)][n(565)](parsePoint(t)),e=t[n(10882)];break;case 12:r[n(11093)]=parsePoint(t),e=t[n(10882)];break;case 13:r[n(11094)]=parsePoint(t),e=t[n(10882)];break;case 40:!r[n(10970)]&&(r[n(10970)]=[]),r.knotValues[n(565)](e[n(439)]),e=t[n(436)]();break;case 70:0!=(1&e[n(439)])&&(r.closed=!0),0!=(2&e[n(439)])&&(r.periodic=!0),0!=(4&e[n(439)])&&(r[n(11095)]=!0),0!=(8&e[n(439)])&&(r.planar=!0),0!=(16&e[n(439)])&&(r[n(11096)]=!0,r.linear=!0),e=t[n(436)]();break;case 71:r[n(11097)]=e.value,e=t.next();break;case 72:r.numberOfKnots=e[n(439)],e=t[n(436)]();break;case 73:r[n(11098)]=e[n(439)],e=t.next();break;case 74:r.numberOfFitPoints=e[n(439)],e=t[n(436)]();break;case 210:r[n(11099)]=parsePoint(t),e=t[n(10882)];break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Text=class{constructor(){var t=nz;this[t(10913)]=t(11100)}parseEntity(t,e){var n=nz;const r={type:e[n(439)]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 10:r.startPoint=parsePoint(t),e=t.lastReadGroup;break;case 11:r[n(10925)]=parsePoint(t),e=t[n(10882)];break;case 40:r[n(10926)]=e.value,e=t[n(436)]();break;case 41:r.xScale=e.value,e=t[n(436)]();break;case 50:r[n(1961)]=e[n(439)],e=t.next();break;case 1:r[n(3775)]=e[n(439)],e=t[n(436)]();break;case 72:r.halign=e[n(439)],e=t.next();break;case 73:r[n(11101)]=e[n(439)],e=t[n(436)]();break;case 7:r.textStyle=e[n(439)],e=t[n(436)]();break;case 71:r.mirrored=e[n(439)],e=t.next();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Viewport=class{constructor(){var t=nz;this.ForEntityName=t(11102)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)]};for(e=t.next();!t.isEOF()&&0!==e[n(973)];)switch(e[n(973)]){case 68:r[n(11103)]=e[n(439)],e=t[n(436)]();break;case 40:r[n(11104)]=e[n(439)],e=t[n(436)]();break;case 41:r.height_paperSpace=e.value,e=t[n(436)]();break;case 69:r[n(11105)]=e[n(439)],e=t[n(436)]();break;case 10:r[n(11106)]=parsePoint(t),e=t[n(10882)];break;case 12:r[n(11107)]=parsePoint(t),e=t[n(10882)];break;case 13:r[n(11108)]=parsePoint(t),e=t[n(10882)];break;case 14:r[n(11109)]=parsePoint(t),e=t.lastReadGroup;break;case 15:r[n(11110)]=parsePoint(t),e=t[n(10882)];break;case 16:r[n(11111)]=parsePoint(t),e=t.lastReadGroup;break;case 17:r[n(11112)]=parsePoint(t),e=t[n(10882)];break;case 42:r[n(11113)]=e[n(439)],e=t[n(436)]();break;case 43:r[n(11114)]=e[n(439)],e=t[n(436)]();break;case 44:r.backClippingPlaneZ=e[n(439)],e=t[n(436)]();break;case 45:r[n(11115)]=e.value,e=t[n(436)]();break;case 50:r[n(11116)]=e.value,e=t[n(436)]();break;case 51:r.viewTwistAngle=e[n(439)],e=t[n(436)]();break;case 72:r[n(11117)]=e[n(439)],e=t.next();break;case 331:r[n(11118)]=r[n(11118)]||[],r[n(11118)][n(565)](e[n(439)]),e=t[n(436)]();break;case 90:r.viewportStatusFlags=e[n(439)],e=t[n(436)]();break;case 340:r[n(11119)]=e.value,e=t[n(436)]();break;case 1:r[n(11120)]=e[n(439)],e=t[n(436)]();break;case 281:r[n(11121)]=e[n(439)],e=t[n(436)]();break;case 71:r.viewportFlag_ucs=e[n(439)],e=t[n(436)]();break;case 74:r[n(11122)]=e[n(439)],e=t[n(436)]();break;case 110:r[n(11123)]=parsePoint(t),e=t[n(10882)];break;case 111:r.ucsXAxis=parsePoint(t),e=t[n(10882)];break;case 112:r.ucsYAxis=parsePoint(t),e=t.lastReadGroup;break;case 345:r.ucsTableRecordHandle=e.value,e=t[n(436)]();break;case 346:r.baseUcsTableRecordHandle=e[n(439)],e=t[n(436)]();break;case 79:r[n(11124)]=e[n(439)],e=t[n(436)]();break;case 146:r[n(11125)]=e[n(439)],e=t[n(436)]();break;case 170:r[n(11126)]=e[n(439)],e=t.next();break;case 61:r[n(11127)]=e.value,e=t.next();break;case 292:r[n(11128)]=e[n(439)],e=t[n(436)]();break;case 282:r[n(11129)]=e[n(439)],e=t[n(436)]();break;case 141:r.viewBrightness=e.value,e=t[n(436)]();break;case 142:r.viewContrast=e[n(439)],e=t[n(436)]();break;case 101:for(;0!=e.code;)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},XLine=class{constructor(){var t=nz;this[t(10913)]=t(11130)}[nz(10914)](t,e){var n=nz;const r={type:e[n(439)],vertices:[]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e.code;)switch(e[n(973)]){case 10:r[n(3614)].unshift(parsePoint(t)),e=t.lastReadGroup;break;case 11:r.directionVector=parsePoint(t),e=t.lastReadGroup;break;case 100:e=t[n(436)]();break;case 101:for(;0!=e[n(973)];)e=t[n(436)]();break;default:checkCommonEntityProperties(r,e),e=t[n(436)]()}return r}},Dictionary=class{constructor(){this[nz(11131)]="DICTIONARY"}[nz(1066)](t,e){var n=nz;const r={type:e.value},i=[],s=[];for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e.code){case 280:r[n(11132)]=1===e[n(439)],e=t[n(436)]();break;case 281:r[n(11133)]=e[n(439)],e=t[n(436)]();break;case 3:i.push(e[n(439)]),e=t[n(436)]();break;case 350:s[n(565)](e.value),e=t.next();break;case 360:s[n(565)](e.value),e=t[n(436)]();break;case 100:e=t.next();break;case 102:e=t[n(436)]();break;default:checkCommonObjectProperties(r,e),e=t[n(436)]()}if(i[n(449)]!==s[n(449)])throw new Error(n(11134));return r[n(674)]={},i[n(604)](((t,e)=>{r[n(674)][s[e]]=t})),r}},Layout=class{constructor(){var t=nz;this[t(11131)]=t(11135)}[nz(1066)](t,e){var n=nz;const r={type:e[n(439)]};for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 100:e=t[n(436)]();break;case 1:r.layoutName=e[n(439)],e=t[n(436)]();break;case 70:r[n(7179)]=e[n(439)],e=t[n(436)]();break;case 71:r[n(11136)]=e[n(439)],e=t[n(436)]();break;case 76:r[n(11124)]=e[n(439)],e=t[n(436)]();break;case 10:r[n(11137)]=parsePoint(t),e=t[n(10882)];break;case 11:r[n(11138)]=parsePoint(t),e=t[n(10882)];break;case 12:r[n(11139)]=parsePoint(t),e=t[n(10882)];break;case 13:r[n(1103)]=parsePoint(t),e=t[n(10882)];break;case 14:r.minExtent=parsePoint(t),e=t[n(10882)];break;case 15:r.maxExtent=parsePoint(t),e=t[n(10882)];break;case 16:r[n(11140)]=parsePoint(t),e=t[n(10882)];break;case 17:r[n(11141)]=parsePoint(t),e=t[n(10882)];break;case 146:r[n(11125)]=e[n(439)],e=t[n(436)]();break;case 331:r[n(11142)]=e[n(439)],e=t[n(436)]();break;default:checkCommonObjectProperties(r,e),e=t[n(436)]()}return r[n(11143)]=r[n(10905)],r}},SortEntsTable=class{constructor(){var t=nz;this[t(11131)]=t(11144)}[nz(1066)](t,e){var n=nz;const r={type:e[n(439)]};let i=!1;r[n(11145)]={},r.sortEntsObject[n(11146)]=[];let s=[];for(e=t[n(436)]();!t[n(10883)]()&&0!==e[n(973)];)switch(e[n(973)]){case 5:i?(s[n(565)](e[n(439)]),r[n(11145)][n(11146)][n(565)](s),s=[]):r[n(4969)]=e.value,e=t[n(436)]();break;case 100:e=t.next(),i=!0;break;case 102:e=t[n(436)]();break;case 330:i?r[n(11145)][n(10905)]=e.value:r[n(10905)]=e.value,e=t[n(436)]();break;case 331:s.push(e[n(439)]),e=t[n(436)]();break;default:checkCommonObjectProperties(r,e),e=t.next()}return r}},SpatialFilter=class{constructor(){var t=nz;this[t(11131)]=t(11147)}[nz(1066)](t,e){var n=nz;const r={type:e[n(439)]};let i,s;for(r[n(3614)]=[],e=t[n(436)]();!t[n(10883)]()&&0!==e.code;)switch(e.code){case 11:r[n(1103)]=parsePoint(t),e=t.lastReadGroup;break;case 70:r[n(11148)]=e[n(439)],2===r[n(11148)]?(e=t[n(436)](),i=parsePoint(t),e=t[n(10882)],s=parsePoint(t),e=t[n(10882)],r[n(3614)][n(565)](i,{x:s.x,y:i.y},s,{x:i.x,y:s.y},i)):r[n(11148)]>2?(r[n(3614)]=parsePolylineVertices2(r[n(11148)],t),e=t.lastReadGroup):e=t.next();break;case 71:r[n(11149)]=1===e[n(439)],e=t[n(436)]();break;case 72:r[n(11150)]=1===e.value,e=t[n(436)](),r[n(11150)]&&40===e[n(973)]&&(r[n(11151)]=e.value,e=t[n(436)]());break;case 73:r[n(11152)]=1===e[n(439)],e=t.next(),r[n(11152)]&&41===e.code&&(r[n(11153)]=e[n(439)],e=t[n(436)]());break;case 100:e=t.next();break;case 102:e=t[n(436)]();break;case 210:r[n(10919)]=e.value,e=t.next();break;case 220:r[n(10920)]=e[n(439)],e=t[n(436)]();break;case 230:r[n(10921)]=e[n(439)],e=t[n(436)]();break;case 40:r[n(11154)]=parseMatrix2(t,40),r.matrix=parseMatrix2(t,40),e=t[n(10882)];break;default:checkCommonObjectProperties(r,e),e=t[n(436)]()}return r}};function parsePolylineVertices2(t,e){var n=nz;e[n(436)]();const r=[];for(;r[n(449)]{var s=f;t.on(s(571),(t=>{e+=t})),t.on(s(887),(()=>{var t=s;try{r(n[t(1087)](e))}catch(t){i(t)}})),t.on(s(819),(t=>{i(t)}))}))}[nz(11163)](t){var e=nz;const n={};let r=0;if(!t[e(10879)]())throw Error(e(11166));const i=this;let s;function a(){var n=e;let r=null,i=null;const a={};for(s=t[n(436)]();;){if(groupIs(s,0,n(11182))){r&&(a[r]=i);break}9===s[n(973)]?(r&&(a[r]=i),r=s.value):10===s[n(973)]?i={x:s[n(439)]}:20===s[n(973)]?i.y=s.value:30===s[n(973)]?i.z=s[n(439)]:i=s.value,s=t[n(436)]()}return s=t[n(436)](),a}function o(){var n=e;const r={};for(s=t[n(436)]();s[n(439)]!==n(7538)&&!groupIs(s,0,"ENDSEC");)if(groupIs(s,0,n(11183))){log[n(1177)]("block {");const t=c();log.trace("}"),v(t),t.name?r[t[n(542)]]=t:log[n(819)](n(11184)+t[n(4969)]+"' is missing a name, ignored!")}else logUnhandledGroup(s),s=t[n(436)]();return r}function c(){var n=e;const r={};for(s=t.next();s.value!==n(7538);){switch(s[n(973)]){case 1:r[n(11185)]=s[n(439)],s=t[n(436)]();break;case 2:r[n(542)]=s.value,s=t[n(436)]();break;case 3:r[n(11186)]=s[n(439)],s=t[n(436)]();break;case 4:r.description=s[n(439)],s=t[n(436)]();break;case 5:r[n(4969)]=s[n(439)],s=t[n(436)]();break;case 8:r[n(11187)]=s[n(439)],s=t[n(436)]();break;case 10:r[n(2065)]=m(s),s=t.lastReadGroup;break;case 67:r[n(11188)]=!(!s[n(439)]||1!==s.value),s=t.next();break;case 70:r[n(11189)]=s[n(439)],s=t[n(436)]();break;case 100:s=t.next();break;case 330:r[n(10905)]=s.value,s=t[n(436)]();break;case 0:if(s[n(439)]==n(11190))break;r[n(11175)]=f(!0);break;default:logUnhandledGroup(s),s=t[n(436)]()}if(groupIs(s,0,"ENDBLK")){s=t.next();break}}return r}function l(){var n=e;const r={};for(s=t[n(436)]();s[n(439)]!==n(7538)&&!groupIs(s,0,n(11182));)if(groupIs(s,0,n(8505))){s=t[n(436)]();d[s[n(439)]]?(log[n(1177)](s[n(439)]+" Table {"),r[d[s.value][n(11191)]]=u(s),log[n(1177)]("}")):log[n(1177)](n(11192)+s[n(439)])}else s=t.next();return s=t[n(436)](),r}const h=e(11193);function u(n){var r=e;const i=d[n.value],a={};let o=0;for(s=t[r(436)]();!groupIs(s,0,h);)switch(s[r(973)]){case 5:a[r(4969)]=s.value,s=t.next();break;case 330:a[r(10905)]=s[r(439)],s=t[r(436)]();break;case 100:s.value===r(11194)||logUnhandledGroup(s),s=t[r(436)]();break;case 70:o=s[r(439)],s=t[r(436)]();break;case 0:s[r(439)]===i[r(11195)]?a[i[r(11196)]]=i[r(11197)]():(logUnhandledGroup(s),s=t[r(436)]());break;default:logUnhandledGroup(s),s=t[r(436)]()}const c=a[i[r(11196)]];if(c){const t=c[(l=r)(443)]===Array?c[l(449)]:typeof c===l(469)?Object[l(477)](c)[l(449)]:void 0;o!==t&&log.warn(r(11198)+t+" "+i[r(11195)]+r(11199)+o)}var l;return s=t.next(),a}const d={VPORT:{tableRecordsProperty:"viewPorts",tableName:"viewPort",dxfSymbolName:e(11212),parseTableRecords:function(){var n=e;const r=[];let i={};for(log.trace(n(11200)),s=t[n(436)]();!groupIs(s,0,h);)switch(s[n(973)]){case 2:i.name=s.value,s=t[n(436)]();break;case 10:i[n(11201)]=m(s),s=t[n(10882)];break;case 11:i.upperRightCorner=m(s),s=t.lastReadGroup;break;case 12:i[n(1960)]=m(s),s=t.lastReadGroup;break;case 13:i[n(11202)]=m(s),s=t[n(10882)];break;case 14:i[n(11203)]=m(s),s=t.lastReadGroup;break;case 15:i.gridSpacing=m(s),s=t[n(10882)];break;case 16:i.viewDirectionFromTarget=m(s),s=t.lastReadGroup;break;case 17:i[n(11112)]=m(s),s=t[n(10882)];break;case 40:i[n(11115)]=s.value,s=t[n(436)]();break;case 41:i.aspectRatio=s.value,s=t[n(436)]();break;case 42:i[n(11204)]=s[n(439)],s=t[n(436)]();break;case 43:i.frontClippingPlane=s[n(439)],s=t.next();break;case 44:i[n(11205)]=s[n(439)],s=t.next();break;case 45:i.viewHeight=s[n(439)],s=t.next();break;case 50:i[n(11206)]=s[n(439)],s=t.next();break;case 51:i[n(11207)]=s[n(439)],s=t.next();break;case 79:i.orthographicType=s[n(439)],s=t[n(436)]();break;case 110:i.ucsOrigin=m(s),s=t[n(10882)];break;case 111:i[n(11208)]=m(s),s=t[n(10882)];break;case 112:i[n(11209)]=m(s),s=t[n(10882)];break;case 281:i[n(11121)]=s[n(439)],s=t.next();break;case 282:i.defaultLightingType=s.value,s=t[n(436)]();break;case 292:i[n(11210)]=s[n(439)],s=t.next();break;case 330:i[n(10905)]=s[n(439)],s=t.next();break;case 63:case 421:case 431:i[n(11211)]=s[n(439)],s=t[n(436)]();break;case 0:s.value===n(11212)&&(log[n(1177)]("}"),r[n(565)](i),log.trace("ViewPort {"),i={},s=t[n(436)]());break;default:logUnhandledGroup(s),s=t[n(436)]()}return log.trace("}"),r[n(565)](i),r}},LTYPE:{tableRecordsProperty:"lineTypes",tableName:e(10900),dxfSymbolName:e(11238),parseTableRecords:function(){var n=e;const r={};let a={},o=0,c="",l=!1;for(log[n(1177)]("LType {"),s=t[n(436)]();!groupIs(s,0,n(11193));)switch(s.code){case 2:a.name=s[n(439)][n(736)](),c=a.name,s=t[n(436)]();break;case 3:a[n(614)]=s[n(439)],s=t[n(436)]();break;case 9:case 44:case 45:case 46:case 70:case 75:s=t[n(436)]();break;case 40:a[n(11213)]=s[n(439)],s=t[n(436)]();break;case 49:let e=s[n(439)];l&&(e=Math[n(694)](e),l=!1),a[n(11214)].push(e),s=t[n(436)]();break;case 73:o=s.value,o>0&&(a[n(11214)]=[]),s=t.next();break;case 74:0!==s[n(439)]&&(l=!0,i[n(11162)][a[n(542)]]?i[n(11162)][a[n(542)]]++:i[n(11162)][a[n(542)]]=1),s=t[n(436)]();break;case 0:log.trace("}"),o>0&&o!==a.pattern[n(449)]&&log.warn(n(11215)),r[c]=a,a={},log[n(1177)](n(11216)),s=t[n(436)]();break;default:s=t.next()}return log[n(1177)]("}"),r[c]=a,r}},LAYER:{tableRecordsProperty:"layers",tableName:"layer",dxfSymbolName:"LAYER",parseTableRecords:function(){var n=e;const r={};let i,a={};for(log[n(1177)](n(11217)),s=t.next();!groupIs(s,0,"ENDTAB");)switch(s.code){case 2:a[n(542)]=s.value,i=s[n(439)],s=t[n(436)]();break;case 5:a[n(4969)]=s[n(439)],s=t[n(436)]();break;case 62:a[n(2122)]=s.value>=0,a.colorIndex=Math.abs(s[n(439)]),a[n(2231)]=getAcadColor2(a.colorIndex),s=t.next();break;case 70:a[n(7179)]=s[n(439)],a.frozen=(1&a[n(7179)])>0,s=t[n(436)]();break;case 420:a.color=Math[n(694)](s[n(439)]),s=t[n(436)]();break;case 6:a[n(10900)]=s.value[n(736)](),s=t[n(436)]();break;case 370:a[n(10907)]=s.value,s=t[n(436)]();break;case 0:s[n(439)]===n(11218)&&(log[n(1177)]("}"),i&&(r[i]=a),log[n(1177)]("Layer {"),a={},i=void 0,s=t[n(436)]());break;default:logUnhandledGroup(s),s=t.next()}return log[n(1177)]("}"),i&&(r[i]=a),r}},BLOCK_RECORD:{tableRecordsProperty:"blockRecords",tableName:"blockRecord",dxfSymbolName:e(11236),parseTableRecords:function(){var n=e;const r={};let a,o={};for(log.trace(n(11230)),s=t[n(436)]();!groupIs(s,0,"ENDTAB");)switch(s[n(973)]){case 5:o.handle=s.value,s=t[n(436)]();break;case 330:o[n(10905)]=s[n(439)],s=t.next();break;case 2:o.blockName=s[n(439)],a=o[n(11231)],s=t[n(436)]();break;case 340:o.layoutHandle=s[n(439)],s=t[n(436)]();break;case 70:o[n(11232)]=s[n(439)],s=t[n(436)]();break;case 280:o[n(11233)]=s[n(439)],s=t[n(436)]();break;case 281:o[n(11234)]=s.value,s=t[n(436)]();break;case 310:o[n(11235)]=s[n(439)],s=t[n(436)]();break;case 0:if(s.value===n(11236)){log[n(1177)]("}"),a&&(r[a]=o);const e=o.layoutHandle;a&&e&&e[n(449)]>0&&"0"!==e&&(i[n(11237)][e]=o),log[n(1177)](n(11230)),o={},a=void 0,s=t.next()}else logUnhandledGroup(s),s=t[n(436)]();break;default:logUnhandledGroup(s),s=t[n(436)]()}log.trace("}"),a&&(r[a]=o);const c=o.layoutHandle;return a&&c&&c[n(449)]>0&&"0"!==c&&(i[n(11237)][c]=o),r}},STYLE:{tableRecordsProperty:e(11239),tableName:"style",dxfSymbolName:"STYLE",parseTableRecords:function(){var n=e;const r={};let i,a={};for(log.trace("Style {"),s=t[n(436)]();!groupIs(s,0,n(11193));)switch(s[n(973)]){case 2:a[n(11219)]=s[n(439)],i=s[n(439)],s=t[n(436)]();break;case 3:a[n(11220)]=s[n(439)],s=t[n(436)]();break;case 4:a[n(11221)]=s.value,s=t[n(436)]();break;case 5:a.handle=s[n(439)],s=t[n(436)]();break;case 7:a.textStyle=s.value,s=t[n(436)]();break;case 40:a[n(10926)]=s[n(439)],s=t[n(436)]();break;case 41:a[n(10927)]=s[n(439)],s=t[n(436)]();break;case 42:a[n(11222)]=s.value,s=t[n(436)]();break;case 50:a[n(1961)]=s[n(439)],s=t.next();break;case 70:default:s=t[n(436)]();break;case 71:a.mirroreType=s.value,s=t[n(436)]();break;case 330:a[n(10905)]=s[n(439)],s=t[n(436)]();break;case 0:s[n(439)]===n(11223)&&(log.trace("}"),i&&(r[i]=a),log.trace(n(11224)),a={},i=void 0,s=t[n(436)]())}return log[n(1177)]("}"),i&&(r[i]=a),r}},DIMSTYLE:{tableRecordsProperty:e(11240),tableName:e(11241),dxfSymbolName:e(11229),parseTableRecords:function(){var n=e;const r={};let i,a={};for(log[n(1177)](n(11225)),s=t[n(436)]();!groupIs(s,0,n(11193));)switch(s[n(973)]){case 2:a[n(11219)]=s[n(439)],i=s[n(439)],s=t.next();break;case 40:a.DIMSCALE=s.value,s=t.next();break;case 41:a.DIMASZ=s.value,s=t[n(436)]();break;case 42:a[n(11226)]=s[n(439)],s=t[n(436)]();break;case 44:a.DIMEXE=s.value,s=t[n(436)]();break;case 75:a[n(10992)]=s[n(439)],s=t[n(436)]();break;case 76:a[n(10993)]=s[n(439)],s=t.next();break;case 77:a[n(10994)]=s.value,s=t[n(436)]();break;case 140:a[n(11227)]=s[n(439)],s=t[n(436)]();break;case 144:a[n(10995)]=s[n(439)],s=t[n(436)]();break;case 147:a.DIMGAP=s.value,s=t[n(436)]();break;case 176:a[n(10990)]=s[n(439)],s=t[n(436)]();break;case 178:a.DIMCLRT=s.value,s=t.next();break;case 271:a[n(11228)]=s[n(439)],s=t[n(436)]();break;case 341:a[n(10987)]=s[n(439)],s=t[n(436)]();break;case 70:default:s=t[n(436)]();break;case 0:s[n(439)]===n(11229)&&(log[n(1177)]("}"),i&&(r[i]=a),log[n(1177)](n(11225)),a={},i=void 0,s=t.next())}return log[n(1177)]("}"),i&&(r[i]=a),r}}};function f(n){var r=e;const a=[],o=r(n?11190:11182);for(!n&&(s=t[r(436)]());;)if(0===s[r(973)]){if(s[r(439)]===o)break;const e=i._entityHandlers[s.value];if(null==e){const e=s.value;!i[r(11161)][e]&&(i[r(11161)][e]=0),i[r(11161)][e]++,s=t[r(436)]();continue}{log[r(1177)](s[r(439)]+" {");const n=e[r(10914)](t,s);n&&(!n[r(11187)]&&(n[r(11187)]="0"),void 0===n[r(10903)]&&(n[r(10903)]=256),!n[r(10900)]&&(n[r(10900)]=BYLAYER)),s=t[r(10882)],log[r(1177)]("}"),v(n),a.push(n)}}else s=t[r(436)]();return o==r(11182)&&(s=t.next()),a}function p(){var n=e;const r={},a=n(11182);for(s=t[n(436)]();s[n(439)]!==n(7538);)if(0===s[n(973)]){if(s.value===a)break;const e=i[n(11159)][s.value];if(null==e){const e=s[n(439)];!i[n(11160)][e]&&(i[n(11160)][e]=0),i[n(11160)][e]++,s=t[n(436)]();continue}{log[n(1177)](s[n(439)]+" {");const i=e[n(1066)](t,s),a=s[n(439)];s=t[n(10882)],log[n(1177)]("}"),v(i),!r[a]&&(r[a]=[]),r[a][n(565)](i)}}else s=t.next();return s=t[n(436)](),r.LAYOUT&&(Object.keys(i[n(11237)])[n(449)]!==r[n(11135)][n(449)]&&log[n(1176)](n(11242)),r[n(11135)].forEach((t=>{var e=n;i[e(11237)][t.handle]&&(t[e(11243)]=i[e(11237)][t.handle][e(11231)])})),r[n(11135)].sort(((t,e)=>{var r=n;return t[r(11136)]-e[r(11136)]}))),r}function m(n){var r=e;const i={};let s=n[r(973)];if(i.x=n[r(439)],s+=10,(n=t[r(436)]())[r(973)]!=s)throw new Error("Expected code for point value to be "+s+" but got "+n.code+".");return i.y=n[r(439)],s+=10,(n=t[r(436)]())[r(973)]!=s||(i.z=n.value,n=t[r(436)]()),i}function v(t){var n=e;if(!t)throw new TypeError(n(11244));!t[n(4969)]&&(t.handle=(r++)[n(526)]())}return function(){var r=e;for(s=t.next();999===s.code;)s=t[r(436)]();for(;!t[r(10883)]();)if(0===s[r(973)]&&s[r(439)]===r(11167)){if(s=t.next(),2!==s.code){log.error(r(11168),debugCode(s)),s=t.next();continue}if(s[r(439)]===r(11169))log[r(1177)](r(11170)),n.header=a(),log[r(1177)]("<");else if("TABLES"===s[r(439)])log[r(1177)](r(11171)),n[r(11172)]=l(),log[r(1177)]("<");else if("BLOCKS"===s[r(439)])log[r(1177)](r(11173)),n[r(7573)]=o(),log[r(1177)]("<");else if(s[r(439)]===r(11174))log[r(1177)]("> ENTITIES"),n[r(11175)]=f(!1),log[r(1177)]("<");else if(s.value===r(11176))log.trace(r(11177)),n[r(4232)]=p(),log.trace("<");else if(s[r(439)]===r(7538))log[r(1177)](r(7538));else{const t=s[r(439)];i[r(11178)][t]?i[r(11178)][t]++:i[r(11178)][t]=1}}else s=t.next();i[r(11178)]={},i[r(11161)]={},i[r(11160)]={},i[r(11162)]={}}(),n}};function groupIs(t,e,n){return t[nz(973)]===e&&t.value===n}function logUnhandledGroup(t){var e=nz;log[e(1177)](e(11245)+debugCode(t))}function debugCode(t){var e=nz;return t[e(973)]+":"+t[e(439)]}function getAcadColor2(t){return AutoCadColorIndex_default[t]}var versionKey=nz(1586),getVersionFromLocalStorage=()=>{var t=nz;return window[t(1181)][t(6680)](versionKey)},setVersionToLocalStorage=()=>{var t=nz;window[t(1181)][t(6676)](versionKey,version)},checkIsNewVersion=()=>getVersionFromLocalStorage()!==version&&(setVersionToLocalStorage(),!0),_IndexedDbManager=class{constructor(){var t=nz;this[t(11246)]=t(11247),this[t(11248)]=[{name:t(11249),options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"annotation",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:t(11250),options:{keyPath:t(11251),autoIncrement:!1},indexArray:[]},{name:"fontdata",options:{keyPath:t(1065),autoIncrement:!0},indexArray:[]}],this.db=void 0}static[nz(11252)](){var t=nz;return!_IndexedDbManager[t(11253)]&&(_IndexedDbManager._instance=new _IndexedDbManager),_IndexedDbManager[t(11253)]}[nz(11254)](){return __async(this,null,(function*(){var t=f;let e=yield this[t(11255)](this[t(11246)]);return!this.db&&(e[t(587)](),checkIsNewVersion()&&(yield this[t(11256)](this[t(11246)])),e=yield this[t(11257)](e)),e[t(11258)]=()=>{var n=t;this.db=void 0,log.debug(n(11259)+e[n(542)]+n(11260))},e.onerror=n=>{var r=t;this.db=void 0,log[r(1178)](r(11259)+e[r(542)]+r(11261),n)},e[t(11262)]=n=>{var r=t;this.db=void 0,log[r(1178)](r(11259)+e.name+r(11263),n)},e[t(11264)]=e=>{log[t(1178)]("onversionchange",e)},this.db=e,Promise[t(440)](this.db)}))}[nz(11265)](){var t=nz;this.db&&this.db[t(587)]()}[nz(11256)](t){return new Promise(((e,n)=>{var r=f;const i=window[r(7725)][r(11266)](t);i.onerror=t=>{log[r(1178)](t),n(t)},i[r(7735)]=n=>{var i=r;const s=n[i(573)];log[i(1178)](i(11259)+t+i(11267)+n[i(11268)]+"."),e(s)}}))}[nz(11255)](t){return __async(this,null,(function*(){return new Promise(((e,n)=>{var r=f;const i=window.indexedDB[r(594)](t);i.onerror=n,i[r(7735)]=t=>{var n=r;const i=t[n(573)][n(649)];log[n(1178)](n(11259)+i[n(542)]+n(11269)+i[n(521)]+")."),e(i)}}))}))}[nz(11257)](t){return __async(this,null,(function*(){return new Promise(((e,n)=>{var r=f;log.debug("[DB] Upgrading db "+t[r(542)]+r(11270)+t.version+")");const i=window.indexedDB[r(594)](t[r(542)],t[r(521)]+1);i[r(5828)]=n,i[r(11271)]=t=>{var e=r;log[e(1178)](e(11271),t)},i[r(7732)]=t=>{var e=r;t[e(573)][e(7736)].oncomplete=()=>{var t=e;log[t(1178)](t(11272)+n[t(521)]+").")};const n=t.target[e(649)],i=[];for(let t=0;t0&&Promise.all(i).then((()=>{var t=e;log[t(1178)](t(11276)+i[t(449)]+t(11277))}))},i.onsuccess=t=>{var n=r;const i=t.target[n(649)];log[n(1178)](n(11259)+i[n(542)]+" opened (version "+i.version+")."),e(i)}}))}))}[nz(11274)](t,e,n,r){return __async(this,null,(function*(){return new Promise((i=>{var s=f;const a=t.createObjectStore(e,n);r&&r[s(604)]((t=>{var e=s;a[e(11278)](t.name,t.fields,{unique:t[e(11279)]})})),log.debug("[DB] Table "+e+" created."),i(t)}))}))}},IndexedDbManager=_IndexedDbManager;IndexedDbManager[nz(11253)]=void 0;var BaseTable=class{constructor(){var t=nz;this.db=void 0,this[t(11280)]=!1;if(-1===IndexedDbManager[t(11252)]()[t(11248)][t(663)]((e=>e[t(542)]===this[t(11191)]())))throw new Error(t(11281)+this[t(11191)]()+t(11282))}tableName(){throw new Error(nz(11283))}add(t,e,n){var r=nz;const i=this[r(11191)]();IndexedDbManager[r(11252)]()[r(11254)]()[r(829)]((s=>{var a=r;const o=s[a(7736)]([i],a(7737)).objectStore(i)[a(747)](t);o.onsuccess=e,o.onerror=n}))[r(822)]((()=>{IndexedDbManager[r(11252)]().closeDatabase()}))[r(821)]((t=>{n&&n(t)}))}[nz(4544)](t,e,n){var r=nz;const i=this[r(11191)]();IndexedDbManager[r(11252)]()[r(11254)]()[r(829)]((s=>{var a=r;const o=s.transaction([i],a(7737)).objectStore(i)[a(7739)](t);o[a(7735)]=e,o[a(5828)]=n}))[r(822)]((()=>{var t=r;IndexedDbManager.instance()[t(11265)]()}))}[nz(748)](t,e,n){var r=nz;const i=this.tableName();IndexedDbManager[r(11252)]()[r(11254)]()[r(829)]((s=>{var a=r;const o=s[a(7736)]([i],a(7737))[a(7738)](i).delete(t);o[a(7735)]=e,o[a(5828)]=n}))[r(822)]((()=>{IndexedDbManager.instance().closeDatabase()}))}[nz(1067)](){var t=nz;IndexedDbManager.instance()[t(11254)]().then((()=>{}))}[nz(1069)](t,e){var n=nz;const r=this.tableName();IndexedDbManager.instance()[n(11254)]()[n(829)]((i=>{var s=n;const a=i[s(7736)]([r],s(7740)).objectStore(r)[s(11284)]();a.onsuccess=e=>{var n=s;const r=e[n(573)][n(649)];r&&r[n(1167)](),t&&t(r)},a.onerror=e}))[n(822)]((()=>{var t=n;IndexedDbManager[t(11252)]()[t(11265)]()}))}[nz(11285)](t,e){var n=nz;const r=this[n(11191)]();IndexedDbManager[n(11252)]()[n(11254)]()[n(829)]((i=>{var s=n;const a=i[s(7736)]([r],s(7740))[s(7738)](r)[s(11286)]();a[s(7735)]=e=>{t&&t(a[s(649)])},a[s(5828)]=e})).finally((()=>{var t=n;IndexedDbManager[t(11252)]()[t(11265)]()}))}[nz(11287)](t,e){var n=nz;const r=this[n(11191)]();IndexedDbManager.instance()[n(11254)]()[n(829)]((i=>{var s=n;const a=i[s(7736)]([r],s(7737))[s(7738)](r).clear();a[s(7735)]=e=>{t&&t(e)},a[s(5828)]=t=>{e&&e(t)}}))[n(822)]((()=>{var t=n;IndexedDbManager[t(11252)]()[t(11265)]()}))}},_DxfDataTable=class extends BaseTable{[nz(11191)](){return nz(11250)}static instance(){var t=nz;return!_DxfDataTable[t(11253)]&&(_DxfDataTable[t(11253)]=new _DxfDataTable),_DxfDataTable._instance}[nz(1069)](t,e,n){var r=nz;const i=[],s=this[r(11191)]();IndexedDbManager[r(11252)]()[r(11254)]()[r(829)]((a=>{var o=r;const c=a[o(7736)]([s],"readonly")[o(7738)](s)[o(427)](t);c[o(5828)]=t=>{var e=o;n&&n(t),log[e(1175)]("[DxfDataTable] Failed to query !",t)},c.onsuccess=()=>{var t=o;c[t(649)]&&i[t(565)](c[t(649)]),e&&e(i)}}))[r(822)]((()=>{var t=r;IndexedDbManager.instance()[t(11265)]()}))}},DxfDataTable=_DxfDataTable;DxfDataTable._instance=void 0;var TextShape=class extends Shape{constructor(t,e){var n=nz;super(),this[n(999)]=0,this.lastPoint=t,this[n(11288)]=e,this[n(999)]=this[n(11289)](e)}[nz(1389)](t){var e=nz;const n=[];for(let r=0;r{var s=r;n?n[s(439)]&&n[s(439)][s(1065)]===t&&(i=n[s(439)]):e&&e(i)}),(t=>{var e=r;n&&n(),console[e(695)](t)}))}[nz(11285)](){return __async(this,null,(function*(){return new Promise(((t,e)=>{var n=f;__superGet(_FontDataTable[n(425)],this,n(11285))[n(429)](this,(e=>{t(e)}),(t=>{e(t)}))}))}))}},FontDataTable=_FontDataTable;FontDataTable[nz(11253)]=void 0;var table,letters={130:[[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],131:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],132:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],133:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]]],134:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],135:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],136:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],178:[[[1.142,9.285],[1.142,9.428],[1.285,9.714],[1.428,9.857],[1.714,10],[2.285,10],[2.571,9.857],[2.714,9.714],[2.857,9.428],[2.857,9.142],[2.714,8.857],[2.428,8.428],[1,7],[3,7]]],8960:[[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]],[[0,0],[8,8]]],20393:[[[0,0],[0,6.666]],[[0,4.761],[1.428,6.19],[2.38,6.666],[3.809,6.666],[4.761,6.19],[5.238,4.761],[5.238,0]],[[5.238,4.761],[6.666,6.19],[7.619,6.666],[9.047,6.666],[10,6.19],[10.476,4.761],[10.476,0]],[[11.142,9.285],[11.142,9.428],[11.285,9.714],[11.428,9.857],[11.714,10],[12.285,10],[12.571,9.857],[12.714,9.714],[12.857,9.428],[12.857,9.142],[12.714,8.857],[12.428,8.428],[11,7],[13,7]]],41123:[],55714:[[[2,5.9],[2.6,6.1],[3.4,7],[3.4,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],55970:[[[2.3,5.6],[2.3,5.9],[2.6,6.4],[2.9,6.7],[3.4,7],[4.6,7],[5.1,6.7],[5.4,6.4],[5.7,5.9],[5.7,5.3],[5.4,4.7],[4.9,3.9],[2,1],[6,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56226:[[[2.6,7],[5.7,7],[4,4.7],[4.9,4.7],[5.4,4.4],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56482:[[[4.9,7],[2,3],[6.3,3]],[[4.9,7],[4.9,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56738:[[[5.4,7],[2.6,7],[2.3,4.4],[2.6,4.7],[3.4,5],[4.3,5],[5.1,4.7],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56994:[[[5.4,6.1],[5.1,6.7],[4.3,7],[3.7,7],[2.9,6.7],[2.3,5.9],[2,4.4],[2,3],[2.3,1.9],[2.9,1.3],[3.7,1],[4,1],[4.9,1.3],[5.4,1.9],[5.7,2.7],[5.7,3],[5.4,3.9],[4.9,4.4],[4,4.7],[3.7,4.7],[2.9,4.4],[2.3,3.9],[2,3]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57250:[[[2,7],[6,7],[3.1,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57506:[[[3.4,7],[2.6,6.7],[2.3,6.1],[2.3,5.6],[2.6,5],[3.1,4.7],[4.3,4.4],[5.1,4.1],[5.7,3.6],[6,3],[6,2.1],[5.7,1.6],[5.4,1.3],[4.6,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1],[2,3],[2.3,3.6],[2.9,4.1],[3.7,4.4],[4.9,4.7],[5.4,5],[5.7,5.6],[5.7,6.1],[5.4,6.7],[4.6,7],[3.4,7]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57762:[[[5.7,5],[5.4,4.1],[4.9,3.6],[4,3.3],[3.7,3.3],[2.9,3.6],[2.3,4.1],[2,5],[2,5.3],[2.3,6.1],[2.9,6.7],[3.7,7],[4,7],[4.9,6.7],[5.4,6.1],[5.7,5],[5.7,3.6],[5.4,2.1],[4.9,1.3],[4,1],[3.4,1],[2.6,1.3],[2.3,1.9]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],60070:[[[0,6],[10,6],[10,4]]],60326:[[[0,7],[0,5],[10,5]]]},transform=new Matrix3,FontFile=class{constructor(t){var e=nz;this[e(452)]=1,this[e(1175)]="",this[e(11293)]=0,this[e(11294)]=0,this[e(11295)]=0,this[e(11296)]="",this[e(11297)]="",this[e(11298)]={},this[e(11299)]=new Map,this[e(1065)]=t}[nz(11300)](t,e){var n=nz;if(0===t)return;const r=this[n(11298)];if(!this[n(11299)].has(t)){if(!r[t]){if(letters[t]){const r=[];for(let e=0;enew Vector2(t[0],t[1]))));const i=new TextShape(new Vector2,r),s=e/ShxFont[n(11301)];return transform[n(1528)]()[n(1901)](s,s),i[n(1502)](transform)}return}{const e=r[t],i=ShxFont[n(11301)]/this.baseUp,s=ShxParser[n(11302)](this,e,i);this[n(11299)][n(540)](t,s)}}if(this[n(11299)][n(546)](t)){const r=e/ShxFont[n(11301)];return transform[n(1528)]()[n(1901)](r,r),this.graphicData[n(427)](t).transform(transform)}}[nz(11303)](t,e,n){var r,i=nz;return null==(r=this[i(11300)](t,e))?void 0:r[i(1389)](n)}[nz(11304)](){var t=nz;return{url:this[t(1065)],type:this[t(452)],datas:this[t(11298)],info:this[t(1175)],orientation:this[t(11293)],baseUp:this[t(11294)],baseDown:this[t(11295)],fileHeader:this[t(11296)],fileVersion:this.fileVersion}}[nz(11305)](t){var e=nz;this[e(1065)]=t.url,this[e(452)]=t[e(452)],this[e(11298)]=t[e(11298)],this[e(1175)]=t[e(1175)],this[e(11293)]=t[e(11293)],this.baseUp=t[e(11294)],this[e(11295)]=t[e(11295)],this[e(11296)]=t[e(11296)],this.fileVersion=t[e(11297)]}[nz(11306)](){var t=nz;this.datas={},this[t(11299)].clear()}[nz(11307)](){return __async(this,null,(function*(){var t=f;const e=this[t(11304)]();return new Promise(((n,r)=>{var i=t;FontDataTable.instance()[i(4544)](e,(()=>{var t=i;console[t(695)](t(11308)+this[t(1065)]+t(11309)+this.fileHeader+t(11310)),n()}),(t=>r("[FontFile] Failed to save '"+this[i(1065)]+i(11309)+this[i(11296)]+") to indexedDb! "+t)))}))}))}[nz(11311)](){return __async(this,null,(function*(){return new Promise(((t,e)=>{var n=f;FontDataTable[n(11252)]()[n(1069)](this.url,(e=>{t(e)}),(()=>e(n(11312))))}))}))}};function initTable(){var t=nz;const e=[[161,169,161,254],[176,247,161,254],[129,160,64,254],[170,254,64,160],[168,169,64,160],[170,175,161,254],[248,254,161,254],[161,167,64,160]],n=new Uint16Array(23940);let r=0;for(const[t,i,s,a]of e)for(let e=s;e<=a;e++)if(127!==e)for(let s=t;s<=i;s++)n[r++]=e<<8|s;const i=new TextDecoder(t(11313))[t(3778)](n);for(table=new Uint16Array(65536),r=0;r>8}}return e.subarray(0,n)}var SIMPLIFIED_CHINESE_TABLE="啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座锕嗳嫒瑷暧霭谙铵鹌媪骜鳌钯呗钣鸨龅鹎贲锛荜哔滗铋筚跸苄缏笾骠飑飙镖镳鳔傧缤槟殡膑镔髌鬓禀饽钹鹁钸骖黪恻锸侪钗冁谄谶蒇忏婵骣觇禅镡伥苌怅阊鲳砗伧谌榇碜龀枨柽铖铛饬鸱铳俦帱雠刍绌蹰钏怆缍鹑辍龊鹚苁骢枞辏撺锉鹾哒鞑骀绐殚赕瘅箪谠砀裆焘镫籴诋谛绨觌镝巅钿癫铫鲷鲽铤铥岽鸫窦渎椟牍笃黩簖怼镦炖趸铎谔垩阏轭锇锷鹗颚颛鳄诶迩铒鸸鲕钫鲂绯镄鲱偾沣凫驸绂绋赙麸鲋鳆钆赅尴擀绀戆睾诰缟锆纥镉颍亘赓绠鲠诟缑觏诂毂钴锢鸪鹄鹘鸹掴诖掼鹳鳏犷匦刿妫桧鲑鳜衮绲鲧埚呙帼椁蝈铪阚绗颉灏颢诃阖蛎黉讧荭闳鲎浒鹕骅桦铧奂缳锾鲩鳇诙荟哕浍缋珲晖诨馄阍钬镬讦诘荠叽哜骥玑觊齑矶羁虿跻霁鲚鲫郏浃铗镓蛲谏缣戋戬睑鹣笕鲣鞯绛缰挢峤鹪鲛疖颌鲒卺荩馑缙赆觐刭泾迳弪胫靓阄鸠鹫讵屦榉飓钜锔窭龃锩镌隽谲珏皲剀垲忾恺铠锴龛闶钪铐骒缂轲钶锞颔龈铿喾郐哙脍狯髋诓诳邝圹纩贶匮蒉愦聩篑阃锟鲲蛴崃徕涞濑赉睐铼癞籁岚榄斓镧褴阆锒唠崂铑铹痨鳓诔缧俪郦坜苈莅蓠呖逦骊缡枥栎轹砺锂鹂疠粝跞雳鲡鳢蔹奁潋琏殓裢裣鲢魉缭钌鹩蔺廪檩辚躏绫棂蛏鲮浏骝绺镏鹨茏泷珑栊胧砻偻蒌喽嵝镂瘘耧蝼髅垆撸噜闾泸渌栌橹轳辂辘氇胪鸬鹭舻鲈脔娈栾鸾銮囵荦猡泺椤脶镙榈褛锊呒唛嬷杩劢缦镘颡鳗麽扪焖懑钔芈谧猕祢渑腼黾缈缪闵缗谟蓦馍殁镆钼铙讷铌鲵辇鲶茑袅陧蘖嗫颟蹑苎咛聍侬哝驽钕傩讴怄瓯蹒疱辔纰罴铍谝骈缥嫔钋镤镨蕲骐绮桤碛颀颃鳍佥荨悭骞缱椠钤嫱樯戗炝锖锵镪羟跄诮谯荞缲硗跷惬锲箧锓揿鲭茕蛱巯赇虮鳅诎岖阒觑鸲诠绻辁铨阕阙悫荛娆桡饪轫嵘蝾缛铷颦蚬飒毵糁缫啬铯穑铩鲨酾讪姗骟钐鳝垧殇觞厍滠畲诜谂渖谥埘莳弑轼贳铈鲥绶摅纾闩铄厮驷缌锶鸶薮馊飕锼谡稣谇荪狲唢睃闼铊鳎钛鲐昙钽锬顸傥饧铴镗韬铽缇鹈阗粜龆鲦恸钭钍抟饨箨鼍娲腽纨绾辋诿帏闱沩涠玮韪炜鲔阌莴龌邬庑怃妩骛鹉鹜饩阋玺觋硖苋莶藓岘猃娴鹇痫蚝籼跹芗饷骧缃飨哓潇骁绡枭箫亵撷绁缬陉荥馐鸺诩顼谖铉镟谑泶鳕埙浔鲟垭娅桠氩厣赝俨兖谳恹闫酽魇餍鼹炀轺鹞鳐靥谒邺晔烨诒呓峄饴怿驿缢轶贻钇镒镱瘗舣铟瘾茔莺萦蓥撄嘤滢潆璎鹦瘿颏罂镛莸铕鱿伛俣谀谕蓣嵛饫阈妪纡觎欤钰鹆鹬龉橼鸢鼋钺郓芸恽愠纭韫殒氲瓒趱錾驵赜啧帻箦谮缯谵诏钊谪辄鹧浈缜桢轸赈祯鸩诤峥钲铮筝骘栉栀轵轾贽鸷蛳絷踬踯觯锺纣绉伫槠铢啭馔颞骓缒诼镯谘缁辎赀眦锱龇鲻偬诹驺鲰镞缵躜鳟讠谫郄勐凼坂垅垴埯埝苘荬荮莜莼菰藁揸吒吣咔咝咴噘噼嚯幞岙嵴彷徼犸狍馀馇馓馕愣憷懔丬溆滟溷漤潴澹甯纟绔绱珉枧桊桉槔橥轱轷赍肷胨飚煳煅熘愍淼砜磙眍钚钷铘铞锃锍锎锏锘锝锪锫锿镅镎镢镥镩镲稆鹋鹛鹱疬疴痖癯裥襁耢颥螨麴鲅鲆鲇鲞鲴鲺鲼鳊鳋鳘鳙鞒鞴齄",TRADITIONAL_CHINESE_TABLE=nz(11314);function traditionalChineseToSimpliled(t){var e=nz;return SIMPLIFIED_CHINESE_TABLE[e(620)](TRADITIONAL_CHINESE_TABLE.indexOf(t[e(620)](0)))}var reg=new RegExp("[一-龥]+");function isTraditionalChinese(t){return TRADITIONAL_CHINESE_TABLE[nz(667)](t)}var BitConverter=class{static GetBytes(t){var e,n,r=nz;switch(typeof t){case r(470):{const e=new Uint16Array(t[r(449)]);for(let n=0;n4294967295?(e=new Float64Array(1),n=r,e[0]=t,new Uint8Array(e[n(703)])):function(e){return e[0]=t,new Uint8Array(e.buffer)}(new Int32Array(1)):function(e){return e[0]=t,new Uint8Array(e.buffer)}(new Float64Array(1));case r(1403):return function(e){return e[0]=Number(t),e}(new Uint8Array(1));default:if(t instanceof Array){const e=[];for(let n=0;nt[r(449)]&&(n-=e);let i="";for(let s=0;st[r(449)]&&(n-=e);const i=new Uint8Array(n);for(let r=0;r1&&(s[r(565)](a[r(497)]()),a=[]);break;case 3:l++,n/=e[l];break;case 4:l++,n*=e[l];break;case 5:if(4===o[r(449)])throw r(11327);o[r(565)](i);break;case 6:i=o[r(1161)](),a[r(449)]>1&&(s[r(565)](a[r(497)]()),a=[]),c&&a[r(565)](i[r(1014)]());break;case 7:{let o,c=0,h=n*t.baseUp;const u=i[r(1014)]();switch(a[r(449)]>1&&(s[r(565)](a[r(497)]()),a=[]),t[r(452)]){case 0:l++,c=e[l];break;case 1:if(l++,c=e[l],0==c){l++,c=BitConverter[r(11321)](new Uint8Array([e[l++],e[l++]]),0),u.x=e[l++]*n,u.y=e[l++]*n;h=e[l]*n}break;case 2:l+=2,c=BitConverter[r(11321)](new Uint8Array([e[l-1],e[l]]),0)}0!==c&&(o=t[r(11303)](c,h,u),o&&(s[r(565)](...o[r(11288)][r(497)]()),i=o.lastPoint.clone()))}break;case 8:{const t=new Vector2;t.x=BitConverter[r(11317)](e[++l]),t.y=BitConverter[r(11317)](e[++l]),i[r(747)](t[r(1878)](n)),c&&a[r(565)](i[r(1014)]())}break;case 9:{const t=!0;for(;t;){const t=new Vector2;if(t.x=BitConverter[r(11317)](e[++l]),t.y=BitConverter.byteTosbyte(e[++l]),0==t.x&&0==t.y)break;i.add(t[r(1878)](n)),c&&a[r(565)](i.clone())}}break;case 10:{const t=e[++l]*n,s=BitConverter[r(11317)](e[++l]),o=(112&s)>>4;let h=7&s;0==h&&(h=8);const u=Math.PI/4;let d=u*h,f=_ShxParser[r(11328)];s<0&&(f=-f,d=-d);const p=u*o,m=p+d,v=i[r(1014)]()[r(909)](new Vector2(Math.cos(p)*t,Math[r(1853)](p)*t));if(i=v[r(1014)]()[r(747)](new Vector2(Math.cos(m)*t,Math[r(1853)](m)*t)),c){let e=p;const n=!0;for(;n&&(e+=f,s>=0&&em);)a.push(v[r(1014)]().add(new Vector2(t*Math[r(1852)](e),t*Math.sin(e))));a[r(565)](i[r(1014)]())}}break;case 11:{const t=e[++l],s=e[++l],o=(255*e[++l]+e[++l])*n,h=BitConverter[r(11317)](e[++l]),u=(112&h)>>4;let d=7&h;0==d&&(d=8),0!=s&&d--;const f=Math.PI/4;let p=f*d,m=_ShxParser.CICLESPAN,v=1;h<0&&(m=-m,p=-p,v=-1);let _=f*u,g=_+p;_+=f*t/256*v,g+=f*s/256*v;const y=i[r(1014)]()[r(909)](new Vector2(o*Math.cos(_),o*Math[r(1853)](_)));if(i=y[r(1014)]()[r(747)](new Vector2(o*Math.cos(g),o*Math[r(1853)](g))),c){let t=_;const e=!0;for(;e&&(t+=m,h>0&&tg);)a.push(y[r(1014)]()[r(747)](new Vector2(o*Math[r(1852)](t),o*Math[r(1853)](t))));a[r(565)](i[r(1014)]())}}break;case 12:{const t=new Vector2;t.x=BitConverter[r(11317)](e[++l])*n,t.y=BitConverter[r(11317)](e[++l])*n;let s=BitConverter[r(11317)](e[++l]);s<-127&&(s=-127),c&&(0==s?a[r(565)](i[r(1014)]()[r(747)](t)):a[r(565)](_ShxParser._generateArcPoints(i,t,s/127))),i.add(t)}break;case 13:{const t=!0;for(;t;){const t=new Vector2;if(t.x=BitConverter[r(11317)](e[++l])*n,t.y=BitConverter[r(11317)](e[++l])*n,0==t.x&&0==t.y)break;let s=BitConverter[r(11317)](e[++l]);s<-127&&(s=-127),c&&(0==s?a[r(565)](i[r(1014)]()[r(747)](t)):a[r(565)](_ShxParser[r(11329)](i.clone(),t,s/127))),i[r(747)](t)}}break;case 14:l=_ShxParser[r(11330)](t,e,++l);break;default:if(h>15){const t=(240&h)>>4,e=15&h,s=new Vector2;switch(e){case 0:s.x=1;break;case 1:s.x=1,s.y=.5;break;case 2:s.x=1,s.y=1;break;case 3:s.x=.5,s.y=1;break;case 4:s.y=1;break;case 5:s.x=-.5,s.y=1;break;case 6:s.x=-1,s.y=1;break;case 7:s.x=-1,s.y=.5;break;case 8:s.x=-1;break;case 9:s.x=-1,s.y=-.5;break;case 10:s.x=-1,s.y=-1;break;case 11:s.x=-.5,s.y=-1;break;case 12:s.y=-1;break;case 13:s.x=.5,s.y=-1;break;case 14:s.x=1,s.y=-1;break;case 15:s.x=1,s.y=-.5}i.add(s.multiplyScalar(t*n)),c&&a[r(565)](i.clone())}}}return new TextShape(i,s)}static[nz(11330)](t,e,n){var r=nz;switch(e[n]){case 0:case 1:case 2:case 5:case 6:case 14:default:break;case 3:case 4:n++;break;case 7:switch(t[r(452)]){case 0:n++;break;case 1:0==e[++n]&&(n+=6);break;case 2:n+=2}break;case 8:case 10:n+=2;break;case 9:{const t=!0;for(;t;){const t=e[++n],r=e[++n];if(0==t&&0==r)break}}break;case 11:n+=5;break;case 12:n+=3;break;case 13:{const t=!0;for(;t;){const t=e[++n],r=e[++n];if(0==t&&0==r)break;e[++n]}}}return n}static[nz(11329)](t,e,n){var r=nz;const i=t[r(1014)]()[r(747)](e),s=n<0;n=Math[r(694)](n);const a=e[r(449)]()/2,o=a*n,c=2*Math[r(2404)](1/n),l=new Vector2(e.y,-e.x);l[r(569)](),l[r(1878)](o);const h=Math[r(694)](a/Math.sin(c/2)),u=t[r(747)](e[r(1877)](2));!1!==s?u.add(l):u.sub(l);const d=t.sub(u),f=i[r(909)](u);let p=Math[r(1883)](d.y,d.x);const m=Math[r(1883)](f.y,f.x);let v=_ShxParser[r(11328)];s?(v=-v,pm&&(p-=2*Math.PI);let _=p;for(;;){if(_+=v,!s&&_m)return u[r(747)](new Vector2(h*Math[r(1852)](_),h*Math[r(1853)](_)));break}return i}},ShxParser=_ShxParser;ShxParser[nz(11331)]=nz(11332),ShxParser[nz(11333)]=["\r","\n",""],ShxParser[nz(11328)]=Math.PI/18;var BigFontFile=class extends FontFile{constructor(t){var e=nz;super(t),this[e(11334)]=!1,this[e(452)]=1}[nz(2645)](t){var e=nz;BitConverter.ToInt16(t[e(10863)](2),0);const n=BitConverter[e(11320)](t.readBytes(2),0),r=BitConverter[e(11320)](t[e(10863)](2),0);for(let n=0;n>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:n+=String[e(689)](i);break;case 12:case 13:s=t[r++],n+=String[e(689)]((31&i)<<6|63&s);break;case 14:s=t[r++],a=t[r++],n+=String[e(689)]((15&i)<<12|(63&s)<<6|(63&a)<<0)}return n}var ShapeFontFile=class extends FontFile{constructor(t){var e=nz;super(t),this[e(452)]=0}init(t){var e=nz;t[e(10863)](2),t.readBytes(2);const n=BitConverter[e(11320)](t.readBytes(2),0),r=[];for(let i=0;is){d?(u+=f.width+i,d=!1):(d=!0,u=0,h-=r+n),tempVec22.set(u,h);const t=f[o(1389)](tempVec22);c[o(565)](t),!d&&(u+=f[o(999)]+i)}else{tempVec22[o(540)](u,h);const t=f.offset(tempVec22);c[o(565)](t),u+=f[o(999)]+i}else this.addUnsupportedChar(l)}d=!1,u=0,h-=r+n}return c}[nz(11349)](t){const e=ShxParser[nz(11347)]("?");return this.getGraphicDataByCode(e,t)}[nz(7464)](t,e=_ShxFont[nz(11301)],n=0,r=0,i=0){return this[nz(11350)](t,e,n,r,i)}[nz(11348)](t){var e=nz;!this[e(11337)][t]&&(this[e(11337)][t]=0),this.unsupportedChars[t]++}static[nz(11351)](t){return __async(this,null,(function*(){var e=f;let n=!1;const r=yield FontDataTable[e(11252)]()[e(11285)]();if(r.length!==t[e(449)])return!1;for(let i=0;ie[t(11307)]()));return yield Promise.all(e)[t(829)]((()=>{var e=t;log[e(1178)](e(11352))}))}))}[nz(11353)](){return __async(this,null,(function*(){var t=f;const e=yield FontDataTable.instance()[t(11285)](),n=[],r=new Map;for(let i=0;ivoid 0!==t.viewDirectionFromTarget,decodeDataUri=t=>{var e=nz;if(t){const n=t[e(522)](/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);if(n&&n[e(449)]>0){const r=n[1],i=t[e(448)]("data:"+r+";","")[e(465)](",");if(i&&2===i[e(449)]&&"base64"===i[0]){const t=i[1];return gBase64.decode(t)}}}return null},THREEx={Math:{}};THREEx[nz(509)].angle2=function(t,e){var n=nz;const r=new Vector2(t.x,t.y),i=new Vector2(e.x,e.y);return i[n(909)](r),i[n(569)](),i.y<0?-Math.acos(i.x):Math.acos(i.x)},THREEx[nz(509)][nz(11355)]=function(t,e,n){var r=nz;return{x:t.x+e*Math[r(1852)](n),y:t.y+e*Math[r(1853)](n)}};var getBulgeCurvePoints=(t,e,n,r)=>{var i=nz;const s=t?new Vector2(t.x,t.y):new Vector2(0,0),a=e?new Vector2(e.x,e.y):new Vector2(1,0);n=n||1;const o=4*Math[i(2404)](n),c=s[i(2038)](a)/2/Math.sin(o/2),l=THREEx[i(509)].polar(t,c,THREEx[i(509)][i(11356)](s,a)+(Math.PI/2-o/2));r=r||Math[i(486)](Math[i(694)](Math.ceil(o/(Math.PI/18))),6);const h=THREEx[i(509)][i(11356)](l,s),u=o/r,d=[];d[i(565)](new Vector3(s.x,s.y,0));for(let t=1;t<=r-1;t++){const e=THREEx.Math[i(11355)](l,Math.abs(c),h+u*t);d[i(565)](new Vector3(e.x,e.y,0))}return d},getLinePoints=(t,e=!1)=>{var n=nz;const r=[],i=t.length;for(let s=0;s{var e=nz;const n=[];return t.faceA&&n[e(565)](t[e(11078)]),t[e(11079)]&&n.push(t[e(11079)]),t[e(11080)]&&n[e(565)](t[e(11080)]),t[e(11357)]&&n[e(565)](t.faceD),n},getPolyfaceMeshPoints=t=>{var e=nz;const n=[],r=[];t[e(604)]((t=>{var i=e;t[i(11077)]&&(t[i(11076)]?n[i(565)](new Vector3(t.x,t.y,t.z)):r[i(565)](getFaceIndex(t)))}));const i=[];for(let t=0;t=n.length||r<0){o=!1;break}a[e(565)](n[r])}o&&0!==a.length&&(a[e(565)](a[0]),i[e(565)](a))}return i},_DXFLoader=class extends Loader{constructor(t=!1,e=!0){var n=nz;super(),this[n(11358)]=Date[n(802)](),this[n(11359)]=!1,this.angBase=0,this[n(11360)]=0,this.header=void 0,this[n(11361)]={},this[n(11362)]={},this.lineShaderMaterials={},this[n(11363)]={},this[n(11364)]={},this.hatchShaderMaterials=[],this[n(11365)]=0,this[n(11366)]=0,this[n(11367)]=0,this[n(11368)]=!1,this[n(11369)]=!0,this[n(11370)]=!0,this.enableMerge=!0,this[n(11371)]=!0,this[n(11372)]=!0,this[n(11373)]=!1,this[n(11251)]=void 0,this[n(11374)]=void 0,this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0},this[n(11375)]={},this[n(11376)]=void 0,this.entitiesCache=void 0,this[n(11377)]=void 0,this[n(11378)]=void 0,this[n(11379)]=void 0,this[n(11380)]=void 0,this[n(11381)]=void 0,this[n(11382)]=new Set([n(10922),n(10934),"LEADER",n(11062),"MULTILEADER",n(11383),n(11100)]),this[n(11384)]={},this[n(11385)]=(t,e)=>{var r=n;if(t[r(452)]===r(11102)){!e[t.ownerHandle]&&(e[t[r(10905)]]=[]);const n=t;e[t[r(10905)]][r(565)](n)}},_DXFLoader[n(11386)]=!1,this[n(11359)]=t,this.enableLocalCache=e,this[n(11361)][Default_Color]=Default_PointMaterial,this[n(11362)][Default_Color]=Default_LineMaterial,this.meshBasicMaterials[Default_Color]=Default_MeshMaterial}[nz(11387)](t){return this[nz(904)]=t,this}[nz(4546)](t,e){return __async(this,null,(function*(){var n=f;let r=decodeDataUri(t);if(!r){const i=Date.now(),s=new FileLoader(this[n(3749)]);s[n(3784)](n(3773)),s[n(3756)](this[n(1091)]),r=yield s[n(3808)](t,e),log[n(1175)](n(11388)+t+" dxf file downloaded in "+(Date.now()-i)/1e3+"s")}return r}))}[nz(1212)](t,e,n){return __async(this,null,(function*(){var r=f;return this.enableLocalCache&&e&&(e=e[r(772)]()).length>0&&(this[r(11251)]=e),this[r(3808)](t,n)}))}[nz(3808)](t,e){return __async(this,null,(function*(){var n=f;const r=(t,n,r)=>{var i=f;let s=100*t[i(5078)]/t[i(4025)];s=s*(r-n)/100+n,e&&e(new ProgressEvent(t.type,{loaded:s,total:100}))},i=t=>r(t,10,100);if(this[n(11369)]&&this[n(11251)]){let t;try{if(this[n(11358)]=Date[n(802)](),t=yield this[n(11389)](this[n(11251)]),t){log[n(1175)](n(11390)+(Date.now()-this[n(11358)])/1e3+"s");const e=yield this.loadEntities(t,i);return Promise[n(440)](e)}}catch(t){log.warn(n(11391),t)}}const s=yield this[n(1087)](t,(t=>r(t,0,50)));return yield this[n(11392)](s,(t=>r(t,50,100)))}))}[nz(1087)](t,e){return __async(this,null,(function*(){var n=f;const r=t=>{e&&e(new ProgressEvent("",{loaded:t,total:100}))},i=yield this[n(4546)](t,(t=>((t,n,r)=>{var i=f;let s=100*t[i(5078)]/t[i(4025)];s=s*(r-n)/100+n,s>r&&(log.warn(i(11393),t),s=r),e&&e(new ProgressEvent(t[i(452)],{loaded:s,total:100}))})(t,0,40)));if(!i)return Promise[n(831)](n(11394)+t);if(_DXFLoader[n(11386)])return Promise[n(831)](n(11395));this[n(11358)]=Date[n(802)](),log[n(1175)](n(11396));const s=(new DxfParser)[n(11164)](i);if(r(80),log[n(1175)](n(11397)+(Date.now()-this[n(11358)])/1e3+n(11398)),_DXFLoader[n(11386)])return Promise.reject(n(11395));if(s&&(!s[n(4232)][n(11135)]&&(log[n(1176)](n(11399)),s[n(4232)].LAYOUT=[{layoutName:_DXFLoader[n(11400)]}]),this[n(11369)]&&this[n(11251)])){const t=Date.now();try{yield this[n(11401)](this[n(11251)],s),log.info("[DxfLoader] Saved to indexedDb in "+(Date[n(802)]()-t)/1e3+"s")}catch(t){log[n(1176)](n(11402)+this[n(11251)]+"' to indexedDb!",t)}}return r(100),s}))}[nz(11403)](t){var e=nz;if(!t)return void log[e(819)](e(11404));this[e(5744)]=t;const n=t[e(11405)][e(526)]();n!==e(11406)&&log[e(1176)](e(11407)+n+e(11408)),this[e(11409)]=t[e(11410)]||0,this[e(11360)]=t[e(11411)]||0}loadEntities(t,e){return __async(this,null,(function*(){var n=f;const r=Date[n(802)]();this[n(11403)](t.header),this[n(11368)]&&(this[n(11412)](t),this[n(11413)]=!1);let i=0;const s=t[n(11175)][n(449)];this[n(11365)]=s,Object[n(477)](t.blocks)[n(604)]((e=>{var r,i=n;this[i(11365)]+=(null==(r=t.blocks[e][i(11175)])?void 0:r[i(449)])||0}));const a=Math[n(784)](Math[n(428)](s,.5));let o=Date.now();const c=t=>__async(this,null,(function*(){var r=n;if(e&&(t%a==0||t===s-1)){e(new ProgressEvent(r(11414),{loaded:t+1,total:s}));const n=500,i=Date[r(802)]();(i-o>n||t===s-1)&&(yield Viewer3DUtils[r(4815)](0),o=i)}})),l={};t[n(4232)].LAYOUT[n(604)]((t=>{const e=t;l[e[n(10908)]]=e}));const h={},u=t=>{var e=n;const r=t[e(1968)][e(4726)];let i=h[r];!i&&(i=[],h[r]=i),i[e(565)](t)},d={},p={},m=new Group;ObjectUtils[n(4714)](m);for(let e=0;et[n(542)]===a));!o&&(o=new Group,ObjectUtils.setSharedVariablesOfObject(o),o[n(542)]=a,o[n(1968)][n(11417)]=!0,m[n(747)](o)),i++,!p[a]&&(p[a]={object:o,layerObjects:{}});const h=p[a];let f;if(a!==_DXFLoader[n(11400)]){const t=l[a];!t[n(11418)]&&(t.directAssociatedLeafObjectSet=new Set),f=t.directAssociatedLeafObjectSet}if(this.enableMerge&&s.geometry){ObjectUtils[n(4714)](s);const e=s[n(1968)].layerName;!1===this[n(11419)](t,e)&&(s.visible=!1),!h[n(11420)][e]&&(h[n(11420)][e]=[]),h[n(11420)][e].push(s)}else o[n(747)](s),s[n(2152)]((e=>{var r=n;if(ObjectUtils[r(4714)](e),e[r(2063)]){const n=e[r(1968)][r(4726)];!1===this[r(11419)](t,n)&&(e[r(2122)]=!1),u(e),f&&f[r(747)](e)}}));yield c(e)}t[n(4232)].LAYOUT[n(604)]((e=>{var r=n;const i=e,s=i[r(10908)];if(this[r(11359)]&&s!==_DXFLoader[r(11400)])return;const a=i.associatedBlockName,o=t[r(7573)][a];o&&this.drawLayout(o,t,i,m,h,d)})),log.debug(n(11421)+(Date.now()-r)/1e3+"s");for(const t in p){const e=p[t],r=e[n(469)];let i;if(t!==_DXFLoader.MODEL_LAYOUT_NAME){const e=l[t];!e.directAssociatedLeafObjectSet&&(e.directAssociatedLeafObjectSet=new Set),i=e.directAssociatedLeafObjectSet}for(const t in e[n(11420)]){const s=e[n(11420)][t],a=MergeUtils[n(4733)](s,void 0,!1,!1,!0),o=a.added,c=a[n(756)];if(c[n(449)]!==s[n(449)]){let t=c;c[n(449)]>=100&&(t=new Set(c));const e=e=>Array[n(468)](t)?t.indexOf(e)>=0:t.has(e);for(let t=0,a=s[n(449)];t{v+=t})),this.enableRTC&&log[n(1178)](n(11431)+this[n(11427)].rebasedEntityCount+n(6945)+v+n(11432)),this[n(11413)]){const t=MergeUtils[n(4717)];log.debug("[DxfLoader] Inner merged "+t[n(4718)]+" objects to "+t.mergedMeshes+n(11433)+t.mergedLines+n(11434)+t.mergedPoints+n(11435)+(t[n(4722)]?t[n(4722)]+n(11436):"")+n(11437)+t[n(3850)]/1e3+"s")}const _=(t,e,...r)=>{var i=n;Object[i(477)](e).length};_(n(11438),this.statsInfo[n(11439)]),_(n(11440),this[n(11427)][n(11441)]),_(0,this[n(11427)][n(11442)],n(11443)),_(n(11444),this[n(11427)].invisibleEntities),_(n(11445),this[n(11427)][n(11446)]),_(n(11447),this[n(11427)][n(11448)]),this.ignorePaperSpace&&_(n(11449),this[n(11427)].ignoredPaperSpaceEntityTypesAndCount),this[n(904)].unsupportedChars&&_(0,this[n(904)][n(11337)]),this[n(11370)]&&(this[n(11450)](),this[n(11451)](t)),log[n(1175)](n(11452)+(Date[n(802)]()-r)/1e3+"s");const g=__spreadProps(__spreadValues({},t),{threejsObject:m,layersAndThreejsObjects:h,loadedEntityCount:i,layoutViewportsMap:d});return Promise[n(440)](g)}))}[nz(11453)](t,e,n,r){return __async(this,null,(function*(){var i=f;const s=t[i(11175)][i(449)],a=e[i(11175)].length,o=()=>__async(this,null,(function*(){var o,c=i;const l=this[c(11374)],h=l[c(11454)],u=h?t:e,d=new Group,f=h?s:a,p=u[c(11175)][c(449)];this.entityCount=p,Object[c(477)](u[c(7573)])[c(604)]((t=>{var e,n=c;this.entityCount+=(null==(e=u[n(7573)][t].entities)?void 0:e.length)||0}));const m=Math[c(784)](Math[c(428)](f,.5));let v=Date[c(802)]();const _=t=>__async(this,null,(function*(){var e=c;if(r&&(t%m==0||t===f-1)){let n=t+1;!h&&(n+=s),r(new ProgressEvent("parseProgress",{loaded:n,total:s+a}));const i=500,o=Date[e(802)]();(o-v>i||t===f-1)&&(yield Viewer3DUtils[e(4815)](0),v=o)}}));this[c(11403)](u.header);const g={};for(let t=0;t{var e=c;if(t.geometry){const n=t[e(1968)][e(4726)];!1===this[e(11419)](u,n)&&(t[e(2122)]=!1);let r=g[n];!r&&(r=[],g[n]=r),r.push(t)}})),yield _(t)}const y=u;y[c(11455)]=d,d[c(2155)](!0),y[c(11456)]=g,y[c(11457)]={},h&&!l.preservedHandles&&(l.preservedHandles=new Set);for(const t in n){const e=n[t];h&&(e[c(452)]===c(11458)||"Modified"===e[c(452)])&&(null==(o=l[c(11459)])||o.add(e[c(4969)]),e[c(11460)]&&e[c(11460)][c(604)]((t=>{var e,n=c;return null==(e=l[n(11459)])?void 0:e[n(747)](t)})));let r=this[c(11380)]&&this[c(11380)][e[c(4969)]];e[c(11460)]&&(r=this[c(11380)]&&this[c(11380)][e[c(11460)][e[c(11460)][c(449)]-1]]),r&&(r=this[c(11461)](r,e)),e[c(452)]!==c(11462)&&r&&(e[c(452)]===c(11458)?!h&&(e.box=(new Box3).setFromObject(r)):e.type===c(11463)?h&&(e[c(4144)]=(new Box3).setFromObject(r)):e[c(452)]===c(11464)&&(e.box?e.box[c(1255)]((new Box3)[c(4143)](r)):e[c(4144)]=(new Box3)[c(4143)](r)))}_DXFLoader.merge(y)}));let c=Date[i(802)]();this[i(11374)]={changes:n,isTheFirstFile:!0},CommonUtils[i(11465)]("Before loading entities for first dxf"),yield o(),log.info(i(11466)+(Date[i(802)]()-c)/1e3+"s"),CommonUtils[i(11465)](i(11467)),this.releaseCachedData(!1),this[i(11451)](t),CommonUtils[i(11465)](i(11468)),c=Date[i(802)](),this[i(11374)][i(11454)]=!1,yield o(),log.info(i(11469)+(Date[i(802)]()-c)/1e3+"s");for(const t of Object.values(n))!t.box&&delete n[t[i(4969)]];this[i(11374)][i(11459)]=void 0,this[i(11370)]&&(this[i(11450)](),this[i(11451)](e)),CommonUtils[i(11465)](i(11470))}))}[nz(11461)](t,e){var n=nz;const r=(t,e)=>{t.traverse((t=>{var n=f;if(t[n(2178)])if(t[n(2178)]instanceof LineBasicMaterial)t[n(2178)]=this[n(11474)](e);else if(t[n(2178)]instanceof MeshBasicMaterial)t[n(2178)]=this[n(11475)](e);else if(t[n(2178)]instanceof PointsMaterial)t[n(2178)]=this[n(11476)](e);else if(t.material instanceof ShaderMaterial){const r=t[n(2178)][n(1014)]();this[n(11477)](r),r[n(2377)][n(4646)][n(439)][n(540)](e),t[n(2178)]=r}}))},i=(t=>{var e,n=f;let r=DxfCompare[n(11471)];return"Added"===t[n(452)]?r=DxfCompare[n(11472)]:"Removed"===t[n(452)]?r=DxfCompare[n(11473)]:t.type===n(11464)&&(r=(null==(e=this.compareContext)?void 0:e.isTheFirstFile)?DxfCompare[n(11473)]:DxfCompare[n(11472)]),r})(e);return t[n(2152)]((s=>{var a=n;e[a(11460)]?s[a(1968)]&&s[a(1968)][a(4969)]&&s[a(1968)][a(4969)]===e.handle&&(r(s,i),t=s):r(s,i)})),t}[nz(11450)](t=!0){var e=nz;t&&(this[e(11361)]={},this.lineBasicMaterials={},this[e(11478)]={},this[e(11363)]={},this[e(11364)]={},this[e(11479)]=[]),this[e(5744)]=void 0,this[e(11375)]={},this[e(11376)]=void 0,this.blocksCache=void 0,this.entitiesCache=void 0,this[e(11378)]=void 0,this[e(11379)]=void 0,this.entityThreejsCache=void 0,this[e(11381)]=void 0,this[e(11384)]={},this[e(11427)]={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0}}[nz(11480)](t){var e=nz;t.vertices&&(t.vertices=void 0),t[e(10970)]&&(t[e(10970)]=void 0),t[e(7195)]&&(t[e(7195)]=void 0),t[e(11070)]&&(t[e(11070)]=void 0),t.text&&(t[e(3775)]=void 0),t[e(10909)]&&(t[e(10909)]=void 0),t.contextData&&(t.contextData=void 0);const n=t;n.boundaryPaths&&(n.boundaryPaths=[]),n.patternLines&&(n[e(11481)]=void 0)}[nz(11451)](t){var e=nz;delete t.objects[e(11482)],delete t[e(4232)].SORTENTSTABLE,delete t[e(4232)][e(11155)],delete t[e(11172)][e(11241)],delete t[e(11172)][e(10900)],delete t[e(11172)][e(590)],delete t[e(11172)].blockRecord,t[e(11175)]=[],t[e(7573)]={}}drawEntity(t,e,n,r=!1){var i=nz;if(this[i(11374)]&&this[i(11374)].preservedHandles&&this.compareContext[i(11459)][i(546)](t[i(4969)])&&NestCompareTypes[i(667)](t.type)&&(r=!0),!r&&this[i(11374)]&&this[i(11374)].preservedHandles&&!NestCompareTypes[i(667)](t.type)&&!this.compareContext[i(11459)].has(t[i(4969)])&&(!n||n&&!this[i(11374)][i(11459)].has(n[i(4969)])))return;if(!0===this[i(11483)](e,t)){const e=t[i(11187)];return!this[i(11427)].ignoredFrozenLayersAndEntityCount[e]&&(this.statsInfo[i(11446)][e]=0),void this[i(11427)][i(11446)][e]++}if(!1===t[i(2122)]||t.invisible)return!this[i(11427)].invisibleEntities[t.type]&&(this.statsInfo[i(11484)][t[i(452)]]=0),void this[i(11427)][i(11484)][t[i(452)]]++;if(this[i(11359)]&&t[i(10904)])return!this[i(11427)].ignoredPaperSpaceEntityTypesAndCount[t[i(452)]]&&(this[i(11427)][i(11485)][t[i(452)]]=0),void this[i(11427)][i(11485)][t[i(452)]]++;!this.entityThreejsCache&&(this[i(11380)]={});const s=Date[i(802)]();let a,o=!1;if(!this.compareContext&&this.entityThreejsCache[t[i(4969)]])a=this[i(11380)][t[i(4969)]][i(1014)](),o=!0;else if(!this[i(11427)].unsupportedEntity[t[i(4969)]]){if(t[i(452)]===i(10936)||t[i(452)]===i(10915))a=this[i(11486)](t,e,n);else if("LINE"===t.type||t[i(452)]===i(11487))a=this.drawLine(t);else if("XLINE"===t[i(452)])a=this[i(11488)](t);else if(t[i(452)]===i(11085));else if(t.type===i(11086))a=this[i(11489)](t);else if(t.type===i(11490))a=this[i(11491)](t,e,n);else if("3DFACE"===t.type)a=this[i(11492)](t);else if(t.type===i(11100))a=this.drawText(t,e,n);else if(t[i(452)]===i(11090))a=this[i(11493)](t,e,n);else if(t.type===i(11071))a=this[i(11494)](t,e,n);else if(t[i(452)]===i(10833))a=this[i(11495)](t,e,r);else if("SPLINE"===t[i(452)])a=this[i(11496)](t);else if(t.type===i(11062))a=this.drawMText(t,e,n);else if(t[i(452)]===i(10946))a=this[i(11497)](t,e,n);else if(t[i(452)]===i(10834))a=this[i(11498)](t,e);else if("REGION"===t[i(452)]);else if("ATTDEF"===t[i(452)])a=this[i(11499)](t,e,n);else if(t[i(452)]===i(10934)){if(!n)for(let r=0;r{var o=i;ObjectUtils[o(4714)](a),a[o(1962)]=matrixAutoUpdate,a.updateMatrix(),a[o(2063)]&&(!1===s&&(a.userData[o(11505)]=!1),a.userData[o(4726)]=r,this[o(3414)](a,t,e,n))})),!o&&(this[i(11382)][i(546)](t[i(452)])&&a.traverse((t=>{var e=i;t.layers[e(540)](layerForNonSnapableObjects)})),this[i(11368)]&&(this.entityHandlesWithRenderOrder[t.handle]?a[i(2125)]=parseInt(this.entityHandlesWithRenderOrder[t[i(4969)]],16)+.1:a[i(2125)]=parseInt(t[i(4969)],16)))}return!NestCompareTypes.includes(t[i(452)])&&(!this[i(11381)]&&(this.entityTypesAndTimes={}),!this[i(11381)][t[i(452)]]&&(this[i(11381)][t.type]={createCount:0,totalTime:0,averageTime:0}),this[i(11381)][t[i(452)]][i(11424)]++,this[i(11381)][t[i(452)]][i(11423)]+=Date[i(802)]()-s),a?this.statsInfo.entityTypesAndMeshCount[t[i(452)]]?this[i(11427)][i(11428)][t[i(452)]]++:this[i(11427)][i(11428)][t[i(452)]]=1:(this[i(11427)][i(11439)][t[i(452)]]?this[i(11427)].unsupportedEntityTypes[t[i(452)]]++:this[i(11427)][i(11439)][t[i(452)]]=1,!NestCompareTypes.includes(t[i(452)])&&(this[i(11427)].unsupportedEntity[t[i(4969)]]?this[i(11427)][i(11506)][t[i(4969)]]++:this[i(11427)][i(11506)][t[i(4969)]]=1)),a}[nz(11497)](t,e,n){var r=nz;if(!t.majorAxisEndPoint||!t[r(1960)]||void 0===t[r(10948)]||void 0===t[r(10918)]||void 0===t[r(10916)])return;let i=t[r(10918)],s=t[r(10916)];if(t[r(10949)]&&t.extrusionDirection.z<0&&(i=2*Math.PI-t.endAngle,s=2*Math.PI-t[r(10918)]),MathUtils2[r(4560)](i,s,1e-5))return void log[r(1176)]("[DxfLoader] Ellipse entity (handle '%s') contains the same start and end angle, ignored!",t[r(4969)]);let a=s-i;for(;a>2*Math.PI;)a-=2*Math.PI;Math[r(694)](a)<=1e-5&&(s=MathUtils2[r(4559)](i+2*Math.PI,5));const o=Math[r(761)](Math[r(428)](t[r(10947)].x,2)+Math[r(428)](t[r(10947)].y,2)),c=o*t[r(10948)],l=Math[r(1883)](t[r(10947)].y,t.majorAxisEndPoint.x),h=new EllipseCurve(t[r(1960)].x,t[r(1960)].y,o,c,i,s,!1,l);let u=1;const d=n;(null==d?void 0:d[r(10927)])&&(null==d?void 0:d[r(10975)])&&(u=Math[r(486)](Math[r(694)](d[r(10927)]),Math[r(694)](d[r(10975)])));const f=this[r(11507)](i,s,Math.max(o,c)*u),p=h[r(3545)](f),m=[],v=p.length;for(let t=0;t{var e=r;t[e(2063)]&&t.geometry[e(2078)](u,d,0)})),t[r(1961)]&&(o[r(1961)].z=t[r(1961)]*Math.PI/180),t[r(11087)]){const e=t.directionVector,n=new Vector3(e.x,e.y,e.z),i=n[r(1014)]()[r(1880)](XAxis),s=new Vector3(1,0,0)[r(2014)](n);o[r(2136)](i.z>0?-s:s)}return a[r(11514)]>1?o[r(2065)].y-=c.y+a.style[r(10926)]:o[r(2065)].y-=c.y,o}[nz(11515)](t,e,n,r,i){var s,a=nz;if(0===t[a(449)])return;let o=(i?i.style[a(10926)]:e.textHeight)||0;if(e[a(10923)]){const t=n[a(11172)].style[a(11239)][e.textStyle];o=o||t[a(10926)]}const c=o/1.5,l=o/2,h=new Group;for(let o=0;o{var e=n;s&&s[s[e(449)]-1]&&s[s[e(449)]-1][e(10903)]===t[e(10903)]?s[s[e(449)]-1].text+=t[e(3775)]:s[e(565)](t)})),i=t[n(11514)]}else if(typeof o===n(469))if(o.S&&3===o.S[n(449)]){const t=o.S[0]+"/"+o.S[2],e=this[n(11520)](t);s&&s[s[n(449)]-1]&&void 0===s[s[n(449)]-1][n(10903)]?s[s[n(449)]-1][n(3775)]+=t:s[n(565)]({text:o.S[0]+"/"+o.S[2],lineNum:i}),i+=e}else if(void 0!==o.C&&(a++,typeof t[a]===n(470))){const e=this[n(11520)](t[a]);s&&s[s[n(449)]-1]&&s[s[n(449)]-1][n(10903)]===o.C?s[s[n(449)]-1][n(3775)]+=t[a]:s[n(565)]({colorIndex:o.C,text:t[a],lineNum:i}),i+=e}}return{text:s,lineLength:i,style:r}}getTextLineNum(t){var e=nz;const n=t[e(522)](new RegExp("\\n","g"));return n?n[e(449)]:0}[nz(11492)](t){var e=nz;if(!t[e(3614)]||0===t[e(3614)][e(449)])return void log[e(1176)](e(11521),t[e(4969)]);const n=t[e(3614)][e(679)]((t=>new Vector3(t.x,t.y,t.z)));if(0===n[e(449)])return;!MathUtils2[e(4562)](n[0],n[n[e(449)]-1])&&n[e(565)](n[0]);const r=new Vector3;let i=!1;this[e(11372)]&&(i=GeometryUtils[e(4601)](n,r));const s=(new BufferGeometry)[e(2054)](n),a=new Line(s,Default_LineMaterial);return i&&(this[e(11509)](a),a[e(2065)].x+=r.x,a[e(2065)].y+=r.y),a.renderOrder=2,a}[nz(11496)](t){var e=nz;if(!t.controlPoints||!t.degreeOfSplineCurve||!t.knotValues)return;const n=this.getBSplinePolyline(t[e(7195)],t[e(11097)],t.knotValues,20),r=new Vector3;let i=!1;this[e(11372)]&&(i=GeometryUtils[e(4601)](n,r));const s=GeometryUtils[e(4612)](n);if(s[e(449)]<2)return void log[e(1176)](e(11522),t[e(4969)]);const a=(new BufferGeometry)[e(2054)](s),o=new Line(a,Default_LineMaterial);return i&&(this[e(11509)](o),o.position.x+=r.x,o.position.y+=r.y),o}[nz(11523)](t,e,n,r=t[nz(449)],i){var s=nz;const a=[],o=t[s(679)]((t=>[t.x,t.y])),c=[n[e]],l=[n[e],n[n[s(449)]-1-e]];for(let t=e+1;tnew Vector3(t.x,t.y,0)));if(r[e(565)](n[e(1878)](1e6)[e(747)](r[0])),0===r[e(449)])return;const i=new Vector3;let s=!1;this[e(11372)]&&(s=GeometryUtils[e(4601)](r,i));const a=(new BufferGeometry)[e(2054)](r),o=new Line(a,Default_LineMaterial);return s&&(this.setRTCUserData(o),o[e(2065)].x+=i.x,o[e(2065)].y+=i.y),o[e(2125)]=2,o}drawLine(t){var e=nz;if(!t[e(3614)]||0===t[e(3614)].length)return void log[e(1176)](e(11521),t[e(4969)]);let n=[];if(t.isPolyfaceMesh)n=getPolyfaceMeshPoints(t[e(3614)]);else{const r=getLinePoints(t[e(3614)],t[e(3639)]);t[e(3639)]&&r[e(449)]>0&&r[e(565)](r[0]),r[e(449)]>0&&(n=[r])}if(0===n[e(449)])return;const r=[];for(let t=0;t0){if(this[e(11372)]){let t=0;n[e(604)]((n=>{var r=e;n[r(604)]((e=>{i[r(747)](e),t++}))})),i[e(1877)](t),a=GeometryUtils[e(4602)](i)}const t=[],r=[];let o=0,c=0,l=0,h=0;n[e(604)]((n=>{var s=e;for(let e=0;e0&&r[s(565)](o+e-1,o+e);o=n.length}));const u=(new BufferGeometry)[e(2054)](t);u.setIndex(r),s=new LineSegments(u,Default_LineMaterial)}if(r[e(449)]>0){this.enableRTC&&(a=GeometryUtils[e(4601)](r,i));const t=(new BufferGeometry)[e(2054)](r);s=new Points(t,Default_PointMaterial)}return s?(a&&(this[e(11509)](s),s.position.x+=i.x,s[e(2065)].y+=i.y),s):void 0}[nz(11491)](t,e,n){var r,i=nz;if(!t.vertices||t.vertices[i(449)]<2)return void log[i(1176)](i(11524),t[i(4969)]);const s=t;if(void 0!==s[i(10919)]&&void 0!==s.extrusionDirectionY&&void 0!==s[i(10921)]){tempVector2[i(540)](s[i(10919)],s[i(10920)],s.extrusionDirectionZ);const t=_DXFLoader[i(11525)](tempVector2)[i(1465)]();let e=0;void 0!==s[i(11125)]&&s.elevation>0&&(e=s[i(11125)]),s.vertices[i(604)]((n=>{var r=i;const s=tempVector2[r(540)](n.x,n.y,e)[r(2028)](t);n.x=s.x,n.y=s.y}))}const a=getLinePoints(t[i(3614)],t[i(3639)]);if(t[i(3639)]&&a[i(449)]>0&&!MathUtils2[i(4562)](a[0],a[a[i(449)]-1])&&a.push(a[0]),a[i(449)]<2)return void log[i(1176)](i(11524),t[i(4969)]);if(null==(r=t[i(10909)])?void 0:r[i(10911)]){t[i(10909)][i(10911)][i(604)]((t=>{var e=i;const n=t[e(679)]((t=>new Vector3(t[0],t[1],0)));!MathUtils2[e(4565)](n[0],n[n.length-1])&&n[e(565)](n[0]),a.push(...n)}))}const o=new Vector3;let c=!1;this.enableRTC&&(c=GeometryUtils[i(4601)](a,o));const l=GeometryUtils[i(4612)](a);if(l[i(449)]<2)return void log.warn(i(11524),t[i(4969)]);let h;if(this.enableWidthLine&&void 0!==s[i(11e3)]&&s[i(11e3)]>1){const r=e[i(11172)].lineType[i(11526)][this[i(11527)](t,e,n)];if(!r||!r[i(11214)]||0===r.pattern[i(449)]){const e=GeometryUtils[i(4611)](l,s.constantWidth);if(e){const t=new Mesh(e,Default_MeshMaterial);h=new Group,h[i(747)](t);const n=ObjectUtils[i(4709)](e,t[i(1963)],Default_LineMaterial);n[i(2160)].set(layerForNonSnapableObjects),h[i(747)](n)}else log.warn(i(11528),t[i(4969)])}}return!h&&(h=new Line((new BufferGeometry).setFromPoints(l),Default_LineMaterial)),c&&(this[i(11509)](h),h.position.x+=o.x,h[i(2065)].y+=o.y,h[i(2065)].z+=o.z),h}[nz(11529)](t,e,n){var r,i,s,a,o,c,l,h,u=nz;const d=e.tables.dimStyle.dimStyles[t[u(10981)]]||this[u(11530)](e),f=new Group,p=parseDxfMTextContent(null==(r=t[u(11005)])?void 0:r[u(11036)]),m=this[u(11513)](p,t),v=this[u(11515)](m.text,t,e,n,m);if(v){(null==(i=t[u(11005)])?void 0:i.textLocation)&&(v[u(2065)].x+=t.contextData.textLocation.x,v[u(2065)].y+=t[u(11005)][u(11037)].y);const e=(null==(s=t.contextData)?void 0:s[u(10982)])||1;switch(m[u(590)][u(11518)]){case u(683):break;case"center":e&&(v[u(2065)].x+=e/2);break;case u(935):e&&(v[u(2065)].x+=e)}const n=(new Box3)[u(4143)](v).getSize(tempVector2),r=n.x,l=n.y;let h=0,d=0;switch(null==(a=t[u(11005)])?void 0:a[u(11040)]){case 1:h=0,d=0;break;case 2:h-=r/2,d=0;break;case 3:h-=r,d=0;break;case 4:h=0,d+=l/2;break;case 5:h-=r/2,d+=l/2;break;case 6:h-=r,d+=l/2;break;case 7:h=0,d+=l;break;case 8:h-=r/2,d+=l;break;case 9:h-=r,d+=l;break;default:return}if(v.traverse((t=>{var e=u;t[e(2063)]&&t[e(2063)][e(2078)](h,d,0)})),(null==(o=t[u(11005)])?void 0:o.textRotation)&&(v.rotation.z=t[u(11005)][u(11531)]*Math.PI/180),null==(c=t.contextData)?void 0:c[u(11038)]){const e=t[u(11005)][u(11038)],n=new Vector3(e.x,e.y,e.z),r=n[u(1014)]()[u(1880)](new Vector3(1,0,0)),i=new Vector3(1,0,0)[u(2014)](n);v[u(2136)](r.z>0?-i:i)}v.renderOrder=5,f.add(v)}if(0===t.leaderLineType)return v;{const n=[],r=null==(l=t[u(11005)])?void 0:l[u(11057)][0];if(!r)return f;const i=r[u(11532)];if(t[u(11011)]){const t=new Vector3(i.x,i.y,i.z),e=r[u(11010)],s=new Vector3(r[u(11533)].x,r[u(11533)].y,r[u(11533)].z).multiplyScalar(e),a=t[u(1014)]()[u(747)](s);n[u(565)](a,t)}const s=(null==(h=t[u(11005)])?void 0:h[u(11057)][0].leaderLines)||[];for(let r=0;rnew Vector3(t.x,t.y,t.z)));let o=new Vector3(i.x,i.y,i.z);for(let t=0;t0?(l.add(f),MergeUtils[r(2351)](l,!1),l):f}[nz(11535)](t,e,n,r){var i=nz;const s=n*(t.x-e.x),a=n*(t.y-e.y),o=a,c=-s,l=new Vector3(e.x+s+o/6,e.y+a+c/6,0),h=new Vector3(e.x+s-o/6,e.y+a-c/6,0);r[i(565)](e,l),r[i(565)](e,h),r[i(565)](l,h)}getBlockByHandle(t,e){var n=nz;if(!this[n(11377)]){this[n(11377)]={};for(const e in t){const r=t[e];!this[n(11377)][r.ownerHandle]&&(this[n(11377)][r[n(10905)]]=r)}}return this[n(11377)][e]}static[nz(11539)](t,e){var n=nz;const r=tempVector2.set(1*Math[n(1852)](e),1*Math[n(1853)](e),0)[n(2028)](t);return Math.atan2(r.y,r.x)}static[nz(11540)](t,e,n){var r=nz;let i=MathUtils2.getArcAngleSpanRad(e,n);const s=_DXFLoader[r(11539)](t,e),a=_DXFLoader.transformAngleByOcsMatrix(t,n);let o;if(MathUtils2[r(4563)](i,Math.PI)){i=1;const n=_DXFLoader.transformAngleByOcsMatrix(t,e+i);o=MathUtils2[r(4566)](s,n)}else{if(MathUtils2[r(4563)](i,2*Math.PI))return[s,s+2*Math.PI];o=MathUtils2[r(4566)](s,a)}return MathUtils2.areNumbersClose(i,o,1e-8)?[s,a]:[a,s]}[nz(11486)](t,e,n){var r,i,s,a=nz;if(!t[a(2041)]||t[a(2041)]<.001)return void log[a(1176)](a(11541)+t.handle+"') is undefined, ignored!");if(!t[a(2041)]||t[a(2041)]<.001)return void log[a(1176)](a(11541)+t[a(4969)]+a(11542));const o=new Vector3(0,0,1);void 0!==t.extrusionDirectionX&&void 0!==t[a(10920)]&&void 0!==t[a(10921)]&&o[a(540)](t[a(10919)],t[a(10920)],t[a(10921)]);const c=_DXFLoader.getOcsMatrix(o);let l,h;if("CIRCLE"===t[a(452)])l=t[a(10918)]||0,h=l+2*Math.PI;else{if(null==t[a(10918)]||null==t[a(10916)])return;if(l=t[a(10918)],h=t[a(10916)],MathUtils2[a(4560)](l,h,.001))return;if(!MathUtils2.areNumbersClose(MathUtils2[a(4566)](l,h),2*Math.PI)){const t=_DXFLoader[a(11540)](c,l,h);l=t[0],h=t[1]}}const u=new ArcCurve(0,0,t[a(2041)],l,h,0!==this[a(11409)]);let d=1;const f=n;(null==f?void 0:f[a(10927)])&&(null==f?void 0:f[a(10975)])&&(d=Math[a(486)](Math.abs(f[a(10927)]),Math[a(694)](f[a(10975)])));const p=this[a(11507)](l,h,t[a(2041)]*d),m=u[a(3545)](p),v=new Vector3;let _=!1;this[a(11372)]&&(_=GeometryUtils[a(4601)](m,v));const g=(new BufferGeometry)[a(2054)](m),y=new Line(g,Default_LineMaterial),E=new Vector3;t.center&&(E.x=t[a(1960)].x,E.y=t[a(1960)].y);const T=new Vector3(null==(r=t[a(1960)])?void 0:r.x,null==(i=t[a(1960)])?void 0:i.y,null==(s=t[a(1960)])?void 0:s.z)[a(2028)](c.invert());return E.x=T.x,E.y=T.y,y[a(2065)][a(1867)](E),_?(this[a(11509)](y),y[a(2065)].x+=v.x,y.position.y+=v.y):GeometryUtils[a(4602)](y[a(2065)])&&this[a(11509)](y),y}[nz(11543)](t,e,n,r){var i=nz;const s=new Vector3,a=new Vector3;s[i(1872)](n,e),a[i(1872)](r,e),s.cross(a);const o=new Vector3(e.x,e.y,e.z),c=new Vector3(n.x,n.y,n.z),l=new Vector3(r.x,r.y,r.z);s.z<0?t[i(565)](l,c,o):t.push(o,c,l)}[nz(11493)](t,e,n){var r=nz;const i=t[r(2985)];if(!i||i.length<4)return;if(t[r(10949)]&&t[r(10949)].z){tempVector2[r(540)](0,0,t[r(10949)].z);const e=_DXFLoader[r(11525)](tempVector2)[r(1465)]();i[r(604)]((t=>{var n=r;const i=tempVector2.set(t.x,t.y,0)[n(2028)](e);t.x=i.x,t.y=i.y}))}const s=[],a=[];this.addTriangleFacingCamera(s,i[0],i[1],i[2]),a.push(0,1,2),this[r(11543)](s,i[1],i[2],i[3]),a.push(3,4,5);const o=new Vector3;let c=!1;this[r(11372)]&&(c=GeometryUtils[r(4601)](s,o));const l=(new BufferGeometry)[r(2054)](s);l[r(2332)](a);const h=new Mesh(l,Default_MeshMaterial);return c&&(this[r(11509)](h),h[r(2065)].x+=o.x,h[r(2065)].y+=o.y),h}getDefaultTextStyle(t){var e=nz;return t[e(11172)][e(590)][e(11239)][e(9083)]||t[e(11172)].style[e(11239)][e(11544)]||{}}[nz(11530)](t){var e=nz;return t[e(11172)][e(11241)][e(11240)].STANDARD||t[e(11172)][e(11241)][e(11240)].Standard||{}}[nz(11512)](t){var e=nz;return t[e(11221)]?t.bigFontFile.toUpperCase()[e(891)]("GB")?e(11313):"utf8":e(7475)}[nz(11516)](t,e,n,r,i){var s=nz;if(!t)return;e.textStyle&&(!this[s(11427)].unsupportedTextStyles[e[s(10923)]]&&(this.statsInfo.unsupportedTextStyles[e.textStyle]=0),this[s(11427)].unsupportedTextStyles[e[s(10923)]]++);let a,o=(i?i.style[s(10926)]:e[s(10926)])||0,c=.67;const l={_TCH_DIM:1.45};if(e[s(10923)]&&l[e[s(10923)]]&&(c=l[e[s(10923)]]),e[s(10927)]&&(c*=e[s(10927)]),e[s(10923)]){const t=n[s(11172)][s(590)][s(11239)][e[s(10923)]];c*=(null==t?void 0:t[s(10927)])||1,o=o||t[s(10926)]}let h=0;if(e[s(999)]&&(h=e.width/c+2),e[s(11005)]&&e[s(11005)][s(10982)]&&e[s(11005)][s(10926)]t[s(11291)]())));r[s(1901)](c,1,1),a=new LineSegments(r,Default_LineMaterial)}else if(this[s(904)]instanceof Font){const e={font:this[s(904)],height:0,size:o||12,curveSegments:3,bevelSegments:3},n=new TextGeometry(t,e);a=new Mesh(n,Default_MeshMaterial)}return a}transformTextMesh(t,e){var n=nz;const r=(new Box3)[n(4143)](e)[n(2060)](tempVector2),{halign:i,valign:s}=t,a=t[n(999)]||r.x,o=r.y;if(void 0===i&&void 0===s&&t.startPoint?(e[n(2065)].x+=t[n(10924)].x,e[n(2065)].y+=t[n(10924)].y,e[n(2065)].z+=t[n(10924)].z):[3,5][n(667)](i)&&t[n(10924)]?(e[n(2065)].x+=t[n(10924)].x,e.position.y+=t[n(10924)].y,e[n(2065)].z+=t[n(10924)].z):t.endPoint&&(e.position.x+=t[n(10925)].x,e.position.y+=t[n(10925)].y,e[n(2065)].z+=t.endPoint.z),3!==i&&5!==i){if(t[n(1961)]){const r=t[n(1961)]*Math.PI/180;e[n(2136)](r)}2===t[n(10931)]?e[n(2135)](Math.PI):4===t[n(10931)]&&e[n(2133)](Math.PI)}switch(i){case 0:default:break;case 1:e.translateX(-a/2);break;case 2:e[n(2138)](-a);break;case 3:if(t[n(10924)]&&t[n(10925)]){const r=new Vector3(t.startPoint.x,t.startPoint.y,t[n(10924)].z),i=new Vector3(t[n(10925)].x,t[n(10925)].y,t[n(10925)].z),s=(new Vector3).subVectors(r,i),o=s.length()/a;e[n(1901)][n(1878)](o);const c=s.clone()[n(1880)](XAxis),l=s.angleTo(XAxis);e[n(2136)](c.z>0?Math.PI-l:l-Math.PI),(2===t[n(10931)]||4===t.mirrored)&&e[n(2133)](Math.PI)}break;case 4:e[n(2138)](-a/2),e[n(11517)](-o/2);break;case 5:if(t[n(10924)]&&t[n(10925)]){const r=new Vector3(t[n(10924)].x,t[n(10924)].y,t[n(10924)].z),i=new Vector3(t[n(10925)].x,t[n(10925)].y,t[n(10925)].z),s=(new Vector3)[n(1872)](r,i),o=s[n(449)]()/a;e.scale[n(1863)](o);const c=s[n(1014)]()[n(1880)](XAxis),l=s.angleTo(XAxis);e[n(2136)](c.z>0?Math.PI-l:l-Math.PI),(2===t.mirrored||4===t.mirrored)&&e[n(2133)](Math.PI)}}switch(s){case 0:case 1:default:break;case 2:e.translateY(-o/2);break;case 3:e[n(11517)](-o)}return e[n(2065)].z=0,e}[nz(11546)](t,e,n){var r=nz;let i=t.text;if(!i||!this.font)return;const s=e.tables[r(590)][r(11239)][t.textStyle]||this[r(11547)](e);i=parseDxfTextContent(i,{encoding:this[r(11512)](s)})[r(679)]((t=>t[r(3775)]))[r(549)]("");const a=this[r(11516)](i,t,e,n);if(!a)return;const o=a[r(2063)];if(a instanceof Mesh&&!o[r(3618)]()){const t=o.getAttribute(r(2065)),e=[];for(let n=0;nt[r(3775)])).join();const s=this.getTextMesh(i,t,e,n);if(!s)return;const a=s.geometry;if(a[r(2335)]("uv")&&a[r(2596)]("uv"),a[r(2335)]("normal")&&a[r(2596)](r(655)),this[r(11548)](t,s),GeometryUtils[r(4602)](s[r(2065)]))this[r(11509)](s);else{const t=GeometryUtils[r(4597)](a);t&&GeometryUtils[r(4602)](t)&&this[r(11509)](s)}return s}[nz(11549)](t,e,n){var r=nz;let i=t[r(3775)];if(!i||!this[r(904)])return;i=parseDxfTextContent(i)[r(679)]((t=>t[r(3775)]))[r(549)]();const s=this[r(11516)](i,t,e,n);if(!s)return;const a=s[r(2063)];if(a[r(2335)]("uv")&&a.deleteAttribute("uv"),a.hasAttribute(r(655))&&a.deleteAttribute(r(655)),this[r(11548)](t,s),GeometryUtils[r(4602)](s.position))this[r(11509)](s);else{const t=GeometryUtils[r(4597)](a);t&&GeometryUtils.shouldRebasePositionOnRTC(t)&&this[r(11509)](s)}return s}drawPoint(t,e,n){var r=nz;if(!t[r(2065)])return;const i=new BufferGeometry,s=[new Vector3(t.position.x,t[r(2065)].y,t[r(2065)].z)];tempVector2[r(540)](0,0,0);const a=tempVector2;let o=!1;this[r(11372)]&&(o=GeometryUtils[r(4601)](s,a)),i.setFromPoints(s);const c=new Points(i,Default_PointMaterial);return o&&(this[r(11509)](c),c.position.x+=a.x,c[r(2065)].y+=a.y),c}[nz(11498)](t,e){var n=nz;if(!t[n(3369)])return;const r=e.blocks[t.block];if(!r||!r.entities)return;const i=e[n(11172)][n(11241)][n(11240)][t[n(11550)]]||this.getDefaultDimensionStyle(e);i&&i.DIMCLRD>0&&(t[n(10903)]=i.DIMCLRD,t[n(2231)]=getAcadColor(t[n(10903)]));let s=new Group;for(let i=0;i",s[n(1968)][n(11551)]=t[n(452)];const a=null==t?void 0:t[n(10939)];return a&&(s[n(2065)].x+=a.x,s.position.y+=a.y),GeometryUtils.shouldRebasePositionOnRTC(s.position)&&this[n(11509)](s),s}drawInsert(t,e,n=!1){var r=nz;if(!t[r(3369)])return;const i=e[r(7573)][t.block];if(!i[r(11175)])return;t[r(11552)]=i[r(2065)];let s=new Group;for(let a=0;a",s[r(1968)][r(11551)]=t[r(452)],(null==t?void 0:t[r(11552)])&&(s[r(2065)].x-=t[r(11552)].x,s[r(2065)].y-=t[r(11552)].y,s[r(2127)]());const a=tempVector2[r(540)](1,1,1);t[r(10927)]&&(a.x=t[r(10927)]),t[r(10975)]&&(a.y=t[r(10975)]);const o=new Euler;t[r(1961)]&&(o.z=t.rotation*Math.PI/180),tempQuaternion[r(2023)](o,!1);const c=tempVector22.set(0,0,0);t.position&&(c.x=t.position.x,c.y=t[r(2065)].y),tempMatrix3.compose(c,tempQuaternion,a),t[r(10949)]&&t.extrusionDirection.z<0&&tempMatrix3[r(2017)](scaleTempMatrix[r(1528)]()[r(2341)](-1,1,1)),translateTempMatrix[r(1867)](s[r(1963)]),s.applyMatrix4(tempMatrix3),GeometryUtils[r(4602)](s[r(2065)])&&this[r(11509)](s);const l=this[r(11553)](t[r(4969)],e);if(l){const e=this[r(11554)](l),n=l;n&&n.clipPolylines&&n[r(11555)][r(449)]>0&&(s[r(1968)][r(11556)]=l.handle,this.cloneMaterialsForSpatialFilter(s),e&&e[r(2028)](translateTempMatrix[r(1465)]()),log[r(1178)](r(11557),t[r(11558)]))}return s}[nz(11554)](t){var e=nz;const n=t;if(n[e(11455)])return n[e(11455)].clone();const r=t[e(11154)];tempMatrix3[e(540)](r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],0,0,0,1);const i=[];t[e(3614)][e(604)]((t=>{i[e(565)](new Vector3(t.x,t.y,0))}));const s={polyline:[],bConcave:!1,bReversed:!1};if(2===t.numberOfPointsOnClipBoundary)s[e(11559)]=i;else{const n=t[e(11148)],r=3;if(nt;s--){const c=i[s];if(MathUtils2.areVector3sEqual(r,c)&&t+10)break;a.push(r)}if(o>0)for(let t=o+1;t{c[e(565)](new Vector2(t.x,t.y)),l.push([t.x,t.y])})),!GeometryUtils[e(11561)](c)){log.warn("[DxfLoader] Concave polygon is not supported for spatial filter (handle '"+t[e(4969)]+e(11562));const n=(0,import_concaveman[e(435)])(l,1/0);a=[],n[e(604)]((t=>{a[e(565)](new Vector3(t[0],t[1],0))}))}!MathUtils2[e(4562)](a[0],a[a.length-1])&&a[e(565)](a[0]),s[e(11559)]=a,s[e(11563)]=o>0}return this[e(11370)]&&(t[e(3614)]=[],t[e(1963)]=[],t[e(11154)]=[]),n[e(11564)]=tempMatrix3.clone(),n[e(11555)]=[],void n[e(11555)][e(565)](s)}drawLayout(t,e,n,r,i,s){var a=nz;if(!t[a(11175)])return;let o;if(n[a(10908)]!==_DXFLoader[a(11400)]){const t=n;!t[a(11418)]&&(t[a(11418)]=new Set),o=t.directAssociatedLeafObjectSet}const c=new Group;ObjectUtils.setSharedVariablesOfObject(c);for(let n=0;n{var n=a;if(t.geometry){const r=t[n(1968)][n(4726)];!1===this[n(11419)](e,r)&&(t.visible=!1);let s=i[r];!s&&(s=[],i[r]=s),s.push(t),o&&o.add(t)}}))}}if(0===c[a(1602)][a(449)])return;c[a(1968)][a(4726)]=t[a(11187)];const l=n[a(10908)];let h=r[a(1602)][a(932)]((t=>t.name===l));!h&&(h=new Group,ObjectUtils[a(4714)](h),h[a(542)]=l,h[a(1968)][a(11417)]=!0,r.add(h)),h.add(c),t[a(2065)]&&c[a(2065)][a(540)](t[a(2065)].x,t.position.y,t[a(2065)].z||0),c[a(1962)]=matrixAutoUpdate,c.updateMatrix()}[nz(11565)](t){var e=nz;const n=[];switch(t.type){case 1:{const r=t;n[e(565)](new Vector2(r.startPoint.x,r.startPoint.y)),n.push(new Vector2(r[e(10925)].x,r[e(10925)].y));break}case 2:{const r=t;let i=r[e(10918)]*MathUtils.DEG2RAD,s=r.endAngle*MathUtils[e(5550)];!r.bCounterclockwise&&(i=2*Math.PI-i,s=2*Math.PI-s);const a=new ArcCurve(r[e(1960)].x,r[e(1960)].y,r[e(2041)],i,s,!r.bCounterclockwise),o=this[e(11507)](i,s,r[e(2041)]);n[e(565)](...a.getPoints(o));break}case 3:{const r=t,i=Math[e(761)](Math.pow(r.majorAxisEndPoint.x,2)+Math[e(428)](r[e(10947)].y,2)),s=i*r[e(10968)],a=Math[e(1883)](r.majorAxisEndPoint.y,r[e(10947)].x);let o=r.startAngle*MathUtils[e(5550)],c=r[e(10916)]*MathUtils[e(5550)];!r[e(10950)]&&(o=2*Math.PI-o,c=2*Math.PI-c);const l=new EllipseCurve(r[e(1960)].x,r[e(1960)].y,i,s,o,c,!r[e(10950)],a),h=this[e(11507)](o,c,Math[e(486)](i,s));n.push(...l[e(3545)](h));break}case 4:{const r=t;n[e(565)](...r.controlPoints);break}case 0:{const r=t;n[e(565)](...getLinePoints(r.points,r[e(7644)]));break}}return n}drawHatch(t,e,n){var r,i=nz;const s=t;if(0==s[i(10962)][i(449)])return;const a=[],o=[],c=[];if(s[i(10962)][i(604)](((t,e)=>{var n=i;if(this[n(11566)](t[n(10973)])){const r=n(11567);return void log[n(1175)](r,t[n(10973)],e,s[n(4969)])}const r=t[n(4592)];if(0===r[n(449)])return;const l=[];for(let t=0;t31){if(!(t=>{var e=n;for(let n=1;nnew Vector2(CommonUtils[n(11570)](t.x,7),CommonUtils[n(11570)](t.y,7))));if((null==h?void 0:h[n(449)])>0){a[n(565)](h);const t=(new Box2)[n(2054)](h);o[n(565)](t);const e=t.getSize(tempVec23),r=e.x*e.y;c[n(565)]({area:r,index:a[n(449)]-1})}})),0===a[i(449)])return;const l=new Vector2,h=this.checkAndRebasePolygonsOnRTC(a,l);c.sort(((t,e)=>{var n=i;return t[n(3626)]-e[n(3626)]}));const u=[];c[i(604)]((t=>{var e=i;u[e(565)](t[e(677)])}));const d=this[i(11571)](a,o,u),f=[];let p;if(this[i(11572)](a,d,f),f[i(449)]>0&&(p=mergeBufferGeometries(f)),!p||!p[i(3618)]()||0===(null==(r=p.getIndex())?void 0:r[i(2053)]))return void log[i(1176)](i(11573));const m=new Mesh(p,Default_MeshMaterial);m[i(2160)][i(540)](layerForNonSnapableObjects),this[i(11574)](m,s,e,l,n);const v=m;return h?(this[i(11509)](m),v.position.x+=l.x,v.position.y+=l.y):GeometryUtils[i(4602)](v[i(2065)])&&this[i(11509)](v),v}[nz(11503)](t,e){var n=nz;const{leftUpX:r,leftUpY:i,rightDownX:s,rightDownY:a}=t;if(!(r&&i&&s&&a))return;const o=[new Vector2(r,i),new Vector2(r,a),new Vector2(s,a),new Vector2(s,i),new Vector2(r,i)],c=new Vector3;let l=!1;this.enableRTC&&(l=GeometryUtils.checkAndRebasePositionsOnRTC(o,c));const h=(new BufferGeometry)[n(2054)](o),u=this[n(11474)](16777215),d=new Line(h,u);l&&(this[n(11509)](d),d[n(2065)].x+=c.x,d[n(2065)].y+=c.y);const f=new Group;let p;f[n(747)](d);const m=e[n(4232)][n(11482)];for(const e of m){const r=e;for(const e in r[n(674)])if(r.entries[e]===t.handle){p=e;break}}let v;if(p)if(this.meshTextureMaterials[p])v=this[n(11364)][p];else for(let t=0;t1?f:d}static[nz(11525)](t){var e=nz;let n=XAxis,r=YAxis,i=ZAxis;const s=new Vector3(0,1,0),a=new Vector3(0,0,1);if(!MathUtils2[e(4565)](t,a)){i=t[e(1014)]()[e(569)]();return!MathUtils2.areVectorsClose(i,a)&&(n=Math.abs(i.x)<1/64&&Math[e(694)](i.y)<1/64?s[e(1880)](i)[e(569)]():a[e(1880)](i).normalize(),r=i[e(1014)]()[e(1880)](n)[e(569)]()),tempMatrix3.set(n.x,n.y,n.z,0,r.x,r.y,r.z,0,i.x,i.y,i.z,0,0,0,0,1)}return tempMatrix3[e(1528)]()}static[nz(11576)](t,e){var n=nz;let r;r=isIViewport(t)?t[n(11577)]:t[n(11111)];const i=new Vector3(r.x,r.y,r.z),s=new Vector3(t.viewTarget.x,t[n(11112)].y,t[n(11112)].z),a=t.viewTwistAngle;let o,c,l;l=i[n(1014)]()[n(569)](),o=ZAxis[n(1014)]()[n(1880)](i),o.length()>0?(o[n(569)](),c=l[n(1014)]()[n(1880)](o)):l.z<0?(o=XAxis[n(1014)]()[n(1472)](),c=YAxis,l=ZAxis[n(1014)]().negate()):(o=XAxis,c=YAxis,l=ZAxis);const h=new Matrix4,u=tempMatrix3[n(1528)]();return u[n(2092)](o,c,l),h[n(2017)](u),h[n(2017)](tempMatrix3[n(1528)]()[n(2096)](s.clone(),(new Quaternion)[n(2026)](new Vector3(0,0,1),MathUtils[n(4473)](e?a:-a)),new Vector3(1,1,1))),h}[nz(11578)](t){var e=nz;const n=new Vector3(t[e(11107)].x,t[e(11107)].y,0),r=new Vector3(t[e(11106)].x,t[e(11106)].y,t[e(11106)].z),i=t[e(11115)]/t[e(11579)],s=_DXFLoader[e(11576)](t,this[e(11360)]),a=new Matrix4;a[e(3869)](Origin[e(1014)]().sub(r));const o=scaleTempMatrix[e(1528)]();o[e(1901)](tempVector2[e(540)](i,i,i));const c=translateTempMatrix[e(1528)]().setPosition(Origin[e(1014)]()[e(909)](r));o[e(2017)](c[e(1014)]()[e(1465)]())[e(1558)](c),a.multiply(o);const l=tempMatrix3[e(1528)]();l[e(3869)](n),s[e(1558)](l);const h=tempMatrix3[e(1528)]();return a[e(1465)]()[e(1558)](h)[e(1558)](s.invert())}[nz(11501)](t,e,n){var r=nz;const i=t;if("1"==i.viewportId)return t[r(11580)]=new Box3,void(t[r(11581)]=new Matrix4);const s=[],a=i[r(11106)],o=i[r(11104)]/2,c=i[r(11579)]/2;s.push(new Vector3(a.x-o,a.y-c,0)),s[r(565)](new Vector3(a.x-o,a.y+c,0)),s.push(new Vector3(a.x+o,a.y+c,0)),s[r(565)](new Vector3(a.x+o,a.y-c,0)),s[r(565)](s[0]),t[r(11580)]=new Box3(s[0],s[2]),t[r(11581)]=this[r(11578)](i);const l=new Vector3;let h=!1;this[r(11372)]&&(h=GeometryUtils[r(4601)](s,l));const u=(new BufferGeometry).setFromPoints(s),d=new Line(u,Default_LineMaterial);h&&(this[r(11509)](d),d[r(2065)].x+=l.x,d[r(2065)].y+=l.y),d[r(1968)][r(11551)]=t[r(452)];const f=new Group;f[r(747)](d);const p=t[r(11580)][r(1014)]();p[r(2028)](t[r(11581)][r(1014)]()[r(1465)]()),p[r(563)].z=0,p[r(486)].z=0;const m=[];m[r(565)](p.min),m[r(565)](new Vector3(p[r(563)].x,p[r(486)].y,0)),m[r(565)](p.max),m[r(565)](new Vector3(p.max.x,p[r(563)].y,0)),m[r(565)](m[0]);const v=new Vector3;let _=!1;this[r(11372)]&&(_=GeometryUtils[r(4601)](m,v));const g=(new BufferGeometry).setFromPoints(m),y=new Line(g,Default_LineMaterial);return _&&(this[r(11509)](y),y[r(2065)].x+=v.x,y[r(2065)].y+=v.y),y.userData[r(11551)]=t[r(452)],y.userData.inPaperSpace=!0,f.add(y),d}getColor(t,e,n){var r,i,s,a,o,c,l=nz;if(this[l(11374)]){const e=t[l(11582)];if(e===l(11458))return DxfCompare[l(11472)];if(e===l(11463))return DxfCompare[l(11473)];if(e===l(11464)){return this[l(11374)][l(11454)]?DxfCompare.ENTITY_COLOR_REMOVED:DxfCompare[l(11472)]}return DxfCompare[l(11471)]}const h=t;if(h&&h[l(11583)]){const e=h.gradientColors;if(e&&e[l(449)]>=2){if(e[0]!==e[1]){const e=l(11584)+t[l(4969)]+l(11585);log.warn(e)}return e[0]}}if(t[l(10902)])return t[l(2231)];if(t[l(10903)]>0&&t[l(10903)]<256)return t[l(2231)];if(0===t[l(10903)])return n?this[l(11586)](n,e):null==(i=null==(r=e[l(11172)])?void 0:r.layer)?void 0:i[l(2160)][0][l(2231)];if(256===t.colorIndex){const r=null==(a=null==(s=e.tables)?void 0:s[l(11187)])?void 0:a[l(2160)],i=r&&r[t[l(11187)]],h=r&&n&&r[n[l(11187)]];let u=Default_Color;return u=i&&"0"!==i[l(542)]?i.color:h?h[l(2231)]:i?i[l(2231)]:null==(c=null==(o=e[l(11172)])?void 0:o[l(11187)])?void 0:c[l(2160)][0][l(2231)],u}return log.warn(l(11587)),Default_Color}[nz(11527)](t,e,n){var r,i,s=nz;if(n&&"DIMENSION"===n[s(452)])return this[s(11527)](n,e);if(t[s(10900)]!==BYLAYER&&t[s(10900)]!==BYBLOCK)return t[s(10900)];if(t[s(10900)]===BYBLOCK)return n?this[s(11527)](n,e):t[s(10900)];const a=null==(i=null==(r=e.tables)?void 0:r[s(11187)])?void 0:i[s(2160)],o=Default_LineType;if("0"!==t[s(11187)]){const e=a&&a[t[s(11187)]];if(e)return e[s(10900)]}else if(n){const t=a&&a[n[s(11187)]];if(t)return t[s(10900)]}return o}getLayerName(t,e,n){var r,i,s=nz;const a=null==(i=null==(r=e[s(11172)])?void 0:r.layer)?void 0:i.layers,o=a&&a[t[s(11187)]],c=a&&n&&a[n[s(11187)]];let l=o.name;return o&&"0"===o[s(542)]&&c&&(l=c.name),l||"0"}[nz(3414)](t,e,n,r){var i=nz;const s=t;if(!s[i(2063)])return;if(this[i(11588)](t),e.type===i(11383))return;if("MTEXT"===e.type)return void(t[i(2125)]=5);if(e.type===i(10896))return tempVec23[i(540)](0,0),void this[i(11574)](t,e,n,tempVec23,r);let a;const o=this[i(11586)](e,n,r);if(e[i(452)]===i(11490)&&(s[i(2168)]?(a=this.getMeshBasicMaterial(o),t[i(2125)]=1):t[i(1968)][i(4707)]&&(a=this.getLineBasicMaterial(o),t[i(2125)]=3),a))s.material=a;else{if("SOLID"===e[i(452)])a=this.getMeshBasicMaterial(o);else if(e[i(452)]===i(11100)||"ATTDEF"===e[i(452)]||e[i(452)]===i(10934))a=this[i(11474)](o),t[i(2125)]=5;else if(e[i(452)]===i(10980)||e[i(452)]===i(11004)||e[i(452)]===i(11102))a=this[i(11474)](o);else if("POINT"===e.type)a=this[i(11476)](o);else{if(t[i(2178)]instanceof PointsMaterial)return a=this.getPointsMaterial(o),void(s[i(2178)]=a);const c=n[i(11172)][i(10900)][i(11526)][this[i(11527)](e,n,r)],l=e[i(10901)]||1;c&&c.pattern&&0!==c[i(11214)][i(449)]?(a=this.getLineShaderMaterial(c,o,l),t[i(2125)]=3):a=this[i(11474)](o)}s[i(2178)]=a}}[nz(11574)](t,e,n,r,i){var s=nz;const a=t;if(!a[s(2063)])return;const o=this[s(11586)](e,n,i);if(a[s(3415)])return void(a.material=this[s(11474)](o));let c,l=-1;if(e[s(10959)])c=this[s(11475)](o);else{if(a[s(2178)]instanceof ShaderMaterial){c=a[s(2178)];const t=new Color(o);!a[s(2178)][s(2377)][s(4646)][s(439)][s(1889)](t)&&(c=a[s(2178)].clone(),this[s(11477)](c),c[s(2377)][s(4646)].value[s(540)](o))}else c=this[s(11589)](e,o,r);l=0}!c&&(c=this[s(11475)](o),l=-1),a[s(2178)]=c,a.renderOrder=l}[nz(11588)](t){var e=nz;const n=t;let r=0;n.isMesh?r=-1:n[e(3415)]?r=2:n[e(2169)]&&(r=4),t[e(2125)]=r}[nz(11476)](t){var e=nz;return!this[e(11361)][t]&&(this[e(11361)][t]=new PointsMaterial({size:.2,color:t})),this[e(11361)][t]}[nz(11474)](t){var e=nz;return!this[e(11362)][t]&&(this.lineBasicMaterials[t]=new LineBasicMaterial({color:t})),this[e(11362)][t]}getLineShaderMaterial(t,e,n){var r=nz;const i=t[r(542)]+"_"+e+"_"+n;if(!this[r(11478)][i]){const s=this[r(11590)](),a=s.ltScale*s[r(11591)]*n;this[r(11478)][i]=LinePatternShaders[r(11592)](t[r(11214)],e,a,_DXFLoader[r(11593)],_DXFLoader[r(11594)])}return this.lineShaderMaterials[i]}getMeshBasicMaterial(t){var e=nz;return!this.meshBasicMaterials[t]&&(this.meshBasicMaterials[t]=new MeshBasicMaterial({color:t})),this[e(11363)][t]}[nz(11589)](t,e,n){var r=nz;if(!t.patternLines||t.patternLines[r(449)]<1)return;const i=this[r(11595)](t,e);if(i)return i;let s=2;t.patternLines[r(604)]((t=>{var e=r;s=Math[e(486)](t[e(11596)][e(449)],s)}));let a=0;const o=[],c=new Vector2;for(const e of t[r(11481)]){const i=new Vector2(e[r(1103)].x,e.origin.y).sub(n)[r(11597)](c,-MathUtils[r(4473)](t[r(10957)])),l=new Vector2(e[r(4119)].x,e[r(4119)].y)[r(11597)](c,-MathUtils[r(4473)](e[r(1882)]));if(0===l.y)return void log[r(1176)](r(11598));const h=e.dashPattern[r(449)];let u=!0,d=0;for(let t=0;t0&&(u=!1),d+=Math[r(694)](n)}const f=u?.05:.005,p=[],m=[];let v=0;m[0]=v;for(let t=0;t_DXFLoader[r(11599)]){log.warn(r(11600));break}o[r(565)](_)}const l=createHatchPatternShaderMaterial(o,t[r(10957)],_DXFLoader[r(11594)],new Color(e));return l[r(2376)]={MAX_PATTERN_SEGMENT_COUNT:s},this.hatchShaderMaterials[r(565)]({patternLines:t[r(11481)],patternAngle:t[r(10957)],color:e,material:l}),l}[nz(11507)](t,e,n){var r=nz;let i=Math.round(5e4/this[r(11365)]);i=Math[r(486)](i,2),i=Math[r(563)](i,10);const s=5*i;let a=2*i;if(this[r(11367)]){a*=Math[r(428)](n/this[r(11367)],.5),a=Math.max(a,i),a=Math.min(a,s)}let o=e-t;o<0&&(o+=2*Math.PI),a=Math[r(561)](a*(o/Math.PI));let c=8;return o<.087?c=2:o<.174?c=3:o<.52?c=4:o<1.57?c=5:o<3.14?c=6:o<4.71&&(c=7),a=Math[r(486)](a,c),this[r(11367)]=(this[r(11367)]*this[r(11366)]+n)/(this.curveCount+1),this[r(11366)]++,Math[r(486)](a,12)}[nz(11601)](){return.03}[nz(11401)](t,e){return __async(this,null,(function*(){const n={dxfDataId:t,dxf:e};return new Promise(((e,r)=>{var i=f;DxfDataTable.instance()[i(747)](n,(()=>{log[i(1175)]("[DxfLoader] Saved '"+t+"' to indexedDb"),e()}),(t=>{r(t)}))}))}))}getDxfDataFromIndexedDb(t){return __async(this,null,(function*(){return new Promise(((e,n)=>{var r=f;DxfDataTable[r(11252)]()[r(1069)](t,(t=>{t&&t.length>0&&e(t[0].dxf),e(void 0)}),(()=>n()))}))}))}buildContainHierarchyTree(t,e,n){var r,i=nz;const s=new Map,a=n.length;for(let t=0;t{var e=r;0===t[e(1602)][e(449)]?i.push(t.index):s.set(t[e(677)],t[e(1602)][e(679)]((t=>t[e(677)])))}));const a=t=>{var e=r;try{const r=new ShapeGeometry(t);r[e(2335)]("uv")&&r[e(2596)]("uv"),r.hasAttribute(e(655))&&r[e(2596)](e(655)),n.push(r)}catch(n){log[e(1176)]("[DxfLoader] triangulate shape error: "+t[e(3545)]()[e(679)]((t=>t[e(1499)]()))[e(526)]())}};i.forEach((e=>{var n=r;const i=t[e];if(0===i[n(449)])return;const s=new Shape(i);a(s)}));const o=t=>t.map((t=>t[r(1499)]()));for(const e of s){const n=new Shape(t[e[0]]);let i={regions:[],inverted:!1};const s=this[r(11602)](t,e[1]);s[r(604)]((e=>{var s=r;let a={regions:[],inverted:!1};try{e.forEach(((e,r)=>{var s=f;if(polybooljs.epsilon(MathUtils2[s(4569)](t[e][0]),1e-6),0===r)a=polybooljs[s(1262)]({regions:[o(t[e])],inverted:!1});else{const r=polybooljs[s(1262)]({regions:[o(t[e])],inverted:!1}),c=polybooljs[s(1692)](a,r);i=polybooljs.polygon(polybooljs[s(1696)](c)),i.regions[s(449)]>0?i[s(1699)][s(604)]((t=>{var e=s;if(0===t[e(449)])return;const r=t.map((t=>new Vector2(t[0],t[1])));n[e(3621)].push(new Path(r))})):log[s(1176)]("[DxfLoader] mergedHoles.regions is empty")}}))}catch(t){log[s(1176)](s(11603)+t+", epsilon is "+polybooljs[s(1701)]())}}));const c=s[r(1623)](2);for(let i=0;i{var i=r;e[i(1602)][i(604)]((e=>{this[i(11572)](t,e,n)}))}))}[nz(11602)](t,e){var n=nz;const r=e[n(449)],i=[];for(let s=0;s{t[n(604)]((t=>{e.add(t),r++}))})),e[n(1877)](r);let i=!1;if(this[n(11372)]&&GeometryUtils[n(4602)](e)){i=!0;for(let r=0;r{var i=e;r[i(674)][t]&&r[i(674)][t]===i(11608)&&n[i(747)](t)}))}if(0===n.size)return;const i=t[e(4232)][e(11144)];if(i)for(let t=0;tMath.abs(t-e)<1e-5,s=(t,e)=>{var r=n;return i(t[r(1882)],e[r(1882)])&&i(t.delta.x,e.delta.x)&&i(t[r(4119)].y,e[r(4119)].y)&&i(t.origin.x,e[r(1103)].x)&&i(t[r(1103)].y,e.origin.y)&&((t,e)=>{var r=n;if(t.length!==e[r(449)])return!1;for(let n=0;n{var a=n;return i[a(2231)]===e&&i[a(10957)]===t[a(10957)]&&((t,e)=>{if(t[n(449)]!==e.length)return!1;for(let n=0;n{e[t.handle]=t.layoutHandle}))}const r=this[n(11376)][e[n(10905)]];if(r){const e=t[n(4232)][n(11135)][n(932)]((t=>t[n(4969)]===r));if(e)return e}if(!this[n(11611)]){this[n(11611)]={};const e=this[n(11611)];Object[n(673)](t.entities)[n(604)]((t=>{e[t.handle]=t}))}const i=this.entitiesCache[e[n(10905)]];return i?this[n(11416)](t,i):(log.warn(n(11612),e),t.objects[n(11135)].find((t=>t[n(10908)]===_DXFLoader.MODEL_LAYOUT_NAME)))}[nz(11419)](t,e){var n,r,i,s=nz;const a=null==(r=null==(n=t[s(11172)])?void 0:n[s(11187)])?void 0:r[s(2160)];return a&&(null==(i=a[e])?void 0:i[s(2122)])}[nz(11483)](t,e){var n,r,i,s=nz;const a=null==(r=null==(n=t.tables)?void 0:n[s(11187)])?void 0:r[s(2160)];return a&&(null==(i=a[e.layer])?void 0:i[s(938)])}[nz(11477)](t){var e=nz;t instanceof ShaderMaterial&&(t[e(2377)][e(11613)]&&(t[e(2377)].u_cameraZoom=_DXFLoader[e(11594)]),t.uniforms[e(10846)]&&(t[e(2377)].u_viewportScale=_DXFLoader.viewportScaleUniform))}[nz(11614)](t){var e=nz;const n=new Map,r=t=>{var e=f;let r;return Array.isArray(t)?(r=[],t[e(604)]((t=>{var i=e;if(n[i(546)](t.id))r.push(n[i(427)](t.id));else{const e=t[i(1014)]();this[i(11477)](e),n[i(540)](t.id,e),r[i(565)](e)}}))):t&&(n[e(546)](t.id)?r=n.get(t.id):(r=t[e(1014)](),this.updateMaterialUniforms(r),n[e(540)](t.id,r))),r};t[e(2152)]((t=>{var n=e;t.material&&(t[n(2178)]=r(t[n(2178)]))}))}[nz(11590)](){var t=nz;const e={ltScale:1,celtScale:1};return this.header?(e[t(11615)]=this[t(5744)].$LTSCALE||1,e[t(11591)]=this[t(5744)][t(11616)]||1,e):e}static getDxfUnits(t){var e=nz;switch(t||0){case 0:return e(11617);case 1:return e(10854);case 2:return e(10855);case 4:return e(10856);case 5:return e(10857);case 6:return e(11618);default:log.warn(e(11619)+t+"'")}return"Unitless"}static[nz(11620)](t){var e=nz;const n=!0===t.isLineSegments;let r=t[e(2063)];const i=t.matrixWorld;if(r[e(677)]&&(log[e(1178)](e(11621)+t.id+"' contains index buffer, going to convert it to non-indexed."),r=GeometryUtils[e(4604)](r)),null===r[e(677)]){const t=r[e(2064)][e(2065)];if(!t||0===t[e(2053)])return;const s=[];if(n)for(let n=0,r=t[e(2053)];n{var n=e;let r=t;r[n(3415)]&&r[n(2178)]instanceof ShaderMaterial&&_DXFLoader.computeLineDistance(r)})),log.debug(e(11623)+(Date[e(802)]()-n)/1e3+"s")}static[nz(2351)](t){var e=nz;const n={};t.objects[e(11135)][e(604)]((t=>{var r;const i=t;n[i[e(10908)]]=i,null==(r=i.directAssociatedLeafObjectSet)||r.clear()}));const r=Date[e(802)](),i={},s={};let a=0,o=0;const c=()=>{var t=e;const n=Date[t(802)]();for(const e in i){const n=i[e];_DXFLoader[t(11624)](n.children,n[t(469)]),n[t(1602)]=[]}a=0,o+=Date[t(802)]()-n};for(const r in t.layersAndThreejsObjects){const l=t.layersAndThreejsObjects[r];if(l[e(449)]<=1)continue;const h=Date.now(),u={};for(const t of l){let n,r=t;for(;r;){if(r.userData.isLayoutLevelObject){n=r;break}r=r[e(840)]}if(!n)continue;const i=n[e(542)];!u[i]&&(u[i]={object:n,children:[]}),u[i].children.push(t)}const d=[];for(const t in u){let r;if(t!==_DXFLoader[e(11400)]){const i=n[t];!i[e(11418)]&&(i[e(11418)]=new Set),r=i.directAssociatedLeafObjectSet}const l=u[t],h=MergeUtils.deepMerge(l[e(1602)],l[e(469)],!1,!1,!0),f=h.added,p=h[e(756)];!i[t]&&(i[t]={object:l[e(469)],children:[]}),!s[t]&&(s[t]={object:l[e(469)],children:[]});const m=p[e(449)]>15e3;if(m){const t=Date[e(802)]();_DXFLoader[e(11624)](p,l[e(469)]),o+=Date[e(802)]()-t}else a+=p.length;if(p[e(449)]===l[e(1602)][e(449)])!m&&p[e(604)]((n=>{var r=e;i[t].children[r(565)](n)}));else{let n=p;p[e(449)]>=100&&(n=new Set(p));const s=t=>{var r=e;return Array[r(468)](n)?n[r(564)](t)>=0:n.has(t)};for(let n=0;n15e3&&c()}t[e(11456)][r]=d,log.debug("[DxfLoader] Merged layer '"+r+e(11625)+(Date.now()-h)/1e3+"s")}a>0&&c();for(const n in s){const r=s[n];!t.threejsObject.children[e(932)]((t=>t[e(542)]===n))&&t[e(11455)][e(747)](r.object),r.children[e(604)]((t=>{var n=e;r.object[n(747)](t),t[n(2142)](!1,!1)})),r[e(1602)]=[]}log[e(1178)]("[DxfLoader] MergeUtils.deepMerge costed "+MergeUtils[e(4717)][e(3850)]/1e3+"s"),log[e(1178)](e(11626)+o/1e3+"s"),log[e(1178)](e(11627)+(Date[e(802)]()-r)/1e3+"s");const l=MergeUtils[e(4717)];log[e(1178)](e(11628)+l.removedObjects+e(11629)+l[e(4719)]+e(11433)+l[e(4720)]+e(11434)+l.mergedPoints+e(11435)+(l[e(4722)]?l[e(4722)]+" unknown type,":"")+" ")}static[nz(11630)](t){var e=nz;const n=new WeakSet;let r=0;for(const i in t[e(11456)]){t[e(11456)][i][e(604)]((t=>{var i=e;t[i(2063)]&&(r++,n[i(546)](t)?console[i(1176)](t):n[i(747)](t))}))}const i=new WeakSet;let s=0;if(t[e(11455)][e(2152)]((t=>{var n=e;t[n(2063)]&&(s++,i[n(546)](t)?console[n(1176)](t):i[n(747)](t))})),r!=s)for(const n in t[e(11456)]){t[e(11456)][n][e(604)]((t=>{var n=e;t[n(2063)]&&!i[n(546)](t)&&console[n(1176)](t)}))}log[e(1175)]("[DxfLoader] The count of layer objects is "+r+",The count of layout objects is "+s+" ")}static[nz(11624)](t,e){var n=nz;if(0===t[n(449)])return;const r=t=>{var i=n;const s=[];for(const n of t){n[i(1968)][i(11631)]=0;const t=n[i(840)];t&&t!==e&&(void 0===t.userData[i(11631)]&&(t.userData[i(11631)]=t[i(1602)][i(449)]),0==--t[i(1968)][i(11631)]&&s[i(565)](t))}s[i(449)]>0&&r(s)};r(t),this.removeEmptyObjectsFromMark(e)}static[nz(11632)](t){var e=nz;if(0===t[e(1968)].validCount||ObjectUtils[e(4712)](t))return t[e(4703)](),!0;for(let n=0;n{var e=nz;return t.Added=e(11458),t[e(11463)]=e(11463),t[e(11464)]=e(11464),t.NoChange=e(11462),t})(DxfChangeType||{}),id2=1,_DxfCompare=class{constructor(t,e){var n=nz;if(this.changes={},this[n(11634)]=new Map,this[n(11635)]=!1,this[n(11636)]=!1,this[n(11637)]=t,this.dxf2=e,!t||!e)throw new Error(n(11638))}[nz(11483)](t,e){var n,r,i,s=nz;const a=null==(r=null==(n=t[s(11172)])?void 0:n[s(11187)])?void 0:r[s(2160)];return a&&(null==(i=a[e[s(11187)]])?void 0:i.frozen)}[nz(1218)](t){return __async(this,null,(function*(){var e=f;this.changes={};const n=[],r=new Map;return this[e(11637)][e(11175)][e(604)]((t=>{var r=e;if(!0!==t[r(10904)]){const e=!0===this[r(11483)](this[r(11637)],t);!_DxfCompare[r(11639)][r(667)](t.type)&&!e&&n[r(565)](t)}})),this[e(11640)][e(11175)][e(604)]((t=>{var n=e;if(!0!==t.inPaperSpace){const e=!0===this.getLayerFrozen(this.dxf2,t);!_DxfCompare.ignoreEntityTypes[n(667)](t[n(452)])&&!e&&r.set(t[n(4969)],t)}})),yield this.compareEntities(n,r,void 0,t),Promise.resolve(this[e(11641)])}))}[nz(11642)](t){return t.includes("*D")}[nz(11643)](t,e,n,r){var i=nz;if(!t[i(3369)]||!e[i(3369)])return;const s=t[i(3369)];let a;if(this.isComparingBlock=!0,this[i(11642)](s)){const n=this[i(11637)][i(7573)][t[i(3369)]],r=this.dxf2[i(7573)][e[i(3369)]],o=Date[i(802)]();this[i(11636)]=!0,a=this[i(11644)](n,r),this.isComparingDimension=!1,log[i(1178)](i(11645)+s+i(11646)+(Date[i(802)]()-o)/1e3+"s")}else{if(!this.comparedBlocks.has(s)){const t=this[i(11637)][i(7573)][s],e=this.dxf2.blocks[s],n=Date[i(802)](),r=this[i(11644)](t,e);this.comparedBlocks[i(540)](s,r),log.debug(i(11645)+s+i(11646)+(Date[i(802)]()-n)/1e3+"s")}a=this[i(11634)].get(s)}return null==a||a[i(604)]((e=>{var s=i;if(!e[s(11460)]&&(e[s(11460)]=[]),n&&r)e.type===s(11458)?e[s(11460)][s(565)](r):e[s(452)]===s(11463)&&e.parentHandles[s(565)](n);else{const n=[...e.parentHandles,t[s(4969)]];(e[s(452)]===s(11458)||"Removed"===e.type)&&(this[s(11641)][id2]=__spreadProps(__spreadValues({id:id2},e),{parentHandles:n})),id2++}})),!n&&!r&&(this[i(11635)]=!1),a}[nz(11644)](t,e){var n,r,i=nz;const s=[],a=[];null==(n=null==t?void 0:t[i(11175)])||n[i(604)]((t=>{var e=i;"ATTDEF"!==t[e(452)]&&!this[e(11647)](t)&&s.push(t)})),null==(r=null==e?void 0:e[i(11175)])||r[i(604)]((t=>{var e=i;t.type!==e(10922)&&!this[e(11647)](t)&&a[e(565)](t)}));const o=[],c=[];for(let t=0;t0&&o[i(565)](...s),n=!1,a[i(690)](t--,1);break}n=!1,a[i(690)](t--,1);break}n=!0}n&&(o[i(565)]({type:i(11463),handle:e[i(4969)]}),c[i(565)](e[i(4969)]))}return a[i(604)]((t=>{var e=i;!c.includes(t[e(4969)])&&o[e(565)]({type:e(11458),handle:t[e(4969)]})})),o}compareEntities(t,e,n,r){return __async(this,null,(function*(){var i,s,a=f;const o=t.length,c=Math[a(784)](Math[a(428)](o,.5));let l=Date[a(802)]();const h=t=>__async(this,null,(function*(){var e=a;if(r&&(t%c==0||t===o-1)){r(new ProgressEvent("compareProgress",{loaded:t+1,total:o}));const n=500,i=Date[e(802)]();(i-l>n||t===o-1)&&(yield Viewer3DUtils[e(4815)](0),l=i)}}));for(let r=0;r>3]&128>>e)>>7-e}[nz(11704)](t,e){var n=t>>3,r=this.u8[n],i=7&t;this.u8[n]=e?r|128>>i:r&~(128>>i)}[nz(11705)](t){var e=nz,n=t/8|0,r=this.u8[n],i=this.u8[n+1],s=this.u8[n+2],a=t%8,o=8-a,c=Math[e(563)](12-o,8);return(((r&=~(255<>12-a)-2048}[nz(11706)](t,e){var n=nz,r=t/8|0,i=t%8,s=(e+=2048)<<12-i,a=(16711680&s)>>16,o=(65280&s)>>8,c=255&s,l=8-i,h=Math[n(563)](12-l,8),u=Math[n(486)](12-l-h,0),d=255<>8-(2-s))))<<8)+(i&=255<<8-Math[e(486)](6-a,0))>>10-s)-32}[nz(11707)](t,e){var n=t/8|0,r=t%8,i=(e+=32)<<10-r,s=(65280&i)>>8,a=255&i,o=8-r,c=Math[nz(486)](6-o,0),l=(255<>8-(2-r));this.u8[n]=(this.u8[n]&l)+s;var h=~(255<<8-c);this.u8[n+1]=(this.u8[n+1]&h)+a}[nz(467)](){var t,e,n=nz,r=new ArrayBuffer(3),i=new BitView(r);for(e=0;e<12;e++)for(t=-2048;t<2048;t++)if(i[n(11706)](e,t),i[n(11705)](e)!=t){console[n(695)]("12-bit prob at",e,t),console[n(695)]("expected",t,n(11708),i[n(11705)](e));break}for(e=0;e<18;e++)for(t=-32;t<32;t++)if(i.setInt6(e,t),i.getInt6(e)!=t){console.log(n(11709),e,t),console.log(n(11710),t,n(11708),i.getInt6(e));break}return i}},ShpThree=class{constructor(){var t=nz;this.LINE_MATERIAL=new LineBasicMaterial({color:0,linewidth:2,opacity:.8,transparent:!0}),this[t(11711)]=new MeshBasicMaterial({color:1926655,opacity:.8,transparent:!0})}[nz(11712)](t){for(var e=nz,n=[],r=[],i=0;is[e(565)](...t)));const a=new BufferGeometry;a[e(2054)](t),a[e(2332)](s),n[e(565)](a);const o=new BufferGeometry;t[e(449)]>2&&!t[0][e(1889)](t[t[e(449)]-1])&&t.push(t[0]),o[e(2054)](t),r.push(o)}else{const n=new BufferGeometry;n[e(2054)](t),r.push(n)}}}var f=new Object3D;for(i=0;i1023||Math[e(694)](a-t[c+1])>1023?(r[e(565)](i),o+=1,i=[],s=t[c],a=t[c+1],i[e(565)](s,a),o+=4,c++):(i[e(565)]((t[c]-s)/8,(t[c+1]-a)/8),s+=8*((t[c]-s)/8|0),a+=8*((t[c+1]-a)/8|0),o+=2,c++):(r.push(i),n.push(r),r=[],i=[],o+=3);return this[e(11722)](o,n)}[nz(11719)](t){var e=nz,n=[],r=[],i=[],s=0,a=0,o=0,c=0;for(o=0;o31||Math.abs(a-t[o+1])>31?(r.push(i),c+=1,i=[],s=t[o],a=t[o+1],i[e(565)](s,a),c+=4,o++):(i.push(t[o]-s,t[o+1]-a),s+=t[o]-s,a+=t[o+1]-a,c+=2,o++):(r[e(565)](i),n[e(565)](r),r=[],i=[],c+=3);return this[e(11723)](c,n)}[nz(11722)](t,e){for(var n=nz,r=new ArrayBuffer(t),i=new DataView(r),s=0,a=0;a{var t=i;this[t(11727)](n,50);const r=(new SHPParser)[t(1087)](s.response),a=(new ShpThree)[t(11712)](r);this.updateProgress(n,99),e(a)},s[i(5828)]=r,s[i(594)](i(7481),t),s[i(7483)](null)}))}[nz(11727)](t,e){if(t){t(new ProgressEvent("progress",{lengthComputable:!0,loaded:e,total:100}))}}},decoderPath=nz(11728),LoadingHelper=class{constructor(t){this[nz(3749)]=t}loadLocalModel(t,e,n){return __async(this,null,(function*(){var r=f;const i=e[r(570)]();return i.endsWith(r(6768))?this[r(11729)](t,n):i[r(880)](r(4897))?this[r(11730)](t,n):i[r(880)](r(6767))?this[r(11731)](t,n):i[r(880)](r(6769))?this[r(11732)](t,n):i[r(880)]("shp")?this.loadShp(t,n):i[r(880)]("dae")?this[r(11733)](t,n):i[r(880)](r(11734))?this[r(11735)](t,n):i.endsWith(r(6780))||i[r(880)](r(7211))||i[r(880)](r(7212))?this[r(11736)](t,n):this[r(11737)](t,n)}))}loadModel(t,e,n){return __async(this,null,(function*(){var r=f;const i=t;if(!i)return Promise[r(440)]();let s=(null==e?void 0:e.toLowerCase())||"";if(!s){const t=i.split("?")[0].toLowerCase();if(t){const e=t[r(678)](".");-1!==e&&(s=t[r(497)](e+1))}}return s[r(880)](r(6768))?this[r(11729)](i,n):s[r(880)](r(4897))?this[r(11730)](i,n):s.endsWith(r(6767))?this[r(11731)](i,n):s.endsWith(r(6769))?this.loadIfc(i,n):s[r(880)](r(11738))?this[r(11739)](i,n):s[r(880)](r(6770))?this[r(11733)](i,n):s[r(880)](r(11734))?this[r(11735)](i,n):s[r(880)](r(6780))||s.endsWith(r(7211))||s.endsWith("png")?this[r(11736)](i,n):this[r(11737)](i,n)}))}[nz(11737)](t,e){return __async(this,null,(function*(){var n=f;const r=this.getGltfLoader();-1!==t[n(564)]("#")&&console[n(1176)](n(11740)+t),t=t[n(448)](/#/g,encodeURIComponent("#"));const i=yield r[n(3808)](t,e);return Promise[n(440)](i[n(4758)])}))}[nz(11741)](t,e,n,r){var i=nz;return this[i(11742)]()[i(1087)](t,e,(t=>n(t[i(4758)])),r)}[nz(11729)](t,e){return __async(this,null,(function*(){var n=f;const r=new FBXLoader(this[n(3749)]),i=yield r[n(3808)](t,e);return Promise[n(440)](i)}))}[nz(11730)](t,e){return __async(this,null,(function*(){var n=f;const r=new OBJLoader(this[n(3749)]),i=new MTLLoader(this[n(3749)]),s=t[n(448)](".obj",n(11743)),a=yield i.loadAsync(s,e);a[n(5133)](),r[n(10751)](a);const o=yield r[n(3808)](t,e);return Promise[n(440)](o)}))}loadStl(t,e){return __async(this,null,(function*(){var n=f;const r=new STLLoader(this[n(3749)]),i=yield r[n(3808)](t,e);return Promise.resolve(new Mesh(i))}))}[nz(11732)](t,e){return __async(this,null,(function*(){var n=f;const r=new IFCLoader(this[n(3749)]),i=r[n(10719)];i&&"function"==typeof i.setWasmPath&&i[n(10720)](n(11744));const s=yield r[n(3808)](t,e);return Promise[n(440)](s[n(4488)])}))}[nz(11739)](t,e){return __async(this,null,(function*(){const n=new SHPLoader;return new Promise(((r,i)=>{n.load(t,(t=>{r(t)}),e,(t=>{i(t)}))}))}))}[nz(11733)](t,e){return __async(this,null,(function*(){var n=f;const r=new ColladaLoader(this[n(3749)]),i=yield r.loadAsync(t,e);return Promise.resolve(i[n(4758)])}))}loadDxf(t,e){return __async(this,null,(function*(){var n=f;!this.font&&console.warn(n(11745));const r=new DXFLoader;try{const i=yield r[n(3808)](t,e);return Promise.resolve(i[n(11455)])}catch(t){const e=new ErrorEvent("");return Promise[n(831)](e)}}))}[nz(11746)](t,e){return __async(this,null,(function*(){var n=f;const r=new PLYLoader(this[n(3749)]),i=yield r[n(3808)](t,e);return Promise[n(440)](new Mesh(i))}))}[nz(11736)](t,e){return __async(this,null,(function*(){var n=f;const r=new TextureLoader(this[n(3749)]),i=yield r.loadAsync(t,e);if(!i)return Promise[n(831)](n(11747));const s=i[n(1971)];let a=s&&s[n(1e3)]||10,o=s&&s.width||10;a*=10/o,o=10;const c=new MeshBasicMaterial({map:i,side:DoubleSide,transparent:!0}),l=new PlaneGeometry(o,a),h=new Mesh(l,c);return Promise[n(440)](h)}))}[nz(11748)](t,e,n,r,i,s){return __async(this,null,(function*(){var a,o=f;!this[o(904)]&&console[o(1176)](o(11745));const c=new DXFLoader(i,s);return c.setFont(this.font),c[o(3749)][o(3739)]=()=>{r&&r()},this.font[o(11353)]&&(yield null==(a=this.font)?void 0:a[o(11353)]()),c[o(1212)](t,e,n)}))}[nz(11387)](t){this[nz(904)]=t}[nz(11742)](){var t=nz;if(!this.gltfLoader){this[t(11749)]=new GLTFLoader(this[t(3749)]);const e=new DRACOLoader(this.manager);e[t(11750)](decoderPath),this[t(11749)].setDRACOLoader(e)}return this[t(11749)]}};function Worker3(){return inlineWorker(nz(11751))}var GenerateMeshBvhWorker=class{constructor(){var t=nz;this[t(3847)]=!1,this.worker=new Worker3,this[t(4667)][t(5828)]=e=>{var n=t;throw e[n(637)]?new Error('[GenerateMeshBVHWorker] Could not create Web Worker with error "'+e[n(637)]+'"'):new Error("[GenerateMeshBVHWorker] Could not create Web Worker.")}}[nz(11752)](){return this[nz(3847)]}[nz(11753)](t,e={}){var n=nz;if(this.running)return void log[n(1176)](n(11754));if(!this.worker)return void log.warn(n(11755));const{worker:r}=this;this[n(3847)]=!0;const i=new Map;t.forEach((t=>{i[n(540)](t.id,t)}));let s=0;return new Promise(((t,a)=>{var o=n;const c=()=>{var e=f;++s===i.size&&(this[e(3847)]=!1,r.onmessage=null,t())};r.onerror=t=>{var e=f;log.warn(e(11756)+t[e(637)]),a(new Error(e(11756)+t[e(637)])),this[e(3847)]=!1},r.onmessage=t=>{var n=f;this[n(3847)]=!1;const{data:r}=t;if(r[n(819)])log.warn(r.error),c();else if(r[n(11757)]){const{serialized:t,position:s,id:a}=r,o=i[n(427)](a),l=MeshBVH[n(4217)](t,o,{setIndex:!1}),h=Object[n(501)]({setBoundingBox:!0},e);if(h[n(11758)]&&(o[n(2064)][n(2065)][n(2306)]=s),o[n(677)])e.saveOriginalIndex&&!o[n(1968)].originalIndex&&(o[n(1968)].originalIndex=o[n(677)][n(2306)]),log.debug("before update, index:",o.index[n(2306)]),o[n(677)][n(2306)]=t[n(677)];else{const e=new BufferAttribute(t.index,1,!1);o.setIndex(e)}o.index&&(log[n(1178)](n(11759),o[n(677)].array),o[n(677)][n(1948)]=!0),h[n(4219)]&&!o[n(2066)]&&(o[n(2066)]=l[n(2077)](new Box3)),o[n(4212)]=l,c()}else e[n(3740)]&&e[n(3740)](r[n(3768)])};for(const t of i){const n=t[0],i=t[1],s=i[o(677)]?i[o(677)].array:void 0,a=i.attributes.position,l=a.array;if(a[o(2444)]||s&&s[o(2444)]){log[o(1176)]("[GenerateMeshBVHWorker] InterleavedBufferAttribute are not supported for the geometry attributes."),c();continue}const h=[];e[o(11758)]&&(h[o(565)](l),s&&(h[o(565)](s),e[o(11760)]&&(i[o(1968)][o(4755)]=s.slice()))),r[o(798)]({id:n,index:s,position:l,options:__spreadProps(__spreadValues({},e),{onProgress:null,includedProgressCallback:Boolean(e.onProgress),groups:[...i[o(865)]]})},h[o(449)]>0?h[o(679)]((t=>t[o(703)])):[])}}))}[nz(1979)](){this.worker.terminate(),this.worker=void 0}},MeshBvhHelper=class{constructor(t){var e=nz;this[e(3847)]=!1,this[e(11761)]=[];let n=1;t?n=t:window[e(1174)]&&(n=Math[e(486)](n,window[e(1174)][e(11762)]-1));for(let t=0;t{var i=n;const s=this[i(11761)][i(449)],a=t[i(449)],o=[],c=Math[i(562)](a/s),l=a%s;let h=0,u=0;for(let n=0;n=u)break;log[i(1178)](i(11764)+h+" endIndex: "+u),o[i(565)](r[i(11753)](t[i(497)](h,u),e))}Promise[i(11765)](o)[i(829)]((()=>{this[i(3847)]=!1,r()}))}));log[n(1176)]("[BVHHelper] Worker has been disposed.")}}))}[nz(1979)](){var t=nz;for(let e=0;e{var i=n;t[i(2152)]((t=>{var n=i;const s=t;if(s.isMesh&&s[n(2063)]&&MergeUtils[n(4746)](s)&&!(s instanceof InstancedMesh)){if(r[n(546)](s.geometry.id))return;s.geometry[n(677)]&&e[n(11760)]&&(s[n(2063)][n(1968)].originalIndex=s[n(2063)][n(677)][n(2306)][n(497)]()),s[n(2063)].boundsTree=new MeshBVH(s[n(2063)],e),r[n(747)](s[n(2063)].id)}}))}))}static createMeshBvhAsync(t,e={}){var n=nz;const r=new Set,i=[];t[n(604)]((t=>{t.traverse((t=>{var e=f;const n=t;if(n[e(2168)]&&n[e(2063)]&&MergeUtils[e(4746)](n)&&!(n instanceof InstancedMesh)){if(r.has(n[e(2063)].id))return;i[e(565)](n[e(2063)]),r.add(n.geometry.id)}}))}));const s=new MeshBvhHelper;s[n(11753)](i,e)[n(829)]((()=>{s[n(1979)]()}))}},RafHelper=class{constructor(){var t=nz;this[t(11767)]=t(11768),this[t(11769)]=t(11770),this[t(11771)]={},this.intervalMap={}}[nz(1286)](t=this[nz(11769)],e,n=16.7){var r=nz;const i=Date.now;let s=i(),a=s;const o=Symbol(""),c=()=>{var r=f;this[r(11772)](o,t,c),a=i(),a-s>=n&&(t===this[r(11773)]&&(s=i(),a=s),e(),t===this[r(11767)]&&this[r(1357)](o))};return this[r(11772)](o,t,c),o}setIdMap(t,e,n){var r=nz;const i=requestAnimationFrame(n);e===this[r(11769)]?this[r(11773)][t]=i:e===this[r(11767)]&&(this.timeoutMap[t]=i)}[nz(1039)](t,e){var n=nz;return this[n(1286)](this[n(11767)],t,e)}[nz(1357)](t){cancelAnimationFrame(this[nz(11771)][t])}[nz(1038)](t,e){var n=nz;return this[n(1286)](this[n(11769)],t,e)}[nz(11774)](t){cancelAnimationFrame(this[nz(11773)][t])}},_ZoomToRectHelper=class{constructor(t){var e=nz;this[e(11775)]=!1,this[e(11776)]=!1,this[e(11777)]=-1,this[e(11778)]=-1,this[e(11779)]=!1,this.actived=!1,this[e(4618)]=t=>{var n=e;if(t[n(3406)](),0===t[n(5335)]){this.mouseDown=!0;const e=CoordinateConversionUtils[n(4324)](t,this.viewerContainer);this[n(11777)]=e.x,this[n(11778)]=e.y}},this[e(4616)]=t=>{var n=e;if(t[n(3406)](),!this[n(11775)])return;const r=CoordinateConversionUtils[n(4324)](t,this[n(4863)]);if(this[n(11777)]>=0&&this[n(11778)]>=0){const t=5;if(Math[n(694)](r.x-this.mouseDownPositionX)>=t||Math[n(694)](r.y-this[n(11778)])>=t){this.mouseMove=!0;const t=new Vector2(Math.min(this[n(11777)],r.x),Math.min(this[n(11778)],r.y)),e=new Vector2(Math[n(486)](this[n(11777)],r.x),Math[n(486)](this[n(11778)],r.y));this.drawRect(t,e)}}},this[e(4617)]=t=>{var n=e;if(t[n(3406)](),this[n(11775)]&&this[n(11776)]){const e=CoordinateConversionUtils[n(4324)](t,this.viewerContainer),r=new Vector2(Math[n(563)](this[n(11777)],e.x),Math[n(563)](this[n(11778)],e.y)),i=new Vector2(Math[n(486)](this.mouseDownPositionX,e.x),Math.max(this[n(11778)],e.y));this.handleZoomToRect(r,i),this.deactivate(),this[n(11780)](!1)}this[n(11775)]=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this[n(11778)]=-1},this[e(4862)]=t}get[nz(4863)](){return this[nz(4862)].viewerContainer}get camera(){var t=nz;return this.viewer[t(3045)]}get raycaster(){var t=nz;return this[t(4862)][t(5657)]()}[nz(11781)](){return this[nz(11782)]}[nz(11783)](){var t=nz;if(this.isActived())return;this[t(11782)]=!0,this[t(4863)][t(808)](t(5316),this[t(4618)]),this.viewerContainer[t(808)]("pointermove",this.mousemove),this[t(4863)].addEventListener(t(5320),this[t(4617)]);const e=this[t(4862)][t(5350)];this[t(11784)]=e[t(5336)][t(5326)],this[t(11779)]=e[t(5330)],e[t(5336)][t(5326)]=-1,e[t(5330)]=!1}[nz(11785)](){var t=nz;this[t(11782)]=!1,this[t(4863)][t(1716)]("pointerdown",this[t(4618)]),this[t(4863)].removeEventListener("pointermove",this[t(4616)]),this[t(4863)].removeEventListener(t(5320),this[t(4617)]),this[t(4862)].controls[t(5336)][t(5326)]=this.tempKey,this[t(4862)][t(5350)][t(5330)]=this[t(11779)]}[nz(11786)](t){var e=nz;const n=CoordinateConversionUtils[e(4331)](t,this[e(3045)],this.viewerContainer);this[e(4864)][e(4112)](n,this[e(3045)]);let r=[];this[e(4862)]instanceof BimViewer?r=this[e(4862)].getRaycastableObjectsByMouse({clientX:t.x,clientY:t.y}):this.viewer instanceof DxfViewer&&(r=[this.viewer.groundPlane]);const i=this[e(4864)].intersectObjects(r)||[];if(i[e(449)]>0)return i[0][e(1220)]}[nz(11787)](t,e){var n=nz;const r=this[n(11786)](t),i=this[n(11786)](e);if(r&&i){const t=new Vector3(Math[n(563)](r.x,i.x),Math[n(563)](r.y,i.y),Math.min(r.z,i.z)),e=new Vector3(Math[n(486)](r.x,i.x),Math[n(486)](r.y,i.y),Math.max(r.z,i.z)),s=new Box3(t,e);this[n(4862)][n(11788)](s)}}[nz(11789)](t,e){var n=nz;!this[n(11790)]&&(this[n(11790)]=document[n(538)]("div"),this[n(11790)][n(590)][n(5651)]=n(11791)+_ZoomToRectHelper[n(11792)]+n(11793)+_ZoomToRectHelper[n(11794)]+";",this.viewerContainer.appendChild(this.rectDom)),this.setRectDomVisible(!0),this.rectDom[n(590)].left=t.x+"px",this.rectDom[n(590)][n(2651)]=t.y+"px";const r=Math[n(694)](e.x-t.x),i=Math[n(694)](e.y-t.y);this[n(11790)].style[n(999)]=r+"px",this.rectDom[n(590)][n(1e3)]=i+"px"}[nz(11780)](t){var e=nz;this[e(11790)]&&(this[e(11790)][e(590)][e(3368)]=t?e(11795):"none")}[nz(1725)](){var t;this.deactivate(),null==(t=this.rectDom)||t.remove(),this.rectDom=void 0}},ZoomToRectHelper=_ZoomToRectHelper;ZoomToRectHelper[nz(11794)]=nz(4285),ZoomToRectHelper.BORDER_WIDTH=nz(6615);var debugLines,_SnapDrawable=class extends Drawable{constructor(t){var e=nz;super(CommonUtils[e(4307)]()),this[e(11796)]=!1,this[e(11797)]=e(4264),this[e(11798)]=!1,this[e(11797)]=t,this[e(11799)]={Dot:this[e(11800)].bind(this),Square:this[e(11801)][e(511)](this),Cross:this[e(11802)].bind(this),Triangle:this.drawTriangle[e(511)](this),Perpendicular:this.drawPerpendicular[e(511)](this)}}[nz(11803)](t){this.snapLineVisible=t}[nz(4829)](t,e){var n=nz;this[n(11804)]&&(this.snapLineVisible&&this[n(11805)](t,e),t[n(4544)](),t[n(4409)]=_SnapDrawable.FILL_COLOR,t.strokeStyle=_SnapDrawable[n(11806)],t[n(3124)]=_SnapDrawable[n(11807)],t.beginPath(),this[n(11799)][this.snapType](t,e),debugLines&&this[n(11808)](t,e),t[n(3585)](),t[n(929)](),t[n(4840)](),t[n(4841)]())}[nz(11808)](t,e){var n=nz;null==debugLines||debugLines[n(604)]((r=>{var i=n;const s=this.transToScreenCoord(r[i(725)],e),a=this[i(4838)](r.end,e);t[i(3593)](s.x,s.y),t[i(3594)](a.x,a.y)}))}[nz(4830)](t,e){}[nz(4855)](t){return!1}[nz(11805)](t,e){var n=nz;t[n(4544)](),t[n(4839)]=_SnapDrawable[n(11809)],t[n(3124)]=_SnapDrawable[n(11807)];const r=this[n(4838)](this[n(11804)][n(4148)].start,e),i=this[n(4838)](this[n(11804)][n(4148)].end,e);t.moveTo(r.x,r.y),t[n(3594)](i.x,i.y),t[n(4840)](),t[n(4841)]()}[nz(11800)](t,e){var n=nz;const r=this[n(4838)](this[n(11804)][n(1220)],e);t[n(3597)](r.x,r.y,_SnapDrawable[n(11810)]/3,0,2*Math.PI)}drawSquare(t,e){var n=nz;const r=this[n(4838)](this[n(11804)][n(1220)],e),i=_SnapDrawable[n(11810)]/1.2,s=_SnapDrawable.SNAP_ICON_SIZE/1.2;t[n(11811)](r.x-i/2,r.y-s/2,i,s)}drawTriangle(t,e){var n=nz;const r=this[n(4838)](this[n(11804)][n(1220)],e),i=_SnapDrawable[n(11810)]/1.2/2,s=new Vector2(0,-i)[n(747)](r),a=new Vector2(-.87*i,i/2)[n(747)](r),o=new Vector2(.87*i,i/2)[n(747)](r);t[n(3593)](s.x,s.y),t[n(3594)](a.x,a.y),t[n(3594)](o.x,o.y),t[n(3585)]()}[nz(11802)](t,e){var n=nz;const r=this[n(4838)](this[n(11804)][n(1220)],e),i=_SnapDrawable.SNAP_ICON_SIZE/1.2/2,s=new Vector2(-i,-i)[n(747)](r),a=new Vector2(i,i)[n(747)](r),o=new Vector2(i,-i).add(r),c=new Vector2(-i,i)[n(747)](r);t[n(3593)](s.x,s.y),t[n(3594)](a.x,a.y),t.moveTo(o.x,o.y),t[n(3594)](c.x,c.y)}drawPerpendicular(t,e){var n=nz;const r=this[n(4838)](this[n(11804)][n(1220)],e),i=_SnapDrawable.SNAP_ICON_SIZE/1.2/2;[new Vector2(0,0).add(r),new Vector2(-i,0)[n(747)](r),new Vector2(0,0).add(r),new Vector2(0,i)[n(747)](r),new Vector2(i,i).add(r),new Vector2(-i,i)[n(747)](r),new Vector2(-i,i)[n(747)](r),new Vector2(-i,-i)[n(747)](r)].forEach(((e,r)=>{var i=n;0===r?t[i(3593)](e.x,e.y):t[i(3594)](e.x,e.y)}))}[nz(1067)](t){this[nz(11804)]=t}getClassType(){return nz(11812)}},SnapDrawable=_SnapDrawable;SnapDrawable[nz(11806)]=nz(11813),SnapDrawable.FILL_COLOR=nz(11814),SnapDrawable.SNAP_LINE_COLOR=nz(11815),SnapDrawable[nz(11807)]=2.5,SnapDrawable[nz(11810)]=10,CanvasRender[nz(11816)](SnapDrawable);var EPSILON2=1e-5,OSnapHelper=class{constructor(t){var e,n=nz;this.drawableList=new DrawableList("snap"),this[n(11817)]={},this[n(11818)]=0,this[n(11819)]=1,this[n(5654)]=t,null==(e=this[n(5654)])||e[n(4879)](this.drawableList),this.initOSnapMarkers()}[nz(11820)](){var t=nz;const e=new SnapDrawable(t(4270)),n=new SnapDrawable(t(4274)),r=new SnapDrawable("Dot"),i=new SnapDrawable(t(4277)),s=new SnapDrawable(t(4279));this[t(11817)][2]=e,this[t(11817)][4]=e,this.markers[8]=n,this.markers[1]=r,this[t(11817)][32]=i,this.markers[16]=s,Object[t(673)](this[t(11817)])[t(604)]((e=>{var n=t;e[n(2122)]=!1,this[n(11821)][n(4846)](e)}))}[nz(11822)](t){this.snapTolerance=t}getSnapTolerance(){return this[nz(11819)]}[nz(11823)](t){return this[nz(11817)][t]}[nz(11785)](){var t=nz;this.activeOSnapType&&(this[t(11817)][this[t(11818)]].visible=!1),this[t(11818)]=0}[nz(1725)](){}handleSnap(t,e,n,r){var i=nz;if(!(null==e?void 0:e[i(449)]))return void this[i(11824)](0);const s=this[i(11825)](t,e);if(s){const e=this[i(11826)](t,s,r);return e&&0!==e[i(452)]?(this[i(11824)](e[i(452)],n,e),e.point):void this[i(11824)](0)}this[i(11824)](0)}[nz(11824)](t,e=!1,n){var r,i=nz;this[i(11818)]&&(this.markers[this[i(11818)]].visible=!1),this[i(11818)]=t;const s=this.markers[t];s&&n&&(s[i(11803)](e),s[i(1067)](n),s[i(2122)]=!0),null==(r=this[i(5654)])||r[i(2418)]()}[nz(11827)](t,e,n=EPSILON2){const{start:r,end:i}=e,s=r.x-i.x,a=r.y-i.y,o=r.z-i.z;if(r.distanceTo(i)e[r(452)]-t.type)),s[0]}},MeasurementType=(t=>{var e=nz;return t[e(9524)]=e(9524),t[e(11828)]=e(11828),t[e(5592)]=e(5592),t.Coordinate=e(5593),t})(MeasurementType||{}),BaseMeasurement=class extends Event{constructor(t,e,n,r){var i=nz;super(),this.mouseMoved=!1,this.mouseDowned=!1,this[i(11777)]=-1,this[i(11778)]=-1,this[i(11829)]=new LineBasicMaterial({color:16711680}),this.snapPoint=void 0,this[i(4618)]=t=>{var e=i;const n=CoordinateConversionUtils.getScreenPointByEvent(t,this[e(1939)]);this[e(11777)]=n.x,this[e(11778)]=n.y,this.mouseMoved=!1,this[e(11830)]=!0},this[i(4616)]=t=>{var e=i;if(this[e(11831)]=t,this[e(11777)]>=0&&this[e(11778)]>=0){const n=5;(Math[e(694)](t.offsetX-this.mouseDownPositionX)>n||Math[e(694)](t[e(2409)]-this[e(11778)])>n)&&(this[e(6453)]=!0)}if(this.mouseDowned)return;const n=this.getIntersections(t);if(!n.length)return;const r=Date.now();this[e(11832)](n),log[e(1178)](e(11833)+(Date.now()-r)/1e3+"s"),this[e(5389)](this[e(11834)]),this[e(4862)][e(5656)]()},this[i(4617)]=t=>{var e=i;0===t.buttons&&(this[e(11830)]=!1),!this.mouseMoved&&this[e(11835)](t)},this[i(11836)]=()=>{log[i(1175)]("[Measure] Double clicked")},this[i(4615)]=t=>{var e=i;if(t[e(973)]===e(4620)){const t=new MouseEvent(e(5320),{button:MOUSE[e(5327)]});this[e(11835)](t)}else"Escape"===t.code&&this[e(1408)]()},this[i(11837)]=t=>{var e=i;if(!this.raycaster)return[];this[e(4864)]&&this.raycaster[e(2160)][e(2117)](layerForNonSnapableObjects);const n=this[e(4862)][e(5658)](t);log[e(1178)](e(11838)+n.length,n);const r=Date[e(802)](),s=this.raycaster[e(4115)](n,!0)||[];return log[e(1178)]("[BaseMeasurement] this.raycaster.intersectObjects costs "+(Date[e(802)]()-r)/1e3+"s"),s},this[i(452)]=t,this[i(4862)]=e,this[i(11839)]=n,this[i(11840)]=r}get[nz(1939)](){var t,e=nz;return null==(t=this[e(4862)][e(4885)])?void 0:t[e(5280)]}get[nz(3045)](){var t=nz;return this[t(4862)][t(3045)]}get[nz(6447)](){return!!this[nz(4864)]}get[nz(11841)](){var t=nz;return this[t(6447)]&&!this[t(1134)]}[nz(11783)](){var t=nz;this[t(1939)][t(808)]("pointerdown",this[t(4618)]),this[t(1939)][t(808)](t(5319),this.mousemove),this[t(1939)][t(808)](t(5320),this[t(4617)]),this[t(1939)][t(808)](t(11836),this[t(11836)]),window[t(808)](t(4615),this[t(4615)]);const e=this[t(4862)][t(2078)];if(e){this[t(6296)]=new Tooltip(t(11842),e(t(11843)),{followPointer:!0,showOnCreate:!0,parentNode:this[t(4862)].widgetContainer,target:this.canvas});const n=document.getElementById(t(11842));n&&(n.style[t(11844)]="none")}this[t(11845)](),this.raycaster=this[t(4862)][t(5657)]()}[nz(11785)](){var t,e,n=nz;const r=this.canvas;r&&(r.removeEventListener(n(5316),this[n(4618)]),r[n(1716)](n(5319),this[n(4616)]),r[n(1716)](n(5320),this[n(4617)]),r[n(1716)](n(11836),this[n(11836)])),window[n(1716)](n(4615),this[n(4615)]),null==(t=this.tooltip)||t.hide(),null==(e=this[n(6296)])||e[n(1725)](),this[n(6296)]=void 0,this[n(4864)]=void 0,this.currentMeasureDrawable&&this[n(4849)](this[n(11846)]),this[n(11840)][n(11785)](),this[n(11847)]=void 0,this.currentMeasureDrawable=void 0,this[n(11848)]=void 0}[nz(4849)](t){var e=nz;this.drawList[e(4849)](t)}[nz(11849)](){var t=nz;this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable[t(1639)]=!1,this[t(11850)]=void 0)}[nz(11835)](t){var e=nz;const n=Date[e(802)]();if(!(this[e(11851)]&&n-this[e(11851)]<500)&&(this[e(11851)]=n,this[e(11850)]=void 0,null==this[e(1134)]||!0===this[e(1134)])){const n=this[e(11837)](t)[0];if(n){const t=this[e(11839)][e(11852)](n[e(1220)],this.raycaster);t&&(this[e(827)]("clickedonmeasurement",t),this[e(11850)]=t)}}}getIntersectsOutline(t){var e,n,r=nz;const i=[];for(let n=0;nt instanceof Points?0:t instanceof LineSegments?2:t instanceof Line?1:3;s[r(688)](((e,n)=>{var i=r;const s=t(e[i(469)]),a=t(n.object);return s!==a?s-a:e.distance-n[i(3018)]}))}}s=this[r(11855)](s),log.debug(r(11856),s),this[r(11834)]=(null==(n=this[r(11840)].handleSnap(i,s,this[r(4862)][r(11854)](),this.lastMouseDownPosition))?void 0:n[r(1014)]())||t[0][r(1220)].clone(),!this[r(11834)]&&(this[r(4862)].is3d()?this[r(11834)]=t[0].point:this[r(11834)]=i)}};BaseMeasurement[nz(11857)]=5e3;var _BaseMeasureDrawable=class extends Drawable{constructor(t,e){var n=nz;super(t),this[n(452)]="Distance",this[n(11858)]=new Box2,this[n(11859)]=!1,this[n(1067)](e)}[nz(11860)](t){this[nz(11859)]=t}[nz(4830)](t,e){var n=nz;const r=this.getVertexs();this[n(11861)](t,e,r)}[nz(11861)](t,e,n){var r=nz;t.save(),t.fillStyle=_BaseMeasureDrawable[r(11862)],t[r(4839)]=_BaseMeasureDrawable.MINOR_COLOR,t[r(3124)]=_BaseMeasureDrawable[r(11807)],t[r(4843)](),n[r(604)]((n=>{var i=r;const s=this[i(4838)](n,e);t[i(3593)](s.x+_BaseMeasureDrawable.POINT_RADIUS,s.y),t[i(3597)](s.x,s.y,_BaseMeasureDrawable[i(11863)],0,2*Math.PI)})),t[r(3585)](),t[r(929)](),t[r(4840)](),t[r(4841)]()}drawText(t,e){var n=nz;if(!this[n(11864)]||!this[n(11865)])return;t[n(904)]=_BaseMeasureDrawable[n(11866)]+n(11867);const r=1.2*t[n(4884)](this.label)[n(999)],i=1.5*_BaseMeasureDrawable[n(11866)];this[n(11858)][n(2057)](this.labelPositon,new Vector2(r,i)),this.drawRoundRect(t,this.labelPositon.x-r/2,this.labelPositon.y-i/2,r,i,4),t.save(),t[n(4409)]=_BaseMeasureDrawable.MINOR_COLOR,t[n(6036)]=n(5505),t[n(6928)]=n(1960),t.fillText(this[n(11864)],this[n(11865)].x,this[n(11865)].y),t[n(4841)]()}drawRoundRect(t,e,n,r,i,s){var a=nz;r<2*s&&(s=r/2),i<2*s&&(s=i/2),t[a(4544)](),t.fillStyle=_BaseMeasureDrawable[a(11862)],t[a(4839)]=_BaseMeasureDrawable[a(11868)],t.lineWidth=_BaseMeasureDrawable[a(11807)],t[a(4843)](),t[a(3593)](e+s,n),t.arcTo(e+r,n,e+r,n+i,s),t[a(11869)](e+r,n+i,e,n+i,s),t[a(11869)](e,n+i,e,n,s),t[a(11869)](e,n,e+r,n,s),t[a(3585)](),t.fill(),this[a(1639)]&&t[a(4840)](),t.restore()}getVertexs(){return this[nz(2985)]}[nz(1067)](t){var e=nz;const{min:n,max:r}=(new Box3)[e(2054)](t);return this.x=n.x,this.y=n.y,this.width=Math[e(694)](r.x-n.x),this[e(1e3)]=Math[e(694)](r.y-n.y),this.points=t,this}getBounds(){var t=nz;const e=this[t(4834)]();return(new Box3)[t(2054)](e)}[nz(4852)](){var t=nz;return{id:this.id,type:this[t(452)],points:this[t(2985)].map((t=>[t.x,t.y,t.z]))}}setData(t){var e=nz;super.setData(t),this.setLineColor(_BaseMeasureDrawable[e(11862)]),this[e(4835)](_BaseMeasureDrawable[e(11870)]),this[e(3416)](_BaseMeasureDrawable[e(11807)])}[nz(4855)](t,e){var n=nz;const r=null==e?void 0:e[n(2361)];if(!r)return!1;const i=3*this[n(4824)],s=this.transToScreenCoord(t,e[n(3045)]);if(this[n(11858)][n(2068)](s))return!0;const a=new Vector3,o=new Vector3,c=this[n(2985)];for(let t=0;t{var s=n;const a=this[s(4838)](r,e);0===i?t.moveTo(a.x,a.y):t[s(3594)](a.x,a.y)})),3===this[n(2985)][n(449)]){const[r,i,s]=this[n(2985)][n(679)]((t=>this[n(4838)](t,e))),a=(new Vector2)[n(1872)](r,i)[n(569)](),o=(new Vector2)[n(1872)](s,i).normalize(),c=Math[n(563)](r[n(2038)](i),s[n(2038)](i)),l=a[n(1882)](),h=o.angle();t[n(3593)](i.x,i.y),t.arc(i.x,i.y,c/5,l,h,a[n(1880)](o)<0)}t.stroke(),t[n(4841)](),this.drawing&&this[n(11861)](t,e,this[n(2985)][n(497)](0,this.points[n(449)]-1)),this[n(11546)](t,e)}[nz(11546)](t,e){var n=nz;if(this[n(2985)][n(449)]<3)return;const[r,i,s]=this[n(2985)],a=this.getAngleBisector(r,i,s),o=this[n(11875)](r,i,s);this[n(11864)]=showPrecisionValue(o,2)+" "+this[n(11871)]();const c=.3*Math.min(r.distanceTo(i),s.distanceTo(i));this[n(11865)]=this[n(4838)](i[n(1014)]().add(new Vector3(a.x*c,a.y*c,a.z*c)),e),super[n(11546)](t,e)}[nz(11876)](t,e,n){var r=nz;const i=t,s=e,a=n,o=new Vector3(i.x-s.x,i.y-s.y,i.z-s.z)[r(569)](),c=new Vector3(a.x-s.x,a.y-s.y,a.z-s.z).normalize();return new Vector3(o.x+c.x,o.y+c.y,o.z+c.z)[r(569)]()}[nz(11875)](t,e,n){var r=nz;const i=t,s=e,a=n,o=new Vector3(i.x-s.x,i.y-s.y,i.z-s.z),c=new Vector3(a.x-s.x,a.y-s.y,a.z-s.z);return 180*o[r(2014)](c)/Math.PI}getClassType(){return nz(5592)}};CanvasRender._registerDrawableClass(AngleMeasureDrawable);var AngleMeasurement=class extends BaseMeasurement{constructor(t,e,n){super(nz(5592),t,e,n)}[nz(5389)](t){this.createOrUpdateAngleMeasureDrawable(t)}onMouseClick(t){var e,n=nz;if(super[n(11835)](t),this[n(11850)])return;if(!this.drawingPoints&&(this[n(11847)]=[]),t[n(5335)]===MOUSE[n(5327)])return this.drawingPoints=void 0,this[n(11846)]&&(this.removeDrawable(this[n(11846)]),this[n(11846)]=void 0),this.completed=void 0,void(this[n(11848)]=void 0);const r=this.getIntersections(t)[0];if(!r)return;const i=null!=(e=this.snapPoint)?e:null==r?void 0:r[n(1220)],s=this[n(11847)];s[n(565)](i),this[n(11848)]=i,1===s[n(449)]&&(this[n(827)](n(11877)),this[n(1134)]=!1),this[n(11878)](),s[n(449)]>=3&&this[n(1168)]()}complete(){var t,e=nz;null==(t=this[e(11846)])||t[e(11860)](!1),this.dispatchEvent(e(1168),this[e(11846)]),this.completed=!0,this[e(11846)]=void 0,this[e(11847)]=void 0,this[e(11848)]=void 0}cancel(){var t=nz;const e=this.drawingPoints;if(e&&e[t(449)]>0){if(e[t(1161)](),0===e[t(449)]&&(this[t(11846)]&&(this[t(4849)](this[t(11846)]),this[t(11846)]=void 0),this[t(1134)]=!0),this[t(11831)]){const e=this[t(11837)](this[t(11831)])[0];e&&this[t(5389)](e[t(1220)])}}else this[t(11785)](),this[t(827)](t(11785),this[t(452)]);this[t(11840)][t(11785)](),this.lastMouseDownPosition=void 0}deactivate(){var t=nz;super.deactivate(),this[t(11846)]&&this[t(4849)](this[t(11846)])}[nz(11845)](){var t,e=nz;const n=this[e(4862)][e(2078)];if(!n)return;const r=n("Tooltip.measure");r&&this[e(6296)]&&(null==(t=this[e(6296)])||t[e(6273)](r))}[nz(11878)](t){var e=nz;if(!this[e(11847)])return;if(this[e(11847)]&&this[e(11847)][e(449)]<1)return;const n=[...this[e(11847)]];!this.currentMeasureDrawable&&(this[e(11846)]=new AngleMeasureDrawable(CommonUtils[e(4307)](),this[e(11847)]),this[e(11839)][e(4846)](this[e(11846)])),t&&n.push(t),this.currentMeasureDrawable[e(1067)](n),this[e(11846)][e(11860)](!0)}},import_d_polygon_self_intersections=__toESM(require_intersections(),1),Earcut2={triangulate:function(t,e,n=2){var r=nz;const i=e&&e[r(449)],s=i?e[0]*n:t[r(449)];let a=linkedList2(t,0,s,n,!0);const o=[];if(!a||a[r(436)]===a[r(1164)])return o;let c,l,h,u,d,f,p;if(i&&(a=eliminateHoles2(t,e,a,n)),t[r(449)]>80*n){c=h=t[0],l=u=t[1];for(let e=n;eh&&(h=d),f>u&&(u=f);p=Math[r(486)](h-c,u-l),p=0!==p?32767/p:0}return earcutLinked2(a,o,n,c,l,p,0),o}};function linkedList2(t,e,n,r,i){var s=nz;let a,o;if(i===signedArea2(t,e,n,r)>0)for(a=e;a=e;a-=r)o=insertNode2(a,t[a],t[a+1],o);return o&&equals3(o,o[s(436)])&&(removeNode2(o),o=o[s(436)]),o}function filterPoints2(t,e){var n=nz;if(!t)return t;e||(e=t);let r,i=t;do{if(r=!1,i[n(3625)]||!equals3(i,i.next)&&0!==area2(i[n(1164)],i,i[n(436)]))i=i[n(436)];else{if(removeNode2(i),i=e=i[n(1164)],i===i.next)break;r=!0}}while(r||i!==e);return e}function earcutLinked2(t,e,n,r,i,s,a){var o=nz;if(!t)return;!a&&s&&indexCurve2(t,r,i,s);let c,l,h=t;for(;t[o(1164)]!==t.next;)if(c=t[o(1164)],l=t[o(436)],s?isEarHashed2(t,r,i,s):isEar2(t))e[o(565)](c.i/n|0),e[o(565)](t.i/n|0),e[o(565)](l.i/n|0),removeNode2(t),t=l.next,h=l.next;else if((t=l)===h){a?1===a?earcutLinked2(t=cureLocalIntersections2(filterPoints2(t),e,n),e,n,r,i,s,2):2===a&&splitEarcut2(t,e,n,r,i,s):earcutLinked2(filterPoints2(t),e,n,r,i,s,1);break}}function isEar2(t){var e=nz;const n=t[e(1164)],r=t,i=t[e(436)];if(area2(n,r,i)>=0)return!1;const s=n.x,a=r.x,o=i.x,c=n.y,l=r.y,h=i.y,u=sa?s>o?s:o:a>o?a:o,p=c>l?c>h?c:h:l>h?l:h;let m=i.next;for(;m!==n;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&pointInTriangle2(s,c,a,l,o,h,m.x,m.y)&&area2(m[e(1164)],m,m.next)>=0)return!1;m=m.next}return!0}function isEarHashed2(t,e,n,r){var i=nz;const s=t.prev,a=t,o=t[i(436)];if(area2(s,a,o)>=0)return!1;const c=s.x,l=a.x,h=o.x,u=s.y,d=a.y,f=o.y,p=cl?c>h?c:h:l>h?l:h,_=u>d?u>f?u:f:d>f?d:f,g=zOrder2(p,m,e,n,r),y=zOrder2(v,_,e,n,r);let E=t[i(3623)],T=t[i(3624)];for(;E&&E.z>=g&&T&&T.z<=y;){if(E.x>=p&&E.x<=v&&E.y>=m&&E.y<=_&&E!==s&&E!==o&&pointInTriangle2(c,u,l,d,h,f,E.x,E.y)&&area2(E[i(1164)],E,E[i(436)])>=0)return!1;if(E=E[i(3623)],T.x>=p&&T.x<=v&&T.y>=m&&T.y<=_&&T!==s&&T!==o&&pointInTriangle2(c,u,l,d,h,f,T.x,T.y)&&area2(T[i(1164)],T,T.next)>=0)return!1;T=T[i(3624)]}for(;E&&E.z>=g;){if(E.x>=p&&E.x<=v&&E.y>=m&&E.y<=_&&E!==s&&E!==o&&pointInTriangle2(c,u,l,d,h,f,E.x,E.y)&&area2(E[i(1164)],E,E[i(436)])>=0)return!1;E=E[i(3623)]}for(;T&&T.z<=y;){if(T.x>=p&&T.x<=v&&T.y>=m&&T.y<=_&&T!==s&&T!==o&&pointInTriangle2(c,u,l,d,h,f,T.x,T.y)&&area2(T[i(1164)],T,T[i(436)])>=0)return!1;T=T.nextZ}return!0}function cureLocalIntersections2(t,e,n){var r=nz;let i=t;do{const s=i[r(1164)],a=i.next[r(436)];!equals3(s,a)&&intersects2(s,i,i[r(436)],a)&&locallyInside2(s,a)&&locallyInside2(a,s)&&(e[r(565)](s.i/n|0),e[r(565)](i.i/n|0),e[r(565)](a.i/n|0),removeNode2(i),removeNode2(i[r(436)]),i=t=a),i=i[r(436)]}while(i!==t);return filterPoints2(i)}function splitEarcut2(t,e,n,r,i,s){var a=nz;let o=t;do{let t=o.next[a(436)];for(;t!==o[a(1164)];){if(o.i!==t.i&&isValidDiagonal2(o,t)){let c=splitPolygon2(o,t);return o=filterPoints2(o,o[a(436)]),c=filterPoints2(c,c[a(436)]),earcutLinked2(o,e,n,r,i,s,0),void earcutLinked2(c,e,n,r,i,s,0)}t=t.next}o=o[a(436)]}while(o!==t)}function eliminateHoles2(t,e,n,r){var i=nz;const s=[];let a,o,c,l,h;for(a=0,o=e[i(449)];a=i[n(436)].y&&i.next.y!==i.y){const t=i.x+(o-i.y)*(i.next.x-i.x)/(i[n(436)].y-i.y);if(t<=a&&t>s&&(s=t,r=i.x=i.x&&i.x>=l&&a!==i.x&&pointInTriangle2(or.x||i.x===r.x&§orContainsSector2(r,i)))&&(r=i,d=u)),i=i[n(436)]}while(i!==c);return r}function sectorContainsSector2(t,e){var n=nz;return area2(t[n(1164)],t,e.prev)<0&&area2(e[n(436)],t,t[n(436)])<0}function indexCurve2(t,e,n,r){var i=nz;let s=t;do{0===s.z&&(s.z=zOrder2(s.x,s.y,e,n,r)),s[i(3623)]=s.prev,s[i(3624)]=s[i(436)],s=s[i(436)]}while(s!==t);s[i(3623)][i(3624)]=null,s[i(3623)]=null,sortLinked2(s)}function sortLinked2(t){var e=nz;let n,r,i,s,a,o,c,l,h=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,i=r,c=0,n=0;n0||l>0&&i;)0!==c&&(0===l||!i||r.z<=i.z)?(s=r,r=r[e(3624)],c--):(s=i,i=i.nextZ,l--),a?a[e(3624)]=s:t=s,s.prevZ=a,a=s;r=i}a[e(3624)]=null,h*=2}while(o>1);return t}function zOrder2(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function getLeftmost2(t){let e=t,n=t;do{(e.x=(t-a)*(s-o)&&(t-a)*(r-o)>=(n-a)*(e-o)&&(n-a)*(s-o)>=(i-a)*(r-o)}function isValidDiagonal2(t,e){var n=nz;return t.next.i!==e.i&&t.prev.i!==e.i&&!intersectsPolygon2(t,e)&&(locallyInside2(t,e)&&locallyInside2(e,t)&&middleInside2(t,e)&&(area2(t[n(1164)],t,e[n(1164)])||area2(t,e[n(1164)],e))||equals3(t,e)&&area2(t[n(1164)],t,t[n(436)])>0&&area2(e.prev,e,e[n(436)])>0)}function area2(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function equals3(t,e){return t.x===e.x&&t.y===e.y}function intersects2(t,e,n,r){const i=sign2(area2(t,e,n)),s=sign2(area2(t,e,r)),a=sign2(area2(n,r,t)),o=sign2(area2(n,r,e));return i!==s&&a!==o||(!(0!==i||!onSegment2(t,n,e))||(!(0!==s||!onSegment2(t,r,e))||(!(0!==a||!onSegment2(n,t,r))||!(0!==o||!onSegment2(n,e,r)))))}function onSegment2(t,e,n){var r=nz;return e.x<=Math[r(486)](t.x,n.x)&&e.x>=Math[r(563)](t.x,n.x)&&e.y<=Math[r(486)](t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function sign2(t){return t>0?1:t<0?-1:0}function intersectsPolygon2(t,e){var n=nz;let r=t;do{if(r.i!==t.i&&r[n(436)].i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&intersects2(r,r.next,t,e))return!0;r=r[n(436)]}while(r!==t);return!1}function locallyInside2(t,e){var n=nz;return area2(t[n(1164)],t,t[n(436)])<0?area2(t,e,t.next)>=0&&area2(t,t.prev,e)>=0:area2(t,e,t[n(1164)])<0||area2(t,t[n(436)],e)<0}function middleInside2(t,e){var n=nz;let r=t,i=!1;const s=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r[n(436)].y>a&&r.next.y!==r.y&&s<(r[n(436)].x-r.x)*(a-r.y)/(r[n(436)].y-r.y)+r.x&&(i=!i),r=r[n(436)]}while(r!==t);return i}function splitPolygon2(t,e){var n=nz;const r=new Node3(t.i,t.x,t.y),i=new Node3(e.i,e.x,e.y),s=t[n(436)],a=e[n(1164)];return t[n(436)]=e,e[n(1164)]=t,r[n(436)]=s,s[n(1164)]=r,i.next=r,r[n(1164)]=i,a[n(436)]=i,i.prev=a,i}function insertNode2(t,e,n,r){var i=nz;const s=new Node3(t,e,n);return r?(s[i(436)]=r.next,s[i(1164)]=r,r[i(436)][i(1164)]=s,r[i(436)]=s):(s[i(1164)]=s,s[i(436)]=s),s}function removeNode2(t){var e=nz;t[e(436)][e(1164)]=t[e(1164)],t[e(1164)][e(436)]=t[e(436)],t[e(3623)]&&(t[e(3623)][e(3624)]=t[e(3624)]),t[e(3624)]&&(t[e(3624)][e(3623)]=t[e(3623)])}function Node3(t,e,n){var r=nz;this.i=t,this.x=e,this.y=n,this[r(1164)]=null,this[r(436)]=null,this.z=0,this[r(3623)]=null,this[r(3624)]=null,this[r(3625)]=!1}function signedArea2(t,e,n,r){let i=0;for(let s=e,a=n-r;st[e(1499)]()))[e(684)](((t,e)=>(t.push(...e),t)),[]),r=[];return Earcut2[e(3628)](n,[],3)[e(604)]((t=>r[e(565)](t))),r}static[nz(11879)](t){var e=nz;if(t[e(449)]<4)return!0;const n=t[1].clone()[e(909)](t[0]),r=t[2][e(1014)]()[e(909)](t[0])[e(1880)](n)[e(569)]();for(let n=3;nEPSILON3)return!1}return!0}static[nz(11880)](t){var e=nz;const n=t[e(679)]((t=>t[e(1499)]()[e(497)](0,-1)));return(0,import_d_polygon_self_intersections[e(435)])(n)[e(449)]>0}},AreaMeasureDrawable=class extends BaseMeasureDrawable2{constructor(t,e){var n=nz;super(t,e),this[n(452)]=n(11828),this[n(1067)](e)}[nz(4829)](t,e){var n=nz;const r=this[n(2985)];t[n(4544)](),t[n(3124)]=BaseMeasureDrawable2[n(11807)],t[n(4839)]=BaseMeasureDrawable2[n(11862)],t[n(4409)]=BaseMeasureDrawable2.AREA_FILL_COLOR,t.beginPath(),r[n(604)](((n,r)=>{const i=this.transToScreenCoord(n,e);0===r?t.moveTo(i.x,i.y):t.lineTo(i.x,i.y)})),t[n(3585)](),t[n(929)](),t[n(4840)](),t[n(4841)](),this.drawing&&this[n(11861)](t,e,this[n(2985)][n(497)](0,this.points[n(449)]-1)),this[n(11546)](t,e)}[nz(11546)](t,e){var n=nz;const r=this[n(2985)],i=this[n(11881)](r);this[n(11864)]=""+showPrecisionValue(i,2),this.labelPositon=this[n(4838)](this[n(11882)](r),e),super.drawText(t,e)}[nz(11881)](t){var e=nz;let n=0;const r=PolygonUtils.getFaces(t);for(let i=0;i{n+=t.x,r+=t.y,i+=t.z})),new Vector3(n/e,r/e,i/e)}isPointInPath(t,e){var n=nz;const r=null==e?void 0:e[n(2361)];if(!r)return!1;const i=this.transToScreenCoord(t,e.camera);if(this[n(11858)].containsPoint(i))return!0;const s=PolygonUtils.getFaces(this.points);for(let e=0;e=3&&!PolygonUtils[r(11879)]([...i,a])?log[r(1176)](r(11887)):(i[r(565)](a),this[r(11848)]=a,1===i[r(449)]&&(this[r(827)](r(11877)),this[r(1134)]=!1),this[r(11883)]())}[nz(1168)](){var t,e=nz;null==(t=this.currentMeasureDrawable)||t[e(11860)](!1),this.dispatchEvent(e(1168),this[e(11846)]),this[e(1134)]=!0,this[e(11847)]=void 0,this[e(11846)]=void 0,this[e(11848)]=void 0}[nz(1408)](){var t=nz;const e=this[t(11847)];if(e&&e[t(449)]>0){if(e[t(1161)](),0===e[t(449)]&&(this[t(11846)]&&(this[t(4849)](this.currentMeasureDrawable),this[t(11846)]=void 0),this[t(1134)]=!0),this[t(11831)]){const e=this[t(11837)](this[t(11831)])[0];e&&this[t(5389)](e[t(1220)])}}else this[t(11785)](),this[t(827)](t(11785),this[t(452)]);this.osnapHelper[t(11785)](),this[t(11848)]=void 0}[nz(11785)](){var t=nz;super[t(11785)](),this[t(11846)]&&this.removeDrawable(this[t(11846)])}[nz(11845)](){var t,e=nz;const n=this.viewer[e(2078)];if(n){const r=n("Tooltip.areaMeasurement");r&&this[e(6296)]&&(null==(t=this.tooltip)||t[e(6273)](r))}}[nz(11883)](t){var e=nz;if(!this.drawingPoints)return;if(this[e(11847)]&&this[e(11847)].length<1)return;const n=[...this[e(11847)]];!this[e(11846)]&&(this[e(11846)]=new AreaMeasureDrawable(CommonUtils.guid(),this[e(11847)]),this[e(11839)][e(4846)](this.currentMeasureDrawable)),t&&n[e(565)](t),this[e(11846)][e(1067)](n),this[e(11846)][e(11860)](!0)}},CoordinateMeasureDrawable=class extends BaseMeasureDrawable2{constructor(t,e){var n=nz;super(t,e),this[n(452)]="Coordinate",this[n(1067)](e)}[nz(4829)](t,e){var n=nz;this.drawText(t,e),t.save(),t[n(3124)]=BaseMeasureDrawable2[n(11807)],t[n(4839)]=BaseMeasureDrawable2[n(11862)],t.fillStyle=BaseMeasureDrawable2[n(11870)];const r=this[n(2985)];t[n(4843)](),r.forEach((r=>{var i=n;const s=this[i(4838)](r,e);t.arc(s.x,s.y,BaseMeasureDrawable2[i(11863)],0,2*Math.PI)})),t[n(929)](),t[n(4840)](),t.restore()}drawText(t,e){var n=nz;const r=this[n(2985)][0];MathUtils2[n(4560)](r.x,0);const i=MathUtils2[n(4560)](r.x,0)?0:r.x,s=MathUtils2.areNumbersEqual(r.y,0)?0:r.y,a=MathUtils2.areNumbersEqual(r.z,0)?0:r.z;this.label=showPrecisionValue(i,2)+", "+showPrecisionValue(s,2)+", "+showPrecisionValue(a,2),t[n(904)]=BaseMeasureDrawable2[n(11866)]+n(11867);const o=1.2*t[n(4884)](this.label).width,c=1.5*BaseMeasureDrawable2[n(11866)];this.labelPositon=this[n(4838)](r,e),this[n(11865)].y-=c/2,this.labelBounds[n(2057)](this.labelPositon,new Vector2(o,c)),this.drawRoundRect(t,this.labelPositon.x-o/2,this[n(11865)].y-c/2,o,c,4),t[n(4544)](),t.fillStyle=BaseMeasureDrawable2.MINOR_COLOR,t[n(6036)]=n(5505),t[n(6928)]=n(1960),t.fillText(this.label,this[n(11865)].x,this[n(11865)].y),t.restore()}[nz(4833)](){return nz(5593)}};CanvasRender._registerDrawableClass(CoordinateMeasureDrawable);var CoordinateMeasurement=class extends BaseMeasurement{constructor(t,e,n){super(nz(5593),t,e,n)}[nz(5389)](t){this[nz(11888)](t)}[nz(11835)](t){var e,n=nz;if(super.onMouseClick(t),this[n(11850)])return;if(!this.drawingPoints&&(this.drawingPoints=[]),t[n(5335)]===MOUSE[n(5327)])return this.drawingPoints=void 0,this[n(11846)]&&(this.removeDrawable(this[n(11846)]),this.currentMeasureDrawable=void 0),this[n(1134)]=void 0,void(this[n(11848)]=void 0);const r=this[n(11837)](t)[0];if(!r)return;const i=null!=(e=this[n(11834)])?e:null==r?void 0:r[n(1220)],s=this.drawingPoints;s[n(565)](i),this[n(11848)]=i,1===s[n(449)]&&(this[n(827)](n(11877)),this.completed=!1),this[n(11888)](i),s.length>=1&&this[n(1168)]()}[nz(1168)](){var t=nz;this[t(827)](t(1168),this[t(11846)]),this.completed=!0,this[t(11847)]=void 0,this[t(11846)]=void 0,this[t(11848)]=void 0}[nz(1408)](){var t=nz;const e=this[t(11847)];if(e&&e[t(449)]>0){if(e.pop(),0===e[t(449)]&&(this[t(1134)]=!0),this[t(11831)]){const e=this[t(11837)](this.lastMoveEvent)[0];e&&this[t(5389)](e[t(1220)])}}else this[t(11785)](),this[t(827)](t(11785),this.type);this[t(11840)][t(11785)](),this[t(11847)]=void 0,this.currentMeasureDrawable=void 0,this[t(11848)]=void 0}[nz(11845)](){var t,e=nz;const n=this.viewer[e(2078)];if(n){const r=n(e(11843));r&&this[e(6296)]&&(null==(t=this[e(6296)])||t[e(6273)](r))}}[nz(11888)](t){var e=nz;if(!this.drawingPoints)return;if(this.drawingPoints&&this[e(11847)].length<1)return;const n=[...this[e(11847)]];!this[e(11846)]&&(this[e(11846)]=new CoordinateMeasureDrawable(CommonUtils.guid(),this[e(11847)]),this[e(11846)][e(1639)]=!0,this.drawList[e(4846)](this[e(11846)])),t&&n[e(565)](t),this[e(11846)][e(1067)](n)}},_DistanceMeasureDrawable=class extends BaseMeasureDrawable2{constructor(t,e){var n=nz;super(t,e),this[n(452)]=n(9524),this[n(1067)](e)}[nz(4829)](t,e){var n=nz;const r=this[n(2985)];t[n(4544)](),t[n(3124)]=BaseMeasureDrawable2[n(11807)],t.strokeStyle=BaseMeasureDrawable2.MAJOR_COLOR,t[n(4843)](),r[n(604)](((r,i)=>{var s=n;const a=this[s(4838)](r,e);0===i?t[s(3593)](a.x,a.y):t[s(3594)](a.x,a.y)})),t[n(3585)](),t[n(4840)](),t[n(4841)](),this[n(11859)]?this[n(11861)](t,e,this.points[n(497)](0,this.points.length-1)):!this.selected&&this.drawVerticalLine(t,e),this[n(11546)](t,e)}[nz(11546)](t,e){var n=nz;if(this[n(2985)][n(449)]<2)return;const[r,i]=this[n(2985)],s=r.distanceTo(i);this.label=""+showPrecisionValue(s,2),this[n(11865)]=this[n(4838)](r.clone()[n(747)](i).divideScalar(2),e),super[n(11546)](t,e)}[nz(11889)](t,e){var n=nz;if(this[n(2985)][n(449)]<2)return;const[r,i]=this[n(2985)].map((t=>this.transToScreenCoord(t,e))),[s,a]=this[n(11890)](r,i),[o,c]=this[n(11890)](i,r);t.save(),t[n(3124)]=BaseMeasureDrawable2[n(11807)],t[n(4839)]=BaseMeasureDrawable2[n(11862)],t[n(4843)](),t[n(3593)](s.x,s.y),t[n(3594)](a.x,a.y),t[n(3593)](o.x,o.y),t[n(3594)](c.x,c.y),t[n(4840)](),t.restore()}[nz(11890)](t,e){var n=nz;const r=(new Vector2)[n(1872)](e,t).normalize(),i=_DistanceMeasureDrawable.SHORT_LINE_LENGTH/2,s=Math.PI/2;return[r[n(1014)]()[n(11597)](new Vector2,s).normalize()[n(1878)](i)[n(747)](t),r[n(1014)]()[n(11597)](new Vector2,-s)[n(569)]()[n(1878)](i)[n(747)](t)]}[nz(4833)](){return nz(9524)}},DistanceMeasureDrawable=_DistanceMeasureDrawable;DistanceMeasureDrawable.SHORT_LINE_LENGTH=12,CanvasRender[nz(11816)](DistanceMeasureDrawable);var DistanceMeasurement=class extends BaseMeasurement{constructor(t,e,n){super(nz(9524),t,e,n)}[nz(5389)](t){this.createOrUpdateDistanceMeasureDrawable(t)}onMouseClick(t){var e,n=nz;if(super[n(11835)](t),this.clickedOnMeasurementDrawable)return;if(!this[n(11847)]&&(this[n(11847)]=[]),t[n(5335)]===MOUSE[n(5327)])return this[n(11847)]=void 0,this.currentMeasureDrawable&&(this[n(4849)](this[n(11846)]),this[n(11846)]=void 0),this[n(1134)]=void 0,void(this[n(11848)]=void 0);const r=this[n(11837)](t)[0];if(!r)return;const i=null!=(e=this.snapPoint)?e:null==r?void 0:r[n(1220)],s=this[n(11847)];s.length<2&&s[n(565)](i),this[n(11848)]=i,1===s[n(449)]&&(this[n(827)](n(11877)),this.completed=!1),this[n(11891)](),s[n(449)]>=2&&this[n(1168)]()}complete(){var t,e=nz;null==(t=this[e(11846)])||t[e(11860)](!1),this.dispatchEvent("complete",this[e(11846)]),this[e(1134)]=!0,this[e(11847)]=void 0,this[e(11846)]=void 0,this[e(11848)]=void 0}cancel(){var t=nz;const e=this.drawingPoints;e&&e[t(449)]>0?(e[t(1161)](),0===e[t(449)]&&(this[t(1134)]=!0),this[t(11846)]&&this[t(4849)](this[t(11846)])):(this.deactivate(),this.dispatchEvent(t(11785),this[t(452)])),this[t(11840)][t(11785)](),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this[t(11848)]=void 0}[nz(11785)](){var t=nz;super[t(11785)](),this[t(11846)]&&this[t(4849)](this[t(11846)])}setTooltipContent(){var t,e=nz;const n=this[e(4862)].translate;if(n){const r=n(e(11843));r&&this[e(6296)]&&(null==(t=this.tooltip)||t[e(6273)](r))}}[nz(11891)](t){var e=nz;if(!this[e(11847)])return;if(this[e(11847)]&&this[e(11847)].length<1)return;const n=[...this[e(11847)]];!this[e(11846)]&&(this.currentMeasureDrawable=new DistanceMeasureDrawable(CommonUtils[e(4307)](),this[e(11847)]),this[e(11839)].addDrawable(this[e(11846)])),t&&n.push(t),this[e(11846)][e(1067)](n),this[e(11846)][e(11860)](!0)}},import_lodash6=__toESM(require_lodash(),1),UndoRedoHelper=class{constructor(t){var e=nz;this[e(11892)]=[],this[e(6577)]=0,this[e(11893)]=50,this[e(11893)]=t||this[e(11893)]}[nz(11894)](t,e){var n=nz;this.history[n(449)]===this.maxCount&&this.history.shift(),this[n(6577)]!==this[n(11892)][n(449)]&&this[n(11892)][n(690)](this[n(6577)]),this.history[n(565)]({type:t,payload:(0,import_lodash6[n(1516)])(e)}),this[n(6577)]++}[nz(11895)](){var t=nz;if(0!==this[t(6577)])return this[t(6577)]--,this[t(11892)][this[t(6577)]]}redo(){var t=nz;if(this.step!==this[t(11892)][t(449)])return this.step++,this[t(11892)][this[t(6577)]-1]}[nz(750)](){var t=nz;this[t(11892)]=[],this[t(6577)]=0}[nz(1725)](){var t=nz;this[t(750)](),this[t(11893)]=0}},MeasurementUndoRedo=class extends UndoRedoHelper{constructor(t,e=30){var n=nz;super(e),this[n(3749)]=t}[nz(11895)](){var t=nz;const e=super[t(11895)]();switch(null==e?void 0:e[t(452)]){case t(1803):{const n=e[t(11896)].id;n&&this[t(3749)][t(11897)](n,!1)}break;case t(11898):{const n=e[t(11896)],r=this.manager[t(11899)](n);this[t(3749)][t(11900)](r,!1)}}return e}[nz(11901)](){var t=nz;const e=super[t(11901)]();switch(null==e?void 0:e[t(452)]){case t(1803):{const n=e[t(11896)],r=this[t(3749)][t(11899)](n);this[t(3749)][t(11900)](r,!1)}break;case t(11898):{const n=e[t(11896)].id;n&&this[t(3749)][t(11897)](n,!1)}}return e}},MeasurementManager2=class{constructor(t){var e,n=nz;this[n(11902)]=void 0,this.drawableList=new DrawableList(n(11903)),this[n(11904)]={},this.activeMeasurementType=void 0,this.undoRedoHelper=new MeasurementUndoRedo(this),this[n(11837)]=t=>{var e=n;if(!this[e(4864)])return[];this[e(4864)]&&this[e(4864)].layers[e(2117)](layerForNonSnapableObjects);const r=this[e(4862)][e(5658)](t);log[e(1178)](e(11838)+r[e(449)],r);const i=Date.now(),s=this[e(4864)].intersectObjects(r,!0)||[];return log[e(1178)](e(11905)+(Date[e(802)]()-i)/1e3+"s"),log.debug(e(11906),s),s},this[n(4615)]=t=>{var e=n;const r=this[e(11907)]();let i;r&&(i=this[e(11904)][r]);const s=this[e(11902)];s&&t[e(973)]===e(11908)&&(this[e(11909)](s),this[e(11910)]&&this.measurements[this[e(11910)]][e(11849)]()),t.ctrlKey&&t[e(973)]===e(11911)&&((null==i?void 0:i[e(11841)])?i[e(1408)]():this[e(11895)]()),t[e(5339)]&&t[e(973)]===e(11912)&&((null==i?void 0:i.isMeasuring)||this[e(11901)]()),this[e(4862)][e(5656)]()},this[n(4862)]=t,this[n(5654)]=this[n(4862)][n(5654)],null==(e=this[n(5654)])||e[n(4879)](this.drawableList),this[n(4758)]=new Scene,this[n(11840)]=new OSnapHelper(this[n(5654)]),this[n(11904)][n(9524)]=new DistanceMeasurement(this.viewer,this[n(11821)],this.osnapHelper),this[n(11904)][n(11828)]=new AreaMeasurement(this.viewer,this[n(11821)],this.osnapHelper),this[n(11904)][n(5592)]=new AngleMeasurement(this[n(4862)],this[n(11821)],this.osnapHelper),this[n(11904)][n(5593)]=new CoordinateMeasurement(this[n(4862)],this[n(11821)],this[n(11840)]),this[n(1939)][n(808)](n(5318),(()=>{this[n(11822)]()})),this.initEvents()}[nz(11913)](){var t=nz;Object.values(this[t(11904)])[t(604)]((e=>{var n=t;e.addEventListener("complete",(t=>{var e=f;this.undoRedoHelper.addRecord(e(1803),t[e(4852)]()),this[e(11914)](t)})),e.addEventListener(n(11785),(()=>{var t=n;this[t(11840)].deactivate(),this[t(4862)].deactivateMeasurement()})),e.addEventListener(n(11877),(()=>{this.unselectMeasurement()})),e.addEventListener(n(11915),(t=>{this[n(11914)](t)}))}))}get[nz(1939)](){var t,e=nz;return null==(t=this[e(4862)][e(4885)])?void 0:t[e(5280)]}get[nz(4864)](){var t=nz;return this.viewer[t(5657)]()}[nz(11916)](){var t=nz;if(!this[t(4862)][t(4863)])return log[t(819)](t(11917)),0;const e=this[t(4862)][t(3045)],{clientWidth:n,clientHeight:r}=this.viewer[t(4863)];let i=0;if(e.type===t(2650)){const s=e;i=Math[t(486)](s[t(935)]-s[t(683)],s.top-s[t(2652)])/s[t(2397)]/Math[t(486)](n,r)}else if(e[t(452)]===t(2391)){const n=e,s=this.viewer[t(11918)],a=s&&CommonUtils[t(4866)](s[t(4867)]),o=s&&CommonUtils[t(4866)](s[t(4868)]);i=2*(a.distanceTo(o)*Math.tan(n[t(2392)]/2*Math.PI/180))/r}return i}[nz(11900)](t,e=!0){var n=nz;this[n(11821)][n(4846)](t),this[n(11902)]=t,e&&this[n(11919)][n(11894)](n(1803),t.getData()),this[n(4862)][n(5656)]()}[nz(11899)](t){return CanvasRender[nz(4854)](t)}[nz(11909)](t,e=!0){var n=nz;this.drawableList.removeDrawable(t),this[n(11902)]=void 0,e&&this[n(11919)][n(11894)](n(11898),t[n(4852)]()),this[n(4862)][n(5656)]()}[nz(11822)](t=3){var e=nz;const n=this.getPixelSizeInWorldCoord()*t;this[e(11840)][e(11822)](n)}[nz(11920)](t){var e=nz;this[e(11910)]&&this[e(5659)](),this[e(11904)][t]?(this[e(11904)][t][e(11783)](),this[e(11910)]=t,this.updateSnapTolerance()):(this[e(11910)]=void 0,log[e(819)]("[Measure] Failed to activate measurement, type:",t)),window.addEventListener("keydown",this[e(4615)])}[nz(5659)](){var t=nz;this[t(11921)]();const e=this[t(11910)];e&&this[t(11904)][e][t(11785)](),this.activeMeasurementType=void 0,window.removeEventListener(t(4615),this.keydown)}[nz(11907)](){return this.activeMeasurementType}[nz(11922)](){var t=nz;const e=this[t(11910)];return e?this[t(11904)][e][t(6447)]:!!this[t(11907)]()}getMeasurementsData(){var t=nz;return this[t(11821)][t(11923)]()}[nz(11924)](t){var e=nz;this[e(11821)][e(750)](),t.forEach((t=>{var n=e;this.measurements[t[n(452)]]?t.points[n(449)]>=2?this.addMeasurement(CanvasRender.createDrawable(t),!1):log.info(n(11925),t):log[n(1176)](n(11926),t)}))}[nz(11927)](t){var e=nz;this[e(11821)][e(4851)]().forEach((n=>n[e(2122)]=t)),this[e(4862)][e(5656)]()}[nz(11928)](){var t=nz;this[t(11821)].clear(),this[t(4862)][t(5656)]()}[nz(11897)](t,e=!0){var n=nz;const r=this[n(11821)][n(4850)](t);r&&(this[n(11909)](r,e),log.warn("[Measure] Failed to find measurement by id:",t))}[nz(11929)](t){var e=nz;this[e(11921)]();const n=this[e(11821)].getDrawableById(t);n&&(n[e(1639)]=!0,this[e(11902)]=n),this[e(4862)][e(5656)]()}[nz(11914)](t){var e=nz;this[e(11921)](),t[e(1639)]=!0,this[e(11902)]=t,this[e(4862)].enableRender()}[nz(11921)](){var t=nz;this[t(11902)]&&(this.selectedMeasurementDrawable.selected=!1),this.selectedMeasurementDrawable=void 0,this[t(4862)].enableRender()}[nz(11895)](){this.undoRedoHelper.undo()}[nz(11901)](){var t=nz;this[t(11919)][t(11901)]()}[nz(11930)](){var t=nz;this[t(11919)][t(750)]()}destroy(){var t,e=nz;this[e(5659)](),this[e(11928)](),this.measurements={},null==(t=this[e(11840)])||t[e(1725)](),this.scene.clear(),this[e(11919)][e(1725)]()}},_position3=new Vector3,_quaternion2=new Quaternion,_scale2=new Vector3,CSS3DObject=class extends Object3D{constructor(t=document[nz(538)]("div")){var e=nz;super(),this[e(11931)]=!0,this[e(5231)]=t,this[e(5231)][e(590)][e(2065)]=e(4873),this[e(5231)].style.pointerEvents="auto",this.element[e(590)][e(4875)]=e(3833),this.element[e(2334)](e(11932),!1),this[e(808)]("removed",(function(){var t=e;this[t(2152)]((function(e){var n=t;e[n(5231)]instanceof Element&&null!==e[n(5231)].parentNode&&e[n(5231)][n(6269)][n(809)](e.element)}))}))}[nz(1867)](t,e){var n=nz;return super[n(1867)](t,e),this[n(5231)]=t[n(5231)][n(6913)](!0),this}},_matrix2=new Matrix4,_matrix22=new Matrix4,CSS3DRenderer=class{constructor(t={}){var e=nz;const n=this;let r,i,s,a;const o={camera:{fov:0,style:""},objects:new WeakMap},c=void 0!==t[e(5231)]?t[e(5231)]:document.createElement(e(539));c[e(590)][e(6914)]=e(605),this[e(5280)]=c;const l=document[e(538)](e(539));function h(t){return Math[e(694)](t)<1e-10?0:t}function u(t){var n=e;const r=t.elements;return n(11939)+h(r[0])+","+h(-r[1])+","+h(r[2])+","+h(r[3])+","+h(r[4])+","+h(-r[5])+","+h(r[6])+","+h(r[7])+","+h(r[8])+","+h(-r[9])+","+h(r[10])+","+h(r[11])+","+h(r[12])+","+h(-r[13])+","+h(r[14])+","+h(r[15])+")"}function d(t){const n=t[e(1874)];return"translate(-50%,-50%)"+("matrix3d("+h(n[0])+","+h(n[1])+","+h(n[2])+","+h(n[3])+","+h(-n[4])+","+h(-n[5])+","+h(-n[6])+","+h(-n[7])+","+h(n[8])+","+h(n[9])+","+h(n[10])+","+h(n[11])+","+h(n[12])+","+h(n[13])+","+h(n[14])+","+h(n[15])+")")}function f(t,r,i,s){var a=e;if(t.isCSS3DObject){const e=!0===t[a(2122)]&&!0===t[a(2160)][a(467)](i[a(2160)]);if(t[a(5231)][a(590)][a(3368)]=!0===e?"":a(3833),!0===e){let e;t[a(3424)](n,r,i),t.isCSS3DSprite?(_matrix2[a(1867)](i[a(2030)]),_matrix2[a(1898)](),0!==t[a(11940)]&&_matrix2[a(1558)](_matrix22[a(2100)](t[a(11940)])),t[a(2033)][a(2103)](_position3,_quaternion2,_scale2),_matrix2[a(3869)](_position3),_matrix2[a(1901)](_scale2),_matrix2[a(1874)][3]=0,_matrix2[a(1874)][7]=0,_matrix2.elements[11]=0,_matrix2[a(1874)][15]=1,e=d(_matrix2)):e=d(t.matrixWorld);const s=t.element,c=o.objects[a(427)](t);if(void 0===c||c[a(590)]!==e){s.style.transform=e;const n={style:e};o.objects.set(t,n)}s[a(6269)]!==l&&l[a(591)](s),t[a(2126)](n,r,i)}}for(let e=0,n=t[a(1602)].length;e({position:new Vector3(t,e,n),rotation:new Euler(r,i,s)}),plane={[nz(4812)]:__spreadProps(__spreadValues({},posAndRot([0,0,1],[0,0,0])),{label:nz(11942)}),Right:__spreadProps(__spreadValues({},posAndRot([1,0,0],[0,halfPI,0])),{label:nz(11943)}),[nz(5577)]:__spreadProps(__spreadValues({},posAndRot([0,0,-1],[0,Math.PI,0])),{label:nz(11944)}),[nz(4813)]:__spreadProps(__spreadValues({},posAndRot([-1,0,0],[0,-halfPI,0])),{label:nz(11945)}),[nz(4810)]:__spreadProps(__spreadValues({},posAndRot([0,1,0],[-halfPI,0,0])),{label:nz(11946)}),[nz(4811)]:__spreadProps(__spreadValues({},posAndRot([0,-1,0],[halfPI,0,0])),{label:nz(11947)})},edge=[posAndRot([0,1,1],[-quarterPI,0,-halfPI]),posAndRot([0,1,-1],[-3*quarterPI,0,-halfPI]),posAndRot([0,-1,1],[quarterPI,0,-halfPI]),posAndRot([0,-1,-1],[3*quarterPI,0,-halfPI]),posAndRot([1,1,0],[-halfPI,quarterPI,0]),posAndRot([1,-1,0],[-halfPI,3*quarterPI,0]),posAndRot([-1,1,0],[-halfPI,-quarterPI,0]),posAndRot([-1,-1,0],[-halfPI,-3*quarterPI,0]),posAndRot([1,0,1],[0,quarterPI,0]),posAndRot([1,0,-1],[0,3*quarterPI,0]),posAndRot([-1,0,1],[0,-quarterPI,0]),posAndRot([-1,0,-1],[0,-3*quarterPI,0])],corner=[{position:new Vector3(1,1,1),rotation:[new Euler(-halfPI,halfPI,-quarterPI),new Euler(-halfPI,0,quarterPI),new Euler(0,0,3*quarterPI)]},{position:new Vector3(1,1,-1),rotation:[new Euler(0,halfPI,3*quarterPI),new Euler(-halfPI,0,3*quarterPI),new Euler(0,Math.PI,-3*quarterPI)]},{position:new Vector3(-1,1,-1),rotation:[new Euler(Math.PI,-halfPI,quarterPI),new Euler(-halfPI,0,-3*quarterPI),new Euler(0,Math.PI,3*quarterPI)]},{position:new Vector3(-1,1,1),rotation:[new Euler(0,-halfPI,3*quarterPI),new Euler(-halfPI,0,-quarterPI),new Euler(0,0,-3*quarterPI)]},{position:new Vector3(1,-1,1),rotation:[new Euler(0,halfPI,-quarterPI),new Euler(-halfPI,Math.PI,-quarterPI),new Euler(0,0,quarterPI)]},{position:new Vector3(1,-1,-1),rotation:[new Euler(-halfPI,halfPI,3*quarterPI),new Euler(halfPI,0,quarterPI),new Euler(0,Math.PI,-quarterPI)]},{position:new Vector3(-1,-1,1),rotation:[new Euler(0,-halfPI,quarterPI),new Euler(halfPI,0,-3*quarterPI),new Euler(0,0,-quarterPI)]},{position:new Vector3(-1,-1,-1),rotation:[new Euler(0,-halfPI,-quarterPI),new Euler(halfPI,0,-quarterPI),new Euler(0,Math.PI,quarterPI)]}],NavCube=class extends Object3D{constructor(t={}){var e=nz;super(),this[e(11948)]=100,this[e(11949)]=t[e(5257)],(0,import_lodash7[e(604)])(plane,(t=>{this.createPlane(t)})),(0,import_lodash7[e(604)])(edge,(t=>{this[e(11950)](t)})),(0,import_lodash7[e(604)])(corner,((t,n)=>{this[e(11951)](t,n)}))}createPlane(e){var n=nz;const r=e[n(2065)][n(1014)]()[n(1878)](this[n(11948)]/2),{rotation:i,label:s}=e,a=document[n(538)]("div");a[n(590)][n(999)]=this.NAVCUBE_SIZE+"px",a[n(590)][n(1e3)]=this[n(11948)]+"px",a[n(4871)][n(747)](n(11952)),a[n(4871)][n(747)](n(11953));const o=document.createElement(n(539));o[n(590)][n(999)]=this[n(11948)]-4+"px",o[n(590)][n(1e3)]=this.NAVCUBE_SIZE-4+"px",o[n(5260)]=t(s),o[n(4871)][n(747)](n(11952)),o[n(4871)].add(n(11954)),a.appendChild(o);const c=new CSS3DObject(a);c.position[n(1867)](r),c[n(1961)].copy(i),this[n(747)](c),a[n(808)]("click",(()=>{var t=n;this[t(11949)]&&this[t(11949)](r.clone()[t(569)](),i)}))}createEdge(t){var e=nz;const n=t.position.clone()[e(1878)](this.NAVCUBE_SIZE/2),r=document[e(538)](e(539));r[e(590)].width="4px",r[e(590)][e(1e3)]=this[e(11948)]-40+"px",r.style[e(2166)]=navCubeColor,r.classList[e(747)]("navcube-edge");const i=new CSS3DObject(r);i[e(2065)].copy(n),i[e(1961)][e(1867)](t[e(1961)]),this[e(747)](i),r.addEventListener(e(4547),(()=>{var r=e;this[r(11949)]&&this[r(11949)](n[r(1014)]()[r(569)](),t[r(1961)])}))}[nz(11951)](t,e){var n=nz;const r=n=>{var r=f;n.addEventListener(r(4547),(()=>{var e=r;this.clickHandler&&this[e(11949)](t[e(2065)][e(1014)]()[e(569)](),new Euler)})),n[r(808)](r(11955),(()=>{var t=r;const n=document[t(11956)](t(11957)+e);(0,import_lodash7.forEach)(n,(e=>{var n=t;e instanceof HTMLElement&&e[n(4871)].add(n(6373))}))})),n[r(808)]("mouseleave",(()=>{var t=r;const n=document.getElementsByClassName("group-"+e);(0,import_lodash7[t(604)])(n,(e=>{e instanceof HTMLElement&&e[t(4871)].remove("highlight")}))}))},i=t.position[n(1014)]()[n(1878)](this[n(11948)]/2+.5),s=document[n(538)](n(539));s.style[n(11958)]=14*Math.sqrt(3)+n(11959)+n(11960),s[n(590)][n(11961)]=14+n(11962),s[n(590)].borderRight=14+n(11962),s[n(4871)][n(747)]("navcube-corner"),s[n(4871)].add(n(11957)+e);const a=new CSS3DObject(s);a[n(2065)].copy(i).lerp(t[n(2065)],.14);const o=Math[n(1883)](i.z,i.x);a[n(2135)](i.z*i.x<0?Math.PI+o:o);const c=(new Euler).setFromVector3(i[n(1014)]()[n(569)]());a[n(2133)](-c.y),i.y<0&&a[n(2136)](Math.PI),this[n(747)](a);const l=(e,s,a)=>{var o=n;const c=document[o(538)](o(539));c[o(590)][o(11958)]=13+o(11959)+navCubeColor,c[o(590)][o(11961)]=13+o(11962),c[o(590)][o(11963)]=13+o(11962),c[o(4871)][o(747)](o(11964)),c[o(4871)][o(747)]("group-"+s);const l=new CSS3DObject(c),h=t[o(2065)].clone();h.setComponent(a,0),l[o(2065)].copy(i)[o(909)](h),l[o(2133)](e.x),l[o(2135)](e.y),l[o(2136)](e.z),this[o(747)](l),r(c)};(0,import_lodash7.forEach)(t[n(1961)],((t,n)=>{l(t,e,n)})),r(s)}},NavCubeViewport=class{constructor(t,e){var n=nz;this[n(1e3)]=150,this[n(999)]=150,this[n(999)]=t||this[n(999)],this[n(1e3)]=e||this[n(1e3)],this[n(2645)]()}[nz(2645)](){var t=nz;this[t(6930)](),this.initScene(),this[t(6932)]()}initRenderer(){var t=nz;this[t(4885)]=new CSS3DRenderer,this[t(4885)].setSize(this[t(999)],this[t(1e3)]),this.renderer[t(5280)].classList[t(747)](t(11965)),document.body[t(591)](this[t(4885)][t(5280)])}[nz(6931)](){var t=nz;this.scene=new Scene;const e=window[t(6386)]/window[t(6387)],n=200;this.camera=new OrthographicCamera(n*e/-2,n*e/2,100,-100,1,1e3),this.camera[t(2065)][t(540)](-200,200,200),this[t(4758)][t(747)](this[t(3045)]);this[t(11967)]=new NavCube({onClick:e=>{var n=t;if(!(this[n(3045)]&&e&&this[n(11966)]&&this[n(11966)][n(3045)]&&this.hostViewer[n(5350)]))return;const r=this[n(11966)][n(5350)][n(573)],i=this[n(11966)][n(3045)][n(2065)].distanceTo(r);this[n(11966)][n(5357)](r[n(1014)]().add(e.clone().multiplyScalar(i)),r)}}),this.scene.add(this.navCube)}render(){var t=nz;this[t(4885)]&&this[t(4758)]&&this.camera&&(this.update(),this.renderer[t(2418)](this[t(4758)],this[t(3045)]))}animate(){var t=nz;requestAnimationFrame(this[t(6932)].bind(this)),this[t(2418)]()}[nz(11968)](t){var e=nz;this[e(11966)]=t,this[e(1067)]()}update(){var t=nz;if(!this[t(11966)]||!this.hostViewer[t(3045)])return;const e=this[t(11966)].camera;if(e){const n=new Vector3;e[t(2151)](n);const r=e.up;this.updateCameraDirection(n,r)}}[nz(6937)](t,e){var n=nz;if(!this[n(3045)]||!t)return;t[n(569)]();this[n(3045)][n(2065)][n(540)](20*-t.x+0,20*-t.y+0,20*-t.z+0),this[n(3045)][n(2080)](0,0,0),this[n(3045)].up=e}[nz(1979)](){var t=nz;this.scene&&this[t(3045)]&&this[t(11967)]&&(this[t(4758)][t(750)](),this[t(11966)]=void 0,this[t(3045)]=void 0,this[t(11967)]=void 0,this.scene=void 0)}},WebCam=class{constructor(){var t=nz;this[t(2385)]=t(11969),this[t(2379)]="\n uniform vec3 keyColor;\n uniform float similarity;\n uniform float smoothness;\n varying vec2 vUv;\n uniform sampler2D map;\n void main() {\n vec4 videoColor = texture2D(map, vUv);\n\n float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b;\n float Cr1 = keyColor.r - Y1;\n float Cb1 = keyColor.b - Y1;\n \n float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b;\n float Cr2 = videoColor.r - Y2; \n float Cb2 = videoColor.b - Y2; \n \n float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1)));\n gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); \n }";const e=document.createElement(t(11970));this[t(11971)]=e;navigator[t(11972)][t(11973)]({video:{width:600,height:400}})[t(829)]((n=>{var r=t;e[r(11974)]=n,e[r(11975)]=()=>{var t=r;e[t(2334)](t(3891),t(646)),e[t(2334)](t(11976),"true"),e[t(3892)]()}}))[t(821)]((function(e){var n=t;alert(e[n(542)]+": "+e[n(637)])})),this[t(11977)]=document.createElement(t(1939));const n=this[t(11977)][t(1027)]("2d");this.canvasCtx=n,n[t(4409)]=t(4821),n[t(6037)](0,0,this.webcamCanvas[t(999)],this[t(11977)][t(1e3)]);const r=new Texture(this.webcamCanvas);this.webcamTexture=r,r[t(1973)]=LinearFilter,r.magFilter=LinearFilter,this[t(11978)]=new ShaderMaterial({transparent:!0,uniforms:{map:{value:r},keyColor:{value:[0,1,0]},similarity:{value:.3},smoothness:{value:0}},vertexShader:this[t(2385)],fragmentShader:this[t(2379)]})}[nz(11979)](){return this[nz(11978)]}createWebCamPlane(t=5,e=4){const n=new PlaneGeometry(t,e);return new Mesh(n,this.shaderMaterial)}[nz(6932)](){var t=nz;this[t(11971)][t(11980)]===this.webcam.HAVE_ENOUGH_DATA&&(this[t(11981)][t(4411)](this[t(11971)],0,0,this[t(11977)][t(999)],this[t(11977)][t(1e3)]),this[t(11982)].needsUpdate=!0)}},tempVec32=new Vector3,tempSphere=new Sphere,BimViewer=class extends BaseViewer{constructor(t,e){var n,r=nz;super(t),this[r(11358)]=Date[r(802)](),this[r(6476)]=void 0,this[r(6837)]=new Color(15463159),this.loadedModels={},this[r(11983)]={},this[r(11984)]=!0,this[r(6885)]=!1,this[r(11985)]=[],this[r(6453)]=!1,this.mouseDoubleClicked=!1,this[r(11986)]=new RafHelper,this[r(11987)]=!0,this[r(11988)]=!1,this[r(11989)]=Date.now(),this[r(11990)]=60,this[r(1223)]=[],this[r(3685)]=defaultSettings,this[r(4669)]=0,this[r(11991)]=0,this[r(1242)]=new Box3,this.onResize=()=>{var t,e=r;const n=null==(t=this[e(4885)])?void 0:t[e(5280)];n&&n[e(7057)]&&this[e(6688)](n.parentElement.clientWidth,n[e(7057)][e(4809)])},this[r(5656)]=(t=1e3)=>{var e=r;this[e(11987)]=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this[e(11992)]),this[e(11992)]=this[e(11986)][e(1039)]((()=>{this[e(11987)]=!1,this.composerRenderEnabled=!0}),t))},this.applyOptionsAndAddToScene=(t,e,n)=>{var i=r;log[i(1175)](i(11993)+t+i(11994)+(Date[i(802)]()-this[i(11358)])/1e3+i(11995)),this[i(11358)]=Date[i(802)]();const s=n[i(592)]&&n[i(592)].toLowerCase();if(s&&s[i(880)](i(11734))&&this[i(11991)]++,n[i(1963)]&&16===n.matrix[i(449)]){const t=new Matrix4;t[i(1874)]=n[i(1963)],e[i(2028)](t)}else{const t=n.position||[0,0,0],r=n[i(1961)]||[0,0,0],s=n[i(1901)]||[1,1,1];e[i(2065)][i(540)](t[0],t[1],t[2]),e.rotation[i(540)](r[0]*Math.PI/180,r[1]*Math.PI/180,r[2]*Math.PI/180),e[i(1901)][i(540)](s[0],s[1],s[2])}e[i(1962)]=matrixAutoUpdate,e.updateMatrix(),e[i(2152)]((t=>{var e=i;!matrixAutoUpdate&&t[e(1962)]&&(t[e(1962)]=matrixAutoUpdate,t[e(2127)]())}));const a=n[i(6938)],o=n.merge;a?setTimeout((()=>{var t=i;this[t(6938)](e),setTimeout((()=>{var r=t;o&&this[r(2351)](e),this[r(11996)](e,n)}),0)}),0):o?setTimeout((()=>{this[i(2351)](e),setTimeout((()=>this.addLoadedModelToScene(e,n)),0)}),0):this[i(11996)](e,n)},this[r(11997)]=()=>{var t,e=r;if(-1!==(null==(t=this[e(898)])?void 0:t[e(6557)][e(564)]("active"))&&this[e(11998)]&&this.controls){this[e(5350)][e(5546)](this.lastOrbPoint)}},this[r(5383)]=t=>{var e,n=r;(null==(e=this[n(5350)])?void 0:e[n(5330)])&&this[n(4885)]&&(t instanceof MouseEvent&&0!==t.button||t instanceof TouchEvent&&1!==t.touches[n(449)]||this.setOrbitPoint(t))},this.onAnchorPointerUp=()=>{var t=r;this[t(898)]&&(this[t(898)][t(6557)]=t(898))},this[r(5647)]=__spreadValues(__spreadValues({},DEFAULT_BIM_VIEWER_CONFIG),t),log.info(r(11999),r(12e3),this.viewerCfg),this.settings=defaultSettings,this[r(11918)]=e,this.cameraCfg&&this[r(11918)].near&&(this[r(3685)][r(3045)][r(2365)]=this[r(11918)][r(2365)]),this[r(11918)]&&this[r(11918)].far&&(this[r(3685)][r(3045)][r(2366)]=this.cameraCfg[r(2366)]),this[r(12001)](),this[r(2645)](),this.animate(),this[r(4885)]&&(null==(n=this[r(4863)])||n.append(this[r(4885)][r(5280)])),window[r(808)](r(6688),this[r(6701)]),window.addEventListener(r(12002),(t=>{var e=r;t.altKey&&t[e(973)]===e(12003)&&this[e(12004)]()})),this[r(12005)](),log[r(1175)]("[BimViewer] Initialized in "+(Date[r(802)]()-this[r(11358)])/1e3+"s")}[nz(2645)](){var t=nz;const e=this.viewerCfg;this[t(12006)](),this[t(6931)](),this.initRenderer(),this[t(12007)](),this[t(12008)](),this[t(12009)](),this.initPointerEvents(),!0===e[t(12010)]&&this.initDatGui(),this.initOthers(),!0===e[t(12011)]&&(this[t(12012)]=this[t(12013)]()),!0===e.enableStats&&(this[t(4024)]=this.initStats()),e[t(12014)]&&(this[t(5251)]=this[t(12015)]()),e.enableBottomBar&&(this[t(6276)]=this[t(12016)]()),e.enableNavCube&&(this[t(11967)]=this[t(12017)]()),e[t(12018)]&&(this[t(12019)]=this[t(12020)]())}initScene(){var t=nz;this[t(4758)]=new Scene,this[t(4758)][t(1962)]=matrixAutoUpdate}[nz(6930)](){var t=nz;this[t(4885)]=new WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0}),this[t(4885)][t(3394)](window[t(4876)]),this.renderer[t(1996)](this[t(999)],this.height),this.renderer.outputEncoding=sRGBEncoding,this.renderer[t(3377)]=1,this[t(4885)].physicallyCorrectLights=!0,this[t(4885)].setClearColor(11119017,1),this[t(4885)][t(2999)][t(2407)]=!0,this.renderer[t(2999)][t(452)]=PCFSoftShadowMap,CommonUtils[t(4322)](this[t(4885)].getContext()),this.pmremGenerator=new PMREMGenerator(this[t(4885)]),this[t(6840)].compileEquirectangularShader(),this[t(5644)]&&(this[t(5654)]=new CanvasRender(this)),this.setEnvironmentFromDataArray()}[nz(12007)](){var t=nz;this[t(4758)]&&(this[t(12021)]=new PerspectiveCamera(45,this[t(999)]/this[t(1e3)],this[t(3685)][t(3045)][t(2365)],this[t(3685)].camera.far),this.perspectiveCamera[t(2160)][t(745)](layerForUnselectableObjects),this[t(12021)][t(2065)][t(540)](0,100,0),this[t(4758)].add(this[t(12021)]),this.camera=this[t(12021)])}[nz(12008)](t=!1){var e=nz;if(!this[e(4885)])return;DeviceUtils[e(4333)]();const n=t?this[e(12022)]:this[e(12021)];if(!n)return;const r=new OrbitControls2(n,this.renderer[e(5280)]);r[e(5474)]=!1,r[e(5284)]=!0,r.dampingFactor=.5,r.enabled=!0,r[e(5291)]=10,r[e(477)]={LEFT:e(12023),UP:e(12024),RIGHT:e(12025),BOTTOM:"KeyQ"},r[e(5309)](document[e(1072)]),r.update(),t?this[e(12026)]=r:this.perspectiveCameraControls=r,this[e(5350)]=r,this[e(12027)](r,e(1067),this.onControlsChange(this)),this[e(12027)](window,e(4615),this[e(5400)](this))}[nz(12028)](){var t,e,n,r,i=nz;this[i(898)]=this[i(12029)](),null==(t=this[i(4885)])||t.domElement[i(808)](i(4618),this[i(5383)]),null==(e=this[i(4885)])||e[i(5280)][i(808)]("touchstart",this[i(5383)]),null==(n=this[i(4885)])||n[i(5280)].addEventListener(i(5320),this[i(12030)]),null==(r=this[i(5350)])||r[i(808)](i(1067),this.updateOrbPoint)}[nz(12031)](t){return()=>{t.enableRender()}}[nz(5400)](t){return e=>{var n=f;const r=t[n(3045)],i=t[n(5350)];if(!r||!i)return;const s=this[n(3685)].keyboard.sensitivity||3,a=i[n(2065)];let o=i[n(573)];const c=o[n(1014)]();if(e[n(973)]===n(5294)||e.code===n(5296)){const t=s;let r=Math.PI*t/180;e[n(973)]===n(5294)&&(r=-r),c.x=(o.x-a.x)*Math[n(1852)](r)-(o.z-a.z)*Math[n(1853)](r)+a.x,c.z=(o.z-a.z)*Math.cos(r)+(o.x-a.x)*Math[n(1853)](r)+a.z,i[n(573)]=c,i.update()}else if(e[n(973)]===n(5295)||e.code===n(5297)){const t=s;let r=Math.PI*t/180;const l=new Vector3(o.x-a.x,o.y-a.y,o.z-a.z)[n(449)](),h=o.y-a.y;e[n(973)]===n(5297)&&(r=-r);const u=Math[n(2107)](h/l)+r;if(u<-Math.PI/2||u>Math.PI/2)return;const d=Math[n(1853)](u)*l;c.y=o.y+(d-h),i[n(573)]=c,i[n(1067)]()}else if(e[n(973)]===n(12032)){const t=.01*s,e=a[n(2038)](o);e<10*r[n(2365)]&&(i[n(573)]=i[n(573)][n(1887)](a,-r.near/e),o=i.target),a[n(1887)](o,t),i.setLookAt(a,o)}else if(e[n(973)]===n(12033)){const t=.01*s;a[n(1887)](o,-t),i[n(5542)](a,o)}else if("KeyF"===e[n(973)])this.flyToSelectedObject();else if(e[n(973)]===n(12034)){const t=this[n(11837)]();if(t[n(449)]>0){const e=t.find((t=>{var e=n;const r=t[e(469)];return r[e(2122)]&&r instanceof Mesh}));if(e&&e.point&&this[n(3045)]&&this[n(5350)]){const t=this[n(3045)][n(2065)],i=e[n(1220)],s=this.controls[n(573)],a=t[n(2038)](i);if(a>r[n(2365)]&&a{var n=f;if(!t.mouseDoubleClicked){switch(e[n(5335)]){case MOUSE[n(5326)]:t[n(12035)](e);break;case MOUSE[n(5337)]:break;case MOUSE.RIGHT:t.handleRightClick(e)}t[n(5656)]()}}}initLights(){var t=nz;if(!this.scene)return;const e=16777215,n=new DirectionalLight(e,1.5);n[t(542)]=t(12036),n[t(2159)]=!0,n[t(2065)][t(540)](-2,2,4),n.shadow[t(3078)]=!1,n[t(3019)].mapSize.width=1024,n[t(3019)][t(3027)][t(1e3)]=1024,this[t(6867)]=n,this.scene[t(747)](n),this[t(4758)][t(747)](n.target),this[t(12037)]=new DirectionalLightHelper(this[t(6867)]),this.directionalLightHelper[t(2152)]((t=>{t.layers.set(layerForUnselectableObjects)})),this[t(12037)].visible=!1,this[t(4758)].add(this[t(12037)]),this[t(12038)]=new CameraHelper(this[t(6867)][t(3019)].camera),this.shadowCameraHelper[t(2160)][t(540)](layerForUnselectableObjects),this[t(12038)][t(2122)]=!1,this[t(4758)][t(747)](this[t(12038)]),this[t(6863)]=new AmbientLight(3158064),this.hemisphereLight=new HemisphereLight(e,14540253,2),this[t(12039)][t(2065)].set(0,300,0),this[t(4758)].add(this.ambientLight),this[t(4758)].add(this[t(12039)])}initPointerEvents(){var t=nz;if(!this.renderer||!this[t(3045)]||!this.controls)return;let e=-1,n=-1;this[t(4885)].domElement.addEventListener(t(5316),(t=>{e=t.x,n=t.y,this.mouseMoved=!1,setTimeout((()=>{this[f(12040)]()}),10),this.enableRender()})),this[t(4885)][t(5280)].addEventListener(t(5319),(r=>{var i=t;if(this[i(12041)]&&this.enableRender(),e>=0&&n>=0){const t=5;(Math.abs(r.x-e)>t||Math[i(694)](r.y-n)>t)&&(this[i(6453)]=!0)}})),this[t(4885)][t(5280)][t(808)]("pointerup",(r=>{var i,s=t;!this[s(6453)]&&!this[s(12042)]&&!this[s(12041)]&&!(null==(i=this[s(12043)])?void 0:i.isMeasurementActive())&&setTimeout(this[s(5385)](this,r),200),this.mouseDoubleClicked&&setTimeout((()=>{this.mouseDoubleClicked=!1}),200),e=-1,n=-1})),this[t(4885)][t(5280)][t(808)](t(11836),(e=>{var n,r=t;this[r(12042)]=!0,!this[r(6453)]&&!this[r(12041)]&&!(null==(n=this[r(12043)])?void 0:n[r(11922)]())&&(this[r(12035)](e),this[r(12044)](),this[r(5656)]())})),this.initRotateToCursor(),this[t(4864)]=new Raycaster}initDatGui(){var t=nz;this[t(12045)]=new BimViewerDatGui(this),this[t(12045)][t(587)]()}[nz(12006)](){var t,e=nz;if(!this[e(5647)][e(12046)])return;const n=document[e(538)](e(539));n[e(4871)][e(747)](e(12047));const r=document.createElement(e(539));r[e(4871)][e(747)](ICON_FONT_CLASS,"icon-loading"),n.append(r),null==(t=this.widgetContainer)||t[e(591)](n),this[e(12048)]=n,this.setSpinnerVisibility(this[e(4669)]>0)}[nz(12049)](){var t=nz;if(!this[t(4758)]||!this[t(4885)]||!this.camera)return;const e=this[t(12045)]&&this[t(12045)][t(5350)];e&&(e[t(6822)]&&(this.groundGrid=GroundUtils[t(4630)](),this[t(4758)][t(747)](this[t(6824)])),e.showGrassGround&&(()=>{__async(this,null,(function*(){var e=t;this.grassGround=yield GroundUtils[e(12050)](),this[e(4758)]&&this[e(4758)][e(747)](this[e(6826)]),this[e(5656)]()}))})(),e[t(11971)]&&this[t(12051)](),this[t(6885)]=e.composerEnabled,this[t(6885)]&&(this[t(12052)](!0),this[t(6888)](e.renderPassEnabled),this[t(6891)](e.fxaaEnabled),this[t(6894)](e[t(6892)]),this.enableSsaoPass(e[t(6895)]),this[t(6899)](e[t(6898)]),this[t(12053)](e[t(6900)]),this[t(6904)](e.bloomEnabled),this[t(6907)](e[t(6905)]))),this.renderer[t(5280)][t(590)][t(12054)]="0"}[nz(12017)](){var t,e=nz;const n=document[e(538)]("div");n.id="navCube";const r=new NavCubeViewport;return r[e(4885)]&&(n[e(591)](r[e(4885)][e(5280)]),r[e(11968)](this)),null==(t=this[e(5233)])||t[e(591)](n),r}[nz(12013)](){var t,e,n=nz;const r=document[n(538)](n(539));r.classList.add(n(12055));const i=new CoordinateAxesViewport(r,this[n(3045)]);return null==(t=this.widgetContainer)||t[n(6267)](r),this[n(12056)]=new CoordinateAxes(!1),null==(e=this.scene)||e.add(this[n(12056)]),i}[nz(12057)](){var t,e=nz;const n=stats_module_default();n[e(2715)](0);const r=document[e(538)](e(539));return r[e(4871)][e(747)](e(12058)),r[e(591)](n[e(5280)]),null==(t=this[e(5233)])||t[e(6267)](r),n}[nz(12020)](){var t=nz;const e=new ContextMenu({items:contextMenuItems,context:{bimViewer:this,toolbar:this[t(5251)],section:this.section},container:this[t(5233)]});return window[t(5234)]=e=>e[t(3406)](),e}initToolbar(){var t=nz;const e=this.viewerCfg;return new Toolbar2(this,(0,import_lodash8[t(2351)])(DEFAULT_BIMVIEWER_TOOLBAR_CONFIG,e[t(12059)]))}[nz(12016)](){return new BottomBar(this)}get[nz(12060)](){return this[nz(11991)]>0}showContextMenu(t){var e=nz;if(!this.contextMenu)return;const n=this[e(12061)](t);log[e(1178)](e(12062),n);const r=(0,import_lodash8[e(932)])(n,(t=>{var n=e;const r=t[n(469)];return r instanceof Mesh&&r[n(2122)]})),i=this[e(12019)][e(3371)],s=null==r?void 0:r.instanceId,a=null==r?void 0:r[e(2363)];let o;a&&(o=MergeUtils[e(4750)](null==r?void 0:r[e(469)],a)),this.contextMenu.context=__spreadProps(__spreadValues({},i),{hit:null==r?void 0:r.object,instanceId:s,batchId:o}),this[e(12019)][e(6297)](t[e(4329)],t[e(4326)])}[nz(12063)](t){this[nz(12064)](t)}[nz(12065)](t,e){var n=nz;const r=t.position;if(e.position.set(r.x,r.y,r.z),this[n(4758)]){const t=this.scene[n(2065)];e[n(2080)](t)}}[nz(12066)](t,e,n){var r=nz;const i=n,s=t[r(573)];e[r(1960)]?e.center.set(i.x,i.y,i.z):e[r(1960)]=i[r(1014)](),e[r(2065)]=t[r(2065)],e.target=s,e[r(1067)]()}[nz(6849)](t=!1){var e,n=nz;if(!this[n(4758)]||!this.controls)return;const r=this[n(12021)],i=this[n(12067)];let s=this[n(12022)],a=this[n(12026)];t?(!s&&(s=new OrthographicCamera(-this[n(999)]/2,this[n(999)]/2,this[n(1e3)]/2,-this[n(1e3)]/2,this[n(3685)].camera[n(2365)],this[n(3685)][n(3045)][n(2366)]),s[n(2160)].enable(layerForUnselectableObjects),s[n(2065)][n(540)](0,100,0),s[n(2397)]=10,s.updateProjectionMatrix(),this[n(4758)]&&this.scene[n(747)](s),this[n(12022)]=s),!a&&(this.initControls(!0),a=this.orthoCameraConrols),r&&(this[n(12065)](r,s),s[n(2397)]=10,s[n(2396)]()),i&&a&&r&&this.sycnControls(i,a,r.position),this[n(3045)]=s,this[n(5350)]=a):(r&&s&&this[n(12065)](s,r),i&&a&&s&&this[n(12066)](a,i,s[n(2065)]),this[n(3045)]=r,this[n(5350)]=i),null==(e=this[n(12012)])||e.setHostCamera(this.camera),this[n(6688)]()}[nz(6932)](){var t,e,n=nz;if(requestAnimationFrame(this[n(6932)][n(511)](this)),this[n(11990)]>0){if(Date.now()-this[n(11989)]<1e3/this.maxFps)return;this[n(11989)]=Date[n(802)]()}this[n(11971)]&&this[n(11971)].animate(),this[n(5350)]&&this.controls[n(1067)](),this[n(4758)]&&this[n(3045)]&&this.renderEnabled&&(this.update3dTiles(),this[n(4885)]&&this[n(4885)][n(2418)](this[n(4758)],this.camera),this.dispatchEvent(n(4857))),this[n(11984)]&&this[n(12068)]&&this[n(6885)]&&(this.composer.render(),this[n(11984)]=!1),this.frustrumCullingByModelBBox(),null==(t=this[n(4024)])||t.update(),null==(e=this.bottomBar)||e.update()}[nz(12069)](){var t=nz;if(!this[t(3045)])return;const e=Object[t(673)](this[t(11983)]);0!==e[t(449)]&&(this[t(3045)][t(2155)](),e[t(604)]((e=>{var n=t;e.renderer[n(1067)]()})))}[nz(12070)](){var t=nz;const e=new Frustum,n=new Matrix4;this[t(11988)]=!0,this.camera&&(n[t(1896)](this.camera[t(2031)],this[t(3045)][t(2030)]),e[t(3789)](n),Object[t(673)](this.loadedModels)[t(604)]((n=>{var r=t;const i=this.scene&&this.scene[r(4679)](n.id),s=n[r(1242)];i&&s&&this[r(4758)]&&(void 0===i.userData[r(12071)]&&(i[r(1968)][r(12071)]=!0,Object[r(421)](i,{visible:{set:t=>{var e=r;i[e(1968)][e(12071)]=t,!this[e(11988)]&&(i[e(1968)][e(12072)]=!0)},get:()=>i[r(1968)][r(12071)]}})),void 0===i[r(1968)].userConfigVisibility&&(s[r(2063)][r(2067)](),s[r(2063)][r(2066)]&&(i[r(2122)]=e[r(2070)](s.geometry[r(2066)]))))})),Object.values(this[t(11983)])[t(604)]((n=>{var r=t;const i=n[r(4885)][r(3010)];i&&!n[r(1242)][r(1213)]()&&this[r(4758)]&&(typeof i.userData._visible===r(430)&&(i[r(1968)]._visible=!0,Object[r(421)](i,{visible:{set:t=>{var e=r;i.userData[e(12071)]=t,!this[e(11988)]&&(i.userData[e(12072)]=!0)},get:()=>i[r(1968)][r(12071)]}})),typeof i.userData.userConfigVisibility===r(430)&&(i[r(2122)]=e.intersectsBox(n.bbox)))}))),this[t(11988)]=!1}[nz(1725)](){var t,e=nz;this.events.forEach((t=>t[e(1626)][e(1716)](t[e(452)],t[e(1397)]))),this[e(1223)]=[],this[e(12045)]&&this.datGui[e(6689)]&&(this[e(12045)][e(6911)](),this.datGui=void 0);const n=this[e(12073)];this[e(4758)]&&n&&(this.scene.remove(n),n[e(2063)][e(1979)](),n[e(2178)][e(1979)](),this[e(12073)]=void 0),this.webcam=void 0,this.composer=void 0,this[e(6181)]=void 0,this[e(12074)]=void 0,this[e(12075)]=void 0,this[e(12076)]=void 0,this[e(12077)]=void 0,this.ambientLight=void 0,this[e(6867)]=void 0,this[e(12039)]=void 0,this[e(12037)]&&(this.directionalLightHelper.dispose(),this[e(12037)]=void 0),this[e(5350)]&&(this[e(12078)](),this[e(5350)][e(1979)](),this[e(5350)]=void 0),this[e(12067)]&&(this[e(12067)][e(1979)](),this[e(12067)]=void 0),this[e(12038)]&&(this[e(12038)][e(1979)](),this[e(12038)]=void 0),this[e(4024)]=void 0,this.raycaster=void 0,this.selectedObject=void 0,this.groundGrid&&(this[e(6824)][e(2063)][e(1979)](),this[e(6824)][e(2178)][e(1979)](),this[e(6824)].clear(),this[e(6824)]=void 0),this[e(6826)]&&(this[e(6826)].geometry.dispose(),this.grassGround[e(2178)][e(1979)](),this.grassGround[e(750)](),this[e(6826)]=void 0),this[e(6829)]&&(this[e(6829)][e(2063)][e(1979)](),this.skyOfGradientRamp[e(2178)].dispose(),this.skyOfGradientRamp[e(750)](),this[e(6829)]=void 0),this[e(11985)]=void 0,this[e(12041)]=void 0,this[e(6492)]=void 0,Object[e(477)](this[e(6909)])[e(604)]((t=>{delete this.loadedModels[t]})),Object[e(673)](this[e(11983)])[e(604)]((t=>{var n=e;t[n(4885)][n(1979)]()})),this[e(11983)]={},this[e(12021)]=void 0,this[e(12067)]=void 0,this[e(11986)]&&(this[e(11992)]&&this[e(11986)][e(1357)](this[e(11992)]),this[e(11986)]=void 0),this[e(12019)]&&(this[e(12019)][e(1725)](),this.contextMenu=void 0),this[e(11967)]&&(this[e(11967)].dispose(),this.navCube=void 0),this.axes&&(this.axes[e(1979)](),this.axes=void 0),this[e(12056)]&&(this[e(12056)].clear(),this[e(12056)]=void 0),this[e(5251)]&&(this.toolbar[e(1725)](),this[e(5251)]=void 0),this[e(12048)]&&(this.spinner[e(1204)](),this[e(12048)]=void 0),this[e(6276)]=void 0,this[e(6840)]&&(this[e(6840)][e(1979)](),this.pmremGenerator=void 0),null==(t=this[e(12079)])||t[e(1725)](),this.zoomToRect=void 0,window[e(1716)](e(6688),this.onResize),super[e(1725)]()}loadLocalModel(t,e,n,r){return __async(this,null,(function*(){var i=f;let s;this[i(11358)]=Date[i(802)](),this[i(12001)]();try{const a=new LoadingHelper(n);s=yield a[i(6771)](t,e.src,r)}catch(t){const n=i(12080)+e[i(592)];return log[i(819)](n,t),Promise.reject(n)}finally{this.decreaseJobCount()}return s?(this[i(12081)](t,s,e),Promise.resolve()):Promise[i(831)]()}))}[nz(12082)](t,e){return __async(this,null,(function*(){var n=f;let r;this[n(11358)]=Date[n(802)](),this[n(12001)]();try{const i=new LoadingHelper;r=yield i.loadModel(t.src,t[n(12083)],e)}catch(e){const r="Error loading "+t[n(592)];return log[n(819)](r,e),Promise[n(831)](r)}finally{this[n(12005)]()}return r?(this[n(12081)](t[n(592)],r,t),Promise[n(440)]()):Promise[n(831)]()}))}load3dTiles(t){return __async(this,null,(function*(){var e,n=f;this[n(11358)]=Date[n(802)](),this.increaseJobCount();const r=new TilesRenderer(t[n(592)]),i=new Box3,s=yield new Promise(((e,s)=>{var a=n;r.onLoadTileSet=()=>{var n=f;!r[n(4837)](i)&&(r[n(4881)](tempSphere)?tempSphere[n(2077)](i):(log[n(1176)](n(12084)+t[n(592)]+"'!"),s())),log[n(1178)](i),r.onLoadTileSet=null;const a=r[n(3010)];log[n(1178)](a),e(a)},r.onLoadModel=t=>{var e=f;t[e(2152)]((t=>{var n=e;!matrixAutoUpdate&&t[n(1962)]&&(t[n(1962)]=matrixAutoUpdate,t[n(2127)]()),t[n(2168)]&&(t[n(2159)]=!0,t[n(2123)]=!0)})),t[e(2142)](!1,!0),this.updateDirectionalLightShadow(),this[e(5656)]()},r.setCamera(this[a(3045)]),r.setResolutionFromRenderer(this[a(3045)],this[a(4885)]),r.update()}));if(s){const a=Date[n(802)]();let o=t[n(6777)]||t[n(592)];if(this[n(11983)][o]){let t=1;for(;this.loaded3dTiles[o+"_"+t];)t++;o=o+"_"+t,log[n(1176)](n(12085)+o+n(12086))}if(this[n(11983)][o]={id:s.id,bbox:i,renderer:r},t[n(1963)]&&16===t[n(1963)][n(449)]){const e=new Matrix4;e[n(1874)]=t.matrix,s[n(2028)](e)}else{const e=t[n(2065)]||[0,0,0],r=t.rotation||[0,0,0],i=t[n(1901)]||[1,1,1];s[n(2065)][n(540)](e[0],e[1],e[2]),s.rotation[n(540)](r[0]*Math.PI/180,r[1]*Math.PI/180,r[2]*Math.PI/180),s[n(1901)][n(540)](i[0],i[1],i[2])}s[n(1962)]=matrixAutoUpdate,s[n(2127)](),s[n(2155)](!0),null==(e=this.scene)||e[n(747)](s),i[n(2028)](s[n(1963)]),this[n(2067)](),this[n(12087)]();if(0===Object.keys(this[n(6909)])[n(449)]&&1===Object[n(477)](this[n(11983)]).length){const t=this[n(12045)]&&this[n(12045)].controls;this[n(12088)](),t&&t[n(6822)]&&this[n(12089)](),this.tryAdjustCameraNearAndFar(),this[n(6845)]()}return log.info("[BimViewer] Added 3dTiles '"+t.src+n(12090)+(Date[n(802)]()-a)/1e3+"s"),this.enableRender(),this.decreaseJobCount(),Promise[n(440)]()}return this[n(12005)](),Promise[n(831)]()}))}addLoadedModelToScene(t,e){var n=nz;if(!this[n(4758)])return;if(e.merge){const e=Date[n(802)]();MeshBvhHelper[n(12091)]([t],{saveOriginalIndex:!0}),log[n(1175)](n(12092)+(Date[n(802)]()-e)/1e3+"s")}t.traverse((t=>{var e=n;t.isMesh&&(t[e(2159)]=!0,t[e(2123)]=!0)})),this[n(4758)][n(747)](t);const r=new BoxHelper(t);r[n(542)]="BIM_VIEWER_BOX_HELPER",r.visible=!1,r.matrixAutoUpdate=matrixAutoUpdate,r.material&&(r[n(2178)]=void 0,r[n(2160)][n(540)](layerForUnselectableObjects));let i=e.modelId||e.src;if(this[n(6909)][i]){let t=1;for(;this[n(6909)][i+"_"+t];)t++;i=i+"_"+t,log[n(1176)]("[BimViewer] Model '"+i+n(12086))}this.loadedModels[i]={id:t.id,bbox:r},this.computeBoundingBox(),this[n(12087)]();const s=Object[n(673)](this[n(6909)])[n(679)]((t=>t.id));Object.values(this.loaded3dTiles)[n(604)]((t=>s.push(t.id)));if(!s||s[n(449)]<=1){if(this[n(12060)])this[n(6849)](!0),this[n(6829)]&&this.scene.remove(this[n(6829)]);else{const t=this[n(12045)]&&this[n(12045)].controls;this[n(12088)](),t&&t[n(6822)]&&this.regenGroundGrid()}this.tryAdjustCameraNearAndFar(),this[n(6845)]()}this.scene[n(747)](r),e[n(4592)]&&ObjectUtils[n(4704)](t),log[n(1175)](n(12093)+e[n(592)]+n(12090)+(Date[n(802)]()-this[n(11358)])/1e3+"s"),this.enableRender(),this[n(12005)]()}addOrRemoveObjectOpacity(t=!0,e=.3,n,r){var i=nz;if(!this.savedMaterialsForOpacity&&(this[i(11985)]=[]),!this[i(4758)])return;const s=this[i(4758)],a=[],o=Object[i(673)](this[i(6909)]).map((t=>t.id));Object.values(this[i(11983)])[i(604)]((t=>o[i(565)](t.id))),o[i(604)]((o=>{var c=i;if(t){this[c(11985)]&&this[c(11985)].length>0&&ObjectUtils[c(4680)](s,o,this.savedMaterialsForOpacity);const t=ObjectUtils.setObjectOpacityById(s,o,e,n,r);a.push(...t)}else this[c(11985)]&&ObjectUtils[c(4680)](s,o,this[c(11985)])})),this[i(11985)]=t?a:[],this[i(5656)]()}[nz(12094)](){var t=nz;return!!(this[t(11985)]&&this[t(11985)].length>0)}[nz(6858)](t,e=.1){var n,r,i,s=nz;t?(!this.vertexNormalsHelpers&&(this[s(12095)]=new Group),null==(n=this[s(4758)])||n[s(2153)]((t=>{var n,r=s;const i=[r(6286),r(4636),r(4638),r(12096)];if(t instanceof Mesh&&!i[r(667)](t[r(542)])){if(!t.geometry[r(2064)][r(655)])return;const i=new VertexNormalsHelper(t,e,16711680);null==(n=this[r(12095)])||n[r(747)](i)}})),null==(r=this[s(4758)])||r[s(747)](this[s(12095)])):this.vertexNormalsHelpers&&(null==(i=this.scene)||i[s(1204)](this.vertexNormalsHelpers),this.vertexNormalsHelpers=void 0)}[nz(6688)](t,e){var n=nz;const r=this.camera;r&&(this.width=t||window[n(6386)],this[n(1e3)]=e||window[n(6387)],r instanceof PerspectiveCamera?r[n(2394)]=this[n(999)]/this[n(1e3)]:r instanceof OrthographicCamera&&(r.left=-this.width/2,r.right=this[n(999)]/2,r[n(2651)]=this[n(1e3)]/2,r[n(2652)]=-this[n(1e3)]/2),r[n(2396)](),this[n(4885)]&&this[n(4885)][n(1996)](this.width,this[n(1e3)]),this.composer&&this[n(12068)][n(1996)](this.width,this[n(1e3)]),this[n(12074)]&&this[n(12074)][n(2377)][n(3095)][n(439)][n(540)](1/this.width,1/this[n(1e3)]),this[n(5654)]&&this.overlayRender[n(1996)](this[n(999)],this.height)),this[n(5656)]()}[nz(5657)](){return this.raycaster}[nz(5658)](t){var e=nz;let n,r=[];if(!(this[e(4864)]&&this.camera&&this.scene&&t&&this[e(4863)]))return r;n=t instanceof MouseEvent?CoordinateConversionUtils.getScreenPointByEvent(t,this[e(4863)]):CoordinateConversionUtils.getScreenPointByTouchEvent(t,this[e(4863)]);const i=CoordinateConversionUtils[e(4331)](n,this[e(3045)],this[e(4863)]);return this[e(4864)].setFromCamera(i,this.camera),r=this[e(12097)](),r}[nz(12097)](){var t=nz;const e=[];return Object[t(673)](this.loadedModels)[t(604)]((n=>{var r=t;const i=this[r(4758)]&&this[r(4758)][r(4679)](n.id);i&&i.visible&&e.push(i)})),Object.values(this[t(11983)])[t(604)]((n=>{var r=t;const i=this[r(4758)]&&this[r(4758)].getObjectById(n.id);i&&i[r(2122)]&&e.push(i)})),e}[nz(11837)](t){var e=nz;const n=this[e(5658)](t);return this[e(4864)]&&this[e(4864)][e(4115)](n,!0)||[]}[nz(12061)](t){var e=nz;if(!(this[e(4864)]&&this[e(3045)]&&this[e(4758)]&&this.viewerContainer))return[];let n=new Vector2;t&&(n=t instanceof MouseEvent?CoordinateConversionUtils[e(4324)](t,this.viewerContainer):CoordinateConversionUtils.getScreenPointByTouchEvent(t,this[e(4863)]));const r=CoordinateConversionUtils.screenPoint2NdcPoint(n,this[e(3045)],this[e(4863)]);this[e(4864)][e(4112)](r,this[e(3045)]);const i=this.scene[e(1602)];return this[e(4864)][e(4115)](i,!0)||[]}handleMouseClick(t){var e,n,r=nz;if(null==(e=this[r(12043)])?void 0:e[r(11922)]())return;const i=Date[r(802)](),s=this[r(11837)](t);log.debug(r(12098)+(Date[r(802)]()-i)/1e3+"s");const a=s[r(932)]((t=>{var e=r;const n=t.object;return n[e(2122)]&&(!1!==n.userData[e(4776)]||n instanceof Mesh)}));let o,c,l=a&&a[r(469)]||void 0;if(l)if(l instanceof InstancedMesh)o=a[r(3524)],this[r(6476)]&&this[r(6476)].id===l.id&&this.selectedObject[r(1968)][r(3524)]===o&&(l=void 0);else if(MergeUtils[r(4746)](l)){const t=a&&a[r(2363)]||-1;t>=0?(c=MergeUtils.getBatchIdByFaceIndex(l,t),this[r(6476)]&&this[r(6476)].id===l.id&&this.selectedObject[r(1968)].batchId===c&&(l=void 0)):l=void 0}else this[r(6476)]&&this[r(6476)].id===l.id&&(l=void 0);if(s[r(449)]>0&&s[0][r(1220)]){const t=null==(n=this[r(5654)])?void 0:n[r(4882)](s[0][r(1220)],this[r(4864)]);if(t&&t[r(449)]>0)return this[r(6486)](),t[0][r(1639)]=!0,void(this[r(6476)]=t[0])}this[r(6476)]&&this.clearSelection(),l?this.selectObject(l,o,c):this.clearSelection()}[nz(6487)](t,e,n,r){var i=nz;if(this[i(6476)]){const e=this.selectedObject.userData;if(null!=e.instanceId&&e[i(12099)]&&e[i(12100)]){this[i(4758)]&&this.scene[i(1204)](e[i(12100)]);const n=this[i(6476)];if(n[i(3521)](e[i(3524)],e[i(12099)]),n[i(2163)][i(1948)]=!0,n[i(2127)](),delete e[i(3524)],delete e[i(12099)],t===e[i(12100)])return e[i(12100)][i(2063)][i(1979)](),delete e.clonedMesh,this.selectedObject=void 0,void(this[i(12077)]&&(this[i(12077)][i(6090)]=[]));e[i(12100)][i(2063)][i(1979)](),delete e[i(12100)]}else if(null!=e[i(4751)]&&e.clonedMesh){if(this[i(4758)]&&this[i(4758)].remove(e[i(12100)]),delete e[i(4751)],t===e.clonedMesh)return e[i(12100)][i(2063)].dispose(),delete e[i(12100)],this[i(6476)]=void 0,void(this.outlinePass&&(this[i(12077)][i(6090)]=[]));e[i(12100)][i(2063)][i(1979)](),delete e[i(12100)]}else if(e.originalMaterial){if(this[i(6476)][i(2178)]){const t=this.selectedObject[i(2178)];Array.isArray(t)?t[i(604)]((t=>t[i(1979)]())):t instanceof Material&&t[i(1979)]()}this[i(6476)][i(2178)]=e.originalMaterial,delete e.originalMaterial}this[i(6476)]=void 0,this[i(12077)]&&(this[i(12077)].selectedObjects=[])}if(this[i(4758)]&&t){if(t instanceof InstancedMesh&&null!=e){const n=t,s=new Matrix4,a=new Matrix4;a.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),n[i(3523)](e,s),this[i(6476)]=t,this[i(12077)]&&(this[i(12077)][i(6090)]=[t]);const o=MaterialUtils.clonedHighlightMaterials(t,{depthTest:r});if(o){const r=new Mesh(n[i(2063)].clone(),o);r.applyMatrix4(t.matrixWorld.multiply(s)),r[i(2121)]=!0,r[i(542)]=i(12101);const c=s.clone();c[i(1896)](s,a),n[i(3521)](e,c),n[i(2163)][i(1948)]=!0,n[i(2127)](),this[i(6476)].userData[i(3524)]=e,this.selectedObject.userData[i(12099)]=s,this[i(6476)].userData.clonedMesh=r,this.scene.add(r)}}else if(MergeUtils[i(4746)](t)&&null!=n){const e=MergeUtils[i(4752)](t,n);let s=i(12102)+t.id+").";s+=i(12103)+n+i(6485)+(null==e?void 0:e[i(542)]),log.info(s);const a=MaterialUtils[i(4643)](t,{depthTest:r}),o=MergeUtils[i(12104)](t,e);if(a&&o){const e=new Mesh(o,a);e[i(2028)](t[i(2033)]),e[i(2121)]=!0,e[i(542)]=i(12101),this[i(6476)]=t,this[i(6476)][i(1968)][i(4751)]=n,this[i(6476)][i(1968)][i(12100)]=e,this[i(4758)][i(747)](e)}}else{const e=MaterialUtils[i(4643)](t,{depthTest:r});e&&(this[i(6476)]=t,this[i(6476)][i(1968)][i(4683)]=this[i(6476)][i(2178)],this[i(6476)].material=e,this[i(12077)]&&(this[i(12077)][i(6090)]=[t]))}this[i(5656)]()}else this[i(5656)]()}clearSelection(){var t=nz;this[t(6476)]&&this[t(6476)]instanceof Drawable?this[t(6476)].selected=!1:this[t(6487)](),this.selectedObject=void 0}getBBox(){return this[nz(1242)]}[nz(12105)](t){var e=nz;if(!t||0===t[e(449)]||!this[e(3045)])return;const n=new Vector3,r=new Vector3,i=new Box3;t[e(604)]((t=>{var n=e;const r=SceneUtils[n(2077)](t);i[n(1255)](r)}));const s=new Vector3;this.camera.getWorldDirection(s),Viewer3DUtils[e(4814)](i,n,r,this.camera[e(2031)],s),this.flyTo(n,r)}[nz(6478)](t){this.flyToObjects([t])}[nz(12044)](){var t=nz;if(!this[t(6476)])return;let e=this[t(6476)];e instanceof InstancedMesh&&e[t(1968)][t(12100)]?e=e.userData[t(12100)]:MergeUtils[t(4746)](e)&&e.userData.clonedMesh&&(e=e[t(1968)][t(12100)]),this[t(6478)](e)}[nz(12004)](){var t,e,n,r=nz;const i=Object[r(673)](this[r(6909)])[r(679)]((t=>t.id));Object.values(this.loaded3dTiles)[r(604)]((t=>i.push(t.id)));const s=i[r(449)];if(s<=0)return;const a=Math[r(562)](Math[r(533)]()*s),o=i[a];if(!(null==(t=this[r(4758)])?void 0:t.getObjectById(o)))return;const c=[];if(null==(e=this.scene)||e[r(2153)]((t=>{var e=r;const n=["SKYBOX","GROUND_GRID","GRASS_GROUND",e(12096)];(t instanceof Mesh||t instanceof Line)&&!n[e(667)](t[e(542)])&&c.push(t.id)})),c[r(449)]<1)return;const l=Math[r(562)](Math[r(533)]()*c[r(449)]),h=null==(n=this[r(4758)])?void 0:n[r(4679)](c[l]);h&&(log[r(1175)](r(12106)+h[r(542)]+r(12107)+h[r(452)]),this[r(6487)](h,void 0,void 0,!0),this[r(6478)](h))}[nz(5357)](t,e){var n=nz;const r=this[n(3045)],i=this[n(5350)];if(!r||!i)return;if(t[n(1889)](e))return void log[n(819)](n(5351));if(!CommonUtils.isVectorValid(t)||!CommonUtils[n(4305)](e))return void log[n(819)](n(5352));const s=t.distanceTo(e);sr[n(2366)]&&(t=t.clone()[n(909)](e)[n(569)]()[n(1878)](.9*r[n(2366)]),log.warn("[BimViewer] camera could be too far to see the object!"));const a=(t,e)=>{var r=n;i[r(5542)](t,e),i[r(1067)](),this[r(5656)]()},o=r.position[n(1014)](),c=new Vector3;r[n(2151)](c);const l=i[n(573)].distanceTo(o),h=o[n(1014)]().addScaledVector(c,l),u=500,d=Date.now();this[n(5356)]&&clearInterval(this.cameraUpdateInterval),this[n(5356)]=setInterval((()=>{var r=n;let i=Date.now()-d;i>u&&(i=u);const s=(t,e,n)=>{const r=t.x+(e.x-t.x)*n,i=t.y+(e.y-t.y)*n,s=t.z+(e.z-t.z)*n;return new Vector3(r,i,s)},c=s(o,t,i/u),l=s(h,e,i/u);a(c,l),i>=u&&(clearInterval(this[r(5356)]),this[r(5356)]=void 0)}),10)}[nz(6479)](){var t,e=nz;if(!this[e(4758)]||!this[e(3045)])return;const n=new Vector3,r=new Vector3,i=SceneUtils[e(4775)](this[e(4758)]),s=new Vector3;null==(t=this.camera)||t[e(2151)](s),Viewer3DUtils[e(4814)](i,n,r,this[e(3045)].projectionMatrix,s),this[e(5357)](n,r)}[nz(6845)](){var t=nz;const e=this[t(3045)],n=this[t(11918)],r=n&&CommonUtils[t(4866)](n[t(4867)]),i=n&&CommonUtils[t(4866)](n[t(4868)]);if(r&&i)this.flyTo(r,i);else if(this[t(4758)]){const n=new Vector3,r=new Vector3,i=new Vector3(-1,-.5,-1);if(this.has2dModel){const e=this[t(1242)][t(486)].x-this.bbox[t(563)].x,n=this[t(1242)][t(486)].y-this.bbox[t(563)].y,r=this[t(1242)].max.z-this[t(1242)][t(563)].z,s=Math[t(563)](e,n,r);e-s<=0?i[t(540)](1,0,0):n-s<=0?i.set(0,-1,0):r-s<=0&&i[t(540)](0,0,-1)}if(Viewer3DUtils[t(4814)](this.bbox,n,r,null==e?void 0:e[t(2031)],i),(!this[t(11918)]||this[t(11918)]&&(!this[t(11918)].eye||!this.cameraCfg[t(4868)]))&&(this[t(11918)]={eye:n[t(1499)](),look:r[t(1499)]()}),e instanceof OrthographicCamera){const n=this.bbox,r=n[t(486)].x-n[t(563)].x,i=n[t(486)].z-n[t(563)].z,s=e[t(935)]-e[t(683)],a=e[t(2651)]-e.bottom;e.zoom=Math.max(s,a)/Math[t(486)](r,i),e[t(2397)]/=2,e[t(2396)]()}!n.equals(r)&&this[t(5357)](n,r)}}[nz(11788)](t){var e,n,r=nz;const i=new Vector3,s=new Vector3,a=new Vector3;null==(e=this[r(3045)])||e[r(2151)](a),Viewer3DUtils.getCameraPositionByBboxAndDirection(t,i,s,null==(n=this[r(3045)])?void 0:n[r(2031)],a),!i[r(1889)](s)&&this[r(5357)](i,s)}[nz(12108)](){var t=nz;const e=this[t(3045)];if(!this[t(4758)]||!e)return;const n=this[t(1242)],r=e[t(2365)],i=e[t(2366)],s=n.max.x-n.min.x,a=n[t(486)].y-n[t(563)].y,o=n[t(486)].z-n[t(563)].z,c=Math[t(486)](s,a,o),l=c/5,h=5*c;if(r>l||iCommonUtils[t(4300)](e);log[t(1175)](t(12109)+n(c)),r>l&&(log[t(1176)](t(12110)+n(r)+t(12111)+n(l)+", will change it!"),e[t(2365)]=l),it.id));if(Object[t(673)](this.loaded3dTiles)[t(604)]((n=>e[t(565)](n.id))),e){const n=this[t(11918)],r=n&&CommonUtils[t(4866)](n[t(4867)]),i=n&&CommonUtils[t(4866)](n[t(4868)]);let s=new Box3;if(r&&i){const e=r,n=i;s[t(2056)](new Vector3(e.x,e.y,e.z)),s.expandByPoint(new Vector3(n.x,n.y,n.z))}else s=SceneUtils[t(4777)](this[t(4758)],e);this[t(6829)]=SkyboxUtils[t(4802)](s),this[t(4758)][t(747)](this[t(6829)])}}[nz(12089)](){var t=nz;if(!this[t(4758)])return;this.groundGrid&&(this.groundGrid[t(2063)][t(1979)](),this[t(6824)][t(2178)][t(1979)](),this.scene[t(1204)](this[t(6824)]));const e=Object.values(this[t(6909)])[t(679)]((t=>t.id));if(Object.values(this[t(11983)]).forEach((t=>e.push(t.id))),e){const e=this[t(11918)],n=e&&CommonUtils[t(4866)](e[t(4868)]);n&&(n.y=0),this[t(6824)]=GroundUtils[t(4630)](void 0,void 0,n),this.scene.add(this[t(6824)])}}setOrbitPoint(t){var e=nz;const n=this[e(5350)];if(!(this[e(3045)]&&this[e(4885)]&&this.controls&&this.scene&&this[e(4864)]&&this[e(4863)]))return;const r=this[e(11837)](t);let i;if(i=t instanceof MouseEvent?CoordinateConversionUtils[e(4324)](t,this[e(4863)]):CoordinateConversionUtils[e(4327)](t,this.viewerContainer),r&&0!==r[e(449)])n.setOrbitPoint(r[0][e(1220)]),this[e(12117)](i),this[e(11998)]=r[0][e(1220)];else{const t=this[e(1242)][e(2059)](new Vector3),r=CoordinateConversionUtils[e(4330)](t,this[e(3045)],this[e(4885)][e(5280)]);this.setAnchorPosition(r),n[e(5546)](t),this[e(11998)]=t}}[nz(12117)](t){var e=nz;this.anchor&&(this[e(898)].className=e(12118),this[e(898)][e(590)].left=t.x+"px",this.anchor[e(590)][e(2651)]=t.y+"px")}[nz(12029)](){var t,e=nz;const n=document[e(538)](e(539));return n[e(6557)]=e(898),null==(t=this[e(4863)])||t[e(591)](n),n}[nz(12119)](){var t,e=nz;this[e(898)]&&(null==(t=this[e(4863)])||t[e(809)](this.anchor),this[e(898)]=void 0)}[nz(12078)](){var t,e,n,r,i=nz;this[i(12119)](),null==(t=this[i(4885)])||t[i(5280)][i(1716)]("mousedown",this.onPointerDown),null==(e=this[i(4885)])||e[i(5280)][i(1716)](i(5522),this[i(5383)]),null==(n=this[i(4885)])||n[i(5280)].removeEventListener("pointerup",this[i(12030)]),null==(r=this[i(5350)])||r[i(1716)](i(1067),this.updateOrbPoint)}[nz(12052)](t){var e=nz;this.scene&&this[e(3045)]&&this[e(4885)]&&(this[e(6885)]=t,t&&!this[e(12068)]&&(this[e(12068)]=new EffectComposer(this[e(4885)])),this[e(5656)]())}[nz(6888)](t){var e=nz;if(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this[e(12068)]){if(t&&!this[e(6181)]){const t=new RenderPass(this[e(4758)],this[e(3045)]);t.setSize(this[e(999)],this.height),this.composer[e(6084)](t),this[e(6181)]=t}this[e(6181)]&&(this[e(6181)].enabled=t),this[e(5656)]()}}[nz(6891)](t){var e=nz;if(this[e(4758)]&&this.camera&&this.renderer&&this[e(12068)]){if(t&&!this[e(12074)]){const t=new ShaderPass(FXAAShader);t[e(2377)][e(3095)][e(439)][e(540)](1/this.width,1/this[e(1e3)]),t.setSize(this[e(999)],this[e(1e3)]),t.renderToScreen=!0,this.composer[e(6084)](t),this.effectFxaaPass=t}this[e(12074)]&&(this.effectFxaaPass[e(2407)]=t),this[e(5656)]()}}[nz(6894)](t){var e=nz;if(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this.composer){if(t&&!this[e(12075)]){const t=new SAOPass(this[e(4758)],this[e(3045)],!1,!0,new Vector2(1/this[e(999)],1/this[e(1e3)]));t.setSize(this.width,this.height),t[e(3536)][e(4888)]=0,t[e(3536)][e(6182)]=.5,t[e(3536)].saoIntensity=5e-5,t.params[e(6184)]=5,t.params[e(6185)]=40,t[e(3536)].saoMinResolution=0,this[e(12068)][e(6084)](t),this.saoPass=t}this.saoPass&&(this[e(12075)][e(2407)]=t),this.enableRender()}}enableSsaoPass(t){var e=nz;if(this[e(4758)]&&this.camera&&this.renderer&&this.composer){if(t&&!this[e(12076)]){const t=new SSAOPass(this[e(4758)],this[e(3045)],this[e(999)],this[e(1e3)]);t.kernelRadius=16,t[e(5366)]=.005,t[e(3926)]=.1,this[e(12068)][e(6084)](t),this[e(12076)]=t}this[e(12076)]&&(this[e(12076)][e(2407)]=t),this[e(5656)]()}}[nz(6899)](t){var e=nz;if(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this.composer){if(t&&!this.outlinePass){const t=new OutlinePass(new Vector2(this[e(999)],this.height),this[e(4758)],this[e(3045)]);t[e(6094)]=3,t[e(6091)]=0,t[e(6093)]=2,t[e(6096)]=0,t[e(6133)][e(540)](16711680),t[e(6134)].set(16752768),this[e(12068)][e(6084)](t),this[e(12077)]=t}this.outlinePass&&(this[e(12077)][e(2407)]=t),this[e(5656)]()}}[nz(12053)](t){var e=nz;if(this[e(4758)]&&this.camera&&this.renderer&&this[e(12068)]){if(t&&!this[e(12120)]){const t=new SSAARenderPass(this[e(4758)],this.camera,16777215,0);this[e(12068)][e(6084)](t),this[e(12120)]=t}this[e(12120)]&&(this[e(12120)][e(2407)]=t),this.enableRender()}}enableBloomPass(t){var e=nz;if(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this.composer){if(t&&!this[e(12121)]){const t=new BloomPass(1,25,4);t.renderToScreen=!0,this[e(12068)][e(6084)](t),this[e(12121)]=t}this.bloomPass&&(this[e(12121)].enabled=t),this[e(5656)]()}}[nz(6907)](t){var e=nz;if(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this[e(12068)]){if(t&&!this[e(12122)]){const t=new UnrealBloomPass(new Vector2(this[e(999)],this[e(1e3)]),1,0,0);t[e(3531)]=0,t[e(4449)]=.5,t[e(2041)]=0,this[e(12068)].addPass(t),this.unrealBloomPass=t}this[e(12122)]&&(this.unrealBloomPass[e(2407)]=t),this[e(5656)]()}}activateSection(t=nz(4627)){var e=nz;if(!(this[e(4758)]&&this[e(3045)]&&this[e(4885)]&&this[e(5350)]))return;this[e(12041)]&&this.deactivateSection();const n=Object[e(673)](this[e(6909)])[e(679)]((t=>t.id));if(Object[e(673)](this[e(11983)])[e(604)]((t=>n.push(t.id))),!n||n[e(449)]<1)log.warn(e(12123));else{if(this[e(4885)][e(3099)]=!0,this.sectionType=t,t===e(4627)){const t=this[e(3045)],r=this[e(5350)];this[e(12041)]=new ObjectsBoxSection(this[e(4758)],t,this[e(4885)],r,n),this[e(12041)].open()}else t===e(4628)?(this[e(12041)]=new PickPlaneSection(this,n,this[e(4863)]),this.section[e(594)]()):"AxisPlaneSection"===t&&(this[e(12041)]=new AxisPlaneSection(this,n,this[e(4863)]),this[e(12041)][e(594)]());this[e(5656)]()}}[nz(6861)](){var t=nz;this[t(4885)]&&this[t(12041)]&&(this[t(12041)][t(587)](),this[t(12041)]=void 0,this[t(5656)]())}[nz(12124)](){this[nz(6861)]()}[nz(6421)](t=nz(4627)){this[nz(6862)](t)}[nz(11920)](t){var e=nz;!this.measurementManager&&(this.measurementManager=new MeasurementManager2(this));this[e(12043)][e(11920)](t),this.clearSelection()}[nz(5659)](){var t,e,n=nz;null==(t=this[n(12043)])||t[n(5659)](),null==(e=this[n(5251)])||e[n(5238)]("Measure",DEFAULT_BIMVIEWER_TOOLBAR_CONFIG[n(5176)])}[nz(11928)](){var t;null==(t=this.measurementManager)||t.clearMeasurements()}activateZoomToRect(){var t=nz;!this[t(12079)]&&(this[t(12079)]=new ZoomToRectHelper(this)),this[t(12079)].activate()}[nz(12125)](){var t,e=nz;null==(t=this[e(12079)])||t[e(11783)]()}enableWebCam(){var t=nz;this[t(4758)]&&(!this[t(11971)]&&(this[t(11971)]=new WebCam),!this[t(12073)]&&(this[t(12073)]=this.webcam.createWebCamPlane(),this.webcamPlane[t(2065)][t(540)](10,2,0)),this[t(4758)][t(747)](this[t(12073)]))}[nz(12126)](){var t=nz;this.scene&&this[t(12073)]&&(this[t(12073)][t(2063)][t(1979)](),this.webcamPlane[t(2178)].dispose(),this[t(4758)][t(1204)](this[t(12073)]))}[nz(12127)](t){var e=nz;TextureUtils.createEnvTexture(this.pmremGenerator,t)[e(829)]((t=>{var n=e;this[n(4758)]&&(this[n(4758)][n(2167)]=t)}))}[nz(12128)](t){var e=nz;TextureUtils[e(6805)](this[e(6840)],t)[e(829)]((t=>{var n=e;this[n(4758)]&&(this[n(4758)].environment=t)}))}[nz(12129)](t){return __async(this,null,(function*(){return new Promise(((e,n)=>{var r,i=f;!this[i(4885)]&&n(i(12130)),null==(r=this[i(4758)])||r[i(2152)]((e=>{var n=i;e instanceof Mesh&&((0,import_lodash8.includes)(t,(0,import_lodash8.get)(e[n(1968)],n(12131)))?e.visible=!0:e[n(2122)]=!1)})),this[i(5656)](),setTimeout((()=>{var t,n=i;e(null==(t=this[n(4885)])?void 0:t[n(5280)].toDataURL(n(1943)))}),1e3)}))}))}updateRaycasterThreshold(){var t=nz;const e=this[t(3045)];if(!e||!this[t(4864)])return;const n=12/e[t(2397)],r=this[t(4864)][t(3536)];r.Line?r[t(3528)].threshold=n:r[t(3528)]={threshold:n},r[t(3535)]?r.Points[t(3531)]=n:r[t(3535)]={threshold:n}}[nz(6938)](t){var e=nz;new InstantiateHelper(t)[e(6938)]()}[nz(2351)](t){var e=nz;this[e(12001)]();try{const n=[];t[e(2152)]((t=>{var r=e;t[r(2063)]&&t[r(2178)]&&n.push(t)})),MergeUtils.deepMerge(n,t)}finally{this[e(12005)]()}}[nz(12132)](t){var e=nz;this.spinner&&(t?this[e(12048)][e(4871)][e(1204)](e(605)):this.spinner[e(4871)].add(e(605)))}[nz(12001)](){this[nz(12132)](++this.jobCount>0)}[nz(12005)](){this[nz(12132)](--this.jobCount>0)}[nz(12027)](t,e,n){var r=nz;t[r(808)](e,n),this[r(1223)][r(565)]({node:t,type:e,func:n})}[nz(12133)](t){var e=nz;this[e(3685)]=t;const n=(t,n)=>{var r=e;t&&n&&(t[r(2365)]=n[r(2365)],t[r(2366)]=n[r(2366)],t[r(2396)]())};n(this[e(12021)],this[e(3685)][e(3045)]),n(this[e(12022)],this.settings[e(3045)]),this[e(5656)](10)}[nz(12040)](t){var e=nz;const n=this.getIntersections(t);if(n[e(449)]<0)return;const r=this.camera,i=this[e(5350)];if(!r||!i)return;const s=n[e(932)]((t=>{var n=e;if(t[n(3018)]r[n(2366)])return!1;const i=t[n(469)];return i[n(2122)]&&i instanceof Mesh}));if((null==s?void 0:s.point)&&i){const t=r[e(2065)],n=i[e(573)],a=s[e(3018)],o=t[e(2038)](n),c=t[e(1014)]()[e(1887)](n,a/o);i[e(573)]=c}}[nz(2067)](){var t=nz;const e=new Box3;return Object[t(673)](this[t(6909)])[t(604)]((n=>{var r=t;if(n[r(1242)]){n[r(1242)][r(2063)][r(2067)]();const t=n.bbox[r(2063)][r(2066)];t&&!t[r(1213)]()&&e[r(1255)](t)}})),Object.values(this[t(11983)]).forEach((n=>{var r=t;!n.bbox.isEmpty()&&e.union(n[r(1242)])})),this[t(1242)]=e,e}},import_lodash9=__toESM(require_lodash(),1),DxfLayoutBar=class{constructor(t){var e=nz;this.viewer=t,this[e(5665)]={},this[e(5395)]=t=>{var n=e;t[n(3406)](),this[n(5231)]&&(this[n(5231)][n(12134)]+=t[n(5324)])},this[e(2645)]()}[nz(2645)](){var t,e=nz;const n=document[e(538)](e(539));n[e(4871)][e(747)]("model-layout-switch-bar");const r=document[e(538)]("div");r[e(4871)].add(e(12135)),r[e(808)](e(5318),this[e(5395)]),this[e(4862)].getLayoutNames().forEach(((t,n)=>{var i=e;const s=this.createItem(t,n);this[i(5665)][t]=s,s[i(12136)]=()=>{var t=i;for(const e in this[t(5665)]){this[t(5665)][e][t(12137)]()}},null==r||r.appendChild(s.element)})),this.element=n,this.content=r,this[e(5231)][e(591)](this.content),null==(t=this[e(4862)][e(5233)])||t[e(591)](this[e(5231)])}[nz(6316)](t,e){const n=new ModelLayoutSwitchItem(this[nz(4862)],t);return 0===e&&n.setActive(!0),n}[nz(1725)](){var t,e,n=nz;for(const e in this[n(5665)]){const r=this.itemList[e];r[n(1725)](),null==(t=this[n(5721)])||t[n(809)](r[n(5231)])}this.itemList={},this.element&&this[n(5721)]&&(this[n(5231)][n(809)](this[n(5721)]),this[n(5231)][n(1716)](n(5318),this[n(5395)]),null==(e=this[n(4862)][n(5233)])||e[n(809)](this[n(5231)]),this.element=void 0)}[nz(6297)](){var t=nz;this[t(5231)]&&(this.element.style[t(3368)]=t(3369))}[nz(6314)](){var t=nz;this[t(5231)]&&(this[t(5231)][t(590)].display=t(3833))}},ModelLayoutSwitchItem=class{constructor(t,e){var n=nz;this[n(4862)]=t,this[n(5244)]=mitt_default(),this.active=!1,this.element=this[n(6316)](e),this[n(5244)].on(n(12138),(t=>{var r=n;this[r(12136)]&&this[r(12136)](),t?(this[r(5231)][r(4871)][r(747)](r(11783)),this[r(4862)][r(12139)](e)):this[r(5231)][r(4871)][r(1204)](r(11783))}))}createItem(t){var e=nz;const n=document[e(538)](e(539)),r=document[e(538)](e(6298));return n[e(4871)][e(747)]("model-layout-switch-item"),n.onclick=()=>{var t=e;this[t(5245)]=!this[t(5245)],this[t(5244)][t(839)](t(12138),this[t(5245)])},r[e(12140)]=t,n[e(591)](r),n}setActive(t){var e=nz;this[e(5245)]!==t&&(this[e(5245)]=t,this[e(5244)].emit(e(12138),t))}[nz(12137)](){var t=nz;this[t(5245)]=!1,this[t(5231)][t(4871)][t(1204)](t(11783))}[nz(1725)](){var t=nz;this[t(5244)][t(1714)](t(12138))}},ProgressBar=class{constructor(t){var e=nz;this[e(12141)]=[],this.element=document[e(538)](e(539)),this.element[e(4871)][e(747)](e(12142)),t[e(591)](this[e(5231)])}[nz(12143)](t){var e=nz;this[e(5231)]&&(t?this[e(5231)][e(4871)].remove(e(605)):this.element[e(4871)][e(747)]("hidden"))}[nz(12144)](t,e){var n=nz;let r=this[n(12141)][n(932)]((e=>e.id===t));if(!r){const i=document[n(538)](n(539));i[n(4871)][n(747)](n(12145)),i[n(5260)]=e||"",this.element[n(6267)](i),r={id:t,div:i},this[n(12141)][n(565)](r)}this[n(12143)](!0)}updateProgress(t,e,n){var r=nz;const i=this[r(12141)][r(932)]((e=>e.id===t));if(!i)return;let s=e?""+e:"";e&&n&&(s+=": "),n&&(s+=n[r(490)](2)+"%"),i[r(539)][r(5260)]=s}[nz(12146)](t){var e=nz;const n=this[e(12141)][e(932)]((e=>e.id===t));n&&n[e(539)][e(1204)](),0===this[e(12141)][e(449)]&&this.setVisibility(!1)}[nz(12147)](t,e=3e3){setTimeout((()=>{this[f(12146)](t)}),e)}},BaseMarkup=class extends Drawable{constructor(t){var e=nz;super(t),this[e(4825)]=3,this[e(4826)]=e(4312),this.id=t||CommonUtils[e(4307)]()}isSelected(){return this[nz(1639)]}drawSelect(t,e){var n=nz;const r=this.getVertexs();this[n(11861)](t,e,r)}[nz(11861)](t,e,n){var r=nz;t.save(),t.fillStyle=this[r(4826)],t[r(4843)](),n[r(604)]((n=>{var i=r;const s=this[i(4838)](n,e);t[i(3593)](s.x,s.y),t[i(3597)](s.x,s.y,this[i(4825)],0,2*Math.PI)})),t[r(3585)](),t[r(929)](),t[r(4841)]()}setEditPointSize(t){this.editPointSize=t}[nz(12148)](t){this.editPointColor=t}getCenter(){var t=nz;return this.getBounds()[t(2059)](new Vector3)}[nz(4855)](t){var e=nz;const n=this[e(4834)]()[e(679)]((t=>new Vector2(t.x,t.y)));return GeometryUtils[e(4607)](new Vector2(t.x,t.y),n,!0)}setData(t){var e=nz;super[e(4848)](t),this.update(t[e(2985)][e(679)]((t=>new Vector3(t[0],t[1],0))))}[nz(2078)](t,e){var n=nz;const r=new Vector3(t,e,0);return this[n(2985)][n(604)]((t=>t[n(747)](r))),this.update(this[n(2985)]),this}rotate(){return this}[nz(1901)](){return this}},ArrowMarkup=class extends BaseMarkup{constructor(t,e){var n=nz;super(t),this.type=n(5267),this[n(1067)](e)}draw(t,e){var n=nz;const r=this[n(2985)][n(679)]((t=>this.transToScreenCoord(t,e)));this[n(12149)](t,r),this[n(12150)](t,r[0],r[1],this[n(3124)]+10,this.lineWidth+20)}[nz(12149)](t,e){var n=nz;t[n(4544)](),t[n(3124)]=this[n(3124)],t[n(4839)]=this[n(4822)];const[r,i]=e,s=(new Vector2)[n(1872)](i,r)[n(569)]();t[n(4843)](),t[n(3593)](r.x,r.y);const a=i[n(1014)]().sub(s[n(1878)](this.lineWidth+5));t[n(3594)](a.x,a.y),t[n(3585)](),t[n(4840)](),t.restore()}[nz(12150)](t,e,n,r,i){var s=nz;const a=180*Math[s(1883)](e.y-n.y,e.x-n.x)/Math.PI,o=(a+r)*Math.PI/180,c=(a-r)*Math.PI/180,l=i*Math.cos(o),h=i*Math[s(1853)](o),u=i*Math[s(1852)](c),d=i*Math[s(1853)](c),f=new Vector2(n.x+l,n.y+h),p=new Vector2(n.x+u,n.y+d);t[s(4544)](),t.fillStyle=this[s(4822)],t[s(4843)](),t[s(3593)](n.x,n.y),t[s(3594)](f.x,f.y),t[s(3594)](p.x,p.y),t[s(3585)](),t[s(929)](),t[s(4841)]()}[nz(4834)](){return this.points}[nz(1067)](t){var e=nz;const[n,r]=t;return this[e(2985)]=t,this.x=Math[e(563)](n.x,r.x),this.y=Math[e(563)](n.y,r.y),this.width=Math.abs(r.x-n.x),this[e(1e3)]=Math.abs(r.y-n.y),this}isPointInPath(t){var e=nz;return GeometryUtils[e(12151)](t,this[e(2985)],this[e(4824)])}[nz(4833)](){return nz(5267)}};CanvasRender[nz(11816)](ArrowMarkup);var CircleMarkup=class extends BaseMarkup{constructor(t,e){var n=nz;super(t),this[n(2041)]=1,this[n(452)]=n(5268),this[n(1067)](e)}draw(t,e){var n=nz;const[r,i]=this.points[n(679)]((t=>this[n(4838)](t,e)));this.radius=(new Vector2)[n(1872)](i,r)[n(449)](),t[n(4544)](),t[n(3124)]=this[n(3124)],t[n(4839)]=this[n(4822)],t[n(4409)]=this[n(4823)],t[n(4843)](),t.arc(r.x,r.y,this[n(2041)],0,2*Math.PI),t[n(3585)](),t[n(4840)](),t[n(4841)]()}update(t){var e=nz;const[n,r]=t,i=(new Vector3).subVectors(r,n)[e(449)]();return this[e(999)]=2*i,this[e(1e3)]=2*i,this.x=n.x-this[e(999)]/2,this.y=n.y-this[e(1e3)]/2,this[e(2985)]=t,this}[nz(4855)](t){var e=nz;const[n,r]=this[e(2985)],i=(new Vector3)[e(1872)](n,r).length();return Math[e(694)](t.distanceTo(n)-i)<=2*this.tolerance}[nz(4833)](){return nz(5268)}};CanvasRender[nz(11816)](CircleMarkup);var tempBox3=new Box3,CloudLineMarkup=class extends BaseMarkup{constructor(t,e){var n=nz;super(t),this[n(452)]="CloudLineMarkup",this[n(1067)](e)}[nz(4829)](t,e){var n=nz;const r=this[n(2985)],i=[];t[n(4544)](),t.lineWidth=this[n(3124)],t[n(4839)]=this[n(4822)],t[n(4409)]=this[n(4823)],t[n(4843)]();for(let s=0;sthis.transToScreenCoord(t,e))),s=(new Vector2)[n(1888)](r,i,.5);this[n(12154)]=Math[n(694)](i.x-r.x)/2,this[n(12155)]=Math[n(694)](i.y-r.y)/2,t.save(),t[n(3124)]=this.lineWidth,t[n(4839)]=this.lineColor,t[n(4409)]=this[n(4823)],t.beginPath(),t[n(3600)](s.x,s.y,this[n(12154)],this[n(12155)],0,0,2*Math.PI),t.closePath(),t[n(4840)](),t[n(4841)]()}[nz(1067)](t){var e=nz;const[n,r]=t;return this.x=Math.min(n.x,r.x),this.y=Math[e(563)](n.y,r.y),this[e(999)]=Math[e(694)](r.x-n.x),this[e(1e3)]=Math.abs(r.y-n.y),this[e(2985)]=t,this}[nz(4855)](t){var e=nz;const[n,r]=this[e(2985)],i=(new Vector3)[e(1888)](n,r,.5),s=Math[e(694)](r.x-n.x)/2,a=Math[e(694)](r.y-n.y)/2,o=Math[e(428)](t.x-i.x,2)/(s*s),c=Math[e(428)](t.y-i.y,2)/(a*a);return Math[e(694)](o+c-1)<=.1}getClassType(){return nz(5274)}};CanvasRender[nz(11816)](EllipseMarkup);var PolylineMarkup=class extends BaseMarkup{constructor(t,e){var n=nz;super(t),this[n(452)]="PolylineMarkup",this[n(1067)](e)}[nz(4829)](t,e){var n=nz;t.save(),t[n(3124)]=this.lineWidth,t[n(4839)]=this[n(4822)],t[n(4409)]=this[n(4823)];const r=this[n(2985)];t[n(4843)](),r[n(604)](((r,i)=>{const s=this[n(4838)](r,e);0===i?t.moveTo(s.x,s.y):t.lineTo(s.x,s.y)})),t[n(4840)](),t[n(4841)]()}[nz(4855)](t){var e=nz;const n=this[e(2985)],r=[];for(let t=0;t{var s=n;const a=this.transToScreenCoord(r,e);0===i?t[s(3593)](a.x,a.y):t[s(3594)](a.x,a.y)})),t[n(3585)](),t[n(4840)](),t.restore()}[nz(1067)](t){var e=nz;const[n,r]=t;return this.x=Math[e(563)](n.x,r.x),this.y=Math[e(563)](n.y,r.y),this[e(999)]=Math[e(694)](r.x-n.x),this[e(1e3)]=Math[e(694)](r.y-n.y),this[e(2985)]=t,this}[nz(4855)](t){var e=nz;const n=this[e(4834)](),r=[];for(let t=0;tthis[n(10982)]&&(this.textWidth=a),i.push({lineWidth:a,lineText:s})}return this[n(12158)]!==i[n(449)]&&(this.y-=(i.length-1)*this[n(12157)]),i[n(686)]()}[nz(12161)](t){this[nz(12157)]=t}update(t){var e=nz;const n=t[0];return this.x=n.x,this.y=n.y,this[e(2985)]=[n],this[e(12158)]=1,this}[nz(4848)](t){var e=nz;super[e(4848)](t),this[e(3775)]=t[e(3775)],this.setFontSize(t[e(12157)])}[nz(12162)](t){this[nz(3775)]=t}[nz(4852)](){var t=nz;return{id:this.id,points:this.points.map((t=>[t.x,t.y])),text:this.text,lineWidth:this[t(3124)],lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this[t(12157)],type:this.getClassType()}}[nz(4833)](){return nz(5277)}};CanvasRender[nz(11816)](TextMarkup);var XMarkup=class extends BaseMarkup{constructor(t,e){var n=nz;super(t),this[n(452)]=n(5278),this.update(e)}[nz(4829)](t,e){var n=nz;t[n(4544)](),t[n(3124)]=this.lineWidth,t[n(4839)]=this.lineColor,t[n(4843)]();const[r,i,s,a]=this.getVertexs()[n(679)]((t=>this[n(4838)](t,e)));t[n(3593)](r.x,r.y),t[n(3594)](s.x,s.y),t.moveTo(i.x,i.y),t[n(3594)](a.x,a.y),t[n(3585)](),t[n(4840)](),t[n(4841)]()}[nz(4855)](t){var e=nz;const[n,r,i,s]=this[e(4834)]();return GeometryUtils.isPointOnLineSegments(t,[n,i,r,s],.1)}[nz(1067)](t){var e=nz;const[n,r]=t;return this[e(2985)]=t,this.x=Math[e(563)](n.x,r.x),this.y=Math[e(563)](n.y,r.y),this[e(999)]=Math.abs(r.x-n.x),this[e(1e3)]=Math[e(694)](r.y-n.y),this}[nz(4833)](){return nz(5278)}};CanvasRender[nz(11816)](XMarkup);var MarkupUndoRedo=class extends UndoRedoHelper{constructor(t,e){var n=nz;super(e),this[n(3749)]=t}[nz(11895)](){var t=nz;const e=super[t(11895)]();switch(null==e?void 0:e.type){case t(12163):{const n=this.manager[t(12164)](e[t(11896)].id);n&&this[t(3749)].removeMarkup(n,!1)}break;case"Remove":{const n=this.manager.createMarkup(e[t(11896)]);n&&this[t(3749)][t(12165)](n,!1)}break;case"Update":{const{from:n,to:r}=e.payload,i=this.manager[t(12164)](n.id);i&&this[t(3749)][t(12166)](i,n,!1)}}return e}[nz(11901)](){var t=nz;const e=super.redo();switch(null==e?void 0:e.type){case t(12163):{const n=this[t(3749)][t(12167)](e[t(11896)]);n&&this[t(3749)][t(12165)](n,!1)}break;case"Remove":{const n=this[t(3749)][t(12164)](e[t(11896)].id);n&&this[t(3749)][t(12168)](n,!1)}break;case t(12169):{const{from:n,to:r}=e[t(11896)],i=this.manager[t(12164)](r.id);i&&this.manager[t(12166)](i,r,!1)}}return e}},tempVector3=new Vector3,MarkupManager2=class extends Event{constructor(t){var e,n=nz;super(),this[n(11821)]=new DrawableList(n(12170)),this[n(3124)]=2,this[n(4822)]="#ff0000",this[n(4823)]="rgba(255, 0, 0, 0.3)",this.fontSize=20,this[n(11775)]=!1,this[n(11777)]=void 0,this.mouseDownPositionY=void 0,this.isDrawing=!1,this[n(12171)]=[],this.actived=!1,this[n(11919)]=new MarkupUndoRedo(this),this[n(4618)]=t=>{var e,r=n;let i=this[r(12172)](t);if(this[r(11777)]=i.x,this.mouseDownPositionY=i.y,0===t[r(5335)]&&(this[r(11775)]=!0),2===t[r(5335)]&&(this[r(12173)]&&this[r(12171)][r(449)]<2?(this[r(12168)](this[r(12173)],!1),this[r(12173)]=void 0):null==(e=this[r(12173)])||e[r(1067)](this.tempPoints),this[r(12174)]&&this[r(12175)](this.creatingShape)),this[r(12176)]&&(this.selectedShape[r(1639)]=!1,this[r(12176)]=void 0,this[r(2418)]()),!this[r(12174)]){const t=this[r(11821)].getDrawableByPosition(i);t&&(this[r(12176)]=t,t[r(1639)]=!0,this[r(2418)](),this[r(12177)]&&(this[r(12177)].style[r(3368)]=r(3833)))}if(this[r(12178)]()&&this[r(11775)]&&!this[r(12176)]&&((!this[r(12179)]||this[r(12177)]&&0===this[r(12177)][r(439)][r(449)])&&(this[r(12179)]=i[r(1014)]()),this[r(12180)](t[r(4329)],t[r(4326)])),this[r(12181)]()&&this[r(11775)]&&!this[r(12176)]){if(this[r(12171)].length>0){const t=this[r(12171)][0];if(tempVector3[r(1872)](t,i).length(){var e=n;t[e(3406)]();let r=this[e(12172)](t);if(this[e(12176)]){if(this[e(11775)]&&void 0!==this[e(11777)]&&void 0!==this[e(11778)]){!this[e(12184)]()&&(this[e(12185)]=this[e(12176)][e(4852)]());const t=r.x-this.mouseDownPositionX,n=r.y-this[e(11778)];this.selectedShape[e(2078)](t,n),this[e(2418)](),this[e(11777)]=r.x,this[e(11778)]=r.y}}else{if(this[e(12182)]())return;if(this.mouseDown&&this[e(12186)]()&&void 0!==this.mouseDownPositionX&&void 0!==this[e(11778)]){const t=new Vector3(this[e(11777)],this[e(11778)],0);if(!this[e(12173)]){const n=this[e(12173)]=this[e(12183)](t,r);n&&this[e(12165)](n,!1)}this[e(12173)].update([t,r]),this.isDrawing=!0,this[e(2418)]()}if(this[e(12181)]()&&this[e(12171)][e(449)]>0&&this[e(12174)]){if(!this[e(12173)]){const t=this.creatingShape=this[e(12187)]([...this[e(12171)],r]);t&&this[e(12165)](t,!1)}const t=this[e(12171)][0];tempVector3[e(1872)](t,r)[e(449)](){var e=n;t[e(3406)](),this[e(11775)]=!1,this[e(12176)]&&this.isEditing()&&this.endEdit(this[e(12176)]),this[e(12186)]()&&this[e(12174)]&&this.endDraw(this.creatingShape)},this[n(4615)]=t=>{var e=n;t[e(973)]===e(11908)?this[e(12176)]&&this[e(12168)](this.selectedShape):t[e(5339)]&&t[e(973)]===e(11911)?this.undo():t[e(5339)]&&t[e(973)]===e(11912)?this.redo():t[e(973)]===e(4619)&&this[e(12188)](this[e(12173)])},this[n(4862)]=t,this[n(5654)]=this[n(4862)][n(5654)],null==(e=this[n(5654)])||e[n(4879)](this[n(11821)])}get viewerCanvas(){var t,e=nz;return null==(t=this[e(4862)][e(4885)])?void 0:t[e(5280)]}get[nz(3045)](){var t=nz;return this[t(4862)][t(3045)]}get raycaster(){var t=nz;return this[t(4862)][t(5657)]()}removeMarkupEventFromViewer(){}[nz(12189)](t){var e=nz;this.drawableList[e(4851)]()[e(604)]((n=>n[e(2122)]=t))}[nz(11287)](){var t=nz;this[t(11821)][t(750)](),this.textInput&&(this[t(12177)][t(590)][t(3368)]=t(3833)),this[t(11919)][t(750)](),this[t(12174)]&&this[t(12175)](),this[t(2418)]()}[nz(12190)](){return this[nz(11782)]}[nz(11783)](){var t=nz;this.actived=!0,this[t(12191)][t(808)]("pointerdown",this[t(4618)]),this[t(12191)][t(808)]("pointermove",this[t(4616)]),this[t(12191)][t(808)](t(5320),this.mouseup),window[t(808)]("keydown",this[t(4615)]);const e=this[t(4862)].controls;this[t(11784)]=e[t(5336)][t(5326)],e.mouseButtons.LEFT=-1,this.tempArrowKeys=e[t(477)],e[t(477)]={},this[t(2418)]()}[nz(11785)](){var t=nz;this[t(11782)]=!1;const e=this.viewerCanvas;e&&(e[t(1716)](t(5316),this[t(4618)]),e[t(1716)](t(5319),this[t(4616)]),e[t(1716)](t(5320),this[t(4617)])),window[t(1716)](t(4615),this.keydown),this[t(4862)][t(5350)][t(5336)][t(5326)]=this.tempKey,this[t(4862)].controls[t(477)]=this.tempArrowKeys,this.textInput&&this[t(12177)][t(1204)](),this.textInput=void 0,this.textInitialPosition=void 0,this[t(11775)]=!1,this.selectedShape=void 0,this[t(12171)]=[],this[t(12174)]=!1,this[t(12173)]=void 0}[nz(12192)](){return this.type}[nz(12193)](t){var e=nz;this.type=t,this[e(12175)]()}[nz(3416)](t){this[nz(3124)]=t}[nz(12194)](){return this[nz(3124)]}setLineColor(t){this.lineColor=t}getLineColor(){return this[nz(4822)]}setFillColor(t){this[nz(4823)]=t}[nz(12195)](){return this[nz(4823)]}[nz(12161)](t){this.fontSize=t}[nz(12196)](){return this.fontSize}[nz(11786)](t){var e=nz;const n=new Vector3,r=CoordinateConversionUtils[e(4331)](t,this.camera,this[e(12191)]);this.raycaster[e(4112)](r,this[e(3045)]);const i=this[e(4862)][e(4758)],s=this.raycaster[e(4114)](this[e(4862)][e(5655)]||i)||[];return s.length>0&&n.copy(s[0].point),n}[nz(12172)](t){var e=nz;const n=CoordinateConversionUtils[e(4324)](t,this[e(12191)]);return this[e(11786)](n)}[nz(12184)](){return!!this.initialDataForEditing}[nz(12197)](t){var e=nz;this.undoRedoHelper[e(11894)]("Update",{from:this[e(12185)],to:t[e(4852)]()}),this[e(12185)]=void 0}[nz(12175)](t){var e=nz;t&&this.undoRedoHelper[e(11894)](e(12163),t.getData()),this[e(1160)]()}cancelDraw(t){var e=nz;t&&this[e(12168)](t,!1),this[e(1160)]()}reset(){var t=nz;this.textInput&&(this[t(12177)][t(590)].display=t(3833),this.textInput.value=""),this[t(12179)]=void 0,this[t(12171)]=[],this[t(12174)]=!1,this[t(12173)]=void 0,this[t(11777)]=void 0,this[t(11778)]=void 0,this[t(2418)]()}[nz(2418)](){var t,e=nz;null==(t=this[e(5654)])||t[e(2418)]()}addMarkup(t,e=!0){var n=nz;this[n(11821)][n(4846)](t),this[n(2418)](),e&&this[n(11919)].addRecord("Add",t[n(4852)]())}[nz(12166)](t,e,n=!0){var r=nz;this[r(11821)].updateDrawable(t,e),this[r(2418)](),n&&this[r(11919)][r(11894)]("Update",t[r(4852)]())}removeMarkup(t,e=!0){var n=nz;this[n(11821)].removeDrawable(t),this[n(2418)](),e&&this[n(11919)].addRecord(n(12198),t[n(4852)]())}[nz(12199)](t,e=!0){var n=nz;const r=this.getMarkupById(t);this[n(11821)][n(4849)](r),this.render(),e&&this[n(11919)][n(11894)](n(12198),r.getData())}[nz(12167)](t){return CanvasRender[nz(4854)](t)}[nz(12164)](t){var e=nz;return this[e(11821)][e(4850)](t)}[nz(12200)](){var t=nz;return this[t(11821)][t(11923)]()}setMarkupData(t){var e=nz;this[e(11821)].clear(),this.drawableList[e(4853)](t),this[e(2418)]()}[nz(12181)](){var t=nz;return[t(12156),t(5269)].includes(this.type)}[nz(12182)](){var t=nz;return["DotMarkup"][t(667)](this[t(452)])}[nz(12178)](){var t=nz;return[t(5277)].includes(this[t(452)])}[nz(12186)](){var t=nz;return[t(5278),"RectMarkup","CloudRectMarkup",t(5268),t(5274),t(5267),t(5272)][t(667)](this.type)}drawShape(t,e){var n=nz;const r=[[t.x,t.y]];return e&&r[n(565)]([e.x,e.y]),CanvasRender.createDrawable({id:CommonUtils[n(4307)](),lineWidth:this[n(3124)],lineColor:this[n(4822)],fillColor:this[n(4823)],type:this[n(452)],points:r})}[nz(12187)](t){var e=nz;return CanvasRender[e(4854)]({id:CommonUtils.guid(),lineWidth:this[e(3124)],lineColor:this[e(4822)],fillColor:this[e(4823)],type:this[e(452)],points:t[e(679)]((t=>[t.x,t.y]))})}[nz(11546)](t,e){var n=nz;return CanvasRender[n(4854)]({id:CommonUtils.guid(),lineWidth:this[n(3124)],lineColor:this[n(4822)],fillColor:this.fillColor,fontSize:this.fontSize*this[n(5654)][n(4865)](1,this[n(3045)]),type:this[n(452)],text:e,points:[[t.x,t.y]]})}[nz(12180)](t,e){var n,r=nz;if(!this[r(12177)]){const t=document[r(538)](r(12201));let e;t[r(590)][r(5651)]=r(12202)+this.lineColor,t[r(2334)](r(1131),r(1714)),t[r(12203)]=e=>{var n=r;if(e[n(447)]===n(4620)){const e=parseInt(t[n(590)][n(1e3)]);t.style.height=e+this[n(12157)]+"px"}this.isDrawing=!0},t[r(12204)]=t=>{var n,i=r;const s=t.target[i(439)],a=(null==(n=this[i(5654)])?void 0:n.measureTextLength(s,this[i(12157)]+i(11867)))||0;a>50&&(e&&clearTimeout(e),e=setTimeout((()=>{t.target.style.width=a+4+"px"}),0))},t[r(12205)]=()=>{},t[r(12206)]=t=>{var e=r;const n=t[e(573)][e(439)];if(n.length>0&&this[e(12179)]){const t=this[e(12173)]=this[e(11546)](this[e(12179)],n);t[e(4827)](this[e(5654)][e(4865)](1,this[e(3045)])),this.addMarkup(t,!1),this[e(12175)](this[e(12173)])}},null==(n=this[r(4862)][r(4863)])||n[r(591)](t),this[r(12177)]=t}setTimeout((()=>{var t=r;this.textInput[t(2393)]()}),0),this[r(12177)][r(590)][r(999)]="50px",this[r(12177)][r(590)][r(1e3)]=this[r(12157)]+"px",this[r(12177)][r(590)][r(12207)]=this[r(12157)]+"px",this[r(12177)][r(590)].fontSize=this[r(12157)]+"px",this.textInput[r(590)][r(2231)]=this[r(4822)],this[r(12177)].style[r(3368)]=r(11795),this.textInput[r(590)][r(683)]=t+4+"px",this.textInput[r(590)][r(2651)]=e-this[r(12157)]+"px"}[nz(11895)](){var t=nz;this[t(11919)][t(11895)]()}redo(){var t=nz;this[t(11919)][t(11901)]()}clearUndoRedo(){var t=nz;this[t(11919)][t(750)]()}destroy(){var t=nz;this[t(11785)](),this[t(11287)]()}},ShxFontLoader=class extends FontLoader{constructor(t){super(t)}load(t,e,n,r){var i=nz;!Array[i(468)](t)&&(t=[t]);const s=[];for(let e=0;e{const n=this.parse(t);e&&e(n)}))[i(821)]((t=>{r&&r(t)}))}[nz(11341)](t,e){return __async(this,null,(function*(){return new Promise(((n,r)=>{var i=f;const s=new FileLoader(this[i(3749)]);s[i(3784)](i(3773)),s[i(1212)](t,(e=>{n({url:t,arrayBuffer:e})}),e,(t=>{r(t)}))}))}))}[nz(3808)](t,e){return __async(this,null,(function*(){var n=f;!Array[n(468)](t)&&(t=[t]);return(yield ShxFont[n(11351)](t))?Promise[n(440)](new ShxFont):new Promise(((r,i)=>{this[n(1212)](t,r,e,i)}))}))}[nz(1087)](t){return new ShxFont(t)}static[nz(12208)](t){var e,n=nz;return(null==(e=t[n(465)](".")[n(1161)]())?void 0:e[n(570)]())===n(12209)}},CSS2DObjectUtils=class{static[nz(12210)](t){var e=nz;const n=new CSS2DObject(t);return t[e(6284)].objectId=n.id[e(526)](),n}static[nz(12211)](t=12){var e=nz;const n=document[e(538)](e(539)),r=n[e(590)];return r.width=t+"px",r[e(1e3)]=t+"px",r.opacity=e(12212),r[e(6338)]=e(10859),r.top=-t/2+"px",r.left=-t/2+"px",r[e(4250)]="#ffffff",r[e(12213)]=e(12214),r.borderRadius=e(12215),this[e(12210)](n)}static[nz(12216)](t){var e=nz;if(t){const n=document[e(538)](e(539)),r=n[e(590)];return r[e(2651)]=e(4874),r[e(683)]=e(4874),n.innerHTML=t,this[e(12210)](n)}return this[e(12211)]()}static[nz(4287)](t,e=""){var n=nz;const r=document[n(538)](n(539));if(r[n(5260)]=t,e)r[n(4871)][n(747)](e);else{const t=r.style;t.padding=n(12217),t[n(2231)]=n(12218),t[n(12157)]=n(6611),t[n(2065)]=n(4873),t[n(4250)]=n(12219),t.borderRadius="12px",t[n(6338)]=n(10859),t[n(2651)]=n(4874),t[n(683)]=n(4874)}return this[n(12210)](r)}static[nz(12220)](t){var e=nz;if(null!=t.dataset[e(4689)])return parseInt(t[e(6284)][e(4689)]);const n=t[e(7057)];return!n||n instanceof HTMLBodyElement?void 0:this[e(12220)](n)}},SectionUtils=class{static[nz(12221)](t,e,n=!1,r=!1){var i=nz;const s=n&&t.clippingPlanes?t[i(2301)]:[];s.push(...e),t[i(2301)]=s,t[i(2210)]=r}static[nz(12222)](t){t&&t.traverse((t=>{var e=f;const n=t[e(2178)];Array.isArray(n)?n[e(604)]((t=>{t[e(2301)]=void 0})):n&&(n[e(2301)]=void 0)}))}static[nz(12223)](t,e,n=!1,r=!1){var i=nz;t&&t[i(2152)]((t=>{var s=i;const a=t[s(2178)];Array[s(468)](a)?a[s(604)]((t=>{SectionUtils[s(12221)](t,e,n,r)})):a&&SectionUtils[s(12221)](a,e,n,r)}))}static[nz(12224)](t){var e=nz;const n=t.min,r=t[e(486)];return[new Plane(new Vector3(0,-1,0),r.y),new Plane(new Vector3(0,1,0),-n.y),new Plane(new Vector3(1,0,0),-n.x),new Plane(new Vector3(-1,0,0),r.x)]}static[nz(12225)](t,e=!0){var n=nz;const r=t[n(449)];if(r<2)return;const i=[];for(let s=0;s{var t,n=e;const r=null==(t=this.renderer)?void 0:t[n(5280)];r&&r[n(7057)]&&this[n(6688)](r.parentElement[n(5322)],r[n(7057)][n(4809)])},this[e(5656)]=(t=1e3)=>{var n=e;this[n(11987)]=!0,this[n(11986)]&&(this[n(11992)]&&this.raf.clearTimeout(this[n(11992)]),this[n(11992)]=this[n(11986)][n(1039)]((()=>{this[n(11987)]=!1}),t))},this[e(12235)]=0,this[e(12236)]=!1,this.viewerCfg=t,this[e(12001)](),this.init(),this[e(6932)](),this[e(5656)](),this[e(12005)](),log[e(1175)](e(12237)+(Date.now()-this[e(11358)])/1e3+"s")}init(){var t=nz;const e=this[t(5647)];this[t(12006)](),this[t(6931)](),this[t(6930)](),this[t(12238)](),this[t(12007)](),this.initControls(),this[t(11913)](),this[t(12239)](),this[t(12049)](),!0===e[t(12011)]&&(this[t(12012)]=this.initAxes()),!0===e[t(12240)]&&(this[t(4024)]=this[t(12057)]()),e[t(12014)]&&(this[t(5251)]=this[t(12015)]()),e.enableBottomBar&&(this[t(6276)]=this[t(12016)]()),e[t(12241)]&&(this[t(12242)]=this[t(12243)]()),this[t(12244)]=e.enableSelection}[nz(6931)](){var t=nz;const e=new Scene;e[t(2166)]=new Color(2172976),e.matrixAutoUpdate=matrixAutoUpdate,e.matrixWorldAutoUpdate=!1,this[t(4758)]=e}[nz(6930)](){var t,e=nz;this.renderer=new WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1}),this.renderer.setPixelRatio(window[e(4876)]),this[e(4885)][e(1996)](this[e(999)],this[e(1e3)]),this[e(4885)][e(3403)](11119017,1),this.renderer[e(3099)]=!0,this[e(4885)][e(5280)][e(4871)].add(e(12245)),null==(t=this[e(4863)])||t[e(591)](this[e(4885)][e(5280)]),CommonUtils[e(4322)](this.renderer[e(1027)]()),DXFLoader[e(11599)]=this[e(4885)][e(3304)][e(11599)]-20,this.enableOverlayRenderer&&(this.overlayRender=new CanvasRender(this))}initCSS2DRenderer(){var t,e=nz;const n=new CSS2DRenderer;n[e(1996)](this[e(999)],this[e(1e3)]),n[e(5280)][e(590)][e(1e3)]="0",n[e(5280)][e(590)].width="0",n[e(5280)][e(590)][e(2065)]=e(4873),n.domElement[e(590)][e(2651)]="0",n[e(5280)].style[e(683)]="0",n[e(5280)][e(590)].overflow=e(2122),n[e(5280)][e(4871)][e(747)](e(12246)),null==(t=this[e(4863)])||t[e(591)](n[e(5280)]),this.css2dRenderer=n}[nz(12007)](){var t=nz;if(!this.scene)return;const e=new OrthographicCamera(-this[t(999)]/2,this[t(999)]/2,this[t(1e3)]/2,-this.height/2,.1,1e5);e[t(2160)].enable(layerForNonSnapableObjects),e[t(2065)][t(540)](0,0,this[t(12226)]),e[t(2397)]=10,e.updateProjectionMatrix(),this[t(4758)][t(747)](e),this[t(3045)]=e}[nz(12008)](){var t=nz;const e=this[t(3045)];if(!this[t(4885)]||!e)return;const n=new OrbitControls(e,this[t(4885)][t(5280)]);n[t(5284)]=!1,n[t(5330)]=!1,n.dampingFactor=.5,n.zoomSpeed=6,n[t(5286)]=!1,n.enabled=!0,n[t(5291)]=10,n[t(5336)]={LEFT:MOUSE.PAN,MIDDLE:MOUSE[t(5300)],RIGHT:MOUSE[t(5300)]},n[t(5309)](document[t(1072)]),n[t(1067)](),this[t(5350)]=n,n.addEventListener("change",this[t(12031)](this)),n[t(808)]("end",this[t(12247)](this))}[nz(12031)](t){return()=>{t.enableRender()}}[nz(12247)](t){return()=>{t[f(5656)]()}}[nz(12006)](){var t,e=nz;if(!this[e(5647)][e(12046)])return;const n=document[e(538)]("div");n.classList[e(747)](e(12047));const r=document[e(538)](e(539));r[e(4871)][e(747)](ICON_FONT_CLASS,"icon-loading"),n[e(6267)](r),null==(t=this.widgetContainer)||t[e(591)](n),this[e(12048)]=n,this[e(12132)](this[e(4669)]>0)}initEvents(){var t=nz;const e=this[t(4885)];if(!e||!this[t(3045)]||!this[t(5350)])return;let n=-1,r=-1;e[t(5280)][t(808)](t(5316),(i=>{var s=t;n=i.x,r=i.y,this[s(6453)]=!1,i[s(5335)]===MOUSE[s(5337)]&&(e.domElement[s(590)].cursor="move")})),e[t(5280)][t(808)](t(5319),(i=>{var s=t;if(n>=0&&r>=0){const t=5;(Math[s(694)](i.x-n)>t||Math[s(694)](i.y-r)>t)&&(this[s(6453)]=!0,e[s(5280)][s(590)].cursor=s(3254))}})),e.domElement[t(808)](t(5320),(i=>{var s=t;!this[s(6453)]&&!this[s(12042)]&&i.button===MOUSE[s(5326)]&&setTimeout((()=>{this[s(12035)](i)}),200),this.mouseDoubleClicked&&setTimeout((()=>{this[s(12042)]=!1}),200),n=-1,r=-1,e.domElement[s(590)].cursor=s(6339)})),e[t(5280)].addEventListener("dblclick",(()=>{var e=t;this[e(12042)]=!0,this[e(6453)]})),window[t(808)](t(4615),(e=>{var n=t;e[n(6553)]&&e[n(973)]===n(12003)&&this[n(12004)]()})),window[t(808)](t(6688),(()=>{var e,n=t;const r=null==(e=this.renderer)?void 0:e.domElement;r&&r[n(7057)]&&this[n(6688)](r[n(7057)][n(5322)],r[n(7057)][n(4809)])}))}[nz(12239)](){var t=nz;const e=this[t(4885)];if(!e)return;let n=Date[t(802)]();e[t(5280)].addEventListener("wheel",(e=>{var r=t;const i=this[r(3045)],s=this[r(4863)];if(!i||!this[r(5350)])return;e[r(3406)](),e[r(6340)]();let a=this[r(5350)].zoomSpeed;const o=Date.now(),c=o-n;if(c<10)return void log[r(1178)](r(12248));c<30&&(a*=c/30),n=o;const l=Math[r(428)](.95,a),h=i.zoom;let u=e[r(5324)]>0?h*l:h/l;const d=CoordinateConversionUtils[r(4324)](e,s),f=CoordinateConversionUtils[r(4331)](d,i,s),p=new Vector3(f.x,f.y,0),m=p[r(1014)]()[r(2032)](i);u=this[r(12249)](u),i[r(2397)]=Math.max(this.controls.minZoom,Math.min(this[r(5350)][r(5283)],u)),i.updateProjectionMatrix();const v=p[r(1014)]()[r(2032)](i),_=tempVec33[r(540)](0,0,0);_[r(1872)](v,m),_.z=0,this[r(12250)](),i[r(2065)][r(909)](_),this[r(5350)].target[r(909)](_),this.controls.update()}))}[nz(12049)](){var t=nz;this.scene&&this[t(4885)]&&this[t(3045)]&&(this.renderer.domElement[t(590)][t(12054)]="0")}[nz(12013)](){var t,e=nz;const n=document.createElement(e(539));n.classList[e(747)](e(12055));const r=new CoordinateAxesViewport(n,this.camera,!0);return null==(t=this.widgetContainer)||t[e(6267)](n),r}[nz(12057)](){var t,e=nz;const n=stats_module_default();n[e(2715)](0);const r=document[e(538)](e(539));return r.classList[e(747)](e(12058)),r.appendChild(n.domElement),n[e(5280)][e(590)].position=e(4873),null==(t=this[e(5233)])||t[e(6267)](r),n}[nz(12251)](){var t=nz;!this[t(4024)]&&(this.stats=this[t(12057)]()),this[t(4024)].showPanel(0)}[nz(6279)](){var t=nz;this[t(4024)]&&this.stats[t(12252)](-1)}[nz(12015)](){var t=nz;const e=this[t(5647)];return new Toolbar2(this,(0,import_lodash9[t(2351)])(DEFAULT_DXFVIEWER_TOOLBAR_CONFIG,e[t(12059)]))}[nz(12016)](){return new BottomBar(this)}[nz(12243)](){return new ProgressBar(this[nz(5233)])}showLayoutBar(){var t,e=nz;null==(t=this[e(12253)])||t[e(6297)]()}[nz(12254)](){var t,e=nz;null==(t=this.dxfLayoutBar)||t[e(6314)]()}animate(){var t,e,n,r,i,s=nz;requestAnimationFrame(this.animate[s(511)](this)),this[s(4758)]&&this.camera&&this.renderEnabled&&(DXFLoader.resolutionUniform[s(439)][s(540)](this.width,this[s(1e3)]),null==(t=this[s(4885)])||t[s(2418)](this[s(4758)],this[s(3045)]),this[s(12255)]&&this[s(12255)].children.length>0&&(null==(e=this[s(6933)])||e.render(this[s(4758)],this[s(3045)])),this.dispatchEvent(s(4857))),null==(n=this[s(5350)])||n[s(1067)](),null==(r=this[s(4024)])||r[s(1067)](),this[s(12256)].update(),null==(i=this[s(6276)])||i[s(1067)]()}getFps(){var t=nz;return this[t(12256)][t(3718)]}is3d(){return!1}[nz(1725)](){var t,e,n,r,i=nz;DXFLoader.abortJobs=!0,this[i(12253)]&&(this.dxfLayoutBar.destroy(),this[i(12253)]=void 0),null==(t=this[i(12043)])||t.destroy(),this[i(12043)]=void 0,null==(e=this[i(12257)])||e[i(1725)](),this[i(12257)]=void 0,null==(n=this.zoomToRect)||n[i(1725)](),this.zoomToRect=void 0,this[i(12230)]={},this[i(12233)]={},this[i(12258)]=void 0,this.changes={},Object[i(477)](this[i(6909)])[i(604)]((t=>{delete this[i(6909)][t]})),this.loadedModels={},this[i(6933)]&&(null==(r=this[i(4863)])||r[i(809)](this[i(6933)][i(5280)]),this[i(6933)]=void 0),this[i(4024)]=void 0,this[i(4864)]=void 0,this[i(6476)]=void 0,this[i(11986)]&&(this[i(11992)]&&this[i(11986)][i(1357)](this[i(11992)]),this[i(11986)]=void 0),this[i(12019)]&&(this.contextMenu[i(1725)](),this[i(12019)]=void 0),this[i(12012)]&&(this[i(12012)].dispose(),this[i(12012)]=void 0),this[i(5251)]&&(this[i(5251)][i(1725)](),this[i(5251)]=void 0),this[i(12048)]&&(this[i(12048)][i(1204)](),this.spinner=void 0),this[i(6276)]=void 0,this[i(904)]=void 0,window.removeEventListener(i(6688),this[i(6701)]),super[i(1725)]()}[nz(6778)](t,e){return __async(this,null,(function*(){var n,r,i=f;this[i(12235)]++,this[i(11358)]=Date.now(),this[i(12001)]();const s=t[i(6777)]||t[i(592)];!this.masterModelId&&(this[i(12228)]=s);const a=t[i(11359)]||this[i(12228)]!==s;!1===t[i(11359)]&&a&&log[i(1176)]("[DxfViewer] Paper space will be ignored for '"+s+"' although 'ignorePaperSpace' is false!"),CommonUtils[i(11465)](i(12259));const o=new LoadingHelper;o.setFont(this[i(904)]);const c=s,l=this.translate(i(12260)),h=t=>{var n,r=i;null==(n=this[r(12242)])||n[r(11727)](c,l,t),e&&e(new ProgressEvent(r(12261),{loaded:t,total:100}))},u=(t,n,r)=>{var s,a=i;let o=100*t[a(5078)]/t.total;o=o*(r-n)/100+n,null==(s=this[a(12242)])||s[a(11727)](c,l,o),e&&e(new ProgressEvent(a(12261),{loaded:o,total:100}))};null==(n=this[i(12242)])||n[i(12144)](c),h(0);const d=this.viewerCfg,p=yield o[i(11748)](t[i(592)],t[i(6777)],(t=>u(t,0,90)),void 0,a,d[i(11369)]).finally((()=>{var t=i;this[t(12235)]--,0===this[t(12235)]&&this.font.releaseFontData&&this[t(904)][t(11306)]()}));if(log[i(1175)](i(12262)+t.src+"' in "+(Date[i(802)]()-this[i(11358)])/1e3+i(11995)),DXFLoader[i(11386)]&&Promise[i(831)](i(12263)),0===p[i(11455)][i(1602)][i(449)]){const e=i(12264)+t.src;return log[i(1176)](e),this[i(12005)](),Promise[i(831)](e)}const m=p[i(11455)];m[i(542)]=s;const v=this[i(12265)](p);if(this[i(12228)]===t.modelId&&(this[i(12234)]=v),log[i(1175)](i(12266)+t[i(592)]+i(12267)+v+"'"),v){let e=1;this[i(12234)]&&v!==this[i(12234)]&&(e=unitScaleConversion(v,this.units)),t[i(1901)]?t.scale=[t[i(1901)][0]*e,t[i(1901)][0]*e,t[i(1901)][0]*e]:t.scale=[e,e,e]}if(t[i(1963)]&&16===t[i(1963)].length){const e=new Matrix4;e[i(1874)]=t.matrix,m[i(2028)](e)}else{const e=t[i(2065)]||[0,0,0],n=t[i(1961)]||[0,0,0],r=t.scale||[1,1,1];m.position[i(540)](e[0],e[1],e[2]),m[i(1961)][i(540)](n[0]*Math.PI/180,n[1]*Math.PI/180,n[2]*Math.PI/180),m[i(1901)][i(540)](r[0],r[1],r[2])}return this[i(11996)](m,t,p),CommonUtils[i(11465)]("After addLoadedModelToScene"),log[i(1175)]("[DxfViewer] Added '"+t.src+i(12090)+(Date[i(802)]()-this[i(11358)])/1e3+"s"),d[i(12268)]&&!this.dxfLayoutBar&&this[i(12228)]===s&&(this.dxfLayoutBar=new DxfLayoutBar(this)),this[i(12005)](),h(100),null==(r=this[i(12242)])||r[i(12147)](c),Promise.resolve()}))}unloadDxf(){throw new Error(nz(12269))}[nz(12270)](){return this[nz(12236)]}[nz(1218)](t,e,n){return __async(this,null,(function*(){var r,i,s,a,o,c=f;const{src:l,modelId:h}=t,{src:u}=e;if(this.compareMode)return Promise[c(831)](c(12271));if(this.masterModelId||Object.keys(this[c(6909)])[c(449)]>0)return Promise[c(831)]("[DxfViewer] Shouldn't load anything else before compare!");if(this[c(12236)]=!0,this[c(11358)]=Date[c(802)](),this[c(12001)](),!this[c(904)])return Promise[c(831)](c(12272));const d=new DXFLoader(!0);d[c(11387)](this[c(904)]),this.font instanceof ShxFont&&this[c(904)][c(11353)]&&(yield this.font.getFontData());const p=l+u,m=this[c(2078)](c(12273)),v=t=>{var e,r=c;null==(e=this.loadingProgressBar)||e.updateProgress(p,m,t),n&&n(new ProgressEvent(r(12274),{loaded:t,total:100}))},_=(t,e,r)=>{var i,s=c;let a=100*t[s(5078)]/t.total;a=a*(r-e)/100+e,null==(i=this[s(12242)])||i[s(11727)](p,m,a),n&&n(new ProgressEvent(s(12274),{loaded:a,total:100}))};CommonUtils[c(11465)](c(12275)),this.masterModelId=h||l,this.loadingDxfCount+=2,null==(r=this[c(12242)])||r[c(12144)](p),v(0);let g=Date.now();const y=yield d[c(1087)](l,(t=>_(t,0,15))),E=yield d[c(1087)](u,(t=>_(t,15,30))),[T,I]=yield Promise[c(11765)]([y,E]);if(T[c(1637)]===c(845))return Promise[c(831)](c(12276)+l);if(I[c(1637)]===c(845))return Promise[c(831)](c(12276)+u);if(log[c(1175)](c(12277)+(Date[c(802)]()-g)/1e3+"s"),DXFLoader[c(11386)])return Promise[c(831)](c(12278));const z=T[c(439)],S=I[c(439)];g=Date.now();const x=yield new DxfCompare(z,S)[c(1218)]((t=>_(t,30,60)));if(log[c(1175)](c(12279)+(Date[c(802)]()-g)/1e3+"s"),log[c(1178)](c(12280),x),DXFLoader[c(11386)])return Promise[c(831)](c(12281));CommonUtils[c(11465)]("After getting the comparison results"),g=Date[c(802)](),yield d[c(11453)](z,S,x,(t=>_(t,60,95))),CommonUtils[c(11465)](c(12282)),null==(i=this.font)||i[c(11306)](),this[c(11641)]=x,log.info(c(12283)+(Date[c(802)]()-g)/1e3+"s");const b=z,w=S;if(this[c(12235)]-=2,this[c(12005)](),!Object[c(477)](x)[c(449)]&&log[c(1175)](c(12284)),0===(null==(s=b[c(11455)])?void 0:s[c(1602)][c(449)])&&0===(null==(a=w.threejsObject)?void 0:a.children[c(449)])){const t=c(12264)+l+c(12285)+u;return log[c(1176)](t),Promise[c(831)](t)}const C=b[c(11455)],M=w[c(11455)];return C[c(542)]=l,M[c(542)]=u,g=Date.now(),this[c(11996)](C,__spreadValues({},t),b),CommonUtils[c(11465)]("After adding first loaded Model to scene"),v(95),this.addLoadedModelToScene(M,__spreadValues({},e),w),CommonUtils.printMemory("After adding second loaded Model to scene"),log[c(1175)]("[DxfViewer] Added compared objects to scene in "+(Date[c(802)]()-g)/1e3+"s"),log[c(1175)](c(12286)+l+"' and '"+u+"' is completed in "+(Date[c(802)]()-this[c(11358)])/1e3+c(12287)),v(100),null==(o=this[c(12242)])||o[c(12147)](p),Promise.resolve()}))}getEntitiesCount(){var t=nz;let e=0;return Object[t(673)](this.loadedModels)[t(604)]((n=>{var r;e+=(null==(r=n[t(12288)])?void 0:r.loadedEntityCount)||0})),e}getLoadedDxfModelIds(){var t=nz;return Object[t(477)](this[t(6909)])}[nz(12289)](){var t=nz;const e=[];return this[t(12290)]()[t(604)]((n=>{var r=t;e[r(565)](n[r(10908)])})),e}[nz(12290)](){var t=nz;const e=[],n=this[t(6909)][this[t(12228)]];if(n){const r=n.dxfData,i=null==r?void 0:r.objects[t(11135)];null==i||i[t(604)]((t=>{e.push(t)}))}return e}[nz(12291)](t){var e,n=nz;const r=this.loadedModels[t];if(!r)return void log[n(1176)](n(12292)+t+"'!");this[n(12001)](),this[n(12293)](DXFLoader[n(11400)],t);const i=null==(e=r[n(12288)])?void 0:e[n(11455)],s=null==i?void 0:i.children[n(932)]((t=>t.name===DXFLoader.MODEL_LAYOUT_NAME));s&&(s.traverse((t=>{var e=n;this[e(12294)](t,r[e(12288)])})),this[n(12295)](s)),this[n(12296)](this[n(12232)]),this.decreaseJobCount()}[nz(12139)](t){var e,n,r,i=nz;if(this[i(12001)](),0==t[i(449)])return log[i(1176)]("[DxfViewer] layout name is empty !"),void this[i(12005)]();if(t===this[i(12232)])return void this[i(12005)]();const s=Date[i(802)](),a=this[i(3045)],o=this[i(12297)](t);if(!o)return log[i(1176)](i(12298)+t+" !"),void this.decreaseJobCount();const c=this[i(6909)][this[i(12228)]];if(!c)return log.warn(i(12299)+this[i(12228)]+"'!"),void this[i(12005)]();if(this[i(12258)]=void 0,this[i(12232)]){const t=this[i(12300)]();!t[i(12301)]&&(t[i(12301)]=new Vector3),null==(e=this[i(3045)])||e[i(2148)](t[i(12301)]),t[i(12231)]=a[i(2397)]}if(!(t=>{const e=this[i(12233)][t];return!!(null==e?void 0:e.lastCameraZoom)})(t)){this[i(12293)](t,this[i(12228)]);const e=this[i(12302)](o);let s=[];e[i(449)]>0&&(s=e[0][i(11118)]);const a=t!==DXFLoader[i(11400)],l=null==(n=c[i(12288)])?void 0:n.threejsObject,h=null==l?void 0:l[i(1602)][i(932)]((e=>e.name===t));if(h){const e=[],n=null==(r=c[i(12288)])?void 0:r[i(11456)];h[i(2152)]((r=>{var o=i;this[o(12294)](r,c[o(12288)]);const l=r;if(a&&l[o(2178)]&&l[o(2063)]){const r=l[o(1968)][o(4726)];if(!this[o(12303)](c[o(12288)],r,s))return;e[o(565)](l);let i=-1;n&&n[r]&&(i=n[r][o(564)](l),i>=0&&n[r][o(690)](i,1)),i<0&&log.warn(o(12304)+this[o(12228)]+o(12305)+r+o(12306)+t+"'")}})),e[i(604)]((t=>{t.removeFromParent()}))}const u=this[i(12307)](o);log[i(1178)](i(12308),t,i(12309),u),console[i(3671)](i(12310)),u[i(604)]((e=>{var n=i;this[n(12311)](t,e,c[n(12288)])})),console[i(12312)](i(12310)),t!==DXFLoader[i(11400)]&&this.switchTransformMs(DXFLoader[i(11400)],this.masterModelId),t!==DXFLoader[i(11400)]&&h&&this[i(12313)](h),h&&this[i(12295)](h)}let l=this[i(12300)]();this[i(12043)]&&(l.measurementData=this.measurementManager.getMeasurementsData()||[],l[i(12314)][i(604)]((t=>t[i(10908)]=this[i(12232)])),this.setMeasurementsVisibility(!1),this[i(12043)].clearUndoRedo()),this[i(12257)]&&(l[i(12315)]=this[i(12257)][i(12200)]()||[],l[i(12315)][i(604)]((t=>t[i(10908)]=this[i(12232)])),this[i(12189)](!1),this.markupManager[i(11930)]()),this.showLayoutObjects(t),this[i(12232)]=t,l=this.getActiveLayoutInfo();const h=l[i(12314)];this.measurementManager&&(this[i(12043)][i(11924)](h||[]),this[i(11927)](!0));const u=l.markupData;if(this[i(12257)]&&(this[i(12257)][i(12316)](u||[]),this[i(12189)](!0)),l.lastCameraPosition)this.goTo(l.lastCameraPosition,l[i(12231)],!1);else{let t=this[i(12317)](o);if(t){const e=1e-16,n=1e16,r=t[i(486)].x-t[i(563)].x,s=t[i(486)].y-t[i(563)].y;(rn||s>n)&&(log[i(1176)](i(12318)+t[i(486)][i(1499)]()+i(12319)+t[i(563)][i(1499)]()+i(12320)),t=this[i(2067)]()),l.bbox=t,this.activeLayoutName!==DXFLoader.MODEL_LAYOUT_NAME&&this[i(12321)](),this[i(11788)](t)}}this[i(827)]("LayoutChanged"),CommonUtils[i(11465)](i(12322)+this.activeLayoutName+"'"),this.enableRender(),this[i(12005)](),log[i(1175)]("[DxfViewer] Activated layout '"+t+i(11625)+(Date[i(802)]()-s)/1e3+"s")}[nz(12295)](t){var e=nz;const n=t[e(1602)][e(449)];for(let r=0;r0?n[e(1968)][e(2066)]=SceneUtils[e(2077)](n):n[e(1968)].boundingBox&&delete n.userData[e(2066)]}}getActiveLayoutName(){return this[nz(12232)]}[nz(12323)](){var t,e,n=nz;const r=[];if(this.masterModelId){const e=this[n(6909)][this[n(12228)]],i=null==(t=null==e?void 0:e[n(12288)])?void 0:t[n(11172)][n(11187)][n(2160)];i&&r[n(565)]({modelId:this[n(12228)],layers:i})}for(const[t,i]of Object[n(674)](this[n(6909)])){if(t===this[n(12228)])continue;const s=null==(e=null==i?void 0:i[n(12288)])?void 0:e[n(11172)][n(11187)][n(2160)];s&&r.push({modelId:t,layers:s})}return r}[nz(12324)](t,e){var n=nz;const r=this[n(6909)][t];if(!r||!r[n(12288)])throw new Error(n(12325)+t+"'!");r[n(12288)].threejsObject[n(2122)]=e,this.enableRender()}[nz(12326)](t,e,n){var r=nz;const i=this[r(3045)];n=n||this[r(12228)];const s=this[r(6909)][n];if(!s)throw new Error("Failed to find layer by modelId '"+n+"'!");const a=s.dxfData,o=null==a?void 0:a[r(11172)].layer[r(2160)][t];o?o[r(2122)]=e:log[r(1176)]("[DxfViewer] Layer '"+t+r(12327));const c=null==a?void 0:a[r(11456)][t];if(c){const t=i.zoom;c.forEach((n=>{var i=r;!(this[i(12229)]&&e&&t&&n[i(1968)][i(12328)]&&t{var n=r;let i=t;i.material&&MaterialUtils.setMaterialColor(i[n(2178)],new Color(e))})):log[r(1176)](r(12329)+t+"'"),this.enableRender()}[nz(11387)](t){return __async(this,null,(function*(){var e=f;console[e(3671)]("[DxfViewer] Font file(s) load time"),ShxFontLoader[e(12208)](t[0])?this[e(904)]=yield(new ShxFontLoader)[e(3808)](t):(t[e(449)]>1&&log[e(1176)]("[DxfViewer] Only support 1 typeface font file for now, others will be ignored!"),this.font=yield(new FontLoader)[e(3808)](t[0])),console[e(12312)](e(12333))}))}[nz(12334)](){throw new Error(nz(12269))}setDisplayAreaUnits(){throw new Error("Not implemented yet!")}[nz(12335)](){throw new Error(nz(12269))}[nz(11920)](t){var e=nz;!this.measurementManager&&(this[e(12043)]=new MeasurementManager2(this));this[e(12043)][e(11920)](t),this[e(6486)]()}deactivateMeasurement(){var t,e,n=nz;null==(t=this[n(12043)])||t[n(5659)](),null==(e=this[n(5251)])||e[n(5238)](n(5176),DEFAULT_DXFVIEWER_TOOLBAR_CONFIG[n(5176)])}[nz(11907)](){var t,e=nz;return null==(t=this.measurementManager)?void 0:t[e(11907)]()}[nz(12336)](){var t,e,n=nz;const r=this[n(12300)]();r.measurementData=(null==(t=this[n(12043)])?void 0:t[n(12337)]())||[],r[n(12314)][n(604)]((t=>{var e=n;!t[e(10908)]&&(t[e(10908)]=this.activeLayoutName)}));const i=[];for(const t of Object[n(673)](this[n(12233)]))null==(e=t[n(12314)])||e[n(604)]((t=>i.push(t)));return i}[nz(12338)](t){var e=nz;t[e(604)]((t=>{var n,r=e;const i=t.layoutName||DXFLoader.MODEL_LAYOUT_NAME;null==(n=this[r(12339)](i)[r(12314)])||n[r(565)](t)}));const n=this[e(12300)]();!this[e(12043)]&&(this[e(12043)]=new MeasurementManager2(this));const r=this.measurementManager;n[e(12314)]&&r[e(11924)](n[e(12314)])}selectMeasurement(t){var e=nz;!this[e(12043)]&&(this[e(12043)]=new MeasurementManager2(this));this.measurementManager.selectMeasurementById(t)}unselectMeasurement(){var t=nz;!this.measurementManager&&(this[t(12043)]=new MeasurementManager2(this));this.measurementManager[t(11921)]()}[nz(11909)](t){var e=nz;!this[e(12043)]&&(this.measurementManager=new MeasurementManager2(this));this[e(12043)].removeMeasurementById(t)}[nz(11927)](t){var e=nz;!this.measurementManager&&(this[e(12043)]=new MeasurementManager2(this));this[e(12043)].setMeasurementsVisibility(t)}clearMeasurements(){var t;null==(t=this[nz(12043)])||t.clearMeasurements()}[nz(12340)](t){var e=nz;!this[e(12257)]&&(this[e(12257)]=new MarkupManager2(this)),!this[e(12257)][e(12190)]()&&this.markupManager.activate(),this.markupManager[e(12193)](t),this.clearSelection()}[nz(12341)](){var t=nz;this[t(12257)]&&this[t(12257)][t(11785)]()}[nz(12192)](){var t,e=nz;return null==(t=this.markupManager)?void 0:t[e(12192)]()}setMarkupLineColor(t){var e,n=nz;null==(e=this.markupManager)||e[n(12342)](t)}[nz(12343)](){var t,e=nz;return null==(t=this[e(12257)])?void 0:t[e(12344)]()}[nz(12345)](t){var e,n=nz;null==(e=this[n(12257)])||e[n(4835)](t)}[nz(12346)](){var t;return null==(t=this.markupManager)?void 0:t.getFillColor()}setMarkupLineWidth(t){var e,n=nz;null==(e=this[n(12257)])||e[n(3416)](t)}[nz(12347)](){var t,e=nz;return null==(t=this[e(12257)])?void 0:t[e(12194)]()}[nz(12348)](t){var e,n=nz;null==(e=this[n(12257)])||e[n(12161)](t)}[nz(12349)](){var t;return null==(t=this[nz(12257)])?void 0:t.getFontSize()}getMarkups(){var t,e,n=nz;const r=this.getActiveLayoutInfo();r[n(12315)]=(null==(t=this[n(12257)])?void 0:t[n(12200)]())||[],r.markupData[n(604)]((t=>{var e=n;!t.layoutName&&(t[e(10908)]=this.activeLayoutName)}));const i=[];for(const t of Object[n(673)](this[n(12233)]))null==(e=t[n(12315)])||e[n(604)]((t=>i[n(565)](t)));return i}[nz(12350)](t){var e=nz;t.forEach((t=>{var e,n=f;const r=t[n(10908)]||DXFLoader[n(11400)];null==(e=this[n(12339)](r).markupData)||e[n(565)](t)}));const n=this[e(12300)]();!this[e(12257)]&&(this[e(12257)]=new MarkupManager2(this));const r=this.markupManager;n.markupData&&r[e(12316)](n[e(12315)])}[nz(12189)](t){var e=nz;!this[e(12257)]&&(this[e(12257)]=new MarkupManager2(this));this[e(12257)][e(12189)](t)}removeMarkup(t){var e=nz;!this[e(12257)]&&(this[e(12257)]=new MarkupManager2(this));this[e(12257)].removeMarkupById(t)}[nz(12351)](){var t;null==(t=this.markupManager)||t.clearAll()}addHotpoint(t){var e,n=nz;if(this.hasHotpoint(t[n(12352)]))return void log[n(1176)](n(12353)+t[n(12352)]+"' already exist!");const r=t[n(12354)],i=CSS2DObjectUtils[n(12216)](t[n(12355)]);i[n(2065)][n(540)](r[0]||0,r[1]||0,r[2]||0),i[n(2122)]=!1!==t[n(2122)],i[n(1968)].hotpoint=t,i[n(2142)](!1,!1),!this.hotpointRoot&&(this[n(12255)]=new Group,this[n(12255)][n(1962)]=matrixAutoUpdate,this[n(12255)][n(2156)]=!1,this[n(12255)][n(542)]=n(12356),null==(e=this[n(4758)])||e[n(747)](this[n(12255)])),this[n(12255)][n(747)](i),this[n(5656)]()}[nz(12357)](t){var e,n,r=nz;const i=(null==(e=this.hotpointRoot)?void 0:e[r(1602)])||[];for(let e=0;e{var r,i=n;return(null==(r=e[i(1968)].hotpoint)?void 0:r[i(12352)])===t}))}[nz(12360)](t){var e=nz;const n=this[e(4863)];if(!this[e(3045)]||!this.raycaster||!this.groundPlane)return;const r=CoordinateConversionUtils[e(4324)](t,n),i=CoordinateConversionUtils[e(4331)](r,this[e(3045)],n);this[e(4864)][e(4112)](i,this[e(3045)]),this[e(4864)][e(2160)][e(745)](layerForNonSnapableObjects);const s=this[e(4864)][e(4114)](this.groundPlane,!0);if(s&&s[e(449)]>0){const t=s[0][e(1220)];return{location:[t.x,t.y]}}}activateZoomToRect(){var t=nz;!this[t(12079)]&&(this[t(12079)]=new ZoomToRectHelper(this)),this.zoomToRect.activate()}deactivateZoomToRect(){var t,e=nz;null==(t=this[e(12079)])||t[e(11783)]()}[nz(12297)](t){var e=nz;let n;const r=this[e(12290)]();for(const i of r)if(i[e(10908)]===t){n=i;break}return n}[nz(12300)](){var t=nz;return this[t(12339)](this[t(12232)])}[nz(12361)](t){var e,n,r=nz;const i=this[r(6909)][t],s=null==(e=i[r(12288)])?void 0:e[r(5744)];if(!s)return;const a=s.$ANGDIR,o=this.getDxfUnits(i.dxfData),c=null==(n=i[r(12288)])?void 0:n[r(11172)][r(12362)].viewPorts[r(464)]((t=>{var e=r;return t[e(542)][e(12363)]()===e(12364)}));if(!c)return;const l=new Matrix4,h=DXFLoader[r(11576)](c[0],a),u=new Vector3(c[0].center.x,c[0][r(1960)].y,0)[r(2028)](h);let d=1;this.units&&o!==this.units&&(d=unitScaleConversion(o,this.units)),u[r(1878)](d),l.makeTranslation(u.x,u.y,0),l.multiply((new Matrix4)[r(2100)](MathUtils[r(4473)](c[0].viewTwistAngle))),l.multiply((new Matrix4).makeTranslation(-u.x,-u.y,0)),this[r(6909)][t][r(12365)]=l}[nz(12293)](t,e){var n,r=nz;const i=this[r(6909)][e];if(!i)return void log.warn(r(12366)+e);const s=i[r(12365)];if(tempMatrix4[r(1528)](),!s||s[r(1889)](tempMatrix4))return;const a=null==(n=i.dxfData)?void 0:n[r(11455)],o=null==a?void 0:a[r(1602)][r(932)]((t=>t[r(542)]===DXFLoader[r(11400)]));o&&(t===DXFLoader.MODEL_LAYOUT_NAME?o[r(2028)](s):o[r(2028)](s[r(1014)]()[r(1465)]()),o[r(2155)](!0))}[nz(12317)](t){var e=nz;return t[e(10908)]===DXFLoader.MODEL_LAYOUT_NAME?this[e(12367)]():this[e(12368)](t)}[nz(12367)](){var t,e,n=nz;const r=this[n(6909)][this[n(12228)]],i=null==(t=r[n(12288)])?void 0:t[n(5744)],s=new Vector3,a=new Vector3;if(!i)throw new Error(n(12369)+this.masterModelId+"!");const o=null==(e=r[n(12288)])?void 0:e[n(11172)][n(12362)][n(12370)];let c=i[n(12371)],l=i[n(12372)];const h=i[n(11411)];if(o&&o[n(449)]>0){for(let t=0;t0){const t=a[n(464)]((t=>1===parseInt(t[n(11105)])));let e;e=t[n(449)]>0?t[0]:a[0];const{centerPoint:r,width_paperSpace:h,height_paperSpace:u}=e,d=DXFLoader.getDcs2WcsMatrix(e,l),f=new Vector3(r.x,r.y,0);return f[n(2028)](d),o={x:f.x-h/2,y:f.y-u/2,z:0},c={x:f.x+h/2,y:f.y+u/2,z:0},i.set(o.x,o.y,o.z),s[n(540)](c.x,c.y,c.z),new Box3(i,s)}}showLayoutObjects(t){var e=nz;Object.values(this[e(6909)])[e(604)]((n=>{var r,i=e;let s=0,a=0;const o=null==(r=n[i(12288)])?void 0:r[i(11455)];null==o||o.children[i(604)]((e=>{var n=i;const r=e[n(542)]===t;e[n(2122)]=r,r?s++:a++})),log[i(1178)]("[DxfViewer] showLayoutObjects('"+t+i(12375)+s+i(12376)+a+i(12377)+(null==o?void 0:o.name)+"'")}))}[nz(12302)](t){var e,n=nz;const r=this[n(6909)][this[n(12228)]],i=t[n(10905)],s=null==(e=r.dxfData)?void 0:e[n(11457)][i];return s||[]}setMaterialUniforms(t,e){var n=nz;if(t instanceof ShaderMaterial&&(t[n(2377)][n(11613)]&&(t[n(2377)][n(11613)]=DXFLoader[n(11594)]),t[n(2377)][n(10846)])){1===(null==e?void 0:e[n(5744)].$PSLTSCALE)&&(t[n(2377)][n(10846)]=DXFLoader[n(11593)])}}isLayerFrozenForViewport(t,e,n){var r=nz;if(!t||!e)return!1;const i=t[r(11172)].layer[r(2160)][e];return!!(i&&(1&i[r(7179)])>0)||!(!n||n[r(449)]<=0)&&(i&&n[r(564)](i[r(4969)])>=0)}getFilteredViewports(t){var e=nz;const n=this.getLayoutViewports(t);let r=n.filter((t=>"1"!==t[f(11105)]));return r[e(449)]===n[e(449)]&&(r=n[e(464)](((t,e)=>0!==e))),r}generateObjectsByViewport(t,e,n,r=[]){var i=nz;const s=e;if("1"==e[i(11105)])return;if(!s[i(11580)]||!s[i(11581)])throw new Error("The bbox or matrix is invalid in the viewport!");DXFLoader.transformMatrixUniform={value:s[i(11581)]},DXFLoader.viewportScaleUniform={value:e[i(11115)]/e[i(11579)]};const a=s[i(11580)].clone();a[i(2028)](s[i(11581)][i(1014)]()[i(1465)]()),a[i(563)][i(2022)](-1),a[i(486)][i(2022)](1);const o=this[i(12378)](a);if(0===o.length)return;const c=s.psBBox.min,l=s.psBBox.max,h=new Box2(new Vector2(c.x,c.y),new Vector2(l.x,l.y)),u=SectionUtils[i(12224)](h),d=[],p=t=>{var e=i;return!d[t.id]&&(d[t.id]=t[e(1014)](),this[e(12379)](d[t.id],n),SectionUtils[e(12221)](d[t.id],u)),d[t.id]},m=[...r,...e[i(11118)]||[]];let v;if(t!==DXFLoader[i(11400)]){const t=e;!t[i(12380)]&&(t[i(12380)]=new Set),v=t[i(12380)]}const _=new Group;_[i(542)]=e.viewportId;const g=null==n?void 0:n[i(11456)],y=[];if(o[i(604)]((e=>{var r=i;const s=e[r(1014)]();s.traverse((e=>{var i=r;if(e[i(2178)]&&e.geometry){const r=e[i(1968)][i(4726)];if(this[i(12303)](n,r,m))return void y[i(565)](e);!1!==e[i(1968)][i(11505)]&&(e[i(2122)]=!0),e[i(2178)]=(t=>{if(Array.isArray(t)){const e=[];return t.forEach((t=>{var n=f;const r=p(t);e[n(565)](r)})),e}return p(t)})(e[i(2178)]),null==v||v[i(747)](e),g&&g[r]?g[r][i(565)](e):log[i(1176)](i(12304)+this[i(12228)]+i(12305)+r+i(12306)+t+"'")}})),s[r(1968)][r(2066)]&&(s[r(2122)]=!0,delete s[r(1968)][r(2066)]),_[r(747)](s)})),v&&0===v[i(753)])return;ObjectUtils[i(4713)](y,_);const E=null==n?void 0:n[i(11455)];let T=null==E?void 0:E[i(1602)][i(932)]((e=>e[i(542)]===t));!T&&(T=new Group,ObjectUtils.setSharedVariablesOfObject(T),T[i(542)]=t,null==E||E[i(747)](T)),T[i(747)](_),_.applyMatrix4(s[i(11581)]),_[i(2155)](!0),_[i(2152)]((t=>{ObjectUtils[i(4714)](t),this.addSpatialFilterSection(t,n,!0)}))}[nz(12381)](t,e){const n=e[nz(4232)].SPATIAL_FILTER;if(!n)return;let r;for(const e of n)if(e.handle===t){r=e;break}return r}[nz(12382)](t){var e=nz;let n,r=t;if(r[e(2178)])return Array[e(468)](r.material)?r[e(2178)][0]:r.material;for(let r=0;r0),s=a[r(2210)]),e&&s!==i[r(11555)][0].bReversed)return void log[r(1176)](r(12383));s=i[r(11555)][0][r(11563)];const o=this.generateSectionsBySpatialFilter(i,t[r(2033)]);if(o){const n=t=>{var e=r;let n=0;return t[e(2301)]&&(n=t[e(2301)].length),n+o[e(449)]>DXFLoader[e(11599)]},i=new Set,a=t=>{var a=r;i[a(546)](t.id)||(i[a(747)](t.id),!n(t)&&SectionUtils.setMaterialSection(t,o,e,s))};t[r(2152)]((t=>{var e=r;const n=t[e(2178)];Array[e(468)](n)?n[e(604)]((t=>{a(t)})):n&&a(n)}))}}}[nz(12378)](t){var e,n=nz;const r=[];if(t[n(1213)]())return log[n(1176)]("[DxfViewer] bbox is empty !"),r;const i=null==(e=this[n(6909)][this.masterModelId][n(12288)])?void 0:e.threejsObject,s=null==i?void 0:i[n(1602)][n(932)]((t=>t.name===DXFLoader[n(11400)]));return s&&s[n(1602)][n(604)]((e=>{(e=>{var i=n;const s=SceneUtils[i(2077)](e,!1);t[i(2070)](s)&&r[i(565)](e)})(e)})),r}[nz(12265)](t){var e=nz;if(!t&&Object.keys(this[e(6909)])[e(449)]>0&&(t=this.loadedModels[this.masterModelId][e(12288)]),!t)return e(11617);const n=null==t?void 0:t[e(5744)];if(!n)return log[e(1176)](e(12384)),"Unitless";const r=n[e(12385)];return DXFLoader.getDxfUnits(r)}generateSectionsBySpatialFilter(t,e){var n=nz;const r=t[n(11555)][0];if(r.bConcave)return void log[n(1176)](n(12386));tempMatrix4[n(1867)](e),t[n(11564)]&&tempMatrix4[n(1558)](t[n(11564)]);const i=r[n(11559)],s=[];i[n(604)]((t=>{var e=n;const r=t[e(1014)]()[e(2028)](tempMatrix4);s.push(new Vector2(r.x,r.y))}));const a=ShapeUtils[n(3627)](s),o=!a&&!r[n(11563)]||a&&r[n(11563)];return SectionUtils[n(12225)](s,o)}[nz(11996)](t,e,n){var r=nz;if(!this[r(4758)])return;let i=e[r(6777)]||e[r(592)];if(this.loadedModels[i]){let t=1;for(;this.loadedModels[i+"_"+t];)t++;i=i+"_"+t,log.warn("[DxfViewer] Model '"+i+r(12086))}this[r(6909)][i]={dxfData:n},t[r(1962)]=matrixAutoUpdate,t.updateMatrix(),CommonUtils.printMemory(r(12387)),e.merge&&(DXFLoader[r(2351)](n),CommonUtils.printMemory("After merged")),t[r(2155)](!0),DXFLoader[r(3529)](t),this[r(12361)](i),this.masterModelId===i?this[r(12139)](DXFLoader.MODEL_LAYOUT_NAME):this.handleOverlayDxf(i),log[r(1178)](n),this.scene[r(747)](t);const s=null==n?void 0:n.threejsObject[r(1602)].find((t=>t.name===DXFLoader[r(11400)]));s&&this[r(12313)](s),this[r(12321)](),this[r(12258)]=void 0,this.masterModelId===i?this[r(6845)]():this[r(5656)]()}[nz(6688)](t,e){var n=nz;const r=this[n(3045)];if(r){const i=t||window.innerWidth,s=e||window[n(6387)],a=i/s;r.left=-this[n(1e3)]*a/2,r[n(935)]=this[n(1e3)]*a/2,r[n(2651)]=this[n(1e3)]/2,r[n(2652)]=-this[n(1e3)]/2,r[n(2396)](),this[n(4885)]&&this.renderer.setSize(i,s),this[n(6933)]&&(this[n(6933)][n(1996)](i,s),this[n(6933)].domElement[n(590)][n(999)]="0",this[n(6933)][n(5280)][n(590)][n(1e3)]="0"),this[n(5654)]&&this[n(5654)][n(1996)](i,s)}this.enableRender()}[nz(5657)](){return this[nz(4864)]}[nz(12097)](){var t,e=nz;if(this[e(12258)])return this[e(12258)];const n=Date.now(),r=[];for(const n of Object[e(673)](this.loadedModels)){const i=null==(t=n[e(12288)])?void 0:t[e(11455)],s=i&&i.children[e(932)]((t=>t[e(542)]===this[e(12232)]));s&&s[e(2153)]((t=>{var n=e;ObjectUtils[n(12388)](t)&&r[n(565)](t)}))}return this[e(5655)]&&r[e(565)](this.groundPlane),this[e(12258)]=r,log[e(1178)](e(12389)+r[e(449)]+e(12390)),log[e(1178)](e(12391)+(Date[e(802)]()-n)/1e3+" s"),r}[nz(12392)](t){var e=nz;if(0===this[e(12232)][e(449)]||this[e(12232)]===DXFLoader.MODEL_LAYOUT_NAME)return;const n=this[e(12297)](this[e(12232)]);if(!n)return;const r=n=>{var r=e;return t.xn.max.x||t.yn.max.y},i=this[e(12307)](n);for(let t=0,n=i[e(449)];t{var i=e;r[i(2122)]&&(n.push(r),t[i(747)](r))}))}const i=this[e(12392)](this.raycaster[e(2361)].origin);if(i&&i[e(12380)]){this.getRaycastableObjects().forEach((r=>{var s,a=e;(null==(s=i.associatedLeafObjectSet)?void 0:s[a(546)](r))&&!t[a(546)](r)&&r[a(2122)]&&(n[a(565)](r),t[a(747)](r))})),log[e(1178)](e(12394),i[e(11105)])}else log[e(1178)]("[DxfViewer] getRaycastableObjectsByMouse() from out of viewport");this.groundPlane&&n[e(565)](this.groundPlane)}return log[e(1178)](e(12395)+(Date.now()-i)/1e3+" s"),n}getIntersections(t){var e=nz;this[e(4864)]&&this[e(4864)].layers[e(745)](layerForNonSnapableObjects);const n=this[e(5658)](t);return this[e(4864)]&&this[e(4864)][e(4115)](n,!0)||[]}[nz(12035)](t){var e,n=nz;if(!this[n(12244)])return;if(this[n(12043)]&&this[n(12043)][n(11922)]()||this.markupManager&&this[n(12257)].isMarkupActive())return;const r=this[n(11837)](t);if(r[n(449)]>0){const t=t=>CommonUtils.vectorToString(t);log[n(1178)](n(12396)+t(r[0].point))}const i=r[n(932)]((t=>{var e=n;const r=t[e(469)];return r[e(2122)]&&!1!==r[e(1968)][e(4776)]}));let s=i&&i[n(469)]||void 0;if(r[n(449)]>0&&r[0][n(1220)]){const t=null==(e=this[n(5654)])?void 0:e[n(4882)](r[0][n(1220)],this.raycaster);if(t&&t[n(449)]>0)return this[n(6486)](),t[0][n(1639)]=!0,void(this[n(6476)]=t[0])}this.selectedObject&&this[n(6486)](),s&&this.selectedObject&&this[n(6476)].id===s.id&&(s=void 0),s?this[n(6487)](s):this[n(6486)]()}[nz(6487)](t,e){var n=nz;if(!this[n(12244)])return;const r=t=>{var i=n;if(t.children[i(449)]>0&&t[i(1602)][i(604)]((t=>r(t))),t instanceof Mesh||t instanceof Line){const n=MaterialUtils[i(4643)](t,{depthTest:e});n&&(t.userData[i(4683)]=t[i(2178)],t.material=n)}},i=t=>{var e=n;if(t.children[e(449)]>0&&t[e(1602)][e(604)]((t=>i(t))),(t instanceof Mesh||t instanceof Line)&&t[e(1968)].originalMaterial){const n=t[e(2178)];t[e(2178)]=t[e(1968)][e(4683)],delete t[e(1968)][e(4683)],Array.isArray(n)?n[e(604)]((t=>t[e(1979)]())):n instanceof Material&&n.dispose()}};this[n(6476)]&&(i(this[n(6476)]),this.selectedObject=void 0),t&&(r(t),this.selectedObject=t,t[n(1968)][n(12397)]?log[n(1175)](n(12398),t.userData[n(12397)]):log.info("[DxfViewer] Selected object:",t)),this[n(5656)]()}[nz(6486)](){var t=nz;this.selectedObject&&this.selectedObject instanceof Drawable?this[t(6476)][t(1639)]=!1:this.selectObject(),this[t(6476)]=void 0}[nz(12105)](t){var e=nz;if(!t||0===t[e(449)]||!this[e(3045)])return;const n=new Box3;t[e(604)]((t=>{var r=e;const i=SceneUtils.getBoundingBox(t);!i.isEmpty()&&n[r(1255)](i)})),this[e(11788)](n)}[nz(6478)](t){this[nz(12105)]([t])}[nz(12044)](){var t=nz;if(!this[t(6476)])return;let e=this[t(6476)];(e instanceof InstancedMesh&&e[t(1968)].clonedMesh||e instanceof Mesh&&MergeUtils[t(4746)](e)&&e[t(1968)].clonedMesh)&&(e=e[t(1968)][t(12100)]),this.flyToObject(e)}flyToRandomObject(){var t,e=nz;const n=this[e(4758)],r=[];for(const n of Object.values(this[e(6909)])){const i=null==(t=n[e(12288)])?void 0:t[e(11455)];i&&r[e(565)](i.id)}const i=r[e(449)];if(i<=0)return;const s=r[Math[e(562)](Math[e(533)]()*i)];if(!n[e(2146)]("id",s[e(526)]()))return;const a=[];if(n[e(2153)]((t=>{var n=e;const r=[n(6286),n(4636),n(4638),"BIM_VIEWER_BOX_HELPER"];(t instanceof Mesh||t instanceof Line)&&!r[n(667)](t.name)&&a.push(t.id)})),a[e(449)]<1)return;const o=Math[e(562)](Math[e(533)]()*a[e(449)]),c=n[e(4679)](a[o]);c&&(log.info("[DxfViewer] Flying to random object: "+c[e(542)]+e(12107)+c[e(452)]),this[e(6487)](c,void 0),this.flyToObject(c))}[nz(5357)](t,e,n,r){var i=nz;const s=this[i(3045)],a=this.controls;if(!s||!a)return;if(n&&(n=this[i(12249)](n)),t[i(1889)](e))return void log.error(i(12399));if(!CommonUtils[i(4305)](t)||!CommonUtils.isVectorValid(e))return void log[i(819)](i(12400),t,e);const o=t[i(2038)](e);os.far&&(t=t[i(1014)]()[i(909)](e)[i(569)]()[i(1878)](.9*s.far),log[i(1176)](i(12401)));const c=(t,e,n)=>{var r=i;s[r(2080)](e),s[r(2065)][r(540)](t.x,t.y,t.z),n&&Number[r(780)](n)&&(s.zoom=n,s[r(2396)](),this.updateHidableObjectsVisibility()),a[r(573)][r(540)](e.x,e.y,e.z),a[r(1067)]()};if(!1===r)return this[i(5356)]&&clearInterval(this.cameraUpdateInterval),void c(t,e,n);const l=s[i(2065)][i(1014)](),h=a.target[i(1014)](),u=s[i(2397)],d=300,f=Date[i(802)]();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this[i(5356)]=setInterval((()=>{var r=i;let s=Date[r(802)]()-f;s>d&&(s=d);const a=(t,e,n)=>{const r=t.x+(e.x-t.x)*n,i=t.y+(e.y-t.y)*n,s=t.z+(e.z-t.z)*n;return new Vector3(r,i,s)},o=a(l,t,s/d),p=a(h,e,s/d);let m;n&&(m=u+(n-u)*s/d),c(o,p,m),s>=d&&(clearInterval(this.cameraUpdateInterval),this[r(5356)]=void 0)}),10)}[nz(12402)](t,e,n){var r=nz;const i=this[r(3045)],s=this[r(5350)];if(!i||!s)return;const a=new Vector3(t.x,t.y,i[r(2065)].z),o=new Vector3(t.x,t.y,s[r(573)].z);this[r(5357)](a,o,e,n)}[nz(6845)](){var t=nz;const e=this[t(12300)]();e.bbox?this[t(11788)](e.bbox):log.error(t(12403)+this.activeLayoutName)}[nz(11788)](t){var e=nz;const n=this[e(3045)];if(!n)return;const r=t.max.x-t[e(563)].x,i=t.max.y-t[e(563)].y,s=n[e(935)]-n[e(683)],a=n[e(2651)]-n[e(2652)];let o=Math.min(s/r,a/i);o/=1.1;const c=new Vector3;t.getCenter(c),c.z=0;const l=c.clone().setZ(this[e(12226)]);!l[e(1889)](c)&&this[e(5357)](l,c,o,!1)}[nz(12404)](t){var e=nz;if(this[e(11641)]){const n=this[e(11641)][t];if(!n)return;const r=n.box;r&&this.zoomToBBox(r[e(1014)]().expandByScalar(1.2))}}getCompareChanges(){return this.changes}setBackgroundColor(t,e,n){var r=nz;this.scene&&(this.scene[r(2166)]=new Color(t,e,n),this[r(5656)]())}[nz(12132)](t){var e=nz;this[e(12048)]&&(t?this.spinner[e(4871)][e(1204)]("hidden"):this[e(12048)][e(4871)].add("hidden"))}increaseJobCount(){var t=nz;this[t(12132)](++this[t(4669)]>0)}[nz(12005)](){this[nz(12132)](--this.jobCount>0)}[nz(12339)](t){var e=nz;return!this[e(12233)][t]&&(this[e(12233)][t]={measurementData:[],markupData:[]}),this.layoutInfos[t]}[nz(12321)](){var t=nz;if(!this[t(4758)])return;const e=this.getActiveLayoutInfo();if(!e[t(1242)])return;const n=e[t(1242)][t(1014)]();CommonUtils[t(4309)](n,3);const r=n[t(563)],i=n.max,s=i.x-r.x+i.y-r.y+i.z-r.z;CommonUtils[t(4310)](n,s);const a=[],o=(e,n,r)=>{a[t(565)](new Vector3(e,n,r))},c=n.getSize(new Vector3),l=n[t(2059)](new Vector3);if(o(-c.x/2,-c.y/2,0),o(c.x/2,-c.y/2,0),o(c.x/2,c.y/2,0),o(-c.x/2,c.y/2,0),this[t(5655)])this[t(5655)].geometry[t(2054)](a),this[t(5655)][t(2063)][t(2340)](),this.groundPlane[t(2063)][t(2067)](),this[t(5655)][t(2063)][t(2349)]();else{const e=new BufferGeometry;e.setFromPoints(a),e[t(2332)]([0,3,2,0,2,1]),e[t(2349)]();const n=0,r=new MeshBasicMaterial({color:t(12405),transparent:!0,opacity:n,side:DoubleSide});this.groundPlane=new Mesh(e,r),this[t(5655)].frustumCulled=!1,this.groundPlane.position.copy(l),this[t(5655)][t(1901)][t(540)](1e5,1e5,1),this.groundPlane[t(542)]="groundPlane",this[t(5655)][t(1968)][t(4776)]=!1,this[t(5655)].renderOrder=GROUND_PLANE_RENDER_ORDER,this[t(4758)][t(747)](this[t(5655)])}this[t(5655)][t(2155)]()}[nz(2067)](){var t,e=nz;const n=new Box3;for(const r of Object[e(673)](this[e(6909)])){const i=null==(t=r.dxfData)?void 0:t[e(11455)];if(i){const t=SceneUtils.getBoundingBox(i,!1);!t[e(1213)]()&&n.union(t)}}return n[e(563)].z=0,n.max.z=0,log[e(1175)]("[BimViewer] computeBoundingBox(), BBox's max: "+n.max.toArray()+e(12319)+n[e(563)][e(1499)]()),n}checkAndGetLimitedCameraZoom(t){var e=nz;if(!t)return 1;let n=t;return t{var n=e;t[n(2122)]&&t.children[n(604)]((t=>{var e=n;t[e(1968)].boundingBox&&(tempFrustum[e(2070)](t[e(1968)][e(2066)])?t[e(2122)]=!0:t[e(2122)]=!1)}))}))}log[e(1178)](e(12409)+(Date.now()-n)/1e3+"s")}getVisiblePixelSize(t){var e=nz;const n=6.5*MathUtils[e(12410)](t,1e4,3e4)+.5;return log[e(1178)]("[DxfViewer] visiblePixelSize:",n),n}setLayoutHidableObjectArray(t){var e=nz;const n=this[e(3045)];if(!this[e(12229)]||!n)return;const r=Date.now(),i=t[e(542)];!this.sortedHidableObjects[i]&&(this.sortedHidableObjects[i]=[]);const s=this[e(12230)][i],a=n[e(2397)];this[e(12231)]=a;const o=t=>{var n=e;if(!this.isCompareMode())return!1;if(!t[n(2178)])return!1;let r;return r=t[n(2178)]instanceof ShaderMaterial?t[n(2178)][n(2377)][n(4646)][n(439)]:t.material.color,r[n(1889)](new Color(DxfCompare.ENTITY_COLOR_ADDED))||r[n(1889)](new Color(DxfCompare[n(11473)]))};let c=1;t[e(2152)]((t=>{var n=e;if(this.isCompareMode()&&o(t))return;if(!ObjectUtils[n(12388)](t))return;const r=t[n(2063)];!r.boundingBox&&r.computeBoundingBox();const i=r[n(2066)][n(1014)]();if(!i||!CommonUtils.isBoxValid(i))return;i[n(2028)](t.matrixWorld),i.getSize(tempVec33);const a=Math[n(486)](tempVec33.x,tempVec33.y),l=c/a;l<1/0?s.push({visibleMinZoom:l,object:t}):t instanceof Points?s[n(565)]({visibleMinZoom:c,object:t}):log.warn(n(12411),t)})),c=this.getVisiblePixelSize(s[e(449)]);let l=0;s.forEach((t=>{var n=e;const r=t.visibleMinZoom*c;t[n(12328)]=r,t.object[n(1968)][n(12328)]=r,r>a&&(t[n(469)][n(2122)]=!1,l++)})),s.sort(((t,n)=>t[e(12328)]-n[e(12328)])),log[e(1178)]("[DxfViewer] setLayoutHidableObjectArray cost: "+(Date.now()-r)/1e3+e(12412)+l+" objects changed to hidden")}statObjects(t){var e=nz;const n=this[e(12230)][this[e(12232)]],r=n.length,i={};let s=0;n[e(604)]((n=>{var r=e;const a=n[r(469)];if(a[r(2063)]&&a[r(2178)]){s++;const e=(e=>{let n=0,r=e;for(;r&&(n++,r!==t);)r=r.parent;return n})(n[r(469)]);!i[e]&&(i[e]=0),i[e]++}}));let a=0;t[e(2152)]((t=>{var n=e;const r=t;r.geometry&&r[n(2178)]&&a++})),log[e(1175)](e(12413)+r+e(12414)+s+e(12415)+a+e(12416),i),log[e(1175)]("[DxfViewer] scene:",this[e(4758)])}updateHidableObjectsVisibility(){var t=nz;const e=this[t(3045)];if(!e)return;const n=Date[t(802)](),r=e.zoom;if(Math[t(694)](r-this[t(12231)])<1e-5)return;if(this[t(12417)](),this[t(12418)](r),this[t(12258)]=void 0,!this[t(12230)][this.activeLayoutName])return;const i=this.sortedHidableObjects[this.activeLayoutName];if(0===i[t(449)])return;const s=r>this[t(12231)],a=Math[t(563)](r,this[t(12231)]),o=Math[t(486)](r,this[t(12231)]),c=[];let l=0;for(let e=0;eo)break;i[e][t(469)][t(2122)]=s,s&&c[t(565)](i[e][t(469)]),l++}}this[t(12231)]=r,log[t(1178)](t(12419)+(Date[t(802)]()-n)/1e3+t(12412)+l+"(out of "+i.length+") objects changed to "+(s?t(2122):"hidden")),this[t(5655)]&&c[t(565)](this[t(5655)]),this[t(12258)]=c}updateRaycasterThreshold(){var t=nz;const e=this[t(3045)];if(!e||!this[t(4864)])return;const n=12/e[t(2397)],r=this.raycaster[t(3536)];r.Line?r[t(3528)].threshold=n:r[t(3528)]={threshold:n},r.Points?r[t(3535)][t(3531)]=n:r[t(3535)]={threshold:n}}[nz(12418)](t){var e=nz;DXFLoader[e(11594)][e(439)]=t}},import_lodash10=__toESM(require_lodash(),1),ViewerMode=(t=>{var e=nz;return t[t[e(12420)]=0]=e(12420),t[t[e(12421)]=1]=e(12421),t[t[e(12422)]=2]=e(12422),t})(ViewerMode||{}),SimplifiedBimViewer=class{constructor(t,e,n){var r=nz;if(this[r(4758)]=this[r(6931)](),this.selectedObject=void 0,this.loadedModels={},this.viewerMode=0,this.raycaster=new Raycaster,this[r(11985)]=[],this[r(4669)]=0,this.bbox=new Box3,this[r(12423)]=new LineBasicMaterial({color:1118481}),this[r(12424)]=new Group,this[r(12425)]=[],this.applyOptionsAndAddToScene=(t,e,n)=>{var i=r;if(log[i(1175)](i(12426)+t+i(12427)),n[i(1963)]&&16===n[i(1963)][i(449)]){const t=new Matrix4;t[i(1874)]=n[i(1963)],e[i(2028)](t)}else{const t=n[i(2065)]||[0,0,0],r=n[i(1961)]||[0,0,0],s=n.scale||[1,1,1];e[i(2065)][i(540)](t[0],t[1],t[2]),e.rotation.set(r[0]*Math.PI/180,r[1]*Math.PI/180,r[2]*Math.PI/180),e.scale[i(540)](s[0],s[1],s[2])}this[i(11996)](e,n)},this[r(12428)]=t=>{var e=r;const n=[];return t instanceof Mesh?n[e(565)](t):t[e(2153)]((t=>{t instanceof Mesh&&n[e(565)](t)})),n},this.containerOrCanvas=t,e&&(this.viewerMode=e),this[r(12429)]=n,1===this[r(12430)]&&(t instanceof HTMLDivElement||!n))throw new Error("[SimplifiedBimViewer] Parameters don't match Browserless viewerMode !");this[r(12001)](),this[r(2645)](),this[r(12005)](),log[r(1175)](r(12431)),this.animate()}[nz(2645)](){var t=nz;this[t(6930)](),this[t(12007)](),this.initControls(),this[t(12009)](),this[t(12432)](),this.scene[t(747)](this[t(12424)])}initScene(){const t=new Scene;return t.background=new Color(7112861),t.matrixAutoUpdate=!0,t}[nz(12433)](){return 1===this[nz(12430)]}[nz(12434)](){return 0===this[nz(12430)]}[nz(6930)](){var t=nz;const e={antialias:!0,preserveDrawingBuffer:!0},n=this[t(12433)]();n&&Object[t(501)](e,{canvas:this[t(12435)],context:this.glContext});const r=new WebGLRenderer(e);if(n){const e=this[t(12435)][t(999)],n=this[t(12435)][t(1e3)];log[t(1175)](t(12436)+e+t(12437)+n),this[t(2414)]=new WebGLRenderTarget(e,n,{minFilter:LinearFilter,magFilter:NearestFilter,format:RGBAFormat,type:UnsignedByteType}),r[t(2417)](this[t(2414)])}else{const e=this[t(12435)].clientWidth,n=this[t(12435)][t(4809)];this[t(12435)].append(r[t(5280)]),r[t(3394)](window[t(4876)]),r.setSize(e,n)}r[t(2942)]=sRGBEncoding,r.toneMappingExposure=1,r.physicallyCorrectLights=!0,r[t(3403)](11119017,1),r[t(2999)][t(2407)]=!0,r[t(2999)].type=PCFSoftShadowMap,this.renderer=r,!n&&(this[t(6840)]=new PMREMGenerator(r),this[t(6840)][t(2671)](),this[t(12128)]())}[nz(12007)](){var t=nz;if(!this[t(4758)])return;const e=this[t(12435)][t(5322)]||this[t(12435)][t(999)]||0,n=this[t(12435)][t(4809)]||this[t(12435)][t(1e3)]||0;let r=1;e&&n&&(r=e/n),this[t(3045)]=new PerspectiveCamera(68,r,.05,1e4),this.camera[t(2065)][t(540)](10,10,10),this[t(3045)].lookAt(0,0,0),this[t(4758)][t(747)](this[t(3045)])}[nz(12008)](){var t=nz;if(!this[t(4885)])return;const e=this[t(3045)];if(!e)return;const n=new OrbitControls(e,this[t(4885)][t(5280)]);n[t(5284)]=!0,n[t(5285)]=.5,n[t(2407)]=!0,n[t(5291)]=10,n[t(477)]={LEFT:"KeyD",UP:t(12024),RIGHT:"KeyA",BOTTOM:t(12438)},n[t(1067)](),this[t(5350)]=n,n.addEventListener(t(5279),(()=>{var n=t;!this[n(12434)]()&&this[n(4885)]&&this[n(4885)][n(2418)](this[n(4758)],e)}))}[nz(12009)](){var t=nz;if(!this.scene)return;const e=16777215,n=new DirectionalLight(e,.3);n[t(2065)][t(540)](-2,2,4);const r=new AmbientLight(3158064),i=new HemisphereLight(e,14540253,3);i[t(2065)][t(540)](0,300,0),this[t(4758)][t(747)](n),this[t(4758)][t(747)](r),this.scene[t(747)](i)}[nz(12432)](){var t=nz;if(!this[t(4885)]||!this[t(3045)]||!this[t(5350)])return;let e=!1,n=!1,r=-1,i=-1;this[t(4885)][t(5280)][t(808)](t(5316),(t=>{r=t.x,i=t.y,e=!1})),this.renderer.domElement[t(808)]("pointermove",(n=>{var s=t;if(r>=0&&i>=0){const t=5;(Math.abs(n.x-r)>t||Math[s(694)](n.y-i)>t)&&(e=!0)}})),this.renderer.domElement.addEventListener(t(5320),(()=>{n&&setTimeout((()=>{n=!1}),200),r=-1,i=-1})),this[t(4885)][t(5280)][t(808)](t(11836),(r=>{var i=t;n=!0,!e&&(this.handleMouseClick(r),this[i(12044)]())}))}[nz(6932)](){var t,e=nz;this[e(12434)]()&&requestAnimationFrame(this[e(6932)][e(511)](this)),this[e(5350)]&&this[e(5350)][e(1067)](),this[e(4758)]&&this[e(3045)]&&(null==(t=this.renderer)||t[e(2418)](this.scene,this[e(3045)]))}destroy(){var t=nz;this[t(3045)]=void 0,this.scene&&this.scene[t(750)](),this[t(4885)]&&(this.containerOrCanvas[t(809)](this[t(4885)][t(5280)]),this[t(4885)][t(750)](),this[t(4885)][t(1979)](),this[t(4885)]=void 0),this[t(5350)]&&(this[t(5350)][t(1979)](),this[t(5350)]=void 0),this[t(2414)]&&(this[t(2414)].dispose(),this[t(2414)]=void 0),this[t(4864)]=void 0,this[t(6476)]=void 0,this.savedMaterialsForOpacity=void 0,Object[t(477)](this.loadedModels)[t(604)]((t=>{delete this.loadedModels[t]}))}[nz(6771)](t,e,n){return __async(this,null,(function*(){var r=f;const i=new LoadingHelper,s=yield i[r(6771)](t,e[r(592)],n);return s?(this.applyOptionsAndAddToScene(t,s,e),Promise[r(440)]()):Promise[r(831)]()}))}[nz(12082)](t,e){return __async(this,null,(function*(){var n=f;this[n(12001)]();const r=new LoadingHelper,i=yield r[n(12082)](t.src,t[n(12083)],e);return i?(this.applyOptionsAndAddToScene(t[n(592)],i,t),Promise[n(440)]()):Promise[n(831)]()}))}[nz(11741)](t,e,n,r){var i=nz;this[i(12001)](),(new LoadingHelper).parseGltf(t,e[i(592)],(t=>{this.applyOptionsAndAddToScene(e.src,t,e),n&&n(t)}),(t=>{r&&r(t)}))}addLoadedModelToScene(t,e){var n=nz;if(!this[n(4758)])return;t[n(2127)](),this[n(4758)][n(747)](t);const r=new BoxHelper(t);r[n(542)]="BIM_VIEWER_BOX_HELPER",r[n(2122)]=!1,r[n(2178)]&&(r[n(2178)]=void 0,r[n(2160)][n(540)](layerForUnselectableObjects));let i=e[n(6777)]||e[n(592)];if(this[n(6909)][i]){let t=1;for(;this[n(6909)][i+"_"+t];)t++;i=i+"_"+t,log[n(1176)]("[BimViewer] Model '"+i+"' is loaded more than once!")}this[n(6909)][i]={id:t.id,bbox:r},this[n(2067)]();const s=Object[n(673)](this[n(6909)])[n(679)]((t=>t.id));(!s||s[n(449)]<=1)&&(this[n(12108)](),this.goToHomeView()),this.scene[n(747)](r),e.edges&&ObjectUtils[n(4704)](t),this[n(12005)](),log[n(1175)](n(12439)+e[n(592)]+n(12440))}[nz(6490)](t=!0,e=.3,n,r){var i=nz;if(!this[i(11985)]&&(this[i(11985)]=[]),!this.scene)return;const s=this[i(4758)],a=[];Object.keys(this[i(6909)])[i(604)]((o=>{var c=i;const l=this.loadedModels[o];if(t){this[c(11985)]&&this[c(11985)][c(449)]>0&&ObjectUtils.revertObjectOpacityById(s,l.id,this[c(11985)]);const t=ObjectUtils[c(4678)](s,l.id,e,n,r);a.push(...t)}else this[c(11985)]&&ObjectUtils[c(4680)](s,l.id,this[c(11985)])})),t?this.savedMaterialsForOpacity=a:this[i(11985)]=[]}hasTransparentObject(){var t=nz;return!!(this[t(11985)]&&this[t(11985)].length>0)}[nz(11837)](t){var e=nz;if(!this[e(4864)]||!this[e(3045)]||!this[e(4758)])return[];let n=new Vector2;t&&(n=CoordinateConversionUtils.getScreenPointByEvent(t,this.containerOrCanvas));const r=CoordinateConversionUtils[e(4331)](n,this[e(3045)],this[e(12435)]);this[e(4864)].setFromCamera(r,this[e(3045)]);const i=[];return Object[e(673)](this[e(6909)])[e(604)]((t=>{var n=e;const r=this[n(4758)]&&this[n(4758)][n(4679)](t.id);r&&r.visible&&i.push(r)})),this[e(4864)][e(4115)](i,!0)||[]}handleMouseClick(t){var e=nz;const n=this.getIntersections(t)[e(932)]((t=>{var n=e;const r=t[n(469)];return r[n(2122)]&&(!1!==r[n(1968)][n(4776)]||r instanceof Mesh)}));let r=n&&n[e(469)]||void 0;r&&this[e(6476)]&&this[e(6476)].id===r.id&&(r=void 0),r?this[e(6487)](r):this[e(6486)]()}[nz(6487)](t){var e=nz;if(this[e(6476)]){const t=this[e(6476)][e(1968)];if(t[e(4683)]){if(this[e(6476)][e(2178)]){const t=this[e(6476)].material;Array[e(468)](t)?t.forEach((t=>t[e(1979)]())):t instanceof Material&&t[e(1979)]()}this.selectedObject.material=t[e(4683)],delete t[e(4683)]}this.selectedObject=void 0}if(!this.scene||!t)return;const n=MaterialUtils[e(4643)](t);n&&(this.selectedObject=t,this.selectedObject.userData[e(4683)]=this[e(6476)][e(2178)],this[e(6476)][e(2178)]=n)}[nz(6486)](){this.selectObject()}flyToObjects(t){var e=nz;if(!t||0===t[e(449)]||!this.camera)return;const n=new Vector3,r=new Vector3,i=new Box3;t[e(604)]((t=>{var n=e;const r=SceneUtils.getBoundingBox(t);i[n(1255)](r)}));const s=new Vector3;this[e(3045)].getWorldDirection(s),Viewer3DUtils[e(4814)](i,n,r,this[e(3045)].projectionMatrix,s),this[e(5357)](n,r)}[nz(6478)](t){this[nz(12105)]([t])}[nz(12044)](){var t=nz;this[t(6476)]&&this[t(6478)](this[t(6476)])}[nz(5357)](t,e,n){var r,i=nz;const s=this[i(3045)],a=this[i(5350)];if(!s||!a)return;const o=t=Array[i(468)](t)?new Vector3(t[0],t[1],t[2]):t,c=e=Array[i(468)](e)?new Vector3(e[0],e[1],e[2]):e;log[i(1175)](i(12441),CommonUtils[i(6305)](o)),s[i(2080)](c.x,c.y,c.z),s[i(2065)].set(o.x,o.y,o.z),a[i(573)][i(540)](c.x,c.y,c.z),a[i(1067)](),!this[i(12434)]()&&(null==(r=this[i(4885)])||r[i(2418)](this[i(4758)],s)),n&&n()}[nz(6845)](){var t,e=nz;const n=new Vector3,r=new Vector3,i=new Vector3,s=new Vector3;this.bbox[e(2060)](s),this[e(1242)][e(2059)](i);const a=(s.x+s.y+s.z)/3*1.5,o=new Vector3(i.x+a,i.y+a/1.5,i.z+a),c=i.clone()[e(909)](o);Viewer3DUtils[e(4814)](this[e(1242)],n,r,null==(t=this[e(3045)])?void 0:t[e(2031)],c),!n[e(1889)](r)&&this.flyTo(n,r)}[nz(12128)](t){var e=nz;TextureUtils[e(6805)](this[e(6840)],t)[e(829)]((t=>{this.scene.environment=t,!this.isBrowserMode()&&this.animate()}))}tryAdjustCameraNearAndFar(){var t=nz;const e=this[t(3045)];if(!this[t(4758)]||!e)return;const n=this[t(1242)],r=e.near,i=e.far,s=n.max.x-n[t(563)].x,a=n[t(486)].y-n[t(563)].y,o=n[t(486)].z-n[t(563)].z,c=Math[t(486)](s,a,o),l=c/5,h=5*c;if(r>l||iCommonUtils[t(4300)](e);log[t(1175)](t(12442)+n(c)),r>l&&(log[t(1176)](t(12443)+n(r)+") shouldn't bigger than "+n(l)+t(12113)),e.near=l),i0?void 0:this.transparentObjectIds,r=this[e(12425)].length>0?this[e(12425)]:void 0,i=new MeshBasicMaterial({color:16777215,transparent:!0,opacity:.1});Object[e(477)](this[e(6909)])[e(604)]((t=>{var s=e;const a=this[s(6909)][t];ObjectUtils[s(12447)](this[s(4758)],a.id,i,r,n)})),this[e(12424)][e(750)]();let s=[];if(t[e(604)]((t=>{var n=e;const r=t[n(6777)];let i=r?this.scene[n(4679)](this[n(6909)][r].id):this[n(4758)];!i&&(log[n(1176)]("[BimViewer] The ModelId of "+r+" has no corresponding model."),i=this.scene),i[n(2152)]((e=>{var r=n;if((0,import_lodash10.includes)(t.id,(0,import_lodash10[r(427)])(e.userData,r(12131)))){const t=this[r(12428)](e);s=s[r(475)](t)}}))})),s[e(449)]>0){s[e(604)]((t=>{var n,r=e;const i=ObjectUtils.createOutline(t[r(2063)],t[r(1963)],this[r(12423)]);(null==(n=t[r(840)])?void 0:n[r(2033)])&&i[r(2028)](t[r(840)][r(2033)]),this[r(12424)].add(i)}));const t=s.map((t=>t.id));Object[e(477)](this[e(6909)])[e(604)]((n=>{var r=e;const i=this.loadedModels[n];ObjectUtils[r(4684)](this[r(4758)],i.id,t)})),this[e(12425)]=t,this[e(12105)](s)}else log[e(1176)](e(12448)+t.map((t=>t.id)));!this.isBrowserMode()&&this[e(6932)]()}[nz(12001)](){++this.jobCount}[nz(12005)](){--this[nz(4669)]}[nz(2067)](){var t=nz;const e=new Box3;return Object[t(673)](this.loadedModels)[t(604)]((n=>{var r=t;if(n[r(1242)]){n[r(1242)][r(2063)].computeBoundingBox();const t=n[r(1242)][r(2063)][r(2066)];t&&!t[r(1213)]()&&e[r(1255)](t)}})),this[t(1242)]=e,e}[nz(1027)](){var t,e=nz;return null==(t=this[e(4885)])?void 0:t[e(1027)]()}[nz(12449)](){var t,e=nz;const n=new Vector3;return null==(t=this[e(3045)])||t[e(2151)](n),{x:n.x,y:n.y,z:n.z}}},CancelablePromise=class{constructor(t){var e=nz;this[e(12450)]=!1;const n=new Promise(((t,n)=>{this[e(12451)]=n}));this[e(833)]=Promise.race([n,t])}[nz(1408)](){var t=nz;this[t(12451)]&&this[t(12451)]({type:t(1408)})}},import_lodash11=__toESM(require_lodash(),1),BaseVRMesh=class extends Group{constructor(t,e,n=10){var r=nz;super(),this[r(1949)]=t,this[r(12452)]=e,this.size=n,this[r(5892)]=new TextureLoader,this[r(4488)]=new Mesh}[nz(4052)](t=1e3){var e=nz;let n=this[e(12453)]();if(!(Array[e(468)](n)&&n[e(449)]>0))return void(this[e(2122)]=!0);n[e(604)]((t=>t[e(2286)]=0));const r=1/(t/10);this[e(2122)]=!0,this.clearFading(),this[e(2125)]+=1,this.fadingInInterval=setInterval((()=>{var t=e;let i=1;const s=this[t(12453)]();!this.materialEquals(n,s)&&(n=s),n.length>0&&(i=Math.min(n[0][t(2286)]+r,1),n[t(604)]((e=>e[t(2286)]=i))),i>=1&&this[t(12454)]()}),10)}materialEquals(t,e){var n=nz;return import_lodash11.default[n(12455)](t,e,((t,e)=>{var r=n;if(!Array.isArray(t)||!Array[r(468)](e))return t.id===e.id}))}[nz(4054)](t=1e3){var e=nz;const n=this[e(12453)](),r=1/(t/10),i=1/(t/10);this[e(12454)](),this[e(1901)][e(540)](2,2,2),this[e(12456)]=setInterval((()=>{var t=e;const s=this[t(1901)].x+i;this.scale[t(540)](s,s,s);let a=0;n[t(449)]>0&&(a=Math[t(486)](n[0][t(2286)]-r,0),n[t(604)]((e=>e[t(2286)]=a))),(a<=0||s>=3)&&this.clearFading()}),10)}[nz(12454)](){var t=nz;const e=this.getMaterials();this[t(12457)]&&(clearInterval(this[t(12457)]),this[t(12457)]=void 0,this[t(2122)]=!0,e[t(604)]((e=>e[t(2286)]=1)),this.renderOrder-=1),this[t(12456)]&&(clearInterval(this[t(12456)]),this[t(12456)]=void 0,this.visible=!1,e[t(604)]((e=>e[t(2286)]=1)),this[t(1901)][t(540)](1,1,1))}getMaterials(){var t=nz;let e=this.thumbnailMesh;!e&&(e=this[t(4488)]);const n=[];return Array[t(468)](e[t(2178)])?n[t(565)](...e.material):e.material&&n[t(565)](e.material),n}[nz(419)](){}[nz(12458)](t){return __async(this,null,(function*(){var e=f;if(!this[e(12452)]||6!=this[e(12452)][e(449)])return;this[e(12459)]=new Mesh(new BoxGeometry(t,t,t)),this[e(12459)].geometry[e(1901)](1,1,-1);const n=(yield this.loadTexturesAsync(this[e(12452)]))[e(679)]((t=>new MeshBasicMaterial({map:t,side:FrontSide,transparent:!0})));this[e(12459)]&&(this.thumbnailMesh.material=n,this[e(747)](this[e(12459)]))}))}[nz(12460)](t){var e=nz;return t.map((t=>this[e(5892)][e(1212)](t)))}[nz(12461)](t){return __async(this,null,(function*(){var e=f;const n=t[e(679)]((t=>this[e(5892)].loadAsync(t)));return yield Promise[e(515)](n)}))}[nz(12462)](t){var e,n=nz;this[n(1204)](t),t.clear(),t[n(2063)].dispose(),Array.isArray(t[n(2178)])?t[n(2178)][n(604)]((t=>{var e,r=n;null==(e=t[r(679)])||e[r(1979)](),t.dispose()})):(null==(e=t[n(2178)][n(679)])||e[n(1979)](),t.material[n(1979)]())}[nz(1725)](){var t=nz;this[t(12454)](),this[t(1949)]=[],this.mesh&&(this.mesh instanceof Mesh?this.destroyMesh(this[t(4488)]):this[t(4488)][t(2152)]((t=>{t instanceof Mesh&&this.destroyMesh(t)})),this[t(4488)]=void 0)}},VRCube=class extends BaseVRMesh{constructor(t,e,n=20){var r=nz;if(super(t,e,n),6!==t[r(449)])throw new Error("[VRCube] Wrong number of images! Expected 6, got "+t[r(449)])}[nz(419)](){return __async(this,null,(function*(){var t=f;yield this.createThumbnailMesh(this[t(753)]+.1),this.thumbnailMesh?this.createMesh():yield this[t(7308)]()}))}[nz(7308)](){return __async(this,null,(function*(){var t=f;const e=this[t(4488)];e[t(2063)]=new BoxGeometry(this.size,this[t(753)],this[t(753)]),e.geometry[t(1901)](1,1,-1);const n=(yield this[t(12461)](this.images)).map((t=>new MeshBasicMaterial({map:t,side:FrontSide,transparent:!0})));e[t(2178)]=n,this[t(747)](e),this[t(12459)]&&(this[t(12462)](this[t(12459)]),this[t(12459)]=void 0,this[t(12452)]=void 0)}))}},VRCube24Faces=class extends BaseVRMesh{constructor(t,e,n=20){var r=nz;if(super(t,e,n),24!==t[r(449)])throw new Error(r(12463)+t[r(449)]);this.ratio=1,this.subPlaneWidth0=this[r(753)]*(this[r(12464)]/(this[r(12464)]+1)),this[r(12465)]=this[r(753)]-this[r(12466)]}create(){return __async(this,null,(function*(){var t=f;yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this[t(7308)]()}))}[nz(7308)](){return __async(this,null,(function*(){var t,e=f;this[e(4488)]=new Group,this[e(4488)][e(1901)].set(1,1,-1);const n=(yield this[e(12461)](this.images)).map((t=>new MeshBasicMaterial({map:t,side:BackSide,transparent:!0})));if(24!==n[e(449)])throw new Error("[VRCube24Faces] Wrong number of materials! Expected 24, got "+n.length);const r=this[e(12467)](n[e(497)](0,4));r.rotateOnAxis(new Vector3(0,1,0),-Math.PI/2),r[e(2065)].set(this[e(753)]/2,0,0);const i=this[e(12467)](n[e(497)](4,8));i[e(2134)](new Vector3(0,1,0),Math.PI/2),i.position[e(540)](-this[e(753)]/2,0,0);const s=this[e(12467)](n[e(497)](8,12));s[e(2134)](new Vector3(1,0,0),-Math.PI/2),s[e(2134)](new Vector3(0,0,1),Math.PI),s[e(2134)](new Vector3(1,0,0),Math.PI),s[e(2065)].set(0,this.size/2,0);const a=this[e(12467)](n[e(497)](12,16));a[e(2134)](new Vector3(1,0,0),Math.PI/2),a[e(2134)](new Vector3(0,0,1),Math.PI),a[e(2134)](new Vector3(1,0,0),Math.PI),a[e(2065)][e(540)](0,-this[e(753)]/2,0);const o=this[e(12467)](n[e(497)](16,20));o[e(2134)](new Vector3(0,1,0),Math.PI),o.position[e(540)](0,0,this.size/2);this[e(12467)](n.slice(20,24)).position[e(540)](0,0,-this[e(753)]/2),this[e(747)](this.mesh),this.thumbnailMesh&&(this[e(12462)](this[e(12459)]),this[e(1204)](this.thumbnailMesh),null==(t=this.thumbnailMesh)||t.clear(),this.thumbnailMesh=void 0)}))}[nz(12467)](t){var e,n=nz;const r=new Group,i=new PlaneGeometry(this[n(12466)],this[n(12466)]),s=new PlaneGeometry(this[n(12465)],this[n(12466)]),a=new PlaneGeometry(this.subPlaneWidth0,this[n(12465)]),o=new PlaneGeometry(this.subPlaneWidth1,this[n(12465)]),c=new Mesh(i,t[0]),l=new Mesh(s,t[1]),h=new Mesh(a,t[2]),u=new Mesh(o,t[3]);return c[n(2065)][n(540)](this[n(12465)]/2,this[n(12465)]/2,0),l[n(2065)][n(540)](-this[n(12466)]/2,this.subPlaneWidth1/2,0),h[n(2065)][n(540)](this.subPlaneWidth1/2,-this[n(12466)]/2,0),u.position.set(-this.subPlaneWidth0/2,-this[n(12466)]/2,0),c[n(2063)].scale(-1,1,1),l[n(2063)].scale(-1,1,1),h[n(2063)][n(1901)](-1,1,1),u[n(2063)][n(1901)](-1,1,1),r[n(747)](c,l,h,u),null==(e=this.mesh)||e.add(r),r}},VRSphere=class extends BaseVRMesh{constructor(t,e,n=10){var r=nz;if(super(t,e,n),1!==t[r(449)])throw new Error(r(12468)+t[r(449)])}[nz(419)](){return __async(this,null,(function*(){var t=f;yield this[t(12458)](this[t(753)]+.1),this[t(12459)]?this.createMesh():yield this.createMesh()}))}createMesh(){return __async(this,null,(function*(){var t,e=f;const n=this[e(4488)];n[e(2063)]=new SphereGeometry(this[e(753)],100,100),n[e(2063)][e(1901)](-1,1,1);const r=(yield this[e(12461)](this.images))[e(679)]((t=>new MeshBasicMaterial({map:t,side:FrontSide,transparent:!0})));n[e(2178)]=r[0],this[e(747)](n),this.thumbnailMesh&&(this[e(12462)](this[e(12459)]),this.remove(this[e(12459)]),null==(t=this[e(12459)])||t[e(750)](),this[e(12459)]=void 0)}))}},VRViewer=class extends BaseViewer{constructor(t,e){var n=nz;super(t),this[n(5367)]=50,this[n(5368)]=95,this.raycaster=new Raycaster,this.autoRotate=!0,this[n(1223)]=[],this[n(11989)]=Date[n(802)](),this[n(11990)]=60,this.isMousePressing=!1,this[n(3685)]=defaultSettings,this.jobCount=0,this[n(12469)]=[],this[n(12470)]="",this[n(12471)]="",this[n(12472)]="",this[n(12473)]="",this[n(12474)]=new Map,this[n(12475)]=[],this[n(6701)]=()=>{var t,e=n;const r=null==(t=this[e(4885)])?void 0:t[e(5280)];r&&r[e(7057)]&&this[e(6688)](r[e(7057)].clientWidth,r.parentElement[e(4809)])},this[n(5394)]=t=>{var e=n;const r=t.wheelDelta>0?-5:5;this[e(5425)](r)},this.viewerCfg=t,this[n(11918)]=e||{eye:[0,0,0],look:[0,0,0]},this[n(3685)]=defaultSettings,this[n(11918)][n(2365)]&&(this[n(3685)].camera[n(2365)]=this[n(11918)][n(2365)]),this[n(11918)][n(2366)]&&(this[n(3685)][n(3045)][n(2366)]=this.cameraCfg[n(2366)]),this[n(12132)](++this[n(4669)]>0),this.init(),this[n(6932)](),this[n(12132)](--this[n(4669)]>0)}init(){var t=nz;const e=this[t(5647)];this[t(12006)](),this.initScene(),this[t(6930)](),this.initCamera(),this.initControls(),this[t(12009)](),this[t(11913)](),this[t(12049)](),!0===e[t(12011)]&&(this.axes=this[t(12013)]()),e.enableToolbar&&(this[t(5251)]=this.initToolbar()),e.enableBottomBar&&(this[t(6276)]=this[t(12016)]())}[nz(6931)](){var t=nz;const e=new Scene;e[t(2166)]=new Color(16777215),e[t(1962)]=!0,this[t(4758)]=e}[nz(6930)](){var t,e,n=nz;this[n(4885)]=new WebGLRenderer({antialias:!1,preserveDrawingBuffer:!1}),this[n(4885)][n(3394)](window[n(4876)]),this.renderer[n(1996)](this[n(999)],this[n(1e3)]),this[n(6933)]=new CSS2DRenderer,this[n(6933)][n(1996)](this[n(999)],this[n(1e3)]),this[n(6933)][n(5280)][n(590)][n(1e3)]="0",this[n(6933)][n(5280)][n(590)][n(999)]="0",null==(t=this.viewerContainer)||t[n(591)](this[n(4885)][n(5280)]),null==(e=this[n(4863)])||e[n(591)](this[n(6933)][n(5280)])}[nz(12007)](){var t=nz;this[t(4758)]&&(this.camera=new PerspectiveCamera(75,this[t(999)]/this[t(1e3)],this.settings[t(3045)][t(2365)],this[t(3685)].camera.far),this[t(4758)][t(747)](this[t(3045)]))}[nz(12008)](){var t=nz;if(!this[t(4885)]||!this[t(3045)])return;const e=this[t(3045)],n=this[t(5647)],r=new VRControls2(e,this[t(4885)][t(5280)],!0);r.enabled=!0,r.autoRotate=this[t(5292)],r[t(5293)]=n[t(5293)]||-2,r[t(5289)]=!1,r[t(5286)]=!1,r[t(5330)]=!0,r.rotateSpeed=.3,r[t(5313)]=.05*Math.PI,r[t(5314)]=.95*Math.PI,r[t(5309)](document[t(1072)]),r[t(1067)](),this[t(5350)]=r,this[t(12476)]=new ControlsHelper(e,r),this[t(5350)][t(12476)]=this[t(12476)],this[t(5292)]&&this[t(12476)][t(5359)](),this[t(12476)][t(5353)]=!1,this[t(5350)][t(808)](t(887),(()=>{var e=t;this.handleDragEnd&&this[e(12477)]()}));const i=new Vector3(0,0,0),s=new Vector3(10,0,0);this[t(12478)](i,s)}[nz(5400)](t){return e=>{var n,r,i=f;const s=t[i(3045)],a=t[i(5350)];s&&a&&(("ArrowLeft"===e[i(973)]||"ArrowRight"===e[i(973)]||e[i(973)]===i(5295)||e[i(973)]===i(5297))&&(null==(n=this[i(12476)])||n.startToRotate(e)),null==(r=this[i(12476)])||r[i(5359)]())}}[nz(12009)](){var t=nz;if(!this[t(4758)])return;const e=new DirectionalLight(16777215,.3);e[t(2065)].set(-2,2,4),this[t(4758)][t(747)](e)}[nz(11913)](){var t=nz;const e=this[t(4885)],n=this[t(3045)];if(!e||!n)return;let r=!1,i=-1,s=-1;this.addEvent(window,"keydown",this[t(5400)](this)),this[t(12027)](window,t(6688),this.onResize),this[t(12027)](window,t(12479),this.onMouseWheel),this[t(12027)](window,t(5316),(n=>{var a,o=t;i=n.x,s=n.y,r=!1,this[o(12480)]=!0,this[o(5292)]&&(null==(a=this.controlsHelper)||a[o(5359)]()),n[o(5335)]===MOUSE[o(5326)]&&n[o(573)]instanceof HTMLCanvasElement&&(e[o(5280)][o(590)][o(6338)]="move")})),this.addEvent(window,t(5319),(e=>{var n=t;if(i>=0&&s>=0){const t=5;(Math[n(694)](e.x-i)>t||Math[n(694)](e.y-s)>t)&&(r=!0)}})),this[t(12027)](window,t(5320),(i=>{var s,a,o=t;if(this[o(12480)]=!1,this[o(5292)]&&(null==(s=this[o(12476)])||s[o(5359)]()),e[o(5280)][o(590)][o(6338)]="auto",!r&&i[o(5335)]===MOUSE.LEFT)if(i[o(573)]&&i[o(573)]instanceof HTMLDivElement){const t=CSS2DObjectUtils[o(12220)](i[o(573)]);if(t){const e=null==(a=this[o(4758)])?void 0:a.getObjectById(t);if(e){const t=e[o(1968)][o(12358)];t&&(log.info(o(12481),t[o(12352)]||t),this[o(12482)]&&this[o(12482)](t))}}}else{const t=this.getIntersection(i);if(t){const e=t=>CommonUtils.vectorToString(t),r=t.point,i=r.clone()[o(909)](n[o(2065)]).normalize();log[o(1175)](o(12483)+e(r)+o(12484)+e(n.position)+o(12485)+e(i))}}}))}initSpinner(){var t,e=nz;const n=document.createElement(e(539));n.classList[e(747)]("spinner");const r=document[e(538)]("div");r.classList[e(747)](ICON_FONT_CLASS,e(12486)),n[e(6267)](r),null==(t=this[e(5233)])||t[e(591)](n),this.spinner=n,this.setSpinnerVisibility(this.jobCount>0)}initOthers(){var t=nz;this[t(5350)]&&this.renderer&&this[t(3045)]&&(this[t(4885)][t(5280)][t(590)][t(12054)]="0")}[nz(12013)](){var t,e=nz;const n=document[e(538)](e(539));n[e(4871)][e(747)](e(12055));const r=new CoordinateAxesViewport(n,this.camera);return null==(t=this[e(5233)])||t[e(6267)](n),r}[nz(12015)](){var t=nz;const e=this.viewerCfg;return new Toolbar2(this,__spreadValues(__spreadValues({},DEFAULT_VRVIEWER_TOOLBAR_CONFIG),e[t(12059)]),[["SceneClear"]])}[nz(12016)](){return new BottomBar(this)}[nz(6932)](){var t,e,n,r,i=nz;if(requestAnimationFrame(this[i(6932)][i(511)](this)),this[i(11990)]>0){const t=Date[i(802)]()-this[i(11989)];if(t<1e3/this[i(11990)])return;if(this.lastFrameExecuteTime=Date.now(),this[i(5292)]){const e=this[i(12476)];e&&e[i(5349)]>0&&!this[i(12480)]&&(e.autoRotateRemainingTime-=t,e.autoRotateRemainingTime<=0&&this[i(5350)]&&e[i(5358)]())}}null==(t=this.controls)||t[i(1067)](),this.scene&&this[i(3045)]&&(null==(e=this[i(4885)])||e[i(2418)](this[i(4758)],this[i(3045)]),null==(n=this.css2dRenderer)||n[i(2418)](this[i(4758)],this[i(3045)]),null==(r=this[i(12487)])||r[i(2418)](this[i(4758)],this[i(3045)]))}[nz(12488)](){var t=nz;this.handleCameraUpdateInterval(),this[t(12475)][t(604)]((e=>{var n=t;e[n(12489)]&&(e.creationPromise[n(1408)](),e.creationPromise=void 0)})),this.viewpointAssetsMap[t(604)]((e=>{var n,r=t;const i=e[r(6782)];for(let t=i[r(449)]-1;t>=0;--t){const e=i[t];e.box.destroy(),null==(n=this[r(4758)])||n[r(1204)](e[r(4144)])}})),this.loadingPanos=[],this.viewpointAssetsMap[t(750)](),this[t(12473)]="",this[t(12473)]="",this[t(12470)]="",this.previousPanoramaId=""}[nz(1725)](){var t,e,n,r,i=nz;this[i(1223)][i(604)]((t=>t[i(1626)].removeEventListener(t[i(452)],t.func))),this[i(1223)]=[],this[i(12488)](),this[i(6933)]&&(null==(t=this[i(4863)])||t.removeChild(this.css2dRenderer[i(5280)])),null==(e=this[i(12048)])||e[i(1204)](),null==(n=this.axes)||n[i(1979)](),null==(r=this[i(5251)])||r[i(1725)](),super.destroy()}[nz(5425)](t){var e,n=nz;const r=this.camera;if(!r)return;const i=this.minFov,s=this[n(5368)],a=t=>{var e=n;let a=r[e(2392)]+t;a=Math.min(a,s),a=Math[e(486)](a,i),r[e(2392)]!==a&&(r[e(2392)]=a,r[e(2396)]())},o=t/20;for(let t=0;t<20;++t)setTimeout((()=>a(o)),5*t);this[n(5292)]&&(null==(e=this[n(12476)])||e[n(5359)]())}setMinAndMaxFov(t,e){var n=nz;const r=this[n(5350)];r&&(this.minFov=t,this[n(5368)]=e,r[n(5367)]=t,r[n(5368)]=e)}[nz(6688)](t,e){var n,r,i,s=nz;const a=this[s(3045)];a&&(this.width=t||window.innerWidth,this[s(1e3)]=e||window[s(6387)],a[s(2394)]=this[s(999)]/this[s(1e3)],a[s(2396)](),null==(n=this[s(4885)])||n[s(1996)](this[s(999)],this[s(1e3)]),null==(r=this[s(6933)])||r[s(1996)](this[s(999)],this[s(1e3)]),null==(i=this.css3dRenderer)||i[s(1996)](this[s(999)],this[s(1e3)]))}[nz(12490)](t){var e=nz;this.controls&&(this.autoRotate=t,this[e(5350)][e(5292)]=t)}setAutoRotateSpeed(t=1){var e=nz;this.controls&&(this.controls[e(5293)]=t)}setCameraFov(t=75){const e=this.camera;e&&(e.fov=t,e.updateProjectionMatrix())}[nz(12132)](t){var e=nz;this[e(12048)]&&(t?this.spinner[e(4871)][e(1204)](e(605)):this[e(12048)].classList.add("hidden"))}[nz(12027)](t,e,n){var r=nz;t[r(808)](e,n),this[r(1223)][r(565)]({node:t,type:e,func:n})}[nz(12478)](t,e,n){var r=nz;const i=this[r(3045)],s=this[r(5350)];if(!i||!s)return;let a,o;a=e?Array[r(468)](e)?new Vector3(e[0],e[1],e[2]):new Vector3(e.x,e.y,e.z):s[r(573)][r(1014)]().sub(i[r(2065)]),a[r(569)](),o=Array[r(468)](t)?new Vector3(t[0],t[1],t[2]):new Vector3(t.x,t.y,t.z);const c=o[r(1014)]()[r(1870)](a,.01);this[r(12491)]=o,this.finalCameraTarget=c;const l=(t,e)=>{var n=r;i[n(2080)](e),i[n(2065)][n(540)](t.x,t.y,t.z),s[n(573)].set(e.x,e.y,e.z),s[n(1067)]()};if(!1===n)return this[r(5356)]&&clearInterval(this[r(5356)]),void l(o,c);const h=i.position.clone(),u=s.target[r(1014)](),d=500,f=Date[r(802)]();this[r(5356)]&&clearInterval(this.cameraUpdateInterval),this[r(5356)]=setInterval((()=>{var t=r;let e=Date[t(802)]()-f;e>d&&(e=d);const n=(t,e,n)=>{const r=t.x+(e.x-t.x)*n,i=t.y+(e.y-t.y)*n,s=t.z+(e.z-t.z)*n;return new Vector3(r,i,s)},i=n(h,o,e/d),s=n(u,c,e/d);l(i,s),e>=d&&(clearInterval(this.cameraUpdateInterval),this[t(5356)]=void 0)}),10)}getCameraPositionAndDirection(){var t=nz;const e=this[t(3045)];if(!e)return;const n=e[t(2065)],r=new Vector3;return e[t(2151)](r),{position:{x:n.x,y:n.y,z:n.z},direction:{x:r.x,y:r.y,z:r.z}}}[nz(12492)](){var t=nz;const e=this[t(3045)];if(e)return e[t(2392)]}[nz(12493)](t){var e=nz;this[e(12494)](),this.viewpointAssetsMap.size>0&&(this[e(12474)][e(604)]((t=>{var n=e;const r=t[n(6782)],i=t[n(12495)];r.forEach((t=>{var e,r=n;t[r(4144)][r(1725)](),null==(e=this[r(4758)])||e[r(1204)](t.box)})),i[n(604)]((t=>{var e,r=n;null==(e=this[r(4758)])||e[r(1204)](t)}))})),this[e(12474)][e(750)]()),this[e(12475)][e(604)]((t=>{var n=e;t[n(12489)]&&(t[n(12489)][n(1408)](),t[n(12489)]=void 0)})),this.loadingPanos=[],this[e(12470)]="",this[e(12471)]="",this[e(12472)]="",this[e(12473)]="",this.viewpoints=t}[nz(12496)](t,e){var n=nz;const r=this[n(12469)].find((e=>e.id===t));if(!r)throw new Error(n(12497)+t+"'");!r[n(6782)]&&(r[n(6782)]=[]),r.panoramas[n(565)](e)}[nz(12498)](t,e){var n=nz;const r=this[n(12469)][n(932)]((e=>e.id===t));if(r&&r[n(6782)])return r[n(6782)][n(932)]((t=>t.id===e))}[nz(12499)](t,e="",n=[]){var r=nz;if(!this[r(12469)])return;const i=e=>{var i,s=r;const a=this[s(12474)][s(427)](e.id),o=(null==a?void 0:a[s(12495)])||[];null==(i=e[s(12500)])||i.forEach((r=>{var i=s;if(n&&n[i(449)]>0){if(-1===n[i(663)]((t=>t===r[i(12352)])))return;if(r[i(2122)]=t,this[i(12472)]===e.id){const e=o[i(932)]((t=>{var e=i;return t.userData[e(12358)][e(12352)]===r.hotpointId}));e&&(e[i(2122)]=t)}}else r[i(2122)]=t,this[i(12472)]===e.id&&o[i(604)]((e=>e[i(2122)]=t))}))};if(e){const t=this[r(12469)][r(932)]((t=>t.id===e));t&&i(t)}else this[r(12469)][r(604)]((t=>i(t)))}[nz(12501)](t){var e=nz;if(!this.activeViewpointId||!t)return;const n=this[e(12469)].find((t=>t.id===this[e(12472)])),r=this[e(12474)].get(this[e(12472)]);n&&r&&(!n[e(12500)]&&(n[e(12500)]=[]),t[e(604)]((t=>{var i,s,a=e;if(-1!==(null==(i=n.hotpoints)?void 0:i.findIndex((e=>e[a(12352)]===t.hotpointId))))return void log[a(1176)](a(12502)+t.hotpointId);const o=n.position||[0,0,0],c=t[a(12354)],l=CSS2DObjectUtils[a(12216)](t[a(12355)]),h=new Vector3(c[0],c[1],c[2]),u=new Vector3(o[0],o[1],o[2]);this[a(12503)](l,h,u),l[a(2122)]=!1!==t[a(2122)],l[a(1968)][a(12358)]=t,r[a(12495)][a(565)](l),null==(s=this[a(4758)])||s[a(747)](l),n[a(12500)][a(565)](t)})))}[nz(12504)](t){var e=nz;if(!this[e(12472)]||!t)return;const n=this[e(12469)][e(932)]((t=>t.id===this[e(12472)])),r=this[e(12474)].get(this.activeViewpointId);n&&r&&t.forEach((t=>{var i,s,a=e;if(n.hotpoints)for(let e=n[a(12500)][a(449)]-1;e>=0;--e)t===n[a(12500)][e][a(12352)]&&n[a(12500)][a(690)](e,1);for(let e=r[a(12495)][a(449)]-1;e>=0;--e){const n=r[a(12495)][e];t===(null==(i=n[a(1968)][a(12358)])?void 0:i[a(12352)])&&(r[a(12495)].splice(e,1),null==(s=this.scene)||s[a(1204)](n))}}))}[nz(12505)](t,e,n,r){this[nz(6784)](t,"",!0,e,n,r)}[nz(6784)](t,e,n=!0,r,i,s){var a=nz;if(t===this.activeViewpointId&&e===this.activePanoramaId)return;const o=this.viewpoints[a(932)]((e=>e.id===t));o&&this[a(12506)](o,e,n,r,i,s)}[nz(12507)](){var t=nz;this[t(12474)][t(604)](((e,n)=>{var r,i=t;const s=e[i(6782)];for(let t=s.length-1;t>=0;--t){const e=s[t];if(n===this[i(12472)]&&e.id===this[i(12473)])return;if(n===this[i(12470)]&&e.id===this.previousPanoramaId)return;e[i(4144)][i(1725)](),null==(r=this[i(4758)])||r[i(1204)](e[i(4144)]),s[i(690)](t,1)}}))}unlimitControlsAndShowAssets(t=!1){var e=nz;this.controls&&(this[e(5350)][e(5289)]=!0,this[e(5350)].enableZoom=!0),this[e(12474)].forEach((n=>{var r=e;n[r(6782)].forEach((t=>{var e=r;t.box[e(2122)]=!0})),t&&n[r(12495)].forEach((t=>{t[r(2122)]=!0}))}))}[nz(12503)](t,e,n){var r=nz;const i=this.camera;if(!i)return log.error("[VRViewer] Camera is not initialized"),void t.position.set(e.x,e.y,e.z);let s;const a=Math.abs(e[r(2038)](n));if(a{var r=f;const i=t[r(6782)][r(932)]((t=>t.id===e)),s=null==i?void 0:i[r(4144)];s&&(n?this[r(4052)](s):this[r(4054)](s))},u=(t,e)=>{var n=f;t[n(12495)][n(604)]((t=>{var r=n;e?!1!==t[r(1968)][r(12358)][r(2122)]&&(t.visible=e):t.visible=e}))},d=()=>{var e,i=f;const s=new Vector3(0,0,0),a=new Vector3(1,0,0),o=null==(e=this[i(12508)]())?void 0:e[i(2079)];o&&a[i(540)](o.x,o.y,o.z);const c=t[i(2065)];if(c&&3===c.length&&s[i(540)](c[0],c[1],c[2]),n){const e=t[i(12509)];e&&3===e[i(449)]&&a[i(540)](e[0],e[1],e[2])}this[i(12478)](s,a,r)};!e&&(null==(a=t[l(6782)])?void 0:a[l(449)])>0&&(e=t.panoramas[0].id||""),this.handleCameraUpdateInterval();const p=this.viewpointAssetsMap[l(427)](this[l(12472)]),m=this[l(12474)][l(427)](t.id);if(this[l(12472)]&&p&&(this.activeViewpointId!==t.id&&u(p,!1),h(p,this[l(12473)],!1)),m){if(m[l(6782)].find((t=>t.id===e)))return h(m,e,!0),this[l(12472)]!==t.id&&u(m,!0),this.activeViewpointId!==t.id&&d(),this[l(12472)]=t.id,this[l(12473)]=e,void(i&&i(t))}this.previousViewpointId=this[l(12472)],this.previousPanoramaId=this.activePanoramaId,this[l(12472)]=t.id,this[l(12473)]=e;try{if(this.loadingPanos[l(936)]((n=>n[l(12510)]===t.id&&n.panoramaId===e)))return void log[l(1176)](l(12511)+t.id+l(12512)+e+l(12513));const n=new CancelablePromise(this[l(12514)](t,e));this[l(12475)][l(565)]({viewpointId:t.id,panoramaId:e,creationPromise:n});const r=yield n.promise;this[l(12475)]=this.loadingPanos[l(464)]((n=>n.viewpointId!==t.id||n[l(12515)]!==e));const s=t.position;s&&3===s.length&&r.position.set(s[0],s[1],s[2]),this.activeViewpointId===t.id&&this[l(12473)]===e?(this[l(4052)](r),null==(o=this.scene)||o[l(747)](r),d()):(r.visible=!1,null==(c=this.scene)||c.add(r));const a={id:e,box:r},h=this[l(12474)][l(427)](t.id);if(h)h[l(6782)][l(565)](a),u(h,!0);else{const n=[];t[l(12500)]&&t[l(12500)][l(604)]((i=>{var s=l;const a=i[s(12354)],o=CSS2DObjectUtils.createHotpoint(i[s(12355)]);o.visible=!1!==i[s(2122)],o[s(1968)][s(12358)]=i;const c=new Vector3(a[0],a[1],a[2]);this[s(12503)](o,c,r[s(2065)]),(this[s(12472)]!==t.id||this[s(12473)]!==e)&&(o[s(2122)]=!1),n[s(565)](o)}));const i={panoramas:[a],css2dObjects:n};this.viewpointAssetsMap.set(t.id,i),n[l(604)]((t=>{var e,n=l;return null==(e=this[n(4758)])?void 0:e[n(747)](t)}))}i&&i(t)}catch(t){t[l(452)]!==l(1408)&&s&&s(t)}}))}[nz(12514)](t,e){var n,r=nz;let i=t.imageOrImages,s=t[r(12452)];if((null==(n=t[r(6782)])?void 0:n.length)>0){let n=this.findPanorama(t.id,e);!n&&(n=t[r(6782)][0],log[r(1176)](r(12516)+e+"', will use the first one")),i=n[r(1949)],s=n[r(12517)]}if(!i)throw new Error(r(12518));if(!Array[r(468)](i)&&(i=[i]),1===i[r(449)])return this[r(12519)](i,s);if(6===i[r(449)])return this[r(12520)](i,s);if(24===i[r(449)])return this.createBoxBy24Images(i,s);throw new Error(r(12521)+i[r(449)])}[nz(12519)](t,e){return __async(this,null,(function*(){var n=f;const r=new VRSphere(t,e);return yield r[n(419)](),r}))}createBoxBy6Images(t,e){return __async(this,null,(function*(){var n=f;if(6!==t[n(449)])throw new Error("[VRCube] Wrong number of images! Expected 6, got "+t.length);const r=new VRCube(t,e);return yield r[n(419)](),r}))}[nz(12522)](t,e){return __async(this,null,(function*(){var n=f;if(24!==t[n(449)])throw new Error(n(12523)+t.length);const r=new VRCube24Faces(t,e);return yield r[n(419)](),r}))}getIntersection(t){var e=nz;if(!this[e(3045)]||!this[e(4758)])return;const n=this[e(12474)][e(427)](this[e(12472)]);if(!n)return;const r=n[e(6782)][e(932)]((t=>t.id===this[e(12473)]));if(!r)return;const i=r.box,s=this[e(4863)];let a=new Vector2;t&&(a=CoordinateConversionUtils[e(4324)](t,s));const o=CoordinateConversionUtils[e(4331)](a,this[e(3045)],s);this[e(4864)][e(4112)](o,this[e(3045)]);const c=[i],l=this[e(4864)][e(4115)](c,!0)||[];if(l[e(449)]>0){return l.find((t=>{var n=e;const r=t[n(469)];return r[n(2122)]&&r instanceof Mesh}))}}[nz(4052)](t,e=500){t[nz(4052)](e)}[nz(4054)](t,e=1e3){t.fadeOut(e)}[nz(12494)](){var t=nz;if(this[t(5356)]){clearInterval(this[t(5356)]);const e=this[t(12491)],n=this.finalCameraTarget;e&&n&&this[t(5350)]&&this.camera&&(this[t(3045)].lookAt(n),this.camera.position[t(540)](e.x,e.y,e.z),this[t(5350)][t(573)][t(540)](n.x,n.y,n.z),this.controls.update()),this[t(5356)]=void 0}this.fianlCameraPosition=void 0,this[t(12524)]=void 0}[nz(12360)](t){var e=nz;const n={location:null};if(!this[e(3045)])return n;const r=this[e(1241)](t);return n.location=r?{x:r[e(1220)].x,y:r[e(1220)].y,z:r[e(1220)].z}:null,n}[nz(12525)](t){var e,n=nz;if(!this[n(3045)])return;this[n(12494)]();const r=new Vector3(t[0],t[1],t[2])[n(1014)]()[n(909)](this[n(3045)].position);null==(e=this[n(12476)])||e[n(12526)](r)}},DEFAULT_MARKUP_TOOLBAR_CONFIG={[nz(5266)]:{menuName:nz(12527),icon:{default:nz(12528),iconFont:"iconfont"},type:4,onActive:t=>{var e=nz;t.activateMarkup(e(5267))},onDeactive(t){t[nz(12341)]()},mutexIds:[nz(5185),nz(12529),nz(5188),nz(5190),nz(5273),nz(5192),nz(4264),nz(5194),"X"]},Rect:{defaultActive:!0,menuName:nz(12530),icon:{default:"icon-rectangle",iconFont:nz(12531)},type:4,onActive:t=>{t[nz(12340)]("RectMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:[nz(5266),nz(12529),nz(5188),nz(5190),nz(5273),nz(5192),nz(4264),nz(5194),"X"]},[nz(12529)]:{menuName:"Toolbar.markupCloudRect",icon:{default:nz(12532),iconFont:nz(12531)},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5271))},onDeactive(t){t.deactivateMarkup()},mutexIds:[nz(5185),nz(5266),nz(5188),nz(5190),"Ellipse","Circle",nz(4264),nz(5194),"X"]},PolyLine:{menuName:nz(12533),icon:{default:"icon-polyline",iconFont:nz(12531)},type:4,onActive:t=>{t[nz(12340)]("PolylineMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:[nz(5185),nz(5266),nz(12529),"CloudLine",nz(5273),nz(5192),nz(4264),nz(5194),"X"]},[nz(5190)]:{menuName:nz(12534),icon:{default:nz(12535),iconFont:nz(12531)},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5269))},onDeactive(t){t[nz(12341)]()},mutexIds:["Rect",nz(12529),nz(5188),"Arrow",nz(5273),nz(5192),nz(4264),nz(5194),"X"]},[nz(5273)]:{menuName:"Toolbar.markupEllipse",icon:{default:nz(12536),iconFont:nz(12531)},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5274))},onDeactive(t){t[nz(12341)]()},mutexIds:["Rect","CloudRect",nz(5188),"CloudLine",nz(5266),nz(5192),nz(4264),nz(5194),"X"]},Circle:{menuName:nz(12537),icon:{default:nz(12538),iconFont:nz(12531)},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5268))},onDeactive(t){t[nz(12341)]()},mutexIds:[nz(5185),"CloudRect",nz(5188),"CloudLine","Ellipse",nz(5266),nz(4264),nz(5194),"X"]},Dot:{menuName:nz(12539),icon:{default:nz(12538),iconFont:"iconfont"},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5272))},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine",nz(5190),"Ellipse","Arrow","Circle","Text","X"]},X:{menuName:nz(12540),icon:{default:"icon-cross",iconFont:nz(12531)},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5278))},onDeactive(t){t[nz(12341)]()},mutexIds:[nz(5185),"CloudRect",nz(5188),nz(5190),nz(5273),nz(5192),"Dot",nz(5266),nz(5194)]},[nz(5194)]:{menuName:nz(12541),icon:{default:"icon-text",iconFont:"iconfont"},type:4,onActive:t=>{var e=nz;t[e(12340)](e(5277))},onDeactive(t){t[nz(12341)]()},mutexIds:[nz(5185),nz(12529),"PolyLine",nz(5190),nz(5273),nz(5192),nz(4264),nz(5266),"X"]},StrokeStyle:{menuName:nz(12542),icon:{default:nz(12543),iconFont:"iconfont"},type:1,onClick:(t,e,n)=>{var r=nz;const i=n[r(573)][r(7057)],s=null==i?void 0:i.firstElementChild,a=document[r(538)]("input");a[r(2334)](r(452),"color"),a[r(590)][r(2065)]="absolute",a.style[r(683)]=n.x+"px",a.style[r(2651)]=n.y+"px",a[r(439)]=t[r(12343)](),a[r(4547)](),a[r(12544)]=e=>{var n=r;const i=e[n(573)][n(439)];t.setMarkupLineColor(i),s[n(590)][n(2231)]=i}}},[nz(12545)]:{menuName:"Toolbar.markupLineWidth",icon:{default:nz(12546),iconFont:"iconfont"},customElement(e,n,r){var i=nz;const s=document.createElement(i(539));return s.id=n,s[i(4871)].add(i(12547)),r.children&&s[i(4871)][i(747)](i(5258)),s.title=t(r.menuName),s.innerHTML+=""+s[i(5262)]+i(5265),s},type:3,children:{LineWidth2:{defaultActive:!0,icon:{default:nz(12548),iconFont:"iconfont"},onClick:t=>{t[nz(12549)](2)},type:4,menuName:nz(12550),mutexIds:["LineWidth5",nz(5203)]},[nz(5201)]:{icon:{default:nz(12551),iconFont:nz(12531)},onClick:t=>{t[nz(12549)](3)},type:4,menuName:nz(12552),mutexIds:[nz(5199),nz(5203)]},[nz(5203)]:{icon:{default:nz(12553),iconFont:nz(12531)},onClick:t=>{t[nz(12549)](4)},type:4,menuName:nz(12554),mutexIds:[nz(5199),nz(5201)]}}},[nz(5204)]:{menuName:nz(12555),icon:{default:"icon-font"},customElement(e,n,r){var i=nz;const s=document[i(538)](i(539));return s.id=n,s.classList.add(i(12547)),r.children&&s[i(4871)][i(747)](i(5258)),s[i(5262)]=t(r[i(5263)]),s[i(5260)]+=i(5264)+s.title+i(5265),s},type:3,children:{[nz(5205)]:{icon:{default:nz(12556),iconFont:nz(12531)},onClick:t=>{t[nz(12348)](14)},type:4,menuName:"",mutexIds:[nz(5207),nz(5209)]},[nz(5207)]:{defaultActive:!0,icon:{default:nz(12557),iconFont:"iconfont"},onClick:t=>{t.setMarkupFontSize(18)},type:4,menuName:"",mutexIds:[nz(5205),nz(5209)]},[nz(5209)]:{icon:{default:"icon-font24",iconFont:"iconfont"},onClick:t=>{t[nz(12348)](24)},type:4,menuName:"",mutexIds:[nz(5205),nz(5207)]}}},[nz(12558)]:{icon:{default:nz(12559),iconFont:nz(12531)},onClick:t=>{var e=nz;log[e(1175)](e(5241),e(5599),t),t[e(12351)]()},type:1,menuName:nz(12560)},[nz(5210)]:{icon:{default:""},customElement(e,n,r){var i=nz;const s=document[i(538)](i(539));return s.id=n,s.classList[i(747)](i(12547)),r[i(1602)]&&s[i(4871)][i(747)](i(5258)),s[i(5262)]=t(r[i(5263)]),s[i(5260)]+=i(5264)+s.title+i(5265),s},onClick:(t,e)=>{var n,r=nz;t[r(12341)](),e.destroy(),null==(n=t[r(5251)])||n.show()},type:1,menuName:nz(12561)}},MARKUP_GROUP_CONFIG=[[nz(5266),nz(5185),nz(12529),nz(5188),nz(5273),nz(5192),nz(5194),nz(12558),"MarkupQuit"]],MarkupToolbar=class extends Toolbar2{constructor(t,e,n=[...MARKUP_GROUP_CONFIG]){super(t,e,n)}},DEFAULT_BIMVIEWER_TOOLBAR_CONFIG={[nz(12562)]:{icon:{default:nz(12563),active:"icon-home-filled"},menuName:nz(12564),type:1,onClick:t=>{t[nz(6845)]()}},[nz(5175)]:{icon:{default:nz(12565),active:"icon-orthomode-filled"},menuName:"Toolbar.orthoView",type:4,onActive:t=>{var e=nz;log[e(1175)](e(5241),"Enter OrthoMode"),t[e(6849)](!0)},onDeactive:t=>{var e=nz;log.info(e(5241),e(12566)),t.setToOrthographicCamera(!1)}},[nz(5176)]:{icon:{default:nz(12567),active:"icon-measure-filled"},menuName:"Toolbar.measurement",type:3,children:{MeasureDistance:{icon:{default:nz(12568),active:nz(12569)},menuName:nz(12570),onActive:t=>{var e=nz;t[e(11920)](e(9524))},onDeactive:t=>{t.deactivateMeasurement()},type:4,mutexIds:["MeasureArea",nz(5179),"MeasureCoordinate"]},[nz(5178)]:{icon:{default:"icon-areameasure",active:nz(12571)},onActive:t=>{var e=nz;t[e(11920)](e(11828))},onDeactive:t=>{t.deactivateMeasurement()},type:4,menuName:nz(12572),mutexIds:[nz(5177),nz(5179),nz(5180)]},[nz(5179)]:{menuName:nz(12573),icon:{default:"icon-anglemeasure"},type:4,onActive:t=>{t.activateMeasurement("Angle")},onDeactive:t=>{t[nz(5659)]()},mutexIds:[nz(5177),nz(5178),nz(5180)]},[nz(5180)]:{menuName:"Toolbar.coordinateMeasurement",icon:{default:nz(12568)},type:4,onActive:t=>{var e=nz;t.activateMeasurement(e(5593))},onDeactive:t=>{t[nz(5659)]()},mutexIds:[nz(5177),nz(5178),nz(5179)]},[nz(5181)]:{icon:{default:nz(12574),active:nz(12575)},onClick:t=>{var e=nz;log[e(1178)](e(5241),e(12576),t),t[e(11928)]()},type:1,menuName:"Toolbar.clearMeasurement"}}},[nz(5211)]:{icon:{default:nz(12577),active:nz(12578)},menuName:nz(12579),type:3,children:{[nz(6499)]:{icon:{default:"icon-sectionplane",active:nz(12580)},menuName:nz(12581),type:4,onActive:t=>{var e=nz;t[e(6862)](e(4629))},onDeactive:t=>{t[nz(6861)]()},mutexIds:[nz(5212),nz(5213)]},[nz(5213)]:{icon:{default:"icon-choosesectionplane",active:nz(12582)},menuName:nz(12583),type:4,onActive:t=>{var e=nz;t[e(6862)](e(4628))},onDeactive:t=>{t[nz(6861)]()},mutexIds:[nz(6499),"SectionBox"]},[nz(5212)]:{icon:{default:nz(12584),active:nz(12585)},menuName:nz(12586),type:4,onActive:t=>{t[nz(6862)]()},onDeactive:t=>{t[nz(6861)]()},mutexIds:[nz(6499),"SectionPlane"]}}},[nz(5214)]:{icon:{default:nz(12587),active:nz(12588)},menuName:nz(12589),type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),t(12590))},onDeactive:()=>{var t=nz;log.info("[Toolbar]",t(12591))}},Viewpoint:{icon:{default:nz(12592),active:nz(12593)},menuName:"Toolbar.viewpoint",type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),"Activate Viewpoint")},onDeactive:()=>{var t=nz;log.info(t(5241),t(12594))},visible:!1},[nz(5216)]:{icon:{default:"icon-annotation",active:nz(12595)},menuName:nz(12596),type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),"Activate Annotation")},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),"Deactivate Annotation")},visible:!1},[nz(5217)]:{icon:{default:nz(12597),active:nz(12598)},menuName:"Toolbar.property",type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),t(12599))},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),t(12600))},visible:!1},[nz(5218)]:{icon:{default:nz(12601),active:nz(12602)},menuName:"Toolbar.settings",type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),t(12603))},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),t(12604))},visible:!1},[nz(5221)]:{icon:{default:nz(12605),active:nz(12606)},menuName:nz(12607),type:4,onClick:(t,e)=>{var n=nz;const r=()=>{var t=f;const n=null==e?void 0:e[t(5235)][t(427)](t(5221));n&&n[t(5252)](CommonUtils.isFullScreen())};CommonUtils[n(12608)]()?(CommonUtils.exitFullscreen(),window.removeEventListener(n(6688),r)):CommonUtils[n(4292)](t.viewerContainer),window[n(808)]("resize",r)}}},GROUP_CONFIG=[[nz(12562),nz(5175),nz(5221),nz(5224)],[nz(5176),nz(5182),nz(5211)],[nz(5214),nz(5215),nz(5216),"Property","Compared",nz(5220),nz(5223)],[nz(5218)]],DEFAULT_VRVIEWER_TOOLBAR_CONFIG={[nz(5222)]:{icon:{default:"icon-clear",active:"icon-clear-filled"},menuName:nz(750),type:1,onClick:()=>{}}},DEFAULT_DXFVIEWER_TOOLBAR_CONFIG={[nz(12562)]:{icon:{default:nz(12609),active:nz(12609),iconFont:nz(12531)},menuName:nz(12564),type:1,onClick:t=>{t.goToHomeView()}},[nz(5224)]:{icon:{default:"icon-kuangxuanfangda",active:nz(12610),iconFont:nz(12531)},menuName:nz(12611),type:1,onClick:t=>{t[nz(12612)]()}},[nz(5176)]:{icon:{default:nz(12613),active:"icon-celiang1",iconFont:nz(12531)},menuName:nz(12614),type:3,children:{MeasureDistance:{icon:{default:nz(12568),active:nz(12569)},menuName:nz(12570),onActive:t=>{var e=nz;t[e(11920)](e(9524))},onDeactive:t=>{t[nz(5659)]()},type:4,mutexIds:[nz(5178),nz(5179),nz(5180)]},MeasureArea:{icon:{default:nz(12615),active:nz(12571)},onActive:t=>{var e=nz;t.activateMeasurement(e(11828))},onDeactive:t=>{t[nz(5659)]()},type:4,menuName:nz(12572),mutexIds:[nz(5177),nz(5179),nz(5180)]},[nz(5179)]:{menuName:nz(12573),icon:{default:nz(12616)},type:4,onActive:t=>{var e=nz;t.activateMeasurement(e(5592))},onDeactive:t=>{t[nz(5659)]()},mutexIds:[nz(5177),"MeasureArea",nz(5180)]},[nz(5180)]:{menuName:nz(12617),icon:{default:nz(12568)},type:4,onActive:t=>{var e=nz;t.activateMeasurement(e(5593))},onDeactive:t=>{t[nz(5659)]()},visible:!1,mutexIds:[nz(5177),nz(5178),nz(5179)]},[nz(5181)]:{icon:{default:nz(12574),active:"icon-clear-filled"},onClick:t=>{var e=nz;log[e(1178)](e(5241),"Clearing Measure",t),t[e(11928)]()},type:1,menuName:nz(12618)}}},[nz(5182)]:{icon:{default:nz(12619),iconFont:nz(12531)},menuName:nz(12620),type:1,onClick:(t,e)=>{var n=nz;t[n(12340)](n(5276)),e[n(6314)](),t[n(5659)](),new MarkupToolbar(t,__spreadValues({},DEFAULT_MARKUP_TOOLBAR_CONFIG))}},Settings:{icon:{default:"icon-settings",active:nz(12602)},menuName:nz(12621),type:4,onActive:()=>{var t=nz;log.info(t(5241),"Activate Settings")},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),t(12604))},visible:!0},[nz(5219)]:{icon:{default:nz(12622),iconFont:nz(12531)},menuName:nz(12623),type:4,onActive:()=>{var t=nz;log.info(t(5241),"Activate Compare")},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),t(12624))},visible:!1},QuitCompare:{icon:{default:"icon-compared",iconFont:nz(12531)},menuName:nz(12625),type:4,onActive:()=>{var t=nz;log[t(1175)](t(5241),t(12626))},onDeactive:()=>{var t=nz;log[t(1175)](t(5241),"Deactivate Compare")},visible:!1},[nz(5223)]:{icon:{default:nz(12627),active:nz(12627),iconFont:nz(12531)},menuName:nz(12628),type:4,onClick:()=>{}},[nz(5221)]:{icon:{default:"icon-quanping",active:"icon-quanping",iconFont:"iconfont"},menuName:"Toolbar.fullscreen",type:4,onClick:(t,e)=>{var n=nz;const r=()=>{var t=f;const n=null==e?void 0:e.menuList.get(t(5221));n&&n[t(5252)](CommonUtils.isFullScreen())};CommonUtils[n(12608)]()?(CommonUtils[n(4295)](),window.removeEventListener(n(6688),r)):CommonUtils[n(4292)](t.viewerContainer),window.addEventListener(n(6688),r)}}},DEFAULT_BIM_VIEWER_CONFIG={enableNavCube:!0,enableAxisGizmo:!0,enableToolbar:!0,enableBottomBar:!0,enableContextMenu:!0,enableSpinner:!0,containerId:nz(12629),units:nz(12630)},SIMPLE_BIM_VIEWER_CONFIG={enableNavCube:!1,enableAxisGizmo:!1,enableToolbar:!1,enableBottomBar:!1,enableContextMenu:!1,containerId:"myCanvas"};export{AXIS_SECTION_PLANE_CONTROL_ID,AXIS_SECTION_PLANE_ID,BaseViewer,BimViewer,BimViewerDatGui,CanvasRender,CommonUtils,ControlsHelper,CoordinateConversionUtils,DEFAULT_BIMVIEWER_TOOLBAR_CONFIG,DEFAULT_BIM_VIEWER_CONFIG,DEFAULT_DXFVIEWER_TOOLBAR_CONFIG,DEFAULT_MARKUP_TOOLBAR_CONFIG,DEFAULT_VRVIEWER_TOOLBAR_CONFIG,DXFLoader,DeviceUtils,Drawable,DrawableList,DxfChangeType,DxfCompare,DxfViewer,ENTER_KEY,ESC_KEY,Event,Exploder,ExportUtils,FpsUtils,GROUND_PLANE_RENDER_ORDER,GROUP_CONFIG,GeometryUtils,GroundUtils,ICON_FONT_CLASS,IUploader,InstantiateHelper,KEYDOWN_EVENT,KEYUP_EVENT,Keys,LocalDxfUploader,LocalImageUploader,LocalModelUploader,MOUSEDOWN_EVENT,MOUSEMOVE_EVENT,MOUSEUP_EVENT,MarkupToolbar,MarkupType,MaterialUtils,MathUtils2 as MathUtils,MeasurementType,MenuTypeEnums,MergeUtils,ObjectUtils,RafHelper,SECTION_BOX_ID,SECTION_PLANE_CONTROL_ID,SECTION_PLANE_ID,SECTION_PLANE_NAME,SIMPLE_BIM_VIEWER_CONFIG,STATE,SVGObject,SVGRenderer,SceneUtils,SectionMode,SectionType,SimplifiedBimViewer,SimplifyUtils,SkyboxUtils,Toolbar2 as Toolbar,ToolbarMenu,ToolbarMenuId,VRControls2 as VRControls,VRViewer,Viewer3DUtils,ViewerEvent,ViewerMode,Views,getLengthValueByUnit,getUnitStr,layerForNonSnapableObjects,layerForUnselectableObjects,matrixAutoUpdate,parseDxfMTextContent,sceneAutoUpdate,setIcon,showPrecisionValue,unitConversionByMeter,unitLabel}; \ No newline at end of file +var nNe=Object.create;var e1=Object.defineProperty,sNe=Object.defineProperties,aNe=Object.getOwnPropertyDescriptor,oNe=Object.getOwnPropertyDescriptors,lNe=Object.getOwnPropertyNames,_7=Object.getOwnPropertySymbols,R7=Object.getPrototypeOf,M7=Object.prototype.hasOwnProperty,cNe=Object.prototype.propertyIsEnumerable,uNe=Reflect.get;var Gh=Math.pow,w7=(t,r,e)=>r in t?e1(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,Ur=(t,r)=>{for(var e in r||(r={}))M7.call(r,e)&&w7(t,e,r[e]);if(_7)for(var e of _7(r))cNe.call(r,e)&&w7(t,e,r[e]);return t},Mn=(t,r)=>sNe(t,oNe(r));var zP=(t=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(t,{get:(r,e)=>(typeof require!="undefined"?require:r)[e]}):t)(function(t){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var hNe=(t,r)=>()=>(t&&(r=t(t=0)),r);var V=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),z_=(t,r)=>{for(var e in r)e1(t,e,{get:r[e],enumerable:!0})},D7=(t,r,e,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of lNe(r))!M7.call(t,n)&&n!==e&&e1(t,n,{get:()=>r[n],enumerable:!(i=aNe(r,n))||i.enumerable});return t};var Un=(t,r,e)=>(e=t!=null?nNe(R7(t)):{},D7(r||!t||!t.__esModule?e1(e,"default",{value:t,enumerable:!0}):e,t)),pNe=t=>D7(e1({},"__esModule",{value:!0}),t);var C7=(t,r,e)=>uNe(R7(t),e,r);var ot=(t,r,e)=>new Promise((i,n)=>{var s=l=>{try{o(e.next(l))}catch(c){n(c)}},a=l=>{try{o(e.throw(l))}catch(c){n(c)}},o=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);o((e=e.apply(t,r)).next())});var P7={};z_(P7,{default:()=>TNe});function j_(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?j_=function(r){return typeof r}:j_=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},j_(t)}function fNe(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function A7(t,r){for(var e=0;e1&&arguments[1]!==void 0?arguments[1]:{};fNe(this,a),this._locale=n(o),this._select=r(this._locale),this._type=yNe(l.type),this._nf=new t("en",l)}return mNe(a,[{key:"resolvedOptions",value:function(){var l=this._nf.resolvedOptions(),c=l.minimumIntegerDigits,u=l.minimumFractionDigits,h=l.maximumFractionDigits,p=l.minimumSignificantDigits,d=l.maximumSignificantDigits,f={locale:this._locale,minimumIntegerDigits:c,minimumFractionDigits:u,maximumFractionDigits:h,pluralCategories:e(this._locale,this._type==="ordinal"),type:this._type};return typeof p=="number"&&(f.minimumSignificantDigits=p,f.maximumSignificantDigits=d),f}},{key:"select",value:function(l){if(!(this instanceof a))throw new TypeError("select() called on incompatible ".concat(this));if(typeof l!="number"&&(l=Number(l)),!isFinite(l))return"other";var c=this._nf.format(Math.abs(l));return this._select(c,this._type==="ordinal")}}],[{key:"supportedLocalesOf",value:function(l){return O7(l).filter(i)}}]),a}();return Object.defineProperty(s,"prototype",{writable:!1}),s}var gNe,O7,vNe,yNe,N7=hNe(()=>{gNe=function(r){return r.split("-").every(function(e){return/[a-z0-9]+/i.test(e)})},O7=function(r){if(!r)return[];Array.isArray(r)||(r=[r]);for(var e={},i=0;i{"use strict";function ENe(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function L7(t,r){for(var e=0;e="0"&&a<="9"&&++n}return nthis._maxSD?e.toPrecision(this._maxSD):i}return this._minFD>0?e.toFixed(this._minFD):this._maxFD===0?e.toFixed(0):String(e)}}]),t}();F7.exports=xNe});var W7=V((nLt,j7)=>{"use strict";var INe=(N7(),pNe(P7)),SNe=H7();function U7(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var _Ne=U7(INe),wNe=U7(SNe);function W_(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?W_=function(r){return typeof r}:W_=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},W_(t)}var B7=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function k7(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jP={exports:{}};(function(t,r){var e=function(c,u){return u?"other":c==1?"one":"other"},i=function(c,u){return u?"other":c==0||c==1?"one":"other"},n=function(c,u){return u?"other":c>=0&&c<=1?"one":"other"},s=function(c,u){var h=String(c).split("."),p=!h[1];return u?"other":c==1&&p?"one":"other"},a=function(c,u){return"other"},o=function(c,u){return u?"other":c==1?"one":c==2?"two":"other"};(function(l,c){Object.defineProperty(c,"__esModule",{value:!0}),t.exports=c})(B7,{_in:a,af:e,ak:i,am:n,an:e,ar:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-2);return u?"other":c==0?"zero":c==1?"one":c==2?"two":d>=3&&d<=10?"few":d>=11&&d<=99?"many":"other"},ars:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-2);return u?"other":c==0?"zero":c==1?"one":c==2?"two":d>=3&&d<=10?"few":d>=11&&d<=99?"many":"other"},as:function(c,u){return u?c==1||c==5||c==7||c==8||c==9||c==10?"one":c==2||c==3?"two":c==4?"few":c==6?"many":"other":c>=0&&c<=1?"one":"other"},asa:e,ast:s,az:function(c,u){var h=String(c).split("."),p=h[0],d=p.slice(-1),f=p.slice(-2),m=p.slice(-3);return u?d==1||d==2||d==5||d==7||d==8||f==20||f==50||f==70||f==80?"one":d==3||d==4||m==100||m==200||m==300||m==400||m==500||m==600||m==700||m==800||m==900?"few":p==0||d==6||f==40||f==60||f==90?"many":"other":c==1?"one":"other"},be:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-1),f=p&&h[0].slice(-2);return u?(d==2||d==3)&&f!=12&&f!=13?"few":"other":d==1&&f!=11?"one":d>=2&&d<=4&&(f<12||f>14)?"few":p&&d==0||d>=5&&d<=9||f>=11&&f<=14?"many":"other"},bem:e,bez:e,bg:e,bho:i,bm:a,bn:function(c,u){return u?c==1||c==5||c==7||c==8||c==9||c==10?"one":c==2||c==3?"two":c==4?"few":c==6?"many":"other":c>=0&&c<=1?"one":"other"},bo:a,br:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-1),f=p&&h[0].slice(-2),m=p&&h[0].slice(-6);return u?"other":d==1&&f!=11&&f!=71&&f!=91?"one":d==2&&f!=12&&f!=72&&f!=92?"two":(d==3||d==4||d==9)&&(f<10||f>19)&&(f<70||f>79)&&(f<90||f>99)?"few":c!=0&&p&&m==0?"many":"other"},brx:e,bs:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=p.slice(-2),y=d.slice(-1),E=d.slice(-2);return u?"other":f&&m==1&&g!=11||y==1&&E!=11?"one":f&&m>=2&&m<=4&&(g<12||g>14)||y>=2&&y<=4&&(E<12||E>14)?"few":"other"},ca:function(c,u){var h=String(c).split("."),p=!h[1];return u?c==1||c==3?"one":c==2?"two":c==4?"few":"other":c==1&&p?"one":"other"},ce:e,ceb:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=d.slice(-1);return u?"other":f&&(p==1||p==2||p==3)||f&&m!=4&&m!=6&&m!=9||!f&&g!=4&&g!=6&&g!=9?"one":"other"},cgg:e,chr:e,ckb:e,cs:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1];return u?"other":c==1&&d?"one":p>=2&&p<=4&&d?"few":d?"other":"many"},cy:function(c,u){return u?c==0||c==7||c==8||c==9?"zero":c==1?"one":c==2?"two":c==3||c==4?"few":c==5||c==6?"many":"other":c==0?"zero":c==1?"one":c==2?"two":c==3?"few":c==6?"many":"other"},da:function(c,u){var h=String(c).split("."),p=h[0],d=Number(h[0])==c;return u?"other":c==1||!d&&(p==0||p==1)?"one":"other"},de:s,doi:n,dsb:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-2),g=d.slice(-2);return u?"other":f&&m==1||g==1?"one":f&&m==2||g==2?"two":f&&(m==3||m==4)||g==3||g==4?"few":"other"},dv:e,dz:a,ee:e,el:e,en:function(c,u){var h=String(c).split("."),p=!h[1],d=Number(h[0])==c,f=d&&h[0].slice(-1),m=d&&h[0].slice(-2);return u?f==1&&m!=11?"one":f==2&&m!=12?"two":f==3&&m!=13?"few":"other":c==1&&p?"one":"other"},eo:e,es:e,et:s,eu:e,fa:n,ff:function(c,u){return u?"other":c>=0&&c<2?"one":"other"},fi:s,fil:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=d.slice(-1);return u?c==1?"one":"other":f&&(p==1||p==2||p==3)||f&&m!=4&&m!=6&&m!=9||!f&&g!=4&&g!=6&&g!=9?"one":"other"},fo:e,fr:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=p.slice(-6);return u?c==1?"one":"other":c>=0&&c<2?"one":p!=0&&f==0&&d?"many":"other"},fur:e,fy:s,ga:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?c==1?"one":"other":c==1?"one":c==2?"two":p&&c>=3&&c<=6?"few":p&&c>=7&&c<=10?"many":"other"},gd:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?c==1||c==11?"one":c==2||c==12?"two":c==3||c==13?"few":"other":c==1||c==11?"one":c==2||c==12?"two":p&&c>=3&&c<=10||p&&c>=13&&c<=19?"few":"other"},gl:s,gsw:e,gu:function(c,u){return u?c==1?"one":c==2||c==3?"two":c==4?"few":c==6?"many":"other":c>=0&&c<=1?"one":"other"},guw:i,gv:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=p.slice(-1),m=p.slice(-2);return u?"other":d&&f==1?"one":d&&f==2?"two":d&&(m==0||m==20||m==40||m==60||m==80)?"few":d?"other":"many"},ha:e,haw:e,he:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=Number(h[0])==c,m=f&&h[0].slice(-1);return u?"other":c==1&&d?"one":p==2&&d?"two":d&&(c<0||c>10)&&f&&m==0?"many":"other"},hi:function(c,u){return u?c==1?"one":c==2||c==3?"two":c==4?"few":c==6?"many":"other":c>=0&&c<=1?"one":"other"},hr:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=p.slice(-2),y=d.slice(-1),E=d.slice(-2);return u?"other":f&&m==1&&g!=11||y==1&&E!=11?"one":f&&m>=2&&m<=4&&(g<12||g>14)||y>=2&&y<=4&&(E<12||E>14)?"few":"other"},hsb:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-2),g=d.slice(-2);return u?"other":f&&m==1||g==1?"one":f&&m==2||g==2?"two":f&&(m==3||m==4)||g==3||g==4?"few":"other"},hu:function(c,u){return u?c==1||c==5?"one":"other":c==1?"one":"other"},hy:function(c,u){return u?c==1?"one":"other":c>=0&&c<2?"one":"other"},ia:s,id:a,ig:a,ii:a,io:s,is:function(c,u){var h=String(c).split("."),p=h[0],d=Number(h[0])==c,f=p.slice(-1),m=p.slice(-2);return u?"other":d&&f==1&&m!=11||!d?"one":"other"},it:function(c,u){var h=String(c).split("."),p=!h[1];return u?c==11||c==8||c==80||c==800?"many":"other":c==1&&p?"one":"other"},iu:o,iw:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=Number(h[0])==c,m=f&&h[0].slice(-1);return u?"other":c==1&&d?"one":p==2&&d?"two":d&&(c<0||c>10)&&f&&m==0?"many":"other"},ja:a,jbo:a,jgo:e,ji:s,jmc:e,jv:a,jw:a,ka:function(c,u){var h=String(c).split("."),p=h[0],d=p.slice(-2);return u?p==1?"one":p==0||d>=2&&d<=20||d==40||d==60||d==80?"many":"other":c==1?"one":"other"},kab:function(c,u){return u?"other":c>=0&&c<2?"one":"other"},kaj:e,kcg:e,kde:a,kea:a,kk:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-1);return u?d==6||d==9||p&&d==0&&c!=0?"many":"other":c==1?"one":"other"},kkj:e,kl:e,km:a,kn:n,ko:a,ks:e,ksb:e,ksh:function(c,u){return u?"other":c==0?"zero":c==1?"one":"other"},ku:e,kw:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-2),f=p&&h[0].slice(-3),m=p&&h[0].slice(-5),g=p&&h[0].slice(-6);return u?p&&c>=1&&c<=4||d>=1&&d<=4||d>=21&&d<=24||d>=41&&d<=44||d>=61&&d<=64||d>=81&&d<=84?"one":c==5||d==5?"many":"other":c==0?"zero":c==1?"one":d==2||d==22||d==42||d==62||d==82||p&&f==0&&(m>=1e3&&m<=2e4||m==4e4||m==6e4||m==8e4)||c!=0&&g==1e5?"two":d==3||d==23||d==43||d==63||d==83?"few":c!=1&&(d==1||d==21||d==41||d==61||d==81)?"many":"other"},ky:e,lag:function(c,u){var h=String(c).split("."),p=h[0];return u?"other":c==0?"zero":(p==0||p==1)&&c!=0?"one":"other"},lb:e,lg:e,lij:function(c,u){var h=String(c).split("."),p=!h[1],d=Number(h[0])==c;return u?c==11||c==8||d&&c>=80&&c<=89||d&&c>=800&&c<=899?"many":"other":c==1&&p?"one":"other"},lkt:a,ln:i,lo:function(c,u){return u&&c==1?"one":"other"},lt:function(c,u){var h=String(c).split("."),p=h[1]||"",d=Number(h[0])==c,f=d&&h[0].slice(-1),m=d&&h[0].slice(-2);return u?"other":f==1&&(m<11||m>19)?"one":f>=2&&f<=9&&(m<11||m>19)?"few":p!=0?"many":"other"},lv:function(c,u){var h=String(c).split("."),p=h[1]||"",d=p.length,f=Number(h[0])==c,m=f&&h[0].slice(-1),g=f&&h[0].slice(-2),y=p.slice(-2),E=p.slice(-1);return u?"other":f&&m==0||g>=11&&g<=19||d==2&&y>=11&&y<=19?"zero":m==1&&g!=11||d==2&&E==1&&y!=11||d!=2&&E==1?"one":"other"},mas:e,mg:i,mgo:e,mk:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=p.slice(-2),y=d.slice(-1),E=d.slice(-2);return u?m==1&&g!=11?"one":m==2&&g!=12?"two":(m==7||m==8)&&g!=17&&g!=18?"many":"other":f&&m==1&&g!=11||y==1&&E!=11?"one":"other"},ml:e,mn:e,mo:function(c,u){var h=String(c).split("."),p=!h[1],d=Number(h[0])==c,f=d&&h[0].slice(-2);return u?c==1?"one":"other":c==1&&p?"one":!p||c==0||f>=2&&f<=19?"few":"other"},mr:function(c,u){return u?c==1?"one":c==2||c==3?"two":c==4?"few":"other":c==1?"one":"other"},ms:function(c,u){return u&&c==1?"one":"other"},mt:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-2);return u?"other":c==1?"one":c==0||d>=2&&d<=10?"few":d>=11&&d<=19?"many":"other"},my:a,nah:e,naq:o,nb:e,nd:e,ne:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?p&&c>=1&&c<=4?"one":"other":c==1?"one":"other"},nl:s,nn:e,nnh:e,no:e,nqo:a,nr:e,nso:i,ny:e,nyn:e,om:e,or:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?c==1||c==5||p&&c>=7&&c<=9?"one":c==2||c==3?"two":c==4?"few":c==6?"many":"other":c==1?"one":"other"},os:e,osa:a,pa:i,pap:e,pcm:n,pl:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=p.slice(-1),m=p.slice(-2);return u?"other":c==1&&d?"one":d&&f>=2&&f<=4&&(m<12||m>14)?"few":d&&p!=1&&(f==0||f==1)||d&&f>=5&&f<=9||d&&m>=12&&m<=14?"many":"other"},prg:function(c,u){var h=String(c).split("."),p=h[1]||"",d=p.length,f=Number(h[0])==c,m=f&&h[0].slice(-1),g=f&&h[0].slice(-2),y=p.slice(-2),E=p.slice(-1);return u?"other":f&&m==0||g>=11&&g<=19||d==2&&y>=11&&y<=19?"zero":m==1&&g!=11||d==2&&E==1&&y!=11||d!=2&&E==1?"one":"other"},ps:e,pt:function(c,u){var h=String(c).split("."),p=h[0];return u?"other":p==0||p==1?"one":"other"},pt_PT:s,rm:e,ro:function(c,u){var h=String(c).split("."),p=!h[1],d=Number(h[0])==c,f=d&&h[0].slice(-2);return u?c==1?"one":"other":c==1&&p?"one":!p||c==0||f>=2&&f<=19?"few":"other"},rof:e,root:a,ru:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=p.slice(-1),m=p.slice(-2);return u?"other":d&&f==1&&m!=11?"one":d&&f>=2&&f<=4&&(m<12||m>14)?"few":d&&f==0||d&&f>=5&&f<=9||d&&m>=11&&m<=14?"many":"other"},rwk:e,sah:a,saq:e,sat:o,sc:function(c,u){var h=String(c).split("."),p=!h[1];return u?c==11||c==8||c==80||c==800?"many":"other":c==1&&p?"one":"other"},scn:function(c,u){var h=String(c).split("."),p=!h[1];return u?c==11||c==8||c==80||c==800?"many":"other":c==1&&p?"one":"other"},sd:e,sdh:e,se:o,seh:e,ses:a,sg:a,sh:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=p.slice(-2),y=d.slice(-1),E=d.slice(-2);return u?"other":f&&m==1&&g!=11||y==1&&E!=11?"one":f&&m>=2&&m<=4&&(g<12||g>14)||y>=2&&y<=4&&(E<12||E>14)?"few":"other"},shi:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?"other":c>=0&&c<=1?"one":p&&c>=2&&c<=10?"few":"other"},si:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"";return u?"other":c==0||c==1||p==0&&d==1?"one":"other"},sk:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1];return u?"other":c==1&&d?"one":p>=2&&p<=4&&d?"few":d?"other":"many"},sl:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=p.slice(-2);return u?"other":d&&f==1?"one":d&&f==2?"two":d&&(f==3||f==4)||!d?"few":"other"},sma:o,smi:o,smj:o,smn:o,sms:o,sn:e,so:e,sq:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-1),f=p&&h[0].slice(-2);return u?c==1?"one":d==4&&f!=14?"many":"other":c==1?"one":"other"},sr:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=p.slice(-2),y=d.slice(-1),E=d.slice(-2);return u?"other":f&&m==1&&g!=11||y==1&&E!=11?"one":f&&m>=2&&m<=4&&(g<12||g>14)||y>=2&&y<=4&&(E<12||E>14)?"few":"other"},ss:e,ssy:e,st:e,su:a,sv:function(c,u){var h=String(c).split("."),p=!h[1],d=Number(h[0])==c,f=d&&h[0].slice(-1),m=d&&h[0].slice(-2);return u?(f==1||f==2)&&m!=11&&m!=12?"one":"other":c==1&&p?"one":"other"},sw:s,syr:e,ta:e,te:e,teo:e,th:a,ti:i,tig:e,tk:function(c,u){var h=String(c).split("."),p=Number(h[0])==c,d=p&&h[0].slice(-1);return u?d==6||d==9||c==10?"few":"other":c==1?"one":"other"},tl:function(c,u){var h=String(c).split("."),p=h[0],d=h[1]||"",f=!h[1],m=p.slice(-1),g=d.slice(-1);return u?c==1?"one":"other":f&&(p==1||p==2||p==3)||f&&m!=4&&m!=6&&m!=9||!f&&g!=4&&g!=6&&g!=9?"one":"other"},tn:e,to:a,tr:e,ts:e,tzm:function(c,u){var h=String(c).split("."),p=Number(h[0])==c;return u?"other":c==0||c==1||p&&c>=11&&c<=99?"one":"other"},ug:e,uk:function(c,u){var h=String(c).split("."),p=h[0],d=!h[1],f=Number(h[0])==c,m=f&&h[0].slice(-1),g=f&&h[0].slice(-2),y=p.slice(-1),E=p.slice(-2);return u?m==3&&g!=13?"few":"other":d&&y==1&&E!=11?"one":d&&y>=2&&y<=4&&(E<12||E>14)?"few":d&&y==0||d&&y>=5&&y<=9||d&&E>=11&&E<=14?"many":"other"},ur:s,uz:e,ve:e,vi:function(c,u){return u&&c==1?"one":"other"},vo:e,vun:e,wa:i,wae:e,wo:a,xh:e,xog:e,yi:s,yo:a,yue:a,zh:a,zu:n})})(jP);var G7=k7(jP.exports),RNe=Object.freeze(Object.assign(Object.create(null),jP.exports,{default:G7})),WP={exports:{}};(function(t,r){var e="zero",i="one",n="two",s="few",a="many",o="other",l={cardinal:[i,o],ordinal:[o]},c={cardinal:[o],ordinal:[o]},u={cardinal:[i,s,a,o],ordinal:[o]},h={cardinal:[i,o],ordinal:[i,o]},p={cardinal:[i,n,o],ordinal:[o]};(function(d,f){Object.defineProperty(f,"__esModule",{value:!0}),t.exports=f})(B7,{_in:c,af:l,ak:l,am:l,an:l,ar:{cardinal:[e,i,n,s,a,o],ordinal:[o]},ars:{cardinal:[e,i,n,s,a,o],ordinal:[o]},as:{cardinal:[i,o],ordinal:[i,n,s,a,o]},asa:l,ast:l,az:{cardinal:[i,o],ordinal:[i,s,a,o]},be:{cardinal:[i,s,a,o],ordinal:[s,o]},bem:l,bez:l,bg:l,bho:l,bm:c,bn:{cardinal:[i,o],ordinal:[i,n,s,a,o]},bo:c,br:{cardinal:[i,n,s,a,o],ordinal:[o]},brx:l,bs:{cardinal:[i,s,o],ordinal:[o]},ca:{cardinal:[i,o],ordinal:[i,n,s,o]},ce:l,ceb:l,cgg:l,chr:l,ckb:l,cs:u,cy:{cardinal:[e,i,n,s,a,o],ordinal:[e,i,n,s,a,o]},da:l,de:l,doi:l,dsb:{cardinal:[i,n,s,o],ordinal:[o]},dv:l,dz:c,ee:l,el:l,en:{cardinal:[i,o],ordinal:[i,n,s,o]},eo:l,es:l,et:l,eu:l,fa:l,ff:l,fi:l,fil:h,fo:l,fr:{cardinal:[i,a,o],ordinal:[i,o]},fur:l,fy:l,ga:{cardinal:[i,n,s,a,o],ordinal:[i,o]},gd:{cardinal:[i,n,s,o],ordinal:[i,n,s,o]},gl:l,gsw:l,gu:{cardinal:[i,o],ordinal:[i,n,s,a,o]},guw:l,gv:{cardinal:[i,n,s,a,o],ordinal:[o]},ha:l,haw:l,he:{cardinal:[i,n,a,o],ordinal:[o]},hi:{cardinal:[i,o],ordinal:[i,n,s,a,o]},hr:{cardinal:[i,s,o],ordinal:[o]},hsb:{cardinal:[i,n,s,o],ordinal:[o]},hu:h,hy:h,ia:l,id:c,ig:c,ii:c,io:l,is:l,it:{cardinal:[i,o],ordinal:[a,o]},iu:p,iw:{cardinal:[i,n,a,o],ordinal:[o]},ja:c,jbo:c,jgo:l,ji:l,jmc:l,jv:c,jw:c,ka:{cardinal:[i,o],ordinal:[i,a,o]},kab:l,kaj:l,kcg:l,kde:c,kea:c,kk:{cardinal:[i,o],ordinal:[a,o]},kkj:l,kl:l,km:c,kn:l,ko:c,ks:l,ksb:l,ksh:{cardinal:[e,i,o],ordinal:[o]},ku:l,kw:{cardinal:[e,i,n,s,a,o],ordinal:[i,a,o]},ky:l,lag:{cardinal:[e,i,o],ordinal:[o]},lb:l,lg:l,lij:{cardinal:[i,o],ordinal:[a,o]},lkt:c,ln:l,lo:{cardinal:[o],ordinal:[i,o]},lt:u,lv:{cardinal:[e,i,o],ordinal:[o]},mas:l,mg:l,mgo:l,mk:{cardinal:[i,o],ordinal:[i,n,a,o]},ml:l,mn:l,mo:{cardinal:[i,s,o],ordinal:[i,o]},mr:{cardinal:[i,o],ordinal:[i,n,s,o]},ms:{cardinal:[o],ordinal:[i,o]},mt:u,my:c,nah:l,naq:p,nb:l,nd:l,ne:h,nl:l,nn:l,nnh:l,no:l,nqo:c,nr:l,nso:l,ny:l,nyn:l,om:l,or:{cardinal:[i,o],ordinal:[i,n,s,a,o]},os:l,osa:c,pa:l,pap:l,pcm:l,pl:u,prg:{cardinal:[e,i,o],ordinal:[o]},ps:l,pt:l,pt_PT:l,rm:l,ro:{cardinal:[i,s,o],ordinal:[i,o]},rof:l,root:c,ru:u,rwk:l,sah:c,saq:l,sat:p,sc:{cardinal:[i,o],ordinal:[a,o]},scn:{cardinal:[i,o],ordinal:[a,o]},sd:l,sdh:l,se:p,seh:l,ses:c,sg:c,sh:{cardinal:[i,s,o],ordinal:[o]},shi:{cardinal:[i,s,o],ordinal:[o]},si:l,sk:u,sl:{cardinal:[i,n,s,o],ordinal:[o]},sma:p,smi:p,smj:p,smn:p,sms:p,sn:l,so:l,sq:{cardinal:[i,o],ordinal:[i,a,o]},sr:{cardinal:[i,s,o],ordinal:[o]},ss:l,ssy:l,st:l,su:c,sv:h,sw:l,syr:l,ta:l,te:l,teo:l,th:c,ti:l,tig:l,tk:{cardinal:[i,o],ordinal:[s,o]},tl:h,tn:l,to:c,tr:l,ts:l,tzm:l,ug:l,uk:{cardinal:[i,s,a,o],ordinal:[s,o]},ur:l,uz:l,ve:l,vi:{cardinal:[o],ordinal:[i,o]},vo:l,vun:l,wa:l,wae:l,wo:c,xh:l,xog:l,yi:l,yo:c,yue:c,zh:c,zu:l})})(WP);var V7=k7(WP.exports),MNe=Object.freeze(Object.assign(Object.create(null),WP.exports,{default:V7})),DNe=G7||RNe,CNe=V7||MNe,ANe=(typeof Intl=="undefined"?"undefined":W_(Intl))==="object"&&Intl.NumberFormat||wNe.default,z7=function(r){return r==="in"?"_in":r==="pt-PT"?"pt_PT":r},ONe=function(r){return DNe[z7(r)]},PNe=function(r,e){return CNe[z7(r)][e?"ordinal":"cardinal"]},NNe=_Ne.default(ANe,ONe,PNe);j7.exports=NNe});var X7=V(Y7=>{"use strict";var LNe=W7();function FNe(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var Rd=FNe(LNe);typeof Intl=="undefined"?(typeof global!="undefined"?global.Intl={PluralRules:Rd.default}:typeof window!="undefined"?window.Intl={PluralRules:Rd.default}:Y7.Intl={PluralRules:Rd.default},Rd.default.polyfill=!0):Intl.PluralRules?(qP=["en","es","ru","zh"],q7=Intl.PluralRules.supportedLocalesOf(qP),q7.length{var q_=function(t){return t&&t.Math==Math&&t};$7.exports=q_(typeof globalThis=="object"&&globalThis)||q_(typeof window=="object"&&window)||q_(typeof self=="object"&&self)||q_(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var Rt=V((oLt,Z7)=>{Z7.exports=function(t){try{return!!t()}catch(r){return!0}}});var Pr=V((lLt,K7)=>{var HNe=Rt();K7.exports=!HNe(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tv=V((cLt,J7)=>{var UNe=Rt();J7.exports=!UNe(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})});var ni=V((uLt,Q7)=>{var BNe=tv(),Y_=Function.prototype.call;Q7.exports=BNe?Y_.bind(Y_):function(){return Y_.apply(Y_,arguments)}});var t1=V(r9=>{"use strict";var e9={}.propertyIsEnumerable,t9=Object.getOwnPropertyDescriptor,kNe=t9&&!e9.call({1:2},1);r9.f=kNe?function(r){var e=t9(this,r);return!!e&&e.enumerable}:e9});var Ao=V((pLt,i9)=>{i9.exports=function(t,r){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:r}}});var Bt=V((dLt,a9)=>{var n9=tv(),s9=Function.prototype,YP=s9.call,GNe=n9&&s9.bind.bind(YP,YP);a9.exports=n9?GNe:function(t){return function(){return YP.apply(t,arguments)}}});var fa=V((fLt,l9)=>{var o9=Bt(),VNe=o9({}.toString),zNe=o9("".slice);l9.exports=function(t){return zNe(VNe(t),8,-1)}});var xm=V((mLt,c9)=>{var jNe=Bt(),WNe=Rt(),qNe=fa(),XP=Object,YNe=jNe("".split);c9.exports=WNe(function(){return!XP("z").propertyIsEnumerable(0)})?function(t){return qNe(t)=="String"?YNe(t,""):XP(t)}:XP});var ma=V((gLt,u9)=>{u9.exports=function(t){return t==null}});var ls=V((vLt,h9)=>{var XNe=ma(),$Ne=TypeError;h9.exports=function(t){if(XNe(t))throw $Ne("Can't call method on "+t);return t}});var ga=V((yLt,p9)=>{var ZNe=xm(),KNe=ls();p9.exports=function(t){return ZNe(KNe(t))}});var ZP=V((TLt,d9)=>{var $P=typeof document=="object"&&document.all,JNe=typeof $P=="undefined"&&$P!==void 0;d9.exports={all:$P,IS_HTMLDDA:JNe}});var Ti=V((ELt,m9)=>{var f9=ZP(),QNe=f9.all;m9.exports=f9.IS_HTMLDDA?function(t){return typeof t=="function"||t===QNe}:function(t){return typeof t=="function"}});var si=V((bLt,y9)=>{var g9=Ti(),v9=ZP(),eLe=v9.all;y9.exports=v9.IS_HTMLDDA?function(t){return typeof t=="object"?t!==null:g9(t)||t===eLe}:function(t){return typeof t=="object"?t!==null:g9(t)}});var bn=V((xLt,T9)=>{var KP=ir(),tLe=Ti(),rLe=function(t){return tLe(t)?t:void 0};T9.exports=function(t,r){return arguments.length<2?rLe(KP[t]):KP[t]&&KP[t][r]}});var Oo=V((ILt,E9)=>{var iLe=Bt();E9.exports=iLe({}.isPrototypeOf)});var bu=V((SLt,b9)=>{var nLe=bn();b9.exports=nLe("navigator","userAgent")||""});var xu=V((_Lt,R9)=>{var w9=ir(),JP=bu(),x9=w9.process,I9=w9.Deno,S9=x9&&x9.versions||I9&&I9.version,_9=S9&&S9.v8,dc,X_;_9&&(dc=_9.split("."),X_=dc[0]>0&&dc[0]<4?1:+(dc[0]+dc[1]));!X_&&JP&&(dc=JP.match(/Edge\/(\d+)/),(!dc||dc[1]>=74)&&(dc=JP.match(/Chrome\/(\d+)/),dc&&(X_=+dc[1])));R9.exports=X_});var Im=V((wLt,D9)=>{var M9=xu(),sLe=Rt();D9.exports=!!Object.getOwnPropertySymbols&&!sLe(function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&M9&&M9<41})});var QP=V((RLt,C9)=>{var aLe=Im();C9.exports=aLe&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Md=V((MLt,A9)=>{var oLe=bn(),lLe=Ti(),cLe=Oo(),uLe=QP(),hLe=Object;A9.exports=uLe?function(t){return typeof t=="symbol"}:function(t){var r=oLe("Symbol");return lLe(r)&&cLe(r.prototype,hLe(t))}});var Dd=V((DLt,O9)=>{var pLe=String;O9.exports=function(t){try{return pLe(t)}catch(r){return"Object"}}});var fs=V((CLt,P9)=>{var dLe=Ti(),fLe=Dd(),mLe=TypeError;P9.exports=function(t){if(dLe(t))return t;throw mLe(fLe(t)+" is not a function")}});var Iu=V((ALt,N9)=>{var gLe=fs(),vLe=ma();N9.exports=function(t,r){var e=t[r];return vLe(e)?void 0:gLe(e)}});var i2=V((OLt,L9)=>{var e2=ni(),t2=Ti(),r2=si(),yLe=TypeError;L9.exports=function(t,r){var e,i;if(r==="string"&&t2(e=t.toString)&&!r2(i=e2(e,t))||t2(e=t.valueOf)&&!r2(i=e2(e,t))||r!=="string"&&t2(e=t.toString)&&!r2(i=e2(e,t)))return i;throw yLe("Can't convert object to primitive value")}});var Bn=V((PLt,F9)=>{F9.exports=!1});var $_=V((NLt,U9)=>{var H9=ir(),TLe=Object.defineProperty;U9.exports=function(t,r){try{TLe(H9,t,{value:r,configurable:!0,writable:!0})}catch(e){H9[t]=r}return r}});var Z_=V((LLt,k9)=>{var ELe=ir(),bLe=$_(),B9="__core-js_shared__",xLe=ELe[B9]||bLe(B9,{});k9.exports=xLe});var Sm=V((FLt,V9)=>{var ILe=Bn(),G9=Z_();(V9.exports=function(t,r){return G9[t]||(G9[t]=r!==void 0?r:{})})("versions",[]).push({version:"3.27.1",mode:ILe?"pure":"global",copyright:"\xA9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.1/LICENSE",source:"https://github.com/zloirock/core-js"})});var Li=V((HLt,z9)=>{var SLe=ls(),_Le=Object;z9.exports=function(t){return _Le(SLe(t))}});var Si=V((ULt,j9)=>{var wLe=Bt(),RLe=Li(),MLe=wLe({}.hasOwnProperty);j9.exports=Object.hasOwn||function(r,e){return MLe(RLe(r),e)}});var _m=V((BLt,W9)=>{var DLe=Bt(),CLe=0,ALe=Math.random(),OLe=DLe(1 .toString);W9.exports=function(t){return"Symbol("+(t===void 0?"":t)+")_"+OLe(++CLe+ALe,36)}});var fi=V((kLt,Z9)=>{var PLe=ir(),NLe=Sm(),q9=Si(),LLe=_m(),Y9=Im(),$9=QP(),rv=NLe("wks"),wm=PLe.Symbol,X9=wm&&wm.for,FLe=$9?wm:wm&&wm.withoutSetter||LLe;Z9.exports=function(t){if(!q9(rv,t)||!(Y9||typeof rv[t]=="string")){var r="Symbol."+t;Y9&&q9(wm,t)?rv[t]=wm[t]:$9&&X9?rv[t]=X9(r):rv[t]=FLe(r)}return rv[t]}});var r1=V((GLt,Q9)=>{var HLe=ni(),K9=si(),J9=Md(),ULe=Iu(),BLe=i2(),kLe=fi(),GLe=TypeError,VLe=kLe("toPrimitive");Q9.exports=function(t,r){if(!K9(t)||J9(t))return t;var e=ULe(t,VLe),i;if(e){if(r===void 0&&(r="default"),i=HLe(e,t,r),!K9(i)||J9(i))return i;throw GLe("Can't convert object to primitive value")}return r===void 0&&(r="number"),BLe(t,r)}});var Vh=V((VLt,ez)=>{var zLe=r1(),jLe=Md();ez.exports=function(t){var r=zLe(t,"string");return jLe(r)?r:r+""}});var i1=V((zLt,rz)=>{var WLe=ir(),tz=si(),n2=WLe.document,qLe=tz(n2)&&tz(n2.createElement);rz.exports=function(t){return qLe?n2.createElement(t):{}}});var s2=V((jLt,iz)=>{var YLe=Pr(),XLe=Rt(),$Le=i1();iz.exports=!YLe&&!XLe(function(){return Object.defineProperty($Le("div"),"a",{get:function(){return 7}}).a!=7})});var Us=V(sz=>{var ZLe=Pr(),KLe=ni(),JLe=t1(),QLe=Ao(),eFe=ga(),tFe=Vh(),rFe=Si(),iFe=s2(),nz=Object.getOwnPropertyDescriptor;sz.f=ZLe?nz:function(r,e){if(r=eFe(r),e=tFe(e),iFe)try{return nz(r,e)}catch(i){}if(rFe(r,e))return QLe(!KLe(JLe.f,r,e),r[e])}});var a2=V((qLt,az)=>{var nFe=Pr(),sFe=Rt();az.exports=nFe&&sFe(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var jr=V((YLt,oz)=>{var aFe=si(),oFe=String,lFe=TypeError;oz.exports=function(t){if(aFe(t))return t;throw lFe(oFe(t)+" is not an object")}});var Vi=V(cz=>{var cFe=Pr(),uFe=s2(),hFe=a2(),K_=jr(),lz=Vh(),pFe=TypeError,o2=Object.defineProperty,dFe=Object.getOwnPropertyDescriptor,l2="enumerable",c2="configurable",u2="writable";cz.f=cFe?hFe?function(r,e,i){if(K_(r),e=lz(e),K_(i),typeof r=="function"&&e==="prototype"&&"value"in i&&u2 in i&&!i[u2]){var n=dFe(r,e);n&&n[u2]&&(r[e]=i.value,i={configurable:c2 in i?i[c2]:n[c2],enumerable:l2 in i?i[l2]:n[l2],writable:!1})}return o2(r,e,i)}:o2:function(r,e,i){if(K_(r),e=lz(e),K_(i),uFe)try{return o2(r,e,i)}catch(n){}if("get"in i||"set"in i)throw pFe("Accessors not supported");return"value"in i&&(r[e]=i.value),r}});var va=V(($Lt,uz)=>{var fFe=Pr(),mFe=Vi(),gFe=Ao();uz.exports=fFe?function(t,r,e){return mFe.f(t,r,gFe(1,e))}:function(t,r,e){return t[r]=e,t}});var Rm=V((ZLt,pz)=>{var h2=Pr(),vFe=Si(),hz=Function.prototype,yFe=h2&&Object.getOwnPropertyDescriptor,p2=vFe(hz,"name"),TFe=p2&&function(){}.name==="something",EFe=p2&&(!h2||h2&&yFe(hz,"name").configurable);pz.exports={EXISTS:p2,PROPER:TFe,CONFIGURABLE:EFe}});var J_=V((KLt,dz)=>{var bFe=Bt(),xFe=Ti(),d2=Z_(),IFe=bFe(Function.toString);xFe(d2.inspectSource)||(d2.inspectSource=function(t){return IFe(t)});dz.exports=d2.inspectSource});var f2=V((JLt,mz)=>{var SFe=ir(),_Fe=Ti(),fz=SFe.WeakMap;mz.exports=_Fe(fz)&&/native code/.test(String(fz))});var n1=V((QLt,vz)=>{var wFe=Sm(),RFe=_m(),gz=wFe("keys");vz.exports=function(t){return gz[t]||(gz[t]=RFe(t))}});var iv=V((eFt,yz)=>{yz.exports={}});var cs=V((tFt,bz)=>{var MFe=f2(),Ez=ir(),DFe=si(),CFe=va(),m2=Si(),g2=Z_(),AFe=n1(),OFe=iv(),Tz="Object already initialized",v2=Ez.TypeError,PFe=Ez.WeakMap,Q_,s1,ew,NFe=function(t){return ew(t)?s1(t):Q_(t,{})},LFe=function(t){return function(r){var e;if(!DFe(r)||(e=s1(r)).type!==t)throw v2("Incompatible receiver, "+t+" required");return e}};MFe||g2.state?(fc=g2.state||(g2.state=new PFe),fc.get=fc.get,fc.has=fc.has,fc.set=fc.set,Q_=function(t,r){if(fc.has(t))throw v2(Tz);return r.facade=t,fc.set(t,r),r},s1=function(t){return fc.get(t)||{}},ew=function(t){return fc.has(t)}):(Mm=AFe("state"),OFe[Mm]=!0,Q_=function(t,r){if(m2(t,Mm))throw v2(Tz);return r.facade=t,CFe(t,Mm,r),r},s1=function(t){return m2(t,Mm)?t[Mm]:{}},ew=function(t){return m2(t,Mm)});var fc,Mm;bz.exports={set:Q_,get:s1,has:ew,enforce:NFe,getterFor:LFe}});var iw=V((rFt,Iz)=>{var FFe=Rt(),HFe=Ti(),tw=Si(),y2=Pr(),UFe=Rm().CONFIGURABLE,BFe=J_(),xz=cs(),kFe=xz.enforce,GFe=xz.get,rw=Object.defineProperty,VFe=y2&&!FFe(function(){return rw(function(){},"length",{value:8}).length!==8}),zFe=String(String).split("String"),jFe=Iz.exports=function(t,r,e){String(r).slice(0,7)==="Symbol("&&(r="["+String(r).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),e&&e.getter&&(r="get "+r),e&&e.setter&&(r="set "+r),(!tw(t,"name")||UFe&&t.name!==r)&&(y2?rw(t,"name",{value:r,configurable:!0}):t.name=r),VFe&&e&&tw(e,"arity")&&t.length!==e.arity&&rw(t,"length",{value:e.arity});try{e&&tw(e,"constructor")&&e.constructor?y2&&rw(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(n){}var i=kFe(t);return tw(i,"source")||(i.source=zFe.join(typeof r=="string"?r:"")),t};Function.prototype.toString=jFe(function(){return HFe(this)&&GFe(this).source||BFe(this)},"toString")});var Dn=V((iFt,Sz)=>{var WFe=Ti(),qFe=Vi(),YFe=iw(),XFe=$_();Sz.exports=function(t,r,e,i){i||(i={});var n=i.enumerable,s=i.name!==void 0?i.name:r;if(WFe(e)&&YFe(e,s,i),i.global)n?t[r]=e:XFe(r,e);else{try{i.unsafe?t[r]&&(n=!0):delete t[r]}catch(a){}n?t[r]=e:qFe.f(t,r,{value:e,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return t}});var T2=V((nFt,_z)=>{var $Fe=Math.ceil,ZFe=Math.floor;_z.exports=Math.trunc||function(r){var e=+r;return(e>0?ZFe:$Fe)(e)}});var ms=V((sFt,wz)=>{var KFe=T2();wz.exports=function(t){var r=+t;return r!==r||r===0?0:KFe(r)}});var Su=V((aFt,Rz)=>{var JFe=ms(),QFe=Math.max,e5e=Math.min;Rz.exports=function(t,r){var e=JFe(t);return e<0?QFe(e+r,0):e5e(e,r)}});var Wa=V((oFt,Mz)=>{var t5e=ms(),r5e=Math.min;Mz.exports=function(t){return t>0?r5e(t5e(t),9007199254740991):0}});var ln=V((lFt,Dz)=>{var i5e=Wa();Dz.exports=function(t){return i5e(t.length)}});var nv=V((cFt,Az)=>{var n5e=ga(),s5e=Su(),a5e=ln(),Cz=function(t){return function(r,e,i){var n=n5e(r),s=a5e(n),a=s5e(i,s),o;if(t&&e!=e){for(;s>a;)if(o=n[a++],o!=o)return!0}else for(;s>a;a++)if((t||a in n)&&n[a]===e)return t||a||0;return!t&&-1}};Az.exports={includes:Cz(!0),indexOf:Cz(!1)}});var b2=V((uFt,Pz)=>{var o5e=Bt(),E2=Si(),l5e=ga(),c5e=nv().indexOf,u5e=iv(),Oz=o5e([].push);Pz.exports=function(t,r){var e=l5e(t),i=0,n=[],s;for(s in e)!E2(u5e,s)&&E2(e,s)&&Oz(n,s);for(;r.length>i;)E2(e,s=r[i++])&&(~c5e(n,s)||Oz(n,s));return n}});var nw=V((hFt,Nz)=>{Nz.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var zh=V(Lz=>{var h5e=b2(),p5e=nw(),d5e=p5e.concat("length","prototype");Lz.f=Object.getOwnPropertyNames||function(r){return h5e(r,d5e)}});var a1=V(Fz=>{Fz.f=Object.getOwnPropertySymbols});var sw=V((fFt,Hz)=>{var f5e=bn(),m5e=Bt(),g5e=zh(),v5e=a1(),y5e=jr(),T5e=m5e([].concat);Hz.exports=f5e("Reflect","ownKeys")||function(r){var e=g5e.f(y5e(r)),i=v5e.f;return i?T5e(e,i(r)):e}});var o1=V((mFt,Bz)=>{var Uz=Si(),E5e=sw(),b5e=Us(),x5e=Vi();Bz.exports=function(t,r,e){for(var i=E5e(r),n=x5e.f,s=b5e.f,a=0;a{var I5e=Rt(),S5e=Ti(),_5e=/#|\.prototype\./,l1=function(t,r){var e=R5e[w5e(t)];return e==D5e?!0:e==M5e?!1:S5e(r)?I5e(r):!!r},w5e=l1.normalize=function(t){return String(t).replace(_5e,".").toLowerCase()},R5e=l1.data={},M5e=l1.NATIVE="N",D5e=l1.POLYFILL="P";kz.exports=l1});var Ne=V((vFt,Gz)=>{var x2=ir(),C5e=Us().f,A5e=va(),O5e=Dn(),P5e=$_(),N5e=o1(),L5e=sv();Gz.exports=function(t,r){var e=t.target,i=t.global,n=t.stat,s,a,o,l,c,u;if(i?a=x2:n?a=x2[e]||P5e(e,{}):a=(x2[e]||{}).prototype,a)for(o in r){if(c=r[o],t.dontCallGetSet?(u=C5e(a,o),l=u&&u.value):l=a[o],s=L5e(i?o:e+(n?".":"#")+o,t.forced),!s&&l!==void 0){if(typeof c==typeof l)continue;N5e(c,l)}(t.sham||l&&l.sham)&&A5e(c,"sham",!0),O5e(a,o,c,t)}}});var aw=V((yFt,zz)=>{var F5e=fi(),H5e=F5e("toStringTag"),Vz={};Vz[H5e]="z";zz.exports=String(Vz)==="[object z]"});var mc=V((TFt,jz)=>{var U5e=aw(),B5e=Ti(),ow=fa(),k5e=fi(),G5e=k5e("toStringTag"),V5e=Object,z5e=ow(function(){return arguments}())=="Arguments",j5e=function(t,r){try{return t[r]}catch(e){}};jz.exports=U5e?ow:function(t){var r,e,i;return t===void 0?"Undefined":t===null?"Null":typeof(e=j5e(r=V5e(t),G5e))=="string"?e:z5e?ow(r):(i=ow(r))=="Object"&&B5e(r.callee)?"Arguments":i}});var mi=V((EFt,Wz)=>{var W5e=mc(),q5e=String;Wz.exports=function(t){if(W5e(t)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return q5e(t)}});var av=V((bFt,qz)=>{var Y5e=b2(),X5e=nw();qz.exports=Object.keys||function(r){return Y5e(r,X5e)}});var lw=V(Yz=>{var $5e=Pr(),Z5e=a2(),K5e=Vi(),J5e=jr(),Q5e=ga(),e6e=av();Yz.f=$5e&&!Z5e?Object.defineProperties:function(r,e){J5e(r);for(var i=Q5e(e),n=e6e(e),s=n.length,a=0,o;s>a;)K5e.f(r,o=n[a++],i[o]);return r}});var I2=V((IFt,Xz)=>{var t6e=bn();Xz.exports=t6e("document","documentElement")});var qa=V((SFt,tj)=>{var r6e=jr(),i6e=lw(),$z=nw(),n6e=iv(),s6e=I2(),a6e=i1(),o6e=n1(),Zz=">",Kz="<",_2="prototype",w2="script",Qz=o6e("IE_PROTO"),S2=function(){},ej=function(t){return Kz+w2+Zz+t+Kz+"/"+w2+Zz},Jz=function(t){t.write(ej("")),t.close();var r=t.parentWindow.Object;return t=null,r},l6e=function(){var t=a6e("iframe"),r="java"+w2+":",e;return t.style.display="none",s6e.appendChild(t),t.src=String(r),e=t.contentWindow.document,e.open(),e.write(ej("document.F=Object")),e.close(),e.F},cw,uw=function(){try{cw=new ActiveXObject("htmlfile")}catch(r){}uw=typeof document!="undefined"?document.domain&&cw?Jz(cw):l6e():Jz(cw);for(var t=$z.length;t--;)delete uw[_2][$z[t]];return uw()};n6e[Qz]=!0;tj.exports=Object.create||function(r,e){var i;return r!==null?(S2[_2]=r6e(r),i=new S2,S2[_2]=null,i[Qz]=r):i=uw(),e===void 0?i:i6e.f(i,e)}});var _u=V((_Ft,rj)=>{"use strict";var c6e=Vh(),u6e=Vi(),h6e=Ao();rj.exports=function(t,r,e){var i=c6e(r);i in t?u6e.f(t,i,h6e(0,e)):t[i]=e}});var ov=V((wFt,nj)=>{var ij=Su(),p6e=ln(),d6e=_u(),f6e=Array,m6e=Math.max;nj.exports=function(t,r,e){for(var i=p6e(t),n=ij(r,i),s=ij(e===void 0?i:e,i),a=f6e(m6e(s-n,0)),o=0;n{var g6e=fa(),v6e=ga(),sj=zh().f,y6e=ov(),aj=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],T6e=function(t){try{return sj(t)}catch(r){return y6e(aj)}};oj.exports.f=function(r){return aj&&g6e(r)=="Window"?T6e(r):sj(v6e(r))}});var R2=V(lj=>{var E6e=fi();lj.f=E6e});var pw=V((DFt,cj)=>{var b6e=ir();cj.exports=b6e});var ya=V((CFt,hj)=>{var uj=pw(),x6e=Si(),I6e=R2(),S6e=Vi().f;hj.exports=function(t){var r=uj.Symbol||(uj.Symbol={});x6e(r,t)||S6e(r,t,{value:I6e.f(t)})}});var M2=V((AFt,pj)=>{var _6e=ni(),w6e=bn(),R6e=fi(),M6e=Dn();pj.exports=function(){var t=w6e("Symbol"),r=t&&t.prototype,e=r&&r.valueOf,i=R6e("toPrimitive");r&&!r[i]&&M6e(r,i,function(n){return _6e(e,this)},{arity:1})}});var Ya=V((OFt,fj)=>{var D6e=Vi().f,C6e=Si(),A6e=fi(),dj=A6e("toStringTag");fj.exports=function(t,r,e){t&&!e&&(t=t.prototype),t&&!C6e(t,dj)&&D6e(t,dj,{configurable:!0,value:r})}});var jh=V((PFt,mj)=>{var O6e=fa(),P6e=Bt();mj.exports=function(t){if(O6e(t)==="Function")return P6e(t)}});var fl=V((NFt,vj)=>{var gj=jh(),N6e=fs(),L6e=tv(),F6e=gj(gj.bind);vj.exports=function(t,r){return N6e(t),r===void 0?t:L6e?F6e(t,r):function(){return t.apply(r,arguments)}}});var Wh=V((LFt,yj)=>{var H6e=fa();yj.exports=Array.isArray||function(r){return H6e(r)=="Array"}});var Dm=V((FFt,Ij)=>{var U6e=Bt(),B6e=Rt(),Tj=Ti(),k6e=mc(),G6e=bn(),V6e=J_(),Ej=function(){},z6e=[],bj=G6e("Reflect","construct"),D2=/^\s*(?:class|function)\b/,j6e=U6e(D2.exec),W6e=!D2.exec(Ej),c1=function(r){if(!Tj(r))return!1;try{return bj(Ej,z6e,r),!0}catch(e){return!1}},xj=function(r){if(!Tj(r))return!1;switch(k6e(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return W6e||!!j6e(D2,V6e(r))}catch(e){return!0}};xj.sham=!0;Ij.exports=!bj||B6e(function(){var t;return c1(c1.call)||!c1(Object)||!c1(function(){t=!0})||t})?xj:c1});var Rj=V((HFt,wj)=>{var Sj=Wh(),q6e=Dm(),Y6e=si(),X6e=fi(),$6e=X6e("species"),_j=Array;wj.exports=function(t){var r;return Sj(t)&&(r=t.constructor,q6e(r)&&(r===_j||Sj(r.prototype))?r=void 0:Y6e(r)&&(r=r[$6e],r===null&&(r=void 0))),r===void 0?_j:r}});var lv=V((UFt,Mj)=>{var Z6e=Rj();Mj.exports=function(t,r){return new(Z6e(t))(r===0?0:r)}});var ws=V((BFt,Cj)=>{var K6e=fl(),J6e=Bt(),Q6e=xm(),eHe=Li(),tHe=ln(),rHe=lv(),Dj=J6e([].push),Cd=function(t){var r=t==1,e=t==2,i=t==3,n=t==4,s=t==6,a=t==7,o=t==5||s;return function(l,c,u,h){for(var p=eHe(l),d=Q6e(p),f=K6e(c,u),m=tHe(d),g=0,y=h||rHe,E=r?y(l,m):e||a?y(l,0):void 0,b,x;m>g;g++)if((o||g in d)&&(b=d[g],x=f(b,g,p),t))if(r)E[g]=x;else if(x)switch(t){case 3:return!0;case 5:return b;case 6:return g;case 2:Dj(E,b)}else switch(t){case 4:return!1;case 7:Dj(E,b)}return s?-1:i||n?n:E}};Cj.exports={forEach:Cd(0),map:Cd(1),filter:Cd(2),some:Cd(3),every:Cd(4),find:Cd(5),findIndex:Cd(6),filterReject:Cd(7)}});var qj=V(()=>{"use strict";var dw=Ne(),U2=ir(),B2=ni(),iHe=Bt(),nHe=Bn(),cv=Pr(),uv=Im(),sHe=Rt(),Rs=Si(),aHe=Oo(),P2=jr(),fw=ga(),k2=Vh(),oHe=mi(),N2=Ao(),h1=qa(),Pj=av(),lHe=zh(),Nj=hw(),cHe=a1(),Lj=Us(),Fj=Vi(),uHe=lw(),Hj=t1(),C2=Dn(),G2=Sm(),hHe=n1(),Uj=iv(),Aj=_m(),pHe=fi(),dHe=R2(),fHe=ya(),mHe=M2(),gHe=Ya(),Bj=cs(),mw=ws().forEach,Xa=hHe("hidden"),gw="Symbol",p1="prototype",vHe=Bj.set,Oj=Bj.getterFor(gw),ml=Object[p1],Cm=U2.Symbol,u1=Cm&&Cm[p1],yHe=U2.TypeError,A2=U2.QObject,kj=Lj.f,Ad=Fj.f,Gj=Nj.f,THe=Hj.f,Vj=iHe([].push),qh=G2("symbols"),d1=G2("op-symbols"),EHe=G2("wks"),L2=!A2||!A2[p1]||!A2[p1].findChild,F2=cv&&sHe(function(){return h1(Ad({},"a",{get:function(){return Ad(this,"a",{value:7}).a}})).a!=7})?function(t,r,e){var i=kj(ml,r);i&&delete ml[r],Ad(t,r,e),i&&t!==ml&&Ad(ml,r,i)}:Ad,O2=function(t,r){var e=qh[t]=h1(u1);return vHe(e,{type:gw,tag:t,description:r}),cv||(e.description=r),e},vw=function(r,e,i){r===ml&&vw(d1,e,i),P2(r);var n=k2(e);return P2(i),Rs(qh,n)?(i.enumerable?(Rs(r,Xa)&&r[Xa][n]&&(r[Xa][n]=!1),i=h1(i,{enumerable:N2(0,!1)})):(Rs(r,Xa)||Ad(r,Xa,N2(1,{})),r[Xa][n]=!0),F2(r,n,i)):Ad(r,n,i)},V2=function(r,e){P2(r);var i=fw(e),n=Pj(i).concat(Wj(i));return mw(n,function(s){(!cv||B2(H2,i,s))&&vw(r,s,i[s])}),r},bHe=function(r,e){return e===void 0?h1(r):V2(h1(r),e)},H2=function(r){var e=k2(r),i=B2(THe,this,e);return this===ml&&Rs(qh,e)&&!Rs(d1,e)?!1:i||!Rs(this,e)||!Rs(qh,e)||Rs(this,Xa)&&this[Xa][e]?i:!0},zj=function(r,e){var i=fw(r),n=k2(e);if(!(i===ml&&Rs(qh,n)&&!Rs(d1,n))){var s=kj(i,n);return s&&Rs(qh,n)&&!(Rs(i,Xa)&&i[Xa][n])&&(s.enumerable=!0),s}},jj=function(r){var e=Gj(fw(r)),i=[];return mw(e,function(n){!Rs(qh,n)&&!Rs(Uj,n)&&Vj(i,n)}),i},Wj=function(t){var r=t===ml,e=Gj(r?d1:fw(t)),i=[];return mw(e,function(n){Rs(qh,n)&&(!r||Rs(ml,n))&&Vj(i,qh[n])}),i};uv||(Cm=function(){if(aHe(u1,this))throw yHe("Symbol is not a constructor");var r=!arguments.length||arguments[0]===void 0?void 0:oHe(arguments[0]),e=Aj(r),i=function(n){this===ml&&B2(i,d1,n),Rs(this,Xa)&&Rs(this[Xa],e)&&(this[Xa][e]=!1),F2(this,e,N2(1,n))};return cv&&L2&&F2(ml,e,{configurable:!0,set:i}),O2(e,r)},u1=Cm[p1],C2(u1,"toString",function(){return Oj(this).tag}),C2(Cm,"withoutSetter",function(t){return O2(Aj(t),t)}),Hj.f=H2,Fj.f=vw,uHe.f=V2,Lj.f=zj,lHe.f=Nj.f=jj,cHe.f=Wj,dHe.f=function(t){return O2(pHe(t),t)},cv&&(Ad(u1,"description",{configurable:!0,get:function(){return Oj(this).description}}),nHe||C2(ml,"propertyIsEnumerable",H2,{unsafe:!0})));dw({global:!0,constructor:!0,wrap:!0,forced:!uv,sham:!uv},{Symbol:Cm});mw(Pj(EHe),function(t){fHe(t)});dw({target:gw,stat:!0,forced:!uv},{useSetter:function(){L2=!0},useSimple:function(){L2=!1}});dw({target:"Object",stat:!0,forced:!uv,sham:!cv},{create:bHe,defineProperty:vw,defineProperties:V2,getOwnPropertyDescriptor:zj});dw({target:"Object",stat:!0,forced:!uv},{getOwnPropertyNames:jj});mHe();gHe(Cm,gw);Uj[Xa]=!0});var z2=V((VFt,Yj)=>{var xHe=Im();Yj.exports=xHe&&!!Symbol.for&&!!Symbol.keyFor});var $j=V(()=>{var IHe=Ne(),SHe=bn(),_He=Si(),wHe=mi(),Xj=Sm(),RHe=z2(),j2=Xj("string-to-symbol-registry"),MHe=Xj("symbol-to-string-registry");IHe({target:"Symbol",stat:!0,forced:!RHe},{for:function(t){var r=wHe(t);if(_He(j2,r))return j2[r];var e=SHe("Symbol")(r);return j2[r]=e,MHe[e]=r,e}})});var Kj=V(()=>{var DHe=Ne(),CHe=Si(),AHe=Md(),OHe=Dd(),PHe=Sm(),NHe=z2(),Zj=PHe("symbol-to-string-registry");DHe({target:"Symbol",stat:!0,forced:!NHe},{keyFor:function(r){if(!AHe(r))throw TypeError(OHe(r)+" is not a symbol");if(CHe(Zj,r))return Zj[r]}})});var Po=V((YFt,tW)=>{var LHe=tv(),eW=Function.prototype,Jj=eW.apply,Qj=eW.call;tW.exports=typeof Reflect=="object"&&Reflect.apply||(LHe?Qj.bind(Jj):function(){return Qj.apply(Jj,arguments)})});var Od=V((XFt,rW)=>{var FHe=Bt();rW.exports=FHe([].slice)});var W2=V(()=>{var HHe=Ne(),cW=bn(),uW=Po(),UHe=ni(),f1=Bt(),hW=Rt(),BHe=Wh(),kHe=Ti(),GHe=si(),iW=Md(),pW=Od(),VHe=Im(),Pd=cW("JSON","stringify"),yw=f1(/./.exec),nW=f1("".charAt),zHe=f1("".charCodeAt),jHe=f1("".replace),WHe=f1(1 .toString),qHe=/[\uD800-\uDFFF]/g,sW=/^[\uD800-\uDBFF]$/,aW=/^[\uDC00-\uDFFF]$/,oW=!VHe||hW(function(){var t=cW("Symbol")();return Pd([t])!="[null]"||Pd({a:t})!="{}"||Pd(Object(t))!="{}"}),lW=hW(function(){return Pd("\uDF06\uD834")!=='"\\udf06\\ud834"'||Pd("\uDEAD")!=='"\\udead"'}),YHe=function(t,r){var e=pW(arguments),i=r;if(!(!GHe(r)&&t===void 0||iW(t)))return BHe(r)||(r=function(n,s){if(kHe(i)&&(s=UHe(i,this,n,s)),!iW(s))return s}),e[1]=r,uW(Pd,null,e)},XHe=function(t,r,e){var i=nW(e,r-1),n=nW(e,r+1);return yw(sW,t)&&!yw(aW,n)||yw(aW,t)&&!yw(sW,i)?"\\u"+WHe(zHe(t,0),16):t};Pd&&HHe({target:"JSON",stat:!0,arity:3,forced:oW||lW},{stringify:function(r,e,i){var n=pW(arguments),s=uW(oW?YHe:Pd,null,n);return lW&&typeof s=="string"?jHe(s,qHe,XHe):s}})});var fW=V(()=>{var $He=Ne(),ZHe=Im(),KHe=Rt(),dW=a1(),JHe=Li(),QHe=!ZHe||KHe(function(){dW.f(1)});$He({target:"Object",stat:!0,forced:QHe},{getOwnPropertySymbols:function(r){var e=dW.f;return e?e(JHe(r)):[]}})});var mW=V(()=>{qj();$j();Kj();W2();fW()});var xW=V(()=>{"use strict";var e4e=Ne(),t4e=Pr(),r4e=ir(),Tw=Bt(),i4e=Si(),n4e=Ti(),s4e=Oo(),a4e=mi(),o4e=Vi().f,l4e=o1(),Yh=r4e.Symbol,Am=Yh&&Yh.prototype;t4e&&n4e(Yh)&&(!("description"in Am)||Yh().description!==void 0)&&(q2={},m1=function(){var r=arguments.length<1||arguments[0]===void 0?void 0:a4e(arguments[0]),e=s4e(Am,this)?new Yh(r):r===void 0?Yh():Yh(r);return r===""&&(q2[e]=!0),e},l4e(m1,Yh),m1.prototype=Am,Am.constructor=m1,gW=String(Yh("test"))=="Symbol(test)",vW=Tw(Am.valueOf),yW=Tw(Am.toString),TW=/^Symbol\((.*)\)[^)]+$/,EW=Tw("".replace),bW=Tw("".slice),o4e(Am,"description",{configurable:!0,get:function(){var r=vW(this);if(i4e(q2,r))return"";var e=yW(r),i=gW?bW(e,7,-1):EW(e,TW,"$1");return i===""?void 0:i}}),e4e({global:!0,constructor:!0,forced:!0},{Symbol:m1}));var q2,m1,gW,vW,yW,TW,EW,bW});var IW=V(()=>{var c4e=ya();c4e("asyncIterator")});var SW=V(()=>{var u4e=ya();u4e("hasInstance")});var _W=V(()=>{var h4e=ya();h4e("isConcatSpreadable")});var wW=V(()=>{var p4e=ya();p4e("iterator")});var RW=V(()=>{var d4e=ya();d4e("match")});var MW=V(()=>{var f4e=ya();f4e("matchAll")});var DW=V(()=>{var m4e=ya();m4e("replace")});var CW=V(()=>{var g4e=ya();g4e("search")});var AW=V(()=>{var v4e=ya();v4e("species")});var OW=V(()=>{var y4e=ya();y4e("split")});var PW=V(()=>{var T4e=ya(),E4e=M2();T4e("toPrimitive");E4e()});var NW=V(()=>{var b4e=bn(),x4e=ya(),I4e=Ya();x4e("toStringTag");I4e(b4e("Symbol"),"Symbol")});var LW=V(()=>{var S4e=ya();S4e("unscopables")});var Y2=V((D5t,FW)=>{var _4e=Ti(),w4e=String,R4e=TypeError;FW.exports=function(t){if(typeof t=="object"||_4e(t))return t;throw R4e("Can't set "+w4e(t)+" as a prototype")}});var gc=V((C5t,HW)=>{var M4e=Bt(),D4e=jr(),C4e=Y2();HW.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,r={},e;try{e=M4e(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),e(r,[]),t=r instanceof Array}catch(i){}return function(n,s){return D4e(n),C4e(s),t?e(n,s):n.__proto__=s,n}}():void 0)});var X2=V((A5t,UW)=>{var A4e=Vi().f;UW.exports=function(t,r,e){e in t||A4e(t,e,{configurable:!0,get:function(){return r[e]},set:function(i){r[e]=i}})}});var Om=V((O5t,kW)=>{var O4e=Ti(),P4e=si(),BW=gc();kW.exports=function(t,r,e){var i,n;return BW&&O4e(i=r.constructor)&&i!==e&&P4e(n=i.prototype)&&n!==e.prototype&&BW(t,n),t}});var hv=V((P5t,GW)=>{var N4e=mi();GW.exports=function(t,r){return t===void 0?arguments.length<2?"":r:N4e(t)}});var $2=V((N5t,VW)=>{var L4e=si(),F4e=va();VW.exports=function(t,r){L4e(r)&&"cause"in r&&F4e(t,"cause",r.cause)}});var g1=V((L5t,WW)=>{var H4e=Bt(),zW=Error,U4e=H4e("".replace),B4e=function(t){return String(zW(t).stack)}("zxcasd"),jW=/\n\s*at [^:]*:[^\n]*/,k4e=jW.test(B4e);WW.exports=function(t,r){if(k4e&&typeof t=="string"&&!zW.prepareStackTrace)for(;r--;)t=U4e(t,jW,"");return t}});var Ew=V((F5t,qW)=>{var G4e=Rt(),V4e=Ao();qW.exports=!G4e(function(){var t=Error("a");return"stack"in t?(Object.defineProperty(t,"stack",V4e(1,7)),t.stack!==7):!0})});var K2=V((H5t,JW)=>{"use strict";var YW=bn(),z4e=Si(),Z2=va(),j4e=Oo(),XW=gc(),$W=o1(),ZW=X2(),W4e=Om(),q4e=hv(),Y4e=$2(),X4e=g1(),$4e=Ew(),Z4e=Pr(),KW=Bn();JW.exports=function(t,r,e,i){var n="stackTraceLimit",s=i?2:1,a=t.split("."),o=a[a.length-1],l=YW.apply(null,a);if(l){var c=l.prototype;if(!KW&&z4e(c,"cause")&&delete c.cause,!e)return l;var u=YW("Error"),h=r(function(p,d){var f=q4e(i?d:p,void 0),m=i?new l(p):new l;return f!==void 0&&Z2(m,"message",f),$4e&&Z2(m,"stack",X4e(m.stack,2)),this&&j4e(c,this)&&W4e(m,this,h),arguments.length>s&&Y4e(m,arguments[s]),m});if(h.prototype=c,o!=="Error"?XW?XW(h,u):$W(h,u,{name:!0}):Z4e&&n in l&&(ZW(h,l,n),ZW(h,l,"prepareStackTrace")),$W(h,l),!KW)try{c.name!==o&&Z2(c,"name",o),c.constructor=h}catch(p){}return h}}});var rq=V(()=>{var eq=Ne(),K4e=ir(),wu=Po(),tq=K2(),J2="WebAssembly",QW=K4e[J2],bw=Error("e",{cause:7}).cause!==7,Pm=function(t,r){var e={};e[t]=tq(t,r,bw),eq({global:!0,constructor:!0,arity:1,forced:bw},e)},Q2=function(t,r){if(QW&&QW[t]){var e={};e[t]=tq(J2+"."+t,r,bw),eq({target:J2,stat:!0,constructor:!0,arity:1,forced:bw},e)}};Pm("Error",function(t){return function(e){return wu(t,this,arguments)}});Pm("EvalError",function(t){return function(e){return wu(t,this,arguments)}});Pm("RangeError",function(t){return function(e){return wu(t,this,arguments)}});Pm("ReferenceError",function(t){return function(e){return wu(t,this,arguments)}});Pm("SyntaxError",function(t){return function(e){return wu(t,this,arguments)}});Pm("TypeError",function(t){return function(e){return wu(t,this,arguments)}});Pm("URIError",function(t){return function(e){return wu(t,this,arguments)}});Q2("CompileError",function(t){return function(e){return wu(t,this,arguments)}});Q2("LinkError",function(t){return function(e){return wu(t,this,arguments)}});Q2("RuntimeError",function(t){return function(e){return wu(t,this,arguments)}})});var eN=V((k5t,nq)=>{"use strict";var J4e=Pr(),Q4e=Rt(),eUe=jr(),tUe=qa(),iq=hv(),xw=Error.prototype.toString,rUe=Q4e(function(){if(J4e){var t=tUe(Object.defineProperty({},"name",{get:function(){return this===t}}));if(xw.call(t)!=="true")return!0}return xw.call({message:1,name:2})!=="2: 1"||xw.call({})!=="Error"});nq.exports=rUe?function(){var r=eUe(this),e=iq(r.name,"Error"),i=iq(r.message);return e?i?e+": "+i:e:i}:xw});var oq=V(()=>{var iUe=Dn(),sq=eN(),aq=Error.prototype;aq.toString!==sq&&iUe(aq,"toString",sq)});var Iw=V((z5t,lq)=>{var nUe=Rt();lq.exports=!nUe(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})});var No=V((j5t,uq)=>{var sUe=Si(),aUe=Ti(),oUe=Li(),lUe=n1(),cUe=Iw(),cq=lUe("IE_PROTO"),tN=Object,uUe=tN.prototype;uq.exports=cUe?tN.getPrototypeOf:function(t){var r=oUe(t);if(sUe(r,cq))return r[cq];var e=r.constructor;return aUe(e)&&r instanceof e?e.prototype:r instanceof tN?uUe:null}});var pv=V((W5t,hq)=>{hq.exports={}});var Sw=V((q5t,pq)=>{var hUe=fi(),pUe=pv(),dUe=hUe("iterator"),fUe=Array.prototype;pq.exports=function(t){return t!==void 0&&(pUe.Array===t||fUe[dUe]===t)}});var dv=V((Y5t,fq)=>{var mUe=mc(),dq=Iu(),gUe=ma(),vUe=pv(),yUe=fi(),TUe=yUe("iterator");fq.exports=function(t){if(!gUe(t))return dq(t,TUe)||dq(t,"@@iterator")||vUe[mUe(t)]}});var v1=V((X5t,mq)=>{var EUe=ni(),bUe=fs(),xUe=jr(),IUe=Dd(),SUe=dv(),_Ue=TypeError;mq.exports=function(t,r){var e=arguments.length<2?SUe(t):r;if(bUe(e))return xUe(EUe(e,t));throw _Ue(IUe(t)+" is not iterable")}});var rN=V(($5t,vq)=>{var wUe=ni(),gq=jr(),RUe=Iu();vq.exports=function(t,r,e){var i,n;gq(t);try{if(i=RUe(t,"return"),!i){if(r==="throw")throw e;return e}i=wUe(i,t)}catch(s){n=!0,i=s}if(r==="throw")throw e;if(n)throw i;return gq(i),e}});var vc=V((Z5t,bq)=>{var MUe=fl(),DUe=ni(),CUe=jr(),AUe=Dd(),OUe=Sw(),PUe=ln(),yq=Oo(),NUe=v1(),LUe=dv(),Tq=rN(),FUe=TypeError,_w=function(t,r){this.stopped=t,this.result=r},Eq=_w.prototype;bq.exports=function(t,r,e){var i=e&&e.that,n=!!(e&&e.AS_ENTRIES),s=!!(e&&e.IS_RECORD),a=!!(e&&e.IS_ITERATOR),o=!!(e&&e.INTERRUPTED),l=MUe(r,i),c,u,h,p,d,f,m,g=function(E){return c&&Tq(c,"normal",E),new _w(!0,E)},y=function(E){return n?(CUe(E),o?l(E[0],E[1],g):l(E[0],E[1])):o?l(E,g):l(E)};if(s)c=t.iterator;else if(a)c=t;else{if(u=LUe(t),!u)throw FUe(AUe(t)+" is not iterable");if(OUe(u)){for(h=0,p=PUe(t);p>h;h++)if(d=y(t[h]),d&&yq(Eq,d))return d;return new _w(!1)}c=NUe(t,u)}for(f=s?t.next:c.next;!(m=DUe(f,c)).done;){try{d=y(m.value)}catch(E){Tq(c,"throw",E)}if(typeof d=="object"&&d&&yq(Eq,d))return d}return new _w(!1)}});var Iq=V(()=>{"use strict";var HUe=Ne(),UUe=Oo(),BUe=No(),Rw=gc(),kUe=o1(),xq=qa(),ww=va(),iN=Ao(),GUe=g1(),VUe=$2(),zUe=vc(),jUe=hv(),WUe=fi(),qUe=Ew(),YUe=WUe("toStringTag"),Mw=Error,XUe=[].push,y1=function(r,e){var i=arguments.length>2?arguments[2]:void 0,n=UUe(nN,this),s;Rw?s=Rw(Mw(),n?BUe(this):nN):(s=n?this:xq(nN),ww(s,YUe,"Error")),e!==void 0&&ww(s,"message",jUe(e)),qUe&&ww(s,"stack",GUe(s.stack,1)),VUe(s,i);var a=[];return zUe(r,XUe,{that:a}),ww(s,"errors",a),s};Rw?Rw(y1,Mw):kUe(y1,Mw,{name:!0});var nN=y1.prototype=xq(Mw.prototype,{constructor:iN(1,y1),message:iN(1,""),name:iN(1,"AggregateError")});HUe({global:!0,constructor:!0,arity:2},{AggregateError:y1})});var Sq=V(()=>{Iq()});var Mq=V(()=>{var $Ue=Ne(),ZUe=bn(),KUe=Po(),_q=Rt(),JUe=K2(),sN="AggregateError",wq=ZUe(sN),Rq=!_q(function(){return wq([1]).errors[0]!==1})&&_q(function(){return wq([1],sN,{cause:7}).cause!==7});$Ue({global:!0,constructor:!0,arity:2,forced:Rq},{AggregateError:JUe(sN,function(t){return function(e,i){return KUe(t,this,arguments)}},Rq,!0)})});var gl=V((i6t,Dq)=>{var QUe=fi(),eBe=qa(),tBe=Vi().f,aN=QUe("unscopables"),oN=Array.prototype;oN[aN]==null&&tBe(oN,aN,{configurable:!0,value:eBe(null)});Dq.exports=function(t){oN[aN][t]=!0}});var Cq=V(()=>{"use strict";var rBe=Ne(),iBe=Li(),nBe=ln(),sBe=ms(),aBe=gl();rBe({target:"Array",proto:!0},{at:function(r){var e=iBe(this),i=nBe(e),n=sBe(r),s=n>=0?n:i+n;return s<0||s>=i?void 0:e[s]}});aBe("at")});var fv=V((a6t,Aq)=>{var oBe=TypeError,lBe=9007199254740991;Aq.exports=function(t){if(t>lBe)throw oBe("Maximum allowed index exceeded");return t}});var mv=V((o6t,Oq)=>{var cBe=Rt(),uBe=fi(),hBe=xu(),pBe=uBe("species");Oq.exports=function(t){return hBe>=51||!cBe(function(){var r=[],e=r.constructor={};return e[pBe]=function(){return{foo:1}},r[t](Boolean).foo!==1})}});var Fq=V(()=>{"use strict";var dBe=Ne(),fBe=Rt(),mBe=Wh(),gBe=si(),vBe=Li(),yBe=ln(),Pq=fv(),Nq=_u(),TBe=lv(),EBe=mv(),bBe=fi(),xBe=xu(),Lq=bBe("isConcatSpreadable"),IBe=xBe>=51||!fBe(function(){var t=[];return t[Lq]=!1,t.concat()[0]!==t}),SBe=EBe("concat"),_Be=function(t){if(!gBe(t))return!1;var r=t[Lq];return r!==void 0?!!r:mBe(t)},wBe=!IBe||!SBe;dBe({target:"Array",proto:!0,arity:1,forced:wBe},{concat:function(r){var e=vBe(this),i=TBe(e,0),n=0,s,a,o,l,c;for(s=-1,o=arguments.length;s{"use strict";var Hq=Dd(),RBe=TypeError;Uq.exports=function(t,r){if(!delete t[r])throw RBe("Cannot delete property "+Hq(r)+" of "+Hq(t))}});var cN=V((h6t,Bq)=>{"use strict";var MBe=Li(),lN=Su(),DBe=ln(),CBe=T1(),ABe=Math.min;Bq.exports=[].copyWithin||function(r,e){var i=MBe(this),n=DBe(i),s=lN(r,n),a=lN(e,n),o=arguments.length>2?arguments[2]:void 0,l=ABe((o===void 0?n:lN(o,n))-a,n-s),c=1;for(a0;)a in i?i[s]=i[a]:CBe(i,s),s+=c,a+=c;return i}});var kq=V(()=>{var OBe=Ne(),PBe=cN(),NBe=gl();OBe({target:"Array",proto:!0},{copyWithin:PBe});NBe("copyWithin")});var Ru=V((f6t,Gq)=>{"use strict";var LBe=Rt();Gq.exports=function(t,r){var e=[][t];return!!e&&LBe(function(){e.call(null,r||function(){return 1},1)})}});var Vq=V(()=>{"use strict";var FBe=Ne(),HBe=ws().every,UBe=Ru(),BBe=UBe("every");FBe({target:"Array",proto:!0,forced:!BBe},{every:function(r){return HBe(this,r,arguments.length>1?arguments[1]:void 0)}})});var Dw=V((v6t,jq)=>{"use strict";var kBe=Li(),zq=Su(),GBe=ln();jq.exports=function(r){for(var e=kBe(this),i=GBe(e),n=arguments.length,s=zq(n>1?arguments[1]:void 0,i),a=n>2?arguments[2]:void 0,o=a===void 0?i:zq(a,i);o>s;)e[s++]=r;return e}});var Wq=V(()=>{var VBe=Ne(),zBe=Dw(),jBe=gl();VBe({target:"Array",proto:!0},{fill:zBe});jBe("fill")});var qq=V(()=>{"use strict";var WBe=Ne(),qBe=ws().filter,YBe=mv(),XBe=YBe("filter");WBe({target:"Array",proto:!0,forced:!XBe},{filter:function(r){return qBe(this,r,arguments.length>1?arguments[1]:void 0)}})});var Xq=V(()=>{"use strict";var $Be=Ne(),ZBe=ws().find,KBe=gl(),uN="find",Yq=!0;uN in[]&&Array(1)[uN](function(){Yq=!1});$Be({target:"Array",proto:!0,forced:Yq},{find:function(r){return ZBe(this,r,arguments.length>1?arguments[1]:void 0)}});KBe(uN)});var Zq=V(()=>{"use strict";var JBe=Ne(),QBe=ws().findIndex,eke=gl(),hN="findIndex",$q=!0;hN in[]&&Array(1)[hN](function(){$q=!1});JBe({target:"Array",proto:!0,forced:$q},{findIndex:function(r){return QBe(this,r,arguments.length>1?arguments[1]:void 0)}});eke(hN)});var E1=V((w6t,Jq)=>{var tke=fl(),rke=xm(),ike=Li(),nke=ln(),Kq=function(t){var r=t==1;return function(e,i,n){for(var s=ike(e),a=rke(s),o=tke(i,n),l=nke(a),c,u;l-- >0;)if(c=a[l],u=o(c,l,s),u)switch(t){case 0:return c;case 1:return l}return r?-1:void 0}};Jq.exports={findLast:Kq(0),findLastIndex:Kq(1)}});var Qq=V(()=>{"use strict";var ske=Ne(),ake=E1().findLast,oke=gl();ske({target:"Array",proto:!0},{findLast:function(r){return ake(this,r,arguments.length>1?arguments[1]:void 0)}});oke("findLast")});var eY=V(()=>{"use strict";var lke=Ne(),cke=E1().findLastIndex,uke=gl();lke({target:"Array",proto:!0},{findLastIndex:function(r){return cke(this,r,arguments.length>1?arguments[1]:void 0)}});uke("findLastIndex")});var pN=V((A6t,rY)=>{"use strict";var hke=Wh(),pke=ln(),dke=fv(),fke=fl(),tY=function(t,r,e,i,n,s,a,o){for(var l=n,c=0,u=a?fke(a,o):!1,h,p;c0&&hke(h)?(p=pke(h),l=tY(t,r,h,p,l,s-1)-1):(dke(l+1),t[l]=h),l++),c++;return l};rY.exports=tY});var iY=V(()=>{"use strict";var mke=Ne(),gke=pN(),vke=Li(),yke=ln(),Tke=ms(),Eke=lv();mke({target:"Array",proto:!0},{flat:function(){var r=arguments.length?arguments[0]:void 0,e=vke(this),i=yke(e),n=Eke(e,0);return n.length=gke(n,e,e,i,0,r===void 0?1:Tke(r)),n}})});var nY=V(()=>{"use strict";var bke=Ne(),xke=pN(),Ike=fs(),Ske=Li(),_ke=ln(),wke=lv();bke({target:"Array",proto:!0},{flatMap:function(r){var e=Ske(this),i=_ke(e),n;return Ike(r),n=wke(e,0),n.length=xke(n,e,e,i,0,1,r,arguments.length>1?arguments[1]:void 0),n}})});var dN=V((F6t,sY)=>{"use strict";var Rke=ws().forEach,Mke=Ru(),Dke=Mke("forEach");sY.exports=Dke?[].forEach:function(r){return Rke(this,r,arguments.length>1?arguments[1]:void 0)}});var oY=V(()=>{"use strict";var Cke=Ne(),aY=dN();Cke({target:"Array",proto:!0,forced:[].forEach!=aY},{forEach:aY})});var cY=V((B6t,lY)=>{var Ake=jr(),Oke=rN();lY.exports=function(t,r,e,i){try{return i?r(Ake(e)[0],e[1]):r(e)}catch(n){Oke(t,"throw",n)}}});var fN=V((k6t,pY)=>{"use strict";var Pke=fl(),Nke=ni(),Lke=Li(),Fke=cY(),Hke=Sw(),Uke=Dm(),Bke=ln(),uY=_u(),kke=v1(),Gke=dv(),hY=Array;pY.exports=function(r){var e=Lke(r),i=Uke(this),n=arguments.length,s=n>1?arguments[1]:void 0,a=s!==void 0;a&&(s=Pke(s,n>2?arguments[2]:void 0));var o=Gke(e),l=0,c,u,h,p,d,f;if(o&&!(this===hY&&Hke(o)))for(p=kke(e,o),d=p.next,u=i?new this:[];!(h=Nke(d,p)).done;l++)f=a?Fke(p,s,[h.value,l],!0):h.value,uY(u,l,f);else for(c=Bke(e),u=i?new this(c):hY(c);c>l;l++)f=a?s(e[l],l):e[l],uY(u,l,f);return u.length=l,u}});var b1=V((G6t,gY)=>{var Vke=fi(),fY=Vke("iterator"),mY=!1;try{dY=0,mN={next:function(){return{done:!!dY++}},return:function(){mY=!0}},mN[fY]=function(){return this},Array.from(mN,function(){throw 2})}catch(t){}var dY,mN;gY.exports=function(t,r){if(!r&&!mY)return!1;var e=!1;try{var i={};i[fY]=function(){return{next:function(){return{done:e=!0}}}},t(i)}catch(n){}return e}});var vY=V(()=>{var zke=Ne(),jke=fN(),Wke=b1(),qke=!Wke(function(t){Array.from(t)});zke({target:"Array",stat:!0,forced:qke},{from:jke})});var yY=V(()=>{"use strict";var Yke=Ne(),Xke=nv().includes,$ke=Rt(),Zke=gl(),Kke=$ke(function(){return!Array(1).includes()});Yke({target:"Array",proto:!0,forced:Kke},{includes:function(r){return Xke(this,r,arguments.length>1?arguments[1]:void 0)}});Zke("includes")});var EY=V(()=>{"use strict";var Jke=Ne(),Qke=jh(),e8e=nv().indexOf,t8e=Ru(),gN=Qke([].indexOf),TY=!!gN&&1/gN([1],1,-0)<0,r8e=t8e("indexOf");Jke({target:"Array",proto:!0,forced:TY||!r8e},{indexOf:function(r){var e=arguments.length>1?arguments[1]:void 0;return TY?gN(this,r,e)||0:e8e(this,r,e)}})});var bY=V(()=>{var i8e=Ne(),n8e=Wh();i8e({target:"Array",stat:!0},{isArray:n8e})});var EN=V((Z6t,SY)=>{"use strict";var s8e=Rt(),a8e=Ti(),o8e=si(),l8e=qa(),xY=No(),c8e=Dn(),u8e=fi(),h8e=Bn(),TN=u8e("iterator"),IY=!1,Xh,vN,yN;[].keys&&(yN=[].keys(),"next"in yN?(vN=xY(xY(yN)),vN!==Object.prototype&&(Xh=vN)):IY=!0);var p8e=!o8e(Xh)||s8e(function(){var t={};return Xh[TN].call(t)!==t});p8e?Xh={}:h8e&&(Xh=l8e(Xh));a8e(Xh[TN])||c8e(Xh,TN,function(){return this});SY.exports={IteratorPrototype:Xh,BUGGY_SAFARI_ITERATORS:IY}});var Cw=V((K6t,_Y)=>{"use strict";var d8e=EN().IteratorPrototype,f8e=qa(),m8e=Ao(),g8e=Ya(),v8e=pv(),y8e=function(){return this};_Y.exports=function(t,r,e,i){var n=r+" Iterator";return t.prototype=f8e(d8e,{next:m8e(+!i,e)}),g8e(t,n,!1,!0),v8e[n]=y8e,t}});var Pw=V((J6t,LY)=>{"use strict";var T8e=Ne(),E8e=ni(),Aw=Bn(),PY=Rm(),b8e=Ti(),x8e=Cw(),wY=No(),RY=gc(),I8e=Ya(),S8e=va(),bN=Dn(),_8e=fi(),MY=pv(),NY=EN(),w8e=PY.PROPER,R8e=PY.CONFIGURABLE,DY=NY.IteratorPrototype,Ow=NY.BUGGY_SAFARI_ITERATORS,x1=_8e("iterator"),CY="keys",I1="values",AY="entries",OY=function(){return this};LY.exports=function(t,r,e,i,n,s,a){x8e(e,r,i);var o=function(y){if(y===n&&p)return p;if(!Ow&&y in u)return u[y];switch(y){case CY:return function(){return new e(this,y)};case I1:return function(){return new e(this,y)};case AY:return function(){return new e(this,y)}}return function(){return new e(this)}},l=r+" Iterator",c=!1,u=t.prototype,h=u[x1]||u["@@iterator"]||n&&u[n],p=!Ow&&h||o(n),d=r=="Array"&&u.entries||h,f,m,g;if(d&&(f=wY(d.call(new t)),f!==Object.prototype&&f.next&&(!Aw&&wY(f)!==DY&&(RY?RY(f,DY):b8e(f[x1])||bN(f,x1,OY)),I8e(f,l,!0,!0),Aw&&(MY[l]=OY))),w8e&&n==I1&&h&&h.name!==I1&&(!Aw&&R8e?S8e(u,"name",I1):(c=!0,p=function(){return E8e(h,this)})),n)if(m={values:o(I1),keys:s?p:o(CY),entries:o(AY)},a)for(g in m)(Ow||c||!(g in u))&&bN(u,g,m[g]);else T8e({target:r,proto:!0,forced:Ow||c},m);return(!Aw||a)&&u[x1]!==p&&bN(u,x1,p,{name:n}),MY[r]=p,m}});var S1=V((Q6t,FY)=>{FY.exports=function(t,r){return{value:t,done:r}}});var _1=V((eHt,GY)=>{"use strict";var M8e=ga(),xN=gl(),HY=pv(),BY=cs(),D8e=Vi().f,C8e=Pw(),Nw=S1(),A8e=Bn(),O8e=Pr(),kY="Array Iterator",P8e=BY.set,N8e=BY.getterFor(kY);GY.exports=C8e(Array,"Array",function(t,r){P8e(this,{type:kY,target:M8e(t),index:0,kind:r})},function(){var t=N8e(this),r=t.target,e=t.kind,i=t.index++;return!r||i>=r.length?(t.target=void 0,Nw(void 0,!0)):e=="keys"?Nw(i,!1):e=="values"?Nw(r[i],!1):Nw([i,r[i]],!1)},"values");var UY=HY.Arguments=HY.Array;xN("keys");xN("values");xN("entries");if(!A8e&&O8e&&UY.name!=="values")try{D8e(UY,"name",{value:"values"})}catch(t){}});var VY=V(()=>{"use strict";var L8e=Ne(),F8e=Bt(),H8e=xm(),U8e=ga(),B8e=Ru(),k8e=F8e([].join),G8e=H8e!=Object,V8e=B8e("join",",");L8e({target:"Array",proto:!0,forced:G8e||!V8e},{join:function(r){return k8e(U8e(this),r===void 0?",":r)}})});var SN=V((iHt,jY)=>{"use strict";var z8e=Po(),j8e=ga(),W8e=ms(),q8e=ln(),Y8e=Ru(),X8e=Math.min,IN=[].lastIndexOf,zY=!!IN&&1/[1].lastIndexOf(1,-0)<0,$8e=Y8e("lastIndexOf"),Z8e=zY||!$8e;jY.exports=Z8e?function(r){if(zY)return z8e(IN,this,arguments)||0;var e=j8e(this),i=q8e(e),n=i-1;for(arguments.length>1&&(n=X8e(n,W8e(arguments[1]))),n<0&&(n=i+n);n>=0;n--)if(n in e&&e[n]===r)return n||0;return-1}:IN});var qY=V(()=>{var K8e=Ne(),WY=SN();K8e({target:"Array",proto:!0,forced:WY!==[].lastIndexOf},{lastIndexOf:WY})});var YY=V(()=>{"use strict";var J8e=Ne(),Q8e=ws().map,eGe=mv(),tGe=eGe("map");J8e({target:"Array",proto:!0,forced:!tGe},{map:function(r){return Q8e(this,r,arguments.length>1?arguments[1]:void 0)}})});var $Y=V(()=>{"use strict";var rGe=Ne(),iGe=Rt(),nGe=Dm(),sGe=_u(),XY=Array,aGe=iGe(function(){function t(){}return!(XY.of.call(t)instanceof t)});rGe({target:"Array",stat:!0,forced:aGe},{of:function(){for(var r=0,e=arguments.length,i=new(nGe(this)?this:XY)(e);e>r;)sGe(i,r,arguments[r++]);return i.length=e,i}})});var Lw=V((uHt,ZY)=>{"use strict";var oGe=Pr(),lGe=Wh(),cGe=TypeError,uGe=Object.getOwnPropertyDescriptor,hGe=oGe&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();ZY.exports=hGe?function(t,r){if(lGe(t)&&!uGe(t,"length").writable)throw cGe("Cannot set read only .length");return t.length=r}:function(t,r){return t.length=r}});var KY=V(()=>{"use strict";var pGe=Ne(),dGe=Li(),fGe=ln(),mGe=Lw(),gGe=fv(),vGe=Rt(),yGe=vGe(function(){return[].push.call({length:4294967296},1)!==4294967297}),TGe=!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}();pGe({target:"Array",proto:!0,arity:1,forced:yGe||TGe},{push:function(r){var e=dGe(this),i=fGe(e),n=arguments.length;gGe(i+n);for(var s=0;s{var EGe=fs(),bGe=Li(),xGe=xm(),IGe=ln(),SGe=TypeError,JY=function(t){return function(r,e,i,n){EGe(e);var s=bGe(r),a=xGe(s),o=IGe(s),l=t?o-1:0,c=t?-1:1;if(i<2)for(;;){if(l in a){n=a[l],l+=c;break}if(l+=c,t?l<0:o<=l)throw SGe("Reduce of empty array with no initial value")}for(;t?l>=0:o>l;l+=c)l in a&&(n=e(n,a[l],l,s));return n}};QY.exports={left:JY(!1),right:JY(!0)}});var Mu=V((fHt,eX)=>{var _Ge=fa(),wGe=ir();eX.exports=_Ge(wGe.process)=="process"});var rX=V(()=>{"use strict";var RGe=Ne(),MGe=w1().left,DGe=Ru(),tX=xu(),CGe=Mu(),AGe=DGe("reduce"),OGe=!CGe&&tX>79&&tX<83;RGe({target:"Array",proto:!0,forced:!AGe||OGe},{reduce:function(r){var e=arguments.length;return MGe(this,r,e,e>1?arguments[1]:void 0)}})});var nX=V(()=>{"use strict";var PGe=Ne(),NGe=w1().right,LGe=Ru(),iX=xu(),FGe=Mu(),HGe=LGe("reduceRight"),UGe=!FGe&&iX>79&&iX<83;PGe({target:"Array",proto:!0,forced:!HGe||UGe},{reduceRight:function(r){return NGe(this,r,arguments.length,arguments.length>1?arguments[1]:void 0)}})});var aX=V(()=>{"use strict";var BGe=Ne(),kGe=Bt(),GGe=Wh(),VGe=kGe([].reverse),sX=[1,2];BGe({target:"Array",proto:!0,forced:String(sX)===String(sX.reverse())},{reverse:function(){return GGe(this)&&(this.length=this.length),VGe(this)}})});var cX=V(()=>{"use strict";var zGe=Ne(),oX=Wh(),jGe=Dm(),WGe=si(),lX=Su(),qGe=ln(),YGe=ga(),XGe=_u(),$Ge=fi(),ZGe=mv(),KGe=Od(),JGe=ZGe("slice"),QGe=$Ge("species"),_N=Array,eVe=Math.max;zGe({target:"Array",proto:!0,forced:!JGe},{slice:function(r,e){var i=YGe(this),n=qGe(i),s=lX(r,n),a=lX(e===void 0?n:e,n),o,l,c;if(oX(i)&&(o=i.constructor,jGe(o)&&(o===_N||oX(o.prototype))?o=void 0:WGe(o)&&(o=o[QGe],o===null&&(o=void 0)),o===_N||o===void 0))return KGe(i,s,a);for(l=new(o===void 0?_N:o)(eVe(a-s,0)),c=0;s{"use strict";var tVe=Ne(),rVe=ws().some,iVe=Ru(),nVe=iVe("some");tVe({target:"Array",proto:!0,forced:!nVe},{some:function(r){return rVe(this,r,arguments.length>1?arguments[1]:void 0)}})});var Fw=V((_Ht,pX)=>{var hX=ov(),sVe=Math.floor,wN=function(t,r){var e=t.length,i=sVe(e/2);return e<8?aVe(t,r):oVe(t,wN(hX(t,0,i),r),wN(hX(t,i),r),r)},aVe=function(t,r){for(var e=t.length,i=1,n,s;i0;)t[s]=t[--s];s!==i++&&(t[s]=n)}return t},oVe=function(t,r,e,i){for(var n=r.length,s=e.length,a=0,o=0;a{var lVe=bu(),dX=lVe.match(/firefox\/(\d+)/i);fX.exports=!!dX&&+dX[1]});var MN=V((RHt,mX)=>{var cVe=bu();mX.exports=/MSIE|Trident/.test(cVe)});var Hw=V((MHt,vX)=>{var uVe=bu(),gX=uVe.match(/AppleWebKit\/(\d+)\./);vX.exports=!!gX&&+gX[1]});var wX=V(()=>{"use strict";var hVe=Ne(),SX=Bt(),pVe=fs(),dVe=Li(),yX=ln(),fVe=T1(),TX=mi(),DN=Rt(),mVe=Fw(),gVe=Ru(),EX=RN(),vVe=MN(),bX=xu(),xX=Hw(),Nd=[],IX=SX(Nd.sort),yVe=SX(Nd.push),TVe=DN(function(){Nd.sort(void 0)}),EVe=DN(function(){Nd.sort(null)}),bVe=gVe("sort"),_X=!DN(function(){if(bX)return bX<70;if(!(EX&&EX>3)){if(vVe)return!0;if(xX)return xX<603;var t="",r,e,i,n;for(r=65;r<76;r++){switch(e=String.fromCharCode(r),r){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(n=0;n<47;n++)Nd.push({k:e+n,v:i})}for(Nd.sort(function(s,a){return a.v-s.v}),n=0;nTX(e)?1:-1}};hVe({target:"Array",proto:!0,forced:xVe},{sort:function(r){r!==void 0&&pVe(r);var e=dVe(this);if(_X)return r===void 0?IX(e):IX(e,r);var i=[],n=yX(e),s,a;for(a=0;a{"use strict";var SVe=bn(),_Ve=Vi(),wVe=fi(),RVe=Pr(),RX=wVe("species");MX.exports=function(t){var r=SVe(t),e=_Ve.f;RVe&&r&&!r[RX]&&e(r,RX,{configurable:!0,get:function(){return this}})}});var DX=V(()=>{var MVe=Nm();MVe("Array")});var CX=V(()=>{"use strict";var DVe=Ne(),CVe=Li(),AVe=Su(),OVe=ms(),PVe=ln(),NVe=Lw(),LVe=fv(),FVe=lv(),HVe=_u(),CN=T1(),UVe=mv(),BVe=UVe("splice"),kVe=Math.max,GVe=Math.min;DVe({target:"Array",proto:!0,forced:!BVe},{splice:function(r,e){var i=CVe(this),n=PVe(i),s=AVe(r,n),a=arguments.length,o,l,c,u,h,p;for(a===0?o=l=0:a===1?(o=0,l=n-s):(o=a-2,l=GVe(kVe(OVe(e),0),n-s)),LVe(n+o-l),c=FVe(i,l),u=0;un-l+o;u--)CN(i,u-1)}else if(o>l)for(u=n-l;u>s;u--)h=u+l-1,p=u+o-1,h in i?i[p]=i[h]:CN(i,p);for(u=0;u{var VVe=gl();VVe("flat")});var OX=V(()=>{var zVe=gl();zVe("flatMap")});var PX=V(()=>{"use strict";var jVe=Ne(),WVe=Li(),qVe=ln(),YVe=Lw(),XVe=T1(),$Ve=fv(),ZVe=[].unshift(0)!==1,KVe=!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(t){return t instanceof TypeError}}();jVe({target:"Array",proto:!0,arity:1,forced:ZVe||KVe},{unshift:function(r){var e=WVe(this),i=qVe(e),n=arguments.length;if(n){$Ve(i+n);for(var s=i;s--;){var a=s+n;s in e?e[a]=e[s]:XVe(e,a)}for(var o=0;o{NX.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"});var gv=V((zHt,LX)=>{var JVe=Dn();LX.exports=function(t,r,e){for(var i in r)JVe(t,i,r[i],e);return t}});var yc=V((jHt,FX)=>{var QVe=Oo(),e7e=TypeError;FX.exports=function(t,r){if(QVe(r,t))return t;throw e7e("Incorrect invocation")}});var AN=V((WHt,HX)=>{var t7e=ms(),r7e=Wa(),i7e=RangeError;HX.exports=function(t){if(t===void 0)return 0;var r=t7e(t),e=r7e(r);if(r!==e)throw i7e("Wrong length or index");return e}});var BX=V((qHt,UX)=>{var n7e=Array,s7e=Math.abs,$h=Math.pow,a7e=Math.floor,o7e=Math.log,l7e=Math.LN2,c7e=function(t,r,e){var i=n7e(e),n=e*8-r-1,s=(1<>1,o=r===23?$h(2,-24)-$h(2,-77):0,l=t<0||t===0&&1/t<0?1:0,c=0,u,h,p;for(t=s7e(t),t!=t||t===1/0?(h=t!=t?1:0,u=s):(u=a7e(o7e(t)/l7e),p=$h(2,-u),t*p<1&&(u--,p*=2),u+a>=1?t+=o/p:t+=o*$h(2,1-a),t*p>=2&&(u++,p/=2),u+a>=s?(h=0,u=s):u+a>=1?(h=(t*p-1)*$h(2,r),u=u+a):(h=t*$h(2,a-1)*$h(2,r),u=0));r>=8;)i[c++]=h&255,h/=256,r-=8;for(u=u<0;)i[c++]=u&255,u/=256,n-=8;return i[--c]|=l*128,i},u7e=function(t,r){var e=t.length,i=e*8-r-1,n=(1<>1,a=i-7,o=e-1,l=t[o--],c=l&127,u;for(l>>=7;a>0;)c=c*256+t[o--],a-=8;for(u=c&(1<<-a)-1,c>>=-a,a+=r;a>0;)u=u*256+t[o--],a-=8;if(c===0)c=1-s;else{if(c===n)return u?NaN:l?-1/0:1/0;u=u+$h(2,r),c=c-s}return(l?-1:1)*u*$h(2,c-r)};UX.exports={pack:c7e,unpack:u7e}});var M1=V((YHt,n$)=>{"use strict";var Ww=ir(),UN=Bt(),ON=Pr(),h7e=Uw(),KX=Rm(),kX=va(),GX=gv(),PN=Rt(),Bw=yc(),p7e=ms(),d7e=Wa(),Vw=AN(),JX=BX(),f7e=No(),VX=gc(),m7e=zh().f,g7e=Vi().f,v7e=Dw(),y7e=ov(),QX=Ya(),e$=cs(),T7e=KX.PROPER,zX=KX.CONFIGURABLE,Tv=e$.get,jX=e$.set,zw="ArrayBuffer",t$="DataView",yv="prototype",E7e="Wrong length",r$="Wrong index",vl=Ww[zw],Lo=vl,vv=Lo&&Lo[yv],Du=Ww[t$],Lm=Du&&Du[yv],WX=Object.prototype,b7e=Ww.Array,jw=Ww.RangeError,x7e=UN(v7e),I7e=UN([].reverse),i$=JX.pack,qX=JX.unpack,YX=function(t){return[t&255]},XX=function(t){return[t&255,t>>8&255]},$X=function(t){return[t&255,t>>8&255,t>>16&255,t>>24&255]},ZX=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},S7e=function(t){return i$(t,23,4)},_7e=function(t){return i$(t,52,8)},kw=function(t,r){g7e(t[yv],r,{get:function(){return Tv(this)[r]}})},Ld=function(t,r,e,i){var n=Vw(e),s=Tv(t);if(n+r>s.byteLength)throw jw(r$);var a=Tv(s.buffer).bytes,o=n+s.byteOffset,l=y7e(a,o,o+r);return i?l:I7e(l)},Fd=function(t,r,e,i,n,s){var a=Vw(e),o=Tv(t);if(a+r>o.byteLength)throw jw(r$);for(var l=Tv(o.buffer).bytes,c=a+o.byteOffset,u=i(+n),h=0;hn)throw jw("Wrong offset");if(i=i===void 0?n-s:d7e(i),s+i>n)throw jw(E7e);jX(this,{buffer:r,byteLength:i,byteOffset:s}),ON||(this.buffer=r,this.byteLength=i,this.byteOffset=s)},Lm=Du[yv],ON&&(kw(Lo,"byteLength"),kw(Du,"buffer"),kw(Du,"byteLength"),kw(Du,"byteOffset")),GX(Lm,{getInt8:function(r){return Ld(this,1,r)[0]<<24>>24},getUint8:function(r){return Ld(this,1,r)[0]},getInt16:function(r){var e=Ld(this,2,r,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(r){var e=Ld(this,2,r,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(r){return ZX(Ld(this,4,r,arguments.length>1?arguments[1]:void 0))},getUint32:function(r){return ZX(Ld(this,4,r,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(r){return qX(Ld(this,4,r,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(r){return qX(Ld(this,8,r,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(r,e){Fd(this,1,r,YX,e)},setUint8:function(r,e){Fd(this,1,r,YX,e)},setInt16:function(r,e){Fd(this,2,r,XX,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(r,e){Fd(this,2,r,XX,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(r,e){Fd(this,4,r,$X,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(r,e){Fd(this,4,r,$X,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(r,e){Fd(this,4,r,S7e,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(r,e){Fd(this,8,r,_7e,e,arguments.length>2?arguments[2]:void 0)}});else{if(NN=T7e&&vl.name!==zw,!PN(function(){vl(1)})||!PN(function(){new vl(-1)})||PN(function(){return new vl,new vl(1.5),new vl(NaN),vl.length!=1||NN&&!zX})){for(Lo=function(r){return Bw(this,vv),new vl(Vw(r))},Lo[yv]=vv,LN=m7e(vl),FN=0;LN.length>FN;)(Gw=LN[FN++])in Lo||kX(Lo,Gw,vl[Gw]);vv.constructor=Lo}else NN&&zX&&kX(vl,"name",zw);VX&&f7e(Lm)!==WX&&VX(Lm,WX),R1=new Du(new Lo(2)),HN=UN(Lm.setInt8),R1.setInt8(0,2147483648),R1.setInt8(1,2147483649),(R1.getInt8(0)||!R1.getInt8(1))&&GX(Lm,{setInt8:function(r,e){HN(this,r,e<<24>>24)},setUint8:function(r,e){HN(this,r,e<<24>>24)}},{unsafe:!0})}var NN,LN,FN,Gw,R1,HN;QX(Lo,zw);QX(Du,t$);n$.exports={ArrayBuffer:Lo,DataView:Du}});var a$=V(()=>{"use strict";var w7e=Ne(),R7e=ir(),M7e=M1(),D7e=Nm(),BN="ArrayBuffer",s$=M7e[BN],C7e=R7e[BN];w7e({global:!0,constructor:!0,forced:C7e!==s$},{ArrayBuffer:s$});D7e(BN)});var _i=V((ZHt,g$)=>{"use strict";var A7e=Uw(),zN=Pr(),Ta=ir(),u$=Ti(),Xw=si(),Ud=Si(),jN=mc(),O7e=Dd(),P7e=va(),kN=Dn(),N7e=Vi().f,L7e=Oo(),$w=No(),bv=gc(),F7e=fi(),H7e=_m(),h$=cs(),p$=h$.enforce,U7e=h$.get,qw=Ta.Int8Array,GN=qw&&qw.prototype,o$=Ta.Uint8ClampedArray,l$=o$&&o$.prototype,Cu=qw&&$w(qw),Tc=GN&&$w(GN),B7e=Object.prototype,WN=Ta.TypeError,c$=F7e("toStringTag"),VN=H7e("TYPED_ARRAY_TAG"),Yw="TypedArrayConstructor",Zh=A7e&&!!bv&&jN(Ta.opera)!=="Opera",d$=!1,$a,Hd,Ev,Kh={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},qN={BigInt64Array:8,BigUint64Array:8},k7e=function(r){if(!Xw(r))return!1;var e=jN(r);return e==="DataView"||Ud(Kh,e)||Ud(qN,e)},f$=function(t){var r=$w(t);if(Xw(r)){var e=U7e(r);return e&&Ud(e,Yw)?e[Yw]:f$(r)}},m$=function(t){if(!Xw(t))return!1;var r=jN(t);return Ud(Kh,r)||Ud(qN,r)},G7e=function(t){if(m$(t))return t;throw WN("Target is not a typed array")},V7e=function(t){if(u$(t)&&(!bv||L7e(Cu,t)))return t;throw WN(O7e(t)+" is not a typed array constructor")},z7e=function(t,r,e,i){if(zN){if(e)for(var n in Kh){var s=Ta[n];if(s&&Ud(s.prototype,t))try{delete s.prototype[t]}catch(a){try{s.prototype[t]=r}catch(o){}}}(!Tc[t]||e)&&kN(Tc,t,e?r:Zh&&GN[t]||r,i)}},j7e=function(t,r,e){var i,n;if(zN){if(bv){if(e){for(i in Kh)if(n=Ta[i],n&&Ud(n,t))try{delete n[t]}catch(s){}}if(!Cu[t]||e)try{return kN(Cu,t,e?r:Zh&&Cu[t]||r)}catch(s){}else return}for(i in Kh)n=Ta[i],n&&(!n[t]||e)&&kN(n,t,r)}};for($a in Kh)Hd=Ta[$a],Ev=Hd&&Hd.prototype,Ev?p$(Ev)[Yw]=Hd:Zh=!1;for($a in qN)Hd=Ta[$a],Ev=Hd&&Hd.prototype,Ev&&(p$(Ev)[Yw]=Hd);if((!Zh||!u$(Cu)||Cu===Function.prototype)&&(Cu=function(){throw WN("Incorrect invocation")},Zh))for($a in Kh)Ta[$a]&&bv(Ta[$a],Cu);if((!Zh||!Tc||Tc===B7e)&&(Tc=Cu.prototype,Zh))for($a in Kh)Ta[$a]&&bv(Ta[$a].prototype,Tc);Zh&&$w(l$)!==Tc&&bv(l$,Tc);if(zN&&!Ud(Tc,c$)){d$=!0,N7e(Tc,c$,{get:function(){return Xw(this)?this[VN]:void 0}});for($a in Kh)Ta[$a]&&P7e(Ta[$a],VN,$a)}g$.exports={NATIVE_ARRAY_BUFFER_VIEWS:Zh,TYPED_ARRAY_TAG:d$&&VN,aTypedArray:G7e,aTypedArrayConstructor:V7e,exportTypedArrayMethod:z7e,exportTypedArrayStaticMethod:j7e,getTypedArrayConstructor:f$,isView:k7e,isTypedArray:m$,TypedArray:Cu,TypedArrayPrototype:Tc}});var y$=V(()=>{var W7e=Ne(),v$=_i(),q7e=v$.NATIVE_ARRAY_BUFFER_VIEWS;W7e({target:"ArrayBuffer",stat:!0,forced:!q7e},{isView:v$.isView})});var Zw=V((QHt,T$)=>{var Y7e=Dm(),X7e=Dd(),$7e=TypeError;T$.exports=function(t){if(Y7e(t))return t;throw $7e(X7e(t)+" is not a constructor")}});var Fm=V((e4t,b$)=>{var E$=jr(),Z7e=Zw(),K7e=ma(),J7e=fi(),Q7e=J7e("species");b$.exports=function(t,r){var e=E$(t).constructor,i;return e===void 0||K7e(i=E$(e)[Q7e])?r:Z7e(i)}});var R$=V(()=>{"use strict";var e9e=Ne(),XN=jh(),t9e=Rt(),_$=M1(),x$=jr(),I$=Su(),r9e=Wa(),i9e=Fm(),$N=_$.ArrayBuffer,YN=_$.DataView,w$=YN.prototype,S$=XN($N.prototype.slice),n9e=XN(w$.getUint8),s9e=XN(w$.setUint8),a9e=t9e(function(){return!new $N(2).slice(1,void 0).byteLength});e9e({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a9e},{slice:function(r,e){if(S$&&e===void 0)return S$(x$(this),r);for(var i=x$(this).byteLength,n=I$(r,i),s=I$(e===void 0?i:e,i),a=new(i9e(this,$N))(r9e(s-n)),o=new YN(this),l=new YN(a),c=0;n{var o9e=Ne(),l9e=M1(),c9e=Uw();o9e({global:!0,constructor:!0,forced:!c9e},{DataView:l9e.DataView})});var D$=V(()=>{M$()});var C$=V(()=>{"use strict";var u9e=Ne(),h9e=Bt(),p9e=Rt(),d9e=p9e(function(){return new Date(16e11).getYear()!==120}),f9e=h9e(Date.prototype.getFullYear);u9e({target:"Date",proto:!0,forced:d9e},{getYear:function(){return f9e(this)-1900}})});var O$=V(()=>{var m9e=Ne(),g9e=Bt(),A$=Date,v9e=g9e(A$.prototype.getTime);m9e({target:"Date",stat:!0},{now:function(){return v9e(new A$)}})});var L$=V(()=>{"use strict";var y9e=Ne(),P$=Bt(),T9e=ms(),N$=Date.prototype,E9e=P$(N$.getTime),b9e=P$(N$.setFullYear);y9e({target:"Date",proto:!0},{setYear:function(r){E9e(this);var e=T9e(r),i=0<=e&&e<=99?e+1900:e;return b9e(this,i)}})});var F$=V(()=>{var x9e=Ne();x9e({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})});var D1=V((m4t,H$)=>{"use strict";var I9e=ms(),S9e=mi(),_9e=ls(),w9e=RangeError;H$.exports=function(r){var e=S9e(_9e(this)),i="",n=I9e(r);if(n<0||n==1/0)throw w9e("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))n&1&&(i+=e);return i}});var Kw=V((g4t,G$)=>{var k$=Bt(),R9e=Wa(),U$=mi(),M9e=D1(),D9e=ls(),C9e=k$(M9e),A9e=k$("".slice),O9e=Math.ceil,B$=function(t){return function(r,e,i){var n=U$(D9e(r)),s=R9e(e),a=n.length,o=i===void 0?" ":U$(i),l,c;return s<=a||o==""?n:(l=s-a,c=C9e(o,O9e(l/o.length)),c.length>l&&(c=A9e(c,0,l)),t?n+c:c+n)}};G$.exports={start:B$(!1),end:B$(!0)}});var j$=V((v4t,z$)=>{"use strict";var Bd=Bt(),V$=Rt(),Hm=Kw().start,P9e=RangeError,N9e=isFinite,L9e=Math.abs,Jh=Date.prototype,ZN=Jh.toISOString,F9e=Bd(Jh.getTime),H9e=Bd(Jh.getUTCDate),U9e=Bd(Jh.getUTCFullYear),B9e=Bd(Jh.getUTCHours),k9e=Bd(Jh.getUTCMilliseconds),G9e=Bd(Jh.getUTCMinutes),V9e=Bd(Jh.getUTCMonth),z9e=Bd(Jh.getUTCSeconds);z$.exports=V$(function(){return ZN.call(new Date(-5e13-1))!="0385-07-25T07:06:39.999Z"})||!V$(function(){ZN.call(new Date(NaN))})?function(){if(!N9e(F9e(this)))throw P9e("Invalid time value");var r=this,e=U9e(r),i=k9e(r),n=e<0?"-":e>9999?"+":"";return n+Hm(L9e(e),n?6:4,0)+"-"+Hm(V9e(r)+1,2,0)+"-"+Hm(H9e(r),2,0)+"T"+Hm(B9e(r),2,0)+":"+Hm(G9e(r),2,0)+":"+Hm(z9e(r),2,0)+"."+Hm(i,3,0)+"Z"}:ZN});var q$=V(()=>{var j9e=Ne(),W$=j$();j9e({target:"Date",proto:!0,forced:Date.prototype.toISOString!==W$},{toISOString:W$})});var Y$=V(()=>{"use strict";var W9e=Ne(),q9e=Rt(),Y9e=Li(),X9e=r1(),$9e=q9e(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});W9e({target:"Date",proto:!0,arity:1,forced:$9e},{toJSON:function(r){var e=Y9e(this),i=X9e(e,"number");return typeof i=="number"&&!isFinite(i)?null:e.toISOString()}})});var $$=V((x4t,X$)=>{"use strict";var Z9e=jr(),K9e=i2(),J9e=TypeError;X$.exports=function(t){if(Z9e(this),t==="string"||t==="default")t="string";else if(t!=="number")throw J9e("Incorrect hint");return K9e(this,t)}});var J$=V(()=>{var Q9e=Si(),eze=Dn(),tze=$$(),rze=fi(),Z$=rze("toPrimitive"),K$=Date.prototype;Q9e(K$,Z$)||eze(K$,Z$,tze)});var rZ=V(()=>{var eZ=Bt(),ize=Dn(),KN=Date.prototype,Q$="Invalid Date",tZ="toString",nze=eZ(KN[tZ]),sze=eZ(KN.getTime);String(new Date(NaN))!=Q$&&ize(KN,tZ,function(){var r=sze(this);return r===r?nze(this):Q$})});var nZ=V(()=>{"use strict";var aze=Ne(),C1=Bt(),oze=mi(),lze=C1("".charAt),cze=C1("".charCodeAt),uze=C1(/./.exec),hze=C1(1 .toString),pze=C1("".toUpperCase),dze=/[\w*+\-./@]/,iZ=function(t,r){for(var e=hze(t,16);e.length{"use strict";var aZ=Bt(),fze=fs(),mze=si(),gze=Si(),sZ=Od(),vze=tv(),oZ=Function,yze=aZ([].concat),Tze=aZ([].join),JN={},Eze=function(t,r,e){if(!gze(JN,r)){for(var i=[],n=0;n{var bze=Ne(),cZ=QN();bze({target:"Function",proto:!0,forced:Function.bind!==cZ},{bind:cZ})});var dZ=V(()=>{"use strict";var xze=Ti(),hZ=si(),Ize=Vi(),Sze=No(),_ze=fi(),wze=iw(),eL=_ze("hasInstance"),pZ=Function.prototype;eL in pZ||Ize.f(pZ,eL,{value:wze(function(t){if(!xze(this)||!hZ(t))return!1;var r=this.prototype;if(!hZ(r))return t instanceof this;for(;t=Sze(t);)if(r===t)return!0;return!1},eL)})});var vZ=V(()=>{var Rze=Pr(),Mze=Rm().EXISTS,fZ=Bt(),Dze=Vi().f,mZ=Function.prototype,Cze=fZ(mZ.toString),gZ=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Aze=fZ(gZ.exec),Oze="name";Rze&&!Mze&&Dze(mZ,Oze,{configurable:!0,get:function(){try{return Aze(gZ,Cze(this))[1]}catch(t){return""}}})});var yZ=V(()=>{var Pze=Ne(),tL=ir();Pze({global:!0,forced:tL.globalThis!==tL},{globalThis:tL})});var TZ=V(()=>{var Nze=ir(),Lze=Ya();Lze(Nze.JSON,"JSON",!0)});var Jw=V((k4t,EZ)=>{var Fze=Rt();EZ.exports=Fze(function(){if(typeof ArrayBuffer=="function"){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})});var eR=V((G4t,xZ)=>{var Hze=Rt(),Uze=si(),Bze=fa(),bZ=Jw(),Qw=Object.isExtensible,kze=Hze(function(){Qw(1)});xZ.exports=kze||bZ?function(r){return!Uze(r)||bZ&&Bze(r)=="ArrayBuffer"?!1:Qw?Qw(r):!0}:Qw});var Um=V((V4t,IZ)=>{var Gze=Rt();IZ.exports=!Gze(function(){return Object.isExtensible(Object.preventExtensions({}))})});var kd=V((z4t,wZ)=>{var Vze=Ne(),zze=Bt(),jze=iv(),Wze=si(),rL=Si(),qze=Vi().f,SZ=zh(),Yze=hw(),iL=eR(),Xze=_m(),$ze=Um(),_Z=!1,Qh=Xze("meta"),Zze=0,nL=function(t){qze(t,Qh,{value:{objectID:"O"+Zze++,weakData:{}}})},Kze=function(t,r){if(!Wze(t))return typeof t=="symbol"?t:(typeof t=="string"?"S":"P")+t;if(!rL(t,Qh)){if(!iL(t))return"F";if(!r)return"E";nL(t)}return t[Qh].objectID},Jze=function(t,r){if(!rL(t,Qh)){if(!iL(t))return!0;if(!r)return!1;nL(t)}return t[Qh].weakData},Qze=function(t){return $ze&&_Z&&iL(t)&&!rL(t,Qh)&&nL(t),t},eje=function(){tje.enable=function(){},_Z=!0;var t=SZ.f,r=zze([].splice),e={};e[Qh]=1,t(e).length&&(SZ.f=function(i){for(var n=t(i),s=0,a=n.length;s{"use strict";var rje=Ne(),ije=ir(),nje=Bt(),RZ=sv(),sje=Dn(),aje=kd(),oje=vc(),lje=yc(),cje=Ti(),uje=ma(),sL=si(),aL=Rt(),hje=b1(),pje=Ya(),dje=Om();MZ.exports=function(t,r,e){var i=t.indexOf("Map")!==-1,n=t.indexOf("Weak")!==-1,s=i?"set":"add",a=ije[t],o=a&&a.prototype,l=a,c={},u=function(y){var E=nje(o[y]);sje(o,y,y=="add"?function(x){return E(this,x===0?0:x),this}:y=="delete"?function(b){return n&&!sL(b)?!1:E(this,b===0?0:b)}:y=="get"?function(x){return n&&!sL(x)?void 0:E(this,x===0?0:x)}:y=="has"?function(x){return n&&!sL(x)?!1:E(this,x===0?0:x)}:function(x,S){return E(this,x===0?0:x,S),this})},h=RZ(t,!cje(a)||!(n||o.forEach&&!aL(function(){new a().entries().next()})));if(h)l=e.getConstructor(r,t,i,s),aje.enable();else if(RZ(t,!0)){var p=new l,d=p[s](n?{}:-0,1)!=p,f=aL(function(){p.has(1)}),m=hje(function(y){new a(y)}),g=!n&&aL(function(){for(var y=new a,E=5;E--;)y[s](E,E);return!y.has(-0)});m||(l=r(function(y,E){lje(y,o);var b=dje(new a,y,l);return uje(E)||oje(E,b[s],{that:b,AS_ENTRIES:i}),b}),l.prototype=o,o.constructor=l),(f||g)&&(u("delete"),u("has"),i&&u("get")),(g||d)&&u(s),n&&o.clear&&delete o.clear}return c[t]=l,rje({global:!0,constructor:!0,forced:l!=a},c),pje(l,t),n||e.setStrong(l,t,i),l}});var lL=V((W4t,PZ)=>{"use strict";var fje=Vi().f,mje=qa(),DZ=gv(),gje=fl(),vje=yc(),yje=ma(),Tje=vc(),Eje=Pw(),tR=S1(),bje=Nm(),O1=Pr(),CZ=kd().fastKey,OZ=cs(),AZ=OZ.set,oL=OZ.getterFor;PZ.exports={getConstructor:function(t,r,e,i){var n=t(function(c,u){vje(c,s),AZ(c,{type:r,index:mje(null),first:void 0,last:void 0,size:0}),O1||(c.size=0),yje(u)||Tje(u,c[i],{that:c,AS_ENTRIES:e})}),s=n.prototype,a=oL(r),o=function(c,u,h){var p=a(c),d=l(c,u),f,m;return d?d.value=h:(p.last=d={index:m=CZ(u,!0),key:u,value:h,previous:f=p.last,next:void 0,removed:!1},p.first||(p.first=d),f&&(f.next=d),O1?p.size++:c.size++,m!=="F"&&(p.index[m]=d)),c},l=function(c,u){var h=a(c),p=CZ(u),d;if(p!=="F")return h.index[p];for(d=h.first;d;d=d.next)if(d.key==u)return d};return DZ(s,{clear:function(){for(var u=this,h=a(u),p=h.index,d=h.first;d;)d.removed=!0,d.previous&&(d.previous=d.previous.next=void 0),delete p[d.index],d=d.next;h.first=h.last=void 0,O1?h.size=0:u.size=0},delete:function(c){var u=this,h=a(u),p=l(u,c);if(p){var d=p.next,f=p.previous;delete h.index[p.index],p.removed=!0,f&&(f.next=d),d&&(d.previous=f),h.first==p&&(h.first=d),h.last==p&&(h.last=f),O1?h.size--:u.size--}return!!p},forEach:function(u){for(var h=a(this),p=gje(u,arguments.length>1?arguments[1]:void 0),d;d=d?d.next:h.first;)for(p(d.value,d.key,this);d&&d.removed;)d=d.previous},has:function(u){return!!l(this,u)}}),DZ(s,e?{get:function(u){var h=l(this,u);return h&&h.value},set:function(u,h){return o(this,u===0?0:u,h)}}:{add:function(u){return o(this,u=u===0?0:u,u)}}),O1&&fje(s,"size",{get:function(){return a(this).size}}),n},setStrong:function(t,r,e){var i=r+" Iterator",n=oL(r),s=oL(i);Eje(t,r,function(a,o){AZ(this,{type:i,target:a,state:n(a),kind:o,last:void 0})},function(){for(var a=s(this),o=a.kind,l=a.last;l&&l.removed;)l=l.previous;return!a.target||!(a.last=l=l?l.next:a.state.first)?(a.target=void 0,tR(void 0,!0)):o=="keys"?tR(l.key,!1):o=="values"?tR(l.value,!1):tR([l.key,l.value],!1)},e?"entries":"values",!e,!0),bje(r)}}});var NZ=V(()=>{"use strict";var xje=A1(),Ije=lL();xje("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Ije)});var LZ=V(()=>{NZ()});var cL=V((Z4t,FZ)=>{var Sje=Math.log;FZ.exports=Math.log1p||function(r){var e=+r;return e>-1e-8&&e<1e-8?e-e*e/2:Sje(1+e)}});var UZ=V(()=>{var _je=Ne(),wje=cL(),uL=Math.acosh,Rje=Math.log,HZ=Math.sqrt,Mje=Math.LN2,Dje=!uL||Math.floor(uL(Number.MAX_VALUE))!=710||uL(1/0)!=1/0;_je({target:"Math",stat:!0,forced:Dje},{acosh:function(r){var e=+r;return e<1?NaN:e>9490626562425156e-8?Rje(e)+Mje:wje(e-1+HZ(e-1)*HZ(e+1))}})});var GZ=V(()=>{var Cje=Ne(),BZ=Math.asinh,Aje=Math.log,Oje=Math.sqrt;function kZ(t){var r=+t;return!isFinite(r)||r==0?r:r<0?-kZ(-r):Aje(r+Oje(r*r+1))}Cje({target:"Math",stat:!0,forced:!(BZ&&1/BZ(0)>0)},{asinh:kZ})});var zZ=V(()=>{var Pje=Ne(),VZ=Math.atanh,Nje=Math.log;Pje({target:"Math",stat:!0,forced:!(VZ&&1/VZ(-0)<0)},{atanh:function(r){var e=+r;return e==0?e:Nje((1+e)/(1-e))/2}})});var rR=V((iUt,jZ)=>{jZ.exports=Math.sign||function(r){var e=+r;return e==0||e!=e?e:e<0?-1:1}});var WZ=V(()=>{var Lje=Ne(),Fje=rR(),Hje=Math.abs,Uje=Math.pow;Lje({target:"Math",stat:!0},{cbrt:function(r){var e=+r;return Fje(e)*Uje(Hje(e),1/3)}})});var qZ=V(()=>{var Bje=Ne(),kje=Math.floor,Gje=Math.log,Vje=Math.LOG2E;Bje({target:"Math",stat:!0},{clz32:function(r){var e=r>>>0;return e?31-kje(Gje(e+.5)*Vje):32}})});var N1=V((lUt,YZ)=>{var P1=Math.expm1,zje=Math.exp;YZ.exports=!P1||P1(10)>22025.465794806718||P1(10)<22025.465794806718||P1(-2e-17)!=-2e-17?function(r){var e=+r;return e==0?e:e>-1e-6&&e<1e-6?e+e*e/2:zje(e)-1}:P1});var $Z=V(()=>{var jje=Ne(),Wje=N1(),XZ=Math.cosh,qje=Math.abs,hL=Math.E;jje({target:"Math",stat:!0,forced:!XZ||XZ(710)===1/0},{cosh:function(r){var e=Wje(qje(r)-1)+1;return(e+1/(e*hL*hL))*(hL/2)}})});var KZ=V(()=>{var Yje=Ne(),ZZ=N1();Yje({target:"Math",stat:!0,forced:ZZ!=Math.expm1},{expm1:ZZ})});var QZ=V((dUt,JZ)=>{var Xje=rR(),$je=Math.abs,nR=Math.pow,dL=nR(2,-52),iR=nR(2,-23),Zje=nR(2,127)*(2-iR),pL=nR(2,-126),Kje=function(t){return t+1/dL-1/dL};JZ.exports=Math.fround||function(r){var e=+r,i=$je(e),n=Xje(e),s,a;return iZje||a!=a?n*(1/0):n*a)}});var eK=V(()=>{var Jje=Ne(),Qje=QZ();Jje({target:"Math",stat:!0},{fround:Qje})});var rK=V(()=>{var eWe=Ne(),tK=Math.hypot,tWe=Math.abs,rWe=Math.sqrt,iWe=!!tK&&tK(1/0,NaN)!==1/0;eWe({target:"Math",stat:!0,arity:2,forced:iWe},{hypot:function(r,e){for(var i=0,n=0,s=arguments.length,a=0,o,l;n0?(l=o/a,i+=l*l):i+=o;return a===1/0?1/0:a*rWe(i)}})});var nK=V(()=>{var nWe=Ne(),sWe=Rt(),iK=Math.imul,aWe=sWe(function(){return iK(4294967295,5)!=-5||iK.length!=2});nWe({target:"Math",stat:!0,forced:aWe},{imul:function(r,e){var i=65535,n=+r,s=+e,a=i&n,o=i&s;return 0|a*o+((i&n>>>16)*o+a*(i&s>>>16)<<16>>>0)}})});var fL=V((EUt,sK)=>{var oWe=Math.log,lWe=Math.LOG10E;sK.exports=Math.log10||function(r){return oWe(r)*lWe}});var aK=V(()=>{var cWe=Ne(),uWe=fL();cWe({target:"Math",stat:!0},{log10:uWe})});var oK=V(()=>{var hWe=Ne(),pWe=cL();hWe({target:"Math",stat:!0},{log1p:pWe})});var lK=V(()=>{var dWe=Ne(),fWe=Math.log,mWe=Math.LN2;dWe({target:"Math",stat:!0},{log2:function(r){return fWe(r)/mWe}})});var cK=V(()=>{var gWe=Ne(),vWe=rR();gWe({target:"Math",stat:!0},{sign:vWe})});var pK=V(()=>{var yWe=Ne(),TWe=Rt(),uK=N1(),EWe=Math.abs,hK=Math.exp,bWe=Math.E,xWe=TWe(function(){return Math.sinh(-2e-17)!=-2e-17});yWe({target:"Math",stat:!0,forced:xWe},{sinh:function(r){var e=+r;return EWe(e)<1?(uK(e)-uK(-e))/2:(hK(e-1)-hK(-e-1))*(bWe/2)}})});var mK=V(()=>{var IWe=Ne(),dK=N1(),fK=Math.exp;IWe({target:"Math",stat:!0},{tanh:function(r){var e=+r,i=dK(e),n=dK(-e);return i==1/0?1:n==1/0?-1:(i-n)/(fK(e)+fK(-e))}})});var gK=V(()=>{var SWe=Ya();SWe(Math,"Math",!0)});var vK=V(()=>{var _We=Ne(),wWe=T2();_We({target:"Math",stat:!0},{trunc:wWe})});var L1=V((HUt,yK)=>{var RWe=Bt();yK.exports=RWe(1 .valueOf)});var F1=V((UUt,TK)=>{TK.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`});var Bm=V((BUt,bK)=>{var MWe=Bt(),DWe=ls(),CWe=mi(),AWe=F1(),EK=MWe("".replace),sR="["+AWe+"]",OWe=RegExp("^"+sR+sR+"*"),PWe=RegExp(sR+sR+"*$"),mL=function(t){return function(r){var e=CWe(DWe(r));return t&1&&(e=EK(e,OWe,"")),t&2&&(e=EK(e,PWe,"")),e}};bK.exports={start:mL(1),end:mL(2),trim:mL(3)}});var MK=V(()=>{"use strict";var NWe=Ne(),gL=Bn(),LWe=Pr(),SK=ir(),vL=pw(),_K=Bt(),FWe=sv(),xK=Si(),HWe=Om(),UWe=Oo(),BWe=Md(),wK=r1(),kWe=Rt(),GWe=zh().f,VWe=Us().f,zWe=Vi().f,jWe=L1(),WWe=Bm().trim,H1="Number",xv=SK[H1],IK=vL[H1],yL=xv.prototype,qWe=SK.TypeError,YWe=_K("".slice),aR=_K("".charCodeAt),XWe=function(t){var r=wK(t,"number");return typeof r=="bigint"?r:$We(r)},$We=function(t){var r=wK(t,"number"),e,i,n,s,a,o,l,c;if(BWe(r))throw qWe("Cannot convert a Symbol value to a number");if(typeof r=="string"&&r.length>2){if(r=WWe(r),e=aR(r,0),e===43||e===45){if(i=aR(r,2),i===88||i===120)return NaN}else if(e===48){switch(aR(r,1)){case 66:case 98:n=2,s=49;break;case 79:case 111:n=8,s=55;break;default:return+r}for(a=YWe(r,2),o=a.length,l=0;ls)return NaN;return parseInt(a,n)}}return+r},TL=FWe(H1,!xv(" 0o1")||!xv("0b1")||xv("+0x1")),ZWe=function(t){return UWe(yL,t)&&kWe(function(){jWe(t)})},oR=function(r){var e=arguments.length<1?0:xv(XWe(r));return ZWe(this)?HWe(Object(e),this,oR):e};oR.prototype=yL;TL&&!gL&&(yL.constructor=oR);NWe({global:!0,constructor:!0,wrap:!0,forced:TL},{Number:oR});var RK=function(t,r){for(var e=LWe?GWe(r):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),i=0,n;e.length>i;i++)xK(r,n=e[i])&&!xK(t,n)&&zWe(t,n,VWe(r,n))};gL&&IK&&RK(vL[H1],IK);(TL||gL)&&RK(vL[H1],xv)});var DK=V(()=>{var KWe=Ne();KWe({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})});var AK=V((jUt,CK)=>{var JWe=ir(),QWe=JWe.isFinite;CK.exports=Number.isFinite||function(r){return typeof r=="number"&&QWe(r)}});var OK=V(()=>{var eqe=Ne(),tqe=AK();eqe({target:"Number",stat:!0},{isFinite:tqe})});var lR=V((YUt,PK)=>{var rqe=si(),iqe=Math.floor;PK.exports=Number.isInteger||function(r){return!rqe(r)&&isFinite(r)&&iqe(r)===r}});var NK=V(()=>{var nqe=Ne(),sqe=lR();nqe({target:"Number",stat:!0},{isInteger:sqe})});var LK=V(()=>{var aqe=Ne();aqe({target:"Number",stat:!0},{isNaN:function(r){return r!=r}})});var FK=V(()=>{var oqe=Ne(),lqe=lR(),cqe=Math.abs;oqe({target:"Number",stat:!0},{isSafeInteger:function(r){return lqe(r)&&cqe(r)<=9007199254740991}})});var HK=V(()=>{var uqe=Ne();uqe({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})});var UK=V(()=>{var hqe=Ne();hqe({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})});var EL=V((nBt,VK)=>{var GK=ir(),pqe=Rt(),dqe=Bt(),fqe=mi(),mqe=Bm().trim,gqe=F1(),vqe=dqe("".charAt),cR=GK.parseFloat,BK=GK.Symbol,kK=BK&&BK.iterator,yqe=1/cR(gqe+"-0")!==-1/0||kK&&!pqe(function(){cR(Object(kK))});VK.exports=yqe?function(r){var e=mqe(fqe(r)),i=cR(e);return i===0&&vqe(e,0)=="-"?-0:i}:cR});var jK=V(()=>{var Tqe=Ne(),zK=EL();Tqe({target:"Number",stat:!0,forced:Number.parseFloat!=zK},{parseFloat:zK})});var bL=V((oBt,ZK)=>{var XK=ir(),Eqe=Rt(),bqe=Bt(),xqe=mi(),Iqe=Bm().trim,WK=F1(),U1=XK.parseInt,qK=XK.Symbol,YK=qK&&qK.iterator,$K=/^[+-]?0x/i,Sqe=bqe($K.exec),_qe=U1(WK+"08")!==8||U1(WK+"0x16")!==22||YK&&!Eqe(function(){U1(Object(YK))});ZK.exports=_qe?function(r,e){var i=Iqe(xqe(r));return U1(i,e>>>0||(Sqe($K,i)?16:10))}:U1});var JK=V(()=>{var wqe=Ne(),KK=bL();wqe({target:"Number",stat:!0,forced:Number.parseInt!=KK},{parseInt:KK})});var iJ=V(()=>{"use strict";var Rqe=Ne(),xL=Bt(),Mqe=ms(),Dqe=L1(),Cqe=D1(),Aqe=fL(),uR=Rt(),Oqe=RangeError,QK=String,Pqe=isFinite,Nqe=Math.abs,Lqe=Math.floor,eJ=Math.pow,Fqe=Math.round,Au=xL(1 .toExponential),Hqe=xL(Cqe),tJ=xL("".slice),rJ=Au(-69e-12,4)==="-6.9000e-11"&&Au(1.255,2)==="1.25e+0"&&Au(12345,3)==="1.235e+4"&&Au(25,0)==="3e+1",Uqe=uR(function(){Au(1,1/0)})&&uR(function(){Au(1,-1/0)}),Bqe=!uR(function(){Au(1/0,1/0)})&&!uR(function(){Au(NaN,1/0)}),kqe=!rJ||!Uqe||!Bqe;Rqe({target:"Number",proto:!0,forced:kqe},{toExponential:function(r){var e=Dqe(this);if(r===void 0)return Au(e);var i=Mqe(r);if(!Pqe(e))return String(e);if(i<0||i>20)throw Oqe("Incorrect fraction digits");if(rJ)return Au(e,i);var n="",s="",a=0,o="",l="";if(e<0&&(n="-",e=-e),e===0)a=0,s=Hqe("0",i+1);else{var c=Aqe(e);a=Lqe(c);var u=0,h=eJ(10,a-i);u=Fqe(e/h),2*e>=(2*u+1)*h&&(u+=1),u>=eJ(10,i+1)&&(u/=10,a+=1),s=QK(u)}return i!==0&&(s=tJ(s,0,1)+"."+tJ(s,1)),a===0?(o="+",l="0"):(o=a>0?"+":"-",l=QK(Nqe(a))),s+="e"+o+l,n+s}})});var cJ=V(()=>{"use strict";var Gqe=Ne(),_L=Bt(),Vqe=ms(),zqe=L1(),jqe=D1(),nJ=Rt(),Wqe=RangeError,oJ=String,lJ=Math.floor,SL=_L(jqe),sJ=_L("".slice),B1=_L(1 .toFixed),Sv=function(t,r,e){return r===0?e:r%2===1?Sv(t,r-1,e*t):Sv(t*t,r/2,e)},qqe=function(t){for(var r=0,e=t;e>=4096;)r+=12,e/=4096;for(;e>=2;)r+=1,e/=2;return r},Iv=function(t,r,e){for(var i=-1,n=e;++i<6;)n+=r*t[i],t[i]=n%1e7,n=lJ(n/1e7)},IL=function(t,r){for(var e=6,i=0;--e>=0;)i+=t[e],t[e]=lJ(i/r),i=i%r*1e7},aJ=function(t){for(var r=6,e="";--r>=0;)if(e!==""||r===0||t[r]!==0){var i=oJ(t[r]);e=e===""?i:e+SL("0",7-i.length)+i}return e},Yqe=nJ(function(){return B1(8e-5,3)!=="0.000"||B1(.9,0)!=="1"||B1(1.255,2)!=="1.25"||B1(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!nJ(function(){B1({})});Gqe({target:"Number",proto:!0,forced:Yqe},{toFixed:function(r){var e=zqe(this),i=Vqe(r),n=[0,0,0,0,0,0],s="",a="0",o,l,c,u;if(i<0||i>20)throw Wqe("Incorrect fraction digits");if(e!=e)return"NaN";if(e<=-1e21||e>=1e21)return oJ(e);if(e<0&&(s="-",e=-e),e>1e-21)if(o=qqe(e*Sv(2,69,1))-69,l=o<0?e*Sv(2,-o,1):e/Sv(2,o,1),l*=4503599627370496,o=52-o,o>0){for(Iv(n,0,l),c=i;c>=7;)Iv(n,1e7,0),c-=7;for(Iv(n,Sv(10,c,1),0),c=o-1;c>=23;)IL(n,1<<23),c-=23;IL(n,1<0?(u=a.length,a=s+(u<=i?"0."+SL("0",i-u)+a:sJ(a,0,u-i)+"."+sJ(a,u-i))):a=s+a,a}})});var pJ=V(()=>{"use strict";var Xqe=Ne(),$qe=Bt(),uJ=Rt(),hJ=L1(),hR=$qe(1 .toPrecision),Zqe=uJ(function(){return hR(1,void 0)!=="1"})||!uJ(function(){hR({})});Xqe({target:"Number",proto:!0,forced:Zqe},{toPrecision:function(r){return r===void 0?hR(hJ(this)):hR(hJ(this),r)}})});var RL=V((gBt,mJ)=>{"use strict";var dJ=Pr(),Kqe=Bt(),Jqe=ni(),Qqe=Rt(),wL=av(),eYe=a1(),tYe=t1(),rYe=Li(),iYe=xm(),_v=Object.assign,fJ=Object.defineProperty,nYe=Kqe([].concat);mJ.exports=!_v||Qqe(function(){if(dJ&&_v({b:1},_v(fJ({},"a",{enumerable:!0,get:function(){fJ(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var t={},r={},e=Symbol(),i="abcdefghijklmnopqrst";return t[e]=7,i.split("").forEach(function(n){r[n]=n}),_v({},t)[e]!=7||wL(_v({},r)).join("")!=i})?function(r,e){for(var i=rYe(r),n=arguments.length,s=1,a=eYe.f,o=tYe.f;n>s;)for(var l=iYe(arguments[s++]),c=a?nYe(wL(l),a(l)):wL(l),u=c.length,h=0,p;u>h;)p=c[h++],(!dJ||Jqe(o,l,p))&&(i[p]=l[p]);return i}:_v});var vJ=V(()=>{var sYe=Ne(),gJ=RL();sYe({target:"Object",stat:!0,arity:2,forced:Object.assign!==gJ},{assign:gJ})});var yJ=V(()=>{var aYe=Ne(),oYe=Pr(),lYe=qa();aYe({target:"Object",stat:!0,sham:!oYe},{create:lYe})});var k1=V((bBt,EJ)=>{"use strict";var cYe=Bn(),uYe=ir(),hYe=Rt(),TJ=Hw();EJ.exports=cYe||!hYe(function(){if(!(TJ&&TJ<535)){var t=Math.random();__defineSetter__.call(null,t,function(){}),delete uYe[t]}})});var bJ=V(()=>{"use strict";var pYe=Ne(),dYe=Pr(),fYe=k1(),mYe=fs(),gYe=Li(),vYe=Vi();dYe&&pYe({target:"Object",proto:!0,forced:fYe},{__defineGetter__:function(r,e){vYe.f(gYe(this),r,{get:mYe(e),enumerable:!0,configurable:!0})}})});var IJ=V(()=>{var yYe=Ne(),TYe=Pr(),xJ=lw().f;yYe({target:"Object",stat:!0,forced:Object.defineProperties!==xJ,sham:!TYe},{defineProperties:xJ})});var _J=V(()=>{var EYe=Ne(),bYe=Pr(),SJ=Vi().f;EYe({target:"Object",stat:!0,forced:Object.defineProperty!==SJ,sham:!bYe},{defineProperty:SJ})});var wJ=V(()=>{"use strict";var xYe=Ne(),IYe=Pr(),SYe=k1(),_Ye=fs(),wYe=Li(),RYe=Vi();IYe&&xYe({target:"Object",proto:!0,forced:SYe},{__defineSetter__:function(r,e){RYe.f(wYe(this),r,{set:_Ye(e),enumerable:!0,configurable:!0})}})});var ML=V((CBt,DJ)=>{var MYe=Pr(),MJ=Bt(),DYe=av(),CYe=ga(),AYe=t1().f,OYe=MJ(AYe),PYe=MJ([].push),RJ=function(t){return function(r){for(var e=CYe(r),i=DYe(e),n=i.length,s=0,a=[],o;n>s;)o=i[s++],(!MYe||OYe(e,o))&&PYe(a,t?[o,e[o]]:e[o]);return a}};DJ.exports={entries:RJ(!0),values:RJ(!1)}});var CJ=V(()=>{var NYe=Ne(),LYe=ML().entries;NYe({target:"Object",stat:!0},{entries:function(r){return LYe(r)}})});var AJ=V(()=>{var FYe=Ne(),HYe=Um(),UYe=Rt(),BYe=si(),kYe=kd().onFreeze,DL=Object.freeze,GYe=UYe(function(){DL(1)});FYe({target:"Object",stat:!0,forced:GYe,sham:!HYe},{freeze:function(r){return DL&&BYe(r)?DL(kYe(r)):r}})});var OJ=V(()=>{var VYe=Ne(),zYe=vc(),jYe=_u();VYe({target:"Object",stat:!0},{fromEntries:function(r){var e={};return zYe(r,function(i,n){jYe(e,i,n)},{AS_ENTRIES:!0}),e}})});var LJ=V(()=>{var WYe=Ne(),qYe=Rt(),YYe=ga(),PJ=Us().f,NJ=Pr(),XYe=qYe(function(){PJ(1)}),$Ye=!NJ||XYe;WYe({target:"Object",stat:!0,forced:$Ye,sham:!NJ},{getOwnPropertyDescriptor:function(r,e){return PJ(YYe(r),e)}})});var FJ=V(()=>{var ZYe=Ne(),KYe=Pr(),JYe=sw(),QYe=ga(),eXe=Us(),tXe=_u();ZYe({target:"Object",stat:!0,sham:!KYe},{getOwnPropertyDescriptors:function(r){for(var e=QYe(r),i=eXe.f,n=JYe(e),s={},a=0,o,l;n.length>a;)l=i(e,o=n[a++]),l!==void 0&&tXe(s,o,l);return s}})});var HJ=V(()=>{var rXe=Ne(),iXe=Rt(),nXe=hw().f,sXe=iXe(function(){return!Object.getOwnPropertyNames(1)});rXe({target:"Object",stat:!0,forced:sXe},{getOwnPropertyNames:nXe})});var BJ=V(()=>{var aXe=Ne(),oXe=Rt(),lXe=Li(),UJ=No(),cXe=Iw(),uXe=oXe(function(){UJ(1)});aXe({target:"Object",stat:!0,forced:uXe,sham:!cXe},{getPrototypeOf:function(r){return UJ(lXe(r))}})});var kJ=V(()=>{var hXe=Ne(),pXe=Si();hXe({target:"Object",stat:!0},{hasOwn:pXe})});var CL=V((YBt,GJ)=>{GJ.exports=Object.is||function(r,e){return r===e?r!==0||1/r===1/e:r!=r&&e!=e}});var VJ=V(()=>{var dXe=Ne(),fXe=CL();dXe({target:"Object",stat:!0},{is:fXe})});var jJ=V(()=>{var mXe=Ne(),zJ=eR();mXe({target:"Object",stat:!0,forced:Object.isExtensible!==zJ},{isExtensible:zJ})});var qJ=V(()=>{var gXe=Ne(),vXe=Rt(),yXe=si(),TXe=fa(),WJ=Jw(),AL=Object.isFrozen,EXe=vXe(function(){AL(1)});gXe({target:"Object",stat:!0,forced:EXe||WJ},{isFrozen:function(r){return!yXe(r)||WJ&&TXe(r)=="ArrayBuffer"?!0:AL?AL(r):!1}})});var XJ=V(()=>{var bXe=Ne(),xXe=Rt(),IXe=si(),SXe=fa(),YJ=Jw(),OL=Object.isSealed,_Xe=xXe(function(){OL(1)});bXe({target:"Object",stat:!0,forced:_Xe||YJ},{isSealed:function(r){return!IXe(r)||YJ&&SXe(r)=="ArrayBuffer"?!0:OL?OL(r):!1}})});var ZJ=V(()=>{var wXe=Ne(),RXe=Li(),$J=av(),MXe=Rt(),DXe=MXe(function(){$J(1)});wXe({target:"Object",stat:!0,forced:DXe},{keys:function(r){return $J(RXe(r))}})});var KJ=V(()=>{"use strict";var CXe=Ne(),AXe=Pr(),OXe=k1(),PXe=Li(),NXe=Vh(),LXe=No(),FXe=Us().f;AXe&&CXe({target:"Object",proto:!0,forced:OXe},{__lookupGetter__:function(r){var e=PXe(this),i=NXe(r),n;do if(n=FXe(e,i))return n.get;while(e=LXe(e))}})});var JJ=V(()=>{"use strict";var HXe=Ne(),UXe=Pr(),BXe=k1(),kXe=Li(),GXe=Vh(),VXe=No(),zXe=Us().f;UXe&&HXe({target:"Object",proto:!0,forced:BXe},{__lookupSetter__:function(r){var e=kXe(this),i=GXe(r),n;do if(n=zXe(e,i))return n.set;while(e=VXe(e))}})});var QJ=V(()=>{var jXe=Ne(),WXe=si(),qXe=kd().onFreeze,YXe=Um(),XXe=Rt(),PL=Object.preventExtensions,$Xe=XXe(function(){PL(1)});jXe({target:"Object",stat:!0,forced:$Xe,sham:!YXe},{preventExtensions:function(r){return PL&&WXe(r)?PL(qXe(r)):r}})});var Gd=V((ukt,tQ)=>{var eQ=iw(),ZXe=Vi();tQ.exports=function(t,r,e){return e.get&&eQ(e.get,r,{getter:!0}),e.set&&eQ(e.set,r,{setter:!0}),ZXe.f(t,r,e)}});var oQ=V(()=>{"use strict";var KXe=Pr(),JXe=Gd(),rQ=si(),QXe=Li(),e$e=ls(),iQ=Object.getPrototypeOf,nQ=Object.setPrototypeOf,sQ=Object.prototype,aQ="__proto__";if(KXe&&iQ&&nQ&&!(aQ in sQ))try{JXe(sQ,aQ,{configurable:!0,get:function(){return iQ(QXe(this))},set:function(r){var e=e$e(this);!rQ(r)&&r!==null||!rQ(e)||nQ(e,r)}})}catch(t){}});var lQ=V(()=>{var t$e=Ne(),r$e=si(),i$e=kd().onFreeze,n$e=Um(),s$e=Rt(),NL=Object.seal,a$e=s$e(function(){NL(1)});t$e({target:"Object",stat:!0,forced:a$e,sham:!n$e},{seal:function(r){return NL&&r$e(r)?NL(i$e(r)):r}})});var cQ=V(()=>{var o$e=Ne(),l$e=gc();o$e({target:"Object",stat:!0},{setPrototypeOf:l$e})});var hQ=V((vkt,uQ)=>{"use strict";var c$e=aw(),u$e=mc();uQ.exports=c$e?{}.toString:function(){return"[object "+u$e(this)+"]"}});var pQ=V(()=>{var h$e=aw(),p$e=Dn(),d$e=hQ();h$e||p$e(Object.prototype,"toString",d$e,{unsafe:!0})});var dQ=V(()=>{var f$e=Ne(),m$e=ML().values;f$e({target:"Object",stat:!0},{values:function(r){return m$e(r)}})});var mQ=V(()=>{var g$e=Ne(),fQ=EL();g$e({global:!0,forced:parseFloat!=fQ},{parseFloat:fQ})});var vQ=V(()=>{var v$e=Ne(),gQ=bL();v$e({global:!0,forced:parseInt!=gQ},{parseInt:gQ})});var ep=V((wkt,yQ)=>{var y$e=TypeError;yQ.exports=function(t,r){if(t{var T$e=bu();TQ.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(T$e)});var z1=V((Mkt,RQ)=>{var Fo=ir(),E$e=Po(),b$e=fl(),EQ=Ti(),x$e=Si(),I$e=Rt(),bQ=I2(),S$e=Od(),xQ=i1(),_$e=ep(),w$e=LL(),R$e=Mu(),GL=Fo.setImmediate,VL=Fo.clearImmediate,M$e=Fo.process,FL=Fo.Dispatch,D$e=Fo.Function,IQ=Fo.MessageChannel,C$e=Fo.String,HL=0,G1={},SQ="onreadystatechange",V1,km,UL,BL;try{V1=Fo.location}catch(t){}var zL=function(t){if(x$e(G1,t)){var r=G1[t];delete G1[t],r()}},kL=function(t){return function(){zL(t)}},_Q=function(t){zL(t.data)},wQ=function(t){Fo.postMessage(C$e(t),V1.protocol+"//"+V1.host)};(!GL||!VL)&&(GL=function(r){_$e(arguments.length,1);var e=EQ(r)?r:D$e(r),i=S$e(arguments,1);return G1[++HL]=function(){E$e(e,void 0,i)},km(HL),HL},VL=function(r){delete G1[r]},R$e?km=function(t){M$e.nextTick(kL(t))}:FL&&FL.now?km=function(t){FL.now(kL(t))}:IQ&&!w$e?(UL=new IQ,BL=UL.port2,UL.port1.onmessage=_Q,km=b$e(BL.postMessage,BL)):Fo.addEventListener&&EQ(Fo.postMessage)&&!Fo.importScripts&&V1&&V1.protocol!=="file:"&&!I$e(wQ)?(km=wQ,Fo.addEventListener("message",_Q,!1)):SQ in xQ("script")?km=function(t){bQ.appendChild(xQ("script"))[SQ]=function(){bQ.removeChild(this),zL(t)}}:km=function(t){setTimeout(kL(t),0)});RQ.exports={set:GL,clear:VL}});var DQ=V((Dkt,MQ)=>{var A$e=bu(),O$e=ir();MQ.exports=/ipad|iphone|ipod/i.test(A$e)&&O$e.Pebble!==void 0});var AQ=V((Ckt,CQ)=>{var P$e=bu();CQ.exports=/web0s(?!.*chrome)/i.test(P$e)});var XL=V((Akt,BQ)=>{var Vm=ir(),OQ=fl(),N$e=Us().f,jL=z1().set,L$e=LL(),F$e=DQ(),H$e=AQ(),WL=Mu(),PQ=Vm.MutationObserver||Vm.WebKitMutationObserver,NQ=Vm.document,LQ=Vm.process,pR=Vm.Promise,FQ=N$e(Vm,"queueMicrotask"),UQ=FQ&&FQ.value,j1,Gm,W1,wv,qL,YL,dR,HQ;UQ||(j1=function(){var t,r;for(WL&&(t=LQ.domain)&&t.exit();Gm;){r=Gm.fn,Gm=Gm.next;try{r()}catch(e){throw Gm?wv():W1=void 0,e}}W1=void 0,t&&t.enter()},!L$e&&!WL&&!H$e&&PQ&&NQ?(qL=!0,YL=NQ.createTextNode(""),new PQ(j1).observe(YL,{characterData:!0}),wv=function(){YL.data=qL=!qL}):!F$e&&pR&&pR.resolve?(dR=pR.resolve(void 0),dR.constructor=pR,HQ=OQ(dR.then,dR),wv=function(){HQ(j1)}):WL?wv=function(){LQ.nextTick(j1)}:(jL=OQ(jL,Vm),wv=function(){jL(j1)}));BQ.exports=UQ||function(t){var r={fn:t,next:void 0};W1&&(W1.next=r),Gm||(Gm=r,wv()),W1=r}});var GQ=V((Okt,kQ)=>{var U$e=ir();kQ.exports=function(t,r){var e=U$e.console;e&&e.error&&(arguments.length==1?e.error(t):e.error(t,r))}});var Rv=V((Pkt,VQ)=>{VQ.exports=function(t){try{return{error:!1,value:t()}}catch(r){return{error:!0,value:r}}}});var WQ=V((Nkt,jQ)=>{var zQ=function(){this.head=null,this.tail=null};zQ.prototype={add:function(t){var r={item:t,next:null};this.head?this.tail.next=r:this.head=r,this.tail=r},get:function(){var t=this.head;if(t)return this.head=t.next,this.tail===t&&(this.tail=null),t.item}};jQ.exports=zQ});var zm=V((Lkt,qQ)=>{var B$e=ir();qQ.exports=B$e.Promise});var fR=V((Fkt,YQ)=>{YQ.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"});var $L=V((Hkt,XQ)=>{var k$e=fR(),G$e=Mu();XQ.exports=!k$e&&!G$e&&typeof window=="object"&&typeof document=="object"});var Mv=V((Ukt,KQ)=>{var V$e=ir(),q1=zm(),z$e=Ti(),j$e=sv(),W$e=J_(),q$e=fi(),Y$e=$L(),X$e=fR(),$$e=Bn(),ZL=xu(),$Q=q1&&q1.prototype,Z$e=q$e("species"),KL=!1,ZQ=z$e(V$e.PromiseRejectionEvent),K$e=j$e("Promise",function(){var t=W$e(q1),r=t!==String(q1);if(!r&&ZL===66||$$e&&!($Q.catch&&$Q.finally))return!0;if(!ZL||ZL<51||!/native code/.test(t)){var e=new q1(function(s){s(1)}),i=function(s){s(function(){},function(){})},n=e.constructor={};if(n[Z$e]=i,KL=e.then(function(){})instanceof i,!KL)return!0}return!r&&(Y$e||X$e)&&!ZQ});KQ.exports={CONSTRUCTOR:K$e,REJECTION_EVENT:ZQ,SUBCLASSING:KL}});var Vd=V((Bkt,QQ)=>{"use strict";var JQ=fs(),J$e=TypeError,Q$e=function(t){var r,e;this.promise=new t(function(i,n){if(r!==void 0||e!==void 0)throw J$e("Bad Promise constructor");r=i,e=n}),this.resolve=JQ(r),this.reject=JQ(e)};QQ.exports.f=function(t){return new Q$e(t)}});var yee=V(()=>{"use strict";var eZe=Ne(),tZe=Bn(),yR=Mu(),zd=ir(),Ov=ni(),eee=Dn(),tee=gc(),rZe=Ya(),iZe=Nm(),nZe=fs(),vR=Ti(),sZe=si(),aZe=yc(),oZe=Fm(),aee=z1().set,rF=XL(),lZe=GQ(),cZe=Rv(),uZe=WQ(),oee=cs(),TR=zm(),iF=Mv(),lee=Vd(),ER="Promise",cee=iF.CONSTRUCTOR,hZe=iF.REJECTION_EVENT,pZe=iF.SUBCLASSING,JL=oee.getterFor(ER),dZe=oee.set,Dv=TR&&TR.prototype,jm=TR,mR=Dv,uee=zd.TypeError,QL=zd.document,nF=zd.process,eF=lee.f,fZe=eF,mZe=!!(QL&&QL.createEvent&&zd.dispatchEvent),hee="unhandledrejection",gZe="rejectionhandled",ree=0,pee=1,vZe=2,sF=1,dee=2,gR,iee,yZe,nee,fee=function(t){var r;return sZe(t)&&vR(r=t.then)?r:!1},mee=function(t,r){var e=r.value,i=r.state==pee,n=i?t.ok:t.fail,s=t.resolve,a=t.reject,o=t.domain,l,c,u;try{n?(i||(r.rejection===dee&&EZe(r),r.rejection=sF),n===!0?l=e:(o&&o.enter(),l=n(e),o&&(o.exit(),u=!0)),l===t.promise?a(uee("Promise-chain cycle")):(c=fee(l))?Ov(c,l,s,a):s(l)):a(e)}catch(h){o&&!u&&o.exit(),a(h)}},gee=function(t,r){t.notified||(t.notified=!0,rF(function(){for(var e=t.reactions,i;i=e.get();)mee(i,t);t.notified=!1,r&&!t.rejection&&TZe(t)}))},vee=function(t,r,e){var i,n;mZe?(i=QL.createEvent("Event"),i.promise=r,i.reason=e,i.initEvent(t,!1,!0),zd.dispatchEvent(i)):i={promise:r,reason:e},!hZe&&(n=zd["on"+t])?n(i):t===hee&&lZe("Unhandled promise rejection",e)},TZe=function(t){Ov(aee,zd,function(){var r=t.facade,e=t.value,i=see(t),n;if(i&&(n=cZe(function(){yR?nF.emit("unhandledRejection",e,r):vee(hee,r,e)}),t.rejection=yR||see(t)?dee:sF,n.error))throw n.value})},see=function(t){return t.rejection!==sF&&!t.parent},EZe=function(t){Ov(aee,zd,function(){var r=t.facade;yR?nF.emit("rejectionHandled",r):vee(gZe,r,t.value)})},Cv=function(t,r,e){return function(i){t(r,i,e)}},Av=function(t,r,e){t.done||(t.done=!0,e&&(t=e),t.value=r,t.state=vZe,gee(t,!0))},tF=function(t,r,e){if(!t.done){t.done=!0,e&&(t=e);try{if(t.facade===r)throw uee("Promise can't be resolved itself");var i=fee(r);i?rF(function(){var n={done:!1};try{Ov(i,r,Cv(tF,n,t),Cv(Av,n,t))}catch(s){Av(n,s,t)}}):(t.value=r,t.state=pee,gee(t,!1))}catch(n){Av({done:!1},n,t)}}};if(cee&&(jm=function(r){aZe(this,mR),nZe(r),Ov(gR,this);var e=JL(this);try{r(Cv(tF,e),Cv(Av,e))}catch(i){Av(e,i)}},mR=jm.prototype,gR=function(r){dZe(this,{type:ER,done:!1,notified:!1,parent:!1,reactions:new uZe,rejection:!1,state:ree,value:void 0})},gR.prototype=eee(mR,"then",function(r,e){var i=JL(this),n=eF(oZe(this,jm));return i.parent=!0,n.ok=vR(r)?r:!0,n.fail=vR(e)&&e,n.domain=yR?nF.domain:void 0,i.state==ree?i.reactions.add(n):rF(function(){mee(n,i)}),n.promise}),iee=function(){var t=new gR,r=JL(t);this.promise=t,this.resolve=Cv(tF,r),this.reject=Cv(Av,r)},lee.f=eF=function(t){return t===jm||t===yZe?new iee(t):fZe(t)},!tZe&&vR(TR)&&Dv!==Object.prototype)){nee=Dv.then,pZe||eee(Dv,"then",function(r,e){var i=this;return new jm(function(n,s){Ov(nee,i,n,s)}).then(r,e)},{unsafe:!0});try{delete Dv.constructor}catch(t){}tee&&tee(Dv,mR)}eZe({global:!0,constructor:!0,wrap:!0,forced:cee},{Promise:jm});rZe(jm,ER,!1,!0);iZe(ER)});var aF=V((Vkt,Tee)=>{var bZe=zm(),xZe=b1(),IZe=Mv().CONSTRUCTOR;Tee.exports=IZe||!xZe(function(t){bZe.all(t).then(void 0,function(){})})});var Eee=V(()=>{"use strict";var SZe=Ne(),_Ze=ni(),wZe=fs(),RZe=Vd(),MZe=Rv(),DZe=vc(),CZe=aF();SZe({target:"Promise",stat:!0,forced:CZe},{all:function(r){var e=this,i=RZe.f(e),n=i.resolve,s=i.reject,a=MZe(function(){var o=wZe(e.resolve),l=[],c=0,u=1;DZe(r,function(h){var p=c++,d=!1;u++,_Ze(o,e,h).then(function(f){d||(d=!0,l[p]=f,--u||n(l))},s)}),--u||n(l)});return a.error&&s(a.value),i.promise}})});var xee=V(()=>{"use strict";var AZe=Ne(),OZe=Bn(),PZe=Mv().CONSTRUCTOR,lF=zm(),NZe=bn(),LZe=Ti(),FZe=Dn(),bee=lF&&lF.prototype;AZe({target:"Promise",proto:!0,forced:PZe,real:!0},{catch:function(t){return this.then(void 0,t)}});!OZe&&LZe(lF)&&(oF=NZe("Promise").prototype.catch,bee.catch!==oF&&FZe(bee,"catch",oF,{unsafe:!0}));var oF});var Iee=V(()=>{"use strict";var HZe=Ne(),UZe=ni(),BZe=fs(),kZe=Vd(),GZe=Rv(),VZe=vc(),zZe=aF();HZe({target:"Promise",stat:!0,forced:zZe},{race:function(r){var e=this,i=kZe.f(e),n=i.reject,s=GZe(function(){var a=BZe(e.resolve);VZe(r,function(o){UZe(a,e,o).then(i.resolve,n)})});return s.error&&n(s.value),i.promise}})});var See=V(()=>{"use strict";var jZe=Ne(),WZe=ni(),qZe=Vd(),YZe=Mv().CONSTRUCTOR;jZe({target:"Promise",stat:!0,forced:YZe},{reject:function(r){var e=qZe.f(this);return WZe(e.reject,void 0,r),e.promise}})});var cF=V((Kkt,_ee)=>{var XZe=jr(),$Ze=si(),ZZe=Vd();_ee.exports=function(t,r){if(XZe(t),$Ze(r)&&r.constructor===t)return r;var e=ZZe.f(t),i=e.resolve;return i(r),e.promise}});var Mee=V(()=>{"use strict";var KZe=Ne(),JZe=bn(),wee=Bn(),QZe=zm(),Ree=Mv().CONSTRUCTOR,eKe=cF(),tKe=JZe("Promise"),rKe=wee&&!Ree;KZe({target:"Promise",stat:!0,forced:wee||Ree},{resolve:function(r){return eKe(rKe&&this===tKe?QZe:this,r)}})});var Dee=V(()=>{yee();Eee();xee();Iee();See();Mee()});var Cee=V(()=>{"use strict";var iKe=Ne(),nKe=ni(),sKe=fs(),aKe=Vd(),oKe=Rv(),lKe=vc();iKe({target:"Promise",stat:!0},{allSettled:function(r){var e=this,i=aKe.f(e),n=i.resolve,s=i.reject,a=oKe(function(){var o=sKe(e.resolve),l=[],c=0,u=1;lKe(r,function(h){var p=c++,d=!1;u++,nKe(o,e,h).then(function(f){d||(d=!0,l[p]={status:"fulfilled",value:f},--u||n(l))},function(f){d||(d=!0,l[p]={status:"rejected",reason:f},--u||n(l))})}),--u||n(l)});return a.error&&s(a.value),i.promise}})});var Oee=V(()=>{"use strict";var cKe=Ne(),uKe=ni(),hKe=fs(),pKe=bn(),dKe=Vd(),fKe=Rv(),mKe=vc(),Aee="No one promise resolved";cKe({target:"Promise",stat:!0},{any:function(r){var e=this,i=pKe("AggregateError"),n=dKe.f(e),s=n.resolve,a=n.reject,o=fKe(function(){var l=hKe(e.resolve),c=[],u=0,h=1,p=!1;mKe(r,function(d){var f=u++,m=!1;h++,uKe(l,e,d).then(function(g){m||p||(p=!0,s(g))},function(g){m||p||(m=!0,c[f]=g,--h||a(new i(c,Aee)))})}),--h||a(new i(c,Aee))});return o.error&&a(o.value),n.promise}})});var Fee=V(()=>{"use strict";var gKe=Ne(),vKe=Bn(),bR=zm(),yKe=Rt(),Nee=bn(),Lee=Ti(),TKe=Fm(),Pee=cF(),EKe=Dn(),hF=bR&&bR.prototype,bKe=!!bR&&yKe(function(){hF.finally.call({then:function(){}},function(){})});gKe({target:"Promise",proto:!0,real:!0,forced:bKe},{finally:function(t){var r=TKe(this,Nee("Promise")),e=Lee(t);return this.then(e?function(i){return Pee(r,t()).then(function(){return i})}:t,e?function(i){return Pee(r,t()).then(function(){throw i})}:t)}});!vKe&&Lee(bR)&&(uF=Nee("Promise").prototype.finally,hF.finally!==uF&&EKe(hF,"finally",uF,{unsafe:!0}));var uF});var Hee=V(()=>{var xKe=Ne(),IKe=Po(),SKe=fs(),_Ke=jr(),wKe=Rt(),RKe=!wKe(function(){Reflect.apply(function(){})});xKe({target:"Reflect",stat:!0,forced:RKe},{apply:function(r,e,i){return IKe(SKe(r),e,_Ke(i))}})});var jee=V(()=>{var MKe=Ne(),DKe=bn(),pF=Po(),CKe=QN(),Uee=Zw(),AKe=jr(),Bee=si(),OKe=qa(),Gee=Rt(),dF=DKe("Reflect","construct"),PKe=Object.prototype,NKe=[].push,Vee=Gee(function(){function t(){}return!(dF(function(){},[],t)instanceof t)}),zee=!Gee(function(){dF(function(){})}),kee=Vee||zee;MKe({target:"Reflect",stat:!0,forced:kee,sham:kee},{construct:function(r,e){Uee(r),AKe(e);var i=arguments.length<3?r:Uee(arguments[2]);if(zee&&!Vee)return dF(r,e,i);if(r==i){switch(e.length){case 0:return new r;case 1:return new r(e[0]);case 2:return new r(e[0],e[1]);case 3:return new r(e[0],e[1],e[2]);case 4:return new r(e[0],e[1],e[2],e[3])}var n=[null];return pF(NKe,n,e),new(pF(CKe,r,n))}var s=i.prototype,a=OKe(Bee(s)?s:PKe),o=pF(r,a,e);return Bee(o)?o:a}})});var Yee=V(()=>{var LKe=Ne(),FKe=Pr(),Wee=jr(),HKe=Vh(),qee=Vi(),UKe=Rt(),BKe=UKe(function(){Reflect.defineProperty(qee.f({},1,{value:1}),1,{value:2})});LKe({target:"Reflect",stat:!0,forced:BKe,sham:!FKe},{defineProperty:function(r,e,i){Wee(r);var n=HKe(e);Wee(i);try{return qee.f(r,n,i),!0}catch(s){return!1}}})});var Xee=V(()=>{var kKe=Ne(),GKe=jr(),VKe=Us().f;kKe({target:"Reflect",stat:!0},{deleteProperty:function(r,e){var i=VKe(GKe(r),e);return i&&!i.configurable?!1:delete r[e]}})});var fF=V((g8t,Zee)=>{var $ee=Si();Zee.exports=function(t){return t!==void 0&&($ee(t,"value")||$ee(t,"writable"))}});var Jee=V(()=>{var zKe=Ne(),jKe=ni(),WKe=si(),qKe=jr(),YKe=fF(),XKe=Us(),$Ke=No();function Kee(t,r){var e=arguments.length<3?t:arguments[2],i,n;if(qKe(t)===e)return t[r];if(i=XKe.f(t,r),i)return YKe(i)?i.value:i.get===void 0?void 0:jKe(i.get,e);if(WKe(n=$Ke(t)))return Kee(n,r,e)}zKe({target:"Reflect",stat:!0},{get:Kee})});var Qee=V(()=>{var ZKe=Ne(),KKe=Pr(),JKe=jr(),QKe=Us();ZKe({target:"Reflect",stat:!0,sham:!KKe},{getOwnPropertyDescriptor:function(r,e){return QKe.f(JKe(r),e)}})});var ete=V(()=>{var eJe=Ne(),tJe=jr(),rJe=No(),iJe=Iw();eJe({target:"Reflect",stat:!0,sham:!iJe},{getPrototypeOf:function(r){return rJe(tJe(r))}})});var tte=V(()=>{var nJe=Ne();nJe({target:"Reflect",stat:!0},{has:function(r,e){return e in r}})});var rte=V(()=>{var sJe=Ne(),aJe=jr(),oJe=eR();sJe({target:"Reflect",stat:!0},{isExtensible:function(r){return aJe(r),oJe(r)}})});var ite=V(()=>{var lJe=Ne(),cJe=sw();lJe({target:"Reflect",stat:!0},{ownKeys:cJe})});var nte=V(()=>{var uJe=Ne(),hJe=bn(),pJe=jr(),dJe=Um();uJe({target:"Reflect",stat:!0,sham:!dJe},{preventExtensions:function(r){pJe(r);try{var e=hJe("Object","preventExtensions");return e&&e(r),!0}catch(i){return!1}}})});var cte=V(()=>{var fJe=Ne(),mJe=ni(),gJe=jr(),ste=si(),vJe=fF(),yJe=Rt(),mF=Vi(),ate=Us(),TJe=No(),ote=Ao();function lte(t,r,e){var i=arguments.length<4?t:arguments[3],n=ate.f(gJe(t),r),s,a,o;if(!n){if(ste(a=TJe(t)))return lte(a,r,e,i);n=ote(0)}if(vJe(n)){if(n.writable===!1||!ste(i))return!1;if(s=ate.f(i,r)){if(s.get||s.set||s.writable===!1)return!1;s.value=e,mF.f(i,r,s)}else mF.f(i,r,ote(0,e))}else{if(o=n.set,o===void 0)return!1;mJe(o,i,e)}return!0}var EJe=yJe(function(){var t=function(){},r=mF.f(new t,"a",{configurable:!0});return Reflect.set(t.prototype,"a",1,r)!==!1});fJe({target:"Reflect",stat:!0,forced:EJe},{set:lte})});var hte=V(()=>{var bJe=Ne(),xJe=jr(),IJe=Y2(),ute=gc();ute&&bJe({target:"Reflect",stat:!0},{setPrototypeOf:function(r,e){xJe(r),IJe(e);try{return ute(r,e),!0}catch(i){return!1}}})});var pte=V(()=>{var SJe=Ne(),_Je=ir(),wJe=Ya();SJe({global:!0},{Reflect:{}});wJe(_Je.Reflect,"Reflect",!0)});var Pv=V((H8t,dte)=>{var RJe=si(),MJe=fa(),DJe=fi(),CJe=DJe("match");dte.exports=function(t){var r;return RJe(t)&&((r=t[CJe])!==void 0?!!r:MJe(t)=="RegExp")}});var xR=V((U8t,fte)=>{"use strict";var AJe=jr();fte.exports=function(){var t=AJe(this),r="";return t.hasIndices&&(r+="d"),t.global&&(r+="g"),t.ignoreCase&&(r+="i"),t.multiline&&(r+="m"),t.dotAll&&(r+="s"),t.unicode&&(r+="u"),t.unicodeSets&&(r+="v"),t.sticky&&(r+="y"),r}});var Nv=V((B8t,gte)=>{var OJe=ni(),PJe=Si(),NJe=Oo(),LJe=xR(),mte=RegExp.prototype;gte.exports=function(t){var r=t.flags;return r===void 0&&!("flags"in mte)&&!PJe(t,"flags")&&NJe(mte,t)?OJe(LJe,t):r}});var Y1=V((k8t,vte)=>{var gF=Rt(),FJe=ir(),vF=FJe.RegExp,yF=gF(function(){var t=vF("a","y");return t.lastIndex=2,t.exec("abcd")!=null}),HJe=yF||gF(function(){return!vF("a","y").sticky}),UJe=yF||gF(function(){var t=vF("^r","gy");return t.lastIndex=2,t.exec("str")!=null});vte.exports={BROKEN_CARET:UJe,MISSED_STICKY:HJe,UNSUPPORTED_Y:yF}});var IR=V((G8t,yte)=>{var BJe=Rt(),kJe=ir(),GJe=kJe.RegExp;yte.exports=BJe(function(){var t=GJe(".","s");return!(t.dotAll&&t.exec(` +`)&&t.flags==="s")})});var TF=V((V8t,Tte)=>{var VJe=Rt(),zJe=ir(),jJe=zJe.RegExp;Tte.exports=VJe(function(){var t=jJe("(?
b)","g");return t.exec("b").groups.a!=="b"||"b".replace(t,"$c")!=="bc"})});var Mte=V(()=>{var WJe=Pr(),IF=ir(),X1=Bt(),qJe=sv(),YJe=Om(),XJe=va(),$Je=zh().f,Ete=Oo(),ZJe=Pv(),bte=mi(),KJe=Nv(),Ste=Y1(),JJe=X2(),QJe=Dn(),eQe=Rt(),tQe=Si(),rQe=cs().enforce,iQe=Nm(),nQe=fi(),_te=IR(),wte=TF(),sQe=nQe("match"),Wd=IF.RegExp,Lv=Wd.prototype,aQe=IF.SyntaxError,oQe=X1(Lv.exec),SR=X1("".charAt),xte=X1("".replace),Ite=X1("".indexOf),lQe=X1("".slice),cQe=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,Wm=/a/g,EF=/a/g,uQe=new Wd(Wm)!==Wm,Rte=Ste.MISSED_STICKY,hQe=Ste.UNSUPPORTED_Y,pQe=WJe&&(!uQe||Rte||_te||wte||eQe(function(){return EF[sQe]=!1,Wd(Wm)!=Wm||Wd(EF)==EF||Wd(Wm,"i")!="/a/i"})),dQe=function(t){for(var r=t.length,e=0,i="",n=!1,s;e<=r;e++){if(s=SR(t,e),s==="\\"){i+=s+SR(t,++e);continue}!n&&s==="."?i+="[\\s\\S]":(s==="["?n=!0:s==="]"&&(n=!1),i+=s)}return i},fQe=function(t){for(var r=t.length,e=0,i="",n=[],s={},a=!1,o=!1,l=0,c="",u;e<=r;e++){if(u=SR(t,e),u==="\\")u=u+SR(t,++e);else if(u==="]")a=!1;else if(!a)switch(!0){case u==="[":a=!0;break;case u==="(":oQe(cQe,lQe(t,e+1))&&(e+=2,o=!0),i+=u,l++;continue;case(u===">"&&o):if(c===""||tQe(s,c))throw new aQe("Invalid capture group name");s[c]=!0,n[n.length]=[c,l],o=!1,c="";continue}o?c+=u:i+=u}return[i,n]};if(qJe("RegExp",pQe)){for(jd=function(r,e){var i=Ete(Lv,this),n=ZJe(r),s=e===void 0,a=[],o=r,l,c,u,h,p,d;if(!i&&n&&s&&r.constructor===jd)return r;if((n||Ete(Lv,r))&&(r=r.source,s&&(e=KJe(o))),r=r===void 0?"":bte(r),e=e===void 0?"":bte(e),o=r,_te&&"dotAll"in Wm&&(c=!!e&&Ite(e,"s")>-1,c&&(e=xte(e,/s/g,""))),l=e,Rte&&"sticky"in Wm&&(u=!!e&&Ite(e,"y")>-1,u&&hQe&&(e=xte(e,/y/g,""))),wte&&(h=fQe(r),r=h[0],a=h[1]),p=YJe(Wd(r,e),i?this:Lv,jd),(c||u||a.length)&&(d=rQe(p),c&&(d.dotAll=!0,d.raw=jd(dQe(r),l)),u&&(d.sticky=!0),a.length&&(d.groups=a)),r!==o)try{XJe(p,"source",o===""?"(?:)":o)}catch(f){}return p},bF=$Je(Wd),xF=0;bF.length>xF;)JJe(jd,Wd,bF[xF++]);Lv.constructor=jd,jd.prototype=Lv,QJe(IF,"RegExp",jd,{constructor:!0})}var jd,bF,xF;iQe("RegExp")});var Cte=V(()=>{var mQe=Pr(),gQe=IR(),vQe=fa(),yQe=Gd(),TQe=cs().get,Dte=RegExp.prototype,EQe=TypeError;mQe&&gQe&&yQe(Dte,"dotAll",{configurable:!0,get:function(){if(this!==Dte){if(vQe(this)==="RegExp")return!!TQe(this).dotAll;throw EQe("Incompatible receiver, RegExp required")}}})});var $1=V((Y8t,Ote)=>{"use strict";var Fv=ni(),wR=Bt(),bQe=mi(),xQe=xR(),IQe=Y1(),SQe=Sm(),_Qe=qa(),wQe=cs().get,RQe=IR(),MQe=TF(),DQe=SQe("native-string-replace",String.prototype.replace),_R=RegExp.prototype.exec,_F=_R,CQe=wR("".charAt),AQe=wR("".indexOf),OQe=wR("".replace),SF=wR("".slice),wF=function(){var t=/a/,r=/b*/g;return Fv(_R,t,"a"),Fv(_R,r,"a"),t.lastIndex!==0||r.lastIndex!==0}(),Ate=IQe.BROKEN_CARET,RF=/()??/.exec("")[1]!==void 0,PQe=wF||RF||Ate||RQe||MQe;PQe&&(_F=function(r){var e=this,i=wQe(e),n=bQe(r),s=i.raw,a,o,l,c,u,h,p;if(s)return s.lastIndex=e.lastIndex,a=Fv(_F,s,n),e.lastIndex=s.lastIndex,a;var d=i.groups,f=Ate&&e.sticky,m=Fv(xQe,e),g=e.source,y=0,E=n;if(f&&(m=OQe(m,"y",""),AQe(m,"g")===-1&&(m+="g"),E=SF(n,e.lastIndex),e.lastIndex>0&&(!e.multiline||e.multiline&&CQe(n,e.lastIndex-1)!==` +`)&&(g="(?: "+g+")",E=" "+E,y++),o=new RegExp("^(?:"+g+")",m)),RF&&(o=new RegExp("^"+g+"$(?!\\s)",m)),wF&&(l=e.lastIndex),c=Fv(_R,f?o:e,E),f?c?(c.input=SF(c.input,y),c[0]=SF(c[0],y),c.index=e.lastIndex,e.lastIndex+=c[0].length):e.lastIndex=0:wF&&c&&(e.lastIndex=e.global?c.index+c[0].length:l),RF&&c&&c.length>1&&Fv(DQe,c[0],o,function(){for(u=1;u{"use strict";var NQe=Ne(),Pte=$1();NQe({target:"RegExp",proto:!0,forced:/./.exec!==Pte},{exec:Pte})});var Fte=V(()=>{var LQe=ir(),FQe=Pr(),HQe=Gd(),UQe=xR(),BQe=Rt(),Nte=LQe.RegExp,Lte=Nte.prototype,kQe=FQe&&BQe(function(){var t=!0;try{Nte(".","d")}catch(l){t=!1}var r={},e="",i=t?"dgimsy":"gimsy",n=function(l,c){Object.defineProperty(r,l,{get:function(){return e+=c,!0}})},s={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};t&&(s.hasIndices="d");for(var a in s)n(a,s[a]);var o=Object.getOwnPropertyDescriptor(Lte,"flags").get.call(r);return o!==i||e!==i});kQe&&HQe(Lte,"flags",{configurable:!0,get:UQe})});var Ute=V(()=>{var GQe=Pr(),VQe=Y1().MISSED_STICKY,zQe=fa(),jQe=Gd(),WQe=cs().get,Hte=RegExp.prototype,qQe=TypeError;GQe&&VQe&&jQe(Hte,"sticky",{configurable:!0,get:function(){if(this!==Hte){if(zQe(this)==="RegExp")return!!WQe(this).sticky;throw qQe("Incompatible receiver, RegExp required")}}})});var Gte=V(()=>{"use strict";RR();var YQe=Ne(),Bte=ni(),XQe=Ti(),kte=jr(),$Qe=mi(),ZQe=function(){var t=!1,r=/[ac]/;return r.exec=function(){return t=!0,/./.exec.apply(this,arguments)},r.test("abc")===!0&&t}(),KQe=/./.test;YQe({target:"RegExp",proto:!0,forced:!ZQe},{test:function(t){var r=kte(this),e=$Qe(t),i=r.exec;if(!XQe(i))return Bte(KQe,r,e);var n=Bte(i,r,e);return n===null?!1:(kte(n),!0)}})});var jte=V(()=>{"use strict";var JQe=Rm().PROPER,QQe=Dn(),eet=jr(),Vte=mi(),tet=Rt(),ret=Nv(),MF="toString",iet=RegExp.prototype,zte=iet[MF],net=tet(function(){return zte.call({source:"a",flags:"b"})!="/a/b"}),set=JQe&&zte.name!=MF;(net||set)&&QQe(RegExp.prototype,MF,function(){var r=eet(this),e=Vte(r.source),i=Vte(ret(r));return"/"+e+"/"+i},{unsafe:!0})});var Wte=V(()=>{"use strict";var aet=A1(),oet=lL();aet("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},oet)});var qte=V(()=>{Wte()});var Yte=V(()=>{"use strict";var cet=Ne(),uet=Bt(),het=ls(),pet=ms(),det=mi(),fet=Rt(),met=uet("".charAt),get=fet(function(){return"\u{20BB7}".at(-2)!=="\uD842"});cet({target:"String",proto:!0,forced:get},{at:function(r){var e=det(het(this)),i=e.length,n=pet(r),s=n>=0?n:i+n;return s<0||s>=i?void 0:met(e,s)}})});var Z1=V((uGt,Zte)=>{var DF=Bt(),vet=ms(),yet=mi(),Tet=ls(),Eet=DF("".charAt),Xte=DF("".charCodeAt),bet=DF("".slice),$te=function(t){return function(r,e){var i=yet(Tet(r)),n=vet(e),s=i.length,a,o;return n<0||n>=s?t?"":void 0:(a=Xte(i,n),a<55296||a>56319||n+1===s||(o=Xte(i,n+1))<56320||o>57343?t?Eet(i,n):a:t?bet(i,n,n+2):(a-55296<<10)+(o-56320)+65536)}};Zte.exports={codeAt:$te(!1),charAt:$te(!0)}});var Kte=V(()=>{"use strict";var xet=Ne(),Iet=Z1().codeAt;xet({target:"String",proto:!0},{codePointAt:function(r){return Iet(this,r)}})});var MR=V((dGt,Jte)=>{var _et=Pv(),wet=TypeError;Jte.exports=function(t){if(_et(t))throw wet("The method doesn't accept regular expressions");return t}});var DR=V((fGt,Qte)=>{var Ret=fi(),Met=Ret("match");Qte.exports=function(t){var r=/./;try{"/./"[t](r)}catch(e){try{return r[Met]=!1,"/./"[t](r)}catch(i){}}return!1}});var nre=V(()=>{"use strict";var Det=Ne(),rre=jh(),Cet=Us().f,Aet=Wa(),ere=mi(),Oet=MR(),Pet=ls(),Net=DR(),Let=Bn(),tre=rre("".endsWith),Fet=rre("".slice),Het=Math.min,ire=Net("endsWith"),Uet=!Let&&!ire&&!!function(){var t=Cet(String.prototype,"endsWith");return t&&!t.writable}();Det({target:"String",proto:!0,forced:!Uet&&!ire},{endsWith:function(r){var e=ere(Pet(this));Oet(r);var i=arguments.length>1?arguments[1]:void 0,n=e.length,s=i===void 0?n:Het(Aet(i),n),a=ere(r);return tre?tre(e,a,s):Fet(e,s-a.length,s)===a}})});var ore=V(()=>{var Bet=Ne(),ket=Bt(),Get=Su(),Vet=RangeError,sre=String.fromCharCode,are=String.fromCodePoint,zet=ket([].join),jet=!!are&&are.length!=1;Bet({target:"String",stat:!0,arity:1,forced:jet},{fromCodePoint:function(r){for(var e=[],i=arguments.length,n=0,s;i>n;){if(s=+arguments[n++],Get(s,1114111)!==s)throw Vet(s+" is not a valid code point");e[n]=s<65536?sre(s):sre(((s-=65536)>>10)+55296,s%1024+56320)}return zet(e,"")}})});var cre=V(()=>{"use strict";var Wet=Ne(),qet=Bt(),Yet=MR(),Xet=ls(),lre=mi(),$et=DR(),Zet=qet("".indexOf);Wet({target:"String",proto:!0,forced:!$et("includes")},{includes:function(r){return!!~Zet(lre(Xet(this)),lre(Yet(r)),arguments.length>1?arguments[1]:void 0)}})});var CF=V(()=>{"use strict";var Ket=Z1().charAt,Jet=mi(),hre=cs(),Qet=Pw(),ure=S1(),pre="String Iterator",ett=hre.set,ttt=hre.getterFor(pre);Qet(String,"String",function(t){ett(this,{type:pre,string:Jet(t),index:0})},function(){var r=ttt(this),e=r.string,i=r.index,n;return i>=e.length?ure(void 0,!0):(n=Ket(e,i),r.index+=n.length,ure(n,!1))})});var K1=V((IGt,vre)=>{"use strict";RR();var dre=jh(),fre=Dn(),rtt=$1(),mre=Rt(),gre=fi(),itt=va(),ntt=gre("species"),AF=RegExp.prototype;vre.exports=function(t,r,e,i){var n=gre(t),s=!mre(function(){var c={};return c[n]=function(){return 7},""[t](c)!=7}),a=s&&!mre(function(){var c=!1,u=/a/;return t==="split"&&(u={},u.constructor={},u.constructor[ntt]=function(){return u},u.flags="",u[n]=/./[n]),u.exec=function(){return c=!0,null},u[n](""),!c});if(!s||!a||e){var o=dre(/./[n]),l=r(n,""[t],function(c,u,h,p,d){var f=dre(c),m=u.exec;return m===rtt||m===AF.exec?s&&!d?{done:!0,value:o(u,h,p)}:{done:!0,value:f(h,u,p)}:{done:!1}});fre(String.prototype,t,l[0]),fre(AF,n,l[1])}i&&itt(AF[n],"sham",!0)}});var J1=V((SGt,yre)=>{"use strict";var stt=Z1().charAt;yre.exports=function(t,r,e){return r+(e?stt(t,r).length:1)}});var Hv=V((_Gt,Ere)=>{var Tre=ni(),att=jr(),ott=Ti(),ltt=fa(),ctt=$1(),utt=TypeError;Ere.exports=function(t,r){var e=t.exec;if(ott(e)){var i=Tre(e,t,r);return i!==null&&att(i),i}if(ltt(t)==="RegExp")return Tre(ctt,t,r);throw utt("RegExp#exec called on incompatible receiver")}});var xre=V(()=>{"use strict";var htt=ni(),ptt=K1(),dtt=jr(),ftt=ma(),mtt=Wa(),OF=mi(),gtt=ls(),vtt=Iu(),ytt=J1(),bre=Hv();ptt("match",function(t,r,e){return[function(n){var s=gtt(this),a=ftt(n)?void 0:vtt(n,t);return a?htt(a,n,s):new RegExp(n)[t](OF(s))},function(i){var n=dtt(this),s=OF(i),a=e(r,n,s);if(a.done)return a.value;if(!n.global)return bre(n,s);var o=n.unicode;n.lastIndex=0;for(var l=[],c=0,u;(u=bre(n,s))!==null;){var h=OF(u[0]);l[c]=h,h===""&&(n.lastIndex=ytt(s,mtt(n.lastIndex),o)),c++}return c===0?null:l}]})});var Ore=V(()=>{"use strict";var Ttt=Ne(),Ire=ni(),wre=jh(),Ett=Cw(),CR=S1(),Sre=ls(),Rre=Wa(),Q1=mi(),btt=jr(),xtt=ma(),Itt=fa(),Stt=Pv(),Mre=Nv(),_tt=Iu(),wtt=Dn(),Rtt=Rt(),Mtt=fi(),Dtt=Fm(),Ctt=J1(),Att=Hv(),Dre=cs(),NF=Bn(),AR=Mtt("matchAll"),Cre="RegExp String",Are=Cre+" Iterator",Ott=Dre.set,Ptt=Dre.getterFor(Are),_re=RegExp.prototype,Ntt=TypeError,LF=wre("".indexOf),OR=wre("".matchAll),PF=!!OR&&!Rtt(function(){OR("a",/./)}),Ltt=Ett(function(r,e,i,n){Ott(this,{type:Are,regexp:r,string:e,global:i,unicode:n,done:!1})},Cre,function(){var r=Ptt(this);if(r.done)return CR(void 0,!0);var e=r.regexp,i=r.string,n=Att(e,i);return n===null?(r.done=!0,CR(void 0,!0)):r.global?(Q1(n[0])===""&&(e.lastIndex=Ctt(i,Rre(e.lastIndex),r.unicode)),CR(n,!1)):(r.done=!0,CR(n,!1))}),FF=function(t){var r=btt(this),e=Q1(t),i=Dtt(r,RegExp),n=Q1(Mre(r)),s,a,o;return s=new i(i===RegExp?r.source:r,n),a=!!~LF(n,"g"),o=!!~LF(n,"u"),s.lastIndex=Rre(r.lastIndex),new Ltt(s,e,a,o)};Ttt({target:"String",proto:!0,forced:PF},{matchAll:function(r){var e=Sre(this),i,n,s,a;if(xtt(r)){if(PF)return OR(e,r)}else{if(Stt(r)&&(i=Q1(Sre(Mre(r))),!~LF(i,"g")))throw Ntt("`.matchAll` does not allow non-global regexes");if(PF)return OR(e,r);if(s=_tt(r,AR),s===void 0&&NF&&Itt(r)=="RegExp"&&(s=FF),s)return Ire(s,r,e)}return n=Q1(e),a=new RegExp(r,"g"),NF?Ire(FF,a,n):a[AR](n)}});NF||AR in _re||wtt(_re,AR,FF)});var HF=V((CGt,Pre)=>{var Ftt=bu();Pre.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(Ftt)});var Nre=V(()=>{"use strict";var Htt=Ne(),Utt=Kw().end,Btt=HF();Htt({target:"String",proto:!0,forced:Btt},{padEnd:function(r){return Utt(this,r,arguments.length>1?arguments[1]:void 0)}})});var Lre=V(()=>{"use strict";var ktt=Ne(),Gtt=Kw().start,Vtt=HF();ktt({target:"String",proto:!0,forced:Vtt},{padStart:function(r){return Gtt(this,r,arguments.length>1?arguments[1]:void 0)}})});var Bre=V(()=>{var ztt=Ne(),Ure=Bt(),jtt=ga(),Wtt=Li(),Fre=mi(),qtt=ln(),Hre=Ure([].push),Ytt=Ure([].join);ztt({target:"String",stat:!0},{raw:function(r){for(var e=jtt(Wtt(r).raw),i=qtt(e),n=arguments.length,s=[],a=0;i>a;){if(Hre(s,Fre(e[a++])),a===i)return Ytt(s,"");a{var Xtt=Ne(),$tt=D1();Xtt({target:"String",proto:!0},{repeat:$tt})});var GF=V((BGt,Gre)=>{var kF=Bt(),Ztt=Li(),Ktt=Math.floor,UF=kF("".charAt),Jtt=kF("".replace),BF=kF("".slice),Qtt=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,ert=/\$([$&'`]|\d{1,2})/g;Gre.exports=function(t,r,e,i,n,s){var a=e+t.length,o=i.length,l=ert;return n!==void 0&&(n=Ztt(n),l=Qtt),Jtt(s,l,function(c,u){var h;switch(UF(u,0)){case"$":return"$";case"&":return t;case"`":return BF(r,0,e);case"'":return BF(r,a);case"<":h=n[BF(u,1,-1)];break;default:var p=+u;if(p===0)return c;if(p>o){var d=Ktt(p/10);return d===0?c:d<=o?i[d-1]===void 0?UF(u,1):i[d-1]+UF(u,1):c}h=i[p-1]}return h===void 0?"":h})}});var qre=V(()=>{"use strict";var trt=Po(),Vre=ni(),PR=Bt(),rrt=K1(),irt=Rt(),nrt=jr(),srt=Ti(),art=ma(),ort=ms(),lrt=Wa(),Uv=mi(),crt=ls(),urt=J1(),hrt=Iu(),prt=GF(),drt=Hv(),frt=fi(),zF=frt("replace"),mrt=Math.max,grt=Math.min,vrt=PR([].concat),VF=PR([].push),zre=PR("".indexOf),jre=PR("".slice),yrt=function(t){return t===void 0?t:String(t)},Trt=function(){return"a".replace(/./,"$0")==="$0"}(),Wre=function(){return/./[zF]?/./[zF]("a","$0")==="":!1}(),Ert=!irt(function(){var t=/./;return t.exec=function(){var r=[];return r.groups={a:"7"},r},"".replace(t,"$")!=="7"});rrt("replace",function(t,r,e){var i=Wre?"$":"$0";return[function(s,a){var o=crt(this),l=art(s)?void 0:hrt(s,zF);return l?Vre(l,s,o,a):Vre(r,Uv(o),s,a)},function(n,s){var a=nrt(this),o=Uv(n);if(typeof s=="string"&&zre(s,i)===-1&&zre(s,"$<")===-1){var l=e(r,a,o,s);if(l.done)return l.value}var c=srt(s);c||(s=Uv(s));var u=a.global;if(u){var h=a.unicode;a.lastIndex=0}for(var p=[];;){var d=drt(a,o);if(d===null||(VF(p,d),!u))break;var f=Uv(d[0]);f===""&&(a.lastIndex=urt(o,lrt(a.lastIndex),h))}for(var m="",g=0,y=0;y=g&&(m+=jre(o,g,b)+_,g=b+E.length)}return m+jre(o,g)}]},!Ert||!Trt||Wre)});var Kre=V(()=>{"use strict";var brt=Ne(),xrt=ni(),jF=Bt(),Yre=ls(),Irt=Ti(),Srt=ma(),_rt=Pv(),Bv=mi(),wrt=Iu(),Rrt=Nv(),Mrt=GF(),Drt=fi(),Crt=Bn(),Art=Drt("replace"),Ort=TypeError,Zre=jF("".indexOf),Prt=jF("".replace),Xre=jF("".slice),Nrt=Math.max,$re=function(t,r,e){return e>t.length?-1:r===""?e:Zre(t,r,e)};brt({target:"String",proto:!0},{replaceAll:function(r,e){var i=Yre(this),n,s,a,o,l,c,u,h,p,d=0,f=0,m="";if(!Srt(r)){if(n=_rt(r),n&&(s=Bv(Yre(Rrt(r))),!~Zre(s,"g")))throw Ort("`.replaceAll` does not allow non-global regexes");if(a=wrt(r,Art),a)return xrt(a,r,i,e);if(Crt&&n)return Prt(Bv(i),r,e)}for(o=Bv(i),l=Bv(r),c=Irt(e),c||(e=Bv(e)),u=l.length,h=Nrt(1,u),d=$re(o,l,0);d!==-1;)p=c?Bv(e(l,d,o)):Mrt(l,o,d,[],void 0,e),m+=Xre(o,f,d)+p,f=d+u,d=$re(o,l,d+h);return f{"use strict";var Lrt=ni(),Frt=K1(),Hrt=jr(),Urt=ma(),Brt=ls(),Jre=CL(),Qre=mi(),krt=Iu(),Grt=Hv();Frt("search",function(t,r,e){return[function(n){var s=Brt(this),a=Urt(n)?void 0:krt(n,t);return a?Lrt(a,n,s):new RegExp(n)[t](Qre(s))},function(i){var n=Hrt(this),s=Qre(i),a=e(r,n,s);if(a.done)return a.value;var o=n.lastIndex;Jre(o,0)||(n.lastIndex=0);var l=Grt(n,s);return Jre(n.lastIndex,o)||(n.lastIndex=o),l===null?-1:l.index}]})});var aie=V(()=>{"use strict";var Vrt=Po(),eb=ni(),qF=Bt(),zrt=K1(),jrt=jr(),Wrt=ma(),qrt=Pv(),tie=ls(),Yrt=Fm(),Xrt=J1(),$rt=Wa(),WF=mi(),Zrt=Iu(),rie=ov(),iie=Hv(),Krt=$1(),Jrt=Y1(),Qrt=Rt(),kv=Jrt.UNSUPPORTED_Y,nie=4294967295,eit=Math.min,sie=[].push,tit=qF(/./.exec),Gv=qF(sie),tb=qF("".slice),rit=!Qrt(function(){var t=/(?:)/,r=t.exec;t.exec=function(){return r.apply(this,arguments)};var e="ab".split(t);return e.length!==2||e[0]!=="a"||e[1]!=="b"});zrt("split",function(t,r,e){var i;return"abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?i=function(n,s){var a=WF(tie(this)),o=s===void 0?nie:s>>>0;if(o===0)return[];if(n===void 0)return[a];if(!qrt(n))return eb(r,a,n,o);for(var l=[],c=(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(n.sticky?"y":""),u=0,h=new RegExp(n.source,c+"g"),p,d,f;(p=eb(Krt,h,a))&&(d=h.lastIndex,!(d>u&&(Gv(l,tb(a,u,p.index)),p.length>1&&p.index=o)));)h.lastIndex===p.index&&h.lastIndex++;return u===a.length?(f||!tit(h,""))&&Gv(l,""):Gv(l,tb(a,u)),l.length>o?rie(l,0,o):l}:"0".split(void 0,0).length?i=function(n,s){return n===void 0&&s===0?[]:eb(r,this,n,s)}:i=r,[function(s,a){var o=tie(this),l=Wrt(s)?void 0:Zrt(s,t);return l?eb(l,s,o,a):eb(i,WF(o),s,a)},function(n,s){var a=jrt(this),o=WF(n),l=e(i,a,o,s,i!==r);if(l.done)return l.value;var c=Yrt(a,RegExp),u=a.unicode,h=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(kv?"g":"y"),p=new c(kv?"^(?:"+a.source+")":a,h),d=s===void 0?nie:s>>>0;if(d===0)return[];if(o.length===0)return iie(p,o)===null?[o]:[];for(var f=0,m=0,g=[];m{"use strict";var iit=Ne(),cie=jh(),nit=Us().f,sit=Wa(),oie=mi(),ait=MR(),oit=ls(),lit=DR(),cit=Bn(),lie=cie("".startsWith),uit=cie("".slice),hit=Math.min,uie=lit("startsWith"),pit=!cit&&!uie&&!!function(){var t=nit(String.prototype,"startsWith");return t&&!t.writable}();iit({target:"String",proto:!0,forced:!pit&&!uie},{startsWith:function(r){var e=oie(oit(this));ait(r);var i=sit(hit(arguments.length>1?arguments[1]:void 0,e.length)),n=oie(r);return lie?lie(e,n,i):uit(e,i,i+n.length)===n}})});var die=V(()=>{"use strict";var dit=Ne(),fit=Bt(),mit=ls(),pie=ms(),git=mi(),vit=fit("".slice),yit=Math.max,Tit=Math.min,Eit=!"".substr||"ab".substr(-1)!=="b";dit({target:"String",proto:!0,forced:Eit},{substr:function(r,e){var i=git(mit(this)),n=i.length,s=pie(r),a,o;return s===1/0&&(s=0),s<0&&(s=yit(n+s,0)),a=e===void 0?n:pie(e),a<=0||a===1/0?"":(o=Tit(s+a,n),s>=o?"":vit(i,s,o))}})});var NR=V((JGt,gie)=>{var bit=Rm().PROPER,xit=Rt(),fie=F1(),mie="\u200B\x85\u180E";gie.exports=function(t){return xit(function(){return!!fie[t]()||mie[t]()!==mie||bit&&fie[t].name!==t})}});var vie=V(()=>{"use strict";var Iit=Ne(),Sit=Bm().trim,_it=NR();Iit({target:"String",proto:!0,forced:_it("trim")},{trim:function(){return Sit(this)}})});var YF=V((tVt,yie)=>{"use strict";var wit=Bm().end,Rit=NR();yie.exports=Rit("trimEnd")?function(){return wit(this)}:"".trimEnd});var Eie=V(()=>{var Mit=Ne(),Tie=YF();Mit({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==Tie},{trimRight:Tie})});var xie=V(()=>{Eie();var Dit=Ne(),bie=YF();Dit({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==bie},{trimEnd:bie})});var XF=V((aVt,Iie)=>{"use strict";var Cit=Bm().start,Ait=NR();Iie.exports=Ait("trimStart")?function(){return Cit(this)}:"".trimStart});var _ie=V(()=>{var Oit=Ne(),Sie=XF();Oit({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Sie},{trimLeft:Sie})});var Rie=V(()=>{_ie();var Pit=Ne(),wie=XF();Pit({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==wie},{trimStart:wie})});var Za=V((hVt,Die)=>{var Nit=Bt(),Lit=ls(),Mie=mi(),Fit=/"/g,Hit=Nit("".replace);Die.exports=function(t,r,e,i){var n=Mie(Lit(t)),s="<"+r;return e!==""&&(s+=" "+e+'="'+Hit(Mie(i),Fit,""")+'"'),s+">"+n+""}});var Ka=V((pVt,Cie)=>{var Uit=Rt();Cie.exports=function(t){return Uit(function(){var r=""[t]('"');return r!==r.toLowerCase()||r.split('"').length>3})}});var Aie=V(()=>{"use strict";var Bit=Ne(),kit=Za(),Git=Ka();Bit({target:"String",proto:!0,forced:Git("anchor")},{anchor:function(r){return kit(this,"a","name",r)}})});var Oie=V(()=>{"use strict";var Vit=Ne(),zit=Za(),jit=Ka();Vit({target:"String",proto:!0,forced:jit("big")},{big:function(){return zit(this,"big","","")}})});var Pie=V(()=>{"use strict";var Wit=Ne(),qit=Za(),Yit=Ka();Wit({target:"String",proto:!0,forced:Yit("blink")},{blink:function(){return qit(this,"blink","","")}})});var Nie=V(()=>{"use strict";var Xit=Ne(),$it=Za(),Zit=Ka();Xit({target:"String",proto:!0,forced:Zit("bold")},{bold:function(){return $it(this,"b","","")}})});var Lie=V(()=>{"use strict";var Kit=Ne(),Jit=Za(),Qit=Ka();Kit({target:"String",proto:!0,forced:Qit("fixed")},{fixed:function(){return Jit(this,"tt","","")}})});var Fie=V(()=>{"use strict";var ent=Ne(),tnt=Za(),rnt=Ka();ent({target:"String",proto:!0,forced:rnt("fontcolor")},{fontcolor:function(r){return tnt(this,"font","color",r)}})});var Hie=V(()=>{"use strict";var int=Ne(),nnt=Za(),snt=Ka();int({target:"String",proto:!0,forced:snt("fontsize")},{fontsize:function(r){return nnt(this,"font","size",r)}})});var Uie=V(()=>{"use strict";var ant=Ne(),ont=Za(),lnt=Ka();ant({target:"String",proto:!0,forced:lnt("italics")},{italics:function(){return ont(this,"i","","")}})});var Bie=V(()=>{"use strict";var cnt=Ne(),unt=Za(),hnt=Ka();cnt({target:"String",proto:!0,forced:hnt("link")},{link:function(r){return unt(this,"a","href",r)}})});var kie=V(()=>{"use strict";var pnt=Ne(),dnt=Za(),fnt=Ka();pnt({target:"String",proto:!0,forced:fnt("small")},{small:function(){return dnt(this,"small","","")}})});var Gie=V(()=>{"use strict";var mnt=Ne(),gnt=Za(),vnt=Ka();mnt({target:"String",proto:!0,forced:vnt("strike")},{strike:function(){return gnt(this,"strike","","")}})});var Vie=V(()=>{"use strict";var ynt=Ne(),Tnt=Za(),Ent=Ka();ynt({target:"String",proto:!0,forced:Ent("sub")},{sub:function(){return Tnt(this,"sub","","")}})});var zie=V(()=>{"use strict";var bnt=Ne(),xnt=Za(),Int=Ka();bnt({target:"String",proto:!0,forced:Int("sup")},{sup:function(){return xnt(this,"sup","","")}})});var LR=V((BVt,Wie)=>{var jie=ir(),$F=Rt(),Snt=b1(),_nt=_i().NATIVE_ARRAY_BUFFER_VIEWS,wnt=jie.ArrayBuffer,qm=jie.Int8Array;Wie.exports=!_nt||!$F(function(){qm(1)})||!$F(function(){new qm(-1)})||!Snt(function(t){new qm,new qm(null),new qm(1.5),new qm(t)},!0)||$F(function(){return new qm(new wnt(2),1,void 0).length!==1})});var Yie=V((kVt,qie)=>{var Rnt=ms(),Mnt=RangeError;qie.exports=function(t){var r=Rnt(t);if(r<0)throw Mnt("The argument can't be less than 0");return r}});var ZF=V((GVt,Xie)=>{var Dnt=Yie(),Cnt=RangeError;Xie.exports=function(t,r){var e=Dnt(t);if(e%r)throw Cnt("Wrong offset");return e}});var Zie=V((VVt,$ie)=>{var Ant=mc(),Ont=Bt(),Pnt=Ont("".slice);$ie.exports=function(t){return Pnt(Ant(t),0,3)==="Big"}});var KF=V((zVt,Kie)=>{var Nnt=r1(),Lnt=TypeError;Kie.exports=function(t){var r=Nnt(t,"number");if(typeof r=="number")throw Lnt("Can't convert number to bigint");return BigInt(r)}});var JF=V((jVt,Jie)=>{var Fnt=fl(),Hnt=ni(),Unt=Zw(),Bnt=Li(),knt=ln(),Gnt=v1(),Vnt=dv(),znt=Sw(),jnt=Zie(),Wnt=_i().aTypedArrayConstructor,qnt=KF();Jie.exports=function(r){var e=Unt(this),i=Bnt(r),n=arguments.length,s=n>1?arguments[1]:void 0,a=s!==void 0,o=Vnt(i),l,c,u,h,p,d,f,m;if(o&&!znt(o))for(f=Gnt(i,o),m=f.next,i=[];!(d=Hnt(m,f)).done;)i.push(d.value);for(a&&n>2&&(s=Fnt(s,arguments[2])),c=knt(i),u=new(Wnt(e))(c),h=jnt(u),l=0;c>l;l++)p=a?s(i[l],l):i[l],u[l]=h?qnt(p):+p;return u}});var Ou=V((WVt,s5)=>{"use strict";var Qie=Ne(),une=ir(),ene=ni(),Ynt=Pr(),Xnt=LR(),Vv=_i(),hne=M1(),tne=yc(),$nt=Ao(),rb=va(),Znt=lR(),Knt=Wa(),rne=AN(),QF=ZF(),pne=Vh(),ib=Si(),Jnt=mc(),r5=si(),Qnt=Md(),est=qa(),tst=Oo(),FR=gc(),rst=zh().f,ine=JF(),ist=ws().forEach,nst=Nm(),dne=Vi(),fne=Us(),a5=cs(),sst=Om(),i5=a5.get,ast=a5.set,ost=a5.enforce,o5=dne.f,lst=fne.f,cst=Math.round,e5=une.RangeError,mne=hne.ArrayBuffer,ust=mne.prototype,hst=hne.DataView,HR=Vv.NATIVE_ARRAY_BUFFER_VIEWS,nne=Vv.TYPED_ARRAY_TAG,sne=Vv.TypedArray,nb=Vv.TypedArrayPrototype,pst=Vv.aTypedArrayConstructor,n5=Vv.isTypedArray,UR="BYTES_PER_ELEMENT",t5="Wrong length",ane=function(t,r){pst(t);for(var e=0,i=r.length,n=new t(i);i>e;)n[e]=r[e++];return n},BR=function(t,r){o5(t,r,{get:function(){return i5(this)[r]}})},one=function(t){var r;return tst(ust,t)||(r=Jnt(t))=="ArrayBuffer"||r=="SharedArrayBuffer"},gne=function(t,r){return n5(t)&&!Qnt(r)&&r in t&&Znt(+r)&&r>=0},lne=function(r,e){return e=pne(e),gne(r,e)?$nt(2,r[e]):lst(r,e)},cne=function(r,e,i){return e=pne(e),gne(r,e)&&r5(i)&&ib(i,"value")&&!ib(i,"get")&&!ib(i,"set")&&!i.configurable&&(!ib(i,"writable")||i.writable)&&(!ib(i,"enumerable")||i.enumerable)?(r[e]=i.value,r):o5(r,e,i)};Ynt?(HR||(fne.f=lne,dne.f=cne,BR(nb,"buffer"),BR(nb,"byteOffset"),BR(nb,"byteLength"),BR(nb,"length")),Qie({target:"Object",stat:!0,forced:!HR},{getOwnPropertyDescriptor:lne,defineProperty:cne}),s5.exports=function(t,r,e){var i=t.match(/\d+$/)[0]/8,n=t+(e?"Clamped":"")+"Array",s="get"+t,a="set"+t,o=une[n],l=o,c=l&&l.prototype,u={},h=function(m,g){var y=i5(m);return y.view[s](g*i+y.byteOffset,!0)},p=function(m,g,y){var E=i5(m);e&&(y=(y=cst(y))<0?0:y>255?255:y&255),E.view[a](g*i+E.byteOffset,y,!0)},d=function(m,g){o5(m,g,{get:function(){return h(this,g)},set:function(y){return p(this,g,y)},enumerable:!0})};HR?Xnt&&(l=r(function(m,g,y,E){return tne(m,c),sst(function(){return r5(g)?one(g)?E!==void 0?new o(g,QF(y,i),E):y!==void 0?new o(g,QF(y,i)):new o(g):n5(g)?ane(l,g):ene(ine,l,g):new o(rne(g))}(),m,l)}),FR&&FR(l,sne),ist(rst(o),function(m){m in l||rb(l,m,o[m])}),l.prototype=c):(l=r(function(m,g,y,E){tne(m,c);var b=0,x=0,S,D,P;if(!r5(g))P=rne(g),D=P*i,S=new mne(D);else if(one(g)){S=g,x=QF(y,i);var _=g.byteLength;if(E===void 0){if(_%i||(D=_-x,D<0))throw e5(t5)}else if(D=Knt(E)*i,D+x>_)throw e5(t5);P=D/i}else return n5(g)?ane(l,g):ene(ine,l,g);for(ast(m,{buffer:S,byteOffset:x,byteLength:D,length:P,view:new hst(S)});b{var dst=Ou();dst("Float32",function(t){return function(e,i,n){return t(this,e,i,n)}})});var yne=V(()=>{var fst=Ou();fst("Float64",function(t){return function(e,i,n){return t(this,e,i,n)}})});var Tne=V(()=>{var mst=Ou();mst("Int8",function(t){return function(e,i,n){return t(this,e,i,n)}})});var Ene=V(()=>{var gst=Ou();gst("Int16",function(t){return function(e,i,n){return t(this,e,i,n)}})});var bne=V(()=>{var vst=Ou();vst("Int32",function(t){return function(e,i,n){return t(this,e,i,n)}})});var xne=V(()=>{var yst=Ou();yst("Uint8",function(t){return function(e,i,n){return t(this,e,i,n)}})});var Ine=V(()=>{var Tst=Ou();Tst("Uint8",function(t){return function(e,i,n){return t(this,e,i,n)}},!0)});var Sne=V(()=>{var Est=Ou();Est("Uint16",function(t){return function(e,i,n){return t(this,e,i,n)}})});var _ne=V(()=>{var bst=Ou();bst("Uint32",function(t){return function(e,i,n){return t(this,e,i,n)}})});var Rne=V(()=>{"use strict";var wne=_i(),xst=ln(),Ist=ms(),Sst=wne.aTypedArray,_st=wne.exportTypedArrayMethod;_st("at",function(r){var e=Sst(this),i=xst(e),n=Ist(r),s=n>=0?n:i+n;return s<0||s>=i?void 0:e[s]})});var Dne=V(()=>{"use strict";var wst=Bt(),Mne=_i(),Rst=cN(),Mst=wst(Rst),Dst=Mne.aTypedArray,Cst=Mne.exportTypedArrayMethod;Cst("copyWithin",function(r,e){return Mst(Dst(this),r,e,arguments.length>2?arguments[2]:void 0)})});var Ane=V(()=>{"use strict";var Cne=_i(),Ast=ws().every,Ost=Cne.aTypedArray,Pst=Cne.exportTypedArrayMethod;Pst("every",function(r){return Ast(Ost(this),r,arguments.length>1?arguments[1]:void 0)})});var Pne=V(()=>{"use strict";var One=_i(),Nst=Dw(),Lst=KF(),Fst=mc(),Hst=ni(),Ust=Bt(),Bst=Rt(),kst=One.aTypedArray,Gst=One.exportTypedArrayMethod,Vst=Ust("".slice),zst=Bst(function(){var t=0;return new Int8Array(2).fill({valueOf:function(){return t++}}),t!==1});Gst("fill",function(r){var e=arguments.length;kst(this);var i=Vst(Fst(this),0,3)==="Big"?Lst(r):+r;return Hst(Nst,this,i,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)},zst)});var Lne=V((y7t,Nne)=>{var jst=ln();Nne.exports=function(t,r){for(var e=0,i=jst(r),n=new t(i);i>e;)n[e]=r[e++];return n}});var sb=V((T7t,Hne)=>{var Fne=_i(),Wst=Fm(),qst=Fne.aTypedArrayConstructor,Yst=Fne.getTypedArrayConstructor;Hne.exports=function(t){return qst(Wst(t,Yst(t)))}});var Bne=V((E7t,Une)=>{var Xst=Lne(),$st=sb();Une.exports=function(t,r){return Xst($st(t),r)}});var Gne=V(()=>{"use strict";var kne=_i(),Zst=ws().filter,Kst=Bne(),Jst=kne.aTypedArray,Qst=kne.exportTypedArrayMethod;Qst("filter",function(r){var e=Zst(Jst(this),r,arguments.length>1?arguments[1]:void 0);return Kst(this,e)})});var zne=V(()=>{"use strict";var Vne=_i(),eat=ws().find,tat=Vne.aTypedArray,rat=Vne.exportTypedArrayMethod;rat("find",function(r){return eat(tat(this),r,arguments.length>1?arguments[1]:void 0)})});var Wne=V(()=>{"use strict";var jne=_i(),iat=ws().findIndex,nat=jne.aTypedArray,sat=jne.exportTypedArrayMethod;sat("findIndex",function(r){return iat(nat(this),r,arguments.length>1?arguments[1]:void 0)})});var Yne=V(()=>{"use strict";var qne=_i(),aat=E1().findLast,oat=qne.aTypedArray,lat=qne.exportTypedArrayMethod;lat("findLast",function(r){return aat(oat(this),r,arguments.length>1?arguments[1]:void 0)})});var $ne=V(()=>{"use strict";var Xne=_i(),cat=E1().findLastIndex,uat=Xne.aTypedArray,hat=Xne.exportTypedArrayMethod;hat("findLastIndex",function(r){return cat(uat(this),r,arguments.length>1?arguments[1]:void 0)})});var Kne=V(()=>{"use strict";var Zne=_i(),pat=ws().forEach,dat=Zne.aTypedArray,fat=Zne.exportTypedArrayMethod;fat("forEach",function(r){pat(dat(this),r,arguments.length>1?arguments[1]:void 0)})});var Jne=V(()=>{"use strict";var mat=LR(),gat=_i().exportTypedArrayStaticMethod,vat=JF();gat("from",vat,mat)});var ese=V(()=>{"use strict";var Qne=_i(),yat=nv().includes,Tat=Qne.aTypedArray,Eat=Qne.exportTypedArrayMethod;Eat("includes",function(r){return yat(Tat(this),r,arguments.length>1?arguments[1]:void 0)})});var rse=V(()=>{"use strict";var tse=_i(),bat=nv().indexOf,xat=tse.aTypedArray,Iat=tse.exportTypedArrayMethod;Iat("indexOf",function(r){return bat(xat(this),r,arguments.length>1?arguments[1]:void 0)})});var ose=V(()=>{"use strict";var Sat=ir(),_at=Rt(),l5=Bt(),nse=_i(),c5=_1(),wat=fi(),u5=wat("iterator"),ise=Sat.Uint8Array,Rat=l5(c5.values),Mat=l5(c5.keys),Dat=l5(c5.entries),h5=nse.aTypedArray,kR=nse.exportTypedArrayMethod,zv=ise&&ise.prototype,GR=!_at(function(){zv[u5].call([1])}),sse=!!zv&&zv.values&&zv[u5]===zv.values&&zv.values.name==="values",ase=function(){return Rat(h5(this))};kR("entries",function(){return Dat(h5(this))},GR);kR("keys",function(){return Mat(h5(this))},GR);kR("values",ase,GR||!sse,{name:"values"});kR(u5,ase,GR||!sse,{name:"values"})});var cse=V(()=>{"use strict";var lse=_i(),Cat=Bt(),Aat=lse.aTypedArray,Oat=lse.exportTypedArrayMethod,Pat=Cat([].join);Oat("join",function(r){return Pat(Aat(this),r)})});var hse=V(()=>{"use strict";var use=_i(),Nat=Po(),Lat=SN(),Fat=use.aTypedArray,Hat=use.exportTypedArrayMethod;Hat("lastIndexOf",function(r){var e=arguments.length;return Nat(Lat,Fat(this),e>1?[r,arguments[1]]:[r])})});var dse=V(()=>{"use strict";var pse=_i(),Uat=ws().map,Bat=sb(),kat=pse.aTypedArray,Gat=pse.exportTypedArrayMethod;Gat("map",function(r){return Uat(kat(this),r,arguments.length>1?arguments[1]:void 0,function(e,i){return new(Bat(e))(i)})})});var mse=V(()=>{"use strict";var fse=_i(),Vat=LR(),zat=fse.aTypedArrayConstructor,jat=fse.exportTypedArrayStaticMethod;jat("of",function(){for(var r=0,e=arguments.length,i=new(zat(this))(e);e>r;)i[r]=arguments[r++];return i},Vat)});var vse=V(()=>{"use strict";var gse=_i(),Wat=w1().left,qat=gse.aTypedArray,Yat=gse.exportTypedArrayMethod;Yat("reduce",function(r){var e=arguments.length;return Wat(qat(this),r,e,e>1?arguments[1]:void 0)})});var Tse=V(()=>{"use strict";var yse=_i(),Xat=w1().right,$at=yse.aTypedArray,Zat=yse.exportTypedArrayMethod;Zat("reduceRight",function(r){var e=arguments.length;return Xat($at(this),r,e,e>1?arguments[1]:void 0)})});var bse=V(()=>{"use strict";var Ese=_i(),Kat=Ese.aTypedArray,Jat=Ese.exportTypedArrayMethod,Qat=Math.floor;Jat("reverse",function(){for(var r=this,e=Kat(r).length,i=Qat(e/2),n=0,s;n{"use strict";var Ise=ir(),Sse=ni(),f5=_i(),eot=ln(),tot=ZF(),rot=Li(),_se=Rt(),iot=Ise.RangeError,p5=Ise.Int8Array,xse=p5&&p5.prototype,wse=xse&&xse.set,not=f5.aTypedArray,sot=f5.exportTypedArrayMethod,d5=!_se(function(){var t=new Uint8ClampedArray(2);return Sse(wse,t,{length:1,0:3},1),t[1]!==3}),aot=d5&&f5.NATIVE_ARRAY_BUFFER_VIEWS&&_se(function(){var t=new p5(2);return t.set(1),t.set("2",1),t[0]!==0||t[1]!==2});sot("set",function(r){not(this);var e=tot(arguments.length>1?arguments[1]:void 0,1),i=rot(r);if(d5)return Sse(wse,this,i,e);var n=this.length,s=eot(i),a=0;if(s+e>n)throw iot("Wrong length");for(;a{"use strict";var Mse=_i(),oot=sb(),lot=Rt(),cot=Od(),uot=Mse.aTypedArray,hot=Mse.exportTypedArrayMethod,pot=lot(function(){new Int8Array(1).slice()});hot("slice",function(r,e){for(var i=cot(uot(this),r,e),n=oot(this),s=0,a=i.length,o=new n(a);a>s;)o[s]=i[s++];return o},pot)});var Ase=V(()=>{"use strict";var Cse=_i(),dot=ws().some,fot=Cse.aTypedArray,mot=Cse.exportTypedArrayMethod;mot("some",function(r){return dot(fot(this),r,arguments.length>1?arguments[1]:void 0)})});var Hse=V(()=>{"use strict";var got=ir(),vot=jh(),m5=Rt(),yot=fs(),Tot=Fw(),Fse=_i(),Ose=RN(),Eot=MN(),Pse=xu(),Nse=Hw(),bot=Fse.aTypedArray,xot=Fse.exportTypedArrayMethod,ab=got.Uint16Array,jv=ab&&vot(ab.prototype.sort),Iot=!!jv&&!(m5(function(){jv(new ab(2),null)})&&m5(function(){jv(new ab(2),{})})),Lse=!!jv&&!m5(function(){if(Pse)return Pse<74;if(Ose)return Ose<67;if(Eot)return!0;if(Nse)return Nse<602;var t=new ab(516),r=Array(516),e,i;for(e=0;e<516;e++)i=e%4,t[e]=515-e,r[e]=e-2*i+3;for(jv(t,function(n,s){return(n/4|0)-(s/4|0)}),e=0;e<516;e++)if(t[e]!==r[e])return!0}),Sot=function(t){return function(r,e){return t!==void 0?+t(r,e)||0:e!==e?-1:r!==r?1:r===0&&e===0?1/r>0&&1/e<0?1:-1:r>e}};xot("sort",function(r){return r!==void 0&&yot(r),Lse?jv(this,r):Tot(bot(this),Sot(r))},!Lse||Iot)});var kse=V(()=>{"use strict";var Bse=_i(),_ot=Wa(),Use=Su(),wot=sb(),Rot=Bse.aTypedArray,Mot=Bse.exportTypedArrayMethod;Mot("subarray",function(r,e){var i=Rot(this),n=i.length,s=Use(r,n),a=wot(i);return new a(i.buffer,i.byteOffset+s*i.BYTES_PER_ELEMENT,_ot((e===void 0?n:Use(e,n))-s))})});var Wse=V(()=>{"use strict";var Dot=ir(),Cot=Po(),zse=_i(),g5=Rt(),Gse=Od(),VR=Dot.Int8Array,Vse=zse.aTypedArray,Aot=zse.exportTypedArrayMethod,jse=[].toLocaleString,Oot=!!VR&&g5(function(){jse.call(new VR(1))}),Pot=g5(function(){return[1,2].toLocaleString()!=new VR([1,2]).toLocaleString()})||!g5(function(){VR.prototype.toLocaleString.call([1,2])});Aot("toLocaleString",function(){return Cot(jse,Oot?Gse(Vse(this)):Vse(this),Gse(arguments))},Pot)});var Yse=V(()=>{"use strict";var Not=_i().exportTypedArrayMethod,Lot=Rt(),Fot=ir(),Hot=Bt(),qse=Fot.Uint8Array,Uot=qse&&qse.prototype||{},zR=[].toString,Bot=Hot([].join);Lot(function(){zR.call({})})&&(zR=function(){return Bot(this)});var kot=Uot.toString!=zR;Not("toString",zR,kot)});var Jse=V(()=>{"use strict";var Got=Ne(),v5=Bt(),Vot=mi(),Xse=String.fromCharCode,$se=v5("".charAt),Zse=v5(/./.exec),Kse=v5("".slice),zot=/^[\da-f]{2}$/i,jot=/^[\da-f]{4}$/i;Got({global:!0},{unescape:function(r){for(var e=Vot(r),i="",n=e.length,s=0,a,o;s{"use strict";var Wot=Bt(),Qse=gv(),jR=kd().getWeakData,qot=yc(),Yot=jr(),Xot=ma(),y5=si(),$ot=vc(),tae=ws(),eae=Si(),rae=cs(),Zot=rae.set,Kot=rae.getterFor,Jot=tae.find,Qot=tae.findIndex,elt=Wot([].splice),tlt=0,WR=function(t){return t.frozen||(t.frozen=new iae)},iae=function(){this.entries=[]},T5=function(t,r){return Jot(t.entries,function(e){return e[0]===r})};iae.prototype={get:function(t){var r=T5(this,t);if(r)return r[1]},has:function(t){return!!T5(this,t)},set:function(t,r){var e=T5(this,t);e?e[1]=r:this.entries.push([t,r])},delete:function(t){var r=Qot(this.entries,function(e){return e[0]===t});return~r&&elt(this.entries,r,1),!!~r}};nae.exports={getConstructor:function(t,r,e,i){var n=t(function(l,c){qot(l,s),Zot(l,{type:r,id:tlt++,frozen:void 0}),Xot(c)||$ot(c,l[i],{that:l,AS_ENTRIES:e})}),s=n.prototype,a=Kot(r),o=function(l,c,u){var h=a(l),p=jR(Yot(c),!0);return p===!0?WR(h).set(c,u):p[h.id]=u,l};return Qse(s,{delete:function(l){var c=a(this);if(!y5(l))return!1;var u=jR(l);return u===!0?WR(c).delete(l):u&&eae(u,c.id)&&delete u[c.id]},has:function(c){var u=a(this);if(!y5(c))return!1;var h=jR(c);return h===!0?WR(u).has(c):h&&eae(h,u.id)}}),Qse(s,e?{get:function(c){var u=a(this);if(y5(c)){var h=jR(c);return h===!0?WR(u).get(c):h?h[u.id]:void 0}},set:function(c,u){return o(this,c,u)}}:{add:function(c){return o(this,c,!0)}}),n}}});var fae=V(()=>{"use strict";var rlt=Um(),sae=ir(),$R=Bt(),aae=gv(),ilt=kd(),nlt=A1(),cae=E5(),qR=si(),YR=cs().enforce,slt=Rt(),alt=f2(),cb=Object,olt=Array.isArray,XR=cb.isExtensible,uae=cb.isFrozen,llt=cb.isSealed,hae=cb.freeze,clt=cb.seal,oae={},lae={},ult=!sae.ActiveXObject&&"ActiveXObject"in sae,ob,pae=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},dae=nlt("WeakMap",pae,cae),Wv=dae.prototype,ZR=$R(Wv.set),hlt=function(){return rlt&&slt(function(){var t=hae([]);return ZR(new dae,t,1),!uae(t)})};alt&&(ult?(ob=cae.getConstructor(pae,"WeakMap",!0),ilt.enable(),b5=$R(Wv.delete),lb=$R(Wv.has),x5=$R(Wv.get),aae(Wv,{delete:function(t){if(qR(t)&&!XR(t)){var r=YR(this);return r.frozen||(r.frozen=new ob),b5(this,t)||r.frozen.delete(t)}return b5(this,t)},has:function(r){if(qR(r)&&!XR(r)){var e=YR(this);return e.frozen||(e.frozen=new ob),lb(this,r)||e.frozen.has(r)}return lb(this,r)},get:function(r){if(qR(r)&&!XR(r)){var e=YR(this);return e.frozen||(e.frozen=new ob),lb(this,r)?x5(this,r):e.frozen.get(r)}return x5(this,r)},set:function(r,e){if(qR(r)&&!XR(r)){var i=YR(this);i.frozen||(i.frozen=new ob),lb(this,r)?ZR(this,r,e):i.frozen.set(r,e)}else ZR(this,r,e);return this}})):hlt()&&aae(Wv,{set:function(r,e){var i;return olt(r)&&(uae(r)?i=oae:llt(r)&&(i=lae)),ZR(this,r,e),i==oae&&hae(r),i==lae&&clt(r),this}}));var b5,lb,x5});var mae=V(()=>{fae()});var gae=V(()=>{"use strict";var plt=A1(),dlt=E5();plt("WeakSet",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},dlt)});var vae=V(()=>{gae()});var I5=V((w9t,Eae)=>{var yae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tae={};for(ub=0;ub<66;ub++)Tae[yae.charAt(ub)]=ub;var ub;Eae.exports={itoc:yae,ctoi:Tae}});var wae=V(()=>{var flt=Ne(),Sae=bn(),_5=Bt(),w5=Rt(),mlt=mi(),glt=Si(),vlt=ep(),S5=I5().ctoi,_ae=/[^\d+/a-z]/i,ylt=/[\t\n\f\r ]+/g,Tlt=/[=]+$/,hb=Sae("atob"),Elt=String.fromCharCode,blt=_5("".charAt),bae=_5("".replace),xlt=_5(_ae.exec),R5=w5(function(){return hb(" ")!==""}),M5=!w5(function(){hb("a")}),xae=!R5&&!M5&&!w5(function(){hb()}),Iae=!R5&&!M5&&hb.length!==1;flt({global:!0,enumerable:!0,forced:R5||M5||xae||Iae},{atob:function(r){if(vlt(arguments.length,1),xae||Iae)return hb(r);var e=bae(mlt(r),ylt,""),i="",n=0,s=0,a,o;if(e.length%4==0&&(e=bae(e,Tlt,"")),e.length%4==1||xlt(_ae,e))throw new(Sae("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;a=blt(e,n++);)glt(S5,a)&&(o=s%4?o*64+S5[a]:S5[a],s++%4&&(i+=Elt(255&o>>(-2*s&6))));return i}})});var Lae=V(()=>{var Ilt=Ne(),Oae=bn(),Pae=Bt(),Nae=Rt(),Rae=mi(),Slt=ep(),_lt=I5().itoc,Ym=Oae("btoa"),Mae=Pae("".charAt),wlt=Pae("".charCodeAt),Dae=!!Ym&&!Nae(function(){Ym()}),Cae=!!Ym&&Nae(function(){return Ym(null)!=="bnVsbA=="}),Aae=!!Ym&&Ym.length!==1;Ilt({global:!0,enumerable:!0,forced:Dae||Cae||Aae},{btoa:function(r){if(Slt(arguments.length,1),Dae||Cae||Aae)return Ym(Rae(r));for(var e=Rae(r),i="",n=0,s=_lt,a,o;Mae(e,n)||(s="=",n%1);){if(o=wlt(e,n+=3/4),o>255)throw new(Oae("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");a=a<<8|o,i+=Mae(s,63&a>>8-n%1*8)}return i}})});var D5=V((A9t,Fae)=>{Fae.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var A5=V((O9t,Uae)=>{var Rlt=i1(),C5=Rlt("span").classList,Hae=C5&&C5.constructor&&C5.constructor.prototype;Uae.exports=Hae===Object.prototype?void 0:Hae});var Vae=V(()=>{var Bae=ir(),kae=D5(),Mlt=A5(),O5=dN(),Dlt=va(),Gae=function(t){if(t&&t.forEach!==O5)try{Dlt(t,"forEach",O5)}catch(r){t.forEach=O5}};for(KR in kae)kae[KR]&&Gae(Bae[KR]&&Bae[KR].prototype);var KR;Gae(Mlt)});var Xae=V(()=>{var zae=ir(),Wae=D5(),Clt=A5(),pb=_1(),P5=va(),qae=fi(),N5=qae("iterator"),jae=qae("toStringTag"),L5=pb.values,Yae=function(t,r){if(t){if(t[N5]!==L5)try{P5(t,N5,L5)}catch(i){t[N5]=L5}if(t[jae]||P5(t,jae,r),Wae[r]){for(var e in pb)if(t[e]!==pb[e])try{P5(t,e,pb[e])}catch(i){t[e]=pb[e]}}}};for(JR in Wae)Yae(zae[JR]&&zae[JR].prototype,JR);var JR;Yae(Clt,"DOMTokenList")});var Zae=V((H9t,$ae)=>{var Alt=Mu();$ae.exports=function(t){try{if(Alt)return Function('return require("'+t+'")')()}catch(r){}}});var F5=V((U9t,Kae)=>{Kae.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}});var loe=V(()=>{"use strict";var Olt=Ne(),Plt=Zae(),tM=bn(),V5=Rt(),Nlt=qa(),z5=Ao(),rM=Vi().f,Llt=Dn(),QR=Gd(),eM=Si(),Flt=yc(),Hlt=jr(),eoe=eN(),Jae=hv(),qv=F5(),Ult=g1(),toe=cs(),j5=Pr(),roe=Bn(),Yv="DOMException",G5="DATA_CLONE_ERR",nM=tM("Error"),tp=tM(Yv)||function(){try{var t=tM("MessageChannel")||Plt("worker_threads").MessageChannel;new t().port1.postMessage(new WeakMap)}catch(r){if(r.name==G5&&r.code==25)return r.constructor}}(),Blt=tp&&tp.prototype,ioe=nM.prototype,klt=toe.set,Glt=toe.getterFor(Yv),Vlt="stack"in nM(Yv),noe=function(t){return eM(qv,t)&&qv[t].m?qv[t].c:0},W5=function(){Flt(this,fb);var r=arguments.length,e=Jae(r<1?void 0:arguments[0]),i=Jae(r<2?void 0:arguments[1],"Error"),n=noe(i);if(klt(this,{type:Yv,name:i,message:e,code:n}),j5||(this.name=i,this.message=e,this.code=n),Vlt){var s=nM(e);s.name=Yv,rM(this,"stack",z5(1,Ult(s.stack,1)))}},fb=W5.prototype=Nlt(ioe),soe=function(t){return{enumerable:!0,configurable:!0,get:t}},H5=function(t){return soe(function(){return Glt(this)[t]})};j5&&(QR(fb,"code",H5("code")),QR(fb,"message",H5("message")),QR(fb,"name",H5("name")));rM(fb,"constructor",z5(1,W5));var sM=V5(function(){return!(new tp instanceof nM)}),aoe=sM||V5(function(){return ioe.toString!==eoe||String(new tp(1,2))!=="2: 1"}),ooe=sM||V5(function(){return new tp(1,"DataCloneError").code!==25}),zlt=sM||tp[G5]!==25||Blt[G5]!==25,Qae=roe?aoe||ooe||zlt:sM;Olt({global:!0,constructor:!0,forced:Qae},{DOMException:Qae?W5:tp});var mb=tM(Yv),iM=mb.prototype;aoe&&(roe||tp===mb)&&Llt(iM,"toString",eoe);ooe&&j5&&tp===mb&&QR(iM,"code",soe(function(){return noe(Hlt(this).name)}));for(U5 in qv)eM(qv,U5)&&(B5=qv[U5],db=B5.s,k5=z5(6,B5.c),eM(mb,db)||rM(mb,db,k5),eM(iM,db)||rM(iM,db,k5));var B5,db,k5,U5});var moe=V(()=>{"use strict";var jlt=Ne(),Wlt=ir(),Q5=bn(),K5=Ao(),J5=Vi().f,coe=Si(),qlt=yc(),Ylt=Om(),uoe=hv(),q5=F5(),Xlt=g1(),$lt=Pr(),doe=Bn(),vb="DOMException",foe=Q5("Error"),yb=Q5(vb),e6=function(){qlt(this,Zlt);var r=arguments.length,e=uoe(r<1?void 0:arguments[0]),i=uoe(r<2?void 0:arguments[1],"Error"),n=new yb(e,i),s=foe(e);return s.name=vb,J5(n,"stack",K5(1,Xlt(s.stack,1))),Ylt(n,this,e6),n},Zlt=e6.prototype=yb.prototype,Klt="stack"in foe(vb),Jlt="stack"in new yb(1,2),Y5=yb&&$lt&&Object.getOwnPropertyDescriptor(Wlt,vb),Qlt=!!Y5&&!(Y5.writable&&Y5.configurable),hoe=Klt&&!Qlt&&!Jlt;jlt({global:!0,constructor:!0,forced:doe||hoe},{DOMException:hoe?e6:yb});var gb=Q5(vb),poe=gb.prototype;if(poe.constructor!==gb){doe||J5(poe,"constructor",K5(1,gb));for(X5 in q5)coe(q5,X5)&&($5=q5[X5],Z5=$5.s,coe(gb,Z5)||J5(gb,Z5,K5(6,$5.c)))}var $5,Z5,X5});var voe=V(()=>{var ect=bn(),tct=Ya(),goe="DOMException";tct(ect(goe),goe)});var Toe=V(()=>{var rct=Ne(),ict=ir(),yoe=z1().clear;rct({global:!0,bind:!0,enumerable:!0,forced:ict.clearImmediate!==yoe},{clearImmediate:yoe})});var boe=V((Y9t,Eoe)=>{Eoe.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"});var aM=V((X9t,Ioe)=>{"use strict";var xoe=ir(),nct=Po(),sct=Ti(),act=boe(),oct=bu(),lct=Od(),cct=ep(),uct=xoe.Function,hct=/MSIE .\./.test(oct)||act&&function(){var t=xoe.Bun.version.split(".");return t.length<3||t[0]==0&&(t[1]<3||t[1]==3&&t[2]==0)}();Ioe.exports=function(t,r){var e=r?2:1;return hct?function(i,n){var s=cct(arguments.length,1)>e,a=sct(i)?i:uct(i),o=s?lct(arguments,e):[],l=s?function(){nct(a,this,o)}:a;return r?t(l,n):t(l)}:t}});var Roe=V(()=>{var pct=Ne(),woe=ir(),Soe=z1().set,dct=aM(),_oe=woe.setImmediate?dct(Soe,!1):Soe;pct({global:!0,bind:!0,enumerable:!0,forced:woe.setImmediate!==_oe},{setImmediate:_oe})});var Moe=V(()=>{Toe();Roe()});var Doe=V(()=>{var fct=Ne(),mct=ir(),gct=XL(),vct=fs(),yct=ep(),Tct=Mu(),Ect=mct.process;fct({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(r){yct(arguments.length,1),vct(r);var e=Tct&&Ect.domain;gct(e?e.bind(r):r)}})});var Aoe=V(()=>{"use strict";var bct=Ne(),qd=ir(),xct=Gd(),Ict=Pr(),Sct=TypeError,_ct=Object.defineProperty,Coe=qd.self!==qd;try{Ict?(oM=Object.getOwnPropertyDescriptor(qd,"self"),(Coe||!oM||!oM.get||!oM.enumerable)&&xct(qd,"self",{get:function(){return qd},set:function(r){if(this!==qd)throw Sct("Illegal invocation");_ct(qd,"self",{value:r,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})):bct({global:!0,simple:!0,forced:Coe},{self:qd})}catch(t){}var oM});var Poe=V((izt,Ooe)=>{var lM=Bt(),Tb=Map.prototype;Ooe.exports={Map,set:lM(Tb.set),get:lM(Tb.get),has:lM(Tb.has),remove:lM(Tb.delete),proto:Tb}});var Loe=V((nzt,Noe)=>{var t6=Bt(),Xv=Set.prototype;Noe.exports={Set,add:t6(Xv.add),has:t6(Xv.has),remove:t6(Xv.delete),proto:Xv,$has:Xv.has,$keys:Xv.keys}});var Woe=V(()=>{var wct=Bn(),Rct=Ne(),Cn=ir(),u6=bn(),xb=Bt(),hM=Rt(),Mct=_m(),a6=Ti(),Dct=Dm(),Cct=ma(),o6=si(),Act=Md(),Oct=vc(),Hoe=jr(),Uoe=mc(),Pct=Si(),Nct=_u(),r6=va(),cM=ln(),Lct=ep(),Fct=Nv(),pM=Poe(),Boe=Loe(),Hct=Ew(),i6=xu(),Uct=$L(),Bct=fR(),kct=Mu(),Eb=Cn.Object,Gct=Cn.Array,koe=Cn.Date,Ib=Cn.Error,Vct=Cn.EvalError,zct=Cn.RangeError,jct=Cn.ReferenceError,Wct=Cn.SyntaxError,Goe=Cn.TypeError,qct=Cn.URIError,Yct=Cn.PerformanceMark,$v=Cn.WebAssembly,Xct=$v&&$v.CompileError||Ib,$ct=$v&&$v.LinkError||Ib,Zct=$v&&$v.RuntimeError||Ib,Xm=u6("DOMException"),l6=pM.Map,Voe=pM.has,Kct=pM.get,uM=pM.set,Jct=Boe.Set,Qct=Boe.add,eut=u6("Object","keys"),tut=xb([].push),rut=xb((!0).valueOf),iut=xb(1 .valueOf),nut=xb("".valueOf),sut=xb(koe.prototype.getTime),c6=Mct("structuredClone"),bb="DataCloneError",n6="Transferring",zoe=function(t){return!hM(function(){var r=new Cn.Set([7]),e=t(r),i=t(Eb(7));return e==r||!e.has(7)||typeof i!="object"||i!=7})&&t},Foe=function(t,r){return!hM(function(){var e=new r,i=t({a:e,b:e});return!(i&&i.a===i.b&&i.a instanceof r&&i.a.stack===e.stack)})},aut=function(t){return!hM(function(){var r=t(new Cn.AggregateError([1],c6,{cause:3}));return r.name!="AggregateError"||r.errors[0]!=1||r.message!=c6||r.cause!=3})},Xd=Cn.structuredClone,out=wct||!Foe(Xd,Ib)||!Foe(Xd,Xm)||!aut(Xd),lut=!Xd&&zoe(function(t){return new Yct(c6,{detail:t}).detail}),Yd=zoe(Xd)||lut,s6=function(t){throw new Xm("Uncloneable type: "+t,bb)},Ea=function(t,r){throw new Xm((r||"Cloning")+" of "+t+" cannot be properly polyfilled in this engine",bb)},cut=function(){var t;try{t=new Cn.DataTransfer}catch(r){try{t=new Cn.ClipboardEvent("").clipboardData}catch(e){}}return t&&t.items&&t.files?t:null},qs=function(t,r){if(Act(t)&&s6("Symbol"),!o6(t))return t;if(r){if(Voe(r,t))return Kct(r,t)}else r=new l6;var e=Uoe(t),i=!1,n,s,a,o,l,c,u,h,p,d;switch(e){case"Array":a=Gct(cM(t)),i=!0;break;case"Object":a={},i=!0;break;case"Map":a=new l6,i=!0;break;case"Set":a=new Jct,i=!0;break;case"RegExp":a=new RegExp(t.source,Fct(t));break;case"Error":switch(s=t.name,s){case"AggregateError":a=u6("AggregateError")([]);break;case"EvalError":a=Vct();break;case"RangeError":a=zct();break;case"ReferenceError":a=jct();break;case"SyntaxError":a=Wct();break;case"TypeError":a=Goe();break;case"URIError":a=qct();break;case"CompileError":a=Xct();break;case"LinkError":a=$ct();break;case"RuntimeError":a=Zct();break;default:a=Ib()}i=!0;break;case"DOMException":a=new Xm(t.message,t.name),i=!0;break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":n=Cn[e],o6(n)||Ea(e),a=new n(qs(t.buffer,r),t.byteOffset,e==="DataView"?t.byteLength:t.length);break;case"DOMQuad":try{a=new DOMQuad(qs(t.p1,r),qs(t.p2,r),qs(t.p3,r),qs(t.p4,r))}catch(f){Yd?a=Yd(t):Ea(e)}break;case"FileList":if(o=cut(),o){for(l=0,c=cM(t);l92||kct&&i6>94||Uct&&i6>97)return!1;var t=new ArrayBuffer(8),r=Xd(t,{transfer:[t]});return t.byteLength!=0||r.byteLength!=8}),uut=function(t,r){if(!o6(t))throw Goe("Transfer option cannot be converted to a sequence");var e=[];Oct(t,function(p){tut(e,Hoe(p))});var i=0,n=cM(e),s,a,o,l,c,u,h;if(joe)for(l=Xd(e,{transfer:e});i1&&!Cct(arguments[1])?Hoe(arguments[1]):void 0,i=e?e.transfer:void 0,n;return i!==void 0&&(n=new l6,uut(i,n)),qs(r,n)}})});var Xoe=V(()=>{var hut=Ne(),Yoe=ir(),put=aM(),qoe=put(Yoe.setInterval,!0);hut({global:!0,bind:!0,forced:Yoe.setInterval!==qoe},{setInterval:qoe})});var Koe=V(()=>{var dut=Ne(),Zoe=ir(),fut=aM(),$oe=fut(Zoe.setTimeout,!0);dut({global:!0,bind:!0,forced:Zoe.setTimeout!==$oe},{setTimeout:$oe})});var Joe=V(()=>{Xoe();Koe()});var h6=V((dzt,Qoe)=>{var mut=Rt(),gut=fi(),vut=Bn(),yut=gut("iterator");Qoe.exports=!mut(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),r=t.searchParams,e="";return t.pathname="c%20d",r.forEach(function(i,n){r.delete("b"),e+=n+i}),vut&&!t.toJSON||!r.sort||t.href!=="http://a/c%20d?a=1&c=3"||r.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!r[yut]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||e!=="a1c3"||new URL("http://x",void 0).host!=="x"})});var lle=V((fzt,ole)=>{"use strict";var $m=Bt(),p6=2147483647,Sb=36,nle=1,m6=26,Tut=38,Eut=700,but=72,xut=128,Iut="-",Sut=/[^\0-\u007E]/,sle=/[.\u3002\uFF0E\uFF61]/g,ele="Overflow: input needs wider integers to process",d6=Sb-nle,tle=RangeError,_ut=$m(sle.exec),Zv=Math.floor,f6=String.fromCharCode,rle=$m("".charCodeAt),ale=$m([].join),$d=$m([].push),wut=$m("".replace),Rut=$m("".split),Mut=$m("".toLowerCase),Dut=function(t){for(var r=[],e=0,i=t.length;e=55296&&n<=56319&&e>1,t+=Zv(t/r);t>d6*m6>>1;)t=Zv(t/d6),i+=Sb;return Zv(i+(d6+1)*t/(t+Tut))},Aut=function(t){var r=[];t=Dut(t);var e=t.length,i=xut,n=0,s=but,a,o;for(a=0;a=i&&oZv((p6-n)/h))throw tle(ele);for(n+=(u-i)*h,i=u,a=0;ap6)throw tle(ele);if(o==i){for(var p=n,d=Sb;;){var f=d<=s?nle:d>=s+m6?m6:d-s;if(p{"use strict";_1();var E6=Ne(),Jv=ir(),dM=ni(),Pu=Bt(),Out=Pr(),Ele=h6(),ble=Dn(),Put=gv(),Nut=Ya(),Lut=Cw(),I6=cs(),xle=yc(),g6=Ti(),Fut=Si(),Hut=fl(),Uut=mc(),But=jr(),Ile=si(),Ho=mi(),kut=qa(),cle=Ao(),b6=v1(),Gut=dv(),Kv=ep(),Vut=fi(),zut=Fw(),jut=Vut("iterator"),Rb="URLSearchParams",Sle=Rb+"Iterator",_le=I6.set,Ec=I6.getterFor(Rb),Wut=I6.getterFor(Sle),qut=Object.getOwnPropertyDescriptor,S6=function(t){if(!Out)return Jv[t];var r=qut(Jv,t);return r&&r.value},ule=S6("fetch"),mM=S6("Request"),_b=S6("Headers"),v6=mM&&mM.prototype,hle=_b&&_b.prototype,Yut=Jv.RegExp,Xut=Jv.TypeError,wle=Jv.decodeURIComponent,$ut=Jv.encodeURIComponent,Zut=Pu("".charAt),ple=Pu([].join),Zm=Pu([].push),x6=Pu("".replace),Kut=Pu([].shift),dle=Pu([].splice),fle=Pu("".split),Jut=Pu("".slice),Qut=/\+/g,mle=Array(4),eht=function(t){return mle[t-1]||(mle[t-1]=Yut("((?:%[\\da-f]{2}){"+t+"})","gi"))},tht=function(t){try{return wle(t)}catch(r){return t}},gle=function(t){var r=x6(t,Qut," "),e=4;try{return wle(r)}catch(i){for(;e;)r=x6(r,eht(e--),tht);return r}},rht=/[!'()~]|%20/g,iht={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},nht=function(t){return iht[t]},vle=function(t){return x6($ut(t),rht,nht)},y6=Lut(function(r,e){_le(this,{type:Sle,iterator:b6(Ec(r).entries),kind:e})},"Iterator",function(){var r=Wut(this),e=r.kind,i=r.iterator.next(),n=i.value;return i.done||(i.value=e==="keys"?n.key:e==="values"?n.value:[n.key,n.value]),i},!0),Rle=function(t){this.entries=[],this.url=null,t!==void 0&&(Ile(t)?this.parseObject(t):this.parseQuery(typeof t=="string"?Zut(t,0)==="?"?Jut(t,1):t:Ho(t)))};Rle.prototype={type:Rb,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var r=Gut(t),e,i,n,s,a,o,l;if(r)for(e=b6(t,r),i=e.next;!(n=dM(i,e)).done;){if(s=b6(But(n.value)),a=s.next,(o=dM(a,s)).done||(l=dM(a,s)).done||!dM(a,s).done)throw Xut("Expected sequence with length 2");Zm(this.entries,{key:Ho(o.value),value:Ho(l.value)})}else for(var c in t)Fut(t,c)&&Zm(this.entries,{key:c,value:Ho(t[c])})},parseQuery:function(t){if(t)for(var r=fle(t,"&"),e=0,i,n;e0?arguments[0]:void 0;_le(this,new Rle(r))},wb=gM.prototype;Put(wb,{append:function(r,e){Kv(arguments.length,2);var i=Ec(this);Zm(i.entries,{key:Ho(r),value:Ho(e)}),i.updateURL()},delete:function(t){Kv(arguments.length,1);for(var r=Ec(this),e=r.entries,i=Ho(t),n=0;ni.key?1:-1}),r.updateURL()},forEach:function(r){for(var e=Ec(this).entries,i=Hut(r,arguments.length>1?arguments[1]:void 0),n=0,s;n1?T6(arguments[1]):{})}}),g6(mM)&&(fM=function(r){return xle(this,v6),new mM(r,arguments.length>1?T6(arguments[1]):{})},v6.constructor=fM,fM.prototype=v6,E6({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:fM})));var yle,Tle,T6,fM;Mle.exports={URLSearchParams:gM,getState:Ec}});var Yle=V(()=>{"use strict";CF();var sht=Ne(),G6=Pr(),aht=h6(),V6=ir(),Dle=fl(),xl=Bt(),bM=Dn(),yl=Gd(),oht=yc(),U6=Si(),z6=RL(),Qv=fN(),bc=ov(),lht=Z1().codeAt,cht=lle(),ip=mi(),uht=Ya(),hht=ep(),Gle=_6(),Vle=cs(),pht=Vle.set,xM=Vle.getterFor("URL"),dht=Gle.URLSearchParams,fht=Gle.getState,Mb=V6.URL,B6=V6.TypeError,IM=V6.parseInt,mht=Math.floor,Cle=Math.pow,bl=xl("".charAt),xc=xl(/./.exec),Cb=xl([].join),ght=xl(1 .toString),vht=xl([].pop),ty=xl([].push),Ale=xl("".replace),yht=xl([].shift),Tht=xl("".split),Ob=xl("".slice),SM=xl("".toLowerCase),Eht=xl([].unshift),bht="Invalid authority",w6="Invalid scheme",Km="Invalid host",Ole="Invalid port",zle=/[a-z]/i,xht=/[\d+-.a-z]/i,k6=/\d/,Iht=/^0x/i,Sht=/^[0-7]+$/,_ht=/^\d+$/,jle=/^[\da-f]+$/i,wht=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Rht=/[\0\t\n\r #/:<>?@[\\\]^|]/,Mht=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,Dht=/[\t\n\r]/g,Tl,Cht=function(t){var r=Tht(t,"."),e,i,n,s,a,o,l;if(r.length&&r[r.length-1]==""&&r.length--,e=r.length,e>4)return t;for(i=[],n=0;n1&&bl(s,0)=="0"&&(a=xc(Iht,s)?16:8,s=Ob(s,a==8?1:2)),s==="")o=0;else{if(!xc(a==10?_ht:a==8?Sht:jle,s))return t;o=IM(s,a)}ty(i,o)}for(n=0;n=Cle(256,5-e))return null}else if(o>255)return null;for(l=vht(i),n=0;n6))return;for(o=0;p();){if(l=null,o>0)if(p()=="."&&o<4)n++;else return;if(!xc(k6,p()))return;for(;xc(k6,p());){if(c=IM(p(),10),l===null)l=c;else{if(l==0)return;l=l*10+c}if(l>255)return;n++}r[e]=r[e]*256+l,o++,(o==2||o==4)&&e++}if(o!=4)return;break}else if(p()==":"){if(n++,!p())return}else if(p())return;r[e++]=s}if(i!==null)for(u=e-i,e=7;e!=0&&u>0;)h=r[e],r[e--]=r[i+u-1],r[i+--u]=h;else if(e!=8)return;return r},Oht=function(t){for(var r=null,e=1,i=null,n=0,s=0;s<8;s++)t[s]!==0?(n>e&&(r=i,e=n),i=null,n=0):(i===null&&(i=s),++n);return n>e&&(r=i,e=n),r},Db=function(t){var r,e,i,n;if(typeof t=="number"){for(r=[],e=0;e<4;e++)Eht(r,t%256),t=mht(t/256);return Cb(r,".")}else if(typeof t=="object"){for(r="",i=Oht(t),e=0;e<8;e++)n&&t[e]===0||(n&&(n=!1),i===e?(r+=e?":":"::",n=!0):(r+=ght(t[e],16),e<7&&(r+=":")));return"["+r+"]"}return t},EM={},Wle=z6({},EM,{" ":1,'"':1,"<":1,">":1,"`":1}),qle=z6({},Wle,{"#":1,"?":1,"{":1,"}":1}),R6=z6({},qle,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Zd=function(t,r){var e=lht(t,0);return e>32&&e<127&&!U6(r,t)?t:encodeURIComponent(t)},vM={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ab=function(t,r){var e;return t.length==2&&xc(zle,bl(t,0))&&((e=bl(t,1))==":"||!r&&e=="|")},Ple=function(t){var r;return t.length>1&&Ab(Ob(t,0,2))&&(t.length==2||(r=bl(t,2))==="/"||r==="\\"||r==="?"||r==="#")},Pht=function(t){return t==="."||SM(t)==="%2e"},Nht=function(t){return t=SM(t),t===".."||t==="%2e."||t===".%2e"||t==="%2e%2e"},M6={},Nle={},D6={},Lle={},Fle={},C6={},Hle={},Ule={},yM={},TM={},A6={},O6={},P6={},N6={},Ble={},L6={},ey={},Nu={},kle={},Jm={},rp={},j6=function(t,r,e){var i=ip(t),n,s,a;if(r){if(s=this.parse(i),s)throw B6(s);this.searchParams=null}else{if(e!==void 0&&(n=new j6(e,!0)),s=this.parse(i,null,n),s)throw B6(s);a=fht(new dht),a.bindURL(this),this.searchParams=a}};j6.prototype={type:"URL",parse:function(t,r,e){var i=this,n=r||M6,s=0,a="",o=!1,l=!1,c=!1,u,h,p,d;for(t=ip(t),r||(i.scheme="",i.username="",i.password="",i.host=null,i.port=null,i.path=[],i.query=null,i.fragment=null,i.cannotBeABaseURL=!1,t=Ale(t,Mht,"")),t=Ale(t,Dht,""),u=Qv(t);s<=u.length;){switch(h=u[s],n){case M6:if(h&&xc(zle,h))a+=SM(h),n=Nle;else{if(r)return w6;n=D6;continue}break;case Nle:if(h&&(xc(xht,h)||h=="+"||h=="-"||h=="."))a+=SM(h);else if(h==":"){if(r&&(i.isSpecial()!=U6(vM,a)||a=="file"&&(i.includesCredentials()||i.port!==null)||i.scheme=="file"&&!i.host))return;if(i.scheme=a,r){i.isSpecial()&&vM[i.scheme]==i.port&&(i.port=null);return}a="",i.scheme=="file"?n=N6:i.isSpecial()&&e&&e.scheme==i.scheme?n=Lle:i.isSpecial()?n=Ule:u[s+1]=="/"?(n=Fle,s++):(i.cannotBeABaseURL=!0,ty(i.path,""),n=kle)}else{if(r)return w6;a="",n=D6,s=0;continue}break;case D6:if(!e||e.cannotBeABaseURL&&h!="#")return w6;if(e.cannotBeABaseURL&&h=="#"){i.scheme=e.scheme,i.path=bc(e.path),i.query=e.query,i.fragment="",i.cannotBeABaseURL=!0,n=rp;break}n=e.scheme=="file"?N6:C6;continue;case Lle:if(h=="/"&&u[s+1]=="/")n=yM,s++;else{n=C6;continue}break;case Fle:if(h=="/"){n=TM;break}else{n=Nu;continue}case C6:if(i.scheme=e.scheme,h==Tl)i.username=e.username,i.password=e.password,i.host=e.host,i.port=e.port,i.path=bc(e.path),i.query=e.query;else if(h=="/"||h=="\\"&&i.isSpecial())n=Hle;else if(h=="?")i.username=e.username,i.password=e.password,i.host=e.host,i.port=e.port,i.path=bc(e.path),i.query="",n=Jm;else if(h=="#")i.username=e.username,i.password=e.password,i.host=e.host,i.port=e.port,i.path=bc(e.path),i.query=e.query,i.fragment="",n=rp;else{i.username=e.username,i.password=e.password,i.host=e.host,i.port=e.port,i.path=bc(e.path),i.path.length--,n=Nu;continue}break;case Hle:if(i.isSpecial()&&(h=="/"||h=="\\"))n=yM;else if(h=="/")n=TM;else{i.username=e.username,i.password=e.password,i.host=e.host,i.port=e.port,n=Nu;continue}break;case Ule:if(n=yM,h!="/"||bl(a,s+1)!="/")continue;s++;break;case yM:if(h!="/"&&h!="\\"){n=TM;continue}break;case TM:if(h=="@"){o&&(a="%40"+a),o=!0,p=Qv(a);for(var f=0;f65535)return Ole;i.port=i.isSpecial()&&y===vM[i.scheme]?null:y,a=""}if(r)return;n=ey;continue}else return Ole;break;case N6:if(i.scheme="file",h=="/"||h=="\\")n=Ble;else if(e&&e.scheme=="file")if(h==Tl)i.host=e.host,i.path=bc(e.path),i.query=e.query;else if(h=="?")i.host=e.host,i.path=bc(e.path),i.query="",n=Jm;else if(h=="#")i.host=e.host,i.path=bc(e.path),i.query=e.query,i.fragment="",n=rp;else{Ple(Cb(bc(u,s),""))||(i.host=e.host,i.path=bc(e.path),i.shortenPath()),n=Nu;continue}else{n=Nu;continue}break;case Ble:if(h=="/"||h=="\\"){n=L6;break}e&&e.scheme=="file"&&!Ple(Cb(bc(u,s),""))&&(Ab(e.path[0],!0)?ty(i.path,e.path[0]):i.host=e.host),n=Nu;continue;case L6:if(h==Tl||h=="/"||h=="\\"||h=="?"||h=="#"){if(!r&&Ab(a))n=Nu;else if(a==""){if(i.host="",r)return;n=ey}else{if(d=i.parseHost(a),d)return d;if(i.host=="localhost"&&(i.host=""),r)return;a="",n=ey}continue}else a+=h;break;case ey:if(i.isSpecial()){if(n=Nu,h!="/"&&h!="\\")continue}else if(!r&&h=="?")i.query="",n=Jm;else if(!r&&h=="#")i.fragment="",n=rp;else if(h!=Tl&&(n=Nu,h!="/"))continue;break;case Nu:if(h==Tl||h=="/"||h=="\\"&&i.isSpecial()||!r&&(h=="?"||h=="#")){if(Nht(a)?(i.shortenPath(),h!="/"&&!(h=="\\"&&i.isSpecial())&&ty(i.path,"")):Pht(a)?h!="/"&&!(h=="\\"&&i.isSpecial())&&ty(i.path,""):(i.scheme=="file"&&!i.path.length&&Ab(a)&&(i.host&&(i.host=""),a=bl(a,0)+":"),ty(i.path,a)),a="",i.scheme=="file"&&(h==Tl||h=="?"||h=="#"))for(;i.path.length>1&&i.path[0]==="";)yht(i.path);h=="?"?(i.query="",n=Jm):h=="#"&&(i.fragment="",n=rp)}else a+=Zd(h,qle);break;case kle:h=="?"?(i.query="",n=Jm):h=="#"?(i.fragment="",n=rp):h!=Tl&&(i.path[0]+=Zd(h,EM));break;case Jm:!r&&h=="#"?(i.fragment="",n=rp):h!=Tl&&(h=="'"&&i.isSpecial()?i.query+="%27":h=="#"?i.query+="%23":i.query+=Zd(h,EM));break;case rp:h!=Tl&&(i.fragment+=Zd(h,Wle));break}s++}},parseHost:function(t){var r,e,i;if(bl(t,0)=="["){if(bl(t,t.length-1)!="]"||(r=Aht(Ob(t,1,-1)),!r))return Km;this.host=r}else if(this.isSpecial()){if(t=cht(t),xc(wht,t)||(r=Cht(t),r===null))return Km;this.host=r}else{if(xc(Rht,t))return Km;for(r="",e=Qv(t),i=0;i1?arguments[1]:void 0,n=pht(e,new j6(r,!1,i));G6||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},ba=ry.prototype,El=function(t,r){return{get:function(){return xM(this)[t]()},set:r&&function(e){return xM(this)[r](e)},configurable:!0,enumerable:!0}};G6&&(yl(ba,"href",El("serialize","setHref")),yl(ba,"origin",El("getOrigin")),yl(ba,"protocol",El("getProtocol","setProtocol")),yl(ba,"username",El("getUsername","setUsername")),yl(ba,"password",El("getPassword","setPassword")),yl(ba,"host",El("getHost","setHost")),yl(ba,"hostname",El("getHostname","setHostname")),yl(ba,"port",El("getPort","setPort")),yl(ba,"pathname",El("getPathname","setPathname")),yl(ba,"search",El("getSearch","setSearch")),yl(ba,"searchParams",El("getSearchParams")),yl(ba,"hash",El("getHash","setHash")));bM(ba,"toJSON",function(){return xM(this).serialize()},{enumerable:!0});bM(ba,"toString",function(){return xM(this).serialize()},{enumerable:!0});Mb&&(F6=Mb.createObjectURL,H6=Mb.revokeObjectURL,F6&&bM(ry,"createObjectURL",Dle(F6,Mb)),H6&&bM(ry,"revokeObjectURL",Dle(H6,Mb)));var F6,H6;uht(ry,"URL");sht({global:!0,constructor:!0,forced:!aht,sham:!G6},{URL:ry})});var Xle=V(()=>{Yle()});var $le=V(()=>{"use strict";var Lht=Ne(),Fht=ni();Lht({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return Fht(URL.prototype.toString,this)}})});var Zle=V(()=>{_6()});var Jle=V((Szt,Kle)=>{mW();xW();IW();SW();_W();wW();RW();MW();DW();CW();AW();OW();PW();NW();LW();rq();oq();Sq();Mq();Cq();Fq();kq();Vq();Wq();qq();Xq();Zq();Qq();eY();iY();nY();oY();vY();yY();EY();bY();_1();VY();qY();YY();$Y();KY();rX();nX();aX();cX();uX();wX();DX();CX();AX();OX();PX();a$();y$();R$();D$();C$();O$();L$();F$();q$();Y$();J$();rZ();nZ();uZ();dZ();vZ();yZ();W2();TZ();LZ();UZ();GZ();zZ();WZ();qZ();$Z();KZ();eK();rK();nK();aK();oK();lK();cK();pK();mK();gK();vK();MK();DK();OK();NK();LK();FK();HK();UK();jK();JK();iJ();cJ();pJ();vJ();yJ();bJ();IJ();_J();wJ();CJ();AJ();OJ();LJ();FJ();HJ();BJ();kJ();VJ();jJ();qJ();XJ();ZJ();KJ();JJ();QJ();oQ();lQ();cQ();pQ();dQ();mQ();vQ();Dee();Cee();Oee();Fee();Hee();jee();Yee();Xee();Jee();Qee();ete();tte();rte();ite();nte();cte();hte();pte();Mte();Cte();RR();Fte();Ute();Gte();jte();qte();Yte();Kte();nre();ore();cre();CF();xre();Ore();Nre();Lre();Bre();kre();qre();Kre();eie();aie();hie();die();vie();xie();Rie();Aie();Oie();Pie();Nie();Lie();Fie();Hie();Uie();Bie();kie();Gie();Vie();zie();vne();yne();Tne();Ene();bne();xne();Ine();Sne();_ne();Rne();Dne();Ane();Pne();Gne();zne();Wne();Yne();$ne();Kne();Jne();ese();rse();ose();cse();hse();dse();mse();vse();Tse();bse();Rse();Dse();Ase();Hse();kse();Wse();Yse();Jse();mae();vae();wae();Lae();Vae();Xae();loe();moe();voe();Moe();Doe();Aoe();Woe();Joe();Xle();$le();Zle();Kle.exports=pw()});var Qle=V((_zt,q6)=>{var W6=function(t){"use strict";var r=Object.prototype,e=r.hasOwnProperty,i=Object.defineProperty||function(G,U,j){G[U]=j.value},n,s=typeof Symbol=="function"?Symbol:{},a=s.iterator||"@@iterator",o=s.asyncIterator||"@@asyncIterator",l=s.toStringTag||"@@toStringTag";function c(G,U,j){return Object.defineProperty(G,U,{value:j,enumerable:!0,configurable:!0,writable:!0}),G[U]}try{c({},"")}catch(G){c=function(U,j,ee){return U[j]=ee}}function u(G,U,j,ee){var ae=U&&U.prototype instanceof y?U:y,se=Object.create(ae.prototype),ue=new C(ee||[]);return i(se,"_invoke",{value:F(G,j,ue)}),se}t.wrap=u;function h(G,U,j){try{return{type:"normal",arg:G.call(U,j)}}catch(ee){return{type:"throw",arg:ee}}}var p="suspendedStart",d="suspendedYield",f="executing",m="completed",g={};function y(){}function E(){}function b(){}var x={};c(x,a,function(){return this});var S=Object.getPrototypeOf,D=S&&S(S(N([])));D&&D!==r&&e.call(D,a)&&(x=D);var P=b.prototype=y.prototype=Object.create(x);E.prototype=b,i(P,"constructor",{value:b,configurable:!0}),i(b,"constructor",{value:E,configurable:!0}),E.displayName=c(b,l,"GeneratorFunction");function _(G){["next","throw","return"].forEach(function(U){c(G,U,function(j){return this._invoke(U,j)})})}t.isGeneratorFunction=function(G){var U=typeof G=="function"&&G.constructor;return U?U===E||(U.displayName||U.name)==="GeneratorFunction":!1},t.mark=function(G){return Object.setPrototypeOf?Object.setPrototypeOf(G,b):(G.__proto__=b,c(G,l,"GeneratorFunction")),G.prototype=Object.create(P),G},t.awrap=function(G){return{__await:G}};function w(G,U){function j(se,ue,ve,be){var de=h(G[se],G,ue);if(de.type==="throw")be(de.arg);else{var we=de.arg,Fe=we.value;return Fe&&typeof Fe=="object"&&e.call(Fe,"__await")?U.resolve(Fe.__await).then(function(je){j("next",je,ve,be)},function(je){j("throw",je,ve,be)}):U.resolve(Fe).then(function(je){we.value=je,ve(we)},function(je){return j("throw",je,ve,be)})}}var ee;function ae(se,ue){function ve(){return new U(function(be,de){j(se,ue,be,de)})}return ee=ee?ee.then(ve,ve):ve()}i(this,"_invoke",{value:ae})}_(w.prototype),c(w.prototype,o,function(){return this}),t.AsyncIterator=w,t.async=function(G,U,j,ee,ae){ae===void 0&&(ae=Promise);var se=new w(u(G,U,j,ee),ae);return t.isGeneratorFunction(U)?se:se.next().then(function(ue){return ue.done?ue.value:se.next()})};function F(G,U,j){var ee=p;return function(se,ue){if(ee===f)throw new Error("Generator is already running");if(ee===m){if(se==="throw")throw ue;return k()}for(j.method=se,j.arg=ue;;){var ve=j.delegate;if(ve){var be=X(ve,j);if(be){if(be===g)continue;return be}}if(j.method==="next")j.sent=j._sent=j.arg;else if(j.method==="throw"){if(ee===p)throw ee=m,j.arg;j.dispatchException(j.arg)}else j.method==="return"&&j.abrupt("return",j.arg);ee=f;var de=h(G,U,j);if(de.type==="normal"){if(ee=j.done?m:d,de.arg===g)continue;return{value:de.arg,done:j.done}}else de.type==="throw"&&(ee=m,j.method="throw",j.arg=de.arg)}}}function X(G,U){var j=U.method,ee=G.iterator[j];if(ee===n)return U.delegate=null,j==="throw"&&G.iterator.return&&(U.method="return",U.arg=n,X(G,U),U.method==="throw")||j!=="return"&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+j+"' method")),g;var ae=h(ee,G.iterator,U.arg);if(ae.type==="throw")return U.method="throw",U.arg=ae.arg,U.delegate=null,g;var se=ae.arg;if(!se)return U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,g;if(se.done)U[G.resultName]=se.value,U.next=G.nextLoc,U.method!=="return"&&(U.method="next",U.arg=n);else return se;return U.delegate=null,g}_(P),c(P,l,"Generator"),c(P,a,function(){return this}),c(P,"toString",function(){return"[object Generator]"});function H(G){var U={tryLoc:G[0]};1 in G&&(U.catchLoc=G[1]),2 in G&&(U.finallyLoc=G[2],U.afterLoc=G[3]),this.tryEntries.push(U)}function he(G){var U=G.completion||{};U.type="normal",delete U.arg,G.completion=U}function C(G){this.tryEntries=[{tryLoc:"root"}],G.forEach(H,this),this.reset(!0)}t.keys=function(G){var U=Object(G),j=[];for(var ee in U)j.push(ee);return j.reverse(),function ae(){for(;j.length;){var se=j.pop();if(se in U)return ae.value=se,ae.done=!1,ae}return ae.done=!0,ae}};function N(G){if(G){var U=G[a];if(U)return U.call(G);if(typeof G.next=="function")return G;if(!isNaN(G.length)){var j=-1,ee=function ae(){for(;++j=0;--ee){var ae=this.tryEntries[ee],se=ae.completion;if(ae.tryLoc==="root")return j("end");if(ae.tryLoc<=this.prev){var ue=e.call(ae,"catchLoc"),ve=e.call(ae,"finallyLoc");if(ue&&ve){if(this.prev=0;--j){var ee=this.tryEntries[j];if(ee.tryLoc<=this.prev&&e.call(ee,"finallyLoc")&&this.prev=0;--U){var j=this.tryEntries[U];if(j.finallyLoc===G)return this.complete(j.completion,j.afterLoc),he(j),g}},catch:function(G){for(var U=this.tryEntries.length-1;U>=0;--U){var j=this.tryEntries[U];if(j.tryLoc===G){var ee=j.completion;if(ee.type==="throw"){var ae=ee.arg;he(j)}return ae}}throw new Error("illegal catch attempt")},delegateYield:function(G,U,j){return this.delegate={iterator:N(G),resultName:U,nextLoc:j},this.method==="next"&&(this.arg=n),g}},t}(typeof q6=="object"?q6.exports:{});try{regeneratorRuntime=W6}catch(t){typeof globalThis=="object"?globalThis.regeneratorRuntime=W6:Function("r","regeneratorRuntime = r")(W6)}});var Khe=V((Zhe,bC)=>{(function(t,r){"use strict";typeof define=="function"&&define.amd?define(r):typeof bC=="object"&&bC.exports?bC.exports=r():t.log=r()})(Zhe,function(){"use strict";var t=function(){},r="undefined",e=typeof window!==r&&typeof window.navigator!==r&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function n(f,m){var g=f[m];if(typeof g.bind=="function")return g.bind(f);try{return Function.prototype.bind.call(g,f)}catch(y){return function(){return Function.prototype.apply.apply(g,[f,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(f){return f==="debug"&&(f="log"),typeof console===r?!1:f==="trace"&&e?s:console[f]!==void 0?n(console,f):console.log!==void 0?n(console,"log"):t}function o(f,m){for(var g=0;g=0&&_<=y.levels.SILENT){if(E=_,w!==!1&&x(_),o.call(y,_,f),typeof console===r&&_{(function(t,r){typeof pB=="object"&&typeof dB!="undefined"?dB.exports=r():typeof define=="function"&&define.amd?define(r):(t=typeof globalThis!="undefined"?globalThis:t||self,t.polygonClipping=r())})(pB,function(){"use strict";function t(_e,J){if(!(_e instanceof J))throw new TypeError("Cannot call a class as a function")}function r(_e,J){for(var $=0;$J?1:_e0){if(J.right===null)break;if($(_e,J.right.key)>0){var xe=J.right;if(J.right=xe.left,xe.left=J,J=xe,J.right===null)break}me.right=J,me=J,J=J.right}else break}return me.right=J.left,z.left=J.right,J.left=re.right,J.right=re.left,J}function a(_e,J,$,re){var me=new i(_e,J);if($===null)return me.left=me.right=null,me;$=s(_e,$,re);var z=re(_e,$.key);return z<0?(me.left=$.left,me.right=$,$.left=null):z>=0&&(me.right=$.right,me.left=$,$.right=null),me}function o(_e,J,$){var re=null,me=null;if(J){J=s(_e,J,$);var z=$(J.key,_e);z===0?(re=J.left,me=J.right):z<0?(me=J.right,J.right=null,re=J):(re=J.left,J.left=null,me=J)}return{left:re,right:me}}function l(_e,J,$){return J===null?_e:(_e===null||(J=s(_e.key,J,$),J.left=_e),J)}function c(_e,J,$,re,me){if(_e){re(""+J+($?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ")+me(_e)+` +`);var z=J+($?" ":"\u2502 ");_e.left&&c(_e.left,z,!1,re,me),_e.right&&c(_e.right,z,!0,re,me)}}var u=function(){function _e(J){J===void 0&&(J=n),this._root=null,this._size=0,this._comparator=J}return _e.prototype.insert=function(J,$){return this._size++,this._root=a(J,$,this._root,this._comparator)},_e.prototype.add=function(J,$){var re=new i(J,$);this._root===null&&(re.left=re.right=null,this._size++,this._root=re);var me=this._comparator,z=s(J,this._root,me),Y=me(J,z.key);return Y===0?this._root=z:(Y<0?(re.left=z.left,re.right=z,z.left=null):Y>0&&(re.right=z.right,re.left=z,z.right=null),this._size++,this._root=re),this._root},_e.prototype.remove=function(J){this._root=this._remove(J,this._root,this._comparator)},_e.prototype._remove=function(J,$,re){var me;if($===null)return null;$=s(J,$,re);var z=re(J,$.key);return z===0?($.left===null?me=$.right:(me=s(J,$.left,re),me.right=$.right),this._size--,me):$},_e.prototype.pop=function(){var J=this._root;if(J){for(;J.left;)J=J.left;return this._root=s(J.key,this._root,this._comparator),this._root=this._remove(J.key,this._root,this._comparator),{key:J.key,data:J.data}}return null},_e.prototype.findStatic=function(J){for(var $=this._root,re=this._comparator;$;){var me=re(J,$.key);if(me===0)return $;me<0?$=$.left:$=$.right}return null},_e.prototype.find=function(J){return this._root&&(this._root=s(J,this._root,this._comparator),this._comparator(J,this._root.key)!==0)?null:this._root},_e.prototype.contains=function(J){for(var $=this._root,re=this._comparator;$;){var me=re(J,$.key);if(me===0)return!0;me<0?$=$.left:$=$.right}return!1},_e.prototype.forEach=function(J,$){for(var re=this._root,me=[],z=!1;!z;)re!==null?(me.push(re),re=re.left):me.length!==0?(re=me.pop(),J.call($,re),re=re.right):z=!0;return this},_e.prototype.range=function(J,$,re,me){for(var z=[],Y=this._comparator,xe=this._root,Ce;z.length!==0||xe;)if(xe)z.push(xe),xe=xe.left;else{if(xe=z.pop(),Ce=Y(xe.key,$),Ce>0)break;if(Y(xe.key,J)>=0&&re.call(me,xe))return this;xe=xe.right}return this},_e.prototype.keys=function(){var J=[];return this.forEach(function($){var re=$.key;return J.push(re)}),J},_e.prototype.values=function(){var J=[];return this.forEach(function($){var re=$.data;return J.push(re)}),J},_e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},_e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},_e.prototype.minNode=function(J){if(J===void 0&&(J=this._root),J)for(;J.left;)J=J.left;return J},_e.prototype.maxNode=function(J){if(J===void 0&&(J=this._root),J)for(;J.right;)J=J.right;return J},_e.prototype.at=function(J){for(var $=this._root,re=!1,me=0,z=[];!re;)if($)z.push($),$=$.left;else if(z.length>0){if($=z.pop(),me===J)return $;me++,$=$.right}else re=!0;return null},_e.prototype.next=function(J){var $=this._root,re=null;if(J.right){for(re=J.right;re.left;)re=re.left;return re}for(var me=this._comparator;$;){var z=me(J.key,$.key);if(z===0)break;z<0?(re=$,$=$.left):$=$.right}return re},_e.prototype.prev=function(J){var $=this._root,re=null;if(J.left!==null){for(re=J.left;re.right;)re=re.right;return re}for(var me=this._comparator;$;){var z=me(J.key,$.key);if(z===0)break;z<0?$=$.left:(re=$,$=$.right)}return re},_e.prototype.clear=function(){return this._root=null,this._size=0,this},_e.prototype.toList=function(){return d(this._root)},_e.prototype.load=function(J,$,re){$===void 0&&($=[]),re===void 0&&(re=!1);var me=J.length,z=this._comparator;if(re&&g(J,$,0,me-1,z),this._root===null)this._root=h(J,$,0,me),this._size=me;else{var Y=m(this.toList(),p(J,$),z);me=this._size+me,this._root=f({head:Y},0,me)}return this},_e.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(_e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(_e.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),_e.prototype.toString=function(J){J===void 0&&(J=function(me){return String(me.key)});var $=[];return c(this._root,"",!0,function(re){return $.push(re)},J),$.join("")},_e.prototype.update=function(J,$,re){var me=this._comparator,z=o(J,this._root,me),Y=z.left,xe=z.right;me(J,$)<0?xe=a($,re,xe,me):Y=a($,re,Y,me),this._root=l(Y,xe,me)},_e.prototype.split=function(J){return o(J,this._root,this._comparator)},_e}();function h(_e,J,$,re){var me=re-$;if(me>0){var z=$+Math.floor(me/2),Y=_e[z],xe=J[z],Ce=new i(Y,xe);return Ce.left=h(_e,J,$,z),Ce.right=h(_e,J,z+1,re),Ce}return null}function p(_e,J){for(var $=new i(null,null),re=$,me=0;me<_e.length;me++)re=re.next=new i(_e[me],J[me]);return re.next=null,$.next}function d(_e){for(var J=_e,$=[],re=!1,me=new i(null,null),z=me;!re;)J?($.push(J),J=J.left):$.length>0?(J=z=z.next=$.pop(),J=J.right):re=!0;return z.next=null,me.next}function f(_e,J,$){var re=$-J;if(re>0){var me=J+Math.floor(re/2),z=f(_e,J,me),Y=_e.head;return Y.left=z,_e.head=_e.head.next,Y.right=f(_e,me+1,$),Y}return null}function m(_e,J,$){for(var re=new i(null,null),me=re,z=_e,Y=J;z!==null&&Y!==null;)$(z.key,Y.key)<0?(me.next=z,z=z.next):(me.next=Y,Y=Y.next),me=me.next;return z!==null?me.next=z:Y!==null&&(me.next=Y),re.next}function g(_e,J,$,re,me){if(!($>=re)){for(var z=_e[$+re>>1],Y=$-1,xe=re+1;;){do Y++;while(me(_e[Y],z)<0);do xe--;while(me(_e[xe],z)>0);if(Y>=xe)break;var Ce=_e[Y];_e[Y]=_e[xe],_e[xe]=Ce,Ce=J[Y],J[Y]=J[xe],J[xe]=Ce}g(_e,J,$,xe,me),g(_e,J,xe+1,re,me)}}var y=function(J,$){return J.ll.x<=$.x&&$.x<=J.ur.x&&J.ll.y<=$.y&&$.y<=J.ur.y},E=function(J,$){if($.ur.xre.x?1:$.yre.y?1:0}}]);function _e(J,$){t(this,_e),J.events===void 0?J.events=[this]:J.events.push(this),this.point=J,this.isLeft=$}return e(_e,[{key:"link",value:function($){if($.point===this.point)throw new Error("Tried to link already linked events");for(var re=$.point.events,me=0,z=re.length;me=0&&ye>=0?ZeRe?-1:0:Ge<0&&ye<0?ZeRe?1:0:yeGe?1:0}}}]),_e}(),j=0,ee=function(){e(_e,null,[{key:"compare",value:function($,re){var me=$.leftSE.point.x,z=re.leftSE.point.x,Y=$.rightSE.point.x,xe=re.rightSE.point.x;if(xeCe&&Ge>Ze)return-1;var ye=$.comparePoint(re.leftSE.point);if(ye<0)return 1;if(ye>0)return-1;var Re=re.comparePoint($.rightSE.point);return Re!==0?Re:-1}if(me>z){if(CeGe&&Ce>gt)return 1;var ut=re.comparePoint($.leftSE.point);if(ut!==0)return ut;var vt=$.comparePoint(re.rightSE.point);return vt<0?1:vt>0?-1:1}if(CeGe)return 1;if(Yxe){var Ct=$.comparePoint(re.rightSE.point);if(Ct<0)return 1;if(Ct>0)return-1}if(Y!==xe){var Dt=Ze-Ce,cr=Y-me,Xt=gt-Ge,gr=xe-z;if(Dt>cr&&Xtgr)return-1}return Y>xe?1:Ygt?1:$.idre.id?1:0}}]);function _e(J,$,re,me){t(this,_e),this.id=++j,this.leftSE=J,J.segment=this,J.otherSE=$,this.rightSE=$,$.segment=this,$.otherSE=J,this.rings=re,this.windings=me}return e(_e,[{key:"replaceRightSE",value:function($){this.rightSE=$,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var $=this.leftSE.point.y,re=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:$re?$:re}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function($){return $.x===this.leftSE.point.x&&$.y===this.leftSE.point.y||$.x===this.rightSE.point.x&&$.y===this.rightSE.point.y}},{key:"comparePoint",value:function($){if(this.isAnEndpoint($))return 0;var re=this.leftSE.point,me=this.rightSE.point,z=this.vector();if(re.x===me.x)return $.x===re.x?0:$.x0&&Ce.swapEvents(),U.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),me&&(z.checkForConsuming(),Y.checkForConsuming()),re}},{key:"swapEvents",value:function(){var $=this.rightSE;this.rightSE=this.leftSE,this.leftSE=$,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var re=0,me=this.windings.length;re0){var Y=re;re=me,me=Y}if(re.prev===me){var xe=re;re=me,me=xe}for(var Ce=0,Ge=me.rings.length;Ce0)z=re,Y=$,xe=-1;else throw new Error("Tried to create degenerate segment at [".concat($.x,", ").concat($.y,"]"));var Ge=new U(z,!0),Ze=new U(Y,!1);return new _e(Ge,Ze,[me],[xe])}}]),_e}(),ae=function(){function _e(J,$,re){if(t(this,_e),!Array.isArray(J)||J.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=$,this.isExterior=re,this.segments=[],typeof J[0][0]!="number"||typeof J[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var me=_.round(J[0][0],J[0][1]);this.bbox={ll:{x:me.x,y:me.y},ur:{x:me.x,y:me.y}};for(var z=me,Y=1,xe=J.length;Ythis.bbox.ur.x&&(this.bbox.ur.x=Ce.x),Ce.y>this.bbox.ur.y&&(this.bbox.ur.y=Ce.y),z=Ce)}(me.x!==z.x||me.y!==z.y)&&this.segments.push(ee.fromRing(z,me,this))}return e(_e,[{key:"getSweepEvents",value:function(){for(var $=[],re=0,me=this.segments.length;rethis.bbox.ur.x&&(this.bbox.ur.x=z.bbox.ur.x),z.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=z.bbox.ur.y),this.interiorRings.push(z)}this.multiPoly=$}return e(_e,[{key:"getSweepEvents",value:function(){for(var $=this.exteriorRing.getSweepEvents(),re=0,me=this.interiorRings.length;rethis.bbox.ur.x&&(this.bbox.ur.x=z.bbox.ur.x),z.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=z.bbox.ur.y),this.polys.push(z)}this.isSubject=$}return e(_e,[{key:"getSweepEvents",value:function(){for(var $=[],re=0,me=this.polys.length;re0&&($=z)}for(var Y=$.segment.prevInResult(),xe=Y?Y.prevInResult():null;;){if(!Y)return null;if(!xe)return Y.ringOut;if(xe.ringOut!==Y.ringOut)return xe.ringOut.enclosingRing()!==Y.ringOut?Y.ringOut:Y.ringOut.enclosingRing();Y=xe.prevInResult(),xe=Y?Y.prevInResult():null}}}]),_e}(),be=function(){function _e(J){t(this,_e),this.exteriorRing=J,J.poly=this,this.interiorRings=[]}return e(_e,[{key:"addInterior",value:function($){this.interiorRings.push($),$.poly=this}},{key:"getGeom",value:function(){var $=[this.exteriorRing.getGeom()];if($[0]===null)return null;for(var re=0,me=this.interiorRings.length;re1&&arguments[1]!==void 0?arguments[1]:ee.compare;t(this,_e),this.queue=J,this.tree=new u($),this.segments=[]}return e(_e,[{key:"process",value:function($){var re=$.segment,me=[];if($.consumedBy)return $.isLeft?this.queue.remove($.otherSE):this.tree.remove(re),me;var z=$.isLeft?this.tree.insert(re):this.tree.find(re);if(!z)throw new Error("Unable to find segment #".concat(re.id," ")+"[".concat(re.leftSE.point.x,", ").concat(re.leftSE.point.y,"] -> ")+"[".concat(re.rightSE.point.x,", ").concat(re.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var Y=z,xe=z,Ce=void 0,Ge=void 0;Ce===void 0;)Y=this.tree.prev(Y),Y===null?Ce=null:Y.key.consumedBy===void 0&&(Ce=Y.key);for(;Ge===void 0;)xe=this.tree.next(xe),xe===null?Ge=null:xe.key.consumedBy===void 0&&(Ge=xe.key);if($.isLeft){var Ze=null;if(Ce){var gt=Ce.getIntersection(re);if(gt!==null&&(re.isAnEndpoint(gt)||(Ze=gt),!Ce.isAnEndpoint(gt)))for(var ye=this._splitSafely(Ce,gt),Re=0,ut=ye.length;Re0?(this.tree.remove(re),me.push($)):(this.segments.push(re),re.prev=Ce)}else{if(Ce&&Ge){var _t=Ce.getIntersection(Ge);if(_t!==null){if(!Ce.isAnEndpoint(_t))for(var Vt=this._splitSafely(Ce,_t),Rr=0,Ki=Vt.length;RrFe)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var gr=new we(vt),Ae=vt.size,Xe=vt.pop();Xe;){var lt=Xe.key;if(vt.size===Ae){var _t=lt.segment;throw new Error("Unable to pop() ".concat(lt.isLeft?"left":"right"," SweepEvent ")+"[".concat(lt.point.x,", ").concat(lt.point.y,"] from segment #").concat(_t.id," ")+"[".concat(_t.leftSE.point.x,", ").concat(_t.leftSE.point.y,"] -> ")+"[".concat(_t.rightSE.point.x,", ").concat(_t.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(vt.size>Fe)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(gr.segments.length>je)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var Vt=gr.process(lt),Rr=0,Ki=Vt.length;Rr1?$-1:0),me=1;me<$;me++)re[me-1]=arguments[me];return dt.run("union",J,re)},ke=function(J){for(var $=arguments.length,re=new Array($>1?$-1:0),me=1;me<$;me++)re[me-1]=arguments[me];return dt.run("intersection",J,re)},nt=function(J){for(var $=arguments.length,re=new Array($>1?$-1:0),me=1;me<$;me++)re[me-1]=arguments[me];return dt.run("xor",J,re)},bt=function(J){for(var $=arguments.length,re=new Array($>1?$-1:0),me=1;me<$;me++)re[me-1]=arguments[me];return dt.run("difference",J,re)},mt={union:Be,intersection:ke,xor:nt,difference:bt};return mt})});var AC=V((Oqt,bpe)=>{"use strict";bpe.exports=jvt;var Epe=+(Math.pow(2,27)+1);function jvt(t,r,e){var i=t*r,n=Epe*t,s=n-t,a=n-s,o=t-a,l=Epe*r,c=l-r,u=l-c,h=r-u,p=i-a*u,d=p-o*u,f=d-a*h,m=o*h-f;return e?(e[0]=m,e[1]=i,e):[m,i]}});var xB=V((Pqt,xpe)=>{"use strict";xpe.exports=qvt;function Wvt(t,r){var e=t+r,i=e-t,n=e-i,s=r-i,a=t-n,o=a+s;return o?[o,e]:[e]}function qvt(t,r){var e=t.length|0,i=r.length|0;if(e===1&&i===1)return Wvt(t[0],r[0]);var n=e+i,s=new Array(n),a=0,o=0,l=0,c=Math.abs,u=t[o],h=c(u),p=r[l],d=c(p),f,m;h=i?(f=u,o+=1,o{"use strict";Ipe.exports=Yvt;function Yvt(t,r,e){var i=t+r,n=i-t,s=i-n,a=r-n,o=t-s;return e?(e[0]=o+a,e[1]=i,e):[o+a,i]}});var SB=V((Lqt,_pe)=>{"use strict";var IB=AC(),Xvt=Spe();_pe.exports=$vt;function $vt(t,r){var e=t.length;if(e===1){var i=IB(t[0],r);return i[0]?i:[i[1]]}var n=new Array(2*e),s=[.1,.1],a=[.1,.1],o=0;IB(t[0],r,s),s[0]&&(n[o++]=s[0]);for(var l=1;l{"use strict";wpe.exports=Zvt;function Zvt(t){for(var r=t.length,e=t[t.length-1],i=r,n=r-2;n>=0;--n){var s=e,a=t[n];e=s+a;var o=e-s,l=a-o;l&&(t[--i]=e,e=l)}for(var c=0,n=i;n{"use strict";Mpe.exports=Jvt;function Kvt(t,r){var e=t+r,i=e-t,n=e-i,s=r-i,a=t-n,o=a+s;return o?[o,e]:[e]}function Jvt(t,r){var e=t.length|0,i=r.length|0;if(e===1&&i===1)return Kvt(t[0],-r[0]);var n=e+i,s=new Array(n),a=0,o=0,l=0,c=Math.abs,u=t[o],h=c(u),p=-r[l],d=c(p),f,m;h=i?(f=u,o+=1,o{"use strict";var Qvt=AC(),eyt=xB(),tyt=SB(),ryt=Dpe(),Cpe=5,OC=11102230246251565e-32,iyt=(3+16*OC)*OC,nyt=(7+56*OC)*OC;function syt(t,r,e,i){return function(s,a,o){var l=t(t(r(a[1],o[0]),r(-o[1],a[0])),t(r(s[1],a[0]),r(-a[1],s[0]))),c=t(r(s[1],o[0]),r(-o[1],s[0])),u=i(l,c);return u[u.length-1]}}function ayt(t,r,e,i){return function(s,a,o,l){var c=t(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),a[2]),t(e(t(r(a[1],l[0]),r(-l[1],a[0])),-o[2]),e(t(r(a[1],o[0]),r(-o[1],a[0])),l[2]))),t(e(t(r(a[1],l[0]),r(-l[1],a[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),l[2])))),u=t(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-o[2]),e(t(r(s[1],o[0]),r(-o[1],s[0])),l[2]))),t(e(t(r(a[1],o[0]),r(-o[1],a[0])),s[2]),t(e(t(r(s[1],o[0]),r(-o[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),o[2])))),h=i(c,u);return h[h.length-1]}}function oyt(t,r,e,i){return function(s,a,o,l,c){var u=t(t(t(e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),o[2]),t(e(t(r(o[1],c[0]),r(-c[1],o[0])),-l[2]),e(t(r(o[1],l[0]),r(-l[1],o[0])),c[2]))),a[3]),t(e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),a[2]),t(e(t(r(a[1],c[0]),r(-c[1],a[0])),-l[2]),e(t(r(a[1],l[0]),r(-l[1],a[0])),c[2]))),-o[3]),e(t(e(t(r(o[1],c[0]),r(-c[1],o[0])),a[2]),t(e(t(r(a[1],c[0]),r(-c[1],a[0])),-o[2]),e(t(r(a[1],o[0]),r(-o[1],a[0])),c[2]))),l[3]))),t(e(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),a[2]),t(e(t(r(a[1],l[0]),r(-l[1],a[0])),-o[2]),e(t(r(a[1],o[0]),r(-o[1],a[0])),l[2]))),-c[3]),t(e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),a[2]),t(e(t(r(a[1],c[0]),r(-c[1],a[0])),-l[2]),e(t(r(a[1],l[0]),r(-l[1],a[0])),c[2]))),s[3]),e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-l[2]),e(t(r(s[1],l[0]),r(-l[1],s[0])),c[2]))),-a[3])))),t(t(e(t(e(t(r(a[1],c[0]),r(-c[1],a[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),c[2]))),l[3]),t(e(t(e(t(r(a[1],l[0]),r(-l[1],a[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),l[2]))),-c[3]),e(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),a[2]),t(e(t(r(a[1],l[0]),r(-l[1],a[0])),-o[2]),e(t(r(a[1],o[0]),r(-o[1],a[0])),l[2]))),s[3]))),t(e(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-o[2]),e(t(r(s[1],o[0]),r(-o[1],s[0])),l[2]))),-a[3]),t(e(t(e(t(r(a[1],l[0]),r(-l[1],a[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),l[2]))),o[3]),e(t(e(t(r(a[1],o[0]),r(-o[1],a[0])),s[2]),t(e(t(r(s[1],o[0]),r(-o[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),o[2]))),-l[3]))))),h=t(t(t(e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),o[2]),t(e(t(r(o[1],c[0]),r(-c[1],o[0])),-l[2]),e(t(r(o[1],l[0]),r(-l[1],o[0])),c[2]))),s[3]),e(t(e(t(r(l[1],c[0]),r(-c[1],l[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-l[2]),e(t(r(s[1],l[0]),r(-l[1],s[0])),c[2]))),-o[3])),t(e(t(e(t(r(o[1],c[0]),r(-c[1],o[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-o[2]),e(t(r(s[1],o[0]),r(-o[1],s[0])),c[2]))),l[3]),e(t(e(t(r(o[1],l[0]),r(-l[1],o[0])),s[2]),t(e(t(r(s[1],l[0]),r(-l[1],s[0])),-o[2]),e(t(r(s[1],o[0]),r(-o[1],s[0])),l[2]))),-c[3]))),t(t(e(t(e(t(r(o[1],c[0]),r(-c[1],o[0])),a[2]),t(e(t(r(a[1],c[0]),r(-c[1],a[0])),-o[2]),e(t(r(a[1],o[0]),r(-o[1],a[0])),c[2]))),s[3]),e(t(e(t(r(o[1],c[0]),r(-c[1],o[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-o[2]),e(t(r(s[1],o[0]),r(-o[1],s[0])),c[2]))),-a[3])),t(e(t(e(t(r(a[1],c[0]),r(-c[1],a[0])),s[2]),t(e(t(r(s[1],c[0]),r(-c[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),c[2]))),o[3]),e(t(e(t(r(a[1],o[0]),r(-o[1],a[0])),s[2]),t(e(t(r(s[1],o[0]),r(-o[1],s[0])),-a[2]),e(t(r(s[1],a[0]),r(-a[1],s[0])),o[2]))),-c[3])))),p=i(u,h);return p[p.length-1]}}function PC(t){var r=t===3?syt:t===4?ayt:oyt;return r(eyt,Qvt,tyt,ryt)}var lyt=PC(3),cyt=PC(4),Wg=[function(){return 0},function(){return 0},function(r,e){return e[0]-r[0]},function(r,e,i){var n=(r[1]-i[1])*(e[0]-i[0]),s=(r[0]-i[0])*(e[1]-i[1]),a=n-s,o;if(n>0){if(s<=0)return a;o=n+s}else if(n<0){if(s>=0)return a;o=-(n+s)}else return a;var l=iyt*o;return a>=l||a<=-l?a:lyt(r,e,i)},function(r,e,i,n){var s=r[0]-n[0],a=e[0]-n[0],o=i[0]-n[0],l=r[1]-n[1],c=e[1]-n[1],u=i[1]-n[1],h=r[2]-n[2],p=e[2]-n[2],d=i[2]-n[2],f=a*u,m=o*c,g=o*l,y=s*u,E=s*c,b=a*l,x=h*(f-m)+p*(g-y)+d*(E-b),S=(Math.abs(f)+Math.abs(m))*Math.abs(h)+(Math.abs(g)+Math.abs(y))*Math.abs(p)+(Math.abs(E)+Math.abs(b))*Math.abs(d),D=nyt*S;return x>D||-x>D?x:cyt(r,e,i,n)}];function uyt(t){var r=Wg[t.length];return r||(r=Wg[t.length]=PC(t.length)),r.apply(void 0,t)}function hyt(t,r,e,i,n,s,a){return function(l,c,u,h,p){switch(arguments.length){case 0:case 1:return 0;case 2:return i(l,c);case 3:return n(l,c,u);case 4:return s(l,c,u,h);case 5:return a(l,c,u,h,p)}for(var d=new Array(arguments.length),f=0;f{"use strict";Ope.exports=fyt;var NC=Ape()[3];function dyt(t,r,e,i){for(var n=0;n<2;++n){var s=t[n],a=r[n],o=Math.min(s,a),l=Math.max(s,a),c=e[n],u=i[n],h=Math.min(c,u),p=Math.max(c,u);if(p0&&s>0||n<0&&s<0)return!1;var a=NC(e,t,r),o=NC(i,t,r);return a>0&&o>0||a<0&&o<0?!1:n===0&&s===0&&a===0&&o===0?dyt(t,r,e,i):!0}});var Lpe=V((kqt,Npe)=>{"use strict";Npe.exports=gyt;var LC=AC(),Yo=xB(),Hl=SB(),wB=Rpe(),myt=Ppe();function gyt(t,r,e,i){if(!myt(t,r,e,i))return[[0],[0],[0]];var n=Yo([e[1]],[-i[1]]),s=Yo([-e[0]],[i[0]]),a=Yo(Yo(Hl(s,t[1]),Hl(s,-r[1])),Yo(Hl(n,t[0]),Hl(n,-r[0]))),o=Yo(LC(-t[0],r[1]),LC(t[1],r[0])),l=Yo(LC(-e[0],i[1]),LC(e[1],i[0])),c=Yo(Yo(Hl(l,t[0]),Hl(l,-r[0])),Yo(Hl(o,-e[0]),Hl(o,i[0]))),u=Yo(Yo(Hl(l,t[1]),Hl(l,-r[1])),Yo(Hl(o,-e[1]),Hl(o,i[1])));return[wB(c),wB(u),wB(a)]}});var Hpe=V((Gqt,Fpe)=>{Fpe.exports=vyt;function vyt(t){var r=0,e=t.length;switch(e){case 1:r=t[0];break;case 2:r=t[0]+t[1];break;case 3:r=t[0]+t[1]+t[2];break;case 4:r=t[0]+t[1]+t[2]+t[3];break;default:for(var i=0;i{var yyt=Lpe(),RB=Hpe();Upe.exports=Tyt;function Rf(t,r){return t[0]===r[0]&&t[1]===r[1]}var Lx=[0,0],Fx=[0,0],Hx=[0,0],Ux=[0,0];function FC(t,r){Array.isArray(t)?(r[0]=t[0],r[1]=t[1]):(r[0]=t.x,r[1]=t.y)}function Tyt(t,r){for(var e={},i=t.length,n=[],s=0;s{(function(){"use strict";function t(a,o){var l=a.x-o.x,c=a.y-o.y;return l*l+c*c}function r(a,o,l){var c=o.x,u=o.y,h=l.x-c,p=l.y-u;if(h!==0||p!==0){var d=((a.x-c)*h+(a.y-u)*p)/(h*h+p*p);d>1?(c=l.x,u=l.y):d>0&&(c+=h*d,u+=p*d)}return h=a.x-c,p=a.y-u,h*h+p*p}function e(a,o){for(var l=a[0],c=[l],u,h=1,p=a.length;ho&&(c.push(u),l=u);return l!==u&&c.push(u),c}function i(a,o,l,c,u){for(var h=c,p,d=o+1;dh&&(p=d,h=f)}h>c&&(p-o>1&&i(a,o,p,c,u),u.push(a[p]),l-p>1&&i(a,p,l,c,u))}function n(a,o){var l=a.length-1,c=[a[0]];return i(a,0,l,o,c),c.push(a[l]),c}function s(a,o,l){if(a.length<=2)return a;var c=o!==void 0?o*o:1;return a=l?a:e(a,c),a=n(a,c),a}typeof define=="function"&&define.amd?define(function(){return s}):typeof kC!="undefined"?(kC.exports=s,kC.exports.default=s):typeof self!="undefined"?self.simplify=s:window.simplify=s})()});var ede=V((jB,WB)=>{(function(t,r){typeof jB=="object"&&typeof WB!="undefined"?WB.exports=r():typeof define=="function"&&define.amd?define(r):(t=t||self,t.JSBI=r())})(jB,function(){"use strict";var t=Math.imul,r=Math.clz32;function e(_){return e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(w){return typeof w}:function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},e(_)}function i(_,w){if(!(_ instanceof w))throw new TypeError("Cannot call a class as a function")}function n(_,w){for(var F,X=0;X_.length)&&(w=_.length);for(var F=0,X=Array(w);F=_.length?{done:!0}:{done:!1,value:_[X++]}},e:function(k){throw k},f:H}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var he,C=!0,N=!1;return{s:function(){F=F.call(_)},n:function(){var k=F.next();return C=k.done,k},e:function(k){N=!0,he=k},f:function(){try{C||F.return==null||F.return()}finally{if(N)throw he}}}}var P=function(_){var w=Math.abs,F=Math.max,X=Math.floor;function H(C,N){var k;if(i(this,H),k=he.call(this,C),k.sign=N,Object.setPrototypeOf(d(k),H.prototype),C>H.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded");return k}a(H,_);var he=m(H);return s(H,[{key:"toDebugString",value:function(){var C,N=["BigInt["],k=D(this);try{for(k.s();!(C=k.n()).done;){var G=C.value;N.push((G&&(G>>>0).toString(16))+", ")}}catch(U){k.e(U)}finally{k.f()}return N.push("]"),N.join("")}},{key:"toString",value:function(){var C=0C||36this.length&&(k=this.length);for(var G=32767&C,U=C>>>15,j=0,ee=N,ae=0;ae>>15,be=H.__imul(ue,G),de=H.__imul(ue,U),we=H.__imul(ve,G),Fe=H.__imul(ve,U),je=ee+be+j;j=je>>>30,je&=1073741823,je+=((32767&de)<<15)+((32767&we)<<15),j+=je>>>30,ee=Fe+(de>>>15)+(we>>>15),this.__setDigit(ae,1073741823&je)}if(j!==0||ee!==0)throw new Error("implementation bug")}},{key:"__inplaceAdd",value:function(C,N,k){for(var G,U=0,j=0;j>>15,this.__setHalfDigit(N+j,32767&G);return U}},{key:"__inplaceSub",value:function(C,N,k){var G=0;if(1&N){N>>=1;for(var U=this.__digit(N),j=32767&U,ee=0;ee>>1;ee++){var ae=C.__digit(ee),se=(U>>>15)-(32767&ae)-G;G=1&se>>>15,this.__setDigit(N+ee,(32767&se)<<15|32767&j),U=this.__digit(N+ee+1),j=(32767&U)-(ae>>>15)-G,G=1&j>>>15}var ue=C.__digit(ee),ve=(U>>>15)-(32767&ue)-G;if(G=1&ve>>>15,this.__setDigit(N+ee,(32767&ve)<<15|32767&j),N+ee+1>=this.length)throw new RangeError("out of bounds");!(1&k)&&(U=this.__digit(N+ee+1),j=(32767&U)-(ue>>>15)-G,G=1&j>>>15,this.__setDigit(N+C.length,1073709056&U|32767&j))}else{N>>=1;for(var be=0;be>>15;var je=(de>>>15)-(we>>>15)-G;G=1&je>>>15,this.__setDigit(N+be,(32767&je)<<15|32767&Fe)}var Oe=this.__digit(N+be),dt=C.__digit(be),Be=(32767&Oe)-(32767&dt)-G;G=1&Be>>>15;var ke=0;!(1&k)&&(ke=(Oe>>>15)-(dt>>>15)-G,G=1&ke>>>15),this.__setDigit(N+be,(32767&ke)<<15|32767&Be)}return G}},{key:"__inplaceRightShift",value:function(C){if(C!==0){for(var N,k=this.__digit(0)>>>C,G=this.length-1,U=0;U>>C;this.__setDigit(G,k)}}},{key:"__digit",value:function(C){return this[C]}},{key:"__unsignedDigit",value:function(C){return this[C]>>>0}},{key:"__setDigit",value:function(C,N){this[C]=0|N}},{key:"__setDigitGrow",value:function(C,N){this[C]=0|N}},{key:"__halfDigitLength",value:function(){var C=this.length;return 32767>=this.__unsignedDigit(C-1)?2*C-1:2*C}},{key:"__halfDigit",value:function(C){return 32767&this[C>>>1]>>>15*(1&C)}},{key:"__setHalfDigit",value:function(C,N){var k=C>>>1,G=this.__digit(k),U=1&C?32767&G|N<<15:1073709056&G|32767&N;this.__setDigit(k,U)}}],[{key:"BigInt",value:function(C){var N=Number.isFinite;if(typeof C=="number"){if(C===0)return H.__zero();if(H.__isOneDigitInt(C))return 0>C?H.__oneDigit(-C,!0):H.__oneDigit(C,!1);if(!N(C)||X(C)!==C)throw new RangeError("The number "+C+" cannot be converted to BigInt because it is not an integer");return H.__fromDouble(C)}if(typeof C=="string"){var k=H.__fromString(C);if(k===null)throw new SyntaxError("Cannot convert "+C+" to a BigInt");return k}if(typeof C=="boolean")return C===!0?H.__oneDigit(1,!1):H.__zero();if(e(C)==="object"){if(C.constructor===H)return C;var G=H.__toPrimitive(C);return H.BigInt(G)}throw new TypeError("Cannot convert "+C+" to a BigInt")}},{key:"toNumber",value:function(C){var N=C.length;if(N===0)return 0;if(N===1){var k=C.__unsignedDigit(0);return C.sign?-k:k}var G=C.__digit(N-1),U=H.__clz30(G),j=30*N-U;if(1024>>=12;var be=ue-12,de=12<=ue?0:ae<<20+ue,we=20+ue;for(0>>30-be,de=ae<>>30-we,we-=30;var Fe=H.__decideRounding(C,we,se,ae);if((Fe===1||Fe===0&&(1&de)==1)&&(de=de+1>>>0,de===0&&(ve++,ve>>>20!=0&&(ve=0,ee++,1023=H.__kMaxLengthBits)throw new RangeError("BigInt too big");if(C.length===1&&C.__digit(0)===2){var G=1+(0|k/30),U=C.sign&&(1&k)!=0,j=new H(G,U);j.__initializeDigits();var ee=1<>=1;k!==0;k>>=1)se=H.multiply(se,se),1&k&&(ae===null?ae=se:ae=H.multiply(ae,se));return ae}},{key:"multiply",value:function(C,N){if(C.length===0)return C;if(N.length===0)return N;var k=C.length+N.length;30<=C.__clzmsd()+N.__clzmsd()&&k--;var G=new H(k,C.sign!==N.sign);G.__initializeDigits();for(var U=0;UH.__absoluteCompare(C,N))return H.__zero();var k,G=C.sign!==N.sign,U=N.__unsignedDigit(0);if(N.length===1&&32767>=U){if(U===1)return G===C.sign?C:H.unaryMinus(C);k=H.__absoluteDivSmall(C,U,null)}else k=H.__absoluteDivLarge(C,N,!0,!1);return k.sign=G,k.__trim()}},{key:"remainder",value:function(N,k){if(k.length===0)throw new RangeError("Division by zero");if(0>H.__absoluteCompare(N,k))return N;var G=k.__unsignedDigit(0);if(k.length===1&&32767>=G){if(G===1)return H.__zero();var U=H.__absoluteModSmall(N,G);return U===0?H.__zero():H.__oneDigit(U,N.sign)}var j=H.__absoluteDivLarge(N,k,!1,!0);return j.sign=N.sign,j.__trim()}},{key:"add",value:function(C,N){var k=C.sign;return k===N.sign?H.__absoluteAdd(C,N,k):0<=H.__absoluteCompare(C,N)?H.__absoluteSub(C,N,k):H.__absoluteSub(N,C,!k)}},{key:"subtract",value:function(C,N){var k=C.sign;return k===N.sign?0<=H.__absoluteCompare(C,N)?H.__absoluteSub(C,N,k):H.__absoluteSub(N,C,!k):H.__absoluteAdd(C,N,k)}},{key:"leftShift",value:function(C,N){return N.length===0||C.length===0?C:N.sign?H.__rightShiftByAbsolute(C,N):H.__leftShiftByAbsolute(C,N)}},{key:"signedRightShift",value:function(C,N){return N.length===0||C.length===0?C:N.sign?H.__leftShiftByAbsolute(C,N):H.__rightShiftByAbsolute(C,N)}},{key:"unsignedRightShift",value:function(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}},{key:"lessThan",value:function(C,N){return 0>H.__compareToBigInt(C,N)}},{key:"lessThanOrEqual",value:function(C,N){return 0>=H.__compareToBigInt(C,N)}},{key:"greaterThan",value:function(C,N){return 0C)throw new RangeError("Invalid value: not (convertible to) a safe integer");if(C===0)return H.__zero();if(C>=H.__kMaxLengthBits)return N;var k=0|(C+29)/30;if(N.lengthC)throw new RangeError("Invalid value: not (convertible to) a safe integer");if(C===0)return H.__zero();if(N.sign){if(C>H.__kMaxLengthBits)throw new RangeError("BigInt too big");return H.__truncateAndSubFromPowerOfTwo(C,N,!1)}if(C>=H.__kMaxLengthBits)return N;var k=0|(C+29)/30;if(N.length>>G))return N}return H.__truncateToNBits(C,N)}},{key:"ADD",value:function(C,N){if(C=H.__toPrimitive(C),N=H.__toPrimitive(N),typeof C=="string")return typeof N!="string"&&(N=N.toString()),C+N;if(typeof N=="string")return C.toString()+N;if(C=H.__toNumeric(C),N=H.__toNumeric(N),H.__isBigInt(C)&&H.__isBigInt(N))return H.add(C,N);if(typeof C=="number"&&typeof N=="number")return C+N;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}},{key:"LT",value:function(C,N){return H.__compare(C,N,0)}},{key:"LE",value:function(C,N){return H.__compare(C,N,1)}},{key:"GT",value:function(C,N){return H.__compare(C,N,2)}},{key:"GE",value:function(C,N){return H.__compare(C,N,3)}},{key:"EQ",value:function(C,N){for(;;){if(H.__isBigInt(C))return H.__isBigInt(N)?H.equal(C,N):H.EQ(N,C);if(typeof C=="number"){if(H.__isBigInt(N))return H.__equalToNumber(N,C);if(e(N)!=="object")return C==N;N=H.__toPrimitive(N)}else if(typeof C=="string"){if(H.__isBigInt(N))return C=H.__fromString(C),C!==null&&H.equal(C,N);if(e(N)!=="object")return C==N;N=H.__toPrimitive(N)}else if(typeof C=="boolean"){if(H.__isBigInt(N))return H.__equalToNumber(N,+C);if(e(N)!=="object")return C==N;N=H.__toPrimitive(N)}else if(e(C)==="symbol"){if(H.__isBigInt(N))return!1;if(e(N)!=="object")return C==N;N=H.__toPrimitive(N)}else if(e(C)==="object"){if(e(N)==="object"&&N.constructor!==H)return C==N;C=H.__toPrimitive(C)}else return C==N}}},{key:"NE",value:function(C,N){return!H.EQ(C,N)}},{key:"DataViewGetBigInt64",value:function(C,N){var k=2>>30),ue.__setDigit(2,ae>>>28),ue.__trim()}},{key:"DataViewSetBigInt64",value:function(C,N,k){var G=3>>2,2N)U=-N-1;else{if(k===0)return-1;k--,G=C.__digit(k),U=29}var j=1<>>20,G=k-1023,U=(0|G/30)+1,j=new H(U,0>C),ee=1048575&H.__kBitConversionInts[1]|1048576,ae=H.__kBitConversionInts[0],se=20,ue=G%30,ve=0;if(ue>>be,ee=ee<<32-be|ae>>>be,ae<<=32-be}else if(ue===se)ve=32,N=ee,ee=ae,ae=0;else{var de=ue-se;ve=32-de,N=ee<>>32-de,ee=ae<>>2,ee=ee<<30|ae>>>2,ae<<=30):N=0,j.__setDigit(we,N);return j.__trim()}},{key:"__isWhitespace",value:function(C){return 13>=C&&9<=C||(159>=C?C==32:131071>=C?C==160||C==5760:196607>=C?(C&=131071,10>=C||C==40||C==41||C==47||C==95||C==4096):C==65279)}},{key:"__fromString",value:function(C){var N=11073741824/ae)return null;var ue=ae*ee+se>>>H.__kBitsPerCharTableShift,ve=new H(0|(ue+29)/30,!1),be=10>N?N:10,de=10>>0>>0>>H.__kBitsPerCharTableShift)/30;ve.__inplaceMultiplyAdd(_e,mt,$)}while(!ke)}else{ae>>=H.__kBitsPerCharTableShift;var we=[],Fe=[],je=!1;do{for(var Oe,dt=0,Be=0;;){if(Oe=void 0,j-48>>>0>>0>>se-j)}if(U!==0){if(G>=C.length)throw new Error("implementation bug");C.__setDigit(G++,U)}for(;G>>1)+(85&G),G=(51&G>>>2)+(51&G),G=(15&G>>>4)+(15&G);var U=G,j=N-1,ee=C.__digit(k-1),ae=H.__clz30(ee),se=0|(30*k-ae+U-1)/U;if(C.sign&&se++,268435456>>Oe,de=30-Oe;de>=U;)ue[ve--]=H.__kConversionChars[be&j],be>>>=U,de-=U}var dt=(be|ee<>>U-de;be!==0;)ue[ve--]=H.__kConversionChars[be&j],be>>>=U;if(C.sign&&(ue[ve--]="-"),ve!==-1)throw new Error("implementation bug");return ue.join("")}},{key:"__toStringGeneric",value:function(C,N,k){var G=C.length;if(G===0)return"";if(G===1){var U=C.__unsignedDigit(0).toString(N);return k===!1&&C.sign&&(U="-"+U),U}var j=30*G-H.__clz30(C.__digit(G-1)),ee=H.__kMaxBitsPerChar[N],ae=ee-1,se=j*H.__kBitsPerCharTableMultiplier;se+=ae-1,se=0|se/ae;var ue,ve,be=se+1>>1,de=H.exponentiate(H.__oneDigit(N,!1),H.__oneDigit(be,!1)),we=de.__unsignedDigit(0);if(de.length===1&&32767>=we){ue=new H(C.length,!1),ue.__initializeDigits();for(var Fe,je=0,Oe=2*C.length-1;0<=Oe;Oe--)Fe=je<<15|C.__halfDigit(Oe),ue.__setHalfDigit(Oe,0|Fe/we),je=0|Fe%we;ve=je.toString(N)}else{var dt=H.__absoluteDivLarge(C,de,!0,!0);ue=dt.quotient;var Be=dt.remainder.__trim();ve=H.__toStringGeneric(Be,N,!0)}ue.__trim();for(var ke=H.__toStringGeneric(ue,N,!0);ve.lengthG?H.__absoluteLess(k):0}},{key:"__compareToNumber",value:function(C,N){if(H.__isOneDigitInt(N)){var k=C.sign,G=0>N;if(k!==G)return H.__unequalSign(k);if(C.length===0){if(G)throw new Error("implementation bug");return N===0?0:-1}if(1U?H.__absoluteGreater(k):jN)return H.__unequalSign(k);if(N===0)throw new Error("implementation bug: should be handled elsewhere");if(C.length===0)return-1;H.__kBitConversionDouble[0]=N;var G=2047&H.__kBitConversionInts[1]>>>20;if(G==2047)throw new Error("implementation bug: handled elsewhere");var U=G-1023;if(0>U)return H.__absoluteGreater(k);var j=C.length,ee=C.__digit(j-1),ae=H.__clz30(ee),se=30*j-ae,ue=U+1;if(seue)return H.__absoluteGreater(k);var ve=1048576|1048575&H.__kBitConversionInts[1],be=H.__kBitConversionInts[0],de=20,we=29-ae;if(we!==(0|(se-1)%30))throw new Error("implementation bug");var Fe,je=0;if(we>>Oe,ve=ve<<32-Oe|be>>>Oe,be<<=32-Oe}else if(we===de)je=32,Fe=ve,ve=be,be=0;else{var dt=we-de;je=32-dt,Fe=ve<>>32-dt,ve=be<>>=0,Fe>>>=0,ee>Fe)return H.__absoluteGreater(k);if(ee>>2,ve=ve<<30|be>>>2,be<<=30):Fe=0;var ke=C.__unsignedDigit(Be);if(ke>Fe)return H.__absoluteGreater(k);if(keN&&C.__unsignedDigit(0)===w(N):H.__compareToDouble(C,N)===0}},{key:"__comparisonResultToBool",value:function(C,N){return N===0?0>C:N===1?0>=C:N===2?0N;case 3:return C>=N}if(H.__isBigInt(C)&&typeof N=="string")return N=H.__fromString(N),N!==null&&H.__comparisonResultToBool(H.__compareToBigInt(C,N),k);if(typeof C=="string"&&H.__isBigInt(N))return C=H.__fromString(C),C!==null&&H.__comparisonResultToBool(H.__compareToBigInt(C,N),k);if(C=H.__toNumeric(C),N=H.__toNumeric(N),H.__isBigInt(C)){if(H.__isBigInt(N))return H.__comparisonResultToBool(H.__compareToBigInt(C,N),k);if(typeof N!="number")throw new Error("implementation bug");return H.__comparisonResultToBool(H.__compareToNumber(C,N),k)}if(typeof C!="number")throw new Error("implementation bug");if(H.__isBigInt(N))return H.__comparisonResultToBool(H.__compareToNumber(N,C),2^k);if(typeof N!="number")throw new Error("implementation bug");return k===0?CN:k===3?C>=N:void 0}},{key:"__absoluteAdd",value:function(C,N,k){if(C.length>>30,j.__setDigit(ae,1073741823&U);for(;ae>>30,j.__setDigit(ae,1073741823&se)}return ae>>30,U.__setDigit(ee,1073741823&G);for(;ee>>30,U.__setDigit(ee,1073741823&ae)}return U.__trim()}},{key:"__absoluteAddOne",value:function(C,N){var k=2>>30,k.__setDigit(ee,1073741823&U);return j!==0&&k.__setDigitGrow(G,1),k}},{key:"__absoluteSubOne",value:function(C,N){var k=C.length;N=N||k;for(var G,U=new H(N,!1),j=1,ee=0;ee>>30,U.__setDigit(ee,1073741823&G);if(j!==0)throw new Error("implementation bug");for(var ae=k;aeG?0:C.__unsignedDigit(G)>N.__unsignedDigit(G)?1:-1}},{key:"__multiplyAccumulate",value:function(C,N,k,G){if(N!==0){for(var U=32767&N,j=N>>>15,ee=0,ae=0,se=0;se>>15,we=H.__imul(be,U),Fe=H.__imul(be,j),je=H.__imul(de,U),Oe=H.__imul(de,j);ue+=ae+we+ee,ee=ue>>>30,ue&=1073741823,ue+=((32767&Fe)<<15)+((32767&je)<<15),ee+=ue>>>30,ae=Oe+(Fe>>>15)+(je>>>15),k.__setDigit(G,1073741823&ue)}for(;ee!==0||ae!==0;G++){var dt=k.__digit(G);dt+=ee+ae,ae=0,ee=dt>>>30,k.__setDigit(G,1073741823&dt)}}}},{key:"__internalMultiplyAdd",value:function(C,N,k,G,U){for(var j=k,ee=0,ae=0;ae>>15,N),be=ue+((32767&ve)<<15)+ee+j;j=be>>>30,ee=ve>>>15,U.__setDigit(ae,1073741823&be)}if(U.length>G)for(U.__setDigit(G++,j+ee);G>>0,ee=0|j/N;G=0|j%N,j=(G<<15|C.__halfDigit(U-1))>>>0;var ae=0|j/N;G=0|j%N,k.__setDigit(U>>>1,ee<<15|ae)}return k}},{key:"__absoluteModSmall",value:function(C,N){for(var k,G=0,U=2*C.length-1;0<=U;U--)k=(G<<15|C.__halfDigit(U))>>>0,G=0|k%N;return G}},{key:"__absoluteDivLarge",value:function(C,N,k,G){var U=N.__halfDigitLength(),j=N.length,ee=C.__halfDigitLength()-U,ae=null;k&&(ae=new H(ee+2>>>1,!1),ae.__initializeDigits());var se=new H(U+2>>>1,!1);se.__initializeDigits();var ue=H.__clz15(N.__halfDigit(U-1));0>>0;Fe=0|Oe/be;for(var dt=0|Oe%be,Be=N.__halfDigit(U-2),ke=ve.__halfDigit(we+U-2);H.__imul(Fe,Be)>>>0>(dt<<16|ke)>>>0&&(Fe--,dt+=be,!(32767>>1,de|Fe))}if(G)return ve.__inplaceRightShift(ue),k?{quotient:ae,remainder:ve}:ve;if(k)return ae;throw new Error("unreachable")}},{key:"__clz15",value:function(C){return H.__clz30(C)-15}},{key:"__specialLeftShift",value:function(C,N,k){var G=C.length,U=new H(G+k,!1);if(N===0){for(var j=0;j>>30-N;return 0k)throw new RangeError("BigInt too big");var G=0|k/30,U=k%30,j=C.length,ee=U!==0&&C.__digit(j-1)>>>30-U!=0,ae=j+G+(ee?1:0),se=new H(ae,C.sign);if(U===0){for(var ue=0;ue>>30-U;if(ee)se.__setDigit(j+G,ve);else if(ve!==0)throw new Error("implementation bug")}return se.__trim()}},{key:"__rightShiftByAbsolute",value:function(C,N){var k=C.length,G=C.sign,U=H.__toShiftAmount(N);if(0>U)return H.__rightShiftByMaximum(G);var j=0|U/30,ee=U%30,ae=k-j;if(0>=ae)return H.__rightShiftByMaximum(G);var se=!1;if(G){if(C.__digit(j)&(1<>>ee,je=k-j-1,Oe=0;Oe>>ee;be.__setDigit(je,Fe)}return se&&(be=H.__absoluteAddOne(be,!0,be)),be.__trim()}},{key:"__rightShiftByMaximum",value:function(C){return C?H.__oneDigit(1,!0):H.__zero()}},{key:"__toShiftAmount",value:function(C){if(1H.__kMaxLengthBits?-1:N}},{key:"__toPrimitive",value:function(C){var N=1>>ae}return G.__setDigit(U,ee),G.__trim()}},{key:"__truncateAndSubFromPowerOfTwo",value:function(C,N,k){for(var G=Math.min,U,j=0|(C+29)/30,ee=new H(j,k),ae=0,se=j-1,ue=0,ve=G(se,N.length);ae>>30,ee.__setDigit(ae,1073741823&U);for(;ae>>Fe;var je=1<<32-Fe;be=je-de-ue,be&=je-1}return ee.__setDigit(se,be),ee.__trim()}},{key:"__digitPow",value:function(C,N){for(var k=1;0>>=1,C*=C;return k}},{key:"__isOneDigitInt",value:function(C){return(1073741823&C)===C}}]),H}(p(Array));return P.__kMaxLength=33554432,P.__kMaxLengthBits=P.__kMaxLength<<5,P.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],P.__kBitsPerCharTableShift=5,P.__kBitsPerCharTableMultiplier=1<>>0)/w)},P.__imul=t||function(_,w){return 0|_*w},P})});var rRe=V((n8,s8)=>{(function(t,r){typeof n8=="object"&&typeof s8!="undefined"?s8.exports=r():typeof define=="function"&&define.amd?define(r):(t=t||self).RBush=r()})(n8,function(){"use strict";function t(g,y,E,b,x){(function S(D,P,_,w,F){for(;w>_;){if(w-_>600){var X=w-_+1,H=P-_+1,he=Math.log(X),C=.5*Math.exp(2*he/3),N=.5*Math.sqrt(he*C*(X-C)/X)*(H-X/2<0?-1:1),k=Math.max(_,Math.floor(P-H*C/X+N)),G=Math.min(w,Math.floor(P+(X-H)*C/X+N));S(D,P,k,G,F)}var U=D[P],j=_,ee=w;for(r(D,_,P),F(D[w],U)>0&&r(D,_,w);j0;)ee--}F(D[_],U)===0?r(D,_,ee):r(D,++ee,w),ee<=P&&(_=ee+1),P<=ee&&(w=ee-1)}})(g,y,E||0,b||g.length-1,x||e)}function r(g,y,E){var b=g[y];g[y]=g[E],g[E]=b}function e(g,y){return gy?1:0}var i=function(g){g===void 0&&(g=9),this._maxEntries=Math.max(4,g),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function n(g,y,E){if(!E)return y.indexOf(g);for(var b=0;b=g.minX&&y.maxY>=g.minY}function f(g){return{children:g,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(g,y,E,b,x){for(var S=[y,E];S.length;)if(!((E=S.pop())-(y=S.pop())<=b)){var D=y+Math.ceil((E-y)/b/2)*b;t(g,D,y,E,x),S.push(y,D,D,E)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(g){var y=this.data,E=[];if(!d(g,y))return E;for(var b=this.toBBox,x=[];y;){for(var S=0;S=0&&x[y].children.length>this._maxEntries;)this._split(x,y),y--;this._adjustParentBBoxes(b,x,y)},i.prototype._split=function(g,y){var E=g[y],b=E.children.length,x=this._minEntries;this._chooseSplitAxis(E,x,b);var S=this._chooseSplitIndex(E,x,b),D=f(E.children.splice(S,E.children.length-S));D.height=E.height,D.leaf=E.leaf,s(E,this.toBBox),s(D,this.toBBox),y?g[y-1].children.push(D):this._splitRoot(E,D)},i.prototype._splitRoot=function(g,y){this.data=f([g,y]),this.data.height=g.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(g,y,E){for(var b,x,S,D,P,_,w,F=1/0,X=1/0,H=y;H<=E-y;H++){var he=a(g,0,H,this.toBBox),C=a(g,H,E,this.toBBox),N=(x=he,S=C,D=void 0,P=void 0,_=void 0,w=void 0,D=Math.max(x.minX,S.minX),P=Math.max(x.minY,S.minY),_=Math.min(x.maxX,S.maxX),w=Math.min(x.maxY,S.maxY),Math.max(0,_-D)*Math.max(0,w-P)),k=u(he)+u(C);N=y;F--){var X=g.children[F];o(D,g.leaf?x(X):X),P+=h(D)}return P},i.prototype._adjustParentBBoxes=function(g,y,E){for(var b=E;b>=0;b--)o(y[b],g)},i.prototype._condense=function(g){for(var y=g.length-1,E=void 0;y>=0;y--)g[y].children.length===0?y>0?(E=g[y-1].children).splice(E.indexOf(g[y]),1):this.clear():s(g[y],this.toBBox)},i})});var iRe=V((a8,o8)=>{(function(t,r){typeof a8=="object"&&typeof o8!="undefined"?o8.exports=r():typeof define=="function"&&define.amd?define(r):(t=t||self,t.TinyQueue=r())})(a8,function(){"use strict";var t=function(i,n){if(i===void 0&&(i=[]),n===void 0&&(n=r),this.data=i,this.length=this.data.length,this.compare=n,this.length>0)for(var s=(this.length>>1)-1;s>=0;s--)this._down(s)};t.prototype.push=function(i){this.data.push(i),this.length++,this._up(this.length-1)},t.prototype.pop=function(){if(this.length!==0){var i=this.data[0],n=this.data.pop();return this.length--,this.length>0&&(this.data[0]=n,this._down(0)),i}},t.prototype.peek=function(){return this.data[0]},t.prototype._up=function(i){for(var n=this,s=n.data,a=n.compare,o=s[i];i>0;){var l=i-1>>1,c=s[l];if(a(o,c)>=0)break;s[i]=c,i=l}s[i]=o},t.prototype._down=function(i){for(var n=this,s=n.data,a=n.compare,o=this.length>>1,l=s[i];i=0)break;s[i]=u,i=c}s[i]=l};function r(e,i){return ei?1:0}return t})});var sRe=V((rmr,nRe)=>{nRe.exports=function(r,e,i,n){var s=r[0],a=r[1],o=!1;i===void 0&&(i=0),n===void 0&&(n=e.length);for(var l=(n-i)/2,c=0,u=l-1;ca!=f>a&&s<(d-h)*(a-p)/(f-p)+h;m&&(o=!o)}return o}});var oRe=V((imr,aRe)=>{aRe.exports=function(r,e,i,n){var s=r[0],a=r[1],o=!1;i===void 0&&(i=0),n===void 0&&(n=e.length);for(var l=n-i,c=0,u=l-1;ca!=f>a&&s<(d-h)*(a-p)/(f-p)+h;m&&(o=!o)}return o}});var uRe=V((nmr,LA)=>{var lRe=sRe(),cRe=oRe();LA.exports=function(r,e,i,n){return e.length>0&&Array.isArray(e[0])?cRe(r,e,i,n):lRe(r,e,i,n)};LA.exports.nested=cRe;LA.exports.flat=lRe});var pRe=V((FA,hRe)=>{(function(t,r){typeof FA=="object"&&typeof hRe!="undefined"?r(FA):typeof define=="function"&&define.amd?define(["exports"],r):r((t=t||self).predicates={})})(FA,function(t){"use strict";let e=33306690738754706e-32;function i(d,f,m,g,y){let E,b,x,S,D=f[0],P=g[0],_=0,w=0;P>D==P>-D?(E=D,D=f[++_]):(E=P,P=g[++w]);let F=0;if(_D==P>-D?(x=E-((b=D+E)-D),D=f[++_]):(x=E-((b=P+E)-P),P=g[++w]),E=b,x!==0&&(y[F++]=x);_D==P>-D?(x=E-((b=E+D)-(S=b-E))+(D-S),D=f[++_]):(x=E-((b=E+P)-(S=b-E))+(P-S),P=g[++w]),E=b,x!==0&&(y[F++]=x);for(;_0!=x>0)return S;let D=Math.abs(b+x);return Math.abs(S)>=s*D?S:-function(P,_,w,F,X,H,he){let C,N,k,G,U,j,ee,ae,se,ue,ve,be,de,we,Fe,je,Oe,dt,Be=P-X,ke=w-X,nt=_-H,bt=F-H;U=(Fe=(ae=Be-(ee=(j=134217729*Be)-(j-Be)))*(ue=bt-(se=(j=134217729*bt)-(j-bt)))-((we=Be*bt)-ee*se-ae*se-ee*ue))-(ve=Fe-(Oe=(ae=nt-(ee=(j=134217729*nt)-(j-nt)))*(ue=ke-(se=(j=134217729*ke)-(j-ke)))-((je=nt*ke)-ee*se-ae*se-ee*ue))),l[0]=Fe-(ve+U)+(U-Oe),U=(de=we-((be=we+ve)-(U=be-we))+(ve-U))-(ve=de-je),l[1]=de-(ve+U)+(U-je),U=(dt=be+ve)-be,l[2]=be-(dt-U)+(ve-U),l[3]=dt;let mt=function(me,z){let Y=z[0];for(let xe=1;xe=_e||-mt>=_e||(C=P-(Be+(U=P-Be))+(U-X),k=w-(ke+(U=w-ke))+(U-X),N=_-(nt+(U=_-nt))+(U-H),G=F-(bt+(U=F-bt))+(U-H),C===0&&N===0&&k===0&&G===0)||(_e=o*he+e*Math.abs(mt),(mt+=Be*G+bt*C-(nt*k+ke*N))>=_e||-mt>=_e))return mt;U=(Fe=(ae=C-(ee=(j=134217729*C)-(j-C)))*(ue=bt-(se=(j=134217729*bt)-(j-bt)))-((we=C*bt)-ee*se-ae*se-ee*ue))-(ve=Fe-(Oe=(ae=N-(ee=(j=134217729*N)-(j-N)))*(ue=ke-(se=(j=134217729*ke)-(j-ke)))-((je=N*ke)-ee*se-ae*se-ee*ue))),p[0]=Fe-(ve+U)+(U-Oe),U=(de=we-((be=we+ve)-(U=be-we))+(ve-U))-(ve=de-je),p[1]=de-(ve+U)+(U-je),U=(dt=be+ve)-be,p[2]=be-(dt-U)+(ve-U),p[3]=dt;let J=i(4,l,4,p,c);U=(Fe=(ae=Be-(ee=(j=134217729*Be)-(j-Be)))*(ue=G-(se=(j=134217729*G)-(j-G)))-((we=Be*G)-ee*se-ae*se-ee*ue))-(ve=Fe-(Oe=(ae=nt-(ee=(j=134217729*nt)-(j-nt)))*(ue=k-(se=(j=134217729*k)-(j-k)))-((je=nt*k)-ee*se-ae*se-ee*ue))),p[0]=Fe-(ve+U)+(U-Oe),U=(de=we-((be=we+ve)-(U=be-we))+(ve-U))-(ve=de-je),p[1]=de-(ve+U)+(U-je),U=(dt=be+ve)-be,p[2]=be-(dt-U)+(ve-U),p[3]=dt;let $=i(J,c,4,p,u);U=(Fe=(ae=C-(ee=(j=134217729*C)-(j-C)))*(ue=G-(se=(j=134217729*G)-(j-G)))-((we=C*G)-ee*se-ae*se-ee*ue))-(ve=Fe-(Oe=(ae=N-(ee=(j=134217729*N)-(j-N)))*(ue=k-(se=(j=134217729*k)-(j-k)))-((je=N*k)-ee*se-ae*se-ee*ue))),p[0]=Fe-(ve+U)+(U-Oe),U=(de=we-((be=we+ve)-(U=be-we))+(ve-U))-(ve=de-je),p[1]=de-(ve+U)+(U-je),U=(dt=be+ve)-be,p[2]=be-(dt-U)+(ve-U),p[3]=dt;let re=i($,u,4,p,h);return h[re-1]}(d,f,m,g,y,E,D)},t.orient2dfast=function(d,f,m,g,y,E){return(f-E)*(m-y)-(d-y)*(g-E)},Object.defineProperty(t,"__esModule",{value:!0})})});var yRe=V((smr,h8)=>{"use strict";var dRe=rRe(),UA=iRe(),Y3t=uRe(),X3t=pRe().orient2d;UA.default&&(UA=UA.default);h8.exports=vRe;h8.exports.default=vRe;function vRe(t,r,e){r=Math.max(0,r===void 0?2:r),e=e||0;var i=Q3t(t),n=new dRe(16);n.toBBox=function(E){return{minX:E[0],minY:E[1],maxX:E[0],maxY:E[1]}},n.compareMinX=function(E,b){return E[0]-b[0]},n.compareMinY=function(E,b){return E[1]-b[1]},n.load(t);for(var s=[],a=0,o;as||o.push({node:u,dist:h})}for(;o.length&&!o.peek().node.children;){var p=o.pop(),d=p.node,f=u8(d,r,e),m=u8(d,i,n);if(p.dist=r.minX&&t[0]<=r.maxX&&t[1]>=r.minY&&t[1]<=r.maxY}function mRe(t,r,e){for(var i=Math.min(t[0],r[0]),n=Math.min(t[1],r[1]),s=Math.max(t[0],r[0]),a=Math.max(t[1],r[1]),o=e.search({minX:i,minY:n,maxX:s,maxY:a}),l=0;l0!=BT(t,r,i)>0&&BT(e,i,t)>0!=BT(e,i,r)>0}function l8(t){var r=t.p,e=t.next.p;return t.minX=Math.min(r[0],e[0]),t.minY=Math.min(r[1],e[1]),t.maxX=Math.max(r[0],e[0]),t.maxY=Math.max(r[1],e[1]),t}function Q3t(t){for(var r=t[0],e=t[0],i=t[0],n=t[0],s=0;si[0]&&(i=a),a[1]n[1]&&(n=a)}var o=[r,e,i,n],l=o.slice();for(s=0;s1?(i=e[0],n=e[1]):o>0&&(i+=s*o,n+=a*o)}return s=t[0]-i,a=t[1]-n,s*s+a*a}function HA(t,r,e,i,n,s,a,o){var l=e-t,c=i-r,u=a-n,h=o-s,p=t-n,d=r-s,f=l*l+c*c,m=l*u+c*h,g=u*u+h*h,y=l*p+c*d,E=u*p+h*d,b=f*g-m*m,x,S,D,P,_=b,w=b;b===0?(S=0,_=1,P=E,w=g):(S=m*E-g*y,P=f*E-m*y,S<0?(S=0,P=E,w=g):S>_&&(S=_,P=E+m,w=g)),P<0?(P=0,-y<0?S=0:-y>f?S=_:(S=-y,_=f)):P>w&&(P=w,-y+m<0?S=0:-y+m>f?S=_:(S=-y+m,_=f)),x=S===0?0:S/_,D=P===0?0:P/w;var F=(1-x)*t+x*e,X=(1-x)*r+x*i,H=(1-D)*n+D*a,he=(1-D)*s+D*o,C=H-F,N=he-X;return C*C+N*N}function ePt(t,r){return t[0]===r[0]?t[1]-r[1]:t[0]-r[0]}function tPt(t){t.sort(ePt);for(var r=[],e=0;e=2&&BT(r[r.length-2],r[r.length-1],t[e])<=0;)r.pop();r.push(t[e])}for(var i=[],n=t.length-1;n>=0;n--){for(;i.length>=2&&BT(i[i.length-2],i[i.length-1],t[n])<=0;)i.pop();i.push(t[n])}return i.pop(),r.pop(),r.concat(i)}});var BRe=V((omr,URe)=>{function fPt(){var t,r=0,e=!1;function i(n,s){return t.list.push({type:n,data:s?JSON.parse(JSON.stringify(s)):void 0}),t}return t={list:[],segmentId:function(){return r++},checkIntersection:function(n,s){return i("check",{seg1:n,seg2:s})},segmentChop:function(n,s){return i("div_seg",{seg:n,pt:s}),i("chop",{seg:n,pt:s})},statusRemove:function(n){return i("pop_seg",{seg:n})},segmentUpdate:function(n){return i("seg_update",{seg:n})},segmentNew:function(n,s){return i("new_seg",{seg:n,primary:s})},segmentRemove:function(n){return i("rem_seg",{seg:n})},tempStatus:function(n,s,a){return i("temp_status",{seg:n,above:s,below:a})},rewind:function(n){return i("rewind",{seg:n})},status:function(n,s,a){return i("status",{seg:n,above:s,below:a})},vert:function(n){return n===e?t:(e=n,i("vert",{x:n}))},log:function(n){return typeof n!="string"&&(n=JSON.stringify(n,!1," ")),i("log",{txt:n})},reset:function(){return i("reset")},selected:function(n){return i("selected",{segs:n})},chainStart:function(n){return i("chain_start",{seg:n})},chainRemoveHead:function(n,s){return i("chain_rem_head",{index:n,pt:s})},chainRemoveTail:function(n,s){return i("chain_rem_tail",{index:n,pt:s})},chainNew:function(n,s){return i("chain_new",{pt1:n,pt2:s})},chainMatch:function(n){return i("chain_match",{index:n})},chainClose:function(n){return i("chain_close",{index:n})},chainAddHead:function(n,s){return i("chain_add_head",{index:n,pt:s})},chainAddTail:function(n,s){return i("chain_add_tail",{index:n,pt:s})},chainConnect:function(n,s){return i("chain_con",{index1:n,index2:s})},chainReverse:function(n){return i("chain_rev",{index:n})},chainJoin:function(n,s){return i("chain_join",{index1:n,index2:s})},done:function(){return i("done")}},t}URe.exports=fPt});var GRe=V((lmr,kRe)=>{function mPt(t){typeof t!="number"&&(t=1e-10);var r={epsilon:function(e){return typeof e=="number"&&(t=e),t},pointAboveOrOnLine:function(e,i,n){var s=i[0],a=i[1],o=n[0],l=n[1],c=e[0],u=e[1];return(o-s)*(u-a)-(l-a)*(c-s)>=-t},pointBetween:function(e,i,n){var s=e[1]-i[1],a=n[0]-i[0],o=e[0]-i[0],l=n[1]-i[1],c=o*a+s*l;if(c-t)},pointsSameX:function(e,i){return Math.abs(e[0]-i[0])t!=o-s>t&&(a-u)*(s-h)/(o-h)+u-n>t&&(l=!l),a=u,o=h}return l}};return r}kRe.exports=mPt});var zRe=V((cmr,VRe)=>{var gPt={create:function(){var t={root:{root:!0,next:null},exists:function(r){return!(r===null||r===t.root)},isEmpty:function(){return t.root.next===null},getHead:function(){return t.root.next},insertBefore:function(r,e){for(var i=t.root,n=t.root.next;n!==null;){if(e(n)){r.prev=n.prev,r.next=n,n.prev.next=r,n.prev=r;return}i=n,n=n.next}i.next=r,r.prev=i,r.next=null},findTransition:function(r){for(var e=t.root,i=t.root.next;i!==null&&!r(i);)e=i,i=i.next;return{before:e===t.root?null:e,after:i,insert:function(n){return n.prev=e,n.next=i,e.next=n,i!==null&&(i.prev=n),n}}}};return t},node:function(t){return t.prev=null,t.next=null,t.remove=function(){t.prev.next=t.next,t.next&&(t.next.prev=t.prev),t.prev=null,t.next=null},t}};VRe.exports=gPt});var WRe=V((umr,jRe)=>{var PI=zRe();function vPt(t,r,e){function i(f,m){return{id:e?e.segmentId():-1,start:f,end:m,myFill:{above:null,below:null},otherFill:null}}function n(f,m,g){return{id:e?e.segmentId():-1,start:f,end:m,myFill:{above:g.myFill.above,below:g.myFill.below},otherFill:null}}var s=PI.create();function a(f,m,g,y,E,b){var x=r.pointsCompare(m,E);return x!==0?x:r.pointsSame(g,b)?0:f!==y?f?1:-1:r.pointAboveOrOnLine(g,y?E:b,y?b:E)?1:-1}function o(f,m){s.insertBefore(f,function(g){var y=a(f.isStart,f.pt,m,g.isStart,g.pt,g.other.pt);return y<0})}function l(f,m){var g=PI.node({isStart:!0,pt:f.start,seg:f,primary:m,other:null,status:null});return o(g,f.end),g}function c(f,m,g){var y=PI.node({isStart:!1,pt:m.end,seg:m,primary:g,other:f,status:null});f.other=y,o(y,f.pt)}function u(f,m){var g=l(f,m);return c(g,f,m),g}function h(f,m){e&&e.segmentChop(f.seg,m),f.other.remove(),f.seg.end=m,f.other.pt=m,o(f.other,f.pt)}function p(f,m){var g=n(m,f.seg.end,f.seg);return h(f,m),u(g,f.primary)}function d(f,m){var g=PI.create();function y(N,k){var G=N.seg.start,U=N.seg.end,j=k.seg.start,ee=k.seg.end;return r.pointsCollinear(G,j,ee)?r.pointsCollinear(U,j,ee)||r.pointAboveOrOnLine(U,j,ee)?1:-1:r.pointAboveOrOnLine(G,j,ee)?1:-1}function E(N){return g.findTransition(function(k){var G=y(N,k.ev);return G>0})}function b(N,k){var G=N.seg,U=k.seg,j=G.start,ee=G.end,ae=U.start,se=U.end;e&&e.checkIntersection(G,U);var ue=r.linesIntersect(j,ee,ae,se);if(ue===!1){if(!r.pointsCollinear(j,ee,ae)||r.pointsSame(j,se)||r.pointsSame(ee,ae))return!1;var ve=r.pointsSame(j,ae),be=r.pointsSame(ee,se);if(ve&&be)return k;var de=!ve&&r.pointBetween(j,ae,se),we=!be&&r.pointBetween(ee,ae,se);if(ve)return we?p(k,ee):p(N,se),k;de&&(be||(we?p(k,ee):p(N,se)),p(k,j))}else ue.alongA===0&&(ue.alongB===-1?p(N,ae):ue.alongB===0?p(N,ue.pt):ue.alongB===1&&p(N,se)),ue.alongB===0&&(ue.alongA===-1?p(k,j):ue.alongA===0?p(k,ue.pt):ue.alongA===1&&p(k,ee));return!1}for(var x=[];!s.isEmpty();){var S=s.getHead();if(e&&e.vert(S.pt[0]),S.isStart){let N=function(){if(P){var k=b(S,P);if(k)return k}return _?b(S,_):!1};var C=N;e&&e.segmentNew(S.seg,S.primary);var D=E(S),P=D.before?D.before.ev:null,_=D.after?D.after.ev:null;e&&e.tempStatus(S.seg,P?P.seg:!1,_?_.seg:!1);var w=N();if(w){if(t){var F;S.seg.myFill.below===null?F=!0:F=S.seg.myFill.above!==S.seg.myFill.below,F&&(w.seg.myFill.above=!w.seg.myFill.above)}else w.seg.otherFill=S.seg.myFill;e&&e.segmentUpdate(w.seg),S.other.remove(),S.remove()}if(s.getHead()!==S){e&&e.rewind(S.seg);continue}if(t){var F;S.seg.myFill.below===null?F=!0:F=S.seg.myFill.above!==S.seg.myFill.below,_?S.seg.myFill.below=_.seg.myFill.above:S.seg.myFill.below=f,F?S.seg.myFill.above=!S.seg.myFill.below:S.seg.myFill.above=S.seg.myFill.below}else if(S.seg.otherFill===null){var X;_?S.primary===_.primary?X=_.seg.otherFill.above:X=_.seg.myFill.above:X=S.primary?m:f,S.seg.otherFill={above:X,below:X}}e&&e.status(S.seg,P?P.seg:!1,_?_.seg:!1),S.other.status=D.insert(PI.node({ev:S}))}else{var H=S.status;if(H===null)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(g.exists(H.prev)&&g.exists(H.next)&&b(H.prev.ev,H.next.ev),e&&e.statusRemove(H.ev.seg),H.remove(),!S.primary){var he=S.seg.myFill;S.seg.myFill=S.seg.otherFill,S.seg.otherFill=he}x.push(S.seg)}s.getHead().remove()}return e&&e.done(),x}return t?{addRegion:function(f){for(var m,g=f[f.length-1],y=0;y{function yPt(t,r,e){var i=[],n=[];return t.forEach(function(s){var a=s.start,o=s.end;if(r.pointsSame(a,o)){console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");return}e&&e.chainStart(s);var l={index:0,matches_head:!1,matches_pt1:!1},c={index:0,matches_head:!1,matches_pt1:!1},u=l;function h(C,N,k){return u.index=C,u.matches_head=N,u.matches_pt1=k,u===l?(u=c,!1):(u=null,!0)}for(var p=0;p{function NI(t,r,e){var i=[];return t.forEach(function(n){var s=(n.myFill.above?8:0)+(n.myFill.below?4:0)+(n.otherFill&&n.otherFill.above?2:0)+(n.otherFill&&n.otherFill.below?1:0);r[s]!==0&&i.push({id:e?e.segmentId():-1,start:n.start,end:n.end,myFill:{above:r[s]===1,below:r[s]===2},otherFill:null})}),e&&e.selected(i),i}var TPt={union:function(t,r){return NI(t,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],r)},intersect:function(t,r){return NI(t,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],r)},difference:function(t,r){return NI(t,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],r)},differenceRev:function(t,r){return NI(t,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],r)},xor:function(t,r){return NI(t,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],r)}};XRe.exports=TPt});var KRe=V((dmr,ZRe)=>{var EPt={toPolygon:function(t,r){function e(s){if(s.length<=0)return t.segments({inverted:!1,regions:[]});function a(c){var u=c.slice(0,c.length-1);return t.segments({inverted:!1,regions:[u]})}for(var o=a(s[0]),l=1;l{var bPt=BRe(),xPt=GRe(),JRe=WRe(),IPt=YRe(),LI=$Re(),QRe=KRe(),ql=!1,FI=xPt(),Eo;Eo={buildLog:function(t){return t===!0?ql=bPt():t===!1&&(ql=!1),ql===!1?!1:ql.list},epsilon:function(t){return FI.epsilon(t)},segments:function(t){var r=JRe(!0,FI,ql);return t.regions.forEach(r.addRegion),{segments:r.calculate(t.inverted),inverted:t.inverted}},combine:function(t,r){var e=JRe(!1,FI,ql);return{combined:e.calculate(t.segments,t.inverted,r.segments,r.inverted),inverted1:t.inverted,inverted2:r.inverted}},selectUnion:function(t){return{segments:LI.union(t.combined,ql),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:LI.intersect(t.combined,ql),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:LI.difference(t.combined,ql),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:LI.differenceRev(t.combined,ql),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:LI.xor(t.combined,ql),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:IPt(t.segments,FI,ql),inverted:t.inverted}},polygonFromGeoJSON:function(t){return QRe.toPolygon(Eo,t)},polygonToGeoJSON:function(t){return QRe.fromPolygon(Eo,FI,t)},union:function(t,r){return HI(t,r,Eo.selectUnion)},intersect:function(t,r){return HI(t,r,Eo.selectIntersect)},difference:function(t,r){return HI(t,r,Eo.selectDifference)},differenceRev:function(t,r){return HI(t,r,Eo.selectDifferenceRev)},xor:function(t,r){return HI(t,r,Eo.selectXor)}};function HI(t,r,e){var i=Eo.segments(t),n=Eo.segments(r),s=Eo.combine(i,n),a=e(s);return Eo.polygon(a)}typeof window=="object"&&(window.PolyBool=Eo);eMe.exports=Eo});var iMe=V((ymr,rMe)=>{rMe.exports=el;function el(t){if(t)return SPt(t)}function SPt(t){for(var r in el.prototype)t[r]=el.prototype[r];return t}el.prototype.on=el.prototype.addEventListener=function(t,r){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(r),this};el.prototype.once=function(t,r){var e=this;this._callbacks=this._callbacks||{};function i(){e.off(t,i),r.apply(this,arguments)}return i.fn=r,this.on(t,i),this};el.prototype.off=el.prototype.removeListener=el.prototype.removeAllListeners=el.prototype.removeEventListener=function(t,r){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var e=this._callbacks[t];if(!e)return this;if(arguments.length==1)return delete this._callbacks[t],this;for(var i,n=0;n{var nMe=iMe();function UI(){nMe.call(this)}UI.prototype=new nMe;sMe.exports=UI;UI.Stream=UI;UI.prototype.pipe=function(t,r){var e=this;function i(u){t.writable&&t.write(u)===!1&&e.pause&&e.pause()}e.on("data",i);function n(){e.readable&&e.resume&&e.resume()}t.on("drain",n),!t._isStdio&&(!r||r.end!==!1)&&(e.on("end",a),e.on("close",o));var s=!1;function a(){s||(s=!0,t.end())}function o(){s||(s=!0,typeof t.destroy=="function"&&t.destroy())}function l(u){if(c(),!this.hasListeners("error"))throw u}e.on("error",l),t.on("error",l);function c(){e.off("data",i),t.off("drain",n),e.off("end",a),e.off("close",o),e.off("error",l),t.off("error",l),e.off("end",c),e.off("close",c),t.off("end",c),t.off("close",c)}return e.on("end",c),e.on("close",c),t.on("end",c),t.on("close",c),t.emit("pipe",e),t}});var Yl=V((jT,kI)=>{(function(){var t,r="4.17.21",e=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",n="Expected a function",s="Invalid `variable` option passed into `_.template`",a="__lodash_hash_undefined__",o=500,l="__lodash_placeholder__",c=1,u=2,h=4,p=1,d=2,f=1,m=2,g=4,y=8,E=16,b=32,x=64,S=128,D=256,P=512,_=30,w="...",F=800,X=16,H=1,he=2,C=3,N=1/0,k=9007199254740991,G=17976931348623157e292,U=0/0,j=4294967295,ee=j-1,ae=j>>>1,se=[["ary",S],["bind",f],["bindKey",m],["curry",y],["curryRight",E],["flip",P],["partial",b],["partialRight",x],["rearg",D]],ue="[object Arguments]",ve="[object Array]",be="[object AsyncFunction]",de="[object Boolean]",we="[object Date]",Fe="[object DOMException]",je="[object Error]",Oe="[object Function]",dt="[object GeneratorFunction]",Be="[object Map]",ke="[object Number]",nt="[object Null]",bt="[object Object]",mt="[object Promise]",_e="[object Proxy]",J="[object RegExp]",$="[object Set]",re="[object String]",me="[object Symbol]",z="[object Undefined]",Y="[object WeakMap]",xe="[object WeakSet]",Ce="[object ArrayBuffer]",Ge="[object DataView]",Ze="[object Float32Array]",gt="[object Float64Array]",ye="[object Int8Array]",Re="[object Int16Array]",ut="[object Int32Array]",vt="[object Uint8Array]",Et="[object Uint8ClampedArray]",Ct="[object Uint16Array]",Dt="[object Uint32Array]",cr=/\b__p \+= '';/g,Xt=/\b(__p \+=) '' \+/g,gr=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ae=/&(?:amp|lt|gt|quot|#39);/g,Xe=/[&<>"']/g,lt=RegExp(Ae.source),_t=RegExp(Xe.source),Vt=/<%-([\s\S]+?)%>/g,Rr=/<%([\s\S]+?)%>/g,Ki=/<%=([\s\S]+?)%>/g,Pi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Fn=/^\w*$/,Kt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ds=/[\\^$.*+?()[\]{}|]/g,Is=RegExp(ds.source),ic=/^\s+/,um=/\s/,fd=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,js=/\{\n\/\* \[wrapped with (.+)\] \*/,Te=/,? & /,ze=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qe=/[()=,{}\[\]\/\s]/,Le=/\\(\\)?/g,Ke=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Jt=/\w*$/,Ir=/^[-+]0x[0-9a-f]+$/i,Nr=/^0b[01]+$/i,Fr=/^\[object .+?Constructor\]$/,Yr=/^0o[0-7]+$/i,kt=/^(?:0|[1-9]\d*)$/,Vr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ei=/($^)/,dn=/['\n\r\u2028\u2029\\]/g,ki="\\ud800-\\udfff",nr="\\u0300-\\u036f",q="\\ufe20-\\ufe2f",er="\\u20d0-\\u20ff",cu=nr+q+er,fn="\\u2700-\\u27bf",Ha="a-z\\xdf-\\xf6\\xf8-\\xff",nc="\\xac\\xb1\\xd7\\xf7",aa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",oa="\\u2000-\\u206f",on=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",En="A-Z\\xc0-\\xd6\\xd8-\\xde",Io="\\ufe0e\\ufe0f",Xn=nc+aa+oa+on,sc="['\u2019]",uu="["+ki+"]",ac="["+Xn+"]",hu="["+cu+"]",hm="\\d+",bh="["+fn+"]",Ni="["+Ha+"]",md="[^"+ki+Xn+hm+fn+Ha+En+"]",pu="\\ud83c[\\udffb-\\udfff]",L0="(?:"+hu+"|"+pu+")",xh="[^"+ki+"]",Ih="(?:\\ud83c[\\udde6-\\uddff]){2}",oc="[\\ud800-\\udbff][\\udc00-\\udfff]",Xi="["+En+"]",al="\\u200d",Zr="(?:"+Ni+"|"+md+")",Qt="(?:"+Xi+"|"+md+")",Sh="(?:"+sc+"(?:d|ll|m|re|s|t|ve))?",K="(?:"+sc+"(?:D|LL|M|RE|S|T|VE))?",Z=L0+"?",ce="["+Io+"]?",oe="(?:"+al+"(?:"+[xh,Ih,oc].join("|")+")"+ce+Z+")*",pe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",qe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",et=ce+Z+oe,Ht="(?:"+[bh,Ih,oc].join("|")+")"+et,Mt="(?:"+[xh+hu+"?",hu,Ih,oc,uu].join("|")+")",Ft=RegExp(sc,"g"),$t=RegExp(hu,"g"),pt=RegExp(pu+"(?="+pu+")|"+Mt+et,"g"),qt=RegExp([Xi+"?"+Ni+"+"+Sh+"(?="+[ac,Xi,"$"].join("|")+")",Qt+"+"+K+"(?="+[ac,Xi+Zr,"$"].join("|")+")",Xi+"?"+Zr+"+"+Sh,Xi+"+"+K,qe,pe,hm,Ht].join("|"),"g"),zt=RegExp("["+al+ki+cu+Io+"]"),ur=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,sr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],xi=-1,ar={};ar[Ze]=ar[gt]=ar[ye]=ar[Re]=ar[ut]=ar[vt]=ar[Et]=ar[Ct]=ar[Dt]=!0,ar[ue]=ar[ve]=ar[Ce]=ar[de]=ar[Ge]=ar[we]=ar[je]=ar[Oe]=ar[Be]=ar[ke]=ar[bt]=ar[J]=ar[$]=ar[re]=ar[Y]=!1;var Zt={};Zt[ue]=Zt[ve]=Zt[Ce]=Zt[Ge]=Zt[de]=Zt[we]=Zt[Ze]=Zt[gt]=Zt[ye]=Zt[Re]=Zt[ut]=Zt[Be]=Zt[ke]=Zt[bt]=Zt[J]=Zt[$]=Zt[re]=Zt[me]=Zt[vt]=Zt[Et]=Zt[Ct]=Zt[Dt]=!0,Zt[je]=Zt[Oe]=Zt[Y]=!1;var ti={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},So={"&":"&","<":"<",">":">",'"':""","'":"'"},as={"&":"&","<":"<",">":">",""":'"',"'":"'"},du={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},SE=parseFloat,F0=parseInt,e_=typeof global=="object"&&global&&global.Object===Object&&global,P3=typeof self=="object"&&self&&self.Object===Object&&self,os=e_||P3||Function("return this")(),H0=typeof jT=="object"&&jT&&!jT.nodeType&&jT,_h=H0&&typeof kI=="object"&&kI&&!kI.nodeType&&kI,t_=_h&&_h.exports===H0,_E=t_&&e_.process,Ua=function(){try{var Pe=_h&&_h.require&&_h.require("util").types;return Pe||_E&&_E.binding&&_E.binding("util")}catch(tt){}}(),gd=Ua&&Ua.isArrayBuffer,r_=Ua&&Ua.isDate,i_=Ua&&Ua.isMap,pm=Ua&&Ua.isRegExp,n_=Ua&&Ua.isSet,s_=Ua&&Ua.isTypedArray;function wn(Pe,tt,Ye){switch(Ye.length){case 0:return Pe.call(tt);case 1:return Pe.call(tt,Ye[0]);case 2:return Pe.call(tt,Ye[0],Ye[1]);case 3:return Pe.call(tt,Ye[0],Ye[1],Ye[2])}return Pe.apply(tt,Ye)}function a_(Pe,tt,Ye,Gt){for(var Ar=-1,ri=Pe==null?0:Pe.length;++Ar-1}function RE(Pe,tt,Ye){for(var Gt=-1,Ar=Pe==null?0:Pe.length;++Gt-1;);return Ye}function d_(Pe,tt){for(var Ye=Pe.length;Ye--&&vd(tt,Pe[Ye],0)>-1;);return Ye}function ol(Pe,tt){for(var Ye=Pe.length,Gt=0;Ye--;)Pe[Ye]===tt&&++Gt;return Gt}var HE=PE(ti),F3=PE(So);function H3(Pe){return"\\"+du[Pe]}function U3(Pe,tt){return Pe==null?t:Pe[tt]}function yd(Pe){return zt.test(Pe)}function f_(Pe){return ur.test(Pe)}function m_(Pe){for(var tt,Ye=[];!(tt=Pe.next()).done;)Ye.push(tt.value);return Ye}function UE(Pe){var tt=-1,Ye=Array(Pe.size);return Pe.forEach(function(Gt,Ar){Ye[++tt]=[Ar,Gt]}),Ye}function g_(Pe,tt){return function(Ye){return Pe(tt(Ye))}}function mu(Pe,tt){for(var Ye=-1,Gt=Pe.length,Ar=0,ri=[];++Ye-1}function DCe(v,T){var R=this.__data__,B=b_(R,v);return B<0?(++this.size,R.push([v,T])):R[B][1]=T,this}Oh.prototype.clear=_Ce,Oh.prototype.delete=wCe,Oh.prototype.get=RCe,Oh.prototype.has=MCe,Oh.prototype.set=DCe;function Ph(v){var T=-1,R=v==null?0:v.length;for(this.clear();++T=T?v:T)),v}function ul(v,T,R,B,Q,fe){var Se,Me=T&c,He=T&u,st=T&h;if(R&&(Se=Q?R(v,B,Q,fe):R(v)),Se!==t)return Se;if(!Rn(v))return v;var at=Hr(v);if(at){if(Se=PAe(v),!Me)return Ga(v,Se)}else{var Tt=Ws(v),Ut=Tt==Oe||Tt==dt;if(wd(v))return gV(v,Me);if(Tt==bt||Tt==ue||Ut&&!Q){if(Se=He||Ut?{}:LV(v),!Me)return He?xAe(v,WCe(Se,v)):bAe(v,qG(Se,v))}else{if(!Zt[Tt])return Q?v:{};Se=NAe(v,Tt,Me)}}fe||(fe=new uc);var rr=fe.get(v);if(rr)return rr;fe.set(v,Se),u7(v)?v.forEach(function(br){Se.add(ul(br,T,R,br,v,fe))}):l7(v)&&v.forEach(function(br,ii){Se.set(ii,ul(br,T,R,ii,v,fe))});var Er=st?He?EP:TP:He?za:_s,zr=at?t:Er(v);return Ba(zr||v,function(br,ii){zr&&(ii=br,br=v[ii]),WE(Se,ii,ul(br,T,R,ii,v,fe))}),Se}function qCe(v){var T=_s(v);return function(R){return YG(R,v,T)}}function YG(v,T,R){var B=R.length;if(v==null)return!B;for(v=$i(v);B--;){var Q=R[B],fe=T[Q],Se=v[Q];if(Se===t&&!(Q in v)||!fe(Se))return!1}return!0}function XG(v,T,R){if(typeof v!="function")throw new ka(n);return JE(function(){v.apply(t,R)},T)}function qE(v,T,R,B){var Q=-1,fe=wh,Se=!0,Me=v.length,He=[],st=T.length;if(!Me)return He;R&&(T=Ji(T,ca(R))),B?(fe=RE,Se=!1):T.length>=e&&(fe=dm,Se=!1,T=new gm(T));e:for(;++QQ?0:Q+R),B=B===t||B>Q?Q:Br(B),B<0&&(B+=Q),B=R>B?0:p7(B);R0&&R(Me)?T>1?Hs(Me,T-1,R,B,Q):fu(Q,Me):B||(Q[Q.length]=Me)}return Q}var tP=xV(),KG=xV(!0);function yu(v,T){return v&&tP(v,T,_s)}function rP(v,T){return v&&KG(v,T,_s)}function I_(v,T){return lc(T,function(R){return Uh(v[R])})}function ym(v,T){T=Sd(T,v);for(var R=0,B=T.length;v!=null&&RT}function $Ce(v,T){return v!=null&&Ii.call(v,T)}function ZCe(v,T){return v!=null&&T in $i(v)}function KCe(v,T,R){return v>=M(T,R)&&v=120&&at.length>=120)?new gm(Se&&at):t}at=v[0];var Tt=-1,Ut=Me[0];e:for(;++Tt-1;)Me!==v&&Y0.call(Me,He,1),Y0.call(v,He,1);return v}function lV(v,T){for(var R=v?T.length:0,B=R-1;R--;){var Q=T[R];if(R==B||Q!==fe){var fe=Q;Hh(Q)?Y0.call(v,Q,1):pP(v,Q)}}return v}function cP(v,T){return v+bd(te()*(T-v+1))}function uAe(v,T,R,B){for(var Q=-1,fe=I(Ah((T-v)/(R||1)),0),Se=Ye(fe);fe--;)Se[B?fe:++Q]=v,v+=R;return Se}function uP(v,T){var R="";if(!v||T<1||T>k)return R;do T%2&&(R+=v),T=bd(T/2),T&&(v+=v);while(T);return R}function $r(v,T){return RP(UV(v,T,ja),v+"")}function hAe(v){return WG(ev(v))}function pAe(v,T){var R=ev(v);return N_(R,vm(T,0,R.length))}function $E(v,T,R,B){if(!Rn(v))return v;T=Sd(T,v);for(var Q=-1,fe=T.length,Se=fe-1,Me=v;Me!=null&&++QQ?0:Q+T),R=R>Q?Q:R,R<0&&(R+=Q),Q=T>R?0:R-T>>>0,T>>>=0;for(var fe=Ye(Q);++B>>1,Se=v[fe];Se!==null&&!Mo(Se)&&(R?Se<=T:Se=e){var st=T?null:wAe(v);if(st)return B0(st);Se=!1,Q=dm,He=new gm}else He=T?[]:Me;e:for(;++B=B?v:hl(v,T,R)}var mV=X3||function(v){return os.clearTimeout(v)};function gV(v,T){if(T)return v.slice();var R=v.length,B=GE?GE(R):new v.constructor(R);return v.copy(B),B}function gP(v){var T=new v.constructor(v.byteLength);return new kE(T).set(new kE(v)),T}function vAe(v,T){var R=T?gP(v.buffer):v.buffer;return new v.constructor(R,v.byteOffset,v.byteLength)}function yAe(v){var T=new v.constructor(v.source,Jt.exec(v));return T.lastIndex=v.lastIndex,T}function TAe(v){return Kr?$i(Kr.call(v)):{}}function vV(v,T){var R=T?gP(v.buffer):v.buffer;return new v.constructor(R,v.byteOffset,v.length)}function yV(v,T){if(v!==T){var R=v!==t,B=v===null,Q=v===v,fe=Mo(v),Se=T!==t,Me=T===null,He=T===T,st=Mo(T);if(!Me&&!st&&!fe&&v>T||fe&&Se&&He&&!Me&&!st||B&&Se&&He||!R&&He||!Q)return 1;if(!B&&!fe&&!st&&v=Me)return He;var st=R[B];return He*(st=="desc"?-1:1)}}return v.index-T.index}function TV(v,T,R,B){for(var Q=-1,fe=v.length,Se=R.length,Me=-1,He=T.length,st=I(fe-Se,0),at=Ye(He+st),Tt=!B;++Me1?R[Q-1]:t,Se=Q>2?R[2]:t;for(fe=v.length>3&&typeof fe=="function"?(Q--,fe):t,Se&&pa(R[0],R[1],Se)&&(fe=Q<3?t:fe,Q=1),T=$i(T);++B-1?Q[fe?T[Se]:Se]:t}}function _V(v){return Fh(function(T){var R=T.length,B=R,Q=cl.prototype.thru;for(v&&T.reverse();B--;){var fe=T[B];if(typeof fe!="function")throw new ka(n);if(Q&&!Se&&O_(fe)=="wrapper")var Se=new cl([],!0)}for(B=Se?B:R;++B1&&yi.reverse(),at&&HeMe))return!1;var st=fe.get(v),at=fe.get(T);if(st&&at)return st==T&&at==v;var Tt=-1,Ut=!0,rr=R&d?new gm:t;for(fe.set(v,T),fe.set(T,v);++Tt1?"& ":"")+T[B],T=T.join(R>2?", ":" "),v.replace(fd,`{ +/* [wrapped with `+T+`] */ +`)}function FAe(v){return Hr(v)||bm(v)||!!(zE&&v&&v[zE])}function Hh(v,T){var R=typeof v;return T=T==null?k:T,!!T&&(R=="number"||R!="symbol"&&kt.test(v))&&v>-1&&v%1==0&&v0){if(++T>=F)return arguments[0]}else T=0;return v.apply(t,arguments)}}function N_(v,T){var R=-1,B=v.length,Q=B-1;for(T=T===t?B:T;++R1?v[T-1]:t;return R=typeof R=="function"?(v.pop(),R):t,ZV(v,R)});function KV(v){var T=ie(v);return T.__chain__=!0,T}function YOe(v,T){return T(v),v}function L_(v,T){return T(v)}var XOe=Fh(function(v){var T=v.length,R=T?v[0]:0,B=this.__wrapped__,Q=function(fe){return eP(fe,v)};return T>1||this.__actions__.length||!(B instanceof di)||!Hh(R)?this.thru(Q):(B=B.slice(R,+R+(T?1:0)),B.__actions__.push({func:L_,args:[Q],thisArg:t}),new cl(B,this.__chain__).thru(function(fe){return T&&!fe.length&&fe.push(t),fe}))});function $Oe(){return KV(this)}function ZOe(){return new cl(this.value(),this.__chain__)}function KOe(){this.__values__===t&&(this.__values__=h7(this.value()));var v=this.__index__>=this.__values__.length,T=v?t:this.__values__[this.__index__++];return{done:v,value:T}}function JOe(){return this}function QOe(v){for(var T,R=this;R instanceof ll;){var B=jV(R);B.__index__=0,B.__values__=t,T?Q.__wrapped__=B:T=B;var Q=B;R=R.__wrapped__}return Q.__wrapped__=v,T}function e3e(){var v=this.__wrapped__;if(v instanceof di){var T=v;return this.__actions__.length&&(T=new di(this)),T=T.reverse(),T.__actions__.push({func:L_,args:[MP],thisArg:t}),new cl(T,this.__chain__)}return this.thru(MP)}function t3e(){return dV(this.__wrapped__,this.__actions__)}var r3e=R_(function(v,T,R){Ii.call(v,R)?++v[R]:Nh(v,R,1)});function i3e(v,T,R){var B=Hr(v)?wE:YCe;return R&&pa(v,T,R)&&(T=t),B(v,vr(T,3))}function n3e(v,T){var R=Hr(v)?lc:ZG;return R(v,vr(T,3))}var s3e=SV(WV),a3e=SV(qV);function o3e(v,T){return Hs(F_(v,T),1)}function l3e(v,T){return Hs(F_(v,T),N)}function c3e(v,T,R){return R=R===t?1:Br(R),Hs(F_(v,T),R)}function JV(v,T){var R=Hr(v)?Ba:xd;return R(v,vr(T,3))}function QV(v,T){var R=Hr(v)?Fs:$G;return R(v,vr(T,3))}var u3e=R_(function(v,T,R){Ii.call(v,R)?v[R].push(T):Nh(v,R,[T])});function h3e(v,T,R,B){v=Va(v)?v:ev(v),R=R&&!B?Br(R):0;var Q=v.length;return R<0&&(R=I(Q+R,0)),G_(v)?R<=Q&&v.indexOf(T,R)>-1:!!Q&&vd(v,T,R)>-1}var p3e=$r(function(v,T,R){var B=-1,Q=typeof T=="function",fe=Va(v)?Ye(v.length):[];return xd(v,function(Se){fe[++B]=Q?wn(T,Se,R):YE(Se,T,R)}),fe}),d3e=R_(function(v,T,R){Nh(v,R,T)});function F_(v,T){var R=Hr(v)?Ji:rV;return R(v,vr(T,3))}function f3e(v,T,R,B){return v==null?[]:(Hr(T)||(T=T==null?[]:[T]),R=B?t:R,Hr(R)||(R=R==null?[]:[R]),aV(v,T,R))}var m3e=R_(function(v,T,R){v[R?0:1].push(T)},function(){return[[],[]]});function g3e(v,T,R){var B=Hr(v)?ME:u_,Q=arguments.length<3;return B(v,vr(T,4),R,Q,xd)}function v3e(v,T,R){var B=Hr(v)?o_:u_,Q=arguments.length<3;return B(v,vr(T,4),R,Q,$G)}function y3e(v,T){var R=Hr(v)?lc:ZG;return R(v,B_(vr(T,3)))}function T3e(v){var T=Hr(v)?WG:hAe;return T(v)}function E3e(v,T,R){(R?pa(v,T,R):T===t)?T=1:T=Br(T);var B=Hr(v)?VCe:pAe;return B(v,T)}function b3e(v){var T=Hr(v)?zCe:fAe;return T(v)}function x3e(v){if(v==null)return 0;if(Va(v))return G_(v)?Td(v):v.length;var T=Ws(v);return T==Be||T==$?v.size:aP(v).length}function I3e(v,T,R){var B=Hr(v)?DE:mAe;return R&&pa(v,T,R)&&(T=t),B(v,vr(T,3))}var S3e=$r(function(v,T){if(v==null)return[];var R=T.length;return R>1&&pa(v,T[0],T[1])?T=[]:R>2&&pa(T[0],T[1],T[2])&&(T=[T[0]]),aV(v,Hs(T,1),[])}),H_=$3||function(){return os.Date.now()};function _3e(v,T){if(typeof T!="function")throw new ka(n);return v=Br(v),function(){if(--v<1)return T.apply(this,arguments)}}function e7(v,T,R){return T=R?t:T,T=v&&T==null?v.length:T,Lh(v,S,t,t,t,t,T)}function t7(v,T){var R;if(typeof T!="function")throw new ka(n);return v=Br(v),function(){return--v>0&&(R=T.apply(this,arguments)),v<=1&&(T=t),R}}var CP=$r(function(v,T,R){var B=f;if(R.length){var Q=mu(R,J0(CP));B|=b}return Lh(v,B,T,R,Q)}),r7=$r(function(v,T,R){var B=f|m;if(R.length){var Q=mu(R,J0(r7));B|=b}return Lh(T,B,v,R,Q)});function i7(v,T,R){T=R?t:T;var B=Lh(v,y,t,t,t,t,t,T);return B.placeholder=i7.placeholder,B}function n7(v,T,R){T=R?t:T;var B=Lh(v,E,t,t,t,t,t,T);return B.placeholder=n7.placeholder,B}function s7(v,T,R){var B,Q,fe,Se,Me,He,st=0,at=!1,Tt=!1,Ut=!0;if(typeof v!="function")throw new ka(n);T=dl(T)||0,Rn(R)&&(at=!!R.leading,Tt="maxWait"in R,fe=Tt?I(dl(R.maxWait)||0,T):fe,Ut="trailing"in R?!!R.trailing:Ut);function rr(Kn){var pc=B,kh=Q;return B=Q=t,st=Kn,Se=v.apply(kh,pc),Se}function Er(Kn){return st=Kn,Me=JE(ii,T),at?rr(Kn):Se}function zr(Kn){var pc=Kn-He,kh=Kn-st,S7=T-pc;return Tt?M(S7,fe-kh):S7}function br(Kn){var pc=Kn-He,kh=Kn-st;return He===t||pc>=T||pc<0||Tt&&kh>=fe}function ii(){var Kn=H_();if(br(Kn))return yi(Kn);Me=JE(ii,zr(Kn))}function yi(Kn){return Me=t,Ut&&B?rr(Kn):(B=Q=t,Se)}function Do(){Me!==t&&mV(Me),st=0,B=He=Q=Me=t}function da(){return Me===t?Se:yi(H_())}function Co(){var Kn=H_(),pc=br(Kn);if(B=arguments,Q=this,He=Kn,pc){if(Me===t)return Er(He);if(Tt)return mV(Me),Me=JE(ii,T),rr(He)}return Me===t&&(Me=JE(ii,T)),Se}return Co.cancel=Do,Co.flush=da,Co}var w3e=$r(function(v,T){return XG(v,1,T)}),R3e=$r(function(v,T,R){return XG(v,dl(T)||0,R)});function M3e(v){return Lh(v,P)}function U_(v,T){if(typeof v!="function"||T!=null&&typeof T!="function")throw new ka(n);var R=function(){var B=arguments,Q=T?T.apply(this,B):B[0],fe=R.cache;if(fe.has(Q))return fe.get(Q);var Se=v.apply(this,B);return R.cache=fe.set(Q,Se)||fe,Se};return R.cache=new(U_.Cache||Ph),R}U_.Cache=Ph;function B_(v){if(typeof v!="function")throw new ka(n);return function(){var T=arguments;switch(T.length){case 0:return!v.call(this);case 1:return!v.call(this,T[0]);case 2:return!v.call(this,T[0],T[1]);case 3:return!v.call(this,T[0],T[1],T[2])}return!v.apply(this,T)}}function D3e(v){return t7(2,v)}var C3e=gAe(function(v,T){T=T.length==1&&Hr(T[0])?Ji(T[0],ca(vr())):Ji(Hs(T,1),ca(vr()));var R=T.length;return $r(function(B){for(var Q=-1,fe=M(B.length,R);++Q=T}),bm=QG(function(){return arguments}())?QG:function(v){return Hn(v)&&Ii.call(v,"callee")&&!VE.call(v,"callee")},Hr=Ye.isArray,W3e=gd?ca(gd):QCe;function Va(v){return v!=null&&k_(v.length)&&!Uh(v)}function Zn(v){return Hn(v)&&Va(v)}function q3e(v){return v===!0||v===!1||Hn(v)&&ha(v)==de}var wd=K3||VP,Y3e=r_?ca(r_):eAe;function X3e(v){return Hn(v)&&v.nodeType===1&&!QE(v)}function $3e(v){if(v==null)return!0;if(Va(v)&&(Hr(v)||typeof v=="string"||typeof v.splice=="function"||wd(v)||Q0(v)||bm(v)))return!v.length;var T=Ws(v);if(T==Be||T==$)return!v.size;if(KE(v))return!aP(v).length;for(var R in v)if(Ii.call(v,R))return!1;return!0}function Z3e(v,T){return XE(v,T)}function K3e(v,T,R){R=typeof R=="function"?R:t;var B=R?R(v,T):t;return B===t?XE(v,T,t,R):!!B}function OP(v){if(!Hn(v))return!1;var T=ha(v);return T==je||T==Fe||typeof v.message=="string"&&typeof v.name=="string"&&!QE(v)}function J3e(v){return typeof v=="number"&&$0(v)}function Uh(v){if(!Rn(v))return!1;var T=ha(v);return T==Oe||T==dt||T==be||T==_e}function o7(v){return typeof v=="number"&&v==Br(v)}function k_(v){return typeof v=="number"&&v>-1&&v%1==0&&v<=k}function Rn(v){var T=typeof v;return v!=null&&(T=="object"||T=="function")}function Hn(v){return v!=null&&typeof v=="object"}var l7=i_?ca(i_):rAe;function Q3e(v,T){return v===T||sP(v,T,xP(T))}function ePe(v,T,R){return R=typeof R=="function"?R:t,sP(v,T,xP(T),R)}function tPe(v){return c7(v)&&v!=+v}function rPe(v){if(BAe(v))throw new Ar(i);return eV(v)}function iPe(v){return v===null}function nPe(v){return v==null}function c7(v){return typeof v=="number"||Hn(v)&&ha(v)==ke}function QE(v){if(!Hn(v)||ha(v)!=bt)return!1;var T=q0(v);if(T===null)return!0;var R=Ii.call(T,"constructor")&&T.constructor;return typeof R=="function"&&R instanceof R&&Mh.call(R)==T_}var PP=pm?ca(pm):iAe;function sPe(v){return o7(v)&&v>=-k&&v<=k}var u7=n_?ca(n_):nAe;function G_(v){return typeof v=="string"||!Hr(v)&&Hn(v)&&ha(v)==re}function Mo(v){return typeof v=="symbol"||Hn(v)&&ha(v)==me}var Q0=s_?ca(s_):sAe;function aPe(v){return v===t}function oPe(v){return Hn(v)&&Ws(v)==Y}function lPe(v){return Hn(v)&&ha(v)==xe}var cPe=A_(oP),uPe=A_(function(v,T){return v<=T});function h7(v){if(!v)return[];if(Va(v))return G_(v)?wo(v):Ga(v);if(ua&&v[ua])return m_(v[ua]());var T=Ws(v),R=T==Be?UE:T==$?B0:ev;return R(v)}function Bh(v){if(!v)return v===0?v:0;if(v=dl(v),v===N||v===-N){var T=v<0?-1:1;return T*G}return v===v?v:0}function Br(v){var T=Bh(v),R=T%1;return T===T?R?T-R:T:0}function p7(v){return v?vm(Br(v),0,j):0}function dl(v){if(typeof v=="number")return v;if(Mo(v))return U;if(Rn(v)){var T=typeof v.valueOf=="function"?v.valueOf():v;v=Rn(T)?T+"":T}if(typeof v!="string")return v===0?v:+v;v=h_(v);var R=Nr.test(v);return R||Yr.test(v)?F0(v.slice(2),R?2:8):Ir.test(v)?U:+v}function d7(v){return Tu(v,za(v))}function hPe(v){return v?vm(Br(v),-k,k):v===0?v:0}function Gi(v){return v==null?"":Ro(v)}var pPe=Z0(function(v,T){if(KE(T)||Va(T)){Tu(T,_s(T),v);return}for(var R in T)Ii.call(T,R)&&WE(v,R,T[R])}),f7=Z0(function(v,T){Tu(T,za(T),v)}),V_=Z0(function(v,T,R,B){Tu(T,za(T),v,B)}),dPe=Z0(function(v,T,R,B){Tu(T,_s(T),v,B)}),fPe=Fh(eP);function mPe(v,T){var R=Ss(v);return T==null?R:qG(R,T)}var gPe=$r(function(v,T){v=$i(v);var R=-1,B=T.length,Q=B>2?T[2]:t;for(Q&&pa(T[0],T[1],Q)&&(B=1);++R1),fe}),Tu(v,EP(v),R),B&&(R=ul(R,c|u|h,RAe));for(var Q=T.length;Q--;)pP(R,T[Q]);return R});function NPe(v,T){return g7(v,B_(vr(T)))}var LPe=Fh(function(v,T){return v==null?{}:lAe(v,T)});function g7(v,T){if(v==null)return{};var R=Ji(EP(v),function(B){return[B]});return T=vr(T),oV(v,R,function(B,Q){return T(B,Q[0])})}function FPe(v,T,R){T=Sd(T,v);var B=-1,Q=T.length;for(Q||(Q=1,v=t);++BT){var B=v;v=T,T=B}if(R||v%1||T%1){var Q=te();return M(v+Q*(T-v+SE("1e-"+((Q+"").length-1))),T)}return cP(v,T)}var YPe=K0(function(v,T,R){return T=T.toLowerCase(),v+(R?T7(T):T)});function T7(v){return FP(Gi(v).toLowerCase())}function E7(v){return v=Gi(v),v&&v.replace(Vr,HE).replace($t,"")}function XPe(v,T,R){v=Gi(v),T=Ro(T);var B=v.length;R=R===t?B:vm(Br(R),0,B);var Q=R;return R-=T.length,R>=0&&v.slice(R,Q)==T}function $Pe(v){return v=Gi(v),v&&_t.test(v)?v.replace(Xe,F3):v}function ZPe(v){return v=Gi(v),v&&Is.test(v)?v.replace(ds,"\\$&"):v}var KPe=K0(function(v,T,R){return v+(R?"-":"")+T.toLowerCase()}),JPe=K0(function(v,T,R){return v+(R?" ":"")+T.toLowerCase()}),QPe=IV("toLowerCase");function e2e(v,T,R){v=Gi(v),T=Br(T);var B=T?Td(v):0;if(!T||B>=T)return v;var Q=(T-B)/2;return C_(bd(Q),R)+v+C_(Ah(Q),R)}function t2e(v,T,R){v=Gi(v),T=Br(T);var B=T?Td(v):0;return T&&B>>0,R?(v=Gi(v),v&&(typeof T=="string"||T!=null&&!PP(T))&&(T=Ro(T),!T&&yd(v))?_d(wo(v),0,R):v.split(T,R)):[]}var l2e=K0(function(v,T,R){return v+(R?" ":"")+FP(T)});function c2e(v,T,R){return v=Gi(v),R=R==null?0:vm(Br(R),0,v.length),T=Ro(T),v.slice(R,R+T.length)==T}function u2e(v,T,R){var B=ie.templateSettings;R&&pa(v,T,R)&&(T=t),v=Gi(v),T=V_({},T,B,CV);var Q=V_({},T.imports,B.imports,CV),fe=_s(Q),Se=FE(Q,fe),Me,He,st=0,at=T.interpolate||ei,Tt="__p += '",Ut=BE((T.escape||ei).source+"|"+at.source+"|"+(at===Ki?Ke:ei).source+"|"+(T.evaluate||ei).source+"|$","g"),rr="//# sourceURL="+(Ii.call(T,"sourceURL")?(T.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++xi+"]")+` +`;v.replace(Ut,function(br,ii,yi,Do,da,Co){return yi||(yi=Do),Tt+=v.slice(st,Co).replace(dn,H3),ii&&(Me=!0,Tt+=`' + +__e(`+ii+`) + +'`),da&&(He=!0,Tt+=`'; +`+da+`; +__p += '`),yi&&(Tt+=`' + +((__t = (`+yi+`)) == null ? '' : __t) + +'`),st=Co+br.length,br}),Tt+=`'; +`;var Er=Ii.call(T,"variable")&&T.variable;if(!Er)Tt=`with (obj) { +`+Tt+` +} +`;else if(Qe.test(Er))throw new Ar(s);Tt=(He?Tt.replace(cr,""):Tt).replace(Xt,"$1").replace(gr,"$1;"),Tt="function("+(Er||"obj")+`) { +`+(Er?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(Me?", __e = _.escape":"")+(He?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Tt+`return __p +}`;var zr=x7(function(){return ri(fe,rr+"return "+Tt).apply(t,Se)});if(zr.source=Tt,OP(zr))throw zr;return zr}function h2e(v){return Gi(v).toLowerCase()}function p2e(v){return Gi(v).toUpperCase()}function d2e(v,T,R){if(v=Gi(v),v&&(R||T===t))return h_(v);if(!v||!(T=Ro(T)))return v;var B=wo(v),Q=wo(T),fe=p_(B,Q),Se=d_(B,Q)+1;return _d(B,fe,Se).join("")}function f2e(v,T,R){if(v=Gi(v),v&&(R||T===t))return v.slice(0,v_(v)+1);if(!v||!(T=Ro(T)))return v;var B=wo(v),Q=d_(B,wo(T))+1;return _d(B,0,Q).join("")}function m2e(v,T,R){if(v=Gi(v),v&&(R||T===t))return v.replace(ic,"");if(!v||!(T=Ro(T)))return v;var B=wo(v),Q=p_(B,wo(T));return _d(B,Q).join("")}function g2e(v,T){var R=_,B=w;if(Rn(T)){var Q="separator"in T?T.separator:Q;R="length"in T?Br(T.length):R,B="omission"in T?Ro(T.omission):B}v=Gi(v);var fe=v.length;if(yd(v)){var Se=wo(v);fe=Se.length}if(R>=fe)return v;var Me=R-Td(B);if(Me<1)return B;var He=Se?_d(Se,0,Me).join(""):v.slice(0,Me);if(Q===t)return He+B;if(Se&&(Me+=He.length-Me),PP(Q)){if(v.slice(Me).search(Q)){var st,at=He;for(Q.global||(Q=BE(Q.source,Gi(Jt.exec(Q))+"g")),Q.lastIndex=0;st=Q.exec(at);)var Tt=st.index;He=He.slice(0,Tt===t?Me:Tt)}}else if(v.indexOf(Ro(Q),Me)!=Me){var Ut=He.lastIndexOf(Q);Ut>-1&&(He=He.slice(0,Ut))}return He+B}function v2e(v){return v=Gi(v),v&<.test(v)?v.replace(Ae,V3):v}var y2e=K0(function(v,T,R){return v+(R?" ":"")+T.toUpperCase()}),FP=IV("toUpperCase");function b7(v,T,R){return v=Gi(v),T=R?t:T,T===t?f_(v)?j3(v):AE(v):v.match(T)||[]}var x7=$r(function(v,T){try{return wn(v,t,T)}catch(R){return OP(R)?R:new Ar(R)}}),T2e=Fh(function(v,T){return Ba(T,function(R){R=Eu(R),Nh(v,R,CP(v[R],v))}),v});function E2e(v){var T=v==null?0:v.length,R=vr();return v=T?Ji(v,function(B){if(typeof B[1]!="function")throw new ka(n);return[R(B[0]),B[1]]}):[],$r(function(B){for(var Q=-1;++Qk)return[];var R=j,B=M(v,j);T=vr(T),v-=j;for(var Q=LE(B,T);++R0||T<0)?new di(R):(v<0?R=R.takeRight(-v):v&&(R=R.drop(v)),T!==t&&(T=Br(T),R=T<0?R.dropRight(-T):R.take(T-v)),R)},di.prototype.takeRightWhile=function(v){return this.reverse().takeWhile(v).reverse()},di.prototype.toArray=function(){return this.take(j)},yu(di.prototype,function(v,T){var R=/^(?:filter|find|map|reject)|While$/.test(T),B=/^(?:head|last)$/.test(T),Q=ie[B?"take"+(T=="last"?"Right":""):T],fe=B||/^find/.test(T);Q&&(ie.prototype[T]=function(){var Se=this.__wrapped__,Me=B?[1]:arguments,He=Se instanceof di,st=Me[0],at=He||Hr(Se),Tt=function(ii){var yi=Q.apply(ie,fu([ii],Me));return B&&Ut?yi[0]:yi};at&&R&&typeof st=="function"&&st.length!=1&&(He=at=!1);var Ut=this.__chain__,rr=!!this.__actions__.length,Er=fe&&!Ut,zr=He&&!rr;if(!fe&&at){Se=zr?Se:new di(this);var br=v.apply(Se,Me);return br.__actions__.push({func:L_,args:[Tt],thisArg:t}),new cl(br,Ut)}return Er&&zr?v.apply(this,Me):(br=this.thru(Tt),Er?B?br.value()[0]:br.value():br)})}),Ba(["pop","push","shift","sort","splice","unshift"],function(v){var T=G0[v],R=/^(?:push|sort|unshift)$/.test(v)?"tap":"thru",B=/^(?:pop|shift)$/.test(v);ie.prototype[v]=function(){var Q=arguments;if(B&&!this.__chain__){var fe=this.value();return T.apply(Hr(fe)?fe:[],Q)}return this[R](function(Se){return T.apply(Hr(Se)?Se:[],Q)})}}),yu(di.prototype,function(v,T){var R=ie[T];if(R){var B=R.name+"";Ii.call(wt,B)||(wt[B]=[]),wt[B].push({name:T,func:R})}}),wt[M_(t,m).name]=[{name:"wrapper",func:t}],di.prototype.clone=vCe,di.prototype.reverse=yCe,di.prototype.value=TCe,ie.prototype.at=XOe,ie.prototype.chain=$Oe,ie.prototype.commit=ZOe,ie.prototype.next=KOe,ie.prototype.plant=QOe,ie.prototype.reverse=e3e,ie.prototype.toJSON=ie.prototype.valueOf=ie.prototype.value=t3e,ie.prototype.first=ie.prototype.head,ua&&(ie.prototype[ua]=JOe),ie},gu=W3();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(os._=gu,define(function(){return gu})):_h?((_h.exports=gu)._=gu,H0._=gu):os._=gu}).call(jT)});(function(){if(!document.getElementById("3e9889bc77866f2718605a78878686cd050621630450736d1211402bd06b6b09")){var t=document.createElement("style");t.id="3e9889bc77866f2718605a78878686cd050621630450736d1211402bd06b6b09",t.textContent=`@import"https://at.alicdn.com/t/font_2809422_tyv73h24h8.css";@import"https://at.alicdn.com/t/c/font_2802048_la37g7yevws.css";.axesRenderer{width:100px;height:100px;position:absolute;display:block;bottom:1px;left:10px;background:#ffffff00}.overview-map{width:200px;height:200px;top:10px;left:10px;position:absolute;z-index:1;border:1px #50505090 solid;background-color:#80808030}.statsOutput{position:absolute;opacity:.6;top:1px;left:1px}#navCube{position:absolute;bottom:10px;right:10px;z-index:1;pointer-events:none;cursor:pointer}#navCube:hover{opacity:1}.css3d-navcube .navcube-plane{backface-visibility:hidden;z-index:1;transition:all .2s}.css3d-navcube .navcube-plane.outer{opacity:.7;background:linear-gradient(-45deg,transparent 15px,#efefef 0) bottom right,linear-gradient(-135deg,transparent 15px,#efefef 0) top right,linear-gradient(135deg,transparent 15px,#efefef 0) top left,linear-gradient(45deg,transparent 15px,#efefef 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane.inner{margin:2px;font-size:30px;text-align:center;line-height:100px;background:linear-gradient(-45deg,transparent 14px,#2c7be5 0) bottom right,linear-gradient(-135deg,transparent 14px,#2c7be5 0) top right,linear-gradient(135deg,transparent 14px,#2c7be5 0) top left,linear-gradient(45deg,transparent 14px,#2c7be5 0) bottom left;background-size:70% 70%;background-repeat:no-repeat}.css3d-navcube .navcube-plane:hover{opacity:1!important}.css3d-navcube .navcube-edge{opacity:0;z-index:2;transition:all .2s}.css3d-navcube .navcube-edge:hover{opacity:1!important}.css3d-navcube .navcube-corner{opacity:.7;backface-visibility:hidden;box-sizing:content-box;transform-origin:50% 33%;top:4px;z-index:3;transition:all .2s}.css3d-navcube .navcube-corner-plane{opacity:0;backface-visibility:hidden;transform-origin:bottom;top:-6.5px;z-index:3;transition:all .2s}.css3d-navcube .highlight{opacity:1}.progress-bar{z-index:3;bottom:20%;left:25%;position:absolute;color:#ffffffa0;width:50%;user-select:none}.progress-bar.hidden{display:none}.progress-bar .progress-bar-item{width:100%;text-align:center;padding:2px}.pop-panel{z-index:99999999;top:calc(70% - 100px);left:calc(90% - 160px);position:absolute;background:#ffffff;color:#333;border-radius:4px;width:160px;box-shadow:0 12px 48px 16px #00000008,0 9px 28px #0000000d,0 6px 16px -8px #00000014}.pop-panel .pop-panel-header{font-size:16px;font-weight:bolder;padding:16px 24px 8px;color:#333;border-bottom:1px solid #EFEFEF;cursor:move;user-select:none}.pop-panel .pop-panel-body{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{display:inline-block;cursor:pointer;margin-right:16px;font-size:16px}.pop-panel .pop-panel-body .pop-panel-item .gemini-viewer-icon{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item:hover,.pop-panel .pop-panel-body .pop-panel-item.active{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}.model-layout-switch-bar{position:absolute;bottom:0;width:100%;height:24px;background:#ffffff;opacity:.7;display:flex;font-size:12px;line-height:1;overflow-x:scroll;z-index:1}.model-layout-switch-bar .model-layout-switch-bar-content{white-space:nowrap}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item{position:relative;display:inline-block;padding:4px 16px 0;color:#000;height:22px;margin-left:8px;cursor:pointer;transform:translate(0)}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border:1px solid #000;border-radius:0 0 5px 5px;border-top:0px;transform:perspective(8px) rotateX(-5deg) scaleY(.8);transform-origin:bottom}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:hover{color:#8080f0}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item:nth-child(n+2){margin-left:15px}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate{color:#fff!important}.model-layout-switch-bar .model-layout-switch-bar-content .model-layout-switch-item.activate:before{background:#000!important}.model-layout-switch-bar.hidden{display:none}.follow-tooltip{z-index:99999999;position:absolute;left:-500px;padding:6px;background:rgba(25,25,25,.3);color:#fffc;font-size:12px;border-radius:2px}.context-menu{position:absolute;box-sizing:border-box;background-color:#fff;width:200px;padding:2px;border-radius:2px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;cursor:pointer;z-index:2}.context-menu ul{list-style:none;padding:0}.context-menu ul:last-child li{border-bottom:0px}.context-menu li{height:2rem;padding:.5rem;box-sizing:border-box}.context-menu li:hover{background-color:#d3d3d3}.context-menu li.disabled{color:#ccc;cursor:not-allowed}.context-menu li:last-child{border-bottom:1px solid #000}.toolbar{position:absolute;display:flex;box-sizing:border-box;height:68px;left:50%;bottom:40px;padding:8px 20px;border:rgba(153,153,153,.8) 1px solid;border-radius:4px;background:rgba(255,255,255,.8);transform:translate(-50%);align-items:center;z-index:10;user-select:none}.toolbar .toolbar-group{display:flex;padding:0 2px;box-sizing:border-box}.toolbar .toolbar-group-division{width:1px;background-color:#999c;height:60%}.toolbar .toolbar-menu{display:flex;box-sizing:border-box;flex-direction:column;width:50px;height:50px;padding:3px 0;margin:0 2px;transition:all .3s;cursor:pointer;color:#666;border-radius:4px}.toolbar .toolbar-menu.active{color:#2c7be5}.toolbar .toolbar-menu .icon{width:24px;height:24px;margin:auto;font-size:24px;line-height:normal}.toolbar .toolbar-menu span{display:block;width:100%;margin:auto;font-size:.75em;text-align:center;user-select:none}.toolbar .toolbar-menu:hover{color:#2c7be5;background-color:#fffc}.toolbar .toolbar-parent-menu{position:relative}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu{display:block}.toolbar .toolbar-parent-menu:hover .toolbar-sub-menu-list{background:rgba(255,255,255,.8)}.toolbar .toolbar-parent-menu:after{content:"";position:absolute;box-sizing:border-box;width:0;height:0;right:2px;top:2px;border-width:4px;border-style:solid;border-top-color:#666;border-right-color:#666;border-bottom-color:transparent;border-left-color:transparent;border-radius:1px}.toolbar .toolbar-sub-menu{display:none;position:absolute;width:50px;bottom:100%}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list{margin-bottom:2px;border-radius:4px}.toolbar .toolbar-sub-menu .toolbar-sub-menu-list .toolbar-menu{margin:0}.bottom-bar{position:absolute;bottom:0;right:0;display:flex;color:#666;z-index:3;overflow:hidden;user-select:none}.bottom-bar i{font-size:18px;padding:3px;align-self:center;opacity:.4;cursor:pointer;line-height:1}.bottom-bar i:hover,.bottom-bar i.active{color:#2c7be5;opacity:1}.bottom-bar .fps{width:4rem}.bottom-bar span{align-self:center;padding:4px;font-size:14px}#statistics-tooltip,#tips-tooltip,#cameraInfo-tooltip{position:absolute;right:5px;bottom:30px;background:#666666;color:#fff;padding:8px 8px 5px;font-size:.8rem;border-radius:4px;z-index:3;opacity:.9;user-select:none}#statistics-tooltip p,#tips-tooltip p,#cameraInfo-tooltip p{padding-bottom:3px;margin:3px}#statistics-tooltip p span,#tips-tooltip p span,#cameraInfo-tooltip p span{float:left;margin-right:10px}.hide{display:none}.bim-viewer-spinner{position:absolute;display:flex;top:calc(50% - 20px);left:calc(50% - 20px);opacity:.8;justify-content:center;align-items:center;z-index:10}.bim-viewer-spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.bim-viewer-spinner.hidden{display:none}.svg-renderer{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.spinner{position:absolute;display:flex;width:100%;height:100%;opacity:.8;background-color:#fff;justify-content:center;align-items:center;z-index:10}.spinner>div{font-size:3rem;animation:spin 1s infinite linear;color:#2c7be5}.spinner.hidden{display:none}.compare-markups-canvas{position:absolute;top:0;left:0;pointer-events:none;user-select:none}.anchor{position:absolute;top:0;left:0;opacity:0;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;user-select:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAADjRJREFUeF7tXQnQttUYvq4Zxr5MqBgaihRlKakUU7SYSBQljUhaxijtso2MTCrRn8YoldKIUlIIJRplSyKyqzGyJDSDLGHmMtfvvOb19n7fe7Zn+/7nnnnn+/7/O8t9zrne+5xzn3sh1hCS9GUA20UO9xqS20eWHXQxDpr7BOZHAMyfrBEA8+dllAAJX65BFB0lwCgBxjPAHAyMW8C4BQxCghczOW4B4xYwbgHjFjDqAWYxMJ4BxjNA8fY6iAbGM8B4BhjPAGvKGUDSYwA8FcAmAJ4EYOPw8/6R4upvAH4I4Efh580AbiJ5W2T9wRRbEWcASTuFBX/a1KLfq/Iq/HsKDN8NgLiych+tNzdYAEh6JoAXAdgtLHrrkwfAkuEyAJeTvL4LBkr7HBQAJK0fFtwLH/u0WzpHsfWvMRAMCJK3xlbqutwgACDplVMLf++uJ21B//+aAsL5PecVvQaApB0BHA3AP4dIVwE4maR/9pJ6CYBwij8GwOt7OWvpTJ0O4KQ+3iJ6BwBJXnQvvq9yK4l8hTQIDIbeUG8AsALEfeyi9mpb6AUAJL0bwBtjZ3CFlDuR5LFdj6VzAEi6EMCeXU9ER/1fRHKvjvpe3W1nAJC0NoDPAnhGwxNwF4DbZz6/m/q3u183fNaZ+n3yfw9smL8bALyA5B0N9zO3+U4AIMmL/gUAazU0aKtor/CH5M9K+pD0BAC7hI9Vzk3QnQB2JmkwtEqtA0DS7gAuqTxKn7C96F8EcBXJP1Zuf3Vzkh4WdBI7ADAYat9U9iD5ySZ4X6rNVgEg6TAA76s4wKsBnBa+6X6saY0k+bHJkuFQAM+r2PHhJE+t2N6yTbUGAEkHADiz0sBu8sKTPKdSe0XNSHpNAIKfoGvQgSQ/VKOhRW20AoDwcvfNRcxE/P034Rvvxf97RPnWiki6XwCBJcKjKnS8ZRsvjI0DILzg3VI4IX5gsahf1Ud16vTYghr7DQEMpQ9XGzT9stgoACQ9BMD3Cw9LlhyvI3ljIYharS5pMwAfALBlQcc+3G5K8k8FbXR3BpDkE+1LCpj3+/o+JH2XHxxJsg7ho8FwJZf/S0n65tQINSYBJH0QwEEFXJ9F0gfHwZMkH+heWzCQM0geXFB/yaqNAEDS8QDeUsDwsSRPLKjfu6qS/NbhN49cehfJt+ZWXqpedQCEV70SY8ltSX619kD70J6kbQBcV8DLTrWNS5oAgBc/y4KHZHV+Cia7saqSlNm4tZxV1dFVJzwYc7w/c3BPJPnTzLqDqiZpQwA/yWT6kJpGJdUAEO6/Ft05+vFdSX4mc0IGWU3SCwF8OoN5Xw23qaUPqQkAf/NzbPiOJPnejIkYfBVJRwA4JWMgp5M8JKPePapUAUDBwa+x602NyWmjjYLrcpUDYS0A5Bz87Ky5C8l/tDHRs31IesTUdnUbyd93xMd9g+1CalzCKgfCYgAEp42PJE6edftbtaXeDWrZ59ryJiz6owHcZ4bnuwH8CoD3WFsqfall/r4BIPXtYF+SRc4nNQBwMYA9EgFwCsmjEuskFZe0c7A1tAuZXcpyyC5edvmy7Z4tmBojSe8BcGRiB5eQfGlinf8rXgSA8NL340Tk+knX3/5GXK0l+U3ehievLpmYOXXPBXAqSdsiVKdwi7IUSHlKtiTdqOTFsBQAhwNIPcE3ouaVZN9/q0q9+H6bb4Jsg2BrneNJOoZAVcpUFx9BMtvKqhQAKVE3PFn+9mxd25hD0tMB+PHJLuNtkF3BDyb5nZqdBaOSr4dYB7FNF4W1zQZAppXP/rXNuCS9HMDHYmercrm9SX68ZpvBvOzsxDazrYdKAJD64nc1SVvTViNJbwdwXLUG8xo6juQ78qrOryXJ1s0phqbZL4UlALClj2PwxNJuJG3gUYXCKf/zVRorb+RZJC26q5AkB8Bw5JFYupnkprGFp8tlASBD8/dbAOuRrGK6XeFZNWeuFtV5HMlfLCoU8/dgcv5LAI+MKR/KZGkGcwHg+6rvrbF0Acl9YgsvVy5c8+z1k3JdqtH1ojasDfWj1j8XFYz5uySbkr0ipmwocxTJ5HeFXAD4TvyqBOaq2blL8jaya0LfbRY9geSba3SY4UdxHslk3UcuAL4NwFavsbRODefHgifUWD5Ly1lP4GtusbIoOM/aiTWWbiS5eWzhSblkAEiy6PVeF6u3vpbkc1IZm1e+59/+Ccvnktyv0ni/AuDZkW1ZK/hYkta0RlMOAGySlKIXr6L5G8C3f3rSn1/j7SBDM2gP4yR7zBwApKp/Nybp94IiknQBgL2LGmmvctZ+PMuepI1CuNpYzpPVwjkAsJbKzpAxdBfJB8UUXK6MJLfxawDFbZXyElnf9gXrRZZdtpikvwCIDVJxDsn9U/rNAYBdtWJ17j8n6QALRSRpXwDnFTXSfuUqyiFJDnDx+Ej2ryeZ5IrGEEc/sv3VxbYA8IDICteRjD3ELNlkBRezSHarFnsbSavLi0jStQC2jWzkrwC+FVl2dTEDINdGPaafi0m+LKbggi2gSR5L2VuqftEr3aRRSZ8AUGT0sdwAmwZAsfWqpAcDaMw7tqnVB3ALyVjRvZz0y7W2jhpa0wAoFoOSbL/XiPVQ1AzlF7qbpA0+i0iSjVzeWdTIMpWbBsABJM8qYV6SM378oKSNDuuuXWptLMlexY2Fi2kaAMUeP5K2BvC1DhexpOvNSy2Lm1aAjQAoWd7Fddd4AIxbQKHDydC3gPEQuFhKLFti6IfA8RpYDoBBXwNHRVA5ABpXBNm2P4X8DhCbgLGWKjjVPCplPE2VPZpkitncXD4SVcF2VklKX5fzGGRdc2yI91qPQQ4112oQ5QqoKL4BmIfEx6AbSPqtJppyAGBPYKdxi6Faz8F+DrXnrgNPDoFuJblBDUYTn4PPJ+mX02jKAYDTnJwQ3QOwYWnM/vBNSAFeAnuNFE1+l5/HRchVkBI36U0kk0LR5QAgNbbNYSRXlU5z0xqxUv5m6tcyCXPM4ZTQ8cma1xwAOAiU/eZjkzNfSdK++sW0BhqF2vYyNiycnW7WT3W7TwZAEMc2e35Kwoo+vEYWjwFIgZpm4c5O8oeEOf4eyeR8BbkASL2WVfOi7bkUqOkYkur1nOV9lQsA5/M9KQGdZ5MsCZb8v64kbQXgcwAemtB/G0V9/96+VuAISX5GTzHwPIbkyakDzQVAqm+ADTq8P9VyDrXPnKVQn2izWgEjgnOoz1kpQTeTfQI8eVkACOeArt3DHSjRWUT6QNW2uDC3/XYPD0yOASL+C701NkCE3wRSE0E1ESLGV8yuAkVUue9Pi7DBhIgJUqAvQaIch/+iFmMG2AFzz9p5DQYVJCoAINVP0NWqOIvObvwhcIStZ5uOHeAI3zZ0KXYBnzOGnKwiyf6A0/1mHwIDAByBs2+BIq2qPrABIHjhz2wqrP0gA0UGEPQ1VKyB4Ouif+Y6ldox03kMrGRpNJ/BIEPFBgD4abi3waKDZ7HtCV6ckMLuUgCfAuCUbQZBoxSCWQ8zWHQAQU64eN8gdmg7J2BwNbO7mT8T+wK7nv3ZH5L+2RqF3IKOC5jk1RuypMc+FC05nqIzwKTVjLBxk6qXk9yttdnuYUeSHA/Qip9UygoLN9tJFQAEKZBrvbpiEkSmrmBBQslia+sJrzUBYL11btKoRq6GqQvSZvmM+D8T9vqZNCpIASeNyk0bt2ITRs6575ckkOxn2rip80DOgXB19TFx5EIZVCVP0HQv1baACgfCSRMrNoFkYcJIz0+Vg1+jAAhbgS1TrdbMpWTjxtyO2qpXwZztRJK2yK5K1SXAlCS4MCRtymV4xSSULEgQOZk7J63aK3cil6vXGACCJEjxIprH5xnOAdRVbsHSCZfkEDE26z6ooK1kb5+UvpoGwNoh0uVaKUzNlPWTs0Oh31jQRutVg3rXvoGpCSGneb0TgCOt3tHUABoFQJAC9iNMil03Z7AOhGzzr1Wpdu9NTdxS7YZXPTt0HJoQUHup5rYgeUOTY2gcAAEEuwO4pMJAbIhhIJxWO/NYKW/BmMOL7k+NZBZ7kGzcIbYVAAQQOJ9fdn67mQWyMYZBcE7pwtWoH8y4vPDJjhlL9H84yRSXsOxhtAaAAIIDbFSRze09K14dJMIVtUzOY3kLptu7hG98SoavRV1Uy66yqCP/vVUABBDkGJMuGouTUvmw6Dy/lzV1aApZPPx66XzEPtylJHVaNAb/PTv/X0zj88q0DoAAApuSebFSHB9SxugAy84AbjAU5SoIMfu96M48Xhz4eolB+IFnu5IcwCmTM122EwAEENgY48MJVjq5Y7wLwO0zH+fimfyf2103fNaZ+n3yf7Gx+nP5s/XRfiQ7iYfcGQAmsyXJOX9LFCW5E9+HemeQPLhLRjoHQJAGqV5GXc5Zrb6z073WYqCTQ+BSzAezMnsd71hzgD1s6yoAJ5P0z86pFxJgehYk2ajkmAYPiF1Nug96J5E8vSsGenMLWDQBQZ1qEBgMK4G86F783uU96J0EmJEG3g6GvC30StwPRgLMMirJzie+i9t8OjZjaVeSww9Xzm9sHcT5XTER22+vJcAcIFiBNAGCtXF9Iiu2Jgvv6B6DoEEBYGZ7sErZEsGA2KSj2b7Z33QvPMmkGL0d8XuPbgcLgDlnBYet23TqU3ursGh3WJzJx2HZenGVKwHTigDAnK3C7/GWCk8OPye/xya8dAJGJ6ryN9yf1b+nZuYuWZi26q5IAMybvJAhNfbcUCXpY1uLWNLPCID5szcCoARVfaw7SoD5qzJKgFEC9PH7Wp+nUQKMEiAlpN14Bqj/Hey2xVECjBJglABzMDAeAsdDYLeiua3exy1g3ALGLWDcAlY7dMTQGnML+A8qtnUcTFYqYAAAAABJRU5ErkJggg==) no-repeat center center;background-size:100% 100%;background-blend-mode:lighten;filter:invert(61%) sepia(87%) saturate(845%) hue-rotate(120deg) brightness(94%) contrast(101%);transition:opacity .5s ease-in-out}.anchor.active{opacity:1}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}} +`,document.head.appendChild(t)}})();var dNe=fetch;window.fetch=(...t)=>Promise.resolve(dNe(...t));var bLr=Un(X7(),1),xLr=Un(Jle(),1),ILr=Un(Qle(),1);var Pt={};z_(Pt,{ACESFilmicToneMapping:()=>Gue,AddEquation:()=>Sa,AddOperation:()=>Hue,AdditiveAnimationBlendMode:()=>_U,AdditiveBlending:()=>fp,AlphaFormat:()=>Xue,AlwaysDepth:()=>Cue,AlwaysStencilFunc:()=>ohe,AmbientLight:()=>Ol,AmbientLightProbe:()=>F4,AnimationClip:()=>so,AnimationLoader:()=>M4,AnimationMixer:()=>j4,AnimationObjectGroup:()=>V4,AnimationUtils:()=>z0t,ArcCurve:()=>Eg,ArrayCamera:()=>ID,ArrowHelper:()=>Fg,Audio:()=>zD,AudioAnalyser:()=>k4,AudioContext:()=>vx,AudioListener:()=>U4,AudioLoader:()=>N4,AxesHelper:()=>iU,BackSide:()=>Gn,BasicDepthPacking:()=>she,BasicShadowMap:()=>Uht,Bone:()=>Rl,BooleanKeyframeTrack:()=>Dp,Box2:()=>Ds,Box3:()=>Ot,Box3Helper:()=>tU,BoxBufferGeometry:()=>nU,BoxGeometry:()=>Qa,BoxHelper:()=>Lg,BufferAttribute:()=>jt,BufferGeometry:()=>it,BufferGeometryLoader:()=>VD,ByteType:()=>zue,Cache:()=>Og,Camera:()=>vg,CameraHelper:()=>bx,CanvasTexture:()=>I4,CapsuleBufferGeometry:()=>sU,CapsuleGeometry:()=>xg,CatmullRomCurve3:()=>RD,CineonToneMapping:()=>kue,CircleBufferGeometry:()=>aU,CircleGeometry:()=>Ig,ClampToEdgeWrapping:()=>mn,Clock:()=>df,Color:()=>Ve,ColorKeyframeTrack:()=>dx,ColorManagement:()=>Xs,CompressedArrayTexture:()=>x4,CompressedTexture:()=>sx,CompressedTextureLoader:()=>D4,ConeBufferGeometry:()=>oU,ConeGeometry:()=>Sg,CubeCamera:()=>bD,CubeReflectionMapping:()=>sf,CubeRefractionMapping:()=>af,CubeTexture:()=>yg,CubeTextureLoader:()=>fx,CubeUVReflectionMapping:()=>By,CubicBezierCurve:()=>ax,CubicBezierCurve3:()=>MD,CubicInterpolant:()=>FD,CullFaceBack:()=>wH,CullFaceFront:()=>bue,CullFaceFrontBack:()=>Hht,CullFaceNone:()=>Eue,Curve:()=>Ma,CurvePath:()=>CD,CustomBlending:()=>Op,CustomToneMapping:()=>Vue,CylinderBufferGeometry:()=>lU,CylinderGeometry:()=>Dl,Cylindrical:()=>$4,Data3DTexture:()=>rx,DataArrayTexture:()=>Ry,DataTexture:()=>_l,DataTextureLoader:()=>Ng,DataUtils:()=>zy,DecrementStencilOp:()=>Xht,DecrementWrapStencilOp:()=>Zht,DefaultLoadingManager:()=>oo,DepthFormat:()=>nf,DepthStencilFormat:()=>gp,DepthTexture:()=>lf,DirectionalLight:()=>$s,DirectionalLightHelper:()=>Ex,DiscreteInterpolant:()=>HD,DodecahedronBufferGeometry:()=>cU,DodecahedronGeometry:()=>_g,DoubleSide:()=>wi,DstAlphaFactor:()=>Hy,DstColorFactor:()=>Uy,DynamicCopyUsage:()=>hpt,DynamicDrawUsage:()=>spt,DynamicReadUsage:()=>lpt,EdgesGeometry:()=>Ip,EllipseCurve:()=>xp,EqualDepth:()=>Oue,EqualStencilFunc:()=>ept,EquirectangularReflectionMapping:()=>mg,EquirectangularRefractionMapping:()=>Zb,Euler:()=>Sr,EventDispatcher:()=>Ra,ExtrudeBufferGeometry:()=>uU,ExtrudeGeometry:()=>Sp,FileLoader:()=>ci,Float16BufferAttribute:()=>u4,Float32BufferAttribute:()=>ct,Float64BufferAttribute:()=>h4,FloatType:()=>_a,Fog:()=>Uu,FogExp2:()=>Cy,FramebufferTexture:()=>b4,FrontSide:()=>en,Frustum:()=>eo,GLBufferAttribute:()=>Y4,GLSL1:()=>dpt,GLSL3:()=>e4,GreaterDepth:()=>Nue,GreaterEqualDepth:()=>Pue,GreaterEqualStencilFunc:()=>npt,GreaterStencilFunc:()=>rpt,GridHelper:()=>Tx,Group:()=>hr,HalfFloatType:()=>Go,HemisphereLight:()=>pf,HemisphereLightHelper:()=>Q4,HemisphereLightProbe:()=>L4,IcosahedronBufferGeometry:()=>hU,IcosahedronGeometry:()=>Rg,ImageBitmapLoader:()=>gx,ImageLoader:()=>Pg,ImageUtils:()=>tx,IncrementStencilOp:()=>Yht,IncrementWrapStencilOp:()=>$ht,InstancedBufferAttribute:()=>bp,InstancedBufferGeometry:()=>GD,InstancedInterleavedBuffer:()=>q4,InstancedMesh:()=>tn,Int16BufferAttribute:()=>l4,Int32BufferAttribute:()=>c4,Int8BufferAttribute:()=>s4,IntType:()=>Wue,InterleavedBuffer:()=>Ep,InterleavedBufferAttribute:()=>to,Interpolant:()=>Mp,InterpolateDiscrete:()=>vp,InterpolateLinear:()=>Hu,InterpolateSmooth:()=>mD,InvertStencilOp:()=>Kht,KeepStencilOp:()=>gD,KeyframeTrack:()=>zo,LOD:()=>wD,LatheBufferGeometry:()=>pU,LatheGeometry:()=>cf,Layers:()=>My,LessDepth:()=>Aue,LessEqualDepth:()=>yD,LessEqualStencilFunc:()=>tpt,LessStencilFunc:()=>Qht,Light:()=>Al,LightProbe:()=>Py,Line:()=>_r,Line3:()=>Ca,LineBasicMaterial:()=>Tr,LineCurve:()=>Oy,LineCurve3:()=>DD,LineDashedMaterial:()=>Rp,LineLoop:()=>Ay,LineSegments:()=>oi,LinearEncoding:()=>wl,LinearFilter:()=>ai,LinearInterpolant:()=>px,LinearMipMapLinearFilter:()=>zht,LinearMipMapNearestFilter:()=>Vht,LinearMipmapLinearFilter:()=>wa,LinearMipmapNearestFilter:()=>Hg,LinearSRGBColorSpace:()=>wy,LinearToneMapping:()=>Uue,Loader:()=>li,LoaderUtils:()=>ks,LoadingManager:()=>Ap,LoopOnce:()=>rhe,LoopPingPong:()=>nhe,LoopRepeat:()=>ihe,LuminanceAlphaFormat:()=>$ue,LuminanceFormat:()=>YD,MOUSE:()=>bi,Material:()=>Gr,MaterialLoader:()=>Ny,MathUtils:()=>wr,Matrix3:()=>Qi,Matrix4:()=>Ue,MaxEquation:()=>CH,Mesh:()=>Je,MeshBasicMaterial:()=>or,MeshDepthMaterial:()=>Tp,MeshDistanceMaterial:()=>nx,MeshLambertMaterial:()=>io,MeshMatcapMaterial:()=>LD,MeshNormalMaterial:()=>hf,MeshPhongMaterial:()=>Ts,MeshPhysicalMaterial:()=>Cl,MeshStandardMaterial:()=>Gu,MeshToonMaterial:()=>ND,MinEquation:()=>DH,MirroredRepeatWrapping:()=>mp,MixOperation:()=>Fue,MultiplyBlending:()=>MH,MultiplyOperation:()=>Sx,NearestFilter:()=>Di,NearestMipMapLinearFilter:()=>Ght,NearestMipMapNearestFilter:()=>kht,NearestMipmapLinearFilter:()=>pp,NearestMipmapNearestFilter:()=>of,NeverDepth:()=>Due,NeverStencilFunc:()=>Jht,NoBlending:()=>Fi,NoColorSpace:()=>jht,NoToneMapping:()=>Lu,NormalAnimationBlendMode:()=>$D,NormalBlending:()=>pg,NotEqualDepth:()=>Lue,NotEqualStencilFunc:()=>ipt,NumberKeyframeTrack:()=>Cc,Object3D:()=>pr,ObjectLoader:()=>P4,ObjectSpaceNormalMap:()=>ahe,OctahedronBufferGeometry:()=>dU,OctahedronGeometry:()=>uf,OneFactor:()=>Fy,OneMinusDstAlphaFactor:()=>wue,OneMinusDstColorFactor:()=>Rue,OneMinusSrcAlphaFactor:()=>SU,OneMinusSrcColorFactor:()=>_ue,OrthographicCamera:()=>Zi,PCFShadowMap:()=>IU,PCFSoftShadowMap:()=>Ly,PMREMGenerator:()=>yp,Path:()=>ku,PerspectiveCamera:()=>qr,Plane:()=>Ei,PlaneBufferGeometry:()=>fU,PlaneGeometry:()=>ts,PlaneHelper:()=>rU,PointLight:()=>Ac,PointLightHelper:()=>J4,Points:()=>rn,PointsMaterial:()=>Vn,PolarGridHelper:()=>eU,PolyhedronBufferGeometry:()=>mU,PolyhedronGeometry:()=>Dc,PositionalAudio:()=>B4,PropertyBinding:()=>Cr,PropertyMixer:()=>jD,QuadraticBezierCurve:()=>ox,QuadraticBezierCurve3:()=>lx,Quaternion:()=>Or,QuaternionKeyframeTrack:()=>Da,QuaternionLinearInterpolant:()=>UD,RED_GREEN_RGTC2_Format:()=>JH,RED_RGTC1_Format:()=>the,REVISION:()=>WD,RGBADepthPacking:()=>Gy,RGBAFormat:()=>Bs,RGBAIntegerFormat:()=>Que,RGBA_ASTC_10x10_Format:()=>XH,RGBA_ASTC_10x5_Format:()=>WH,RGBA_ASTC_10x6_Format:()=>qH,RGBA_ASTC_10x8_Format:()=>YH,RGBA_ASTC_12x10_Format:()=>$H,RGBA_ASTC_12x12_Format:()=>ZH,RGBA_ASTC_4x4_Format:()=>HH,RGBA_ASTC_5x4_Format:()=>UH,RGBA_ASTC_5x5_Format:()=>BH,RGBA_ASTC_6x5_Format:()=>kH,RGBA_ASTC_6x6_Format:()=>GH,RGBA_ASTC_8x5_Format:()=>VH,RGBA_ASTC_8x6_Format:()=>zH,RGBA_ASTC_8x8_Format:()=>jH,RGBA_BPTC_Format:()=>fD,RGBA_ETC2_EAC_Format:()=>FH,RGBA_PVRTC_2BPPV1_Format:()=>NH,RGBA_PVRTC_4BPPV1_Format:()=>PH,RGBA_S3TC_DXT1_Format:()=>hD,RGBA_S3TC_DXT3_Format:()=>pD,RGBA_S3TC_DXT5_Format:()=>dD,RGB_ETC1_Format:()=>ehe,RGB_ETC2_Format:()=>LH,RGB_PVRTC_2BPPV1_Format:()=>OH,RGB_PVRTC_4BPPV1_Format:()=>AH,RGB_S3TC_DXT1_Format:()=>uD,RGFormat:()=>Kue,RGIntegerFormat:()=>Jue,RawShaderMaterial:()=>PD,Ray:()=>Vo,Raycaster:()=>Oc,RectAreaLight:()=>BD,RedFormat:()=>XD,RedIntegerFormat:()=>Zue,ReinhardToneMapping:()=>Bue,RepeatWrapping:()=>gn,ReplaceStencilOp:()=>qht,ReverseSubtractEquation:()=>Iue,RingBufferGeometry:()=>gU,RingGeometry:()=>Mg,SIGNED_RED_GREEN_RGTC2_Format:()=>QH,SIGNED_RED_RGTC1_Format:()=>KH,SRGBColorSpace:()=>wc,Scene:()=>On,ShaderChunk:()=>Wr,ShaderLib:()=>Rc,ShaderMaterial:()=>Yt,ShadowMaterial:()=>OD,Shape:()=>Ja,ShapeBufferGeometry:()=>vU,ShapeGeometry:()=>_p,ShapePath:()=>xx,ShapeUtils:()=>es,ShortType:()=>jue,Skeleton:()=>Ml,SkeletonHelper:()=>K4,SkinnedMesh:()=>Bu,Source:()=>Mc,Sphere:()=>zi,SphereBufferGeometry:()=>yU,SphereGeometry:()=>ro,Spherical:()=>Pc,SphericalHarmonics3:()=>kD,SplineCurve:()=>bg,SpotLight:()=>Vu,SpotLightHelper:()=>Z4,Sprite:()=>_D,SpriteMaterial:()=>Tg,SrcAlphaFactor:()=>Ix,SrcAlphaSaturateFactor:()=>Mue,SrcColorFactor:()=>Sue,StaticCopyUsage:()=>upt,StaticDrawUsage:()=>Jb,StaticReadUsage:()=>opt,StereoCamera:()=>H4,StreamCopyUsage:()=>ppt,StreamDrawUsage:()=>apt,StreamReadUsage:()=>cpt,StringKeyframeTrack:()=>Cp,SubtractEquation:()=>xue,SubtractiveBlending:()=>RH,TOUCH:()=>ao,TangentSpaceNormalMap:()=>mf,TetrahedronBufferGeometry:()=>TU,TetrahedronGeometry:()=>Dg,Texture:()=>Hi,TextureLoader:()=>Es,TorusBufferGeometry:()=>EU,TorusGeometry:()=>wp,TorusKnotBufferGeometry:()=>bU,TorusKnotGeometry:()=>Cg,Triangle:()=>un,TriangleFanDrawMode:()=>ky,TriangleStripDrawMode:()=>wx,TrianglesDrawMode:()=>wU,TubeBufferGeometry:()=>xU,TubeGeometry:()=>Ag,TwoPassDoubleSide:()=>Bht,UVMapping:()=>qD,Uint16BufferAttribute:()=>gg,Uint32BufferAttribute:()=>ix,Uint8BufferAttribute:()=>a4,Uint8ClampedBufferAttribute:()=>o4,Uniform:()=>yx,UniformsGroup:()=>W4,UniformsLib:()=>At,UniformsUtils:()=>hn,UnsignedByteType:()=>Fu,UnsignedInt248Type:()=>dp,UnsignedIntType:()=>rf,UnsignedShort4444Type:()=>que,UnsignedShort5551Type:()=>Yue,UnsignedShortType:()=>_x,VSMShadowMap:()=>by,Vector2:()=>le,Vector3:()=>A,Vector4:()=>Jr,VectorKeyframeTrack:()=>no,VideoTexture:()=>E4,WebGL1Renderer:()=>SD,WebGL3DRenderTarget:()=>i4,WebGLArrayRenderTarget:()=>r4,WebGLCubeRenderTarget:()=>xD,WebGLMultipleRenderTargets:()=>n4,WebGLRenderTarget:()=>kr,WebGLRenderer:()=>Pl,WebGLUtils:()=>vhe,WireframeGeometry:()=>AD,WrapAroundEnding:()=>Kb,ZeroCurvatureEnding:()=>cg,ZeroFactor:()=>ff,ZeroSlopeEnding:()=>ug,ZeroStencilOp:()=>Wht,_SRGBAFormat:()=>TD,sRGBEncoding:()=>yr});var WD="149",bi={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},ao={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Eue=0,wH=1,bue=2,Hht=3,Uht=0,IU=1,Ly=2,by=3,en=0,Gn=1,wi=2,Bht=2,Fi=0,pg=1,fp=2,RH=3,MH=4,Op=5,Sa=100,xue=101,Iue=102,DH=103,CH=104,ff=200,Fy=201,Sue=202,_ue=203,Ix=204,SU=205,Hy=206,wue=207,Uy=208,Rue=209,Mue=210,Due=0,Cue=1,Aue=2,yD=3,Oue=4,Pue=5,Nue=6,Lue=7,Sx=0,Fue=1,Hue=2,Lu=0,Uue=1,Bue=2,kue=3,Gue=4,Vue=5,qD=300,sf=301,af=302,mg=303,Zb=304,By=306,gn=1e3,mn=1001,mp=1002,Di=1003,of=1004,kht=1004,pp=1005,Ght=1005,ai=1006,Hg=1007,Vht=1007,wa=1008,zht=1008,Fu=1009,zue=1010,jue=1011,_x=1012,Wue=1013,rf=1014,_a=1015,Go=1016,que=1017,Yue=1018,dp=1020,Xue=1021,Bs=1023,YD=1024,$ue=1025,nf=1026,gp=1027,XD=1028,Zue=1029,Kue=1030,Jue=1031,Que=1033,uD=33776,hD=33777,pD=33778,dD=33779,AH=35840,OH=35841,PH=35842,NH=35843,ehe=36196,LH=37492,FH=37496,HH=37808,UH=37809,BH=37810,kH=37811,GH=37812,VH=37813,zH=37814,jH=37815,WH=37816,qH=37817,YH=37818,XH=37819,$H=37820,ZH=37821,fD=36492,the=36283,KH=36284,JH=36285,QH=36286,rhe=2200,ihe=2201,nhe=2202,vp=2300,Hu=2301,mD=2302,cg=2400,ug=2401,Kb=2402,$D=2500,_U=2501,wU=0,wx=1,ky=2,wl=3e3,yr=3001,she=3200,Gy=3201,mf=0,ahe=1,jht="",wc="srgb",wy="srgb-linear",Wht=0,gD=7680,qht=7681,Yht=7682,Xht=7683,$ht=34055,Zht=34056,Kht=5386,Jht=512,Qht=513,ept=514,tpt=515,rpt=516,ipt=517,npt=518,ohe=519,Jb=35044,spt=35048,apt=35040,opt=35045,lpt=35049,cpt=35041,upt=35046,hpt=35050,ppt=35042,dpt="100",e4="300 es",TD=1035,Ra=class{addEventListener(r,e){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[r]===void 0&&(i[r]=[]),i[r].indexOf(e)===-1&&i[r].push(e)}hasEventListener(r,e){if(this._listeners===void 0)return!1;let i=this._listeners;return i[r]!==void 0&&i[r].indexOf(e)!==-1}removeEventListener(r,e){if(this._listeners===void 0)return;let n=this._listeners[r];if(n!==void 0){let s=n.indexOf(e);s!==-1&&n.splice(s,1)}}dispatchEvent(r){if(this._listeners===void 0)return;let i=this._listeners[r.type];if(i!==void 0){r.target=this;let n=i.slice(0);for(let s=0,a=n.length;s>8&255]+Ys[t>>16&255]+Ys[t>>24&255]+"-"+Ys[r&255]+Ys[r>>8&255]+"-"+Ys[r>>16&15|64]+Ys[r>>24&255]+"-"+Ys[e&63|128]+Ys[e>>8&255]+"-"+Ys[e>>16&255]+Ys[e>>24&255]+Ys[i&255]+Ys[i>>8&255]+Ys[i>>16&255]+Ys[i>>24&255]).toLowerCase()}function Qn(t,r,e){return Math.max(r,Math.min(e,t))}function RU(t,r){return(t%r+r)%r}function fpt(t,r,e,i,n){return i+(t-r)*(n-i)/(e-r)}function mpt(t,r,e){return t!==r?(e-t)/(r-t):0}function qb(t,r,e){return(1-e)*t+e*r}function gpt(t,r,e,i){return qb(t,r,1-Math.exp(-e*i))}function vpt(t,r=1){return r-Math.abs(RU(t,r*2)-r)}function ypt(t,r,e){return t<=r?0:t>=e?1:(t=(t-r)/(e-r),t*t*(3-2*t))}function Tpt(t,r,e){return t<=r?0:t>=e?1:(t=(t-r)/(e-r),t*t*t*(t*(t*6-15)+10))}function Ept(t,r){return t+Math.floor(Math.random()*(r-t+1))}function bpt(t,r){return t+Math.random()*(r-t)}function xpt(t){return t*(.5-Math.random())}function Ipt(t){t!==void 0&&(ece=t);let r=ece+=1831565813;return r=Math.imul(r^r>>>15,r|1),r^=r+Math.imul(r^r>>>7,r|61),((r^r>>>14)>>>0)/4294967296}function Spt(t){return t*dg}function _pt(t){return t*Qb}function t4(t){return(t&t-1)===0&&t!==0}function lhe(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ED(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function wpt(t,r,e,i,n){let s=Math.cos,a=Math.sin,o=s(e/2),l=a(e/2),c=s((r+i)/2),u=a((r+i)/2),h=s((r-i)/2),p=a((r-i)/2),d=s((i-r)/2),f=a((i-r)/2);switch(n){case"XYX":t.set(o*u,l*h,l*p,o*c);break;case"YZY":t.set(l*p,o*u,l*h,o*c);break;case"ZXZ":t.set(l*h,l*p,o*u,o*c);break;case"XZX":t.set(o*u,l*f,l*d,o*c);break;case"YXY":t.set(l*d,o*u,l*f,o*c);break;case"ZYZ":t.set(l*f,l*d,o*u,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+n)}}function hp(t,r){switch(r.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function cn(t,r){switch(r.constructor){case Float32Array:return t;case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}var wr=Object.freeze({__proto__:null,DEG2RAD:dg,RAD2DEG:Qb,ceilPowerOfTwo:lhe,clamp:Qn,damp:gpt,degToRad:Spt,denormalize:hp,euclideanModulo:RU,floorPowerOfTwo:ED,generateUUID:ko,inverseLerp:mpt,isPowerOfTwo:t4,lerp:qb,mapLinear:fpt,normalize:cn,pingpong:vpt,radToDeg:_pt,randFloat:bpt,randFloatSpread:xpt,randInt:Ept,seededRandom:Ipt,setQuaternionFromProperEuler:wpt,smootherstep:Tpt,smoothstep:ypt}),le=class{constructor(r=0,e=0){le.prototype.isVector2=!0,this.x=r,this.y=e}get width(){return this.x}set width(r){this.x=r}get height(){return this.y}set height(r){this.y=r}set(r,e){return this.x=r,this.y=e,this}setScalar(r){return this.x=r,this.y=r,this}setX(r){return this.x=r,this}setY(r){return this.y=r,this}setComponent(r,e){switch(r){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+r)}return this}getComponent(r){switch(r){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+r)}}clone(){return new this.constructor(this.x,this.y)}copy(r){return this.x=r.x,this.y=r.y,this}add(r){return this.x+=r.x,this.y+=r.y,this}addScalar(r){return this.x+=r,this.y+=r,this}addVectors(r,e){return this.x=r.x+e.x,this.y=r.y+e.y,this}addScaledVector(r,e){return this.x+=r.x*e,this.y+=r.y*e,this}sub(r){return this.x-=r.x,this.y-=r.y,this}subScalar(r){return this.x-=r,this.y-=r,this}subVectors(r,e){return this.x=r.x-e.x,this.y=r.y-e.y,this}multiply(r){return this.x*=r.x,this.y*=r.y,this}multiplyScalar(r){return this.x*=r,this.y*=r,this}divide(r){return this.x/=r.x,this.y/=r.y,this}divideScalar(r){return this.multiplyScalar(1/r)}applyMatrix3(r){let e=this.x,i=this.y,n=r.elements;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this}min(r){return this.x=Math.min(this.x,r.x),this.y=Math.min(this.y,r.y),this}max(r){return this.x=Math.max(this.x,r.x),this.y=Math.max(this.y,r.y),this}clamp(r,e){return this.x=Math.max(r.x,Math.min(e.x,this.x)),this.y=Math.max(r.y,Math.min(e.y,this.y)),this}clampScalar(r,e){return this.x=Math.max(r,Math.min(e,this.x)),this.y=Math.max(r,Math.min(e,this.y)),this}clampLength(r,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(r,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(r){return this.x*r.x+this.y*r.y}cross(r){return this.x*r.y-this.y*r.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(r){return Math.sqrt(this.distanceToSquared(r))}distanceToSquared(r){let e=this.x-r.x,i=this.y-r.y;return e*e+i*i}manhattanDistanceTo(r){return Math.abs(this.x-r.x)+Math.abs(this.y-r.y)}setLength(r){return this.normalize().multiplyScalar(r)}lerp(r,e){return this.x+=(r.x-this.x)*e,this.y+=(r.y-this.y)*e,this}lerpVectors(r,e,i){return this.x=r.x+(e.x-r.x)*i,this.y=r.y+(e.y-r.y)*i,this}equals(r){return r.x===this.x&&r.y===this.y}fromArray(r,e=0){return this.x=r[e],this.y=r[e+1],this}toArray(r=[],e=0){return r[e]=this.x,r[e+1]=this.y,r}fromBufferAttribute(r,e){return this.x=r.getX(e),this.y=r.getY(e),this}rotateAround(r,e){let i=Math.cos(e),n=Math.sin(e),s=this.x-r.x,a=this.y-r.y;return this.x=s*i-a*n+r.x,this.y=s*n+a*i+r.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Qi=class{constructor(){Qi.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(r,e,i,n,s,a,o,l,c){let u=this.elements;return u[0]=r,u[1]=n,u[2]=o,u[3]=e,u[4]=s,u[5]=l,u[6]=i,u[7]=a,u[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(r){let e=this.elements,i=r.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(r,e,i){return r.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(r){let e=r.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(r){return this.multiplyMatrices(this,r)}premultiply(r){return this.multiplyMatrices(r,this)}multiplyMatrices(r,e){let i=r.elements,n=e.elements,s=this.elements,a=i[0],o=i[3],l=i[6],c=i[1],u=i[4],h=i[7],p=i[2],d=i[5],f=i[8],m=n[0],g=n[3],y=n[6],E=n[1],b=n[4],x=n[7],S=n[2],D=n[5],P=n[8];return s[0]=a*m+o*E+l*S,s[3]=a*g+o*b+l*D,s[6]=a*y+o*x+l*P,s[1]=c*m+u*E+h*S,s[4]=c*g+u*b+h*D,s[7]=c*y+u*x+h*P,s[2]=p*m+d*E+f*S,s[5]=p*g+d*b+f*D,s[8]=p*y+d*x+f*P,this}multiplyScalar(r){let e=this.elements;return e[0]*=r,e[3]*=r,e[6]*=r,e[1]*=r,e[4]*=r,e[7]*=r,e[2]*=r,e[5]*=r,e[8]*=r,this}determinant(){let r=this.elements,e=r[0],i=r[1],n=r[2],s=r[3],a=r[4],o=r[5],l=r[6],c=r[7],u=r[8];return e*a*u-e*o*c-i*s*u+i*o*l+n*s*c-n*a*l}invert(){let r=this.elements,e=r[0],i=r[1],n=r[2],s=r[3],a=r[4],o=r[5],l=r[6],c=r[7],u=r[8],h=u*a-o*c,p=o*l-u*s,d=c*s-a*l,f=e*h+i*p+n*d;if(f===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/f;return r[0]=h*m,r[1]=(n*c-u*i)*m,r[2]=(o*i-n*a)*m,r[3]=p*m,r[4]=(u*e-n*l)*m,r[5]=(n*s-o*e)*m,r[6]=d*m,r[7]=(i*l-c*e)*m,r[8]=(a*e-i*s)*m,this}transpose(){let r,e=this.elements;return r=e[1],e[1]=e[3],e[3]=r,r=e[2],e[2]=e[6],e[6]=r,r=e[5],e[5]=e[7],e[7]=r,this}getNormalMatrix(r){return this.setFromMatrix4(r).invert().transpose()}transposeIntoArray(r){let e=this.elements;return r[0]=e[0],r[1]=e[3],r[2]=e[6],r[3]=e[1],r[4]=e[4],r[5]=e[7],r[6]=e[2],r[7]=e[5],r[8]=e[8],this}setUvTransform(r,e,i,n,s,a,o){let l=Math.cos(s),c=Math.sin(s);return this.set(i*l,i*c,-i*(l*a+c*o)+a+r,-n*c,n*l,-n*(-c*a+l*o)+o+e,0,0,1),this}scale(r,e){return this.premultiply(Y6.makeScale(r,e)),this}rotate(r){return this.premultiply(Y6.makeRotation(-r)),this}translate(r,e){return this.premultiply(Y6.makeTranslation(r,e)),this}makeTranslation(r,e){return this.set(1,0,r,0,1,e,0,0,1),this}makeRotation(r){let e=Math.cos(r),i=Math.sin(r);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(r,e){return this.set(r,0,0,0,e,0,0,0,1),this}equals(r){let e=this.elements,i=r.elements;for(let n=0;n<9;n++)if(e[n]!==i[n])return!1;return!0}fromArray(r,e=0){for(let i=0;i<9;i++)this.elements[i]=r[i+e];return this}toArray(r=[],e=0){let i=this.elements;return r[e]=i[0],r[e+1]=i[1],r[e+2]=i[2],r[e+3]=i[3],r[e+4]=i[4],r[e+5]=i[5],r[e+6]=i[6],r[e+7]=i[7],r[e+8]=i[8],r}clone(){return new this.constructor().fromArray(this.elements)}},Y6=new Qi;function che(t){for(let r=t.length-1;r>=0;--r)if(t[r]>=65535)return!0;return!1}var Rpt={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function xy(t,r){return new Rpt[t](r)}function ex(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function fg(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function vD(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}var X6={[wc]:{[wy]:fg},[wy]:{[wc]:vD}},Xs={legacyMode:!0,get workingColorSpace(){return wy},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,r,e){if(this.legacyMode||r===e||!r||!e)return t;if(X6[r]&&X6[r][e]!==void 0){let i=X6[r][e];return t.r=i(t.r),t.g=i(t.g),t.b=i(t.b),t}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(t,r){return this.convert(t,this.workingColorSpace,r)},toWorkingColorSpace:function(t,r){return this.convert(t,r,this.workingColorSpace)}},uhe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},gs={r:0,g:0,b:0},Ic={h:0,s:0,l:0},_M={h:0,s:0,l:0};function $6(t,r,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?t+(r-t)*6*e:e<1/2?r:e<2/3?t+(r-t)*6*(2/3-e):t}function wM(t,r){return r.r=t.r,r.g=t.g,r.b=t.b,r}var Ve=class{constructor(r,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&i===void 0?this.set(r):this.setRGB(r,e,i)}set(r){return r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r),this}setScalar(r){return this.r=r,this.g=r,this.b=r,this}setHex(r,e=wc){return r=Math.floor(r),this.r=(r>>16&255)/255,this.g=(r>>8&255)/255,this.b=(r&255)/255,Xs.toWorkingColorSpace(this,e),this}setRGB(r,e,i,n=Xs.workingColorSpace){return this.r=r,this.g=e,this.b=i,Xs.toWorkingColorSpace(this,n),this}setHSL(r,e,i,n=Xs.workingColorSpace){if(r=RU(r,1),e=Qn(e,0,1),i=Qn(i,0,1),e===0)this.r=this.g=this.b=i;else{let s=i<=.5?i*(1+e):i+e-i*e,a=2*i-s;this.r=$6(a,s,r+1/3),this.g=$6(a,s,r),this.b=$6(a,s,r-1/3)}return Xs.toWorkingColorSpace(this,n),this}setStyle(r,e=wc){function i(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+r+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(r)){let s,a=n[1],o=n[2];switch(a){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,Xs.toWorkingColorSpace(this,e),i(s[4]),this;if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,Xs.toWorkingColorSpace(this,e),i(s[4]),this;break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){let l=parseFloat(s[1])/360,c=parseFloat(s[2])/100,u=parseFloat(s[3])/100;return i(s[4]),this.setHSL(l,c,u,e)}break}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(r)){let s=n[1],a=s.length;if(a===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,Xs.toWorkingColorSpace(this,e),this;if(a===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,Xs.toWorkingColorSpace(this,e),this}return r&&r.length>0?this.setColorName(r,e):this}setColorName(r,e=wc){let i=uhe[r.toLowerCase()];return i!==void 0?this.setHex(i,e):console.warn("THREE.Color: Unknown color "+r),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(r){return this.r=r.r,this.g=r.g,this.b=r.b,this}copySRGBToLinear(r){return this.r=fg(r.r),this.g=fg(r.g),this.b=fg(r.b),this}copyLinearToSRGB(r){return this.r=vD(r.r),this.g=vD(r.g),this.b=vD(r.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(r=wc){return Xs.fromWorkingColorSpace(wM(this,gs),r),Qn(gs.r*255,0,255)<<16^Qn(gs.g*255,0,255)<<8^Qn(gs.b*255,0,255)<<0}getHexString(r=wc){return("000000"+this.getHex(r).toString(16)).slice(-6)}getHSL(r,e=Xs.workingColorSpace){Xs.fromWorkingColorSpace(wM(this,gs),e);let i=gs.r,n=gs.g,s=gs.b,a=Math.max(i,n,s),o=Math.min(i,n,s),l,c,u=(o+a)/2;if(o===a)l=0,c=0;else{let h=a-o;switch(c=u<=.5?h/(a+o):h/(2-a-o),a){case i:l=(n-s)/h+(n2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",r),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(r){if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&r instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap){let e=ex("canvas");e.width=r.width,e.height=r.height;let i=e.getContext("2d");i.drawImage(r,0,0,r.width,r.height);let n=i.getImageData(0,0,r.width,r.height),s=n.data;for(let a=0;a0&&(i.userData=this.userData),e||(r.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(r){if(this.mapping!==qD)return r;if(r.applyMatrix3(this.matrix),r.x<0||r.x>1)switch(this.wrapS){case gn:r.x=r.x-Math.floor(r.x);break;case mn:r.x=r.x<0?0:1;break;case mp:Math.abs(Math.floor(r.x)%2)===1?r.x=Math.ceil(r.x)-r.x:r.x=r.x-Math.floor(r.x);break}if(r.y<0||r.y>1)switch(this.wrapT){case gn:r.y=r.y-Math.floor(r.y);break;case mn:r.y=r.y<0?0:1;break;case mp:Math.abs(Math.floor(r.y)%2)===1?r.y=Math.ceil(r.y)-r.y:r.y=r.y-Math.floor(r.y);break}return this.flipY&&(r.y=1-r.y),r}set needsUpdate(r){r===!0&&(this.version++,this.source.needsUpdate=!0)}};Hi.DEFAULT_IMAGE=null;Hi.DEFAULT_MAPPING=qD;Hi.DEFAULT_ANISOTROPY=1;var Jr=class{constructor(r=0,e=0,i=0,n=1){Jr.prototype.isVector4=!0,this.x=r,this.y=e,this.z=i,this.w=n}get width(){return this.z}set width(r){this.z=r}get height(){return this.w}set height(r){this.w=r}set(r,e,i,n){return this.x=r,this.y=e,this.z=i,this.w=n,this}setScalar(r){return this.x=r,this.y=r,this.z=r,this.w=r,this}setX(r){return this.x=r,this}setY(r){return this.y=r,this}setZ(r){return this.z=r,this}setW(r){return this.w=r,this}setComponent(r,e){switch(r){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+r)}return this}getComponent(r){switch(r){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+r)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(r){return this.x=r.x,this.y=r.y,this.z=r.z,this.w=r.w!==void 0?r.w:1,this}add(r){return this.x+=r.x,this.y+=r.y,this.z+=r.z,this.w+=r.w,this}addScalar(r){return this.x+=r,this.y+=r,this.z+=r,this.w+=r,this}addVectors(r,e){return this.x=r.x+e.x,this.y=r.y+e.y,this.z=r.z+e.z,this.w=r.w+e.w,this}addScaledVector(r,e){return this.x+=r.x*e,this.y+=r.y*e,this.z+=r.z*e,this.w+=r.w*e,this}sub(r){return this.x-=r.x,this.y-=r.y,this.z-=r.z,this.w-=r.w,this}subScalar(r){return this.x-=r,this.y-=r,this.z-=r,this.w-=r,this}subVectors(r,e){return this.x=r.x-e.x,this.y=r.y-e.y,this.z=r.z-e.z,this.w=r.w-e.w,this}multiply(r){return this.x*=r.x,this.y*=r.y,this.z*=r.z,this.w*=r.w,this}multiplyScalar(r){return this.x*=r,this.y*=r,this.z*=r,this.w*=r,this}applyMatrix4(r){let e=this.x,i=this.y,n=this.z,s=this.w,a=r.elements;return this.x=a[0]*e+a[4]*i+a[8]*n+a[12]*s,this.y=a[1]*e+a[5]*i+a[9]*n+a[13]*s,this.z=a[2]*e+a[6]*i+a[10]*n+a[14]*s,this.w=a[3]*e+a[7]*i+a[11]*n+a[15]*s,this}divideScalar(r){return this.multiplyScalar(1/r)}setAxisAngleFromQuaternion(r){this.w=2*Math.acos(r.w);let e=Math.sqrt(1-r.w*r.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=r.x/e,this.y=r.y/e,this.z=r.z/e),this}setAxisAngleFromRotationMatrix(r){let e,i,n,s,l=r.elements,c=l[0],u=l[4],h=l[8],p=l[1],d=l[5],f=l[9],m=l[2],g=l[6],y=l[10];if(Math.abs(u-p)<.01&&Math.abs(h-m)<.01&&Math.abs(f-g)<.01){if(Math.abs(u+p)<.1&&Math.abs(h+m)<.1&&Math.abs(f+g)<.1&&Math.abs(c+d+y-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let b=(c+1)/2,x=(d+1)/2,S=(y+1)/2,D=(u+p)/4,P=(h+m)/4,_=(f+g)/4;return b>x&&b>S?b<.01?(i=0,n=.707106781,s=.707106781):(i=Math.sqrt(b),n=D/i,s=P/i):x>S?x<.01?(i=.707106781,n=0,s=.707106781):(n=Math.sqrt(x),i=D/n,s=_/n):S<.01?(i=.707106781,n=.707106781,s=0):(s=Math.sqrt(S),i=P/s,n=_/s),this.set(i,n,s,e),this}let E=Math.sqrt((g-f)*(g-f)+(h-m)*(h-m)+(p-u)*(p-u));return Math.abs(E)<.001&&(E=1),this.x=(g-f)/E,this.y=(h-m)/E,this.z=(p-u)/E,this.w=Math.acos((c+d+y-1)/2),this}min(r){return this.x=Math.min(this.x,r.x),this.y=Math.min(this.y,r.y),this.z=Math.min(this.z,r.z),this.w=Math.min(this.w,r.w),this}max(r){return this.x=Math.max(this.x,r.x),this.y=Math.max(this.y,r.y),this.z=Math.max(this.z,r.z),this.w=Math.max(this.w,r.w),this}clamp(r,e){return this.x=Math.max(r.x,Math.min(e.x,this.x)),this.y=Math.max(r.y,Math.min(e.y,this.y)),this.z=Math.max(r.z,Math.min(e.z,this.z)),this.w=Math.max(r.w,Math.min(e.w,this.w)),this}clampScalar(r,e){return this.x=Math.max(r,Math.min(e,this.x)),this.y=Math.max(r,Math.min(e,this.y)),this.z=Math.max(r,Math.min(e,this.z)),this.w=Math.max(r,Math.min(e,this.w)),this}clampLength(r,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(r,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(r){return this.x*r.x+this.y*r.y+this.z*r.z+this.w*r.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(r){return this.normalize().multiplyScalar(r)}lerp(r,e){return this.x+=(r.x-this.x)*e,this.y+=(r.y-this.y)*e,this.z+=(r.z-this.z)*e,this.w+=(r.w-this.w)*e,this}lerpVectors(r,e,i){return this.x=r.x+(e.x-r.x)*i,this.y=r.y+(e.y-r.y)*i,this.z=r.z+(e.z-r.z)*i,this.w=r.w+(e.w-r.w)*i,this}equals(r){return r.x===this.x&&r.y===this.y&&r.z===this.z&&r.w===this.w}fromArray(r,e=0){return this.x=r[e],this.y=r[e+1],this.z=r[e+2],this.w=r[e+3],this}toArray(r=[],e=0){return r[e]=this.x,r[e+1]=this.y,r[e+2]=this.z,r[e+3]=this.w,r}fromBufferAttribute(r,e){return this.x=r.getX(e),this.y=r.getY(e),this.z=r.getZ(e),this.w=r.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},kr=class extends Ra{constructor(r=1,e=1,i={}){super(),this.isWebGLRenderTarget=!0,this.width=r,this.height=e,this.depth=1,this.scissor=new Jr(0,0,r,e),this.scissorTest=!1,this.viewport=new Jr(0,0,r,e);let n={width:r,height:e,depth:1};this.texture=new Hi(n,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps!==void 0?i.generateMipmaps:!1,this.texture.internalFormat=i.internalFormat!==void 0?i.internalFormat:null,this.texture.minFilter=i.minFilter!==void 0?i.minFilter:ai,this.depthBuffer=i.depthBuffer!==void 0?i.depthBuffer:!0,this.stencilBuffer=i.stencilBuffer!==void 0?i.stencilBuffer:!1,this.depthTexture=i.depthTexture!==void 0?i.depthTexture:null,this.samples=i.samples!==void 0?i.samples:0}setSize(r,e,i=1){(this.width!==r||this.height!==e||this.depth!==i)&&(this.width=r,this.height=e,this.depth=i,this.texture.image.width=r,this.texture.image.height=e,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,r,e),this.scissor.set(0,0,r,e)}clone(){return new this.constructor().copy(this)}copy(r){this.width=r.width,this.height=r.height,this.depth=r.depth,this.viewport.copy(r.viewport),this.texture=r.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},r.texture.image);return this.texture.source=new Mc(e),this.depthBuffer=r.depthBuffer,this.stencilBuffer=r.stencilBuffer,r.depthTexture!==null&&(this.depthTexture=r.depthTexture.clone()),this.samples=r.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Ry=class extends Hi{constructor(r=null,e=1,i=1,n=1){super(null),this.isDataArrayTexture=!0,this.image={data:r,width:e,height:i,depth:n},this.magFilter=Di,this.minFilter=Di,this.wrapR=mn,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},r4=class extends kr{constructor(r=1,e=1,i=1){super(r,e),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new Ry(null,r,e,i),this.texture.isRenderTargetTexture=!0}},rx=class extends Hi{constructor(r=null,e=1,i=1,n=1){super(null),this.isData3DTexture=!0,this.image={data:r,width:e,height:i,depth:n},this.magFilter=Di,this.minFilter=Di,this.wrapR=mn,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},i4=class extends kr{constructor(r=1,e=1,i=1){super(r,e),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new rx(null,r,e,i),this.texture.isRenderTargetTexture=!0}},n4=class extends kr{constructor(r=1,e=1,i=1,n={}){super(r,e,n),this.isWebGLMultipleRenderTargets=!0;let s=this.texture;this.texture=[];for(let a=0;a=0?1:-1,b=1-y*y;if(b>Number.EPSILON){let S=Math.sqrt(b),D=Math.atan2(S,y*E);g=Math.sin(g*D)/S,o=Math.sin(o*D)/S}let x=o*E;if(l=l*g+p*x,c=c*g+d*x,u=u*g+f*x,h=h*g+m*x,g===1-o){let S=1/Math.sqrt(l*l+c*c+u*u+h*h);l*=S,c*=S,u*=S,h*=S}}r[e]=l,r[e+1]=c,r[e+2]=u,r[e+3]=h}static multiplyQuaternionsFlat(r,e,i,n,s,a){let o=i[n],l=i[n+1],c=i[n+2],u=i[n+3],h=s[a],p=s[a+1],d=s[a+2],f=s[a+3];return r[e]=o*f+u*h+l*d-c*p,r[e+1]=l*f+u*p+c*h-o*d,r[e+2]=c*f+u*d+o*p-l*h,r[e+3]=u*f-o*h-l*p-c*d,r}get x(){return this._x}set x(r){this._x=r,this._onChangeCallback()}get y(){return this._y}set y(r){this._y=r,this._onChangeCallback()}get z(){return this._z}set z(r){this._z=r,this._onChangeCallback()}get w(){return this._w}set w(r){this._w=r,this._onChangeCallback()}set(r,e,i,n){return this._x=r,this._y=e,this._z=i,this._w=n,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(r){return this._x=r.x,this._y=r.y,this._z=r.z,this._w=r.w,this._onChangeCallback(),this}setFromEuler(r,e){let i=r._x,n=r._y,s=r._z,a=r._order,o=Math.cos,l=Math.sin,c=o(i/2),u=o(n/2),h=o(s/2),p=l(i/2),d=l(n/2),f=l(s/2);switch(a){case"XYZ":this._x=p*u*h+c*d*f,this._y=c*d*h-p*u*f,this._z=c*u*f+p*d*h,this._w=c*u*h-p*d*f;break;case"YXZ":this._x=p*u*h+c*d*f,this._y=c*d*h-p*u*f,this._z=c*u*f-p*d*h,this._w=c*u*h+p*d*f;break;case"ZXY":this._x=p*u*h-c*d*f,this._y=c*d*h+p*u*f,this._z=c*u*f+p*d*h,this._w=c*u*h-p*d*f;break;case"ZYX":this._x=p*u*h-c*d*f,this._y=c*d*h+p*u*f,this._z=c*u*f-p*d*h,this._w=c*u*h+p*d*f;break;case"YZX":this._x=p*u*h+c*d*f,this._y=c*d*h+p*u*f,this._z=c*u*f-p*d*h,this._w=c*u*h-p*d*f;break;case"XZY":this._x=p*u*h-c*d*f,this._y=c*d*h-p*u*f,this._z=c*u*f+p*d*h,this._w=c*u*h+p*d*f;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(r,e){let i=e/2,n=Math.sin(i);return this._x=r.x*n,this._y=r.y*n,this._z=r.z*n,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(r){let e=r.elements,i=e[0],n=e[4],s=e[8],a=e[1],o=e[5],l=e[9],c=e[2],u=e[6],h=e[10],p=i+o+h;if(p>0){let d=.5/Math.sqrt(p+1);this._w=.25/d,this._x=(u-l)*d,this._y=(s-c)*d,this._z=(a-n)*d}else if(i>o&&i>h){let d=2*Math.sqrt(1+i-o-h);this._w=(u-l)/d,this._x=.25*d,this._y=(n+a)/d,this._z=(s+c)/d}else if(o>h){let d=2*Math.sqrt(1+o-i-h);this._w=(s-c)/d,this._x=(n+a)/d,this._y=.25*d,this._z=(l+u)/d}else{let d=2*Math.sqrt(1+h-i-o);this._w=(a-n)/d,this._x=(s+c)/d,this._y=(l+u)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(r,e){let i=r.dot(e)+1;return iMath.abs(r.z)?(this._x=-r.y,this._y=r.x,this._z=0,this._w=i):(this._x=0,this._y=-r.z,this._z=r.y,this._w=i)):(this._x=r.y*e.z-r.z*e.y,this._y=r.z*e.x-r.x*e.z,this._z=r.x*e.y-r.y*e.x,this._w=i),this.normalize()}angleTo(r){return 2*Math.acos(Math.abs(Qn(this.dot(r),-1,1)))}rotateTowards(r,e){let i=this.angleTo(r);if(i===0)return this;let n=Math.min(1,e/i);return this.slerp(r,n),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(r){return this._x*r._x+this._y*r._y+this._z*r._z+this._w*r._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let r=this.length();return r===0?(this._x=0,this._y=0,this._z=0,this._w=1):(r=1/r,this._x=this._x*r,this._y=this._y*r,this._z=this._z*r,this._w=this._w*r),this._onChangeCallback(),this}multiply(r){return this.multiplyQuaternions(this,r)}premultiply(r){return this.multiplyQuaternions(r,this)}multiplyQuaternions(r,e){let i=r._x,n=r._y,s=r._z,a=r._w,o=e._x,l=e._y,c=e._z,u=e._w;return this._x=i*u+a*o+n*c-s*l,this._y=n*u+a*l+s*o-i*c,this._z=s*u+a*c+i*l-n*o,this._w=a*u-i*o-n*l-s*c,this._onChangeCallback(),this}slerp(r,e){if(e===0)return this;if(e===1)return this.copy(r);let i=this._x,n=this._y,s=this._z,a=this._w,o=a*r._w+i*r._x+n*r._y+s*r._z;if(o<0?(this._w=-r._w,this._x=-r._x,this._y=-r._y,this._z=-r._z,o=-o):this.copy(r),o>=1)return this._w=a,this._x=i,this._y=n,this._z=s,this;let l=1-o*o;if(l<=Number.EPSILON){let d=1-e;return this._w=d*a+e*this._w,this._x=d*i+e*this._x,this._y=d*n+e*this._y,this._z=d*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let c=Math.sqrt(l),u=Math.atan2(c,o),h=Math.sin((1-e)*u)/c,p=Math.sin(e*u)/c;return this._w=a*h+this._w*p,this._x=i*h+this._x*p,this._y=n*h+this._y*p,this._z=s*h+this._z*p,this._onChangeCallback(),this}slerpQuaternions(r,e,i){return this.copy(r).slerp(e,i)}random(){let r=Math.random(),e=Math.sqrt(1-r),i=Math.sqrt(r),n=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(n),i*Math.sin(s),i*Math.cos(s),e*Math.sin(n))}equals(r){return r._x===this._x&&r._y===this._y&&r._z===this._z&&r._w===this._w}fromArray(r,e=0){return this._x=r[e],this._y=r[e+1],this._z=r[e+2],this._w=r[e+3],this._onChangeCallback(),this}toArray(r=[],e=0){return r[e]=this._x,r[e+1]=this._y,r[e+2]=this._z,r[e+3]=this._w,r}fromBufferAttribute(r,e){return this._x=r.getX(e),this._y=r.getY(e),this._z=r.getZ(e),this._w=r.getW(e),this}_onChange(r){return this._onChangeCallback=r,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},A=class{constructor(r=0,e=0,i=0){A.prototype.isVector3=!0,this.x=r,this.y=e,this.z=i}set(r,e,i){return i===void 0&&(i=this.z),this.x=r,this.y=e,this.z=i,this}setScalar(r){return this.x=r,this.y=r,this.z=r,this}setX(r){return this.x=r,this}setY(r){return this.y=r,this}setZ(r){return this.z=r,this}setComponent(r,e){switch(r){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+r)}return this}getComponent(r){switch(r){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+r)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(r){return this.x=r.x,this.y=r.y,this.z=r.z,this}add(r){return this.x+=r.x,this.y+=r.y,this.z+=r.z,this}addScalar(r){return this.x+=r,this.y+=r,this.z+=r,this}addVectors(r,e){return this.x=r.x+e.x,this.y=r.y+e.y,this.z=r.z+e.z,this}addScaledVector(r,e){return this.x+=r.x*e,this.y+=r.y*e,this.z+=r.z*e,this}sub(r){return this.x-=r.x,this.y-=r.y,this.z-=r.z,this}subScalar(r){return this.x-=r,this.y-=r,this.z-=r,this}subVectors(r,e){return this.x=r.x-e.x,this.y=r.y-e.y,this.z=r.z-e.z,this}multiply(r){return this.x*=r.x,this.y*=r.y,this.z*=r.z,this}multiplyScalar(r){return this.x*=r,this.y*=r,this.z*=r,this}multiplyVectors(r,e){return this.x=r.x*e.x,this.y=r.y*e.y,this.z=r.z*e.z,this}applyEuler(r){return this.applyQuaternion(tce.setFromEuler(r))}applyAxisAngle(r,e){return this.applyQuaternion(tce.setFromAxisAngle(r,e))}applyMatrix3(r){let e=this.x,i=this.y,n=this.z,s=r.elements;return this.x=s[0]*e+s[3]*i+s[6]*n,this.y=s[1]*e+s[4]*i+s[7]*n,this.z=s[2]*e+s[5]*i+s[8]*n,this}applyNormalMatrix(r){return this.applyMatrix3(r).normalize()}applyMatrix4(r){let e=this.x,i=this.y,n=this.z,s=r.elements,a=1/(s[3]*e+s[7]*i+s[11]*n+s[15]);return this.x=(s[0]*e+s[4]*i+s[8]*n+s[12])*a,this.y=(s[1]*e+s[5]*i+s[9]*n+s[13])*a,this.z=(s[2]*e+s[6]*i+s[10]*n+s[14])*a,this}applyQuaternion(r){let e=this.x,i=this.y,n=this.z,s=r.x,a=r.y,o=r.z,l=r.w,c=l*e+a*n-o*i,u=l*i+o*e-s*n,h=l*n+s*i-a*e,p=-s*e-a*i-o*n;return this.x=c*l+p*-s+u*-o-h*-a,this.y=u*l+p*-a+h*-s-c*-o,this.z=h*l+p*-o+c*-a-u*-s,this}project(r){return this.applyMatrix4(r.matrixWorldInverse).applyMatrix4(r.projectionMatrix)}unproject(r){return this.applyMatrix4(r.projectionMatrixInverse).applyMatrix4(r.matrixWorld)}transformDirection(r){let e=this.x,i=this.y,n=this.z,s=r.elements;return this.x=s[0]*e+s[4]*i+s[8]*n,this.y=s[1]*e+s[5]*i+s[9]*n,this.z=s[2]*e+s[6]*i+s[10]*n,this.normalize()}divide(r){return this.x/=r.x,this.y/=r.y,this.z/=r.z,this}divideScalar(r){return this.multiplyScalar(1/r)}min(r){return this.x=Math.min(this.x,r.x),this.y=Math.min(this.y,r.y),this.z=Math.min(this.z,r.z),this}max(r){return this.x=Math.max(this.x,r.x),this.y=Math.max(this.y,r.y),this.z=Math.max(this.z,r.z),this}clamp(r,e){return this.x=Math.max(r.x,Math.min(e.x,this.x)),this.y=Math.max(r.y,Math.min(e.y,this.y)),this.z=Math.max(r.z,Math.min(e.z,this.z)),this}clampScalar(r,e){return this.x=Math.max(r,Math.min(e,this.x)),this.y=Math.max(r,Math.min(e,this.y)),this.z=Math.max(r,Math.min(e,this.z)),this}clampLength(r,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(r,Math.min(e,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(r){return this.x*r.x+this.y*r.y+this.z*r.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(r){return this.normalize().multiplyScalar(r)}lerp(r,e){return this.x+=(r.x-this.x)*e,this.y+=(r.y-this.y)*e,this.z+=(r.z-this.z)*e,this}lerpVectors(r,e,i){return this.x=r.x+(e.x-r.x)*i,this.y=r.y+(e.y-r.y)*i,this.z=r.z+(e.z-r.z)*i,this}cross(r){return this.crossVectors(this,r)}crossVectors(r,e){let i=r.x,n=r.y,s=r.z,a=e.x,o=e.y,l=e.z;return this.x=n*l-s*o,this.y=s*a-i*l,this.z=i*o-n*a,this}projectOnVector(r){let e=r.lengthSq();if(e===0)return this.set(0,0,0);let i=r.dot(this)/e;return this.copy(r).multiplyScalar(i)}projectOnPlane(r){return K6.copy(this).projectOnVector(r),this.sub(K6)}reflect(r){return this.sub(K6.copy(r).multiplyScalar(2*this.dot(r)))}angleTo(r){let e=Math.sqrt(this.lengthSq()*r.lengthSq());if(e===0)return Math.PI/2;let i=this.dot(r)/e;return Math.acos(Qn(i,-1,1))}distanceTo(r){return Math.sqrt(this.distanceToSquared(r))}distanceToSquared(r){let e=this.x-r.x,i=this.y-r.y,n=this.z-r.z;return e*e+i*i+n*n}manhattanDistanceTo(r){return Math.abs(this.x-r.x)+Math.abs(this.y-r.y)+Math.abs(this.z-r.z)}setFromSpherical(r){return this.setFromSphericalCoords(r.radius,r.phi,r.theta)}setFromSphericalCoords(r,e,i){let n=Math.sin(e)*r;return this.x=n*Math.sin(i),this.y=Math.cos(e)*r,this.z=n*Math.cos(i),this}setFromCylindrical(r){return this.setFromCylindricalCoords(r.radius,r.theta,r.y)}setFromCylindricalCoords(r,e,i){return this.x=r*Math.sin(e),this.y=i,this.z=r*Math.cos(e),this}setFromMatrixPosition(r){let e=r.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(r){let e=this.setFromMatrixColumn(r,0).length(),i=this.setFromMatrixColumn(r,1).length(),n=this.setFromMatrixColumn(r,2).length();return this.x=e,this.y=i,this.z=n,this}setFromMatrixColumn(r,e){return this.fromArray(r.elements,e*4)}setFromMatrix3Column(r,e){return this.fromArray(r.elements,e*3)}setFromEuler(r){return this.x=r._x,this.y=r._y,this.z=r._z,this}equals(r){return r.x===this.x&&r.y===this.y&&r.z===this.z}fromArray(r,e=0){return this.x=r[e],this.y=r[e+1],this.z=r[e+2],this}toArray(r=[],e=0){return r[e]=this.x,r[e+1]=this.y,r[e+2]=this.z,r}fromBufferAttribute(r,e){return this.x=r.getX(e),this.y=r.getY(e),this.z=r.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let r=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,i=Math.sqrt(1-Gh(r,2));return this.x=i*Math.cos(e),this.y=i*Math.sin(e),this.z=r,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},K6=new A,tce=new Or,Ot=class{constructor(r=new A(1/0,1/0,1/0),e=new A(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=r,this.max=e}set(r,e){return this.min.copy(r),this.max.copy(e),this}setFromArray(r){let e=1/0,i=1/0,n=1/0,s=-1/0,a=-1/0,o=-1/0;for(let l=0,c=r.length;ls&&(s=u),h>a&&(a=h),p>o&&(o=p)}return this.min.set(e,i,n),this.max.set(s,a,o),this}setFromBufferAttribute(r){let e=1/0,i=1/0,n=1/0,s=-1/0,a=-1/0,o=-1/0;for(let l=0,c=r.count;ls&&(s=u),h>a&&(a=h),p>o&&(o=p)}return this.min.set(e,i,n),this.max.set(s,a,o),this}setFromPoints(r){this.makeEmpty();for(let e=0,i=r.length;ethis.max.x||r.ythis.max.y||r.zthis.max.z)}containsBox(r){return this.min.x<=r.min.x&&r.max.x<=this.max.x&&this.min.y<=r.min.y&&r.max.y<=this.max.y&&this.min.z<=r.min.z&&r.max.z<=this.max.z}getParameter(r,e){return e.set((r.x-this.min.x)/(this.max.x-this.min.x),(r.y-this.min.y)/(this.max.y-this.min.y),(r.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(r){return!(r.max.xthis.max.x||r.max.ythis.max.y||r.max.zthis.max.z)}intersectsSphere(r){return this.clampPoint(r.center,Qm),Qm.distanceToSquared(r.center)<=r.radius*r.radius}intersectsPlane(r){let e,i;return r.normal.x>0?(e=r.normal.x*this.min.x,i=r.normal.x*this.max.x):(e=r.normal.x*this.max.x,i=r.normal.x*this.min.x),r.normal.y>0?(e+=r.normal.y*this.min.y,i+=r.normal.y*this.max.y):(e+=r.normal.y*this.max.y,i+=r.normal.y*this.min.y),r.normal.z>0?(e+=r.normal.z*this.min.z,i+=r.normal.z*this.max.z):(e+=r.normal.z*this.max.z,i+=r.normal.z*this.min.z),e<=-r.constant&&i>=-r.constant}intersectsTriangle(r){if(this.isEmpty())return!1;this.getCenter(Pb),RM.subVectors(this.max,Pb),ny.subVectors(r.a,Pb),sy.subVectors(r.b,Pb),ay.subVectors(r.c,Pb),Kd.subVectors(sy,ny),Jd.subVectors(ay,sy),eg.subVectors(ny,ay);let e=[0,-Kd.z,Kd.y,0,-Jd.z,Jd.y,0,-eg.z,eg.y,Kd.z,0,-Kd.x,Jd.z,0,-Jd.x,eg.z,0,-eg.x,-Kd.y,Kd.x,0,-Jd.y,Jd.x,0,-eg.y,eg.x,0];return!Q6(e,ny,sy,ay,RM)||(e=[1,0,0,0,1,0,0,0,1],!Q6(e,ny,sy,ay,RM))?!1:(MM.crossVectors(Kd,Jd),e=[MM.x,MM.y,MM.z],Q6(e,ny,sy,ay,RM))}clampPoint(r,e){return e.copy(r).clamp(this.min,this.max)}distanceToPoint(r){return Qm.copy(r).clamp(this.min,this.max).sub(r).length()}getBoundingSphere(r){return this.getCenter(r.center),r.radius=this.getSize(Qm).length()*.5,r}intersect(r){return this.min.max(r.min),this.max.min(r.max),this.isEmpty()&&this.makeEmpty(),this}union(r){return this.min.min(r.min),this.max.max(r.max),this}applyMatrix4(r){return this.isEmpty()?this:(np[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(r),np[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(r),np[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(r),np[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(r),np[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(r),np[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(r),np[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(r),np[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(r),this.setFromPoints(np),this)}translate(r){return this.min.add(r),this.max.add(r),this}equals(r){return r.min.equals(this.min)&&r.max.equals(this.max)}},np=[new A,new A,new A,new A,new A,new A,new A,new A],Qm=new A,J6=new Ot,ny=new A,sy=new A,ay=new A,Kd=new A,Jd=new A,eg=new A,Pb=new A,RM=new A,MM=new A,tg=new A;function Q6(t,r,e,i,n){for(let s=0,a=t.length-3;s<=a;s+=3){tg.fromArray(t,s);let o=n.x*Math.abs(tg.x)+n.y*Math.abs(tg.y)+n.z*Math.abs(tg.z),l=r.dot(tg),c=e.dot(tg),u=i.dot(tg);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>o)return!1}return!0}var Dpt=new Ot,Nb=new A,eH=new A,zi=class{constructor(r=new A,e=-1){this.center=r,this.radius=e}set(r,e){return this.center.copy(r),this.radius=e,this}setFromPoints(r,e){let i=this.center;e!==void 0?i.copy(e):Dpt.setFromPoints(r).getCenter(i);let n=0;for(let s=0,a=r.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(r){return this.isEmpty()?(r.makeEmpty(),r):(r.set(this.center,this.center),r.expandByScalar(this.radius),r)}applyMatrix4(r){return this.center.applyMatrix4(r),this.radius=this.radius*r.getMaxScaleOnAxis(),this}translate(r){return this.center.add(r),this}expandByPoint(r){if(this.isEmpty())return this.center.copy(r),this.radius=0,this;Nb.subVectors(r,this.center);let e=Nb.lengthSq();if(e>this.radius*this.radius){let i=Math.sqrt(e),n=(i-this.radius)*.5;this.center.addScaledVector(Nb,n/i),this.radius+=n}return this}union(r){return r.isEmpty()?this:this.isEmpty()?(this.copy(r),this):(this.center.equals(r.center)===!0?this.radius=Math.max(this.radius,r.radius):(eH.subVectors(r.center,this.center).setLength(r.radius),this.expandByPoint(Nb.copy(r.center).add(eH)),this.expandByPoint(Nb.copy(r.center).sub(eH))),this)}equals(r){return r.center.equals(this.center)&&r.radius===this.radius}clone(){return new this.constructor().copy(this)}},sp=new A,tH=new A,DM=new A,Qd=new A,rH=new A,CM=new A,iH=new A,Vo=class{constructor(r=new A,e=new A(0,0,-1)){this.origin=r,this.direction=e}set(r,e){return this.origin.copy(r),this.direction.copy(e),this}copy(r){return this.origin.copy(r.origin),this.direction.copy(r.direction),this}at(r,e){return e.copy(this.direction).multiplyScalar(r).add(this.origin)}lookAt(r){return this.direction.copy(r).sub(this.origin).normalize(),this}recast(r){return this.origin.copy(this.at(r,sp)),this}closestPointToPoint(r,e){e.subVectors(r,this.origin);let i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(i).add(this.origin)}distanceToPoint(r){return Math.sqrt(this.distanceSqToPoint(r))}distanceSqToPoint(r){let e=sp.subVectors(r,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(r):(sp.copy(this.direction).multiplyScalar(e).add(this.origin),sp.distanceToSquared(r))}distanceSqToSegment(r,e,i,n){tH.copy(r).add(e).multiplyScalar(.5),DM.copy(e).sub(r).normalize(),Qd.copy(this.origin).sub(tH);let s=r.distanceTo(e)*.5,a=-this.direction.dot(DM),o=Qd.dot(this.direction),l=-Qd.dot(DM),c=Qd.lengthSq(),u=Math.abs(1-a*a),h,p,d,f;if(u>0)if(h=a*l-o,p=a*o-l,f=s*u,h>=0)if(p>=-f)if(p<=f){let m=1/u;h*=m,p*=m,d=h*(h+a*p+2*o)+p*(a*h+p+2*l)+c}else p=s,h=Math.max(0,-(a*p+o)),d=-h*h+p*(p+2*l)+c;else p=-s,h=Math.max(0,-(a*p+o)),d=-h*h+p*(p+2*l)+c;else p<=-f?(h=Math.max(0,-(-a*s+o)),p=h>0?-s:Math.min(Math.max(-s,-l),s),d=-h*h+p*(p+2*l)+c):p<=f?(h=0,p=Math.min(Math.max(-s,-l),s),d=p*(p+2*l)+c):(h=Math.max(0,-(a*s+o)),p=h>0?s:Math.min(Math.max(-s,-l),s),d=-h*h+p*(p+2*l)+c);else p=a>0?-s:s,h=Math.max(0,-(a*p+o)),d=-h*h+p*(p+2*l)+c;return i&&i.copy(this.direction).multiplyScalar(h).add(this.origin),n&&n.copy(DM).multiplyScalar(p).add(tH),d}intersectSphere(r,e){sp.subVectors(r.center,this.origin);let i=sp.dot(this.direction),n=sp.dot(sp)-i*i,s=r.radius*r.radius;if(n>s)return null;let a=Math.sqrt(s-n),o=i-a,l=i+a;return o<0&&l<0?null:o<0?this.at(l,e):this.at(o,e)}intersectsSphere(r){return this.distanceSqToPoint(r.center)<=r.radius*r.radius}distanceToPlane(r){let e=r.normal.dot(this.direction);if(e===0)return r.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(r.normal)+r.constant)/e;return i>=0?i:null}intersectPlane(r,e){let i=this.distanceToPlane(r);return i===null?null:this.at(i,e)}intersectsPlane(r){let e=r.distanceToPoint(this.origin);return e===0||r.normal.dot(this.direction)*e<0}intersectBox(r,e){let i,n,s,a,o,l,c=1/this.direction.x,u=1/this.direction.y,h=1/this.direction.z,p=this.origin;return c>=0?(i=(r.min.x-p.x)*c,n=(r.max.x-p.x)*c):(i=(r.max.x-p.x)*c,n=(r.min.x-p.x)*c),u>=0?(s=(r.min.y-p.y)*u,a=(r.max.y-p.y)*u):(s=(r.max.y-p.y)*u,a=(r.min.y-p.y)*u),i>a||s>n||((s>i||isNaN(i))&&(i=s),(a=0?(o=(r.min.z-p.z)*h,l=(r.max.z-p.z)*h):(o=(r.max.z-p.z)*h,l=(r.min.z-p.z)*h),i>l||o>n)||((o>i||i!==i)&&(i=o),(l=0?i:n,e)}intersectsBox(r){return this.intersectBox(r,sp)!==null}intersectTriangle(r,e,i,n,s){rH.subVectors(e,r),CM.subVectors(i,r),iH.crossVectors(rH,CM);let a=this.direction.dot(iH),o;if(a>0){if(n)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Qd.subVectors(this.origin,r);let l=o*this.direction.dot(CM.crossVectors(Qd,CM));if(l<0)return null;let c=o*this.direction.dot(rH.cross(Qd));if(c<0||l+c>a)return null;let u=-o*Qd.dot(iH);return u<0?null:this.at(u/a,s)}applyMatrix4(r){return this.origin.applyMatrix4(r),this.direction.transformDirection(r),this}equals(r){return r.origin.equals(this.origin)&&r.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Ue=class{constructor(){Ue.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g){let y=this.elements;return y[0]=r,y[4]=e,y[8]=i,y[12]=n,y[1]=s,y[5]=a,y[9]=o,y[13]=l,y[2]=c,y[6]=u,y[10]=h,y[14]=p,y[3]=d,y[7]=f,y[11]=m,y[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Ue().fromArray(this.elements)}copy(r){let e=this.elements,i=r.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(r){let e=this.elements,i=r.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(r){let e=r.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(r,e,i){return r.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(r,e,i){return this.set(r.x,e.x,i.x,0,r.y,e.y,i.y,0,r.z,e.z,i.z,0,0,0,0,1),this}extractRotation(r){let e=this.elements,i=r.elements,n=1/oy.setFromMatrixColumn(r,0).length(),s=1/oy.setFromMatrixColumn(r,1).length(),a=1/oy.setFromMatrixColumn(r,2).length();return e[0]=i[0]*n,e[1]=i[1]*n,e[2]=i[2]*n,e[3]=0,e[4]=i[4]*s,e[5]=i[5]*s,e[6]=i[6]*s,e[7]=0,e[8]=i[8]*a,e[9]=i[9]*a,e[10]=i[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(r){let e=this.elements,i=r.x,n=r.y,s=r.z,a=Math.cos(i),o=Math.sin(i),l=Math.cos(n),c=Math.sin(n),u=Math.cos(s),h=Math.sin(s);if(r.order==="XYZ"){let p=a*u,d=a*h,f=o*u,m=o*h;e[0]=l*u,e[4]=-l*h,e[8]=c,e[1]=d+f*c,e[5]=p-m*c,e[9]=-o*l,e[2]=m-p*c,e[6]=f+d*c,e[10]=a*l}else if(r.order==="YXZ"){let p=l*u,d=l*h,f=c*u,m=c*h;e[0]=p+m*o,e[4]=f*o-d,e[8]=a*c,e[1]=a*h,e[5]=a*u,e[9]=-o,e[2]=d*o-f,e[6]=m+p*o,e[10]=a*l}else if(r.order==="ZXY"){let p=l*u,d=l*h,f=c*u,m=c*h;e[0]=p-m*o,e[4]=-a*h,e[8]=f+d*o,e[1]=d+f*o,e[5]=a*u,e[9]=m-p*o,e[2]=-a*c,e[6]=o,e[10]=a*l}else if(r.order==="ZYX"){let p=a*u,d=a*h,f=o*u,m=o*h;e[0]=l*u,e[4]=f*c-d,e[8]=p*c+m,e[1]=l*h,e[5]=m*c+p,e[9]=d*c-f,e[2]=-c,e[6]=o*l,e[10]=a*l}else if(r.order==="YZX"){let p=a*l,d=a*c,f=o*l,m=o*c;e[0]=l*u,e[4]=m-p*h,e[8]=f*h+d,e[1]=h,e[5]=a*u,e[9]=-o*u,e[2]=-c*u,e[6]=d*h+f,e[10]=p-m*h}else if(r.order==="XZY"){let p=a*l,d=a*c,f=o*l,m=o*c;e[0]=l*u,e[4]=-h,e[8]=c*u,e[1]=p*h+m,e[5]=a*u,e[9]=d*h-f,e[2]=f*h-d,e[6]=o*u,e[10]=m*h+p}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(r){return this.compose(Cpt,r,Apt)}lookAt(r,e,i){let n=this.elements;return Uo.subVectors(r,e),Uo.lengthSq()===0&&(Uo.z=1),Uo.normalize(),ef.crossVectors(i,Uo),ef.lengthSq()===0&&(Math.abs(i.z)===1?Uo.x+=1e-4:Uo.z+=1e-4,Uo.normalize(),ef.crossVectors(i,Uo)),ef.normalize(),AM.crossVectors(Uo,ef),n[0]=ef.x,n[4]=AM.x,n[8]=Uo.x,n[1]=ef.y,n[5]=AM.y,n[9]=Uo.y,n[2]=ef.z,n[6]=AM.z,n[10]=Uo.z,this}multiply(r){return this.multiplyMatrices(this,r)}premultiply(r){return this.multiplyMatrices(r,this)}multiplyMatrices(r,e){let i=r.elements,n=e.elements,s=this.elements,a=i[0],o=i[4],l=i[8],c=i[12],u=i[1],h=i[5],p=i[9],d=i[13],f=i[2],m=i[6],g=i[10],y=i[14],E=i[3],b=i[7],x=i[11],S=i[15],D=n[0],P=n[4],_=n[8],w=n[12],F=n[1],X=n[5],H=n[9],he=n[13],C=n[2],N=n[6],k=n[10],G=n[14],U=n[3],j=n[7],ee=n[11],ae=n[15];return s[0]=a*D+o*F+l*C+c*U,s[4]=a*P+o*X+l*N+c*j,s[8]=a*_+o*H+l*k+c*ee,s[12]=a*w+o*he+l*G+c*ae,s[1]=u*D+h*F+p*C+d*U,s[5]=u*P+h*X+p*N+d*j,s[9]=u*_+h*H+p*k+d*ee,s[13]=u*w+h*he+p*G+d*ae,s[2]=f*D+m*F+g*C+y*U,s[6]=f*P+m*X+g*N+y*j,s[10]=f*_+m*H+g*k+y*ee,s[14]=f*w+m*he+g*G+y*ae,s[3]=E*D+b*F+x*C+S*U,s[7]=E*P+b*X+x*N+S*j,s[11]=E*_+b*H+x*k+S*ee,s[15]=E*w+b*he+x*G+S*ae,this}multiplyScalar(r){let e=this.elements;return e[0]*=r,e[4]*=r,e[8]*=r,e[12]*=r,e[1]*=r,e[5]*=r,e[9]*=r,e[13]*=r,e[2]*=r,e[6]*=r,e[10]*=r,e[14]*=r,e[3]*=r,e[7]*=r,e[11]*=r,e[15]*=r,this}determinant(){let r=this.elements,e=r[0],i=r[4],n=r[8],s=r[12],a=r[1],o=r[5],l=r[9],c=r[13],u=r[2],h=r[6],p=r[10],d=r[14],f=r[3],m=r[7],g=r[11],y=r[15];return f*(+s*l*h-n*c*h-s*o*p+i*c*p+n*o*d-i*l*d)+m*(+e*l*d-e*c*p+s*a*p-n*a*d+n*c*u-s*l*u)+g*(+e*c*h-e*o*d-s*a*h+i*a*d+s*o*u-i*c*u)+y*(-n*o*u-e*l*h+e*o*p+n*a*h-i*a*p+i*l*u)}transpose(){let r=this.elements,e;return e=r[1],r[1]=r[4],r[4]=e,e=r[2],r[2]=r[8],r[8]=e,e=r[6],r[6]=r[9],r[9]=e,e=r[3],r[3]=r[12],r[12]=e,e=r[7],r[7]=r[13],r[13]=e,e=r[11],r[11]=r[14],r[14]=e,this}setPosition(r,e,i){let n=this.elements;return r.isVector3?(n[12]=r.x,n[13]=r.y,n[14]=r.z):(n[12]=r,n[13]=e,n[14]=i),this}invert(){let r=this.elements,e=r[0],i=r[1],n=r[2],s=r[3],a=r[4],o=r[5],l=r[6],c=r[7],u=r[8],h=r[9],p=r[10],d=r[11],f=r[12],m=r[13],g=r[14],y=r[15],E=h*g*c-m*p*c+m*l*d-o*g*d-h*l*y+o*p*y,b=f*p*c-u*g*c-f*l*d+a*g*d+u*l*y-a*p*y,x=u*m*c-f*h*c+f*o*d-a*m*d-u*o*y+a*h*y,S=f*h*l-u*m*l-f*o*p+a*m*p+u*o*g-a*h*g,D=e*E+i*b+n*x+s*S;if(D===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let P=1/D;return r[0]=E*P,r[1]=(m*p*s-h*g*s-m*n*d+i*g*d+h*n*y-i*p*y)*P,r[2]=(o*g*s-m*l*s+m*n*c-i*g*c-o*n*y+i*l*y)*P,r[3]=(h*l*s-o*p*s-h*n*c+i*p*c+o*n*d-i*l*d)*P,r[4]=b*P,r[5]=(u*g*s-f*p*s+f*n*d-e*g*d-u*n*y+e*p*y)*P,r[6]=(f*l*s-a*g*s-f*n*c+e*g*c+a*n*y-e*l*y)*P,r[7]=(a*p*s-u*l*s+u*n*c-e*p*c-a*n*d+e*l*d)*P,r[8]=x*P,r[9]=(f*h*s-u*m*s-f*i*d+e*m*d+u*i*y-e*h*y)*P,r[10]=(a*m*s-f*o*s+f*i*c-e*m*c-a*i*y+e*o*y)*P,r[11]=(u*o*s-a*h*s-u*i*c+e*h*c+a*i*d-e*o*d)*P,r[12]=S*P,r[13]=(u*m*n-f*h*n+f*i*p-e*m*p-u*i*g+e*h*g)*P,r[14]=(f*o*n-a*m*n-f*i*l+e*m*l+a*i*g-e*o*g)*P,r[15]=(a*h*n-u*o*n+u*i*l-e*h*l-a*i*p+e*o*p)*P,this}scale(r){let e=this.elements,i=r.x,n=r.y,s=r.z;return e[0]*=i,e[4]*=n,e[8]*=s,e[1]*=i,e[5]*=n,e[9]*=s,e[2]*=i,e[6]*=n,e[10]*=s,e[3]*=i,e[7]*=n,e[11]*=s,this}getMaxScaleOnAxis(){let r=this.elements,e=r[0]*r[0]+r[1]*r[1]+r[2]*r[2],i=r[4]*r[4]+r[5]*r[5]+r[6]*r[6],n=r[8]*r[8]+r[9]*r[9]+r[10]*r[10];return Math.sqrt(Math.max(e,i,n))}makeTranslation(r,e,i){return this.set(1,0,0,r,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(r){let e=Math.cos(r),i=Math.sin(r);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(r){let e=Math.cos(r),i=Math.sin(r);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(r){let e=Math.cos(r),i=Math.sin(r);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(r,e){let i=Math.cos(e),n=Math.sin(e),s=1-i,a=r.x,o=r.y,l=r.z,c=s*a,u=s*o;return this.set(c*a+i,c*o-n*l,c*l+n*o,0,c*o+n*l,u*o+i,u*l-n*a,0,c*l-n*o,u*l+n*a,s*l*l+i,0,0,0,0,1),this}makeScale(r,e,i){return this.set(r,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(r,e,i,n,s,a){return this.set(1,i,s,0,r,1,a,0,e,n,1,0,0,0,0,1),this}compose(r,e,i){let n=this.elements,s=e._x,a=e._y,o=e._z,l=e._w,c=s+s,u=a+a,h=o+o,p=s*c,d=s*u,f=s*h,m=a*u,g=a*h,y=o*h,E=l*c,b=l*u,x=l*h,S=i.x,D=i.y,P=i.z;return n[0]=(1-(m+y))*S,n[1]=(d+x)*S,n[2]=(f-b)*S,n[3]=0,n[4]=(d-x)*D,n[5]=(1-(p+y))*D,n[6]=(g+E)*D,n[7]=0,n[8]=(f+b)*P,n[9]=(g-E)*P,n[10]=(1-(p+m))*P,n[11]=0,n[12]=r.x,n[13]=r.y,n[14]=r.z,n[15]=1,this}decompose(r,e,i){let n=this.elements,s=oy.set(n[0],n[1],n[2]).length(),a=oy.set(n[4],n[5],n[6]).length(),o=oy.set(n[8],n[9],n[10]).length();this.determinant()<0&&(s=-s),r.x=n[12],r.y=n[13],r.z=n[14],Sc.copy(this);let c=1/s,u=1/a,h=1/o;return Sc.elements[0]*=c,Sc.elements[1]*=c,Sc.elements[2]*=c,Sc.elements[4]*=u,Sc.elements[5]*=u,Sc.elements[6]*=u,Sc.elements[8]*=h,Sc.elements[9]*=h,Sc.elements[10]*=h,e.setFromRotationMatrix(Sc),i.x=s,i.y=a,i.z=o,this}makePerspective(r,e,i,n,s,a){let o=this.elements,l=2*s/(e-r),c=2*s/(i-n),u=(e+r)/(e-r),h=(i+n)/(i-n),p=-(a+s)/(a-s),d=-2*a*s/(a-s);return o[0]=l,o[4]=0,o[8]=u,o[12]=0,o[1]=0,o[5]=c,o[9]=h,o[13]=0,o[2]=0,o[6]=0,o[10]=p,o[14]=d,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(r,e,i,n,s,a){let o=this.elements,l=1/(e-r),c=1/(i-n),u=1/(a-s),h=(e+r)*l,p=(i+n)*c,d=(a+s)*u;return o[0]=2*l,o[4]=0,o[8]=0,o[12]=-h,o[1]=0,o[5]=2*c,o[9]=0,o[13]=-p,o[2]=0,o[6]=0,o[10]=-2*u,o[14]=-d,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(r){let e=this.elements,i=r.elements;for(let n=0;n<16;n++)if(e[n]!==i[n])return!1;return!0}fromArray(r,e=0){for(let i=0;i<16;i++)this.elements[i]=r[i+e];return this}toArray(r=[],e=0){let i=this.elements;return r[e]=i[0],r[e+1]=i[1],r[e+2]=i[2],r[e+3]=i[3],r[e+4]=i[4],r[e+5]=i[5],r[e+6]=i[6],r[e+7]=i[7],r[e+8]=i[8],r[e+9]=i[9],r[e+10]=i[10],r[e+11]=i[11],r[e+12]=i[12],r[e+13]=i[13],r[e+14]=i[14],r[e+15]=i[15],r}},oy=new A,Sc=new Ue,Cpt=new A(0,0,0),Apt=new A(1,1,1),ef=new A,AM=new A,Uo=new A,rce=new Ue,ice=new Or,Sr=class{constructor(r=0,e=0,i=0,n=Sr.DEFAULT_ORDER){this.isEuler=!0,this._x=r,this._y=e,this._z=i,this._order=n}get x(){return this._x}set x(r){this._x=r,this._onChangeCallback()}get y(){return this._y}set y(r){this._y=r,this._onChangeCallback()}get z(){return this._z}set z(r){this._z=r,this._onChangeCallback()}get order(){return this._order}set order(r){this._order=r,this._onChangeCallback()}set(r,e,i,n=this._order){return this._x=r,this._y=e,this._z=i,this._order=n,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(r){return this._x=r._x,this._y=r._y,this._z=r._z,this._order=r._order,this._onChangeCallback(),this}setFromRotationMatrix(r,e=this._order,i=!0){let n=r.elements,s=n[0],a=n[4],o=n[8],l=n[1],c=n[5],u=n[9],h=n[2],p=n[6],d=n[10];switch(e){case"XYZ":this._y=Math.asin(Qn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-u,d),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(p,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Qn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(o,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(Qn(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-Qn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(p,d),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(Qn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(o,d));break;case"XZY":this._z=Math.asin(-Qn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(p,c),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-u,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,i===!0&&this._onChangeCallback(),this}setFromQuaternion(r,e,i){return rce.makeRotationFromQuaternion(r),this.setFromRotationMatrix(rce,e,i)}setFromVector3(r,e=this._order){return this.set(r.x,r.y,r.z,e)}reorder(r){return ice.setFromEuler(this),this.setFromQuaternion(ice,r)}equals(r){return r._x===this._x&&r._y===this._y&&r._z===this._z&&r._order===this._order}fromArray(r){return this._x=r[0],this._y=r[1],this._z=r[2],r[3]!==void 0&&(this._order=r[3]),this._onChangeCallback(),this}toArray(r=[],e=0){return r[e]=this._x,r[e+1]=this._y,r[e+2]=this._z,r[e+3]=this._order,r}_onChange(r){return this._onChangeCallback=r,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Sr.DEFAULT_ORDER="XYZ";var My=class{constructor(){this.mask=1}set(r){this.mask=(1<>>0}enable(r){this.mask|=1<1){for(let e=0;e1){for(let i=0;i0&&(i=i.concat(a))}return i}getWorldPosition(r){return this.updateWorldMatrix(!0,!1),r.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(r){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Lb,r,Ppt),r}getWorldScale(r){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Lb,Npt,r),r}getWorldDirection(r){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return r.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(r){r(this);let e=this.children;for(let i=0,n=e.length;i0&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(n.instanceColor=this.instanceColor.toJSON()));function s(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(r)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?n.background=this.background.toJSON():this.background.isTexture&&(n.background=this.background.toJSON(r).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(n.environment=this.environment.toJSON(r).uuid);else if(this.isMesh||this.isLine||this.isPoints){n.geometry=s(r.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let l=o.shapes;if(Array.isArray(l))for(let c=0,u=l.length;c0){n.children=[];for(let o=0;o0){n.animations=[];for(let o=0;o0&&(i.geometries=o),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),u.length>0&&(i.images=u),h.length>0&&(i.shapes=h),p.length>0&&(i.skeletons=p),d.length>0&&(i.animations=d),f.length>0&&(i.nodes=f)}return i.object=n,i;function a(o){let l=[];for(let c in o){let u=o[c];delete u.metadata,l.push(u)}return l}}clone(r){return new this.constructor().copy(this,r)}copy(r,e=!0){if(this.name=r.name,this.up.copy(r.up),this.position.copy(r.position),this.rotation.order=r.rotation.order,this.quaternion.copy(r.quaternion),this.scale.copy(r.scale),this.matrix.copy(r.matrix),this.matrixWorld.copy(r.matrixWorld),this.matrixAutoUpdate=r.matrixAutoUpdate,this.matrixWorldNeedsUpdate=r.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=r.matrixWorldAutoUpdate,this.layers.mask=r.layers.mask,this.visible=r.visible,this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.frustumCulled=r.frustumCulled,this.renderOrder=r.renderOrder,this.userData=JSON.parse(JSON.stringify(r.userData)),e===!0)for(let i=0;i0?n.multiplyScalar(1/Math.sqrt(s)):n.set(0,0,0)}static getBarycoord(r,e,i,n,s){_c.subVectors(n,e),op.subVectors(i,e),nH.subVectors(r,e);let a=_c.dot(_c),o=_c.dot(op),l=_c.dot(nH),c=op.dot(op),u=op.dot(nH),h=a*c-o*o;if(h===0)return s.set(-2,-1,-1);let p=1/h,d=(c*l-o*u)*p,f=(a*u-o*l)*p;return s.set(1-d-f,f,d)}static containsPoint(r,e,i,n){return this.getBarycoord(r,e,i,n,lp),lp.x>=0&&lp.y>=0&&lp.x+lp.y<=1}static getUV(r,e,i,n,s,a,o,l){return this.getBarycoord(r,e,i,n,lp),l.set(0,0),l.addScaledVector(s,lp.x),l.addScaledVector(a,lp.y),l.addScaledVector(o,lp.z),l}static isFrontFacing(r,e,i,n){return _c.subVectors(i,e),op.subVectors(r,e),_c.cross(op).dot(n)<0}set(r,e,i){return this.a.copy(r),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(r,e,i,n){return this.a.copy(r[e]),this.b.copy(r[i]),this.c.copy(r[n]),this}setFromAttributeAndIndices(r,e,i,n){return this.a.fromBufferAttribute(r,e),this.b.fromBufferAttribute(r,i),this.c.fromBufferAttribute(r,n),this}clone(){return new this.constructor().copy(this)}copy(r){return this.a.copy(r.a),this.b.copy(r.b),this.c.copy(r.c),this}getArea(){return _c.subVectors(this.c,this.b),op.subVectors(this.a,this.b),_c.cross(op).length()*.5}getMidpoint(r){return r.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(r){return un.getNormal(this.a,this.b,this.c,r)}getPlane(r){return r.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(r,e){return un.getBarycoord(r,this.a,this.b,this.c,e)}getUV(r,e,i,n,s){return un.getUV(r,this.a,this.b,this.c,e,i,n,s)}containsPoint(r){return un.containsPoint(r,this.a,this.b,this.c)}isFrontFacing(r){return un.isFrontFacing(this.a,this.b,this.c,r)}intersectsBox(r){return r.intersectsTriangle(this)}closestPointToPoint(r,e){let i=this.a,n=this.b,s=this.c,a,o;cy.subVectors(n,i),uy.subVectors(s,i),sH.subVectors(r,i);let l=cy.dot(sH),c=uy.dot(sH);if(l<=0&&c<=0)return e.copy(i);aH.subVectors(r,n);let u=cy.dot(aH),h=uy.dot(aH);if(u>=0&&h<=u)return e.copy(n);let p=l*h-u*c;if(p<=0&&l>=0&&u<=0)return a=l/(l-u),e.copy(i).addScaledVector(cy,a);oH.subVectors(r,s);let d=cy.dot(oH),f=uy.dot(oH);if(f>=0&&d<=f)return e.copy(s);let m=d*c-l*f;if(m<=0&&c>=0&&f<=0)return o=c/(c-f),e.copy(i).addScaledVector(uy,o);let g=u*f-d*h;if(g<=0&&h-u>=0&&d-f>=0)return cce.subVectors(s,n),o=(h-u)/(h-u+(d-f)),e.copy(n).addScaledVector(cce,o);let y=1/(g+m+p);return a=m*y,o=p*y,e.copy(i).addScaledVector(cy,a).addScaledVector(uy,o)}equals(r){return r.a.equals(this.a)&&r.b.equals(this.b)&&r.c.equals(this.c)}},Fpt=0,Gr=class extends Ra{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Fpt++}),this.uuid=ko(),this.name="",this.type="Material",this.blending=pg,this.side=en,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Ix,this.blendDst=SU,this.blendEquation=Sa,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=yD,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=ohe,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=gD,this.stencilZFail=gD,this.stencilZPass=gD,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(r){this._alphaTest>0!=r>0&&this.version++,this._alphaTest=r}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(r){if(r!==void 0)for(let e in r){let i=r[e];if(i===void 0){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}let n=this[e];if(n===void 0){console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.");continue}n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[e]=i}}toJSON(r){let e=r===void 0||typeof r=="string";e&&(r={textures:{},images:{}});let i={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(r).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(r).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(r).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(r).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(r).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(r).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(r).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(r).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(r).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(r).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(r).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(r).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(r).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(r).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(r).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(r).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(r).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(r).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(r).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(r).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(r).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(r).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(r).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==pg&&(i.blending=this.blending),this.side!==en&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(i.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(i.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=this.flatShading),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function n(s){let a=[];for(let o in s){let l=s[o];delete l.metadata,a.push(l)}return a}if(e){let s=n(r.textures),a=n(r.images);s.length>0&&(i.textures=s),a.length>0&&(i.images=a)}return i}clone(){return new this.constructor().copy(this)}copy(r){this.name=r.name,this.blending=r.blending,this.side=r.side,this.vertexColors=r.vertexColors,this.opacity=r.opacity,this.transparent=r.transparent,this.blendSrc=r.blendSrc,this.blendDst=r.blendDst,this.blendEquation=r.blendEquation,this.blendSrcAlpha=r.blendSrcAlpha,this.blendDstAlpha=r.blendDstAlpha,this.blendEquationAlpha=r.blendEquationAlpha,this.depthFunc=r.depthFunc,this.depthTest=r.depthTest,this.depthWrite=r.depthWrite,this.stencilWriteMask=r.stencilWriteMask,this.stencilFunc=r.stencilFunc,this.stencilRef=r.stencilRef,this.stencilFuncMask=r.stencilFuncMask,this.stencilFail=r.stencilFail,this.stencilZFail=r.stencilZFail,this.stencilZPass=r.stencilZPass,this.stencilWrite=r.stencilWrite;let e=r.clippingPlanes,i=null;if(e!==null){let n=e.length;i=new Array(n);for(let s=0;s!==n;++s)i[s]=e[s].clone()}return this.clippingPlanes=i,this.clipIntersection=r.clipIntersection,this.clipShadows=r.clipShadows,this.shadowSide=r.shadowSide,this.colorWrite=r.colorWrite,this.precision=r.precision,this.polygonOffset=r.polygonOffset,this.polygonOffsetFactor=r.polygonOffsetFactor,this.polygonOffsetUnits=r.polygonOffsetUnits,this.dithering=r.dithering,this.alphaTest=r.alphaTest,this.alphaToCoverage=r.alphaToCoverage,this.premultipliedAlpha=r.premultipliedAlpha,this.forceSinglePass=r.forceSinglePass,this.visible=r.visible,this.toneMapped=r.toneMapped,this.userData=JSON.parse(JSON.stringify(r.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(r){r===!0&&this.version++}},or=class extends Gr{constructor(r){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ve(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(r)}copy(r){return super.copy(r),this.color.copy(r.color),this.map=r.map,this.lightMap=r.lightMap,this.lightMapIntensity=r.lightMapIntensity,this.aoMap=r.aoMap,this.aoMapIntensity=r.aoMapIntensity,this.specularMap=r.specularMap,this.alphaMap=r.alphaMap,this.envMap=r.envMap,this.combine=r.combine,this.reflectivity=r.reflectivity,this.refractionRatio=r.refractionRatio,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this.wireframeLinecap=r.wireframeLinecap,this.wireframeLinejoin=r.wireframeLinejoin,this.fog=r.fog,this}},us=new A,PM=new le,jt=class{constructor(r,e,i=!1){if(Array.isArray(r))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=r,this.itemSize=e,this.count=r!==void 0?r.length/e:0,this.normalized=i,this.usage=Jb,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(r){r===!0&&this.version++}setUsage(r){return this.usage=r,this}copy(r){return this.name=r.name,this.array=new r.array.constructor(r.array),this.itemSize=r.itemSize,this.count=r.count,this.normalized=r.normalized,this.usage=r.usage,this}copyAt(r,e,i){r*=this.itemSize,i*=e.itemSize;for(let n=0,s=this.itemSize;n0&&(r.userData=this.userData),this.parameters!==void 0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(r[c]=l[c]);return r}r.data={attributes:{}};let e=this.index;e!==null&&(r.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let i=this.attributes;for(let l in i){let c=i[l];r.data.attributes[l]=c.toJSON(r.data)}let n={},s=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],u=[];for(let h=0,p=c.length;h0&&(n[l]=u,s=!0)}s&&(r.data.morphAttributes=n,r.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(r.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(r.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),r}clone(){return new this.constructor().copy(this)}copy(r){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=r.name;let i=r.index;i!==null&&this.setIndex(i.clone(e));let n=r.attributes;for(let c in n){let u=n[c];this.setAttribute(c,u.clone(e))}let s=r.morphAttributes;for(let c in s){let u=[],h=s[c];for(let p=0,d=h.length;p0){let n=e[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;se.far?null:{distance:c,point:UM.clone(),object:t}}function BM(t,r,e,i,n,s,a,o,l){t.getVertexPosition(a,Hb),t.getVertexPosition(o,Ub),t.getVertexPosition(l,Bb);let c=Upt(t,r,e,i,Hb,Ub,Bb,hH);if(c){n&&(LM.fromBufferAttribute(n,a),FM.fromBufferAttribute(n,o),HM.fromBufferAttribute(n,l),c.uv=un.getUV(hH,Hb,Ub,Bb,LM,FM,HM,new le)),s&&(LM.fromBufferAttribute(s,a),FM.fromBufferAttribute(s,o),HM.fromBufferAttribute(s,l),c.uv2=un.getUV(hH,Hb,Ub,Bb,LM,FM,HM,new le));let u={a,b:o,c:l,normal:new A,materialIndex:0};un.getNormal(Hb,Ub,Bb,u.normal),c.face=u}return c}var Qa=class extends it{constructor(r=1,e=1,i=1,n=1,s=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:r,height:e,depth:i,widthSegments:n,heightSegments:s,depthSegments:a};let o=this;n=Math.floor(n),s=Math.floor(s),a=Math.floor(a);let l=[],c=[],u=[],h=[],p=0,d=0;f("z","y","x",-1,-1,i,e,r,a,s,0),f("z","y","x",1,-1,i,e,-r,a,s,1),f("x","z","y",1,1,r,i,e,n,a,2),f("x","z","y",1,-1,r,i,-e,n,a,3),f("x","y","z",1,-1,r,e,i,n,s,4),f("x","y","z",-1,-1,r,e,-i,n,s,5),this.setIndex(l),this.setAttribute("position",new ct(c,3)),this.setAttribute("normal",new ct(u,3)),this.setAttribute("uv",new ct(h,2));function f(m,g,y,E,b,x,S,D,P,_,w){let F=x/P,X=S/_,H=x/2,he=S/2,C=D/2,N=P+1,k=_+1,G=0,U=0,j=new A;for(let ee=0;ee0?1:-1,u.push(j.x,j.y,j.z),h.push(se/P),h.push(1-ee/_),G+=1}}for(let ee=0;ee<_;ee++)for(let ae=0;ae0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let i={};for(let n in this.extensions)this.extensions[n]===!0&&(i[n]=!0);return Object.keys(i).length>0&&(e.extensions=i),e}},vg=class extends pr{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ue,this.projectionMatrix=new Ue,this.projectionMatrixInverse=new Ue}copy(r,e){return super.copy(r,e),this.matrixWorldInverse.copy(r.matrixWorldInverse),this.projectionMatrix.copy(r.projectionMatrix),this.projectionMatrixInverse.copy(r.projectionMatrixInverse),this}getWorldDirection(r){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return r.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(r){super.updateMatrixWorld(r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(r,e){super.updateWorldMatrix(r,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},qr=class extends vg{constructor(r=50,e=1,i=.1,n=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=r,this.zoom=1,this.near=i,this.far=n,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(r,e){return super.copy(r,e),this.fov=r.fov,this.zoom=r.zoom,this.near=r.near,this.far=r.far,this.focus=r.focus,this.aspect=r.aspect,this.view=r.view===null?null:Object.assign({},r.view),this.filmGauge=r.filmGauge,this.filmOffset=r.filmOffset,this}setFocalLength(r){let e=.5*this.getFilmHeight()/r;this.fov=Qb*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let r=Math.tan(dg*.5*this.fov);return .5*this.getFilmHeight()/r}getEffectiveFOV(){return Qb*2*Math.atan(Math.tan(dg*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(r,e,i,n,s,a){this.aspect=r/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=r,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let r=this.near,e=r*Math.tan(dg*.5*this.fov)/this.zoom,i=2*e,n=this.aspect*i,s=-.5*n,a=this.view;if(this.view!==null&&this.view.enabled){let l=a.fullWidth,c=a.fullHeight;s+=a.offsetX*n/l,e-=a.offsetY*i/c,n*=a.width/l,i*=a.height/c}let o=this.filmOffset;o!==0&&(s+=r*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+n,e,e-i,r,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(r){let e=super.toJSON(r);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},dy=-90,fy=1,bD=class extends pr{constructor(r,e,i){super(),this.type="CubeCamera",this.renderTarget=i;let n=new qr(dy,fy,r,e);n.layers=this.layers,n.up.set(0,1,0),n.lookAt(1,0,0),this.add(n);let s=new qr(dy,fy,r,e);s.layers=this.layers,s.up.set(0,1,0),s.lookAt(-1,0,0),this.add(s);let a=new qr(dy,fy,r,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(0,1,0),this.add(a);let o=new qr(dy,fy,r,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(0,-1,0),this.add(o);let l=new qr(dy,fy,r,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,1),this.add(l);let c=new qr(dy,fy,r,e);c.layers=this.layers,c.up.set(0,1,0),c.lookAt(0,0,-1),this.add(c)}update(r,e){this.parent===null&&this.updateMatrixWorld();let i=this.renderTarget,[n,s,a,o,l,c]=this.children,u=r.getRenderTarget(),h=r.toneMapping,p=r.xr.enabled;r.toneMapping=Lu,r.xr.enabled=!1;let d=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,r.setRenderTarget(i,0),r.render(e,n),r.setRenderTarget(i,1),r.render(e,s),r.setRenderTarget(i,2),r.render(e,a),r.setRenderTarget(i,3),r.render(e,o),r.setRenderTarget(i,4),r.render(e,l),i.texture.generateMipmaps=d,r.setRenderTarget(i,5),r.render(e,c),r.setRenderTarget(u),r.toneMapping=h,r.xr.enabled=p,i.texture.needsPMREMUpdate=!0}},yg=class extends Hi{constructor(r,e,i,n,s,a,o,l,c,u){r=r!==void 0?r:[],e=e!==void 0?e:sf,super(r,e,i,n,s,a,o,l,c,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(r){this.image=r}},xD=class extends kr{constructor(r=1,e={}){super(r,r,e),this.isWebGLCubeRenderTarget=!0;let i={width:r,height:r,depth:1},n=[i,i,i,i,i,i];this.texture=new yg(n,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:ai}fromEquirectangularTexture(r,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},n=new Qa(5,5,5),s=new Yt({name:"CubemapFromEquirect",uniforms:Dy(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Gn,blending:Fi});s.uniforms.tEquirect.value=e;let a=new Je(n,s),o=e.minFilter;return e.minFilter===wa&&(e.minFilter=ai),new bD(1,10,this).update(r,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(r,e,i,n){let s=r.getRenderTarget();for(let a=0;a<6;a++)r.setRenderTarget(this,a),r.clear(e,i,n);r.setRenderTarget(s)}},pH=new A,Vpt=new A,zpt=new Qi,Ei=class{constructor(r=new A(1,0,0),e=0){this.isPlane=!0,this.normal=r,this.constant=e}set(r,e){return this.normal.copy(r),this.constant=e,this}setComponents(r,e,i,n){return this.normal.set(r,e,i),this.constant=n,this}setFromNormalAndCoplanarPoint(r,e){return this.normal.copy(r),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(r,e,i){let n=pH.subVectors(i,e).cross(Vpt.subVectors(r,e)).normalize();return this.setFromNormalAndCoplanarPoint(n,r),this}copy(r){return this.normal.copy(r.normal),this.constant=r.constant,this}normalize(){let r=1/this.normal.length();return this.normal.multiplyScalar(r),this.constant*=r,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(r){return this.normal.dot(r)+this.constant}distanceToSphere(r){return this.distanceToPoint(r.center)-r.radius}projectPoint(r,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(r)).add(r)}intersectLine(r,e){let i=r.delta(pH),n=this.normal.dot(i);if(n===0)return this.distanceToPoint(r.start)===0?e.copy(r.start):null;let s=-(r.start.dot(this.normal)+this.constant)/n;return s<0||s>1?null:e.copy(i).multiplyScalar(s).add(r.start)}intersectsLine(r){let e=this.distanceToPoint(r.start),i=this.distanceToPoint(r.end);return e<0&&i>0||i<0&&e>0}intersectsBox(r){return r.intersectsPlane(this)}intersectsSphere(r){return r.intersectsPlane(this)}coplanarPoint(r){return r.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(r,e){let i=e||zpt.getNormalMatrix(r),n=this.coplanarPoint(pH).applyMatrix4(r),s=this.normal.applyMatrix3(i).normalize();return this.constant=-n.dot(s),this}translate(r){return this.constant-=r.dot(this.normal),this}equals(r){return r.normal.equals(this.normal)&&r.constant===this.constant}clone(){return new this.constructor().copy(this)}},my=new zi,kM=new A,eo=class{constructor(r=new Ei,e=new Ei,i=new Ei,n=new Ei,s=new Ei,a=new Ei){this.planes=[r,e,i,n,s,a]}set(r,e,i,n,s,a){let o=this.planes;return o[0].copy(r),o[1].copy(e),o[2].copy(i),o[3].copy(n),o[4].copy(s),o[5].copy(a),this}copy(r){let e=this.planes;for(let i=0;i<6;i++)e[i].copy(r.planes[i]);return this}setFromProjectionMatrix(r){let e=this.planes,i=r.elements,n=i[0],s=i[1],a=i[2],o=i[3],l=i[4],c=i[5],u=i[6],h=i[7],p=i[8],d=i[9],f=i[10],m=i[11],g=i[12],y=i[13],E=i[14],b=i[15];return e[0].setComponents(o-n,h-l,m-p,b-g).normalize(),e[1].setComponents(o+n,h+l,m+p,b+g).normalize(),e[2].setComponents(o+s,h+c,m+d,b+y).normalize(),e[3].setComponents(o-s,h-c,m-d,b-y).normalize(),e[4].setComponents(o-a,h-u,m-f,b-E).normalize(),e[5].setComponents(o+a,h+u,m+f,b+E).normalize(),this}intersectsObject(r){let e=r.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),my.copy(e.boundingSphere).applyMatrix4(r.matrixWorld),this.intersectsSphere(my)}intersectsSprite(r){return my.center.set(0,0,0),my.radius=.7071067811865476,my.applyMatrix4(r.matrixWorld),this.intersectsSphere(my)}intersectsSphere(r){let e=this.planes,i=r.center,n=-r.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(i)0?r.max.x:r.min.x,kM.y=n.normal.y>0?r.max.y:r.min.y,kM.z=n.normal.z>0?r.max.z:r.min.z,n.distanceToPoint(kM)<0)return!1}return!0}containsPoint(r){let e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(r)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function phe(){let t=null,r=!1,e=null,i=null;function n(s,a){e(s,a),i=t.requestAnimationFrame(n)}return{start:function(){r!==!0&&e!==null&&(i=t.requestAnimationFrame(n),r=!0)},stop:function(){t.cancelAnimationFrame(i),r=!1},setAnimationLoop:function(s){e=s},setContext:function(s){t=s}}}function jpt(t,r){let e=r.isWebGL2,i=new WeakMap;function n(c,u){let h=c.array,p=c.usage,d=t.createBuffer();t.bindBuffer(u,d),t.bufferData(u,h,p),c.onUploadCallback();let f;if(h instanceof Float32Array)f=5126;else if(h instanceof Uint16Array)if(c.isFloat16BufferAttribute)if(e)f=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else f=5123;else if(h instanceof Int16Array)f=5122;else if(h instanceof Uint32Array)f=5125;else if(h instanceof Int32Array)f=5124;else if(h instanceof Int8Array)f=5120;else if(h instanceof Uint8Array)f=5121;else if(h instanceof Uint8ClampedArray)f=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+h);return{buffer:d,type:f,bytesPerElement:h.BYTES_PER_ELEMENT,version:c.version}}function s(c,u,h){let p=u.array,d=u.updateRange;t.bindBuffer(h,c),d.count===-1?t.bufferSubData(h,0,p):(e?t.bufferSubData(h,d.offset*p.BYTES_PER_ELEMENT,p,d.offset,d.count):t.bufferSubData(h,d.offset*p.BYTES_PER_ELEMENT,p.subarray(d.offset,d.offset+d.count)),d.count=-1),u.onUploadCallback()}function a(c){return c.isInterleavedBufferAttribute&&(c=c.data),i.get(c)}function o(c){c.isInterleavedBufferAttribute&&(c=c.data);let u=i.get(c);u&&(t.deleteBuffer(u.buffer),i.delete(c))}function l(c,u){if(c.isGLBufferAttribute){let p=i.get(c);(!p||p.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif`,edt=`#ifdef USE_IRIDESCENCE + const mat3 XYZ_TO_REC709 = mat3( + 3.2404542, -0.9692660, 0.0556434, + -1.5371385, 1.8760108, -0.2040259, + -0.4985314, 0.0415560, 1.0572252 + ); + vec3 Fresnel0ToIor( vec3 fresnel0 ) { + vec3 sqrtF0 = sqrt( fresnel0 ); + return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 ); + } + vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) ); + } + float IorToFresnel0( float transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor )); + } + vec3 evalSensitivity( float OPD, vec3 shift ) { + float phase = 2.0 * PI * OPD * 1.0e-9; + vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 ); + vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 ); + vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 ); + vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var ); + xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) ); + xyz /= 1.0685e-7; + vec3 rgb = XYZ_TO_REC709 * xyz; + return rgb; + } + vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) { + vec3 I; + float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) ); + float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) ); + float cosTheta2Sq = 1.0 - sinTheta2Sq; + if ( cosTheta2Sq < 0.0 ) { + return vec3( 1.0 ); + } + float cosTheta2 = sqrt( cosTheta2Sq ); + float R0 = IorToFresnel0( iridescenceIOR, outsideIOR ); + float R12 = F_Schlick( R0, 1.0, cosTheta1 ); + float R21 = R12; + float T121 = 1.0 - R12; + float phi12 = 0.0; + if ( iridescenceIOR < outsideIOR ) phi12 = PI; + float phi21 = PI - phi12; + vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR ); + vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 ); + vec3 phi23 = vec3( 0.0 ); + if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI; + if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI; + if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI; + float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2; + vec3 phi = vec3( phi21 ) + phi23; + vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 ); + vec3 r123 = sqrt( R123 ); + vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 ); + vec3 C0 = R12 + Rs; + I = C0; + vec3 Cm = Rs - T121; + for ( int m = 1; m <= 2; ++ m ) { + Cm *= r123; + vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi ); + I += Cm * Sm; + } + return max( I, vec3( 0.0 ) ); + } +#endif`,tdt=`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = dFdx( surf_pos.xyz ); + vec3 vSigmaY = dFdy( surf_pos.xyz ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif`,rdt=`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif`,idt=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,ndt=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,sdt=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,adt=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,odt=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,ldt=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,cdt=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,udt=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}`,hdt=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_v0 0.339 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_v1 0.276 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_v4 0.046 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_v5 0.016 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_v6 0.0038 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,pdt=`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,ddt=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,fdt=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif`,mdt=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,gdt=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,vdt="gl_FragColor = linearToOutputTexel( gl_FragColor );",ydt=`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}`,Tdt=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,Edt=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,bdt=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,xdt=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,Idt=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,Sdt=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,_dt=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,wdt=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Rdt=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,Mdt=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,Ddt=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,Cdt=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,Adt=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,Odt=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,Pdt=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,Ndt=`#if defined( USE_ENVMAP ) + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif`,Ldt=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,Fdt=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Hdt=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Udt=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Bdt=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif`,kdt=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + #ifdef USE_IRIDESCENCE + reflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness ); + #else + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,Gdt=` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometry.viewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,Vdt=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,zdt=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif`,jdt=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,Wdt=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,qdt=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,Ydt=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,Xdt=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,$dt=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,Zdt=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,Kdt=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Jdt=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif`,Qdt=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,eft=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,tft=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,rft=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,ift=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,nft=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;`,sft=`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,aft=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,oft=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,lft=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,cft=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif`,uft=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif`,hft=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif`,pft=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif`,dft=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,fft=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,mft=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}`,gft=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,vft=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,yft=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Tft=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,Eft=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif`,bft=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,xft=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,Ift=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,Sft=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,_ft=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,wft=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Rft=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } +#endif`,Mft=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,Dft=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Cft=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,Aft=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,Oft=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Pft=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Nft=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission ); +#endif`,Lft=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef texture2DLodEXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif`,Fft=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif`,Hft=`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif`,Uft=`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif`,Bft=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif`,kft=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif`,Gft=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif`,Vft=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`,zft=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,jft=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Wft=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,qft=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Yft=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Xft=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,$ft=`#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,Zft=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,Kft=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,Jft=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main () { + #include + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,Qft=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,emt=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,tmt=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include +}`,rmt=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +void main() { + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,imt=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,nmt=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,smt=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,amt=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,omt=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,lmt=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,cmt=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}`,umt=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,hmt=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,pmt=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,dmt=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,fmt=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,mmt=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,gmt=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,vmt=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,ymt=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Tmt=`#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,Emt=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,bmt=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,xmt=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Wr={alphamap_fragment:Wpt,alphamap_pars_fragment:qpt,alphatest_fragment:Ypt,alphatest_pars_fragment:Xpt,aomap_fragment:$pt,aomap_pars_fragment:Zpt,begin_vertex:Kpt,beginnormal_vertex:Jpt,bsdfs:Qpt,iridescence_fragment:edt,bumpmap_pars_fragment:tdt,clipping_planes_fragment:rdt,clipping_planes_pars_fragment:idt,clipping_planes_pars_vertex:ndt,clipping_planes_vertex:sdt,color_fragment:adt,color_pars_fragment:odt,color_pars_vertex:ldt,color_vertex:cdt,common:udt,cube_uv_reflection_fragment:hdt,defaultnormal_vertex:pdt,displacementmap_pars_vertex:ddt,displacementmap_vertex:fdt,emissivemap_fragment:mdt,emissivemap_pars_fragment:gdt,encodings_fragment:vdt,encodings_pars_fragment:ydt,envmap_fragment:Tdt,envmap_common_pars_fragment:Edt,envmap_pars_fragment:bdt,envmap_pars_vertex:xdt,envmap_physical_pars_fragment:Ndt,envmap_vertex:Idt,fog_vertex:Sdt,fog_pars_vertex:_dt,fog_fragment:wdt,fog_pars_fragment:Rdt,gradientmap_pars_fragment:Mdt,lightmap_fragment:Ddt,lightmap_pars_fragment:Cdt,lights_lambert_fragment:Adt,lights_lambert_pars_fragment:Odt,lights_pars_begin:Pdt,lights_toon_fragment:Ldt,lights_toon_pars_fragment:Fdt,lights_phong_fragment:Hdt,lights_phong_pars_fragment:Udt,lights_physical_fragment:Bdt,lights_physical_pars_fragment:kdt,lights_fragment_begin:Gdt,lights_fragment_maps:Vdt,lights_fragment_end:zdt,logdepthbuf_fragment:jdt,logdepthbuf_pars_fragment:Wdt,logdepthbuf_pars_vertex:qdt,logdepthbuf_vertex:Ydt,map_fragment:Xdt,map_pars_fragment:$dt,map_particle_fragment:Zdt,map_particle_pars_fragment:Kdt,metalnessmap_fragment:Jdt,metalnessmap_pars_fragment:Qdt,morphcolor_vertex:eft,morphnormal_vertex:tft,morphtarget_pars_vertex:rft,morphtarget_vertex:ift,normal_fragment_begin:nft,normal_fragment_maps:sft,normal_pars_fragment:aft,normal_pars_vertex:oft,normal_vertex:lft,normalmap_pars_fragment:cft,clearcoat_normal_fragment_begin:uft,clearcoat_normal_fragment_maps:hft,clearcoat_pars_fragment:pft,iridescence_pars_fragment:dft,output_fragment:fft,packing:mft,premultiplied_alpha_fragment:gft,project_vertex:vft,dithering_fragment:yft,dithering_pars_fragment:Tft,roughnessmap_fragment:Eft,roughnessmap_pars_fragment:bft,shadowmap_pars_fragment:xft,shadowmap_pars_vertex:Ift,shadowmap_vertex:Sft,shadowmask_pars_fragment:_ft,skinbase_vertex:wft,skinning_pars_vertex:Rft,skinning_vertex:Mft,skinnormal_vertex:Dft,specularmap_fragment:Cft,specularmap_pars_fragment:Aft,tonemapping_fragment:Oft,tonemapping_pars_fragment:Pft,transmission_fragment:Nft,transmission_pars_fragment:Lft,uv_pars_fragment:Fft,uv_pars_vertex:Hft,uv_vertex:Uft,uv2_pars_fragment:Bft,uv2_pars_vertex:kft,uv2_vertex:Gft,worldpos_vertex:Vft,background_vert:zft,background_frag:jft,backgroundCube_vert:Wft,backgroundCube_frag:qft,cube_vert:Yft,cube_frag:Xft,depth_vert:$ft,depth_frag:Zft,distanceRGBA_vert:Kft,distanceRGBA_frag:Jft,equirect_vert:Qft,equirect_frag:emt,linedashed_vert:tmt,linedashed_frag:rmt,meshbasic_vert:imt,meshbasic_frag:nmt,meshlambert_vert:smt,meshlambert_frag:amt,meshmatcap_vert:omt,meshmatcap_frag:lmt,meshnormal_vert:cmt,meshnormal_frag:umt,meshphong_vert:hmt,meshphong_frag:pmt,meshphysical_vert:dmt,meshphysical_frag:fmt,meshtoon_vert:mmt,meshtoon_frag:gmt,points_vert:vmt,points_frag:ymt,shadow_vert:Tmt,shadow_frag:Emt,sprite_vert:bmt,sprite_frag:xmt},At={common:{diffuse:{value:new Ve(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Qi},uv2Transform:{value:new Qi},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new le(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ve(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ve(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Qi}},sprite:{diffuse:{value:new Ve(16777215)},opacity:{value:1},center:{value:new le(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Qi}}},Rc={basic:{uniforms:Ia([At.common,At.specularmap,At.envmap,At.aomap,At.lightmap,At.fog]),vertexShader:Wr.meshbasic_vert,fragmentShader:Wr.meshbasic_frag},lambert:{uniforms:Ia([At.common,At.specularmap,At.envmap,At.aomap,At.lightmap,At.emissivemap,At.bumpmap,At.normalmap,At.displacementmap,At.fog,At.lights,{emissive:{value:new Ve(0)}}]),vertexShader:Wr.meshlambert_vert,fragmentShader:Wr.meshlambert_frag},phong:{uniforms:Ia([At.common,At.specularmap,At.envmap,At.aomap,At.lightmap,At.emissivemap,At.bumpmap,At.normalmap,At.displacementmap,At.fog,At.lights,{emissive:{value:new Ve(0)},specular:{value:new Ve(1118481)},shininess:{value:30}}]),vertexShader:Wr.meshphong_vert,fragmentShader:Wr.meshphong_frag},standard:{uniforms:Ia([At.common,At.envmap,At.aomap,At.lightmap,At.emissivemap,At.bumpmap,At.normalmap,At.displacementmap,At.roughnessmap,At.metalnessmap,At.fog,At.lights,{emissive:{value:new Ve(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Wr.meshphysical_vert,fragmentShader:Wr.meshphysical_frag},toon:{uniforms:Ia([At.common,At.aomap,At.lightmap,At.emissivemap,At.bumpmap,At.normalmap,At.displacementmap,At.gradientmap,At.fog,At.lights,{emissive:{value:new Ve(0)}}]),vertexShader:Wr.meshtoon_vert,fragmentShader:Wr.meshtoon_frag},matcap:{uniforms:Ia([At.common,At.bumpmap,At.normalmap,At.displacementmap,At.fog,{matcap:{value:null}}]),vertexShader:Wr.meshmatcap_vert,fragmentShader:Wr.meshmatcap_frag},points:{uniforms:Ia([At.points,At.fog]),vertexShader:Wr.points_vert,fragmentShader:Wr.points_frag},dashed:{uniforms:Ia([At.common,At.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Wr.linedashed_vert,fragmentShader:Wr.linedashed_frag},depth:{uniforms:Ia([At.common,At.displacementmap]),vertexShader:Wr.depth_vert,fragmentShader:Wr.depth_frag},normal:{uniforms:Ia([At.common,At.bumpmap,At.normalmap,At.displacementmap,{opacity:{value:1}}]),vertexShader:Wr.meshnormal_vert,fragmentShader:Wr.meshnormal_frag},sprite:{uniforms:Ia([At.sprite,At.fog]),vertexShader:Wr.sprite_vert,fragmentShader:Wr.sprite_frag},background:{uniforms:{uvTransform:{value:new Qi},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Wr.background_vert,fragmentShader:Wr.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Wr.backgroundCube_vert,fragmentShader:Wr.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Wr.cube_vert,fragmentShader:Wr.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Wr.equirect_vert,fragmentShader:Wr.equirect_frag},distanceRGBA:{uniforms:Ia([At.common,At.displacementmap,{referencePosition:{value:new A},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Wr.distanceRGBA_vert,fragmentShader:Wr.distanceRGBA_frag},shadow:{uniforms:Ia([At.lights,At.fog,{color:{value:new Ve(0)},opacity:{value:1}}]),vertexShader:Wr.shadow_vert,fragmentShader:Wr.shadow_frag}};Rc.physical={uniforms:Ia([Rc.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new le(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Ve(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new le},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ve(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ve(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Wr.meshphysical_vert,fragmentShader:Wr.meshphysical_frag};var GM={r:0,b:0,g:0};function Imt(t,r,e,i,n,s,a){let o=new Ve(0),l=s===!0?0:1,c,u,h=null,p=0,d=null;function f(g,y){let E=!1,b=y.isScene===!0?y.background:null;b&&b.isTexture&&(b=(y.backgroundBlurriness>0?e:r).get(b));let x=t.xr,S=x.getSession&&x.getSession();S&&S.environmentBlendMode==="additive"&&(b=null),b===null?m(o,l):b&&b.isColor&&(m(b,1),E=!0),(t.autoClear||E)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),b&&(b.isCubeTexture||b.mapping===By)?(u===void 0&&(u=new Je(new Qa(1,1,1),new Yt({name:"BackgroundCubeMaterial",uniforms:Dy(Rc.backgroundCube.uniforms),vertexShader:Rc.backgroundCube.vertexShader,fragmentShader:Rc.backgroundCube.fragmentShader,side:Gn,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(D,P,_){this.matrixWorld.copyPosition(_.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(u)),u.material.uniforms.envMap.value=b,u.material.uniforms.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,u.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,u.material.toneMapped=b.encoding!==yr,(h!==b||p!==b.version||d!==t.toneMapping)&&(u.material.needsUpdate=!0,h=b,p=b.version,d=t.toneMapping),u.layers.enableAll(),g.unshift(u,u.geometry,u.material,0,0,null)):b&&b.isTexture&&(c===void 0&&(c=new Je(new ts(2,2),new Yt({name:"BackgroundMaterial",uniforms:Dy(Rc.background.uniforms),vertexShader:Rc.background.vertexShader,fragmentShader:Rc.background.fragmentShader,side:en,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(c)),c.material.uniforms.t2D.value=b,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=b.encoding!==yr,b.matrixAutoUpdate===!0&&b.updateMatrix(),c.material.uniforms.uvTransform.value.copy(b.matrix),(h!==b||p!==b.version||d!==t.toneMapping)&&(c.material.needsUpdate=!0,h=b,p=b.version,d=t.toneMapping),c.layers.enableAll(),g.unshift(c,c.geometry,c.material,0,0,null))}function m(g,y){g.getRGB(GM,hhe(t)),i.buffers.color.setClear(GM.r,GM.g,GM.b,y,a)}return{getClearColor:function(){return o},setClearColor:function(g,y=1){o.set(g),l=y,m(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(g){l=g,m(o,l)},render:f}}function Smt(t,r,e,i){let n=t.getParameter(34921),s=i.isWebGL2?null:r.get("OES_vertex_array_object"),a=i.isWebGL2||s!==null,o={},l=g(null),c=l,u=!1;function h(C,N,k,G,U){let j=!1;if(a){let ee=m(G,k,N);c!==ee&&(c=ee,d(c.object)),j=y(C,G,k,U),j&&E(C,G,k,U)}else{let ee=N.wireframe===!0;(c.geometry!==G.id||c.program!==k.id||c.wireframe!==ee)&&(c.geometry=G.id,c.program=k.id,c.wireframe=ee,j=!0)}U!==null&&e.update(U,34963),(j||u)&&(u=!1,_(C,N,k,G),U!==null&&t.bindBuffer(34963,e.get(U).buffer))}function p(){return i.isWebGL2?t.createVertexArray():s.createVertexArrayOES()}function d(C){return i.isWebGL2?t.bindVertexArray(C):s.bindVertexArrayOES(C)}function f(C){return i.isWebGL2?t.deleteVertexArray(C):s.deleteVertexArrayOES(C)}function m(C,N,k){let G=k.wireframe===!0,U=o[C.id];U===void 0&&(U={},o[C.id]=U);let j=U[N.id];j===void 0&&(j={},U[N.id]=j);let ee=j[G];return ee===void 0&&(ee=g(p()),j[G]=ee),ee}function g(C){let N=[],k=[],G=[];for(let U=0;U=0){let ve=U[se],be=j[se];if(be===void 0&&(se==="instanceMatrix"&&C.instanceMatrix&&(be=C.instanceMatrix),se==="instanceColor"&&C.instanceColor&&(be=C.instanceColor)),ve===void 0||ve.attribute!==be||be&&ve.data!==be.data)return!0;ee++}return c.attributesNum!==ee||c.index!==G}function E(C,N,k,G){let U={},j=N.attributes,ee=0,ae=k.getAttributes();for(let se in ae)if(ae[se].location>=0){let ve=j[se];ve===void 0&&(se==="instanceMatrix"&&C.instanceMatrix&&(ve=C.instanceMatrix),se==="instanceColor"&&C.instanceColor&&(ve=C.instanceColor));let be={};be.attribute=ve,ve&&ve.data&&(be.data=ve.data),U[se]=be,ee++}c.attributes=U,c.attributesNum=ee,c.index=G}function b(){let C=c.newAttributes;for(let N=0,k=C.length;N=0){let ue=U[ae];if(ue===void 0&&(ae==="instanceMatrix"&&C.instanceMatrix&&(ue=C.instanceMatrix),ae==="instanceColor"&&C.instanceColor&&(ue=C.instanceColor)),ue!==void 0){let ve=ue.normalized,be=ue.itemSize,de=e.get(ue);if(de===void 0)continue;let we=de.buffer,Fe=de.type,je=de.bytesPerElement;if(ue.isInterleavedBufferAttribute){let Oe=ue.data,dt=Oe.stride,Be=ue.offset;if(Oe.isInstancedInterleavedBuffer){for(let ke=0;ke0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";P="mediump"}return P==="mediump"&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&t instanceof WebGL2RenderingContext,o=e.precision!==void 0?e.precision:"highp",l=s(o);l!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",l,"instead."),o=l);let c=a||r.has("WEBGL_draw_buffers"),u=e.logarithmicDepthBuffer===!0,h=t.getParameter(34930),p=t.getParameter(35660),d=t.getParameter(3379),f=t.getParameter(34076),m=t.getParameter(34921),g=t.getParameter(36347),y=t.getParameter(36348),E=t.getParameter(36349),b=p>0,x=a||r.has("OES_texture_float"),S=b&&x,D=a?t.getParameter(36183):0;return{isWebGL2:a,drawBuffers:c,getMaxAnisotropy:n,getMaxPrecision:s,precision:o,logarithmicDepthBuffer:u,maxTextures:h,maxVertexTextures:p,maxTextureSize:d,maxCubemapSize:f,maxAttributes:m,maxVertexUniforms:g,maxVaryings:y,maxFragmentUniforms:E,vertexTextures:b,floatFragmentTextures:x,floatVertexTextures:S,maxSamples:D}}function Rmt(t){let r=this,e=null,i=0,n=!1,s=!1,a=new Ei,o=new Qi,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(h,p){let d=h.length!==0||p||i!==0||n;return n=p,i=h.length,d},this.beginShadows=function(){s=!0,u(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(h,p){e=u(h,p,0)},this.setState=function(h,p,d){let f=h.clippingPlanes,m=h.clipIntersection,g=h.clipShadows,y=t.get(h);if(!n||f===null||f.length===0||s&&!g)s?u(null):c();else{let E=s?0:i,b=E*4,x=y.clippingState||null;l.value=x,x=u(f,p,b,d);for(let S=0;S!==b;++S)x[S]=e[S];y.clippingState=x,this.numIntersection=m?this.numPlanes:0,this.numPlanes+=E}};function c(){l.value!==e&&(l.value=e,l.needsUpdate=i>0),r.numPlanes=i,r.numIntersection=0}function u(h,p,d,f){let m=h!==null?h.length:0,g=null;if(m!==0){if(g=l.value,f!==!0||g===null){let y=d+m*4,E=p.matrixWorldInverse;o.getNormalMatrix(E),(g===null||g.length0){let c=new xD(l.height/2);return c.fromEquirectangularTexture(t,a),r.set(a,c),a.addEventListener("dispose",n),e(c.texture,a.mapping)}else return null}}return a}function n(a){let o=a.target;o.removeEventListener("dispose",n);let l=r.get(o);l!==void 0&&(r.delete(o),l.dispose())}function s(){r=new WeakMap}return{get:i,dispose:s}}var Zi=class extends vg{constructor(r=-1,e=1,i=1,n=-1,s=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=r,this.right=e,this.top=i,this.bottom=n,this.near=s,this.far=a,this.updateProjectionMatrix()}copy(r,e){return super.copy(r,e),this.left=r.left,this.right=r.right,this.top=r.top,this.bottom=r.bottom,this.near=r.near,this.far=r.far,this.zoom=r.zoom,this.view=r.view===null?null:Object.assign({},r.view),this}setViewOffset(r,e,i,n,s,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=r,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let r=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,n=(this.top+this.bottom)/2,s=i-r,a=i+r,o=n+e,l=n-e;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,u=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,a=s+c*this.view.width,o-=u*this.view.offsetY,l=o-u*this.view.height}this.projectionMatrix.makeOrthographic(s,a,o,l,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(r){let e=super.toJSON(r);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},Iy=4,hce=[.125,.215,.35,.446,.526,.582],lg=20,dH=new Zi,pce=new Ve,fH=null,og=(1+Math.sqrt(5))/2,gy=1/og,dce=[new A(1,1,1),new A(-1,1,1),new A(1,1,-1),new A(-1,1,-1),new A(0,og,gy),new A(0,og,-gy),new A(gy,0,og),new A(-gy,0,og),new A(og,gy,0),new A(-og,gy,0)],yp=class{constructor(r){this._renderer=r,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(r,e=0,i=.1,n=100){fH=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(r,i,n,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(r,e=null){return this._fromTexture(r,e)}fromCubemap(r,e=null){return this._fromTexture(r,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=gce(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=mce(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(r){this._lodMax=Math.floor(Math.log2(r)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let r=0;r2?b:0,b,b),u.setRenderTarget(n),m&&u.render(f,o),u.render(r,o)}f.geometry.dispose(),f.material.dispose(),u.toneMapping=p,u.autoClear=h,r.background=g}_textureToCubeUV(r,e){let i=this._renderer,n=r.mapping===sf||r.mapping===af;n?(this._cubemapMaterial===null&&(this._cubemapMaterial=gce()),this._cubemapMaterial.uniforms.flipEnvMap.value=r.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=mce());let s=n?this._cubemapMaterial:this._equirectMaterial,a=new Je(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=r;let l=this._cubeSize;VM(e,0,0,3*l,2*l),i.setRenderTarget(e),i.render(a,dH)}_applyPMREM(r){let e=this._renderer,i=e.autoClear;e.autoClear=!1;for(let n=1;nlg&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${g} samples when the maximum is set to ${lg}`);let y=[],E=0;for(let P=0;Pb-Iy?n-b+Iy:0),D=4*(this._cubeSize-x);VM(e,S,D,3*x,2*x),l.setRenderTarget(e),l.render(h,dH)}};function Dmt(t){let r=[],e=[],i=[],n=t,s=t-Iy+1+hce.length;for(let a=0;at-Iy?l=hce[a-t+Iy-1]:a===0&&(l=0),i.push(l);let c=1/(o-2),u=-c,h=1+c,p=[u,u,h,u,h,h,u,u,h,h,u,h],d=6,f=6,m=3,g=2,y=1,E=new Float32Array(m*f*d),b=new Float32Array(g*f*d),x=new Float32Array(y*f*d);for(let D=0;D2?0:-1,w=[P,_,0,P+2/3,_,0,P+2/3,_+1,0,P,_,0,P+2/3,_+1,0,P,_+1,0];E.set(w,m*f*D),b.set(p,g*f*D);let F=[D,D,D,D,D,D];x.set(F,y*f*D)}let S=new it;S.setAttribute("position",new jt(E,m)),S.setAttribute("uv",new jt(b,g)),S.setAttribute("faceIndex",new jt(x,y)),r.push(S),n>Iy&&n--}return{lodPlanes:r,sizeLods:e,sigmas:i}}function fce(t,r,e){let i=new kr(t,r,e);return i.texture.mapping=By,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function VM(t,r,e,i,n){t.viewport.set(r,e,i,n),t.scissor.set(r,e,i,n)}function Cmt(t,r,e){let i=new Float32Array(lg),n=new A(0,1,0);return new Yt({name:"SphericalGaussianBlur",defines:{n:lg,CUBEUV_TEXEL_WIDTH:1/r,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n}},vertexShader:MU(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:Fi,depthTest:!1,depthWrite:!1})}function mce(){return new Yt({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:MU(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:Fi,depthTest:!1,depthWrite:!1})}function gce(){return new Yt({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:MU(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:Fi,depthTest:!1,depthWrite:!1})}function MU(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Amt(t){let r=new WeakMap,e=null;function i(o){if(o&&o.isTexture){let l=o.mapping,c=l===mg||l===Zb,u=l===sf||l===af;if(c||u)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let h=r.get(o);return e===null&&(e=new yp(t)),h=c?e.fromEquirectangular(o,h):e.fromCubemap(o,h),r.set(o,h),h.texture}else{if(r.has(o))return r.get(o).texture;{let h=o.image;if(c&&h&&h.height>0||u&&h&&n(h)){e===null&&(e=new yp(t));let p=c?e.fromEquirectangular(o):e.fromCubemap(o);return r.set(o,p),o.addEventListener("dispose",s),p.texture}else return null}}}return o}function n(o){let l=0,c=6;for(let u=0;ur.maxTextureSize&&(X=Math.ceil(F/r.maxTextureSize),F=r.maxTextureSize);let H=new Float32Array(F*X*4*m),he=new Ry(H,F,X,m);he.type=_a,he.needsUpdate=!0;let C=w*4;for(let k=0;k0)return t;let n=r*e,s=vce[n];if(s===void 0&&(s=new Float32Array(n),vce[n]=s),r!==0){i.toArray(s,0);for(let a=1,o=0;a!==r;++a)o+=e,t[a].toArray(s,o)}return s}function vs(t,r){if(t.length!==r.length)return!1;for(let e=0,i=t.length;e":" "} ${o}: ${e[a]}`)}return i.join(` +`)}function Dgt(t){switch(t){case wl:return["Linear","( value )"];case yr:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}function Sce(t,r,e){let i=t.getShaderParameter(r,35713),n=t.getShaderInfoLog(r).trim();if(i&&n==="")return"";let s=/ERROR: 0:(\d+)/.exec(n);if(s){let a=parseInt(s[1]);return e.toUpperCase()+` + +`+n+` + +`+Mgt(t.getShaderSource(r),a)}else return n}function Cgt(t,r){let e=Dgt(r);return"vec4 "+t+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Agt(t,r){let e;switch(r){case Uue:e="Linear";break;case Bue:e="Reinhard";break;case kue:e="OptimizedCineon";break;case Gue:e="ACESFilmic";break;case Vue:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",r),e="Linear"}return"vec3 "+t+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Ogt(t){return[t.extensionDerivatives||t.envMapCubeUVHeight||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||t.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Wb).join(` +`)}function Pgt(t){let r=[];for(let e in t){let i=t[e];i!==!1&&r.push("#define "+e+" "+i)}return r.join(` +`)}function Ngt(t,r){let e={},i=t.getProgramParameter(r,35721);for(let n=0;n/gm;function m4(t){return t.replace(Lgt,Fgt)}function Fgt(t,r){let e=Wr[r];if(e===void 0)throw new Error("Can not resolve #include <"+r+">");return m4(e)}var Hgt=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Rce(t){return t.replace(Hgt,Ugt)}function Ugt(t,r,e,i){let n="";for(let s=parseInt(r);s0&&(g+=` +`),y=[d,f].filter(Wb).join(` +`),y.length>0&&(y+=` +`)):(g=[Mce(e),"#define SHADER_NAME "+e.shaderName,f,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+u:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(Wb).join(` +`),y=[d,Mce(e),"#define SHADER_NAME "+e.shaderName,f,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+u:"",e.envMap?"#define "+h:"",p?"#define CUBEUV_TEXEL_WIDTH "+p.texelWidth:"",p?"#define CUBEUV_TEXEL_HEIGHT "+p.texelHeight:"",p?"#define CUBEUV_MAX_MIP "+p.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Lu?"#define TONE_MAPPING":"",e.toneMapping!==Lu?Wr.tonemapping_pars_fragment:"",e.toneMapping!==Lu?Agt("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Wr.encodings_pars_fragment,Cgt("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` +`].filter(Wb).join(` +`)),a=m4(a),a=_ce(a,e),a=wce(a,e),o=m4(o),o=_ce(o,e),o=wce(o,e),a=Rce(a),o=Rce(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(E=`#version 300 es +`,g=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+g,y=["#define varying in",e.glslVersion===e4?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===e4?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+y);let b=E+g+a,x=E+y+o,S=Ice(n,35633,b),D=Ice(n,35632,x);if(n.attachShader(m,S),n.attachShader(m,D),e.index0AttributeName!==void 0?n.bindAttribLocation(m,0,e.index0AttributeName):e.morphTargets===!0&&n.bindAttribLocation(m,0,"position"),n.linkProgram(m),t.debug.checkShaderErrors){let w=n.getProgramInfoLog(m).trim(),F=n.getShaderInfoLog(S).trim(),X=n.getShaderInfoLog(D).trim(),H=!0,he=!0;if(n.getProgramParameter(m,35714)===!1){H=!1;let C=Sce(n,S,"vertex"),N=Sce(n,D,"fragment");console.error("THREE.WebGLProgram: Shader Error "+n.getError()+" - VALIDATE_STATUS "+n.getProgramParameter(m,35715)+` + +Program Info Log: `+w+` +`+C+` +`+N)}else w!==""?console.warn("THREE.WebGLProgram: Program Info Log:",w):(F===""||X==="")&&(he=!1);he&&(this.diagnostics={runnable:H,programLog:w,vertexShader:{log:F,prefix:g},fragmentShader:{log:X,prefix:y}})}n.deleteShader(S),n.deleteShader(D);let P;this.getUniforms=function(){return P===void 0&&(P=new _y(n,m)),P};let _;return this.getAttributes=function(){return _===void 0&&(_=Ngt(n,m)),_},this.destroy=function(){i.releaseStatesOfProgram(this),n.deleteProgram(m),this.program=void 0},this.name=e.shaderName,this.id=Rgt++,this.cacheKey=r,this.usedTimes=1,this.program=m,this.vertexShader=S,this.fragmentShader=D,this}var Wgt=0,g4=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(r){let e=r.vertexShader,i=r.fragmentShader,n=this._getShaderStage(e),s=this._getShaderStage(i),a=this._getShaderCacheForMaterial(r);return a.has(n)===!1&&(a.add(n),n.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(r){let e=this.materialCache.get(r);for(let i of e)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(r),this}getVertexShaderID(r){return this._getShaderStage(r.vertexShader).id}getFragmentShaderID(r){return this._getShaderStage(r.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(r){let e=this.materialCache,i=e.get(r);return i===void 0&&(i=new Set,e.set(r,i)),i}_getShaderStage(r){let e=this.shaderCache,i=e.get(r);return i===void 0&&(i=new v4(r),e.set(r,i)),i}},v4=class{constructor(r){this.id=Wgt++,this.code=r,this.usedTimes=0}};function qgt(t,r,e,i,n,s,a){let o=new My,l=new g4,c=[],u=n.isWebGL2,h=n.logarithmicDepthBuffer,p=n.vertexTextures,d=n.precision,f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(_,w,F,X,H){let he=X.fog,C=H.geometry,N=_.isMeshStandardMaterial?X.environment:null,k=(_.isMeshStandardMaterial?e:r).get(_.envMap||N),G=k&&k.mapping===By?k.image.height:null,U=f[_.type];_.precision!==null&&(d=n.getMaxPrecision(_.precision),d!==_.precision&&console.warn("THREE.WebGLProgram.getParameters:",_.precision,"not supported, using",d,"instead."));let j=C.morphAttributes.position||C.morphAttributes.normal||C.morphAttributes.color,ee=j!==void 0?j.length:0,ae=0;C.morphAttributes.position!==void 0&&(ae=1),C.morphAttributes.normal!==void 0&&(ae=2),C.morphAttributes.color!==void 0&&(ae=3);let se,ue,ve,be;if(U){let dt=Rc[U];se=dt.vertexShader,ue=dt.fragmentShader}else se=_.vertexShader,ue=_.fragmentShader,l.update(_),ve=l.getVertexShaderID(_),be=l.getFragmentShaderID(_);let de=t.getRenderTarget(),we=_.alphaTest>0,Fe=_.clearcoat>0,je=_.iridescence>0;return{isWebGL2:u,shaderID:U,shaderName:_.type,vertexShader:se,fragmentShader:ue,defines:_.defines,customVertexShaderID:ve,customFragmentShaderID:be,isRawShaderMaterial:_.isRawShaderMaterial===!0,glslVersion:_.glslVersion,precision:d,instancing:H.isInstancedMesh===!0,instancingColor:H.isInstancedMesh===!0&&H.instanceColor!==null,supportsVertexTextures:p,outputEncoding:de===null?t.outputEncoding:de.isXRRenderTarget===!0?de.texture.encoding:wl,map:!!_.map,matcap:!!_.matcap,envMap:!!k,envMapMode:k&&k.mapping,envMapCubeUVHeight:G,lightMap:!!_.lightMap,aoMap:!!_.aoMap,emissiveMap:!!_.emissiveMap,bumpMap:!!_.bumpMap,normalMap:!!_.normalMap,objectSpaceNormalMap:_.normalMapType===ahe,tangentSpaceNormalMap:_.normalMapType===mf,decodeVideoTexture:!!_.map&&_.map.isVideoTexture===!0&&_.map.encoding===yr,clearcoat:Fe,clearcoatMap:Fe&&!!_.clearcoatMap,clearcoatRoughnessMap:Fe&&!!_.clearcoatRoughnessMap,clearcoatNormalMap:Fe&&!!_.clearcoatNormalMap,iridescence:je,iridescenceMap:je&&!!_.iridescenceMap,iridescenceThicknessMap:je&&!!_.iridescenceThicknessMap,displacementMap:!!_.displacementMap,roughnessMap:!!_.roughnessMap,metalnessMap:!!_.metalnessMap,specularMap:!!_.specularMap,specularIntensityMap:!!_.specularIntensityMap,specularColorMap:!!_.specularColorMap,opaque:_.transparent===!1&&_.blending===pg,alphaMap:!!_.alphaMap,alphaTest:we,gradientMap:!!_.gradientMap,sheen:_.sheen>0,sheenColorMap:!!_.sheenColorMap,sheenRoughnessMap:!!_.sheenRoughnessMap,transmission:_.transmission>0,transmissionMap:!!_.transmissionMap,thicknessMap:!!_.thicknessMap,combine:_.combine,vertexTangents:!!_.normalMap&&!!C.attributes.tangent,vertexColors:_.vertexColors,vertexAlphas:_.vertexColors===!0&&!!C.attributes.color&&C.attributes.color.itemSize===4,vertexUvs:!!_.map||!!_.bumpMap||!!_.normalMap||!!_.specularMap||!!_.alphaMap||!!_.emissiveMap||!!_.roughnessMap||!!_.metalnessMap||!!_.clearcoatMap||!!_.clearcoatRoughnessMap||!!_.clearcoatNormalMap||!!_.iridescenceMap||!!_.iridescenceThicknessMap||!!_.displacementMap||!!_.transmissionMap||!!_.thicknessMap||!!_.specularIntensityMap||!!_.specularColorMap||!!_.sheenColorMap||!!_.sheenRoughnessMap,uvsVertexOnly:!(_.map||_.bumpMap||_.normalMap||_.specularMap||_.alphaMap||_.emissiveMap||_.roughnessMap||_.metalnessMap||_.clearcoatNormalMap||_.iridescenceMap||_.iridescenceThicknessMap||_.transmission>0||_.transmissionMap||_.thicknessMap||_.specularIntensityMap||_.specularColorMap||_.sheen>0||_.sheenColorMap||_.sheenRoughnessMap)&&!!_.displacementMap,fog:!!he,useFog:_.fog===!0,fogExp2:he&&he.isFogExp2,flatShading:!!_.flatShading,sizeAttenuation:_.sizeAttenuation,logarithmicDepthBuffer:h,skinning:H.isSkinnedMesh===!0,morphTargets:C.morphAttributes.position!==void 0,morphNormals:C.morphAttributes.normal!==void 0,morphColors:C.morphAttributes.color!==void 0,morphTargetsCount:ee,morphTextureStride:ae,numDirLights:w.directional.length,numPointLights:w.point.length,numSpotLights:w.spot.length,numSpotLightMaps:w.spotLightMap.length,numRectAreaLights:w.rectArea.length,numHemiLights:w.hemi.length,numDirLightShadows:w.directionalShadowMap.length,numPointLightShadows:w.pointShadowMap.length,numSpotLightShadows:w.spotShadowMap.length,numSpotLightShadowsWithMaps:w.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:_.dithering,shadowMapEnabled:t.shadowMap.enabled&&F.length>0,shadowMapType:t.shadowMap.type,toneMapping:_.toneMapped?t.toneMapping:Lu,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:_.premultipliedAlpha,doubleSided:_.side===wi,flipSided:_.side===Gn,useDepthPacking:!!_.depthPacking,depthPacking:_.depthPacking||0,index0AttributeName:_.index0AttributeName,extensionDerivatives:_.extensions&&_.extensions.derivatives,extensionFragDepth:_.extensions&&_.extensions.fragDepth,extensionDrawBuffers:_.extensions&&_.extensions.drawBuffers,extensionShaderTextureLOD:_.extensions&&_.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||i.has("EXT_shader_texture_lod"),customProgramCacheKey:_.customProgramCacheKey()}}function g(_){let w=[];if(_.shaderID?w.push(_.shaderID):(w.push(_.customVertexShaderID),w.push(_.customFragmentShaderID)),_.defines!==void 0)for(let F in _.defines)w.push(F),w.push(_.defines[F]);return _.isRawShaderMaterial===!1&&(y(w,_),E(w,_),w.push(t.outputEncoding)),w.push(_.customProgramCacheKey),w.join()}function y(_,w){_.push(w.precision),_.push(w.outputEncoding),_.push(w.envMapMode),_.push(w.envMapCubeUVHeight),_.push(w.combine),_.push(w.vertexUvs),_.push(w.fogExp2),_.push(w.sizeAttenuation),_.push(w.morphTargetsCount),_.push(w.morphAttributeCount),_.push(w.numDirLights),_.push(w.numPointLights),_.push(w.numSpotLights),_.push(w.numSpotLightMaps),_.push(w.numHemiLights),_.push(w.numRectAreaLights),_.push(w.numDirLightShadows),_.push(w.numPointLightShadows),_.push(w.numSpotLightShadows),_.push(w.numSpotLightShadowsWithMaps),_.push(w.shadowMapType),_.push(w.toneMapping),_.push(w.numClippingPlanes),_.push(w.numClipIntersection),_.push(w.depthPacking)}function E(_,w){o.disableAll(),w.isWebGL2&&o.enable(0),w.supportsVertexTextures&&o.enable(1),w.instancing&&o.enable(2),w.instancingColor&&o.enable(3),w.map&&o.enable(4),w.matcap&&o.enable(5),w.envMap&&o.enable(6),w.lightMap&&o.enable(7),w.aoMap&&o.enable(8),w.emissiveMap&&o.enable(9),w.bumpMap&&o.enable(10),w.normalMap&&o.enable(11),w.objectSpaceNormalMap&&o.enable(12),w.tangentSpaceNormalMap&&o.enable(13),w.clearcoat&&o.enable(14),w.clearcoatMap&&o.enable(15),w.clearcoatRoughnessMap&&o.enable(16),w.clearcoatNormalMap&&o.enable(17),w.iridescence&&o.enable(18),w.iridescenceMap&&o.enable(19),w.iridescenceThicknessMap&&o.enable(20),w.displacementMap&&o.enable(21),w.specularMap&&o.enable(22),w.roughnessMap&&o.enable(23),w.metalnessMap&&o.enable(24),w.gradientMap&&o.enable(25),w.alphaMap&&o.enable(26),w.alphaTest&&o.enable(27),w.vertexColors&&o.enable(28),w.vertexAlphas&&o.enable(29),w.vertexUvs&&o.enable(30),w.vertexTangents&&o.enable(31),w.uvsVertexOnly&&o.enable(32),_.push(o.mask),o.disableAll(),w.fog&&o.enable(0),w.useFog&&o.enable(1),w.flatShading&&o.enable(2),w.logarithmicDepthBuffer&&o.enable(3),w.skinning&&o.enable(4),w.morphTargets&&o.enable(5),w.morphNormals&&o.enable(6),w.morphColors&&o.enable(7),w.premultipliedAlpha&&o.enable(8),w.shadowMapEnabled&&o.enable(9),w.physicallyCorrectLights&&o.enable(10),w.doubleSided&&o.enable(11),w.flipSided&&o.enable(12),w.useDepthPacking&&o.enable(13),w.dithering&&o.enable(14),w.specularIntensityMap&&o.enable(15),w.specularColorMap&&o.enable(16),w.transmission&&o.enable(17),w.transmissionMap&&o.enable(18),w.thicknessMap&&o.enable(19),w.sheen&&o.enable(20),w.sheenColorMap&&o.enable(21),w.sheenRoughnessMap&&o.enable(22),w.decodeVideoTexture&&o.enable(23),w.opaque&&o.enable(24),_.push(o.mask)}function b(_){let w=f[_.type],F;if(w){let X=Rc[w];F=hn.clone(X.uniforms)}else F=_.uniforms;return F}function x(_,w){let F;for(let X=0,H=c.length;X0?i.push(y):d.transparent===!0?n.push(y):e.push(y)}function l(h,p,d,f,m,g){let y=a(h,p,d,f,m,g);d.transmission>0?i.unshift(y):d.transparent===!0?n.unshift(y):e.unshift(y)}function c(h,p){e.length>1&&e.sort(h||Xgt),i.length>1&&i.sort(p||Dce),n.length>1&&n.sort(p||Dce)}function u(){for(let h=r,p=t.length;h=s.length?(a=new Cce,s.push(a)):a=s[n],a}function e(){t=new WeakMap}return{get:r,dispose:e}}function Zgt(){let t={};return{get:function(r){if(t[r.id]!==void 0)return t[r.id];let e;switch(r.type){case"DirectionalLight":e={direction:new A,color:new Ve};break;case"SpotLight":e={position:new A,direction:new A,color:new Ve,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new A,color:new Ve,distance:0,decay:0};break;case"HemisphereLight":e={direction:new A,skyColor:new Ve,groundColor:new Ve};break;case"RectAreaLight":e={color:new Ve,position:new A,halfWidth:new A,halfHeight:new A};break}return t[r.id]=e,e}}}function Kgt(){let t={};return{get:function(r){if(t[r.id]!==void 0)return t[r.id];let e;switch(r.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new le};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new le};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new le,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[r.id]=e,e}}}var Jgt=0;function Qgt(t,r){return(r.castShadow?2:0)-(t.castShadow?2:0)+(r.map?1:0)-(t.map?1:0)}function e0t(t,r){let e=new Zgt,i=Kgt(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let u=0;u<9;u++)n.probe.push(new A);let s=new A,a=new Ue,o=new Ue;function l(u,h){let p=0,d=0,f=0;for(let X=0;X<9;X++)n.probe[X].set(0,0,0);let m=0,g=0,y=0,E=0,b=0,x=0,S=0,D=0,P=0,_=0;u.sort(Qgt);let w=h!==!0?Math.PI:1;for(let X=0,H=u.length;X0&&(r.isWebGL2||t.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=At.LTC_FLOAT_1,n.rectAreaLTC2=At.LTC_FLOAT_2):t.has("OES_texture_half_float_linear")===!0?(n.rectAreaLTC1=At.LTC_HALF_1,n.rectAreaLTC2=At.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),n.ambient[0]=p,n.ambient[1]=d,n.ambient[2]=f;let F=n.hash;(F.directionalLength!==m||F.pointLength!==g||F.spotLength!==y||F.rectAreaLength!==E||F.hemiLength!==b||F.numDirectionalShadows!==x||F.numPointShadows!==S||F.numSpotShadows!==D||F.numSpotMaps!==P)&&(n.directional.length=m,n.spot.length=y,n.rectArea.length=E,n.point.length=g,n.hemi.length=b,n.directionalShadow.length=x,n.directionalShadowMap.length=x,n.pointShadow.length=S,n.pointShadowMap.length=S,n.spotShadow.length=D,n.spotShadowMap.length=D,n.directionalShadowMatrix.length=x,n.pointShadowMatrix.length=S,n.spotLightMatrix.length=D+P-_,n.spotLightMap.length=P,n.numSpotLightShadowsWithMaps=_,F.directionalLength=m,F.pointLength=g,F.spotLength=y,F.rectAreaLength=E,F.hemiLength=b,F.numDirectionalShadows=x,F.numPointShadows=S,F.numSpotShadows=D,F.numSpotMaps=P,n.version=Jgt++)}function c(u,h){let p=0,d=0,f=0,m=0,g=0,y=h.matrixWorldInverse;for(let E=0,b=u.length;E=o.length?(l=new Ace(t,r),o.push(l)):l=o[a],l}function n(){e=new WeakMap}return{get:i,dispose:n}}var Tp=class extends Gr{constructor(r){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=she,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(r)}copy(r){return super.copy(r),this.depthPacking=r.depthPacking,this.map=r.map,this.alphaMap=r.alphaMap,this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this}},nx=class extends Gr{constructor(r){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new A,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(r)}copy(r){return super.copy(r),this.referencePosition.copy(r.referencePosition),this.nearDistance=r.nearDistance,this.farDistance=r.farDistance,this.map=r.map,this.alphaMap=r.alphaMap,this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this}},r0t=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,i0t=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function n0t(t,r,e){let i=new eo,n=new le,s=new le,a=new Jr,o=new Tp({depthPacking:Gy}),l=new nx,c={},u=e.maxTextureSize,h={[en]:Gn,[Gn]:en,[wi]:wi},p=new Yt({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new le},radius:{value:4}},vertexShader:r0t,fragmentShader:i0t}),d=p.clone();d.defines.HORIZONTAL_PASS=1;let f=new it;f.setAttribute("position",new jt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new Je(f,p),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=IU,this.render=function(x,S,D){if(g.enabled===!1||g.autoUpdate===!1&&g.needsUpdate===!1||x.length===0)return;let P=t.getRenderTarget(),_=t.getActiveCubeFace(),w=t.getActiveMipmapLevel(),F=t.state;F.setBlending(Fi),F.buffers.color.setClear(1,1,1,1),F.buffers.depth.setTest(!0),F.setScissorTest(!1);for(let X=0,H=x.length;Xu||n.y>u)&&(n.x>u&&(s.x=Math.floor(u/N.x),n.x=s.x*N.x,C.mapSize.x=s.x),n.y>u&&(s.y=Math.floor(u/N.y),n.y=s.y*N.y,C.mapSize.y=s.y)),C.map===null){let G=this.type!==by?{minFilter:Di,magFilter:Di}:{};C.map=new kr(n.x,n.y,G),C.map.texture.name=he.name+".shadowMap",C.camera.updateProjectionMatrix()}t.setRenderTarget(C.map),t.clear();let k=C.getViewportCount();for(let G=0;G0||S.map&&S.alphaTest>0){let H=F.uuid,he=S.uuid,C=c[H];C===void 0&&(C={},c[H]=C);let N=C[he];N===void 0&&(N=F.clone(),C[he]=N),F=N}return F.visible=S.visible,F.wireframe=S.wireframe,w===by?F.side=S.shadowSide!==null?S.shadowSide:S.side:F.side=S.shadowSide!==null?S.shadowSide:h[S.side],F.alphaMap=S.alphaMap,F.alphaTest=S.alphaTest,F.map=S.map,F.clipShadows=S.clipShadows,F.clippingPlanes=S.clippingPlanes,F.clipIntersection=S.clipIntersection,F.displacementMap=S.displacementMap,F.displacementScale=S.displacementScale,F.displacementBias=S.displacementBias,F.wireframeLinewidth=S.wireframeLinewidth,F.linewidth=S.linewidth,D.isPointLight===!0&&F.isMeshDistanceMaterial===!0&&(F.referencePosition.setFromMatrixPosition(D.matrixWorld),F.nearDistance=P,F.farDistance=_),F}function b(x,S,D,P,_){if(x.visible===!1)return;if(x.layers.test(S.layers)&&(x.isMesh||x.isLine||x.isPoints)&&(x.castShadow||x.receiveShadow&&_===by)&&(!x.frustumCulled||i.intersectsObject(x))){x.modelViewMatrix.multiplyMatrices(D.matrixWorldInverse,x.matrixWorld);let X=r.update(x),H=x.material;if(Array.isArray(H)){let he=X.groups;for(let C=0,N=he.length;C=1):U.indexOf("OpenGL ES")!==-1&&(G=parseFloat(/^OpenGL ES (\d)/.exec(U)[1]),k=G>=2);let j=null,ee={},ae=t.getParameter(3088),se=t.getParameter(2978),ue=new Jr().fromArray(ae),ve=new Jr().fromArray(se);function be(Ae,Xe,lt){let _t=new Uint8Array(4),Vt=t.createTexture();t.bindTexture(Ae,Vt),t.texParameteri(Ae,10241,9728),t.texParameteri(Ae,10240,9728);for(let Rr=0;RrCe||z.height>Ce)&&(Ge=Ce/Math.max(z.width,z.height)),Ge<1||Y===!0)if(typeof HTMLImageElement!="undefined"&&z instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&z instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&z instanceof ImageBitmap){let Ze=Y?ED:Math.floor,gt=Ze(Ge*z.width),ye=Ze(Ge*z.height);m===void 0&&(m=E(gt,ye));let Re=xe?E(gt,ye):m;return Re.width=gt,Re.height=ye,Re.getContext("2d").drawImage(z,0,0,gt,ye),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+z.width+"x"+z.height+") to ("+gt+"x"+ye+")."),Re}else return"data"in z&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+z.width+"x"+z.height+")."),z;return z}function x(z){return t4(z.width)&&t4(z.height)}function S(z){return o?!1:z.wrapS!==mn||z.wrapT!==mn||z.minFilter!==Di&&z.minFilter!==ai}function D(z,Y){return z.generateMipmaps&&Y&&z.minFilter!==Di&&z.minFilter!==ai}function P(z){t.generateMipmap(z)}function _(z,Y,xe,Ce,Ge=!1){if(o===!1)return Y;if(z!==null){if(t[z]!==void 0)return t[z];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+z+"'")}let Ze=Y;return Y===6403&&(xe===5126&&(Ze=33326),xe===5131&&(Ze=33325),xe===5121&&(Ze=33321)),Y===33319&&(xe===5126&&(Ze=33328),xe===5131&&(Ze=33327),xe===5121&&(Ze=33323)),Y===6408&&(xe===5126&&(Ze=34836),xe===5131&&(Ze=34842),xe===5121&&(Ze=Ce===yr&&Ge===!1?35907:32856),xe===32819&&(Ze=32854),xe===32820&&(Ze=32855)),(Ze===33325||Ze===33326||Ze===33327||Ze===33328||Ze===34842||Ze===34836)&&r.get("EXT_color_buffer_float"),Ze}function w(z,Y,xe){return D(z,xe)===!0||z.isFramebufferTexture&&z.minFilter!==Di&&z.minFilter!==ai?Math.log2(Math.max(Y.width,Y.height))+1:z.mipmaps!==void 0&&z.mipmaps.length>0?z.mipmaps.length:z.isCompressedTexture&&Array.isArray(z.image)?Y.mipmaps.length:1}function F(z){return z===Di||z===of||z===pp?9728:9729}function X(z){let Y=z.target;Y.removeEventListener("dispose",X),he(Y),Y.isVideoTexture&&f.delete(Y)}function H(z){let Y=z.target;Y.removeEventListener("dispose",H),N(Y)}function he(z){let Y=i.get(z);if(Y.__webglInit===void 0)return;let xe=z.source,Ce=g.get(xe);if(Ce){let Ge=Ce[Y.__cacheKey];Ge.usedTimes--,Ge.usedTimes===0&&C(z),Object.keys(Ce).length===0&&g.delete(xe)}i.remove(z)}function C(z){let Y=i.get(z);t.deleteTexture(Y.__webglTexture);let xe=z.source,Ce=g.get(xe);delete Ce[Y.__cacheKey],a.memory.textures--}function N(z){let Y=z.texture,xe=i.get(z),Ce=i.get(Y);if(Ce.__webglTexture!==void 0&&(t.deleteTexture(Ce.__webglTexture),a.memory.textures--),z.depthTexture&&z.depthTexture.dispose(),z.isWebGLCubeRenderTarget)for(let Ge=0;Ge<6;Ge++)t.deleteFramebuffer(xe.__webglFramebuffer[Ge]),xe.__webglDepthbuffer&&t.deleteRenderbuffer(xe.__webglDepthbuffer[Ge]);else{if(t.deleteFramebuffer(xe.__webglFramebuffer),xe.__webglDepthbuffer&&t.deleteRenderbuffer(xe.__webglDepthbuffer),xe.__webglMultisampledFramebuffer&&t.deleteFramebuffer(xe.__webglMultisampledFramebuffer),xe.__webglColorRenderbuffer)for(let Ge=0;Ge=l&&console.warn("THREE.WebGLTextures: Trying to use "+z+" texture units while this GPU supports only "+l),k+=1,z}function j(z){let Y=[];return Y.push(z.wrapS),Y.push(z.wrapT),Y.push(z.wrapR||0),Y.push(z.magFilter),Y.push(z.minFilter),Y.push(z.anisotropy),Y.push(z.internalFormat),Y.push(z.format),Y.push(z.type),Y.push(z.generateMipmaps),Y.push(z.premultiplyAlpha),Y.push(z.flipY),Y.push(z.unpackAlignment),Y.push(z.encoding),Y.join()}function ee(z,Y){let xe=i.get(z);if(z.isVideoTexture&&re(z),z.isRenderTargetTexture===!1&&z.version>0&&xe.__version!==z.version){let Ce=z.image;if(Ce===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Ce.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Fe(xe,z,Y);return}}e.bindTexture(3553,xe.__webglTexture,33984+Y)}function ae(z,Y){let xe=i.get(z);if(z.version>0&&xe.__version!==z.version){Fe(xe,z,Y);return}e.bindTexture(35866,xe.__webglTexture,33984+Y)}function se(z,Y){let xe=i.get(z);if(z.version>0&&xe.__version!==z.version){Fe(xe,z,Y);return}e.bindTexture(32879,xe.__webglTexture,33984+Y)}function ue(z,Y){let xe=i.get(z);if(z.version>0&&xe.__version!==z.version){je(xe,z,Y);return}e.bindTexture(34067,xe.__webglTexture,33984+Y)}let ve={[gn]:10497,[mn]:33071,[mp]:33648},be={[Di]:9728,[of]:9984,[pp]:9986,[ai]:9729,[Hg]:9985,[wa]:9987};function de(z,Y,xe){if(xe?(t.texParameteri(z,10242,ve[Y.wrapS]),t.texParameteri(z,10243,ve[Y.wrapT]),(z===32879||z===35866)&&t.texParameteri(z,32882,ve[Y.wrapR]),t.texParameteri(z,10240,be[Y.magFilter]),t.texParameteri(z,10241,be[Y.minFilter])):(t.texParameteri(z,10242,33071),t.texParameteri(z,10243,33071),(z===32879||z===35866)&&t.texParameteri(z,32882,33071),(Y.wrapS!==mn||Y.wrapT!==mn)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(z,10240,F(Y.magFilter)),t.texParameteri(z,10241,F(Y.minFilter)),Y.minFilter!==Di&&Y.minFilter!==ai&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),r.has("EXT_texture_filter_anisotropic")===!0){let Ce=r.get("EXT_texture_filter_anisotropic");if(Y.magFilter===Di||Y.minFilter!==pp&&Y.minFilter!==wa||Y.type===_a&&r.has("OES_texture_float_linear")===!1||o===!1&&Y.type===Go&&r.has("OES_texture_half_float_linear")===!1)return;(Y.anisotropy>1||i.get(Y).__currentAnisotropy)&&(t.texParameterf(z,Ce.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Y.anisotropy,n.getMaxAnisotropy())),i.get(Y).__currentAnisotropy=Y.anisotropy)}}function we(z,Y){let xe=!1;z.__webglInit===void 0&&(z.__webglInit=!0,Y.addEventListener("dispose",X));let Ce=Y.source,Ge=g.get(Ce);Ge===void 0&&(Ge={},g.set(Ce,Ge));let Ze=j(Y);if(Ze!==z.__cacheKey){Ge[Ze]===void 0&&(Ge[Ze]={texture:t.createTexture(),usedTimes:0},a.memory.textures++,xe=!0),Ge[Ze].usedTimes++;let gt=Ge[z.__cacheKey];gt!==void 0&&(Ge[z.__cacheKey].usedTimes--,gt.usedTimes===0&&C(Y)),z.__cacheKey=Ze,z.__webglTexture=Ge[Ze].texture}return xe}function Fe(z,Y,xe){let Ce=3553;(Y.isDataArrayTexture||Y.isCompressedArrayTexture)&&(Ce=35866),Y.isData3DTexture&&(Ce=32879);let Ge=we(z,Y),Ze=Y.source;e.bindTexture(Ce,z.__webglTexture,33984+xe);let gt=i.get(Ze);if(Ze.version!==gt.__version||Ge===!0){e.activeTexture(33984+xe),t.pixelStorei(37440,Y.flipY),t.pixelStorei(37441,Y.premultiplyAlpha),t.pixelStorei(3317,Y.unpackAlignment),t.pixelStorei(37443,0);let ye=S(Y)&&x(Y.image)===!1,Re=b(Y.image,ye,!1,u);Re=me(Y,Re);let ut=x(Re)||o,vt=s.convert(Y.format,Y.encoding),Et=s.convert(Y.type),Ct=_(Y.internalFormat,vt,Et,Y.encoding,Y.isVideoTexture);de(Ce,Y,ut);let Dt,cr=Y.mipmaps,Xt=o&&Y.isVideoTexture!==!0,gr=gt.__version===void 0||Ge===!0,Ae=w(Y,Re,ut);if(Y.isDepthTexture)Ct=6402,o?Y.type===_a?Ct=36012:Y.type===rf?Ct=33190:Y.type===dp?Ct=35056:Ct=33189:Y.type===_a&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),Y.format===nf&&Ct===6402&&Y.type!==_x&&Y.type!==rf&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),Y.type=rf,Et=s.convert(Y.type)),Y.format===gp&&Ct===6402&&(Ct=34041,Y.type!==dp&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),Y.type=dp,Et=s.convert(Y.type))),gr&&(Xt?e.texStorage2D(3553,1,Ct,Re.width,Re.height):e.texImage2D(3553,0,Ct,Re.width,Re.height,0,vt,Et,null));else if(Y.isDataTexture)if(cr.length>0&&ut){Xt&&gr&&e.texStorage2D(3553,Ae,Ct,cr[0].width,cr[0].height);for(let Xe=0,lt=cr.length;Xe>=1,lt>>=1}}else if(cr.length>0&&ut){Xt&&gr&&e.texStorage2D(3553,Ae,Ct,cr[0].width,cr[0].height);for(let Xe=0,lt=cr.length;Xe0&&gr++,e.texStorage2D(34067,gr,Dt,Re[0].width,Re[0].height));for(let Xe=0;Xe<6;Xe++)if(ye){cr?e.texSubImage2D(34069+Xe,0,0,0,Re[Xe].width,Re[Xe].height,Et,Ct,Re[Xe].data):e.texImage2D(34069+Xe,0,Dt,Re[Xe].width,Re[Xe].height,0,Et,Ct,Re[Xe].data);for(let lt=0;lt=34069&&Ge<=34074)&&t.framebufferTexture2D(36160,Ce,Ge,i.get(xe).__webglTexture,0),e.bindFramebuffer(36160,null)}function dt(z,Y,xe){if(t.bindRenderbuffer(36161,z),Y.depthBuffer&&!Y.stencilBuffer){let Ce=33189;if(xe||$(Y)){let Ge=Y.depthTexture;Ge&&Ge.isDepthTexture&&(Ge.type===_a?Ce=36012:Ge.type===rf&&(Ce=33190));let Ze=J(Y);$(Y)?p.renderbufferStorageMultisampleEXT(36161,Ze,Ce,Y.width,Y.height):t.renderbufferStorageMultisample(36161,Ze,Ce,Y.width,Y.height)}else t.renderbufferStorage(36161,Ce,Y.width,Y.height);t.framebufferRenderbuffer(36160,36096,36161,z)}else if(Y.depthBuffer&&Y.stencilBuffer){let Ce=J(Y);xe&&$(Y)===!1?t.renderbufferStorageMultisample(36161,Ce,35056,Y.width,Y.height):$(Y)?p.renderbufferStorageMultisampleEXT(36161,Ce,35056,Y.width,Y.height):t.renderbufferStorage(36161,34041,Y.width,Y.height),t.framebufferRenderbuffer(36160,33306,36161,z)}else{let Ce=Y.isWebGLMultipleRenderTargets===!0?Y.texture:[Y.texture];for(let Ge=0;Ge0&&$(z)===!1){let ye=Ze?Y:[Y];xe.__webglMultisampledFramebuffer=t.createFramebuffer(),xe.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,xe.__webglMultisampledFramebuffer);for(let Re=0;Re0&&$(z)===!1){let Y=z.isWebGLMultipleRenderTargets?z.texture:[z.texture],xe=z.width,Ce=z.height,Ge=16384,Ze=[],gt=z.stencilBuffer?33306:36096,ye=i.get(z),Re=z.isWebGLMultipleRenderTargets===!0;if(Re)for(let ut=0;ut0&&r.has("WEBGL_multisampled_render_to_texture")===!0&&Y.__useRenderToTexture!==!1}function re(z){let Y=a.render.frame;f.get(z)!==Y&&(f.set(z,Y),z.update())}function me(z,Y){let xe=z.encoding,Ce=z.format,Ge=z.type;return z.isCompressedTexture===!0||z.isVideoTexture===!0||z.format===TD||xe!==wl&&(xe===yr?o===!1?r.has("EXT_sRGB")===!0&&Ce===Bs?(z.format=TD,z.minFilter=ai,z.generateMipmaps=!1):Y=tx.sRGBToLinear(Y):(Ce!==Bs||Ge!==Fu)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",xe)),Y}this.allocateTextureUnit=U,this.resetTextureUnits=G,this.setTexture2D=ee,this.setTexture2DArray=ae,this.setTexture3D=se,this.setTextureCube=ue,this.rebindTextures=nt,this.setupRenderTarget=bt,this.updateRenderTargetMipmap=mt,this.updateMultisampleRenderTarget=_e,this.setupDepthRenderbuffer=ke,this.setupFrameBufferTexture=Oe,this.useMultisampledRTT=$}function vhe(t,r,e){let i=e.isWebGL2;function n(s,a=null){let o;if(s===Fu)return 5121;if(s===que)return 32819;if(s===Yue)return 32820;if(s===zue)return 5120;if(s===jue)return 5122;if(s===_x)return 5123;if(s===Wue)return 5124;if(s===rf)return 5125;if(s===_a)return 5126;if(s===Go)return i?5131:(o=r.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(s===Xue)return 6406;if(s===Bs)return 6408;if(s===YD)return 6409;if(s===$ue)return 6410;if(s===nf)return 6402;if(s===gp)return 34041;if(s===TD)return o=r.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(s===XD)return 6403;if(s===Zue)return 36244;if(s===Kue)return 33319;if(s===Jue)return 33320;if(s===Que)return 36249;if(s===uD||s===hD||s===pD||s===dD)if(a===yr)if(o=r.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(s===uD)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===hD)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===pD)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===dD)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=r.get("WEBGL_compressed_texture_s3tc"),o!==null){if(s===uD)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===hD)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===pD)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===dD)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===AH||s===OH||s===PH||s===NH)if(o=r.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(s===AH)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===OH)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===PH)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===NH)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===ehe)return o=r.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===LH||s===FH)if(o=r.get("WEBGL_compressed_texture_etc"),o!==null){if(s===LH)return a===yr?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(s===FH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===HH||s===UH||s===BH||s===kH||s===GH||s===VH||s===zH||s===jH||s===WH||s===qH||s===YH||s===XH||s===$H||s===ZH)if(o=r.get("WEBGL_compressed_texture_astc"),o!==null){if(s===HH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===UH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===BH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===kH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===GH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===VH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===zH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===jH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===WH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===qH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===YH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===XH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===$H)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ZH)return a===yr?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===fD)if(o=r.get("EXT_texture_compression_bptc"),o!==null){if(s===fD)return a===yr?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(s===the||s===KH||s===JH||s===QH)if(o=r.get("EXT_texture_compression_rgtc"),o!==null){if(s===fD)return o.COMPRESSED_RED_RGTC1_EXT;if(s===KH)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===JH)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===QH)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===dp?i?34042:(o=r.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):t[s]!==void 0?t[s]:null}return{convert:n}}var ID=class extends qr{constructor(r=[]){super(),this.isArrayCamera=!0,this.cameras=r}},hr=class extends pr{constructor(){super(),this.isGroup=!0,this.type="Group"}},o0t={type:"move"},Yb=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new hr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new hr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new A,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new A),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new hr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new A,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new A),this._grip}dispatchEvent(r){return this._targetRay!==null&&this._targetRay.dispatchEvent(r),this._grip!==null&&this._grip.dispatchEvent(r),this._hand!==null&&this._hand.dispatchEvent(r),this}connect(r){if(r&&r.hand){let e=this._hand;if(e)for(let i of r.hand.values())this._getHandJoint(e,i)}return this.dispatchEvent({type:"connected",data:r}),this}disconnect(r){return this.dispatchEvent({type:"disconnected",data:r}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(r,e,i){let n=null,s=null,a=null,o=this._targetRay,l=this._grip,c=this._hand;if(r&&e.session.visibilityState!=="visible-blurred"){if(c&&r.hand){a=!0;for(let m of r.hand.values()){let g=e.getJointPose(m,i),y=this._getHandJoint(c,m);g!==null&&(y.matrix.fromArray(g.transform.matrix),y.matrix.decompose(y.position,y.rotation,y.scale),y.jointRadius=g.radius),y.visible=g!==null}let u=c.joints["index-finger-tip"],h=c.joints["thumb-tip"],p=u.position.distanceTo(h.position),d=.02,f=.005;c.inputState.pinching&&p>d+f?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:r.handedness,target:this})):!c.inputState.pinching&&p<=d-f&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:r.handedness,target:this}))}else l!==null&&r.gripSpace&&(s=e.getPose(r.gripSpace,i),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(n=e.getPose(r.targetRaySpace,i),n===null&&s!==null&&(n=s),n!==null&&(o.matrix.fromArray(n.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),n.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(n.linearVelocity)):o.hasLinearVelocity=!1,n.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(n.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(o0t)))}return o!==null&&(o.visible=n!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(r,e){if(r.joints[e.jointName]===void 0){let i=new hr;i.matrixAutoUpdate=!1,i.visible=!1,r.joints[e.jointName]=i,r.add(i)}return r.joints[e.jointName]}},lf=class extends Hi{constructor(r,e,i,n,s,a,o,l,c,u){if(u=u!==void 0?u:nf,u!==nf&&u!==gp)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&u===nf&&(i=rf),i===void 0&&u===gp&&(i=dp),super(null,n,s,a,o,l,u,i,c),this.isDepthTexture=!0,this.image={width:r,height:e},this.magFilter=o!==void 0?o:Di,this.minFilter=l!==void 0?l:Di,this.flipY=!1,this.generateMipmaps=!1}},y4=class extends Ra{constructor(r,e){super();let i=this,n=null,s=1,a=null,o="local-floor",l=1,c=null,u=null,h=null,p=null,d=null,f=null,m=e.getContextAttributes(),g=null,y=null,E=[],b=[],x=new Set,S=new Map,D=new qr;D.layers.enable(1),D.viewport=new Jr;let P=new qr;P.layers.enable(2),P.viewport=new Jr;let _=[D,P],w=new ID;w.layers.enable(1),w.layers.enable(2);let F=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(se){let ue=E[se];return ue===void 0&&(ue=new Yb,E[se]=ue),ue.getTargetRaySpace()},this.getControllerGrip=function(se){let ue=E[se];return ue===void 0&&(ue=new Yb,E[se]=ue),ue.getGripSpace()},this.getHand=function(se){let ue=E[se];return ue===void 0&&(ue=new Yb,E[se]=ue),ue.getHandSpace()};function H(se){let ue=b.indexOf(se.inputSource);if(ue===-1)return;let ve=E[ue];ve!==void 0&&ve.dispatchEvent({type:se.type,data:se.inputSource})}function he(){n.removeEventListener("select",H),n.removeEventListener("selectstart",H),n.removeEventListener("selectend",H),n.removeEventListener("squeeze",H),n.removeEventListener("squeezestart",H),n.removeEventListener("squeezeend",H),n.removeEventListener("end",he),n.removeEventListener("inputsourceschange",C);for(let se=0;se=0&&(b[be]=null,E[be].disconnect(ve))}for(let ue=0;ue=b.length){b.push(ve),be=we;break}else if(b[we]===null){b[we]=ve,be=we;break}if(be===-1)break}let de=E[be];de&&de.connect(ve)}}let N=new A,k=new A;function G(se,ue,ve){N.setFromMatrixPosition(ue.matrixWorld),k.setFromMatrixPosition(ve.matrixWorld);let be=N.distanceTo(k),de=ue.projectionMatrix.elements,we=ve.projectionMatrix.elements,Fe=de[14]/(de[10]-1),je=de[14]/(de[10]+1),Oe=(de[9]+1)/de[5],dt=(de[9]-1)/de[5],Be=(de[8]-1)/de[0],ke=(we[8]+1)/we[0],nt=Fe*Be,bt=Fe*ke,mt=be/(-Be+ke),_e=mt*-Be;ue.matrixWorld.decompose(se.position,se.quaternion,se.scale),se.translateX(_e),se.translateZ(mt),se.matrixWorld.compose(se.position,se.quaternion,se.scale),se.matrixWorldInverse.copy(se.matrixWorld).invert();let J=Fe+mt,$=je+mt,re=nt-_e,me=bt+(be-_e),z=Oe*je/$*J,Y=dt*je/$*J;se.projectionMatrix.makePerspective(re,me,z,Y,J,$)}function U(se,ue){ue===null?se.matrixWorld.copy(se.matrix):se.matrixWorld.multiplyMatrices(ue.matrixWorld,se.matrix),se.matrixWorldInverse.copy(se.matrixWorld).invert()}this.updateCamera=function(se){if(n===null)return;w.near=P.near=D.near=se.near,w.far=P.far=D.far=se.far,(F!==w.near||X!==w.far)&&(n.updateRenderState({depthNear:w.near,depthFar:w.far}),F=w.near,X=w.far);let ue=se.parent,ve=w.cameras;U(w,ue);for(let de=0;dede&&(S.set(be,be.lastChangedTime),i.dispatchEvent({type:"planechanged",data:be}))}}f=null}let ae=new phe;ae.setAnimationLoop(ee),this.setAnimationLoop=function(se){j=se},this.dispose=function(){}}};function l0t(t,r){function e(m,g){g.color.getRGB(m.fogColor.value,hhe(t)),g.isFog?(m.fogNear.value=g.near,m.fogFar.value=g.far):g.isFogExp2&&(m.fogDensity.value=g.density)}function i(m,g,y,E,b){g.isMeshBasicMaterial||g.isMeshLambertMaterial?n(m,g):g.isMeshToonMaterial?(n(m,g),u(m,g)):g.isMeshPhongMaterial?(n(m,g),c(m,g)):g.isMeshStandardMaterial?(n(m,g),h(m,g),g.isMeshPhysicalMaterial&&p(m,g,b)):g.isMeshMatcapMaterial?(n(m,g),d(m,g)):g.isMeshDepthMaterial?n(m,g):g.isMeshDistanceMaterial?(n(m,g),f(m,g)):g.isMeshNormalMaterial?n(m,g):g.isLineBasicMaterial?(s(m,g),g.isLineDashedMaterial&&a(m,g)):g.isPointsMaterial?o(m,g,y,E):g.isSpriteMaterial?l(m,g):g.isShadowMaterial?(m.color.value.copy(g.color),m.opacity.value=g.opacity):g.isShaderMaterial&&(g.uniformsNeedUpdate=!1)}function n(m,g){m.opacity.value=g.opacity,g.color&&m.diffuse.value.copy(g.color),g.emissive&&m.emissive.value.copy(g.emissive).multiplyScalar(g.emissiveIntensity),g.map&&(m.map.value=g.map),g.alphaMap&&(m.alphaMap.value=g.alphaMap),g.bumpMap&&(m.bumpMap.value=g.bumpMap,m.bumpScale.value=g.bumpScale,g.side===Gn&&(m.bumpScale.value*=-1)),g.displacementMap&&(m.displacementMap.value=g.displacementMap,m.displacementScale.value=g.displacementScale,m.displacementBias.value=g.displacementBias),g.emissiveMap&&(m.emissiveMap.value=g.emissiveMap),g.normalMap&&(m.normalMap.value=g.normalMap,m.normalScale.value.copy(g.normalScale),g.side===Gn&&m.normalScale.value.negate()),g.specularMap&&(m.specularMap.value=g.specularMap),g.alphaTest>0&&(m.alphaTest.value=g.alphaTest);let y=r.get(g).envMap;if(y&&(m.envMap.value=y,m.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=g.reflectivity,m.ior.value=g.ior,m.refractionRatio.value=g.refractionRatio),g.lightMap){m.lightMap.value=g.lightMap;let x=t.physicallyCorrectLights!==!0?Math.PI:1;m.lightMapIntensity.value=g.lightMapIntensity*x}g.aoMap&&(m.aoMap.value=g.aoMap,m.aoMapIntensity.value=g.aoMapIntensity);let E;g.map?E=g.map:g.specularMap?E=g.specularMap:g.displacementMap?E=g.displacementMap:g.normalMap?E=g.normalMap:g.bumpMap?E=g.bumpMap:g.roughnessMap?E=g.roughnessMap:g.metalnessMap?E=g.metalnessMap:g.alphaMap?E=g.alphaMap:g.emissiveMap?E=g.emissiveMap:g.clearcoatMap?E=g.clearcoatMap:g.clearcoatNormalMap?E=g.clearcoatNormalMap:g.clearcoatRoughnessMap?E=g.clearcoatRoughnessMap:g.iridescenceMap?E=g.iridescenceMap:g.iridescenceThicknessMap?E=g.iridescenceThicknessMap:g.specularIntensityMap?E=g.specularIntensityMap:g.specularColorMap?E=g.specularColorMap:g.transmissionMap?E=g.transmissionMap:g.thicknessMap?E=g.thicknessMap:g.sheenColorMap?E=g.sheenColorMap:g.sheenRoughnessMap&&(E=g.sheenRoughnessMap),E!==void 0&&(E.isWebGLRenderTarget&&(E=E.texture),E.matrixAutoUpdate===!0&&E.updateMatrix(),m.uvTransform.value.copy(E.matrix));let b;g.aoMap?b=g.aoMap:g.lightMap&&(b=g.lightMap),b!==void 0&&(b.isWebGLRenderTarget&&(b=b.texture),b.matrixAutoUpdate===!0&&b.updateMatrix(),m.uv2Transform.value.copy(b.matrix))}function s(m,g){m.diffuse.value.copy(g.color),m.opacity.value=g.opacity}function a(m,g){m.dashSize.value=g.dashSize,m.totalSize.value=g.dashSize+g.gapSize,m.scale.value=g.scale}function o(m,g,y,E){m.diffuse.value.copy(g.color),m.opacity.value=g.opacity,m.size.value=g.size*y,m.scale.value=E*.5,g.map&&(m.map.value=g.map),g.alphaMap&&(m.alphaMap.value=g.alphaMap),g.alphaTest>0&&(m.alphaTest.value=g.alphaTest);let b;g.map?b=g.map:g.alphaMap&&(b=g.alphaMap),b!==void 0&&(b.matrixAutoUpdate===!0&&b.updateMatrix(),m.uvTransform.value.copy(b.matrix))}function l(m,g){m.diffuse.value.copy(g.color),m.opacity.value=g.opacity,m.rotation.value=g.rotation,g.map&&(m.map.value=g.map),g.alphaMap&&(m.alphaMap.value=g.alphaMap),g.alphaTest>0&&(m.alphaTest.value=g.alphaTest);let y;g.map?y=g.map:g.alphaMap&&(y=g.alphaMap),y!==void 0&&(y.matrixAutoUpdate===!0&&y.updateMatrix(),m.uvTransform.value.copy(y.matrix))}function c(m,g){m.specular.value.copy(g.specular),m.shininess.value=Math.max(g.shininess,1e-4)}function u(m,g){g.gradientMap&&(m.gradientMap.value=g.gradientMap)}function h(m,g){m.roughness.value=g.roughness,m.metalness.value=g.metalness,g.roughnessMap&&(m.roughnessMap.value=g.roughnessMap),g.metalnessMap&&(m.metalnessMap.value=g.metalnessMap),r.get(g).envMap&&(m.envMapIntensity.value=g.envMapIntensity)}function p(m,g,y){m.ior.value=g.ior,g.sheen>0&&(m.sheenColor.value.copy(g.sheenColor).multiplyScalar(g.sheen),m.sheenRoughness.value=g.sheenRoughness,g.sheenColorMap&&(m.sheenColorMap.value=g.sheenColorMap),g.sheenRoughnessMap&&(m.sheenRoughnessMap.value=g.sheenRoughnessMap)),g.clearcoat>0&&(m.clearcoat.value=g.clearcoat,m.clearcoatRoughness.value=g.clearcoatRoughness,g.clearcoatMap&&(m.clearcoatMap.value=g.clearcoatMap),g.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=g.clearcoatRoughnessMap),g.clearcoatNormalMap&&(m.clearcoatNormalScale.value.copy(g.clearcoatNormalScale),m.clearcoatNormalMap.value=g.clearcoatNormalMap,g.side===Gn&&m.clearcoatNormalScale.value.negate())),g.iridescence>0&&(m.iridescence.value=g.iridescence,m.iridescenceIOR.value=g.iridescenceIOR,m.iridescenceThicknessMinimum.value=g.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=g.iridescenceThicknessRange[1],g.iridescenceMap&&(m.iridescenceMap.value=g.iridescenceMap),g.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=g.iridescenceThicknessMap)),g.transmission>0&&(m.transmission.value=g.transmission,m.transmissionSamplerMap.value=y.texture,m.transmissionSamplerSize.value.set(y.width,y.height),g.transmissionMap&&(m.transmissionMap.value=g.transmissionMap),m.thickness.value=g.thickness,g.thicknessMap&&(m.thicknessMap.value=g.thicknessMap),m.attenuationDistance.value=g.attenuationDistance,m.attenuationColor.value.copy(g.attenuationColor)),m.specularIntensity.value=g.specularIntensity,m.specularColor.value.copy(g.specularColor),g.specularIntensityMap&&(m.specularIntensityMap.value=g.specularIntensityMap),g.specularColorMap&&(m.specularColorMap.value=g.specularColorMap)}function d(m,g){g.matcap&&(m.matcap.value=g.matcap)}function f(m,g){m.referencePosition.value.copy(g.referencePosition),m.nearDistance.value=g.nearDistance,m.farDistance.value=g.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:i}}function c0t(t,r,e,i){let n={},s={},a=[],o=e.isWebGL2?t.getParameter(35375):0;function l(E,b){let x=b.program;i.uniformBlockBinding(E,x)}function c(E,b){let x=n[E.id];x===void 0&&(f(E),x=u(E),n[E.id]=x,E.addEventListener("dispose",g));let S=b.program;i.updateUBOMapping(E,S);let D=r.render.frame;s[E.id]!==D&&(p(E),s[E.id]=D)}function u(E){let b=h();E.__bindingPointIndex=b;let x=t.createBuffer(),S=E.__size,D=E.usage;return t.bindBuffer(35345,x),t.bufferData(35345,S,D),t.bindBuffer(35345,null),t.bindBufferBase(35345,b,x),x}function h(){for(let E=0;E0){D=x%S;let H=S-D;D!==0&&H-F.boundary<0&&(x+=S-D,w.__offset=x)}x+=F.storage}return D=x%S,D>0&&(x+=S-D),E.__size=x,E.__cache={},this}function m(E){let b={boundary:0,storage:0};return typeof E=="number"?(b.boundary=4,b.storage=4):E.isVector2?(b.boundary=8,b.storage=8):E.isVector3||E.isColor?(b.boundary=16,b.storage=12):E.isVector4?(b.boundary=16,b.storage=16):E.isMatrix3?(b.boundary=48,b.storage=48):E.isMatrix4?(b.boundary=64,b.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),b}function g(E){let b=E.target;b.removeEventListener("dispose",g);let x=a.indexOf(b.__bindingPointIndex);a.splice(x,1),t.deleteBuffer(n[b.id]),delete n[b.id],delete s[b.id]}function y(){for(let E in n)t.deleteBuffer(n[E]);a=[],n={},s={}}return{bind:l,update:c,dispose:y}}function u0t(){let t=ex("canvas");return t.style.display="block",t}function Pl(t={}){this.isWebGLRenderer=!0;let r=t.canvas!==void 0?t.canvas:u0t(),e=t.context!==void 0?t.context:null,i=t.depth!==void 0?t.depth:!0,n=t.stencil!==void 0?t.stencil:!0,s=t.antialias!==void 0?t.antialias:!1,a=t.premultipliedAlpha!==void 0?t.premultipliedAlpha:!0,o=t.preserveDrawingBuffer!==void 0?t.preserveDrawingBuffer:!1,l=t.powerPreference!==void 0?t.powerPreference:"default",c=t.failIfMajorPerformanceCaveat!==void 0?t.failIfMajorPerformanceCaveat:!1,u;e!==null?u=e.getContextAttributes().alpha:u=t.alpha!==void 0?t.alpha:!1;let h=null,p=null,d=[],f=[];this.domElement=r,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=wl,this.physicallyCorrectLights=!1,this.toneMapping=Lu,this.toneMappingExposure=1;let m=this,g=!1,y=0,E=0,b=null,x=-1,S=null,D=new Jr,P=new Jr,_=null,w=r.width,F=r.height,X=1,H=null,he=null,C=new Jr(0,0,w,F),N=new Jr(0,0,w,F),k=!1,G=new eo,U=!1,j=!1,ee=null,ae=new Ue,se=new le,ue=new A,ve={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function be(){return b===null?X:1}let de=e;function we(Te,ze){for(let Qe=0;Qe0?p=f[f.length-1]:p=null,d.pop(),d.length>0?h=d[d.length-1]:h=null};function Ki(Te,ze,Qe,Le){if(Te.visible===!1)return;if(Te.layers.test(ze.layers)){if(Te.isGroup)Qe=Te.renderOrder;else if(Te.isLOD)Te.autoUpdate===!0&&Te.update(ze);else if(Te.isLight)p.pushLight(Te),Te.castShadow&&p.pushShadow(Te);else if(Te.isSprite){if(!Te.frustumCulled||G.intersectsSprite(Te)){Le&&ue.setFromMatrixPosition(Te.matrixWorld).applyMatrix4(ae);let Ir=J.update(Te),Nr=Te.material;Nr.visible&&h.push(Te,Ir,Nr,Qe,ue.z,null)}}else if((Te.isMesh||Te.isLine||Te.isPoints)&&(Te.isSkinnedMesh&&Te.skeleton.frame!==dt.render.frame&&(Te.skeleton.update(),Te.skeleton.frame=dt.render.frame),!Te.frustumCulled||G.intersectsObject(Te))){Le&&ue.setFromMatrixPosition(Te.matrixWorld).applyMatrix4(ae);let Ir=J.update(Te),Nr=Te.material;if(Array.isArray(Nr)){let Fr=Ir.groups;for(let Yr=0,kt=Fr.length;Yr0&&Fn(Ke,ze,Qe),Le&&Oe.viewport(D.copy(Le)),Ke.length>0&&Kt(Ke,ze,Qe),Jt.length>0&&Kt(Jt,ze,Qe),Ir.length>0&&Kt(Ir,ze,Qe),Oe.buffers.depth.setTest(!0),Oe.buffers.depth.setMask(!0),Oe.buffers.color.setMask(!0),Oe.setPolygonOffset(!1)}function Fn(Te,ze,Qe){let Le=je.isWebGL2;ee===null&&(ee=new kr(1,1,{generateMipmaps:!0,type:Fe.has("EXT_color_buffer_half_float")?Go:Fu,minFilter:wa,samples:Le&&s===!0?4:0})),m.getDrawingBufferSize(se),Le?ee.setSize(se.x,se.y):ee.setSize(ED(se.x),ED(se.y));let Ke=m.getRenderTarget();m.setRenderTarget(ee),m.clear();let Jt=m.toneMapping;m.toneMapping=Lu,Kt(Te,ze,Qe),m.toneMapping=Jt,ke.updateMultisampleRenderTarget(ee),ke.updateRenderTargetMipmap(ee),m.setRenderTarget(Ke)}function Kt(Te,ze,Qe){let Le=ze.isScene===!0?ze.overrideMaterial:null;for(let Ke=0,Jt=Te.length;Ke0&&ke.useMultisampledRTT(Te)===!1?Ke=Be.get(Te).__webglMultisampledFramebuffer:Ke=kt,D.copy(Te.viewport),P.copy(Te.scissor),_=Te.scissorTest}else D.copy(C).multiplyScalar(X).floor(),P.copy(N).multiplyScalar(X).floor(),_=k;if(Oe.bindFramebuffer(36160,Ke)&&je.drawBuffers&&Le&&Oe.drawBuffers(Te,Ke),Oe.viewport(D),Oe.scissor(P),Oe.setScissorTest(_),Jt){let Fr=Be.get(Te.texture);de.framebufferTexture2D(36160,36064,34069+ze,Fr.__webglTexture,Qe)}else if(Ir){let Fr=Be.get(Te.texture),Yr=ze||0;de.framebufferTextureLayer(36160,36064,Fr.__webglTexture,Qe||0,Yr)}x=-1},this.readRenderTargetPixels=function(Te,ze,Qe,Le,Ke,Jt,Ir){if(!(Te&&Te.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Nr=Be.get(Te).__webglFramebuffer;if(Te.isWebGLCubeRenderTarget&&Ir!==void 0&&(Nr=Nr[Ir]),Nr){Oe.bindFramebuffer(36160,Nr);try{let Fr=Te.texture,Yr=Fr.format,kt=Fr.type;if(Yr!==Bs&&ye.convert(Yr)!==de.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Vr=kt===Go&&(Fe.has("EXT_color_buffer_half_float")||je.isWebGL2&&Fe.has("EXT_color_buffer_float"));if(kt!==Fu&&ye.convert(kt)!==de.getParameter(35738)&&!(kt===_a&&(je.isWebGL2||Fe.has("OES_texture_float")||Fe.has("WEBGL_color_buffer_float")))&&!Vr){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}ze>=0&&ze<=Te.width-Le&&Qe>=0&&Qe<=Te.height-Ke&&de.readPixels(ze,Qe,Le,Ke,ye.convert(Yr),ye.convert(kt),Jt)}finally{let Fr=b!==null?Be.get(b).__webglFramebuffer:null;Oe.bindFramebuffer(36160,Fr)}}},this.copyFramebufferToTexture=function(Te,ze,Qe=0){let Le=Math.pow(2,-Qe),Ke=Math.floor(ze.image.width*Le),Jt=Math.floor(ze.image.height*Le);ke.setTexture2D(ze,0),de.copyTexSubImage2D(3553,Qe,0,0,Te.x,Te.y,Ke,Jt),Oe.unbindTexture()},this.copyTextureToTexture=function(Te,ze,Qe,Le=0){let Ke=ze.image.width,Jt=ze.image.height,Ir=ye.convert(Qe.format),Nr=ye.convert(Qe.type);ke.setTexture2D(Qe,0),de.pixelStorei(37440,Qe.flipY),de.pixelStorei(37441,Qe.premultiplyAlpha),de.pixelStorei(3317,Qe.unpackAlignment),ze.isDataTexture?de.texSubImage2D(3553,Le,Te.x,Te.y,Ke,Jt,Ir,Nr,ze.image.data):ze.isCompressedTexture?de.compressedTexSubImage2D(3553,Le,Te.x,Te.y,ze.mipmaps[0].width,ze.mipmaps[0].height,Ir,ze.mipmaps[0].data):de.texSubImage2D(3553,Le,Te.x,Te.y,Ir,Nr,ze.image),Le===0&&Qe.generateMipmaps&&de.generateMipmap(3553),Oe.unbindTexture()},this.copyTextureToTexture3D=function(Te,ze,Qe,Le,Ke=0){if(m.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let Jt=Te.max.x-Te.min.x+1,Ir=Te.max.y-Te.min.y+1,Nr=Te.max.z-Te.min.z+1,Fr=ye.convert(Le.format),Yr=ye.convert(Le.type),kt;if(Le.isData3DTexture)ke.setTexture3D(Le,0),kt=32879;else if(Le.isDataArrayTexture)ke.setTexture2DArray(Le,0),kt=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}de.pixelStorei(37440,Le.flipY),de.pixelStorei(37441,Le.premultiplyAlpha),de.pixelStorei(3317,Le.unpackAlignment);let Vr=de.getParameter(3314),ei=de.getParameter(32878),dn=de.getParameter(3316),ki=de.getParameter(3315),nr=de.getParameter(32877),q=Qe.isCompressedTexture?Qe.mipmaps[0]:Qe.image;de.pixelStorei(3314,q.width),de.pixelStorei(32878,q.height),de.pixelStorei(3316,Te.min.x),de.pixelStorei(3315,Te.min.y),de.pixelStorei(32877,Te.min.z),Qe.isDataTexture||Qe.isData3DTexture?de.texSubImage3D(kt,Ke,ze.x,ze.y,ze.z,Jt,Ir,Nr,Fr,Yr,q.data):Qe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),de.compressedTexSubImage3D(kt,Ke,ze.x,ze.y,ze.z,Jt,Ir,Nr,Fr,q.data)):de.texSubImage3D(kt,Ke,ze.x,ze.y,ze.z,Jt,Ir,Nr,Fr,Yr,q),de.pixelStorei(3314,Vr),de.pixelStorei(32878,ei),de.pixelStorei(3316,dn),de.pixelStorei(3315,ki),de.pixelStorei(32877,nr),Ke===0&&Le.generateMipmaps&&de.generateMipmap(kt),Oe.unbindTexture()},this.initTexture=function(Te){Te.isCubeTexture?ke.setTextureCube(Te,0):Te.isData3DTexture?ke.setTexture3D(Te,0):Te.isDataArrayTexture||Te.isCompressedArrayTexture?ke.setTexture2DArray(Te,0):ke.setTexture2D(Te,0),Oe.unbindTexture()},this.resetState=function(){y=0,E=0,b=null,Oe.reset(),Re.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var SD=class extends Pl{};SD.prototype.isWebGL1Renderer=!0;var Cy=class{constructor(r,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new Ve(r),this.density=e}clone(){return new Cy(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}},Uu=class{constructor(r,e=1,i=1e3){this.isFog=!0,this.name="",this.color=new Ve(r),this.near=e,this.far=i}clone(){return new Uu(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}},On=class extends pr{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(r,e){return super.copy(r,e),r.background!==null&&(this.background=r.background.clone()),r.environment!==null&&(this.environment=r.environment.clone()),r.fog!==null&&(this.fog=r.fog.clone()),this.backgroundBlurriness=r.backgroundBlurriness,this.backgroundIntensity=r.backgroundIntensity,r.overrideMaterial!==null&&(this.overrideMaterial=r.overrideMaterial.clone()),this.matrixAutoUpdate=r.matrixAutoUpdate,this}toJSON(r){let e=super.toJSON(r);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(r){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=r}},Ep=class{constructor(r,e){this.isInterleavedBuffer=!0,this.array=r,this.stride=e,this.count=r!==void 0?r.length/e:0,this.usage=Jb,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ko()}onUploadCallback(){}set needsUpdate(r){r===!0&&this.version++}setUsage(r){return this.usage=r,this}copy(r){return this.array=new r.array.constructor(r.array),this.count=r.count,this.stride=r.stride,this.usage=r.usage,this}copyAt(r,e,i){r*=this.stride,i*=e.stride;for(let n=0,s=this.stride;nr.far||e.push({distance:l,point:kb.clone(),uv:un.getUV(kb,zM,Vb,jM,Oce,gH,Pce,new le),face:null,object:this})}copy(r,e){return super.copy(r,e),r.center!==void 0&&this.center.copy(r.center),this.material=r.material,this}};function WM(t,r,e,i,n,s){Ey.subVectors(t,e).addScalar(.5).multiply(i),n!==void 0?(Gb.x=s*Ey.x-n*Ey.y,Gb.y=n*Ey.x+s*Ey.y):Gb.copy(Ey),t.copy(r),t.x+=Gb.x,t.y+=Gb.y,t.applyMatrix4(yhe)}var qM=new A,Nce=new A,wD=class extends pr{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(r){super.copy(r,!1);let e=r.levels;for(let i=0,n=e.length;i0){let i,n;for(i=1,n=e.length;i0){qM.setFromMatrixPosition(this.matrixWorld);let n=r.ray.origin.distanceTo(qM);this.getObjectForDistance(n).raycast(r,e)}}update(r){let e=this.levels;if(e.length>1){qM.setFromMatrixPosition(r.matrixWorld),Nce.setFromMatrixPosition(this.matrixWorld);let i=qM.distanceTo(Nce)/r.zoom;e[0].object.visible=!0;let n,s;for(n=1,s=e.length;n=a)e[n-1].object.visible=!1,e[n].object.visible=!0;else break}for(this._currentLevel=n-1;nl)continue;p.applyMatrix4(this.matrixWorld);let _=r.ray.origin.distanceTo(p);_r.far||e.push({distance:_,point:h.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}else{let y=Math.max(0,a.start),E=Math.min(g.count,a.start+a.count);for(let b=y,x=E-1;bl)continue;p.applyMatrix4(this.matrixWorld);let D=r.ray.origin.distanceTo(p);Dr.far||e.push({distance:D,point:h.clone().applyMatrix4(this.matrixWorld),index:b,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let e=this.geometry.morphAttributes,i=Object.keys(e);if(i.length>0){let n=e[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;s0){let n=e[i[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;sn.far)return;s.push({distance:c,distanceToRay:Math.sqrt(o),point:l,index:r,face:null,object:a})}}var E4=class extends Hi{constructor(r,e,i,n,s,a,o,l,c){super(r,e,i,n,s,a,o,l,c),this.isVideoTexture=!0,this.minFilter=a!==void 0?a:ai,this.magFilter=s!==void 0?s:ai,this.generateMipmaps=!1;let u=this;function h(){u.needsUpdate=!0,r.requestVideoFrameCallback(h)}"requestVideoFrameCallback"in r&&r.requestVideoFrameCallback(h)}clone(){return new this.constructor(this.image).copy(this)}update(){let r=this.image;"requestVideoFrameCallback"in r===!1&&r.readyState>=r.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},b4=class extends Hi{constructor(r,e,i){super({width:r,height:e}),this.isFramebufferTexture=!0,this.format=i,this.magFilter=Di,this.minFilter=Di,this.generateMipmaps=!1,this.needsUpdate=!0}},sx=class extends Hi{constructor(r,e,i,n,s,a,o,l,c,u,h,p){super(null,a,o,l,c,u,n,s,h,p),this.isCompressedTexture=!0,this.image={width:e,height:i},this.mipmaps=r,this.flipY=!1,this.generateMipmaps=!1}},x4=class extends sx{constructor(r,e,i,n,s,a){super(r,e,i,s,a),this.isCompressedArrayTexture=!0,this.image.depth=n,this.wrapR=mn}},I4=class extends Hi{constructor(r,e,i,n,s,a,o,l,c){super(r,e,i,n,s,a,o,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}},Ma=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(r,e){let i=this.getUtoTmapping(r);return this.getPoint(i,e)}getPoints(r=5){let e=[];for(let i=0;i<=r;i++)e.push(this.getPoint(i/r));return e}getSpacedPoints(r=5){let e=[];for(let i=0;i<=r;i++)e.push(this.getPointAt(i/r));return e}getLength(){let r=this.getLengths();return r[r.length-1]}getLengths(r=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===r+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let e=[],i,n=this.getPoint(0),s=0;e.push(0);for(let a=1;a<=r;a++)i=this.getPoint(a/r),s+=i.distanceTo(n),e.push(s),n=i;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(r,e){let i=this.getLengths(),n=0,s=i.length,a;e?a=e:a=r*i[s-1];let o=0,l=s-1,c;for(;o<=l;)if(n=Math.floor(o+(l-o)/2),c=i[n]-a,c<0)o=n+1;else if(c>0)l=n-1;else{l=n;break}if(n=l,i[n]===a)return n/(s-1);let u=i[n],p=i[n+1]-u,d=(a-u)/p;return(n+d)/(s-1)}getTangent(r,e){let n=r-1e-4,s=r+1e-4;n<0&&(n=0),s>1&&(s=1);let a=this.getPoint(n),o=this.getPoint(s),l=e||(a.isVector2?new le:new A);return l.copy(o).sub(a).normalize(),l}getTangentAt(r,e){let i=this.getUtoTmapping(r);return this.getTangent(i,e)}computeFrenetFrames(r,e){let i=new A,n=[],s=[],a=[],o=new A,l=new Ue;for(let d=0;d<=r;d++){let f=d/r;n[d]=this.getTangentAt(f,new A)}s[0]=new A,a[0]=new A;let c=Number.MAX_VALUE,u=Math.abs(n[0].x),h=Math.abs(n[0].y),p=Math.abs(n[0].z);u<=c&&(c=u,i.set(1,0,0)),h<=c&&(c=h,i.set(0,1,0)),p<=c&&i.set(0,0,1),o.crossVectors(n[0],i).normalize(),s[0].crossVectors(n[0],o),a[0].crossVectors(n[0],s[0]);for(let d=1;d<=r;d++){if(s[d]=s[d-1].clone(),a[d]=a[d-1].clone(),o.crossVectors(n[d-1],n[d]),o.length()>Number.EPSILON){o.normalize();let f=Math.acos(Qn(n[d-1].dot(n[d]),-1,1));s[d].applyMatrix4(l.makeRotationAxis(o,f))}a[d].crossVectors(n[d],s[d])}if(e===!0){let d=Math.acos(Qn(s[0].dot(s[r]),-1,1));d/=r,n[0].dot(o.crossVectors(s[0],s[r]))>0&&(d=-d);for(let f=1;f<=r;f++)s[f].applyMatrix4(l.makeRotationAxis(n[f],d*f)),a[f].crossVectors(n[f],s[f])}return{tangents:n,normals:s,binormals:a}}clone(){return new this.constructor().copy(this)}copy(r){return this.arcLengthDivisions=r.arcLengthDivisions,this}toJSON(){let r={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return r.arcLengthDivisions=this.arcLengthDivisions,r.type=this.type,r}fromJSON(r){return this.arcLengthDivisions=r.arcLengthDivisions,this}},xp=class extends Ma{constructor(r=0,e=0,i=1,n=1,s=0,a=Math.PI*2,o=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=r,this.aY=e,this.xRadius=i,this.yRadius=n,this.aStartAngle=s,this.aEndAngle=a,this.aClockwise=o,this.aRotation=l}getPoint(r,e){let i=e||new le,n=Math.PI*2,s=this.aEndAngle-this.aStartAngle,a=Math.abs(s)n;)s-=n;s0?0:(Math.floor(Math.abs(o)/s)+1)*s:l===0&&o===s-1&&(o=s-2,l=1);let c,u;this.closed||o>0?c=n[(o-1)%s]:(KM.subVectors(n[0],n[1]).add(n[0]),c=KM);let h=n[o%s],p=n[(o+1)%s];if(this.closed||o+2n.length-2?n.length-1:a+1],h=n[a>n.length-3?n.length-1:a+2];return i.set($ce(o,l.x,c.x,u.x,h.x),$ce(o,l.y,c.y,u.y,h.y)),i}copy(r){super.copy(r),this.points=[];for(let e=0,i=r.points.length;e=i){let a=n[s]-i,o=this.curves[s],l=o.getLength(),c=l===0?0:1-a/l;return o.getPointAt(c,e)}s++}return null}getLength(){let r=this.getCurveLengths();return r[r.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let r=[],e=0;for(let i=0,n=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(r){super.copy(r),this.curves=[];for(let e=0,i=r.curves.length;e0){let h=c.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(c);let u=c.getPoint(1);return this.currentPoint.copy(u),this}copy(r){return super.copy(r),this.currentPoint.copy(r.currentPoint),this}toJSON(){let r=super.toJSON();return r.currentPoint=this.currentPoint.toArray(),r}fromJSON(r){return super.fromJSON(r),this.currentPoint.fromArray(r.currentPoint),this}},cf=class extends it{constructor(r=[new le(0,-.5),new le(.5,0),new le(0,.5)],e=12,i=0,n=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:r,segments:e,phiStart:i,phiLength:n},e=Math.floor(e),n=Qn(n,0,Math.PI*2);let s=[],a=[],o=[],l=[],c=[],u=1/e,h=new A,p=new le,d=new A,f=new A,m=new A,g=0,y=0;for(let E=0;E<=r.length-1;E++)switch(E){case 0:g=r[E+1].x-r[E].x,y=r[E+1].y-r[E].y,d.x=y*1,d.y=-g,d.z=y*0,m.copy(d),d.normalize(),l.push(d.x,d.y,d.z);break;case r.length-1:l.push(m.x,m.y,m.z);break;default:g=r[E+1].x-r[E].x,y=r[E+1].y-r[E].y,d.x=y*1,d.y=-g,d.z=y*0,f.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),l.push(d.x,d.y,d.z),m.copy(f)}for(let E=0;E<=e;E++){let b=i+E*u*n,x=Math.sin(b),S=Math.cos(b);for(let D=0;D<=r.length-1;D++){h.x=r[D].x*x,h.y=r[D].y,h.z=r[D].x*S,a.push(h.x,h.y,h.z),p.x=E/e,p.y=D/(r.length-1),o.push(p.x,p.y);let P=l[3*D+0]*x,_=l[3*D+1],w=l[3*D+0]*S;c.push(P,_,w)}}for(let E=0;E0&&b(!0),e>0&&b(!1)),this.setIndex(u),this.setAttribute("position",new ct(h,3)),this.setAttribute("normal",new ct(p,3)),this.setAttribute("uv",new ct(d,2));function E(){let x=new A,S=new A,D=0,P=(e-r)/i;for(let _=0;_<=s;_++){let w=[],F=_/s,X=F*(e-r)+r;for(let H=0;H<=n;H++){let he=H/n,C=he*l+o,N=Math.sin(C),k=Math.cos(C);S.x=X*N,S.y=-F*i+g,S.z=X*k,h.push(S.x,S.y,S.z),x.set(N,P,k).normalize(),p.push(x.x,x.y,x.z),d.push(he,1-F),w.push(f++)}m.push(w)}for(let _=0;_.9&&P<.1&&(b<.2&&(a[E+0]+=1),x<.2&&(a[E+2]+=1),S<.2&&(a[E+4]+=1))}}function p(E){s.push(E.x,E.y,E.z)}function d(E,b){let x=E*3;b.x=r[x+0],b.y=r[x+1],b.z=r[x+2]}function f(){let E=new A,b=new A,x=new A,S=new A,D=new le,P=new le,_=new le;for(let w=0,F=0;w80*e){o=c=t[0],l=u=t[1];for(let f=e;fc&&(c=h),p>u&&(u=p);d=Math.max(c-o,u-l),d=d!==0?32767/d:0}return cx(s,a,e,o,l,d,0),a}};function The(t,r,e,i,n){let s,a;if(n===H0t(t,r,e,i)>0)for(s=r;s=r;s-=i)a=Zce(s,t[s],t[s+1],a);return a&&KD(a,a.next)&&(hx(a),a=a.next),a}function wg(t,r){if(!t)return t;r||(r=t);let e=t,i;do if(i=!1,!e.steiner&&(KD(e,e.next)||An(e.prev,e,e.next)===0)){if(hx(e),e=r=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==r);return r}function cx(t,r,e,i,n,s,a){if(!t)return;!a&&s&&A0t(t,i,n,s);let o=t,l,c;for(;t.prev!==t.next;){if(l=t.prev,c=t.next,s?I0t(t,i,n,s):x0t(t)){r.push(l.i/e|0),r.push(t.i/e|0),r.push(c.i/e|0),hx(t),t=c.next,o=c.next;continue}if(t=c,t===o){a?a===1?(t=S0t(wg(t),r,e),cx(t,r,e,i,n,s,2)):a===2&&_0t(t,r,e,i,n,s):cx(wg(t),r,e,i,n,s,1);break}}}function x0t(t){let r=t.prev,e=t,i=t.next;if(An(r,e,i)>=0)return!1;let n=r.x,s=e.x,a=i.x,o=r.y,l=e.y,c=i.y,u=ns?n>a?n:a:s>a?s:a,d=o>l?o>c?o:c:l>c?l:c,f=i.next;for(;f!==r;){if(f.x>=u&&f.x<=p&&f.y>=h&&f.y<=d&&Sy(n,o,s,l,a,c,f.x,f.y)&&An(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function I0t(t,r,e,i){let n=t.prev,s=t,a=t.next;if(An(n,s,a)>=0)return!1;let o=n.x,l=s.x,c=a.x,u=n.y,h=s.y,p=a.y,d=ol?o>c?o:c:l>c?l:c,g=u>h?u>p?u:p:h>p?h:p,y=S4(d,f,r,e,i),E=S4(m,g,r,e,i),b=t.prevZ,x=t.nextZ;for(;b&&b.z>=y&&x&&x.z<=E;){if(b.x>=d&&b.x<=m&&b.y>=f&&b.y<=g&&b!==n&&b!==a&&Sy(o,u,l,h,c,p,b.x,b.y)&&An(b.prev,b,b.next)>=0||(b=b.prevZ,x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&Sy(o,u,l,h,c,p,x.x,x.y)&&An(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;b&&b.z>=y;){if(b.x>=d&&b.x<=m&&b.y>=f&&b.y<=g&&b!==n&&b!==a&&Sy(o,u,l,h,c,p,b.x,b.y)&&An(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;x&&x.z<=E;){if(x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&Sy(o,u,l,h,c,p,x.x,x.y)&&An(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function S0t(t,r,e){let i=t;do{let n=i.prev,s=i.next.next;!KD(n,s)&&Ehe(n,i,i.next,s)&&ux(n,s)&&ux(s,n)&&(r.push(n.i/e|0),r.push(i.i/e|0),r.push(s.i/e|0),hx(i),hx(i.next),i=t=s),i=i.next}while(i!==t);return wg(i)}function _0t(t,r,e,i,n,s){let a=t;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&N0t(a,o)){let l=bhe(a,o);a=wg(a,a.next),l=wg(l,l.next),cx(a,r,e,i,n,s,0),cx(l,r,e,i,n,s,0);return}o=o.next}a=a.next}while(a!==t)}function w0t(t,r,e,i){let n=[],s,a,o,l,c;for(s=0,a=r.length;s=e.next.y&&e.next.y!==e.y){let p=e.x+(a-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(p<=s&&p>i&&(i=p,n=e.x=e.x&&e.x>=l&&s!==e.x&&Sy(an.x||e.x===n.x&&C0t(n,e)))&&(n=e,u=h)),e=e.next;while(e!==o);return n}function C0t(t,r){return An(t.prev,t,r.prev)<0&&An(r.next,t,t.next)<0}function A0t(t,r,e,i){let n=t;do n.z===0&&(n.z=S4(n.x,n.y,r,e,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,O0t(n)}function O0t(t){let r,e,i,n,s,a,o,l,c=1;do{for(e=t,t=null,s=null,a=0;e;){for(a++,i=e,o=0,r=0;r0||l>0&&i;)o!==0&&(l===0||!i||e.z<=i.z)?(n=e,e=e.nextZ,o--):(n=i,i=i.nextZ,l--),s?s.nextZ=n:t=n,n.prevZ=s,s=n;e=i}s.nextZ=null,c*=2}while(a>1);return t}function S4(t,r,e,i,n){return t=(t-e)*n|0,r=(r-i)*n|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,t|r<<1}function P0t(t){let r=t,e=t;do(r.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(e-a)*(r-o)&&(e-a)*(s-o)>=(n-a)*(i-o)}function N0t(t,r){return t.next.i!==r.i&&t.prev.i!==r.i&&!L0t(t,r)&&(ux(t,r)&&ux(r,t)&&F0t(t,r)&&(An(t.prev,t,r.prev)||An(t,r.prev,r))||KD(t,r)&&An(t.prev,t,t.next)>0&&An(r.prev,r,r.next)>0)}function An(t,r,e){return(r.y-t.y)*(e.x-r.x)-(r.x-t.x)*(e.y-r.y)}function KD(t,r){return t.x===r.x&&t.y===r.y}function Ehe(t,r,e,i){let n=rD(An(t,r,e)),s=rD(An(t,r,i)),a=rD(An(e,i,t)),o=rD(An(e,i,r));return!!(n!==s&&a!==o||n===0&&tD(t,e,r)||s===0&&tD(t,i,r)||a===0&&tD(e,t,i)||o===0&&tD(e,r,i))}function tD(t,r,e){return r.x<=Math.max(t.x,e.x)&&r.x>=Math.min(t.x,e.x)&&r.y<=Math.max(t.y,e.y)&&r.y>=Math.min(t.y,e.y)}function rD(t){return t>0?1:t<0?-1:0}function L0t(t,r){let e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==r.i&&e.next.i!==r.i&&Ehe(e,e.next,t,r))return!0;e=e.next}while(e!==t);return!1}function ux(t,r){return An(t.prev,t,t.next)<0?An(t,r,t.next)>=0&&An(t,t.prev,r)>=0:An(t,r,t.prev)<0||An(t,t.next,r)<0}function F0t(t,r){let e=t,i=!1,n=(t.x+r.x)/2,s=(t.y+r.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&n<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next;while(e!==t);return i}function bhe(t,r){let e=new _4(t.i,t.x,t.y),i=new _4(r.i,r.x,r.y),n=t.next,s=r.prev;return t.next=r,r.prev=t,e.next=n,n.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function Zce(t,r,e,i){let n=new _4(t,r,e);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function hx(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function _4(t,r,e){this.i=t,this.x=r,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function H0t(t,r,e,i){let n=0;for(let s=r,a=e-i;s2&&t[r-1].equals(t[0])&&t.pop()}function Jce(t,r){for(let e=0;eNumber.EPSILON){let xe=Math.sqrt(z),Ce=Math.sqrt(re*re+me*me),Ge=ke.x-$/xe,Ze=ke.y+J/xe,gt=nt.x-me/Ce,ye=nt.y+re/Ce,Re=((gt-Ge)*me-(ye-Ze)*re)/(J*me-$*re);bt=Ge+J*Re-Be.x,mt=Ze+$*Re-Be.y;let ut=bt*bt+mt*mt;if(ut<=2)return new le(bt,mt);_e=Math.sqrt(ut/2)}else{let xe=!1;J>Number.EPSILON?re>Number.EPSILON&&(xe=!0):J<-Number.EPSILON?re<-Number.EPSILON&&(xe=!0):Math.sign($)===Math.sign(me)&&(xe=!0),xe?(bt=-$,mt=J,_e=Math.sqrt(z)):(bt=J,mt=$,_e=Math.sqrt(z/2))}return new le(bt/_e,mt/_e)}let j=[];for(let Be=0,ke=C.length,nt=ke-1,bt=Be+1;Be=0;Be--){let ke=Be/g,nt=d*Math.cos(ke*Math.PI/2),bt=f*Math.sin(ke*Math.PI/2)+m;for(let mt=0,_e=C.length;mt<_e;mt++){let J=N(C[mt],j[mt],bt);we(J.x,J.y,h+nt)}for(let mt=0,_e=X.length;mt<_e;mt++){let J=X[mt];ae=ee[mt];for(let $=0,re=J.length;$=0;){let bt=nt,mt=nt-1;mt<0&&(mt=Be.length-1);for(let _e=0,J=u+g*2;_e0)&&d.push(b,x,D),(y!==i-1||l0!=r>0&&this.version++,this._sheen=r}get clearcoat(){return this._clearcoat}set clearcoat(r){this._clearcoat>0!=r>0&&this.version++,this._clearcoat=r}get iridescence(){return this._iridescence}set iridescence(r){this._iridescence>0!=r>0&&this.version++,this._iridescence=r}get transmission(){return this._transmission}set transmission(r){this._transmission>0!=r>0&&this.version++,this._transmission=r}copy(r){return super.copy(r),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=r.clearcoat,this.clearcoatMap=r.clearcoatMap,this.clearcoatRoughness=r.clearcoatRoughness,this.clearcoatRoughnessMap=r.clearcoatRoughnessMap,this.clearcoatNormalMap=r.clearcoatNormalMap,this.clearcoatNormalScale.copy(r.clearcoatNormalScale),this.ior=r.ior,this.iridescence=r.iridescence,this.iridescenceMap=r.iridescenceMap,this.iridescenceIOR=r.iridescenceIOR,this.iridescenceThicknessRange=[...r.iridescenceThicknessRange],this.iridescenceThicknessMap=r.iridescenceThicknessMap,this.sheen=r.sheen,this.sheenColor.copy(r.sheenColor),this.sheenColorMap=r.sheenColorMap,this.sheenRoughness=r.sheenRoughness,this.sheenRoughnessMap=r.sheenRoughnessMap,this.transmission=r.transmission,this.transmissionMap=r.transmissionMap,this.thickness=r.thickness,this.thicknessMap=r.thicknessMap,this.attenuationDistance=r.attenuationDistance,this.attenuationColor.copy(r.attenuationColor),this.specularIntensity=r.specularIntensity,this.specularIntensityMap=r.specularIntensityMap,this.specularColor.copy(r.specularColor),this.specularColorMap=r.specularColorMap,this}},Ts=class extends Gr{constructor(r){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Ve(16777215),this.specular=new Ve(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ve(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(r)}copy(r){return super.copy(r),this.color.copy(r.color),this.specular.copy(r.specular),this.shininess=r.shininess,this.map=r.map,this.lightMap=r.lightMap,this.lightMapIntensity=r.lightMapIntensity,this.aoMap=r.aoMap,this.aoMapIntensity=r.aoMapIntensity,this.emissive.copy(r.emissive),this.emissiveMap=r.emissiveMap,this.emissiveIntensity=r.emissiveIntensity,this.bumpMap=r.bumpMap,this.bumpScale=r.bumpScale,this.normalMap=r.normalMap,this.normalMapType=r.normalMapType,this.normalScale.copy(r.normalScale),this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.specularMap=r.specularMap,this.alphaMap=r.alphaMap,this.envMap=r.envMap,this.combine=r.combine,this.reflectivity=r.reflectivity,this.refractionRatio=r.refractionRatio,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this.wireframeLinecap=r.wireframeLinecap,this.wireframeLinejoin=r.wireframeLinejoin,this.flatShading=r.flatShading,this.fog=r.fog,this}},ND=class extends Gr{constructor(r){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Ve(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ve(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(r)}copy(r){return super.copy(r),this.color.copy(r.color),this.map=r.map,this.gradientMap=r.gradientMap,this.lightMap=r.lightMap,this.lightMapIntensity=r.lightMapIntensity,this.aoMap=r.aoMap,this.aoMapIntensity=r.aoMapIntensity,this.emissive.copy(r.emissive),this.emissiveMap=r.emissiveMap,this.emissiveIntensity=r.emissiveIntensity,this.bumpMap=r.bumpMap,this.bumpScale=r.bumpScale,this.normalMap=r.normalMap,this.normalMapType=r.normalMapType,this.normalScale.copy(r.normalScale),this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.alphaMap=r.alphaMap,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this.wireframeLinecap=r.wireframeLinecap,this.wireframeLinejoin=r.wireframeLinejoin,this.fog=r.fog,this}},hf=class extends Gr{constructor(r){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(r)}copy(r){return super.copy(r),this.bumpMap=r.bumpMap,this.bumpScale=r.bumpScale,this.normalMap=r.normalMap,this.normalMapType=r.normalMapType,this.normalScale.copy(r.normalScale),this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this.flatShading=r.flatShading,this}},io=class extends Gr{constructor(r){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ve(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ve(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Sx,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(r)}copy(r){return super.copy(r),this.color.copy(r.color),this.map=r.map,this.lightMap=r.lightMap,this.lightMapIntensity=r.lightMapIntensity,this.aoMap=r.aoMap,this.aoMapIntensity=r.aoMapIntensity,this.emissive.copy(r.emissive),this.emissiveMap=r.emissiveMap,this.emissiveIntensity=r.emissiveIntensity,this.bumpMap=r.bumpMap,this.bumpScale=r.bumpScale,this.normalMap=r.normalMap,this.normalMapType=r.normalMapType,this.normalScale.copy(r.normalScale),this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.specularMap=r.specularMap,this.alphaMap=r.alphaMap,this.envMap=r.envMap,this.combine=r.combine,this.reflectivity=r.reflectivity,this.refractionRatio=r.refractionRatio,this.wireframe=r.wireframe,this.wireframeLinewidth=r.wireframeLinewidth,this.wireframeLinecap=r.wireframeLinecap,this.wireframeLinejoin=r.wireframeLinejoin,this.flatShading=r.flatShading,this.fog=r.fog,this}},LD=class extends Gr{constructor(r){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Ve(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=mf,this.normalScale=new le(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(r)}copy(r){return super.copy(r),this.defines={MATCAP:""},this.color.copy(r.color),this.matcap=r.matcap,this.map=r.map,this.bumpMap=r.bumpMap,this.bumpScale=r.bumpScale,this.normalMap=r.normalMap,this.normalMapType=r.normalMapType,this.normalScale.copy(r.normalScale),this.displacementMap=r.displacementMap,this.displacementScale=r.displacementScale,this.displacementBias=r.displacementBias,this.alphaMap=r.alphaMap,this.flatShading=r.flatShading,this.fog=r.fog,this}},Rp=class extends Tr{constructor(r){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(r)}copy(r){return super.copy(r),this.scale=r.scale,this.dashSize=r.dashSize,this.gapSize=r.gapSize,this}};function Sl(t,r,e){return AU(t)?new t.constructor(t.subarray(r,e!==void 0?e:t.length)):t.slice(r,e)}function hg(t,r,e){return!t||!e&&t.constructor===r?t:typeof r.BYTES_PER_ELEMENT=="number"?new r(t):Array.prototype.slice.call(t)}function AU(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function xhe(t){function r(n,s){return t[n]-t[s]}let e=t.length,i=new Array(e);for(let n=0;n!==e;++n)i[n]=n;return i.sort(r),i}function w4(t,r,e){let i=t.length,n=new t.constructor(i);for(let s=0,a=0;a!==i;++s){let o=e[s]*r;for(let l=0;l!==r;++l)n[a++]=t[o+l]}return n}function OU(t,r,e,i){let n=1,s=t[0];for(;s!==void 0&&s[i]===void 0;)s=t[n++];if(s===void 0)return;let a=s[i];if(a!==void 0)if(Array.isArray(a))do a=s[i],a!==void 0&&(r.push(s.time),e.push.apply(e,a)),s=t[n++];while(s!==void 0);else if(a.toArray!==void 0)do a=s[i],a!==void 0&&(r.push(s.time),a.toArray(e,e.length)),s=t[n++];while(s!==void 0);else do a=s[i],a!==void 0&&(r.push(s.time),e.push(a)),s=t[n++];while(s!==void 0)}function G0t(t,r,e,i,n=30){let s=t.clone();s.name=r;let a=[];for(let l=0;l=i)){h.push(c.times[d]);for(let m=0;ms.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=o.times[f]){let y=f*h+u,E=y+h-u;m=Sl(o.values,y,E)}else{let y=o.createInterpolant(),E=u,b=h-u;y.evaluate(s),m=Sl(y.resultBuffer,E,b)}l==="quaternion"&&new Or().fromArray(m).normalize().conjugate().toArray(m);let g=c.times.length;for(let y=0;y=s)){let o=e[1];r=s)break t}a=i,i=0;break r}break e}for(;i>>1;re;)--a;if(++a,s!==0||a!==n){s>=a&&(a=Math.max(a,1),s=a-1);let o=this.getValueSize();this.times=Sl(i,s,a),this.values=Sl(this.values,s*o,a*o)}return this}validate(){let r=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),r=!1);let i=this.times,n=this.values,s=i.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),r=!1);let a=null;for(let o=0;o!==s;o++){let l=i[o];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,l),r=!1;break}if(a!==null&&a>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,l,a),r=!1;break}a=l}if(n!==void 0&&AU(n))for(let o=0,l=n.length;o!==l;++o){let c=n[o];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,c),r=!1;break}}return r}optimize(){let r=Sl(this.times),e=Sl(this.values),i=this.getValueSize(),n=this.getInterpolation()===mD,s=r.length-1,a=1;for(let o=1;o0){r[a]=r[s];for(let o=s*i,l=a*i,c=0;c!==i;++c)e[l+c]=e[o+c];++a}return a!==r.length?(this.times=Sl(r,0,a),this.values=Sl(e,0,a*i)):(this.times=r,this.values=e),this}clone(){let r=Sl(this.times,0),e=Sl(this.values,0),i=this.constructor,n=new i(this.name,r,e);return n.createInterpolant=this.createInterpolant,n}};zo.prototype.TimeBufferType=Float32Array;zo.prototype.ValueBufferType=Float32Array;zo.prototype.DefaultInterpolation=Hu;var Dp=class extends zo{};Dp.prototype.ValueTypeName="bool";Dp.prototype.ValueBufferType=Array;Dp.prototype.DefaultInterpolation=vp;Dp.prototype.InterpolantFactoryMethodLinear=void 0;Dp.prototype.InterpolantFactoryMethodSmooth=void 0;var dx=class extends zo{};dx.prototype.ValueTypeName="color";var Cc=class extends zo{};Cc.prototype.ValueTypeName="number";var UD=class extends Mp{constructor(r,e,i,n){super(r,e,i,n)}interpolate_(r,e,i,n){let s=this.resultBuffer,a=this.sampleValues,o=this.valueSize,l=(i-e)/(n-e),c=r*o;for(let u=c+o;c!==u;c+=4)Or.slerpFlat(s,0,a,c-o,a,c,l);return s}},Da=class extends zo{InterpolantFactoryMethodLinear(r){return new UD(this.times,this.values,this.getValueSize(),r)}};Da.prototype.ValueTypeName="quaternion";Da.prototype.DefaultInterpolation=Hu;Da.prototype.InterpolantFactoryMethodSmooth=void 0;var Cp=class extends zo{};Cp.prototype.ValueTypeName="string";Cp.prototype.ValueBufferType=Array;Cp.prototype.DefaultInterpolation=vp;Cp.prototype.InterpolantFactoryMethodLinear=void 0;Cp.prototype.InterpolantFactoryMethodSmooth=void 0;var no=class extends zo{};no.prototype.ValueTypeName="vector";var so=class{constructor(r,e=-1,i,n=$D){this.name=r,this.tracks=i,this.duration=e,this.blendMode=n,this.uuid=ko(),this.duration<0&&this.resetDuration()}static parse(r){let e=[],i=r.tracks,n=1/(r.fps||1);for(let a=0,o=i.length;a!==o;++a)e.push(W0t(i[a]).scale(n));let s=new this(r.name,r.duration,e,r.blendMode);return s.uuid=r.uuid,s}static toJSON(r){let e=[],i=r.tracks,n={name:r.name,duration:r.duration,tracks:e,uuid:r.uuid,blendMode:r.blendMode};for(let s=0,a=i.length;s!==a;++s)e.push(zo.toJSON(i[s]));return n}static CreateFromMorphTargetSequence(r,e,i,n){let s=e.length,a=[];for(let o=0;o1){let h=u[1],p=n[h];p||(n[h]=p=[]),p.push(c)}}let a=[];for(let o in n)a.push(this.CreateFromMorphTargetSequence(o,n[o],e,i));return a}static parseAnimation(r,e){if(!r)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let i=function(h,p,d,f,m){if(d.length!==0){let g=[],y=[];OU(d,g,y,f),g.length!==0&&m.push(new h(p,g,y))}},n=[],s=r.name||"default",a=r.fps||30,o=r.blendMode,l=r.length||-1,c=r.hierarchy||[];for(let h=0;h{e&&e(s),this.manager.itemEnd(r)},0),s;if(cp[r]!==void 0){cp[r].push({onLoad:e,onProgress:i,onError:n});return}cp[r]=[],cp[r].push({onLoad:e,onProgress:i,onError:n});let a=new Request(r,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,l=this.responseType;fetch(a).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;let u=cp[r],h=c.body.getReader(),p=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),d=p?parseInt(p):0,f=d!==0,m=0,g=new ReadableStream({start(y){E();function E(){h.read().then(({done:b,value:x})=>{if(b)y.close();else{m+=x.byteLength;let S=new ProgressEvent("progress",{lengthComputable:f,loaded:m,total:d});for(let D=0,P=u.length;D{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(u=>new DOMParser().parseFromString(u,o));case"json":return c.json();default:if(o===void 0)return c.text();{let h=/charset="?([^;"\s]*)"?/i.exec(o),p=h&&h[1]?h[1].toLowerCase():void 0,d=new TextDecoder(p);return c.arrayBuffer().then(f=>d.decode(f))}}}).then(c=>{Og.add(r,c);let u=cp[r];delete cp[r];for(let h=0,p=u.length;h{let u=cp[r];if(u===void 0)throw this.manager.itemError(r),c;delete cp[r];for(let h=0,p=u.length;h{this.manager.itemEnd(r)}),this.manager.itemStart(r)}setResponseType(r){return this.responseType=r,this}setMimeType(r){return this.mimeType=r,this}},M4=class extends li{constructor(r){super(r)}load(r,e,i,n){let s=this,a=new ci(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(r,function(o){try{e(s.parse(JSON.parse(o)))}catch(l){n?n(l):console.error(l),s.manager.itemError(r)}},i,n)}parse(r){let e=[];for(let i=0;i0:n.vertexColors=r.vertexColors),r.uniforms!==void 0)for(let s in r.uniforms){let a=r.uniforms[s];switch(n.uniforms[s]={},a.type){case"t":n.uniforms[s].value=i(a.value);break;case"c":n.uniforms[s].value=new Ve().setHex(a.value);break;case"v2":n.uniforms[s].value=new le().fromArray(a.value);break;case"v3":n.uniforms[s].value=new A().fromArray(a.value);break;case"v4":n.uniforms[s].value=new Jr().fromArray(a.value);break;case"m3":n.uniforms[s].value=new Qi().fromArray(a.value);break;case"m4":n.uniforms[s].value=new Ue().fromArray(a.value);break;default:n.uniforms[s].value=a.value}}if(r.defines!==void 0&&(n.defines=r.defines),r.vertexShader!==void 0&&(n.vertexShader=r.vertexShader),r.fragmentShader!==void 0&&(n.fragmentShader=r.fragmentShader),r.glslVersion!==void 0&&(n.glslVersion=r.glslVersion),r.extensions!==void 0)for(let s in r.extensions)n.extensions[s]=r.extensions[s];if(r.size!==void 0&&(n.size=r.size),r.sizeAttenuation!==void 0&&(n.sizeAttenuation=r.sizeAttenuation),r.map!==void 0&&(n.map=i(r.map)),r.matcap!==void 0&&(n.matcap=i(r.matcap)),r.alphaMap!==void 0&&(n.alphaMap=i(r.alphaMap)),r.bumpMap!==void 0&&(n.bumpMap=i(r.bumpMap)),r.bumpScale!==void 0&&(n.bumpScale=r.bumpScale),r.normalMap!==void 0&&(n.normalMap=i(r.normalMap)),r.normalMapType!==void 0&&(n.normalMapType=r.normalMapType),r.normalScale!==void 0){let s=r.normalScale;Array.isArray(s)===!1&&(s=[s,s]),n.normalScale=new le().fromArray(s)}return r.displacementMap!==void 0&&(n.displacementMap=i(r.displacementMap)),r.displacementScale!==void 0&&(n.displacementScale=r.displacementScale),r.displacementBias!==void 0&&(n.displacementBias=r.displacementBias),r.roughnessMap!==void 0&&(n.roughnessMap=i(r.roughnessMap)),r.metalnessMap!==void 0&&(n.metalnessMap=i(r.metalnessMap)),r.emissiveMap!==void 0&&(n.emissiveMap=i(r.emissiveMap)),r.emissiveIntensity!==void 0&&(n.emissiveIntensity=r.emissiveIntensity),r.specularMap!==void 0&&(n.specularMap=i(r.specularMap)),r.specularIntensityMap!==void 0&&(n.specularIntensityMap=i(r.specularIntensityMap)),r.specularColorMap!==void 0&&(n.specularColorMap=i(r.specularColorMap)),r.envMap!==void 0&&(n.envMap=i(r.envMap)),r.envMapIntensity!==void 0&&(n.envMapIntensity=r.envMapIntensity),r.reflectivity!==void 0&&(n.reflectivity=r.reflectivity),r.refractionRatio!==void 0&&(n.refractionRatio=r.refractionRatio),r.lightMap!==void 0&&(n.lightMap=i(r.lightMap)),r.lightMapIntensity!==void 0&&(n.lightMapIntensity=r.lightMapIntensity),r.aoMap!==void 0&&(n.aoMap=i(r.aoMap)),r.aoMapIntensity!==void 0&&(n.aoMapIntensity=r.aoMapIntensity),r.gradientMap!==void 0&&(n.gradientMap=i(r.gradientMap)),r.clearcoatMap!==void 0&&(n.clearcoatMap=i(r.clearcoatMap)),r.clearcoatRoughnessMap!==void 0&&(n.clearcoatRoughnessMap=i(r.clearcoatRoughnessMap)),r.clearcoatNormalMap!==void 0&&(n.clearcoatNormalMap=i(r.clearcoatNormalMap)),r.clearcoatNormalScale!==void 0&&(n.clearcoatNormalScale=new le().fromArray(r.clearcoatNormalScale)),r.iridescenceMap!==void 0&&(n.iridescenceMap=i(r.iridescenceMap)),r.iridescenceThicknessMap!==void 0&&(n.iridescenceThicknessMap=i(r.iridescenceThicknessMap)),r.transmissionMap!==void 0&&(n.transmissionMap=i(r.transmissionMap)),r.thicknessMap!==void 0&&(n.thicknessMap=i(r.thicknessMap)),r.sheenColorMap!==void 0&&(n.sheenColorMap=i(r.sheenColorMap)),r.sheenRoughnessMap!==void 0&&(n.sheenRoughnessMap=i(r.sheenRoughnessMap)),n}setTextures(r){return this.textures=r,this}static createMaterialFromType(r){let e={ShadowMaterial:OD,SpriteMaterial:Tg,RawShaderMaterial:PD,ShaderMaterial:Yt,PointsMaterial:Vn,MeshPhysicalMaterial:Cl,MeshStandardMaterial:Gu,MeshPhongMaterial:Ts,MeshToonMaterial:ND,MeshNormalMaterial:hf,MeshLambertMaterial:io,MeshDepthMaterial:Tp,MeshDistanceMaterial:nx,MeshBasicMaterial:or,MeshMatcapMaterial:LD,LineDashedMaterial:Rp,LineBasicMaterial:Tr,Material:Gr};return new e[r]}},ks=class{static decodeText(r){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(r);let e="";for(let i=0,n=r.length;i0){let l=new Ap(e);s=new Pg(l),s.setCrossOrigin(this.crossOrigin);for(let c=0,u=r.length;c0){n=new Pg(this.manager),n.setCrossOrigin(this.crossOrigin);for(let a=0,o=r.length;a0){this.source.connect(this.filters[0]);for(let r=1,e=this.filters.length;r0){this.source.disconnect(this.filters[0]);for(let r=1,e=this.filters.length;r0&&this._mixBufferRegionAdditive(i,n,this._addIndex*e,1,e);for(let l=e,c=e+e;l!==c;++l)if(i[l]!==i[l+e]){o.setValue(i,n);break}}saveOriginalState(){let r=this.binding,e=this.buffer,i=this.valueSize,n=i*this._origIndex;r.getValue(e,n);for(let s=i,a=n;s!==a;++s)e[s]=e[n+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let r=this.valueSize*3;this.binding.setValue(this.buffer,r)}_setAdditiveIdentityNumeric(){let r=this._addIndex*this.valueSize,e=r+this.valueSize;for(let i=r;i=.5)for(let a=0;a!==s;++a)r[e+a]=r[i+a]}_slerp(r,e,i,n){Or.slerpFlat(r,e,r,e,r,i,n)}_slerpAdditive(r,e,i,n,s){let a=this._workIndex*s;Or.multiplyQuaternionsFlat(r,a,r,e,r,i),Or.slerpFlat(r,e,r,e,r,a,n)}_lerp(r,e,i,n,s){let a=1-n;for(let o=0;o!==s;++o){let l=e+o;r[l]=r[l]*a+r[i+o]*n}}_lerpAdditive(r,e,i,n,s){for(let a=0;a!==s;++a){let o=e+a;r[o]=r[o]+r[i+a]*n}}},PU="\\[\\]\\.:\\/",$0t=new RegExp("["+PU+"]","g"),NU="[^"+PU+"]",Z0t="[^"+PU.replace("\\.","")+"]",K0t=/((?:WC+[\/:])*)/.source.replace("WC",NU),J0t=/(WCOD+)?/.source.replace("WCOD",Z0t),Q0t=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",NU),evt=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",NU),tvt=new RegExp("^"+K0t+J0t+Q0t+evt+"$"),rvt=["material","materials","bones","map"],G4=class{constructor(r,e,i){let n=i||Cr.parseTrackName(e);this._targetGroup=r,this._bindings=r.subscribe_(e,n)}getValue(r,e){this.bind();let i=this._targetGroup.nCachedObjects_,n=this._bindings[i];n!==void 0&&n.getValue(r,e)}setValue(r,e){let i=this._bindings;for(let n=this._targetGroup.nCachedObjects_,s=i.length;n!==s;++n)i[n].setValue(r,e)}bind(){let r=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=r.length;e!==i;++e)r[e].bind()}unbind(){let r=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=r.length;e!==i;++e)r[e].unbind()}},Cr=class{constructor(r,e,i){this.path=e,this.parsedPath=i||Cr.parseTrackName(e),this.node=Cr.findNode(r,this.parsedPath.nodeName)||r,this.rootNode=r,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(r,e,i){return r&&r.isAnimationObjectGroup?new Cr.Composite(r,e,i):new Cr(r,e,i)}static sanitizeNodeName(r){return r.replace(/\s/g,"_").replace($0t,"")}static parseTrackName(r){let e=tvt.exec(r);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+r);let i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},n=i.nodeName&&i.nodeName.lastIndexOf(".");if(n!==void 0&&n!==-1){let s=i.nodeName.substring(n+1);rvt.indexOf(s)!==-1&&(i.nodeName=i.nodeName.substring(0,n),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+r);return i}static findNode(r,e){if(e===void 0||e===""||e==="."||e===-1||e===r.name||e===r.uuid)return r;if(r.skeleton){let i=r.skeleton.getBoneByName(e);if(i!==void 0)return i}if(r.children){let i=function(s){for(let a=0;a=s){let h=s++,p=r[h];e[p.uuid]=u,r[u]=p,e[c]=h,r[h]=l;for(let d=0,f=n;d!==f;++d){let m=i[d],g=m[h],y=m[u];m[u]=g,m[h]=y}}}this.nCachedObjects_=s}uncache(){let r=this._objects,e=this._indicesByUUID,i=this._bindings,n=i.length,s=this.nCachedObjects_,a=r.length;for(let o=0,l=arguments.length;o!==l;++o){let c=arguments[o],u=c.uuid,h=e[u];if(h!==void 0)if(delete e[u],h0&&(e[d.uuid]=h),r[h]=d,r.pop();for(let f=0,m=n;f!==m;++f){let g=i[f];g[h]=g[p],g.pop()}}}this.nCachedObjects_=s}subscribe_(r,e){let i=this._bindingsIndicesByPath,n=i[r],s=this._bindings;if(n!==void 0)return s[n];let a=this._paths,o=this._parsedPaths,l=this._objects,c=l.length,u=this.nCachedObjects_,h=new Array(c);n=s.length,i[r]=n,a.push(r),o.push(e),s.push(h);for(let p=u,d=l.length;p!==d;++p){let f=l[p];h[p]=new Cr(f,r,e)}return h}unsubscribe_(r){let e=this._bindingsIndicesByPath,i=e[r];if(i!==void 0){let n=this._paths,s=this._parsedPaths,a=this._bindings,o=a.length-1,l=a[o],c=r[o];e[c]=i,a[i]=l,a.pop(),s[i]=s[o],s.pop(),n[i]=n[o],n.pop()}}},z4=class{constructor(r,e,i=null,n=e.blendMode){this._mixer=r,this._clip=e,this._localRoot=i,this.blendMode=n;let s=e.tracks,a=s.length,o=new Array(a),l={endingStart:cg,endingEnd:cg};for(let c=0;c!==a;++c){let u=s[c].createInterpolant(null);o[c]=u,u.settings=l}this._interpolantSettings=l,this._interpolants=o,this._propertyBindings=new Array(a),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=ihe,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(r){return this._startTime=r,this}setLoop(r,e){return this.loop=r,this.repetitions=e,this}setEffectiveWeight(r){return this.weight=r,this._effectiveWeight=this.enabled?r:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(r){return this._scheduleFading(r,0,1)}fadeOut(r){return this._scheduleFading(r,1,0)}crossFadeFrom(r,e,i){if(r.fadeOut(e),this.fadeIn(e),i){let n=this._clip.duration,s=r._clip.duration,a=s/n,o=n/s;r.warp(1,a,e),this.warp(o,1,e)}return this}crossFadeTo(r,e,i){return r.crossFadeFrom(this,e,i)}stopFading(){let r=this._weightInterpolant;return r!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(r)),this}setEffectiveTimeScale(r){return this.timeScale=r,this._effectiveTimeScale=this.paused?0:r,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(r){return this.timeScale=this._clip.duration/r,this.stopWarping()}syncWith(r){return this.time=r.time,this.timeScale=r.timeScale,this.stopWarping()}halt(r){return this.warp(this._effectiveTimeScale,0,r)}warp(r,e,i){let n=this._mixer,s=n.time,a=this.timeScale,o=this._timeScaleInterpolant;o===null&&(o=n._lendControlInterpolant(),this._timeScaleInterpolant=o);let l=o.parameterPositions,c=o.sampleValues;return l[0]=s,l[1]=s+i,c[0]=r/a,c[1]=e/a,this}stopWarping(){let r=this._timeScaleInterpolant;return r!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(r)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(r,e,i,n){if(!this.enabled){this._updateWeight(r);return}let s=this._startTime;if(s!==null){let l=(r-s)*i;l<0||i===0?e=0:(this._startTime=null,e=i*l)}e*=this._updateTimeScale(r);let a=this._updateTime(e),o=this._updateWeight(r);if(o>0){let l=this._interpolants,c=this._propertyBindings;switch(this.blendMode){case _U:for(let u=0,h=l.length;u!==h;++u)l[u].evaluate(a),c[u].accumulateAdditive(o);break;case $D:default:for(let u=0,h=l.length;u!==h;++u)l[u].evaluate(a),c[u].accumulate(n,o)}}}_updateWeight(r){let e=0;if(this.enabled){e=this.weight;let i=this._weightInterpolant;if(i!==null){let n=i.evaluate(r)[0];e*=n,r>i.parameterPositions[1]&&(this.stopFading(),n===0&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(r){let e=0;if(!this.paused){e=this.timeScale;let i=this._timeScaleInterpolant;if(i!==null){let n=i.evaluate(r)[0];e*=n,r>i.parameterPositions[1]&&(this.stopWarping(),e===0?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(r){let e=this._clip.duration,i=this.loop,n=this.time+r,s=this._loopCount,a=i===nhe;if(r===0)return s===-1?n:a&&(s&1)===1?e-n:n;if(i===rhe){s===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(n>=e)n=e;else if(n<0)n=0;else{this.time=n;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:r<0?-1:1})}}else{if(s===-1&&(r>=0?(s=0,this._setEndings(!0,this.repetitions===0,a)):this._setEndings(this.repetitions===0,!0,a)),n>=e||n<0){let o=Math.floor(n/e);n-=e*o,s+=Math.abs(o);let l=this.repetitions-s;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,n=r>0?e:0,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:r>0?1:-1});else{if(l===1){let c=r<0;this._setEndings(c,!c,a)}else this._setEndings(!1,!1,a);this._loopCount=s,this.time=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=n;if(a&&(s&1)===1)return e-n}return n}_setEndings(r,e,i){let n=this._interpolantSettings;i?(n.endingStart=ug,n.endingEnd=ug):(r?n.endingStart=this.zeroSlopeAtStart?ug:cg:n.endingStart=Kb,e?n.endingEnd=this.zeroSlopeAtEnd?ug:cg:n.endingEnd=Kb)}_scheduleFading(r,e,i){let n=this._mixer,s=n.time,a=this._weightInterpolant;a===null&&(a=n._lendControlInterpolant(),this._weightInterpolant=a);let o=a.parameterPositions,l=a.sampleValues;return o[0]=s,l[0]=e,o[1]=s+r,l[1]=i,this}},ivt=new Float32Array(1),j4=class extends Ra{constructor(r){super(),this._root=r,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(r,e){let i=r._localRoot||this._root,n=r._clip.tracks,s=n.length,a=r._propertyBindings,o=r._interpolants,l=i.uuid,c=this._bindingsByRootAndName,u=c[l];u===void 0&&(u={},c[l]=u);for(let h=0;h!==s;++h){let p=n[h],d=p.name,f=u[d];if(f!==void 0)++f.referenceCount,a[h]=f;else{if(f=a[h],f!==void 0){f._cacheIndex===null&&(++f.referenceCount,this._addInactiveBinding(f,l,d));continue}let m=e&&e._propertyBindings[h].binding.parsedPath;f=new jD(Cr.create(i,d,m),p.ValueTypeName,p.getValueSize()),++f.referenceCount,this._addInactiveBinding(f,l,d),a[h]=f}o[h].resultBuffer=f.buffer}}_activateAction(r){if(!this._isActiveAction(r)){if(r._cacheIndex===null){let i=(r._localRoot||this._root).uuid,n=r._clip.uuid,s=this._actionsByClip[n];this._bindAction(r,s&&s.knownActions[0]),this._addInactiveAction(r,n,i)}let e=r._propertyBindings;for(let i=0,n=e.length;i!==n;++i){let s=e[i];s.useCount++===0&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(r)}}_deactivateAction(r){if(this._isActiveAction(r)){let e=r._propertyBindings;for(let i=0,n=e.length;i!==n;++i){let s=e[i];--s.useCount===0&&(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(r)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let r=this;this.stats={actions:{get total(){return r._actions.length},get inUse(){return r._nActiveActions}},bindings:{get total(){return r._bindings.length},get inUse(){return r._nActiveBindings}},controlInterpolants:{get total(){return r._controlInterpolants.length},get inUse(){return r._nActiveControlInterpolants}}}}_isActiveAction(r){let e=r._cacheIndex;return e!==null&&e=0;--i)r[i].stop();return this}update(r){r*=this.timeScale;let e=this._actions,i=this._nActiveActions,n=this.time+=r,s=Math.sign(r),a=this._accuIndex^=1;for(let c=0;c!==i;++c)e[c]._update(n,r,s,a);let o=this._bindings,l=this._nActiveBindings;for(let c=0;c!==l;++c)o[c].apply(a);return this}setTime(r){this.time=0;for(let e=0;ethis.max.x||r.ythis.max.y)}containsBox(r){return this.min.x<=r.min.x&&r.max.x<=this.max.x&&this.min.y<=r.min.y&&r.max.y<=this.max.y}getParameter(r,e){return e.set((r.x-this.min.x)/(this.max.x-this.min.x),(r.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(r){return!(r.max.xthis.max.x||r.max.ythis.max.y)}clampPoint(r,e){return e.copy(r).clamp(this.min,this.max)}distanceToPoint(r){return pue.copy(r).clamp(this.min,this.max).sub(r).length()}intersect(r){return this.min.max(r.min),this.max.min(r.max),this}union(r){return this.min.min(r.min),this.max.max(r.max),this}translate(r){return this.min.add(r),this.max.add(r),this}equals(r){return r.min.equals(this.min)&&r.max.equals(this.max)}},due=new A,nD=new A,Ca=class{constructor(r=new A,e=new A){this.start=r,this.end=e}set(r,e){return this.start.copy(r),this.end.copy(e),this}copy(r){return this.start.copy(r.start),this.end.copy(r.end),this}getCenter(r){return r.addVectors(this.start,this.end).multiplyScalar(.5)}delta(r){return r.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(r,e){return this.delta(e).multiplyScalar(r).add(this.start)}closestPointToPointParameter(r,e){due.subVectors(r,this.start),nD.subVectors(this.end,this.start);let i=nD.dot(nD),s=nD.dot(due)/i;return e&&(s=Qn(s,0,1)),s}closestPointToPoint(r,e,i){let n=this.closestPointToPointParameter(r,e);return this.delta(i).multiplyScalar(n).add(this.start)}applyMatrix4(r){return this.start.applyMatrix4(r),this.end.applyMatrix4(r),this}equals(r){return r.start.equals(this.start)&&r.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},fue=new A,Z4=class extends pr{constructor(r,e){super(),this.light=r,this.matrix=r.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";let i=new it,n=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let a=0,o=1,l=32;a1)for(let h=0;h.99999)this.quaternion.set(0,0,0,1);else if(r.y<-.99999)this.quaternion.set(1,0,0,0);else{Tue.set(r.z,0,-r.x).normalize();let e=Math.acos(r.y);this.quaternion.setFromAxisAngle(Tue,e)}}setLength(r,e=r*.2,i=e*.2){this.line.scale.set(1,Math.max(1e-4,r-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=r,this.cone.updateMatrix()}setColor(r){this.line.material.color.set(r),this.cone.material.color.set(r)}copy(r){return super.copy(r,!1),this.line.copy(r.line),this.cone.copy(r.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},iU=class extends oi{constructor(r=1){let e=[0,0,0,r,0,0,0,0,0,0,r,0,0,0,0,0,0,r],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],n=new it;n.setAttribute("position",new ct(e,3)),n.setAttribute("color",new ct(i,3));let s=new Tr({vertexColors:!0,toneMapped:!1});super(n,s),this.type="AxesHelper"}setColors(r,e,i){let n=new Ve,s=this.geometry.attributes.color.array;return n.set(r),n.toArray(s,0),n.toArray(s,3),n.set(e),n.toArray(s,6),n.toArray(s,9),n.set(i),n.toArray(s,12),n.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},xx=class{constructor(){this.type="ShapePath",this.color=new Ve,this.subPaths=[],this.currentPath=null}moveTo(r,e){return this.currentPath=new ku,this.subPaths.push(this.currentPath),this.currentPath.moveTo(r,e),this}lineTo(r,e){return this.currentPath.lineTo(r,e),this}quadraticCurveTo(r,e,i,n){return this.currentPath.quadraticCurveTo(r,e,i,n),this}bezierCurveTo(r,e,i,n,s,a){return this.currentPath.bezierCurveTo(r,e,i,n,s,a),this}splineThru(r){return this.currentPath.splineThru(r),this}toShapes(r){function e(y){let E=[];for(let b=0,x=y.length;bNumber.EPSILON){if(F<0&&(P=E[D],w=-w,_=E[S],F=-F),y.y_.y)continue;if(y.y===P.y){if(y.x===P.x)return!0}else{let X=F*(y.x-P.x)-w*(y.y-P.y);if(X===0)return!0;if(X<0)continue;x=!x}}else{if(y.y!==P.y)continue;if(_.x<=y.x&&y.x<=P.x||P.x<=y.x&&y.x<=_.x)return!0}}return x}let n=es.isClockWise,s=this.subPaths;if(s.length===0)return[];let a,o,l,c=[];if(s.length===1)return o=s[0],l=new Ja,l.curves=o.curves,c.push(l),c;let u=!n(s[0].getPoints());u=r?!u:u;let h=[],p=[],d=[],f=0,m;p[f]=void 0,d[f]=[];for(let y=0,E=s.length;y1){let y=!1,E=0;for(let b=0,x=p.length;b0&&y===!1&&(d=h)}let g;for(let y=0,E=p.length;y>-c-14,i[l|256]=1024>>-c-14|32768,n[l]=-c-1,n[l|256]=-c-1):c<=15?(i[l]=c+15<<10,i[l|256]=c+15<<10|32768,n[l]=13,n[l|256]=13):c<128?(i[l]=31744,i[l|256]=64512,n[l]=24,n[l|256]=24):(i[l]=31744,i[l|256]=64512,n[l]=13,n[l|256]=13)}let s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,u=0;for(;!(c&8388608);)c<<=1,u-=8388608;c&=-8388609,u+=947912704,s[l]=c|u}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(o[l]=1024);return{floatView:r,uint32View:e,baseTable:i,shiftTable:n,mantissaTable:s,exponentTable:a,offsetTable:o}}function ovt(t){Math.abs(t)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),t=Qn(t,-65504,65504),up.floatView[0]=t;let r=up.uint32View[0],e=r>>23&511;return up.baseTable[e]+((r&8388607)>>up.shiftTable[e])}function lvt(t){let r=t>>10;return up.uint32View[0]=up.mantissaTable[up.offsetTable[r]+(t&1023)]+up.exponentTable[r],up.floatView[0]}var zy=Object.freeze({__proto__:null,fromHalfFloat:lvt,toHalfFloat:ovt}),nU=class extends Qa{constructor(r,e,i,n,s,a){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(r,e,i,n,s,a)}},sU=class extends xg{constructor(r,e,i,n){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(r,e,i,n)}},aU=class extends Ig{constructor(r,e,i,n){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(r,e,i,n)}},oU=class extends Sg{constructor(r,e,i,n,s,a,o){console.warn("THREE.ConeBufferGeometry has been renamed to THREE.ConeGeometry."),super(r,e,i,n,s,a,o)}},lU=class extends Dl{constructor(r,e,i,n,s,a,o,l){console.warn("THREE.CylinderBufferGeometry has been renamed to THREE.CylinderGeometry."),super(r,e,i,n,s,a,o,l)}},cU=class extends _g{constructor(r,e){console.warn("THREE.DodecahedronBufferGeometry has been renamed to THREE.DodecahedronGeometry."),super(r,e)}},uU=class extends Sp{constructor(r,e){console.warn("THREE.ExtrudeBufferGeometry has been renamed to THREE.ExtrudeGeometry."),super(r,e)}},hU=class extends Rg{constructor(r,e){console.warn("THREE.IcosahedronBufferGeometry has been renamed to THREE.IcosahedronGeometry."),super(r,e)}},pU=class extends cf{constructor(r,e,i,n){console.warn("THREE.LatheBufferGeometry has been renamed to THREE.LatheGeometry."),super(r,e,i,n)}},dU=class extends uf{constructor(r,e){console.warn("THREE.OctahedronBufferGeometry has been renamed to THREE.OctahedronGeometry."),super(r,e)}},fU=class extends ts{constructor(r,e,i,n){console.warn("THREE.PlaneBufferGeometry has been renamed to THREE.PlaneGeometry."),super(r,e,i,n)}},mU=class extends Dc{constructor(r,e,i,n){console.warn("THREE.PolyhedronBufferGeometry has been renamed to THREE.PolyhedronGeometry."),super(r,e,i,n)}},gU=class extends Mg{constructor(r,e,i,n,s,a){console.warn("THREE.RingBufferGeometry has been renamed to THREE.RingGeometry."),super(r,e,i,n,s,a)}},vU=class extends _p{constructor(r,e){console.warn("THREE.ShapeBufferGeometry has been renamed to THREE.ShapeGeometry."),super(r,e)}},yU=class extends ro{constructor(r,e,i,n,s,a,o){console.warn("THREE.SphereBufferGeometry has been renamed to THREE.SphereGeometry."),super(r,e,i,n,s,a,o)}},TU=class extends Dg{constructor(r,e){console.warn("THREE.TetrahedronBufferGeometry has been renamed to THREE.TetrahedronGeometry."),super(r,e)}},EU=class extends wp{constructor(r,e,i,n,s){console.warn("THREE.TorusBufferGeometry has been renamed to THREE.TorusGeometry."),super(r,e,i,n,s)}},bU=class extends Cg{constructor(r,e,i,n,s,a){console.warn("THREE.TorusKnotBufferGeometry has been renamed to THREE.TorusKnotGeometry."),super(r,e,i,n,s,a)}},xU=class extends Ag{constructor(r,e,i,n,s){console.warn("THREE.TubeBufferGeometry has been renamed to THREE.TubeGeometry."),super(r,e,i,n,s)}};typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:WD}}));typeof window!="undefined"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=WD);var zu=new zi,She=new A,_he=new A,whe=new A,Rhe=new A;_r.prototype.raycast=function(t,r){let e=this.geometry,i=this.matrixWorld,n=t.params.Line.threshold,s=e.drawRange;if(e.boundingSphere===null&&e.computeBoundingSphere(),zu.copy(e.boundingSphere),zu.applyMatrix4(i),zu.radius+=n,t.ray.intersectsSphere(zu)===!1)return;let a=n*n,o=this.isLineSegments?2:1,l=e.index,u=e.attributes.position,h=r.length;if(l!==null){let p=this.userData.batches;if(p&&p.length>0&&p[0].boundingSphere)for(let d=0;d=1))return}}else{let d=Math.max(0,s.start),f=Math.min(l.count,s.start+s.count);for(let m=d,g=f-1;m=1))return}}}else{let p=this.userData.batches;if(p&&p.length>0&&p[0].boundingSphere)for(let d=0;d=1)return}}else{let d=Math.max(0,s.start),f=Math.min(u.count,s.start+s.count);for(let m=d,g=f-1;m=1)return}}};function JD(t,r,e,i,n,s,a){if(She.fromBufferAttribute(r,i).applyMatrix4(t.matrixWorld),_he.fromBufferAttribute(r,n).applyMatrix4(t.matrixWorld),e.ray.distanceSqToSegment(She,_he,Rhe,whe)>s)return!1;let l=e.ray.origin.distanceTo(Rhe);return le.far?!1:(a.push({distance:l,point:whe.clone(),index:i,object:t}),!0)}var Mhe=Math.pow(2,-24);var Ug=class{constructor(){}};function Ll(t,r,e){return e.min.x=r[t],e.min.y=r[t+1],e.min.z=r[t+2],e.max.x=r[t+3],e.max.y=r[t+4],e.max.z=r[t+5],e}function LU(t){let r=-1,e=-1/0;for(let i=0;i<3;i++){let n=t[i+3]-t[i];n>e&&(e=n,r=i)}return r}function FU(t,r){r.set(t)}function HU(t,r,e){let i,n;for(let s=0;s<3;s++){let a=s+3;i=t[s],n=r[s],e[s]=in?i:n}}function Rx(t,r,e){for(let i=0;i<3;i++){let n=r[t+2*i],s=r[t+2*i+1],a=n-s,o=n+s;ae[i+3]&&(e[i+3]=o)}}function jy(t){let r=t[3]-t[0],e=t[4]-t[1],i=t[5]-t[2];return 2*(r*e+e*i+i*r)}function hvt(t,r){if(!t.index){let e=t.attributes.position.count,i=r.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,n;e>65535?n=new Uint32Array(new i(4*e)):n=new Uint16Array(new i(2*e)),t.setIndex(new jt(n,1));for(let s=0;sn-s);for(let n=0;nl&&(l=P),y&&xf&&(f=x);let _=t[E+2],w=t[E+3],F=_-w,X=_+w;Fc&&(c=X),y&&_m&&(m=_);let H=t[E+4],he=t[E+5],C=H-he,N=H+he;Cu&&(u=N),y&&Hg&&(g=H)}i[0]=s,i[1]=a,i[2]=o,i[3]=l,i[4]=c,i[5]=u,y&&(n[0]=h,n[1]=p,n[2]=d,n[3]=f,n[4]=m,n[5]=g)}function dvt(t,r,e,i){let n=1/0,s=1/0,a=1/0,o=-1/0,l=-1/0,c=-1/0;for(let u=r*6,h=(r+e)*6;uo&&(o=p);let d=t[u+2];dl&&(l=d);let f=t[u+4];fc&&(c=f)}i[0]=n,i[1]=s,i[2]=a,i[3]=o,i[4]=l,i[5]=c}function fvt(t,r,e,i,n){let s=e,a=e+i-1,o=n.pos,l=n.axis*2;for(;;){for(;s<=a&&r[s*6+l]=o;)a--;if(st.candidate-r.candidate,gf=new Array(Pp).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),QD=new Float32Array(6);function gvt(t,r,e,i,n,s){let a=-1,o=0;if(s===0)a=LU(r),a!==-1&&(o=(r[a]+r[a+3])/2);else if(s===1)a=LU(t),a!==-1&&(o=vvt(e,i,n,a));else if(s===2){let l=jy(t),c=1.25*n,u=i*6,h=(i+n)*6;for(let p=0;p<3;p++){let d=r[p],g=(r[p+3]-d)/Pp;if(n=P.candidate?Rx(x,e,P.rightCacheBounds):(Rx(x,e,P.leftCacheBounds),P.count++)}}for(let x=0;x=Pp&&(D=Pp-1);let P=gf[D];P.count++,Rx(b,e,P.bounds)}let y=gf[Pp-1];FU(y.bounds,y.rightCacheBounds);for(let b=Pp-2;b>=0;b--){let x=gf[b],S=gf[b+1];HU(x.bounds,S.rightCacheBounds,x.rightCacheBounds)}let E=0;for(let b=0;bD&&(D=b),x>D&&(D=x);let P=(D-S)/2,_=y*2;s[d+_+0]=S+P,s[d+_+1]=P+(Math.abs(S)+P)*Mhe,Sr[y+3]&&(r[y+3]=D)}}return s}function Tvt(t,r){function e(y){p&&p(y/d)}function i(y,E,b,x=null,S=0){if(!f&&S>=l&&(f=!0,c&&(console.warn(`MeshBVH: Max depth of ${l} reached when generating BVH. Consider increasing maxDepth.`),console.warn(t))),b<=u||S>=l)return e(E+b),y.offset=E,y.count=b,y;let D=gvt(y.boundingData,x,a,E,b,h);if(D.axis===-1)return e(E+b),y.offset=E,y.count=b,y;let P=fvt(o,a,E,b,D);if(P===E||P===E+b)e(E+b),y.offset=E,y.count=b;else{y.splitAxis=D.axis;let _=new Ug,w=E,F=P-E;y.left=_,_.boundingData=new Float32Array(6),BU(a,w,F,_.boundingData,s),i(_,w,F,s,S+1);let X=new Ug,H=P,he=b-F;y.right=X,X.boundingData=new Float32Array(6),BU(a,H,he,X.boundingData,s),i(X,H,he,s,S+1)}return y}hvt(t,r);let n=new Float32Array(6),s=new Float32Array(6),a=yvt(t,n),o=t.index.array,l=r.maxDepth,c=r.verbose,u=r.maxLeafTris,h=r.strategy,p=r.onProgress,d=t.index.count/3,f=!1,m=[],g=pvt(t);if(g.length===1){let y=g[0],E=new Ug;E.boundingData=n,dvt(a,y.offset,y.count,s),i(E,y.offset,y.count,s),m.push(E)}else for(let y of g){let E=new Ug;E.boundingData=new Float32Array(6),BU(a,y.offset,y.count,E.boundingData,s),i(E,y.offset,y.count,s),m.push(E)}return m}function Ahe(t,r){let e=Tvt(t,r),i,n,s,a=[],o=r.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let u=0;uMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return n[p+6]=b/4,b=c(b,y),n[p+7]=E,b}}}var lo=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(r,e){let i=1/0,n=-1/0;for(let s=0,a=r.length;sn?l:n}this.min=i,this.max=n}setFromPoints(r,e){let i=1/0,n=-1/0;for(let s=0,a=e.length;sn?l:n}this.min=i,this.max=n}isSeparated(r){return this.min>r.max||r.min>this.max}};lo.prototype.setFromBox=function(){let t=new A;return function(e,i){let n=i.min,s=i.max,a=1/0,o=-1/0;for(let l=0;l<=1;l++)for(let c=0;c<=1;c++)for(let u=0;u<=1;u++){t.x=n.x*l+s.x*(1-l),t.y=n.y*c+s.y*(1-c),t.z=n.z*u+s.z*(1-u);let h=e.dot(t);a=Math.min(h,a),o=Math.max(h,o)}this.min=a,this.max=o}}();var kzt=function(){let t=new lo;return function(e,i){let n=e.points,s=e.satAxes,a=e.satBounds,o=i.points,l=i.satAxes,c=i.satBounds;for(let u=0;u<3;u++){let h=a[u],p=s[u];if(t.setFromPoints(p,o),h.isSeparated(t))return!1}for(let u=0;u<3;u++){let h=c[u],p=l[u];if(t.setFromPoints(p,n),h.isSeparated(t))return!1}}}();var Evt=function(){let t=new A,r=new A,e=new A;return function(n,s,a){let o=n.start,l=t,c=s.start,u=r;e.subVectors(o,c),t.subVectors(n.end,n.start),r.subVectors(s.end,s.start);let h=e.dot(u),p=u.dot(l),d=u.dot(u),f=e.dot(l),g=l.dot(l)*d-p*p,y,E;g!==0?y=(h*p-f*d)/g:y=0,E=(h+y*p)/d,a.x=y,a.y=E}}(),Mx=function(){let t=new le,r=new A,e=new A;return function(n,s,a,o){Evt(n,s,t);let l=t.x,c=t.y;if(l>=0&&l<=1&&c>=0&&c<=1){n.at(l,a),s.at(c,o);return}else if(l>=0&&l<=1){c<0?s.at(0,o):s.at(1,o),n.closestPointToPoint(o,!0,a);return}else if(c>=0&&c<=1){l<0?n.at(0,a):n.at(1,a),s.closestPointToPoint(a,!0,o);return}else{let u;l<0?u=n.start:u=n.end;let h;c<0?h=s.start:h=s.end;let p=r,d=e;if(n.closestPointToPoint(h,!0,r),s.closestPointToPoint(u,!0,e),p.distanceToSquared(h)<=d.distanceToSquared(u)){a.copy(p),o.copy(h);return}else{a.copy(u),o.copy(d);return}}}}(),Ohe=function(){let t=new A,r=new A,e=new Ei,i=new Ca;return function(s,a){let{radius:o,center:l}=s,{a:c,b:u,c:h}=a;if(i.start=c,i.end=u,i.closestPointToPoint(l,!0,t).distanceTo(l)<=o||(i.start=c,i.end=h,i.closestPointToPoint(l,!0,t).distanceTo(l)<=o)||(i.start=u,i.end=h,i.closestPointToPoint(l,!0,t).distanceTo(l)<=o))return!0;let m=a.getPlane(e);if(Math.abs(m.distanceToPoint(l))<=o){let y=m.projectPoint(l,r);if(a.containsPoint(y))return!0}return!1}}();var bvt=1e-15;function Wy(t){return Math.abs(t)new A),this.satBounds=new Array(4).fill().map(()=>new lo),this.points=[this.a,this.b,this.c],this.sphere=new zi,this.plane=new Ei,this.needsUpdate=!0}intersectsSphere(r){return Ohe(r,this)}update(){let r=this.a,e=this.b,i=this.c,n=this.points,s=this.satAxes,a=this.satBounds,o=s[0],l=a[0];this.getNormal(o),l.setFromPoints(o,n);let c=s[1],u=a[1];c.subVectors(r,e),u.setFromPoints(c,n);let h=s[2],p=a[2];h.subVectors(e,i),p.setFromPoints(h,n);let d=s[3],f=a[3];d.subVectors(i,r),f.setFromPoints(d,n),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,r),this.needsUpdate=!1}};co.prototype.closestPointToSegment=function(){let t=new A,r=new A,e=new Ca;return function(n,s=null,a=null){let{start:o,end:l}=n,c=this.points,u,h=1/0;for(let p=0;p<3;p++){let d=(p+1)%3;e.start.copy(c[p]),e.end.copy(c[d]),Mx(e,n,t,r),u=t.distanceToSquared(r),u1-1e-10){let E=this.satBounds,b=this.satAxes;e[0]=d.a,e[1]=d.b,e[2]=d.c;for(let D=0;D<4;D++){let P=E[D],_=b[D];if(i.setFromPoints(_,e),P.isSeparated(i))return!1}let x=d.satBounds,S=d.satAxes;r[0]=this.a,r[1]=this.b,r[2]=this.c;for(let D=0;D<4;D++){let P=x[D],_=S[D];if(i.setFromPoints(_,r),P.isSeparated(i))return!1}for(let D=0;D<4;D++){let P=b[D];for(let _=0;_<4;_++){let w=S[_];if(s.crossVectors(P,w),i.setFromPoints(s,r),n.setFromPoints(s,e),i.isSeparated(n))return!1}}return f&&(m||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),f.start.set(0,0,0),f.end.set(0,0,0)),!0}else{let E=this.points,b=!1,x=0;for(let C=0;C<3;C++){let N=E[C],k=E[(C+1)%3];c.start.copy(N),c.end.copy(k),c.delta(a);let G=b?u.start:u.end,U=Wy(y.distanceToPoint(N));if(Wy(y.normal.dot(a))&&U){u.copy(c),x=2;break}if((y.intersectLine(c,G)||U)&&!Wy(G.distanceTo(k))){if(x++,b)break;b=!0}}if(x===1&&d.containsPoint(u.end))return f&&(f.start.copy(u.end),f.end.copy(u.end)),!0;if(x!==2)return!1;let S=d.points,D=!1,P=0;for(let C=0;C<3;C++){let N=S[C],k=S[(C+1)%3];c.start.copy(N),c.end.copy(k),c.delta(o);let G=D?h.start:h.end,U=Wy(g.distanceToPoint(N));if(Wy(g.normal.dot(o))&&U){h.copy(c),P=2;break}if((g.intersectLine(c,G)||U)&&!Wy(G.distanceTo(k))){if(P++,D)break;D=!0}}if(P===1&&this.containsPoint(h.end))return f&&(f.start.copy(h.end),f.end.copy(h.end)),!0;if(P!==2)return!1;if(u.delta(a),h.delta(o),a.dot(o)<0){let C=h.start;h.start=h.end,h.end=C}let _=u.start.dot(a),w=u.end.dot(a),F=h.start.dot(a),X=h.end.dot(a),H=w0?f.start.copy(u.start):f.start.copy(h.start),l.subVectors(u.end,h.end),l.dot(a)<0?f.end.copy(u.end):f.end.copy(h.end)),!0)}}}();co.prototype.distanceToPoint=function(){let t=new A;return function(e){return this.closestPointToPoint(e,t),e.distanceTo(t)}}();co.prototype.distanceToTriangle=function(){let t=new A,r=new A,e=["a","b","c"],i=new Ca,n=new Ca;return function(a,o=null,l=null){let c=o||l?i:null;if(this.intersectsTriangle(a,c))return(o||l)&&(o&&c.getCenter(o),l&&c.getCenter(l)),0;let u=1/0;for(let h=0;h<3;h++){let p,d=e[h],f=a[d];this.closestPointToPoint(f,t),p=f.distanceToSquared(t),pnew A),this.satAxes=new Array(3).fill().map(()=>new A),this.satBounds=new Array(3).fill().map(()=>new lo),this.alignedSatBounds=new Array(3).fill().map(()=>new lo),this.needsUpdate=!1,r&&this.min.copy(r),e&&this.max.copy(e),i&&this.matrix.copy(i)}set(r,e,i){this.min.copy(r),this.max.copy(e),this.matrix.copy(i),this.needsUpdate=!0}copy(r){this.min.copy(r.min),this.max.copy(r.max),this.matrix.copy(r.matrix),this.needsUpdate=!0}};uo.prototype.update=function(){return function(){let r=this.matrix,e=this.min,i=this.max,n=this.points;for(let c=0;c<=1;c++)for(let u=0;u<=1;u++)for(let h=0;h<=1;h++){let p=1*c|2*u|4*h,d=n[p];d.x=c?i.x:e.x,d.y=u?i.y:e.y,d.z=h?i.z:e.z,d.applyMatrix4(r)}let s=this.satBounds,a=this.satAxes,o=n[0];for(let c=0;c<3;c++){let u=a[c],h=s[c],p=1<new Ca),e=new Array(12).fill().map(()=>new Ca),i=new A,n=new A;return function(a,o=0,l=null,c=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(l||c)&&(a.getCenter(n),this.closestPointToPoint(n,i),a.closestPointToPoint(i,n),l&&l.copy(i),c&&c.copy(n)),0;let u=o*o,h=a.min,p=a.max,d=this.points,f=1/0;for(let g=0;g<8;g++){let y=d[g];n.copy(y).clamp(h,p);let E=y.distanceToSquared(n);if(Ee.far)?null:t}function Fl(t,r,e,i){let n=t.a,s=t.b,a=t.c,o=r,l=r+1,c=r+2;e&&(o=e.getX(r),l=e.getX(r+1),c=e.getX(r+2)),n.x=i.getX(o),n.y=i.getY(o),n.z=i.getZ(o),s.x=i.getX(l),s.y=i.getY(l),s.z=i.getZ(l),a.x=i.getX(c),a.y=i.getY(c),a.z=i.getZ(c)}function zU(t,r,e,i,n,s,a){let o=e.index,l=e.attributes.position;for(let c=t,u=r+t;c=0,d,f;p?(d=Xy(t),f=$y(t,o)):(d=$y(t,o),f=Xy(t));let g=lC(d,s,i,sC)?oC(d,r,e,i):null;if(g){let b=g.point[u];if(p?b<=s[f+c]:b>=s[f+c+3])return g}let E=lC(f,s,i,sC)?oC(f,r,e,i):null;return g&&E?g.distance<=E.distance?g:E:g||E||null}}var khe=function(){let t,r,e=[],i=new qy(()=>new Ot);return function(...a){t=i.getPrimitive(),r=i.getPrimitive(),e.push(t,r);let o=n(...a);i.releasePrimitive(t),i.releasePrimitive(r),e.pop(),e.pop();let l=e.length;return l>0&&(r=e[l-1],t=e[l-2]),o};function n(s,a,o,l,c=null,u=0,h=0){function p(b){let x=b*2,S=vf,D=yf;for(;!Np(x,S);)b=Xy(b),x=b*2;return Bg(b,D)}function d(b){let x=b*2,S=vf,D=yf;for(;!Np(x,S);)b=$y(b,D),x=b*2;return Bg(b,D)+Yy(x,S)}let f=s*2,m=Ky,g=vf,y=yf;if(Np(f,g)){let b=Bg(s,y),x=Yy(f,g);return Ll(s,m,t),l(b,x,!1,h,u+s,t)}else{let b=Xy(s),x=$y(s,y),S=b,D=x,P,_,w,F;if(c&&(w=t,F=r,Ll(S,m,w),Ll(D,m,F),P=c(w),_=c(F),_n.intersectsBox(_),intersectsTriangle:_=>{_.a.applyMatrix4(c),_.b.applyMatrix4(c),_.c.applyMatrix4(c),_.needsUpdate=!0;for(let w=S*3,F=(D+S)*3;wnew co),Nc=class{static serialize(r,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Nc.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=Ur({cloneBuffers:!0},e);let i=r.geometry,n=r._roots,s=i.getIndex(),a;return e.cloneBuffers?a={roots:n.map(o=>o.slice()),index:s.array.slice()}:a={roots:n,index:s.array},a}static deserialize(r,e,i={}){if(typeof i=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Nc.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});i=Ur({setIndex:!0},i);let{index:n,roots:s}=r,a=new Nc(e,Mn(Ur({},i),{[WU]:!0}));if(a._roots=s,i.setIndex){let o=e.getIndex();if(o===null){let l=new jt(r.index,1,!1);e.setIndex(l)}else o.array!==n&&(o.array.set(n),o.needsUpdate=!0)}return a}constructor(r,e={}){if(r.isBufferGeometry){if(r.index&&r.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[WU]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[WU]||(this._roots=Ahe(r,e),!r.boundingBox&&e.setBoundingBox&&(r.boundingBox=this.getBoundingBox(new Ot))),this.geometry=r}refit(r=null){r&&Array.isArray(r)&&(r=new Set(r));let e=this.geometry,i=e.index.array,n=e.attributes.position,s,a,o,l,c=0,u=this._roots;for(let p=0,d=u.length;pD&&(D=H),heP&&(P=he),C_&&(_=C)}return l[p+0]!==b||l[p+1]!==x||l[p+2]!==S||l[p+3]!==D||l[p+4]!==P||l[p+5]!==_?(l[p+0]=b,l[p+1]=x,l[p+2]=S,l[p+3]=D,l[p+4]=P,l[p+5]=_,!0):!1}else{let y=p+8,E=a[p+6],b=y+d,x=E+d,S=f,D=!1,P=!1;r?S||(D=r.has(b),P=r.has(x),S=!D&&!P):(D=!0,P=!0);let _=S||D,w=S||P,F=!1;_&&(F=h(y,d,S));let X=!1;w&&(X=h(E,d,S));let H=F||X;if(H)for(let he=0;he<3;he++){let C=y+he,N=E+he,k=l[C],G=l[C+3],U=l[N],j=l[N+3];l[p+he]=kj?G:j}return H}}}traverse(r,e=0){let i=this._roots[e],n=new Uint32Array(i),s=new Uint16Array(i);a(0);function a(o,l=0){let c=o*2,u=s[c+15]===65535;if(u){let h=n[o+6],p=s[c+14];r(l,u,new Float32Array(i,o*4,6),h,p)}else{let h=o+32/4,p=n[o+6],d=n[o+7];r(l,u,new Float32Array(i,o*4,6),d)||(a(h,l+1),a(p,l+1))}}}raycast(r,e=en){let i=this._roots,n=this.geometry,s=[],a=e.isMaterial,o=Array.isArray(e),l=n.groups,c=a?e.side:e;for(let u=0,h=i.length;u{let y=f*3;return p(d,y,y+1,y+2,m,g)}}r={boundsTraverseOrder:i,intersectsBounds:r,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let s=ju.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:l,intersectsTriangle:c}=r;if(l&&c){let p=l;l=(d,f,m,g,y)=>p(d,f,m,g,y)?!0:zU(d,f,n,c,m,g,s)}else l||(c?l=(p,d,f,m)=>zU(p,d,n,c,f,m,s):l=(p,d,f)=>f);let u=!1,h=0;for(let p of this._roots){if(Jy(p),u=khe(0,n,o,l,a,h),Dx(),u)break;h+=p.byteLength}return ju.releasePrimitive(s),u}bvhcast(r,e,i){let{intersectsRanges:n,intersectsTriangles:s}=i,a=this.geometry.index,o=this.geometry.attributes.position,l=r.geometry.index,c=r.geometry.attributes.position;Qy.copy(e).invert();let u=ju.getPrimitive(),h=ju.getPrimitive();if(s){let d=function(f,m,g,y,E,b,x,S){for(let D=g,P=g+y;DYU.intersectsBox(d),intersectsRange:(d,f,m,g,y,E)=>(qU.copy(E),qU.applyMatrix4(Qy),r.shapecast({intersectsBounds:b=>qU.intersectsBox(b),intersectsRange:(b,x,S,D,P)=>n(d,f,b,x,g,y,D,P)}))});return ju.releasePrimitive(u),ju.releasePrimitive(h),p}intersectsBox(r,e){return kg.set(r.min,r.max,e),kg.needsUpdate=!0,this.shapecast({intersectsBounds:i=>kg.intersectsBox(i),intersectsTriangle:i=>kg.intersectsTriangle(i)})}intersectsSphere(r){return this.shapecast({intersectsBounds:e=>r.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(r)})}closestPointToGeometry(r,e,i={},n={},s=0,a=1/0){r.boundingBox||r.computeBoundingBox(),kg.set(r.boundingBox.min,r.boundingBox.max,e),kg.needsUpdate=!0;let o=this.geometry,l=o.attributes.position,c=o.index,u=r.attributes.position,h=r.index,p=ju.getPrimitive(),d=ju.getPrimitive(),f=cC,m=wvt,g=null,y=null;n&&(g=Rvt,y=Mvt);let E=1/0,b=null,x=null;return Qy.copy(e).invert(),Cx.matrix.copy(Qy),this.shapecast({boundsTraverseOrder:S=>kg.distanceToBox(S),intersectsBounds:(S,D,P)=>P{if(r.boundsTree)return r.boundsTree.shapecast({boundsTraverseOrder:P=>Cx.distanceToBox(P),intersectsBounds:(P,_,w)=>w{for(let w=P*3,F=(P+_)*3;w(Ax.copy(r).clamp(u.min,u.max),Ax.distanceToSquared(r)),intersectsBounds:(u,h,p)=>p{u.closestPointToPoint(r,Ax);let p=r.distanceToSquared(Ax);return p{Ll(0,new Float32Array(i),Vhe),r.union(Vhe)}),r}};var XU=new Vo,zhe=new Ue,Dvt=Je.prototype.raycast;function $U(t,r){if(this.geometry.boundsTree){if(this.material===void 0)return;zhe.copy(this.matrixWorld).invert(),XU.copy(t.ray).applyMatrix4(zhe);let e=this.geometry.boundsTree;if(t.firstHitOnly===!0){let i=VU(e.raycastFirst(XU,this.material),this,t);i&&r.push(i)}else{let i=e.raycast(XU,this.material);for(let n=0,s=i.length;n=1)return}}else{let m=Math.max(0,d.start),g=Math.min(a.count,d.start+d.count);for(let y=m,E=g;y=1)return}}else if(o!==void 0)if(Array.isArray(i))for(let m=0,g=p.length;m=1)return}}else{let m=Math.max(0,d.start),g=Math.min(o.count,d.start+d.count);for(let y=m,E=g;y=1)return}}};Je.prototype.raycast=$U;function Cvt(t,r,e,i,n,s,a,o){let l;if(r.side===Gn?l=i.intersectTriangle(a,s,n,!0,o):l=i.intersectTriangle(n,s,a,r.side!==wi,o),l===null)return null;gC.copy(o),gC.applyMatrix4(t.matrixWorld);let c=e.ray.origin.distanceTo(gC);return ce.far?null:{distance:c,point:gC.clone(),object:t}}function vC(t,r,e,i,n,s,a,o,l,c,u,h){Tf.fromBufferAttribute(n,c),Ef.fromBufferAttribute(n,u),bf.fromBufferAttribute(n,h);let p=t.morphTargetInfluences;if(s&&p){uC.set(0,0,0),hC.set(0,0,0),pC.set(0,0,0);for(let f=0,m=s.length;f=1)return}}else{let h=Math.max(0,s.start),p=Math.min(c.count,s.start+s.count);for(let d=h,f=p;d=1)return}};function Whe(t,r,e,i,n,s){let a=i.ray.distanceSqToPoint(t);if(ai.far)return;n.push({distance:l,distanceToRay:Math.sqrt(a),point:o,index:r,face:null,object:s})}}var rT=class extends pr{constructor(r=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=r,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(e){e.element instanceof Element&&e.element.parentNode!==null&&e.element.parentNode.removeChild(e.element)})})}copy(r,e){return super.copy(r,e),this.element=r.element.cloneNode(!0),this}},tT=new A,qhe=new Ue,Yhe=new Ue,Xhe=new A,$he=new A,xf=class{constructor(r={}){let e=this,i,n,s,a,o={objects:new WeakMap},l=r.element!==void 0?r.element:document.createElement("div");l.style.overflow="hidden",this.domElement=l,this.getSize=function(){return{width:i,height:n}},this.render=function(d,f){d.matrixWorldAutoUpdate===!0&&d.updateMatrixWorld(),f.parent===null&&f.matrixWorldAutoUpdate===!0&&f.updateMatrixWorld(),qhe.copy(f.matrixWorldInverse),Yhe.multiplyMatrices(f.projectionMatrix,qhe),c(d,d,f),p(d)},this.setSize=function(d,f){i=d,n=f,s=i/2,a=n/2,l.style.width=d+"px",l.style.height=f+"px"};function c(d,f,m){if(d.isCSS2DObject){tT.setFromMatrixPosition(d.matrixWorld),tT.applyMatrix4(Yhe);let g=d.visible===!0&&tT.z>=-1&&tT.z<=1&&d.layers.test(m.layers)===!0;if(d.element.style.display=g===!0?"":"none",g===!0){d.onBeforeRender(e,f,m);let E=d.element;E.style.transform="translate(-50%,-50%) translate("+(tT.x*s+s)+"px,"+(-tT.y*a+a)+"px)",E.parentNode!==l&&l.appendChild(E),d.onAfterRender(e,f,m)}let y={distanceToCameraSquared:u(m,d)};o.objects.set(d,y)}for(let g=0,y=d.children.length;g{this.cancelReject=n});this.promise=Promise.race([e,r])}cancel(){this.cancelReject&&this.cancelReject({type:"cancel"})}};var Avt=Un(Khe(),1),ne=Avt;ne.setLevel("info");var xC=class extends pr{constructor(r){super(),this.isSVGObject=!0,this.node=r}};var Jhe="#7fffbf",Qhe=10,epe=14,Ovt=2.5;var nT=class{static createSVGObject(r){return new xC(r)}static createPointMarker(r=Qhe){return nT.createSnapIcon("Dot",Jhe,r,"#ffffff","2")}static createSnapIcon(r,e="none",i=Qhe,n=Jhe,s="2"){let a=document.createElementNS("http://www.w3.org/2000/svg","path"),o=i,l="";switch(r){case"Dot":o=i/3,l=` + M ${-o}, 0 + a ${o}, ${o} 0 1, 0 ${2*o}, 0 + a ${o}, ${o} 0 1, 0 -${2*o}, 0 + `;break;case"Square":o=i/1.2,l=` + M ${-o/2}, ${-o/2} + h ${o} + v ${o} + h ${-o} + z + `;break;case"Triangle":o=i/2,l=` + M 0, ${-o} + L ${-.87*o}, ${o/2} + L ${.87*o}, ${o/2} + z + `;break;case"Cross":o=i/1.2,l=` + M ${-o/2}, ${-o/2} + L ${o/2}, ${o/2} + M ${o/2}, ${-o/2} + L ${-o/2}, ${o/2} + `;break;case"Perpendicular":o=i,l=` + M 0, 0 + L ${-o/2}, 0 + M 0, 0 + L 0, ${o/2} + M ${o/2}, ${o/2} + L ${-o/2}, ${o/2} + M ${-o/2}, ${o/2} + L ${-o/2}, ${-o/2} + `;break;default:break}a.setAttribute("d",l);let c=`fill: ${e}; stroke: ${n}; stroke-width: ${s};`;return a.setAttribute("style",c),this.createSVGObject(a)}static createLine(r=6,e="#fff000",i=Ovt){let n=document.createElementNS("http://www.w3.org/2000/svg","line");n.setAttribute("x1",`${-r}`),n.setAttribute("y1","0"),n.setAttribute("x2",`${r}`),n.setAttribute("y2","0");let s=`stroke: ${e}; stroke-width: ${i};`;return n.setAttribute("style",s),this.createSVGObject(n)}static createLabel(r,e="#ffffff",i=epe,n=epe/2){let s=document.createElementNS("http://www.w3.org/2000/svg","text");s.innerHTML=r,s.setAttribute("x","0"),s.setAttribute("y",`${n}`);let a=`font-size: ${i}; text-anchor: middle; fill: ${e};`;return s.setAttribute("style",a),this.createSVGObject(s)}};var St=class{static isFullScreen(){return!!(document.fullscreenElement||document.mozFullScreenElement)}static fullScreen(r=document.documentElement){(r.requestFullscreen||r.mozRequestFullScreen||r.webkitRequestFullscreen||r.msRequestFullscreen).call(r)}static exitFullscreen(){(document.exitFullscreen||document.mozCancelFullscreen||document.webkitExitFullscreen||document.msExitFullscreen).call(document)}static displayPointMarker(r,e,i=1e3,n=10){let s=nT.createPointMarker(n);return s.position.set(e.x,e.y,e.z),r.add(s),i&&setTimeout(()=>{r.remove(s)},i),s}static joinStrings(...r){return r.join("")}static numberToString(r){let e=2;return Math.abs(r)<1e-6?e=2:Math.abs(r)<1e-5?e=7:Math.abs(r)<1e-4?e=6:Math.abs(r)<.001?e=5:Math.abs(r)<.01?e=4:Math.abs(r)<.1&&(e=3),r.toFixed(e)}static hexToBase64(r){return btoa((r.match(/\w{2}/g)||[]).map(function(e){return String.fromCharCode(parseInt(e,16))}).join(""))}static vectorToString(r){return r instanceof A?`(${this.numberToString(r.x)}, ${this.numberToString(r.y)}, ${this.numberToString(r.z)})`:`(${this.numberToString(r.x)}, ${this.numberToString(r.y)})`}static arrayToVector2(r){if(r){if(r instanceof le)return r;if(Array.isArray(r)&&r.length>=2)return new le(r[0],r[1])}else return r}static arrayToVector3(r){if(r){if(r instanceof A)return r;if(Array.isArray(r)&&r.length>=2)return new A(r[0],r[1],r.length>2?r[2]:0)}else return r}static arrayToEuler(r){if(r){if(r instanceof Sr)return r;if(Array.isArray(r)&&r.length>=3)return new Sr(r[0],r[1],r[2])}else return r}static arrayOrObjectToVector3(r){if(r){if(r instanceof A)return r;if(r instanceof le)return new A(r.x,r.y,0);if(Array.isArray(r)&&r.length>=2)return new A(r[0],r[1],r[2]||0)}else return r;let e=r;if(e.x!=null&&e.y!=null)return new A(e.x,e.y,e.z||0)}static isVectorValid(r){let e=r&&!isNaN(r.x)&&!isNaN(r.y)&&isFinite(r.x)&&isFinite(r.y);return e&&r instanceof A&&(e=!isNaN(r.z)&&isFinite(r.z)),e}static isBoxValid(r){return r&&!r.isEmpty()&&this.isVectorValid(r.min)&&this.isVectorValid(r.max)}static isMatrixValid(r){let e=r&&r.elements;if(!e||e.length<16)return!1;for(let i=0;i<16;++i){let n=e[i];if(Number.isNaN(n))return!1}return!0}static guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let e=Math.random()*16|0;return(r=="x"?e:e&3|8).toString(16)})}static expandBoxByScale(r,e){let i=new A;r.getCenter(i);let n=(r.max.x-r.min.x)*e,s=(r.max.y-r.min.y)*e,a=(r.max.z-r.min.z)*e,o=new A(i.x-n/2,i.y-s/2,i.z-a/2),l=new A(i.x+n/2,i.y+s/2,i.z+a/2);r.set(o,l)}static expandBoxByMinSize(r,e){let i=new A;r.getCenter(i);let n=r.max.x-r.min.x,s=r.max.y-r.min.y,a=r.max.z-r.min.z;n{i.onload=function(){n(i)}})}static renderingContextToImage(r,e,i="image/png",n=.8){if(e){let s=Math.max(e.min.x,0),a=Math.max(e.min.y,0),o=Math.max(e.max.x-s,0),l=Math.max(e.max.y-a,0),c=r.getImageData(s,a,o,l),u=document.createElement("canvas");return u.width=o,u.height=l,u.getContext("2d").putImageData(c,0,0),u.toDataURL(i,n)}return r.canvas.toDataURL(i,n)}static printMemory(r){let e=performance.memory;if(!e){ne.warn("[CommonUtils] performance.memory is not available in this browser");return}let i=(e.jsHeapSizeLimit/(1024*1024)).toFixed(2),n=(e.totalJSHeapSize/(1024*1024)).toFixed(2),s=(e.usedJSHeapSize/(1024*1024)).toFixed(2);ne.info(`[CommonUtils] ${r}. jsHeapSizeLimit: ${i}M , totalJSHeapSize: ${n}M , usedJSHeapSize: ${s}M `)}static printGpuInfo(r){let e=r.getExtension("webgl_debug_renderer_info"),i=r.getParameter(e.UNMASKED_RENDERER_WEBGL);ne.info("[CommonUtils] gpu:",i)}},IC=(t,r,e)=>{let{default:i,active:n}=r;e?(t.remove(i),t.add(n||i)):(n&&t.remove(n),t.add(i))};var Mr=class{static getScreenPointByEvent(r,e){let i=new le,{left:n,top:s}=e.getBoundingClientRect();return i.x=r.clientX-n,i.y=r.clientY-s,i}static getScreenPointByTouchEvent(r,e){let i=new le,{left:n,top:s}=e.getBoundingClientRect();return i.x=r.touches[0].clientX-n,i.y=r.touches[0].clientY-s,i}static worldPosition2ScreenPoint(r,e,i){let{clientWidth:n,clientHeight:s}=i,a=r.clone(),o=new le;return a.project(e),o.x=Math.round((.5+a.x/2)*n),o.y=Math.round((.5-a.y/2)*s),o}static screenPoint2worldPosition(r,e,i){let n=Mr.screenPoint2NdcPoint(r,e,i);return new A(n.x,n.y,1).unproject(e)}static screenPoint2NdcPoint(r,e,i){let{clientWidth:n,clientHeight:s}=i,a=new le;return a.x=r.x/n*2-1,a.y=-(r.y/s)*2+1,a}};var Sf=class{static createCSS2DObject(r){let e=new rT(r);return r.dataset.objectId=e.id.toString(),e}static createDefaultHotpoint(r=12){let e=document.createElement("div"),i=e.style;return i.width=`${r}px`,i.height=`${r}px`,i.opacity="0.8",i.cursor="pointer",i.top=`${-r/2}px`,i.left=`${-r/2}px`,i.backgroundColor="#ffffff",i.border="2px solid #00DAB7",i.borderRadius="50%",this.createCSS2DObject(e)}static createHotpoint(r){if(r){let e=document.createElement("div"),i=e.style;return i.top="0px",i.left="0px",e.innerHTML=r,this.createCSS2DObject(e)}return this.createDefaultHotpoint()}static createLabel(r,e=""){let i=document.createElement("div");if(i.innerHTML=r,e)i.classList.add(e);else{let n=i.style;n.padding="5px 9px",n.color="#ffffffdd",n.fontSize="12px",n.position="absolute",n.backgroundColor="rgba(0, 0, 0, 0.3)",n.borderRadius="12px",n.cursor="pointer",n.top="0px",n.left="0px"}return this.createCSS2DObject(i)}static tryFindObjectId(r){if(r.dataset.objectId!=null)return parseInt(r.dataset.objectId);let e=r.parentElement;if(e&&!(e instanceof HTMLBodyElement))return this.tryFindObjectId(e)}};var sT={unit:"file",decimalPrecision:99,camera:{near:.1,far:3e4},mouse:{sensitivity:3},keyboard:{sensitivity:3}};var tpe={"Precision from file":99,"0(1)":0,"0.1(1/2)":1,"0.01(1/4)":2,"0.001(1/8)":3,"0.0001(1/16)":4,"0.00001(1/32)":5,"0.000001(1/64)":6};var Wu=(t,r)=>t.toFixed(r===tpe["Precision from file"]?2:r);var aT=class{static isTouchScreenDevice(){return"ontouchstart"in window}static printDeviceInfo(){let r=navigator.userAgent,e=/(?:Android)/.test(r),i=/(?:Firefox)/.test(r),n=/(?:Chrome|CriOS)/.test(r),s=/(?:iPad|PlayBook)/.test(r)||e&&!/(?:Mobile)/.test(r)||i&&/(?:Tablet)/.test(r),a=/(?:iPhone)/.test(r)&&!s,o=!a&&!e,l=aT.isTouchScreenDevice();e&&ne.debug("[DI] is android"),i&&ne.debug("[DI] is fireFox"),n&&ne.debug("[DI] is chrome"),s&&ne.debug("[DI] is tablet"),a&&ne.debug("[DI] is iPhone"),o&&ne.debug("[DI] is PC"),l&&ne.debug("[DI] is touch device")}};var jo=class{constructor(){this.eventList=new Map}addEventListener(r,e){let i=this.eventList.get(r);i?i.push(e):this.eventList.set(r,[e])}dispatchEvent(r,e){let i=this.eventList.get(r);i&&i.forEach(n=>n(e))}removeEventListener(r,e){let i=this.eventList.get(r);if(i){let n=i.indexOf(e);n>-1&&i.splice(n,1)}}clearEventListeners(r){this.eventList.delete(r)}clearAllEventListener(){this.eventList.clear()}};var Zs=class{parse(r,e={}){if(e=Object.assign({decodeSpeed:5,encodeSpeed:5,encoderMethod:Zs.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1},e),DracoEncoderModule===void 0)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");let i=r.geometry,n=DracoEncoderModule(),s=new n.Encoder,a,o;if(r.isMesh===!0){a=new n.MeshBuilder,o=new n.Mesh;let d=i.getAttribute("position");a.AddFloatAttributeToMesh(o,n.POSITION,d.count,d.itemSize,d.array);let f=i.getIndex();if(f!==null)a.AddFacesToMesh(o,f.count/3,f.array);else{let m=new(d.count>65535?Uint32Array:Uint16Array)(d.count);for(let g=0;g4?a=t.array[n*t.itemSize+s]:(s===0?a=t.getX(n):s===1?a=t.getY(n):s===2?a=t.getZ(n):s===3&&(a=t.getW(n)),t.normalized===!0&&(a=wr.normalize(a,t.array))),i.min[s]=Math.min(i.min[s],a),i.max[s]=Math.max(i.max[s],a)}return i}function ope(t){return Math.ceil(t/4)*4}function tB(t,r=0){let e=ope(t.byteLength);if(e!==t.byteLength){let i=new Uint8Array(e);if(i.set(new Uint8Array(t)),r!==0)for(let n=t.byteLength;nt.toBlob(i,r));let e;return r==="image/jpeg"?e=.92:r==="image/webp"&&(e=.8),t.convertToBlob({type:r,quality:e})}var rB=class{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(r){this.plugins=r}write(n,s){return ot(this,arguments,function*(r,e,i={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},i),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(r),yield Promise.all(this.pending);let a=this,o=a.buffers,l=a.json;i=a.options;let c=a.extensionsUsed,u=new Blob(o,{type:"application/octet-stream"}),h=Object.keys(c);if(h.length>0&&(l.extensionsUsed=h),l.buffers&&l.buffers.length>0&&(l.buffers[0].byteLength=u.size),i.binary===!0){let p=new FileReader;p.readAsArrayBuffer(u),p.onloadend=function(){let d=tB(p.result),f=new DataView(new ArrayBuffer(npe));f.setUint32(0,d.byteLength,!0),f.setUint32(4,Hvt,!0);let m=tB(Uvt(JSON.stringify(l)),32),g=new DataView(new ArrayBuffer(npe));g.setUint32(0,m.byteLength,!0),g.setUint32(4,Fvt,!0);let y=new ArrayBuffer(ipe),E=new DataView(y);E.setUint32(0,Nvt,!0),E.setUint32(4,Lvt,!0);let b=ipe+g.byteLength+m.byteLength+f.byteLength+d.byteLength;E.setUint32(8,b,!0);let x=new Blob([y,g,m,f,d],{type:"application/octet-stream"}),S=new FileReader;S.readAsArrayBuffer(x),S.onloadend=function(){e(S.result)}}}else if(l.buffers&&l.buffers.length>0){let p=new FileReader;p.readAsDataURL(u),p.onloadend=function(){let d=p.result;l.buffers[0].uri=d,e(l)}}else e(l)})}serializeUserData(r,e){if(Object.keys(r.userData).length===0)return;let i=this.options,n=this.extensionsUsed;try{let s=JSON.parse(JSON.stringify(r.userData));if(i.includeCustomExtensions&&s.gltfExtensions){e.extensions===void 0&&(e.extensions={});for(let a in s.gltfExtensions)e.extensions[a]=s.gltfExtensions[a],n[a]=!0;delete s.gltfExtensions}Object.keys(s).length>0&&(e.extras=s)}catch(s){console.warn("THREE.GLTFExporter: userData of '"+r.name+"' won't be serialized because of JSON.stringify error - "+s.message)}}getUID(r,e=!1){if(this.uids.has(r)===!1){let n=new Map;n.set(!0,this.uid++),n.set(!1,this.uid++),this.uids.set(r,n)}return this.uids.get(r).get(e)}isNormalizedNormalAttribute(r){if(this.cache.attributesNormalized.has(r))return!1;let i=new A;for(let n=0,s=r.count;n5e-4)return!1;return!0}createNormalizedNormalAttribute(r){let e=this.cache;if(e.attributesNormalized.has(r))return e.attributesNormalized.get(r);let i=r.clone(),n=new A;for(let s=0,a=i.count;s4?m=r.array[d*r.itemSize+f]:(f===0?m=r.getX(d):f===1?m=r.getY(d):f===2?m=r.getZ(d):f===3&&(m=r.getW(d)),r.normalized===!0&&(m=wr.normalize(m,r.array))),e===nn.FLOAT?c.setFloat32(u,m,!0):e===nn.UNSIGNED_INT?c.setUint32(u,m,!0):e===nn.UNSIGNED_SHORT?c.setUint16(u,m,!0):e===nn.UNSIGNED_BYTE&&c.setUint8(u,m),u+=o}let h={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:l};return s!==void 0&&(h.target=s),s===nn.ARRAY_BUFFER&&(h.byteStride=r.itemSize*o),this.byteOffset+=l,a.bufferViews.push(h),{id:a.bufferViews.length-1,byteLength:0}}processBufferViewImage(r){let e=this,i=e.json;return i.bufferViews||(i.bufferViews=[]),new Promise(function(n){let s=new FileReader;s.readAsArrayBuffer(r),s.onloadend=function(){let a=tB(s.result),o={buffer:e.processBuffer(a),byteOffset:e.byteOffset,byteLength:a.byteLength};e.byteOffset+=a.byteLength,n(i.bufferViews.push(o)-1)}})}processAccessor(r,e,i,n){let s=this.json,a={1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",16:"MAT4"},o;if(r.array.constructor===Float32Array)o=nn.FLOAT;else if(r.array.constructor===Uint32Array)o=nn.UNSIGNED_INT;else if(r.array.constructor===Uint16Array)o=nn.UNSIGNED_SHORT;else if(r.array.constructor===Uint8Array)o=nn.UNSIGNED_BYTE;else throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type.");if(i===void 0&&(i=0),n===void 0&&(n=r.count),n===0)return null;let l=kvt(r,i,n),c;e!==void 0&&(c=r===e.index?nn.ELEMENT_ARRAY_BUFFER:nn.ARRAY_BUFFER);let u=this.processBufferView(r,o,i,n,c),h={bufferView:u.id,byteOffset:u.byteOffset,componentType:o,count:n,max:l.max,min:l.min,type:a[r.itemSize]};return r.normalized===!0&&(h.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(h)-1}processImage(r,e,i,n="image/png"){if(r!==null){let s=this,a=s.cache,o=s.json,l=s.options,c=s.pending;a.images.has(r)||a.images.set(r,{});let u=a.images.get(r),h=n+":flipY/"+i.toString();if(u[h]!==void 0)return u[h];o.images||(o.images=[]);let p={mimeType:n},d=spe();d.width=Math.min(r.width,l.maxTextureSize),d.height=Math.min(r.height,l.maxTextureSize);let f=d.getContext("2d");if(i===!0&&(f.translate(0,d.height),f.scale(1,-1)),r.data!==void 0){e!==Bs&&console.error("GLTFExporter: Only RGBAFormat is supported."),(r.width>l.maxTextureSize||r.height>l.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",r);let g=new Uint8ClampedArray(r.height*r.width*4);for(let y=0;ys.processBufferViewImage(g)).then(g=>{p.bufferView=g})):d.toDataURL!==void 0?p.uri=d.toDataURL(n):c.push(ape(d,n).then(g=>new FileReader().readAsDataURL(g)).then(g=>{p.uri=g}));let m=o.images.push(p)-1;return u[h]=m,m}else throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(r){let e=this.json;e.samplers||(e.samplers=[]);let i={magFilter:Wo[r.magFilter],minFilter:Wo[r.minFilter],wrapS:Wo[r.wrapS],wrapT:Wo[r.wrapT]};return e.samplers.push(i)-1}processTexture(r){let e=this.cache,i=this.json;if(e.textures.has(r))return e.textures.get(r);i.textures||(i.textures=[]);let n=r.userData.mimeType;n==="image/webp"&&(n="image/png");let s={sampler:this.processSampler(r),source:this.processImage(r.image,r.format,r.flipY,n)};r.name&&(s.name=r.name),this._invokeAll(function(o){o.writeTexture&&o.writeTexture(r,s)});let a=i.textures.push(s)-1;return e.textures.set(r,a),a}processMaterial(r){let e=this.cache,i=this.json;if(e.materials.has(r))return e.materials.get(r);if(r.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;i.materials||(i.materials=[]);let n={pbrMetallicRoughness:{}};r.isMeshStandardMaterial!==!0&&r.isMeshBasicMaterial!==!0&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");let s=r.color.toArray().concat([r.opacity]);if(Ox(s,[1,1,1,1])||(n.pbrMetallicRoughness.baseColorFactor=s),r.isMeshStandardMaterial?(n.pbrMetallicRoughness.metallicFactor=r.metalness,n.pbrMetallicRoughness.roughnessFactor=r.roughness):(n.pbrMetallicRoughness.metallicFactor=.5,n.pbrMetallicRoughness.roughnessFactor=.5),r.metalnessMap||r.roughnessMap){let o=this.buildMetalRoughTexture(r.metalnessMap,r.roughnessMap),l={index:this.processTexture(o)};this.applyTextureTransform(l,o),n.pbrMetallicRoughness.metallicRoughnessTexture=l}if(r.map){let o={index:this.processTexture(r.map)};this.applyTextureTransform(o,r.map),n.pbrMetallicRoughness.baseColorTexture=o}if(r.emissive){let o=r.emissive.clone().multiplyScalar(r.emissiveIntensity),l=Math.max(o.r,o.g,o.b);if(l>1&&(o.multiplyScalar(1/l),console.warn("THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited")),l>0&&(n.emissiveFactor=o.toArray()),r.emissiveMap){let c={index:this.processTexture(r.emissiveMap)};this.applyTextureTransform(c,r.emissiveMap),n.emissiveTexture=c}}if(r.normalMap){let o={index:this.processTexture(r.normalMap)};r.normalScale&&r.normalScale.x!==1&&(o.scale=r.normalScale.x),this.applyTextureTransform(o,r.normalMap),n.normalTexture=o}if(r.aoMap){let o={index:this.processTexture(r.aoMap),texCoord:1};r.aoMapIntensity!==1&&(o.strength=r.aoMapIntensity),this.applyTextureTransform(o,r.aoMap),n.occlusionTexture=o}r.transparent?n.alphaMode="BLEND":r.alphaTest>0&&(n.alphaMode="MASK",n.alphaCutoff=r.alphaTest),r.side===wi&&(n.doubleSided=!0),r.name!==""&&(n.name=r.name),this.serializeUserData(r,n),this._invokeAll(function(o){o.writeMaterial&&o.writeMaterial(r,n)});let a=i.materials.push(n)-1;return e.materials.set(r,a),a}processMesh(r){let e=this.cache,i=this.json,n=[r.geometry.uuid];if(Array.isArray(r.material))for(let b=0,x=r.material.length;b0){let b=[],x=[],S={};if(r.morphTargetDictionary!==void 0)for(let D in r.morphTargetDictionary)S[r.morphTargetDictionary[D]]=D;for(let D=0;D0&&(l.extras={},l.extras.targetNames=x)}let m=Array.isArray(r.material);if(m&&a.groups.length===0)return null;let g=m?r.material:[r.material],y=m?a.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let b=0,x=y.length;b0&&(S.targets=h),a.index!==null){let P=this.getUID(a.index);(y[b].start!==void 0||y[b].count!==void 0)&&(P+=":"+y[b].start+":"+y[b].count),e.attributes.has(P)?S.indices=e.attributes.get(P):(S.indices=this.processAccessor(a.index,a,y[b].start,y[b].count),e.attributes.set(P,S.indices)),S.indices===null&&delete S.indices}let D=this.processMaterial(g[y[b].materialIndex]);D!==null&&(S.material=D),u.push(S)}l.primitives=u,i.meshes||(i.meshes=[]),this._invokeAll(function(b){b.writeMesh&&b.writeMesh(r,l)});let E=i.meshes.push(l)-1;return e.meshes.set(s,E),E}processCamera(r){let e=this.json;e.cameras||(e.cameras=[]);let i=r.isOrthographicCamera,n={type:i?"orthographic":"perspective"};return i?n.orthographic={xmag:r.right*2,ymag:r.top*2,zfar:r.far<=0?.001:r.far,znear:r.near<0?0:r.near}:n.perspective={aspectRatio:r.aspect,yfov:wr.degToRad(r.fov),zfar:r.far<=0?.001:r.far,znear:r.near<0?0:r.near},r.name!==""&&(n.name=r.type),e.cameras.push(n)-1}processAnimation(r,e){let i=this.json,n=this.nodeMap;i.animations||(i.animations=[]),r=oT.Utils.mergeMorphTargetTracks(r.clone(),e);let s=r.tracks,a=[],o=[];for(let l=0;l0){let o=[];for(let l=0,c=r.children.length;l0&&(s.children=o)}this._invokeAll(function(o){o.writeNode&&o.writeNode(r,s)});let a=e.nodes.push(s)-1;return n.set(r,a),a}processScene(r){let e=this.json,i=this.options;e.scenes||(e.scenes=[],e.scene=0);let n={};r.name!==""&&(n.name=r.name),e.scenes.push(n);let s=[];for(let a=0,o=r.children.length;a0&&(n.nodes=s),this.serializeUserData(r,n)}processObjects(r){let e=new On;e.name="AuxScene";for(let i=0;i0&&this.processObjects(i);for(let n=0;n0&&(a.range=r.distance)):r.isSpotLight&&(a.type="spot",r.distance>0&&(a.range=r.distance),a.spot={},a.spot.innerConeAngle=(r.penumbra-1)*r.angle*-1,a.spot.outerConeAngle=r.angle),r.decay!==void 0&&r.decay!==2&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),r.target&&(r.target.parent!==r||r.target.position.x!==0||r.target.position.y!==0||r.target.position.z!==-1)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),s[this.name]||(n.extensions=n.extensions||{},n.extensions[this.name]={lights:[]},s[this.name]=!0);let o=n.extensions[this.name].lights;o.push(a),e.extensions=e.extensions||{},e.extensions[this.name]={light:o.length-1}}},nB=class{constructor(r){this.writer=r,this.name="KHR_materials_unlit"}writeMaterial(r,e){if(!r.isMeshBasicMaterial)return;let n=this.writer.extensionsUsed;e.extensions=e.extensions||{},e.extensions[this.name]={},n[this.name]=!0,e.pbrMetallicRoughness.metallicFactor=0,e.pbrMetallicRoughness.roughnessFactor=.9}},sB=class{constructor(r){this.writer=r,this.name="KHR_materials_clearcoat"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.clearcoat===0)return;let i=this.writer,n=i.extensionsUsed,s={};if(s.clearcoatFactor=r.clearcoat,r.clearcoatMap){let a={index:i.processTexture(r.clearcoatMap)};i.applyTextureTransform(a,r.clearcoatMap),s.clearcoatTexture=a}if(s.clearcoatRoughnessFactor=r.clearcoatRoughness,r.clearcoatRoughnessMap){let a={index:i.processTexture(r.clearcoatRoughnessMap)};i.applyTextureTransform(a,r.clearcoatRoughnessMap),s.clearcoatRoughnessTexture=a}if(r.clearcoatNormalMap){let a={index:i.processTexture(r.clearcoatNormalMap)};i.applyTextureTransform(a,r.clearcoatNormalMap),s.clearcoatNormalTexture=a}e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}},aB=class{constructor(r){this.writer=r,this.name="KHR_materials_iridescence"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.iridescence===0)return;let i=this.writer,n=i.extensionsUsed,s={};if(s.iridescenceFactor=r.iridescence,r.iridescenceMap){let a={index:i.processTexture(r.iridescenceMap)};i.applyTextureTransform(a,r.iridescenceMap),s.iridescenceTexture=a}if(s.iridescenceIor=r.iridescenceIOR,s.iridescenceThicknessMinimum=r.iridescenceThicknessRange[0],s.iridescenceThicknessMaximum=r.iridescenceThicknessRange[1],r.iridescenceThicknessMap){let a={index:i.processTexture(r.iridescenceThicknessMap)};i.applyTextureTransform(a,r.iridescenceThicknessMap),s.iridescenceThicknessTexture=a}e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}},oB=class{constructor(r){this.writer=r,this.name="KHR_materials_transmission"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.transmission===0)return;let i=this.writer,n=i.extensionsUsed,s={};if(s.transmissionFactor=r.transmission,r.transmissionMap){let a={index:i.processTexture(r.transmissionMap)};i.applyTextureTransform(a,r.transmissionMap),s.transmissionTexture=a}e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}},lB=class{constructor(r){this.writer=r,this.name="KHR_materials_volume"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.transmission===0)return;let i=this.writer,n=i.extensionsUsed,s={};if(s.thicknessFactor=r.thickness,r.thicknessMap){let a={index:i.processTexture(r.thicknessMap)};i.applyTextureTransform(a,r.thicknessMap),s.thicknessTexture=a}s.attenuationDistance=r.attenuationDistance,s.attenuationColor=r.attenuationColor.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}},cB=class{constructor(r){this.writer=r,this.name="KHR_materials_ior"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.ior===1.5)return;let n=this.writer.extensionsUsed,s={};s.ior=r.ior,e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}},uB=class{constructor(r){this.writer=r,this.name="KHR_materials_specular"}writeMaterial(r,e){if(!r.isMeshPhysicalMaterial||r.specularIntensity===1&&r.specularColor.equals(Pvt)&&!r.specularIntensityMap&&!r.specularColorTexture)return;let i=this.writer,n=i.extensionsUsed,s={};if(r.specularIntensityMap){let a={index:i.processTexture(r.specularIntensityMap)};i.applyTextureTransform(a,r.specularIntensityMap),s.specularTexture=a}if(r.specularColorMap){let a={index:i.processTexture(r.specularColorMap)};i.applyTextureTransform(a,r.specularColorMap),s.specularColorTexture=a}s.specularFactor=r.specularIntensity,s.specularColorFactor=r.specularColor.toArray(),e.extensions=e.extensions||{},e.extensions[this.name]=s,n[this.name]=!0}};oT.Utils={insertKeyframe:function(t,r){let i=t.getValueSize(),n=new t.TimeBufferType(t.times.length+1),s=new t.ValueBufferType(t.values.length+i),a=t.createInterpolant(new t.ValueBufferType(i)),o;if(t.times.length===0){n[0]=r;for(let l=0;lt.times[t.times.length-1]){if(Math.abs(t.times[t.times.length-1]-r)<.001)return t.times.length-1;n[n.length-1]=r,n.set(t.times,0),s.set(t.values,0),s.set(a.evaluate(r),t.values.length),o=n.length-1}else for(let l=0;lr){n.set(t.times.slice(0,l+1),0),n[l+1]=r,n.set(t.times.slice(l+1),l+2),s.set(t.values.slice(0,(l+1)*i),0),s.set(a.evaluate(r),(l+1)*i),s.set(t.values.slice((l+1)*i),(l+2)*i),o=l+1;break}}return t.times=n,t.values=s,o},mergeMorphTargetTracks:function(t,r){let e=[],i={},n=t.tracks;for(let s=0;s{if(i.binary){e=xn.addExtention(e,xn.EXTENSION_GLB);let o=a;xn.saveArrayBuffer(o,e)}else e=xn.addExtention(e,xn.EXTENSION_GLTF),xn.saveJson(a,e)},a=>console.log(a),i)}static exportToObj(r,e){if(!r||!e)throw new Error("Invalid input or filename!");e=xn.addExtention(e,xn.EXTENSION_OBJ);let n=new SC().parse(r);xn.saveString(n,e)}static exportToDraco(r,e,i={}){if(!r||!e)throw new Error("Invalid input or filename!");e=xn.addExtention(e,xn.EXTENSION_DRACO);let n=new Zs;i=Object.assign({},{encodeSpeed:5},i);let a=n.parse(r,i);xn.saveArrayBuffer(a,e)}static exportToThreeJsJson(r,e){let i=r.toJSON();e.toLowerCase().endsWith(xn.EXTENSION_JSON)||(e+=xn.EXTENSION_JSON),xn.saveJson(i,e)}static save(r,e){let i=xn.downloadLink;i||(i=document.createElement("a"),i.style.display="none",document.body.appendChild(i),xn.downloadLink=i),i.href=URL.createObjectURL(r),i.download=e,i.click()}static saveArrayBuffer(r,e){xn.save(new Blob([r],{type:"application/octet-stream"}),e)}static saveJson(r,e){xn.saveJsonString(JSON.stringify(r),e)}static saveJsonString(r,e){xn.save(new Blob([r],{type:"application/json"}),e)}static saveString(r,e){xn.save(new Blob([r],{type:"text/csv"}),e)}static addExtention(r,e){return r.toLowerCase().endsWith(e.toLowerCase())||(r+=e),r}},Gg=xn;Gg.EXTENSION_GLTF=".gltf",Gg.EXTENSION_GLB=".glb",Gg.EXTENSION_OBJ=".obj",Gg.EXTENSION_DRACO=".drc",Gg.EXTENSION_JSON=".json";var _C=class{constructor(){this.prevTime=(performance||Date).now();this.beginTime=(performance||Date).now();this.frames=0;this.fps=Number.NaN}begin(){this.beginTime=(performance||Date).now()}end(){this.frames++;let r=(performance||Date).now();return r>=this.prevTime+1e3&&(this.fps=Math.round(this.frames*1e3/(r-this.prevTime)),this.frames=0,this.prevTime=r),r}update(){this.beginTime=this.end()}};var hB=1e-15,lr=class{static roundNumber(r,e){return Math.round(r*Math.pow(10,e))/Math.pow(10,e)}static floorNumber(r,e){return Math.floor(r*Math.pow(10,e))/Math.pow(10,e)}static areNumbersEqual(r,e,i=1e-7){return Math.abs(r-e)t[0]===r[0]&&t[1]===r[1],fB=t=>Array.isArray(t)&&t.length,upe=(t,r=0,e=!1)=>{let i,n;if(fB(t)&&typeof t[0][0]=="number"){let s=0,a=t;for(i=0,n=a.length;i0||e&&s<0)&&a.reverse()}else for(i=0,n=t.length;i0);if(r===0&&fB(t)&&fB(t[0])&&typeof t[0][0][0]=="number"){let s=t[0].slice(0,1)[0];t[0].pop(),t[0].push([s[0],s[1]])}return t},wC=class{constructor(r,e=5){if(this.distance=0,this.arcSegments=e,!Px(r))throw new Error("Offset requires at least one coodinate to work with");this.edges=[],Px(r)&&typeof r[0]=="number"?this.vertices=r:(this.vertices=upe(r),this.processContour(this.vertices,this.edges))}processContour(r,e){let i,n;if(Px(r[0])&&typeof r[0][0]=="number")for(r=r,e=e,n=r.length,cpe(r[0],r[n-1])&&(n-=1),i=0;iu?c-u:c+l-u,p=(o?-h:l-h)/a;r.push(n);for(let d=1;d0?this.margin(this.distance):this.padding(-this.distance)}offsetSegment(r,e,i,n){let s=[i.offset(i.inNormal[0]*n,i.inNormal[1]*n),i.inverseOffset(i.outNormal[0]*n,i.outNormal[1]*n)],a=[];for(let o=0,l=2;o0&&i.push(a)}i.length>0&&(e=i.length===1?i[0]:(0,Vg.union)(i[0],...i.slice(1)))}else e=this.vertices.length===1?this.offsetPoint(r):this.offsetContour(this.vertices,this.edges);return e}offsetContour(r,e){let i=[],n=0,s=0;if(Px(r[0])&&typeof r[0][0]=="number"){for(n=0,s=r.length-1;n0&&(i=i.length===1?[i[0]]:(0,Vg.union)(i[0],i.slice(1)))}else{let a=[];for(n=0,s=e.length;n0&&a.push(o)}a.length>0&&(i=a.length===1?a[0]:(0,Vg.union)(a[0],...a.slice(1)))}return i}offsetPoint(r){this.setDistance(r);let e=this.arcSegments*2,i=[],n=this.vertices,s=this.distance,a=0;e%2===0&&e++;for(let o=0;o{let i=r.attributes[e];if(i instanceof to){let n=i.clone();r.attributes[e]=n}})}static isPointInPolygon(r,e,i=!1){let n=r.x,s=r.y,a=!1,o=e.length;for(let l=0,c=o-1;ls!=d>s;i&&(f=h>=s!=d>=s),f&&n<(p-u)*(s-h)/(d-h)+u&&(a=!a)}return a}static caculateGeometryCenter(r){if(!r.hasAttribute("position"))return null;let e=r.getAttribute("position");if(e.count===0)return null;let i=new A,n=e.itemSize,s=e.array,a=[0,0,0];for(let o=0;o0&&i<0||n<0&&i>0)return!1;i=n}}return!0}static areLineSegmentsIntersecting(r,e){let{start:i,end:n}=r,{start:s,end:a}=e,o=s.clone().sub(i),l=n.clone().sub(i),c=a.clone().sub(i),u=o.cross(l).dot(c.cross(l)),h=i.clone().sub(s),p=a.clone().sub(s),d=n.clone().sub(s),f=h.cross(p).dot(d.cross(p));return u<0&&f<0}static getLineSegmentsIntersectingPoint(r,e){let{start:i,end:n}=r,{start:s,end:a}=e,o=dpe.subVectors(n,i).normalize(),l=fpe.subVectors(a,s).normalize();if(o.dot(l)===1)return null;let c=mpe.subVectors(s,i),u=o.clone().cross(l),h=c.clone().cross(l),p=c.clone().dot(u);if(p>=1e-5||p<=-1e-5)return null;let d=u.lengthSq();if(lr.areNumbersEqual(0,d))return;let f=h.clone().dot(u)/d,m=i.clone().add(o.multiplyScalar(f));return m.equals(i)||m.equals(n)?null:m}static isPointOnLineSegment(r,e,i=.001){let{start:n,end:s}=e,a=dpe.subVectors(n,s).length(),o=fpe.subVectors(r,n).length(),l=mpe.subVectors(r,s).length();return Math.abs(a-(o+l))<=i}static isPointOnLineSegments(r,e,i=.001){let n=!1;for(let s=0;s{i?e.add(s):(e.x+=s.x,e.y+=s.y)}),e.divideScalar(r.length);let n=!1;if(Wt.shouldRebasePositionOnRTC(e)){n=!0;for(let s=0;smB||Math.abs(r.y)>mB||r instanceof A&&Math.abs(r.z)>mB}static calculateSurfaceArea(r){let e=0,i=r.getAttribute("position"),n=r.index;if(n)for(let s=0;s2&&(a=e?s*2:s*2-2);let o=new n(a),l=0;for(let c=0;c0&&c{let f=r.geometry.attributes.position.array;return r.localToWorld(new A(f[3*p],f[3*p+1],f[3*p+2]))};r.updateWorldMatrix(!0,!1);let n=((c=r.geometry.getIndex())==null?void 0:c.array)||[],s=(u=n[e])!=null?u:e,a=(h=n[e+1])!=null?h:e+1,o=i(s),l=i(a);return[o,l]}static arePolygonsIntersect(r,e){if(r.length===0||e.length===0||(hpe.setFromPoints(r),ppe.setFromPoints(e),!hpe.intersectsBox(ppe)))return!1;for(let i=0;i1-s)return;let l=e.y-r.y,c=r.x-e.x,u=l*r.x+c*r.y,h=n.y-i.y,p=i.x-n.x,d=h*i.x+p*i.y,f=l*p-h*c;if(Math.abs(f){i.push([u.x,u.y])});let n;try{n=new wC(i).setArcSegments(2).offsetLine(e/2)}catch(u){return}if(!n||n.length===0)return;n=n[0];let s=[],a=[];for(let u=0;u{s.push(new le(h[0],h[1]))}),es.isClockWise(s)||s.reverse();else{let h=[];n[u].forEach(p=>{h.push(new le(p[0],p[1]))}),es.isClockWise(h)&&h.reverse(),a.push(h)}let o=es.triangulateShape(s,a),l=[];for(let u=0;us.push(...u));let c=new it().setFromPoints(s);return c.setIndex(l),c}static releaseGeometryManually(r){r.index=null,r.attributes={}}static getAdjacentNonRepeatPoints(r,e=1e-7){let i=[],n=r.length;for(let s=0;s(i.ObjectsBoxSection="ObjectsBoxSection",i.PickPlaneSection="PickPlaneSection",i.AxisPlaneSection="AxisPlaneSection",i))(zg||{});var Ks=class{static createGroundGrid(r,e,i){r=r||this.DEFAULT_WIDTH,e=e||this.DEFAULT_WIDTH_SEGS;let n=new Tx(r,e);i?n.position.set(i.x,i.y,i.z):n.position.y=0;let s=n.material;return Array.isArray(s)||(s.opacity=this.DEFAULT_MAT_PARAMS.opacity,s.transparent=this.DEFAULT_MAT_PARAMS.transparent),n.name=this.GROUND_GRID_NAME,n.layers.set(11),n.matrixAutoUpdate=!1,n.updateMatrix(),n}static createGrassGround(r,e,i,n,s){return ot(this,null,function*(){return e=e||this.DEFAULT_WIDTH,i=i||this.DEFAULT_HEIGHT,new Promise(a=>{new Es().load(r||"images/terrain/grass.jpg",l=>{l.wrapS=l.wrapT=gn,l.repeat.set(n||this.DEFAULT_WIDTH_SEGS/5,s||this.DEFAULT_HEIGHT_SETS/5),l.anisotropy=16,l.encoding=yr;let c=new io({map:l});c.side=en;let u=new Je(new ts(e,i),c);return u.rotation.x=-Math.PI/2,u.position.y=0,u.receiveShadow=!0,u.name=this.GRASS_GROUND_NAME,u.layers.set(11),u.matrixAutoUpdate=!1,u.updateMatrix(),a(u)})})})}};Ks.GROUND_GRID_NAME="GROUND_GRID",Ks.GRASS_GROUND_NAME="GRASS_GROUND",Ks.DEFAULT_WIDTH=1e3,Ks.DEFAULT_HEIGHT=1e3,Ks.DEFAULT_WIDTH_SEGS=100,Ks.DEFAULT_HEIGHT_SETS=100,Ks.DEFAULT_MAT_PARAMS={color:12829635,transparent:!0,opacity:.5,wireframeLinewidth:.5};var gpe={NavCube:{front:"Front",back:"Back",top:"Top",bottom:"Bottom",left:"Left",right:"Right"},ContextMenu:{viewFitAll:"View Fit All",hideAll:"Hide All",showAll:"Show All",xRayAll:"X-Ray",xRayNone:"X-Ray None",selectNone:"Select None",resetView:"Reset View",viewFitEntity:"View Fit",hideEntity:"Hide",hideOthers:"Hide Others",xRayEntity:"X-Ray",xRayOthers:"X-Ray Others",select:"Select",deselect:"Undo Select",showSectionPlane:"Show Section Plane",showSectionBox:"Show Section Box",showAxisSection:"Show Axis Section",hideSectionPlane:"Hide Section Plane",hideSectionBox:"Hide Section Box",hideAxisSection:"Hide Axis Section",undoSection:"Undo Section"},ProgressBar:{Loading:"Loading",Comparing:"Comparing"},Toolbar:{homeView:"Home",orthoView:"Ortho View",measurement:"Measure",distanceMeasurement:"Distance",areaMeasurement:"Area",angleMeasurement:"Angle",coordinateMeasurement:"Coordinate",clearMeasurement:"Clear",markup:"Markup",markupArrow:"Arrow",markupRect:"Rect",markupCloudRect:"CloudRect",markupPolyLine:"PolyLine",markupCloudLine:"CloudLine",markupEllipse:"Ellipse",markupCircle:"Circle",markupDot:"Dot",markupText:"Text",markupX:"X",markupStroke:"Stroke Style",markupLineWidth:"Line Width",markupLineWidth2:"Line Width 2",markupLineWidth5:"Line Width 5",markupLineWidth10:"Line Width 10",markupFontSize:"Font Size",markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:"Clear Markup",quitMarkup:"Quit markup",section:"Section",axisSection:"Axis Section",pickSectionPlane:"Pick Section Plane",sectionBox:"Section Box",bimTree:"BIM Tree",viewpoint:"Viewpoint",annotation:"Annotation",property:"Property",settings:"Settings",compared:"Compared",quitCompare:"Quit compare",fullscreen:"Full Screen",layers:"Layers",zoomToRectangle:"Zoom",screenshot:"Screenshot"},Tooltip:{measure:"Pick a point to continue, pressing ESC to exit",areaMeasurement:"Pick a point to continue, pressing ESC to exit, right click to finish",section:"Click to pick a section plane",boxSelect:"Box select an area"},PopPanel:{reset:"Reset"}},vpe={NavCube:{front:"\u524D",back:"\u540E",top:"\u4E0A",bottom:"\u4E0B",left:"\u5DE6",right:"\u53F3"},ContextMenu:{viewFitAll:"\u7F29\u653E\u89C6\u53E3\u5230\u6240\u6709\u6A21\u578B",hideAll:"\u5168\u90E8\u9690\u85CF",showAll:"\u5168\u90E8\u663E\u793A",xRayAll:"\u5168\u90E8\u5E94\u7528 X \u5149\u6A21\u5F0F",xRayNone:"\u6E05\u9664 X \u5149\u6A21\u5F0F",selectNone:"\u6E05\u7A7A\u9009\u62E9",resetView:"\u91CD\u7F6E\u89C6\u56FE",viewFitEntity:"\u7F29\u653E\u89C6\u53E3\u5230\u5B9E\u4F53",hideEntity:"\u9690\u85CF",hideOthers:"\u9690\u85CF\u5176\u4ED6 (\u9694\u79BB)",xRayEntity:"\u5E94\u7528 X \u5149\u6A21\u5F0F",xRayOthers:"\u5BF9\u5176\u4ED6\u5B9E\u4F53\u5E94\u7528 X \u5149\u6A21\u5F0F",select:"\u9009\u62E9",deselect:"\u53D6\u6D88\u9009\u62E9",showSectionPlane:"\u663E\u793A\u5256\u5207\u9762",showSectionBox:"\u663E\u793A\u5256\u5207\u76D2",showAxisSection:"\u663E\u793A\u8F74\u5411\u5256\u5207",hideSectionPlane:"\u9690\u85CF\u5256\u5207\u9762",hideSectionBox:"\u9690\u85CF\u5256\u5207\u76D2",hideAxisSection:"\u9690\u85CF\u8F74\u5411\u5256\u5207",undoSection:"\u53D6\u6D88\u5256\u5207"},ProgressBar:{Loading:"\u6B63\u5728\u52A0\u8F7D",Comparing:"\u6B63\u5728\u5BF9\u6BD4"},Toolbar:{homeView:"\u4E3B\u89C6\u56FE",orthoView:"\u6B63\u4EA4\u89C6\u56FE",measurement:"\u6D4B\u91CF",distanceMeasurement:"\u8DDD\u79BB\u6D4B\u91CF",areaMeasurement:"\u9762\u79EF\u6D4B\u91CF",angleMeasurement:"\u89D2\u5EA6\u6D4B\u91CF",coordinateMeasurement:"\u5750\u6807\u6D4B\u91CF",clearMeasurement:"\u6E05\u9664\u6D4B\u91CF",markup:"\u6279\u6CE8",markupArrow:"\u7BAD\u5934",markupRect:"\u77E9\u5F62\u6846",markupCloudRect:"\u4E91\u7EBF\u6846",markupPolyLine:"\u591A\u6BB5\u7EBF",markupCloudLine:"\u4E91\u7EBF",markupEllipse:"\u692D\u5706",markupCircle:"\u5706",markupDot:"\u70B9",markupText:"\u6587\u5B57",markupX:"\u53C9\u53F7",markupStroke:"\u753B\u7B14\u989C\u8272",markupLineWidth:"\u7EBF\u5BBD",markupLineWidth2:"\u7EBF\u5BBD 2",markupLineWidth5:"\u7EBF\u5BBD 5",markupLineWidth10:"\u7EBF\u5BBD 10",markupFontSize:"\u5B57\u53F7",markupFontSize14:"14",markupFontSize18:"18",markupFontSize24:"24",clearMarkup:"\u6E05\u9664\u6279\u6CE8",quitMarkup:"\u9000\u51FA\u6279\u6CE8",section:"\u5256\u5207",axisSection:"\u8F74\u5411\u5256\u5207",pickSectionPlane:"\u9762\u5256\u5207",sectionBox:"\u5256\u5207\u76D2",bimTree:"BIM\u6811",viewpoint:"\u89C6\u70B9",annotation:"\u6279\u6CE8",property:"\u5C5E\u6027",settings:"\u8BBE\u7F6E",compared:"\u56FE\u7EB8\u5BF9\u6BD4",quitCompare:"\u9000\u51FA\u56FE\u7EB8\u5BF9\u6BD4",fullscreen:"\u5168\u5C4F",layers:"\u56FE\u5C42",zoomToRectangle:"\u6846\u9009\u653E\u5927",screenshot:"\u622A\u5C4F"},Tooltip:{measure:"\u70B9\u51FB\u7EE7\u7EED\u6D4B\u91CF, ESC \u53D6\u6D88\u6D4B\u91CF",areaMeasurement:"\u70B9\u51FB\u7EE7\u7EED\u6D4B\u91CF, ESC \u53D6\u6D88\u6D4B\u91CF\uFF0C\u53F3\u952E\u5B8C\u6210\u6D4B\u91CF",section:"\u70B9\u51FB\u786E\u5B9A\u5256\u5207\u9762",boxSelect:"\u6846\u9009\u4E00\u4E2A\u533A\u57DF"},PopPanel:{reset:"\u91CD\u7F6E"}};var Cs=class{static materialEquals(r,e){if(r===e)return!0;if(r.type!==e.type)return!1;if(r instanceof Gr&&e instanceof Gr){let i=r,n=e;return r.alphaTest===e.alphaTest&&r.opacity===e.opacity&&r.side===e.side&&r.visible===e.visible&&r.name===e.name&&r.transparent===e.transparent&&this.colorEquals(i.color,n.color)&&this.colorEquals(i.emissive,n.emissive)&&i.roughness===n.roughness&&i.metalness===n.metalness&&i.alphaMap===n.alphaMap&&i.uniforms===n.uniforms&&i.defines===n.defines&&i.vertexShader===n.vertexShader&&i.fragmentShader===n.fragmentShader&&i.clippingPlanes===n.clippingPlanes&&i.map===n.map&&i.clipIntersection===n.clipIntersection}return!1}static materialsEquals(r,e){if(r===e)return!0;if(Array.isArray(r)&&Array.isArray(e)&&r.length===e.length){for(let i=0;i0){let n=[];return i.forEach(s=>{n.push(this.clonedHighlightMaterial(s,e))}),n}else{if(i instanceof Gr)return this.clonedHighlightMaterial(i,e);console.warn(`[MaterialUtils] Invalid material: ${i}`)}}static clonedHighlightMaterial(r,e={}){var o;let{depthTest:i=void 0,highlightColor:n=new Ve(583902),opacity:s=.7}=e,a=r.clone();return a instanceof Gu||a instanceof Ts?(a.emissive.set(n),a.color.set(n)):a instanceof or||a instanceof io||a instanceof Tr||a instanceof Rp?a.color.set(n):a instanceof Yt?(o=a.uniforms.u_color)==null||o.value.set(n):a instanceof Tg?a.color.set(n):console.warn("[MaterialUtils] Unsupported Material:",a.type),a.opacity=s,a.transparent=!0,i!==void 0&&(a.depthTest=!1,a.side=wi),a}static cloneMaterial(r){if(!r)return r;if(Array.isArray(r)){let e=[];return r.forEach(i=>{e.push(i.clone())}),e}return r.clone()}static getMaterialColor(r){let e=new Ve(16777215);return r instanceof Vn||r instanceof Tr||r instanceof or?e=r.color:r instanceof Yt&&r.uniforms.u_color&&(e=r.uniforms.u_color.value),e}static setMaterialColor(r,e){r instanceof Vn||r instanceof Tr||r instanceof or?r.color=e:r instanceof Yt&&r.uniforms.u_color&&(r.uniforms.u_color.value=e)}static cloneMaterials(r){let e=new Map,i=n=>{let s;return Array.isArray(n)?(s=[],n.forEach(a=>{if(e.has(a))s.push(e.get(a));else{let o=a.clone();e.set(a,o),s.push(o)}})):n&&(e.has(n)?s=e.get(n):(s=n.clone(),e.set(n,s))),s};r.traverse(n=>{n.material&&(n.material=i(n.material))})}};function qo(t,r=!1){let e=t[0].index!==null,i=new Set(Object.keys(t[0].attributes)),n=new Set(Object.keys(t[0].morphAttributes)),s={},a={},o=t[0].morphTargetsRelative,l=new it,c=0;for(let u=0;ut in r?Sc(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Zi=(r,t)=>{for(var e in t||(t={}))Ec.call(t,e)&&Eo(r,e,t[e]);if(Ao)for(var e of Ao(t))Cc.call(t,e)&&Eo(r,e,t[e]);return r},Co=(r,t)=>Tc(r,Ac(t));var ro="149";var Pc=0,Po=1,Rc=2;var Wa=1,Lc=2,Ni=3,Ue=0,he=1,We=2;var pn=0,ri=1,Ro=2,Lo=3,Io=4,Ic=5,ni=100,Dc=101,Nc=102,Do=103,No=104,Fc=200,zc=201,Oc=202,Bc=203,qa=204,Xa=205,Uc=206,kc=207,Vc=208,Gc=209,Hc=210,Wc=0,qc=1,Xc=2,Er=3,Yc=4,Zc=5,Jc=6,$c=7,Ya=0,Kc=1,jc=2,nn=0,Qc=1,tl=2,el=3,nl=4,il=5,Za=300,ci=301,li=302,Cr=303,Pr=304,Ls=306,Rr=1e3,Oe=1001,Lr=1002,ce=1003,Fo=1004;var Zs=1005;var Re=1006,sl=1007;var Oi=1008;var Dn=1009,rl=1010,ol=1011,Ja=1012,al=1013,Pn=1014,Rn=1015,Bi=1016,cl=1017,ll=1018,oi=1020,hl=1021,Be=1023,ul=1024,fl=1025,Ln=1026,hi=1027,dl=1028,pl=1029,ml=1030,gl=1031,xl=1033,Js=33776,$s=33777,Ks=33778,js=33779,zo=35840,Oo=35841,Bo=35842,Uo=35843,_l=36196,ko=37492,Vo=37496,Go=37808,Ho=37809,Wo=37810,qo=37811,Xo=37812,Yo=37813,Zo=37814,Jo=37815,$o=37816,Ko=37817,jo=37818,Qo=37819,ta=37820,ea=37821,Qs=36492,yl=36283,na=36284,ia=36285,sa=36286;var xs=2300,_s=2301,tr=2302,ra=2400,oa=2401,aa=2402;var Nn=3e3,Ot=3001,vl=3200,Ml=3201,bl=0,wl=1;var Ge="srgb",Ui="srgb-linear";var er=7680;var Sl=519,ca=35044;var la="300 es",Ir=1035,mn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let i=this._listeners[t];if(i!==void 0){let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let i=n.slice(0);for(let s=0,a=i.length;s>8&255]+ne[r>>16&255]+ne[r>>24&255]+"-"+ne[t&255]+ne[t>>8&255]+"-"+ne[t>>16&15|64]+ne[t>>24&255]+"-"+ne[e&63|128]+ne[e>>8&255]+"-"+ne[e>>16&255]+ne[e>>24&255]+ne[n&255]+ne[n>>8&255]+ne[n>>16&255]+ne[n>>24&255]).toLowerCase()}function de(r,t,e){return Math.max(t,Math.min(e,r))}function Tl(r,t){return(r%t+t)%t}function ir(r,t,e){return(1-e)*r+e*t}function ua(r){return(r&r-1)===0&&r!==0}function Dr(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function Ji(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function Me(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var At=class{constructor(t=0,e=0){At.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,a=this.y-t.y;return this.x=s*n-a*i+t.x,this.y=s*i+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},le=class{constructor(){le.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,s,a,o,c,l){let h=this.elements;return h[0]=t,h[1]=i,h[2]=o,h[3]=e,h[4]=s,h[5]=c,h[6]=n,h[7]=a,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[3],c=n[6],l=n[1],h=n[4],f=n[7],u=n[2],m=n[5],x=n[8],p=i[0],d=i[3],g=i[6],M=i[1],_=i[4],v=i[7],b=i[2],A=i[5],C=i[8];return s[0]=a*p+o*M+c*b,s[3]=a*d+o*_+c*A,s[6]=a*g+o*v+c*C,s[1]=l*p+h*M+f*b,s[4]=l*d+h*_+f*A,s[7]=l*g+h*v+f*C,s[2]=u*p+m*M+x*b,s[5]=u*d+m*_+x*A,s[8]=u*g+m*v+x*C,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8];return e*a*h-e*o*l-n*s*h+n*o*c+i*s*l-i*a*c}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=h*a-o*l,u=o*c-h*s,m=l*s-a*c,x=e*f+n*u+i*m;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/x;return t[0]=f*p,t[1]=(i*l-h*n)*p,t[2]=(o*n-i*a)*p,t[3]=u*p,t[4]=(h*e-i*c)*p,t[5]=(i*s-o*e)*p,t[6]=m*p,t[7]=(n*c-l*e)*p,t[8]=(a*e-n*s)*p,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,a,o){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*a+l*o)+a+t,-i*l,i*c,-i*(-l*a+c*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(sr.makeScale(t,e)),this}rotate(t){return this.premultiply(sr.makeRotation(-t)),this}translate(t,e){return this.premultiply(sr.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}},sr=new le;function $a(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function ys(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function In(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function gs(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var rr={[Ge]:{[Ui]:In},[Ui]:{[Ge]:gs}},oe={legacyMode:!0,get workingColorSpace(){return Ui},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,t,e){if(this.legacyMode||t===e||!t||!e)return r;if(rr[t]&&rr[t][e]!==void 0){let n=rr[t][e];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,t){return this.convert(r,this.workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this.workingColorSpace)}},Ka={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},qt={r:0,g:0,b:0},Ne={h:0,s:0,l:0},$i={h:0,s:0,l:0};function or(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}function Ki(r,t){return t.r=r.r,t.g=r.g,t.b=r.b,t}var Bt=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&n===void 0?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Ge){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,oe.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=oe.workingColorSpace){return this.r=t,this.g=e,this.b=n,oe.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=oe.workingColorSpace){if(t=Tl(t,1),e=de(e,0,1),n=de(n,0,1),e===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+e):n+e-n*e,a=2*n-s;this.r=or(a,s,t+1/3),this.g=or(a,s,t),this.b=or(a,s,t-1/3)}return oe.toWorkingColorSpace(this,i),this}setStyle(t,e=Ge){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let s,a=i[1],o=i[2];switch(a){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,oe.toWorkingColorSpace(this,e),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,oe.toWorkingColorSpace(this,e),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(o)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,e)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let s=i[1],a=s.length;if(a===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,oe.toWorkingColorSpace(this,e),this;if(a===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,oe.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=Ge){let n=Ka[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=In(t.r),this.g=In(t.g),this.b=In(t.b),this}copyLinearToSRGB(t){return this.r=gs(t.r),this.g=gs(t.g),this.b=gs(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Ge){return oe.fromWorkingColorSpace(Ki(this,qt),t),de(qt.r*255,0,255)<<16^de(qt.g*255,0,255)<<8^de(qt.b*255,0,255)<<0}getHexString(t=Ge){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=oe.workingColorSpace){oe.fromWorkingColorSpace(Ki(this,qt),e);let n=qt.r,i=qt.g,s=qt.b,a=Math.max(n,i,s),o=Math.min(n,i,s),c,l,h=(o+a)/2;if(o===a)c=0,l=0;else{let f=a-o;switch(l=h<=.5?f/(a+o):f/(2-a-o),a){case n:c=(i-s)/f+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=ys("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==Za)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Rr:t.x=t.x-Math.floor(t.x);break;case Oe:t.x=t.x<0?0:1;break;case Lr:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Rr:t.y=t.y-Math.floor(t.y);break;case Oe:t.y=t.y<0?0:1;break;case Lr:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}};ue.DEFAULT_IMAGE=null;ue.DEFAULT_MAPPING=Za;ue.DEFAULT_ANISOTROPY=1;var Xt=class{constructor(t=0,e=0,n=0,i=1){Xt.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*i+a[12]*s,this.y=a[1]*e+a[5]*n+a[9]*i+a[13]*s,this.z=a[2]*e+a[6]*n+a[10]*i+a[14]*s,this.w=a[3]*e+a[7]*n+a[11]*i+a[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s,c=t.elements,l=c[0],h=c[4],f=c[8],u=c[1],m=c[5],x=c[9],p=c[2],d=c[6],g=c[10];if(Math.abs(h-u)<.01&&Math.abs(f-p)<.01&&Math.abs(x-d)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+p)<.1&&Math.abs(x+d)<.1&&Math.abs(l+m+g-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let _=(l+1)/2,v=(m+1)/2,b=(g+1)/2,A=(h+u)/4,C=(f+p)/4,y=(x+d)/4;return _>v&&_>b?_<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(_),i=A/n,s=C/n):v>b?v<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(v),n=A/i,s=y/i):b<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(b),n=C/s,i=y/s),this.set(n,i,s,e),this}let M=Math.sqrt((d-x)*(d-x)+(f-p)*(f-p)+(u-h)*(u-h));return Math.abs(M)<.001&&(M=1),this.x=(d-x)/M,this.y=(f-p)/M,this.z=(u-h)/M,this.w=Math.acos((l+m+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},rn=class extends mn{constructor(t=1,e=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Xt(0,0,t,e),this.scissorTest=!1,this.viewport=new Xt(0,0,t,e);let i={width:t,height:e,depth:1};this.texture=new ue(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Re,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new Ms(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},bs=class extends ue{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ce,this.minFilter=ce,this.wrapR=Oe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Nr=class extends ue{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ce,this.minFilter=ce,this.wrapR=Oe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var gn=class{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,s,a,o){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],u=s[a+0],m=s[a+1],x=s[a+2],p=s[a+3];if(o===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f;return}if(o===1){t[e+0]=u,t[e+1]=m,t[e+2]=x,t[e+3]=p;return}if(f!==p||c!==u||l!==m||h!==x){let d=1-o,g=c*u+l*m+h*x+f*p,M=g>=0?1:-1,_=1-g*g;if(_>Number.EPSILON){let b=Math.sqrt(_),A=Math.atan2(b,g*M);d=Math.sin(d*A)/b,o=Math.sin(o*A)/b}let v=o*M;if(c=c*d+u*v,l=l*d+m*v,h=h*d+x*v,f=f*d+p*v,d===1-o){let b=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=b,l*=b,h*=b,f*=b}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,i,s,a){let o=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[a],u=s[a+1],m=s[a+2],x=s[a+3];return t[e]=o*x+h*f+c*m-l*u,t[e+1]=c*x+h*u+l*f-o*m,t[e+2]=l*x+h*m+o*u-c*f,t[e+3]=h*x-o*f-c*u-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){let n=t._x,i=t._y,s=t._z,a=t._order,o=Math.cos,c=Math.sin,l=o(n/2),h=o(i/2),f=o(s/2),u=c(n/2),m=c(i/2),x=c(s/2);switch(a){case"XYZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"YXZ":this._x=u*h*f+l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"ZXY":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f-u*m*x;break;case"ZYX":this._x=u*h*f-l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f+u*m*x;break;case"YZX":this._x=u*h*f+l*m*x,this._y=l*m*f+u*h*x,this._z=l*h*x-u*m*f,this._w=l*h*f-u*m*x;break;case"XZY":this._x=u*h*f-l*m*x,this._y=l*m*f-u*h*x,this._z=l*h*x+u*m*f,this._w=l*h*f+u*m*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,n=e[0],i=e[4],s=e[8],a=e[1],o=e[5],c=e[9],l=e[2],h=e[6],f=e[10],u=n+o+f;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(a-i)*m}else if(n>o&&n>f){let m=2*Math.sqrt(1+n-o-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+a)/m,this._z=(s+l)/m}else if(o>f){let m=2*Math.sqrt(1+o-n-f);this._w=(s-l)/m,this._x=(i+a)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-o);this._w=(a-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(de(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let n=t._x,i=t._y,s=t._z,a=t._w,o=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+a*o+i*l-s*c,this._y=i*h+a*c+s*o-n*l,this._z=s*h+a*l+n*c-i*o,this._w=a*h-n*o-i*c-s*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,i=this._y,s=this._z,a=this._w,o=a*t._w+n*t._x+i*t._y+s*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=i,this._z=s,this;let c=1-o*o;if(c<=Number.EPSILON){let m=1-e;return this._w=m*a+e*this._w,this._x=m*n+e*this._x,this._y=m*i+e*this._y,this._z=m*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,o),f=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=a*f+this._w*u,this._x=n*f+this._x*u,this._y=i*f+this._y*u,this._z=s*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},R=class{constructor(t=0,e=0,n=0){R.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(fa.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(fa.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=t.elements,a=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*a,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*a,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*a,this}applyQuaternion(t){let e=this.x,n=this.y,i=this.z,s=t.x,a=t.y,o=t.z,c=t.w,l=c*e+a*i-o*n,h=c*n+o*e-s*i,f=c*i+s*n-a*e,u=-s*e-a*n-o*i;return this.x=l*c+u*-s+h*-o-f*-a,this.y=h*c+u*-a+f*-s-l*-o,this.z=f*c+u*-o+l*-a-h*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let n=t.x,i=t.y,s=t.z,a=e.x,o=e.y,c=e.z;return this.x=i*c-s*o,this.y=s*a-n*c,this.z=n*o-i*a,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return cr.copy(this).projectOnVector(t),this.sub(cr)}reflect(t){return this.sub(cr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(de(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){let i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},cr=new R,fa=new gn,fe=class{constructor(t=new R(1/0,1/0,1/0),e=new R(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.length;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,a=-1/0,o=-1/0;for(let c=0,l=t.count;cs&&(s=h),f>a&&(a=f),u>o&&(o=u)}return this.min.set(e,n,i),this.max.set(s,a,o),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Sn),Sn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ei),ji.subVectors(this.max,Ei),Hn.subVectors(t.a,Ei),Wn.subVectors(t.b,Ei),qn.subVectors(t.c,Ei),ln.subVectors(Wn,Hn),hn.subVectors(qn,Wn),Tn.subVectors(Hn,qn);let e=[0,-ln.z,ln.y,0,-hn.z,hn.y,0,-Tn.z,Tn.y,ln.z,0,-ln.x,hn.z,0,-hn.x,Tn.z,0,-Tn.x,-ln.y,ln.x,0,-hn.y,hn.x,0,-Tn.y,Tn.x,0];return!hr(e,Hn,Wn,qn,ji)||(e=[1,0,0,0,1,0,0,0,1],!hr(e,Hn,Wn,qn,ji))?!1:(Qi.crossVectors(ln,hn),e=[Qi.x,Qi.y,Qi.z],hr(e,Hn,Wn,qn,ji))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Sn.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=this.getSize(Sn).length()*.5,t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Ke[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ke[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ke[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ke[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ke[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ke[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ke[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ke[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ke),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Ke=[new R,new R,new R,new R,new R,new R,new R,new R],Sn=new R,lr=new fe,Hn=new R,Wn=new R,qn=new R,ln=new R,hn=new R,Tn=new R,Ei=new R,ji=new R,Qi=new R,An=new R;function hr(r,t,e,n,i){for(let s=0,a=r.length-3;s<=a;s+=3){An.fromArray(r,s);let o=i.x*Math.abs(An.x)+i.y*Math.abs(An.y)+i.z*Math.abs(An.z),c=t.dot(An),l=e.dot(An),h=n.dot(An);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>o)return!1}return!0}var El=new fe,Ci=new R,ur=new R,Fn=class{constructor(t=new R,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):El.setFromPoints(t).getCenter(n);let i=0;for(let s=0,a=t.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;Ci.subVectors(t,this.center);let e=Ci.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(Ci,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(ur.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Ci.copy(t.center).add(ur)),this.expandByPoint(Ci.copy(t.center).sub(ur))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},je=new R,fr=new R,ts=new R,un=new R,dr=new R,es=new R,pr=new R,Fr=class{constructor(t=new R,e=new R(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,je)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=je.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(je.copy(this.direction).multiplyScalar(e).add(this.origin),je.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){fr.copy(t).add(e).multiplyScalar(.5),ts.copy(e).sub(t).normalize(),un.copy(this.origin).sub(fr);let s=t.distanceTo(e)*.5,a=-this.direction.dot(ts),o=un.dot(this.direction),c=-un.dot(ts),l=un.lengthSq(),h=Math.abs(1-a*a),f,u,m,x;if(h>0)if(f=a*c-o,u=a*o-c,x=s*h,f>=0)if(u>=-x)if(u<=x){let p=1/h;f*=p,u*=p,m=f*(f+a*u+2*o)+u*(a*f+u+2*c)+l}else u=s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u=-s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;else u<=-x?(f=Math.max(0,-(-a*s+o)),u=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l):u<=x?(f=0,u=Math.min(Math.max(-s,-c),s),m=u*(u+2*c)+l):(f=Math.max(0,-(a*s+o)),u=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l);else u=a>0?-s:s,f=Math.max(0,-(a*u+o)),m=-f*f+u*(u+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(ts).multiplyScalar(u).add(fr),m}intersectSphere(t,e){je.subVectors(t.center,this.origin);let n=je.dot(this.direction),i=je.dot(je)-n*n,s=t.radius*t.radius;if(i>s)return null;let a=Math.sqrt(s-i),o=n-a,c=n+a;return o<0&&c<0?null:o<0?this.at(c,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,a,o,c,l=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),h>=0?(s=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(s=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),n>a||s>i||((s>n||isNaN(n))&&(n=s),(a=0?(o=(t.min.z-u.z)*f,c=(t.max.z-u.z)*f):(o=(t.max.z-u.z)*f,c=(t.min.z-u.z)*f),n>c||o>i)||((o>n||n!==n)&&(n=o),(c=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,je)!==null}intersectTriangle(t,e,n,i,s){dr.subVectors(e,t),es.subVectors(n,t),pr.crossVectors(dr,es);let a=this.direction.dot(pr),o;if(a>0){if(i)return null;o=1}else if(a<0)o=-1,a=-a;else return null;un.subVectors(this.origin,t);let c=o*this.direction.dot(es.crossVectors(un,es));if(c<0)return null;let l=o*this.direction.dot(dr.cross(un));if(l<0||c+l>a)return null;let h=-o*un.dot(pr);return h<0?null:this.at(h/a,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},zt=class{constructor(){zt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,s,a,o,c,l,h,f,u,m,x,p,d){let g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=s,g[5]=a,g[9]=o,g[13]=c,g[2]=l,g[6]=h,g[10]=f,g[14]=u,g[3]=m,g[7]=x,g[11]=p,g[15]=d,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new zt().fromArray(this.elements)}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,n=t.elements,i=1/Xn.setFromMatrixColumn(t,0).length(),s=1/Xn.setFromMatrixColumn(t,1).length(),a=1/Xn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,i=t.y,s=t.z,a=Math.cos(n),o=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(t.order==="XYZ"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=-c*f,e[8]=l,e[1]=m+x*l,e[5]=u-p*l,e[9]=-o*c,e[2]=p-u*l,e[6]=x+m*l,e[10]=a*c}else if(t.order==="YXZ"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u+p*o,e[4]=x*o-m,e[8]=a*l,e[1]=a*f,e[5]=a*h,e[9]=-o,e[2]=m*o-x,e[6]=p+u*o,e[10]=a*c}else if(t.order==="ZXY"){let u=c*h,m=c*f,x=l*h,p=l*f;e[0]=u-p*o,e[4]=-a*f,e[8]=x+m*o,e[1]=m+x*o,e[5]=a*h,e[9]=p-u*o,e[2]=-a*l,e[6]=o,e[10]=a*c}else if(t.order==="ZYX"){let u=a*h,m=a*f,x=o*h,p=o*f;e[0]=c*h,e[4]=x*l-m,e[8]=u*l+p,e[1]=c*f,e[5]=p*l+u,e[9]=m*l-x,e[2]=-l,e[6]=o*c,e[10]=a*c}else if(t.order==="YZX"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=p-u*f,e[8]=x*f+m,e[1]=f,e[5]=a*h,e[9]=-o*h,e[2]=-l*h,e[6]=m*f+x,e[10]=u-p*f}else if(t.order==="XZY"){let u=a*c,m=a*l,x=o*c,p=o*l;e[0]=c*h,e[4]=-f,e[8]=l*h,e[1]=u*f+p,e[5]=a*h,e[9]=m*f-x,e[2]=x*f-m,e[6]=o*h,e[10]=p*f+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Cl,t,Pl)}lookAt(t,e,n){let i=this.elements;return be.subVectors(t,e),be.lengthSq()===0&&(be.z=1),be.normalize(),fn.crossVectors(n,be),fn.lengthSq()===0&&(Math.abs(n.z)===1?be.x+=1e-4:be.z+=1e-4,be.normalize(),fn.crossVectors(n,be)),fn.normalize(),ns.crossVectors(be,fn),i[0]=fn.x,i[4]=ns.x,i[8]=be.x,i[1]=fn.y,i[5]=ns.y,i[9]=be.y,i[2]=fn.z,i[6]=ns.z,i[10]=be.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,a=n[0],o=n[4],c=n[8],l=n[12],h=n[1],f=n[5],u=n[9],m=n[13],x=n[2],p=n[6],d=n[10],g=n[14],M=n[3],_=n[7],v=n[11],b=n[15],A=i[0],C=i[4],y=i[8],S=i[12],P=i[1],O=i[5],B=i[9],D=i[13],I=i[2],k=i[6],Y=i[10],Z=i[14],H=i[3],$=i[7],J=i[11],dt=i[15];return s[0]=a*A+o*P+c*I+l*H,s[4]=a*C+o*O+c*k+l*$,s[8]=a*y+o*B+c*Y+l*J,s[12]=a*S+o*D+c*Z+l*dt,s[1]=h*A+f*P+u*I+m*H,s[5]=h*C+f*O+u*k+m*$,s[9]=h*y+f*B+u*Y+m*J,s[13]=h*S+f*D+u*Z+m*dt,s[2]=x*A+p*P+d*I+g*H,s[6]=x*C+p*O+d*k+g*$,s[10]=x*y+p*B+d*Y+g*J,s[14]=x*S+p*D+d*Z+g*dt,s[3]=M*A+_*P+v*I+b*H,s[7]=M*C+_*O+v*k+b*$,s[11]=M*y+_*B+v*Y+b*J,s[15]=M*S+_*D+v*Z+b*dt,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],a=t[1],o=t[5],c=t[9],l=t[13],h=t[2],f=t[6],u=t[10],m=t[14],x=t[3],p=t[7],d=t[11],g=t[15];return x*(+s*c*f-i*l*f-s*o*u+n*l*u+i*o*m-n*c*m)+p*(+e*c*m-e*l*u+s*a*u-i*a*m+i*l*h-s*c*h)+d*(+e*l*f-e*o*m-s*a*f+n*a*m+s*o*h-n*l*h)+g*(-i*o*h-e*c*f+e*o*u+i*a*f-n*a*u+n*c*h)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){let i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],a=t[4],o=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],m=t[11],x=t[12],p=t[13],d=t[14],g=t[15],M=f*d*l-p*u*l+p*c*m-o*d*m-f*c*g+o*u*g,_=x*u*l-h*d*l-x*c*m+a*d*m+h*c*g-a*u*g,v=h*p*l-x*f*l+x*o*m-a*p*m-h*o*g+a*f*g,b=x*f*c-h*p*c-x*o*u+a*p*u+h*o*d-a*f*d,A=e*M+n*_+i*v+s*b;if(A===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/A;return t[0]=M*C,t[1]=(p*u*s-f*d*s-p*i*m+n*d*m+f*i*g-n*u*g)*C,t[2]=(o*d*s-p*c*s+p*i*l-n*d*l-o*i*g+n*c*g)*C,t[3]=(f*c*s-o*u*s-f*i*l+n*u*l+o*i*m-n*c*m)*C,t[4]=_*C,t[5]=(h*d*s-x*u*s+x*i*m-e*d*m-h*i*g+e*u*g)*C,t[6]=(x*c*s-a*d*s-x*i*l+e*d*l+a*i*g-e*c*g)*C,t[7]=(a*u*s-h*c*s+h*i*l-e*u*l-a*i*m+e*c*m)*C,t[8]=v*C,t[9]=(x*f*s-h*p*s-x*n*m+e*p*m+h*n*g-e*f*g)*C,t[10]=(a*p*s-x*o*s+x*n*l-e*p*l-a*n*g+e*o*g)*C,t[11]=(h*o*s-a*f*s-h*n*l+e*f*l+a*n*m-e*o*m)*C,t[12]=b*C,t[13]=(h*p*i-x*f*i+x*n*u-e*p*u-h*n*d+e*f*d)*C,t[14]=(x*o*i-a*p*i-x*n*c+e*p*c+a*n*d-e*o*d)*C,t[15]=(a*f*i-h*o*i+h*n*c-e*f*c-a*n*u+e*o*u)*C,this}scale(t){let e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let n=Math.cos(e),i=Math.sin(e),s=1-n,a=t.x,o=t.y,c=t.z,l=s*a,h=s*o;return this.set(l*a+n,l*o-i*c,l*c+i*o,0,l*o+i*c,h*o+n,h*c-i*a,0,l*c-i*o,h*c+i*a,s*c*c+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,a){return this.set(1,n,s,0,t,1,a,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){let i=this.elements,s=e._x,a=e._y,o=e._z,c=e._w,l=s+s,h=a+a,f=o+o,u=s*l,m=s*h,x=s*f,p=a*h,d=a*f,g=o*f,M=c*l,_=c*h,v=c*f,b=n.x,A=n.y,C=n.z;return i[0]=(1-(p+g))*b,i[1]=(m+v)*b,i[2]=(x-_)*b,i[3]=0,i[4]=(m-v)*A,i[5]=(1-(u+g))*A,i[6]=(d+M)*A,i[7]=0,i[8]=(x+_)*C,i[9]=(d-M)*C,i[10]=(1-(u+p))*C,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){let i=this.elements,s=Xn.set(i[0],i[1],i[2]).length(),a=Xn.set(i[4],i[5],i[6]).length(),o=Xn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Fe.copy(this);let l=1/s,h=1/a,f=1/o;return Fe.elements[0]*=l,Fe.elements[1]*=l,Fe.elements[2]*=l,Fe.elements[4]*=h,Fe.elements[5]*=h,Fe.elements[6]*=h,Fe.elements[8]*=f,Fe.elements[9]*=f,Fe.elements[10]*=f,e.setFromRotationMatrix(Fe),n.x=s,n.y=a,n.z=o,this}makePerspective(t,e,n,i,s,a){let o=this.elements,c=2*s/(e-t),l=2*s/(n-i),h=(e+t)/(e-t),f=(n+i)/(n-i),u=-(a+s)/(a-s),m=-2*a*s/(a-s);return o[0]=c,o[4]=0,o[8]=h,o[12]=0,o[1]=0,o[5]=l,o[9]=f,o[13]=0,o[2]=0,o[6]=0,o[10]=u,o[14]=m,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,n,i,s,a){let o=this.elements,c=1/(e-t),l=1/(n-i),h=1/(a-s),f=(e+t)*c,u=(n+i)*l,m=(a+s)*h;return o[0]=2*c,o[4]=0,o[8]=0,o[12]=-f,o[1]=0,o[5]=2*l,o[9]=0,o[13]=-u,o[2]=0,o[6]=0,o[10]=-2*h,o[14]=-m,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},Xn=new R,Fe=new zt,Cl=new R(0,0,0),Pl=new R(1,1,1),fn=new R,ns=new R,be=new R,da=new zt,pa=new gn,ui=class{constructor(t=0,e=0,n=0,i=ui.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){let i=t.elements,s=i[0],a=i[4],o=i[8],c=i[1],l=i[5],h=i[9],f=i[2],u=i[6],m=i[10];switch(e){case"XYZ":this._y=Math.asin(de(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-de(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(de(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-de(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(de(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-de(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return da.makeRotationFromQuaternion(t),this.setFromRotationMatrix(da,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return pa.setFromEuler(this),this.setFromQuaternion(pa,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};ui.DEFAULT_ORDER="XYZ";var ws=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(a))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Pi,t,Ll),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Pi,Il,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function s(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(t)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let c=o.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){i.children=[];for(let o=0;o0){i.animations=[];for(let o=0;o0&&(n.geometries=o),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),x.length>0&&(n.nodes=x)}return n.object=i,n;function a(o){let c=[];for(let l in o){let h=o[l];delete h.metadata,c.push(h)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){ze.subVectors(i,e),tn.subVectors(n,e),mr.subVectors(t,e);let a=ze.dot(ze),o=ze.dot(tn),c=ze.dot(mr),l=tn.dot(tn),h=tn.dot(mr),f=a*l-o*o;if(f===0)return s.set(-2,-1,-1);let u=1/f,m=(l*c-o*h)*u,x=(a*h-o*c)*u;return s.set(1-m-x,x,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,en),en.x>=0&&en.y>=0&&en.x+en.y<=1}static getUV(t,e,n,i,s,a,o,c){return this.getBarycoord(t,e,n,i,en),c.set(0,0),c.addScaledVector(s,en.x),c.addScaledVector(a,en.y),c.addScaledVector(o,en.z),c}static isFrontFacing(t,e,n,i){return ze.subVectors(n,e),tn.subVectors(t,e),ze.cross(tn).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return ze.subVectors(this.c,this.b),tn.subVectors(this.a,this.b),ze.cross(tn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return ie.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return ie.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return ie.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return ie.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return ie.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,i=this.b,s=this.c,a,o;Zn.subVectors(i,n),Jn.subVectors(s,n),gr.subVectors(t,n);let c=Zn.dot(gr),l=Jn.dot(gr);if(c<=0&&l<=0)return e.copy(n);xr.subVectors(t,i);let h=Zn.dot(xr),f=Jn.dot(xr);if(h>=0&&f<=h)return e.copy(i);let u=c*f-h*l;if(u<=0&&c>=0&&h<=0)return a=c/(c-h),e.copy(n).addScaledVector(Zn,a);_r.subVectors(t,s);let m=Zn.dot(_r),x=Jn.dot(_r);if(x>=0&&m<=x)return e.copy(s);let p=m*l-c*x;if(p<=0&&l>=0&&x<=0)return o=l/(l-x),e.copy(n).addScaledVector(Jn,o);let d=h*x-m*f;if(d<=0&&f-h>=0&&m-x>=0)return va.subVectors(s,i),o=(f-h)/(f-h+(m-x)),e.copy(i).addScaledVector(va,o);let g=1/(d+p+u);return a=p*g,o=u*g,e.copy(n).addScaledVector(Zn,a).addScaledVector(Jn,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Nl=0,fi=class extends mn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Nl++}),this.uuid=Gi(),this.name="",this.type="Material",this.blending=ri,this.side=Ue,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=qa,this.blendDst=Xa,this.blendEquation=ni,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Er,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Sl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=er,this.stencilZFail=er,this.stencilZPass=er,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}let i=this[e];if(i===void 0){console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==ri&&(n.blending=this.blending),this.side!==Ue&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){let a=[];for(let o in s){let c=s[o];delete c.metadata,a.push(c)}return a}if(e){let s=i(t.textures),a=i(t.images);s.length>0&&(n.textures=s),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,n=null;if(e!==null){let i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}},Ss=class extends fi{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Bt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ya,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},Ht=new R,ss=new At,Yt=class{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=ca,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,u=l.length;f0&&(i[c]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let i=t.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(e))}let s=t.morphAttributes;for(let l in s){let h=[],f=s[l];for(let u=0,m=f.length;u0){let i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=i.length;se.far?null:{distance:l,point:ls.clone(),object:r}}function hs(r,t,e,n,i,s,a,o,c){r.getVertexPosition(a,Li),r.getVertexPosition(o,Ii),r.getVertexPosition(c,Di);let l=zl(r,t,e,n,Li,Ii,Di,br);if(l){i&&(os.fromBufferAttribute(i,a),as.fromBufferAttribute(i,o),cs.fromBufferAttribute(i,c),l.uv=ie.getUV(br,Li,Ii,Di,os,as,cs,new At)),s&&(os.fromBufferAttribute(s,a),as.fromBufferAttribute(s,o),cs.fromBufferAttribute(s,c),l.uv2=ie.getUV(br,Li,Ii,Di,os,as,cs,new At));let h={a,b:o,c,normal:new R,materialIndex:0};ie.getNormal(Li,Ii,Di,h.normal),l.face=h}return l}var zn=class extends ke{constructor(t=1,e=1,n=1,i=1,s=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:a};let o=this;i=Math.floor(i),s=Math.floor(s),a=Math.floor(a);let c=[],l=[],h=[],f=[],u=0,m=0;x("z","y","x",-1,-1,n,e,t,a,s,0),x("z","y","x",1,-1,n,e,-t,a,s,1),x("x","z","y",1,1,t,n,e,i,a,2),x("x","z","y",1,-1,t,n,-e,i,a,3),x("x","y","z",1,-1,t,e,n,i,s,4),x("x","y","z",-1,-1,t,e,-n,i,s,5),this.setIndex(c),this.setAttribute("position",new sn(l,3)),this.setAttribute("normal",new sn(h,3)),this.setAttribute("uv",new sn(f,2));function x(p,d,g,M,_,v,b,A,C,y,S){let P=v/C,O=b/y,B=v/2,D=b/2,I=A/2,k=C+1,Y=y+1,Z=0,H=0,$=new R;for(let J=0;J0?1:-1,h.push($.x,$.y,$.z),f.push(z/C),f.push(1-J/y),Z+=1}}for(let J=0;J0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},Es=class extends pe{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new zt,this.projectionMatrix=new zt,this.projectionMatrixInverse=new zt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},Se=class extends Es{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=ha*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(nr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return ha*2*Math.atan(Math.tan(nr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(nr*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i,a=this.view;if(this.view!==null&&this.view.enabled){let c=a.fullWidth,l=a.fullHeight;s+=a.offsetX*i/c,e-=a.offsetY*n/l,i*=a.width/c,n*=a.height/l}let o=this.filmOffset;o!==0&&(s+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},jn=-90,Qn=1,zr=class extends pe{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new Se(jn,Qn,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);let s=new Se(jn,Qn,t,e);s.layers=this.layers,s.up.set(0,1,0),s.lookAt(-1,0,0),this.add(s);let a=new Se(jn,Qn,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(0,1,0),this.add(a);let o=new Se(jn,Qn,t,e);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(0,-1,0),this.add(o);let c=new Se(jn,Qn,t,e);c.layers=this.layers,c.up.set(0,1,0),c.lookAt(0,0,1),this.add(c);let l=new Se(jn,Qn,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,a,o,c,l]=this.children,h=t.getRenderTarget(),f=t.toneMapping,u=t.xr.enabled;t.toneMapping=nn,t.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,o),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=m,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.toneMapping=f,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}},Cs=class extends ue{constructor(t,e,n,i,s,a,o,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:ci,super(t,e,n,i,s,a,o,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Or=class extends rn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Cs(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Re}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:\` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + \`,fragmentShader:\` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + \`},i=new zn(5,5,5),s=new on({name:"CubemapFromEquirect",uniforms:di(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:he,blending:pn});s.uniforms.tEquirect.value=e;let a=new qe(i,s),o=e.minFilter;return e.minFilter===Oi&&(e.minFilter=Re),new zr(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,i){let s=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,i);t.setRenderTarget(s)}},wr=new R,Vl=new R,Gl=new le,Te=class{constructor(t=new R(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){let i=wr.subVectors(n,e).cross(Vl.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){let n=t.delta(wr),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){let e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let n=e||Gl.getNormalMatrix(t),i=this.coplanarPoint(wr).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}},ti=new Fn,us=new R,Ps=class{constructor(t=new Te,e=new Te,n=new Te,i=new Te,s=new Te,a=new Te){this.planes=[t,e,n,i,s,a]}set(t,e,n,i,s,a){let o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(i),o[4].copy(s),o[5].copy(a),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){let e=this.planes,n=t.elements,i=n[0],s=n[1],a=n[2],o=n[3],c=n[4],l=n[5],h=n[6],f=n[7],u=n[8],m=n[9],x=n[10],p=n[11],d=n[12],g=n[13],M=n[14],_=n[15];return e[0].setComponents(o-i,f-c,p-u,_-d).normalize(),e[1].setComponents(o+i,f+c,p+u,_+d).normalize(),e[2].setComponents(o+s,f+l,p+m,_+g).normalize(),e[3].setComponents(o-s,f-l,p-m,_-g).normalize(),e[4].setComponents(o-a,f-h,p-x,_-M).normalize(),e[5].setComponents(o+a,f+h,p+x,_+M).normalize(),this}intersectsObject(t){let e=t.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),ti.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ti)}intersectsSprite(t){return ti.center.set(0,0,0),ti.radius=.7071067811865476,ti.applyMatrix4(t.matrixWorld),this.intersectsSphere(ti)}intersectsSphere(t){let e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,us.y=i.normal.y>0?t.max.y:t.min.y,us.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(us)<0)return!1}return!0}containsPoint(t){let e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function Qa(){let r=null,t=!1,e=null,n=null;function i(s,a){e(s,a),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function Hl(r,t){let e=t.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,u=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,u),l.onUploadCallback();let x;if(f instanceof Float32Array)x=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)x=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else x=5123;else if(f instanceof Int16Array)x=5122;else if(f instanceof Uint32Array)x=5125;else if(f instanceof Int32Array)x=5124;else if(f instanceof Int8Array)x=5120;else if(f instanceof Uint8Array)x=5121;else if(f instanceof Uint8ClampedArray)x=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:x,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let u=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,u):(e?r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function a(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function o(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif\`,Ql=\`#ifdef USE_IRIDESCENCE + const mat3 XYZ_TO_REC709 = mat3( + 3.2404542, -0.9692660, 0.0556434, + -1.5371385, 1.8760108, -0.2040259, + -0.4985314, 0.0415560, 1.0572252 + ); + vec3 Fresnel0ToIor( vec3 fresnel0 ) { + vec3 sqrtF0 = sqrt( fresnel0 ); + return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 ); + } + vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) ); + } + float IorToFresnel0( float transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor )); + } + vec3 evalSensitivity( float OPD, vec3 shift ) { + float phase = 2.0 * PI * OPD * 1.0e-9; + vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 ); + vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 ); + vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 ); + vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var ); + xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) ); + xyz /= 1.0685e-7; + vec3 rgb = XYZ_TO_REC709 * xyz; + return rgb; + } + vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) { + vec3 I; + float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) ); + float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) ); + float cosTheta2Sq = 1.0 - sinTheta2Sq; + if ( cosTheta2Sq < 0.0 ) { + return vec3( 1.0 ); + } + float cosTheta2 = sqrt( cosTheta2Sq ); + float R0 = IorToFresnel0( iridescenceIOR, outsideIOR ); + float R12 = F_Schlick( R0, 1.0, cosTheta1 ); + float R21 = R12; + float T121 = 1.0 - R12; + float phi12 = 0.0; + if ( iridescenceIOR < outsideIOR ) phi12 = PI; + float phi21 = PI - phi12; + vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR ); + vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 ); + vec3 phi23 = vec3( 0.0 ); + if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI; + if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI; + if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI; + float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2; + vec3 phi = vec3( phi21 ) + phi23; + vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 ); + vec3 r123 = sqrt( R123 ); + vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 ); + vec3 C0 = R12 + Rs; + I = C0; + vec3 Cm = Rs - T121; + for ( int m = 1; m <= 2; ++ m ) { + Cm *= r123; + vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi ); + I += Cm * Sm; + } + return max( I, vec3( 0.0 ) ); + } +#endif\`,th=\`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = dFdx( surf_pos.xyz ); + vec3 vSigmaY = dFdy( surf_pos.xyz ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif\`,eh=\`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif\`,nh=\`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif\`,ih=\`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif\`,sh=\`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif\`,rh=\`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif\`,oh=\`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif\`,ah=\`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif\`,ch=\`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif\`,lh=\`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}\`,hh=\`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_v0 0.339 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_v1 0.276 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_v4 0.046 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_v5 0.016 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_v6 0.0038 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif\`,uh=\`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif\`,fh=\`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif\`,dh=\`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif\`,ph=\`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif\`,mh=\`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif\`,gh="gl_FragColor = linearToOutputTexel( gl_FragColor );",xh=\`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}\`,_h=\`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif\`,yh=\`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif\`,vh=\`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif\`,Mh=\`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif\`,bh=\`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif\`,wh=\`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif\`,Sh=\`#ifdef USE_FOG + varying float vFogDepth; +#endif\`,Th=\`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif\`,Ah=\`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif\`,Eh=\`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}\`,Ch=\`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif\`,Ph=\`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif\`,Rh=\`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;\`,Lh=\`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert\`,Ih=\`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif\`,Dh=\`#if defined( USE_ENVMAP ) + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif\`,Nh=\`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;\`,Fh=\`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon\`,zh=\`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;\`,Oh=\`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong\`,Bh=\`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif\`,Uh=\`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + #ifdef USE_IRIDESCENCE + reflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness ); + #else + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}\`,kh=\` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometry.viewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif\`,Vh=\`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif\`,Gh=\`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif\`,Hh=\`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif\`,Wh=\`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif\`,qh=\`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif\`,Xh=\`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif\`,Yh=\`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif\`,Zh=\`#ifdef USE_MAP + uniform sampler2D map; +#endif\`,Jh=\`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif\`,$h=\`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif\`,Kh=\`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif\`,jh=\`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif\`,Qh=\`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif\`,tu=\`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif\`,eu=\`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif\`,nu=\`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif\`,iu=\`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;\`,su=\`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif\`,ru=\`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif\`,ou=\`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif\`,au=\`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif\`,cu=\`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif\`,lu=\`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif\`,hu=\`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif\`,uu=\`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif\`,fu=\`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif\`,du=\`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );\`,pu=\`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}\`,mu=\`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif\`,gu=\`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;\`,xu=\`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif\`,_u=\`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif\`,yu=\`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif\`,vu=\`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif\`,Mu=\`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif\`,bu=\`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif\`,wu=\`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif\`,Su=\`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}\`,Tu=\`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif\`,Au=\`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } +#endif\`,Eu=\`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif\`,Cu=\`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif\`,Pu=\`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif\`,Ru=\`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif\`,Lu=\`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif\`,Iu=\`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }\`,Du=\`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission ); +#endif\`,Nu=\`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef texture2DLodEXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif\`,Fu=\`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif\`,zu=\`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif\`,Ou=\`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif\`,Bu=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif\`,Uu=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif\`,ku=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif\`,Vu=\`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif\`,Gu=\`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}\`,Hu=\`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}\`,Wu=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}\`,qu=\`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}\`,Xu=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}\`,Yu=\`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}\`,Zu=\`#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}\`,Ju=\`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}\`,$u=\`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}\`,Ku=\`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main () { + #include + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}\`,ju=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}\`,Qu=\`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}\`,tf=\`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include +}\`,ef=\`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +void main() { + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}\`,nf=\`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}\`,sf=\`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}\`,rf=\`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}\`,of=\`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}\`,af=\`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}\`,cf=\`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}\`,lf=\`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}\`,hf=\`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}\`,uf=\`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}\`,ff=\`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}\`,df=\`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}\`,pf=\`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}\`,mf=\`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}\`,gf=\`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}\`,xf=\`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}\`,_f=\`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}\`,yf=\`#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}\`,vf=\`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}\`,Mf=\`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}\`,bf=\`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}\`,wt={alphamap_fragment:Wl,alphamap_pars_fragment:ql,alphatest_fragment:Xl,alphatest_pars_fragment:Yl,aomap_fragment:Zl,aomap_pars_fragment:Jl,begin_vertex:$l,beginnormal_vertex:Kl,bsdfs:jl,iridescence_fragment:Ql,bumpmap_pars_fragment:th,clipping_planes_fragment:eh,clipping_planes_pars_fragment:nh,clipping_planes_pars_vertex:ih,clipping_planes_vertex:sh,color_fragment:rh,color_pars_fragment:oh,color_pars_vertex:ah,color_vertex:ch,common:lh,cube_uv_reflection_fragment:hh,defaultnormal_vertex:uh,displacementmap_pars_vertex:fh,displacementmap_vertex:dh,emissivemap_fragment:ph,emissivemap_pars_fragment:mh,encodings_fragment:gh,encodings_pars_fragment:xh,envmap_fragment:_h,envmap_common_pars_fragment:yh,envmap_pars_fragment:vh,envmap_pars_vertex:Mh,envmap_physical_pars_fragment:Dh,envmap_vertex:bh,fog_vertex:wh,fog_pars_vertex:Sh,fog_fragment:Th,fog_pars_fragment:Ah,gradientmap_pars_fragment:Eh,lightmap_fragment:Ch,lightmap_pars_fragment:Ph,lights_lambert_fragment:Rh,lights_lambert_pars_fragment:Lh,lights_pars_begin:Ih,lights_toon_fragment:Nh,lights_toon_pars_fragment:Fh,lights_phong_fragment:zh,lights_phong_pars_fragment:Oh,lights_physical_fragment:Bh,lights_physical_pars_fragment:Uh,lights_fragment_begin:kh,lights_fragment_maps:Vh,lights_fragment_end:Gh,logdepthbuf_fragment:Hh,logdepthbuf_pars_fragment:Wh,logdepthbuf_pars_vertex:qh,logdepthbuf_vertex:Xh,map_fragment:Yh,map_pars_fragment:Zh,map_particle_fragment:Jh,map_particle_pars_fragment:$h,metalnessmap_fragment:Kh,metalnessmap_pars_fragment:jh,morphcolor_vertex:Qh,morphnormal_vertex:tu,morphtarget_pars_vertex:eu,morphtarget_vertex:nu,normal_fragment_begin:iu,normal_fragment_maps:su,normal_pars_fragment:ru,normal_pars_vertex:ou,normal_vertex:au,normalmap_pars_fragment:cu,clearcoat_normal_fragment_begin:lu,clearcoat_normal_fragment_maps:hu,clearcoat_pars_fragment:uu,iridescence_pars_fragment:fu,output_fragment:du,packing:pu,premultiplied_alpha_fragment:mu,project_vertex:gu,dithering_fragment:xu,dithering_pars_fragment:_u,roughnessmap_fragment:yu,roughnessmap_pars_fragment:vu,shadowmap_pars_fragment:Mu,shadowmap_pars_vertex:bu,shadowmap_vertex:wu,shadowmask_pars_fragment:Su,skinbase_vertex:Tu,skinning_pars_vertex:Au,skinning_vertex:Eu,skinnormal_vertex:Cu,specularmap_fragment:Pu,specularmap_pars_fragment:Ru,tonemapping_fragment:Lu,tonemapping_pars_fragment:Iu,transmission_fragment:Du,transmission_pars_fragment:Nu,uv_pars_fragment:Fu,uv_pars_vertex:zu,uv_vertex:Ou,uv2_pars_fragment:Bu,uv2_pars_vertex:Uu,uv2_vertex:ku,worldpos_vertex:Vu,background_vert:Gu,background_frag:Hu,backgroundCube_vert:Wu,backgroundCube_frag:qu,cube_vert:Xu,cube_frag:Yu,depth_vert:Zu,depth_frag:Ju,distanceRGBA_vert:$u,distanceRGBA_frag:Ku,equirect_vert:ju,equirect_frag:Qu,linedashed_vert:tf,linedashed_frag:ef,meshbasic_vert:nf,meshbasic_frag:sf,meshlambert_vert:rf,meshlambert_frag:of,meshmatcap_vert:af,meshmatcap_frag:cf,meshnormal_vert:lf,meshnormal_frag:hf,meshphong_vert:uf,meshphong_frag:ff,meshphysical_vert:df,meshphysical_frag:pf,meshtoon_vert:mf,meshtoon_frag:gf,points_vert:xf,points_frag:_f,shadow_vert:yf,shadow_frag:vf,sprite_vert:Mf,sprite_frag:bf},et={common:{diffuse:{value:new Bt(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new le},uv2Transform:{value:new le},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Bt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Bt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new le}},sprite:{diffuse:{value:new Bt(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new le}}},He={basic:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.fog]),vertexShader:wt.meshbasic_vert,fragmentShader:wt.meshbasic_frag},lambert:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Bt(0)}}]),vertexShader:wt.meshlambert_vert,fragmentShader:wt.meshlambert_frag},phong:{uniforms:ae([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Bt(0)},specular:{value:new Bt(1118481)},shininess:{value:30}}]),vertexShader:wt.meshphong_vert,fragmentShader:wt.meshphong_frag},standard:{uniforms:ae([et.common,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.roughnessmap,et.metalnessmap,et.fog,et.lights,{emissive:{value:new Bt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag},toon:{uniforms:ae([et.common,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.gradientmap,et.fog,et.lights,{emissive:{value:new Bt(0)}}]),vertexShader:wt.meshtoon_vert,fragmentShader:wt.meshtoon_frag},matcap:{uniforms:ae([et.common,et.bumpmap,et.normalmap,et.displacementmap,et.fog,{matcap:{value:null}}]),vertexShader:wt.meshmatcap_vert,fragmentShader:wt.meshmatcap_frag},points:{uniforms:ae([et.points,et.fog]),vertexShader:wt.points_vert,fragmentShader:wt.points_frag},dashed:{uniforms:ae([et.common,et.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:wt.linedashed_vert,fragmentShader:wt.linedashed_frag},depth:{uniforms:ae([et.common,et.displacementmap]),vertexShader:wt.depth_vert,fragmentShader:wt.depth_frag},normal:{uniforms:ae([et.common,et.bumpmap,et.normalmap,et.displacementmap,{opacity:{value:1}}]),vertexShader:wt.meshnormal_vert,fragmentShader:wt.meshnormal_frag},sprite:{uniforms:ae([et.sprite,et.fog]),vertexShader:wt.sprite_vert,fragmentShader:wt.sprite_frag},background:{uniforms:{uvTransform:{value:new le},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:wt.background_vert,fragmentShader:wt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:wt.backgroundCube_vert,fragmentShader:wt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:wt.cube_vert,fragmentShader:wt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:wt.equirect_vert,fragmentShader:wt.equirect_frag},distanceRGBA:{uniforms:ae([et.common,et.displacementmap,{referencePosition:{value:new R},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:wt.distanceRGBA_vert,fragmentShader:wt.distanceRGBA_frag},shadow:{uniforms:ae([et.lights,et.fog,{color:{value:new Bt(0)},opacity:{value:1}}]),vertexShader:wt.shadow_vert,fragmentShader:wt.shadow_frag}};He.physical={uniforms:ae([He.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new At(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Bt(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Bt(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Bt(1,1,1)},specularColorMap:{value:null}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag};var fs={r:0,b:0,g:0};function wf(r,t,e,n,i,s,a){let o=new Bt(0),c=s===!0?0:1,l,h,f=null,u=0,m=null;function x(d,g){let M=!1,_=g.isScene===!0?g.background:null;_&&_.isTexture&&(_=(g.backgroundBlurriness>0?e:t).get(_));let v=r.xr,b=v.getSession&&v.getSession();b&&b.environmentBlendMode==="additive"&&(_=null),_===null?p(o,c):_&&_.isColor&&(p(_,1),M=!0),(r.autoClear||M)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Ls)?(h===void 0&&(h=new qe(new zn(1,1,1),new on({name:"BackgroundCubeMaterial",uniforms:di(He.backgroundCube.uniforms),vertexShader:He.backgroundCube.vertexShader,fragmentShader:He.backgroundCube.fragmentShader,side:he,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(A,C,y){this.matrixWorld.copyPosition(y.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=g.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,h.material.toneMapped=_.encoding!==Ot,(f!==_||u!==_.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=_,u=_.version,m=r.toneMapping),h.layers.enableAll(),d.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(l===void 0&&(l=new qe(new ki(2,2),new on({name:"BackgroundMaterial",uniforms:di(He.background.uniforms),vertexShader:He.background.vertexShader,fragmentShader:He.background.fragmentShader,side:Ue,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=_,l.material.uniforms.backgroundIntensity.value=g.backgroundIntensity,l.material.toneMapped=_.encoding!==Ot,_.matrixAutoUpdate===!0&&_.updateMatrix(),l.material.uniforms.uvTransform.value.copy(_.matrix),(f!==_||u!==_.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=_,u=_.version,m=r.toneMapping),l.layers.enableAll(),d.unshift(l,l.geometry,l.material,0,0,null))}function p(d,g){d.getRGB(fs,ja(r)),n.buffers.color.setClear(fs.r,fs.g,fs.b,g,a)}return{getClearColor:function(){return o},setClearColor:function(d,g=1){o.set(d),c=g,p(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(d){c=d,p(o,c)},render:x}}function Sf(r,t,e,n){let i=r.getParameter(34921),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||s!==null,o={},c=d(null),l=c,h=!1;function f(I,k,Y,Z,H){let $=!1;if(a){let J=p(Z,Y,k);l!==J&&(l=J,m(l.object)),$=g(I,Z,Y,H),$&&M(I,Z,Y,H)}else{let J=k.wireframe===!0;(l.geometry!==Z.id||l.program!==Y.id||l.wireframe!==J)&&(l.geometry=Z.id,l.program=Y.id,l.wireframe=J,$=!0)}H!==null&&e.update(H,34963),($||h)&&(h=!1,y(I,k,Y,Z),H!==null&&r.bindBuffer(34963,e.get(H).buffer))}function u(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(I){return n.isWebGL2?r.bindVertexArray(I):s.bindVertexArrayOES(I)}function x(I){return n.isWebGL2?r.deleteVertexArray(I):s.deleteVertexArrayOES(I)}function p(I,k,Y){let Z=Y.wireframe===!0,H=o[I.id];H===void 0&&(H={},o[I.id]=H);let $=H[k.id];$===void 0&&($={},H[k.id]=$);let J=$[Z];return J===void 0&&(J=d(u()),$[Z]=J),J}function d(I){let k=[],Y=[],Z=[];for(let H=0;H=0){let nt=H[z],it=$[z];if(it===void 0&&(z==="instanceMatrix"&&I.instanceMatrix&&(it=I.instanceMatrix),z==="instanceColor"&&I.instanceColor&&(it=I.instanceColor)),nt===void 0||nt.attribute!==it||it&&nt.data!==it.data)return!0;J++}return l.attributesNum!==J||l.index!==Z}function M(I,k,Y,Z){let H={},$=k.attributes,J=0,dt=Y.getAttributes();for(let z in dt)if(dt[z].location>=0){let nt=$[z];nt===void 0&&(z==="instanceMatrix"&&I.instanceMatrix&&(nt=I.instanceMatrix),z==="instanceColor"&&I.instanceColor&&(nt=I.instanceColor));let it={};it.attribute=nt,nt&&nt.data&&(it.data=nt.data),H[z]=it,J++}l.attributes=H,l.attributesNum=J,l.index=Z}function _(){let I=l.newAttributes;for(let k=0,Y=I.length;k=0){let K=H[dt];if(K===void 0&&(dt==="instanceMatrix"&&I.instanceMatrix&&(K=I.instanceMatrix),dt==="instanceColor"&&I.instanceColor&&(K=I.instanceColor)),K!==void 0){let nt=K.normalized,it=K.itemSize,U=e.get(K);if(U===void 0)continue;let Mt=U.buffer,ht=U.type,ut=U.bytesPerElement;if(K.isInterleavedBufferAttribute){let at=K.data,Ft=at.stride,bt=K.offset;if(at.isInstancedInterleavedBuffer){for(let _t=0;_t0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";C="mediump"}return C==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let a=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext,o=e.precision!==void 0?e.precision:"highp",c=s(o);c!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",c,"instead."),o=c);let l=a||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,f=r.getParameter(34930),u=r.getParameter(35660),m=r.getParameter(3379),x=r.getParameter(34076),p=r.getParameter(34921),d=r.getParameter(36347),g=r.getParameter(36348),M=r.getParameter(36349),_=u>0,v=a||t.has("OES_texture_float"),b=_&&v,A=a?r.getParameter(36183):0;return{isWebGL2:a,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:o,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:x,maxAttributes:p,maxVertexUniforms:d,maxVaryings:g,maxFragmentUniforms:M,vertexTextures:_,floatFragmentTextures:v,floatVertexTextures:b,maxSamples:A}}function Ef(r){let t=this,e=null,n=0,i=!1,s=!1,a=new Te,o=new le,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let m=f.length!==0||u||n!==0||i;return i=u,n=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,u){e=h(f,u,0)},this.setState=function(f,u,m){let x=f.clippingPlanes,p=f.clipIntersection,d=f.clipShadows,g=r.get(f);if(!i||x===null||x.length===0||s&&!d)s?h(null):l();else{let M=s?0:n,_=M*4,v=g.clippingState||null;c.value=v,v=h(x,u,_,m);for(let b=0;b!==_;++b)v[b]=e[b];g.clippingState=v,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=M}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(f,u,m,x){let p=f!==null?f.length:0,d=null;if(p!==0){if(d=c.value,x!==!0||d===null){let g=m+p*4,M=u.matrixWorldInverse;o.getNormalMatrix(M),(d===null||d.length0){let l=new Or(c.height/2);return l.fromEquirectangularTexture(r,a),t.set(a,l),a.addEventListener("dispose",i),e(l.texture,a.mapping)}else return null}}return a}function i(a){let o=a.target;o.removeEventListener("dispose",i);let c=t.get(o);c!==void 0&&(t.delete(o),c.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}var Br=class extends Es{constructor(t=-1,e=1,n=1,i=-1,s=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=a,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-t,a=n+t,o=i+e,c=i-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,a=s+l*this.view.width,o-=h*this.view.offsetY,c=o-h*this.view.height}this.projectionMatrix.makeOrthographic(s,a,o,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},ii=4,ba=[.125,.215,.35,.446,.526,.582],Cn=20,Sr=new Br,wa=new Bt,Tr=null,En=(1+Math.sqrt(5))/2,ei=1/En,Sa=[new R(1,1,1),new R(-1,1,1),new R(1,1,-1),new R(-1,1,-1),new R(0,En,ei),new R(0,En,-ei),new R(ei,0,En),new R(-ei,0,En),new R(En,ei,0),new R(-En,ei,0)],Rs=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Tr=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ea(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Aa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?_:0,_,_),h.setRenderTarget(i),p&&h.render(x,o),h.render(t,o)}x.geometry.dispose(),x.material.dispose(),h.toneMapping=u,h.autoClear=f,t.background=d}_textureToCubeUV(t,e){let n=this._renderer,i=t.mapping===ci||t.mapping===li;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ea()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Aa());let s=i?this._cubemapMaterial:this._equirectMaterial,a=new qe(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=t;let c=this._cubeSize;ds(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(a,Sr)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;iCn&&console.warn(\`sigmaRadians, \${s}, is too large and will clip, as it requested \${d} samples when the maximum is set to \${Cn}\`);let g=[],M=0;for(let C=0;C_-ii?i-_+ii:0),A=4*(this._cubeSize-v);ds(e,b,A,3*v,2*v),c.setRenderTarget(e),c.render(f,Sr)}};function Pf(r){let t=[],e=[],n=[],i=r,s=r-ii+1+ba.length;for(let a=0;ar-ii?c=ba[a-r+ii-1]:a===0&&(c=0),n.push(c);let l=1/(o-2),h=-l,f=1+l,u=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,x=6,p=3,d=2,g=1,M=new Float32Array(p*x*m),_=new Float32Array(d*x*m),v=new Float32Array(g*x*m);for(let A=0;A2?0:-1,S=[C,y,0,C+2/3,y,0,C+2/3,y+1,0,C,y,0,C+2/3,y+1,0,C,y+1,0];M.set(S,p*x*A),_.set(u,d*x*A);let P=[A,A,A,A,A,A];v.set(P,g*x*A)}let b=new ke;b.setAttribute("position",new Yt(M,p)),b.setAttribute("uv",new Yt(_,d)),b.setAttribute("faceIndex",new Yt(v,g)),t.push(b),i>ii&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Ta(r,t,e){let n=new rn(r,t,e);return n.texture.mapping=Ls,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function ds(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function Rf(r,t,e){let n=new Float32Array(Cn),i=new R(0,1,0);return new on({name:"SphericalGaussianBlur",defines:{n:Cn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:\`\${r}.0\`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:oo(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + \`,blending:pn,depthTest:!1,depthWrite:!1})}function Aa(){return new on({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:oo(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + \`,blending:pn,depthTest:!1,depthWrite:!1})}function Ea(){return new on({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:oo(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + \`,blending:pn,depthTest:!1,depthWrite:!1})}function oo(){return\` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + \`}function Lf(r){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){let c=o.mapping,l=c===Cr||c===Pr,h=c===ci||c===li;if(l||h)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let f=t.get(o);return e===null&&(e=new Rs(r)),f=l?e.fromEquirectangular(o,f):e.fromCubemap(o,f),t.set(o,f),f.texture}else{if(t.has(o))return t.get(o).texture;{let f=o.image;if(l&&f&&f.height>0||h&&f&&i(f)){e===null&&(e=new Rs(r));let u=l?e.fromEquirectangular(o):e.fromCubemap(o);return t.set(o,u),o.addEventListener("dispose",s),u.texture}else return null}}}return o}function i(o){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(O=Math.ceil(P/t.maxTextureSize),P=t.maxTextureSize);let B=new Float32Array(P*O*4*p),D=new bs(B,P,O,p);D.type=Rn,D.needsUpdate=!0;let I=S*4;for(let Y=0;Y0)return r;let i=t*e,s=Ca[i];if(s===void 0&&(s=new Float32Array(i),Ca[i]=s),t!==0){n.toArray(s,0);for(let a=1,o=0;a!==t;++a)o+=e,r[a].toArray(s,o)}return s}function Zt(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} \${o}: \${e[a]}\`)}return n.join(\` +\`)}function Pd(r){switch(r){case Nn:return["Linear","( value )"];case Ot:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Fa(r,t,e){let n=r.getShaderParameter(t,35713),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let a=parseInt(s[1]);return e.toUpperCase()+\` + +\`+i+\` + +\`+Cd(r.getShaderSource(t),a)}else return i}function Rd(r,t){let e=Pd(t);return"vec4 "+r+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Ld(r,t){let e;switch(t){case Qc:e="Linear";break;case tl:e="Reinhard";break;case el:e="OptimizedCineon";break;case nl:e="ACESFilmic";break;case il:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Id(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Fi).join(\` +\`)}function Dd(r){let t=[];for(let e in r){let n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(\` +\`)}function Nd(r,t){let e={},n=r.getProgramParameter(t,35721);for(let i=0;i/gm;function Gr(r){return r.replace(Fd,zd)}function zd(r,t){let e=wt[t];if(e===void 0)throw new Error("Can not resolve #include <"+t+">");return Gr(e)}var Od=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function Ba(r){return r.replace(Od,Bd)}function Bd(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(d+=\` +\`),g=[m,x].filter(Fi).join(\` +\`),g.length>0&&(g+=\` +\`)):(d=[Ua(e),"#define SHADER_NAME "+e.shaderName,x,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",\` +\`].filter(Fi).join(\` +\`),g=[m,Ua(e),"#define SHADER_NAME "+e.shaderName,x,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+f:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==nn?"#define TONE_MAPPING":"",e.toneMapping!==nn?wt.tonemapping_pars_fragment:"",e.toneMapping!==nn?Ld("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",wt.encodings_pars_fragment,Rd("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",\` +\`].filter(Fi).join(\` +\`)),a=Gr(a),a=za(a,e),a=Oa(a,e),o=Gr(o),o=za(o,e),o=Oa(o,e),a=Ba(a),o=Ba(o),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(M=\`#version 300 es +\`,d=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(\` +\`)+\` +\`+d,g=["#define varying in",e.glslVersion===la?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===la?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(\` +\`)+\` +\`+g);let _=M+d+a,v=M+g+o,b=Na(i,35633,_),A=Na(i,35632,v);if(i.attachShader(p,b),i.attachShader(p,A),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let S=i.getProgramInfoLog(p).trim(),P=i.getShaderInfoLog(b).trim(),O=i.getShaderInfoLog(A).trim(),B=!0,D=!0;if(i.getProgramParameter(p,35714)===!1){B=!1;let I=Fa(i,b,"vertex"),k=Fa(i,A,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+\` + +Program Info Log: \`+S+\` +\`+I+\` +\`+k)}else S!==""?console.warn("THREE.WebGLProgram: Program Info Log:",S):(P===""||O==="")&&(D=!1);D&&(this.diagnostics={runnable:B,programLog:S,vertexShader:{log:P,prefix:d},fragmentShader:{log:O,prefix:g}})}i.deleteShader(b),i.deleteShader(A);let C;this.getUniforms=function(){return C===void 0&&(C=new ai(i,p)),C};let y;return this.getAttributes=function(){return y===void 0&&(y=Nd(i,p)),y},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=e.shaderName,this.id=Ed++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=b,this.fragmentShader=A,this}var qd=0,Hr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(i)===!1&&(a.add(i),i.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new Wr(t),e.set(t,n)),n}},Wr=class{constructor(t){this.id=qd++,this.code=t,this.usedTimes=0}};function Xd(r,t,e,n,i,s,a){let o=new ws,c=new Hr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,u=i.vertexTextures,m=i.precision,x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function p(y,S,P,O,B){let D=O.fog,I=B.geometry,k=y.isMeshStandardMaterial?O.environment:null,Y=(y.isMeshStandardMaterial?e:t).get(y.envMap||k),Z=Y&&Y.mapping===Ls?Y.image.height:null,H=x[y.type];y.precision!==null&&(m=i.getMaxPrecision(y.precision),m!==y.precision&&console.warn("THREE.WebGLProgram.getParameters:",y.precision,"not supported, using",m,"instead."));let $=I.morphAttributes.position||I.morphAttributes.normal||I.morphAttributes.color,J=$!==void 0?$.length:0,dt=0;I.morphAttributes.position!==void 0&&(dt=1),I.morphAttributes.normal!==void 0&&(dt=2),I.morphAttributes.color!==void 0&&(dt=3);let z,K,nt,it;if(H){let Ft=He[H];z=Ft.vertexShader,K=Ft.fragmentShader}else z=y.vertexShader,K=y.fragmentShader,c.update(y),nt=c.getVertexShaderID(y),it=c.getFragmentShaderID(y);let U=r.getRenderTarget(),Mt=y.alphaTest>0,ht=y.clearcoat>0,ut=y.iridescence>0;return{isWebGL2:h,shaderID:H,shaderName:y.type,vertexShader:z,fragmentShader:K,defines:y.defines,customVertexShaderID:nt,customFragmentShaderID:it,isRawShaderMaterial:y.isRawShaderMaterial===!0,glslVersion:y.glslVersion,precision:m,instancing:B.isInstancedMesh===!0,instancingColor:B.isInstancedMesh===!0&&B.instanceColor!==null,supportsVertexTextures:u,outputEncoding:U===null?r.outputEncoding:U.isXRRenderTarget===!0?U.texture.encoding:Nn,map:!!y.map,matcap:!!y.matcap,envMap:!!Y,envMapMode:Y&&Y.mapping,envMapCubeUVHeight:Z,lightMap:!!y.lightMap,aoMap:!!y.aoMap,emissiveMap:!!y.emissiveMap,bumpMap:!!y.bumpMap,normalMap:!!y.normalMap,objectSpaceNormalMap:y.normalMapType===wl,tangentSpaceNormalMap:y.normalMapType===bl,decodeVideoTexture:!!y.map&&y.map.isVideoTexture===!0&&y.map.encoding===Ot,clearcoat:ht,clearcoatMap:ht&&!!y.clearcoatMap,clearcoatRoughnessMap:ht&&!!y.clearcoatRoughnessMap,clearcoatNormalMap:ht&&!!y.clearcoatNormalMap,iridescence:ut,iridescenceMap:ut&&!!y.iridescenceMap,iridescenceThicknessMap:ut&&!!y.iridescenceThicknessMap,displacementMap:!!y.displacementMap,roughnessMap:!!y.roughnessMap,metalnessMap:!!y.metalnessMap,specularMap:!!y.specularMap,specularIntensityMap:!!y.specularIntensityMap,specularColorMap:!!y.specularColorMap,opaque:y.transparent===!1&&y.blending===ri,alphaMap:!!y.alphaMap,alphaTest:Mt,gradientMap:!!y.gradientMap,sheen:y.sheen>0,sheenColorMap:!!y.sheenColorMap,sheenRoughnessMap:!!y.sheenRoughnessMap,transmission:y.transmission>0,transmissionMap:!!y.transmissionMap,thicknessMap:!!y.thicknessMap,combine:y.combine,vertexTangents:!!y.normalMap&&!!I.attributes.tangent,vertexColors:y.vertexColors,vertexAlphas:y.vertexColors===!0&&!!I.attributes.color&&I.attributes.color.itemSize===4,vertexUvs:!!y.map||!!y.bumpMap||!!y.normalMap||!!y.specularMap||!!y.alphaMap||!!y.emissiveMap||!!y.roughnessMap||!!y.metalnessMap||!!y.clearcoatMap||!!y.clearcoatRoughnessMap||!!y.clearcoatNormalMap||!!y.iridescenceMap||!!y.iridescenceThicknessMap||!!y.displacementMap||!!y.transmissionMap||!!y.thicknessMap||!!y.specularIntensityMap||!!y.specularColorMap||!!y.sheenColorMap||!!y.sheenRoughnessMap,uvsVertexOnly:!(y.map||y.bumpMap||y.normalMap||y.specularMap||y.alphaMap||y.emissiveMap||y.roughnessMap||y.metalnessMap||y.clearcoatNormalMap||y.iridescenceMap||y.iridescenceThicknessMap||y.transmission>0||y.transmissionMap||y.thicknessMap||y.specularIntensityMap||y.specularColorMap||y.sheen>0||y.sheenColorMap||y.sheenRoughnessMap)&&!!y.displacementMap,fog:!!D,useFog:y.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:!!y.flatShading,sizeAttenuation:y.sizeAttenuation,logarithmicDepthBuffer:f,skinning:B.isSkinnedMesh===!0,morphTargets:I.morphAttributes.position!==void 0,morphNormals:I.morphAttributes.normal!==void 0,morphColors:I.morphAttributes.color!==void 0,morphTargetsCount:J,morphTextureStride:dt,numDirLights:S.directional.length,numPointLights:S.point.length,numSpotLights:S.spot.length,numSpotLightMaps:S.spotLightMap.length,numRectAreaLights:S.rectArea.length,numHemiLights:S.hemi.length,numDirLightShadows:S.directionalShadowMap.length,numPointLightShadows:S.pointShadowMap.length,numSpotLightShadows:S.spotShadowMap.length,numSpotLightShadowsWithMaps:S.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:y.dithering,shadowMapEnabled:r.shadowMap.enabled&&P.length>0,shadowMapType:r.shadowMap.type,toneMapping:y.toneMapped?r.toneMapping:nn,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:y.premultipliedAlpha,doubleSided:y.side===We,flipSided:y.side===he,useDepthPacking:!!y.depthPacking,depthPacking:y.depthPacking||0,index0AttributeName:y.index0AttributeName,extensionDerivatives:y.extensions&&y.extensions.derivatives,extensionFragDepth:y.extensions&&y.extensions.fragDepth,extensionDrawBuffers:y.extensions&&y.extensions.drawBuffers,extensionShaderTextureLOD:y.extensions&&y.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:y.customProgramCacheKey()}}function d(y){let S=[];if(y.shaderID?S.push(y.shaderID):(S.push(y.customVertexShaderID),S.push(y.customFragmentShaderID)),y.defines!==void 0)for(let P in y.defines)S.push(P),S.push(y.defines[P]);return y.isRawShaderMaterial===!1&&(g(S,y),M(S,y),S.push(r.outputEncoding)),S.push(y.customProgramCacheKey),S.join()}function g(y,S){y.push(S.precision),y.push(S.outputEncoding),y.push(S.envMapMode),y.push(S.envMapCubeUVHeight),y.push(S.combine),y.push(S.vertexUvs),y.push(S.fogExp2),y.push(S.sizeAttenuation),y.push(S.morphTargetsCount),y.push(S.morphAttributeCount),y.push(S.numDirLights),y.push(S.numPointLights),y.push(S.numSpotLights),y.push(S.numSpotLightMaps),y.push(S.numHemiLights),y.push(S.numRectAreaLights),y.push(S.numDirLightShadows),y.push(S.numPointLightShadows),y.push(S.numSpotLightShadows),y.push(S.numSpotLightShadowsWithMaps),y.push(S.shadowMapType),y.push(S.toneMapping),y.push(S.numClippingPlanes),y.push(S.numClipIntersection),y.push(S.depthPacking)}function M(y,S){o.disableAll(),S.isWebGL2&&o.enable(0),S.supportsVertexTextures&&o.enable(1),S.instancing&&o.enable(2),S.instancingColor&&o.enable(3),S.map&&o.enable(4),S.matcap&&o.enable(5),S.envMap&&o.enable(6),S.lightMap&&o.enable(7),S.aoMap&&o.enable(8),S.emissiveMap&&o.enable(9),S.bumpMap&&o.enable(10),S.normalMap&&o.enable(11),S.objectSpaceNormalMap&&o.enable(12),S.tangentSpaceNormalMap&&o.enable(13),S.clearcoat&&o.enable(14),S.clearcoatMap&&o.enable(15),S.clearcoatRoughnessMap&&o.enable(16),S.clearcoatNormalMap&&o.enable(17),S.iridescence&&o.enable(18),S.iridescenceMap&&o.enable(19),S.iridescenceThicknessMap&&o.enable(20),S.displacementMap&&o.enable(21),S.specularMap&&o.enable(22),S.roughnessMap&&o.enable(23),S.metalnessMap&&o.enable(24),S.gradientMap&&o.enable(25),S.alphaMap&&o.enable(26),S.alphaTest&&o.enable(27),S.vertexColors&&o.enable(28),S.vertexAlphas&&o.enable(29),S.vertexUvs&&o.enable(30),S.vertexTangents&&o.enable(31),S.uvsVertexOnly&&o.enable(32),y.push(o.mask),o.disableAll(),S.fog&&o.enable(0),S.useFog&&o.enable(1),S.flatShading&&o.enable(2),S.logarithmicDepthBuffer&&o.enable(3),S.skinning&&o.enable(4),S.morphTargets&&o.enable(5),S.morphNormals&&o.enable(6),S.morphColors&&o.enable(7),S.premultipliedAlpha&&o.enable(8),S.shadowMapEnabled&&o.enable(9),S.physicallyCorrectLights&&o.enable(10),S.doubleSided&&o.enable(11),S.flipSided&&o.enable(12),S.useDepthPacking&&o.enable(13),S.dithering&&o.enable(14),S.specularIntensityMap&&o.enable(15),S.specularColorMap&&o.enable(16),S.transmission&&o.enable(17),S.transmissionMap&&o.enable(18),S.thicknessMap&&o.enable(19),S.sheen&&o.enable(20),S.sheenColorMap&&o.enable(21),S.sheenRoughnessMap&&o.enable(22),S.decodeVideoTexture&&o.enable(23),S.opaque&&o.enable(24),y.push(o.mask)}function _(y){let S=x[y.type],P;if(S){let O=He[S];P=Bl.clone(O.uniforms)}else P=y.uniforms;return P}function v(y,S){let P;for(let O=0,B=l.length;O0?n.push(g):m.transparent===!0?i.push(g):e.push(g)}function c(f,u,m,x,p,d){let g=a(f,u,m,x,p,d);m.transmission>0?n.unshift(g):m.transparent===!0?i.unshift(g):e.unshift(g)}function l(f,u){e.length>1&&e.sort(f||Zd),n.length>1&&n.sort(u||ka),i.length>1&&i.sort(u||ka)}function h(){for(let f=t,u=r.length;f=s.length?(a=new Va,s.push(a)):a=s[i],a}function e(){r=new WeakMap}return{get:t,dispose:e}}function $d(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new R,color:new Bt};break;case"SpotLight":e={position:new R,direction:new R,color:new Bt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new R,color:new Bt,distance:0,decay:0};break;case"HemisphereLight":e={direction:new R,skyColor:new Bt,groundColor:new Bt};break;case"RectAreaLight":e={color:new Bt,position:new R,halfWidth:new R,halfHeight:new R};break}return r[t.id]=e,e}}}function Kd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}var jd=0;function Qd(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function tp(r,t){let e=new $d,n=Kd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)i.probe.push(new R);let s=new R,a=new zt,o=new zt;function c(h,f){let u=0,m=0,x=0;for(let O=0;O<9;O++)i.probe[O].set(0,0,0);let p=0,d=0,g=0,M=0,_=0,v=0,b=0,A=0,C=0,y=0;h.sort(Qd);let S=f!==!0?Math.PI:1;for(let O=0,B=h.length;O0&&(t.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=et.LTC_FLOAT_1,i.rectAreaLTC2=et.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=et.LTC_HALF_1,i.rectAreaLTC2=et.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=u,i.ambient[1]=m,i.ambient[2]=x;let P=i.hash;(P.directionalLength!==p||P.pointLength!==d||P.spotLength!==g||P.rectAreaLength!==M||P.hemiLength!==_||P.numDirectionalShadows!==v||P.numPointShadows!==b||P.numSpotShadows!==A||P.numSpotMaps!==C)&&(i.directional.length=p,i.spot.length=g,i.rectArea.length=M,i.point.length=d,i.hemi.length=_,i.directionalShadow.length=v,i.directionalShadowMap.length=v,i.pointShadow.length=b,i.pointShadowMap.length=b,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=v,i.pointShadowMatrix.length=b,i.spotLightMatrix.length=A+C-y,i.spotLightMap.length=C,i.numSpotLightShadowsWithMaps=y,P.directionalLength=p,P.pointLength=d,P.spotLength=g,P.rectAreaLength=M,P.hemiLength=_,P.numDirectionalShadows=v,P.numPointShadows=b,P.numSpotShadows=A,P.numSpotMaps=C,i.version=jd++)}function l(h,f){let u=0,m=0,x=0,p=0,d=0,g=f.matrixWorldInverse;for(let M=0,_=h.length;M<_;M++){let v=h[M];if(v.isDirectionalLight){let b=i.directional[u];b.direction.setFromMatrixPosition(v.matrixWorld),s.setFromMatrixPosition(v.target.matrixWorld),b.direction.sub(s),b.direction.transformDirection(g),u++}else if(v.isSpotLight){let b=i.spot[x];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),b.direction.setFromMatrixPosition(v.matrixWorld),s.setFromMatrixPosition(v.target.matrixWorld),b.direction.sub(s),b.direction.transformDirection(g),x++}else if(v.isRectAreaLight){let b=i.rectArea[p];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),o.identity(),a.copy(v.matrixWorld),a.premultiply(g),o.extractRotation(a),b.halfWidth.set(v.width*.5,0,0),b.halfHeight.set(0,v.height*.5,0),b.halfWidth.applyMatrix4(o),b.halfHeight.applyMatrix4(o),p++}else if(v.isPointLight){let b=i.point[m];b.position.setFromMatrixPosition(v.matrixWorld),b.position.applyMatrix4(g),m++}else if(v.isHemisphereLight){let b=i.hemi[d];b.direction.setFromMatrixPosition(v.matrixWorld),b.direction.transformDirection(g),d++}}}return{setup:c,setupView:l,state:i}}function Ga(r,t){let e=new tp(r,t),n=[],i=[];function s(){n.length=0,i.length=0}function a(f){n.push(f)}function o(f){i.push(f)}function c(f){e.setup(n,f)}function l(f){e.setupView(n,f)}return{init:s,state:{lightsArray:n,shadowsArray:i,lights:e},setupLights:c,setupLightsView:l,pushLight:a,pushShadow:o}}function ep(r,t){let e=new WeakMap;function n(s,a=0){let o=e.get(s),c;return o===void 0?(c=new Ga(r,t),e.set(s,[c])):a>=o.length?(c=new Ga(r,t),o.push(c)):c=o[a],c}function i(){e=new WeakMap}return{get:n,dispose:i}}var qr=class extends fi{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=vl,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},Xr=class extends fi{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new R,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},np=\`void main() { + gl_Position = vec4( position, 1.0 ); +}\`,ip=\`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}\`;function sp(r,t,e){let n=new Ps,i=new At,s=new At,a=new Xt,o=new qr({depthPacking:Ml}),c=new Xr,l={},h=e.maxTextureSize,f={[Ue]:he,[he]:Ue,[We]:We},u=new on({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},radius:{value:4}},vertexShader:np,fragmentShader:ip}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let x=new ke;x.setAttribute("position",new Yt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new qe(x,u),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Wa,this.render=function(v,b,A){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||v.length===0)return;let C=r.getRenderTarget(),y=r.getActiveCubeFace(),S=r.getActiveMipmapLevel(),P=r.state;P.setBlending(pn),P.buffers.color.setClear(1,1,1,1),P.buffers.depth.setTest(!0),P.setScissorTest(!1);for(let O=0,B=v.length;Oh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/k.x),i.x=s.x*k.x,I.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/k.y),i.y=s.y*k.y,I.mapSize.y=s.y)),I.map===null){let Z=this.type!==Ni?{minFilter:ce,magFilter:ce}:{};I.map=new rn(i.x,i.y,Z),I.map.texture.name=D.name+".shadowMap",I.camera.updateProjectionMatrix()}r.setRenderTarget(I.map),r.clear();let Y=I.getViewportCount();for(let Z=0;Z0||b.map&&b.alphaTest>0){let B=P.uuid,D=b.uuid,I=l[B];I===void 0&&(I={},l[B]=I);let k=I[D];k===void 0&&(k=P.clone(),I[D]=k),P=k}return P.visible=b.visible,P.wireframe=b.wireframe,S===Ni?P.side=b.shadowSide!==null?b.shadowSide:b.side:P.side=b.shadowSide!==null?b.shadowSide:f[b.side],P.alphaMap=b.alphaMap,P.alphaTest=b.alphaTest,P.map=b.map,P.clipShadows=b.clipShadows,P.clippingPlanes=b.clippingPlanes,P.clipIntersection=b.clipIntersection,P.displacementMap=b.displacementMap,P.displacementScale=b.displacementScale,P.displacementBias=b.displacementBias,P.wireframeLinewidth=b.wireframeLinewidth,P.linewidth=b.linewidth,A.isPointLight===!0&&P.isMeshDistanceMaterial===!0&&(P.referencePosition.setFromMatrixPosition(A.matrixWorld),P.nearDistance=C,P.farDistance=y),P}function _(v,b,A,C,y){if(v.visible===!1)return;if(v.layers.test(b.layers)&&(v.isMesh||v.isLine||v.isPoints)&&(v.castShadow||v.receiveShadow&&y===Ni)&&(!v.frustumCulled||n.intersectsObject(v))){v.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,v.matrixWorld);let O=t.update(v),B=v.material;if(Array.isArray(B)){let D=O.groups;for(let I=0,k=D.length;I=1):H.indexOf("OpenGL ES")!==-1&&(Z=parseFloat(/^OpenGL ES (\\d)/.exec(H)[1]),Y=Z>=2);let $=null,J={},dt=r.getParameter(3088),z=r.getParameter(2978),K=new Xt().fromArray(dt),nt=new Xt().fromArray(z);function it(L,V,j){let ot=new Uint8Array(4),lt=r.createTexture();r.bindTexture(L,lt),r.texParameteri(L,10241,9728),r.texParameteri(L,10240,9728);for(let It=0;ItQ||E.height>Q)&&(tt=Q/Math.max(E.width,E.height)),tt<1||w===!0)if(typeof HTMLImageElement!="undefined"&&E instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&E instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&E instanceof ImageBitmap){let st=w?Dr:Math.floor,yt=st(tt*E.width),rt=st(tt*E.height);p===void 0&&(p=M(yt,rt));let X=W?M(yt,rt):p;return X.width=yt,X.height=rt,X.getContext("2d").drawImage(E,0,0,yt,rt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+E.width+"x"+E.height+") to ("+yt+"x"+rt+")."),X}else return"data"in E&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+E.width+"x"+E.height+")."),E;return E}function v(E){return ua(E.width)&&ua(E.height)}function b(E){return o?!1:E.wrapS!==Oe||E.wrapT!==Oe||E.minFilter!==ce&&E.minFilter!==Re}function A(E,w){return E.generateMipmaps&&w&&E.minFilter!==ce&&E.minFilter!==Re}function C(E){r.generateMipmap(E)}function y(E,w,W,Q,tt=!1){if(o===!1)return w;if(E!==null){if(r[E]!==void 0)return r[E];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+E+"'")}let st=w;return w===6403&&(W===5126&&(st=33326),W===5131&&(st=33325),W===5121&&(st=33321)),w===33319&&(W===5126&&(st=33328),W===5131&&(st=33327),W===5121&&(st=33323)),w===6408&&(W===5126&&(st=34836),W===5131&&(st=34842),W===5121&&(st=Q===Ot&&tt===!1?35907:32856),W===32819&&(st=32854),W===32820&&(st=32855)),(st===33325||st===33326||st===33327||st===33328||st===34842||st===34836)&&t.get("EXT_color_buffer_float"),st}function S(E,w,W){return A(E,W)===!0||E.isFramebufferTexture&&E.minFilter!==ce&&E.minFilter!==Re?Math.log2(Math.max(w.width,w.height))+1:E.mipmaps!==void 0&&E.mipmaps.length>0?E.mipmaps.length:E.isCompressedTexture&&Array.isArray(E.image)?w.mipmaps.length:1}function P(E){return E===ce||E===Fo||E===Zs?9728:9729}function O(E){let w=E.target;w.removeEventListener("dispose",O),D(w),w.isVideoTexture&&x.delete(w)}function B(E){let w=E.target;w.removeEventListener("dispose",B),k(w)}function D(E){let w=n.get(E);if(w.__webglInit===void 0)return;let W=E.source,Q=d.get(W);if(Q){let tt=Q[w.__cacheKey];tt.usedTimes--,tt.usedTimes===0&&I(E),Object.keys(Q).length===0&&d.delete(W)}n.remove(E)}function I(E){let w=n.get(E);r.deleteTexture(w.__webglTexture);let W=E.source,Q=d.get(W);delete Q[w.__cacheKey],a.memory.textures--}function k(E){let w=E.texture,W=n.get(E),Q=n.get(w);if(Q.__webglTexture!==void 0&&(r.deleteTexture(Q.__webglTexture),a.memory.textures--),E.depthTexture&&E.depthTexture.dispose(),E.isWebGLCubeRenderTarget)for(let tt=0;tt<6;tt++)r.deleteFramebuffer(W.__webglFramebuffer[tt]),W.__webglDepthbuffer&&r.deleteRenderbuffer(W.__webglDepthbuffer[tt]);else{if(r.deleteFramebuffer(W.__webglFramebuffer),W.__webglDepthbuffer&&r.deleteRenderbuffer(W.__webglDepthbuffer),W.__webglMultisampledFramebuffer&&r.deleteFramebuffer(W.__webglMultisampledFramebuffer),W.__webglColorRenderbuffer)for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+E+" texture units while this GPU supports only "+c),Y+=1,E}function $(E){let w=[];return w.push(E.wrapS),w.push(E.wrapT),w.push(E.wrapR||0),w.push(E.magFilter),w.push(E.minFilter),w.push(E.anisotropy),w.push(E.internalFormat),w.push(E.format),w.push(E.type),w.push(E.generateMipmaps),w.push(E.premultiplyAlpha),w.push(E.flipY),w.push(E.unpackAlignment),w.push(E.encoding),w.join()}function J(E,w){let W=n.get(E);if(E.isVideoTexture&&Ze(E),E.isRenderTargetTexture===!1&&E.version>0&&W.__version!==E.version){let Q=E.image;if(Q===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Q.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{ht(W,E,w);return}}e.bindTexture(3553,W.__webglTexture,33984+w)}function dt(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ht(W,E,w);return}e.bindTexture(35866,W.__webglTexture,33984+w)}function z(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ht(W,E,w);return}e.bindTexture(32879,W.__webglTexture,33984+w)}function K(E,w){let W=n.get(E);if(E.version>0&&W.__version!==E.version){ut(W,E,w);return}e.bindTexture(34067,W.__webglTexture,33984+w)}let nt={[Rr]:10497,[Oe]:33071,[Lr]:33648},it={[ce]:9728,[Fo]:9984,[Zs]:9986,[Re]:9729,[sl]:9985,[Oi]:9987};function U(E,w,W){if(W?(r.texParameteri(E,10242,nt[w.wrapS]),r.texParameteri(E,10243,nt[w.wrapT]),(E===32879||E===35866)&&r.texParameteri(E,32882,nt[w.wrapR]),r.texParameteri(E,10240,it[w.magFilter]),r.texParameteri(E,10241,it[w.minFilter])):(r.texParameteri(E,10242,33071),r.texParameteri(E,10243,33071),(E===32879||E===35866)&&r.texParameteri(E,32882,33071),(w.wrapS!==Oe||w.wrapT!==Oe)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(E,10240,P(w.magFilter)),r.texParameteri(E,10241,P(w.minFilter)),w.minFilter!==ce&&w.minFilter!==Re&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),t.has("EXT_texture_filter_anisotropic")===!0){let Q=t.get("EXT_texture_filter_anisotropic");if(w.magFilter===ce||w.minFilter!==Zs&&w.minFilter!==Oi||w.type===Rn&&t.has("OES_texture_float_linear")===!1||o===!1&&w.type===Bi&&t.has("OES_texture_half_float_linear")===!1)return;(w.anisotropy>1||n.get(w).__currentAnisotropy)&&(r.texParameterf(E,Q.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(w.anisotropy,i.getMaxAnisotropy())),n.get(w).__currentAnisotropy=w.anisotropy)}}function Mt(E,w){let W=!1;E.__webglInit===void 0&&(E.__webglInit=!0,w.addEventListener("dispose",O));let Q=w.source,tt=d.get(Q);tt===void 0&&(tt={},d.set(Q,tt));let st=$(w);if(st!==E.__cacheKey){tt[st]===void 0&&(tt[st]={texture:r.createTexture(),usedTimes:0},a.memory.textures++,W=!0),tt[st].usedTimes++;let yt=tt[E.__cacheKey];yt!==void 0&&(tt[E.__cacheKey].usedTimes--,yt.usedTimes===0&&I(w)),E.__cacheKey=st,E.__webglTexture=tt[st].texture}return W}function ht(E,w,W){let Q=3553;(w.isDataArrayTexture||w.isCompressedArrayTexture)&&(Q=35866),w.isData3DTexture&&(Q=32879);let tt=Mt(E,w),st=w.source;e.bindTexture(Q,E.__webglTexture,33984+W);let yt=n.get(st);if(st.version!==yt.__version||tt===!0){e.activeTexture(33984+W),r.pixelStorei(37440,w.flipY),r.pixelStorei(37441,w.premultiplyAlpha),r.pixelStorei(3317,w.unpackAlignment),r.pixelStorei(37443,0);let rt=b(w)&&v(w.image)===!1,X=_(w.image,rt,!1,h);X=De(w,X);let mt=v(X)||o,xt=s.convert(w.format,w.encoding),ct=s.convert(w.type),gt=y(w.internalFormat,xt,ct,w.encoding,w.isVideoTexture);U(Q,w,mt);let ft,Rt=w.mipmaps,Ut=o&&w.isVideoTexture!==!0,$t=yt.__version===void 0||tt===!0,L=S(w,X,mt);if(w.isDepthTexture)gt=6402,o?w.type===Rn?gt=36012:w.type===Pn?gt=33190:w.type===oi?gt=35056:gt=33189:w.type===Rn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),w.format===Ln&>===6402&&w.type!==Ja&&w.type!==Pn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),w.type=Pn,ct=s.convert(w.type)),w.format===hi&>===6402&&(gt=34041,w.type!==oi&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),w.type=oi,ct=s.convert(w.type))),$t&&(Ut?e.texStorage2D(3553,1,gt,X.width,X.height):e.texImage2D(3553,0,gt,X.width,X.height,0,xt,ct,null));else if(w.isDataTexture)if(Rt.length>0&&mt){Ut&&$t&&e.texStorage2D(3553,L,gt,Rt[0].width,Rt[0].height);for(let V=0,j=Rt.length;V>=1,j>>=1}}else if(Rt.length>0&&mt){Ut&&$t&&e.texStorage2D(3553,L,gt,Rt[0].width,Rt[0].height);for(let V=0,j=Rt.length;V0&&$t++,e.texStorage2D(34067,$t,ft,X[0].width,X[0].height));for(let V=0;V<6;V++)if(rt){Rt?e.texSubImage2D(34069+V,0,0,0,X[V].width,X[V].height,ct,gt,X[V].data):e.texImage2D(34069+V,0,ft,X[V].width,X[V].height,0,ct,gt,X[V].data);for(let j=0;j=34069&&tt<=34074)&&r.framebufferTexture2D(36160,Q,tt,n.get(W).__webglTexture,0),e.bindFramebuffer(36160,null)}function Ft(E,w,W){if(r.bindRenderbuffer(36161,E),w.depthBuffer&&!w.stencilBuffer){let Q=33189;if(W||Nt(w)){let tt=w.depthTexture;tt&&tt.isDepthTexture&&(tt.type===Rn?Q=36012:tt.type===Pn&&(Q=33190));let st=Wt(w);Nt(w)?u.renderbufferStorageMultisampleEXT(36161,st,Q,w.width,w.height):r.renderbufferStorageMultisample(36161,st,Q,w.width,w.height)}else r.renderbufferStorage(36161,Q,w.width,w.height);r.framebufferRenderbuffer(36160,36096,36161,E)}else if(w.depthBuffer&&w.stencilBuffer){let Q=Wt(w);W&&Nt(w)===!1?r.renderbufferStorageMultisample(36161,Q,35056,w.width,w.height):Nt(w)?u.renderbufferStorageMultisampleEXT(36161,Q,35056,w.width,w.height):r.renderbufferStorage(36161,34041,w.width,w.height),r.framebufferRenderbuffer(36160,33306,36161,E)}else{let Q=w.isWebGLMultipleRenderTargets===!0?w.texture:[w.texture];for(let tt=0;tt0&&Nt(E)===!1){let rt=st?w:[w];W.__webglMultisampledFramebuffer=r.createFramebuffer(),W.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,W.__webglMultisampledFramebuffer);for(let X=0;X0&&Nt(E)===!1){let w=E.isWebGLMultipleRenderTargets?E.texture:[E.texture],W=E.width,Q=E.height,tt=16384,st=[],yt=E.stencilBuffer?33306:36096,rt=n.get(E),X=E.isWebGLMultipleRenderTargets===!0;if(X)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&w.__useRenderToTexture!==!1}function Ze(E){let w=a.render.frame;x.get(E)!==w&&(x.set(E,w),E.update())}function De(E,w){let W=E.encoding,Q=E.format,tt=E.type;return E.isCompressedTexture===!0||E.isVideoTexture===!0||E.format===Ir||W!==Nn&&(W===Ot?o===!1?t.has("EXT_sRGB")===!0&&Q===Be?(E.format=Ir,E.minFilter=Re,E.generateMipmaps=!1):w=vs.sRGBToLinear(w):(Q!==Be||tt!==Dn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",W)),w}this.allocateTextureUnit=H,this.resetTextureUnits=Z,this.setTexture2D=J,this.setTexture2DArray=dt,this.setTexture3D=z,this.setTextureCube=K,this.rebindTextures=se,this.setupRenderTarget=Ae,this.updateRenderTargetMipmap=te,this.updateMultisampleRenderTarget=Ee,this.setupDepthRenderbuffer=_t,this.setupFrameBufferTexture=at,this.useMultisampledRTT=Nt}function ap(r,t,e){let n=e.isWebGL2;function i(s,a=null){let o;if(s===Dn)return 5121;if(s===cl)return 32819;if(s===ll)return 32820;if(s===rl)return 5120;if(s===ol)return 5122;if(s===Ja)return 5123;if(s===al)return 5124;if(s===Pn)return 5125;if(s===Rn)return 5126;if(s===Bi)return n?5131:(o=t.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(s===hl)return 6406;if(s===Be)return 6408;if(s===ul)return 6409;if(s===fl)return 6410;if(s===Ln)return 6402;if(s===hi)return 34041;if(s===Ir)return o=t.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(s===dl)return 6403;if(s===pl)return 36244;if(s===ml)return 33319;if(s===gl)return 33320;if(s===xl)return 36249;if(s===Js||s===$s||s===Ks||s===js)if(a===Ot)if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(s===Js)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===$s)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=t.get("WEBGL_compressed_texture_s3tc"),o!==null){if(s===Js)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===$s)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===Ks)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===js)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===zo||s===Oo||s===Bo||s===Uo)if(o=t.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(s===zo)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Oo)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Bo)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Uo)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===_l)return o=t.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===ko||s===Vo)if(o=t.get("WEBGL_compressed_texture_etc"),o!==null){if(s===ko)return a===Ot?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(s===Vo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Go||s===Ho||s===Wo||s===qo||s===Xo||s===Yo||s===Zo||s===Jo||s===$o||s===Ko||s===jo||s===Qo||s===ta||s===ea)if(o=t.get("WEBGL_compressed_texture_astc"),o!==null){if(s===Go)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Ho)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===qo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===Xo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Yo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Zo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Jo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===$o)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Ko)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Qo)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ta)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ea)return a===Ot?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===Qs)if(o=t.get("EXT_texture_compression_bptc"),o!==null){if(s===Qs)return a===Ot?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(s===yl||s===na||s===ia||s===sa)if(o=t.get("EXT_texture_compression_rgtc"),o!==null){if(s===Qs)return o.COMPRESSED_RED_RGTC1_EXT;if(s===na)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===ia)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===sa)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===oi?n?34042:(o=t.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var Yr=class extends Se{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},si=class extends pe{constructor(){super(),this.isGroup=!0,this.type="Group"}},cp={type:"move"},zi=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new si,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new si,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new R,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new R),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new si,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new R,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new R),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,a=null,o=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){a=!0;for(let p of t.hand.values()){let d=e.getJointPose(p,n),g=this._getHandJoint(l,p);d!==null&&(g.matrix.fromArray(d.transform.matrix),g.matrix.decompose(g.position,g.rotation,g.scale),g.jointRadius=d.radius),g.visible=d!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],u=h.position.distanceTo(f.position),m=.02,x=.005;l.inputState.pinching&&u>m+x?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-x&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(cp)))}return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new si;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},Zr=class extends ue{constructor(t,e,n,i,s,a,o,c,l,h){if(h=h!==void 0?h:Ln,h!==Ln&&h!==hi)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Ln&&(n=Pn),n===void 0&&h===hi&&(n=oi),super(null,i,s,a,o,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:ce,this.minFilter=c!==void 0?c:ce,this.flipY=!1,this.generateMipmaps=!1}},Jr=class extends mn{constructor(t,e){super();let n=this,i=null,s=1,a=null,o="local-floor",c=1,l=null,h=null,f=null,u=null,m=null,x=null,p=e.getContextAttributes(),d=null,g=null,M=[],_=[],v=new Set,b=new Map,A=new Se;A.layers.enable(1),A.viewport=new Xt;let C=new Se;C.layers.enable(2),C.viewport=new Xt;let y=[A,C],S=new Yr;S.layers.enable(1),S.layers.enable(2);let P=null,O=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getTargetRaySpace()},this.getControllerGrip=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getGripSpace()},this.getHand=function(z){let K=M[z];return K===void 0&&(K=new zi,M[z]=K),K.getHandSpace()};function B(z){let K=_.indexOf(z.inputSource);if(K===-1)return;let nt=M[K];nt!==void 0&&nt.dispatchEvent({type:z.type,data:z.inputSource})}function D(){i.removeEventListener("select",B),i.removeEventListener("selectstart",B),i.removeEventListener("selectend",B),i.removeEventListener("squeeze",B),i.removeEventListener("squeezestart",B),i.removeEventListener("squeezeend",B),i.removeEventListener("end",D),i.removeEventListener("inputsourceschange",I);for(let z=0;z=0&&(_[it]=null,M[it].disconnect(nt))}for(let K=0;K=_.length){_.push(nt),it=Mt;break}else if(_[Mt]===null){_[Mt]=nt,it=Mt;break}if(it===-1)break}let U=M[it];U&&U.connect(nt)}}let k=new R,Y=new R;function Z(z,K,nt){k.setFromMatrixPosition(K.matrixWorld),Y.setFromMatrixPosition(nt.matrixWorld);let it=k.distanceTo(Y),U=K.projectionMatrix.elements,Mt=nt.projectionMatrix.elements,ht=U[14]/(U[10]-1),ut=U[14]/(U[10]+1),at=(U[9]+1)/U[5],Ft=(U[9]-1)/U[5],bt=(U[8]-1)/U[0],_t=(Mt[8]+1)/Mt[0],se=ht*bt,Ae=ht*_t,te=it/(-bt+_t),Ee=te*-bt;K.matrixWorld.decompose(z.position,z.quaternion,z.scale),z.translateX(Ee),z.translateZ(te),z.matrixWorld.compose(z.position,z.quaternion,z.scale),z.matrixWorldInverse.copy(z.matrixWorld).invert();let Wt=ht+te,Nt=ut+te,Ze=se-Ee,De=Ae+(it-Ee),E=at*ut/Nt*Wt,w=Ft*ut/Nt*Wt;z.projectionMatrix.makePerspective(Ze,De,E,w,Wt,Nt)}function H(z,K){K===null?z.matrixWorld.copy(z.matrix):z.matrixWorld.multiplyMatrices(K.matrixWorld,z.matrix),z.matrixWorldInverse.copy(z.matrixWorld).invert()}this.updateCamera=function(z){if(i===null)return;S.near=C.near=A.near=z.near,S.far=C.far=A.far=z.far,(P!==S.near||O!==S.far)&&(i.updateRenderState({depthNear:S.near,depthFar:S.far}),P=S.near,O=S.far);let K=z.parent,nt=S.cameras;H(S,K);for(let U=0;UU&&(b.set(it,it.lastChangedTime),n.dispatchEvent({type:"planechanged",data:it}))}}x=null}let dt=new Qa;dt.setAnimationLoop(J),this.setAnimationLoop=function(z){$=z},this.dispose=function(){}}};function lp(r,t){function e(p,d){d.color.getRGB(p.fogColor.value,ja(r)),d.isFog?(p.fogNear.value=d.near,p.fogFar.value=d.far):d.isFogExp2&&(p.fogDensity.value=d.density)}function n(p,d,g,M,_){d.isMeshBasicMaterial||d.isMeshLambertMaterial?i(p,d):d.isMeshToonMaterial?(i(p,d),h(p,d)):d.isMeshPhongMaterial?(i(p,d),l(p,d)):d.isMeshStandardMaterial?(i(p,d),f(p,d),d.isMeshPhysicalMaterial&&u(p,d,_)):d.isMeshMatcapMaterial?(i(p,d),m(p,d)):d.isMeshDepthMaterial?i(p,d):d.isMeshDistanceMaterial?(i(p,d),x(p,d)):d.isMeshNormalMaterial?i(p,d):d.isLineBasicMaterial?(s(p,d),d.isLineDashedMaterial&&a(p,d)):d.isPointsMaterial?o(p,d,g,M):d.isSpriteMaterial?c(p,d):d.isShadowMaterial?(p.color.value.copy(d.color),p.opacity.value=d.opacity):d.isShaderMaterial&&(d.uniformsNeedUpdate=!1)}function i(p,d){p.opacity.value=d.opacity,d.color&&p.diffuse.value.copy(d.color),d.emissive&&p.emissive.value.copy(d.emissive).multiplyScalar(d.emissiveIntensity),d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.bumpMap&&(p.bumpMap.value=d.bumpMap,p.bumpScale.value=d.bumpScale,d.side===he&&(p.bumpScale.value*=-1)),d.displacementMap&&(p.displacementMap.value=d.displacementMap,p.displacementScale.value=d.displacementScale,p.displacementBias.value=d.displacementBias),d.emissiveMap&&(p.emissiveMap.value=d.emissiveMap),d.normalMap&&(p.normalMap.value=d.normalMap,p.normalScale.value.copy(d.normalScale),d.side===he&&p.normalScale.value.negate()),d.specularMap&&(p.specularMap.value=d.specularMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let g=t.get(d).envMap;if(g&&(p.envMap.value=g,p.flipEnvMap.value=g.isCubeTexture&&g.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=d.reflectivity,p.ior.value=d.ior,p.refractionRatio.value=d.refractionRatio),d.lightMap){p.lightMap.value=d.lightMap;let v=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=d.lightMapIntensity*v}d.aoMap&&(p.aoMap.value=d.aoMap,p.aoMapIntensity.value=d.aoMapIntensity);let M;d.map?M=d.map:d.specularMap?M=d.specularMap:d.displacementMap?M=d.displacementMap:d.normalMap?M=d.normalMap:d.bumpMap?M=d.bumpMap:d.roughnessMap?M=d.roughnessMap:d.metalnessMap?M=d.metalnessMap:d.alphaMap?M=d.alphaMap:d.emissiveMap?M=d.emissiveMap:d.clearcoatMap?M=d.clearcoatMap:d.clearcoatNormalMap?M=d.clearcoatNormalMap:d.clearcoatRoughnessMap?M=d.clearcoatRoughnessMap:d.iridescenceMap?M=d.iridescenceMap:d.iridescenceThicknessMap?M=d.iridescenceThicknessMap:d.specularIntensityMap?M=d.specularIntensityMap:d.specularColorMap?M=d.specularColorMap:d.transmissionMap?M=d.transmissionMap:d.thicknessMap?M=d.thicknessMap:d.sheenColorMap?M=d.sheenColorMap:d.sheenRoughnessMap&&(M=d.sheenRoughnessMap),M!==void 0&&(M.isWebGLRenderTarget&&(M=M.texture),M.matrixAutoUpdate===!0&&M.updateMatrix(),p.uvTransform.value.copy(M.matrix));let _;d.aoMap?_=d.aoMap:d.lightMap&&(_=d.lightMap),_!==void 0&&(_.isWebGLRenderTarget&&(_=_.texture),_.matrixAutoUpdate===!0&&_.updateMatrix(),p.uv2Transform.value.copy(_.matrix))}function s(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity}function a(p,d){p.dashSize.value=d.dashSize,p.totalSize.value=d.dashSize+d.gapSize,p.scale.value=d.scale}function o(p,d,g,M){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.size.value=d.size*g,p.scale.value=M*.5,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let _;d.map?_=d.map:d.alphaMap&&(_=d.alphaMap),_!==void 0&&(_.matrixAutoUpdate===!0&&_.updateMatrix(),p.uvTransform.value.copy(_.matrix))}function c(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.rotation.value=d.rotation,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let g;d.map?g=d.map:d.alphaMap&&(g=d.alphaMap),g!==void 0&&(g.matrixAutoUpdate===!0&&g.updateMatrix(),p.uvTransform.value.copy(g.matrix))}function l(p,d){p.specular.value.copy(d.specular),p.shininess.value=Math.max(d.shininess,1e-4)}function h(p,d){d.gradientMap&&(p.gradientMap.value=d.gradientMap)}function f(p,d){p.roughness.value=d.roughness,p.metalness.value=d.metalness,d.roughnessMap&&(p.roughnessMap.value=d.roughnessMap),d.metalnessMap&&(p.metalnessMap.value=d.metalnessMap),t.get(d).envMap&&(p.envMapIntensity.value=d.envMapIntensity)}function u(p,d,g){p.ior.value=d.ior,d.sheen>0&&(p.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),p.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(p.sheenColorMap.value=d.sheenColorMap),d.sheenRoughnessMap&&(p.sheenRoughnessMap.value=d.sheenRoughnessMap)),d.clearcoat>0&&(p.clearcoat.value=d.clearcoat,p.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(p.clearcoatMap.value=d.clearcoatMap),d.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap),d.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),p.clearcoatNormalMap.value=d.clearcoatNormalMap,d.side===he&&p.clearcoatNormalScale.value.negate())),d.iridescence>0&&(p.iridescence.value=d.iridescence,p.iridescenceIOR.value=d.iridescenceIOR,p.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(p.iridescenceMap.value=d.iridescenceMap),d.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=d.iridescenceThicknessMap)),d.transmission>0&&(p.transmission.value=d.transmission,p.transmissionSamplerMap.value=g.texture,p.transmissionSamplerSize.value.set(g.width,g.height),d.transmissionMap&&(p.transmissionMap.value=d.transmissionMap),p.thickness.value=d.thickness,d.thicknessMap&&(p.thicknessMap.value=d.thicknessMap),p.attenuationDistance.value=d.attenuationDistance,p.attenuationColor.value.copy(d.attenuationColor)),p.specularIntensity.value=d.specularIntensity,p.specularColor.value.copy(d.specularColor),d.specularIntensityMap&&(p.specularIntensityMap.value=d.specularIntensityMap),d.specularColorMap&&(p.specularColorMap.value=d.specularColorMap)}function m(p,d){d.matcap&&(p.matcap.value=d.matcap)}function x(p,d){p.referencePosition.value.copy(d.referencePosition),p.nearDistance.value=d.nearDistance,p.farDistance.value=d.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:n}}function hp(r,t,e,n){let i={},s={},a=[],o=e.isWebGL2?r.getParameter(35375):0;function c(M,_){let v=_.program;n.uniformBlockBinding(M,v)}function l(M,_){let v=i[M.id];v===void 0&&(x(M),v=h(M),i[M.id]=v,M.addEventListener("dispose",d));let b=_.program;n.updateUBOMapping(M,b);let A=t.render.frame;s[M.id]!==A&&(u(M),s[M.id]=A)}function h(M){let _=f();M.__bindingPointIndex=_;let v=r.createBuffer(),b=M.__size,A=M.usage;return r.bindBuffer(35345,v),r.bufferData(35345,b,A),r.bindBuffer(35345,null),r.bindBufferBase(35345,_,v),v}function f(){for(let M=0;M0){A=v%b;let B=b-A;A!==0&&B-P.boundary<0&&(v+=b-A,S.__offset=v)}v+=P.storage}return A=v%b,A>0&&(v+=b-A),M.__size=v,M.__cache={},this}function p(M){let _={boundary:0,storage:0};return typeof M=="number"?(_.boundary=4,_.storage=4):M.isVector2?(_.boundary=8,_.storage=8):M.isVector3||M.isColor?(_.boundary=16,_.storage=12):M.isVector4?(_.boundary=16,_.storage=16):M.isMatrix3?(_.boundary=48,_.storage=48):M.isMatrix4?(_.boundary=64,_.storage=64):M.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",M),_}function d(M){let _=M.target;_.removeEventListener("dispose",d);let v=a.indexOf(_.__bindingPointIndex);a.splice(v,1),r.deleteBuffer(i[_.id]),delete i[_.id],delete s[_.id]}function g(){for(let M in i)r.deleteBuffer(i[M]);a=[],i={},s={}}return{bind:c,update:l,dispose:g}}function up(){let r=ys("canvas");return r.style.display="block",r}function fp(r={}){this.isWebGLRenderer=!0;let t=r.canvas!==void 0?r.canvas:up(),e=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,a=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,o=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;e!==null?h=e.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,u=null,m=[],x=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Nn,this.physicallyCorrectLights=!1,this.toneMapping=nn,this.toneMappingExposure=1;let p=this,d=!1,g=0,M=0,_=null,v=-1,b=null,A=new Xt,C=new Xt,y=null,S=t.width,P=t.height,O=1,B=null,D=null,I=new Xt(0,0,S,P),k=new Xt(0,0,S,P),Y=!1,Z=new Ps,H=!1,$=!1,J=null,dt=new zt,z=new At,K=new R,nt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function it(){return _===null?O:1}let U=e;function Mt(T,F){for(let G=0;G0?u=x[x.length-1]:u=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function Kt(T,F,G,N){if(T.visible===!1)return;if(T.layers.test(F.layers)){if(T.isGroup)G=T.renderOrder;else if(T.isLOD)T.autoUpdate===!0&&T.update(F);else if(T.isLight)u.pushLight(T),T.castShadow&&u.pushShadow(T);else if(T.isSprite){if(!T.frustumCulled||Z.intersectsSprite(T)){N&&K.setFromMatrixPosition(T.matrixWorld).applyMatrix4(dt);let vt=Wt.update(T),St=T.material;St.visible&&f.push(T,vt,St,G,K.z,null)}}else if((T.isMesh||T.isLine||T.isPoints)&&(T.isSkinnedMesh&&T.skeleton.frame!==Ft.render.frame&&(T.skeleton.update(),T.skeleton.frame=Ft.render.frame),!T.frustumCulled||Z.intersectsObject(T))){N&&K.setFromMatrixPosition(T.matrixWorld).applyMatrix4(dt);let vt=Wt.update(T),St=T.material;if(Array.isArray(St)){let Tt=vt.groups;for(let Lt=0,Et=Tt.length;Lt0&&vn(q,F,G),N&&at.viewport(A.copy(N)),q.length>0&&kt(q,F,G),pt.length>0&&kt(pt,F,G),vt.length>0&&kt(vt,F,G),at.buffers.depth.setTest(!0),at.buffers.depth.setMask(!0),at.buffers.color.setMask(!0),at.setPolygonOffset(!1)}function vn(T,F,G){let N=ut.isWebGL2;J===null&&(J=new rn(1,1,{generateMipmaps:!0,type:ht.has("EXT_color_buffer_half_float")?Bi:Dn,minFilter:Oi,samples:N&&s===!0?4:0})),p.getDrawingBufferSize(z),N?J.setSize(z.x,z.y):J.setSize(Dr(z.x),Dr(z.y));let q=p.getRenderTarget();p.setRenderTarget(J),p.clear();let pt=p.toneMapping;p.toneMapping=nn,kt(T,F,G),p.toneMapping=pt,_t.updateMultisampleRenderTarget(J),_t.updateRenderTargetMipmap(J),p.setRenderTarget(q)}function kt(T,F,G){let N=F.isScene===!0?F.overrideMaterial:null;for(let q=0,pt=T.length;q0&&_t.useMultisampledRTT(T)===!1?q=bt.get(T).__webglMultisampledFramebuffer:q=Et,A.copy(T.viewport),C.copy(T.scissor),y=T.scissorTest}else A.copy(I).multiplyScalar(O).floor(),C.copy(k).multiplyScalar(O).floor(),y=Y;if(at.bindFramebuffer(36160,q)&&ut.drawBuffers&&N&&at.drawBuffers(T,q),at.viewport(A),at.scissor(C),at.setScissorTest(y),pt){let Tt=bt.get(T.texture);U.framebufferTexture2D(36160,36064,34069+F,Tt.__webglTexture,G)}else if(vt){let Tt=bt.get(T.texture),Lt=F||0;U.framebufferTextureLayer(36160,36064,Tt.__webglTexture,G||0,Lt)}v=-1},this.readRenderTargetPixels=function(T,F,G,N,q,pt,vt){if(!(T&&T.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let St=bt.get(T).__webglFramebuffer;if(T.isWebGLCubeRenderTarget&&vt!==void 0&&(St=St[vt]),St){at.bindFramebuffer(36160,St);try{let Tt=T.texture,Lt=Tt.format,Et=Tt.type;if(Lt!==Be&&rt.convert(Lt)!==U.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Ct=Et===Bi&&(ht.has("EXT_color_buffer_half_float")||ut.isWebGL2&&ht.has("EXT_color_buffer_float"));if(Et!==Dn&&rt.convert(Et)!==U.getParameter(35738)&&!(Et===Rn&&(ut.isWebGL2||ht.has("OES_texture_float")||ht.has("WEBGL_color_buffer_float")))&&!Ct){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}F>=0&&F<=T.width-N&&G>=0&&G<=T.height-q&&U.readPixels(F,G,N,q,rt.convert(Lt),rt.convert(Et),pt)}finally{let Tt=_!==null?bt.get(_).__webglFramebuffer:null;at.bindFramebuffer(36160,Tt)}}},this.copyFramebufferToTexture=function(T,F,G=0){let N=Math.pow(2,-G),q=Math.floor(F.image.width*N),pt=Math.floor(F.image.height*N);_t.setTexture2D(F,0),U.copyTexSubImage2D(3553,G,0,0,T.x,T.y,q,pt),at.unbindTexture()},this.copyTextureToTexture=function(T,F,G,N=0){let q=F.image.width,pt=F.image.height,vt=rt.convert(G.format),St=rt.convert(G.type);_t.setTexture2D(G,0),U.pixelStorei(37440,G.flipY),U.pixelStorei(37441,G.premultiplyAlpha),U.pixelStorei(3317,G.unpackAlignment),F.isDataTexture?U.texSubImage2D(3553,N,T.x,T.y,q,pt,vt,St,F.image.data):F.isCompressedTexture?U.compressedTexSubImage2D(3553,N,T.x,T.y,F.mipmaps[0].width,F.mipmaps[0].height,vt,F.mipmaps[0].data):U.texSubImage2D(3553,N,T.x,T.y,vt,St,F.image),N===0&&G.generateMipmaps&&U.generateMipmap(3553),at.unbindTexture()},this.copyTextureToTexture3D=function(T,F,G,N,q=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let pt=T.max.x-T.min.x+1,vt=T.max.y-T.min.y+1,St=T.max.z-T.min.z+1,Tt=rt.convert(N.format),Lt=rt.convert(N.type),Et;if(N.isData3DTexture)_t.setTexture3D(N,0),Et=32879;else if(N.isDataArrayTexture)_t.setTexture2DArray(N,0),Et=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}U.pixelStorei(37440,N.flipY),U.pixelStorei(37441,N.premultiplyAlpha),U.pixelStorei(3317,N.unpackAlignment);let Ct=U.getParameter(3314),Vt=U.getParameter(32878),ye=U.getParameter(3316),$e=U.getParameter(3315),Mn=U.getParameter(32877),Gt=G.isCompressedTexture?G.mipmaps[0]:G.image;U.pixelStorei(3314,Gt.width),U.pixelStorei(32878,Gt.height),U.pixelStorei(3316,T.min.x),U.pixelStorei(3315,T.min.y),U.pixelStorei(32877,T.min.z),G.isDataTexture||G.isData3DTexture?U.texSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Lt,Gt.data):G.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),U.compressedTexSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Gt.data)):U.texSubImage3D(Et,q,F.x,F.y,F.z,pt,vt,St,Tt,Lt,Gt),U.pixelStorei(3314,Ct),U.pixelStorei(32878,Vt),U.pixelStorei(3316,ye),U.pixelStorei(3315,$e),U.pixelStorei(32877,Mn),q===0&&N.generateMipmaps&&U.generateMipmap(Et),at.unbindTexture()},this.initTexture=function(T){T.isCubeTexture?_t.setTextureCube(T,0):T.isData3DTexture?_t.setTexture3D(T,0):T.isDataArrayTexture||T.isCompressedArrayTexture?_t.setTexture2DArray(T,0):_t.setTexture2D(T,0),at.unbindTexture()},this.resetState=function(){g=0,M=0,_=null,at.reset(),X.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var $r=class extends fp{};$r.prototype.isWebGL1Renderer=!0;function dn(r,t,e){return sc(r)?new r.constructor(r.subarray(t,e!==void 0?e:r.length)):r.slice(t,e)}function ps(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function sc(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var pi=class{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let a;e:{i:if(!(t=s)){let o=e[1];t=s)break t}a=n,n=0;break e}break n}for(;n>>1;te;)--a;if(++a,s!==0||a!==i){s>=a&&(a=Math.max(a,1),s=a-1);let o=this.getValueSize();this.times=dn(n,s,a),this.values=dn(this.values,s*o,a*o)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let o=0;o!==s;o++){let c=n[o];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,c),t=!1;break}if(a!==null&&a>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,c,a),t=!1;break}a=c}if(i!==void 0&&sc(i))for(let o=0,c=i.length;o!==c;++o){let l=i[o];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,l),t=!1;break}}return t}optimize(){let t=dn(this.times),e=dn(this.values),n=this.getValueSize(),i=this.getInterpolation()===tr,s=t.length-1,a=1;for(let o=1;o0){t[a]=t[s];for(let o=s*n,c=a*n,l=0;l!==n;++l)e[c+l]=e[o+l];++a}return a!==t.length?(this.times=dn(t,0,a),this.values=dn(e,0,a*n)):(this.times=t,this.values=e),this}clone(){let t=dn(this.times,0),e=dn(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}};Ve.prototype.TimeBufferType=Float32Array;Ve.prototype.ValueBufferType=Float32Array;Ve.prototype.DefaultInterpolation=_s;var On=class extends Ve{};On.prototype.ValueTypeName="bool";On.prototype.ValueBufferType=Array;On.prototype.DefaultInterpolation=xs;On.prototype.InterpolantFactoryMethodLinear=void 0;On.prototype.InterpolantFactoryMethodSmooth=void 0;var to=class extends Ve{};to.prototype.ValueTypeName="color";var eo=class extends Ve{};eo.prototype.ValueTypeName="number";var no=class extends pi{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){let s=this.resultBuffer,a=this.sampleValues,o=this.valueSize,c=(n-e)/(i-e),l=t*o;for(let h=l+o;l!==h;l+=4)gn.slerpFlat(s,0,a,l-o,a,l,c);return s}},Vi=class extends Ve{InterpolantFactoryMethodLinear(t){return new no(this.times,this.values,this.getValueSize(),t)}};Vi.prototype.ValueTypeName="quaternion";Vi.prototype.DefaultInterpolation=_s;Vi.prototype.InterpolantFactoryMethodSmooth=void 0;var Bn=class extends Ve{};Bn.prototype.ValueTypeName="string";Bn.prototype.ValueBufferType=Array;Bn.prototype.DefaultInterpolation=xs;Bn.prototype.InterpolantFactoryMethodLinear=void 0;Bn.prototype.InterpolantFactoryMethodSmooth=void 0;var io=class extends Ve{};io.prototype.ValueTypeName="vector";var ao="\\\\[\\\\]\\\\.:\\\\/",dp=new RegExp("["+ao+"]","g"),co="[^"+ao+"]",pp="[^"+ao.replace("\\\\.","")+"]",mp=/((?:WC+[\\/:])*)/.source.replace("WC",co),gp=/(WCOD+)?/.source.replace("WCOD",pp),xp=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",co),_p=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",co),yp=new RegExp("^"+mp+gp+xp+_p+"$"),vp=["material","materials","bones","map"],so=class{constructor(t,e,n){let i=n||Dt.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},Dt=class{constructor(t,e,n){this.path=e,this.parsedPath=n||Dt.parseTrackName(e),this.node=Dt.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new Dt.Composite(t,e,n):new Dt(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(dp,"")}static parseTrackName(t){let e=yp.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);vp.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){let n=function(s){for(let a=0;ae&&(e=i,t=n)}return t}function ho(r,t){t.set(r)}function uo(r,t,e){let n,i;for(let s=0;s<3;s++){let a=s+3;n=r[s],i=t[s],e[s]=ni?n:i}}function Hi(r,t,e){for(let n=0;n<3;n++){let i=t[r+2*n],s=t[r+2*n+1],a=i-s,o=i+s;ae[n+3]&&(e[n+3]=o)}}function gi(r){let t=r[3]-r[0],e=r[4]-r[1],n=r[5]-r[2];return 2*(t*e+e*n+n*t)}function wp(r,t){if(!r.index){let e=r.attributes.position.count,n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,i;e>65535?i=new Uint32Array(new n(4*e)):i=new Uint16Array(new n(2*e)),r.setIndex(new Yt(i,1));for(let s=0;si-s);for(let i=0;ic&&(c=C),g&&vx&&(x=v);let y=r[M+2],S=r[M+3],P=y-S,O=y+S;Pl&&(l=O),g&&yp&&(p=y);let B=r[M+4],D=r[M+5],I=B-D,k=B+D;Ih&&(h=k),g&&Bd&&(d=B)}n[0]=s,n[1]=a,n[2]=o,n[3]=c,n[4]=l,n[5]=h,g&&(i[0]=f,i[1]=u,i[2]=m,i[3]=x,i[4]=p,i[5]=d)}function Tp(r,t,e,n){let i=1/0,s=1/0,a=1/0,o=-1/0,c=-1/0,l=-1/0;for(let h=t*6,f=(t+e)*6;ho&&(o=u);let m=r[h+2];mc&&(c=m);let x=r[h+4];xl&&(l=x)}n[0]=i,n[1]=s,n[2]=a,n[3]=o,n[4]=c,n[5]=l}function Ap(r,t,e,n,i){let s=e,a=e+n-1,o=i.pos,c=i.axis*2;for(;;){for(;s<=a&&t[s*6+c]=o;)a--;if(sr.candidate-t.candidate,xn=new Array(an).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),Ds=new Float32Array(6);function Cp(r,t,e,n,i,s){let a=-1,o=0;if(s===0)a=lo(t),a!==-1&&(o=(t[a]+t[a+3])/2);else if(s===1)a=lo(r),a!==-1&&(o=Pp(e,n,i,a));else if(s===2){let c=gi(r),l=1.25*i,h=n*6,f=(n+i)*6;for(let u=0;u<3;u++){let m=t[u],d=(t[u+3]-m)/an;if(i=C.candidate?Hi(v,e,C.rightCacheBounds):(Hi(v,e,C.leftCacheBounds),C.count++)}}for(let v=0;v<_;v++){let b=g[v],A=b.count,C=i-b.count,y=b.leftCacheBounds,S=b.rightCacheBounds,P=0;A!==0&&(P=gi(y)/c);let O=0;C!==0&&(O=gi(S)/c);let B=1+1.25*(P*A+O*C);B=an&&(A=an-1);let C=xn[A];C.count++,Hi(_,e,C.bounds)}let g=xn[an-1];ho(g.bounds,g.rightCacheBounds);for(let _=an-2;_>=0;_--){let v=xn[_],b=xn[_+1];uo(v.bounds,b.rightCacheBounds,v.rightCacheBounds)}let M=0;for(let _=0;_A&&(A=_),v>A&&(A=v);let C=(A-b)/2,y=g*2;s[m+y+0]=b+C,s[m+y+1]=C+(Math.abs(b)+C)*rc,bt[g+3]&&(t[g+3]=A)}}return s}function Lp(r,t){function e(g){u&&u(g/m)}function n(g,M,_,v=null,b=0){if(!x&&b>=c&&(x=!0,l&&(console.warn(\`MeshBVH: Max depth of \${c} reached when generating BVH. Consider increasing maxDepth.\`),console.warn(r))),_<=h||b>=c)return e(M+_),g.offset=M,g.count=_,g;let A=Cp(g.boundingData,v,a,M,_,f);if(A.axis===-1)return e(M+_),g.offset=M,g.count=_,g;let C=Ap(o,a,M,_,A);if(C===M||C===M+_)e(M+_),g.offset=M,g.count=_;else{g.splitAxis=A.axis;let y=new Un,S=M,P=C-M;g.left=y,y.boundingData=new Float32Array(6),po(a,S,P,y.boundingData,s),n(y,S,P,s,b+1);let O=new Un,B=C,D=_-P;g.right=O,O.boundingData=new Float32Array(6),po(a,B,D,O.boundingData,s),n(O,B,D,s,b+1)}return g}wp(r,t);let i=new Float32Array(6),s=new Float32Array(6),a=Rp(r,i),o=r.index.array,c=t.maxDepth,l=t.verbose,h=t.maxLeafTris,f=t.strategy,u=t.onProgress,m=r.index.count/3,x=!1,p=[],d=Sp(r);if(d.length===1){let g=d[0],M=new Un;M.boundingData=i,Tp(a,g.offset,g.count,s),n(M,g.offset,g.count,s),p.push(M)}else for(let g of d){let M=new Un;M.boundingData=new Float32Array(6),po(a,g.offset,g.count,M.boundingData,s),n(M,g.offset,g.count,s),p.push(M)}return p}function cc(r,t){let e=Lp(r,t),n,i,s,a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[u+6]=_/4,_=l(_,g),i[u+7]=M,_}}}var ge=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(t,e){let n=1/0,i=-1/0;for(let s=0,a=t.length;si?c:i}this.min=n,this.max=i}setFromPoints(t,e){let n=1/0,i=-1/0;for(let s=0,a=e.length;si?c:i}this.min=n,this.max=i}isSeparated(t){return this.min>t.max||t.min>this.max}};ge.prototype.setFromBox=function(){let r=new R;return function(e,n){let i=n.min,s=n.max,a=1/0,o=-1/0;for(let c=0;c<=1;c++)for(let l=0;l<=1;l++)for(let h=0;h<=1;h++){r.x=i.x*c+s.x*(1-c),r.y=i.y*l+s.y*(1-l),r.z=i.z*h+s.z*(1-h);let f=e.dot(r);a=Math.min(f,a),o=Math.max(f,o)}this.min=a,this.max=o}}();var Qp=function(){let r=new ge;return function(e,n){let i=e.points,s=e.satAxes,a=e.satBounds,o=n.points,c=n.satAxes,l=n.satBounds;for(let h=0;h<3;h++){let f=a[h],u=s[h];if(r.setFromPoints(u,o),f.isSeparated(r))return!1}for(let h=0;h<3;h++){let f=l[h],u=c[h];if(r.setFromPoints(u,i),f.isSeparated(r))return!1}}}();var Ip=function(){let r=new R,t=new R,e=new R;return function(i,s,a){let o=i.start,c=r,l=s.start,h=t;e.subVectors(o,l),r.subVectors(i.end,i.start),t.subVectors(s.end,s.start);let f=e.dot(h),u=h.dot(c),m=h.dot(h),x=e.dot(c),d=c.dot(c)*m-u*u,g,M;d!==0?g=(f*u-x*m)/d:g=0,M=(f+g*u)/m,a.x=g,a.y=M}}(),Wi=function(){let r=new At,t=new R,e=new R;return function(i,s,a,o){Ip(i,s,r);let c=r.x,l=r.y;if(c>=0&&c<=1&&l>=0&&l<=1){i.at(c,a),s.at(l,o);return}else if(c>=0&&c<=1){l<0?s.at(0,o):s.at(1,o),i.closestPointToPoint(o,!0,a);return}else if(l>=0&&l<=1){c<0?i.at(0,a):i.at(1,a),s.closestPointToPoint(a,!0,o);return}else{let h;c<0?h=i.start:h=i.end;let f;l<0?f=s.start:f=s.end;let u=t,m=e;if(i.closestPointToPoint(f,!0,t),s.closestPointToPoint(h,!0,e),u.distanceToSquared(f)<=m.distanceToSquared(h)){a.copy(u),o.copy(f);return}else{a.copy(h),o.copy(m);return}}}}(),lc=function(){let r=new R,t=new R,e=new Te,n=new me;return function(s,a){let{radius:o,center:c}=s,{a:l,b:h,c:f}=a;if(n.start=l,n.end=h,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o||(n.start=l,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o)||(n.start=h,n.end=f,n.closestPointToPoint(c,!0,r).distanceTo(c)<=o))return!0;let p=a.getPlane(e);if(Math.abs(p.distanceToPoint(c))<=o){let g=p.projectPoint(c,t);if(a.containsPoint(g))return!0}return!1}}();var Dp=1e-15;function xi(r){return Math.abs(r)new R),this.satBounds=new Array(4).fill().map(()=>new ge),this.points=[this.a,this.b,this.c],this.sphere=new Fn,this.plane=new Te,this.needsUpdate=!0}intersectsSphere(t){return lc(t,this)}update(){let t=this.a,e=this.b,n=this.c,i=this.points,s=this.satAxes,a=this.satBounds,o=s[0],c=a[0];this.getNormal(o),c.setFromPoints(o,i);let l=s[1],h=a[1];l.subVectors(t,e),h.setFromPoints(l,i);let f=s[2],u=a[2];f.subVectors(e,n),u.setFromPoints(f,i);let m=s[3],x=a[3];m.subVectors(n,t),x.setFromPoints(m,i),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(o,t),this.needsUpdate=!1}};xe.prototype.closestPointToSegment=function(){let r=new R,t=new R,e=new me;return function(i,s=null,a=null){let{start:o,end:c}=i,l=this.points,h,f=1/0;for(let u=0;u<3;u++){let m=(u+1)%3;e.start.copy(l[u]),e.end.copy(l[m]),Wi(e,i,r,t),h=r.distanceToSquared(t),h1-1e-10){let M=this.satBounds,_=this.satAxes;e[0]=m.a,e[1]=m.b,e[2]=m.c;for(let A=0;A<4;A++){let C=M[A],y=_[A];if(n.setFromPoints(y,e),C.isSeparated(n))return!1}let v=m.satBounds,b=m.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let A=0;A<4;A++){let C=v[A],y=b[A];if(n.setFromPoints(y,t),C.isSeparated(n))return!1}for(let A=0;A<4;A++){let C=_[A];for(let y=0;y<4;y++){let S=b[y];if(s.crossVectors(C,S),n.setFromPoints(s,t),i.setFromPoints(s,e),n.isSeparated(i))return!1}}return x&&(p||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),x.start.set(0,0,0),x.end.set(0,0,0)),!0}else{let M=this.points,_=!1,v=0;for(let I=0;I<3;I++){let k=M[I],Y=M[(I+1)%3];l.start.copy(k),l.end.copy(Y),l.delta(a);let Z=_?h.start:h.end,H=xi(g.distanceToPoint(k));if(xi(g.normal.dot(a))&&H){h.copy(l),v=2;break}if((g.intersectLine(l,Z)||H)&&!xi(Z.distanceTo(Y))){if(v++,_)break;_=!0}}if(v===1&&m.containsPoint(h.end))return x&&(x.start.copy(h.end),x.end.copy(h.end)),!0;if(v!==2)return!1;let b=m.points,A=!1,C=0;for(let I=0;I<3;I++){let k=b[I],Y=b[(I+1)%3];l.start.copy(k),l.end.copy(Y),l.delta(o);let Z=A?f.start:f.end,H=xi(d.distanceToPoint(k));if(xi(d.normal.dot(o))&&H){f.copy(l),C=2;break}if((d.intersectLine(l,Z)||H)&&!xi(Z.distanceTo(Y))){if(C++,A)break;A=!0}}if(C===1&&this.containsPoint(f.end))return x&&(x.start.copy(f.end),x.end.copy(f.end)),!0;if(C!==2)return!1;if(h.delta(a),f.delta(o),a.dot(o)<0){let I=f.start;f.start=f.end,f.end=I}let y=h.start.dot(a),S=h.end.dot(a),P=f.start.dot(a),O=f.end.dot(a),B=S0?x.start.copy(h.start):x.start.copy(f.start),c.subVectors(h.end,f.end),c.dot(a)<0?x.end.copy(h.end):x.end.copy(f.end)),!0)}}}();xe.prototype.distanceToPoint=function(){let r=new R;return function(e){return this.closestPointToPoint(e,r),e.distanceTo(r)}}();xe.prototype.distanceToTriangle=function(){let r=new R,t=new R,e=["a","b","c"],n=new me,i=new me;return function(a,o=null,c=null){let l=o||c?n:null;if(this.intersectsTriangle(a,l))return(o||c)&&(o&&l.getCenter(o),c&&l.getCenter(c)),0;let h=1/0;for(let f=0;f<3;f++){let u,m=e[f],x=a[m];this.closestPointToPoint(x,r),u=x.distanceToSquared(r),unew R),this.satAxes=new Array(3).fill().map(()=>new R),this.satBounds=new Array(3).fill().map(()=>new ge),this.alignedSatBounds=new Array(3).fill().map(()=>new ge),this.needsUpdate=!1,t&&this.min.copy(t),e&&this.max.copy(e),n&&this.matrix.copy(n)}set(t,e,n){this.min.copy(t),this.max.copy(e),this.matrix.copy(n),this.needsUpdate=!0}copy(t){this.min.copy(t.min),this.max.copy(t.max),this.matrix.copy(t.matrix),this.needsUpdate=!0}};_e.prototype.update=function(){return function(){let t=this.matrix,e=this.min,n=this.max,i=this.points;for(let l=0;l<=1;l++)for(let h=0;h<=1;h++)for(let f=0;f<=1;f++){let u=1*l|2*h|4*f,m=i[u];m.x=l?n.x:e.x,m.y=h?n.y:e.y,m.z=f?n.z:e.z,m.applyMatrix4(t)}let s=this.satBounds,a=this.satAxes,o=i[0];for(let l=0;l<3;l++){let h=a[l],f=s[l],u=1<new me),e=new Array(12).fill().map(()=>new me),n=new R,i=new R;return function(a,o=0,c=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(a))return(c||l)&&(a.getCenter(i),this.closestPointToPoint(i,n),a.closestPointToPoint(n,i),c&&c.copy(n),l&&l.copy(i)),0;let h=o*o,f=a.min,u=a.max,m=this.points,x=1/0;for(let d=0;d<8;d++){let g=m[d];i.copy(g).clamp(f,u);let M=g.distanceToSquared(i);if(M=0,m,x;u?(m=vi(r),x=Mi(r,o)):(m=Mi(r,o),x=vi(r));let d=Gs(m,s,n,Us)?Vs(m,t,e,n):null;if(d){let _=d.point[h];if(u?_<=s[x+l]:_>=s[x+l+3])return d}let M=Gs(x,s,n,Us)?Vs(x,t,e,n):null;return d&&M?d.distance<=M.distance?d:M:d||M||null}}var xc=function(){let r,t,e=[],n=new _i(()=>new fe);return function(...a){r=n.getPrimitive(),t=n.getPrimitive(),e.push(r,t);let o=i(...a);n.releasePrimitive(r),n.releasePrimitive(t),e.pop(),e.pop();let c=e.length;return c>0&&(t=e[c-1],r=e[c-2]),o};function i(s,a,o,c,l=null,h=0,f=0){function u(_){let v=_*2,b=_n,A=yn;for(;!cn(v,b);)_=vi(_),v=_*2;return kn(_,A)}function m(_){let v=_*2,b=_n,A=yn;for(;!cn(v,b);)_=Mi(_,A),v=_*2;return kn(_,A)+yi(v,b)}let x=s*2,p=wi,d=_n,g=yn;if(cn(x,d)){let _=kn(s,g),v=yi(x,d);return Le(s,p,r),c(_,v,!1,f,h+s,r)}else{let _=vi(s),v=Mi(s,g),b=_,A=v,C,y,S,P;if(l&&(S=r,P=t,Le(b,p,S),Le(A,p,P),C=l(S),y=l(P),yi.intersectsBox(y),intersectsTriangle:y=>{y.a.applyMatrix4(l),y.b.applyMatrix4(l),y.c.applyMatrix4(l),y.needsUpdate=!0;for(let S=b*3,P=(A+b)*3;Snew xe),Ye=class{static serialize(t,e={}){if(e.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),Ye.serialize(arguments[0],{cloneBuffers:arguments[2]===void 0?!0:arguments[2]});e=Zi({cloneBuffers:!0},e);let n=t.geometry,i=t._roots,s=n.getIndex(),a;return e.cloneBuffers?a={roots:i.map(o=>o.slice()),index:s.array.slice()}:a={roots:i,index:s.array},a}static deserialize(t,e,n={}){if(typeof n=="boolean")return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),Ye.deserialize(arguments[0],arguments[1],{setIndex:arguments[2]===void 0?!0:arguments[2]});n=Zi({setIndex:!0},n);let{index:i,roots:s}=t,a=new Ye(e,Co(Zi({},n),{[yo]:!0}));if(a._roots=s,n.setIndex){let o=e.getIndex();if(o===null){let c=new Yt(t.index,1,!1);e.setIndex(c)}else o.array!==i&&(o.array.set(i),o.needsUpdate=!0)}return a}constructor(t,e={}){if(t.isBufferGeometry){if(t.index&&t.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.")}else throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e=Object.assign({strategy:0,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[yo]:!1},e),e.useSharedArrayBuffer&&typeof SharedArrayBuffer=="undefined")throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,e[yo]||(this._roots=cc(t,e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new fe))),this.geometry=t}refit(t=null){t&&Array.isArray(t)&&(t=new Set(t));let e=this.geometry,n=e.index.array,i=e.attributes.position,s,a,o,c,l=0,h=this._roots;for(let u=0,m=h.length;uA&&(A=B),DC&&(C=D),Iy&&(y=I)}return c[u+0]!==_||c[u+1]!==v||c[u+2]!==b||c[u+3]!==A||c[u+4]!==C||c[u+5]!==y?(c[u+0]=_,c[u+1]=v,c[u+2]=b,c[u+3]=A,c[u+4]=C,c[u+5]=y,!0):!1}else{let g=u+8,M=a[u+6],_=g+m,v=M+m,b=x,A=!1,C=!1;t?b||(A=t.has(_),C=t.has(v),b=!A&&!C):(A=!0,C=!0);let y=b||A,S=b||C,P=!1;y&&(P=f(g,m,b));let O=!1;S&&(O=f(M,m,b));let B=P||O;if(B)for(let D=0;D<3;D++){let I=g+D,k=M+D,Y=c[I],Z=c[I+3],H=c[k],$=c[k+3];c[u+D]=Y$?Z:$}return B}}}traverse(t,e=0){let n=this._roots[e],i=new Uint32Array(n),s=new Uint16Array(n);a(0);function a(o,c=0){let l=o*2,h=s[l+15]===65535;if(h){let f=i[o+6],u=s[l+14];t(c,h,new Float32Array(n,o*4,6),f,u)}else{let f=o+32/4,u=i[o+6],m=i[o+7];t(c,h,new Float32Array(n,o*4,6),m)||(a(f,c+1),a(u,c+1))}}}raycast(t,e=Ue){let n=this._roots,i=this.geometry,s=[],a=e.isMaterial,o=Array.isArray(e),c=i.groups,l=a?e.side:e;for(let h=0,f=n.length;h{let g=x*3;return u(m,g,g+1,g+2,p,d)}}t={boundsTraverseOrder:n,intersectsBounds:t,intersectsTriangle:e,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}let s=Xe.getPrimitive(),{boundsTraverseOrder:a,intersectsBounds:o,intersectsRange:c,intersectsTriangle:l}=t;if(c&&l){let u=c;c=(m,x,p,d,g)=>u(m,x,p,d,g)?!0:xo(m,x,i,l,p,d,s)}else c||(l?c=(u,m,x,p)=>xo(u,m,i,l,x,p,s):c=(u,m,x)=>x);let h=!1,f=0;for(let u of this._roots){if(Si(u),h=xc(0,i,o,c,a,f),qi(),h)break;f+=u.byteLength}return Xe.releasePrimitive(s),h}bvhcast(t,e,n){let{intersectsRanges:i,intersectsTriangles:s}=n,a=this.geometry.index,o=this.geometry.attributes.position,c=t.geometry.index,l=t.geometry.attributes.position;Ti.copy(e).invert();let h=Xe.getPrimitive(),f=Xe.getPrimitive();if(s){let m=function(x,p,d,g,M,_,v,b){for(let A=d,C=d+g;AMo.intersectsBox(m),intersectsRange:(m,x,p,d,g,M)=>(vo.copy(M),vo.applyMatrix4(Ti),t.shapecast({intersectsBounds:_=>vo.intersectsBox(_),intersectsRange:(_,v,b,A,C)=>i(m,x,_,v,d,g,A,C)}))});return Xe.releasePrimitive(h),Xe.releasePrimitive(f),u}intersectsBox(t,e){return Vn.set(t.min,t.max,e),Vn.needsUpdate=!0,this.shapecast({intersectsBounds:n=>Vn.intersectsBox(n),intersectsTriangle:n=>Vn.intersectsTriangle(n)})}intersectsSphere(t){return this.shapecast({intersectsBounds:e=>t.intersectsBox(e),intersectsTriangle:e=>e.intersectsSphere(t)})}closestPointToGeometry(t,e,n={},i={},s=0,a=1/0){t.boundingBox||t.computeBoundingBox(),Vn.set(t.boundingBox.min,t.boundingBox.max,e),Vn.needsUpdate=!0;let o=this.geometry,c=o.attributes.position,l=o.index,h=t.attributes.position,f=t.index,u=Xe.getPrimitive(),m=Xe.getPrimitive(),x=Hs,p=Bp,d=null,g=null;i&&(d=Up,g=kp);let M=1/0,_=null,v=null;return Ti.copy(e).invert(),Xi.matrix.copy(Ti),this.shapecast({boundsTraverseOrder:b=>Vn.distanceToBox(b),intersectsBounds:(b,A,C)=>C{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:C=>Xi.distanceToBox(C),intersectsBounds:(C,y,S)=>S{for(let S=C*3,P=(C+y)*3;S(Yi.copy(t).clamp(h.min,h.max),Yi.distanceToSquared(t)),intersectsBounds:(h,f,u)=>u{h.closestPointToPoint(t,Yi);let u=t.distanceToSquared(Yi);return u{Le(0,new Float32Array(n),yc),t.union(yc)}),t}};var bo=self;bo.addEventListener("message",async function({data:r}){let t=performance.now();function e(o){let c=performance.now();(c-t>=10||o===1)&&(postMessage({error:void 0,serialized:void 0,position:void 0,progress:o}),t=c)}let{id:n,index:i,position:s,options:a}=r;try{let o=new ke;if(o.setAttribute("position",new Yt(s,3,!1)),i&&o.setIndex(new Yt(i,1,!1)),a.includedProgressCallback&&(a.onProgress=e),a.groups){let h=a.groups;for(let f in h){let u=h[f];o.addGroup(u.start,u.count,u.materialIndex)}}let c=new Ye(o,a),l=Ye.serialize(c,{cloneBuffers:!1});bo.postMessage({id:n,error:void 0,serialized:l,position:s,progress:1},[l.index.buffer,s.buffer,...l.roots])}catch(o){bo.postMessage({id:n,error:o,serialized:void 0,position:void 0,progress:1})}}); +/*! Bundled license information: + +three/build/three.module.js: + (** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + *) +*/ +`)}var RC=class{constructor(){this.running=!1;this.worker=new EB,this.worker.onerror=r=>{throw r.message?new Error(`[GenerateMeshBVHWorker] Could not create Web Worker with error "${r.message}"`):new Error("[GenerateMeshBVHWorker] Could not create Web Worker.")}}isRunning(){return this.running}generate(r,e={}){if(this.running){ne.warn("[GenerateMeshBVHWorker] Already running job.");return}if(!this.worker){ne.warn("[GenerateMeshBVHWorker] Worker has been disposed.");return}let{worker:i}=this;this.running=!0;let n=new Map;r.forEach(a=>{n.set(a.id,a)});let s=0;return new Promise((a,o)=>{let l=()=>{++s===n.size&&(this.running=!1,i.onmessage=null,a())};i.onerror=c=>{ne.warn(`[GenerateMeshBVHWorker] ${c.message}`),o(new Error(`[GenerateMeshBVHWorker] ${c.message}`)),this.running=!1},i.onmessage=c=>{this.running=!1;let{data:u}=c;if(u.error)ne.warn(u.error),l();else if(u.serialized){let{serialized:h,position:p,id:d}=u,f=n.get(d),m=Nc.deserialize(h,f,{setIndex:!1}),g=Object.assign({setBoundingBox:!0},e);if(g.transferred&&(f.attributes.position.array=p),f.index)e.saveOriginalIndex&&!f.userData.originalIndex&&(f.userData.originalIndex=f.index.array),ne.debug("before update, index:",f.index.array),f.index.array=h.index;else{let y=new jt(h.index,1,!1);f.setIndex(y)}f.index&&(ne.debug("after update, index:",f.index.array),f.index.needsUpdate=!0),g.setBoundingBox&&!f.boundingBox&&(f.boundingBox=m.getBoundingBox(new Ot)),f.boundsTree=m,l()}else e.onProgress&&e.onProgress(u.progress)};for(let c of n){let u=c[0],h=c[1],p=h.index?h.index.array:void 0,d=h.attributes.position,f=d.array;if(d.isInterleavedBufferAttribute||p&&p.isInterleavedBufferAttribute){ne.warn("[GenerateMeshBVHWorker] InterleavedBufferAttribute are not supported for the geometry attributes."),l();continue}let m=[];e.transferred&&(m.push(f),p&&(m.push(p),e.saveOriginalIndex&&(h.userData.originalIndex=p.slice()))),i.postMessage({id:u,index:p,position:f,options:Mn(Ur({},e),{onProgress:null,includedProgressCallback:Boolean(e.onProgress),groups:[...h.groups]})},m.length>0?m.map(g=>g.buffer):[])}})}dispose(){this.worker.terminate(),this.worker=void 0}};function bB(){return Nx(`var vr="149";var co=0,Pr=1,ho=2;var Ga=1,uo=2,li=3,nn=0,ye=1,tn=2;var en=0,Gn=1,Rr=2,Lr=3,Ir=4,fo=5,Bn=100,po=101,mo=102,Dr=103,Nr=104,go=200,_o=201,xo=202,yo=203,Ha=204,Wa=205,vo=206,Mo=207,bo=208,wo=209,So=210,To=0,Ao=1,Eo=2,Gs=3,Co=4,Po=5,Ro=6,Lo=7,Xa=0,Io=1,Do=2,We=0,No=1,Fo=2,zo=3,Oo=4,Uo=5,qa=300,Xn=301,qn=302,Hs=303,Ws=304,ns=306,Xs=1e3,Pe=1001,qs=1002,ae=1003,Fr=1004;var us=1005;var Se=1006,Bo=1007;var pi=1008;var yn=1009,ko=1010,Vo=1011,Ya=1012,Go=1013,mn=1014,gn=1015,mi=1016,Ho=1017,Wo=1018,Hn=1020,Xo=1021,Re=1023,qo=1024,Yo=1025,_n=1026,Yn=1027,Zo=1028,Jo=1029,$o=1030,Ko=1031,jo=1033,ds=33776,fs=33777,ps=33778,ms=33779,zr=35840,Or=35841,Ur=35842,Br=35843,Qo=36196,kr=37492,Vr=37496,Gr=37808,Hr=37809,Wr=37810,Xr=37811,qr=37812,Yr=37813,Zr=37814,Jr=37815,$r=37816,Kr=37817,jr=37818,Qr=37819,ta=37820,ea=37821,gs=36492,tl=36283,na=36284,ia=36285,sa=36286;var ki=2300,Vi=2301,_s=2302,ra=2400,aa=2401,oa=2402;var vn=3e3,zt=3001,el=3200,nl=3201,il=0,sl=1;var Ie="srgb",gi="srgb-linear";var xs=7680;var rl=519,la=35044;var ca="300 es",Ys=1035,sn=class{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;let n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;let i=this._listeners[t];if(i!==void 0){let s=i.indexOf(e);s!==-1&&i.splice(s,1)}}dispatchEvent(t){if(this._listeners===void 0)return;let n=this._listeners[t.type];if(n!==void 0){t.target=this;let i=n.slice(0);for(let s=0,o=i.length;s>8&255]+ee[r>>16&255]+ee[r>>24&255]+"-"+ee[t&255]+ee[t>>8&255]+"-"+ee[t>>16&15|64]+ee[t>>24&255]+"-"+ee[e&63|128]+ee[e>>8&255]+"-"+ee[e>>16&255]+ee[e>>24&255]+ee[n&255]+ee[n>>8&255]+ee[n>>16&255]+ee[n>>24&255]).toLowerCase()}function ue(r,t,e){return Math.max(t,Math.min(e,r))}function Mr(r,t){return(r%t+t)%t}function al(r,t,e,n,i){return n+(r-t)*(i-n)/(e-t)}function ol(r,t,e){return r!==t?(e-r)/(t-r):0}function di(r,t,e){return(1-e)*r+e*t}function ll(r,t,e,n){return di(r,t,1-Math.exp(-e*n))}function cl(r,t=1){return t-Math.abs(Mr(r,t*2)-t)}function hl(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*(3-2*r))}function ul(r,t,e){return r<=t?0:r>=e?1:(r=(r-t)/(e-t),r*r*r*(r*(r*6-15)+10))}function dl(r,t){return r+Math.floor(Math.random()*(t-r+1))}function fl(r,t){return r+Math.random()*(t-r)}function pl(r){return r*(.5-Math.random())}function ml(r){r!==void 0&&(ha=r);let t=ha+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function gl(r){return r*ui}function _l(r){return r*Gi}function Zs(r){return(r&r-1)===0&&r!==0}function xl(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Hi(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function yl(r,t,e,n,i){let s=Math.cos,o=Math.sin,a=s(e/2),c=o(e/2),l=s((t+n)/2),h=o((t+n)/2),f=s((t-n)/2),u=o((t-n)/2),m=s((n-t)/2),_=o((n-t)/2);switch(i){case"XYX":r.set(a*h,c*f,c*u,a*l);break;case"YZY":r.set(c*u,a*h,c*f,a*l);break;case"ZXZ":r.set(c*f,c*u,a*h,a*l);break;case"XZX":r.set(a*h,c*_,c*m,a*l);break;case"YXY":r.set(c*m,a*h,c*_,a*l);break;case"ZYZ":r.set(c*_,c*m,a*h,a*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function ci(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function he(r,t){switch(t.constructor){case Float32Array:return r;case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var Za=Object.freeze({__proto__:null,DEG2RAD:ui,RAD2DEG:Gi,ceilPowerOfTwo:xl,clamp:ue,damp:ll,degToRad:gl,denormalize:ci,euclideanModulo:Mr,floorPowerOfTwo:Hi,generateUUID:jn,inverseLerp:ol,isPowerOfTwo:Zs,lerp:di,mapLinear:al,normalize:he,pingpong:cl,radToDeg:_l,randFloat:fl,randFloatSpread:pl,randInt:dl,seededRandom:ml,setQuaternionFromProperEuler:yl,smootherstep:ul,smoothstep:hl}),Nt=class{constructor(t=0,e=0){Nt.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let n=Math.cos(e),i=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*n-o*i+t.x,this.y=s*i+o*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},oe=class{constructor(){oe.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,s,o,a,c,l){let h=this.elements;return h[0]=t,h[1]=i,h[2]=a,h[3]=e,h[4]=s,h[5]=c,h[6]=n,h[7]=o,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[3],c=n[6],l=n[1],h=n[4],f=n[7],u=n[2],m=n[5],_=n[8],p=i[0],d=i[3],v=i[6],T=i[1],b=i[4],M=i[7],A=i[2],C=i[5],I=i[8];return s[0]=o*p+a*T+c*A,s[3]=o*d+a*b+c*C,s[6]=o*v+a*M+c*I,s[1]=l*p+h*T+f*A,s[4]=l*d+h*b+f*C,s[7]=l*v+h*M+f*I,s[2]=u*p+m*T+_*A,s[5]=u*d+m*b+_*C,s[8]=u*v+m*M+_*I,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8];return e*o*h-e*a*l-n*s*h+n*a*c+i*s*l-i*o*c}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=h*o-a*l,u=a*c-h*s,m=l*s-o*c,_=e*f+n*u+i*m;if(_===0)return this.set(0,0,0,0,0,0,0,0,0);let p=1/_;return t[0]=f*p,t[1]=(i*l-h*n)*p,t[2]=(a*n-i*o)*p,t[3]=u*p,t[4]=(h*e-i*c)*p,t[5]=(i*s-a*e)*p,t[6]=m*p,t[7]=(n*c-l*e)*p,t[8]=(o*e-n*s)*p,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,s,o,a){let c=Math.cos(s),l=Math.sin(s);return this.set(n*c,n*l,-n*(c*o+l*a)+o+t,-i*l,i*c,-i*(-l*o+c*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(ys.makeScale(t,e)),this}rotate(t){return this.premultiply(ys.makeRotation(-t)),this}translate(t,e){return this.premultiply(ys.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}},ys=new oe;function Ja(r){for(let t=r.length-1;t>=0;--t)if(r[t]>=65535)return!0;return!1}function Wi(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function xn(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Bi(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var vs={[Ie]:{[gi]:xn},[gi]:{[Ie]:Bi}},se={legacyMode:!0,get workingColorSpace(){return gi},set workingColorSpace(r){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(r,t,e){if(this.legacyMode||t===e||!t||!e)return r;if(vs[t]&&vs[t][e]!==void 0){let n=vs[t][e];return r.r=n(r.r),r.g=n(r.g),r.b=n(r.b),r}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(r,t){return this.convert(r,this.workingColorSpace,t)},toWorkingColorSpace:function(r,t){return this.convert(r,t,this.workingColorSpace)}},$a={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Wt={r:0,g:0,b:0},Ae={h:0,s:0,l:0},vi={h:0,s:0,l:0};function Ms(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}function Mi(r,t){return t.r=r.r,t.g=r.g,t.b=r.b,t}var Ot=class{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,e===void 0&&n===void 0?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=Ie){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,se.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=se.workingColorSpace){return this.r=t,this.g=e,this.b=n,se.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=se.workingColorSpace){if(t=Mr(t,1),e=ue(e,0,1),n=ue(n,0,1),e===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+e):n+e-n*e,o=2*n-s;this.r=Ms(o,s,t+1/3),this.g=Ms(o,s,t),this.b=Ms(o,s,t-1/3)}return se.toWorkingColorSpace(this,i),this}setStyle(t,e=Ie){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(t)){let s,o=i[1],a=i[2];switch(o){case"rgb":case"rgba":if(s=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(s[1],10))/255,this.g=Math.min(255,parseInt(s[2],10))/255,this.b=Math.min(255,parseInt(s[3],10))/255,se.toWorkingColorSpace(this,e),n(s[4]),this;if(s=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(s[1],10))/100,this.g=Math.min(100,parseInt(s[2],10))/100,this.b=Math.min(100,parseInt(s[3],10))/100,se.toWorkingColorSpace(this,e),n(s[4]),this;break;case"hsl":case"hsla":if(s=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(a)){let c=parseFloat(s[1])/360,l=parseFloat(s[2])/100,h=parseFloat(s[3])/100;return n(s[4]),this.setHSL(c,l,h,e)}break}}else if(i=/^\\#([A-Fa-f\\d]+)$/.exec(t)){let s=i[1],o=s.length;if(o===3)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,se.toWorkingColorSpace(this,e),this;if(o===6)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,se.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=Ie){let n=$a[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=xn(t.r),this.g=xn(t.g),this.b=xn(t.b),this}copyLinearToSRGB(t){return this.r=Bi(t.r),this.g=Bi(t.g),this.b=Bi(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Ie){return se.fromWorkingColorSpace(Mi(this,Wt),t),ue(Wt.r*255,0,255)<<16^ue(Wt.g*255,0,255)<<8^ue(Wt.b*255,0,255)<<0}getHexString(t=Ie){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=se.workingColorSpace){se.fromWorkingColorSpace(Mi(this,Wt),e);let n=Wt.r,i=Wt.g,s=Wt.b,o=Math.max(n,i,s),a=Math.min(n,i,s),c,l,h=(a+o)/2;if(a===o)c=0,l=0;else{let f=o-a;switch(l=h<=.5?f/(o+a):f/(2-o-a),o){case n:c=(i-s)/f+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement!="undefined"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&t instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap){let e=Wi("canvas");e.width=t.width,e.height=t.height;let n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);let i=n.getImageData(0,0,t.width,t.height),s=i.data;for(let o=0;o0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==qa)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Xs:t.x=t.x-Math.floor(t.x);break;case Pe:t.x=t.x<0?0:1;break;case qs:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Xs:t.y=t.y-Math.floor(t.y);break;case Pe:t.y=t.y<0?0:1;break;case qs:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}};le.DEFAULT_IMAGE=null;le.DEFAULT_MAPPING=qa;le.DEFAULT_ANISOTROPY=1;var Xt=class{constructor(t=0,e=0,n=0,i=1){Xt.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=this.w,o=t.elements;return this.x=o[0]*e+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*e+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*e+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*e+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,s,c=t.elements,l=c[0],h=c[4],f=c[8],u=c[1],m=c[5],_=c[9],p=c[2],d=c[6],v=c[10];if(Math.abs(h-u)<.01&&Math.abs(f-p)<.01&&Math.abs(_-d)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+p)<.1&&Math.abs(_+d)<.1&&Math.abs(l+m+v-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;let b=(l+1)/2,M=(m+1)/2,A=(v+1)/2,C=(h+u)/4,I=(f+p)/4,x=(_+d)/4;return b>M&&b>A?b<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(b),i=C/n,s=I/n):M>A?M<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(M),n=C/i,s=x/i):A<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(A),n=I/s,i=x/s),this.set(n,i,s,e),this}let T=Math.sqrt((d-_)*(d-_)+(f-p)*(f-p)+(u-h)*(u-h));return Math.abs(T)<.001&&(T=1),this.x=(d-_)/T,this.y=(f-p)/T,this.z=(u-h)/T,this.w=Math.acos((l+m+v-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},qe=class extends sn{constructor(t=1,e=1,n={}){super(),this.isWebGLRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Xt(0,0,t,e),this.scissorTest=!1,this.viewport=new Xt(0,0,t,e);let i={width:t,height:e,depth:1};this.texture=new le(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Se,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null,this.samples=n.samples!==void 0?n.samples:0}setSize(t,e,n=1){(this.width!==t||this.height!==e||this.depth!==n)&&(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;let e=Object.assign({},t.texture.image);return this.texture.source=new qi(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,t.depthTexture!==null&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},Yi=class extends le{constructor(t=null,e=1,n=1,i=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ae,this.minFilter=ae,this.wrapR=Pe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Js=class extends le{constructor(t=null,e=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:n,depth:i},this.magFilter=ae,this.minFilter=ae,this.wrapR=Pe,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var rn=class{constructor(t=0,e=0,n=0,i=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=n,this._w=i}static slerpFlat(t,e,n,i,s,o,a){let c=n[i+0],l=n[i+1],h=n[i+2],f=n[i+3],u=s[o+0],m=s[o+1],_=s[o+2],p=s[o+3];if(a===0){t[e+0]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f;return}if(a===1){t[e+0]=u,t[e+1]=m,t[e+2]=_,t[e+3]=p;return}if(f!==p||c!==u||l!==m||h!==_){let d=1-a,v=c*u+l*m+h*_+f*p,T=v>=0?1:-1,b=1-v*v;if(b>Number.EPSILON){let A=Math.sqrt(b),C=Math.atan2(A,v*T);d=Math.sin(d*C)/A,a=Math.sin(a*C)/A}let M=a*T;if(c=c*d+u*M,l=l*d+m*M,h=h*d+_*M,f=f*d+p*M,d===1-a){let A=1/Math.sqrt(c*c+l*l+h*h+f*f);c*=A,l*=A,h*=A,f*=A}}t[e]=c,t[e+1]=l,t[e+2]=h,t[e+3]=f}static multiplyQuaternionsFlat(t,e,n,i,s,o){let a=n[i],c=n[i+1],l=n[i+2],h=n[i+3],f=s[o],u=s[o+1],m=s[o+2],_=s[o+3];return t[e]=a*_+h*f+c*m-l*u,t[e+1]=c*_+h*u+l*f-a*m,t[e+2]=l*_+h*m+a*u-c*f,t[e+3]=h*_-a*f-c*u-l*m,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){let n=t._x,i=t._y,s=t._z,o=t._order,a=Math.cos,c=Math.sin,l=a(n/2),h=a(i/2),f=a(s/2),u=c(n/2),m=c(i/2),_=c(s/2);switch(o){case"XYZ":this._x=u*h*f+l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f-u*m*_;break;case"YXZ":this._x=u*h*f+l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f+u*m*_;break;case"ZXY":this._x=u*h*f-l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f-u*m*_;break;case"ZYX":this._x=u*h*f-l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f+u*m*_;break;case"YZX":this._x=u*h*f+l*m*_,this._y=l*m*f+u*h*_,this._z=l*h*_-u*m*f,this._w=l*h*f-u*m*_;break;case"XZY":this._x=u*h*f-l*m*_,this._y=l*m*f-u*h*_,this._z=l*h*_+u*m*f,this._w=l*h*f+u*m*_;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return e!==!1&&this._onChangeCallback(),this}setFromAxisAngle(t,e){let n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,n=e[0],i=e[4],s=e[8],o=e[1],a=e[5],c=e[9],l=e[2],h=e[6],f=e[10],u=n+a+f;if(u>0){let m=.5/Math.sqrt(u+1);this._w=.25/m,this._x=(h-c)*m,this._y=(s-l)*m,this._z=(o-i)*m}else if(n>a&&n>f){let m=2*Math.sqrt(1+n-a-f);this._w=(h-c)/m,this._x=.25*m,this._y=(i+o)/m,this._z=(s+l)/m}else if(a>f){let m=2*Math.sqrt(1+a-n-f);this._w=(s-l)/m,this._x=(i+o)/m,this._y=.25*m,this._z=(c+h)/m}else{let m=2*Math.sqrt(1+f-n-a);this._w=(o-i)/m,this._x=(s+l)/m,this._y=(c+h)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ue(this.dot(t),-1,1)))}rotateTowards(t,e){let n=this.angleTo(t);if(n===0)return this;let i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let n=t._x,i=t._y,s=t._z,o=t._w,a=e._x,c=e._y,l=e._z,h=e._w;return this._x=n*h+o*a+i*l-s*c,this._y=i*h+o*c+s*a-n*l,this._z=s*h+o*l+n*c-i*a,this._w=o*h-n*a-i*c-s*l,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let n=this._x,i=this._y,s=this._z,o=this._w,a=o*t._w+n*t._x+i*t._y+s*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=n,this._y=i,this._z=s,this;let c=1-a*a;if(c<=Number.EPSILON){let m=1-e;return this._w=m*o+e*this._w,this._x=m*n+e*this._x,this._y=m*i+e*this._y,this._z=m*s+e*this._z,this.normalize(),this._onChangeCallback(),this}let l=Math.sqrt(c),h=Math.atan2(l,a),f=Math.sin((1-e)*h)/l,u=Math.sin(e*h)/l;return this._w=o*f+this._w*u,this._x=n*f+this._x*u,this._y=i*f+this._y*u,this._z=s*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){let t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),s=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(s),n*Math.cos(s),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},N=class{constructor(t=0,e=0,n=0){N.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(ua.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ua.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6]*i,this.y=s[1]*e+s[4]*n+s[7]*i,this.z=s[2]*e+s[5]*n+s[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,n=this.y,i=this.z,s=t.elements,o=1/(s[3]*e+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*e+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*e+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*e+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(t){let e=this.x,n=this.y,i=this.z,s=t.x,o=t.y,a=t.z,c=t.w,l=c*e+o*i-a*n,h=c*n+a*e-s*i,f=c*i+s*n-o*e,u=-s*e-o*n-a*i;return this.x=l*c+u*-s+h*-a-f*-o,this.y=h*c+u*-o+f*-s-l*-a,this.z=f*c+u*-a+l*-o-h*-s,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,n=this.y,i=this.z,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i,this.y=s[1]*e+s[5]*n+s[9]*i,this.z=s[2]*e+s[6]*n+s[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let n=t.x,i=t.y,s=t.z,o=e.x,a=e.y,c=e.z;return this.x=i*c-s*a,this.y=s*o-n*c,this.z=n*a-i*o,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return ws.copy(this).projectOnVector(t),this.sub(ws)}reflect(t){return this.sub(ws.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let n=this.dot(t)/e;return Math.acos(ue(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){let i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=(Math.random()-.5)*2,e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},ws=new N,ua=new rn,Mn=class{constructor(t=new N(1/0,1/0,1/0),e=new N(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=t.length;cs&&(s=h),f>o&&(o=f),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(s,o,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,s=-1/0,o=-1/0,a=-1/0;for(let c=0,l=t.count;cs&&(s=h),f>o&&(o=f),u>a&&(a=u)}return this.min.set(e,n,i),this.max.set(s,o,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,hn),hn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ei),bi.subVectors(this.max,ei),An.subVectors(t.a,ei),En.subVectors(t.b,ei),Cn.subVectors(t.c,ei),Je.subVectors(En,An),$e.subVectors(Cn,En),un.subVectors(An,Cn);let e=[0,-Je.z,Je.y,0,-$e.z,$e.y,0,-un.z,un.y,Je.z,0,-Je.x,$e.z,0,-$e.x,un.z,0,-un.x,-Je.y,Je.x,0,-$e.y,$e.x,0,-un.y,un.x,0];return!Ts(e,An,En,Cn,bi)||(e=[1,0,0,0,1,0,0,0,1],!Ts(e,An,En,Cn,bi))?!1:(wi.crossVectors(Je,$e),e=[wi.x,wi.y,wi.z],Ts(e,An,En,Cn,bi))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return hn.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=this.getSize(hn).length()*.5,t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Ue[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ue[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ue[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ue[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ue[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ue[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ue[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ue[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ue),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},Ue=[new N,new N,new N,new N,new N,new N,new N,new N],hn=new N,Ss=new Mn,An=new N,En=new N,Cn=new N,Je=new N,$e=new N,un=new N,ei=new N,bi=new N,wi=new N,dn=new N;function Ts(r,t,e,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){dn.fromArray(r,s);let a=i.x*Math.abs(dn.x)+i.y*Math.abs(dn.y)+i.z*Math.abs(dn.z),c=t.dot(dn),l=e.dot(dn),h=n.dot(dn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>a)return!1}return!0}var Ml=new Mn,ni=new N,As=new N,_i=class{constructor(t=new N,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let n=this.center;e!==void 0?n.copy(e):Ml.setFromPoints(t).getCenter(n);let i=0;for(let s=0,o=t.length;sthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;ni.subVectors(t,this.center);let e=ni.lengthSq();if(e>this.radius*this.radius){let n=Math.sqrt(e),i=(n-this.radius)*.5;this.center.addScaledVector(ni,i/n),this.radius+=i}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(As.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(ni.copy(t.center).add(As)),this.expandByPoint(ni.copy(t.center).sub(As))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}},Be=new N,Es=new N,Si=new N,Ke=new N,Cs=new N,Ti=new N,Ps=new N,$s=class{constructor(t=new N,e=new N(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Be)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=Be.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Be.copy(this.direction).multiplyScalar(e).add(this.origin),Be.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Es.copy(t).add(e).multiplyScalar(.5),Si.copy(e).sub(t).normalize(),Ke.copy(this.origin).sub(Es);let s=t.distanceTo(e)*.5,o=-this.direction.dot(Si),a=Ke.dot(this.direction),c=-Ke.dot(Si),l=Ke.lengthSq(),h=Math.abs(1-o*o),f,u,m,_;if(h>0)if(f=o*c-a,u=o*a-c,_=s*h,f>=0)if(u>=-_)if(u<=_){let p=1/h;f*=p,u*=p,m=f*(f+o*u+2*a)+u*(o*f+u+2*c)+l}else u=s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;else u=-s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;else u<=-_?(f=Math.max(0,-(-o*s+a)),u=f>0?-s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l):u<=_?(f=0,u=Math.min(Math.max(-s,-c),s),m=u*(u+2*c)+l):(f=Math.max(0,-(o*s+a)),u=f>0?s:Math.min(Math.max(-s,-c),s),m=-f*f+u*(u+2*c)+l);else u=o>0?-s:s,f=Math.max(0,-(o*u+a)),m=-f*f+u*(u+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(f).add(this.origin),i&&i.copy(Si).multiplyScalar(u).add(Es),m}intersectSphere(t,e){Be.subVectors(t.center,this.origin);let n=Be.dot(this.direction),i=Be.dot(Be)-n*n,s=t.radius*t.radius;if(i>s)return null;let o=Math.sqrt(s-i),a=n-o,c=n+o;return a<0&&c<0?null:a<0?this.at(c,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){let n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,s,o,a,c,l=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),h>=0?(s=(t.min.y-u.y)*h,o=(t.max.y-u.y)*h):(s=(t.max.y-u.y)*h,o=(t.min.y-u.y)*h),n>o||s>i||((s>n||isNaN(n))&&(n=s),(o=0?(a=(t.min.z-u.z)*f,c=(t.max.z-u.z)*f):(a=(t.max.z-u.z)*f,c=(t.min.z-u.z)*f),n>c||a>i)||((a>n||n!==n)&&(n=a),(c=0?n:i,e)}intersectsBox(t){return this.intersectBox(t,Be)!==null}intersectTriangle(t,e,n,i,s){Cs.subVectors(e,t),Ti.subVectors(n,t),Ps.crossVectors(Cs,Ti);let o=this.direction.dot(Ps),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;Ke.subVectors(this.origin,t);let c=a*this.direction.dot(Ti.crossVectors(Ke,Ti));if(c<0)return null;let l=a*this.direction.dot(Cs.cross(Ke));if(l<0||c+l>o)return null;let h=-a*Ke.dot(Ps);return h<0?null:this.at(h/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},qt=class{constructor(){qt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,s,o,a,c,l,h,f,u,m,_,p,d){let v=this.elements;return v[0]=t,v[4]=e,v[8]=n,v[12]=i,v[1]=s,v[5]=o,v[9]=a,v[13]=c,v[2]=l,v[6]=h,v[10]=f,v[14]=u,v[3]=m,v[7]=_,v[11]=p,v[15]=d,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new qt().fromArray(this.elements)}copy(t){let e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){let e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,n=t.elements,i=1/Pn.setFromMatrixColumn(t,0).length(),s=1/Pn.setFromMatrixColumn(t,1).length(),o=1/Pn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*s,e[5]=n[5]*s,e[6]=n[6]*s,e[7]=0,e[8]=n[8]*o,e[9]=n[9]*o,e[10]=n[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,n=t.x,i=t.y,s=t.z,o=Math.cos(n),a=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(s),f=Math.sin(s);if(t.order==="XYZ"){let u=o*h,m=o*f,_=a*h,p=a*f;e[0]=c*h,e[4]=-c*f,e[8]=l,e[1]=m+_*l,e[5]=u-p*l,e[9]=-a*c,e[2]=p-u*l,e[6]=_+m*l,e[10]=o*c}else if(t.order==="YXZ"){let u=c*h,m=c*f,_=l*h,p=l*f;e[0]=u+p*a,e[4]=_*a-m,e[8]=o*l,e[1]=o*f,e[5]=o*h,e[9]=-a,e[2]=m*a-_,e[6]=p+u*a,e[10]=o*c}else if(t.order==="ZXY"){let u=c*h,m=c*f,_=l*h,p=l*f;e[0]=u-p*a,e[4]=-o*f,e[8]=_+m*a,e[1]=m+_*a,e[5]=o*h,e[9]=p-u*a,e[2]=-o*l,e[6]=a,e[10]=o*c}else if(t.order==="ZYX"){let u=o*h,m=o*f,_=a*h,p=a*f;e[0]=c*h,e[4]=_*l-m,e[8]=u*l+p,e[1]=c*f,e[5]=p*l+u,e[9]=m*l-_,e[2]=-l,e[6]=a*c,e[10]=o*c}else if(t.order==="YZX"){let u=o*c,m=o*l,_=a*c,p=a*l;e[0]=c*h,e[4]=p-u*f,e[8]=_*f+m,e[1]=f,e[5]=o*h,e[9]=-a*h,e[2]=-l*h,e[6]=m*f+_,e[10]=u-p*f}else if(t.order==="XZY"){let u=o*c,m=o*l,_=a*c,p=a*l;e[0]=c*h,e[4]=-f,e[8]=l*h,e[1]=u*f+p,e[5]=o*h,e[9]=m*f-_,e[2]=_*f-m,e[6]=a*h,e[10]=p*f+u}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(bl,t,wl)}lookAt(t,e,n){let i=this.elements;return me.subVectors(t,e),me.lengthSq()===0&&(me.z=1),me.normalize(),je.crossVectors(n,me),je.lengthSq()===0&&(Math.abs(n.z)===1?me.x+=1e-4:me.z+=1e-4,me.normalize(),je.crossVectors(n,me)),je.normalize(),Ai.crossVectors(me,je),i[0]=je.x,i[4]=Ai.x,i[8]=me.x,i[1]=je.y,i[5]=Ai.y,i[9]=me.y,i[2]=je.z,i[6]=Ai.z,i[10]=me.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let n=t.elements,i=e.elements,s=this.elements,o=n[0],a=n[4],c=n[8],l=n[12],h=n[1],f=n[5],u=n[9],m=n[13],_=n[2],p=n[6],d=n[10],v=n[14],T=n[3],b=n[7],M=n[11],A=n[15],C=i[0],I=i[4],x=i[8],S=i[12],L=i[1],X=i[5],q=i[9],z=i[13],R=i[2],G=i[6],Y=i[10],j=i[14],W=i[3],Q=i[7],Z=i[11],ft=i[15];return s[0]=o*C+a*L+c*R+l*W,s[4]=o*I+a*X+c*G+l*Q,s[8]=o*x+a*q+c*Y+l*Z,s[12]=o*S+a*z+c*j+l*ft,s[1]=h*C+f*L+u*R+m*W,s[5]=h*I+f*X+u*G+m*Q,s[9]=h*x+f*q+u*Y+m*Z,s[13]=h*S+f*z+u*j+m*ft,s[2]=_*C+p*L+d*R+v*W,s[6]=_*I+p*X+d*G+v*Q,s[10]=_*x+p*q+d*Y+v*Z,s[14]=_*S+p*z+d*j+v*ft,s[3]=T*C+b*L+M*R+A*W,s[7]=T*I+b*X+M*G+A*Q,s[11]=T*x+b*q+M*Y+A*Z,s[15]=T*S+b*z+M*j+A*ft,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],n=t[4],i=t[8],s=t[12],o=t[1],a=t[5],c=t[9],l=t[13],h=t[2],f=t[6],u=t[10],m=t[14],_=t[3],p=t[7],d=t[11],v=t[15];return _*(+s*c*f-i*l*f-s*a*u+n*l*u+i*a*m-n*c*m)+p*(+e*c*m-e*l*u+s*o*u-i*o*m+i*l*h-s*c*h)+d*(+e*l*f-e*a*m-s*o*f+n*o*m+s*a*h-n*l*h)+v*(-i*a*h-e*c*f+e*a*u+i*o*f-n*o*u+n*c*h)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){let i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){let t=this.elements,e=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],m=t[11],_=t[12],p=t[13],d=t[14],v=t[15],T=f*d*l-p*u*l+p*c*m-a*d*m-f*c*v+a*u*v,b=_*u*l-h*d*l-_*c*m+o*d*m+h*c*v-o*u*v,M=h*p*l-_*f*l+_*a*m-o*p*m-h*a*v+o*f*v,A=_*f*c-h*p*c-_*a*u+o*p*u+h*a*d-o*f*d,C=e*T+n*b+i*M+s*A;if(C===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let I=1/C;return t[0]=T*I,t[1]=(p*u*s-f*d*s-p*i*m+n*d*m+f*i*v-n*u*v)*I,t[2]=(a*d*s-p*c*s+p*i*l-n*d*l-a*i*v+n*c*v)*I,t[3]=(f*c*s-a*u*s-f*i*l+n*u*l+a*i*m-n*c*m)*I,t[4]=b*I,t[5]=(h*d*s-_*u*s+_*i*m-e*d*m-h*i*v+e*u*v)*I,t[6]=(_*c*s-o*d*s-_*i*l+e*d*l+o*i*v-e*c*v)*I,t[7]=(o*u*s-h*c*s+h*i*l-e*u*l-o*i*m+e*c*m)*I,t[8]=M*I,t[9]=(_*f*s-h*p*s-_*n*m+e*p*m+h*n*v-e*f*v)*I,t[10]=(o*p*s-_*a*s+_*n*l-e*p*l-o*n*v+e*a*v)*I,t[11]=(h*a*s-o*f*s-h*n*l+e*f*l+o*n*m-e*a*m)*I,t[12]=A*I,t[13]=(h*p*i-_*f*i+_*n*u-e*p*u-h*n*d+e*f*d)*I,t[14]=(_*a*i-o*p*i-_*n*c+e*p*c+o*n*d-e*a*d)*I,t[15]=(o*f*i-h*a*i+h*n*c-e*f*c-o*n*u+e*a*u)*I,this}scale(t){let e=this.elements,n=t.x,i=t.y,s=t.z;return e[0]*=n,e[4]*=i,e[8]*=s,e[1]*=n,e[5]*=i,e[9]*=s,e[2]*=n,e[6]*=i,e[10]*=s,e[3]*=n,e[7]*=i,e[11]*=s,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let n=Math.cos(e),i=Math.sin(e),s=1-n,o=t.x,a=t.y,c=t.z,l=s*o,h=s*a;return this.set(l*o+n,l*a-i*c,l*c+i*a,0,l*a+i*c,h*a+n,h*c-i*o,0,l*c-i*a,h*c+i*o,s*c*c+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,s,o){return this.set(1,n,s,0,t,1,o,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){let i=this.elements,s=e._x,o=e._y,a=e._z,c=e._w,l=s+s,h=o+o,f=a+a,u=s*l,m=s*h,_=s*f,p=o*h,d=o*f,v=a*f,T=c*l,b=c*h,M=c*f,A=n.x,C=n.y,I=n.z;return i[0]=(1-(p+v))*A,i[1]=(m+M)*A,i[2]=(_-b)*A,i[3]=0,i[4]=(m-M)*C,i[5]=(1-(u+v))*C,i[6]=(d+T)*C,i[7]=0,i[8]=(_+b)*I,i[9]=(d-T)*I,i[10]=(1-(u+p))*I,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){let i=this.elements,s=Pn.set(i[0],i[1],i[2]).length(),o=Pn.set(i[4],i[5],i[6]).length(),a=Pn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),t.x=i[12],t.y=i[13],t.z=i[14],Ee.copy(this);let l=1/s,h=1/o,f=1/a;return Ee.elements[0]*=l,Ee.elements[1]*=l,Ee.elements[2]*=l,Ee.elements[4]*=h,Ee.elements[5]*=h,Ee.elements[6]*=h,Ee.elements[8]*=f,Ee.elements[9]*=f,Ee.elements[10]*=f,e.setFromRotationMatrix(Ee),n.x=s,n.y=o,n.z=a,this}makePerspective(t,e,n,i,s,o){let a=this.elements,c=2*s/(e-t),l=2*s/(n-i),h=(e+t)/(e-t),f=(n+i)/(n-i),u=-(o+s)/(o-s),m=-2*o*s/(o-s);return a[0]=c,a[4]=0,a[8]=h,a[12]=0,a[1]=0,a[5]=l,a[9]=f,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=m,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,s,o){let a=this.elements,c=1/(e-t),l=1/(n-i),h=1/(o-s),f=(e+t)*c,u=(n+i)*l,m=(o+s)*h;return a[0]=2*c,a[4]=0,a[8]=0,a[12]=-f,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*h,a[14]=-m,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){let e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){let n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}},Pn=new N,Ee=new qt,bl=new N(0,0,0),wl=new N(1,1,1),je=new N,Ai=new N,me=new N,da=new qt,fa=new rn,Zn=class{constructor(t=0,e=0,n=0,i=Zn.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){let i=t.elements,s=i[0],o=i[4],a=i[8],c=i[1],l=i[5],h=i[9],f=i[2],u=i[6],m=i[10];switch(e){case"XYZ":this._y=Math.asin(ue(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,m),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ue(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,m),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-f,s),this._z=0);break;case"ZXY":this._x=Math.asin(ue(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-ue(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,m),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(ue(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-f,s)):(this._x=0,this._y=Math.atan2(a,m));break;case"XZY":this._z=Math.asin(-ue(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-h,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return da.makeRotationFromQuaternion(t),this.setFromRotationMatrix(da,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return fa.setFromEuler(this),this.setFromQuaternion(fa,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Zn.DEFAULT_ORDER="XYZ";var Zi=class{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let n=0;n0&&(n=n.concat(o))}return n}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ii,t,Tl),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ii,Al,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let n=0,i=e.length;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON()));function s(a,c){return a[c.uuid]===void 0&&(a[c.uuid]=c.toJSON(t)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(t.geometries,this.geometry);let a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){let c=a.shapes;if(Array.isArray(c))for(let l=0,h=c.length;l0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),f.length>0&&(n.shapes=f),u.length>0&&(n.skeletons=u),m.length>0&&(n.animations=m),_.length>0&&(n.nodes=_)}return n.object=i,n;function o(a){let c=[];for(let l in a){let h=a[l];delete h.metadata,c.push(h)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(t,e,n,i,s){Ce.subVectors(i,e),Ve.subVectors(n,e),Rs.subVectors(t,e);let o=Ce.dot(Ce),a=Ce.dot(Ve),c=Ce.dot(Rs),l=Ve.dot(Ve),h=Ve.dot(Rs),f=o*l-a*a;if(f===0)return s.set(-2,-1,-1);let u=1/f,m=(l*c-a*h)*u,_=(o*h-a*c)*u;return s.set(1-m-_,_,m)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Ge),Ge.x>=0&&Ge.y>=0&&Ge.x+Ge.y<=1}static getUV(t,e,n,i,s,o,a,c){return this.getBarycoord(t,e,n,i,Ge),c.set(0,0),c.addScaledVector(s,Ge.x),c.addScaledVector(o,Ge.y),c.addScaledVector(a,Ge.z),c}static isFrontFacing(t,e,n,i){return Ce.subVectors(n,e),Ve.subVectors(t,e),Ce.cross(Ve).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Ce.subVectors(this.c,this.b),Ve.subVectors(this.a,this.b),Ce.cross(Ve).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return xe.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return xe.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,s){return xe.getUV(t,this.a,this.b,this.c,e,n,i,s)}containsPoint(t){return xe.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return xe.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let n=this.a,i=this.b,s=this.c,o,a;Ln.subVectors(i,n),In.subVectors(s,n),Ls.subVectors(t,n);let c=Ln.dot(Ls),l=In.dot(Ls);if(c<=0&&l<=0)return e.copy(n);Is.subVectors(t,i);let h=Ln.dot(Is),f=In.dot(Is);if(h>=0&&f<=h)return e.copy(i);let u=c*f-h*l;if(u<=0&&c>=0&&h<=0)return o=c/(c-h),e.copy(n).addScaledVector(Ln,o);Ds.subVectors(t,s);let m=Ln.dot(Ds),_=In.dot(Ds);if(_>=0&&m<=_)return e.copy(s);let p=m*l-c*_;if(p<=0&&l>=0&&_<=0)return a=l/(l-_),e.copy(n).addScaledVector(In,a);let d=h*_-m*f;if(d<=0&&f-h>=0&&m-_>=0)return ya.subVectors(s,i),a=(f-h)/(f-h+(m-_)),e.copy(i).addScaledVector(ya,a);let v=1/(d+p+u);return o=p*v,a=u*v,e.copy(n).addScaledVector(Ln,o).addScaledVector(In,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Cl=0,Jn=class extends sn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Cl++}),this.uuid=jn(),this.name="",this.type="Material",this.blending=Gn,this.side=nn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=Ha,this.blendDst=Wa,this.blendEquation=Bn,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Gs,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=rl,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=xs,this.stencilZFail=xs,this.stencilZPass=xs,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let n=t[e];if(n===void 0){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}let i=this[e];if(i===void 0){console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n}}toJSON(t){let e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});let n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Gn&&(n.blending=this.blending),this.side!==nn&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(n.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){let o=[];for(let a in s){let c=s[a];delete c.metadata,o.push(c)}return o}if(e){let s=i(t.textures),o=i(t.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,n=null;if(e!==null){let i=e.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=e[s].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}},Ji=class extends Jn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ot(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Xa,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},Gt=new N,Ci=new Nt,ce=class{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=la,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,s=this.itemSize;i0&&(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let l in c)c[l]!==void 0&&(t[l]=c[l]);return t}t.data={attributes:{}};let e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let n=this.attributes;for(let c in n){let l=n[c];t.data.attributes[c]=l.toJSON(t.data)}let i={},s=!1;for(let c in this.morphAttributes){let l=this.morphAttributes[c],h=[];for(let f=0,u=l.length;f0&&(i[c]=h,s=!0)}s&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let n=t.index;n!==null&&this.setIndex(n.clone(e));let i=t.attributes;for(let l in i){let h=i[l];this.setAttribute(l,h.clone(e))}let s=t.morphAttributes;for(let l in s){let h=[],f=s[l];for(let u=0,m=f.length;u0){let i=e[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;se.far?null:{distance:l,point:Di.clone(),object:r}}function Ni(r,t,e,n,i,s,o,a,c){r.getVertexPosition(o,ri),r.getVertexPosition(a,ai),r.getVertexPosition(c,oi);let l=Rl(r,t,e,n,ri,ai,oi,Os);if(l){i&&(Ri.fromBufferAttribute(i,o),Li.fromBufferAttribute(i,a),Ii.fromBufferAttribute(i,c),l.uv=xe.getUV(Os,ri,ai,oi,Ri,Li,Ii,new Nt)),s&&(Ri.fromBufferAttribute(s,o),Li.fromBufferAttribute(s,a),Ii.fromBufferAttribute(s,c),l.uv2=xe.getUV(Os,ri,ai,oi,Ri,Li,Ii,new Nt));let h={a:o,b:a,c,normal:new N,materialIndex:0};xe.getNormal(ri,ai,oi,h.normal),l.face=h}return l}var bn=class extends Ye{constructor(t=1,e=1,n=1,i=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:s,depthSegments:o};let a=this;i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);let c=[],l=[],h=[],f=[],u=0,m=0;_("z","y","x",-1,-1,n,e,t,o,s,0),_("z","y","x",1,-1,n,e,-t,o,s,1),_("x","z","y",1,1,t,n,e,i,o,2),_("x","z","y",1,-1,t,n,-e,i,o,3),_("x","y","z",1,-1,t,e,n,i,s,4),_("x","y","z",-1,-1,t,e,-n,i,s,5),this.setIndex(c),this.setAttribute("position",new Xe(l,3)),this.setAttribute("normal",new Xe(h,3)),this.setAttribute("uv",new Xe(f,2));function _(p,d,v,T,b,M,A,C,I,x,S){let L=M/I,X=A/x,q=M/2,z=A/2,R=C/2,G=I+1,Y=x+1,j=0,W=0,Q=new N;for(let Z=0;Z0?1:-1,h.push(Q.x,Q.y,Q.z),f.push(F/I),f.push(1-Z/x),j+=1}}for(let Z=0;Z0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}},ji=class extends de{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qt,this.projectionMatrix=new qt,this.projectionMatrixInverse=new qt}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},_e=class extends ji{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=Gi*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(ui*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Gi*2*Math.atan(Math.tan(ui*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,s,o){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(ui*.5*this.fov)/this.zoom,n=2*e,i=this.aspect*n,s=-.5*i,o=this.view;if(this.view!==null&&this.view.enabled){let c=o.fullWidth,l=o.fullHeight;s+=o.offsetX*i/c,e-=o.offsetY*n/l,i*=o.width/c,n*=o.height/l}let a=this.filmOffset;a!==0&&(s+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},Fn=-90,zn=1,Ks=class extends de{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;let i=new _e(Fn,zn,t,e);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(1,0,0),this.add(i);let s=new _e(Fn,zn,t,e);s.layers=this.layers,s.up.set(0,1,0),s.lookAt(-1,0,0),this.add(s);let o=new _e(Fn,zn,t,e);o.layers=this.layers,o.up.set(0,0,-1),o.lookAt(0,1,0),this.add(o);let a=new _e(Fn,zn,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);let c=new _e(Fn,zn,t,e);c.layers=this.layers,c.up.set(0,1,0),c.lookAt(0,0,1),this.add(c);let l=new _e(Fn,zn,t,e);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(t,e){this.parent===null&&this.updateMatrixWorld();let n=this.renderTarget,[i,s,o,a,c,l]=this.children,h=t.getRenderTarget(),f=t.toneMapping,u=t.xr.enabled;t.toneMapping=We,t.xr.enabled=!1;let m=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,c),n.texture.generateMipmaps=m,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.toneMapping=f,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}},Qi=class extends le{constructor(t,e,n,i,s,o,a,c,l,h){t=t!==void 0?t:[],e=e!==void 0?e:Xn,super(t,e,n,i,s,o,a,c,l,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},js=class extends qe{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Qi(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:Se}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:\` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + \`,fragmentShader:\` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + \`},i=new bn(5,5,5),s=new Ze({name:"CubemapFromEquirect",uniforms:$n(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:ye,blending:en});s.uniforms.tEquirect.value=e;let o=new Ne(i,s),a=e.minFilter;return e.minFilter===pi&&(e.minFilter=Se),new Ks(1,10,this).update(t,o),e.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(t,e,n,i){let s=t.getRenderTarget();for(let o=0;o<6;o++)t.setRenderTarget(this,o),t.clear(e,n,i);t.setRenderTarget(s)}},Us=new N,Fl=new N,zl=new oe,He=class{constructor(t=new N(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){let i=Us.subVectors(n,e).cross(Fl.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){let n=t.delta(Us),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:e.copy(n).multiplyScalar(s).add(t.start)}intersectsLine(t){let e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let n=e||zl.getNormalMatrix(t),i=this.coplanarPoint(Us).applyMatrix4(t),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}},On=new _i,Fi=new N,ts=class{constructor(t=new He,e=new He,n=new He,i=new He,s=new He,o=new He){this.planes=[t,e,n,i,s,o]}set(t,e,n,i,s,o){let a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(t){let e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){let e=this.planes,n=t.elements,i=n[0],s=n[1],o=n[2],a=n[3],c=n[4],l=n[5],h=n[6],f=n[7],u=n[8],m=n[9],_=n[10],p=n[11],d=n[12],v=n[13],T=n[14],b=n[15];return e[0].setComponents(a-i,f-c,p-u,b-d).normalize(),e[1].setComponents(a+i,f+c,p+u,b+d).normalize(),e[2].setComponents(a+s,f+l,p+m,b+v).normalize(),e[3].setComponents(a-s,f-l,p-m,b-v).normalize(),e[4].setComponents(a-o,f-h,p-_,b-T).normalize(),e[5].setComponents(a+o,f+h,p+_,b+T).normalize(),this}intersectsObject(t){let e=t.geometry;return e.boundingSphere===null&&e.computeBoundingSphere(),On.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(On)}intersectsSprite(t){return On.center.set(0,0,0),On.radius=.7071067811865476,On.applyMatrix4(t.matrixWorld),this.intersectsSphere(On)}intersectsSphere(t){let e=this.planes,n=t.center,i=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(n)0?t.max.x:t.min.x,Fi.y=i.normal.y>0?t.max.y:t.min.y,Fi.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Fi)<0)return!1}return!0}containsPoint(t){let e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function ja(){let r=null,t=!1,e=null,n=null;function i(s,o){e(s,o),n=r.requestAnimationFrame(i)}return{start:function(){t!==!0&&e!==null&&(n=r.requestAnimationFrame(i),t=!0)},stop:function(){r.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){r=s}}}function Ol(r,t){let e=t.isWebGL2,n=new WeakMap;function i(l,h){let f=l.array,u=l.usage,m=r.createBuffer();r.bindBuffer(h,m),r.bufferData(h,f,u),l.onUploadCallback();let _;if(f instanceof Float32Array)_=5126;else if(f instanceof Uint16Array)if(l.isFloat16BufferAttribute)if(e)_=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else _=5123;else if(f instanceof Int16Array)_=5122;else if(f instanceof Uint32Array)_=5125;else if(f instanceof Int32Array)_=5124;else if(f instanceof Int8Array)_=5120;else if(f instanceof Uint8Array)_=5121;else if(f instanceof Uint8ClampedArray)_=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:m,type:_,bytesPerElement:f.BYTES_PER_ELEMENT,version:l.version}}function s(l,h,f){let u=h.array,m=h.updateRange;r.bindBuffer(f,l),m.count===-1?r.bufferSubData(f,0,u):(e?r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u,m.offset,m.count):r.bufferSubData(f,m.offset*u.BYTES_PER_ELEMENT,u.subarray(m.offset,m.offset+m.count)),m.count=-1),h.onUploadCallback()}function o(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function a(l){l.isInterleavedBufferAttribute&&(l=l.data);let h=n.get(l);h&&(r.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){let u=n.get(l);(!u||u.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif\`,Yl=\`#ifdef USE_IRIDESCENCE + const mat3 XYZ_TO_REC709 = mat3( + 3.2404542, -0.9692660, 0.0556434, + -1.5371385, 1.8760108, -0.2040259, + -0.4985314, 0.0415560, 1.0572252 + ); + vec3 Fresnel0ToIor( vec3 fresnel0 ) { + vec3 sqrtF0 = sqrt( fresnel0 ); + return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 ); + } + vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) ); + } + float IorToFresnel0( float transmittedIor, float incidentIor ) { + return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor )); + } + vec3 evalSensitivity( float OPD, vec3 shift ) { + float phase = 2.0 * PI * OPD * 1.0e-9; + vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 ); + vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 ); + vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 ); + vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var ); + xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) ); + xyz /= 1.0685e-7; + vec3 rgb = XYZ_TO_REC709 * xyz; + return rgb; + } + vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) { + vec3 I; + float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) ); + float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) ); + float cosTheta2Sq = 1.0 - sinTheta2Sq; + if ( cosTheta2Sq < 0.0 ) { + return vec3( 1.0 ); + } + float cosTheta2 = sqrt( cosTheta2Sq ); + float R0 = IorToFresnel0( iridescenceIOR, outsideIOR ); + float R12 = F_Schlick( R0, 1.0, cosTheta1 ); + float R21 = R12; + float T121 = 1.0 - R12; + float phi12 = 0.0; + if ( iridescenceIOR < outsideIOR ) phi12 = PI; + float phi21 = PI - phi12; + vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR ); + vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 ); + vec3 phi23 = vec3( 0.0 ); + if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI; + if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI; + if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI; + float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2; + vec3 phi = vec3( phi21 ) + phi23; + vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 ); + vec3 r123 = sqrt( R123 ); + vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 ); + vec3 C0 = R12 + Rs; + I = C0; + vec3 Cm = Rs - T121; + for ( int m = 1; m <= 2; ++ m ) { + Cm *= r123; + vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi ); + I += Cm * Sm; + } + return max( I, vec3( 0.0 ) ); + } +#endif\`,Zl=\`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = dFdx( surf_pos.xyz ); + vec3 vSigmaY = dFdy( surf_pos.xyz ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif\`,Jl=\`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif\`,$l=\`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif\`,Kl=\`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif\`,jl=\`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif\`,Ql=\`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif\`,tc=\`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif\`,ec=\`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif\`,nc=\`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif\`,ic=\`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}\`,sc=\`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_v0 0.339 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_v1 0.276 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_v4 0.046 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_v5 0.016 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_v6 0.0038 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif\`,rc=\`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif\`,ac=\`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif\`,oc=\`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif\`,lc=\`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif\`,cc=\`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif\`,hc="gl_FragColor = linearToOutputTexel( gl_FragColor );",uc=\`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}\`,dc=\`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif\`,fc=\`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif\`,pc=\`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif\`,mc=\`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif\`,gc=\`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif\`,_c=\`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif\`,xc=\`#ifdef USE_FOG + varying float vFogDepth; +#endif\`,yc=\`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif\`,vc=\`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif\`,Mc=\`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}\`,bc=\`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif\`,wc=\`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif\`,Sc=\`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;\`,Tc=\`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert\`,Ac=\`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif\`,Ec=\`#if defined( USE_ENVMAP ) + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif\`,Cc=\`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;\`,Pc=\`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon\`,Rc=\`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;\`,Lc=\`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong\`,Ic=\`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif\`,Dc=\`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + #ifdef USE_IRIDESCENCE + reflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness ); + #else + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}\`,Nc=\` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometry.viewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif\`,Fc=\`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif\`,zc=\`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif\`,Oc=\`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif\`,Uc=\`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif\`,Bc=\`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif\`,kc=\`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif\`,Vc=\`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif\`,Gc=\`#ifdef USE_MAP + uniform sampler2D map; +#endif\`,Hc=\`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif\`,Wc=\`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif\`,Xc=\`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif\`,qc=\`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif\`,Yc=\`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif\`,Zc=\`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif\`,Jc=\`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif\`,$c=\`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif\`,Kc=\`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;\`,jc=\`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif\`,Qc=\`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif\`,th=\`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif\`,eh=\`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif\`,nh=\`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif\`,ih=\`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif\`,sh=\`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif\`,rh=\`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif\`,ah=\`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif\`,oh=\`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );\`,lh=\`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}\`,ch=\`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif\`,hh=\`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;\`,uh=\`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif\`,dh=\`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif\`,fh=\`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif\`,ph=\`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif\`,mh=\`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif\`,gh=\`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif\`,_h=\`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif\`,xh=\`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}\`,yh=\`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif\`,vh=\`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } +#endif\`,Mh=\`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif\`,bh=\`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif\`,wh=\`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif\`,Sh=\`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif\`,Th=\`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif\`,Ah=\`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }\`,Eh=\`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission ); +#endif\`,Ch=\`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef texture2DLodEXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif\`,Ph=\`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif\`,Rh=\`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif\`,Lh=\`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif\`,Ih=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif\`,Dh=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif\`,Nh=\`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif\`,Fh=\`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif\`,zh=\`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}\`,Oh=\`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}\`,Uh=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}\`,Bh=\`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}\`,kh=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}\`,Vh=\`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}\`,Gh=\`#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}\`,Hh=\`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}\`,Wh=\`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}\`,Xh=\`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main () { + #include + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}\`,qh=\`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}\`,Yh=\`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}\`,Zh=\`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include +}\`,Jh=\`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +void main() { + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}\`,$h=\`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}\`,Kh=\`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}\`,jh=\`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}\`,Qh=\`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}\`,tu=\`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}\`,eu=\`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}\`,nu=\`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}\`,iu=\`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}\`,su=\`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}\`,ru=\`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}\`,au=\`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}\`,ou=\`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}\`,lu=\`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}\`,cu=\`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}\`,hu=\`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}\`,uu=\`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}\`,du=\`#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}\`,fu=\`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}\`,pu=\`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}\`,mu=\`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}\`,wt={alphamap_fragment:Ul,alphamap_pars_fragment:Bl,alphatest_fragment:kl,alphatest_pars_fragment:Vl,aomap_fragment:Gl,aomap_pars_fragment:Hl,begin_vertex:Wl,beginnormal_vertex:Xl,bsdfs:ql,iridescence_fragment:Yl,bumpmap_pars_fragment:Zl,clipping_planes_fragment:Jl,clipping_planes_pars_fragment:$l,clipping_planes_pars_vertex:Kl,clipping_planes_vertex:jl,color_fragment:Ql,color_pars_fragment:tc,color_pars_vertex:ec,color_vertex:nc,common:ic,cube_uv_reflection_fragment:sc,defaultnormal_vertex:rc,displacementmap_pars_vertex:ac,displacementmap_vertex:oc,emissivemap_fragment:lc,emissivemap_pars_fragment:cc,encodings_fragment:hc,encodings_pars_fragment:uc,envmap_fragment:dc,envmap_common_pars_fragment:fc,envmap_pars_fragment:pc,envmap_pars_vertex:mc,envmap_physical_pars_fragment:Ec,envmap_vertex:gc,fog_vertex:_c,fog_pars_vertex:xc,fog_fragment:yc,fog_pars_fragment:vc,gradientmap_pars_fragment:Mc,lightmap_fragment:bc,lightmap_pars_fragment:wc,lights_lambert_fragment:Sc,lights_lambert_pars_fragment:Tc,lights_pars_begin:Ac,lights_toon_fragment:Cc,lights_toon_pars_fragment:Pc,lights_phong_fragment:Rc,lights_phong_pars_fragment:Lc,lights_physical_fragment:Ic,lights_physical_pars_fragment:Dc,lights_fragment_begin:Nc,lights_fragment_maps:Fc,lights_fragment_end:zc,logdepthbuf_fragment:Oc,logdepthbuf_pars_fragment:Uc,logdepthbuf_pars_vertex:Bc,logdepthbuf_vertex:kc,map_fragment:Vc,map_pars_fragment:Gc,map_particle_fragment:Hc,map_particle_pars_fragment:Wc,metalnessmap_fragment:Xc,metalnessmap_pars_fragment:qc,morphcolor_vertex:Yc,morphnormal_vertex:Zc,morphtarget_pars_vertex:Jc,morphtarget_vertex:$c,normal_fragment_begin:Kc,normal_fragment_maps:jc,normal_pars_fragment:Qc,normal_pars_vertex:th,normal_vertex:eh,normalmap_pars_fragment:nh,clearcoat_normal_fragment_begin:ih,clearcoat_normal_fragment_maps:sh,clearcoat_pars_fragment:rh,iridescence_pars_fragment:ah,output_fragment:oh,packing:lh,premultiplied_alpha_fragment:ch,project_vertex:hh,dithering_fragment:uh,dithering_pars_fragment:dh,roughnessmap_fragment:fh,roughnessmap_pars_fragment:ph,shadowmap_pars_fragment:mh,shadowmap_pars_vertex:gh,shadowmap_vertex:_h,shadowmask_pars_fragment:xh,skinbase_vertex:yh,skinning_pars_vertex:vh,skinning_vertex:Mh,skinnormal_vertex:bh,specularmap_fragment:wh,specularmap_pars_fragment:Sh,tonemapping_fragment:Th,tonemapping_pars_fragment:Ah,transmission_fragment:Eh,transmission_pars_fragment:Ch,uv_pars_fragment:Ph,uv_pars_vertex:Rh,uv_vertex:Lh,uv2_pars_fragment:Ih,uv2_pars_vertex:Dh,uv2_vertex:Nh,worldpos_vertex:Fh,background_vert:zh,background_frag:Oh,backgroundCube_vert:Uh,backgroundCube_frag:Bh,cube_vert:kh,cube_frag:Vh,depth_vert:Gh,depth_frag:Hh,distanceRGBA_vert:Wh,distanceRGBA_frag:Xh,equirect_vert:qh,equirect_frag:Yh,linedashed_vert:Zh,linedashed_frag:Jh,meshbasic_vert:$h,meshbasic_frag:Kh,meshlambert_vert:jh,meshlambert_frag:Qh,meshmatcap_vert:tu,meshmatcap_frag:eu,meshnormal_vert:nu,meshnormal_frag:iu,meshphong_vert:su,meshphong_frag:ru,meshphysical_vert:au,meshphysical_frag:ou,meshtoon_vert:lu,meshtoon_frag:cu,points_vert:hu,points_frag:uu,shadow_vert:du,shadow_frag:fu,sprite_vert:pu,sprite_frag:mu},et={common:{diffuse:{value:new Ot(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new oe},uv2Transform:{value:new oe},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Nt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ot(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ot(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new oe}},sprite:{diffuse:{value:new Ot(16777215)},opacity:{value:1},center:{value:new Nt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new oe}}},De={basic:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.fog]),vertexShader:wt.meshbasic_vert,fragmentShader:wt.meshbasic_frag},lambert:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Ot(0)}}]),vertexShader:wt.meshlambert_vert,fragmentShader:wt.meshlambert_frag},phong:{uniforms:re([et.common,et.specularmap,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.fog,et.lights,{emissive:{value:new Ot(0)},specular:{value:new Ot(1118481)},shininess:{value:30}}]),vertexShader:wt.meshphong_vert,fragmentShader:wt.meshphong_frag},standard:{uniforms:re([et.common,et.envmap,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.roughnessmap,et.metalnessmap,et.fog,et.lights,{emissive:{value:new Ot(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag},toon:{uniforms:re([et.common,et.aomap,et.lightmap,et.emissivemap,et.bumpmap,et.normalmap,et.displacementmap,et.gradientmap,et.fog,et.lights,{emissive:{value:new Ot(0)}}]),vertexShader:wt.meshtoon_vert,fragmentShader:wt.meshtoon_frag},matcap:{uniforms:re([et.common,et.bumpmap,et.normalmap,et.displacementmap,et.fog,{matcap:{value:null}}]),vertexShader:wt.meshmatcap_vert,fragmentShader:wt.meshmatcap_frag},points:{uniforms:re([et.points,et.fog]),vertexShader:wt.points_vert,fragmentShader:wt.points_frag},dashed:{uniforms:re([et.common,et.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:wt.linedashed_vert,fragmentShader:wt.linedashed_frag},depth:{uniforms:re([et.common,et.displacementmap]),vertexShader:wt.depth_vert,fragmentShader:wt.depth_frag},normal:{uniforms:re([et.common,et.bumpmap,et.normalmap,et.displacementmap,{opacity:{value:1}}]),vertexShader:wt.meshnormal_vert,fragmentShader:wt.meshnormal_frag},sprite:{uniforms:re([et.sprite,et.fog]),vertexShader:wt.sprite_vert,fragmentShader:wt.sprite_frag},background:{uniforms:{uvTransform:{value:new oe},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:wt.background_vert,fragmentShader:wt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:wt.backgroundCube_vert,fragmentShader:wt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:wt.cube_vert,fragmentShader:wt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:wt.equirect_vert,fragmentShader:wt.equirect_frag},distanceRGBA:{uniforms:re([et.common,et.displacementmap,{referencePosition:{value:new N},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:wt.distanceRGBA_vert,fragmentShader:wt.distanceRGBA_frag},shadow:{uniforms:re([et.lights,et.fog,{color:{value:new Ot(0)},opacity:{value:1}}]),vertexShader:wt.shadow_vert,fragmentShader:wt.shadow_frag}};De.physical={uniforms:re([De.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Nt(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Ot(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Nt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Ot(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Ot(1,1,1)},specularColorMap:{value:null}}]),vertexShader:wt.meshphysical_vert,fragmentShader:wt.meshphysical_frag};var zi={r:0,b:0,g:0};function gu(r,t,e,n,i,s,o){let a=new Ot(0),c=s===!0?0:1,l,h,f=null,u=0,m=null;function _(d,v){let T=!1,b=v.isScene===!0?v.background:null;b&&b.isTexture&&(b=(v.backgroundBlurriness>0?e:t).get(b));let M=r.xr,A=M.getSession&&M.getSession();A&&A.environmentBlendMode==="additive"&&(b=null),b===null?p(a,c):b&&b.isColor&&(p(b,1),T=!0),(r.autoClear||T)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),b&&(b.isCubeTexture||b.mapping===ns)?(h===void 0&&(h=new Ne(new bn(1,1,1),new Ze({name:"BackgroundCubeMaterial",uniforms:$n(De.backgroundCube.uniforms),vertexShader:De.backgroundCube.vertexShader,fragmentShader:De.backgroundCube.fragmentShader,side:ye,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(C,I,x){this.matrixWorld.copyPosition(x.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),h.material.uniforms.envMap.value=b,h.material.uniforms.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,h.material.toneMapped=b.encoding!==zt,(f!==b||u!==b.version||m!==r.toneMapping)&&(h.material.needsUpdate=!0,f=b,u=b.version,m=r.toneMapping),h.layers.enableAll(),d.unshift(h,h.geometry,h.material,0,0,null)):b&&b.isTexture&&(l===void 0&&(l=new Ne(new xi(2,2),new Ze({name:"BackgroundMaterial",uniforms:$n(De.background.uniforms),vertexShader:De.background.vertexShader,fragmentShader:De.background.fragmentShader,side:nn,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=b,l.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,l.material.toneMapped=b.encoding!==zt,b.matrixAutoUpdate===!0&&b.updateMatrix(),l.material.uniforms.uvTransform.value.copy(b.matrix),(f!==b||u!==b.version||m!==r.toneMapping)&&(l.material.needsUpdate=!0,f=b,u=b.version,m=r.toneMapping),l.layers.enableAll(),d.unshift(l,l.geometry,l.material,0,0,null))}function p(d,v){d.getRGB(zi,Ka(r)),n.buffers.color.setClear(zi.r,zi.g,zi.b,v,o)}return{getClearColor:function(){return a},setClearColor:function(d,v=1){a.set(d),c=v,p(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(d){c=d,p(a,c)},render:_}}function _u(r,t,e,n){let i=r.getParameter(34921),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),o=n.isWebGL2||s!==null,a={},c=d(null),l=c,h=!1;function f(R,G,Y,j,W){let Q=!1;if(o){let Z=p(j,Y,G);l!==Z&&(l=Z,m(l.object)),Q=v(R,j,Y,W),Q&&T(R,j,Y,W)}else{let Z=G.wireframe===!0;(l.geometry!==j.id||l.program!==Y.id||l.wireframe!==Z)&&(l.geometry=j.id,l.program=Y.id,l.wireframe=Z,Q=!0)}W!==null&&e.update(W,34963),(Q||h)&&(h=!1,x(R,G,Y,j),W!==null&&r.bindBuffer(34963,e.get(W).buffer))}function u(){return n.isWebGL2?r.createVertexArray():s.createVertexArrayOES()}function m(R){return n.isWebGL2?r.bindVertexArray(R):s.bindVertexArrayOES(R)}function _(R){return n.isWebGL2?r.deleteVertexArray(R):s.deleteVertexArrayOES(R)}function p(R,G,Y){let j=Y.wireframe===!0,W=a[R.id];W===void 0&&(W={},a[R.id]=W);let Q=W[G.id];Q===void 0&&(Q={},W[G.id]=Q);let Z=Q[j];return Z===void 0&&(Z=d(u()),Q[j]=Z),Z}function d(R){let G=[],Y=[],j=[];for(let W=0;W=0){let nt=W[F],it=Q[F];if(it===void 0&&(F==="instanceMatrix"&&R.instanceMatrix&&(it=R.instanceMatrix),F==="instanceColor"&&R.instanceColor&&(it=R.instanceColor)),nt===void 0||nt.attribute!==it||it&&nt.data!==it.data)return!0;Z++}return l.attributesNum!==Z||l.index!==j}function T(R,G,Y,j){let W={},Q=G.attributes,Z=0,ft=Y.getAttributes();for(let F in ft)if(ft[F].location>=0){let nt=Q[F];nt===void 0&&(F==="instanceMatrix"&&R.instanceMatrix&&(nt=R.instanceMatrix),F==="instanceColor"&&R.instanceColor&&(nt=R.instanceColor));let it={};it.attribute=nt,nt&&nt.data&&(it.data=nt.data),W[F]=it,Z++}l.attributes=W,l.attributesNum=Z,l.index=j}function b(){let R=l.newAttributes;for(let G=0,Y=R.length;G=0){let J=W[ft];if(J===void 0&&(ft==="instanceMatrix"&&R.instanceMatrix&&(J=R.instanceMatrix),ft==="instanceColor"&&R.instanceColor&&(J=R.instanceColor)),J!==void 0){let nt=J.normalized,it=J.itemSize,O=e.get(J);if(O===void 0)continue;let Mt=O.buffer,ht=O.type,ut=O.bytesPerElement;if(J.isInterleavedBufferAttribute){let ot=J.data,Ft=ot.stride,bt=J.offset;if(ot.isInstancedInterleavedBuffer){for(let xt=0;xt0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";I="mediump"}return I==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext,a=e.precision!==void 0?e.precision:"highp",c=s(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);let l=o||t.has("WEBGL_draw_buffers"),h=e.logarithmicDepthBuffer===!0,f=r.getParameter(34930),u=r.getParameter(35660),m=r.getParameter(3379),_=r.getParameter(34076),p=r.getParameter(34921),d=r.getParameter(36347),v=r.getParameter(36348),T=r.getParameter(36349),b=u>0,M=o||t.has("OES_texture_float"),A=b&&M,C=o?r.getParameter(36183):0;return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:s,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:m,maxCubemapSize:_,maxAttributes:p,maxVertexUniforms:d,maxVaryings:v,maxFragmentUniforms:T,vertexTextures:b,floatFragmentTextures:M,floatVertexTextures:A,maxSamples:C}}function vu(r){let t=this,e=null,n=0,i=!1,s=!1,o=new He,a=new oe,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let m=f.length!==0||u||n!==0||i;return i=u,n=f.length,m},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(f,u){e=h(f,u,0)},this.setState=function(f,u,m){let _=f.clippingPlanes,p=f.clipIntersection,d=f.clipShadows,v=r.get(f);if(!i||_===null||_.length===0||s&&!d)s?h(null):l();else{let T=s?0:n,b=T*4,M=v.clippingState||null;c.value=M,M=h(_,u,b,m);for(let A=0;A!==b;++A)M[A]=e[A];v.clippingState=M,this.numIntersection=p?this.numPlanes:0,this.numPlanes+=T}};function l(){c.value!==e&&(c.value=e,c.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(f,u,m,_){let p=f!==null?f.length:0,d=null;if(p!==0){if(d=c.value,_!==!0||d===null){let v=m+p*4,T=u.matrixWorldInverse;a.getNormalMatrix(T),(d===null||d.length0){let l=new js(c.height/2);return l.fromEquirectangularTexture(r,o),t.set(o,l),o.addEventListener("dispose",i),e(l.texture,o.mapping)}else return null}}return o}function i(o){let a=o.target;a.removeEventListener("dispose",i);let c=t.get(a);c!==void 0&&(t.delete(a),c.dispose())}function s(){t=new WeakMap}return{get:n,dispose:s}}var Qs=class extends ji{constructor(t=-1,e=1,n=1,i=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-t,o=n+t,a=i+e,c=i-e;if(this.view!==null&&this.view.enabled){let l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=l*this.view.offsetX,o=s+l*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&&(e.object.view=Object.assign({},this.view)),e}},kn=4,Ma=[.125,.215,.35,.446,.526,.582],pn=20,Bs=new Qs,ba=new Ot,ks=null,fn=(1+Math.sqrt(5))/2,Un=1/fn,wa=[new N(1,1,1),new N(-1,1,1),new N(1,1,-1),new N(-1,1,-1),new N(0,fn,Un),new N(0,fn,-Un),new N(Un,0,fn),new N(-Un,0,fn),new N(fn,Un,0),new N(-fn,Un,0)],es=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){ks=this._renderer.getRenderTarget(),this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,n,i,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Aa(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ta(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?b:0,b,b),h.setRenderTarget(i),p&&h.render(_,a),h.render(t,a)}_.geometry.dispose(),_.material.dispose(),h.toneMapping=u,h.autoClear=f,t.background=d}_textureToCubeUV(t,e){let n=this._renderer,i=t.mapping===Xn||t.mapping===qn;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=Aa()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ta());let s=i?this._cubemapMaterial:this._equirectMaterial,o=new Ne(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=t;let c=this._cubeSize;Oi(e,0,0,3*c,2*c),n.setRenderTarget(e),n.render(o,Bs)}_applyPMREM(t){let e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;ipn&&console.warn(\`sigmaRadians, \${s}, is too large and will clip, as it requested \${d} samples when the maximum is set to \${pn}\`);let v=[],T=0;for(let I=0;Ib-kn?i-b+kn:0),C=4*(this._cubeSize-M);Oi(e,A,C,3*M,2*M),c.setRenderTarget(e),c.render(f,Bs)}};function bu(r){let t=[],e=[],n=[],i=r,s=r-kn+1+Ma.length;for(let o=0;or-kn?c=Ma[o-r+kn-1]:o===0&&(c=0),n.push(c);let l=1/(a-2),h=-l,f=1+l,u=[h,h,f,h,f,f,h,h,f,f,h,f],m=6,_=6,p=3,d=2,v=1,T=new Float32Array(p*_*m),b=new Float32Array(d*_*m),M=new Float32Array(v*_*m);for(let C=0;C2?0:-1,S=[I,x,0,I+2/3,x,0,I+2/3,x+1,0,I,x,0,I+2/3,x+1,0,I,x+1,0];T.set(S,p*_*C),b.set(u,d*_*C);let L=[C,C,C,C,C,C];M.set(L,v*_*C)}let A=new Ye;A.setAttribute("position",new ce(T,p)),A.setAttribute("uv",new ce(b,d)),A.setAttribute("faceIndex",new ce(M,v)),t.push(A),i>kn&&i--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function Sa(r,t,e){let n=new qe(r,t,e);return n.texture.mapping=ns,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Oi(r,t,e,n,i){r.viewport.set(t,e,n,i),r.scissor.set(t,e,n,i)}function wu(r,t,e){let n=new Float32Array(pn),i=new N(0,1,0);return new Ze({name:"SphericalGaussianBlur",defines:{n:pn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:\`\${r}.0\`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:br(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + \`,blending:en,depthTest:!1,depthWrite:!1})}function Ta(){return new Ze({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:br(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + \`,blending:en,depthTest:!1,depthWrite:!1})}function Aa(){return new Ze({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:br(),fragmentShader:\` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + \`,blending:en,depthTest:!1,depthWrite:!1})}function br(){return\` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + \`}function Su(r){let t=new WeakMap,e=null;function n(a){if(a&&a.isTexture){let c=a.mapping,l=c===Hs||c===Ws,h=c===Xn||c===qn;if(l||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=t.get(a);return e===null&&(e=new es(r)),f=l?e.fromEquirectangular(a,f):e.fromCubemap(a,f),t.set(a,f),f.texture}else{if(t.has(a))return t.get(a).texture;{let f=a.image;if(l&&f&&f.height>0||h&&f&&i(f)){e===null&&(e=new es(r));let u=l?e.fromEquirectangular(a):e.fromCubemap(a);return t.set(a,u),a.addEventListener("dispose",s),u.texture}else return null}}}return a}function i(a){let c=0,l=6;for(let h=0;ht.maxTextureSize&&(X=Math.ceil(L/t.maxTextureSize),L=t.maxTextureSize);let q=new Float32Array(L*X*4*p),z=new Yi(q,L,X,p);z.type=gn,z.needsUpdate=!0;let R=S*4;for(let Y=0;Y0)return r;let i=t*e,s=Ea[i];if(s===void 0&&(s=new Float32Array(i),Ea[i]=s),t!==0){n.toArray(s,0);for(let o=1,a=0;o!==t;++o)a+=e,r[o].toArray(s,a)}return s}function Yt(r,t){if(r.length!==t.length)return!1;for(let e=0,n=r.length;e":" "} \${a}: \${e[o]}\`)}return n.join(\` +\`)}function bd(r){switch(r){case vn:return["Linear","( value )"];case zt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",r),["Linear","( value )"]}}function Na(r,t,e){let n=r.getShaderParameter(t,35713),i=r.getShaderInfoLog(t).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\\d+)/.exec(i);if(s){let o=parseInt(s[1]);return e.toUpperCase()+\` + +\`+i+\` + +\`+Md(r.getShaderSource(t),o)}else return i}function wd(r,t){let e=bd(t);return"vec4 "+r+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function Sd(r,t){let e;switch(t){case No:e="Linear";break;case Fo:e="Reinhard";break;case zo:e="OptimizedCineon";break;case Oo:e="ACESFilmic";break;case Uo:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+r+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function Td(r){return[r.extensionDerivatives||r.envMapCubeUVHeight||r.bumpMap||r.tangentSpaceNormalMap||r.clearcoatNormalMap||r.flatShading||r.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(r.extensionFragDepth||r.logarithmicDepthBuffer)&&r.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",r.extensionDrawBuffers&&r.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(r.extensionShaderTextureLOD||r.envMap||r.transmission)&&r.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(hi).join(\` +\`)}function Ad(r){let t=[];for(let e in r){let n=r[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(\` +\`)}function Ed(r,t){let e={},n=r.getProgramParameter(t,35721);for(let i=0;i/gm;function ir(r){return r.replace(Cd,Pd)}function Pd(r,t){let e=wt[t];if(e===void 0)throw new Error("Can not resolve #include <"+t+">");return ir(e)}var Rd=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function Oa(r){return r.replace(Rd,Ld)}function Ld(r,t,e,n){let i="";for(let s=parseInt(t);s0&&(d+=\` +\`),v=[m,_].filter(hi).join(\` +\`),v.length>0&&(v+=\` +\`)):(d=[Ua(e),"#define SHADER_NAME "+e.shaderName,_,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",\` +\`].filter(hi).join(\` +\`),v=[m,Ua(e),"#define SHADER_NAME "+e.shaderName,_,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+l:"",e.envMap?"#define "+h:"",e.envMap?"#define "+f:"",u?"#define CUBEUV_TEXEL_WIDTH "+u.texelWidth:"",u?"#define CUBEUV_TEXEL_HEIGHT "+u.texelHeight:"",u?"#define CUBEUV_MAX_MIP "+u.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",e.specularColorMap?"#define USE_SPECULARCOLORMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEENCOLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+c:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==We?"#define TONE_MAPPING":"",e.toneMapping!==We?wt.tonemapping_pars_fragment:"",e.toneMapping!==We?Sd("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",wt.encodings_pars_fragment,wd("linearToOutputTexel",e.outputEncoding),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",\` +\`].filter(hi).join(\` +\`)),o=ir(o),o=Fa(o,e),o=za(o,e),a=ir(a),a=Fa(a,e),a=za(a,e),o=Oa(o),a=Oa(a),e.isWebGL2&&e.isRawShaderMaterial!==!0&&(T=\`#version 300 es +\`,d=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(\` +\`)+\` +\`+d,v=["#define varying in",e.glslVersion===ca?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===ca?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(\` +\`)+\` +\`+v);let b=T+d+o,M=T+v+a,A=Da(i,35633,b),C=Da(i,35632,M);if(i.attachShader(p,A),i.attachShader(p,C),e.index0AttributeName!==void 0?i.bindAttribLocation(p,0,e.index0AttributeName):e.morphTargets===!0&&i.bindAttribLocation(p,0,"position"),i.linkProgram(p),r.debug.checkShaderErrors){let S=i.getProgramInfoLog(p).trim(),L=i.getShaderInfoLog(A).trim(),X=i.getShaderInfoLog(C).trim(),q=!0,z=!0;if(i.getProgramParameter(p,35714)===!1){q=!1;let R=Na(i,A,"vertex"),G=Na(i,C,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(p,35715)+\` + +Program Info Log: \`+S+\` +\`+R+\` +\`+G)}else S!==""?console.warn("THREE.WebGLProgram: Program Info Log:",S):(L===""||X==="")&&(z=!1);z&&(this.diagnostics={runnable:q,programLog:S,vertexShader:{log:L,prefix:d},fragmentShader:{log:X,prefix:v}})}i.deleteShader(A),i.deleteShader(C);let I;this.getUniforms=function(){return I===void 0&&(I=new Wn(i,p)),I};let x;return this.getAttributes=function(){return x===void 0&&(x=Ed(i,p)),x},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(p),this.program=void 0},this.name=e.shaderName,this.id=vd++,this.cacheKey=t,this.usedTimes=1,this.program=p,this.vertexShader=A,this.fragmentShader=C,this}var Ud=0,sr=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(t);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){let e=this.shaderCache,n=e.get(t);return n===void 0&&(n=new rr(t),e.set(t,n)),n}},rr=class{constructor(t){this.id=Ud++,this.code=t,this.usedTimes=0}};function Bd(r,t,e,n,i,s,o){let a=new Zi,c=new sr,l=[],h=i.isWebGL2,f=i.logarithmicDepthBuffer,u=i.vertexTextures,m=i.precision,_={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function p(x,S,L,X,q){let z=X.fog,R=q.geometry,G=x.isMeshStandardMaterial?X.environment:null,Y=(x.isMeshStandardMaterial?e:t).get(x.envMap||G),j=Y&&Y.mapping===ns?Y.image.height:null,W=_[x.type];x.precision!==null&&(m=i.getMaxPrecision(x.precision),m!==x.precision&&console.warn("THREE.WebGLProgram.getParameters:",x.precision,"not supported, using",m,"instead."));let Q=R.morphAttributes.position||R.morphAttributes.normal||R.morphAttributes.color,Z=Q!==void 0?Q.length:0,ft=0;R.morphAttributes.position!==void 0&&(ft=1),R.morphAttributes.normal!==void 0&&(ft=2),R.morphAttributes.color!==void 0&&(ft=3);let F,J,nt,it;if(W){let Ft=De[W];F=Ft.vertexShader,J=Ft.fragmentShader}else F=x.vertexShader,J=x.fragmentShader,c.update(x),nt=c.getVertexShaderID(x),it=c.getFragmentShaderID(x);let O=r.getRenderTarget(),Mt=x.alphaTest>0,ht=x.clearcoat>0,ut=x.iridescence>0;return{isWebGL2:h,shaderID:W,shaderName:x.type,vertexShader:F,fragmentShader:J,defines:x.defines,customVertexShaderID:nt,customFragmentShaderID:it,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:m,instancing:q.isInstancedMesh===!0,instancingColor:q.isInstancedMesh===!0&&q.instanceColor!==null,supportsVertexTextures:u,outputEncoding:O===null?r.outputEncoding:O.isXRRenderTarget===!0?O.texture.encoding:vn,map:!!x.map,matcap:!!x.matcap,envMap:!!Y,envMapMode:Y&&Y.mapping,envMapCubeUVHeight:j,lightMap:!!x.lightMap,aoMap:!!x.aoMap,emissiveMap:!!x.emissiveMap,bumpMap:!!x.bumpMap,normalMap:!!x.normalMap,objectSpaceNormalMap:x.normalMapType===sl,tangentSpaceNormalMap:x.normalMapType===il,decodeVideoTexture:!!x.map&&x.map.isVideoTexture===!0&&x.map.encoding===zt,clearcoat:ht,clearcoatMap:ht&&!!x.clearcoatMap,clearcoatRoughnessMap:ht&&!!x.clearcoatRoughnessMap,clearcoatNormalMap:ht&&!!x.clearcoatNormalMap,iridescence:ut,iridescenceMap:ut&&!!x.iridescenceMap,iridescenceThicknessMap:ut&&!!x.iridescenceThicknessMap,displacementMap:!!x.displacementMap,roughnessMap:!!x.roughnessMap,metalnessMap:!!x.metalnessMap,specularMap:!!x.specularMap,specularIntensityMap:!!x.specularIntensityMap,specularColorMap:!!x.specularColorMap,opaque:x.transparent===!1&&x.blending===Gn,alphaMap:!!x.alphaMap,alphaTest:Mt,gradientMap:!!x.gradientMap,sheen:x.sheen>0,sheenColorMap:!!x.sheenColorMap,sheenRoughnessMap:!!x.sheenRoughnessMap,transmission:x.transmission>0,transmissionMap:!!x.transmissionMap,thicknessMap:!!x.thicknessMap,combine:x.combine,vertexTangents:!!x.normalMap&&!!R.attributes.tangent,vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!R.attributes.color&&R.attributes.color.itemSize===4,vertexUvs:!!x.map||!!x.bumpMap||!!x.normalMap||!!x.specularMap||!!x.alphaMap||!!x.emissiveMap||!!x.roughnessMap||!!x.metalnessMap||!!x.clearcoatMap||!!x.clearcoatRoughnessMap||!!x.clearcoatNormalMap||!!x.iridescenceMap||!!x.iridescenceThicknessMap||!!x.displacementMap||!!x.transmissionMap||!!x.thicknessMap||!!x.specularIntensityMap||!!x.specularColorMap||!!x.sheenColorMap||!!x.sheenRoughnessMap,uvsVertexOnly:!(x.map||x.bumpMap||x.normalMap||x.specularMap||x.alphaMap||x.emissiveMap||x.roughnessMap||x.metalnessMap||x.clearcoatNormalMap||x.iridescenceMap||x.iridescenceThicknessMap||x.transmission>0||x.transmissionMap||x.thicknessMap||x.specularIntensityMap||x.specularColorMap||x.sheen>0||x.sheenColorMap||x.sheenRoughnessMap)&&!!x.displacementMap,fog:!!z,useFog:x.fog===!0,fogExp2:z&&z.isFogExp2,flatShading:!!x.flatShading,sizeAttenuation:x.sizeAttenuation,logarithmicDepthBuffer:f,skinning:q.isSkinnedMesh===!0,morphTargets:R.morphAttributes.position!==void 0,morphNormals:R.morphAttributes.normal!==void 0,morphColors:R.morphAttributes.color!==void 0,morphTargetsCount:Z,morphTextureStride:ft,numDirLights:S.directional.length,numPointLights:S.point.length,numSpotLights:S.spot.length,numSpotLightMaps:S.spotLightMap.length,numRectAreaLights:S.rectArea.length,numHemiLights:S.hemi.length,numDirLightShadows:S.directionalShadowMap.length,numPointLightShadows:S.pointShadowMap.length,numSpotLightShadows:S.spotShadowMap.length,numSpotLightShadowsWithMaps:S.numSpotLightShadowsWithMaps,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:x.dithering,shadowMapEnabled:r.shadowMap.enabled&&L.length>0,shadowMapType:r.shadowMap.type,toneMapping:x.toneMapped?r.toneMapping:We,physicallyCorrectLights:r.physicallyCorrectLights,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===tn,flipSided:x.side===ye,useDepthPacking:!!x.depthPacking,depthPacking:x.depthPacking||0,index0AttributeName:x.index0AttributeName,extensionDerivatives:x.extensions&&x.extensions.derivatives,extensionFragDepth:x.extensions&&x.extensions.fragDepth,extensionDrawBuffers:x.extensions&&x.extensions.drawBuffers,extensionShaderTextureLOD:x.extensions&&x.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:x.customProgramCacheKey()}}function d(x){let S=[];if(x.shaderID?S.push(x.shaderID):(S.push(x.customVertexShaderID),S.push(x.customFragmentShaderID)),x.defines!==void 0)for(let L in x.defines)S.push(L),S.push(x.defines[L]);return x.isRawShaderMaterial===!1&&(v(S,x),T(S,x),S.push(r.outputEncoding)),S.push(x.customProgramCacheKey),S.join()}function v(x,S){x.push(S.precision),x.push(S.outputEncoding),x.push(S.envMapMode),x.push(S.envMapCubeUVHeight),x.push(S.combine),x.push(S.vertexUvs),x.push(S.fogExp2),x.push(S.sizeAttenuation),x.push(S.morphTargetsCount),x.push(S.morphAttributeCount),x.push(S.numDirLights),x.push(S.numPointLights),x.push(S.numSpotLights),x.push(S.numSpotLightMaps),x.push(S.numHemiLights),x.push(S.numRectAreaLights),x.push(S.numDirLightShadows),x.push(S.numPointLightShadows),x.push(S.numSpotLightShadows),x.push(S.numSpotLightShadowsWithMaps),x.push(S.shadowMapType),x.push(S.toneMapping),x.push(S.numClippingPlanes),x.push(S.numClipIntersection),x.push(S.depthPacking)}function T(x,S){a.disableAll(),S.isWebGL2&&a.enable(0),S.supportsVertexTextures&&a.enable(1),S.instancing&&a.enable(2),S.instancingColor&&a.enable(3),S.map&&a.enable(4),S.matcap&&a.enable(5),S.envMap&&a.enable(6),S.lightMap&&a.enable(7),S.aoMap&&a.enable(8),S.emissiveMap&&a.enable(9),S.bumpMap&&a.enable(10),S.normalMap&&a.enable(11),S.objectSpaceNormalMap&&a.enable(12),S.tangentSpaceNormalMap&&a.enable(13),S.clearcoat&&a.enable(14),S.clearcoatMap&&a.enable(15),S.clearcoatRoughnessMap&&a.enable(16),S.clearcoatNormalMap&&a.enable(17),S.iridescence&&a.enable(18),S.iridescenceMap&&a.enable(19),S.iridescenceThicknessMap&&a.enable(20),S.displacementMap&&a.enable(21),S.specularMap&&a.enable(22),S.roughnessMap&&a.enable(23),S.metalnessMap&&a.enable(24),S.gradientMap&&a.enable(25),S.alphaMap&&a.enable(26),S.alphaTest&&a.enable(27),S.vertexColors&&a.enable(28),S.vertexAlphas&&a.enable(29),S.vertexUvs&&a.enable(30),S.vertexTangents&&a.enable(31),S.uvsVertexOnly&&a.enable(32),x.push(a.mask),a.disableAll(),S.fog&&a.enable(0),S.useFog&&a.enable(1),S.flatShading&&a.enable(2),S.logarithmicDepthBuffer&&a.enable(3),S.skinning&&a.enable(4),S.morphTargets&&a.enable(5),S.morphNormals&&a.enable(6),S.morphColors&&a.enable(7),S.premultipliedAlpha&&a.enable(8),S.shadowMapEnabled&&a.enable(9),S.physicallyCorrectLights&&a.enable(10),S.doubleSided&&a.enable(11),S.flipSided&&a.enable(12),S.useDepthPacking&&a.enable(13),S.dithering&&a.enable(14),S.specularIntensityMap&&a.enable(15),S.specularColorMap&&a.enable(16),S.transmission&&a.enable(17),S.transmissionMap&&a.enable(18),S.thicknessMap&&a.enable(19),S.sheen&&a.enable(20),S.sheenColorMap&&a.enable(21),S.sheenRoughnessMap&&a.enable(22),S.decodeVideoTexture&&a.enable(23),S.opaque&&a.enable(24),x.push(a.mask)}function b(x){let S=_[x.type],L;if(S){let X=De[S];L=Il.clone(X.uniforms)}else L=x.uniforms;return L}function M(x,S){let L;for(let X=0,q=l.length;X0?n.push(v):m.transparent===!0?i.push(v):e.push(v)}function c(f,u,m,_,p,d){let v=o(f,u,m,_,p,d);m.transmission>0?n.unshift(v):m.transparent===!0?i.unshift(v):e.unshift(v)}function l(f,u){e.length>1&&e.sort(f||Vd),n.length>1&&n.sort(u||Ba),i.length>1&&i.sort(u||Ba)}function h(){for(let f=t,u=r.length;f=s.length?(o=new ka,s.push(o)):o=s[i],o}function e(){r=new WeakMap}return{get:t,dispose:e}}function Hd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new N,color:new Ot};break;case"SpotLight":e={position:new N,direction:new N,color:new Ot,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new N,color:new Ot,distance:0,decay:0};break;case"HemisphereLight":e={direction:new N,skyColor:new Ot,groundColor:new Ot};break;case"RectAreaLight":e={color:new Ot,position:new N,halfWidth:new N,halfHeight:new N};break}return r[t.id]=e,e}}}function Wd(){let r={};return{get:function(t){if(r[t.id]!==void 0)return r[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Nt,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[t.id]=e,e}}}var Xd=0;function qd(r,t){return(t.castShadow?2:0)-(r.castShadow?2:0)+(t.map?1:0)-(r.map?1:0)}function Yd(r,t){let e=new Hd,n=Wd(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)i.probe.push(new N);let s=new N,o=new qt,a=new qt;function c(h,f){let u=0,m=0,_=0;for(let X=0;X<9;X++)i.probe[X].set(0,0,0);let p=0,d=0,v=0,T=0,b=0,M=0,A=0,C=0,I=0,x=0;h.sort(qd);let S=f!==!0?Math.PI:1;for(let X=0,q=h.length;X0&&(t.isWebGL2||r.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=et.LTC_FLOAT_1,i.rectAreaLTC2=et.LTC_FLOAT_2):r.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=et.LTC_HALF_1,i.rectAreaLTC2=et.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=u,i.ambient[1]=m,i.ambient[2]=_;let L=i.hash;(L.directionalLength!==p||L.pointLength!==d||L.spotLength!==v||L.rectAreaLength!==T||L.hemiLength!==b||L.numDirectionalShadows!==M||L.numPointShadows!==A||L.numSpotShadows!==C||L.numSpotMaps!==I)&&(i.directional.length=p,i.spot.length=v,i.rectArea.length=T,i.point.length=d,i.hemi.length=b,i.directionalShadow.length=M,i.directionalShadowMap.length=M,i.pointShadow.length=A,i.pointShadowMap.length=A,i.spotShadow.length=C,i.spotShadowMap.length=C,i.directionalShadowMatrix.length=M,i.pointShadowMatrix.length=A,i.spotLightMatrix.length=C+I-x,i.spotLightMap.length=I,i.numSpotLightShadowsWithMaps=x,L.directionalLength=p,L.pointLength=d,L.spotLength=v,L.rectAreaLength=T,L.hemiLength=b,L.numDirectionalShadows=M,L.numPointShadows=A,L.numSpotShadows=C,L.numSpotMaps=I,i.version=Xd++)}function l(h,f){let u=0,m=0,_=0,p=0,d=0,v=f.matrixWorldInverse;for(let T=0,b=h.length;T=a.length?(c=new Va(r,t),a.push(c)):c=a[o],c}function i(){e=new WeakMap}return{get:n,dispose:i}}var ar=class extends Jn{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=el,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},or=class extends Jn{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new N,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},Jd=\`void main() { + gl_Position = vec4( position, 1.0 ); +}\`,$d=\`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}\`;function Kd(r,t,e){let n=new ts,i=new Nt,s=new Nt,o=new Xt,a=new ar({depthPacking:nl}),c=new or,l={},h=e.maxTextureSize,f={[nn]:ye,[ye]:nn,[tn]:tn},u=new Ze({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Nt},radius:{value:4}},vertexShader:Jd,fragmentShader:$d}),m=u.clone();m.defines.HORIZONTAL_PASS=1;let _=new Ye;_.setAttribute("position",new ce(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let p=new Ne(_,u),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ga,this.render=function(M,A,C){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||M.length===0)return;let I=r.getRenderTarget(),x=r.getActiveCubeFace(),S=r.getActiveMipmapLevel(),L=r.state;L.setBlending(en),L.buffers.color.setClear(1,1,1,1),L.buffers.depth.setTest(!0),L.setScissorTest(!1);for(let X=0,q=M.length;Xh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/G.x),i.x=s.x*G.x,R.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/G.y),i.y=s.y*G.y,R.mapSize.y=s.y)),R.map===null){let j=this.type!==li?{minFilter:ae,magFilter:ae}:{};R.map=new qe(i.x,i.y,j),R.map.texture.name=z.name+".shadowMap",R.camera.updateProjectionMatrix()}r.setRenderTarget(R.map),r.clear();let Y=R.getViewportCount();for(let j=0;j0||A.map&&A.alphaTest>0){let q=L.uuid,z=A.uuid,R=l[q];R===void 0&&(R={},l[q]=R);let G=R[z];G===void 0&&(G=L.clone(),R[z]=G),L=G}return L.visible=A.visible,L.wireframe=A.wireframe,S===li?L.side=A.shadowSide!==null?A.shadowSide:A.side:L.side=A.shadowSide!==null?A.shadowSide:f[A.side],L.alphaMap=A.alphaMap,L.alphaTest=A.alphaTest,L.map=A.map,L.clipShadows=A.clipShadows,L.clippingPlanes=A.clippingPlanes,L.clipIntersection=A.clipIntersection,L.displacementMap=A.displacementMap,L.displacementScale=A.displacementScale,L.displacementBias=A.displacementBias,L.wireframeLinewidth=A.wireframeLinewidth,L.linewidth=A.linewidth,C.isPointLight===!0&&L.isMeshDistanceMaterial===!0&&(L.referencePosition.setFromMatrixPosition(C.matrixWorld),L.nearDistance=I,L.farDistance=x),L}function b(M,A,C,I,x){if(M.visible===!1)return;if(M.layers.test(A.layers)&&(M.isMesh||M.isLine||M.isPoints)&&(M.castShadow||M.receiveShadow&&x===li)&&(!M.frustumCulled||n.intersectsObject(M))){M.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,M.matrixWorld);let X=t.update(M),q=M.material;if(Array.isArray(q)){let z=X.groups;for(let R=0,G=z.length;R=1):W.indexOf("OpenGL ES")!==-1&&(j=parseFloat(/^OpenGL ES (\\d)/.exec(W)[1]),Y=j>=2);let Q=null,Z={},ft=r.getParameter(3088),F=r.getParameter(2978),J=new Xt().fromArray(ft),nt=new Xt().fromArray(F);function it(E,U,$){let at=new Uint8Array(4),ct=r.createTexture();r.bindTexture(E,ct),r.texParameteri(E,10241,9728),r.texParameteri(E,10240,9728);for(let Lt=0;Lt<$;Lt++)r.texImage2D(U+Lt,0,6408,1,1,0,6408,5121,at);return ct}let O={};O[3553]=it(3553,3553,1),O[34067]=it(34067,34069,6),a.setClear(0,0,0,1),c.setClear(1),l.setClear(0),Mt(2929),c.setFunc(Gs),Qt(!1),Me(Pr),Mt(2884),ne(en);function Mt(E){u[E]!==!0&&(r.enable(E),u[E]=!0)}function ht(E){u[E]!==!1&&(r.disable(E),u[E]=!1)}function ut(E,U){return m[E]!==U?(r.bindFramebuffer(E,U),m[E]=U,n&&(E===36009&&(m[36160]=U),E===36160&&(m[36009]=U)),!0):!1}function ot(E,U){let $=p,at=!1;if(E)if($=_.get(U),$===void 0&&($=[],_.set(U,$)),E.isWebGLMultipleRenderTargets){let ct=E.texture;if($.length!==ct.length||$[0]!==36064){for(let Lt=0,$t=ct.length;Lt<$t;Lt++)$[Lt]=36064+Lt;$.length=ct.length,at=!0}}else $[0]!==36064&&($[0]=36064,at=!0);else $[0]!==1029&&($[0]=1029,at=!0);at&&(e.isWebGL2?r.drawBuffers($):t.get("WEBGL_draw_buffers").drawBuffersWEBGL($))}function Ft(E){return d!==E?(r.useProgram(E),d=E,!0):!1}let bt={[Bn]:32774,[po]:32778,[mo]:32779};if(n)bt[Dr]=32775,bt[Nr]=32776;else{let E=t.get("EXT_blend_minmax");E!==null&&(bt[Dr]=E.MIN_EXT,bt[Nr]=E.MAX_EXT)}let xt={[go]:0,[_o]:1,[xo]:768,[Ha]:770,[So]:776,[bo]:774,[vo]:772,[yo]:769,[Wa]:771,[wo]:775,[Mo]:773};function ne(E,U,$,at,ct,Lt,$t,te){if(E===en){v===!0&&(ht(3042),v=!1);return}if(v===!1&&(Mt(3042),v=!0),E!==fo){if(E!==T||te!==S){if((b!==Bn||C!==Bn)&&(r.blendEquation(32774),b=Bn,C=Bn),te)switch(E){case Gn:r.blendFuncSeparate(1,771,1,771);break;case Rr:r.blendFunc(1,1);break;case Lr:r.blendFuncSeparate(0,769,0,1);break;case Ir:r.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",E);break}else switch(E){case Gn:r.blendFuncSeparate(770,771,1,771);break;case Rr:r.blendFunc(770,1);break;case Lr:r.blendFuncSeparate(0,769,0,1);break;case Ir:r.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",E);break}M=null,A=null,I=null,x=null,T=E,S=te}return}ct=ct||U,Lt=Lt||$,$t=$t||at,(U!==b||ct!==C)&&(r.blendEquationSeparate(bt[U],bt[ct]),b=U,C=ct),($!==M||at!==A||Lt!==I||$t!==x)&&(r.blendFuncSeparate(xt[$],xt[at],xt[Lt],xt[$t]),M=$,A=at,I=Lt,x=$t),T=E,S=!1}function ve(E,U){E.side===tn?ht(2884):Mt(2884);let $=E.side===ye;U&&($=!$),Qt($),E.blending===Gn&&E.transparent===!1?ne(en):ne(E.blending,E.blendEquation,E.blendSrc,E.blendDst,E.blendEquationAlpha,E.blendSrcAlpha,E.blendDstAlpha,E.premultipliedAlpha),c.setFunc(E.depthFunc),c.setTest(E.depthTest),c.setMask(E.depthWrite),a.setMask(E.colorWrite);let at=E.stencilWrite;l.setTest(at),at&&(l.setMask(E.stencilWriteMask),l.setFunc(E.stencilFunc,E.stencilRef,E.stencilFuncMask),l.setOp(E.stencilFail,E.stencilZFail,E.stencilZPass)),Dt(E.polygonOffset,E.polygonOffsetFactor,E.polygonOffsetUnits),E.alphaToCoverage===!0?Mt(32926):ht(32926)}function Qt(E){L!==E&&(E?r.frontFace(2304):r.frontFace(2305),L=E)}function Me(E){E!==co?(Mt(2884),E!==X&&(E===Pr?r.cullFace(1029):E===ho?r.cullFace(1028):r.cullFace(1032))):ht(2884),X=E}function Ht(E){E!==q&&(Y&&r.lineWidth(E),q=E)}function Dt(E,U,$){E?(Mt(32823),(z!==U||R!==$)&&(r.polygonOffset(U,$),z=U,R=$)):ht(32823)}function Fe(E){E?Mt(3089):ht(3089)}function Te(E){E===void 0&&(E=33984+G-1),Q!==E&&(r.activeTexture(E),Q=E)}function w(E,U,$){$===void 0&&(Q===null?$=33984+G-1:$=Q);let at=Z[$];at===void 0&&(at={type:void 0,texture:void 0},Z[$]=at),(at.type!==E||at.texture!==U)&&(Q!==$&&(r.activeTexture($),Q=$),r.bindTexture(E,U||O[E]),at.type=E,at.texture=U)}function g(){let E=Z[Q];E!==void 0&&E.type!==void 0&&(r.bindTexture(E.type,null),E.type=void 0,E.texture=void 0)}function k(){try{r.compressedTexImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function K(){try{r.compressedTexImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function tt(){try{r.texSubImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function st(){try{r.texSubImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function yt(){try{r.compressedTexSubImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function rt(){try{r.compressedTexSubImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function H(){try{r.texStorage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function mt(){try{r.texStorage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function _t(){try{r.texImage2D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function lt(){try{r.texImage3D.apply(r,arguments)}catch(E){console.error("THREE.WebGLState:",E)}}function gt(E){J.equals(E)===!1&&(r.scissor(E.x,E.y,E.z,E.w),J.copy(E))}function dt(E){nt.equals(E)===!1&&(r.viewport(E.x,E.y,E.z,E.w),nt.copy(E))}function Pt(E,U){let $=f.get(U);$===void 0&&($=new WeakMap,f.set(U,$));let at=$.get(E);at===void 0&&(at=r.getUniformBlockIndex(U,E.name),$.set(E,at))}function Ut(E,U){let at=f.get(U).get(E);h.get(U)!==at&&(r.uniformBlockBinding(U,at,E.__bindingPointIndex),h.set(U,at))}function Jt(){r.disable(3042),r.disable(2884),r.disable(2929),r.disable(32823),r.disable(3089),r.disable(2960),r.disable(32926),r.blendEquation(32774),r.blendFunc(1,0),r.blendFuncSeparate(1,0,1,0),r.colorMask(!0,!0,!0,!0),r.clearColor(0,0,0,0),r.depthMask(!0),r.depthFunc(513),r.clearDepth(1),r.stencilMask(4294967295),r.stencilFunc(519,0,4294967295),r.stencilOp(7680,7680,7680),r.clearStencil(0),r.cullFace(1029),r.frontFace(2305),r.polygonOffset(0,0),r.activeTexture(33984),r.bindFramebuffer(36160,null),n===!0&&(r.bindFramebuffer(36009,null),r.bindFramebuffer(36008,null)),r.useProgram(null),r.lineWidth(1),r.scissor(0,0,r.canvas.width,r.canvas.height),r.viewport(0,0,r.canvas.width,r.canvas.height),u={},Q=null,Z={},m={},_=new WeakMap,p=[],d=null,v=!1,T=null,b=null,M=null,A=null,C=null,I=null,x=null,S=!1,L=null,X=null,q=null,z=null,R=null,J.set(0,0,r.canvas.width,r.canvas.height),nt.set(0,0,r.canvas.width,r.canvas.height),a.reset(),c.reset(),l.reset()}return{buffers:{color:a,depth:c,stencil:l},enable:Mt,disable:ht,bindFramebuffer:ut,drawBuffers:ot,useProgram:Ft,setBlending:ne,setMaterial:ve,setFlipSided:Qt,setCullFace:Me,setLineWidth:Ht,setPolygonOffset:Dt,setScissorTest:Fe,activeTexture:Te,bindTexture:w,unbindTexture:g,compressedTexImage2D:k,compressedTexImage3D:K,texImage2D:_t,texImage3D:lt,updateUBOMapping:Pt,uniformBlockBinding:Ut,texStorage2D:H,texStorage3D:mt,texSubImage2D:tt,texSubImage3D:st,compressedTexSubImage2D:yt,compressedTexSubImage3D:rt,scissor:gt,viewport:dt,reset:Jt}}function Qd(r,t,e,n,i,s,o){let a=i.isWebGL2,c=i.maxTextures,l=i.maxCubemapSize,h=i.maxTextureSize,f=i.maxSamples,u=t.has("WEBGL_multisampled_render_to_texture")?t.get("WEBGL_multisampled_render_to_texture"):null,m=typeof navigator=="undefined"?!1:/OculusBrowser/g.test(navigator.userAgent),_=new WeakMap,p,d=new WeakMap,v=!1;try{v=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch(w){}function T(w,g){return v?new OffscreenCanvas(w,g):Wi("canvas")}function b(w,g,k,K){let tt=1;if((w.width>K||w.height>K)&&(tt=K/Math.max(w.width,w.height)),tt<1||g===!0)if(typeof HTMLImageElement!="undefined"&&w instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&w instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&w instanceof ImageBitmap){let st=g?Hi:Math.floor,yt=st(tt*w.width),rt=st(tt*w.height);p===void 0&&(p=T(yt,rt));let H=k?T(yt,rt):p;return H.width=yt,H.height=rt,H.getContext("2d").drawImage(w,0,0,yt,rt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+w.width+"x"+w.height+") to ("+yt+"x"+rt+")."),H}else return"data"in w&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+w.width+"x"+w.height+")."),w;return w}function M(w){return Zs(w.width)&&Zs(w.height)}function A(w){return a?!1:w.wrapS!==Pe||w.wrapT!==Pe||w.minFilter!==ae&&w.minFilter!==Se}function C(w,g){return w.generateMipmaps&&g&&w.minFilter!==ae&&w.minFilter!==Se}function I(w){r.generateMipmap(w)}function x(w,g,k,K,tt=!1){if(a===!1)return g;if(w!==null){if(r[w]!==void 0)return r[w];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+w+"'")}let st=g;return g===6403&&(k===5126&&(st=33326),k===5131&&(st=33325),k===5121&&(st=33321)),g===33319&&(k===5126&&(st=33328),k===5131&&(st=33327),k===5121&&(st=33323)),g===6408&&(k===5126&&(st=34836),k===5131&&(st=34842),k===5121&&(st=K===zt&&tt===!1?35907:32856),k===32819&&(st=32854),k===32820&&(st=32855)),(st===33325||st===33326||st===33327||st===33328||st===34842||st===34836)&&t.get("EXT_color_buffer_float"),st}function S(w,g,k){return C(w,k)===!0||w.isFramebufferTexture&&w.minFilter!==ae&&w.minFilter!==Se?Math.log2(Math.max(g.width,g.height))+1:w.mipmaps!==void 0&&w.mipmaps.length>0?w.mipmaps.length:w.isCompressedTexture&&Array.isArray(w.image)?g.mipmaps.length:1}function L(w){return w===ae||w===Fr||w===us?9728:9729}function X(w){let g=w.target;g.removeEventListener("dispose",X),z(g),g.isVideoTexture&&_.delete(g)}function q(w){let g=w.target;g.removeEventListener("dispose",q),G(g)}function z(w){let g=n.get(w);if(g.__webglInit===void 0)return;let k=w.source,K=d.get(k);if(K){let tt=K[g.__cacheKey];tt.usedTimes--,tt.usedTimes===0&&R(w),Object.keys(K).length===0&&d.delete(k)}n.remove(w)}function R(w){let g=n.get(w);r.deleteTexture(g.__webglTexture);let k=w.source,K=d.get(k);delete K[g.__cacheKey],o.memory.textures--}function G(w){let g=w.texture,k=n.get(w),K=n.get(g);if(K.__webglTexture!==void 0&&(r.deleteTexture(K.__webglTexture),o.memory.textures--),w.depthTexture&&w.depthTexture.dispose(),w.isWebGLCubeRenderTarget)for(let tt=0;tt<6;tt++)r.deleteFramebuffer(k.__webglFramebuffer[tt]),k.__webglDepthbuffer&&r.deleteRenderbuffer(k.__webglDepthbuffer[tt]);else{if(r.deleteFramebuffer(k.__webglFramebuffer),k.__webglDepthbuffer&&r.deleteRenderbuffer(k.__webglDepthbuffer),k.__webglMultisampledFramebuffer&&r.deleteFramebuffer(k.__webglMultisampledFramebuffer),k.__webglColorRenderbuffer)for(let tt=0;tt=c&&console.warn("THREE.WebGLTextures: Trying to use "+w+" texture units while this GPU supports only "+c),Y+=1,w}function Q(w){let g=[];return g.push(w.wrapS),g.push(w.wrapT),g.push(w.wrapR||0),g.push(w.magFilter),g.push(w.minFilter),g.push(w.anisotropy),g.push(w.internalFormat),g.push(w.format),g.push(w.type),g.push(w.generateMipmaps),g.push(w.premultiplyAlpha),g.push(w.flipY),g.push(w.unpackAlignment),g.push(w.encoding),g.join()}function Z(w,g){let k=n.get(w);if(w.isVideoTexture&&Fe(w),w.isRenderTargetTexture===!1&&w.version>0&&k.__version!==w.version){let K=w.image;if(K===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{ht(k,w,g);return}}e.bindTexture(3553,k.__webglTexture,33984+g)}function ft(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ht(k,w,g);return}e.bindTexture(35866,k.__webglTexture,33984+g)}function F(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ht(k,w,g);return}e.bindTexture(32879,k.__webglTexture,33984+g)}function J(w,g){let k=n.get(w);if(w.version>0&&k.__version!==w.version){ut(k,w,g);return}e.bindTexture(34067,k.__webglTexture,33984+g)}let nt={[Xs]:10497,[Pe]:33071,[qs]:33648},it={[ae]:9728,[Fr]:9984,[us]:9986,[Se]:9729,[Bo]:9985,[pi]:9987};function O(w,g,k){if(k?(r.texParameteri(w,10242,nt[g.wrapS]),r.texParameteri(w,10243,nt[g.wrapT]),(w===32879||w===35866)&&r.texParameteri(w,32882,nt[g.wrapR]),r.texParameteri(w,10240,it[g.magFilter]),r.texParameteri(w,10241,it[g.minFilter])):(r.texParameteri(w,10242,33071),r.texParameteri(w,10243,33071),(w===32879||w===35866)&&r.texParameteri(w,32882,33071),(g.wrapS!==Pe||g.wrapT!==Pe)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),r.texParameteri(w,10240,L(g.magFilter)),r.texParameteri(w,10241,L(g.minFilter)),g.minFilter!==ae&&g.minFilter!==Se&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),t.has("EXT_texture_filter_anisotropic")===!0){let K=t.get("EXT_texture_filter_anisotropic");if(g.magFilter===ae||g.minFilter!==us&&g.minFilter!==pi||g.type===gn&&t.has("OES_texture_float_linear")===!1||a===!1&&g.type===mi&&t.has("OES_texture_half_float_linear")===!1)return;(g.anisotropy>1||n.get(g).__currentAnisotropy)&&(r.texParameterf(w,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,i.getMaxAnisotropy())),n.get(g).__currentAnisotropy=g.anisotropy)}}function Mt(w,g){let k=!1;w.__webglInit===void 0&&(w.__webglInit=!0,g.addEventListener("dispose",X));let K=g.source,tt=d.get(K);tt===void 0&&(tt={},d.set(K,tt));let st=Q(g);if(st!==w.__cacheKey){tt[st]===void 0&&(tt[st]={texture:r.createTexture(),usedTimes:0},o.memory.textures++,k=!0),tt[st].usedTimes++;let yt=tt[w.__cacheKey];yt!==void 0&&(tt[w.__cacheKey].usedTimes--,yt.usedTimes===0&&R(g)),w.__cacheKey=st,w.__webglTexture=tt[st].texture}return k}function ht(w,g,k){let K=3553;(g.isDataArrayTexture||g.isCompressedArrayTexture)&&(K=35866),g.isData3DTexture&&(K=32879);let tt=Mt(w,g),st=g.source;e.bindTexture(K,w.__webglTexture,33984+k);let yt=n.get(st);if(st.version!==yt.__version||tt===!0){e.activeTexture(33984+k),r.pixelStorei(37440,g.flipY),r.pixelStorei(37441,g.premultiplyAlpha),r.pixelStorei(3317,g.unpackAlignment),r.pixelStorei(37443,0);let rt=A(g)&&M(g.image)===!1,H=b(g.image,rt,!1,h);H=Te(g,H);let mt=M(H)||a,_t=s.convert(g.format,g.encoding),lt=s.convert(g.type),gt=x(g.internalFormat,_t,lt,g.encoding,g.isVideoTexture);O(K,g,mt);let dt,Pt=g.mipmaps,Ut=a&&g.isVideoTexture!==!0,Jt=yt.__version===void 0||tt===!0,E=S(g,H,mt);if(g.isDepthTexture)gt=6402,a?g.type===gn?gt=36012:g.type===mn?gt=33190:g.type===Hn?gt=35056:gt=33189:g.type===gn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),g.format===_n&>===6402&&g.type!==Ya&&g.type!==mn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),g.type=mn,lt=s.convert(g.type)),g.format===Yn&>===6402&&(gt=34041,g.type!==Hn&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),g.type=Hn,lt=s.convert(g.type))),Jt&&(Ut?e.texStorage2D(3553,1,gt,H.width,H.height):e.texImage2D(3553,0,gt,H.width,H.height,0,_t,lt,null));else if(g.isDataTexture)if(Pt.length>0&&mt){Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],Ut?e.texSubImage2D(3553,U,0,0,dt.width,dt.height,_t,lt,dt.data):e.texImage2D(3553,U,gt,dt.width,dt.height,0,_t,lt,dt.data);g.generateMipmaps=!1}else Ut?(Jt&&e.texStorage2D(3553,E,gt,H.width,H.height),e.texSubImage2D(3553,0,0,0,H.width,H.height,_t,lt,H.data)):e.texImage2D(3553,0,gt,H.width,H.height,0,_t,lt,H.data);else if(g.isCompressedTexture)if(g.isCompressedArrayTexture){Ut&&Jt&&e.texStorage3D(35866,E,gt,Pt[0].width,Pt[0].height,H.depth);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],g.format!==Re?_t!==null?Ut?e.compressedTexSubImage3D(35866,U,0,0,0,dt.width,dt.height,H.depth,_t,dt.data,0,0):e.compressedTexImage3D(35866,U,gt,dt.width,dt.height,H.depth,0,dt.data,0,0):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?e.texSubImage3D(35866,U,0,0,0,dt.width,dt.height,H.depth,_t,lt,dt.data):e.texImage3D(35866,U,gt,dt.width,dt.height,H.depth,0,_t,lt,dt.data)}else{Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],g.format!==Re?_t!==null?Ut?e.compressedTexSubImage2D(3553,U,0,0,dt.width,dt.height,_t,dt.data):e.compressedTexImage2D(3553,U,gt,dt.width,dt.height,0,dt.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?e.texSubImage2D(3553,U,0,0,dt.width,dt.height,_t,lt,dt.data):e.texImage2D(3553,U,gt,dt.width,dt.height,0,_t,lt,dt.data)}else if(g.isDataArrayTexture)Ut?(Jt&&e.texStorage3D(35866,E,gt,H.width,H.height,H.depth),e.texSubImage3D(35866,0,0,0,0,H.width,H.height,H.depth,_t,lt,H.data)):e.texImage3D(35866,0,gt,H.width,H.height,H.depth,0,_t,lt,H.data);else if(g.isData3DTexture)Ut?(Jt&&e.texStorage3D(32879,E,gt,H.width,H.height,H.depth),e.texSubImage3D(32879,0,0,0,0,H.width,H.height,H.depth,_t,lt,H.data)):e.texImage3D(32879,0,gt,H.width,H.height,H.depth,0,_t,lt,H.data);else if(g.isFramebufferTexture){if(Jt)if(Ut)e.texStorage2D(3553,E,gt,H.width,H.height);else{let U=H.width,$=H.height;for(let at=0;at>=1,$>>=1}}else if(Pt.length>0&&mt){Ut&&Jt&&e.texStorage2D(3553,E,gt,Pt[0].width,Pt[0].height);for(let U=0,$=Pt.length;U<$;U++)dt=Pt[U],Ut?e.texSubImage2D(3553,U,0,0,_t,lt,dt):e.texImage2D(3553,U,gt,_t,lt,dt);g.generateMipmaps=!1}else Ut?(Jt&&e.texStorage2D(3553,E,gt,H.width,H.height),e.texSubImage2D(3553,0,0,0,_t,lt,H)):e.texImage2D(3553,0,gt,_t,lt,H);C(g,mt)&&I(K),yt.__version=st.version,g.onUpdate&&g.onUpdate(g)}w.__version=g.version}function ut(w,g,k){if(g.image.length!==6)return;let K=Mt(w,g),tt=g.source;e.bindTexture(34067,w.__webglTexture,33984+k);let st=n.get(tt);if(tt.version!==st.__version||K===!0){e.activeTexture(33984+k),r.pixelStorei(37440,g.flipY),r.pixelStorei(37441,g.premultiplyAlpha),r.pixelStorei(3317,g.unpackAlignment),r.pixelStorei(37443,0);let yt=g.isCompressedTexture||g.image[0].isCompressedTexture,rt=g.image[0]&&g.image[0].isDataTexture,H=[];for(let U=0;U<6;U++)!yt&&!rt?H[U]=b(g.image[U],!1,!0,l):H[U]=rt?g.image[U].image:g.image[U],H[U]=Te(g,H[U]);let mt=H[0],_t=M(mt)||a,lt=s.convert(g.format,g.encoding),gt=s.convert(g.type),dt=x(g.internalFormat,lt,gt,g.encoding),Pt=a&&g.isVideoTexture!==!0,Ut=st.__version===void 0||K===!0,Jt=S(g,mt,_t);O(34067,g,_t);let E;if(yt){Pt&&Ut&&e.texStorage2D(34067,Jt,dt,mt.width,mt.height);for(let U=0;U<6;U++){E=H[U].mipmaps;for(let $=0;$0&&Jt++,e.texStorage2D(34067,Jt,dt,H[0].width,H[0].height));for(let U=0;U<6;U++)if(rt){Pt?e.texSubImage2D(34069+U,0,0,0,H[U].width,H[U].height,lt,gt,H[U].data):e.texImage2D(34069+U,0,dt,H[U].width,H[U].height,0,lt,gt,H[U].data);for(let $=0;$=34069&&tt<=34074)&&r.framebufferTexture2D(36160,K,tt,n.get(k).__webglTexture,0),e.bindFramebuffer(36160,null)}function Ft(w,g,k){if(r.bindRenderbuffer(36161,w),g.depthBuffer&&!g.stencilBuffer){let K=33189;if(k||Dt(g)){let tt=g.depthTexture;tt&&tt.isDepthTexture&&(tt.type===gn?K=36012:tt.type===mn&&(K=33190));let st=Ht(g);Dt(g)?u.renderbufferStorageMultisampleEXT(36161,st,K,g.width,g.height):r.renderbufferStorageMultisample(36161,st,K,g.width,g.height)}else r.renderbufferStorage(36161,K,g.width,g.height);r.framebufferRenderbuffer(36160,36096,36161,w)}else if(g.depthBuffer&&g.stencilBuffer){let K=Ht(g);k&&Dt(g)===!1?r.renderbufferStorageMultisample(36161,K,35056,g.width,g.height):Dt(g)?u.renderbufferStorageMultisampleEXT(36161,K,35056,g.width,g.height):r.renderbufferStorage(36161,34041,g.width,g.height),r.framebufferRenderbuffer(36160,33306,36161,w)}else{let K=g.isWebGLMultipleRenderTargets===!0?g.texture:[g.texture];for(let tt=0;tt0&&Dt(w)===!1){let rt=st?g:[g];k.__webglMultisampledFramebuffer=r.createFramebuffer(),k.__webglColorRenderbuffer=[],e.bindFramebuffer(36160,k.__webglMultisampledFramebuffer);for(let H=0;H0&&Dt(w)===!1){let g=w.isWebGLMultipleRenderTargets?w.texture:[w.texture],k=w.width,K=w.height,tt=16384,st=[],yt=w.stencilBuffer?33306:36096,rt=n.get(w),H=w.isWebGLMultipleRenderTargets===!0;if(H)for(let mt=0;mt0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&g.__useRenderToTexture!==!1}function Fe(w){let g=o.render.frame;_.get(w)!==g&&(_.set(w,g),w.update())}function Te(w,g){let k=w.encoding,K=w.format,tt=w.type;return w.isCompressedTexture===!0||w.isVideoTexture===!0||w.format===Ys||k!==vn&&(k===zt?a===!1?t.has("EXT_sRGB")===!0&&K===Re?(w.format=Ys,w.minFilter=Se,w.generateMipmaps=!1):g=Xi.sRGBToLinear(g):(K!==Re||tt!==yn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",k)),g}this.allocateTextureUnit=W,this.resetTextureUnits=j,this.setTexture2D=Z,this.setTexture2DArray=ft,this.setTexture3D=F,this.setTextureCube=J,this.rebindTextures=ne,this.setupRenderTarget=ve,this.updateRenderTargetMipmap=Qt,this.updateMultisampleRenderTarget=Me,this.setupDepthRenderbuffer=xt,this.setupFrameBufferTexture=ot,this.useMultisampledRTT=Dt}function tf(r,t,e){let n=e.isWebGL2;function i(s,o=null){let a;if(s===yn)return 5121;if(s===Ho)return 32819;if(s===Wo)return 32820;if(s===ko)return 5120;if(s===Vo)return 5122;if(s===Ya)return 5123;if(s===Go)return 5124;if(s===mn)return 5125;if(s===gn)return 5126;if(s===mi)return n?5131:(a=t.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(s===Xo)return 6406;if(s===Re)return 6408;if(s===qo)return 6409;if(s===Yo)return 6410;if(s===_n)return 6402;if(s===Yn)return 34041;if(s===Ys)return a=t.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(s===Zo)return 6403;if(s===Jo)return 36244;if(s===$o)return 33319;if(s===Ko)return 33320;if(s===jo)return 36249;if(s===ds||s===fs||s===ps||s===ms)if(o===zt)if(a=t.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(s===ds)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=t.get("WEBGL_compressed_texture_s3tc"),a!==null){if(s===ds)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===fs)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===ps)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===ms)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===zr||s===Or||s===Ur||s===Br)if(a=t.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(s===zr)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===Or)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Ur)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===Br)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===Qo)return a=t.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(s===kr||s===Vr)if(a=t.get("WEBGL_compressed_texture_etc"),a!==null){if(s===kr)return o===zt?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(s===Vr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(s===Gr||s===Hr||s===Wr||s===Xr||s===qr||s===Yr||s===Zr||s===Jr||s===$r||s===Kr||s===jr||s===Qr||s===ta||s===ea)if(a=t.get("WEBGL_compressed_texture_astc"),a!==null){if(s===Gr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===Hr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===Wr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===Xr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===qr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===Yr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===Zr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===Jr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===$r)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===Kr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===jr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===Qr)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===ta)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===ea)return o===zt?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===gs)if(a=t.get("EXT_texture_compression_bptc"),a!==null){if(s===gs)return o===zt?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(s===tl||s===na||s===ia||s===sa)if(a=t.get("EXT_texture_compression_rgtc"),a!==null){if(s===gs)return a.COMPRESSED_RED_RGTC1_EXT;if(s===na)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===ia)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===sa)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===Hn?n?34042:(a=t.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):r[s]!==void 0?r[s]:null}return{convert:i}}var lr=class extends _e{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}},Vn=class extends de{constructor(){super(),this.isGroup=!0,this.type="Group"}},ef={type:"move"},fi=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Vn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Vn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new N,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new N),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Vn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new N,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new N),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){let e=this._hand;if(e)for(let n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let i=null,s=null,o=null,a=this._targetRay,c=this._grip,l=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(l&&t.hand){o=!0;for(let p of t.hand.values()){let d=e.getJointPose(p,n),v=this._getHandJoint(l,p);d!==null&&(v.matrix.fromArray(d.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.jointRadius=d.radius),v.visible=d!==null}let h=l.joints["index-finger-tip"],f=l.joints["thumb-tip"],u=h.position.distanceTo(f.position),m=.02,_=.005;l.inputState.pinching&&u>m+_?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=m-_&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,n),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));a!==null&&(i=e.getPose(t.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(ef)))}return a!==null&&(a.visible=i!==null),c!==null&&(c.visible=s!==null),l!==null&&(l.visible=o!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let n=new Vn;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}},cr=class extends le{constructor(t,e,n,i,s,o,a,c,l,h){if(h=h!==void 0?h:_n,h!==_n&&h!==Yn)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===_n&&(n=mn),n===void 0&&h===Yn&&(n=Hn),super(null,i,s,o,a,c,h,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=a!==void 0?a:ae,this.minFilter=c!==void 0?c:ae,this.flipY=!1,this.generateMipmaps=!1}},hr=class extends sn{constructor(t,e){super();let n=this,i=null,s=1,o=null,a="local-floor",c=1,l=null,h=null,f=null,u=null,m=null,_=null,p=e.getContextAttributes(),d=null,v=null,T=[],b=[],M=new Set,A=new Map,C=new _e;C.layers.enable(1),C.viewport=new Xt;let I=new _e;I.layers.enable(2),I.viewport=new Xt;let x=[C,I],S=new lr;S.layers.enable(1),S.layers.enable(2);let L=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getTargetRaySpace()},this.getControllerGrip=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getGripSpace()},this.getHand=function(F){let J=T[F];return J===void 0&&(J=new fi,T[F]=J),J.getHandSpace()};function q(F){let J=b.indexOf(F.inputSource);if(J===-1)return;let nt=T[J];nt!==void 0&&nt.dispatchEvent({type:F.type,data:F.inputSource})}function z(){i.removeEventListener("select",q),i.removeEventListener("selectstart",q),i.removeEventListener("selectend",q),i.removeEventListener("squeeze",q),i.removeEventListener("squeezestart",q),i.removeEventListener("squeezeend",q),i.removeEventListener("end",z),i.removeEventListener("inputsourceschange",R);for(let F=0;F=0&&(b[it]=null,T[it].disconnect(nt))}for(let J=0;J=b.length){b.push(nt),it=Mt;break}else if(b[Mt]===null){b[Mt]=nt,it=Mt;break}if(it===-1)break}let O=T[it];O&&O.connect(nt)}}let G=new N,Y=new N;function j(F,J,nt){G.setFromMatrixPosition(J.matrixWorld),Y.setFromMatrixPosition(nt.matrixWorld);let it=G.distanceTo(Y),O=J.projectionMatrix.elements,Mt=nt.projectionMatrix.elements,ht=O[14]/(O[10]-1),ut=O[14]/(O[10]+1),ot=(O[9]+1)/O[5],Ft=(O[9]-1)/O[5],bt=(O[8]-1)/O[0],xt=(Mt[8]+1)/Mt[0],ne=ht*bt,ve=ht*xt,Qt=it/(-bt+xt),Me=Qt*-bt;J.matrixWorld.decompose(F.position,F.quaternion,F.scale),F.translateX(Me),F.translateZ(Qt),F.matrixWorld.compose(F.position,F.quaternion,F.scale),F.matrixWorldInverse.copy(F.matrixWorld).invert();let Ht=ht+Qt,Dt=ut+Qt,Fe=ne-Me,Te=ve+(it-Me),w=ot*ut/Dt*Ht,g=Ft*ut/Dt*Ht;F.projectionMatrix.makePerspective(Fe,Te,w,g,Ht,Dt)}function W(F,J){J===null?F.matrixWorld.copy(F.matrix):F.matrixWorld.multiplyMatrices(J.matrixWorld,F.matrix),F.matrixWorldInverse.copy(F.matrixWorld).invert()}this.updateCamera=function(F){if(i===null)return;S.near=I.near=C.near=F.near,S.far=I.far=C.far=F.far,(L!==S.near||X!==S.far)&&(i.updateRenderState({depthNear:S.near,depthFar:S.far}),L=S.near,X=S.far);let J=F.parent,nt=S.cameras;W(S,J);for(let O=0;OO&&(A.set(it,it.lastChangedTime),n.dispatchEvent({type:"planechanged",data:it}))}}_=null}let ft=new ja;ft.setAnimationLoop(Z),this.setAnimationLoop=function(F){Q=F},this.dispose=function(){}}};function nf(r,t){function e(p,d){d.color.getRGB(p.fogColor.value,Ka(r)),d.isFog?(p.fogNear.value=d.near,p.fogFar.value=d.far):d.isFogExp2&&(p.fogDensity.value=d.density)}function n(p,d,v,T,b){d.isMeshBasicMaterial||d.isMeshLambertMaterial?i(p,d):d.isMeshToonMaterial?(i(p,d),h(p,d)):d.isMeshPhongMaterial?(i(p,d),l(p,d)):d.isMeshStandardMaterial?(i(p,d),f(p,d),d.isMeshPhysicalMaterial&&u(p,d,b)):d.isMeshMatcapMaterial?(i(p,d),m(p,d)):d.isMeshDepthMaterial?i(p,d):d.isMeshDistanceMaterial?(i(p,d),_(p,d)):d.isMeshNormalMaterial?i(p,d):d.isLineBasicMaterial?(s(p,d),d.isLineDashedMaterial&&o(p,d)):d.isPointsMaterial?a(p,d,v,T):d.isSpriteMaterial?c(p,d):d.isShadowMaterial?(p.color.value.copy(d.color),p.opacity.value=d.opacity):d.isShaderMaterial&&(d.uniformsNeedUpdate=!1)}function i(p,d){p.opacity.value=d.opacity,d.color&&p.diffuse.value.copy(d.color),d.emissive&&p.emissive.value.copy(d.emissive).multiplyScalar(d.emissiveIntensity),d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.bumpMap&&(p.bumpMap.value=d.bumpMap,p.bumpScale.value=d.bumpScale,d.side===ye&&(p.bumpScale.value*=-1)),d.displacementMap&&(p.displacementMap.value=d.displacementMap,p.displacementScale.value=d.displacementScale,p.displacementBias.value=d.displacementBias),d.emissiveMap&&(p.emissiveMap.value=d.emissiveMap),d.normalMap&&(p.normalMap.value=d.normalMap,p.normalScale.value.copy(d.normalScale),d.side===ye&&p.normalScale.value.negate()),d.specularMap&&(p.specularMap.value=d.specularMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let v=t.get(d).envMap;if(v&&(p.envMap.value=v,p.flipEnvMap.value=v.isCubeTexture&&v.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=d.reflectivity,p.ior.value=d.ior,p.refractionRatio.value=d.refractionRatio),d.lightMap){p.lightMap.value=d.lightMap;let M=r.physicallyCorrectLights!==!0?Math.PI:1;p.lightMapIntensity.value=d.lightMapIntensity*M}d.aoMap&&(p.aoMap.value=d.aoMap,p.aoMapIntensity.value=d.aoMapIntensity);let T;d.map?T=d.map:d.specularMap?T=d.specularMap:d.displacementMap?T=d.displacementMap:d.normalMap?T=d.normalMap:d.bumpMap?T=d.bumpMap:d.roughnessMap?T=d.roughnessMap:d.metalnessMap?T=d.metalnessMap:d.alphaMap?T=d.alphaMap:d.emissiveMap?T=d.emissiveMap:d.clearcoatMap?T=d.clearcoatMap:d.clearcoatNormalMap?T=d.clearcoatNormalMap:d.clearcoatRoughnessMap?T=d.clearcoatRoughnessMap:d.iridescenceMap?T=d.iridescenceMap:d.iridescenceThicknessMap?T=d.iridescenceThicknessMap:d.specularIntensityMap?T=d.specularIntensityMap:d.specularColorMap?T=d.specularColorMap:d.transmissionMap?T=d.transmissionMap:d.thicknessMap?T=d.thicknessMap:d.sheenColorMap?T=d.sheenColorMap:d.sheenRoughnessMap&&(T=d.sheenRoughnessMap),T!==void 0&&(T.isWebGLRenderTarget&&(T=T.texture),T.matrixAutoUpdate===!0&&T.updateMatrix(),p.uvTransform.value.copy(T.matrix));let b;d.aoMap?b=d.aoMap:d.lightMap&&(b=d.lightMap),b!==void 0&&(b.isWebGLRenderTarget&&(b=b.texture),b.matrixAutoUpdate===!0&&b.updateMatrix(),p.uv2Transform.value.copy(b.matrix))}function s(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity}function o(p,d){p.dashSize.value=d.dashSize,p.totalSize.value=d.dashSize+d.gapSize,p.scale.value=d.scale}function a(p,d,v,T){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.size.value=d.size*v,p.scale.value=T*.5,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let b;d.map?b=d.map:d.alphaMap&&(b=d.alphaMap),b!==void 0&&(b.matrixAutoUpdate===!0&&b.updateMatrix(),p.uvTransform.value.copy(b.matrix))}function c(p,d){p.diffuse.value.copy(d.color),p.opacity.value=d.opacity,p.rotation.value=d.rotation,d.map&&(p.map.value=d.map),d.alphaMap&&(p.alphaMap.value=d.alphaMap),d.alphaTest>0&&(p.alphaTest.value=d.alphaTest);let v;d.map?v=d.map:d.alphaMap&&(v=d.alphaMap),v!==void 0&&(v.matrixAutoUpdate===!0&&v.updateMatrix(),p.uvTransform.value.copy(v.matrix))}function l(p,d){p.specular.value.copy(d.specular),p.shininess.value=Math.max(d.shininess,1e-4)}function h(p,d){d.gradientMap&&(p.gradientMap.value=d.gradientMap)}function f(p,d){p.roughness.value=d.roughness,p.metalness.value=d.metalness,d.roughnessMap&&(p.roughnessMap.value=d.roughnessMap),d.metalnessMap&&(p.metalnessMap.value=d.metalnessMap),t.get(d).envMap&&(p.envMapIntensity.value=d.envMapIntensity)}function u(p,d,v){p.ior.value=d.ior,d.sheen>0&&(p.sheenColor.value.copy(d.sheenColor).multiplyScalar(d.sheen),p.sheenRoughness.value=d.sheenRoughness,d.sheenColorMap&&(p.sheenColorMap.value=d.sheenColorMap),d.sheenRoughnessMap&&(p.sheenRoughnessMap.value=d.sheenRoughnessMap)),d.clearcoat>0&&(p.clearcoat.value=d.clearcoat,p.clearcoatRoughness.value=d.clearcoatRoughness,d.clearcoatMap&&(p.clearcoatMap.value=d.clearcoatMap),d.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=d.clearcoatRoughnessMap),d.clearcoatNormalMap&&(p.clearcoatNormalScale.value.copy(d.clearcoatNormalScale),p.clearcoatNormalMap.value=d.clearcoatNormalMap,d.side===ye&&p.clearcoatNormalScale.value.negate())),d.iridescence>0&&(p.iridescence.value=d.iridescence,p.iridescenceIOR.value=d.iridescenceIOR,p.iridescenceThicknessMinimum.value=d.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=d.iridescenceThicknessRange[1],d.iridescenceMap&&(p.iridescenceMap.value=d.iridescenceMap),d.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=d.iridescenceThicknessMap)),d.transmission>0&&(p.transmission.value=d.transmission,p.transmissionSamplerMap.value=v.texture,p.transmissionSamplerSize.value.set(v.width,v.height),d.transmissionMap&&(p.transmissionMap.value=d.transmissionMap),p.thickness.value=d.thickness,d.thicknessMap&&(p.thicknessMap.value=d.thicknessMap),p.attenuationDistance.value=d.attenuationDistance,p.attenuationColor.value.copy(d.attenuationColor)),p.specularIntensity.value=d.specularIntensity,p.specularColor.value.copy(d.specularColor),d.specularIntensityMap&&(p.specularIntensityMap.value=d.specularIntensityMap),d.specularColorMap&&(p.specularColorMap.value=d.specularColorMap)}function m(p,d){d.matcap&&(p.matcap.value=d.matcap)}function _(p,d){p.referencePosition.value.copy(d.referencePosition),p.nearDistance.value=d.nearDistance,p.farDistance.value=d.farDistance}return{refreshFogUniforms:e,refreshMaterialUniforms:n}}function sf(r,t,e,n){let i={},s={},o=[],a=e.isWebGL2?r.getParameter(35375):0;function c(T,b){let M=b.program;n.uniformBlockBinding(T,M)}function l(T,b){let M=i[T.id];M===void 0&&(_(T),M=h(T),i[T.id]=M,T.addEventListener("dispose",d));let A=b.program;n.updateUBOMapping(T,A);let C=t.render.frame;s[T.id]!==C&&(u(T),s[T.id]=C)}function h(T){let b=f();T.__bindingPointIndex=b;let M=r.createBuffer(),A=T.__size,C=T.usage;return r.bindBuffer(35345,M),r.bufferData(35345,A,C),r.bindBuffer(35345,null),r.bindBufferBase(35345,b,M),M}function f(){for(let T=0;T0){C=M%A;let q=A-C;C!==0&&q-L.boundary<0&&(M+=A-C,S.__offset=M)}M+=L.storage}return C=M%A,C>0&&(M+=A-C),T.__size=M,T.__cache={},this}function p(T){let b={boundary:0,storage:0};return typeof T=="number"?(b.boundary=4,b.storage=4):T.isVector2?(b.boundary=8,b.storage=8):T.isVector3||T.isColor?(b.boundary=16,b.storage=12):T.isVector4?(b.boundary=16,b.storage=16):T.isMatrix3?(b.boundary=48,b.storage=48):T.isMatrix4?(b.boundary=64,b.storage=64):T.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",T),b}function d(T){let b=T.target;b.removeEventListener("dispose",d);let M=o.indexOf(b.__bindingPointIndex);o.splice(M,1),r.deleteBuffer(i[b.id]),delete i[b.id],delete s[b.id]}function v(){for(let T in i)r.deleteBuffer(i[T]);o=[],i={},s={}}return{bind:c,update:l,dispose:v}}function rf(){let r=Wi("canvas");return r.style.display="block",r}function af(r={}){this.isWebGLRenderer=!0;let t=r.canvas!==void 0?r.canvas:rf(),e=r.context!==void 0?r.context:null,n=r.depth!==void 0?r.depth:!0,i=r.stencil!==void 0?r.stencil:!0,s=r.antialias!==void 0?r.antialias:!1,o=r.premultipliedAlpha!==void 0?r.premultipliedAlpha:!0,a=r.preserveDrawingBuffer!==void 0?r.preserveDrawingBuffer:!1,c=r.powerPreference!==void 0?r.powerPreference:"default",l=r.failIfMajorPerformanceCaveat!==void 0?r.failIfMajorPerformanceCaveat:!1,h;e!==null?h=e.getContextAttributes().alpha:h=r.alpha!==void 0?r.alpha:!1;let f=null,u=null,m=[],_=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=vn,this.physicallyCorrectLights=!1,this.toneMapping=We,this.toneMappingExposure=1;let p=this,d=!1,v=0,T=0,b=null,M=-1,A=null,C=new Xt,I=new Xt,x=null,S=t.width,L=t.height,X=1,q=null,z=null,R=new Xt(0,0,S,L),G=new Xt(0,0,S,L),Y=!1,j=new ts,W=!1,Q=!1,Z=null,ft=new qt,F=new Nt,J=new N,nt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function it(){return b===null?X:1}let O=e;function Mt(y,D){for(let B=0;B0?u=_[_.length-1]:u=null,m.pop(),m.length>0?f=m[m.length-1]:f=null};function $t(y,D,B,P){if(y.visible===!1)return;if(y.layers.test(D.layers)){if(y.isGroup)B=y.renderOrder;else if(y.isLOD)y.autoUpdate===!0&&y.update(D);else if(y.isLight)u.pushLight(y),y.castShadow&&u.pushShadow(y);else if(y.isSprite){if(!y.frustumCulled||j.intersectsSprite(y)){P&&J.setFromMatrixPosition(y.matrixWorld).applyMatrix4(ft);let vt=Ht.update(y),St=y.material;St.visible&&f.push(y,vt,St,B,J.z,null)}}else if((y.isMesh||y.isLine||y.isPoints)&&(y.isSkinnedMesh&&y.skeleton.frame!==Ft.render.frame&&(y.skeleton.update(),y.skeleton.frame=Ft.render.frame),!y.frustumCulled||j.intersectsObject(y))){P&&J.setFromMatrixPosition(y.matrixWorld).applyMatrix4(ft);let vt=Ht.update(y),St=y.material;if(Array.isArray(St)){let Tt=vt.groups;for(let Rt=0,At=Tt.length;Rt0&&an(V,D,B),P&&ot.viewport(C.copy(P)),V.length>0&&Bt(V,D,B),pt.length>0&&Bt(pt,D,B),vt.length>0&&Bt(vt,D,B),ot.buffers.depth.setTest(!0),ot.buffers.depth.setMask(!0),ot.buffers.color.setMask(!0),ot.setPolygonOffset(!1)}function an(y,D,B){let P=ut.isWebGL2;Z===null&&(Z=new qe(1,1,{generateMipmaps:!0,type:ht.has("EXT_color_buffer_half_float")?mi:yn,minFilter:pi,samples:P&&s===!0?4:0})),p.getDrawingBufferSize(F),P?Z.setSize(F.x,F.y):Z.setSize(Hi(F.x),Hi(F.y));let V=p.getRenderTarget();p.setRenderTarget(Z),p.clear();let pt=p.toneMapping;p.toneMapping=We,Bt(y,D,B),p.toneMapping=pt,xt.updateMultisampleRenderTarget(Z),xt.updateRenderTargetMipmap(Z),p.setRenderTarget(V)}function Bt(y,D,B){let P=D.isScene===!0?D.overrideMaterial:null;for(let V=0,pt=y.length;V0&&xt.useMultisampledRTT(y)===!1?V=bt.get(y).__webglMultisampledFramebuffer:V=At,C.copy(y.viewport),I.copy(y.scissor),x=y.scissorTest}else C.copy(R).multiplyScalar(X).floor(),I.copy(G).multiplyScalar(X).floor(),x=Y;if(ot.bindFramebuffer(36160,V)&&ut.drawBuffers&&P&&ot.drawBuffers(y,V),ot.viewport(C),ot.scissor(I),ot.setScissorTest(x),pt){let Tt=bt.get(y.texture);O.framebufferTexture2D(36160,36064,34069+D,Tt.__webglTexture,B)}else if(vt){let Tt=bt.get(y.texture),Rt=D||0;O.framebufferTextureLayer(36160,36064,Tt.__webglTexture,B||0,Rt)}M=-1},this.readRenderTargetPixels=function(y,D,B,P,V,pt,vt){if(!(y&&y.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let St=bt.get(y).__webglFramebuffer;if(y.isWebGLCubeRenderTarget&&vt!==void 0&&(St=St[vt]),St){ot.bindFramebuffer(36160,St);try{let Tt=y.texture,Rt=Tt.format,At=Tt.type;if(Rt!==Re&&rt.convert(Rt)!==O.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let Et=At===mi&&(ht.has("EXT_color_buffer_half_float")||ut.isWebGL2&&ht.has("EXT_color_buffer_float"));if(At!==yn&&rt.convert(At)!==O.getParameter(35738)&&!(At===gn&&(ut.isWebGL2||ht.has("OES_texture_float")||ht.has("WEBGL_color_buffer_float")))&&!Et){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}D>=0&&D<=y.width-P&&B>=0&&B<=y.height-V&&O.readPixels(D,B,P,V,rt.convert(Rt),rt.convert(At),pt)}finally{let Tt=b!==null?bt.get(b).__webglFramebuffer:null;ot.bindFramebuffer(36160,Tt)}}},this.copyFramebufferToTexture=function(y,D,B=0){let P=Math.pow(2,-B),V=Math.floor(D.image.width*P),pt=Math.floor(D.image.height*P);xt.setTexture2D(D,0),O.copyTexSubImage2D(3553,B,0,0,y.x,y.y,V,pt),ot.unbindTexture()},this.copyTextureToTexture=function(y,D,B,P=0){let V=D.image.width,pt=D.image.height,vt=rt.convert(B.format),St=rt.convert(B.type);xt.setTexture2D(B,0),O.pixelStorei(37440,B.flipY),O.pixelStorei(37441,B.premultiplyAlpha),O.pixelStorei(3317,B.unpackAlignment),D.isDataTexture?O.texSubImage2D(3553,P,y.x,y.y,V,pt,vt,St,D.image.data):D.isCompressedTexture?O.compressedTexSubImage2D(3553,P,y.x,y.y,D.mipmaps[0].width,D.mipmaps[0].height,vt,D.mipmaps[0].data):O.texSubImage2D(3553,P,y.x,y.y,vt,St,D.image),P===0&&B.generateMipmaps&&O.generateMipmap(3553),ot.unbindTexture()},this.copyTextureToTexture3D=function(y,D,B,P,V=0){if(p.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let pt=y.max.x-y.min.x+1,vt=y.max.y-y.min.y+1,St=y.max.z-y.min.z+1,Tt=rt.convert(P.format),Rt=rt.convert(P.type),At;if(P.isData3DTexture)xt.setTexture3D(P,0),At=32879;else if(P.isDataArrayTexture)xt.setTexture2DArray(P,0),At=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}O.pixelStorei(37440,P.flipY),O.pixelStorei(37441,P.premultiplyAlpha),O.pixelStorei(3317,P.unpackAlignment);let Et=O.getParameter(3314),kt=O.getParameter(32878),fe=O.getParameter(3316),Oe=O.getParameter(3315),on=O.getParameter(32877),Vt=B.isCompressedTexture?B.mipmaps[0]:B.image;O.pixelStorei(3314,Vt.width),O.pixelStorei(32878,Vt.height),O.pixelStorei(3316,y.min.x),O.pixelStorei(3315,y.min.y),O.pixelStorei(32877,y.min.z),B.isDataTexture||B.isData3DTexture?O.texSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Rt,Vt.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),O.compressedTexSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Vt.data)):O.texSubImage3D(At,V,D.x,D.y,D.z,pt,vt,St,Tt,Rt,Vt),O.pixelStorei(3314,Et),O.pixelStorei(32878,kt),O.pixelStorei(3316,fe),O.pixelStorei(3315,Oe),O.pixelStorei(32877,on),V===0&&P.generateMipmaps&&O.generateMipmap(At),ot.unbindTexture()},this.initTexture=function(y){y.isCubeTexture?xt.setTextureCube(y,0):y.isData3DTexture?xt.setTexture3D(y,0):y.isDataArrayTexture||y.isCompressedArrayTexture?xt.setTexture2DArray(y,0):xt.setTexture2D(y,0),ot.unbindTexture()},this.resetState=function(){v=0,T=0,b=null,ot.reset(),H.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}var ur=class extends af{};ur.prototype.isWebGL1Renderer=!0;function Qe(r,t,e){return io(r)?new r.constructor(r.subarray(t,e!==void 0?e:r.length)):r.slice(t,e)}function Ui(r,t,e){return!r||!e&&r.constructor===t?r:typeof t.BYTES_PER_ELEMENT=="number"?new t(r):Array.prototype.slice.call(r)}function io(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}var Kn=class{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=i!==void 0?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,n=this._cachedIndex,i=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){let a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);let a=this.getValueSize();this.times=Qe(n,s,o),this.values=Qe(this.values,s*a,o*a)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){let c=n[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),t=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),t=!1;break}o=c}if(i!==void 0&&io(i))for(let a=0,c=i.length;a!==c;++a){let l=i[a];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,l),t=!1;break}}return t}optimize(){let t=Qe(this.times),e=Qe(this.values),n=this.getValueSize(),i=this.getInterpolation()===_s,s=t.length-1,o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,c=o*n,l=0;l!==n;++l)e[c+l]=e[a+l];++o}return o!==t.length?(this.times=Qe(t,0,o),this.values=Qe(e,0,o*n)):(this.times=t,this.values=e),this}clone(){let t=Qe(this.times,0),e=Qe(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}};Le.prototype.TimeBufferType=Float32Array;Le.prototype.ValueBufferType=Float32Array;Le.prototype.DefaultInterpolation=Vi;var wn=class extends Le{};wn.prototype.ValueTypeName="bool";wn.prototype.ValueBufferType=Array;wn.prototype.DefaultInterpolation=ki;wn.prototype.InterpolantFactoryMethodLinear=void 0;wn.prototype.InterpolantFactoryMethodSmooth=void 0;var mr=class extends Le{};mr.prototype.ValueTypeName="color";var gr=class extends Le{};gr.prototype.ValueTypeName="number";var _r=class extends Kn{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){let s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(n-e)/(i-e),l=t*a;for(let h=l+a;l!==h;l+=4)rn.slerpFlat(s,0,o,l-a,o,l,c);return s}},yi=class extends Le{InterpolantFactoryMethodLinear(t){return new _r(this.times,this.values,this.getValueSize(),t)}};yi.prototype.ValueTypeName="quaternion";yi.prototype.DefaultInterpolation=Vi;yi.prototype.InterpolantFactoryMethodSmooth=void 0;var Sn=class extends Le{};Sn.prototype.ValueTypeName="string";Sn.prototype.ValueBufferType=Array;Sn.prototype.DefaultInterpolation=ki;Sn.prototype.InterpolantFactoryMethodLinear=void 0;Sn.prototype.InterpolantFactoryMethodSmooth=void 0;var xr=class extends Le{};xr.prototype.ValueTypeName="vector";var wr="\\\\[\\\\]\\\\.:\\\\/",of=new RegExp("["+wr+"]","g"),Sr="[^"+wr+"]",lf="[^"+wr.replace("\\\\.","")+"]",cf=/((?:WC+[\\/:])*)/.source.replace("WC",Sr),hf=/(WCOD+)?/.source.replace("WCOD",lf),uf=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace("WC",Sr),df=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace("WC",Sr),ff=new RegExp("^"+cf+hf+uf+df+"$"),pf=["material","materials","bones","map"],yr=class{constructor(t,e,n){let i=n||It.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();let n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(t,e)}setValue(t,e){let n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,s=n.length;i!==s;++i)n[i].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},It=class{constructor(t,e,n){this.path=e,this.parsedPath=n||It.parseTrackName(e),this.node=It.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new It.Composite(t,e,n):new It(t,e,n)}static sanitizeNodeName(t){return t.replace(/\\s/g,"_").replace(of,"")}static parseTrackName(t){let e=ff.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);let n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){let s=n.nodeName.substring(i+1);pf.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){let n=function(s){for(let o=0;oMath.round(S*a);if(d[0]=\`\${x(A.x)}, \${x(A.y)}, \${x(A.z)}\`,d[1]=\`\${x(C.x)}, \${x(C.y)}, \${x(C.z)}\`,d[2]=\`\${x(I.x)}, \${x(I.y)}, \${x(I.z)}\`,!(d[0]===d[1]||d[1]===d[2]||d[2]===d[0]))for(let S=0;S<3;S++){let L=(S+1)%3,X=d[S],q=d[L],z=as[p[S]],R=as[p[L]],G=\`\${X}_\${q}\`,Y=\`\${q}_\${X}\`;Y in v&&v[Y]?(Tr.dot(v[Y].normal)<=c&&(T.push(z.x,z.y,z.z),T.push(R.x,R.y,R.z)),v[Y]=null):G in v||(v[G]={index0:_[S],index1:_[L],normal:Tr.clone()})}}for(let M in v)if(v[M]){let{index0:A,index1:C}=v[M];ss.fromBufferAttribute(u,A),rs.fromBufferAttribute(u,C),T.push(ss.x,ss.y,ss.z),T.push(rs.x,rs.y,rs.z)}let b=new self[h](T);so.postMessage({id:e,vertices:b},[b.buffer])}}); +/*! Bundled license information: + +three/build/three.module.js: + (** + * @license + * Copyright 2010-2023 Three.js Authors + * SPDX-License-Identifier: MIT + *) +*/ +`)}var MC=class{constructor(){this.worker=new bB;this.geometries=new Map;this.loadedGeometries=new Map;this.jobCount=0;this.init()}add(r,e){this.geometries.set(r,e),this.jobCount++}get(r){return this.geometries.get(r)}init(){this.worker.addEventListener("message",r=>{let e=this.geometries.get(r.data.id.toString());(e==null?void 0:e.length)>0&&(e.forEach(i=>{i!=null&&i.geometry&&(i!=null&&i.matrix)&&(i!=null&&i.geom)&&(i!=null&&i.line)&&(i.geom.parameters={geometry:i.geometry,thresholdAngle:5},i.geom.setAttribute("position",new ct(r.data.vertices,3)),i.geom.applyMatrix4(i.matrix),i.line.geometry=i.geom,i.line.visible=!0)}),this.geometries.delete(r.data.id.toString()),this.jobCount--),this.loadedGeometries.set(r.data.id.toString(),r.data.vertices)})}postMessage(r){this.worker.postMessage(JSON.stringify(r))}};var Fp=new MC,Vvt=new A(0,1,0),jg=class{static resetObjectStyle(r){this.revertWireframeMode(r),this.revertObjectOpacity(r,[]),this.revertAppliedMaterialToObject(r),this.revertVisibleForFloors(r)}static resetObjectStyleById(r,e){let i=this.getObjectById(r,e);this.resetObjectStyle(i)}static setObjectOpacity(r,e=.3,i,n){let s=[],a=l=>{s.find(c=>c.id===l.id)||(s.push({id:l.id,opacity:l.opacity,transparent:l.transparent,side:l.side}),l.opacity*=e,l.transparent=!0,l.side=wi)},o=l=>{let c=s.find(u=>u.id===l.id);if(!c){let u=l.clone();return s.push({id:l.id,opacity:l.opacity,transparent:l.transparent,side:l.side,material:l,clonedMaterial:u}),u.opacity*=e,u.transparent=!0,u}return c.clonedMaterial};return r.traverse(l=>{if(!(n&&n.indexOf(l.id)!==-1)&&!(i&&i.indexOf(l.id)===-1)&&l instanceof Je){let c=l;if(i||n){if(Array.isArray(c.material)){let u=[];c.material.forEach(h=>{let p=o(h);p&&u.push(p)}),c.material=u}else if(c.material){let u=o(c.material);u&&(c.material=u)}}else if(Array.isArray(c.material))c.material.forEach(u=>{a(u)});else if(c.material){let u=c.material;a(u)}}}),s}static revertObjectOpacity(r,e,i,n){let s=o=>{let l=e.find(c=>c.id===o.id);l&&(o.opacity=l.opacity,o.transparent=l.transparent,o.side=l.side)},a=o=>{let l=e.find(c=>c.clonedMaterial&&c.clonedMaterial.id===o.id);if(l)return l.material};r.traverse(o=>{if(!(n&&n.indexOf(o.id)!==-1)&&!(i&&i.indexOf(o.id)===-1)&&o instanceof Je){if(Array.isArray(o.material)){let l=[];o.material.forEach(c=>{let u=a(c);u?l.push(u):s(c)}),o.material=l}else if(o.material){let l=a(o.material);l?o.material=l:s(o.material)}}})}static setObjectOpacityById(r,e,i=.3,n,s){let a=r.getObjectById(e);if(!a)throw new Error(`Failed to find object by id: ${e}`);return jg.setObjectOpacity(a,i,n,s)}static revertObjectOpacityById(r,e,i,n,s){let a=r.getObjectById(e);if(!a)throw new Error(`Failed to find object by id: ${e}`);jg.revertObjectOpacity(a,i,n,s)}static applyMaterialToObject(r,e,i,n){r.traverse(s=>{n&&n.indexOf(s.id)!==-1||i&&i.indexOf(s.id)===-1||s instanceof Je&&(s.userData.originalMaterial||(s.userData.originalMaterial=s.material),s.material=e)})}static revertAppliedMaterialToObject(r,e,i){r.traverse(n=>{i&&i.indexOf(n.id)!==-1||e&&e.indexOf(n.id)===-1||n.userData.originalMaterial&&(n.material=n.userData.originalMaterial,n.userData.originalMaterial=void 0)})}static applyMaterialToObjectById(r,e,i,n,s){let a=r.getObjectById(e);if(!a)throw new Error(`Failed to find object by id: ${e}`);this.applyMaterialToObject(a,i,n,s)}static revertAppliedMaterialToObjectById(r,e,i,n){let s=r.getObjectById(e);if(!s)throw new Error(`Failed to find object by id: ${e}`);this.revertAppliedMaterialToObject(s,i,n)}static applyOpacityMaterialToObject(r,e,i){let n={color:0,transparent:!0,opacity:.05},s=new or(n);this.applyMaterialToObject(r,s,e,i)}static setWireframeMode(r){let e=new or({color:16732160,wireframe:!0,transparent:!0,opacity:.8});r.traverseVisible(i=>{if(i instanceof Je){let n=i;n.userData.materialForWireframe=n.material,n.material=e}})}static setWireframeModeById(r,e){let i=r.getObjectById(e);if(!i)throw new Error(`Failed to find object by id: ${e}`);jg.setWireframeMode(i)}static revertWireframeMode(r){r.traverseVisible(e=>{e instanceof Je&&e.userData.materialForWireframe&&(e.material=e.userData.materialForWireframe,e.userData.materialForWireframe=void 0)})}static revertWireframeModeById(r,e){let i=r.getObjectById(e);if(!i)throw new Error(`Failed to find object by id: ${e}`);jg.revertWireframeMode(i)}static findInner(r,e,i=[],n=!1){let s=e.toLowerCase(),a=[],o=u=>u.toLowerCase().indexOf(s)!==-1,l=u=>u.toString().indexOf(s)!==-1,c=u=>{if(u.name&&u.name.toLowerCase().indexOf(s)!==-1)return!0;if(u.gltfExtensions){let h=u.gltfExtensions,p=h.objectId&&h.objectId.Value||h.elementId&&h.elementId.Value;if(p&&p.toLowerCase().indexOf(s)!==-1)return!0}return!1};if(i.length>0)for(let u=0;u{(o(d.name)||l(d.id)||c(d.userData))&&a.push(d)}),n&&a.length>0)return[a[0]]}else if(r.traverse(u=>{(o(u.name)||l(u.id)||c(u.userData))&&a.push(u)}),n&&a.length>0)return[a[0]];return a}static find(r,e,i=[],n=!1){return this.findInner(r,e,i,n)}static findFirst(r,e,i=[],n=!1){let s=this.findInner(r,e,i,n);if(s.length>0)return s[0]}static getFloorsFromString(r){let e=[],n=new RegExp(/(?:-?(?:\d+(?:\.5)?)F)(?=\W|$)/,"g").exec(r);return n&&n.length>0&&n.forEach(s=>{if(s){let a=s.replace("F",""),o=Number(a);o?e.push(o):console.log(`[OU] invalid floor: ${s}`)}}),e}static matchFloor(r,e){return this.getFloorsFromString(r).findIndex(s=>s===e)!==-1}static matchFloors(r,e){return this.getFloorsFromString(r).findIndex(s=>e.findIndex(o=>o===s)!==-1)!==-1}static distinctFloors(r,e){let i=[],n=s=>{this.getFloorsFromString(s).forEach(o=>{i[o]=!0})};return e.forEach(s=>{let a=r.getObjectById(s);a&&a.traverse(o=>{if(n(o.name),o.userData.gltfExtensions){let l=o.userData.gltfExtensions;l.level&&l.level.Value&&n(l.level.Value)}})}),Object.keys(i).sort()}static traverseObjectByFloors(r,e,i,n,s){let a=r.getObjectById(e);if(!a)return[];a.traverse(o=>{let l=this.matchFloors(o.name,i);if(!l&&o.userData&&o.userData.gltfExtensions){let c=o.userData.gltfExtensions;c.level&&c.level.Value&&(l=this.matchFloors(c.level.Value,i))}l&&n&&n(o),!l&&s&&s(o)})}static setVisibleForFloors(r,e,i,n=!0){this.traverseObjectByFloors(r,e,i,s=>{let a=s;for(;a;)a.visible=!0,a=a.parent||void 0},s=>{n&&(s.visible=!1)})}static revertVisibleForFloors(r){r.traverse(e=>{e.visible=!0})}static revertVisibleForFloorsById(r,e){let i=this.getObjectById(r,e);this.revertVisibleForFloors(i)}static getObjectById(r,e){let i=r.getObjectById(e);if(!i)throw new Error(`Failed to find object by id: ${e}`);return i}static createOutlines(r,e={visibleOnly:!0,meshOnly:!0,replaceOriginalObject:!1}){if(!r)return[];if(r.children.length===0&&(e.visibleOnly&&!r.visible||e.meshOnly&&!(r instanceof Je)))return[];let i=r,n=i.children.length;for(let a=n-1;a>=0;--a){let o=i.children[a];this.createOutlines(o,e).forEach(c=>c.applyMatrix4(i.matrixWorld))}if(!i.geometry)return[];let s=[];if(i instanceof tn)for(let a=0;a=0;--e){let i=r.children[e];i.children.length>0&&this.removeOutlines(i),i.userData.isOutline&&r.remove(i)}}static hasOutline(r){let e=!1;for(let i=0;i0&&(e=this.hasOutline(n),e))break}return e}static setOutlinesVisibility(r,e){r.traverse(i=>{i.userData.isOutline&&(i.visible=e)})}static createOutline(r,e,i=this.OUTLINE_MATERIAL){let n=new Ip,s=new oi(n,i);if(s.layers.set(11),s.userData.isOutline=!0,s.matrixAutoUpdate=!1,s.visible=!1,s.updateMatrix(),Fp.loadedGeometries.has(r.id.toString())){let a=Fp.loadedGeometries.get(r.id.toString());return n.parameters={geometry:r,thresholdAngle:5},n.setAttribute("position",new ct(a,3)),n.applyMatrix4(e),s.geometry=n,s.visible=!0,s}if(Fp.get(r.id.toString())||Fp.add(r.id.toString(),[]),!Fp.loadedGeometries.has(r.id.toString())){Fp.add(r.id.toString(),Fp.get(r.id.toString()).concat([{geometry:r,matrix:e,geom:n,line:s}]));let a=r.getAttribute("position");Fp.postMessage({id:r.id,position:a.toJSON(),index:r.getIndex(),thresholdAngle:5})}return s}static createOutlineSync(r,e,i=this.OUTLINE_MATERIAL){let n=new Ip(r,5),s=new oi(n,i);return s.layers.set(11),s.userData.isOutline=!0,s.matrixAutoUpdate=!1,s.applyMatrix4(e),s}static cloneObject(r,e=!0){let i=r.clone();return e&&i.traverse(n=>{(n instanceof Je||n instanceof _r)&&(n.material=Cs.cloneMaterial(n.material))}),i}static createBox(r,e,i,n=jg.BOX_FACE_MATERIAL,s=!0){let a=[],o=(u,h,p)=>{a.push(new A(u,h,p))};o(0,0,0),o(r,0,0),o(r,e,0),o(0,e,0),o(0,0,i),o(r,0,i),o(r,e,i),o(0,e,i);let l=new it;l.setFromPoints(a);let c=[0,3,2,0,2,1,4,6,7,4,5,6,0,7,3,0,4,7,3,6,2,3,7,6,1,6,5,1,2,6];return s&&c.push(0,5,4,0,1,5),l.setIndex(c),l.computeVertexNormals(),new Je(l,n)}static rebaseObjectOnRTC(r){let e=r;if(!(e.isMesh||e.isLine||e.isPoints)||!e.geometry||!(e.geometry instanceof it))return r;let i=e.geometry;if(!i.hasAttribute("position"))return r;let n=i.getAttribute("position");if(n.count===0)return r;let s=n.itemSize,a=n.array,o=[];for(let u=0;u2?o[2]:0);let c=r.matrixAutoUpdate;return r.matrixAutoUpdate=!1,r.applyMatrix4(l),r.matrixAutoUpdate=c,r}static isEmptyObject(r){if(r.children.length===0){let i=r.geometry;if(!i||!i.hasAttribute("position")||i.getAttribute("position").count===0)return!0}return!1}static removeEmptyObjects(r){for(let e=0;e{i.removeFromParent()}),this.removeEmptyObjects(e))}static setSharedVariablesOfObject(r){r.uuid="",r.up=Vvt}static isLeafObject(r){return!(r instanceof Je)&&!(r instanceof _r)&&!(r instanceof rn)?!1:!(r.children.length>0||!r.geometry)}},Qr=jg;Qr.OUTLINE_MATERIAL=new Tr({name:"outline",color:0,transparent:!0,opacity:.2}),Qr.BOX_FACE_MATERIAL=new Ts({color:11648971,transparent:!0,opacity:.3,side:en});var DC=new Ue,zvt=new Ue,CC=class{static resetMergeInfo(){this.mergeInfo.removedObjects=0,this.mergeInfo.mergedMeshes=0,this.mergeInfo.mergedLines=0,this.mergeInfo.mergedPoints=0,this.mergeInfo.mergedUnknownTypeObjects=0,this.mergeInfo.elapsedTime=0}static merge(r,e=!0){let i=Date.now();this.mergeInner(r,e),this.mergeInfo.elapsedTime+=Date.now()-i}static mergeInner(r,e=!0){if(!r.children||r.children.length<1)return;let i=r.children.length,n={},s=[];for(let u=0;u0){this.mergeInner(h,e);continue}if(h.userData.relativeToCenter||h.isInstancedMesh||!h.geometry||!(h.geometry instanceof it))continue;let d=!1,f=Object.values(n);for(let m=f.length-1;m>=0;--m){let g=f[m].indexes[0];if(d=this.tryHandleMergeableObjects(r,u,g,n,s),d)break}for(let m=s.length-1;!d&&m>=0;--m){let g=s[m];if(d=this.tryHandleMergeableObjects(r,u,g,n,s),d)break}d||s.push(u)}if(Object.keys(n).length<=0)return;let a=[],o=[],l=[],c=[];Object.values(n).forEach(u=>{let h=u.indexes,p=r.children[h[0]],d=[],f=0,m=0,g=0,y=[];if(h.forEach(b=>{var D,P,_;let x=r.children[b],S=x.geometry.clone();if(S.applyMatrix4(x.matrix),Wt.tryConvertInterleavedBufferAttributes(S),S.userData.isLineSegments=x.isLineSegments===!0,d.push(S),e){let w=(P=(D=S.attributes)==null?void 0:D.position)==null?void 0:P.count,F=((_=S.index)==null?void 0:_.count)||0;y.push({batchId:f,positionStart:m,positionCount:w,indexStart:g,indexCount:F}),m+=w,g+=F,f++}}),d.length===0)return;let E;if(p.isMesh){let b=qo(d);if(!b)return;b.userData={},E=new Je(b,p.material),a.push(E)}else if(p.isLine){let b=this.mergeLineGeometries(d,e,p.material instanceof Rp||p.material instanceof Yt,y);if(!b)return;E=new oi(b,p.material),o.push(E)}else if(p.isPoints){let b=qo(d);if(!b)return;b.userData={},E=new rn(b,p.material),l.push(E)}E&&(e?E.userData.batches=y:E.userData=p.userData,E.userData.layerName=p.userData.layerName,E.name=`[Merged] ${p.name}`,E.matrixAutoUpdate=!1,E.renderOrder=p.renderOrder,E.layers=p.layers,E.visible=p.visible,c.push(...h)),d.forEach(b=>{Wt.releaseGeometryManually(b)}),d=[]}),c.sort((u,h)=>h-u),c.forEach(u=>{let h=r.children[u];r.remove(h)}),[...a,...o,...l].forEach(u=>{r.add(u)}),r.updateMatrix(),this.mergeInfo.removedObjects+=c.length,this.mergeInfo.mergedMeshes+=a.length,this.mergeInfo.mergedLines+=o.length,this.mergeInfo.mergedPoints+=l.length}static tryHandleMergeableObjects(r,e,i,n,s){let a=!1,o=Array.isArray(r),l=o?r.length:r.children.length;if(e===i||e>=l||i>=l)return a;let c=o?r[e]:r.children[e],u=o?r[i]:r.children[i];return this.areObjectsMergeable(c,u)&&this.areGeometriesMergeable(c.geometry,u.geometry)&&Cs.materialsEquals(c.material,u.material)&&(n[i]||(n[i]={indexes:[i]},this.removeFromArray(s,i)),n[i].indexes.push(e),a=!0),a}static isFilteredByOtherFactors(r,e){let i=r;if(i.isMesh&&i.material.isShaderMaterial)return!0;let n=!1,s=r;for(;s&&s!==e;){let a=s.userData;if(a.relativeToCenter||a.spatialFilterHandle){n=!0;break}s=s.parent}return n}static deepMerge(r,e=void 0,i=!0,n=!0,s=!0){let a={added:[],removed:[]};if(r.length<=1)return a;let o=Date.now(),l={},c=[];for(let g=0;g=0;--x){let S=b[x].indexes[0];if(E=this.tryHandleMergeableObjects(r,g,S,l,c),E)break}for(let x=c.length-1;!E&&x>=0;--x){let S=c[x];if(E=this.tryHandleMergeableObjects(r,g,S,l,c),E)break}E||c.push(g)}if(Object.keys(l).length<=0)return a;ne.debug(`[Merge] Built merged indexes for ${r.length} objects in ${(Date.now()-o)/1e3}s`),o=Date.now();let u=[],h=[],p=[],d=[];Object.values(l).forEach(g=>{let y=g.indexes;if(y.length<2)return;let E=r[y[0]],b=[],x=0,S=0,D=0,P=[];if(y.forEach(w=>{var H,he,C;let F=r[w],X=F.geometry.clone();if(E.material instanceof Tr&&X.deleteAttribute("lineDistance"),this.applyMatrix(X,F,e),X.userData.isLineSegments=F.isLineSegments===!0,b.push(X),s){let N=(he=(H=X.attributes)==null?void 0:H.position)==null?void 0:he.count,k=((C=X.index)==null?void 0:C.count)||0,G;E.isLine&&(X.boundingSphere||X.computeBoundingSphere(),G=X.boundingSphere.clone()),P.push({batchId:x,positionStart:S,positionCount:N,indexStart:D,indexCount:k,boundingSphere:G}),S+=N,D+=k,x++}}),b.length===0)return;let _;if(E.isMesh){let w=qo(b);if(!w)return;w.userData={},_=new Je(w,E.material),u.push(_)}else if(E.isLine){let w=this.mergeLineGeometries(b,s,E.material instanceof Rp||E.material instanceof Yt,P);if(!w)return;_=new oi(w,E.material),h.push(_)}else if(E.isPoints){let w=qo(b);if(!w)return;w.userData={},_=new rn(w,E.material),p.push(_)}_&&(s?_.userData.batches=P:_.userData=E.userData,_.userData.layerName=E.userData.layerName,_.name=`[Merged] ${E.name}`,_.matrixAutoUpdate=!1,_.renderOrder=E.renderOrder,_.layers=E.layers,_.visible=E.visible,y.forEach(w=>d.push(w))),b.forEach(w=>{Wt.releaseGeometryManually(w)}),b=[]}),ne.debug(`[Merge] Ran deepMerge() in ${(Date.now()-o)/1e3}s`);let f=a.removed;d.forEach(g=>{let y=r[g];f.push(y),i&&y.removeFromParent()});let m=a.added;return[...u,...h,...p].forEach(g=>{m.push(g),i&&e&&(e.add(g),g.updateWorldMatrix(!1,!1))}),this.mergeInfo.removedObjects+=d.length,this.mergeInfo.mergedMeshes+=u.length,this.mergeInfo.mergedLines+=h.length,this.mergeInfo.mergedPoints+=p.length,n&&e&&Qr.removeEmptyObjects(e),a}static applyMatrix(r,e,i){let n=e;for(DC.identity();n&&n!==i&&(DC.premultiply(n.matrix),!!n.parent);)n=n.parent;return DC.equals(zvt)?r:r.applyMatrix4(DC)}static mergeLineGeometries(r,e,i,n){let s;if(i)s=CC.mergeBufferGeometriesWithLinesToLineSegements(r,e,n);else{if(s=qo(r),!s)return;s.userData={};let a=[],o=0;r.forEach((l,c)=>{let u=l.attributes.position;if(!u)return;let h=l.index,p=l.userData.isLineSegments===!0,d=a.length;if(h)for(let f=0;f0&&a.push(o+h.array[f-1],o+m)}else for(let f=0;f0&&(p?f%2===1&&a.push(o+f-1,o+f):a.push(o+f-1,o+f));o+=u.count,e&&n&&(n[c].indexStart=d,n[c].indexCount=a.length-d)}),s.setIndex(a)}return s}static mergeBufferGeometriesWithLinesToLineSegements(r,e,i){let n=new Set(Object.keys(r[0].attributes)),s={},a=new it,o=[],l=0;for(let c=0;c=0;--i)if(r[i]===e){r.splice(i,1);return}}static removeObjectFromArray(r,e){for(let i=r.length-1;i>=0;--i)if(r[i]===e){r.splice(i,1);return}}static areGeometriesMergeable(r,e){if(!r||!e||r.type==="InstancedBufferGeometry"||e.type==="InstancedBufferGeometry"||!!r.index!=!!e.index)return!1;let i=Object.keys(r.attributes);if(i.length!==Object.keys(e.attributes).length)return!1;for(let n of i)if(!e.attributes[n])return!1;return!0}static areObjectsMergeable(r,e){if(r.layers.mask!==e.layers.mask||r.renderOrder!==e.renderOrder||r.visible!==e.visible||r.userData.layerName!==e.userData.layerName)return!1;if(r.type===e.type)return!0;let i=r,n=e;return i.isMesh&&n.isMesh||i.isLine&&n.isLine||i.isPoints&&n.isPoints}static isMergedMesh(r){return!!(r&&r.userData.batches)}static isFaceIndexInBatch(r,e,i){if(r.boundsTree){let s=r.index.getX(i*3);if(s>=e.positionStart&&s=n&&i<=s)return!0}else{let n=i*3;if(n>=e.positionStart&&n80*e){o=c=t[0],l=u=t[1];for(let f=e;fc&&(c=h),p>u&&(u=p);d=Math.max(c-o,u-l),d=d!==0?32767/d:0}return Bx(s,a,e,o,l,d,0),a}};function Vpe(t,r,e,i,n){let s,a;if(n===Lyt(t,r,e,i)>0)for(s=r;s=r;s-=i)a=kpe(s,t[s],t[s+1],a);return a&&BC(a,a.next)&&(Gx(a),a=a.next),a}function qg(t,r){if(!t)return t;r||(r=t);let e=t,i;do if(i=!1,!e.steiner&&(BC(e,e.next)||Pn(e.prev,e,e.next)===0)){if(Gx(e),e=r=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==r);return r}function Bx(t,r,e,i,n,s,a){if(!t)return;!a&&s&&Dyt(t,i,n,s);let o=t,l,c;for(;t.prev!==t.next;){if(l=t.prev,c=t.next,s?byt(t,i,n,s):Eyt(t)){r.push(l.i/e|0),r.push(t.i/e|0),r.push(c.i/e|0),Gx(t),t=c.next,o=c.next;continue}if(t=c,t===o){a?a===1?(t=xyt(qg(t),r,e),Bx(t,r,e,i,n,s,2)):a===2&&Iyt(t,r,e,i,n,s):Bx(qg(t),r,e,i,n,s,1);break}}}function Eyt(t){let r=t.prev,e=t,i=t.next;if(Pn(r,e,i)>=0)return!1;let n=r.x,s=e.x,a=i.x,o=r.y,l=e.y,c=i.y,u=ns?n>a?n:a:s>a?s:a,d=o>l?o>c?o:c:l>c?l:c,f=i.next;for(;f!==r;){if(f.x>=u&&f.x<=p&&f.y>=h&&f.y<=d&&lT(n,o,s,l,a,c,f.x,f.y)&&Pn(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function byt(t,r,e,i){let n=t.prev,s=t,a=t.next;if(Pn(n,s,a)>=0)return!1;let o=n.x,l=s.x,c=a.x,u=n.y,h=s.y,p=a.y,d=ol?o>c?o:c:l>c?l:c,g=u>h?u>p?u:p:h>p?h:p,y=MB(d,f,r,e,i),E=MB(m,g,r,e,i),b=t.prevZ,x=t.nextZ;for(;b&&b.z>=y&&x&&x.z<=E;){if(b.x>=d&&b.x<=m&&b.y>=f&&b.y<=g&&b!==n&&b!==a&&lT(o,u,l,h,c,p,b.x,b.y)&&Pn(b.prev,b,b.next)>=0||(b=b.prevZ,x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&lT(o,u,l,h,c,p,x.x,x.y)&&Pn(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;b&&b.z>=y;){if(b.x>=d&&b.x<=m&&b.y>=f&&b.y<=g&&b!==n&&b!==a&&lT(o,u,l,h,c,p,b.x,b.y)&&Pn(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;x&&x.z<=E;){if(x.x>=d&&x.x<=m&&x.y>=f&&x.y<=g&&x!==n&&x!==a&&lT(o,u,l,h,c,p,x.x,x.y)&&Pn(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function xyt(t,r,e){let i=t;do{let n=i.prev,s=i.next.next;!BC(n,s)&&zpe(n,i,i.next,s)&&kx(n,s)&&kx(s,n)&&(r.push(n.i/e|0),r.push(i.i/e|0),r.push(s.i/e|0),Gx(i),Gx(i.next),i=t=s),i=i.next}while(i!==t);return qg(i)}function Iyt(t,r,e,i,n,s){let a=t;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&Oyt(a,o)){let l=jpe(a,o);a=qg(a,a.next),l=qg(l,l.next),Bx(a,r,e,i,n,s,0),Bx(l,r,e,i,n,s,0);return}o=o.next}a=a.next}while(a!==t)}function Syt(t,r,e,i){let n=[],s,a,o,l,c;for(s=0,a=r.length;s=e.next.y&&e.next.y!==e.y){let p=e.x+(a-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(p<=s&&p>i&&(i=p,n=e.x=e.x&&e.x>=l&&s!==e.x&&lT(an.x||e.x===n.x&&Myt(n,e)))&&(n=e,u=h)),e=e.next;while(e!==o);return n}function Myt(t,r){return Pn(t.prev,t,r.prev)<0&&Pn(r.next,t,t.next)<0}function Dyt(t,r,e,i){let n=t;do n.z===0&&(n.z=MB(n.x,n.y,r,e,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,Cyt(n)}function Cyt(t){let r,e,i,n,s,a,o,l,c=1;do{for(e=t,t=null,s=null,a=0;e;){for(a++,i=e,o=0,r=0;r0||l>0&&i;)o!==0&&(l===0||!i||e.z<=i.z)?(n=e,e=e.nextZ,o--):(n=i,i=i.nextZ,l--),s?s.nextZ=n:t=n,n.prevZ=s,s=n;e=i}s.nextZ=null,c*=2}while(a>1);return t}function MB(t,r,e,i,n){return t=(t-e)*n|0,r=(r-i)*n|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,t|r<<1}function Ayt(t){let r=t,e=t;do(r.x=(t-a)*(s-o)&&(t-a)*(i-o)>=(e-a)*(r-o)&&(e-a)*(s-o)>=(n-a)*(i-o)}function Oyt(t,r){return t.next.i!==r.i&&t.prev.i!==r.i&&!Pyt(t,r)&&(kx(t,r)&&kx(r,t)&&Nyt(t,r)&&(Pn(t.prev,t,r.prev)||Pn(t,r.prev,r))||BC(t,r)&&Pn(t.prev,t,t.next)>0&&Pn(r.prev,r,r.next)>0)}function Pn(t,r,e){return(r.y-t.y)*(e.x-r.x)-(r.x-t.x)*(e.y-r.y)}function BC(t,r){return t.x===r.x&&t.y===r.y}function zpe(t,r,e,i){let n=UC(Pn(t,r,e)),s=UC(Pn(t,r,i)),a=UC(Pn(e,i,t)),o=UC(Pn(e,i,r));return!!(n!==s&&a!==o||n===0&&HC(t,e,r)||s===0&&HC(t,i,r)||a===0&&HC(e,t,i)||o===0&&HC(e,r,i))}function HC(t,r,e){return r.x<=Math.max(t.x,e.x)&&r.x>=Math.min(t.x,e.x)&&r.y<=Math.max(t.y,e.y)&&r.y>=Math.min(t.y,e.y)}function UC(t){return t>0?1:t<0?-1:0}function Pyt(t,r){let e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==r.i&&e.next.i!==r.i&&zpe(e,e.next,t,r))return!0;e=e.next}while(e!==t);return!1}function kx(t,r){return Pn(t.prev,t,t.next)<0?Pn(t,r,t.next)>=0&&Pn(t,t.prev,r)>=0:Pn(t,r,t.prev)<0||Pn(t,t.next,r)<0}function Nyt(t,r){let e=t,i=!1,n=(t.x+r.x)/2,s=(t.y+r.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&n<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next;while(e!==t);return i}function jpe(t,r){let e=new DB(t.i,t.x,t.y),i=new DB(r.i,r.x,r.y),n=t.next,s=r.prev;return t.next=r,r.prev=t,e.next=n,n.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function kpe(t,r,e,i){let n=new DB(t,r,e);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function Gx(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function DB(t,r,e){this.i=t,this.x=r,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Lyt(t,r,e,i){let n=0;for(let s=r,a=e-i;ss.toArray()).reduce((s,a)=>(s.push(...a),s),[]),i=[];return Gpe.triangulate(e,[],3).forEach(s=>i.push(s)),i}static arePointsCoplanar(r){if(r.length<4)return!0;let e=r[1].clone().sub(r[0]),n=r[2].clone().sub(r[0]).cross(e).normalize();for(let s=3;sFyt)return!1;return!0}static isSelfIntersecting(r){let e=r.map(n=>n.toArray().slice(0,-1));return(0,Wpe.default)(e).length>0}};var CB=class{constructor(r,e,i=void 0,n=CB.DEFAULT_SCALE){this.isExplodeUp=!1;this.scene=r,this.objectId=e,e||console.log(`[EXP] Invalid objectId: ${e}`),this.scale=n,n<=0&&console.log(`[EXP] Invalid scale: ${n}`),i?this.position=i:(this.position=new A,this.getObjectCenter(this.position))}explode(){if(!this.objectId||!this.position||!this.scale){console.log(`[EXP] Invalid objectId: ${this.objectId}, or position: ${this.position}, or this.power: ${this.scale}`);return}let r=this.scene.getObjectById(this.objectId);if(!r||!r.children){console.log("[EXP] No children to explode!");return}console.log(`[EXP] Exploding ${r.name} at: ${this.position.x}, ${this.position.y}, ${this.position.z}`),this.explodeObject(r)}explodeObject(r){r.geometry?this.explodeLeafObject(r):r.children.length>0?r.children.forEach(e=>this.explodeObject(e)):this.explodeLeafObject(r)}explodeLeafObject(r){if(r.geometry){if(r.userData.originalPosition=r.position.clone(),r instanceof tn){let e=new Ue,i=new A,n=new Or,s=new A;for(let a=0;a0?r.children.forEach(e=>this.unexplodeObject(e)):this.unexplodeLeafObject(r)}unexplodeLeafObject(r){let e=r.userData.originalPosition;e&&(r.position.set(e.x,e.y,e.z),r.updateMatrix(),delete r.userData.originalPosition)}setOnlyExplodeUp(r){this.isExplodeUp=r}getObjectCenter(r){let e=new Ot;if(!this.objectId){console.log(`[EXP] Invalid objectId: ${this.objectId}`);return}let i=this.scene.getObjectById(this.objectId);if(!i||!i.children){console.log("[EXP] No children to explode!");return}i.traverse(n=>{e.expandByObject(n)}),e.getCenter(r)}},Vx=CB;Vx.DEFAULT_SCALE=1;var vn=class{static getVisibleObjectBoundingBox(r){let e=new Ot;return r.traverseVisible(i=>{i instanceof Je&&i.userData.selectable!==!1&&e.expandByObject(i)}),e}static getObjectsBoundingBox(r,e,i){let n=new Ot;return e.forEach(s=>{let a=r.getObjectById(s);if(a){let o=vn.getBoundingBox(a,i);o.isEmpty()||n.union(o)}}),n}static getBoundingBox(r,e=!0){let i=new Ot;if(r instanceof tn)return vn.getInstancedMeshBoundingBox(r);if(r.children.length===0)return i.expandByObject(r),i;let n=r.children.length,s=1;n>20&&(s=3),n>100&&(s=5),n>200&&(s=10),n>1e3&&(s=100),r.updateMatrixWorld(!1);for(let a=0;a{i.find(a=>a===s.id)&&(s.children&&s.children.length===1?vn.explodeObject(s.children[0],r,e,n):vn.explodeObject(s,r,e,n))}),e}static unexplodeObjects(r,e){r.traverse(i=>{let n=e[i.id];n&&(n.unexplode(),delete e[i.id])})}static getObjectCenter(r,e){let i=vn.getBoundingBox(r);i.getCenter(e),e.y=i.min.y}};var qu=class{static setMaterialSection(r,e,i=!1,n=!1){let s=i&&r.clippingPlanes?r.clippingPlanes:[];s.push(...e),r.clippingPlanes=s,r.clipIntersection=n}static removeSection(r){r&&r.traverse(e=>{let i=e.material;Array.isArray(i)?i.forEach(n=>{n.clippingPlanes=void 0}):i&&(i.clippingPlanes=void 0)})}static addSection(r,e,i=!1,n=!1){r&&r.traverse(s=>{let a=s.material;Array.isArray(a)?a.forEach(o=>{qu.setMaterialSection(o,e,i,n)}):a&&qu.setMaterialSection(a,e,i,n)})}static generateSectionPlanesByBox(r){let e=r.min,i=r.max;return[new Ei(new A(0,-1,0),i.y),new Ei(new A(0,1,0),-e.y),new Ei(new A(1,0,0),-e.x),new Ei(new A(-1,0,0),i.x)]}static generateSectionPlanesByPoints(r,e=!0){let i=r.length;if(i<2)return;let n=[];for(let s=0;s-1&&t.splice(e,1)}function Uyt(t,r){let e=r.position.distanceTo(t.position),i=0,n=[];for(let o=0,l=t.faces.length;o=0;s--)e.faces[s]&&e.faces[s].hasVertex(i)&&Byt(e.faces[s],r);for(let s=e.faces.length-1;s>=0;s--)e.faces[s].replaceVertex(e,i);Xpe(e,t);for(let s=0;s0?new GC().modify(r,i):r}static simplifyPoints(r,e=1){let i=(0,Zpe.default)(r,e);return this.simplifiedInfo.total+=r.length,this.simplifiedInfo.removed+=r.length-i.length,i}static getNumberOfVerticesToRemove(r,e){let i=0;r instanceof it&&r.index&&(i=r.attributes.position.count);let n=Math.floor(i*e);return i<20?0:n}};zx.simplifiedInfo={total:0,removed:0};var Xg=class{static createSkyOfGradientRamp(r=4e3,e=32,i=15,n=new A,s=new A(0,.7,.5)){let a=this.COLOR_TEMPLATES.default,o={topColor:{value:new Ve(a[0])},skylineColor:{value:new Ve(a[1])},bottomColor:{value:new Ve(a[2])},offset:{value:400},exponent:{value:.9},skyCenter:{value:n||new A},sunDirection:{value:s.normalize()}},l=new ro(r,e,i),c=new Yt({uniforms:o,vertexShader:this.vertexShader,fragmentShader:this.fragmentShader,side:Gn}),u=new Je(l,c);return u.matrixAutoUpdate=!1,u.name=this.NAME,u.userData.selectable=!1,u.layers.set(11),u}static createSkyOfGradientRampByBoundingBox(r){let i=(r.max.x-r.min.x+(r.max.y-r.min.y)+(r.max.z-r.min.z))*2;iXg.MAX_SKY_RADIUS&&(i=Xg.MAX_SKY_RADIUS);let n=new A;r.getCenter(n);let s=Xg.createSkyOfGradientRamp(i,void 0,void 0,n);return s.position.set(n.x,0,n.z),s}static createSkyFromTextures(r){return ot(this,null,function*(){let e=new fx;return new Promise(i=>{e.load(r,n=>i(n))})})}},Xo=Xg;Xo.NAME="SKYBOX",Xo.MIN_SKY_RADIUS=4e3,Xo.MAX_SKY_RADIUS=2e4,Xo.vertexShader=` + varying vec3 vWorldPosition; + void main() { + vec4 worldPosition = modelMatrix * vec4( position, 1.0 ); + vWorldPosition = worldPosition.xyz; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,Xo.fragmentShader=` + uniform vec3 topColor; + uniform vec3 skylineColor; + uniform vec3 bottomColor; + uniform float offset; + uniform float exponent; + uniform vec3 skyCenter; + uniform vec3 sunDirection; + varying vec3 vWorldPosition; + // Used to find the position to draw the sun. Sun size is bigger when this value is smaller + const float sunDirectionDotThreshold = 0.98; + + void main() { + vec3 position = vec3(vWorldPosition.x - skyCenter.x, vWorldPosition.y - skyCenter.y, vWorldPosition.z - skyCenter.z); + vec3 normalizedPosition = normalize( position + offset ); + float h = normalizedPosition.y; + vec3 color; + if (h > 0.0) { + color = mix( skylineColor, topColor, pow( h, exponent ) ); + + // draw the sun + float dotResult = dot(sunDirection, normalizedPosition); + if (dotResult > sunDirectionDotThreshold) { + const float sunSize = 1.0 - sunDirectionDotThreshold; // maximum sun size + const vec3 sunColor = vec3(1.0, 1.0, 1.0); + color = mix(color, sunColor, pow((dotResult + sunSize - 1.0) / sunSize, 3.0)); + } + } else { + color = mix( skylineColor, bottomColor, pow( -h, exponent ) ); + } + gl_FragColor = vec4(color , 1.0); + }`,Xo.COLOR_TEMPLATES={default:[8828661,16777215,10066329],blueSky:[11189247,16777215,6974058],boardwalk:[14413823,16777215,15459804]};var zC=class extends Ng{constructor(r){super(r),this.type=Go}parse(r){let o=function(b,x){switch(b){case 1:console.error("THREE.RGBELoader Read Error: "+(x||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(x||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(x||""));break;default:case 4:console.error("THREE.RGBELoader: Error: "+(x||""))}return-1},h=` +`,p=function(b,x,S){x=x||1024;let P=b.pos,_=-1,w=0,F="",X=String.fromCharCode.apply(null,new Uint16Array(b.subarray(P,P+128)));for(;0>(_=X.indexOf(h))&&w=b.byteLength||!(F=p(b)))return o(1,"no header found");if(!(X=F.match(x)))return o(3,"bad initial token");for(w.valid|=1,w.programtype=X[1],w.string+=F+` +`;F=p(b),F!==!1;){if(w.string+=F+` +`,F.charAt(0)==="#"){w.comments+=F+` +`;continue}if((X=F.match(S))&&(w.gamma=parseFloat(X[1])),(X=F.match(D))&&(w.exposure=parseFloat(X[1])),(X=F.match(P))&&(w.valid|=2,w.format=X[1]),(X=F.match(_))&&(w.valid|=4,w.height=parseInt(X[1],10),w.width=parseInt(X[2],10)),w.valid&2&&w.valid&4)break}return w.valid&2?w.valid&4?w:o(3,"missing image size specifier"):o(3,"missing format specifier")},f=function(b,x,S){let D=x;if(D<8||D>32767||b[0]!==2||b[1]!==2||b[2]&128)return new Uint8Array(b);if(D!==(b[2]<<8|b[3]))return o(3,"wrong scanline width");let P=new Uint8Array(4*x*S);if(!P.length)return o(4,"unable to allocate buffer space");let _=0,w=0,F=4*D,X=new Uint8Array(4),H=new Uint8Array(F),he=S;for(;he>0&&wb.byteLength)return o(1);if(X[0]=b[w++],X[1]=b[w++],X[2]=b[w++],X[3]=b[w++],X[0]!=2||X[1]!=2||(X[2]<<8|X[3])!=D)return o(3,"bad rgbe scanline format");let C=0,N;for(;C128;if(G&&(N-=128),N===0||C+N>F)return o(3,"bad scanline data");if(G){let U=b[w++];for(let j=0;j{i.load(e,s=>{if(r){let a=r.fromEquirectangular(s).texture;r.dispose(),n(a)}})})})}static createEnvTextureFromDataArray(s){return ot(this,arguments,function*(r,e=this.HDR_CITY_STREET_64x32,i=64,n=32){if(r){let a=new _l(e,i,n);a.flipY=!0,a.magFilter=ai,a.minFilter=ai,a.type=Go,a.version=1;let o=r.fromEquirectangular(a).texture;return r.dispose(),Promise.resolve(o)}return Promise.reject("Invalid pmremGenerator!")})}};Lc.HDR_CITY_STREET_64x32=Uint16Array.from([11910,12340,12797,15360,11926,12348,12806,15360,11958,12364,12814,15360,11974,12380,12830,15360,11958,12364,12822,15360,11926,12348,12797,15360,11878,12324,12773,15360,11830,12308,12749,15360,11798,12292,12733,15360,11782,12279,12725,15360,11765,12263,12709,15360,11749,12247,12701,15360,11733,12231,12701,15360,11701,12215,12693,15360,11685,12199,12685,15360,11685,12199,12685,15360,11701,12215,12693,15360,11717,12231,12701,15360,11733,12247,12709,15360,11749,12263,12717,15360,11749,12279,12717,15360,11765,12279,12725,15360,11765,12279,12725,15360,11765,12292,12725,15360,11798,12300,12733,15360,11830,12316,12749,15360,11846,12324,12757,15360,11894,12340,12781,15360,11926,12356,12797,15360,11942,12356,12797,15360,11926,12348,12789,15360,11926,12348,12789,15360,11942,12356,12797,15360,11942,12356,12797,15360,11942,12348,12806,15360,11942,12356,12806,15360,11942,12356,12814,15360,11958,12372,12830,15360,11974,12372,12830,15360,11974,12372,12838,15360,11990,12388,12854,15360,12055,12420,12886,15360,12119,12452,12918,15360,12167,12476,12950,15360,12231,12500,12982,15360,12263,12516,12998,15360,12231,12500,12974,15360,12199,12484,12958,15360,12199,12484,12958,15360,12199,12492,12966,15360,12247,12508,12982,15360,12247,12508,12990,15360,12231,12500,12982,15360,12199,12484,12966,15360,12167,12468,12942,15360,12119,12444,12918,15360,12087,12436,12902,15360,12055,12420,12886,15360,12055,12412,12878,15360,12039,12412,12878,15360,12022,12396,12862,15360,12006,12388,12846,15360,11958,12364,12830,15360,11910,12340,12806,15360,12119,12508,13103,15360,12087,12484,13071,15360,12055,12468,13046,15360,12006,12436,13006,15360,11926,12396,12958,15360,11878,12364,12926,15360,11846,12348,12894,15360,11782,12308,12854,15360,11749,12292,12830,15360,11717,12263,12814,15360,11685,12247,12806,15360,11669,12215,12789,15360,11685,12231,12789,15360,11701,12247,12797,15360,11701,12247,12806,15360,11717,12263,12814,15360,11749,12292,12822,15360,11782,12308,12838,15360,11798,12316,12846,15360,11814,12332,12862,15360,11846,12340,12870,15360,11862,12348,12878,15360,11846,12340,12870,15360,11846,12340,12862,15360,11878,12356,12886,15360,11910,12372,12910,15360,11942,12396,12934,15360,11958,12412,12958,15360,12039,12452,12998,15360,12071,12468,13022,15360,12039,12452,12998,15360,12039,12452,12998,15360,12006,12444,13006,15360,11974,12436,12998,15360,11942,12412,12982,15360,11926,12396,12974,15360,11926,12404,12974,15360,11958,12420,12998,15360,12006,12452,13038,15360,12055,12476,13071,15360,12039,12476,13079,15360,12087,12508,13127,15360,12247,12597,13231,15360,12388,12693,13332,15360,12420,12741,13364,15360,12436,12757,13372,15360,12468,12773,13380,15360,12500,12806,13388,15360,12516,12822,13404,15360,12629,12934,13452,15360,12741,13046,13508,15360,12806,13095,13532,15360,12757,13046,13516,15360,12645,12950,13460,15360,12565,12870,13428,15360,12532,12838,13412,15360,12549,12854,13412,15360,12516,12838,13396,15360,12452,12757,13356,15360,12420,12725,13340,15360,12404,12709,13332,15360,12372,12677,13316,15360,12279,12589,13207,15360,12135,12516,13119,15360,12388,12709,13348,15360,12247,12581,13223,15360,12055,12476,13087,15360,11910,12388,12982,15360,11733,12308,12886,15360,11669,12247,12846,15360,11621,12199,12814,15360,11541,12103,12765,15360,11492,12055,12733,15360,11508,12055,12733,15360,11476,12022,12717,15360,11525,12055,12725,15360,11589,12135,12757,15360,11669,12199,12765,15360,11765,12292,12814,15360,11862,12348,12886,15360,11910,12372,12910,15360,12006,12420,12966,15360,12071,12452,12998,15360,12119,12476,13022,15360,12167,12492,13046,15360,12183,12500,13063,15360,12199,12524,13079,15360,12308,12589,13151,15360,12300,12581,13151,15360,12167,12516,13087,15360,12087,12468,13030,15360,12022,12444,13014,15360,11990,12420,12990,15360,11974,12420,12990,15360,11974,12420,12990,15360,11990,12436,13014,15360,11990,12444,13030,15360,12103,12500,13103,15360,12087,12508,13111,15360,12039,12484,13103,15360,12039,12476,13103,15360,11942,12436,13054,15360,11974,12452,13087,15360,12039,12492,13135,15360,12103,12532,13199,15360,12183,12581,13263,15360,12308,12661,13340,15360,12484,12822,13436,15360,12613,12918,13484,15360,12725,13046,13540,15360,13046,13332,13677,15360,13143,13380,13717,15360,13223,13420,13741,15360,13396,13540,13862,15360,13436,13589,13902,15360,13484,13629,13942,15360,13468,13621,13934,15360,13412,13564,13878,15360,13372,13524,13846,15360,13287,13452,13781,15360,13223,13428,13749,15360,13340,13492,13805,15360,13239,13428,13749,15360,13095,13364,13685,15360,12918,13223,13597,15360,12822,13111,13556,15360,12613,12934,13468,15360,12532,12854,13428,15360,12565,12870,13444,15360,12468,12789,13396,15360,12372,12693,13340,15360,12087,12492,13111,15360,11846,12364,12958,15360,11717,12300,12878,15360,11557,12135,12781,15360,11476,12055,12741,15360,11460,12022,12725,15360,11476,12022,12725,15360,11476,12022,12709,15360,11476,11958,12605,15360,11364,11733,12332,15360,11111,11412,11661,15360,11223,11476,11773,15360,11388,11669,12095,15360,11765,12119,12492,15360,12388,12613,13079,15360,12661,12902,13356,15360,12998,13255,13564,15360,13372,13508,13797,15360,13412,13548,13846,15360,13287,13436,13725,15360,13271,13428,13709,15360,13287,13428,13717,15360,13014,13287,13597,15360,12709,12998,13460,15360,12452,12741,13332,15360,12364,12653,13271,15360,12404,12693,13316,15360,12420,12709,13316,15360,12420,12709,13332,15360,12263,12589,13231,15360,12332,12661,13312,15360,12300,12629,13295,15360,12263,12605,13287,15360,12231,12597,13279,15360,12247,12613,13303,15360,12231,12597,13295,15360,12231,12605,13312,15360,12199,12597,13324,15360,12231,12613,13340,15360,12516,12870,13468,15360,12725,13063,13564,15360,12741,13079,13573,15360,12854,13175,13613,15360,12902,13223,13629,15360,13046,13348,13693,15360,13356,13516,13846,15360,13605,13765,14078,15360,13717,13870,14191,15360,13765,13918,14255,15360,13765,13910,14247,15360,13701,13854,14191,15360,13573,13733,14070,15360,13508,13677,14006,15360,13380,13548,13886,15360,13111,13380,13741,15360,13063,13348,13709,15360,12886,13207,13629,15360,12725,13046,13548,15360,12645,12966,13508,15360,12677,12982,13508,15360,12629,12950,13492,15360,12452,12789,13412,15360,12324,12661,13332,15360,12356,12677,13340,15360,12388,12693,13348,15360,12279,12597,13247,15360,11894,12396,12998,15360,11637,12231,12846,15360,11573,12135,12789,15360,11589,12151,12797,15360,11621,12167,12797,15360,11637,12119,12677,15360,11079,11404,11693,15360,10517,10701,10653,15360,10252,10348,10007,15360,9902,9999,9428,15360,9846,9886,9047,15360,10135,10260,9685,15360,10412,10533,10412,15360,11268,11436,11549,15360,12364,12605,13087,15360,12444,12709,13255,15360,12549,12822,13348,15360,12613,12886,13396,15360,12597,12886,13412,15360,12581,12870,13404,15360,12661,12950,13460,15360,12725,13014,13492,15360,13079,13332,13645,15360,12757,13046,13500,15360,12677,12982,13476,15360,12854,13143,13556,15360,12693,12982,13492,15360,12581,12886,13452,15360,12709,13030,13508,15360,12372,12709,13364,15360,12324,12661,13348,15360,12292,12645,13340,15360,12292,12645,13348,15360,12468,12806,13436,15360,12532,12854,13460,15360,12500,12854,13468,15360,12500,12854,13484,15360,12725,13063,13589,15360,12982,13324,13701,15360,13111,13388,13741,15360,13014,13340,13709,15360,13014,13332,13717,15360,13287,13476,13862,15360,13436,13621,13974,15360,13532,13717,14095,15360,13725,13902,14295,15360,13942,14103,14420,15360,13974,14135,14436,15360,13862,14022,14388,15360,13725,13894,14295,15360,13789,13958,14336,15360,13830,13990,14348,15360,13372,13548,13942,15360,13014,13332,13733,15360,12886,13239,13661,15360,12854,13207,13637,15360,12757,13095,13589,15360,12757,13079,13573,15360,12645,12982,13516,15360,12629,12966,13532,15360,12549,12870,13468,15360,12356,12693,13372,15360,12151,12549,13231,15360,12215,12573,13247,15360,12199,12565,13231,15360,12071,12492,13135,15360,12055,12468,13087,15360,11878,12372,12958,15360,11685,12199,12781,15360,10774,11159,11412,15360,9533,9621,8870,15360,9308,9340,8071,15360,9276,9300,7878,15360,9324,9332,8420,15360,9191,9216,7991,15360,8950,8983,7766,15360,9493,9525,8677,15360,10252,10332,10007,15360,10661,10846,10894,15360,10701,10926,10998,15360,10950,11276,11428,15360,11364,11637,12063,15360,11958,12388,12926,15360,12183,12540,13175,15360,12340,12645,13295,15360,12420,12693,13316,15360,12757,13030,13460,15360,13046,13324,13645,15360,13095,13348,13677,15360,13303,13460,13781,15360,13207,13404,13741,15360,13127,13372,13717,15360,13372,13524,13862,15360,12693,13030,13540,15360,12725,13046,13548,15360,12468,12822,13436,15360,12263,12629,13348,15360,12436,12773,13428,15360,12693,12998,13524,15360,12725,13046,13564,15360,12645,12982,13556,15360,12613,12966,13556,15360,12886,13255,13685,15360,13436,13629,14022,15360,13637,13813,14231,15360,13621,13789,14215,15360,13878,14038,14412,15360,14022,14183,14468,15360,13926,14119,14452,15360,14054,14231,14508,15360,14135,14311,14540,15360,14348,14436,14669,15360,14460,14540,14749,15360,14404,14484,14709,15360,14420,14500,14709,15360,14653,14717,14894,15360,14119,14279,14508,15360,13484,13669,14078,15360,13063,13380,13773,15360,12677,13079,13613,15360,12484,12886,13516,15360,12436,12822,13476,15360,12468,12838,13476,15360,12039,12532,13316,15360,12231,12613,13340,15360,12468,12789,13436,15360,12388,12725,13396,15360,12135,12557,13287,15360,12151,12557,13271,15360,12039,12484,13175,15360,11878,12396,13038,15360,11814,12348,12950,15360,11492,11894,12460,15360,9950,10103,9621,15360,8830,8838,7220,15360,8565,8533,7015,15360,8541,8501,6919,15360,8332,8300,6822,15360,8412,8372,7220,15360,8710,8701,7686,15360,9372,9404,8549,15360,9533,9621,9079,15360,9268,9292,8196,15360,9452,9460,8167,15360,9533,9581,8533,15360,9742,9870,9316,15360,11460,11814,12348,15360,11942,12388,12902,15360,11749,12167,12573,15360,11300,11492,11621,15360,11974,12332,12669,15360,12436,12741,13364,15360,12597,12886,13460,15360,12966,13271,13653,15360,12998,13303,13669,15360,13476,13629,13974,15360,13733,13886,14239,15360,13364,13524,13894,15360,13063,13356,13725,15360,12982,13287,13669,15360,12484,12806,13444,15360,12565,12902,13500,15360,12950,13287,13693,15360,12934,13271,13677,15360,12693,13046,13589,15360,12661,13030,13605,15360,12870,13271,13717,15360,13348,13548,13966,15360,13621,13813,14271,15360,13797,13974,14412,15360,13942,14119,14484,15360,14263,14388,14629,15360,14420,14508,14733,15360,14460,14548,14773,15360,14982,15046,15231,15360,15564,15580,15669,15360,15974,15982,16078,15360,15805,15821,15926,15360,15460,15476,15572,15360,15436,15460,15556,15360,14781,14862,15127,15360,13621,13813,14348,15360,12789,13207,13757,15360,12452,12886,13581,15360,12263,12709,13476,15360,12039,12597,13396,15360,11942,12516,13340,15360,11846,12468,13271,15360,11733,12380,13127,15360,11926,12460,13191,15360,12055,12524,13263,15360,11878,12428,13159,15360,11605,12231,12886,15360,11412,11990,12709,15360,11508,12103,12789,15360,11637,12231,12854,15360,10661,11079,11380,15360,9541,9685,9252,15360,8573,8605,7493,15360,8404,8388,7348,15360,8830,8822,8212,15360,9308,9324,9095,15360,9324,9364,9220,15360,9047,9119,8653,15360,9023,9055,8404,15360,9055,9063,8167,15360,8870,8846,7541,15360,8862,8806,7380,15360,8950,8910,7252,15360,9268,9284,7557,15360,10316,10468,10380,15360,11239,11476,11677,15360,10653,10942,11047,15360,9661,9814,9324,15360,10693,10958,11047,15360,11396,11653,11990,15360,11878,12292,12597,15360,12468,12789,13396,15360,12773,13095,13589,15360,13364,13516,13894,15360,13894,14054,14380,15360,13717,13870,14247,15360,13420,13589,13958,15360,13255,13452,13830,15360,12806,13143,13637,15360,13159,13412,13830,15360,13629,13813,14215,15360,13303,13500,13910,15360,13079,13396,13805,15360,13191,13452,13878,15360,13412,13621,14062,15360,14103,14279,14540,15360,14773,14854,15086,15360,14717,14805,15046,15360,14295,14420,14685,15360,14380,14476,14733,15360,14572,14661,14902,15360,15596,15612,15701,15360,16351,16335,16384,15360,16484,16476,16492,15360,16516,16500,16516,15360,16388,16375,16404,15360,16054,16054,16118,15360,15918,15926,16006,15360,15556,15572,15669,15360,14653,14725,14982,15360,13637,13838,14319,15360,13412,13613,14054,15360,12870,13287,13789,15360,12404,12838,13524,15360,12199,12677,13428,15360,12324,12741,13452,15360,11942,12516,13324,15360,11765,12380,13111,15360,11428,11942,12589,15360,10886,11388,11902,15360,10372,10717,11006,15360,9846,10240,10191,15360,10252,10549,10766,15360,10613,11079,11484,15360,10581,10998,11388,15360,9613,9846,9629,15360,8525,8557,7541,15360,8605,8613,7814,15360,9292,9324,9079,15360,9388,9396,9220,15360,10709,10846,11031,15360,9894,9966,9854,15360,9252,9236,8774,15360,8822,8790,8183,15360,8292,8260,6533,15360,8111,8007,6324,15360,8228,8183,6405,15360,8501,8501,6565,15360,8814,8878,7172,15360,9260,9364,8244,15360,8902,9095,8252,15360,9444,9581,9047,15360,9509,9637,8790,15360,9477,9613,8806,15360,10725,11063,11079,15360,11508,11910,12356,15360,12484,12789,13380,15360,12838,13159,13629,15360,13428,13589,13974,15360,14135,14279,14484,15360,13942,14087,14396,15360,13677,13846,14247,15360,13436,13613,14006,15360,13597,13781,14183,15360,14183,14340,14540,15360,14022,14215,14484,15360,13637,13838,14271,15360,14038,14231,14508,15360,14380,14476,14701,15360,14757,14854,15078,15360,15030,15111,15343,15360,15420,15452,15556,15360,15476,15500,15588,15360,15351,15388,15492,15360,15572,15596,15677,15360,15653,15669,15717,15360,15821,15821,15853,15360,15845,15845,15869,15360,15998,15990,16022,15360,15926,15926,15974,15360,15653,15669,15733,15360,15661,15677,15749,15360,15612,15629,15717,15360,15271,15335,15452,15360,14484,14572,14821,15360,14215,14372,14588,15360,13468,13677,14167,15360,12773,13175,13653,15360,12725,13143,13637,15360,12452,12886,13532,15360,12263,12709,13444,15360,11894,12436,13103,15360,10252,10533,10661,15360,8613,8693,7445,15360,8742,8782,7047,15360,8420,8412,6565,15360,7926,7910,6405,15360,8806,8854,7300,15360,9127,9228,8007,15360,8685,8750,7300,15360,8348,8356,6758,15360,8380,8340,7300,15360,8991,8918,8388,15360,9838,9790,9549,15360,10055,10127,10047,15360,9501,9493,9268,15360,9332,9292,8902,15360,9079,9007,8509,15360,8300,8260,7252,15360,8693,8701,8196,15360,8228,8212,7111,15360,8469,8501,7380,15360,8420,8501,6919,15360,8549,8645,6983,15360,8581,8661,6951,15360,9268,9332,7718,15360,9063,9207,7445,15360,9284,9380,7718,15360,9412,9557,8693,15360,10276,10517,10103,15360,11830,12279,12589,15360,12725,13079,13589,15360,13127,13396,13773,15360,14087,14231,14460,15360,13974,14119,14412,15360,13677,13854,14247,15360,14119,14279,14500,15360,13990,14167,14460,15360,14364,14452,14653,15360,14564,14653,14837,15360,14404,14492,14701,15360,14870,14942,15135,15360,15388,15420,15500,15360,15207,15287,15420,15360,14797,14894,15127,15360,15271,15335,15452,15360,15926,15942,15990,15360,16207,16207,16231,15360,16118,16110,16126,15360,15741,15733,15741,15360,16239,16207,16175,15360,16444,16460,16484,15360,16046,16022,16006,15360,15942,15950,15966,15360,15773,15789,15829,15360,15789,15797,15845,15360,15693,15709,15757,15360,15540,15564,15653,15360,15303,15364,15468,15360,14733,14813,15014,15360,13862,14054,14420,15360,12838,13255,13725,15360,12789,13207,13693,15360,12468,12918,13564,15360,12404,12838,13500,15360,11428,11862,12412,15360,9143,9276,8388,15360,8541,8533,6726,15360,8444,8428,6629,15360,8212,8183,6597,15360,8388,8380,7015,15360,8726,8710,6758,15360,8332,8316,6437,15360,8453,8428,6565,15360,8597,8605,7814,15360,8701,8661,8151,15360,9452,9396,9015,15360,10581,10557,10380,15360,10950,10974,10846,15360,10380,10356,10252,15360,10749,10741,10685,15360,9870,9854,9693,15360,9023,9039,8669,15360,8790,8854,8509,15360,8196,8167,7332,15360,7975,8015,7079,15360,8589,8750,7445,15360,9095,9260,7111,15360,8983,9135,7188,15360,8902,8991,7252,15360,8862,9007,7015,15360,8967,9111,7300,15360,8742,8878,7493,15360,9557,9999,9549,15360,11292,11613,11862,15360,12135,12468,12982,15360,12215,12460,12878,15360,13356,13468,13685,15360,13821,13934,14199,15360,13548,13701,14022,15360,14103,14263,14468,15360,14279,14388,14572,15360,14364,14452,14645,15360,14709,14789,14950,15360,15143,15199,15327,15360,15388,15412,15468,15360,15476,15500,15548,15360,15420,15444,15492,15360,15436,15460,15516,15360,15612,15637,15685,15360,16086,16086,16110,15360,16396,16388,16396,15360,16094,16094,16110,15360,15869,15861,15861,15360,16135,16110,16070,15360,16428,16420,16404,15360,15588,15556,15524,15360,15484,15500,15508,15360,15335,15364,15396,15360,15677,15685,15717,15360,15604,15621,15661,15360,15420,15444,15500,15360,15303,15372,15452,15360,14717,14805,14998,15360,14412,14508,14701,15360,13548,13765,14199,15360,13271,13508,13942,15360,12661,13159,13709,15360,12468,12854,13436,15360,10260,10484,10509,15360,8613,8669,6951,15360,8151,8143,6469,15360,8653,8629,7814,15360,8469,8444,7541,15360,8718,8693,7814,15360,8372,8332,6597,15360,8356,8308,7111,15360,9047,8983,8396,15360,8822,8798,8308,15360,9372,9348,8967,15360,10364,10364,10183,15360,10268,10260,9894,15360,10541,10533,10468,15360,10380,10364,10276,15360,10621,10613,10549,15360,9910,9942,9758,15360,8364,8380,7621,15360,8581,8637,8135,15360,8252,8300,7573,15360,8119,8175,7300,15360,8372,8453,7493,15360,8420,8501,6983,15360,8742,8822,7573,15360,8782,8854,8151,15360,8581,8661,7079,15360,9220,9268,8340,15360,9549,9645,8854,15360,11717,11950,12127,15360,12468,12741,13207,15360,12709,12966,13388,15360,12300,12508,12886,15360,12492,12709,13063,15360,13239,13372,13548,15360,12476,12597,12814,15360,13581,13685,13878,15360,14476,14548,14685,15360,14556,14629,14773,15360,14765,14829,14966,15360,15159,15207,15303,15360,15372,15396,15444,15360,15516,15532,15572,15360,15653,15661,15693,15360,15829,15837,15853,15360,16022,16014,16022,15360,16311,16295,16279,15360,16343,16319,16303,15360,16412,16388,16359,15360,15813,15797,15773,15360,13063,13151,13183,15360,11484,11701,11798,15360,12300,12412,12468,15360,14613,14637,14653,15360,11974,12215,12316,15360,14135,14215,14303,15360,15604,15629,15677,15360,15524,15548,15596,15360,15351,15380,15428,15360,14797,14894,15054,15360,13990,14231,14500,15360,13492,13709,14070,15360,12886,13316,13701,15360,12613,13207,13749,15360,11525,11974,12428,15360,9284,9412,8629,15360,8597,8653,6951,15360,7806,7790,6292,15360,7589,7541,6437,15360,7485,7437,6597,15360,7453,7404,6180,15360,7774,7686,6565,15360,8300,8260,7332,15360,9918,9942,9862,15360,10348,10372,10231,15360,9725,9709,9228,15360,10613,10621,10509,15360,10199,10175,9838,15360,10380,10388,10340,15360,11207,11255,11284,15360,10661,10717,10725,15360,10103,10135,9950,15360,8444,8436,7669,15360,8469,8501,7445,15360,8950,9111,8854,15360,9485,9798,10071,15360,8364,8501,8039,15360,7959,7951,6806,15360,8597,8605,8039,15360,8501,8533,7557,15360,8758,8830,7509,15360,10758,10830,10693,15360,11508,11605,11621,15360,13524,13669,13886,15360,13830,14022,14327,15360,13926,14103,14364,15360,13460,13621,13886,15360,12854,13191,13420,15360,13597,13733,13926,15360,13846,13990,14223,15360,13773,13942,14199,15360,13910,14087,14356,15360,13813,14022,14319,15360,14247,14396,14540,15360,14693,14765,14878,15360,15223,15279,15343,15360,15508,15524,15540,15360,15540,15548,15564,15360,15327,15335,15319,15360,15303,15311,15303,15360,15918,15910,15886,15360,16247,16207,16151,15360,16175,16143,16086,15360,14436,14452,14436,15360,12263,12380,12404,15360,11476,11701,11773,15360,12380,12492,12532,15360,14797,14797,14757,15360,11372,11589,11677,15360,12597,12934,13356,15360,13990,14364,14725,15360,14183,14444,14773,15360,14231,14444,14717,15360,14412,14532,14709,15360,14054,14199,14380,15360,12372,12500,12605,15360,12199,12565,13006,15360,12581,13175,13653,15360,10055,10380,10324,15360,8557,8573,6726,15360,8167,8196,6533,15360,7517,7485,6119,15360,7244,7172,5798,15360,7071,6959,5718,15360,7669,7581,6260,15360,8661,8605,7975,15360,10942,11079,11151,15360,12573,12741,13014,15360,11902,12030,12191,15360,10308,10332,10135,15360,11255,11300,11284,15360,11276,11348,11396,15360,10055,10215,10292,15360,12183,12332,12468,15360,9918,9966,9798,15360,8734,8742,8196,15360,8967,8950,8469,15360,10260,10276,10039,15360,9734,9758,9605,15360,9388,9404,9308,15360,7943,7878,7095,15360,7726,7637,6645,15360,8047,7983,7204,15360,9284,9236,8693,15360,9621,9565,9143,15360,11255,11268,11047,15360,13175,13332,13420,15360,13773,13934,14175,15360,13854,14022,14271,15360,13870,14038,14279,15360,13388,13516,13677,15360,12279,12629,12966,15360,13348,13452,13564,15360,13821,13918,14054,15360,13701,13846,14022,15360,13460,13605,13781,15360,13492,13637,13821,15360,13709,13821,13950,15360,14372,14428,14476,15360,14516,14572,14613,15360,14741,14789,14813,15360,14725,14749,14749,15360,13452,13484,13468,15360,13476,13500,13492,15360,14990,15022,15022,15360,14556,14572,14564,15360,15094,15111,15094,15360,13231,13287,13215,15360,11255,11380,11175,15360,10677,10886,10492,15360,11846,12006,11934,15360,14327,14340,14279,15360,10766,11039,10862,15360,12918,13255,13452,15360,14231,14548,14886,15360,13878,14380,14765,15360,13444,13862,14412,15360,12151,12404,12621,15360,12637,12902,13215,15360,11549,11749,11870,15360,12279,12653,13119,15360,13223,13404,13516,15360,9228,9260,8276,15360,8087,7991,6308,15360,7918,7814,6919,15360,7469,7364,6148,15360,7485,7380,6212,15360,8228,7991,7204,15360,9276,8967,8212,15360,9806,9573,8742,15360,10135,10087,9621,15360,11452,11452,11452,15360,10629,10637,10509,15360,10693,10733,10637,15360,11095,11111,10982,15360,11292,11348,11372,15360,10199,10244,10167,15360,10814,10926,10846,15360,8669,8774,7493,15360,7870,7910,6244,15360,8204,8183,6919,15360,9806,9758,9159,15360,9460,9436,8629,15360,9159,9087,8260,15360,7637,7509,6790,15360,7758,7629,6838,15360,7967,7918,6774,15360,10854,10749,10501,15360,11508,11412,11316,15360,12372,12300,12151,15360,12030,12119,12063,15360,12781,12910,12982,15360,13476,13581,13661,15360,13484,13589,13677,15360,12404,12428,12380,15360,11605,11765,11798,15360,11492,11533,11452,15360,11838,11886,11798,15360,12263,12372,12380,15360,12151,12231,12175,15360,11492,11508,11412,15360,11119,11111,10838,15360,12508,12581,12573,15360,12621,12693,12677,15360,12573,12629,12589,15360,12292,12324,12231,15360,12476,12565,12573,15360,11998,12159,12215,15360,12950,13071,13159,15360,12263,12372,12428,15360,12380,12428,12444,15360,11300,11308,11143,15360,10199,10244,9734,15360,9709,9701,9252,15360,10492,10581,10404,15360,11476,11516,11388,15360,9477,9517,8790,15360,11717,11854,11838,15360,14247,14420,14524,15360,14054,14311,14436,15360,13597,13805,13982,15360,11364,11533,11597,15360,12263,12428,12549,15360,11436,11605,11653,15360,13079,13324,13444,15360,12516,12613,12605,15360,10039,10015,9605,15360,8693,8621,7878,15360,7951,7862,6902,15360,8196,8204,7015,15360,8677,8589,7637,15360,9284,9031,8340,15360,9814,9605,8902,15360,10685,10428,9910,15360,10492,10260,9685,15360,9404,9252,7943,15360,8830,8766,7220,15360,9220,9047,7943,15360,9693,9669,9015,15360,11412,11468,11372,15360,11135,11159,11023,15360,10087,10055,9428,15360,9910,10007,9621,15360,9236,9300,8934,15360,9597,9557,8902,15360,10669,10549,9782,15360,9926,9870,9127,15360,9894,9918,9047,15360,8685,8742,7910,15360,9958,10167,10284,15360,10215,10332,10396,15360,11396,11428,11452,15360,11223,11255,11300,15360,11814,11862,11958,15360,10685,10846,10870,15360,10340,10380,10007,15360,11175,11207,10894,15360,12103,12207,12215,15360,11143,11103,10902,15360,9910,9966,9613,15360,10015,10079,9493,15360,10806,10846,10517,15360,10862,10934,10637,15360,10838,10942,10661,15360,10958,11087,10878,15360,10709,10838,10701,15360,10669,10741,10589,15360,10581,10669,10525,15360,10252,10348,9974,15360,11396,11500,11525,15360,11207,11255,11264,15360,10878,10910,10934,15360,11031,11063,11159,15360,11292,11324,11396,15360,11223,11255,11300,15360,10693,10685,10645,15360,10428,10420,10324,15360,10300,10252,9991,15360,10838,10846,10798,15360,10428,10428,10364,15360,9669,9605,9380,15360,10167,10244,10087,15360,11709,11854,11910,15360,11223,11284,11268,15360,10231,10244,9878,15360,10199,10244,9862,15360,10183,10260,9942,15360,10525,10653,10541,15360,12500,12597,12621,15360,11814,11741,11597,15360,11533,11460,11175,15360,11103,11006,10557,15360,10444,10396,9846,15360,10007,10023,9228,15360,9653,9790,8469,15360,9316,9372,8039,15360,9557,9830,8071,15360,9621,9918,8071,15360,9677,10015,8167,15360,9991,10284,8420,15360,10215,10436,8581,15360,10260,10484,8645,15360,10292,10476,8902,15360,10324,10468,9252,15360,9910,9894,8886,15360,10525,10573,9701,15360,9782,10039,8581,15360,9565,9814,8167,15360,9950,10039,8934,15360,10749,10758,10199,15360,10669,10685,10244,15360,10838,10838,10460,15360,11215,10910,10087,15360,11492,11364,10806,15360,11095,11159,11055,15360,11364,11388,11356,15360,11023,11039,10990,15360,11653,11653,11613,15360,11798,11725,11557,15360,11974,11862,11637,15360,12039,11942,11765,15360,12119,12047,11934,15360,12151,12071,11950,15360,12087,12006,11886,15360,12047,11966,11838,15360,11990,11926,11790,15360,11974,11910,11798,15360,11998,11934,11814,15360,12111,12039,11886,15360,12231,12143,11998,15360,12292,12199,12039,15360,12039,11974,11846,15360,11822,11782,11653,15360,11862,11838,11765,15360,11798,11765,11701,15360,11782,11733,11669,15360,11798,11749,11685,15360,11838,11790,11725,15360,11870,11822,11749,15360,11741,11701,11621,15360,11565,11541,11452,15360,11533,11500,11412,15360,11621,11581,11484,15360,11605,11557,11460,15360,11516,11468,11372,15360,11565,11533,11444,15360,11677,11637,11541,15360,11725,11661,11557,15360,11725,11661,11557,15360,11733,11669,11573,15360,11838,11773,11677,15360,11998,11926,11814,15360,12014,11926,11798,15360,11460,11404,11332,15360,11637,11557,11428,15360,12014,11894,11693,15360,12167,12022,11765,15360,12119,11982,11709,15360,11926,11806,11516,15360,11685,11589,11300,15360,11476,11404,10886,15360,11239,11151,10468,15360,10766,10733,9894,15360,10565,10565,9589,15360,10436,10444,9332,15360,10308,10308,9031,15360,10308,10316,8999,15360,10199,10244,8774,15360,9725,9645,8549,15360,10244,10276,8967,15360,10878,10838,10183,15360,11055,10966,10348,15360,11119,11006,10404,15360,11264,11135,10565,15360,11404,11316,10822,15360,11492,11388,10982,15360,11798,11613,11223,15360,12047,11830,11412,15360,12039,11894,11597,15360,12127,11990,11693,15360,12127,11990,11725,15360,12191,12055,11806,15360,12191,12055,11830,15360,11870,11773,11613,15360,11573,11516,11428,15360,11533,11484,11412,15360,11541,11492,11420,15360,11565,11516,11452,15360,11589,11541,11476,15360,11605,11557,11500,15360,11637,11589,11533,15360,11669,11621,11557,15360,11701,11645,11573,15360,11733,11669,11589,15360,11798,11717,11605,15360,11838,11749,11621,15360,11878,11782,11661,15360,11894,11798,11661,15360,11926,11806,11653,15360,11958,11822,11661,15360,11982,11846,11677,15360,12006,11870,11685,15360,12095,11950,11765,15360,12047,11910,11741,15360,11886,11765,11605,15360,11838,11733,11589,15360,11814,11717,11589,15360,11814,11709,11573,15360,11790,11693,11565,15360,11741,11677,11589,15360,11733,11677,11613,15360,11733,11685,11629,15360,11717,11669,11621,15360,11685,11645,11589,15360,11629,11589,11533,15360,11573,11525,11468,15360,11492,11444,11380,15360,11316,11255,11111,15360,11348,11292,11143,15360,11516,11436,11316,15360,11854,11749,11589,15360,12127,11990,11765,15360,12199,12055,11782,15360,12340,12231,11910,15360,12372,12292,11958,15360,12380,12300,11974,15360,12348,12247,11910,15360,12324,12215,11878,15360,12247,12103,11773,15360,12095,11958,11637,15360,12055,11926,11613,15360,11974,11854,11541,15360,11870,11765,11468,15360,11966,11854,11541,15360,12300,12151,11846,15360,12396,12316,12006,15360,12388,12308,11990,15360,12388,12308,12006,15360,12396,12316,12022,15360,12396,12308,12022,15360,12396,12308,12022,15360,12364,12279,11974,15360,12340,12247,11942,15360,12340,12231,11926,15360,12215,12071,11806,15360,12095,11966,11749,15360,11741,11645,11500,15360,11420,11356,11255,15360,11364,11308,11207,15360,11356,11300,11175,15360,11348,11292,11191,15360,11372,11324,11255,15360,11412,11364,11308,15360,11420,11372,11316,15360,11428,11380,11324,15360,11444,11388,11332,15360,11484,11428,11364,15360,11508,11460,11396,15360,11557,11500,11436,15360,11589,11533,11460,15360,11613,11557,11484,15360,11621,11557,11492,15360,11613,11557,11500,15360,11621,11557,11500,15360,11629,11573,11508,15360,11629,11573,11508,15360,11605,11557,11484,15360,11589,11533,11468,15360,11557,11508,11436,15360,11549,11500,11428,15360,11557,11500,11436,15360,11549,11492,11436,15360,11533,11484,11428,15360,11525,11476,11428,15360,11516,11476,11428,15360,11525,11484,11444,15360,11516,11476,11428,15360,11468,11428,11380,15360,11428,11388,11332,15360,11356,11308,11239,15360,11308,11255,11127,15360,11167,11071,10926,15360,11223,11119,10966,15360,11276,11175,10998,15360,11404,11332,11191,15360,11773,11693,11557,15360,11926,11798,11613,15360,12207,12039,11773,15360,12348,12231,11894,15360,12308,12151,11846,15360,12332,12215,11894,15360,12364,12279,11958,15360,12380,12292,11974,15360,12396,12316,12022,15360,12404,12316,12039,15360,12412,12332,12087,15360,12412,12332,12103,15360,12436,12356,12135,15360,12372,12292,12039,15360,12420,12332,12087,15360,12396,12316,12055,15360,12356,12263,11990,15360,12340,12231,11942,15360,12271,12127,11854,15360,12215,12071,11814,15360,12292,12135,11878,15360,12288,12135,11870,15360,12111,11982,11765,15360,11990,11886,11717,15360,11637,11557,11428,15360,11364,11300,11143,15360,11316,11239,11079,15360,11300,11207,11047,15360,11268,11159,11015,15360,11268,11159,11015,15360,11268,11159,11031,15360,11300,11223,11095,15360,11340,11292,11191,15360,11348,11300,11223,15360,11372,11324,11255,15360,11380,11332,11255,15360,11372,11316,11239,15360,11396,11340,11268,15360,11468,11404,11300,15360,11460,11404,11324,15360,11484,11428,11356,15360,11492,11436,11372,15360,11500,11444,11388,15360,11508,11460,11404,15360,11500,11452,11396,15360,11492,11436,11380,15360,11468,11412,11356,15360,11444,11388,11324,15360,11444,11388,11324,15360,11428,11380,11316,15360,11412,11356,11300,15360,11404,11348,11300,15360,11404,11356,11308,15360,11396,11356,11308,15360,11388,11348,11308,15360,11372,11340,11292,15360,11348,11308,11255,15360,11284,11223,11111,15360,11231,11143,11023,15360,11199,11111,10974,15360,11047,10958,10814,15360,11127,11023,10870,15360,11119,11006,10846,15360,11175,11055,10886,15360,11292,11191,10998,15360,11525,11404,11284,15360,11822,11637,11476,15360,11878,11733,11549,15360,11918,11790,11573,15360,12063,11918,11653,15360,12223,12063,11765,15360,12300,12151,11846,15360,12255,12103,11814,15360,12271,12127,11846,15360,12271,12127,11862,15360,12271,12127,11886,15360,12308,12183,11942,15360,12175,12039,11814,15360,12063,11934,11709,15360,12159,12014,11765,15360,12215,12063,11798,15360,12143,11998,11757,15360,12071,11934,11693,15360,11998,11870,11661,15360,11974,11870,11685,15360,11998,11910,11757,15360,11846,11765,11629,15360,11468,11396,11284,15360,11308,11223,11031,15360,11215,11103,10934,15360,11207,11095,10942,15360,11215,11103,10950,15360,11191,11087,10942,15360,11175,11079,10942,15360,11167,11063,10934,15360,11143,11031,10902,15360,11247,11143,11015,15360,11284,11191,11079,15360,11300,11223,11095,15360,11316,11268,11127,15360,11340,11284,11143,15360,11340,11284,11159,15360,11356,11300,11191,15360,11372,11316,11239,15360,11380,11324,11255,15360,11372,11316,11255,15360,11380,11324,11276,15360,11380,11324,11268,15360,11372,11316,11255,15360,11364,11316,11255,15360,11364,11308,11239,15360,11348,11292,11207,15360,11340,11284,11191,15360,11348,11292,11191,15360,11348,11292,11207,15360,11340,11292,11207,15360,11340,11292,11207,15360,11324,11276,11207,15360,11308,11255,11175,15360,11264,11175,11079,15360,11119,11039,10934,15360,11103,11015,10902,15360,11095,11006,10878,15360,11031,10942,10806,15360,10990,10902,10766,15360,11047,10942,10814,15360,11031,10926,10790,15360,11055,10942,10806,15360,11119,10998,10846,15360,11151,11015,10830,15360,11268,11095,10886,15360,11484,11396,11268,15360,11790,11701,11549,15360,11886,11790,11637,15360,11838,11741,11581,15360,11838,11725,11541,15360,11902,11782,11581,15360,11966,11838,11629,15360,11974,11846,11629,15360,11958,11838,11629,15360,11950,11838,11637,15360,11814,11701,11525,15360,11581,11492,11332,15360,11645,11541,11380,15360,11806,11701,11533,15360,11902,11806,11637,15360,11950,11862,11717,15360,12014,11934,11790,15360,11942,11862,11725,15360,11565,11492,11388,15360,11292,11191,11015,15360,11231,11111,10950,15360,11159,11047,10894,15360,11119,11006,10854,15360,11127,11023,10878,15360,11159,11055,10902,15360,11135,11031,10894,15360,11111,11006,10878,15360,11095,10990,10870,15360,11095,10998,10886,15360,11071,10966,10846,15360,11111,11006,10902,15360,11191,11095,10974,15360,11268,11159,11031,15360,11284,11191,11063,15360,11292,11207,11063,15360,11300,11223,11079,15360,11332,11268,11143,15360,11316,11255,11127,15360,11316,11255,11143,15360,11308,11239,11127,15360,11316,11255,11159,15360,11300,11223,11127,15360,11292,11207,11095,15360,11300,11223,11111,15360,11300,11223,11095,15360,11300,11223,11095,15360,11308,11239,11111,15360,11300,11223,11111,15360,11292,11207,11111,15360,11264,11167,11071,15360,11215,11127,11047,15360,11135,11055,10966,15360,11015,10934,10846,15360,10918,10838,10733,15360,10982,10894,10782,15360,10974,10886,10766,15360,10982,10894,10766,15360,10958,10862,10749,15360,10982,10886,10774,15360,10958,10862,10758,15360,10958,10862,10749,15360,11015,10910,10790,15360,11023,10910,10774,15360,11079,10958,10806,15360,11103,10974,10798,15360,11191,11047,10846,15360,11468,11388,11276,15360,11846,11765,11637,15360,12006,11918,11782,15360,11998,11910,11782,15360,11902,11822,11693,15360,11838,11749,11637,15360,11782,11709,11605,15360,11806,11741,11645,15360,11782,11717,11629,15360,11773,11717,11621,15360,11870,11806,11701,15360,11942,11862,11757,15360,12183,12103,11974,15360,11974,11894,11765,15360,11476,11404,11308,15360,11268,11143,10966,15360,11183,11063,10902,15360,11111,10998,10854,15360,11055,10942,10806,15360,11023,10910,10766,15360,11047,10934,10782,15360,11039,10926,10782,15360,11079,10966,10830,15360,11031,10918,10782,15360,11031,10926,10806,15360,10990,10894,10782,15360,10974,10886,10790,15360,10966,10870,10774,15360,11006,10902,10806,15360,11039,10942,10838,15360,11127,11023,10910,15360,11175,11079,10958,15360,11191,11087,10958,15360,11207,11095,10958,15360,11268,11143,11015,15360,11276,11175,11047,15360,11284,11191,11079,15360,11292,11191,11079,15360,11276,11175,11079,15360,11239,11135,11031,15360,11268,11159,11047,15360,11215,11111,11006,15360,11239,11127,11015,15360,11255,11143,11031,15360,11223,11119,11015,15360,11199,11103,10998,15360,11175,11087,10982,15360,11143,11047,10958,15360,11031,10942,10854,15360,10958,10878,10790,15360,10910,10830,10741,15360,10942,10862,10758,15360,10926,10838,10733,15360,10854,10758,10637,15360,10918,10830,10709,15360,10910,10822,10717,15360,10942,10846,10749,15360,10942,10854,10741,15360,10942,10854,10749,15360,10966,10870,10758,15360,10966,10870,10758,15360,10958,10854,10733,15360,10998,10886,10741,15360,10942,10830,10677,15360,11039,10918,10749,15360,11095,10974,10806,15360,11308,11223,11031,15360,11468,11396,11292,15360,11605,11533,11428,15360,11701,11621,11525,15360,11693,11629,11541,15360,11685,11621,11549,15360,11685,11629,11549,15360,11629,11565,11484,15360,11589,11533,11444,15360,11364,11308,11191,15360,11191,11087,10958,15360,11135,11031,10902,15360,11135,11031,10894,15360,11055,10950,10830,15360,11015,10910,10782,15360,10958,10854,10733,15360,10942,10838,10717,15360,10974,10870,10733,15360,10982,10878,10749,15360,10990,10886,10758,15360,11015,10910,10798,15360,10966,10862,10758,15360,10950,10854,10758,15360,10910,10822,10733,15360,10894,10798,10709,15360,10902,10814,10725,15360,10934,10846,10758,15360,10910,10822,10733,15360,10950,10854,10749,15360,10974,10878,10766,15360,11047,10942,10830,15360,11095,10990,10878,15360,11167,11055,10942,15360,11199,11103,10990,15360,11191,11087,10982,15360,11151,11047,10950,15360,11135,11031,10934,15360,11095,10998,10902,15360,11143,11047,10950,15360,11079,10990,10894,15360,11079,10990,10902,15360,11103,11006,10910,15360,11079,10982,10886,15360,11023,10926,10822,15360,10982,10894,10798,15360,10958,10870,10782,15360,10910,10814,10725,15360,10926,10838,10741,15360,10934,10838,10733,15360,10950,10854,10749,15360,10886,10798,10709,15360,10910,10814,10709,15360,10926,10830,10725,15360,10910,10814,10701,15360,10862,10774,10677,15360,10950,10854,10733,15360,10926,10830,10717,15360,10926,10838,10725,15360,10926,10830,10725,15360,10894,10798,10685,15360,10926,10830,10701,15360,10958,10854,10717,15360,10934,10830,10685,15360,10950,10846,10709,15360,10974,10862,10717,15360,10942,10830,10685,15360,10958,10846,10701,15360,11006,10894,10749,15360,10950,10846,10725,15360,10958,10862,10741,15360,10894,10806,10701,15360,10854,10774,10669,15360,10886,10806,10701,15360,10862,10790,10693,15360,10878,10806,10717,15360,10982,10902,10798,15360,10990,10902,10798,15360,10950,10862,10758,15360,10942,10846,10733,15360,10870,10774,10669,15360,10894,10798,10693,15360,10918,10830,10725,15360,10894,10806,10701,15360,10926,10830,10733,15360,10902,10830,10725,15360,10870,10790,10693,15360,10886,10814,10725,15360,10814,10741,10661,15360,10838,10766,10677,15360,10822,10741,10661,15360,10822,10741,10669,15360,10862,10790,10709,15360,10846,10758,10669,15360,10894,10798,10693,15360,10974,10878,10766,15360,10966,10870,10766,15360,11023,10926,10814,15360,11079,10974,10862,15360,11006,10910,10814,15360,10950,10862,10766,15360,10982,10894,10798,15360,10958,10862,10774,15360,10958,10870,10782,15360,10910,10830,10741,15360,10950,10862,10766,15360,10982,10886,10790,15360,10918,10822,10725,15360,10886,10798,10701,15360,10854,10766,10669,15360,10894,10806,10709,15360,10926,10830,10725,15360,10926,10830,10725,15360,10958,10862,10749,15360,10958,10862,10749,15360,10894,10806,10717,15360,10902,10814,10717,15360,10878,10790,10677,15360,10942,10838,10717,15360,10918,10814,10701,15360,10886,10790,10661,15360,10942,10838,10717,15360,10950,10854,10725,15360,10950,10854,10725,15360,10910,10814,10693,15360,10910,10814,10685,15360,10942,10838,10709,15360,10894,10790,10661,15360,10910,10806,10669,15360,10822,10725,10597,15360,10749,10661,10541,15360,10830,10733,10613,15360,10838,10741,10629,15360,10806,10709,10597,15360,10854,10766,10653,15360,10862,10774,10669,15360,10798,10725,10629,15360,10822,10749,10653,15360,10854,10782,10693,15360,10806,10741,10661,15360,10862,10790,10701,15360,10870,10790,10685,15360,10870,10790,10693,15360,10878,10790,10677,15360,10862,10782,10677,15360,10870,10790,10693,15360,10870,10782,10685,15360,10894,10814,10709,15360,10886,10814,10709,15360,10846,10782,10685,15360,10741,10669,10573,15360,10766,10693,10589,15360,10709,10637,10541,15360,10741,10669,10589,15360,10741,10677,10589,15360,10709,10637,10557,15360,10774,10701,10613,15360,10862,10774,10677,15360,11006,10918,10806,15360,11006,10902,10782,15360,10974,10870,10749,15360,10958,10854,10733,15360,10934,10838,10725,15360,10934,10838,10733,15360,10934,10838,10725,15360,10886,10790,10685,15360,10854,10766,10661,15360,10886,10798,10701,15360,10838,10749,10645,15360,10878,10782,10661,15360,10822,10725,10613,15360,10822,10717,10605,15360,10846,10749,10629,15360,10854,10749,10637,15360,10950,10854,10733,15360,10958,10854,10741,15360,10910,10806,10693,15360,10926,10822,10693,15360,10934,10838,10725,15360,10910,10822,10709,15360,10910,10822,10709,15360,10886,10782,10661,15360,10910,10814,10677,15360,10910,10806,10677,15360,10926,10822,10685,15360,10958,10854,10717,15360,10974,10870,10725,15360,10926,10830,10693,15360,10926,10830,10693,15360,10918,10822,10693,15360,10934,10838,10701,15360,10918,10814,10685,15360,10878,10782,10653,15360,10870,10774,10645,15360,10838,10749,10629,15360,10806,10717,10605,15360,10822,10733,10621,15360,10822,10733,10621,15360,10846,10758,10653,15360,10846,10766,10653,15360,10822,10741,10629,15360,10806,10733,10629,15360,10806,10725,10621,15360,10790,10709,10605,15360,10766,10693,10589,15360,10814,10741,10629,15360,10846,10766,10653,15360,10838,10758,10653,15360,10878,10790,10677,15360,10894,10798,10685,15360,10830,10741,10629,15360,10830,10758,10653,15360,10798,10725,10629,15360,10806,10733,10629,15360,10717,10637,10525,15360,10661,10581,10476,15360,10701,10621,10517,15360,10733,10661,10565,15360,10782,10685,10557,15360,10862,10758,10613,15360,10974,10862,10725,15360,10958,10846,10709,15360,11006,10902,10766,15360,11006,10902,10774,15360,11039,10934,10814,15360,11006,10902,10790,15360,11006,10910,10790,15360,10950,10854,10741,15360,10934,10830,10709,15360,10918,10814,10701,15360,10854,10758,10653,15360,10918,10814,10701,15360,10870,10766,10645,15360,10830,10733,10621,15360,10934,10830,10709,15360,10990,10886,10758,15360,10950,10838,10717,15360,10910,10814,10701,15360,10926,10822,10693,15360,10934,10830,10709,15360,10878,10774,10653,15360,10934,10830,10701,15360,10926,10822,10693,15360,10878,10782,10661,15360,10878,10782,10661,15360,10862,10766,10621,15360,10886,10782,10645,15360,10886,10782,10653,15360,10926,10822,10701,15360,10902,10806,10685,15360,10926,10822,10701,15360,10918,10814,10685,15360,10878,10782,10645,15360,10910,10806,10669,15360,10854,10758,10621,15360,10886,10790,10645,15360,10854,10758,10629,15360,10830,10741,10613,15360,10918,10814,10685,15360,10862,10766,10645,15360,10830,10741,10613,15360,10806,10717,10597,15360,10741,10661,10557,15360,10774,10693,10581,15360,10749,10669,10557,15360,10774,10693,10581,15360,10766,10685,10573,15360,10790,10709,10597,15360,10782,10701,10589,15360,10790,10709,10597,15360,10838,10749,10621,15360,10870,10774,10645,15360,10894,10790,10661,15360,10878,10782,10653,15360,10846,10741,10613,15360,10790,10693,10557,15360,10814,10717,10597,15360,10790,10701,10581,15360,10741,10645,10525,15360,10717,10629,10509,15360,10774,10685,10573,15360,10725,10637,10525,15360,10854,10749,10621,15360,10950,10846,10701,15360,10966,10854,10709,15360,10934,10814,10677,15360,10926,10822,10701,15360,10982,10878,10766,15360,10998,10894,10782,15360,10990,10878,10766,15360,10998,10894,10782,15360,10998,10886,10774,15360,10998,10886,10758,15360,11006,10894,10774,15360,10942,10838,10733,15360,10958,10854,10741,15360,10958,10854,10749,15360,11006,10902,10790,15360,11015,10902,10798,15360,10982,10870,10758,15360,10998,10894,10782,15360,10974,10870,10758,15360,11006,10902,10790,15360,10998,10894,10774,15360,10974,10870,10758,15360,10950,10854,10741,15360,10878,10790,10693,15360,10902,10814,10701,15360,10918,10822,10709,15360,10838,10733,10613,15360,10878,10782,10661,15360,10934,10838,10717,15360,10902,10806,10693,15360,10918,10822,10709,15360,10926,10830,10709,15360,10838,10733,10605,15360,10910,10806,10661,15360,10942,10838,10693,15360,10886,10782,10645,15360,10886,10782,10637,15360,10854,10749,10621,15360,10926,10830,10709,15360,10966,10862,10741,15360,10846,10749,10629,15360,10830,10733,10605,15360,10854,10758,10637,15360,10822,10725,10605,15360,10886,10790,10661,15360,10902,10806,10669,15360,10918,10814,10677,15360,10830,10733,10605,15360,10806,10717,10589,15360,10870,10774,10645,15360,10934,10838,10709,15360,10958,10862,10733,15360,10886,10790,10661,15360,10894,10798,10661,15360,10958,10854,10709,15360,10934,10830,10709,15360,10814,10717,10581,15360,10862,10758,10613,15360,10854,10741,10589,15360,10814,10717,10573,15360,10886,10782,10645,15360,10814,10725,10597,15360,10862,10766,10637,15360,10910,10806,10669,15360,10942,10838,10709,15360,10966,10862,10733,15360,10974,10870,10741,15360,10974,10870,10749,15360,10958,10862,10749,15360,11031,10934,10822,15360,10998,10894,10782,15360,10974,10870,10766,15360,11023,10918,10814,15360,11039,10926,10822,15360,10958,10846,10741,15360,10918,10814,10693,15360,10966,10870,10741,15360,10982,10886,10766,15360,10982,10878,10766,15360,10942,10846,10733,15360,10958,10862,10758,15360,10950,10854,10758,15360,10934,10830,10717,15360,10966,10862,10733,15360,10942,10846,10725,15360,10934,10846,10733,15360,10934,10846,10733,15360,10878,10798,10693,15360,10886,10798,10693,15360,10910,10814,10709,15360,10942,10846,10733,15360,10838,10733,10597,15360,10878,10774,10645,15360,10918,10822,10701,15360,10878,10782,10653,15360,10894,10790,10661,15360,10934,10838,10725,15360,10958,10854,10725,15360,10966,10862,10733,15360,10910,10806,10685,15360,10982,10878,10758,15360,10942,10854,10749,15360,10934,10838,10733,15360,10918,10814,10701,15360,10894,10798,10669,15360,10894,10798,10669,15360,10814,10725,10605,15360,10902,10798,10669,15360,10814,10725,10605,15360,10894,10798,10685,15360,10958,10862,10749,15360,10910,10814,10701,15360,10910,10806,10685,15360,10918,10814,10693,15360,10926,10822,10709,15360,10894,10790,10661,15360,10902,10806,10677,15360,10902,10806,10685,15360,10934,10838,10717,15360,10934,10838,10701,15360,10934,10838,10717,15360,10950,10854,10725,15360,10894,10798,10661,15360,10862,10749,10597,15360,10894,10798,10677,15360,10878,10782,10661,15360,10926,10838,10717,15360,10926,10838,10717,15360,10918,10822,10709,15360,10934,10838,10733,15360,10926,10838,10733,15360,10958,10870,10766,15360,10942,10854,10749,15360,10958,10870,10774,15360,10974,10878,10774,15360,10958,10854,10741,15360,10950,10846,10741,15360,10950,10854,10758,15360,10934,10838,10733,15360,10942,10846,10725,15360,10966,10862,10741,15360,10926,10838,10733,15360,10958,10862,10749,15360,10910,10822,10709,15360,10942,10854,10758,15360,10926,10838,10733,15360,10910,10822,10717,15360,10934,10838,10733,15360,10934,10846,10733,15360,10902,10814,10709,15360,10926,10830,10717,15360,10918,10822,10709,15360,10838,10749,10637,15360,10878,10790,10677,15360,10942,10846,10733,15360,10926,10822,10701,15360,10958,10862,10749,15360,10886,10790,10685,15360,10918,10814,10693,15360,10910,10814,10693,15360,10902,10806,10701,15360,10878,10774,10637,15360,10798,10693,10565,15360,10822,10725,10597,15360,10934,10838,10709,15360,10958,10854,10725,15360,10886,10790,10669,15360,10910,10806,10677,15360,10886,10782,10645,15360,10830,10725,10597,15360,10822,10717,10581,15360,10862,10758,10637,15360,10878,10782,10669,15360,10926,10822,10709,15360,10974,10878,10774,15360,10966,10870,10758,15360,10918,10822,10709,15360,10846,10749,10645,15360,10894,10798,10693,15360,10918,10822,10709,15360,10974,10878,10774,15360,10918,10822,10717,15360,10982,10886,10774,15360,10974,10878,10758,15360,10950,10854,10741,15360,10958,10854,10725,15360,10982,10886,10766,15360,10918,10822,10701,15360,10878,10782,10669,15360,10886,10790,10669,15360,10934,10838,10717,15360,10950,10854,10741,15360,10934,10838,10733,15360,10982,10886,10782,15360,10886,10798,10701,15360,10870,10782,10685,15360,10894,10814,10717,15360,10910,10822,10725,15360,10934,10838,10733,15360,10950,10846,10741,15360,10934,10838,10725,15360,10934,10846,10749,15360,10902,10814,10717,15360,10878,10790,10677,15360,10878,10782,10669,15360,10854,10766,10645,15360,10838,10749,10629,15360,10902,10814,10701,15360,10910,10814,10693,15360,10902,10798,10669,15360,10910,10806,10677,15360,10886,10782,10653,15360,10854,10749,10629,15360,10870,10774,10653,15360,10974,10870,10758,15360,10990,10878,10758,15360,10918,10822,10709,15360,10926,10838,10725,15360,10958,10854,10733,15360,10894,10790,10653,15360,10822,10725,10605,15360,10878,10782,10661,15360,10974,10870,10749,15360,10902,10806,10677,15360,10934,10838,10725,15360,10870,10774,10653,15360,10798,10701,10581,15360,10854,10749,10621,15360,10894,10798,10669,15360,10934,10822,10685,15360,10942,10830,10701,15360,10910,10806,10669,15360,10870,10758,10629,15360,10886,10774,10645,15360,10950,10838,10701,15360,10966,10870,10749,15360,10886,10790,10685,15360,10870,10782,10677,15360,10934,10838,10733,15360,10934,10838,10725,15360,10822,10725,10621,15360,10878,10790,10677,15360,10894,10798,10693,15360,10822,10733,10629,15360,10894,10798,10685,15360,10998,10902,10790,15360,11015,10918,10806,15360,10950,10854,10741,15360,10950,10846,10741,15360,10934,10838,10733,15360,10942,10846,10749,15360,10910,10822,10725,15360,10846,10758,10653,15360,10878,10790,10685,15360,10894,10798,10701,15360,10862,10774,10669,15360,10814,10725,10621,15360,10846,10758,10645,15360,10870,10774,10661,15360,10870,10774,10677,15360,10878,10790,10693,15360,10878,10782,10677,15360,10830,10741,10637,15360,10870,10782,10677,15360,10966,10870,10766,15360,11015,10918,10814,15360,10910,10814,10701,15360,10942,10846,10725,15360,10950,10846,10725,15360,10942,10838,10725,15360,10934,10830,10701,15360,10910,10798,10677,15360,10886,10782,10653,15360,10838,10733,10597,15360,10902,10806,10669,15360,10830,10733,10613,15360,10838,10741,10621,15360,10838,10741,10621,15360,10894,10798,10669,15360,10934,10830,10685,15360,10886,10790,10669,15360,10902,10806,10685,15360,10854,10749,10637,15360]);function Vyt(){let t=document.createElement("div");return t.setAttribute("style","height: 1in; visibility: hidden; position: absolute; margin: 0; padding: 0;"),document.body.appendChild(t),.0254/t.clientHeight}var pYt={file:1,m:1,mm:.001,cm:.01,ft:.3048,in:.0254,pt:Vyt()},zyt={file:"m",m:"m",mm:"mm",cm:"cm",ft:"ft",in:"in",pt:"pt"},jyt=t=>t===2?"\xB2":t===3?"\xB3":"",PB=(t,r=1)=>zyt[t]+jyt(r);var jC=class{static getCameraPositionByBboxAndView(r,e,i,n,s){let a=jC.getCameraDirectionByView(e);return this.getCameraPositionByBboxAndDirection(r,i,n,s,a)}static getCameraPositionByBboxAndDirection(r,e,i,n,s){if(r.isEmpty()||!n)return;let a=new A,o=new A,l=new A(0,1,0);r.getSize(o),r.getCenter(a);let c=(o.x+o.y+o.z)/3*1.5,u,h;if(!s||s!=null&&s.equals(new A))u=new A(a.x+c,a.y+c/1.5,a.z+c),h=u.clone().sub(a);else{let y=new A(c,c/1.5,c).length();h=new A(-s.x,-s.y,-s.z).normalize().multiplyScalar(y),u=h.clone().add(a)}c=h.length(),h=h.normalize();let p=new Ue;p.lookAt(u,a,l);let d=new Ue;d.makeTranslation(-u.x,-u.y,-u.z);let f=r.clone().applyMatrix4(d).applyMatrix4(p.invert()).applyMatrix4(n),m=Math.max(Math.abs(f.max.x),Math.abs(f.min.x)),g=Math.max(Math.abs(f.max.y),Math.abs(f.min.y));c*=Math.sqrt(Math.pow(m,2)+Math.pow(g,2))*1.1,u=h.multiplyScalar(c).add(a),i.set(a.x,a.y,a.z),e.set(u.x,u.y,u.z)}static getCameraDirectionByView(r){let e=new A(1,0,0);return r==="Top"?e.set(0,-1,0):r==="Bottom"?e.set(0,1,0):r==="Front"?e.set(0,0,-1):r==="Back"?e.set(0,0,1):r==="Left"?e.set(1,0,0):r==="Right"&&e.set(-1,0,0),e}static sleep(r){return ot(this,null,function*(){let e;return new Promise(i=>{e=setTimeout(()=>{i("")},r)}).then(()=>{clearTimeout(e)})})}static twinkle(r,e=500){return ot(this,null,function*(){let i=jC.twinklingObjectIds;i[r.id]||(i[r.id]=!0,r.visible=!r.visible,yield this.sleep(e),r.visible=!r.visible,yield this.sleep(e),r.visible=!r.visible,yield this.sleep(e),r.visible=!r.visible,yield this.sleep(e),r.visible=!r.visible,yield this.sleep(e),r.visible=!r.visible,delete i[r.id])})}},bs=jC;bs.twinklingObjectIds={};var Wyt=!1,po=class extends jo{constructor(e){super();this.DEFAULT_LINE_WIDTH=1;this.DEFAULT_STROKE_STYLE="#000000";this.DEFAULT_FILL_STYLE="#000000";this.lineWidth=this.DEFAULT_LINE_WIDTH;this.lineColor=this.DEFAULT_STROKE_STYLE;this.fillColor=this.DEFAULT_FILL_STYLE;this.x=0;this.y=0;this.points=[];this.userData={};this.width=0;this.height=0;this.tolerance=1;this.visible=!0;this.selected=!1;this.needsFrustumCulled=!0;this.editPointSize=3;this.editPointColor="#ffffff";this.matrix=new Ue;this.id=e||St.guid()}setTolerance(e){this.tolerance=e}render(e,i){this.ctx=e,this.draw(e,i),this.selected&&this.drawSelect(e,i),Wyt&&(this.drawBounds(e,i),this.drawCenter(e,i))}getData(){return{id:this.id,points:this.points.map(e=>[e.x,e.y]),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.getClassType()}}setData(e){this.id=e.id,this.setLineWidth(e.lineWidth),this.setLineColor(e.lineColor),this.setFillColor(e.fillColor)}getVertexs(){let e=new A(this.x,this.y,0),i=new A(this.x+this.width,this.y,0),n=new A(this.x+this.width,this.y+this.height,0),s=new A(this.x,this.y+this.height,0);return[e,i,n,s]}setLineWidth(e){this.lineWidth=e||this.DEFAULT_LINE_WIDTH}setLineColor(e){this.lineColor=e||this.DEFAULT_STROKE_STYLE}setFillColor(e){this.fillColor=e||this.DEFAULT_FILL_STYLE}isSelected(){return this.selected}getCenter(){return this.getBounds().getCenter(new A)}transToScreenCoord(e,i){return this.ctx?Mr.worldPosition2ScreenPoint(e,i,this.ctx.canvas):new le}drawBounds(e,i){let{min:n,max:s}=this.getBounds(),a=[],o=(l,c,u)=>a.push(new A(l,c,u));o(s.x,s.y,s.z),o(n.x,s.y,s.z),o(n.x,n.y,s.z),o(s.x,n.y,s.z),o(s.x,s.y,n.z),o(n.x,s.y,n.z),o(n.x,n.y,n.z),o(s.x,n.y,n.z),o(n.x,s.y,s.z),o(n.x,n.y,s.z),o(s.x,s.y,s.z),o(s.x,n.y,s.z),o(s.x,s.y,n.z),o(s.x,n.y,n.z),o(n.x,s.y,n.z),o(n.x,n.y,n.z),o(n.x,s.y,s.z),o(n.x,s.y,n.z),o(s.x,s.y,s.z),o(s.x,s.y,n.z),o(n.x,n.y,s.z),o(n.x,n.y,n.z),o(s.x,n.y,s.z),o(s.x,n.y,n.z),e.save(),e.strokeStyle="yellow",e.beginPath(),a.forEach((l,c)=>{let u=this.transToScreenCoord(l,i);c%2===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath(),e.stroke(),e.restore()}drawCenter(e,i){let n=this.transToScreenCoord(this.getCenter(),i);e.save(),e.fillStyle="yellow",e.beginPath(),e.arc(n.x,n.y,5,0,Math.PI*2),e.closePath(),e.fill(),e.restore()}getBounds(){let e=this.getVertexs();return new Ot().setFromPoints(e)}};var $g=(i=>(i.LayoutChanged="LayoutChanged",i.RenderAfter="RenderAfter",i.CameraChanged="CameraChanged",i))($g||{});var Kpe={},Dr=class extends jo{constructor(e){super();this.drawableLists=[];this.frustum=new eo;this.projScreenMatrix=new Ue;this.viewer=e,this.init()}static _registerDrawableClass(e){Kpe[e.prototype.getClassType()]=e}static createDrawable(e){let i=Kpe[e.type];if(!i)throw new Error(`Invalid drawable type: ${i}`);let n=e.points.map(a=>new A(a[0],a[1],a[2]||0)),s=new i(e.id,n);return s.setData(e),s}get container(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}getPixelSize(e,i){let{clientWidth:n,clientHeight:s}=this.container,a=0;if(i.type==="OrthographicCamera"){let o=i;a=e*Math.max(o.right-o.left,o.top-o.bottom)/o.zoom/Math.max(n,s)}else if(i.type==="PerspectiveCamera"){let o=i,l=this.viewer.cameraCfg,c=l&&St.arrayToVector3(l.eye),u=l&&St.arrayToVector3(l.look),h=c.distanceTo(u)*Math.tan(o.fov/2*Math.PI/180);a=2*e*h/s}return a}init(){this.initCanvas(),this.viewer.addEventListener("RenderAfter",()=>{this.projScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),this.frustum.setFromProjectionMatrix(this.projScreenMatrix),this.render()})}initCanvas(){let e=this.canvas=document.createElement("canvas"),i=this.viewer.viewerContainer;e.classList.add("overlay-renderer"),e.style.pointerEvents="none",e.style.position="absolute",e.style.left="0px",e.style.top="0px",e.style.userSelect="none",this.context=e.getContext("2d",{willReadFrequently:!0});let{clientWidth:n,clientHeight:s}=i;this.setSize(n,s),i.appendChild(e)}toHighDpr(e,i,n){let s=Math.max(window.devicePixelRatio||1,1),a=this.canvas;return a.width=i*s,a.height=n*s,e.scale(s,s),a.style.width=`${i}px`,a.style.height=`${n}px`,e}clearCanvas(){var e,i,n;(n=this.context)==null||n.clearRect(0,0,(e=this.canvas)==null?void 0:e.width,(i=this.canvas)==null?void 0:i.height)}addDrawableList(e){this.drawableLists.push(e)}render(){this.clearCanvas();let e=this.getSortedDrawables(),i=new zi;for(let n=0;n{e.push(...Array.from(i.getDrawables().values()))}),e.sort((i,n)=>n.getCenter().distanceTo(this.camera.position)-i.getCenter().distanceTo(this.camera.position)),e}getDrawablesByPosition(e,i){let n=this.getSortedDrawables().reverse(),s=[];for(let a=0;ai.clear()),this.drawableLists=[],this.canvas&&((e=this.viewer.viewerContainer)==null||e.removeChild(this.canvas),this.canvas=void 0)}};var Hp=class{constructor(r){this.drawableMap=new Map;this.category=r}addDrawable(r){this.drawableMap.set(r.id,r)}updateDrawable(r,e){r.setData(e)}removeDrawable(r){this.drawableMap.delete(r.id)}getDrawableById(r){return this.drawableMap.get(r)}clear(){this.drawableMap.clear()}getDrawables(){return this.drawableMap}getDrawableDatas(){return Array.from(this.drawableMap).map(([r,e])=>e.getData())}setDrawableDatas(r){for(let e=0;e{let a=this.transToScreenCoord(s,i);e.moveTo(a.x,a.y),e.arc(a.x,a.y,this.editPointSize,0,Math.PI*2)}),e.closePath(),e.fill(),e.restore()}setEditPointSize(e){this.editPointSize=e}setEditPointColor(e){this.editPointColor=e}getCenter(){return this.getBounds().getCenter(new A)}isPointInPath(e){let i=this.getVertexs().map(n=>new le(n.x,n.y));return Wt.isPointInPolygon(new le(e.x,e.y),i,!0)}setData(e){super.setData(e),this.update(e.points.map(i=>new A(i[0],i[1],0)))}translate(e,i){let n=new A(e,i,0);return this.points.forEach(s=>s.add(n)),this.update(this.points),this}rotate(){return this}scale(){return this}};var fo=(u=>(u.Arrow="ArrowMarkup",u.Circle="CircleMarkup",u.CloudLine="CloudLineMarkup",u.CloudLineRectangle="CloudRectMarkup",u.Dot="DotMarkup",u.Ellipse="EllipseMarkup",u.PolyLine="PolylineMarkup",u.Rectangle="RectMarkup",u.Text="TextMarkup",u.X="XMarkup",u))(fo||{});var NB=class extends jn{constructor(e,i){super(e);this.type="ArrowMarkup";this.update(i)}draw(e,i){let n=this.points.map(s=>this.transToScreenCoord(s,i));this.drawArrowLine(e,n),this.drawArrowHead(e,n[0],n[1],this.lineWidth+10,this.lineWidth+20)}drawArrowLine(e,i){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor;let[n,s]=i,a=new le().subVectors(s,n).normalize();e.beginPath(),e.moveTo(n.x,n.y);let o=s.clone().sub(a.multiplyScalar(this.lineWidth+5));e.lineTo(o.x,o.y),e.closePath(),e.stroke(),e.restore()}drawArrowHead(e,i,n,s,a){let o=Math.atan2(i.y-n.y,i.x-n.x)*180/Math.PI,l=(o+s)*Math.PI/180,c=(o-s)*Math.PI/180,u=a*Math.cos(l),h=a*Math.sin(l),p=a*Math.cos(c),d=a*Math.sin(c),f=new le(n.x+u,n.y+h),m=new le(n.x+p,n.y+d);e.save(),e.fillStyle=this.lineColor,e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(f.x,f.y),e.lineTo(m.x,m.y),e.closePath(),e.fill(),e.restore()}getVertexs(){return this.points}update(e){let[i,n]=e;return this.points=e,this.x=Math.min(i.x,n.x),this.y=Math.min(i.y,n.y),this.width=Math.abs(n.x-i.x),this.height=Math.abs(n.y-i.y),this}isPointInPath(e){return Wt.isPointOnLineSegments(e,this.points,this.tolerance)}getClassType(){return"ArrowMarkup"}};Dr._registerDrawableClass(NB);var LB=class extends jn{constructor(e,i){super(e);this.radius=1;this.type="CircleMarkup";this.update(i)}draw(e,i){let[n,s]=this.points.map(a=>this.transToScreenCoord(a,i));this.radius=new le().subVectors(s,n).length(),e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath(),e.arc(n.x,n.y,this.radius,0,Math.PI*2),e.closePath(),e.stroke(),e.restore()}update(e){let[i,n]=e,s=new A().subVectors(n,i).length();return this.width=s*2,this.height=s*2,this.x=i.x-this.width/2,this.y=i.y-this.height/2,this.points=e,this}isPointInPath(e){let[i,n]=this.points,s=new A().subVectors(i,n).length();return Math.abs(e.distanceTo(i)-s)<=this.tolerance*2}getClassType(){return"CircleMarkup"}};Dr._registerDrawableClass(LB);var qyt=new Ot,Up=class extends jn{constructor(e,i){super(e);this.type="CloudLineMarkup";this.update(i)}draw(e,i){let n=this.points,s=[];e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath();for(let a=0;athis.transToScreenCoord(o,i)),a=new le().lerpVectors(n,s,.5);this.radiusX=Math.abs(s.x-n.x)/2,this.radiusY=Math.abs(s.y-n.y)/2,e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor,e.beginPath(),e.ellipse(a.x,a.y,this.radiusX,this.radiusY,0,0,Math.PI*2),e.closePath(),e.stroke(),e.restore()}update(e){let[i,n]=e;return this.x=Math.min(i.x,n.x),this.y=Math.min(i.y,n.y),this.width=Math.abs(n.x-i.x),this.height=Math.abs(n.y-i.y),this.points=e,this}isPointInPath(e){let[i,n]=this.points,s=new A().lerpVectors(i,n,.5),a=Math.abs(n.x-i.x)/2,o=Math.abs(n.y-i.y)/2,l=Math.pow(e.x-s.x,2)/(a*a),c=Math.pow(e.y-s.y,2)/(o*o);return Math.abs(l+c-1)<=.1}getClassType(){return"EllipseMarkup"}};Dr._registerDrawableClass(UB);var BB=class extends jn{constructor(e,i){super(e);this.type="PolylineMarkup";this.update(i)}draw(e,i){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.fillStyle=this.fillColor;let n=this.points;e.beginPath(),n.forEach((s,a)=>{let o=this.transToScreenCoord(s,i);a===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.stroke(),e.restore()}isPointInPath(e){let i=this.points,n=[];for(let s=0;s{let o=this.transToScreenCoord(s,i);a===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.closePath(),e.stroke(),e.restore()}update(e){let[i,n]=e;return this.x=Math.min(i.x,n.x),this.y=Math.min(i.y,n.y),this.width=Math.abs(n.x-i.x),this.height=Math.abs(n.y-i.y),this.points=e,this}isPointInPath(e){let i=this.getVertexs(),n=[];for(let s=0;sthis.textWidth&&(this.textWidth=l),s.push({lineWidth:l,lineText:o})}return this.textRow!==s.length&&(this.y-=(s.length-1)*this.fontSize),s.reverse()}setFontSize(e){this.fontSize=e}update(e){let i=e[0];return this.x=i.x,this.y=i.y,this.points=[i],this.textRow=1,this}setData(e){super.setData(e),this.text=e.text,this.setFontSize(e.fontSize)}updateText(e){this.text=e}getData(){return{id:this.id,points:this.points.map(e=>[e.x,e.y]),text:this.text,lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize,type:this.getClassType()}}getClassType(){return"TextMarkup"}};Dr._registerDrawableClass(GB);var VB=class extends jn{constructor(e,i){super(e);this.type="XMarkup";this.update(i)}draw(e,i){e.save(),e.lineWidth=this.lineWidth,e.strokeStyle=this.lineColor,e.beginPath();let[n,s,a,o]=this.getVertexs().map(l=>this.transToScreenCoord(l,i));e.moveTo(n.x,n.y),e.lineTo(a.x,a.y),e.moveTo(s.x,s.y),e.lineTo(o.x,o.y),e.closePath(),e.stroke(),e.restore()}isPointInPath(e){let[i,n,s,a]=this.getVertexs();return Wt.isPointOnLineSegments(e,[i,s,n,a],.1)}update(e){let[i,n]=e;return this.points=e,this.x=Math.min(i.x,n.x),this.y=Math.min(i.y,n.y),this.width=Math.abs(n.x-i.x),this.height=Math.abs(n.y-i.y),this}getClassType(){return"XMarkup"}};Dr._registerDrawableClass(VB);var Jpe={type:"change"},zB={type:"start"},Qpe={type:"end"},cT=class extends Ra{constructor(r,e){super(),this.object=r,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new A,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:bi.ROTATE,MIDDLE:bi.DOLLY,RIGHT:bi.PAN},this.touches={ONE:ao.ROTATE,TWO:ao.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return o.phi},this.getAzimuthalAngle=function(){return o.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(ye){ye.addEventListener("keydown",me),this._domElementKeyEvents=ye},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(Jpe),i.update(),s=n.NONE},this.update=function(){let ye=new A,Re=new Or().setFromUnitVectors(r.up,new A(0,1,0)),ut=Re.clone().invert(),vt=new A,Et=new Or,Ct=2*Math.PI;return function(){let cr=i.object.position;ye.copy(cr).sub(i.target),ye.applyQuaternion(Re),o.setFromVector3(ye),i.autoRotate&&s===n.NONE&&w(P()),i.enableDamping?(o.theta+=l.theta*i.dampingFactor,o.phi+=l.phi*i.dampingFactor):(o.theta+=l.theta,o.phi+=l.phi);let Xt=i.minAzimuthAngle,gr=i.maxAzimuthAngle;return isFinite(Xt)&&isFinite(gr)&&(Xt<-Math.PI?Xt+=Ct:Xt>Math.PI&&(Xt-=Ct),gr<-Math.PI?gr+=Ct:gr>Math.PI&&(gr-=Ct),Xt<=gr?o.theta=Math.max(Xt,Math.min(gr,o.theta)):o.theta=o.theta>(Xt+gr)/2?Math.max(Xt,o.theta):Math.min(gr,o.theta)),o.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,o.phi)),o.makeSafe(),o.radius*=c,o.radius=Math.max(i.minDistance,Math.min(i.maxDistance,o.radius)),i.enableDamping===!0?i.target.addScaledVector(u,i.dampingFactor):i.target.add(u),ye.setFromSpherical(o),ye.applyQuaternion(ut),cr.copy(i.target).add(ye),i.object.lookAt(i.target),i.enableDamping===!0?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,u.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),u.set(0,0,0)),c=1,h||vt.distanceToSquared(i.object.position)>a||8*(1-Et.dot(i.object.quaternion))>a?(i.dispatchEvent(Jpe),vt.copy(i.object.position),Et.copy(i.object.quaternion),h=!1,!0):!1}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",xe),i.domElement.removeEventListener("pointerdown",nt),i.domElement.removeEventListener("pointercancel",_e),i.domElement.removeEventListener("wheel",re),i.domElement.removeEventListener("pointermove",bt),i.domElement.removeEventListener("pointerup",mt),i._domElementKeyEvents!==null&&i._domElementKeyEvents.removeEventListener("keydown",me)};let i=this,n={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},s=n.NONE,a=1e-6,o=new Pc,l=new Pc,c=1,u=new A,h=!1,p=new le,d=new le,f=new le,m=new le,g=new le,y=new le,E=new le,b=new le,x=new le,S=[],D={};function P(){return 2*Math.PI/60/60*i.autoRotateSpeed}function _(){return Math.pow(.95,i.zoomSpeed)}function w(ye){l.theta-=ye}function F(ye){l.phi-=ye}let X=function(){let ye=new A;return function(ut,vt){ye.setFromMatrixColumn(vt,0),ye.multiplyScalar(-ut),u.add(ye)}}(),H=function(){let ye=new A;return function(ut,vt){i.screenSpacePanning===!0?ye.setFromMatrixColumn(vt,1):(ye.setFromMatrixColumn(vt,0),ye.crossVectors(i.object.up,ye)),ye.multiplyScalar(ut),u.add(ye)}}(),he=function(){let ye=new A;return function(ut,vt){let Et=i.domElement;if(i.object.isPerspectiveCamera){let Ct=i.object.position;ye.copy(Ct).sub(i.target);let Dt=ye.length();Dt*=Math.tan(i.object.fov/2*Math.PI/180),X(2*ut*Dt/Et.clientHeight,i.object.matrix),H(2*vt*Dt/Et.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(X(ut*(i.object.right-i.object.left)/i.object.zoom/Et.clientWidth,i.object.matrix),H(vt*(i.object.top-i.object.bottom)/i.object.zoom/Et.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function C(ye){i.object.isPerspectiveCamera?c/=ye:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom*ye)),i.object.updateProjectionMatrix(),h=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function N(ye){i.object.isPerspectiveCamera?c*=ye:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/ye)),i.object.updateProjectionMatrix(),h=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function k(ye){p.set(ye.clientX,ye.clientY)}function G(ye){E.set(ye.clientX,ye.clientY)}function U(ye){m.set(ye.clientX,ye.clientY)}function j(ye){d.set(ye.clientX,ye.clientY),f.subVectors(d,p).multiplyScalar(i.rotateSpeed);let Re=i.domElement;w(2*Math.PI*f.x/Re.clientHeight),F(2*Math.PI*f.y/Re.clientHeight),p.copy(d),i.update()}function ee(ye){b.set(ye.clientX,ye.clientY),x.subVectors(b,E),x.y>0?C(_()):x.y<0&&N(_()),E.copy(b),i.update()}function ae(ye){g.set(ye.clientX,ye.clientY),y.subVectors(g,m).multiplyScalar(i.panSpeed),he(y.x,y.y),m.copy(g),i.update()}function se(ye){ye.deltaY<0?N(_()):ye.deltaY>0&&C(_()),i.update()}function ue(ye){let Re=!1;switch(ye.code){case i.keys.UP:ye.ctrlKey||ye.metaKey||ye.shiftKey?F(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):he(0,i.keyPanSpeed),Re=!0;break;case i.keys.BOTTOM:ye.ctrlKey||ye.metaKey||ye.shiftKey?F(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):he(0,-i.keyPanSpeed),Re=!0;break;case i.keys.LEFT:ye.ctrlKey||ye.metaKey||ye.shiftKey?w(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):he(i.keyPanSpeed,0),Re=!0;break;case i.keys.RIGHT:ye.ctrlKey||ye.metaKey||ye.shiftKey?w(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):he(-i.keyPanSpeed,0),Re=!0;break}Re&&(ye.preventDefault(),i.update())}function ve(){if(S.length===1)p.set(S[0].pageX,S[0].pageY);else{let ye=.5*(S[0].pageX+S[1].pageX),Re=.5*(S[0].pageY+S[1].pageY);p.set(ye,Re)}}function be(){if(S.length===1)m.set(S[0].pageX,S[0].pageY);else{let ye=.5*(S[0].pageX+S[1].pageX),Re=.5*(S[0].pageY+S[1].pageY);m.set(ye,Re)}}function de(){let ye=S[0].pageX-S[1].pageX,Re=S[0].pageY-S[1].pageY,ut=Math.sqrt(ye*ye+Re*Re);E.set(0,ut)}function we(){i.enableZoom&&de(),i.enablePan&&be()}function Fe(){i.enableZoom&&de(),i.enableRotate&&ve()}function je(ye){if(S.length==1)d.set(ye.pageX,ye.pageY);else{let ut=gt(ye),vt=.5*(ye.pageX+ut.x),Et=.5*(ye.pageY+ut.y);d.set(vt,Et)}f.subVectors(d,p).multiplyScalar(i.rotateSpeed);let Re=i.domElement;w(2*Math.PI*f.x/Re.clientHeight),F(2*Math.PI*f.y/Re.clientHeight),p.copy(d)}function Oe(ye){if(S.length===1)g.set(ye.pageX,ye.pageY);else{let Re=gt(ye),ut=.5*(ye.pageX+Re.x),vt=.5*(ye.pageY+Re.y);g.set(ut,vt)}y.subVectors(g,m).multiplyScalar(i.panSpeed),he(y.x,y.y),m.copy(g)}function dt(ye){let Re=gt(ye),ut=ye.pageX-Re.x,vt=ye.pageY-Re.y,Et=Math.sqrt(ut*ut+vt*vt);b.set(0,Et),x.set(0,Math.pow(b.y/E.y,i.zoomSpeed)),C(x.y),E.copy(b)}function Be(ye){i.enableZoom&&dt(ye),i.enablePan&&Oe(ye)}function ke(ye){i.enableZoom&&dt(ye),i.enableRotate&&je(ye)}function nt(ye){i.enabled!==!1&&(S.length===0&&(i.domElement.setPointerCapture(ye.pointerId),i.domElement.addEventListener("pointermove",bt),i.domElement.addEventListener("pointerup",mt)),Ce(ye),ye.pointerType==="touch"?z(ye):J(ye))}function bt(ye){i.enabled!==!1&&(ye.pointerType==="touch"?Y(ye):$(ye))}function mt(ye){Ge(ye),S.length===0&&(i.domElement.releasePointerCapture(ye.pointerId),i.domElement.removeEventListener("pointermove",bt),i.domElement.removeEventListener("pointerup",mt)),i.dispatchEvent(Qpe),s=n.NONE}function _e(ye){Ge(ye)}function J(ye){let Re;switch(ye.button){case 0:Re=i.mouseButtons.LEFT;break;case 1:Re=i.mouseButtons.MIDDLE;break;case 2:Re=i.mouseButtons.RIGHT;break;default:Re=-1}switch(Re){case bi.DOLLY:if(i.enableZoom===!1)return;G(ye),s=n.DOLLY;break;case bi.ROTATE:if(ye.ctrlKey||ye.metaKey||ye.shiftKey){if(i.enablePan===!1)return;U(ye),s=n.PAN}else{if(i.enableRotate===!1)return;k(ye),s=n.ROTATE}break;case bi.PAN:if(ye.ctrlKey||ye.metaKey||ye.shiftKey){if(i.enableRotate===!1)return;k(ye),s=n.ROTATE}else{if(i.enablePan===!1)return;U(ye),s=n.PAN}break;default:s=n.NONE}s!==n.NONE&&i.dispatchEvent(zB)}function $(ye){switch(s){case n.ROTATE:if(i.enableRotate===!1)return;j(ye);break;case n.DOLLY:if(i.enableZoom===!1)return;ee(ye);break;case n.PAN:if(i.enablePan===!1)return;ae(ye);break}}function re(ye){i.enabled===!1||i.enableZoom===!1||s!==n.NONE||(ye.preventDefault(),i.dispatchEvent(zB),se(ye),i.dispatchEvent(Qpe))}function me(ye){i.enabled===!1||i.enablePan===!1||ue(ye)}function z(ye){switch(Ze(ye),S.length){case 1:switch(i.touches.ONE){case ao.ROTATE:if(i.enableRotate===!1)return;ve(),s=n.TOUCH_ROTATE;break;case ao.PAN:if(i.enablePan===!1)return;be(),s=n.TOUCH_PAN;break;default:s=n.NONE}break;case 2:switch(i.touches.TWO){case ao.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;we(),s=n.TOUCH_DOLLY_PAN;break;case ao.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Fe(),s=n.TOUCH_DOLLY_ROTATE;break;default:s=n.NONE}break;default:s=n.NONE}s!==n.NONE&&i.dispatchEvent(zB)}function Y(ye){switch(Ze(ye),s){case n.TOUCH_ROTATE:if(i.enableRotate===!1)return;je(ye),i.update();break;case n.TOUCH_PAN:if(i.enablePan===!1)return;Oe(ye),i.update();break;case n.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Be(ye),i.update();break;case n.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;ke(ye),i.update();break;default:s=n.NONE}}function xe(ye){i.enabled!==!1&&ye.preventDefault()}function Ce(ye){S.push(ye)}function Ge(ye){delete D[ye.pointerId];for(let Re=0;Ren.far&&(r=r.clone().sub(e).normalize().multiplyScalar(n.far*.9),console.warn("[BimViewer] camera could be too far to see the object!"))}let a=(h,p)=>{n.lookAt(p),n.position.set(h.x,h.y,h.z),s.target.set(p.x,p.y,p.z),s.update()},o=n.position.clone(),l=s.target.clone(),c=this.flyDuration,u=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval(()=>{let h=Date.now()-u;h>c&&(h=c);let p=(m,g,y)=>{let E=m.x+(g.x-m.x)*y,b=m.y+(g.y-m.y)*y,x=m.z+(g.z-m.z)*y;return new A(E,b,x)},d=p(o,r,h/c),f=p(l,e,h/c);a(d,f),h>=c&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0,i&&i())},10)}lookTo(r){let e=this.camera,i=this.controls;if(!e||!i)return;let n=e.position,s=i.target.distanceTo(n),a=r.normalize().multiplyScalar(s),o=new A(n.x+a.x,n.y+a.y,n.z+a.z);this.flyTo(n,o)}startAutoRotate(){let r=this.camera,e=this.controls;if(!r||!e)return;e.autoRotate=!0;let i=new A;r.getWorldPosition(i);let n=e.target;if(n.y===i.y)return;let s=n.y-i.y,a=50,l=1500/a,c=s/a;for(let u=0;u{let h=e.target.y-c;e.target.setY(h),e.update()},u*l)}delayAutoRotate(){this.autoRotateRemainingTime=5e3,this.controls&&(this.controls.autoRotate=!1)}startToRotate(r){let i=Date.now()-this.rotateIntervalStartTime;this.rotateIntervalStartTime=Date.now(),!(this.rotateInterval&&i<100)&&(this.rotateInterval&&clearInterval(this.rotateInterval),this.rotateInterval=setInterval(()=>{if(Date.now()-this.rotateIntervalStartTime>=100){clearInterval(this.rotateInterval),this.rotateInterval=void 0;return}let s=.3;r.code==="ArrowLeft"||r.code==="ArrowRight"?this.rotateLeftOrRight(s,r.code==="ArrowLeft"):(r.code==="ArrowUp"||r.code==="ArrowDown")&&this.rotateUpOrDown(s,r.code==="ArrowUp")},1))}rotateLeftOrRight(r,e=!0){let i=this.controls;if(!this.camera||!i)return;let n=this.camera.position,s=i.target,a=s.clone(),o=Math.PI*r/180;e&&(o=-o),a.x=(s.x-n.x)*Math.cos(o)-(s.z-n.z)*Math.sin(o)+n.x,a.z=(s.z-n.z)*Math.cos(o)+(s.x-n.x)*Math.sin(o)+n.z,this.camera.lookAt(a),i.target=a,i.update()}rotateUpOrDown(r,e=!0){let i=this.controls;if(!this.camera||!i)return;let n=this.camera.position,s=i.target,a=s.clone(),o=Math.PI*r/180,c=new A(s.x-n.x,s.y-n.y,s.z-n.z).length(),u=s.y-n.y;e||(o=-o);let h=Math.asin(u/c)+o;if(h<-Math.PI/2||h>Math.PI/2)return;let p=Math.sin(h)*c;a.y=s.y+(p-u),i.target=a,i.update()}};var qC=class{constructor(r){this.object=r}instantiate(){let r=Date.now();this.instantiateInner(this.object),console.log(`[Inst] instantiate() costed ${(Date.now()-r)/1e3}s`)}instantiateInner(r){if(!r.children||r.children.length===0)return;let e=r.children.length,i={},n=[];for(let o=0;o0||!l.geometry)continue;let c=!1,u=Object.values(i);for(let h=u.length-1;h>=0;--h){let p=u[h].indexes[0],d=r.children[p];if(this.geometryEquals(l.geometry,d.geometry)&&Cs.materialsEquals(l.material,d.material)){i[p]||(i[p]={indexes:[p]},this.removeFromArray(n,p)),i[p].indexes.push(o),c=!0;break}}for(let h=n.length-1;!c&&h>=0;--h){let p=n[h],d=r.children[p];if(this.geometryEquals(l.geometry,d.geometry)&&Cs.materialsEquals(l.material,d.material)){i[p]||(i[p]={indexes:[p]},this.removeFromArray(n,p)),i[p].indexes.push(o),c=!0;break}}c||n.push(o)}if(Object.keys(i).length<=0)return;let s=[],a=[];Object.values(i).forEach(o=>{let l=o.indexes;a.push(...l);let c=r.children[l[0]],u=c.material;if(u instanceof Gr)u=u.clone();else if(Array.isArray(u)){let p=[];u.forEach(d=>p.push(d.clone())),u=p}let h=new tn(c.geometry,u,l.length);h.name=`[Instanced] ${c.name}`;for(let p=0;pl-o),a.forEach(o=>r.remove(r.children[o])),s.forEach(o=>{o.parent=r,r.children.push(o)}),r.updateMatrix(),console.log(`[Inst] ${a.length}(out of ${e}) objects instanced to ${s.length} InstancedMesh`)}removeFromArray(r,e){for(let i=r.length-1;i>=0;--i)if(r[i]===e){r.splice(i,1);return}}geometryEquals(r,e){return Wt.geometryEquals(r,e)}};var uT=class{constructor(){this.TIMEOUT="timeout";this.INTERVAL="interval";this.timeoutMap={};this.intervalMap={}}run(r=this.INTERVAL,e,i=16.7){let n=Date.now,s=n(),a=s,o=Symbol(""),l=()=>{this.setIdMap(o,r,l),a=n(),a-s>=i&&(r===this.intervalMap&&(s=n(),a=s),e(),r===this.TIMEOUT&&this.clearTimeout(o))};return this.setIdMap(o,r,l),o}setIdMap(r,e,i){let n=requestAnimationFrame(i);e===this.INTERVAL?this.intervalMap[r]=n:e===this.TIMEOUT&&(this.timeoutMap[r]=n)}setTimeout(r,e){return this.run(this.TIMEOUT,r,e)}clearTimeout(r){cancelAnimationFrame(this.timeoutMap[r])}setInterval(r,e){return this.run(this.INTERVAL,r,e)}clearInterval(r){cancelAnimationFrame(this.intervalMap[r])}};var qB=Un(ede(),1),Df=class{constructor(r,e){this.endian=e&&e==="big"?"big":"little",this.position=0,this.data=new DataView(r)}readAsciiString(r){if(this.data.byteLength256||k.colormap_size!==24||k.colormap_type!==1)&&console.error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case d:case f:case g:case y:k.colormap_type&&console.error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case h:console.error("THREE.TGALoader: No data.");default:console.error('THREE.TGALoader: Invalid type "%s".',k.image_type)}(k.width<=0||k.height<=0)&&console.error("THREE.TGALoader: Invalid image size."),k.pixel_size!==8&&k.pixel_size!==16&&k.pixel_size!==24&&k.pixel_size!==32&&console.error('THREE.TGALoader: Invalid pixel size "%s".',k.pixel_size)}function i(k,G,U,j,ee){let ae,se,ue=U.pixel_size>>3,ve=U.width*U.height*ue;if(G&&(se=ee.subarray(j,j+=U.colormap_length*(U.colormap_size>>3))),k){ae=new Uint8Array(ve);let be,de,we,Fe=0,je=new Uint8Array(ue);for(;Fe>7,k[(de+Fe*we)*4+1]=(ve&992)>>2,k[(de+Fe*we)*4+2]=(ve&31)<<3,k[(de+Fe*we)*4+3]=ve&32768?0:255;return k}function a(k,G,U,j,ee,ae,se,ue){let ve=0,be,de,we=F.width;for(de=G;de!==j;de+=U)for(be=ee;be!==se;be+=ae,ve+=3)k[(be+we*de)*4+3]=255,k[(be+we*de)*4+2]=ue[ve+0],k[(be+we*de)*4+1]=ue[ve+1],k[(be+we*de)*4+0]=ue[ve+2];return k}function o(k,G,U,j,ee,ae,se,ue){let ve=0,be,de,we=F.width;for(de=G;de!==j;de+=U)for(be=ee;be!==se;be+=ae,ve+=4)k[(be+we*de)*4+2]=ue[ve+0],k[(be+we*de)*4+1]=ue[ve+1],k[(be+we*de)*4+0]=ue[ve+2],k[(be+we*de)*4+3]=ue[ve+3];return k}function l(k,G,U,j,ee,ae,se,ue){let ve,be=0,de,we,Fe=F.width;for(we=G;we!==j;we+=U)for(de=ee;de!==se;de+=ae,be++)ve=ue[be],k[(de+Fe*we)*4+0]=ve,k[(de+Fe*we)*4+1]=ve,k[(de+Fe*we)*4+2]=ve,k[(de+Fe*we)*4+3]=255;return k}function c(k,G,U,j,ee,ae,se,ue){let ve=0,be,de,we=F.width;for(de=G;de!==j;de+=U)for(be=ee;be!==se;be+=ae,ve+=2)k[(be+we*de)*4+0]=ue[ve+0],k[(be+we*de)*4+1]=ue[ve+0],k[(be+we*de)*4+2]=ue[ve+0],k[(be+we*de)*4+3]=ue[ve+1];return k}function u(k,G,U,j,ee){let ae,se,ue,ve,be,de;switch((F.flags&E)>>b){default:case D:ae=0,ue=1,be=G,se=0,ve=1,de=U;break;case x:ae=0,ue=1,be=G,se=U-1,ve=-1,de=-1;break;case P:ae=G-1,ue=-1,be=-1,se=0,ve=1,de=U;break;case S:ae=G-1,ue=-1,be=-1,se=U-1,ve=-1,de=-1;break}if(he)switch(F.pixel_size){case 8:l(k,se,ve,de,ae,ue,be,j);break;case 16:c(k,se,ve,de,ae,ue,be,j);break;default:console.error("THREE.TGALoader: Format not supported.");break}else switch(F.pixel_size){case 8:n(k,se,ve,de,ae,ue,be,j,ee);break;case 16:s(k,se,ve,de,ae,ue,be,j);break;case 24:a(k,se,ve,de,ae,ue,be,j);break;case 32:o(k,se,ve,de,ae,ue,be,j);break;default:console.error("THREE.TGALoader: Format not supported.");break}return k}let h=0,p=1,d=2,f=3,m=9,g=10,y=11,E=48,b=4,x=0,S=1,D=2,P=3;r.length<19&&console.error("THREE.TGALoader: Not enough data to contain header.");let _=0,w=new Uint8Array(r),F={id_length:w[_++],colormap_type:w[_++],image_type:w[_++],colormap_index:w[_++]|w[_++]<<8,colormap_length:w[_++]|w[_++]<<8,colormap_size:w[_++],origin:[w[_++]|w[_++]<<8,w[_++]|w[_++]<<8],width:w[_++]|w[_++]<<8,height:w[_++]|w[_++]<<8,pixel_size:w[_++],flags:w[_++]};e(F),F.id_length+_>r.length&&console.error("THREE.TGALoader: No data."),_+=F.id_length;let X=!1,H=!1,he=!1;switch(F.image_type){case m:X=!0,H=!0;break;case p:H=!0;break;case g:X=!0;break;case d:break;case y:X=!0,he=!0;break;case f:he=!0;break}let C=new Uint8Array(F.width*F.height*4),N=i(X,H,F,_,w);return u(C,F.width,F.height,N.pixel_data,N.palettes),{data:C,width:F.width,height:F.height,flipY:!0,generateMipmaps:!0,minFilter:wa}}};var YC=class extends li{constructor(r){super(r)}load(r,e,i,n){let s=this,a=s.path===""?ks.extractUrlBase(r):s.path,o=new ci(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(r,function(l){try{e(s.parse(l,a))}catch(c){n?n(c):console.error(c),s.manager.itemError(r)}},i,n)}parse(r,e){function i(K,Z){let ce=[],oe=K.childNodes;for(let pe=0,qe=oe.length;pe0&&Z.push(new no(oe+".position",pe,qe)),et.length>0&&Z.push(new Da(oe+".quaternion",pe,et)),Ht.length>0&&Z.push(new no(oe+".scale",pe,Ht)),Z}function X(K,Z,ce){let oe,pe=!0,qe,et;for(qe=0,et=K.length;qe=0;){let oe=K[Z];if(oe.value[ce]!==null)return oe;Z--}return null}function C(K,Z,ce){for(;Z>>0)+2);switch(ce=ce.toLowerCase(),ce){case"tga":Z=Ih;break;default:Z=xh}return Z}function Ze(K){let Z=xe(K.url),ce=Z.profile.technique,oe;switch(ce.type){case"phong":case"blinn":oe=new Ts;break;case"lambert":oe=new io;break;default:oe=new or;break}oe.name=K.name||"";function pe(Mt,Ft=null){let $t=Z.profile.samplers[Mt.id],pt=null;if($t!==void 0){let qt=Z.profile.surfaces[$t.source];pt=Fe(qt.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),pt=Fe(Mt.id);if(pt!==null){let qt=Ge(pt);if(qt!==void 0){let zt=qt.load(pt),ur=Mt.extra;if(ur!==void 0&&ur.technique!==void 0&&c(ur.technique)===!1){let sr=ur.technique;zt.wrapS=sr.wrapU?gn:mn,zt.wrapT=sr.wrapV?gn:mn,zt.offset.set(sr.offsetU||0,sr.offsetV||0),zt.repeat.set(sr.repeatU||1,sr.repeatV||1)}else zt.wrapS=gn,zt.wrapT=gn;return Ft!==null&&(zt.encoding=Ft),zt}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",pt),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",Mt.id),null}let qe=ce.parameters;for(let Mt in qe){let Ft=qe[Mt];switch(Mt){case"diffuse":Ft.color&&oe.color.fromArray(Ft.color),Ft.texture&&(oe.map=pe(Ft.texture,yr));break;case"specular":Ft.color&&oe.specular&&oe.specular.fromArray(Ft.color),Ft.texture&&(oe.specularMap=pe(Ft.texture));break;case"bump":Ft.texture&&(oe.normalMap=pe(Ft.texture));break;case"ambient":Ft.texture&&(oe.lightMap=pe(Ft.texture,yr));break;case"shininess":Ft.float&&oe.shininess&&(oe.shininess=Ft.float);break;case"emission":Ft.color&&oe.emissive&&oe.emissive.fromArray(Ft.color),Ft.texture&&(oe.emissiveMap=pe(Ft.texture,yr));break}}oe.color.convertSRGBToLinear(),oe.specular&&oe.specular.convertSRGBToLinear(),oe.emissive&&oe.emissive.convertSRGBToLinear();let et=qe.transparent,Ht=qe.transparency;if(Ht===void 0&&et&&(Ht={float:1}),et===void 0&&Ht&&(et={opaque:"A_ONE",data:{color:[1,1,1,1]}}),et&&Ht)if(et.data.texture)oe.transparent=!0;else{let Mt=et.data.color;switch(et.opaque){case"A_ONE":oe.opacity=Mt[3]*Ht.float;break;case"RGB_ZERO":oe.opacity=1-Mt[0]*Ht.float;break;case"A_ZERO":oe.opacity=1-Mt[3]*Ht.float;break;case"RGB_ONE":oe.opacity=Mt[0]*Ht.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',et.opaque)}oe.opacity<1&&(oe.transparent=!0)}if(ce.extra!==void 0&&ce.extra.technique!==void 0){let Mt=ce.extra.technique;for(let Ft in Mt){let $t=Mt[Ft];switch(Ft){case"double_sided":oe.side=$t===1?wi:en;break;case"bump":oe.normalMap=pe($t.texture),oe.normalScale=new le(1,1);break}}}return oe}function gt(K){return m(Qt.materials[K],Ze)}function ye(K){let Z={name:K.getAttribute("name")};for(let ce=0,oe=K.childNodes.length;ce0?et+Mt:et;Z.inputs[Ft]={id:qe,offset:Ht},Z.stride=Math.max(Z.stride,Ht+1),et==="TEXCOORD"&&(Z.hasUV=!0);break;case"vcount":Z.vcount=a(pe.textContent);break;case"p":Z.p=a(pe.textContent);break}}return Z}function Rr(K){let Z={};for(let ce=0;ce0&&Z0&&pt.setAttribute("position",new ct(pe.array,pe.stride)),qe.array.length>0&&pt.setAttribute("normal",new ct(qe.array,qe.stride)),Mt.array.length>0&&pt.setAttribute("color",new ct(Mt.array,Mt.stride)),et.array.length>0&&pt.setAttribute("uv",new ct(et.array,et.stride)),Ht.array.length>0&&pt.setAttribute("uv2",new ct(Ht.array,Ht.stride)),Ft.array.length>0&&pt.setAttribute("skinIndex",new ct(Ft.array,Ft.stride)),$t.array.length>0&&pt.setAttribute("skinWeight",new ct($t.array,$t.stride)),oe.data=pt,oe.type=K[0].type,oe.materialKeys=qt,oe}function Kt(K,Z,ce,oe,pe=!1){let qe=K.p,et=K.stride,Ht=K.vcount;function Mt(pt){let qt=qe[pt+ce]*$t,zt=qt+$t;for(;qt4)for(let sr=1,xi=ur-2;sr<=xi;sr++){let ar=pt+et*0,Zt=pt+et*sr,ti=pt+et*(sr+1);Mt(ar),Mt(Zt),Mt(ti)}pt+=et*ur}}else for(let pt=0,qt=qe.length;pt=Z.limits.max&&(Z.static=!0),Z.middlePosition=(Z.limits.min+Z.limits.max)/2,Z}function ze(K){let Z={sid:K.getAttribute("sid"),name:K.getAttribute("name")||"",attachments:[],transforms:[]};for(let ce=0;cezt.limits.max||pt{this.decodeDracoFile(a,e).catch(n)},i,n)}decodeDracoFile(r,e,i,n){let s={attributeIDs:i||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!i};return this.decodeGeometry(r,s).then(e)}decodeGeometry(r,e){let i=JSON.stringify(e);if(YB.has(r)){let l=YB.get(r);if(l.key===i)return l.promise;if(r.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let n,s=this.workerNextTaskID++,a=r.byteLength,o=this._getWorker(s,a).then(l=>(n=l,new Promise((c,u)=>{n._callbacks[s]={resolve:c,reject:u},n.postMessage({type:"decode",id:s,taskConfig:e,buffer:r},[r])}))).then(l=>this._createGeometry(l.geometry));return o.catch(()=>!0).then(()=>{n&&s&&this._releaseTask(n,s)}),YB.set(r,{key:i,promise:o}),o}_createGeometry(r){let e=new it;r.index&&e.setIndex(new jt(r.index.array,1));for(let i=0;i{i.load(r,n,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let r=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return r?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(i=>{let n=i[0];r||(this.decoderConfig.wasmBinary=i[1]);let s=Yyt.toString(),a=["/* draco decoder */",n,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([a]))}),this.decoderPending}_getWorker(r,e){return this._initDecoder().then(()=>{if(this.workerPool.lengths._taskLoad?-1:1});let i=this.workerPool[this.workerPool.length-1];return i._taskCosts[r]=e,i._taskLoad+=e,i})}_releaseTask(r,e){r._taskLoad-=r._taskCosts[e],delete r._callbacks[e],delete r._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(r=>r._taskLoad))}dispose(){for(let r=0;r{let h=u.draco,p=new h.Decoder,d=new h.DecoderBuffer;d.Init(new Int8Array(l),l.byteLength);try{let f=e(h,p,d,c),m=f.attributes.map(g=>g.array.buffer);f.index&&m.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},m)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{h.destroy(d),h.destroy(p)}});break}};function e(a,o,l,c){let u=c.attributeIDs,h=c.attributeTypes,p,d,f=o.GetEncodedGeometryType(l);if(f===a.TRIANGULAR_MESH)p=new a.Mesh,d=o.DecodeBufferToMesh(l,p);else if(f===a.POINT_CLOUD)p=new a.PointCloud,d=o.DecodeBufferToPointCloud(l,p);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!d.ok()||p.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+d.error_msg());let m={index:null,attributes:[]};for(let g in u){let y=self[h[g]],E,b;if(c.useUniqueIDs)b=u[g],E=o.GetAttributeByUniqueId(p,b);else{if(b=o.GetAttributeId(p,a[u[g]]),b===-1)continue;E=o.GetAttribute(p,b)}m.attributes.push(n(a,o,p,g,y,E))}return f===a.TRIANGULAR_MESH&&(m.index=i(a,o,p)),a.destroy(p),m}function i(a,o,l){let u=l.num_faces()*3,h=u*4,p=a._malloc(h);o.GetTrianglesUInt32Array(l,h,p);let d=new Uint32Array(a.HEAPF32.buffer,p,u).slice();return a._free(p),{array:d,itemSize:1}}function n(a,o,l,c,u,h){let p=h.num_components(),f=l.num_points()*p,m=f*u.BYTES_PER_ELEMENT,g=s(a,u),y=a._malloc(m);o.GetAttributeDataArrayForAllPoints(l,h,g,m,y);let E=new u(a.HEAPF32.buffer,y,f).slice();return a._free(y),{name:c,array:E,itemSize:p}}function s(a,o){switch(o){case Float32Array:return a.DT_FLOAT32;case Int8Array:return a.DT_INT8;case Int16Array:return a.DT_INT16;case Int32Array:return a.DT_INT32;case Uint8Array:return a.DT_UINT8;case Uint16Array:return a.DT_UINT16;case Uint32Array:return a.DT_UINT32}}}var tde=function(t){return URL.createObjectURL(new Blob([t],{type:"text/javascript"}))},Xyt=function(t){return new Worker(t)};try{URL.revokeObjectURL(tde(""))}catch(t){tde=function(r){return"data:application/javascript;charset=UTF-8,"+encodeURI(r)},Xyt=function(r){return new Worker(r,{type:"module"})}}var Ul=Uint8Array,Cf=Uint16Array,ZB=Uint32Array,rde=new Ul([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ide=new Ul([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),$yt=new Ul([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),nde=function(t,r){for(var e=new Cf(31),i=0;i<31;++i)e[i]=r+=1<>>1|(Ui&21845)<<1,Bp=(Bp&52428)>>>2|(Bp&13107)<<2,Bp=(Bp&61680)>>>4|(Bp&3855)<<4,KB[Ui]=((Bp&65280)>>>8|(Bp&255)<<8)>>>1;var Bp,Ui,Wx=function(t,r,e){for(var i=t.length,n=0,s=new Cf(r);n>>l]=c}else for(o=new Cf(i),n=0;n>>15-t[n]);return o},qx=new Ul(288);for(Ui=0;Ui<144;++Ui)qx[Ui]=8;var Ui;for(Ui=144;Ui<256;++Ui)qx[Ui]=9;var Ui;for(Ui=256;Ui<280;++Ui)qx[Ui]=7;var Ui;for(Ui=280;Ui<288;++Ui)qx[Ui]=8;var Ui,lde=new Ul(32);for(Ui=0;Ui<32;++Ui)lde[Ui]=5;var Ui;var Jyt=Wx(qx,9,1);var Qyt=Wx(lde,5,1),XB=function(t){for(var r=t[0],e=1;er&&(r=t[e]);return r},Fc=function(t,r,e){var i=r/8|0;return(t[i]|t[i+1]<<8)>>(r&7)&e},$B=function(t,r){var e=r/8|0;return(t[e]|t[e+1]<<8|t[e+2]<<16)>>(r&7)},eTt=function(t){return(t/8|0)+(t&7&&1)},tTt=function(t,r,e){(r==null||r<0)&&(r=0),(e==null||e>t.length)&&(e=t.length);var i=new(t instanceof Cf?Cf:t instanceof ZB?ZB:Ul)(e-r);return i.set(t.subarray(r,e)),i},rTt=function(t,r,e){var i=t.length;if(!i||e&&!e.l&&i<5)return r||new Ul(0);var n=!r||e,s=!e||e.i;e||(e={}),r||(r=new Ul(i*3));var a=function(de){var we=r.length;if(de>we){var Fe=new Ul(Math.max(we*2,de));Fe.set(r),r=Fe}},o=e.f||0,l=e.p||0,c=e.b||0,u=e.l,h=e.d,p=e.m,d=e.n,f=i*8;do{if(!u){e.f=o=Fc(t,l,1);var m=Fc(t,l+1,3);if(l+=3,m)if(m==1)u=Jyt,h=Qyt,p=9,d=5;else if(m==2){var b=Fc(t,l,31)+257,x=Fc(t,l+10,15)+4,S=b+Fc(t,l+5,31)+1;l+=14;for(var D=new Ul(S),P=new Ul(19),_=0;_>>4;if(g<16)D[_++]=g;else{var he=0,C=0;for(g==16?(C=3+Fc(t,l,3),l+=2,he=D[_-1]):g==17?(C=3+Fc(t,l,7),l+=3):g==18&&(C=11+Fc(t,l,127),l+=7);C--;)D[_++]=he}}var N=D.subarray(0,b),k=D.subarray(b);p=XB(N),d=XB(k),u=Wx(N,p,1),h=Wx(k,d,1)}else throw"invalid block type";else{var g=eTt(l)+4,y=t[g-4]|t[g-3]<<8,E=g+y;if(E>i){if(s)throw"unexpected EOF";break}n&&a(c+y),r.set(t.subarray(g,E),c),e.b=c+=y,e.p=l=E*8;continue}if(l>f){if(s)throw"unexpected EOF";break}}n&&a(c+131072);for(var G=(1<>>4;if(l+=he&15,l>f){if(s)throw"unexpected EOF";break}if(!he)throw"invalid length/literal";if(ee<256)r[c++]=ee;else if(ee==256){j=l,u=null;break}else{var ae=ee-254;if(ee>264){var _=ee-257,se=rde[_];ae=Fc(t,l,(1<>>4;if(!ue)throw"invalid distance";l+=ue&15;var k=Kyt[ve];if(ve>3){var se=ide[ve];k+=$B(t,l)&(1<f){if(s)throw"unexpected EOF";break}n&&a(c+131072);for(var be=c+ae;c>>4>7||(t[0]<<8|t[1])%31)throw"invalid zlib data";if(t[1]&32)throw"invalid zlib data: preset dictionaries not supported"};function cde(t,r){return rTt((nTt(t),t.subarray(2,-4)),r)}var sTt=typeof TextDecoder!="undefined"&&new TextDecoder,aTt=0;try{sTt.decode(iTt,{stream:!0}),aTt=1}catch(t){}function ude(t,r,e){let i=e.length-t-1;if(r>=e[i])return i-1;if(r<=e[t])return t;let n=t,s=i,a=Math.floor((n+s)/2);for(;r=e[a+1];)r=m&&(f[d][0]=f[p][0]/o[E+1][y],g=f[d][0]*o[y][E]);let b=y>=-1?1:-y,x=h-1<=E?m-1:e-h;for(let D=b;D<=x;++D)f[d][D]=(f[p][D]-f[p][D-1])/o[E+1][y+D],g+=f[d][D]*o[y+D][E];h<=E&&(f[d][m]=-f[p][m-1]/o[E+1][h],g+=f[d][m]*o[h][E]),a[m][h]=g;let S=p;p=d,d=S}}let u=e;for(let h=1;h<=i;++h){for(let p=0;p<=e;++p)a[h][p]*=u;u*=e-h}return a}function uTt(t,r,e,i,n){let s=n0,l=typeof s.Content=="string"&&s.Content!=="";if(o||l){let c=this.parseImage(i[n]);e[s.RelativeFilename||s.Filename]=c}}}}for(let i in r){let n=r[i];e[n]!==void 0?r[i]=e[n]:r[i]=r[i].split("\\").pop()}return r}parseImage(r){let e=r.Content,i=r.RelativeFilename||r.Filename,n=i.slice(i.lastIndexOf(".")+1).toLowerCase(),s;switch(n){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":this.manager.getHandler(".tga")===null&&console.warn("FBXLoader: TGA loader not found, skipping ",i),s="image/tga";break;default:console.warn('FBXLoader: Image type "'+n+'" is not supported.');return}if(typeof e=="string")return"data:"+s+";base64,"+e;{let a=new Uint8Array(e);return window.URL.createObjectURL(new Blob([a],{type:s}))}}parseTextures(r){let e=new Map;if("Texture"in ui.Objects){let i=ui.Objects.Texture;for(let n in i){let s=this.parseTexture(i[n],r);e.set(parseInt(n),s)}}return e}parseTexture(r,e){let i=this.loadTexture(r,e);i.ID=r.id,i.name=r.attrName;let n=r.WrapModeU,s=r.WrapModeV,a=n!==void 0?n.value:0,o=s!==void 0?s.value:0;if(i.wrapS=a===0?gn:mn,i.wrapT=o===0?gn:mn,"Scaling"in r){let l=r.Scaling.value;i.repeat.x=l[0],i.repeat.y=l[1]}if("Translation"in r){let l=r.Translation.value;i.offset.x=l[0],i.offset.y=l[1]}return i}loadTexture(r,e){let i,n=this.textureLoader.path,s=rs.get(r.id).children;s!==void 0&&s.length>0&&e[s[0].ID]!==void 0&&(i=e[s[0].ID],(i.indexOf("blob:")===0||i.indexOf("data:")===0)&&this.textureLoader.setPath(void 0));let a,o=r.FileName.slice(-3).toLowerCase();if(o==="tga"){let l=this.manager.getHandler(".tga");l===null?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",r.RelativeFilename),a=new Hi):(l.setPath(this.textureLoader.path),a=l.load(i))}else o==="psd"?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",r.RelativeFilename),a=new Hi):a=this.textureLoader.load(i);return this.textureLoader.setPath(n),a}parseMaterials(r){let e=new Map;if("Material"in ui.Objects){let i=ui.Objects.Material;for(let n in i){let s=this.parseMaterial(i[n],r);s!==null&&e.set(parseInt(n),s)}}return e}parseMaterial(r,e){let i=r.id,n=r.attrName,s=r.ShadingModel;if(typeof s=="object"&&(s=s.value),!rs.has(i))return null;let a=this.parseParameters(r,e,i),o;switch(s.toLowerCase()){case"phong":o=new Ts;break;case"lambert":o=new io;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',s),o=new Ts;break}return o.setValues(a),o.name=n,o}parseParameters(r,e,i){let n={};r.BumpFactor&&(n.bumpScale=r.BumpFactor.value),r.Diffuse?n.color=new Ve().fromArray(r.Diffuse.value):r.DiffuseColor&&(r.DiffuseColor.type==="Color"||r.DiffuseColor.type==="ColorRGB")&&(n.color=new Ve().fromArray(r.DiffuseColor.value)),r.DisplacementFactor&&(n.displacementScale=r.DisplacementFactor.value),r.Emissive?n.emissive=new Ve().fromArray(r.Emissive.value):r.EmissiveColor&&(r.EmissiveColor.type==="Color"||r.EmissiveColor.type==="ColorRGB")&&(n.emissive=new Ve().fromArray(r.EmissiveColor.value)),r.EmissiveFactor&&(n.emissiveIntensity=parseFloat(r.EmissiveFactor.value)),r.Opacity&&(n.opacity=parseFloat(r.Opacity.value)),n.opacity<1&&(n.transparent=!0),r.ReflectionFactor&&(n.reflectivity=r.ReflectionFactor.value),r.Shininess&&(n.shininess=r.Shininess.value),r.Specular?n.specular=new Ve().fromArray(r.Specular.value):r.SpecularColor&&r.SpecularColor.type==="Color"&&(n.specular=new Ve().fromArray(r.SpecularColor.value));let s=this;return rs.get(i).children.forEach(function(a){let o=a.relationship;switch(o){case"Bump":n.bumpMap=s.getTexture(e,a.ID);break;case"Maya|TEX_ao_map":n.aoMap=s.getTexture(e,a.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":n.map=s.getTexture(e,a.ID),n.map!==void 0&&(n.map.encoding=yr);break;case"DisplacementColor":n.displacementMap=s.getTexture(e,a.ID);break;case"EmissiveColor":n.emissiveMap=s.getTexture(e,a.ID),n.emissiveMap!==void 0&&(n.emissiveMap.encoding=yr);break;case"NormalMap":case"Maya|TEX_normal_map":n.normalMap=s.getTexture(e,a.ID);break;case"ReflectionColor":n.envMap=s.getTexture(e,a.ID),n.envMap!==void 0&&(n.envMap.mapping=mg,n.envMap.encoding=yr);break;case"SpecularColor":n.specularMap=s.getTexture(e,a.ID),n.specularMap!==void 0&&(n.specularMap.encoding=yr);break;case"TransparentColor":case"TransparencyFactor":n.alphaMap=s.getTexture(e,a.ID),n.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",o);break}}),n}getTexture(r,e){return"LayeredTexture"in ui.Objects&&e in ui.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),e=rs.get(e).children[0].ID),r.get(e)}parseDeformers(){let r={},e={};if("Deformer"in ui.Objects){let i=ui.Objects.Deformer;for(let n in i){let s=i[n],a=rs.get(parseInt(n));if(s.attrType==="Skin"){let o=this.parseSkeleton(a,i);o.ID=n,a.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),o.geometryID=a.parents[0].ID,r[n]=o}else if(s.attrType==="BlendShape"){let o={id:n};o.rawTargets=this.parseMorphTargets(a,i),o.id=n,a.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),e[n]=o}}}return{skeletons:r,morphTargets:e}}parseSkeleton(r,e){let i=[];return r.children.forEach(function(n){let s=e[n.ID];if(s.attrType!=="Cluster")return;let a={ID:n.ID,indices:[],weights:[],transformLink:new Ue().fromArray(s.TransformLink.a)};"Indexes"in s&&(a.indices=s.Indexes.a,a.weights=s.Weights.a),i.push(a)}),{rawBones:i,bones:[]}}parseMorphTargets(r,e){let i=[];for(let n=0;n1?a=o:o.length>0?a=o[0]:(a=new Ts({color:13421772}),o.push(a)),"color"in s.attributes&&o.forEach(function(l){l.vertexColors=!0}),s.FBX_Deformer?(n=new Bu(s,a),n.normalizeSkinWeights()):n=new Je(s,a),n}createCurve(r,e){let i=r.children.reduce(function(s,a){return e.has(a.ID)&&(s=e.get(a.ID)),s},null),n=new Tr({color:3342591,linewidth:1});return new _r(i,n)}getTransformData(r,e){let i={};"InheritType"in e&&(i.inheritType=parseInt(e.InheritType.value)),"RotationOrder"in e?i.eulerOrder=gde(e.RotationOrder.value):i.eulerOrder="ZYX","Lcl_Translation"in e&&(i.translation=e.Lcl_Translation.value),"PreRotation"in e&&(i.preRotation=e.PreRotation.value),"Lcl_Rotation"in e&&(i.rotation=e.Lcl_Rotation.value),"PostRotation"in e&&(i.postRotation=e.PostRotation.value),"Lcl_Scaling"in e&&(i.scale=e.Lcl_Scaling.value),"ScalingOffset"in e&&(i.scalingOffset=e.ScalingOffset.value),"ScalingPivot"in e&&(i.scalingPivot=e.ScalingPivot.value),"RotationOffset"in e&&(i.rotationOffset=e.RotationOffset.value),"RotationPivot"in e&&(i.rotationPivot=e.RotationPivot.value),r.userData.transformData=i}setLookAtProperties(r,e){"LookAtProperty"in e&&rs.get(r.ID).children.forEach(function(n){if(n.relationship==="LookAtProperty"){let s=ui.Objects.Model[n.ID];if("Lcl_Translation"in s){let a=s.Lcl_Translation.value;r.target!==void 0?(r.target.position.fromArray(a),mo.add(r.target)):r.lookAt(new A().fromArray(a))}}})}bindSkeleton(r,e,i){let n=this.parsePoseNodes();for(let s in r){let a=r[s];rs.get(parseInt(a.ID)).parents.forEach(function(l){if(e.has(l.ID)){let c=l.ID;rs.get(c).parents.forEach(function(h){i.has(h.ID)&&i.get(h.ID).bind(new Ml(a.bones),n[h.ID])})}})}}parsePoseNodes(){let r={};if("Pose"in ui.Objects){let e=ui.Objects.Pose;for(let i in e)if(e[i].attrType==="BindPose"&&e[i].NbPoseNodes>0){let n=e[i].PoseNode;Array.isArray(n)?n.forEach(function(s){r[s.Node]=new Ue().fromArray(s.Matrix.a)}):r[n.Node]=new Ue().fromArray(n.Matrix.a)}}return r}createAmbientLight(){if("GlobalSettings"in ui&&"AmbientColor"in ui.GlobalSettings){let r=ui.GlobalSettings.AmbientColor.value,e=r[0],i=r[1],n=r[2];if(e!==0||i!==0||n!==0){let s=new Ve(e,i,n);mo.add(new Ol(s,1))}}}},tk=class{constructor(){this.negativeMaterialIndices=!1}parse(r){let e=new Map;if("Geometry"in ui.Objects){let i=ui.Objects.Geometry;for(let n in i){let s=rs.get(parseInt(n)),a=this.parseGeometry(s,i[n],r);e.set(parseInt(n),a)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),e}parseGeometry(r,e,i){switch(e.attrType){case"Mesh":return this.parseMeshGeometry(r,e,i);case"NurbsCurve":return this.parseNurbsGeometry(e)}}parseMeshGeometry(r,e,i){let n=i.skeletons,s=[],a=r.parents.map(function(h){return ui.Objects.Model[h.ID]});if(a.length===0)return;let o=r.children.reduce(function(h,p){return n[p.ID]!==void 0&&(h=n[p.ID]),h},null);r.children.forEach(function(h){i.morphTargets[h.ID]!==void 0&&s.push(i.morphTargets[h.ID])});let l=a[0],c={};"RotationOrder"in l&&(c.eulerOrder=gde(l.RotationOrder.value)),"InheritType"in l&&(c.inheritType=parseInt(l.InheritType.value)),"GeometricTranslation"in l&&(c.translation=l.GeometricTranslation.value),"GeometricRotation"in l&&(c.rotation=l.GeometricRotation.value),"GeometricScaling"in l&&(c.scale=l.GeometricScaling.value);let u=mde(c);return this.genGeometry(e,o,s,u)}genGeometry(r,e,i,n){let s=new it;r.attrName&&(s.name=r.attrName);let a=this.parseGeoNode(r,e),o=this.genBuffers(a),l=new ct(o.vertex,3);if(l.applyMatrix4(n),s.setAttribute("position",l),o.colors.length>0&&s.setAttribute("color",new ct(o.colors,3)),e&&(s.setAttribute("skinIndex",new gg(o.weightsIndices,4)),s.setAttribute("skinWeight",new ct(o.vertexWeights,4)),s.FBX_Deformer=e),o.normal.length>0){let c=new Qi().getNormalMatrix(n),u=new ct(o.normal,3);u.applyNormalMatrix(c),s.setAttribute("normal",u)}if(o.uvs.forEach(function(c,u){let h="uv"+(u+1).toString();u===0&&(h="uv"),s.setAttribute(h,new ct(o.uvs[u],2))}),a.material&&a.material.mappingType!=="AllSame"){let c=o.materialIndex[0],u=0;if(o.materialIndex.forEach(function(h,p){h!==c&&(s.addGroup(u,p-u,c),c=h,u=p)}),s.groups.length>0){let h=s.groups[s.groups.length-1],p=h.start+h.count;p!==o.materialIndex.length&&s.addGroup(p,o.materialIndex.length-p,c)}s.groups.length===0&&s.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(s,r,i,n),s}parseGeoNode(r,e){let i={};if(i.vertexPositions=r.Vertices!==void 0?r.Vertices.a:[],i.vertexIndices=r.PolygonVertexIndex!==void 0?r.PolygonVertexIndex.a:[],r.LayerElementColor&&(i.color=this.parseVertexColors(r.LayerElementColor[0])),r.LayerElementMaterial&&(i.material=this.parseMaterialIndices(r.LayerElementMaterial[0])),r.LayerElementNormal&&(i.normal=this.parseNormals(r.LayerElementNormal[0])),r.LayerElementUV){i.uv=[];let n=0;for(;r.LayerElementUV[n];)r.LayerElementUV[n].UV&&i.uv.push(this.parseUVs(r.LayerElementUV[n])),n++}return i.weightTable={},e!==null&&(i.skeleton=e,e.rawBones.forEach(function(n,s){n.indices.forEach(function(a,o){i.weightTable[a]===void 0&&(i.weightTable[a]=[]),i.weightTable[a].push({id:s,weight:n.weights[o]})})})),i}genBuffers(r){let e={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},i=0,n=0,s=!1,a=[],o=[],l=[],c=[],u=[],h=[],p=this;return r.vertexIndices.forEach(function(d,f){let m,g=!1;d<0&&(d=d^-1,g=!0);let y=[],E=[];if(a.push(d*3,d*3+1,d*3+2),r.color){let b=ZC(f,i,d,r.color);l.push(b[0],b[1],b[2])}if(r.skeleton){if(r.weightTable[d]!==void 0&&r.weightTable[d].forEach(function(b){E.push(b.weight),y.push(b.id)}),E.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);let b=[0,0,0,0],x=[0,0,0,0];E.forEach(function(S,D){let P=S,_=y[D];x.forEach(function(w,F,X){if(P>w){X[F]=P,P=w;let H=b[F];b[F]=_,_=H}})}),y=b,E=x}for(;E.length<4;)E.push(0),y.push(0);for(let b=0;b<4;++b)u.push(E[b]),h.push(y[b])}if(r.normal){let b=ZC(f,i,d,r.normal);o.push(b[0],b[1],b[2])}r.material&&r.material.mappingType!=="AllSame"&&(m=ZC(f,i,d,r.material)[0],m<0&&(p.negativeMaterialIndices=!0,m=0)),r.uv&&r.uv.forEach(function(b,x){let S=ZC(f,i,d,b);c[x]===void 0&&(c[x]=[]),c[x].push(S[0]),c[x].push(S[1])}),n++,g&&(n>4&&console.warn("THREE.FBXLoader: Polygons with more than four sides are not supported. Make sure to triangulate the geometry during export."),p.genFace(e,r,a,m,o,l,c,u,h,n),i++,n=0,a=[],o=[],l=[],c=[],u=[],h=[])}),e}genFace(r,e,i,n,s,a,o,l,c,u){for(let h=2;h1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");let a=r.get(s[0].ID);i[n]={name:e[n].attrName,layer:a}}return i}addClip(r){let e=[],i=this;return r.layer.forEach(function(n){e=e.concat(i.generateTracks(n))}),new so(r.name,-1,e)}generateTracks(r){let e=[],i=new A,n=new Or,s=new A;if(r.transform&&r.transform.decompose(i,n,s),i=i.toArray(),n=new Sr().setFromQuaternion(n,r.eulerOrder).toArray(),s=s.toArray(),r.T!==void 0&&Object.keys(r.T.curves).length>0){let a=this.generateVectorTrack(r.modelName,r.T.curves,i,"position");a!==void 0&&e.push(a)}if(r.R!==void 0&&Object.keys(r.R.curves).length>0){let a=this.generateRotationTrack(r.modelName,r.R.curves,n,r.preRotation,r.postRotation,r.eulerOrder);a!==void 0&&e.push(a)}if(r.S!==void 0&&Object.keys(r.S.curves).length>0){let a=this.generateVectorTrack(r.modelName,r.S.curves,s,"scale");a!==void 0&&e.push(a)}if(r.DeformPercent!==void 0){let a=this.generateMorphTrack(r);a!==void 0&&e.push(a)}return e}generateVectorTrack(r,e,i,n){let s=this.getTimesForAllAxes(e),a=this.getKeyframeTrackValues(s,e,i);return new no(r+"."+n,s,a)}generateRotationTrack(r,e,i,n,s,a){e.x!==void 0&&(this.interpolateRotations(e.x),e.x.values=e.x.values.map(wr.degToRad)),e.y!==void 0&&(this.interpolateRotations(e.y),e.y.values=e.y.values.map(wr.degToRad)),e.z!==void 0&&(this.interpolateRotations(e.z),e.z.values=e.z.values.map(wr.degToRad));let o=this.getTimesForAllAxes(e),l=this.getKeyframeTrackValues(o,e,i);n!==void 0&&(n=n.map(wr.degToRad),n.push(a),n=new Sr().fromArray(n),n=new Or().setFromEuler(n)),s!==void 0&&(s=s.map(wr.degToRad),s.push(a),s=new Sr().fromArray(s),s=new Or().setFromEuler(s).invert());let c=new Or,u=new Sr,h=[];for(let p=0;p1){let i=1,n=e[0];for(let s=1;s=180){let a=s/180,o=n/a,l=i+o,c=r.times[e-1],h=(r.times[e]-c)/a,p=c+h,d=[],f=[];for(;p1&&(i=r[1].replace(/^(\w+)::/,""),n=r[2]),{id:e,name:i,type:n}}parseNodeProperty(r,e,i){let n=e[1].replace(/^"/,"").replace(/"$/,"").trim(),s=e[2].replace(/^"/,"").replace(/"$/,"").trim();n==="Content"&&s===","&&(s=i.replace(/"/g,"").replace(/,$/,"").trim());let a=this.getCurrentNode();if(a.name==="Properties70"){this.parseNodeSpecialProperty(r,n,s);return}if(n==="C"){let l=s.split(",").slice(1),c=parseInt(l[0]),u=parseInt(l[1]),h=s.split(",").slice(3);h=h.map(function(p){return p.trim().replace(/^"/,"")}),n="connections",s=[c,u],yTt(s,h),a[n]===void 0&&(a[n]=[])}n==="Node"&&(a.id=s),n in a&&Array.isArray(a[n])?a[n].push(s):n!=="a"?a[n]=s:a.a=s,this.setCurrentProp(a,n),n==="a"&&s.slice(-1)!==","&&(a.a=QB(s))}parseNodePropertyContinued(r){let e=this.getCurrentNode();e.a+=r,r.slice(-1)!==","&&(e.a=QB(e.a))}parseNodeSpecialProperty(r,e,i){let n=i.split('",').map(function(u){return u.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=n[0],a=n[1],o=n[2],l=n[3],c=n[4];switch(a){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":c=parseFloat(c);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":c=QB(c);break}this.getPrevNode()[s]={type:a,type2:o,flag:l,value:c},this.setCurrentProp(this.getPrevNode(),s)}},nk=class{parse(r){let e=new JC(r);e.skip(23);let i=e.getUint32();if(i<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+i);let n=new QC;for(;!this.endOfContent(e);){let s=this.parseNode(e,i);s!==null&&n.add(s.name,s)}return n}endOfContent(r){return r.size()%16===0?(r.getOffset()+160+16&-16)>=r.size():r.getOffset()+160+16>=r.size()}parseNode(r,e){let i={},n=e>=7500?r.getUint64():r.getUint32(),s=e>=7500?r.getUint64():r.getUint32();e>=7500?r.getUint64():r.getUint32();let a=r.getUint8(),o=r.getString(a);if(n===0)return null;let l=[];for(let p=0;p0?l[0]:"",u=l.length>1?l[1]:"",h=l.length>2?l[2]:"";for(i.singleProperty=s===1&&r.getOffset()===n;n>r.getOffset();){let p=this.parseNode(r,e);p!==null&&this.parseSubNode(o,i,p)}return i.propertyList=l,typeof c=="number"&&(i.id=c),u!==""&&(i.attrName=u),h!==""&&(i.attrType=h),o!==""&&(i.name=o),i}parseSubNode(r,e,i){if(i.singleProperty===!0){let n=i.propertyList[0];Array.isArray(n)?(e[i.name]=i,i.a=n):e[i.name]=n}else if(r==="Connections"&&i.name==="C"){let n=[];i.propertyList.forEach(function(s,a){a!==0&&n.push(s)}),e.connections===void 0&&(e.connections=[]),e.connections.push(n)}else if(i.name==="Properties70")Object.keys(i).forEach(function(s){e[s]=i[s]});else if(r==="Properties70"&&i.name==="P"){let n=i.propertyList[0],s=i.propertyList[1],a=i.propertyList[2],o=i.propertyList[3],l;n.indexOf("Lcl ")===0&&(n=n.replace("Lcl ","Lcl_")),s.indexOf("Lcl ")===0&&(s=s.replace("Lcl ","Lcl_")),s==="Color"||s==="ColorRGB"||s==="Vector"||s==="Vector3D"||s.indexOf("Lcl_")===0?l=[i.propertyList[4],i.propertyList[5],i.propertyList[6]]:l=i.propertyList[4],e[n]={type:s,type2:a,flag:o,value:l}}else e[i.name]===void 0?typeof i.id=="number"?(e[i.name]={},e[i.name][i.id]=i):e[i.name]=i:i.name==="PoseNode"?(Array.isArray(e[i.name])||(e[i.name]=[e[i.name]]),e[i.name].push(i)):e[i.name][i.id]===void 0&&(e[i.name][i.id]=i)}parseProperty(r){let e=r.getString(1),i;switch(e){case"C":return r.getBoolean();case"D":return r.getFloat64();case"F":return r.getFloat32();case"I":return r.getInt32();case"L":return r.getInt64();case"R":return i=r.getUint32(),r.getArrayBuffer(i);case"S":return i=r.getUint32(),r.getString(i);case"Y":return r.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":let n=r.getUint32(),s=r.getUint32(),a=r.getUint32();if(s===0)switch(e){case"b":case"c":return r.getBooleanArray(n);case"d":return r.getFloat64Array(n);case"f":return r.getFloat32Array(n);case"i":return r.getInt32Array(n);case"l":return r.getInt64Array(n)}let o=cde(new Uint8Array(r.getArrayBuffer(a))),l=new JC(o.buffer);switch(e){case"b":case"c":return l.getBooleanArray(n);case"d":return l.getFloat64Array(n);case"f":return l.getFloat32Array(n);case"i":return l.getInt32Array(n);case"l":return l.getInt64Array(n)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+e)}}},JC=class{constructor(r,e){this.dv=new DataView(r),this.offset=0,this.littleEndian=e!==void 0?e:!0,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(r){this.offset+=r}getBoolean(){return(this.getUint8()&1)===1}getBooleanArray(r){let e=[];for(let i=0;i=0&&(i=new Uint8Array(this.dv.buffer,e,n)),this._textDecoder.decode(i)}},QC=class{add(r,e){this[r]=e}};function fTt(t){let r="Kaydara FBX Binary \0";return t.byteLength>=r.length&&r===vde(t,0,r.length)}function mTt(t){let r=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],e=0;function i(n){let s=t[n-1];return t=t.slice(e+n),e++,s}for(let n=0;n=2.0 are supported."));return}let c=new Mk(s,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u=0&&o[h]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+h+'".')}}c.setExtensions(a),c.setPlugins(o),c.parse(i,n)}parseAsync(r,e){let i=this;return new Promise(function(n,s){i.parse(r,e,n,s)})}};function xTt(){let t={};return{get:function(r){return t[r]},add:function(r,e){t[r]=e},remove:function(r){delete t[r]},removeAll:function(){t={}}}}var Ci={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",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:"KHR_materials_iridescence",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},ok=class{constructor(r){this.parser=r,this.name=Ci.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let r=this.parser,e=this.parser.json.nodes||[];for(let i=0,n=e.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(r,s.source,a)}},yk=class{constructor(r){this.parser=r,this.name=Ci.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(r){let e=this.name,i=this.parser,n=i.json,s=n.textures[r];if(!s.extensions||!s.extensions[e])return null;let a=s.extensions[e],o=n.images[a.source],l=i.textureLoader;if(o.uri){let c=i.options.manager.getHandler(o.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(r,a.source,l);if(n.extensionsRequired&&n.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(r)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(r){let e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){r(e.height===1)}})),this.isSupported}},Tk=class{constructor(r){this.name=Ci.EXT_MESHOPT_COMPRESSION,this.parser=r}loadBufferView(r){let e=this.parser.json,i=e.bufferViews[r];if(i.extensions&&i.extensions[this.name]){let n=i.extensions[this.name],s=this.parser.getDependency("buffer",n.buffer),a=this.parser.options.meshoptDecoder;if(!a||!a.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(o){let l=n.byteOffset||0,c=n.byteLength||0,u=n.count,h=n.byteStride,p=new Uint8Array(o,l,c);return a.decodeGltfBufferAsync?a.decodeGltfBufferAsync(u,h,p,n.mode,n.filter).then(function(d){return d.buffer}):a.ready.then(function(){let d=new ArrayBuffer(u*h);return a.decodeGltfBuffer(new Uint8Array(d),u,h,p,n.mode,n.filter),d})})}else return null}},Ek=class{constructor(r){this.name=Ci.EXT_MESH_GPU_INSTANCING,this.parser=r}createNodeMesh(r){let e=this.parser.json,i=e.nodes[r];if(!i.extensions||!i.extensions[this.name]||i.mesh===void 0)return null;let n=e.meshes[i.mesh];for(let c of n.primitives)if(c.mode!==Bl.TRIANGLES&&c.mode!==Bl.TRIANGLE_STRIP&&c.mode!==Bl.TRIANGLE_FAN&&c.mode!==void 0)return null;let a=i.extensions[this.name].attributes,o=[],l={};for(let c in a)o.push(this.parser.getDependency("accessor",a[c]).then(u=>(l[c]=u,l[c])));return o.length<1?null:(o.push(this.parser.createNodeMesh(r)),Promise.all(o).then(c=>{let u=c.pop(),h=u.isGroup?u.children:[u],p=c[0].count,d=[];for(let f of h){let m=new Ue,g=new A,y=new Or,E=new A(1,1,1),b=new tn(f.geometry,f.material,p);for(let x=0;x0||t.search(/^data\:image\/jpeg/)===0?"image/jpeg":t.search(/\.webp($|\?)/i)>0||t.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}var CTt=new Ue,Mk=class{constructor(r={},e={}){this.json=r,this.extensions={},this.plugins={},this.options=e,this.cache=new xTt,this.associations=new Map,this.primitiveCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,n=!1,s=-1;typeof navigator!="undefined"&&(i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,n=navigator.userAgent.indexOf("Firefox")>-1,s=n?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||i||n&&s<98?this.textureLoader=new Es(this.options.manager):this.textureLoader=new gx(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new ci(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(r){this.extensions=r}setPlugins(r){this.plugins=r}parse(r,e){let i=this,n=this.json,s=this.extensions;this.cache.removeAll(),this._invokeAll(function(a){return a._markDefs&&a._markDefs()}),Promise.all(this._invokeAll(function(a){return a.beforeRoot&&a.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(a){let o={scene:a[0][n.scene||0],scenes:a[0],animations:a[1],cameras:a[2],asset:n.asset,parser:i,userData:{}};Xx(s,o,n),Of(o,n),Promise.all(i._invokeAll(function(l){return l.afterRoot&&l.afterRoot(o)})).then(function(){r(o)})}).catch(e)}_markDefs(){let r=this.json.nodes||[],e=this.json.skins||[],i=this.json.meshes||[];for(let n=0,s=e.length;n{let l=this.associations.get(a);l!=null&&this.associations.set(o,l);for(let[c,u]of a.children.entries())s(u,o.children[c])};return s(i,n),n.name+="_instance_"+r.uses[e]++,n}_invokeOne(r){let e=Object.values(this.plugins);e.push(this);for(let i=0;i=2&&g.setY(w,D[P*l+1]),l>=3&&g.setZ(w,D[P*l+2]),l>=4&&g.setW(w,D[P*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return g})}loadTexture(r){let e=this.json,i=this.options,s=e.textures[r].source,a=e.images[s],o=this.textureLoader;if(a.uri){let l=i.manager.getHandler(a.uri);l!==null&&(o=l)}return this.loadTextureImage(r,s,o)}loadTextureImage(r,e,i){let n=this,s=this.json,a=s.textures[r],o=s.images[e],l=(o.uri||o.bufferView)+":"+a.sampler;if(this.textureCache[l])return this.textureCache[l];let c=this.loadImageSource(e,i).then(function(u){u.flipY=!1,u.name=a.name||o.name||"";let p=(s.samplers||{})[a.sampler]||{};return u.magFilter=Tde[p.magFilter]||ai,u.minFilter=Tde[p.minFilter]||wa,u.wrapS=Ede[p.wrapS]||gn,u.wrapT=Ede[p.wrapT]||gn,n.associations.set(u,{textures:r}),u}).catch(function(){return null});return this.textureCache[l]=c,c}loadImageSource(r,e){let i=this,n=this.json,s=this.options;if(this.sourceCache[r]!==void 0)return this.sourceCache[r].then(h=>h.clone());let a=n.images[r],o=self.URL||self.webkitURL,l=a.uri||"",c=!1;if(a.bufferView!==void 0)l=i.getDependency("bufferView",a.bufferView).then(function(h){c=!0;let p=new Blob([h],{type:a.mimeType});return l=o.createObjectURL(p),l});else if(a.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+r+" is missing URI and bufferView");let u=Promise.resolve(l).then(function(h){return new Promise(function(p,d){let f=p;e.isImageBitmapLoader===!0&&(f=function(m){let g=new Hi(m);g.needsUpdate=!0,p(g)}),e.load(ks.resolveURL(h,s.path),f,void 0,d)})}).then(function(h){return c===!0&&o.revokeObjectURL(l),h.userData.mimeType=a.mimeType||DTt(a.uri),h}).catch(function(h){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),h});return this.sourceCache[r]=u,u}assignTexture(r,e,i,n){let s=this;return this.getDependency("texture",i.index).then(function(a){if(!a)return null;if(i.texCoord!==void 0&&i.texCoord!=0&&!(e==="aoMap"&&i.texCoord==1)&&console.warn("THREE.GLTFLoader: Custom UV set "+i.texCoord+" for texture "+e+" not yet supported."),s.extensions[Ci.KHR_TEXTURE_TRANSFORM]){let o=i.extensions!==void 0?i.extensions[Ci.KHR_TEXTURE_TRANSFORM]:void 0;if(o){let l=s.associations.get(a);a=s.extensions[Ci.KHR_TEXTURE_TRANSFORM].extendTexture(a,o),s.associations.set(a,l)}}return n!==void 0&&(a.encoding=n),r[e]=a,a})}assignFinalMaterial(r){let e=r.geometry,i=r.material,n=e.attributes.tangent===void 0,s=e.attributes.color!==void 0,a=e.attributes.normal===void 0;if(r.isPoints){let o="PointsMaterial:"+i.uuid,l=this.cache.get(o);l||(l=new Vn,Gr.prototype.copy.call(l,i),l.color.copy(i.color),l.map=i.map,l.sizeAttenuation=!1,this.cache.add(o,l)),i=l}else if(r.isLine){let o="LineBasicMaterial:"+i.uuid,l=this.cache.get(o);l||(l=new Tr,Gr.prototype.copy.call(l,i),l.color.copy(i.color),this.cache.add(o,l)),i=l}if(n||s||a){let o="ClonedMaterial:"+i.uuid+":";n&&(o+="derivative-tangents:"),s&&(o+="vertex-colors:"),a&&(o+="flat-shading:");let l=this.cache.get(o);l||(l=i.clone(),s&&(l.vertexColors=!0),a&&(l.flatShading=!0),n&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(o,l),this.associations.set(l,this.associations.get(i))),i=l}i.aoMap&&e.attributes.uv2===void 0&&e.attributes.uv!==void 0&&e.setAttribute("uv2",e.attributes.uv),r.material=i}getMaterialType(){return Gu}loadMaterial(r){let e=this,i=this.json,n=this.extensions,s=i.materials[r],a,o={},l=s.extensions||{},c=[];if(l[Ci.KHR_MATERIALS_UNLIT]){let h=n[Ci.KHR_MATERIALS_UNLIT];a=h.getMaterialType(),c.push(h.extendParams(o,s,e))}else{let h=s.pbrMetallicRoughness||{};if(o.color=new Ve(1,1,1),o.opacity=1,Array.isArray(h.baseColorFactor)){let p=h.baseColorFactor;o.color.fromArray(p),o.opacity=p[3]}h.baseColorTexture!==void 0&&c.push(e.assignTexture(o,"map",h.baseColorTexture,yr)),o.metalness=h.metallicFactor!==void 0?h.metallicFactor:1,o.roughness=h.roughnessFactor!==void 0?h.roughnessFactor:1,h.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(o,"metalnessMap",h.metallicRoughnessTexture)),c.push(e.assignTexture(o,"roughnessMap",h.metallicRoughnessTexture))),a=this._invokeOne(function(p){return p.getMaterialType&&p.getMaterialType(r)}),c.push(Promise.all(this._invokeAll(function(p){return p.extendMaterialParams&&p.extendMaterialParams(r,o)})))}s.doubleSided===!0&&(o.side=wi);let u=s.alphaMode||ak.OPAQUE;if(u===ak.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,u===ak.MASK&&(o.alphaTest=s.alphaCutoff!==void 0?s.alphaCutoff:.5)),s.normalTexture!==void 0&&a!==or&&(c.push(e.assignTexture(o,"normalMap",s.normalTexture)),o.normalScale=new le(1,1),s.normalTexture.scale!==void 0)){let h=s.normalTexture.scale;o.normalScale.set(h,h)}return s.occlusionTexture!==void 0&&a!==or&&(c.push(e.assignTexture(o,"aoMap",s.occlusionTexture)),s.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=s.occlusionTexture.strength)),s.emissiveFactor!==void 0&&a!==or&&(o.emissive=new Ve().fromArray(s.emissiveFactor)),s.emissiveTexture!==void 0&&a!==or&&c.push(e.assignTexture(o,"emissiveMap",s.emissiveTexture,yr)),Promise.all(c).then(function(){let h=new a(o);return s.name&&(h.name=s.name),Of(h,s),e.associations.set(h,{materials:r}),s.extensions&&Xx(n,h,s),h})}createUniqueName(r){let e=Cr.sanitizeNodeName(r||""),i=e;for(let n=1;this.nodeNamesUsed[i];++n)i=e+"_"+n;return this.nodeNamesUsed[i]=!0,i}loadGeometries(r){let e=this,i=this.extensions,n=this.primitiveCache;function s(o){return i[Ci.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(l){return xde(l,o,e)})}let a=[];for(let o=0,l=r.length;o0&&RTt(y,s),y.name=e.createUniqueName(s.name||"mesh_"+r),Of(y,s),g.extensions&&Xx(n,y,g),e.assignFinalMaterial(y),h.push(y)}for(let d=0,f=h.length;d1?h=new hr:l.length===1?h=l[0]:h=new pr,h!==l[0])for(let p=0,d=l.length;p{let h=new Map;for(let[p,d]of n.associations)(p instanceof Gr||p instanceof Hi)&&h.set(p,d);return u.traverse(p=>{let d=n.associations.get(p);d!=null&&h.set(p,d)}),h};return n.associations=c(s),s})}};function ATt(t,r,e){let i=r.attributes,n=new Ot;if(i.POSITION!==void 0){let o=e.json.accessors[i.POSITION],l=o.min,c=o.max;if(l!==void 0&&c!==void 0){if(n.set(new A(l[0],l[1],l[2]),new A(c[0],c[1],c[2])),o.normalized){let u=Rk(dT[o.componentType]);n.min.multiplyScalar(u),n.max.multiplyScalar(u)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;let s=r.targets;if(s!==void 0){let o=new A,l=new A;for(let c=0,u=s.length;cr in t?OTt(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,wde=(t,r)=>{for(var e in r||(r={}))PTt.call(r,e)&&_de(t,e,r[e]);if(Sde)for(var e of Sde(r))NTt.call(r,e)&&_de(t,e,r[e]);return t},Dk=t=>{if(typeof zP!="undefined")return zP(t);throw new Error('Dynamic require of "'+t+'" is not supported')},Mde=(t,r)=>function(){return r||(0,t[Object.keys(t)[0]])((r={exports:{}}).exports,r),r.exports},LTt=(t,r,e)=>new Promise((i,n)=>{var s=l=>{try{o(e.next(l))}catch(c){n(c)}},a=l=>{try{o(e.throw(l))}catch(c){n(c)}},o=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,a);o((e=e.apply(t,r)).next())}),FTt=Mde({"(disabled):crypto"(){}}),HTt=Mde({"dist/web-ifc.js"(t,r){var e=function(){var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(i=i||__filename),function(n){n=n||{};var s=typeof n!="undefined"?n:{},a,o;s.ready=new Promise(function(I,M){a=I,o=M});var l={},c;for(c in s)s.hasOwnProperty(c)&&(l[c]=s[c]);var u=[],h="./this.program",p=function(I,M){throw M},d=!1,f=!1,m=!1,g=!1;d=typeof window=="object",f=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!d&&!m&&!f;var y="";function E(I){return s.locateFile?s.locateFile(I,y):y+I}var b,x,S,D,P,_;m?(f?y=Dk("path").dirname(y)+"/":y=__dirname+"/",b=function(M,L){return P||(P=Dk("fs")),_||(_=Dk("path")),M=_.normalize(M),P.readFileSync(M,L?null:"utf8")},S=function(M){var L=b(M,!0);return L.buffer||(L=new Uint8Array(L)),ee(L.buffer),L},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),u=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof bd))throw I}),process.on("unhandledRejection",Kt),p=function(I){process.exit(I)},s.inspect=function(){return"[Emscripten Module object]"}):g?(typeof read!="undefined"&&(b=function(M){return read(M)}),S=function(M){var L;return typeof readbuffer=="function"?new Uint8Array(readbuffer(M)):(L=read(M,"binary"),ee(typeof L=="object"),L)},typeof scriptArgs!="undefined"?u=scriptArgs:typeof arguments!="undefined"&&(u=arguments),typeof quit=="function"&&(p=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(d||f)&&(f?y=self.location.href:typeof document!="undefined"&&document.currentScript&&(y=document.currentScript.src),i&&(y=i),y.indexOf("blob:")!==0?y=y.slice(0,y.lastIndexOf("/")+1):y="",b=function(M){var L=new XMLHttpRequest;return L.open("GET",M,!1),L.send(null),L.responseText},f&&(S=function(M){var L=new XMLHttpRequest;return L.open("GET",M,!1),L.responseType="arraybuffer",L.send(null),new Uint8Array(L.response)}),x=function(M,L,W){var te=new XMLHttpRequest;te.open("GET",M,!0),te.responseType="arraybuffer",te.onload=function(){if(te.status==200||te.status==0&&te.response){L(te.response);return}W()},te.onerror=W,te.send(null)},D=function(I){document.title=I});var w=s.print||console.log.bind(console),F=s.printErr||console.warn.bind(console);for(c in l)l.hasOwnProperty(c)&&(s[c]=l[c]);l=null,s.arguments&&(u=s.arguments),s.thisProgram&&(h=s.thisProgram),s.quit&&(p=s.quit);var X=16;function H(I,M){return M||(M=X),Math.ceil(I/M)*M}var he=0,C=function(I){he=I},N;s.wasmBinary&&(N=s.wasmBinary);var k;s.noExitRuntime&&(k=s.noExitRuntime),typeof WebAssembly!="object"&&Kt("no native wasm support detected");var G,U=!1,j=0;function ee(I,M){I||Kt("Assertion failed: "+M)}var ae=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function se(I,M,L){M>>>=0;for(var W=M+L,te=M;I[te>>>0]&&!(te>=W);)++te;if(te-M>16&&I.subarray&&ae)return ae.decode(I.subarray(M>>>0,te>>>0));for(var ge="";M>>0];if(!(Ee&128)){ge+=String.fromCharCode(Ee);continue}var Ie=I[M++>>>0]&63;if((Ee&224)==192){ge+=String.fromCharCode((Ee&31)<<6|Ie);continue}var De=I[M++>>>0]&63;if((Ee&240)==224?Ee=(Ee&15)<<12|Ie<<6|De:Ee=(Ee&7)<<18|Ie<<12|De<<6|I[M++>>>0]&63,Ee<65536)ge+=String.fromCharCode(Ee);else{var $e=Ee-65536;ge+=String.fromCharCode(55296|$e>>10,56320|$e&1023)}}return ge}function ue(I,M){return I>>>=0,I?se($,I,M):""}function ve(I,M,L,W){if(L>>>=0,!(W>0))return 0;for(var te=L,ge=L+W-1,Ee=0;Ee=55296&&Ie<=57343){var De=I.charCodeAt(++Ee);Ie=65536+((Ie&1023)<<10)|De&1023}if(Ie<=127){if(L>=ge)break;M[L++>>>0]=Ie}else if(Ie<=2047){if(L+1>=ge)break;M[L++>>>0]=192|Ie>>6,M[L++>>>0]=128|Ie&63}else if(Ie<=65535){if(L+2>=ge)break;M[L++>>>0]=224|Ie>>12,M[L++>>>0]=128|Ie>>6&63,M[L++>>>0]=128|Ie&63}else{if(L+3>=ge)break;M[L++>>>0]=240|Ie>>18,M[L++>>>0]=128|Ie>>12&63,M[L++>>>0]=128|Ie>>6&63,M[L++>>>0]=128|Ie&63}}return M[L>>>0]=0,L-te}function be(I,M,L){return ve(I,$,M,L)}function de(I){for(var M=0,L=0;L=55296&&W<=57343&&(W=65536+((W&1023)<<10)|I.charCodeAt(++L)&1023),W<=127?++M:W<=2047?M+=2:W<=65535?M+=3:M+=4}return M}var we=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Fe(I,M){for(var L=I,W=L>>1,te=W+M/2;!(W>=te)&&me[W>>>0];)++W;if(L=W<<1,L-I>32&&we)return we.decode($.subarray(I>>>0,L>>>0));for(var ge="",Ee=0;!(Ee>=M/2);++Ee){var Ie=re[I+Ee*2>>>1];if(Ie==0)break;ge+=String.fromCharCode(Ie)}return ge}function je(I,M,L){if(L===void 0&&(L=2147483647),L<2)return 0;L-=2;for(var W=M,te=L>>1]=Ee,M+=2}return re[M>>>1]=0,M-W}function Oe(I){return I.length*2}function dt(I,M){for(var L=0,W="";!(L>=M/4);){var te=z[I+L*4>>>2];if(te==0)break;if(++L,te>=65536){var ge=te-65536;W+=String.fromCharCode(55296|ge>>10,56320|ge&1023)}else W+=String.fromCharCode(te)}return W}function Be(I,M,L){if(M>>>=0,L===void 0&&(L=2147483647),L<4)return 0;for(var W=M,te=W+L-4,ge=0;ge=55296&&Ee<=57343){var Ie=I.charCodeAt(++ge);Ee=65536+((Ee&1023)<<10)|Ie&1023}if(z[M>>>2]=Ee,M+=4,M+4>te)break}return z[M>>>2]=0,M-W}function ke(I){for(var M=0,L=0;L=55296&&W<=57343&&++L,M+=4}return M}function nt(I,M){J.set(I,M>>>0)}function bt(I,M,L){for(var W=0;W>>0]=I.charCodeAt(W);L||(J[M>>>0]=0)}function mt(I,M){return I%M>0&&(I+=M-I%M),I}var _e,J,$,re,me,z,Y,xe,Ce;function Ge(I){_e=I,s.HEAP8=J=new Int8Array(I),s.HEAP16=re=new Int16Array(I),s.HEAP32=z=new Int32Array(I),s.HEAPU8=$=new Uint8Array(I),s.HEAPU16=me=new Uint16Array(I),s.HEAPU32=Y=new Uint32Array(I),s.HEAPF32=xe=new Float32Array(I),s.HEAPF64=Ce=new Float64Array(I)}var Ze=s.INITIAL_MEMORY||16777216;s.wasmMemory?G=s.wasmMemory:G=new WebAssembly.Memory({initial:Ze/65536,maximum:65536}),G&&(_e=G.buffer),Ze=_e.byteLength,Ge(_e);var gt,ye=[],Re=[],ut=[],vt=[],Et=!1,Ct=!1;function Dt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Xe(s.preRun.shift());Jt(ye)}function cr(){Et=!0,!s.noFSInit&&!q.init.initialized&&q.init(),dn.init(),Jt(Re)}function Xt(){q.ignorePermissions=!1,Jt(ut)}function gr(){Ct=!0}function Ae(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)lt(s.postRun.shift());Jt(vt)}function Xe(I){ye.unshift(I)}function lt(I){vt.unshift(I)}var _t=0,Vt=null,Rr=null;function Ki(I){return I}function Pi(I){_t++,s.monitorRunDependencies&&s.monitorRunDependencies(_t)}function Fn(I){if(_t--,s.monitorRunDependencies&&s.monitorRunDependencies(_t),_t==0&&(Vt!==null&&(clearInterval(Vt),Vt=null),Rr)){var M=Rr;Rr=null,M()}}s.preloadedImages={},s.preloadedAudios={};function Kt(I){s.onAbort&&s.onAbort(I),I+="",F(I),U=!0,j=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.";var M=new WebAssembly.RuntimeError(I);throw o(M),M}function ds(I,M){return String.prototype.startsWith?I.startsWith(M):I.indexOf(M)===0}var Is="data:application/octet-stream;base64,";function ic(I){return ds(I,Is)}var um="file://";function fd(I){return ds(I,um)}var js=$we+"web-ifc.wasm";ic(js)||(js=E(js));function Te(){try{if(N)return new Uint8Array(N);if(S)return S(js);throw"both async and sync fetching of the wasm failed"}catch(I){Kt(I)}}function ze(){return!N&&(d||f)&&typeof fetch=="function"&&!fd(js)?fetch(js,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+js+"'";return I.arrayBuffer()}).catch(function(){return Te()}):Promise.resolve().then(Te)}function Qe(){var I={a:vu};function M(Ee,Ie){var De=Ee.exports;s.asm=De,gt=s.asm.X,Fn("wasm-instantiate")}Pi("wasm-instantiate");function L(Ee){M(Ee.instance)}function W(Ee){return ze().then(function(Ie){return WebAssembly.instantiate(Ie,I)}).then(Ee,function(Ie){F("failed to asynchronously prepare wasm: "+Ie),Kt(Ie)})}function te(){return!N&&typeof WebAssembly.instantiateStreaming=="function"&&!ic(js)&&!fd(js)&&typeof fetch=="function"?fetch(js,{credentials:"same-origin"}).then(function(Ee){var Ie=WebAssembly.instantiateStreaming(Ee,I);return Ie.then(L,function(De){return F("wasm streaming compile failed: "+De),F("falling back to ArrayBuffer instantiation"),W(L)})}):W(L)}if(s.instantiateWasm)try{var ge=s.instantiateWasm(I,M);return ge}catch(Ee){return F("Module.instantiateWasm callback failed with error: "+Ee),!1}return te().catch(o),{}}var Le,Ke;function Jt(I){for(;I.length>0;){var M=I.shift();if(typeof M=="function"){M(s);continue}var L=M.func;typeof L=="number"?M.arg===void 0?gt.get(L)():gt.get(L)(M.arg):L(M.arg===void 0?null:M.arg)}}function Ir(I,M,L){return L&&L.length?s["dynCall_"+I].apply(null,[M].concat(L)):s["dynCall_"+I].call(null,M)}function Nr(I,M,L){return I.indexOf("j")!=-1?Ir(I,M,L):gt.get(M).apply(null,L)}function Fr(I,M,L,W){Kt("Assertion failed: "+ue(I)+", at: "+[M?ue(M):"unknown filename",L,W?ue(W):"unknown function"])}function Yr(I){return z[zE()>>>2]=I,I}var kt={splitPath:function(I){var M=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return M.exec(I).slice(1)},normalizeArray:function(I,M){for(var L=0,W=I.length-1;W>=0;W--){var te=I[W];te==="."?I.splice(W,1):te===".."?(I.splice(W,1),L++):L&&(I.splice(W,1),L--)}if(M)for(;L;L--)I.unshift("..");return I},normalize:function(I){var M=I.charAt(0)==="/",L=I.slice(-1)==="/";return I=kt.normalizeArray(I.split("/").filter(function(W){return!!W}),!M).join("/"),!I&&!M&&(I="."),I&&L&&(I+="/"),(M?"/":"")+I},dirname:function(I){var M=kt.splitPath(I),L=M[0],W=M[1];return!L&&!W?".":(W&&(W=W.slice(0,W.length-1)),L+W)},basename:function(I){if(I==="/")return"/";I=kt.normalize(I),I=I.replace(/\/$/,"");var M=I.lastIndexOf("/");return M===-1?I:I.slice(M+1)},extname:function(I){return kt.splitPath(I)[3]},join:function(){var I=Array.prototype.slice.call(arguments,0);return kt.normalize(I.join("/"))},join2:function(I,M){return kt.normalize(I+"/"+M)}};function Vr(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var I=new Uint8Array(1);return function(){return crypto.getRandomValues(I),I[0]}}else if(m)try{var M=FTt();return function(){return M.randomBytes(1)[0]}}catch(L){}return function(){Kt("randomDevice")}}var ei={resolve:function(){for(var I="",M=!1,L=arguments.length-1;L>=-1&&!M;L--){var W=L>=0?arguments[L]:q.cwd();if(typeof W!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!W)return"";I=W+"/"+I,M=W.charAt(0)==="/"}return I=kt.normalizeArray(I.split("/").filter(function(te){return!!te}),!M).join("/"),(M?"/":"")+I||"."},relative:function(I,M){I=ei.resolve(I).slice(1),M=ei.resolve(M).slice(1);function L($e){for(var rt=0;rt<$e.length&&$e[rt]==="";rt++);for(var It=$e.length-1;It>=0&&$e[It]==="";It--);return rt>It?[]:$e.slice(rt,It-rt+1)}for(var W=L(I.split("/")),te=L(M.split("/")),ge=Math.min(W.length,te.length),Ee=ge,Ie=0;Ie0?M=W.slice(0,te).toString("utf-8"):M=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(M=window.prompt("Input: "),M!==null&&(M+=` +`)):typeof readline=="function"&&(M=readline(),M!==null&&(M+=` +`));if(!M)return null;I.input=Dh(M,!0)}return I.input.shift()},put_char:function(I,M){M===null||M===10?(w(se(I.output,0)),I.output=[]):M!=0&&I.output.push(M)},flush:function(I){I.output&&I.output.length>0&&(w(se(I.output,0)),I.output=[])}},default_tty1_ops:{put_char:function(I,M){M===null||M===10?(F(se(I.output,0)),I.output=[]):M!=0&&I.output.push(M)},flush:function(I){I.output&&I.output.length>0&&(F(se(I.output,0)),I.output=[])}}};function ki(I){for(var M=H(I,16384),L=fm(M);I>>0]=0;return L}var nr={ops_table:null,mount:function(I){return nr.createNode(null,"/",16895,0)},createNode:function(I,M,L,W){if(q.isBlkdev(L)||q.isFIFO(L))throw new q.ErrnoError(63);nr.ops_table||(nr.ops_table={dir:{node:{getattr:nr.node_ops.getattr,setattr:nr.node_ops.setattr,lookup:nr.node_ops.lookup,mknod:nr.node_ops.mknod,rename:nr.node_ops.rename,unlink:nr.node_ops.unlink,rmdir:nr.node_ops.rmdir,readdir:nr.node_ops.readdir,symlink:nr.node_ops.symlink},stream:{llseek:nr.stream_ops.llseek}},file:{node:{getattr:nr.node_ops.getattr,setattr:nr.node_ops.setattr},stream:{llseek:nr.stream_ops.llseek,read:nr.stream_ops.read,write:nr.stream_ops.write,allocate:nr.stream_ops.allocate,mmap:nr.stream_ops.mmap,msync:nr.stream_ops.msync}},link:{node:{getattr:nr.node_ops.getattr,setattr:nr.node_ops.setattr,readlink:nr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:nr.node_ops.getattr,setattr:nr.node_ops.setattr},stream:q.chrdev_stream_ops}});var te=q.createNode(I,M,L,W);return q.isDir(te.mode)?(te.node_ops=nr.ops_table.dir.node,te.stream_ops=nr.ops_table.dir.stream,te.contents={}):q.isFile(te.mode)?(te.node_ops=nr.ops_table.file.node,te.stream_ops=nr.ops_table.file.stream,te.usedBytes=0,te.contents=null):q.isLink(te.mode)?(te.node_ops=nr.ops_table.link.node,te.stream_ops=nr.ops_table.link.stream):q.isChrdev(te.mode)&&(te.node_ops=nr.ops_table.chrdev.node,te.stream_ops=nr.ops_table.chrdev.stream),te.timestamp=Date.now(),I&&(I.contents[M]=te),te},getFileDataAsRegularArray:function(I){if(I.contents&&I.contents.subarray){for(var M=[],L=0;L>>=0;var L=I.contents?I.contents.length:0;if(!(L>=M)){var W=1024*1024;M=Math.max(M,L*(L>>0),L!=0&&(M=Math.max(M,256));var te=I.contents;I.contents=new Uint8Array(M),I.usedBytes>0&&I.contents.set(te.subarray(0,I.usedBytes),0)}},resizeFileStorage:function(I,M){if(M>>>=0,I.usedBytes!=M){if(M==0){I.contents=null,I.usedBytes=0;return}if(!I.contents||I.contents.subarray){var L=I.contents;I.contents=new Uint8Array(M),L&&I.contents.set(L.subarray(0,Math.min(M,I.usedBytes))),I.usedBytes=M;return}if(I.contents||(I.contents=[]),I.contents.length>M)I.contents.length=M;else for(;I.contents.length=I.node.usedBytes)return 0;var Ee=Math.min(I.node.usedBytes-te,W);if(Ee>8&&ge.subarray)M.set(ge.subarray(te,te+Ee),L);else for(var Ie=0;Ie0||W+L>>=0,J.set(De,Ee>>>0)}return{ptr:Ee,allocated:Ie}},msync:function(I,M,L,W,te){if(!q.isFile(I.node.mode))throw new q.ErrnoError(43);if(te&2)return 0;var ge=nr.stream_ops.write(I,M,0,W,L,!1);return 0}}},q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(I,M){if(I=ei.resolve(q.cwd(),I),M=M||{},!I)return{path:"",node:null};var L={follow_mount:!0,recurse_count:0};for(var W in L)M[W]===void 0&&(M[W]=L[W]);if(M.recurse_count>8)throw new q.ErrnoError(32);for(var te=kt.normalizeArray(I.split("/").filter(function(xt){return!!xt}),!1),ge=q.root,Ee="/",Ie=0;Ie40)throw new q.ErrnoError(32)}}return{path:Ee,node:ge}},getPath:function(I){for(var M;;){if(q.isRoot(I)){var L=I.mount.mountpoint;return M?L[L.length-1]!=="/"?L+"/"+M:L+M:L}M=M?I.name+"/"+M:I.name,I=I.parent}},hashName:function(I,M){for(var L=0,W=0;W>>0)%q.nameTable.length},hashAddNode:function(I){var M=q.hashName(I.parent.id,I.name);I.name_next=q.nameTable[M],q.nameTable[M]=I},hashRemoveNode:function(I){var M=q.hashName(I.parent.id,I.name);if(q.nameTable[M]===I)q.nameTable[M]=I.name_next;else for(var L=q.nameTable[M];L;){if(L.name_next===I){L.name_next=I.name_next;break}L=L.name_next}},lookupNode:function(I,M){var L=q.mayLookup(I);if(L)throw new q.ErrnoError(L,I);for(var W=q.hashName(I.id,M),te=q.nameTable[W];te;te=te.name_next){var ge=te.name;if(te.parent.id===I.id&&ge===M)return te}return q.lookup(I,M)},createNode:function(I,M,L,W){var te=new q.FSNode(I,M,L,W);return q.hashAddNode(te),te},destroyNode:function(I){q.hashRemoveNode(I)},isRoot:function(I){return I===I.parent},isMountpoint:function(I){return!!I.mounted},isFile:function(I){return(I&61440)===32768},isDir:function(I){return(I&61440)===16384},isLink:function(I){return(I&61440)===40960},isChrdev:function(I){return(I&61440)===8192},isBlkdev:function(I){return(I&61440)===24576},isFIFO:function(I){return(I&61440)===4096},isSocket:function(I){return(I&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(I){var M=q.flagModes[I];if(typeof M=="undefined")throw new Error("Unknown file open mode: "+I);return M},flagsToPermissionString:function(I){var M=["r","w","rw"][I&3];return I&512&&(M+="w"),M},nodePermissions:function(I,M){return q.ignorePermissions?0:M.indexOf("r")!==-1&&!(I.mode&292)||M.indexOf("w")!==-1&&!(I.mode&146)||M.indexOf("x")!==-1&&!(I.mode&73)?2:0},mayLookup:function(I){var M=q.nodePermissions(I,"x");return M||(I.node_ops.lookup?0:2)},mayCreate:function(I,M){try{var L=q.lookupNode(I,M);return 20}catch(W){}return q.nodePermissions(I,"wx")},mayDelete:function(I,M,L){var W;try{W=q.lookupNode(I,M)}catch(ge){return ge.errno}var te=q.nodePermissions(I,"wx");if(te)return te;if(L){if(!q.isDir(W.mode))return 54;if(q.isRoot(W)||q.getPath(W)===q.cwd())return 10}else if(q.isDir(W.mode))return 31;return 0},mayOpen:function(I,M){return I?q.isLink(I.mode)?32:q.isDir(I.mode)&&(q.flagsToPermissionString(M)!=="r"||M&512)?31:q.nodePermissions(I,q.flagsToPermissionString(M)):44},MAX_OPEN_FDS:4096,nextfd:function(I,M){I=I||0,M=M||q.MAX_OPEN_FDS;for(var L=I;L<=M;L++)if(!q.streams[L])return L;throw new q.ErrnoError(33)},getStream:function(I){return q.streams[I]},createStream:function(I,M,L){q.FSStream||(q.FSStream=function(){},q.FSStream.prototype={object:{get:function(){return this.node},set:function(Ee){this.node=Ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var W=new q.FSStream;for(var te in I)W[te]=I[te];I=W;var ge=q.nextfd(M,L);return I.fd=ge,q.streams[ge]=I,I},closeStream:function(I){q.streams[I]=null},chrdev_stream_ops:{open:function(I){var M=q.getDevice(I.node.rdev);I.stream_ops=M.stream_ops,I.stream_ops.open&&I.stream_ops.open(I)},llseek:function(){throw new q.ErrnoError(70)}},major:function(I){return I>>8},minor:function(I){return I&255},makedev:function(I,M){return I<<8|M},registerDevice:function(I,M){q.devices[I]={stream_ops:M}},getDevice:function(I){return q.devices[I]},getMounts:function(I){for(var M=[],L=[I];L.length;){var W=L.pop();M.push(W),L.push.apply(L,W.mounts)}return M},syncfs:function(I,M){typeof I=="function"&&(M=I,I=!1),q.syncFSRequests++,q.syncFSRequests>1&&F("warning: "+q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var L=q.getMounts(q.root.mount),W=0;function te(Ee){return q.syncFSRequests--,M(Ee)}function ge(Ee){if(Ee)return ge.errored?void 0:(ge.errored=!0,te(Ee));++W>=L.length&&te(null)}L.forEach(function(Ee){if(!Ee.type.syncfs)return ge(null);Ee.type.syncfs(Ee,I,ge)})},mount:function(I,M,L){var W=L==="/",te=!L,ge;if(W&&q.root)throw new q.ErrnoError(10);if(!W&&!te){var Ee=q.lookupPath(L,{follow_mount:!1});if(L=Ee.path,ge=Ee.node,q.isMountpoint(ge))throw new q.ErrnoError(10);if(!q.isDir(ge.mode))throw new q.ErrnoError(54)}var Ie={type:I,opts:M,mountpoint:L,mounts:[]},De=I.mount(Ie);return De.mount=Ie,Ie.root=De,W?q.root=De:ge&&(ge.mounted=Ie,ge.mount&&ge.mount.mounts.push(Ie)),De},unmount:function(I){var M=q.lookupPath(I,{follow_mount:!1});if(!q.isMountpoint(M.node))throw new q.ErrnoError(28);var L=M.node,W=L.mounted,te=q.getMounts(W);Object.keys(q.nameTable).forEach(function(Ee){for(var Ie=q.nameTable[Ee];Ie;){var De=Ie.name_next;te.indexOf(Ie.mount)!==-1&&q.destroyNode(Ie),Ie=De}}),L.mounted=null;var ge=L.mount.mounts.indexOf(W);L.mount.mounts.splice(ge,1)},lookup:function(I,M){return I.node_ops.lookup(I,M)},mknod:function(I,M,L){var W=q.lookupPath(I,{parent:!0}),te=W.node,ge=kt.basename(I);if(!ge||ge==="."||ge==="..")throw new q.ErrnoError(28);var Ee=q.mayCreate(te,ge);if(Ee)throw new q.ErrnoError(Ee);if(!te.node_ops.mknod)throw new q.ErrnoError(63);return te.node_ops.mknod(te,ge,M,L)},create:function(I,M){return M=M!==void 0?M:438,M&=4095,M|=32768,q.mknod(I,M,0)},mkdir:function(I,M){return M=M!==void 0?M:511,M&=1023,M|=16384,q.mknod(I,M,0)},mkdirTree:function(I,M){for(var L=I.split("/"),W="",te=0;te>>=0,W<0||te<0)throw new q.ErrnoError(28);if(q.isClosed(I))throw new q.ErrnoError(8);if((I.flags&2097155)===1)throw new q.ErrnoError(8);if(q.isDir(I.node.mode))throw new q.ErrnoError(31);if(!I.stream_ops.read)throw new q.ErrnoError(28);var ge=typeof te!="undefined";if(!ge)te=I.position;else if(!I.seekable)throw new q.ErrnoError(70);var Ee=I.stream_ops.read(I,M,L,W,te);return ge||(I.position+=Ee),Ee},write:function(I,M,L,W,te,ge){if(L>>>=0,W<0||te<0)throw new q.ErrnoError(28);if(q.isClosed(I))throw new q.ErrnoError(8);if(!(I.flags&2097155))throw new q.ErrnoError(8);if(q.isDir(I.node.mode))throw new q.ErrnoError(31);if(!I.stream_ops.write)throw new q.ErrnoError(28);I.seekable&&I.flags&1024&&q.llseek(I,0,2);var Ee=typeof te!="undefined";if(!Ee)te=I.position;else if(!I.seekable)throw new q.ErrnoError(70);var Ie=I.stream_ops.write(I,M,L,W,te,ge);Ee||(I.position+=Ie);try{I.path&&q.trackingDelegate.onWriteToFile&&q.trackingDelegate.onWriteToFile(I.path)}catch(De){F("FS.trackingDelegate['onWriteToFile']('"+I.path+"') threw an exception: "+De.message)}return Ie},allocate:function(I,M,L){if(q.isClosed(I))throw new q.ErrnoError(8);if(M<0||L<=0)throw new q.ErrnoError(28);if(!(I.flags&2097155))throw new q.ErrnoError(8);if(!q.isFile(I.node.mode)&&!q.isDir(I.node.mode))throw new q.ErrnoError(43);if(!I.stream_ops.allocate)throw new q.ErrnoError(138);I.stream_ops.allocate(I,M,L)},mmap:function(I,M,L,W,te,ge){if(M>>>=0,te&2&&!(ge&2)&&(I.flags&2097155)!==2)throw new q.ErrnoError(2);if((I.flags&2097155)===1)throw new q.ErrnoError(2);if(!I.stream_ops.mmap)throw new q.ErrnoError(43);return I.stream_ops.mmap(I,M,L,W,te,ge)},msync:function(I,M,L,W,te){return L>>>=0,!I||!I.stream_ops.msync?0:I.stream_ops.msync(I,M,L,W,te)},munmap:function(I){return 0},ioctl:function(I,M,L){if(!I.stream_ops.ioctl)throw new q.ErrnoError(59);return I.stream_ops.ioctl(I,M,L)},readFile:function(I,M){if(M=M||{},M.flags=M.flags||0,M.encoding=M.encoding||"binary",M.encoding!=="utf8"&&M.encoding!=="binary")throw new Error('Invalid encoding type "'+M.encoding+'"');var L,W=q.open(I,M.flags),te=q.stat(I),ge=te.size,Ee=new Uint8Array(ge);return q.read(W,Ee,0,ge,0),M.encoding==="utf8"?L=se(Ee,0):M.encoding==="binary"&&(L=Ee),q.close(W),L},writeFile:function(I,M,L){L=L||{},L.flags=L.flags||577;var W=q.open(I,L.flags,L.mode);if(typeof M=="string"){var te=new Uint8Array(de(M)+1),ge=ve(M,te,0,te.length);q.write(W,te,0,ge,void 0,L.canOwn)}else if(ArrayBuffer.isView(M))q.write(W,M,0,M.byteLength,void 0,L.canOwn);else throw new Error("Unsupported data type");q.close(W)},cwd:function(){return q.currentPath},chdir:function(I){var M=q.lookupPath(I,{follow:!0});if(M.node===null)throw new q.ErrnoError(44);if(!q.isDir(M.node.mode))throw new q.ErrnoError(54);var L=q.nodePermissions(M.node,"x");if(L)throw new q.ErrnoError(L);q.currentPath=M.path},createDefaultDirectories:function(){q.mkdir("/tmp"),q.mkdir("/home"),q.mkdir("/home/web_user")},createDefaultDevices:function(){q.mkdir("/dev"),q.registerDevice(q.makedev(1,3),{read:function(){return 0},write:function(M,L,W,te,ge){return te}}),q.mkdev("/dev/null",q.makedev(1,3)),dn.register(q.makedev(5,0),dn.default_tty_ops),dn.register(q.makedev(6,0),dn.default_tty1_ops),q.mkdev("/dev/tty",q.makedev(5,0)),q.mkdev("/dev/tty1",q.makedev(6,0));var I=Vr();q.createDevice("/dev","random",I),q.createDevice("/dev","urandom",I),q.mkdir("/dev/shm"),q.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){q.mkdir("/proc"),q.mkdir("/proc/self"),q.mkdir("/proc/self/fd"),q.mount({mount:function(){var I=q.createNode("/proc/self","fd",16895,73);return I.node_ops={lookup:function(M,L){var W=+L,te=q.getStream(W);if(!te)throw new q.ErrnoError(8);var ge={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return te.path}}};return ge.parent=ge,ge}},I}},{},"/proc/self/fd")},createStandardStreams:function(){s.stdin?q.createDevice("/dev","stdin",s.stdin):q.symlink("/dev/tty","/dev/stdin"),s.stdout?q.createDevice("/dev","stdout",null,s.stdout):q.symlink("/dev/tty","/dev/stdout"),s.stderr?q.createDevice("/dev","stderr",null,s.stderr):q.symlink("/dev/tty1","/dev/stderr");var I=q.open("/dev/stdin",0),M=q.open("/dev/stdout",1),L=q.open("/dev/stderr",1)},ensureErrnoError:function(){q.ErrnoError||(q.ErrnoError=function(M,L){this.node=L,this.setErrno=function(W){this.errno=W},this.setErrno(M),this.message="FS error"},q.ErrnoError.prototype=new Error,q.ErrnoError.prototype.constructor=q.ErrnoError,[44].forEach(function(I){q.genericErrors[I]=new q.ErrnoError(I),q.genericErrors[I].stack=""}))},staticInit:function(){q.ensureErrnoError(),q.nameTable=new Array(4096),q.mount(nr,{},"/"),q.createDefaultDirectories(),q.createDefaultDevices(),q.createSpecialDirectories(),q.filesystems={MEMFS:nr}},init:function(I,M,L){q.init.initialized=!0,q.ensureErrnoError(),s.stdin=I||s.stdin,s.stdout=M||s.stdout,s.stderr=L||s.stderr,q.createStandardStreams()},quit:function(){q.init.initialized=!1;var I=s._fflush;I&&I(0);for(var M=0;Mthis.length-1||xt<0)){var wt=xt%this.chunkSize,tr=xt/this.chunkSize|0;return this.getter(tr)[wt]}},ge.prototype.setDataGetter=function(xt){this.getter=xt},ge.prototype.cacheLength=function(){var xt=new XMLHttpRequest;if(xt.open("HEAD",L,!1),xt.send(null),!(xt.status>=200&&xt.status<300||xt.status===304))throw new Error("Couldn't load "+L+". Status: "+xt.status);var wt=Number(xt.getResponseHeader("Content-length")),tr,vi=(tr=xt.getResponseHeader("Accept-Ranges"))&&tr==="bytes",Mi=(tr=xt.getResponseHeader("Content-Encoding"))&&tr==="gzip",Ai=1024*1024;vi||(Ai=wt);var yt=function(Kr,Xr){if(Kr>Xr)throw new Error("invalid range ("+Kr+", "+Xr+") or no bytes requested!");if(Xr>wt-1)throw new Error("only "+wt+" bytes available! programmer error!");var ie=new XMLHttpRequest;if(ie.open("GET",L,!1),wt!==Ai&&ie.setRequestHeader("Range","bytes="+Kr+"-"+Xr),typeof Uint8Array!="undefined"&&(ie.responseType="arraybuffer"),ie.overrideMimeType&&ie.overrideMimeType("text/plain; charset=x-user-defined"),ie.send(null),!(ie.status>=200&&ie.status<300||ie.status===304))throw new Error("Couldn't load "+L+". Status: "+ie.status);return ie.response!==void 0?new Uint8Array(ie.response||[]):Dh(ie.responseText||"",!0)},Lt=this;Lt.setDataGetter(function(Kr){var Xr=Kr*Ai,ie=(Kr+1)*Ai-1;if(ie=Math.min(ie,wt-1),typeof Lt.chunks[Kr]=="undefined"&&(Lt.chunks[Kr]=yt(Xr,ie)),typeof Lt.chunks[Kr]=="undefined")throw new Error("doXHR failed!");return Lt.chunks[Kr]}),(Mi||!wt)&&(Ai=wt=1,wt=this.getter(0).length,Ai=wt,w("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=wt,this._chunkSize=Ai,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Ee=new ge;Object.defineProperties(Ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:Ee}}else var Ie={isDevice:!1,url:L};var De=q.createFile(I,M,Ie,W,te);Ie.contents?De.contents=Ie.contents:Ie.url&&(De.contents=null,De.url=Ie.url),Object.defineProperties(De,{usedBytes:{get:function(){return this.contents.length}}});var $e={},rt=Object.keys(De.stream_ops);return rt.forEach(function(It){var xt=De.stream_ops[It];$e[It]=function(){return q.forceLoadFile(De),xt.apply(null,arguments)}}),$e.read=function(xt,wt,tr,vi,Mi){q.forceLoadFile(De);var Ai=xt.node.contents;if(Mi>=Ai.length)return 0;var yt=Math.min(Ai.length-Mi,vi);if(Ai.slice)for(var Lt=0;Lt>>2]=W.dev,z[L+4>>>2]=0,z[L+8>>>2]=W.ino,z[L+12>>>2]=W.mode,z[L+16>>>2]=W.nlink,z[L+20>>>2]=W.uid,z[L+24>>>2]=W.gid,z[L+28>>>2]=W.rdev,z[L+32>>>2]=0,Ke=[W.size>>>0,(Le=W.size,+Math.abs(Le)>=1?Le>0?(Math.min(+Math.floor(Le/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Le-+(~~Le>>>0))/4294967296)>>>0:0)],z[L+40>>>2]=Ke[0],z[L+44>>>2]=Ke[1],z[L+48>>>2]=4096,z[L+52>>>2]=W.blocks,z[L+56>>>2]=W.atime.getTime()/1e3|0,z[L+60>>>2]=0,z[L+64>>>2]=W.mtime.getTime()/1e3|0,z[L+68>>>2]=0,z[L+72>>>2]=W.ctime.getTime()/1e3|0,z[L+76>>>2]=0,Ke=[W.ino>>>0,(Le=W.ino,+Math.abs(Le)>=1?Le>0?(Math.min(+Math.floor(Le/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Le-+(~~Le>>>0))/4294967296)>>>0:0)],z[L+80>>>2]=Ke[0],z[L+84>>>2]=Ke[1],0},doMsync:function(I,M,L,W,te){var ge=$.slice(I,I+L);q.msync(M,ge,te,L,W)},doMkdir:function(I,M){return I=kt.normalize(I),I[I.length-1]==="/"&&(I=I.slice(0,I.length-1)),q.mkdir(I,M,0),0},doMknod:function(I,M,L){switch(M&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return q.mknod(I,M,L),0},doReadlink:function(I,M,L){if(L<=0)return-28;var W=q.readlink(I),te=Math.min(L,de(W)),ge=J[M+te>>>0];return be(W,M,L+1),J[M+te>>>0]=ge,te},doAccess:function(I,M){if(M&-8)return-28;var L,W=q.lookupPath(I,{follow:!0});if(L=W.node,!L)return-44;var te="";return M&4&&(te+="r"),M&2&&(te+="w"),M&1&&(te+="x"),te&&q.nodePermissions(L,te)?-2:0},doDup:function(I,M,L){var W=q.getStream(L);return W&&q.close(W),q.open(I,M,0,L,L).fd},doReadv:function(I,M,L,W){for(var te=0,ge=0;ge>>2],Ie=z[M+(ge*8+4)>>>2],De=q.read(I,J,Ee,Ie,W);if(De<0)return-1;if(te+=De,De>>2],Ie=z[M+(ge*8+4)>>>2],De=q.write(I,J,Ee,Ie,W);if(De<0)return-1;te+=De}return te},varargs:void 0,get:function(){er.varargs+=4;var I=z[er.varargs-4>>>2];return I},getStr:function(I){var M=ue(I);return M},getStreamFromFD:function(I){var M=q.getStream(I);if(!M)throw new q.ErrnoError(8);return M},get64:function(I,M){return I}};function cu(I,M,L){er.varargs=L;try{var W=er.getStreamFromFD(I);switch(M){case 0:{var te=er.get();if(te<0)return-28;var ge;return ge=q.open(W.path,W.flags,0,te),ge.fd}case 1:case 2:return 0;case 3:return W.flags;case 4:{var te=er.get();return W.flags|=te,0}case 12:{var te=er.get(),Ee=0;return re[te+Ee>>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Yr(28),-1;default:return-28}}catch(Ie){return(typeof q=="undefined"||!(Ie instanceof q.ErrnoError))&&Kt(Ie),-Ie.errno}}function fn(I,M,L){er.varargs=L;try{var W=er.getStreamFromFD(I);switch(M){case 21509:case 21505:return W.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return W.tty?0:-59;case 21519:{if(!W.tty)return-59;var te=er.get();return z[te>>>2]=0,0}case 21520:return W.tty?-28:-59;case 21531:{var te=er.get();return q.ioctl(W,M,te)}case 21523:return W.tty?0:-59;case 21524:return W.tty?0:-59;default:Kt("bad ioctl syscall "+M)}}catch(ge){return(typeof q=="undefined"||!(ge instanceof q.ErrnoError))&&Kt(ge),-ge.errno}}function Ha(I,M,L){er.varargs=L;try{var W=er.getStr(I),te=er.get(),ge=q.open(W,M,te);return ge.fd}catch(Ee){return(typeof q=="undefined"||!(Ee instanceof q.ErrnoError))&&Kt(Ee),-Ee.errno}}var nc={};function aa(I){for(;I.length;){var M=I.pop(),L=I.pop();L(M)}}function oa(I){return this.fromWireType(Y[I>>>2])}var on={},En={},Io={},Xn=48,sc=57;function uu(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var M=I.charCodeAt(0);return M>=Xn&&M<=sc?"_"+I:I}function ac(I,M){return I=uu(I),new Function("body","return function "+I+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(M)}function hu(I,M){var L=ac(M,function(W){this.name=M,this.message=W;var te=new Error(W).stack;te!==void 0&&(this.stack=this.toString()+` +`+te.replace(/^Error(:[^\n]*)?\n/,""))});return L.prototype=Object.create(I.prototype),L.prototype.constructor=L,L.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},L}var hm=void 0;function bh(I){throw new hm(I)}function Ni(I,M,L){I.forEach(function(Ie){Io[Ie]=M});function W(Ie){var De=L(Ie);De.length!==I.length&&bh("Mismatched type converter count");for(var $e=0;$e>>0];)M+=oc[$[L++>>>0]];return M}var al=void 0;function Zr(I){throw new al(I)}function Qt(I,M,L){if(L=L||{},!("argPackAdvance"in M))throw new TypeError("registerType registeredInstance requires argPackAdvance");var W=M.name;if(I||Zr('type "'+W+'" must have a positive integer typeid pointer'),En.hasOwnProperty(I)){if(L.ignoreDuplicateRegistrations)return;Zr("Cannot register type '"+W+"' twice")}if(En[I]=M,delete Io[I],on.hasOwnProperty(I)){var te=on[I];delete on[I],te.forEach(function(ge){ge()})}}function Sh(I,M,L,W,te){var ge=xh(L);M=Xi(M),Qt(I,{name:M,fromWireType:function(Ee){return!!Ee},toWireType:function(Ee,Ie){return Ie?W:te},argPackAdvance:8,readValueFromPointer:function(Ee){var Ie;if(L===1)Ie=J;else if(L===2)Ie=re;else if(L===4)Ie=z;else throw new TypeError("Unknown boolean type size: "+M);return this.fromWireType(Ie[Ee>>>ge])},destructorFunction:null})}function K(I){if(!(this instanceof xi)||!(I instanceof xi))return!1;for(var M=this.$$.ptrType.registeredClass,L=this.$$.ptr,W=I.$$.ptrType.registeredClass,te=I.$$.ptr;M.baseClass;)L=M.upcast(L),M=M.baseClass;for(;W.baseClass;)te=W.upcast(te),W=W.baseClass;return M===W&&L===te}function Z(I){return{count:I.count,deleteScheduled:I.deleteScheduled,preservePointerOnDelete:I.preservePointerOnDelete,ptr:I.ptr,ptrType:I.ptrType,smartPtr:I.smartPtr,smartPtrType:I.smartPtrType}}function ce(I){function M(L){return L.$$.ptrType.registeredClass.name}Zr(M(I)+" instance already deleted")}var oe=!1;function pe(I){}function qe(I){I.smartPtr?I.smartPtrType.rawDestructor(I.smartPtr):I.ptrType.registeredClass.rawDestructor(I.ptr)}function et(I){I.count.value-=1;var M=I.count.value===0;M&&qe(I)}function Ht(I){return typeof FinalizationGroup=="undefined"?(Ht=function(M){return M},I):(oe=new FinalizationGroup(function(M){for(var L=M.next();!L.done;L=M.next()){var W=L.value;W.ptr?et(W):console.warn("object already deleted: "+W.ptr)}}),Ht=function(M){return oe.register(M,M.$$,M.$$),M},pe=function(M){oe.unregister(M.$$)},Ht(I))}function Mt(){if(this.$$.ptr||ce(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var I=Ht(Object.create(Object.getPrototypeOf(this),{$$:{value:Z(this.$$)}}));return I.$$.count.value+=1,I.$$.deleteScheduled=!1,I}function Ft(){this.$$.ptr||ce(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Zr("Object already scheduled for deletion"),pe(this),et(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function $t(){return!this.$$.ptr}var pt=void 0,qt=[];function zt(){for(;qt.length;){var I=qt.pop();I.$$.deleteScheduled=!1,I.delete()}}function ur(){return this.$$.ptr||ce(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Zr("Object already scheduled for deletion"),qt.push(this),qt.length===1&&pt&&pt(zt),this.$$.deleteScheduled=!0,this}function sr(){xi.prototype.isAliasOf=K,xi.prototype.clone=Mt,xi.prototype.delete=Ft,xi.prototype.isDeleted=$t,xi.prototype.deleteLater=ur}function xi(){}var ar={};function Zt(I,M,L){if(I[M].overloadTable===void 0){var W=I[M];I[M]=function(){return I[M].overloadTable.hasOwnProperty(arguments.length)||Zr("Function '"+L+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[M].overloadTable+")!"),I[M].overloadTable[arguments.length].apply(this,arguments)},I[M].overloadTable=[],I[M].overloadTable[W.argCount]=W}}function ti(I,M,L){s.hasOwnProperty(I)?((L===void 0||s[I].overloadTable!==void 0&&s[I].overloadTable[L]!==void 0)&&Zr("Cannot register public name '"+I+"' twice"),Zt(s,I,I),s.hasOwnProperty(L)&&Zr("Cannot register multiple overloads of a function with the same number of arguments ("+L+")!"),s[I].overloadTable[L]=M):(s[I]=M,L!==void 0&&(s[I].numArguments=L))}function So(I,M,L,W,te,ge,Ee,Ie){this.name=I,this.constructor=M,this.instancePrototype=L,this.rawDestructor=W,this.baseClass=te,this.getActualType=ge,this.upcast=Ee,this.downcast=Ie,this.pureVirtualFunctions=[]}function as(I,M,L){for(;M!==L;)M.upcast||Zr("Expected null or instance of "+L.name+", got an instance of "+M.name),I=M.upcast(I),M=M.baseClass;return I}function du(I,M){if(M===null)return this.isReference&&Zr("null is not a valid "+this.name),0;M.$$||Zr('Cannot pass "'+Rh(M)+'" as a '+this.name),M.$$.ptr||Zr("Cannot pass deleted object as a pointer of type "+this.name);var L=M.$$.ptrType.registeredClass,W=as(M.$$.ptr,L,this.registeredClass);return W}function SE(I,M){var L;if(M===null)return this.isReference&&Zr("null is not a valid "+this.name),this.isSmartPointer?(L=this.rawConstructor(),I!==null&&I.push(this.rawDestructor,L),L):0;M.$$||Zr('Cannot pass "'+Rh(M)+'" as a '+this.name),M.$$.ptr||Zr("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&M.$$.ptrType.isConst&&Zr("Cannot convert argument of type "+(M.$$.smartPtrType?M.$$.smartPtrType.name:M.$$.ptrType.name)+" to parameter type "+this.name);var W=M.$$.ptrType.registeredClass;if(L=as(M.$$.ptr,W,this.registeredClass),this.isSmartPointer)switch(M.$$.smartPtr===void 0&&Zr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:M.$$.smartPtrType===this?L=M.$$.smartPtr:Zr("Cannot convert argument of type "+(M.$$.smartPtrType?M.$$.smartPtrType.name:M.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:L=M.$$.smartPtr;break;case 2:if(M.$$.smartPtrType===this)L=M.$$.smartPtr;else{var te=M.clone();L=this.rawShare(L,_o(function(){te.delete()})),I!==null&&I.push(this.rawDestructor,L)}break;default:Zr("Unsupporting sharing policy")}return L}function F0(I,M){if(M===null)return this.isReference&&Zr("null is not a valid "+this.name),0;M.$$||Zr('Cannot pass "'+Rh(M)+'" as a '+this.name),M.$$.ptr||Zr("Cannot pass deleted object as a pointer of type "+this.name),M.$$.ptrType.isConst&&Zr("Cannot convert argument of type "+M.$$.ptrType.name+" to parameter type "+this.name);var L=M.$$.ptrType.registeredClass,W=as(M.$$.ptr,L,this.registeredClass);return W}function e_(I){return this.rawGetPointee&&(I=this.rawGetPointee(I)),I}function P3(I){this.rawDestructor&&this.rawDestructor(I)}function os(I){I!==null&&I.delete()}function H0(I,M,L){if(M===L)return I;if(L.baseClass===void 0)return null;var W=H0(I,M,L.baseClass);return W===null?null:L.downcast(W)}function _h(){return Object.keys(gd).length}function t_(){var I=[];for(var M in gd)gd.hasOwnProperty(M)&&I.push(gd[M]);return I}function _E(I){pt=I,qt.length&&pt&&pt(zt)}function Ua(){s.getInheritedInstanceCount=_h,s.getLiveInheritedInstances=t_,s.flushPendingDeletes=zt,s.setDelayFunction=_E}var gd={};function r_(I,M){for(M===void 0&&Zr("ptr should not be undefined");I.baseClass;)M=I.upcast(M),I=I.baseClass;return M}function i_(I,M){return M=r_(I,M),gd[M]}function pm(I,M){(!M.ptrType||!M.ptr)&&bh("makeClassHandle requires ptr and ptrType");var L=!!M.smartPtrType,W=!!M.smartPtr;return L!==W&&bh("Both smartPtrType and smartPtr must be specified"),M.count={value:1},Ht(Object.create(I,{$$:{value:M}}))}function n_(I){var M=this.getPointee(I);if(!M)return this.destructor(I),null;var L=i_(this.registeredClass,M);if(L!==void 0){if(L.$$.count.value===0)return L.$$.ptr=M,L.$$.smartPtr=I,L.clone();var W=L.clone();return this.destructor(I),W}function te(){return this.isSmartPointer?pm(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:M,smartPtrType:this,smartPtr:I}):pm(this.registeredClass.instancePrototype,{ptrType:this,ptr:I})}var ge=this.registeredClass.getActualType(M),Ee=ar[ge];if(!Ee)return te.call(this);var Ie;this.isConst?Ie=Ee.constPointerType:Ie=Ee.pointerType;var De=H0(M,this.registeredClass,Ie.registeredClass);return De===null?te.call(this):this.isSmartPointer?pm(Ie.registeredClass.instancePrototype,{ptrType:Ie,ptr:De,smartPtrType:this,smartPtr:I}):pm(Ie.registeredClass.instancePrototype,{ptrType:Ie,ptr:De})}function s_(){wn.prototype.getPointee=e_,wn.prototype.destructor=P3,wn.prototype.argPackAdvance=8,wn.prototype.readValueFromPointer=oa,wn.prototype.deleteObject=os,wn.prototype.fromWireType=n_}function wn(I,M,L,W,te,ge,Ee,Ie,De,$e,rt){this.name=I,this.registeredClass=M,this.isReference=L,this.isConst=W,this.isSmartPointer=te,this.pointeeType=ge,this.sharingPolicy=Ee,this.rawGetPointee=Ie,this.rawConstructor=De,this.rawShare=$e,this.rawDestructor=rt,!te&&M.baseClass===void 0?W?(this.toWireType=du,this.destructorFunction=null):(this.toWireType=F0,this.destructorFunction=null):this.toWireType=SE}function a_(I,M,L){s.hasOwnProperty(I)||bh("Replacing nonexistant public symbol"),s[I].overloadTable!==void 0&&L!==void 0?s[I].overloadTable[L]=M:(s[I]=M,s[I].argCount=L)}function Ba(I,M){ee(I.indexOf("j")>=0,"getDynCaller should only be called with i64 sigs");var L=[];return function(){L.length=arguments.length;for(var W=0;W>2)+W>>>0]);return L}function fu(I,M,L,W,te,ge){ee(M>0);var Ee=Ji(M,L);te=Fs(W,te);var Ie=[ge],De=[];Ni([],[I],function($e){$e=$e[0];var rt="constructor "+$e.name;if($e.registeredClass.constructor_body===void 0&&($e.registeredClass.constructor_body=[]),$e.registeredClass.constructor_body[M-1]!==void 0)throw new al("Cannot register multiple constructors with identical number of parameters ("+(M-1)+") for class '"+$e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return $e.registeredClass.constructor_body[M-1]=function(){wh("Cannot construct "+$e.name+" due to unbound types",Ee)},Ni([],Ee,function(It){return $e.registeredClass.constructor_body[M-1]=function(){arguments.length!==M-1&&Zr(rt+" called with "+arguments.length+" arguments, expected "+(M-1)),De.length=0,Ie.length=M;for(var wt=1;wt0?", ":"")+It),xt+=($e?"var rv = ":"")+"invoker(fn"+(It.length>0?", ":"")+It+`); +`,Ie)xt+=`runDestructors(destructors); +`;else for(var De=Ee?1:2;De4&&--la[I].refcount===0&&(la[I]=void 0,CE.push(I))}function l_(){for(var I=0,M=5;M>>2])};case 3:return function(L){return this.fromWireType(Ce[L>>>3])};default:throw new TypeError("Unknown float type: "+I)}}function PE(I,M,L){var W=xh(L);M=Xi(M),Qt(I,{name:M,fromWireType:function(te){return te},toWireType:function(te,ge){if(typeof ge!="number"&&typeof ge!="boolean")throw new TypeError('Cannot convert "'+Rh(ge)+'" to '+this.name);return ge},argPackAdvance:8,readValueFromPointer:OE(M,W),destructorFunction:null})}function u_(I,M,L,W,te,ge){var Ee=Ji(M,L);I=Xi(I),te=Fs(W,te),ti(I,function(){wh("Cannot call "+I+" due to unbound types",Ee)},M-1),Ni([],Ee,function(Ie){var De=[Ie[0],null].concat(Ie.slice(1));return a_(I,o_(I,De,null,te,ge),M-1),[]})}function N3(I,M,L){switch(M){case 0:return L?function(te){return J[te>>>0]}:function(te){return $[te>>>0]};case 1:return L?function(te){return re[te>>>1]}:function(te){return me[te>>>1]};case 2:return L?function(te){return z[te>>>2]}:function(te){return Y[te>>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function NE(I,M,L,W,te){M=Xi(M),te===-1&&(te=4294967295);var ge=xh(L),Ee=function($e){return $e};if(W===0){var Ie=32-8*L;Ee=function($e){return $e<>>Ie}}var De=M.indexOf("unsigned")!=-1;Qt(I,{name:M,fromWireType:Ee,toWireType:function($e,rt){if(typeof rt!="number"&&typeof rt!="boolean")throw new TypeError('Cannot convert "'+Rh(rt)+'" to '+this.name);if(rtte)throw new TypeError('Passing a number "'+Rh(rt)+'" from JS side to C/C++ side to an argument of type "'+M+'", which is outside the valid range ['+W+", "+te+"]!");return De?rt>>>0:rt|0},argPackAdvance:8,readValueFromPointer:N3(M,ge,W!==0),destructorFunction:null})}function LE(I,M,L){var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],te=W[M];function ge(Ee){Ee=Ee>>2;var Ie=Y,De=Ie[Ee>>>0],$e=Ie[Ee+1>>>0];return new te(_e,$e,De)}L=Xi(L),Qt(I,{name:L,fromWireType:ge,argPackAdvance:8,readValueFromPointer:ge},{ignoreDuplicateRegistrations:!0})}function L3(I,M){M=Xi(M);var L=M==="std::string";Qt(I,{name:M,fromWireType:function(W){var te=Y[W>>>2],ge;if(L)for(var Ee=W+4,Ie=0;Ie<=te;++Ie){var De=W+4+Ie;if(Ie==te||$[De>>>0]==0){var $e=De-Ee,rt=ue(Ee,$e);ge===void 0?ge=rt:(ge+=String.fromCharCode(0),ge+=rt),Ee=De+1}}else{for(var It=new Array(te),Ie=0;Ie>>0]);ge=It.join("")}return ua(W),ge},toWireType:function(W,te){te instanceof ArrayBuffer&&(te=new Uint8Array(te));var ge,Ee=typeof te=="string";Ee||te instanceof Uint8Array||te instanceof Uint8ClampedArray||te instanceof Int8Array||Zr("Cannot pass non-string to std::string"),L&&Ee?ge=function(){return de(te)}:ge=function(){return te.length};var Ie=ge(),De=fm(4+Ie+1);if(De>>>=0,Y[De>>>2]=Ie,L&&Ee)be(te,De+4,Ie+1);else if(Ee)for(var $e=0;$e255&&(ua(De),Zr("String has UTF-16 code units that do not fit in 8 bits")),$[De+4+$e>>>0]=rt}else for(var $e=0;$e>>0]=te[$e];return W!==null&&W.push(ua,De),De},argPackAdvance:8,readValueFromPointer:oa,destructorFunction:function(W){ua(W)}})}function h_(I,M,L){L=Xi(L);var W,te,ge,Ee,Ie;M===2?(W=Fe,te=je,Ee=Oe,ge=function(){return me},Ie=1):M===4&&(W=dt,te=Be,Ee=ke,ge=function(){return Y},Ie=2),Qt(I,{name:L,fromWireType:function(De){for(var $e=Y[De>>>2],rt=ge(),It,xt=De+4,wt=0;wt<=$e;++wt){var tr=De+4+wt*M;if(wt==$e||rt[tr>>>Ie]==0){var vi=tr-xt,Mi=W(xt,vi);It===void 0?It=Mi:(It+=String.fromCharCode(0),It+=Mi),xt=tr+M}}return ua(De),It},toWireType:function(De,$e){typeof $e!="string"&&Zr("Cannot pass non-string to C++ string type "+L);var rt=Ee($e),It=fm(4+rt+M);return It>>>=0,Y[It>>>2]=rt>>Ie,te($e,It+4,rt+M),De!==null&&De.push(ua,It),It},argPackAdvance:8,readValueFromPointer:oa,destructorFunction:function(De){ua(De)}})}function ca(I,M,L,W,te,ge){nc[I]={name:Xi(M),rawConstructor:Fs(L,W),rawDestructor:Fs(te,ge),elements:[]}}function FE(I,M,L,W,te,ge,Ee,Ie,De){nc[I].elements.push({getterReturnType:M,getter:Fs(L,W),getterContext:te,setterArgumentType:ge,setter:Fs(Ee,Ie),setterContext:De})}function dm(I,M,L,W,te,ge){pu[I]={name:Xi(M),rawConstructor:Fs(L,W),rawDestructor:Fs(te,ge),fields:[]}}function p_(I,M,L,W,te,ge,Ee,Ie,De,$e){pu[I].fields.push({fieldName:Xi(M),getterReturnType:L,getter:Fs(W,te),getterContext:ge,setterArgumentType:Ee,setter:Fs(Ie,De),setterContext:$e})}function d_(I,M){M=Xi(M),Qt(I,{isVoid:!0,name:M,argPackAdvance:0,fromWireType:function(){},toWireType:function(L,W){}})}function ol(I){return I||Zr("Cannot use deleted val. handle = "+I),la[I].value}function HE(I,M){var L=En[I];return L===void 0&&Zr(M+" has unknown type "+lc(I)),L}function F3(I,M,L){I=ol(I),M=HE(M,"emval::as");var W=[],te=_o(W);return z[L>>>2]=te,M.toWireType(W,I)}function H3(I,M){for(var L=new Array(I),W=0;W>2)+W>>>0],"parameter "+W);return L}function U3(I,M,L,W){I=ol(I);for(var te=H3(M,L),ge=new Array(M),Ee=0;Ee4&&(la[I].refcount+=1)}function B0(I,M){return I=ol(I),M=ol(M),I instanceof M}function B3(I){return I=ol(I),typeof I=="number"}function k3(){return _o([])}function G3(I){return _o(f_(I))}function Td(){return _o({})}function wo(I){var M=la[I].value;aa(M),AE(I)}function v_(I,M,L){I=ol(I),M=ol(M),L=ol(L),I[M]=L}function V3(I,M){I=HE(I,"_emval_take_value");var L=I.readValueFromPointer(M);return _o(L)}function z3(){Kt()}var k0;m?k0=function(){var I=process.hrtime();return I[0]*1e3+I[1]/1e6}:typeof dateNow!="undefined"?k0=dateNow:k0=function(){return performance.now()};var j3=!0;function W3(I,M){var L;if(I===0)L=Date.now();else if((I===1||I===4)&&j3)L=k0();else return Yr(28),-1;return z[M>>>2]=L/1e3|0,z[M+4>>>2]=L%1e3*1e3*1e3|0,0}function gu(I,M,L){$.copyWithin(I>>>0,M>>>0,M+L>>>0)}function Pe(){return $.length}function tt(I){try{return G.grow(I-_e.byteLength+65535>>>16),Ge(G.buffer),1}catch(M){}}function Ye(I){I=I>>>0;var M=Pe(),L=4294967296;if(I>L)return!1;for(var W=16777216,te=1;te<=4;te*=2){var ge=M*(1+.2/te);ge=Math.min(ge,I+100663296);var Ee=Math.min(L,mt(Math.max(W,I,ge),65536)),Ie=tt(Ee);if(Ie)return!0}return!1}var Gt={};function Ar(){return h||"./this.program"}function ri(){if(!ri.strings){var I=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",M={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:I,_:Ar()};for(var L in Gt)M[L]=Gt[L];var W=[];for(var L in M)W.push(L+"="+M[L]);ri.strings=W}return ri.strings}function $n(I,M){try{var L=0;return ri().forEach(function(W,te){var ge=M+L;z[I+te*4>>>2]=ge,bt(W,ge),L+=W.length+1}),0}catch(W){return(typeof q=="undefined"||!(W instanceof q.ErrnoError))&&Kt(W),W.errno}}function $i(I,M){try{var L=ri();z[I>>>2]=L.length;var W=0;return L.forEach(function(te){W+=te.length+1}),z[M>>>2]=W,0}catch(te){return(typeof q=="undefined"||!(te instanceof q.ErrnoError))&&Kt(te),te.errno}}function BE(I){try{var M=er.getStreamFromFD(I);return q.close(M),0}catch(L){return(typeof q=="undefined"||!(L instanceof q.ErrnoError))&&Kt(L),L.errno}}function q3(I,M,L,W){try{var te=er.getStreamFromFD(I),ge=er.doReadv(te,M,L);return z[W>>>2]=ge,0}catch(Ee){return(typeof q=="undefined"||!(Ee instanceof q.ErrnoError))&&Kt(Ee),Ee.errno}}function ka(I,M,L,W,te){try{var ge=er.getStreamFromFD(I),Ee=4294967296,Ie=L*Ee+(M>>>0),De=9007199254740992;return Ie<=-De||Ie>=De?-61:(q.llseek(ge,Ie,W),Ke=[ge.position>>>0,(Le=ge.position,+Math.abs(Le)>=1?Le>0?(Math.min(+Math.floor(Le/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Le-+(~~Le>>>0))/4294967296)>>>0:0)],z[te>>>2]=Ke[0],z[te+4>>>2]=Ke[1],ge.getdents&&Ie===0&&W===0&&(ge.getdents=null),0)}catch($e){return(typeof q=="undefined"||!($e instanceof q.ErrnoError))&&Kt($e),$e.errno}}function G0(I,M,L,W){try{var te=er.getStreamFromFD(I),ge=er.doWritev(te,M,L);return z[W>>>2]=ge,0}catch(Ee){return(typeof q=="undefined"||!(Ee instanceof q.ErrnoError))&&Kt(Ee),Ee.errno}}function Y3(I){C(I|0)}function cc(I){return I%4===0&&(I%100!==0||I%400===0)}function Ed(I,M){for(var L=0,W=0;W<=M;L+=I[W++]);return L}var Mh=[31,29,31,30,31,30,31,31,30,31,30,31],Ii=[31,28,31,30,31,30,31,31,30,31,30,31];function V0(I,M){for(var L=new Date(I.getTime());M>0;){var W=cc(L.getFullYear()),te=L.getMonth(),ge=(W?Mh:Ii)[te];if(M>ge-L.getDate())M-=ge-L.getDate()+1,L.setDate(1),te<11?L.setMonth(te+1):(L.setMonth(0),L.setFullYear(L.getFullYear()+1));else return L.setDate(L.getDate()+M),L}return L}function y_(I,M,L,W){var te=z[W+40>>>2],ge={tm_sec:z[W>>>2],tm_min:z[W+4>>>2],tm_hour:z[W+8>>>2],tm_mday:z[W+12>>>2],tm_mon:z[W+16>>>2],tm_year:z[W+20>>>2],tm_wday:z[W+24>>>2],tm_yday:z[W+28>>>2],tm_isdst:z[W+32>>>2],tm_gmtoff:z[W+36>>>2],tm_zone:te?ue(te):""},Ee=ue(L),Ie={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var De in Ie)Ee=Ee.replace(new RegExp(De,"g"),Ie[De]);var $e=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],rt=["January","February","March","April","May","June","July","August","September","October","November","December"];function It(yt,Lt,Kr){for(var Xr=typeof yt=="number"?yt.toString():yt||"";Xr.length0?1:0}var Xr;return(Xr=Kr(yt.getFullYear()-Lt.getFullYear()))===0&&(Xr=Kr(yt.getMonth()-Lt.getMonth()))===0&&(Xr=Kr(yt.getDate()-Lt.getDate())),Xr}function tr(yt){switch(yt.getDay()){case 0:return new Date(yt.getFullYear()-1,11,29);case 1:return yt;case 2:return new Date(yt.getFullYear(),0,3);case 3:return new Date(yt.getFullYear(),0,2);case 4:return new Date(yt.getFullYear(),0,1);case 5:return new Date(yt.getFullYear()-1,11,31);case 6:return new Date(yt.getFullYear()-1,11,30)}}function vi(yt){var Lt=V0(new Date(yt.tm_year+1900,0,1),yt.tm_yday),Kr=new Date(Lt.getFullYear(),0,4),Xr=new Date(Lt.getFullYear()+1,0,4),ie=tr(Kr),Ss=tr(Xr);return wt(ie,Lt)<=0?wt(Ss,Lt)<=0?Lt.getFullYear()+1:Lt.getFullYear():Lt.getFullYear()-1}var Mi={"%a":function(yt){return $e[yt.tm_wday].substring(0,3)},"%A":function(yt){return $e[yt.tm_wday]},"%b":function(yt){return rt[yt.tm_mon].substring(0,3)},"%B":function(yt){return rt[yt.tm_mon]},"%C":function(yt){var Lt=yt.tm_year+1900;return xt(Lt/100|0,2)},"%d":function(yt){return xt(yt.tm_mday,2)},"%e":function(yt){return It(yt.tm_mday,2," ")},"%g":function(yt){return vi(yt).toString().substring(2)},"%G":function(yt){return vi(yt)},"%H":function(yt){return xt(yt.tm_hour,2)},"%I":function(yt){var Lt=yt.tm_hour;return Lt==0?Lt=12:Lt>12&&(Lt-=12),xt(Lt,2)},"%j":function(yt){return xt(yt.tm_mday+Ed(cc(yt.tm_year+1900)?Mh:Ii,yt.tm_mon-1),3)},"%m":function(yt){return xt(yt.tm_mon+1,2)},"%M":function(yt){return xt(yt.tm_min,2)},"%n":function(){return` +`},"%p":function(yt){return yt.tm_hour>=0&&yt.tm_hour<12?"AM":"PM"},"%S":function(yt){return xt(yt.tm_sec,2)},"%t":function(){return" "},"%u":function(yt){return yt.tm_wday||7},"%U":function(yt){var Lt=new Date(yt.tm_year+1900,0,1),Kr=Lt.getDay()===0?Lt:V0(Lt,7-Lt.getDay()),Xr=new Date(yt.tm_year+1900,yt.tm_mon,yt.tm_mday);if(wt(Kr,Xr)<0){var ie=Ed(cc(Xr.getFullYear())?Mh:Ii,Xr.getMonth()-1)-31,Ss=31-Kr.getDate(),ll=Ss+ie+Xr.getDate();return xt(Math.ceil(ll/7),2)}return wt(Kr,Lt)===0?"01":"00"},"%V":function(yt){var Lt=new Date(yt.tm_year+1900,0,4),Kr=new Date(yt.tm_year+1901,0,4),Xr=tr(Lt),ie=tr(Kr),Ss=V0(new Date(yt.tm_year+1900,0,1),yt.tm_yday);if(wt(Ss,Xr)<0)return"53";if(wt(ie,Ss)<=0)return"01";var ll;return Xr.getFullYear()=0;return Lt=Math.abs(Lt)/60,Lt=Lt/60*100+Lt%60,(Kr?"+":"-")+String("0000"+Lt).slice(-4)},"%Z":function(yt){return yt.tm_zone},"%%":function(){return"%"}};for(var De in Mi)Ee.indexOf(De)>=0&&(Ee=Ee.replace(new RegExp(De,"g"),Mi[De](ge)));var Ai=Dh(Ee,!1);return Ai.length>M?0:(nt(Ai,I),Ai.length-1)}function z0(I,M,L,W){return y_(I,M,L,W)}var T_=function(I,M,L,W){I||(I=this),this.parent=I,this.mount=I.mount,this.mounted=null,this.id=q.nextInode++,this.name=M,this.mode=L,this.node_ops={},this.stream_ops={},this.rdev=W},j0=365,W0=146;Object.defineProperties(T_.prototype,{read:{get:function(){return(this.mode&j0)===j0},set:function(I){I?this.mode|=j0:this.mode&=~j0}},write:{get:function(){return(this.mode&W0)===W0},set:function(I){I?this.mode|=W0:this.mode&=~W0}},isFolder:{get:function(){return q.isDir(this.mode)}},isDevice:{get:function(){return q.isChrdev(this.mode)}}}),q.FSNode=T_,q.staticInit(),s.FS_createPath=q.createPath,s.FS_createDataFile=q.createDataFile,s.FS_createPreloadedFile=q.createPreloadedFile,s.FS_createLazyFile=q.createLazyFile,s.FS_createDevice=q.createDevice,s.FS_unlink=q.unlink,hm=s.InternalError=hu(Error,"InternalError"),Ih(),al=s.BindingError=hu(Error,"BindingError"),sr(),s_(),Ua(),wE=s.UnboundTypeError=hu(Error,"UnboundTypeError"),vd();function Dh(I,M,L){var W=L>0?L:de(I)+1,te=new Array(W),ge=ve(I,te,0,te.length);return M&&(te.length=ge),te}Re.push({func:function(){GE()}});var vu={x:Fr,A:cu,P:fn,Q:Ha,U:md,s:L0,S:Sh,v:RE,u:fu,d:DE,R:c_,C:PE,h:u_,m:NE,k:LE,D:L3,w:h_,V:ca,g:FE,t:dm,j:p_,T:d_,q:F3,W:U3,b:AE,F:UE,n:g_,l:mu,N:B0,E:B3,y:k3,f:G3,r:Td,p:wo,i:v_,e:V3,c:z3,M:W3,I:gu,o:Ye,K:$n,L:$i,B:BE,O:q3,G:ka,z:G0,a:G,H:Y3,J:z0},kE=Qe(),GE=s.___wasm_call_ctors=function(){return(GE=s.___wasm_call_ctors=s.asm.Y).apply(null,arguments)},q0=s._main=function(){return(q0=s._main=s.asm.Z).apply(null,arguments)},fm=s._malloc=function(){return(fm=s._malloc=s.asm._).apply(null,arguments)},VE=s.___getTypeName=function(){return(VE=s.___getTypeName=s.asm.$).apply(null,arguments)},Y0=s.___embind_register_native_and_builtin_types=function(){return(Y0=s.___embind_register_native_and_builtin_types=s.asm.aa).apply(null,arguments)},zE=s.___errno_location=function(){return(zE=s.___errno_location=s.asm.ba).apply(null,arguments)},ua=s._free=function(){return(ua=s._free=s.asm.ca).apply(null,arguments)},Ch=s.dynCall_jiji=function(){return(Ch=s.dynCall_jiji=s.asm.da).apply(null,arguments)},X0=s.dynCall_viijii=function(){return(X0=s.dynCall_viijii=s.asm.ea).apply(null,arguments)},X3=s.dynCall_iiiiiijj=function(){return(X3=s.dynCall_iiiiiijj=s.asm.fa).apply(null,arguments)},$3=s.dynCall_iiiiij=function(){return($3=s.dynCall_iiiiij=s.asm.ga).apply(null,arguments)},Z3=s.dynCall_iiiiijj=function(){return(Z3=s.dynCall_iiiiijj=s.asm.ha).apply(null,arguments)};s.addRunDependency=Pi,s.removeRunDependency=Fn,s.FS_createPath=q.createPath,s.FS_createDataFile=q.createDataFile,s.FS_createPreloadedFile=q.createPreloadedFile,s.FS_createLazyFile=q.createLazyFile,s.FS_createDevice=q.createDevice,s.FS_unlink=q.unlink,s.FS=q;var Ah;function bd(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}var jE=!1;Rr=function I(){Ah||$0(),Ah||(Rr=I)};function K3(I){var M=s._main,L=0,W=0;try{var te=M(L,W);J3(te,!0)}catch(Ee){if(Ee instanceof bd)return;if(Ee=="unwind"){k=!0;return}else{var ge=Ee;Ee&&typeof Ee=="object"&&Ee.stack&&(ge=[Ee,Ee.stack]),F("exception thrown: "+ge),p(1,Ee)}}finally{jE=!0}}function $0(I){if(I=I||u,_t>0||(Dt(),_t>0))return;function M(){Ah||(Ah=!0,s.calledRun=!0,!U&&(cr(),Xt(),a(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),E_&&K3(I),Ae()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),M()},1)):M()}s.run=$0;function J3(I,M){M&&k&&I===0||(k||(j=I,gr(),s.onExit&&s.onExit(I),U=!0),p(I,new bd(I)))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();var E_=!0;return s.noInitialRun&&(E_=!1),k=!0,$0(),n.ready}}();typeof t=="object"&&typeof r=="object"?r.exports=e:typeof define=="function"&&define.amd?define([],function(){return e}):typeof t=="object"&&(t.WebIFCWasm=e)}}),UTt=3821786052,BTt=2296667514,kTt=3630933823,GTt=4288193352,VTt=2874132201,zTt=618182010,jTt=1635779807,WTt=2603310189,qTt=3406155212,YTt=1634111441,XTt=177149247,$Tt=1411407467,ZTt=3352864051,KTt=2056796094,JTt=1871374353,QTt=3087945054,eEt=3001207471,tEt=325726236,rEt=749761778,iEt=3199563722,nEt=2483840362,sEt=3379348081,aEt=3239324667,oEt=4263986512,lEt=53199957,cEt=2029264950,uEt=3512275521,hEt=1674181508,pEt=669184980,dEt=639542469,fEt=411424972,mEt=130549933,gEt=3869604511,vEt=3798115385,yEt=1310608509,TEt=2705031697,EEt=3460190687,bEt=3207858831,xEt=277319702,IEt=1532957894,SEt=4261334040,_Et=3125803723,wEt=2740243338,REt=1967976161,MEt=2461110595,DEt=2887950389,CEt=167062518,AEt=753842376,OEt=2906023776,PEt=819618141,NEt=4196446775,LEt=3649138523,FEt=616511568,HEt=1334484129,UEt=32344328,BEt=231477066,kEt=3649129432,GEt=2736907675,VEt=4037036970,zEt=1136057603,jEt=1560379544,WEt=3367102660,qEt=1387855156,YEt=2069777674,XEt=1260505505,$Et=4182860854,ZEt=2581212453,KEt=2713105998,JEt=644574406,QEt=963979645,e1t=4031249490,t1t=3299480353,r1t=2979338954,i1t=39481116,n1t=1095909175,s1t=1909888760,a1t=1950629157,o1t=3124254112,l1t=1177604601,c1t=2938176219,u1t=2188180465,h1t=2898889636,p1t=635142910,d1t=395041908,f1t=3758799889,m1t=3293546465,g1t=1051757585,v1t=2674252688,y1t=4217484030,T1t=1285652485,E1t=3999819293,b1t=3203706013,x1t=1123145078,I1t=574549367,S1t=1675464909,_1t=2059837836,w1t=59481748,R1t=3749851601,M1t=3486308946,D1t=3331915920,C1t=1416205885,A1t=3150382593,O1t=3902619387,P1t=2951183804,N1t=3296154744,L1t=2197970202,F1t=2611217952,H1t=2937912522,U1t=1383045692,B1t=1062206242,k1t=1677625105,G1t=3893394355,V1t=747523909,z1t=647927063,j1t=2205249479,W1t=639361253,q1t=2301859152,Y1t=776857604,X1t=3285139300,$1t=3264961684,Z1t=843113511,K1t=905975707,J1t=300633059,Q1t=3221913625,ebt=400855858,tbt=2542286263,rbt=3875453745,ibt=3732776249,nbt=15328376,sbt=2485617015,abt=1485152156,obt=3571504051,lbt=3850581409,cbt=2272882330,ubt=2816379211,hbt=2510884976,pbt=370225590,dbt=1981873012,fbt=2859738748,mbt=45288368,gbt=2614616156,vbt=2732653382,ybt=775493141,Tbt=1959218052,Ebt=3898045240,bbt=2185764099,xbt=1060000209,Ibt=4105962743,Sbt=488727124,_bt=1525564444,wbt=2559216714,Rbt=2574617495,Mbt=3419103109,Dbt=3050246964,Cbt=3293443760,Abt=25142252,Obt=578613899,Pbt=2889183280,Nbt=2713554722,Lbt=4136498852,Fbt=335055490,Hbt=3640358203,Ubt=2954562838,Bbt=1785450214,kbt=1466758467,Gbt=3895139033,Vbt=1419761937,zbt=602808272,jbt=1973544240,Wbt=1916426348,qbt=3295246426,Ybt=1815067380,Xbt=2506170314,$bt=2147822146,Zbt=539742890,Kbt=3495092785,Jbt=1457835157,Qbt=2601014836,ext=2827736869,txt=2629017746,rxt=1186437898,ixt=3800577675,nxt=1105321065,sxt=2367409068,axt=3510044353,oxt=1213902940,lxt=4074379575,cxt=3961806047,uxt=3426335179,hxt=1306400036,pxt=3632507154,dxt=1765591967,fxt=1045800335,mxt=2949456006,gxt=32440307,vxt=1335981549,yxt=2635815018,Txt=1945343521,Ext=1052013943,bxt=1599208980,xxt=562808652,Ixt=1062813311,Sxt=2063403501,_xt=1945004755,wxt=3256556792,Rxt=3040386961,Mxt=3849074793,Dxt=3041715199,Cxt=3205830791,Axt=1154170062,Oxt=770865208,Pxt=3732053477,Nxt=395920057,Lxt=2963535650,Fxt=1714330368,Hxt=3242481149,Uxt=526551008,Bxt=2323601079,kxt=445594917,Gxt=4006246654,Vxt=342316401,zxt=869906466,jxt=3518393246,Wxt=3760055223,qxt=1360408905,Yxt=2030761528,Xxt=3900360178,$xt=476780140,Zxt=1472233963,Kxt=1904799276,Jxt=663422040,Qxt=862014818,eIt=2417008758,tIt=3310460725,rIt=3277789161,iIt=264262732,nIt=1534661035,sIt=402227799,aIt=1217240411,oIt=1003880860,lIt=712377611,cIt=1758889154,uIt=4123344466,hIt=2397081782,pIt=1623761950,dIt=2590856083,fIt=1883228015,mIt=339256511,gIt=2777663545,vIt=1704287377,yIt=2835456948,TIt=1658829314,EIt=2107101300,bIt=2814081492,xIt=132023988,IIt=3747195512,SIt=3174744832,_It=484807127,wIt=3390157468,RIt=4148101412,MIt=211053100,DIt=4024345920,CIt=297599258,AIt=4294318154,OIt=3200245327,PIt=1437805879,NIt=1209101575,LIt=2853485674,FIt=2242383968,HIt=1040185647,UIt=3548104201,BIt=477187591,kIt=2804161546,GIt=2556980723,VIt=2047409740,zIt=1809719519,jIt=803316827,WIt=3008276851,qIt=807026263,YIt=3737207727,XIt=24185140,$It=1310830890,ZIt=4219587988,KIt=3415622556,JIt=346874300,QIt=647756555,eSt=2489546625,tSt=2827207264,rSt=2143335405,iSt=1287392070,nSt=738692330,sSt=374418227,aSt=315944413,oSt=819412036,lSt=1810631287,cSt=1426591983,uSt=4222183408,hSt=2652556860,pSt=2058353004,dSt=3907093117,fSt=4278956645,mSt=3198132628,gSt=182646315,vSt=4037862832,ySt=2188021234,TSt=3815607619,ESt=3132237377,bSt=1482959167,xSt=987401354,ISt=1834744321,SSt=707683696,_St=1339347760,wSt=2223149337,RSt=2297155007,MSt=3508470533,DSt=3009222698,CSt=900683007,ASt=1893162501,OSt=263784265,PSt=4238390223,NSt=1509553395,LSt=1268542332,FSt=3493046030,HSt=4095422895,USt=987898635,BSt=3448662350,kSt=2453401579,GSt=4142052618,VSt=3590301190,zSt=3009204131,jSt=852622518,WSt=178086475,qSt=2706460486,YSt=812098782,XSt=3319311131,$St=1251058090,ZSt=2068733104,KSt=1806887404,JSt=1484403080,QSt=3905492369,e_t=3570813810,t_t=2571569899,r_t=178912537,i_t=2294589976,n_t=1437953363,s_t=2133299955,a_t=4175244083,o_t=3946677679,l_t=3113134337,c_t=2391368822,u_t=3741457305,h_t=3020489413,p_t=2176052936,d_t=4288270099,f_t=572779678,m_t=3827777499,g_t=428585644,v_t=1585845231,y_t=76236018,T_t=1051575348,E_t=2655187982,b_t=3452421091,x_t=4162380809,I_t=629592764,S_t=1161773419,__t=1566485204,w_t=1402838566,R_t=125510826,M_t=2604431987,D_t=4266656042,C_t=1520743889,A_t=3422422726,O_t=1281925730,P_t=3092502836,N_t=388784114,L_t=1154579445,F_t=2624227202,H_t=1008929658,U_t=1425443689,B_t=3057273783,k_t=2347385850,G_t=1838606355,V_t=1847130766,z_t=3708119e3,j_t=2852063980,W_t=760658860,q_t=2022407955,Y_t=248100487,X_t=3303938423,$_t=1303795690,Z_t=1847252529,K_t=2199411900,J_t=2235152071,Q_t=164193824,ewt=3079605661,twt=3404854881,rwt=552965576,iwt=3265635763,nwt=853536259,swt=1507914824,awt=2597039031,owt=377706215,lwt=2108223431,cwt=1437502449,uwt=1114901282,hwt=1073191201,pwt=1911478936,dwt=3181161470,fwt=3368373690,mwt=2998442950,gwt=2706619895,vwt=2474470126,ywt=977012517,Twt=1918398963,Ewt=3888040117,bwt=219451334,xwt=3701648758,Iwt=2251480897,Swt=4143007308,_wt=590820931,wwt=3388369263,Rwt=3505215534,Mwt=2485787929,Dwt=2665983363,Cwt=3588315303,Awt=3079942009,Owt=4251960020,Pwt=1411181986,Nwt=643959842,Lwt=1029017970,Fwt=144952367,Hwt=3694346114,Uwt=2837617999,Bwt=1207048766,kwt=2529465313,Gwt=2519244187,Vwt=1682466193,zwt=2382730787,jwt=3566463478,Wwt=3327091369,qwt=2077209135,Ywt=101040310,Xwt=3021840470,$wt=2483315170,Zwt=2226359599,Kwt=1687234759,Jwt=1158309216,Qwt=310824031,eRt=804291784,tRt=3612865200,rRt=4231323485,iRt=597895409,nRt=2004835150,sRt=603570806,aRt=1663979128,oRt=220341763,lRt=3171933400,cRt=1156407060,uRt=4017108033,hRt=2067069095,pRt=4022376103,dRt=1423911732,fRt=2924175390,mRt=2775532180,gRt=2839578677,vRt=3724593414,yRt=3740093272,TRt=1946335990,ERt=3355820592,bRt=759155922,xRt=2559016684,IRt=3727388367,SRt=3778827333,_Rt=3967405729,wRt=1775413392,RRt=677532197,MRt=2022622350,DRt=1304840413,CRt=3119450353,ARt=2417041796,ORt=2744685151,PRt=569719735,NRt=2945172077,LRt=4208778838,FRt=673634403,HRt=2095639259,URt=3958567839,BRt=2802850158,tA=103090709,kRt=653396225,GRt=2904328755,VRt=3843373140,zRt=3651124850,jRt=2598011224,WRt=986844984,qRt=871118103,YRt=1680319473,XRt=148025276,$Rt=4166981789,ZRt=3710013099,KRt=2752243245,JRt=941946838,QRt=1451395588,eMt=3357820518,tMt=492091185,rMt=3650150729,iMt=110355661,nMt=3521284610,sMt=1482703590,aMt=738039164,oMt=2295281155,lMt=655969474,cMt=1842657554,uMt=3219374653,hMt=90941305,pMt=2250791053,dMt=2044713172,fMt=2093928680,mMt=931644368,gMt=2090586900,vMt=3252649465,yMt=2405470396,TMt=825690147,EMt=2262370178,bMt=2893384427,xMt=3024970846,IMt=3283111854,SMt=2324767716,_Mt=1469900589,wMt=1232101972,RMt=683857671,MMt=2770003689,DMt=3615266464,CMt=2798486643,AMt=3454111270,OMt=3915482550,PMt=2433181523,NMt=4021432810,LMt=3413951693,FMt=1580146022,HMt=3765753017,UMt=979691226,BMt=2572171363,kMt=3027567501,GMt=964333572,VMt=2320036040,zMt=2310774935,Ck=160246688,jMt=3939117080,WMt=1683148259,qMt=2495723537,YMt=1307041759,XMt=1027710054,$Mt=4278684876,ZMt=2857406711,KMt=205026976,JMt=1865459582,QMt=4095574036,eDt=919958153,tDt=2728634034,rDt=982818633,iDt=3840914261,Ak=2655215786,nDt=826625072,sDt=1204542856,aDt=3945020480,oDt=4201705270,lDt=3190031847,cDt=2127690289,uDt=1638771189,hDt=504942748,pDt=3678494232,Ok=3242617779,dDt=886880790,fDt=2802773753,mDt=2565941209,gDt=2551354335,vDt=693640335,yDt=1462361463,Pk=4186316022,TDt=307848117,Nk=781010003,EDt=3940055652,bDt=279856033,xDt=427948657,IDt=3268803585,SDt=1441486842,_Dt=750771296,wDt=1245217292,RDt=4122056220,MDt=366585022,DDt=3451746338,CDt=3523091289,ADt=1521410863,ODt=1401173127,PDt=478536968,NDt=816062949,LDt=1076942058,FDt=3377609919,HDt=3008791417,UDt=1660063152,BDt=2914609552,kDt=2943643501,GDt=1608871552,VDt=2439245199,zDt=1042787934,jDt=1856042241,WDt=3243963512,qDt=4158566097,YDt=3626867408,XDt=2016517767,$Dt=2781568857,ZDt=2341007311,KDt=2778083089,JDt=448429030,QDt=3053780830,eCt=1768891740,tCt=1054537805,rCt=2157484638,iCt=2042790032,nCt=4165799628,sCt=1862484736,aCt=1290935644,oCt=1509187699,lCt=4086658281,cCt=1783015770,uCt=1329646415,hCt=4074543187,pCt=867548509,dCt=3982875396,fCt=4240577450,mCt=4124623270,gCt=3692461612,vCt=3663146110,yCt=4097777520,TCt=1529196076,ECt=3127900445,bCt=3027962421,xCt=2533589738,ICt=2609359061,SCt=3420628829,_Ct=1072016465,wCt=723233188,RCt=3856911033,MCt=1999602285,DCt=1305183839,CCt=3812236995,ACt=1412071761,OCt=710998568,PCt=2706606064,NCt=3893378262,LCt=463610769,FCt=2481509218,HCt=451544542,UCt=4015995234,BCt=1404847402,kCt=3112655638,GCt=331165859,VCt=4252922144,zCt=1039846685,jCt=338393293,WCt=682877961,qCt=3544373492,YCt=2515109513,XCt=1179482911,$Ct=2273995522,ZCt=1004757350,KCt=4243806635,JCt=214636428,QCt=2445595289,eAt=2757150158,tAt=3136571912,rAt=1807405624,iAt=2162789131,nAt=385403989,sAt=3478079324,aAt=1252848954,oAt=1595516126,lAt=609421318,cAt=2668620305,uAt=2473145415,hAt=1973038258,pAt=1597423693,dAt=1190533807,fAt=2525727697,mAt=3408363356,gAt=530289379,vAt=1621171031,yAt=2082059205,TAt=734778138,EAt=1235345126,bAt=3689010777,xAt=2986769608,IAt=3657597509,SAt=1975003073,_At=3979015343,wAt=2218152070,RAt=603775116,MAt=2830218821,DAt=3958052878,CAt=3049322572,AAt=148013059,OAt=4095615324,PAt=2233826070,NAt=2513912981,LAt=699246055,FAt=2028607225,HAt=3101698114,UAt=2809605785,BAt=4124788165,kAt=2934153892,GAt=1300840506,VAt=3303107099,zAt=1607154358,jAt=1878645084,WAt=846575682,qAt=1351298697,YAt=626085974,XAt=2247615214,$At=1260650574,ZAt=1096409881,KAt=230924584,JAt=1162798199,QAt=2315554128,eOt=2254336722,tOt=413509423,rOt=1580310250,iOt=3071757647,nOt=985171141,sOt=2043862942,aOt=531007025,oOt=812556717,lOt=5716631,cOt=3473067441,uOt=1549132990,hOt=2771591690,pOt=3206491090,dOt=912023232,fOt=3824725483,mOt=2347447852,gOt=3081323446,vOt=3663046924,yOt=2281632017,TOt=2415094496,EOt=2387106220,bOt=901063453,xOt=4282788508,IOt=3124975700,SOt=1447204868,_Ot=1983826977,wOt=2636378356,ROt=1640371178,MOt=280115917,DOt=1742049831,COt=2552916305,AOt=1210645708,OOt=3611470254,POt=1199560280,NOt=3101149627,LOt=581633288,FOt=1377556343,HOt=1735638870,UOt=1935646853,BOt=3825984169,kOt=1692211062,GOt=2595432518,VOt=1620046519,zOt=2097647324,jOt=2715220739,WOt=2916149573,qOt=1229763772,YOt=3593883385,XOt=3026737570,$Ot=1600972822,ZOt=1628702193,KOt=3736923433,JOt=2347495698,QOt=3698973494,e3t=427810014,t3t=180925521,r3t=630975310,i3t=3179687236,n3t=4292641817,s3t=1911125066,a3t=4207607924,o3t=728799441,l3t=1417489154,c3t=2799835756,u3t=2759199220,h3t=1907098498,p3t=1530820697,d3t=3956297820,f3t=2391383451,m3t=3313531582,g3t=2769231204,v3t=891718957,y3t=926996030,T3t=2391406946,E3t=4156078855,b3t=3512223829,x3t=1898987631,I3t=4237592921,S3t=1133259667,_3t=3304561284,w3t=336235671,R3t=512836454,M3t=486154966,D3t=1299126871,C3t=4009809668,A3t=4088093105,O3t=1028945134,P3t=4218914973,N3t=3342526732,L3t=1236880293,F3t=2543172580,H3t=1033361043;var O={};O[UTt]=t=>zde.FromTape(t.ID,t.type,t.arguments);O[BTt]=t=>jde.FromTape(t.ID,t.type,t.arguments);O[kTt]=t=>Wde.FromTape(t.ID,t.type,t.arguments);O[GTt]=t=>qde.FromTape(t.ID,t.type,t.arguments);O[VTt]=t=>Yde.FromTape(t.ID,t.type,t.arguments);O[zTt]=t=>Xde.FromTape(t.ID,t.type,t.arguments);O[jTt]=t=>$de.FromTape(t.ID,t.type,t.arguments);O[WTt]=t=>Zde.FromTape(t.ID,t.type,t.arguments);O[qTt]=t=>Kde.FromTape(t.ID,t.type,t.arguments);O[YTt]=t=>Jde.FromTape(t.ID,t.type,t.arguments);O[XTt]=t=>Qde.FromTape(t.ID,t.type,t.arguments);O[$Tt]=t=>efe.FromTape(t.ID,t.type,t.arguments);O[ZTt]=t=>tfe.FromTape(t.ID,t.type,t.arguments);O[KTt]=t=>rfe.FromTape(t.ID,t.type,t.arguments);O[JTt]=t=>ife.FromTape(t.ID,t.type,t.arguments);O[QTt]=t=>nfe.FromTape(t.ID,t.type,t.arguments);O[eEt]=t=>sfe.FromTape(t.ID,t.type,t.arguments);O[tEt]=t=>afe.FromTape(t.ID,t.type,t.arguments);O[rEt]=t=>ofe.FromTape(t.ID,t.type,t.arguments);O[iEt]=t=>lfe.FromTape(t.ID,t.type,t.arguments);O[nEt]=t=>cfe.FromTape(t.ID,t.type,t.arguments);O[sEt]=t=>ufe.FromTape(t.ID,t.type,t.arguments);O[aEt]=t=>hfe.FromTape(t.ID,t.type,t.arguments);O[oEt]=t=>pfe.FromTape(t.ID,t.type,t.arguments);O[lEt]=t=>dfe.FromTape(t.ID,t.type,t.arguments);O[cEt]=t=>ffe.FromTape(t.ID,t.type,t.arguments);O[uEt]=t=>mfe.FromTape(t.ID,t.type,t.arguments);O[hEt]=t=>gfe.FromTape(t.ID,t.type,t.arguments);O[pEt]=t=>vfe.FromTape(t.ID,t.type,t.arguments);O[dEt]=t=>yfe.FromTape(t.ID,t.type,t.arguments);O[fEt]=t=>Tfe.FromTape(t.ID,t.type,t.arguments);O[mEt]=t=>Efe.FromTape(t.ID,t.type,t.arguments);O[gEt]=t=>bfe.FromTape(t.ID,t.type,t.arguments);O[vEt]=t=>xfe.FromTape(t.ID,t.type,t.arguments);O[yEt]=t=>Ife.FromTape(t.ID,t.type,t.arguments);O[TEt]=t=>Sfe.FromTape(t.ID,t.type,t.arguments);O[EEt]=t=>_fe.FromTape(t.ID,t.type,t.arguments);O[bEt]=t=>wfe.FromTape(t.ID,t.type,t.arguments);O[xEt]=t=>Rfe.FromTape(t.ID,t.type,t.arguments);O[IEt]=t=>Mfe.FromTape(t.ID,t.type,t.arguments);O[SEt]=t=>Dfe.FromTape(t.ID,t.type,t.arguments);O[_Et]=t=>Cfe.FromTape(t.ID,t.type,t.arguments);O[wEt]=t=>Afe.FromTape(t.ID,t.type,t.arguments);O[REt]=t=>Ofe.FromTape(t.ID,t.type,t.arguments);O[MEt]=t=>Pfe.FromTape(t.ID,t.type,t.arguments);O[DEt]=t=>Nfe.FromTape(t.ID,t.type,t.arguments);O[CEt]=t=>Lfe.FromTape(t.ID,t.type,t.arguments);O[AEt]=t=>Ffe.FromTape(t.ID,t.type,t.arguments);O[OEt]=t=>Hfe.FromTape(t.ID,t.type,t.arguments);O[PEt]=t=>Ufe.FromTape(t.ID,t.type,t.arguments);O[NEt]=t=>Bfe.FromTape(t.ID,t.type,t.arguments);O[LEt]=t=>kfe.FromTape(t.ID,t.type,t.arguments);O[FEt]=t=>Gfe.FromTape(t.ID,t.type,t.arguments);O[HEt]=t=>Vfe.FromTape(t.ID,t.type,t.arguments);O[UEt]=t=>zfe.FromTape(t.ID,t.type,t.arguments);O[BEt]=t=>jfe.FromTape(t.ID,t.type,t.arguments);O[kEt]=t=>Wfe.FromTape(t.ID,t.type,t.arguments);O[GEt]=t=>qfe.FromTape(t.ID,t.type,t.arguments);O[VEt]=t=>Yfe.FromTape(t.ID,t.type,t.arguments);O[zEt]=t=>Xfe.FromTape(t.ID,t.type,t.arguments);O[jEt]=t=>$fe.FromTape(t.ID,t.type,t.arguments);O[WEt]=t=>Zfe.FromTape(t.ID,t.type,t.arguments);O[qEt]=t=>Kfe.FromTape(t.ID,t.type,t.arguments);O[YEt]=t=>Jfe.FromTape(t.ID,t.type,t.arguments);O[XEt]=t=>Qfe.FromTape(t.ID,t.type,t.arguments);O[$Et]=t=>eme.FromTape(t.ID,t.type,t.arguments);O[ZEt]=t=>tme.FromTape(t.ID,t.type,t.arguments);O[KEt]=t=>rme.FromTape(t.ID,t.type,t.arguments);O[JEt]=t=>ime.FromTape(t.ID,t.type,t.arguments);O[QEt]=t=>nme.FromTape(t.ID,t.type,t.arguments);O[e1t]=t=>sme.FromTape(t.ID,t.type,t.arguments);O[t1t]=t=>ame.FromTape(t.ID,t.type,t.arguments);O[r1t]=t=>ome.FromTape(t.ID,t.type,t.arguments);O[i1t]=t=>lme.FromTape(t.ID,t.type,t.arguments);O[n1t]=t=>cme.FromTape(t.ID,t.type,t.arguments);O[s1t]=t=>ume.FromTape(t.ID,t.type,t.arguments);O[a1t]=t=>hme.FromTape(t.ID,t.type,t.arguments);O[o1t]=t=>pme.FromTape(t.ID,t.type,t.arguments);O[l1t]=t=>dme.FromTape(t.ID,t.type,t.arguments);O[c1t]=t=>fme.FromTape(t.ID,t.type,t.arguments);O[u1t]=t=>mme.FromTape(t.ID,t.type,t.arguments);O[h1t]=t=>gme.FromTape(t.ID,t.type,t.arguments);O[p1t]=t=>vme.FromTape(t.ID,t.type,t.arguments);O[d1t]=t=>yme.FromTape(t.ID,t.type,t.arguments);O[f1t]=t=>Tme.FromTape(t.ID,t.type,t.arguments);O[m1t]=t=>Eme.FromTape(t.ID,t.type,t.arguments);O[g1t]=t=>bme.FromTape(t.ID,t.type,t.arguments);O[v1t]=t=>xme.FromTape(t.ID,t.type,t.arguments);O[y1t]=t=>Ime.FromTape(t.ID,t.type,t.arguments);O[T1t]=t=>Sme.FromTape(t.ID,t.type,t.arguments);O[E1t]=t=>_me.FromTape(t.ID,t.type,t.arguments);O[b1t]=t=>wme.FromTape(t.ID,t.type,t.arguments);O[x1t]=t=>Rme.FromTape(t.ID,t.type,t.arguments);O[I1t]=t=>Mme.FromTape(t.ID,t.type,t.arguments);O[S1t]=t=>Dme.FromTape(t.ID,t.type,t.arguments);O[_1t]=t=>Cme.FromTape(t.ID,t.type,t.arguments);O[w1t]=t=>Ame.FromTape(t.ID,t.type,t.arguments);O[R1t]=t=>Ome.FromTape(t.ID,t.type,t.arguments);O[M1t]=t=>Pme.FromTape(t.ID,t.type,t.arguments);O[D1t]=t=>Nme.FromTape(t.ID,t.type,t.arguments);O[C1t]=t=>Lme.FromTape(t.ID,t.type,t.arguments);O[A1t]=t=>Fme.FromTape(t.ID,t.type,t.arguments);O[O1t]=t=>Hme.FromTape(t.ID,t.type,t.arguments);O[P1t]=t=>Ume.FromTape(t.ID,t.type,t.arguments);O[N1t]=t=>Bme.FromTape(t.ID,t.type,t.arguments);O[L1t]=t=>kme.FromTape(t.ID,t.type,t.arguments);O[F1t]=t=>Gme.FromTape(t.ID,t.type,t.arguments);O[H1t]=t=>Vme.FromTape(t.ID,t.type,t.arguments);O[U1t]=t=>zme.FromTape(t.ID,t.type,t.arguments);O[B1t]=t=>jme.FromTape(t.ID,t.type,t.arguments);O[k1t]=t=>Wme.FromTape(t.ID,t.type,t.arguments);O[G1t]=t=>qme.FromTape(t.ID,t.type,t.arguments);O[V1t]=t=>Yme.FromTape(t.ID,t.type,t.arguments);O[z1t]=t=>Xme.FromTape(t.ID,t.type,t.arguments);O[j1t]=t=>$me.FromTape(t.ID,t.type,t.arguments);O[W1t]=t=>Zme.FromTape(t.ID,t.type,t.arguments);O[q1t]=t=>Kme.FromTape(t.ID,t.type,t.arguments);O[Y1t]=t=>Jme.FromTape(t.ID,t.type,t.arguments);O[X1t]=t=>Qme.FromTape(t.ID,t.type,t.arguments);O[$1t]=t=>ege.FromTape(t.ID,t.type,t.arguments);O[Z1t]=t=>tge.FromTape(t.ID,t.type,t.arguments);O[K1t]=t=>rge.FromTape(t.ID,t.type,t.arguments);O[J1t]=t=>ige.FromTape(t.ID,t.type,t.arguments);O[Q1t]=t=>nge.FromTape(t.ID,t.type,t.arguments);O[ebt]=t=>sge.FromTape(t.ID,t.type,t.arguments);O[tbt]=t=>age.FromTape(t.ID,t.type,t.arguments);O[rbt]=t=>oge.FromTape(t.ID,t.type,t.arguments);O[ibt]=t=>lge.FromTape(t.ID,t.type,t.arguments);O[nbt]=t=>cge.FromTape(t.ID,t.type,t.arguments);O[sbt]=t=>uge.FromTape(t.ID,t.type,t.arguments);O[abt]=t=>hge.FromTape(t.ID,t.type,t.arguments);O[obt]=t=>pge.FromTape(t.ID,t.type,t.arguments);O[lbt]=t=>dge.FromTape(t.ID,t.type,t.arguments);O[cbt]=t=>fge.FromTape(t.ID,t.type,t.arguments);O[ubt]=t=>mge.FromTape(t.ID,t.type,t.arguments);O[hbt]=t=>gge.FromTape(t.ID,t.type,t.arguments);O[pbt]=t=>vge.FromTape(t.ID,t.type,t.arguments);O[dbt]=t=>yge.FromTape(t.ID,t.type,t.arguments);O[fbt]=t=>Tge.FromTape(t.ID,t.type,t.arguments);O[mbt]=t=>Ege.FromTape(t.ID,t.type,t.arguments);O[gbt]=t=>bge.FromTape(t.ID,t.type,t.arguments);O[vbt]=t=>xge.FromTape(t.ID,t.type,t.arguments);O[ybt]=t=>Ige.FromTape(t.ID,t.type,t.arguments);O[Tbt]=t=>Sge.FromTape(t.ID,t.type,t.arguments);O[Ebt]=t=>_ge.FromTape(t.ID,t.type,t.arguments);O[bbt]=t=>wge.FromTape(t.ID,t.type,t.arguments);O[xbt]=t=>Rge.FromTape(t.ID,t.type,t.arguments);O[Ibt]=t=>Mge.FromTape(t.ID,t.type,t.arguments);O[Sbt]=t=>Dge.FromTape(t.ID,t.type,t.arguments);O[_bt]=t=>Cge.FromTape(t.ID,t.type,t.arguments);O[wbt]=t=>Age.FromTape(t.ID,t.type,t.arguments);O[Rbt]=t=>Oge.FromTape(t.ID,t.type,t.arguments);O[Mbt]=t=>Pge.FromTape(t.ID,t.type,t.arguments);O[Dbt]=t=>Nge.FromTape(t.ID,t.type,t.arguments);O[Cbt]=t=>Lge.FromTape(t.ID,t.type,t.arguments);O[Abt]=t=>Fge.FromTape(t.ID,t.type,t.arguments);O[Obt]=t=>Hge.FromTape(t.ID,t.type,t.arguments);O[Pbt]=t=>Uge.FromTape(t.ID,t.type,t.arguments);O[Nbt]=t=>Bge.FromTape(t.ID,t.type,t.arguments);O[Lbt]=t=>kge.FromTape(t.ID,t.type,t.arguments);O[Fbt]=t=>Gge.FromTape(t.ID,t.type,t.arguments);O[Hbt]=t=>Vge.FromTape(t.ID,t.type,t.arguments);O[Ubt]=t=>zge.FromTape(t.ID,t.type,t.arguments);O[Bbt]=t=>jge.FromTape(t.ID,t.type,t.arguments);O[kbt]=t=>Wge.FromTape(t.ID,t.type,t.arguments);O[Gbt]=t=>qge.FromTape(t.ID,t.type,t.arguments);O[Vbt]=t=>Yge.FromTape(t.ID,t.type,t.arguments);O[zbt]=t=>Xge.FromTape(t.ID,t.type,t.arguments);O[jbt]=t=>$ge.FromTape(t.ID,t.type,t.arguments);O[Wbt]=t=>Zge.FromTape(t.ID,t.type,t.arguments);O[qbt]=t=>Kge.FromTape(t.ID,t.type,t.arguments);O[Ybt]=t=>Jge.FromTape(t.ID,t.type,t.arguments);O[Xbt]=t=>Qge.FromTape(t.ID,t.type,t.arguments);O[$bt]=t=>e0e.FromTape(t.ID,t.type,t.arguments);O[Zbt]=t=>t0e.FromTape(t.ID,t.type,t.arguments);O[Kbt]=t=>r0e.FromTape(t.ID,t.type,t.arguments);O[Jbt]=t=>i0e.FromTape(t.ID,t.type,t.arguments);O[Qbt]=t=>n0e.FromTape(t.ID,t.type,t.arguments);O[ext]=t=>s0e.FromTape(t.ID,t.type,t.arguments);O[txt]=t=>a0e.FromTape(t.ID,t.type,t.arguments);O[rxt]=t=>o0e.FromTape(t.ID,t.type,t.arguments);O[ixt]=t=>l0e.FromTape(t.ID,t.type,t.arguments);O[nxt]=t=>c0e.FromTape(t.ID,t.type,t.arguments);O[sxt]=t=>u0e.FromTape(t.ID,t.type,t.arguments);O[axt]=t=>h0e.FromTape(t.ID,t.type,t.arguments);O[oxt]=t=>p0e.FromTape(t.ID,t.type,t.arguments);O[lxt]=t=>d0e.FromTape(t.ID,t.type,t.arguments);O[cxt]=t=>f0e.FromTape(t.ID,t.type,t.arguments);O[uxt]=t=>m0e.FromTape(t.ID,t.type,t.arguments);O[hxt]=t=>g0e.FromTape(t.ID,t.type,t.arguments);O[pxt]=t=>v0e.FromTape(t.ID,t.type,t.arguments);O[dxt]=t=>y0e.FromTape(t.ID,t.type,t.arguments);O[fxt]=t=>T0e.FromTape(t.ID,t.type,t.arguments);O[mxt]=t=>E0e.FromTape(t.ID,t.type,t.arguments);O[gxt]=t=>b0e.FromTape(t.ID,t.type,t.arguments);O[vxt]=t=>x0e.FromTape(t.ID,t.type,t.arguments);O[yxt]=t=>I0e.FromTape(t.ID,t.type,t.arguments);O[Txt]=t=>S0e.FromTape(t.ID,t.type,t.arguments);O[Ext]=t=>_0e.FromTape(t.ID,t.type,t.arguments);O[bxt]=t=>w0e.FromTape(t.ID,t.type,t.arguments);O[xxt]=t=>R0e.FromTape(t.ID,t.type,t.arguments);O[Ixt]=t=>M0e.FromTape(t.ID,t.type,t.arguments);O[Sxt]=t=>D0e.FromTape(t.ID,t.type,t.arguments);O[_xt]=t=>C0e.FromTape(t.ID,t.type,t.arguments);O[wxt]=t=>A0e.FromTape(t.ID,t.type,t.arguments);O[Rxt]=t=>O0e.FromTape(t.ID,t.type,t.arguments);O[Mxt]=t=>P0e.FromTape(t.ID,t.type,t.arguments);O[Dxt]=t=>N0e.FromTape(t.ID,t.type,t.arguments);O[Cxt]=t=>L0e.FromTape(t.ID,t.type,t.arguments);O[Axt]=t=>F0e.FromTape(t.ID,t.type,t.arguments);O[Oxt]=t=>H0e.FromTape(t.ID,t.type,t.arguments);O[Pxt]=t=>U0e.FromTape(t.ID,t.type,t.arguments);O[Nxt]=t=>B0e.FromTape(t.ID,t.type,t.arguments);O[Lxt]=t=>k0e.FromTape(t.ID,t.type,t.arguments);O[Fxt]=t=>G0e.FromTape(t.ID,t.type,t.arguments);O[Hxt]=t=>V0e.FromTape(t.ID,t.type,t.arguments);O[Uxt]=t=>z0e.FromTape(t.ID,t.type,t.arguments);O[Bxt]=t=>j0e.FromTape(t.ID,t.type,t.arguments);O[kxt]=t=>W0e.FromTape(t.ID,t.type,t.arguments);O[Gxt]=t=>q0e.FromTape(t.ID,t.type,t.arguments);O[Vxt]=t=>Y0e.FromTape(t.ID,t.type,t.arguments);O[zxt]=t=>X0e.FromTape(t.ID,t.type,t.arguments);O[jxt]=t=>$0e.FromTape(t.ID,t.type,t.arguments);O[Wxt]=t=>Z0e.FromTape(t.ID,t.type,t.arguments);O[qxt]=t=>K0e.FromTape(t.ID,t.type,t.arguments);O[Yxt]=t=>J0e.FromTape(t.ID,t.type,t.arguments);O[Xxt]=t=>Q0e.FromTape(t.ID,t.type,t.arguments);O[$xt]=t=>eve.FromTape(t.ID,t.type,t.arguments);O[Zxt]=t=>tve.FromTape(t.ID,t.type,t.arguments);O[Kxt]=t=>rve.FromTape(t.ID,t.type,t.arguments);O[Jxt]=t=>ive.FromTape(t.ID,t.type,t.arguments);O[Qxt]=t=>nve.FromTape(t.ID,t.type,t.arguments);O[eIt]=t=>sve.FromTape(t.ID,t.type,t.arguments);O[tIt]=t=>ave.FromTape(t.ID,t.type,t.arguments);O[rIt]=t=>ove.FromTape(t.ID,t.type,t.arguments);O[iIt]=t=>lve.FromTape(t.ID,t.type,t.arguments);O[nIt]=t=>cve.FromTape(t.ID,t.type,t.arguments);O[sIt]=t=>uve.FromTape(t.ID,t.type,t.arguments);O[aIt]=t=>hve.FromTape(t.ID,t.type,t.arguments);O[oIt]=t=>pve.FromTape(t.ID,t.type,t.arguments);O[lIt]=t=>dve.FromTape(t.ID,t.type,t.arguments);O[cIt]=t=>fve.FromTape(t.ID,t.type,t.arguments);O[uIt]=t=>mve.FromTape(t.ID,t.type,t.arguments);O[hIt]=t=>gve.FromTape(t.ID,t.type,t.arguments);O[pIt]=t=>vve.FromTape(t.ID,t.type,t.arguments);O[dIt]=t=>yve.FromTape(t.ID,t.type,t.arguments);O[fIt]=t=>Tve.FromTape(t.ID,t.type,t.arguments);O[mIt]=t=>Eve.FromTape(t.ID,t.type,t.arguments);O[gIt]=t=>bve.FromTape(t.ID,t.type,t.arguments);O[vIt]=t=>xve.FromTape(t.ID,t.type,t.arguments);O[yIt]=t=>Ive.FromTape(t.ID,t.type,t.arguments);O[TIt]=t=>Sve.FromTape(t.ID,t.type,t.arguments);O[EIt]=t=>_ve.FromTape(t.ID,t.type,t.arguments);O[bIt]=t=>wve.FromTape(t.ID,t.type,t.arguments);O[xIt]=t=>Rve.FromTape(t.ID,t.type,t.arguments);O[IIt]=t=>Mve.FromTape(t.ID,t.type,t.arguments);O[SIt]=t=>Dve.FromTape(t.ID,t.type,t.arguments);O[_It]=t=>Cve.FromTape(t.ID,t.type,t.arguments);O[wIt]=t=>Ave.FromTape(t.ID,t.type,t.arguments);O[RIt]=t=>Ove.FromTape(t.ID,t.type,t.arguments);O[MIt]=t=>Pve.FromTape(t.ID,t.type,t.arguments);O[DIt]=t=>Nve.FromTape(t.ID,t.type,t.arguments);O[CIt]=t=>Lve.FromTape(t.ID,t.type,t.arguments);O[AIt]=t=>Fve.FromTape(t.ID,t.type,t.arguments);O[OIt]=t=>Hve.FromTape(t.ID,t.type,t.arguments);O[PIt]=t=>Uve.FromTape(t.ID,t.type,t.arguments);O[NIt]=t=>Bve.FromTape(t.ID,t.type,t.arguments);O[LIt]=t=>kve.FromTape(t.ID,t.type,t.arguments);O[FIt]=t=>Gve.FromTape(t.ID,t.type,t.arguments);O[HIt]=t=>Vve.FromTape(t.ID,t.type,t.arguments);O[UIt]=t=>zve.FromTape(t.ID,t.type,t.arguments);O[BIt]=t=>jve.FromTape(t.ID,t.type,t.arguments);O[kIt]=t=>Wve.FromTape(t.ID,t.type,t.arguments);O[GIt]=t=>qve.FromTape(t.ID,t.type,t.arguments);O[VIt]=t=>Yve.FromTape(t.ID,t.type,t.arguments);O[zIt]=t=>Xve.FromTape(t.ID,t.type,t.arguments);O[jIt]=t=>$ve.FromTape(t.ID,t.type,t.arguments);O[WIt]=t=>Zve.FromTape(t.ID,t.type,t.arguments);O[qIt]=t=>Kve.FromTape(t.ID,t.type,t.arguments);O[YIt]=t=>Jve.FromTape(t.ID,t.type,t.arguments);O[XIt]=t=>Qve.FromTape(t.ID,t.type,t.arguments);O[$It]=t=>eye.FromTape(t.ID,t.type,t.arguments);O[ZIt]=t=>tye.FromTape(t.ID,t.type,t.arguments);O[KIt]=t=>rye.FromTape(t.ID,t.type,t.arguments);O[JIt]=t=>iye.FromTape(t.ID,t.type,t.arguments);O[QIt]=t=>nye.FromTape(t.ID,t.type,t.arguments);O[eSt]=t=>sye.FromTape(t.ID,t.type,t.arguments);O[tSt]=t=>aye.FromTape(t.ID,t.type,t.arguments);O[rSt]=t=>oye.FromTape(t.ID,t.type,t.arguments);O[iSt]=t=>lye.FromTape(t.ID,t.type,t.arguments);O[nSt]=t=>cye.FromTape(t.ID,t.type,t.arguments);O[sSt]=t=>uye.FromTape(t.ID,t.type,t.arguments);O[aSt]=t=>hye.FromTape(t.ID,t.type,t.arguments);O[oSt]=t=>pye.FromTape(t.ID,t.type,t.arguments);O[lSt]=t=>dye.FromTape(t.ID,t.type,t.arguments);O[cSt]=t=>fye.FromTape(t.ID,t.type,t.arguments);O[uSt]=t=>mye.FromTape(t.ID,t.type,t.arguments);O[hSt]=t=>gye.FromTape(t.ID,t.type,t.arguments);O[pSt]=t=>vye.FromTape(t.ID,t.type,t.arguments);O[dSt]=t=>yye.FromTape(t.ID,t.type,t.arguments);O[fSt]=t=>Tye.FromTape(t.ID,t.type,t.arguments);O[mSt]=t=>Eye.FromTape(t.ID,t.type,t.arguments);O[gSt]=t=>bye.FromTape(t.ID,t.type,t.arguments);O[vSt]=t=>xye.FromTape(t.ID,t.type,t.arguments);O[ySt]=t=>Iye.FromTape(t.ID,t.type,t.arguments);O[TSt]=t=>Sye.FromTape(t.ID,t.type,t.arguments);O[ESt]=t=>_ye.FromTape(t.ID,t.type,t.arguments);O[bSt]=t=>wye.FromTape(t.ID,t.type,t.arguments);O[xSt]=t=>Rye.FromTape(t.ID,t.type,t.arguments);O[ISt]=t=>Mye.FromTape(t.ID,t.type,t.arguments);O[SSt]=t=>Dye.FromTape(t.ID,t.type,t.arguments);O[_St]=t=>Cye.FromTape(t.ID,t.type,t.arguments);O[wSt]=t=>Aye.FromTape(t.ID,t.type,t.arguments);O[RSt]=t=>Oye.FromTape(t.ID,t.type,t.arguments);O[MSt]=t=>Pye.FromTape(t.ID,t.type,t.arguments);O[DSt]=t=>Nye.FromTape(t.ID,t.type,t.arguments);O[CSt]=t=>Lye.FromTape(t.ID,t.type,t.arguments);O[ASt]=t=>Fye.FromTape(t.ID,t.type,t.arguments);O[OSt]=t=>Hye.FromTape(t.ID,t.type,t.arguments);O[PSt]=t=>Uye.FromTape(t.ID,t.type,t.arguments);O[NSt]=t=>Bye.FromTape(t.ID,t.type,t.arguments);O[LSt]=t=>kye.FromTape(t.ID,t.type,t.arguments);O[FSt]=t=>Gye.FromTape(t.ID,t.type,t.arguments);O[HSt]=t=>Vye.FromTape(t.ID,t.type,t.arguments);O[USt]=t=>zye.FromTape(t.ID,t.type,t.arguments);O[BSt]=t=>jye.FromTape(t.ID,t.type,t.arguments);O[kSt]=t=>Wye.FromTape(t.ID,t.type,t.arguments);O[GSt]=t=>qye.FromTape(t.ID,t.type,t.arguments);O[VSt]=t=>Yye.FromTape(t.ID,t.type,t.arguments);O[zSt]=t=>Xye.FromTape(t.ID,t.type,t.arguments);O[jSt]=t=>$ye.FromTape(t.ID,t.type,t.arguments);O[WSt]=t=>Zye.FromTape(t.ID,t.type,t.arguments);O[qSt]=t=>Kye.FromTape(t.ID,t.type,t.arguments);O[YSt]=t=>Jye.FromTape(t.ID,t.type,t.arguments);O[XSt]=t=>Qye.FromTape(t.ID,t.type,t.arguments);O[$St]=t=>eTe.FromTape(t.ID,t.type,t.arguments);O[ZSt]=t=>tTe.FromTape(t.ID,t.type,t.arguments);O[KSt]=t=>rTe.FromTape(t.ID,t.type,t.arguments);O[JSt]=t=>iTe.FromTape(t.ID,t.type,t.arguments);O[QSt]=t=>nTe.FromTape(t.ID,t.type,t.arguments);O[e_t]=t=>sTe.FromTape(t.ID,t.type,t.arguments);O[t_t]=t=>aTe.FromTape(t.ID,t.type,t.arguments);O[r_t]=t=>oTe.FromTape(t.ID,t.type,t.arguments);O[i_t]=t=>lTe.FromTape(t.ID,t.type,t.arguments);O[n_t]=t=>cTe.FromTape(t.ID,t.type,t.arguments);O[s_t]=t=>uTe.FromTape(t.ID,t.type,t.arguments);O[a_t]=t=>hTe.FromTape(t.ID,t.type,t.arguments);O[o_t]=t=>pTe.FromTape(t.ID,t.type,t.arguments);O[l_t]=t=>dTe.FromTape(t.ID,t.type,t.arguments);O[c_t]=t=>fTe.FromTape(t.ID,t.type,t.arguments);O[u_t]=t=>mTe.FromTape(t.ID,t.type,t.arguments);O[h_t]=t=>gTe.FromTape(t.ID,t.type,t.arguments);O[p_t]=t=>vTe.FromTape(t.ID,t.type,t.arguments);O[d_t]=t=>yTe.FromTape(t.ID,t.type,t.arguments);O[f_t]=t=>TTe.FromTape(t.ID,t.type,t.arguments);O[m_t]=t=>ETe.FromTape(t.ID,t.type,t.arguments);O[g_t]=t=>bTe.FromTape(t.ID,t.type,t.arguments);O[v_t]=t=>xTe.FromTape(t.ID,t.type,t.arguments);O[y_t]=t=>ITe.FromTape(t.ID,t.type,t.arguments);O[T_t]=t=>STe.FromTape(t.ID,t.type,t.arguments);O[E_t]=t=>_Te.FromTape(t.ID,t.type,t.arguments);O[b_t]=t=>wTe.FromTape(t.ID,t.type,t.arguments);O[x_t]=t=>RTe.FromTape(t.ID,t.type,t.arguments);O[I_t]=t=>MTe.FromTape(t.ID,t.type,t.arguments);O[S_t]=t=>DTe.FromTape(t.ID,t.type,t.arguments);O[__t]=t=>CTe.FromTape(t.ID,t.type,t.arguments);O[w_t]=t=>ATe.FromTape(t.ID,t.type,t.arguments);O[R_t]=t=>OTe.FromTape(t.ID,t.type,t.arguments);O[M_t]=t=>PTe.FromTape(t.ID,t.type,t.arguments);O[D_t]=t=>NTe.FromTape(t.ID,t.type,t.arguments);O[C_t]=t=>LTe.FromTape(t.ID,t.type,t.arguments);O[A_t]=t=>FTe.FromTape(t.ID,t.type,t.arguments);O[O_t]=t=>HTe.FromTape(t.ID,t.type,t.arguments);O[P_t]=t=>UTe.FromTape(t.ID,t.type,t.arguments);O[N_t]=t=>BTe.FromTape(t.ID,t.type,t.arguments);O[L_t]=t=>kTe.FromTape(t.ID,t.type,t.arguments);O[F_t]=t=>GTe.FromTape(t.ID,t.type,t.arguments);O[H_t]=t=>VTe.FromTape(t.ID,t.type,t.arguments);O[U_t]=t=>zTe.FromTape(t.ID,t.type,t.arguments);O[B_t]=t=>jTe.FromTape(t.ID,t.type,t.arguments);O[k_t]=t=>WTe.FromTape(t.ID,t.type,t.arguments);O[G_t]=t=>qTe.FromTape(t.ID,t.type,t.arguments);O[V_t]=t=>YTe.FromTape(t.ID,t.type,t.arguments);O[z_t]=t=>XTe.FromTape(t.ID,t.type,t.arguments);O[j_t]=t=>$Te.FromTape(t.ID,t.type,t.arguments);O[W_t]=t=>ZTe.FromTape(t.ID,t.type,t.arguments);O[q_t]=t=>KTe.FromTape(t.ID,t.type,t.arguments);O[Y_t]=t=>JTe.FromTape(t.ID,t.type,t.arguments);O[X_t]=t=>QTe.FromTape(t.ID,t.type,t.arguments);O[$_t]=t=>eEe.FromTape(t.ID,t.type,t.arguments);O[Z_t]=t=>tEe.FromTape(t.ID,t.type,t.arguments);O[K_t]=t=>rEe.FromTape(t.ID,t.type,t.arguments);O[J_t]=t=>iEe.FromTape(t.ID,t.type,t.arguments);O[Q_t]=t=>nEe.FromTape(t.ID,t.type,t.arguments);O[ewt]=t=>sEe.FromTape(t.ID,t.type,t.arguments);O[twt]=t=>aEe.FromTape(t.ID,t.type,t.arguments);O[rwt]=t=>oEe.FromTape(t.ID,t.type,t.arguments);O[iwt]=t=>lEe.FromTape(t.ID,t.type,t.arguments);O[nwt]=t=>cEe.FromTape(t.ID,t.type,t.arguments);O[swt]=t=>uEe.FromTape(t.ID,t.type,t.arguments);O[awt]=t=>hEe.FromTape(t.ID,t.type,t.arguments);O[owt]=t=>pEe.FromTape(t.ID,t.type,t.arguments);O[lwt]=t=>dEe.FromTape(t.ID,t.type,t.arguments);O[cwt]=t=>fEe.FromTape(t.ID,t.type,t.arguments);O[uwt]=t=>mEe.FromTape(t.ID,t.type,t.arguments);O[hwt]=t=>gEe.FromTape(t.ID,t.type,t.arguments);O[pwt]=t=>vEe.FromTape(t.ID,t.type,t.arguments);O[dwt]=t=>yEe.FromTape(t.ID,t.type,t.arguments);O[fwt]=t=>TEe.FromTape(t.ID,t.type,t.arguments);O[mwt]=t=>EEe.FromTape(t.ID,t.type,t.arguments);O[gwt]=t=>bEe.FromTape(t.ID,t.type,t.arguments);O[vwt]=t=>xEe.FromTape(t.ID,t.type,t.arguments);O[ywt]=t=>IEe.FromTape(t.ID,t.type,t.arguments);O[Twt]=t=>SEe.FromTape(t.ID,t.type,t.arguments);O[Ewt]=t=>_Ee.FromTape(t.ID,t.type,t.arguments);O[bwt]=t=>wEe.FromTape(t.ID,t.type,t.arguments);O[xwt]=t=>REe.FromTape(t.ID,t.type,t.arguments);O[Iwt]=t=>MEe.FromTape(t.ID,t.type,t.arguments);O[Swt]=t=>DEe.FromTape(t.ID,t.type,t.arguments);O[_wt]=t=>CEe.FromTape(t.ID,t.type,t.arguments);O[wwt]=t=>AEe.FromTape(t.ID,t.type,t.arguments);O[Rwt]=t=>OEe.FromTape(t.ID,t.type,t.arguments);O[Mwt]=t=>PEe.FromTape(t.ID,t.type,t.arguments);O[Dwt]=t=>NEe.FromTape(t.ID,t.type,t.arguments);O[Cwt]=t=>LEe.FromTape(t.ID,t.type,t.arguments);O[Awt]=t=>FEe.FromTape(t.ID,t.type,t.arguments);O[Owt]=t=>HEe.FromTape(t.ID,t.type,t.arguments);O[Pwt]=t=>UEe.FromTape(t.ID,t.type,t.arguments);O[Nwt]=t=>BEe.FromTape(t.ID,t.type,t.arguments);O[Lwt]=t=>kEe.FromTape(t.ID,t.type,t.arguments);O[Fwt]=t=>GEe.FromTape(t.ID,t.type,t.arguments);O[Hwt]=t=>VEe.FromTape(t.ID,t.type,t.arguments);O[Uwt]=t=>zEe.FromTape(t.ID,t.type,t.arguments);O[Bwt]=t=>jEe.FromTape(t.ID,t.type,t.arguments);O[kwt]=t=>WEe.FromTape(t.ID,t.type,t.arguments);O[Gwt]=t=>qEe.FromTape(t.ID,t.type,t.arguments);O[Vwt]=t=>YEe.FromTape(t.ID,t.type,t.arguments);O[zwt]=t=>XEe.FromTape(t.ID,t.type,t.arguments);O[jwt]=t=>$Ee.FromTape(t.ID,t.type,t.arguments);O[Wwt]=t=>ZEe.FromTape(t.ID,t.type,t.arguments);O[qwt]=t=>KEe.FromTape(t.ID,t.type,t.arguments);O[Ywt]=t=>JEe.FromTape(t.ID,t.type,t.arguments);O[Xwt]=t=>QEe.FromTape(t.ID,t.type,t.arguments);O[$wt]=t=>e1e.FromTape(t.ID,t.type,t.arguments);O[Zwt]=t=>t1e.FromTape(t.ID,t.type,t.arguments);O[Kwt]=t=>r1e.FromTape(t.ID,t.type,t.arguments);O[Jwt]=t=>i1e.FromTape(t.ID,t.type,t.arguments);O[Qwt]=t=>n1e.FromTape(t.ID,t.type,t.arguments);O[eRt]=t=>s1e.FromTape(t.ID,t.type,t.arguments);O[tRt]=t=>a1e.FromTape(t.ID,t.type,t.arguments);O[rRt]=t=>o1e.FromTape(t.ID,t.type,t.arguments);O[iRt]=t=>l1e.FromTape(t.ID,t.type,t.arguments);O[nRt]=t=>c1e.FromTape(t.ID,t.type,t.arguments);O[sRt]=t=>u1e.FromTape(t.ID,t.type,t.arguments);O[aRt]=t=>h1e.FromTape(t.ID,t.type,t.arguments);O[oRt]=t=>p1e.FromTape(t.ID,t.type,t.arguments);O[lRt]=t=>d1e.FromTape(t.ID,t.type,t.arguments);O[cRt]=t=>f1e.FromTape(t.ID,t.type,t.arguments);O[uRt]=t=>m1e.FromTape(t.ID,t.type,t.arguments);O[hRt]=t=>g1e.FromTape(t.ID,t.type,t.arguments);O[pRt]=t=>v1e.FromTape(t.ID,t.type,t.arguments);O[dRt]=t=>y1e.FromTape(t.ID,t.type,t.arguments);O[fRt]=t=>T1e.FromTape(t.ID,t.type,t.arguments);O[mRt]=t=>E1e.FromTape(t.ID,t.type,t.arguments);O[gRt]=t=>b1e.FromTape(t.ID,t.type,t.arguments);O[vRt]=t=>x1e.FromTape(t.ID,t.type,t.arguments);O[yRt]=t=>I1e.FromTape(t.ID,t.type,t.arguments);O[TRt]=t=>S1e.FromTape(t.ID,t.type,t.arguments);O[ERt]=t=>_1e.FromTape(t.ID,t.type,t.arguments);O[bRt]=t=>w1e.FromTape(t.ID,t.type,t.arguments);O[xRt]=t=>R1e.FromTape(t.ID,t.type,t.arguments);O[IRt]=t=>M1e.FromTape(t.ID,t.type,t.arguments);O[SRt]=t=>D1e.FromTape(t.ID,t.type,t.arguments);O[_Rt]=t=>C1e.FromTape(t.ID,t.type,t.arguments);O[wRt]=t=>A1e.FromTape(t.ID,t.type,t.arguments);O[RRt]=t=>O1e.FromTape(t.ID,t.type,t.arguments);O[MRt]=t=>P1e.FromTape(t.ID,t.type,t.arguments);O[DRt]=t=>N1e.FromTape(t.ID,t.type,t.arguments);O[CRt]=t=>L1e.FromTape(t.ID,t.type,t.arguments);O[ARt]=t=>F1e.FromTape(t.ID,t.type,t.arguments);O[ORt]=t=>H1e.FromTape(t.ID,t.type,t.arguments);O[PRt]=t=>U1e.FromTape(t.ID,t.type,t.arguments);O[NRt]=t=>B1e.FromTape(t.ID,t.type,t.arguments);O[LRt]=t=>k1e.FromTape(t.ID,t.type,t.arguments);O[FRt]=t=>G1e.FromTape(t.ID,t.type,t.arguments);O[HRt]=t=>V1e.FromTape(t.ID,t.type,t.arguments);O[URt]=t=>z1e.FromTape(t.ID,t.type,t.arguments);O[BRt]=t=>j1e.FromTape(t.ID,t.type,t.arguments);O[tA]=t=>W1e.FromTape(t.ID,t.type,t.arguments);O[kRt]=t=>q1e.FromTape(t.ID,t.type,t.arguments);O[GRt]=t=>Y1e.FromTape(t.ID,t.type,t.arguments);O[VRt]=t=>X1e.FromTape(t.ID,t.type,t.arguments);O[zRt]=t=>$1e.FromTape(t.ID,t.type,t.arguments);O[jRt]=t=>Z1e.FromTape(t.ID,t.type,t.arguments);O[WRt]=t=>K1e.FromTape(t.ID,t.type,t.arguments);O[qRt]=t=>J1e.FromTape(t.ID,t.type,t.arguments);O[YRt]=t=>Q1e.FromTape(t.ID,t.type,t.arguments);O[XRt]=t=>ebe.FromTape(t.ID,t.type,t.arguments);O[$Rt]=t=>tbe.FromTape(t.ID,t.type,t.arguments);O[ZRt]=t=>rbe.FromTape(t.ID,t.type,t.arguments);O[KRt]=t=>ibe.FromTape(t.ID,t.type,t.arguments);O[JRt]=t=>nbe.FromTape(t.ID,t.type,t.arguments);O[QRt]=t=>sbe.FromTape(t.ID,t.type,t.arguments);O[eMt]=t=>abe.FromTape(t.ID,t.type,t.arguments);O[tMt]=t=>obe.FromTape(t.ID,t.type,t.arguments);O[rMt]=t=>lbe.FromTape(t.ID,t.type,t.arguments);O[iMt]=t=>cbe.FromTape(t.ID,t.type,t.arguments);O[nMt]=t=>ube.FromTape(t.ID,t.type,t.arguments);O[sMt]=t=>hbe.FromTape(t.ID,t.type,t.arguments);O[aMt]=t=>pbe.FromTape(t.ID,t.type,t.arguments);O[oMt]=t=>dbe.FromTape(t.ID,t.type,t.arguments);O[lMt]=t=>fbe.FromTape(t.ID,t.type,t.arguments);O[cMt]=t=>mbe.FromTape(t.ID,t.type,t.arguments);O[uMt]=t=>gbe.FromTape(t.ID,t.type,t.arguments);O[hMt]=t=>vbe.FromTape(t.ID,t.type,t.arguments);O[pMt]=t=>ybe.FromTape(t.ID,t.type,t.arguments);O[dMt]=t=>Tbe.FromTape(t.ID,t.type,t.arguments);O[fMt]=t=>Ebe.FromTape(t.ID,t.type,t.arguments);O[mMt]=t=>bbe.FromTape(t.ID,t.type,t.arguments);O[gMt]=t=>xbe.FromTape(t.ID,t.type,t.arguments);O[vMt]=t=>Ibe.FromTape(t.ID,t.type,t.arguments);O[yMt]=t=>Sbe.FromTape(t.ID,t.type,t.arguments);O[TMt]=t=>_be.FromTape(t.ID,t.type,t.arguments);O[EMt]=t=>wbe.FromTape(t.ID,t.type,t.arguments);O[bMt]=t=>Rbe.FromTape(t.ID,t.type,t.arguments);O[xMt]=t=>Mbe.FromTape(t.ID,t.type,t.arguments);O[IMt]=t=>Dbe.FromTape(t.ID,t.type,t.arguments);O[SMt]=t=>Cbe.FromTape(t.ID,t.type,t.arguments);O[_Mt]=t=>Abe.FromTape(t.ID,t.type,t.arguments);O[wMt]=t=>Obe.FromTape(t.ID,t.type,t.arguments);O[RMt]=t=>Pbe.FromTape(t.ID,t.type,t.arguments);O[MMt]=t=>Nbe.FromTape(t.ID,t.type,t.arguments);O[DMt]=t=>Lbe.FromTape(t.ID,t.type,t.arguments);O[CMt]=t=>Fbe.FromTape(t.ID,t.type,t.arguments);O[AMt]=t=>Hbe.FromTape(t.ID,t.type,t.arguments);O[OMt]=t=>Ube.FromTape(t.ID,t.type,t.arguments);O[PMt]=t=>Bbe.FromTape(t.ID,t.type,t.arguments);O[NMt]=t=>kbe.FromTape(t.ID,t.type,t.arguments);O[LMt]=t=>Gbe.FromTape(t.ID,t.type,t.arguments);O[FMt]=t=>Vbe.FromTape(t.ID,t.type,t.arguments);O[HMt]=t=>zbe.FromTape(t.ID,t.type,t.arguments);O[UMt]=t=>jbe.FromTape(t.ID,t.type,t.arguments);O[BMt]=t=>Wbe.FromTape(t.ID,t.type,t.arguments);O[kMt]=t=>qbe.FromTape(t.ID,t.type,t.arguments);O[GMt]=t=>Ybe.FromTape(t.ID,t.type,t.arguments);O[VMt]=t=>Xbe.FromTape(t.ID,t.type,t.arguments);O[zMt]=t=>$be.FromTape(t.ID,t.type,t.arguments);O[Ck]=t=>Zbe.FromTape(t.ID,t.type,t.arguments);O[jMt]=t=>Kbe.FromTape(t.ID,t.type,t.arguments);O[WMt]=t=>Jbe.FromTape(t.ID,t.type,t.arguments);O[qMt]=t=>Qbe.FromTape(t.ID,t.type,t.arguments);O[YMt]=t=>exe.FromTape(t.ID,t.type,t.arguments);O[XMt]=t=>txe.FromTape(t.ID,t.type,t.arguments);O[$Mt]=t=>rxe.FromTape(t.ID,t.type,t.arguments);O[ZMt]=t=>ixe.FromTape(t.ID,t.type,t.arguments);O[KMt]=t=>nxe.FromTape(t.ID,t.type,t.arguments);O[JMt]=t=>sxe.FromTape(t.ID,t.type,t.arguments);O[QMt]=t=>axe.FromTape(t.ID,t.type,t.arguments);O[eDt]=t=>oxe.FromTape(t.ID,t.type,t.arguments);O[tDt]=t=>lxe.FromTape(t.ID,t.type,t.arguments);O[rDt]=t=>cxe.FromTape(t.ID,t.type,t.arguments);O[iDt]=t=>uxe.FromTape(t.ID,t.type,t.arguments);O[Ak]=t=>hxe.FromTape(t.ID,t.type,t.arguments);O[nDt]=t=>pxe.FromTape(t.ID,t.type,t.arguments);O[sDt]=t=>dxe.FromTape(t.ID,t.type,t.arguments);O[aDt]=t=>fxe.FromTape(t.ID,t.type,t.arguments);O[oDt]=t=>mxe.FromTape(t.ID,t.type,t.arguments);O[lDt]=t=>gxe.FromTape(t.ID,t.type,t.arguments);O[cDt]=t=>vxe.FromTape(t.ID,t.type,t.arguments);O[uDt]=t=>yxe.FromTape(t.ID,t.type,t.arguments);O[hDt]=t=>Txe.FromTape(t.ID,t.type,t.arguments);O[pDt]=t=>Exe.FromTape(t.ID,t.type,t.arguments);O[Ok]=t=>bxe.FromTape(t.ID,t.type,t.arguments);O[dDt]=t=>xxe.FromTape(t.ID,t.type,t.arguments);O[fDt]=t=>Ixe.FromTape(t.ID,t.type,t.arguments);O[mDt]=t=>Sxe.FromTape(t.ID,t.type,t.arguments);O[gDt]=t=>_xe.FromTape(t.ID,t.type,t.arguments);O[vDt]=t=>wxe.FromTape(t.ID,t.type,t.arguments);O[yDt]=t=>Rxe.FromTape(t.ID,t.type,t.arguments);O[Pk]=t=>Mxe.FromTape(t.ID,t.type,t.arguments);O[TDt]=t=>Dxe.FromTape(t.ID,t.type,t.arguments);O[Nk]=t=>Cxe.FromTape(t.ID,t.type,t.arguments);O[EDt]=t=>Axe.FromTape(t.ID,t.type,t.arguments);O[bDt]=t=>Oxe.FromTape(t.ID,t.type,t.arguments);O[xDt]=t=>Pxe.FromTape(t.ID,t.type,t.arguments);O[IDt]=t=>Nxe.FromTape(t.ID,t.type,t.arguments);O[SDt]=t=>Lxe.FromTape(t.ID,t.type,t.arguments);O[_Dt]=t=>Fxe.FromTape(t.ID,t.type,t.arguments);O[wDt]=t=>Hxe.FromTape(t.ID,t.type,t.arguments);O[RDt]=t=>Uxe.FromTape(t.ID,t.type,t.arguments);O[MDt]=t=>Bxe.FromTape(t.ID,t.type,t.arguments);O[DDt]=t=>kxe.FromTape(t.ID,t.type,t.arguments);O[CDt]=t=>Gxe.FromTape(t.ID,t.type,t.arguments);O[ADt]=t=>Vxe.FromTape(t.ID,t.type,t.arguments);O[ODt]=t=>zxe.FromTape(t.ID,t.type,t.arguments);O[PDt]=t=>jxe.FromTape(t.ID,t.type,t.arguments);O[NDt]=t=>Wxe.FromTape(t.ID,t.type,t.arguments);O[LDt]=t=>qxe.FromTape(t.ID,t.type,t.arguments);O[FDt]=t=>Yxe.FromTape(t.ID,t.type,t.arguments);O[HDt]=t=>Xxe.FromTape(t.ID,t.type,t.arguments);O[UDt]=t=>$xe.FromTape(t.ID,t.type,t.arguments);O[BDt]=t=>Zxe.FromTape(t.ID,t.type,t.arguments);O[kDt]=t=>Kxe.FromTape(t.ID,t.type,t.arguments);O[GDt]=t=>Jxe.FromTape(t.ID,t.type,t.arguments);O[VDt]=t=>Qxe.FromTape(t.ID,t.type,t.arguments);O[zDt]=t=>eIe.FromTape(t.ID,t.type,t.arguments);O[jDt]=t=>tIe.FromTape(t.ID,t.type,t.arguments);O[WDt]=t=>rIe.FromTape(t.ID,t.type,t.arguments);O[qDt]=t=>iIe.FromTape(t.ID,t.type,t.arguments);O[YDt]=t=>nIe.FromTape(t.ID,t.type,t.arguments);O[XDt]=t=>sIe.FromTape(t.ID,t.type,t.arguments);O[$Dt]=t=>aIe.FromTape(t.ID,t.type,t.arguments);O[ZDt]=t=>oIe.FromTape(t.ID,t.type,t.arguments);O[KDt]=t=>lIe.FromTape(t.ID,t.type,t.arguments);O[JDt]=t=>cIe.FromTape(t.ID,t.type,t.arguments);O[QDt]=t=>uIe.FromTape(t.ID,t.type,t.arguments);O[eCt]=t=>hIe.FromTape(t.ID,t.type,t.arguments);O[tCt]=t=>pIe.FromTape(t.ID,t.type,t.arguments);O[rCt]=t=>dIe.FromTape(t.ID,t.type,t.arguments);O[iCt]=t=>fIe.FromTape(t.ID,t.type,t.arguments);O[nCt]=t=>mIe.FromTape(t.ID,t.type,t.arguments);O[sCt]=t=>gIe.FromTape(t.ID,t.type,t.arguments);O[aCt]=t=>vIe.FromTape(t.ID,t.type,t.arguments);O[oCt]=t=>yIe.FromTape(t.ID,t.type,t.arguments);O[lCt]=t=>TIe.FromTape(t.ID,t.type,t.arguments);O[cCt]=t=>EIe.FromTape(t.ID,t.type,t.arguments);O[uCt]=t=>bIe.FromTape(t.ID,t.type,t.arguments);O[hCt]=t=>xIe.FromTape(t.ID,t.type,t.arguments);O[pCt]=t=>IIe.FromTape(t.ID,t.type,t.arguments);O[dCt]=t=>SIe.FromTape(t.ID,t.type,t.arguments);O[fCt]=t=>_Ie.FromTape(t.ID,t.type,t.arguments);O[mCt]=t=>wIe.FromTape(t.ID,t.type,t.arguments);O[gCt]=t=>RIe.FromTape(t.ID,t.type,t.arguments);O[vCt]=t=>MIe.FromTape(t.ID,t.type,t.arguments);O[yCt]=t=>DIe.FromTape(t.ID,t.type,t.arguments);O[TCt]=t=>CIe.FromTape(t.ID,t.type,t.arguments);O[ECt]=t=>AIe.FromTape(t.ID,t.type,t.arguments);O[bCt]=t=>OIe.FromTape(t.ID,t.type,t.arguments);O[xCt]=t=>PIe.FromTape(t.ID,t.type,t.arguments);O[ICt]=t=>NIe.FromTape(t.ID,t.type,t.arguments);O[SCt]=t=>LIe.FromTape(t.ID,t.type,t.arguments);O[_Ct]=t=>FIe.FromTape(t.ID,t.type,t.arguments);O[wCt]=t=>HIe.FromTape(t.ID,t.type,t.arguments);O[RCt]=t=>UIe.FromTape(t.ID,t.type,t.arguments);O[MCt]=t=>BIe.FromTape(t.ID,t.type,t.arguments);O[DCt]=t=>kIe.FromTape(t.ID,t.type,t.arguments);O[CCt]=t=>GIe.FromTape(t.ID,t.type,t.arguments);O[ACt]=t=>VIe.FromTape(t.ID,t.type,t.arguments);O[OCt]=t=>zIe.FromTape(t.ID,t.type,t.arguments);O[PCt]=t=>jIe.FromTape(t.ID,t.type,t.arguments);O[NCt]=t=>WIe.FromTape(t.ID,t.type,t.arguments);O[LCt]=t=>qIe.FromTape(t.ID,t.type,t.arguments);O[FCt]=t=>YIe.FromTape(t.ID,t.type,t.arguments);O[HCt]=t=>XIe.FromTape(t.ID,t.type,t.arguments);O[UCt]=t=>$Ie.FromTape(t.ID,t.type,t.arguments);O[BCt]=t=>ZIe.FromTape(t.ID,t.type,t.arguments);O[kCt]=t=>KIe.FromTape(t.ID,t.type,t.arguments);O[GCt]=t=>JIe.FromTape(t.ID,t.type,t.arguments);O[VCt]=t=>QIe.FromTape(t.ID,t.type,t.arguments);O[zCt]=t=>eSe.FromTape(t.ID,t.type,t.arguments);O[jCt]=t=>tSe.FromTape(t.ID,t.type,t.arguments);O[WCt]=t=>rSe.FromTape(t.ID,t.type,t.arguments);O[qCt]=t=>iSe.FromTape(t.ID,t.type,t.arguments);O[YCt]=t=>nSe.FromTape(t.ID,t.type,t.arguments);O[XCt]=t=>sSe.FromTape(t.ID,t.type,t.arguments);O[$Ct]=t=>aSe.FromTape(t.ID,t.type,t.arguments);O[ZCt]=t=>oSe.FromTape(t.ID,t.type,t.arguments);O[KCt]=t=>lSe.FromTape(t.ID,t.type,t.arguments);O[JCt]=t=>cSe.FromTape(t.ID,t.type,t.arguments);O[QCt]=t=>uSe.FromTape(t.ID,t.type,t.arguments);O[eAt]=t=>hSe.FromTape(t.ID,t.type,t.arguments);O[tAt]=t=>pSe.FromTape(t.ID,t.type,t.arguments);O[rAt]=t=>dSe.FromTape(t.ID,t.type,t.arguments);O[iAt]=t=>fSe.FromTape(t.ID,t.type,t.arguments);O[nAt]=t=>mSe.FromTape(t.ID,t.type,t.arguments);O[sAt]=t=>gSe.FromTape(t.ID,t.type,t.arguments);O[aAt]=t=>vSe.FromTape(t.ID,t.type,t.arguments);O[oAt]=t=>ySe.FromTape(t.ID,t.type,t.arguments);O[lAt]=t=>TSe.FromTape(t.ID,t.type,t.arguments);O[cAt]=t=>ESe.FromTape(t.ID,t.type,t.arguments);O[uAt]=t=>bSe.FromTape(t.ID,t.type,t.arguments);O[hAt]=t=>xSe.FromTape(t.ID,t.type,t.arguments);O[pAt]=t=>ISe.FromTape(t.ID,t.type,t.arguments);O[dAt]=t=>SSe.FromTape(t.ID,t.type,t.arguments);O[fAt]=t=>_Se.FromTape(t.ID,t.type,t.arguments);O[mAt]=t=>wSe.FromTape(t.ID,t.type,t.arguments);O[gAt]=t=>RSe.FromTape(t.ID,t.type,t.arguments);O[vAt]=t=>MSe.FromTape(t.ID,t.type,t.arguments);O[yAt]=t=>DSe.FromTape(t.ID,t.type,t.arguments);O[TAt]=t=>CSe.FromTape(t.ID,t.type,t.arguments);O[EAt]=t=>ASe.FromTape(t.ID,t.type,t.arguments);O[bAt]=t=>OSe.FromTape(t.ID,t.type,t.arguments);O[xAt]=t=>PSe.FromTape(t.ID,t.type,t.arguments);O[IAt]=t=>NSe.FromTape(t.ID,t.type,t.arguments);O[SAt]=t=>LSe.FromTape(t.ID,t.type,t.arguments);O[_At]=t=>FSe.FromTape(t.ID,t.type,t.arguments);O[wAt]=t=>HSe.FromTape(t.ID,t.type,t.arguments);O[RAt]=t=>USe.FromTape(t.ID,t.type,t.arguments);O[MAt]=t=>BSe.FromTape(t.ID,t.type,t.arguments);O[DAt]=t=>kSe.FromTape(t.ID,t.type,t.arguments);O[CAt]=t=>GSe.FromTape(t.ID,t.type,t.arguments);O[AAt]=t=>VSe.FromTape(t.ID,t.type,t.arguments);O[OAt]=t=>zSe.FromTape(t.ID,t.type,t.arguments);O[PAt]=t=>jSe.FromTape(t.ID,t.type,t.arguments);O[NAt]=t=>WSe.FromTape(t.ID,t.type,t.arguments);O[LAt]=t=>qSe.FromTape(t.ID,t.type,t.arguments);O[FAt]=t=>YSe.FromTape(t.ID,t.type,t.arguments);O[HAt]=t=>XSe.FromTape(t.ID,t.type,t.arguments);O[UAt]=t=>$Se.FromTape(t.ID,t.type,t.arguments);O[BAt]=t=>ZSe.FromTape(t.ID,t.type,t.arguments);O[kAt]=t=>KSe.FromTape(t.ID,t.type,t.arguments);O[GAt]=t=>JSe.FromTape(t.ID,t.type,t.arguments);O[VAt]=t=>QSe.FromTape(t.ID,t.type,t.arguments);O[zAt]=t=>e_e.FromTape(t.ID,t.type,t.arguments);O[jAt]=t=>t_e.FromTape(t.ID,t.type,t.arguments);O[WAt]=t=>r_e.FromTape(t.ID,t.type,t.arguments);O[qAt]=t=>i_e.FromTape(t.ID,t.type,t.arguments);O[YAt]=t=>n_e.FromTape(t.ID,t.type,t.arguments);O[XAt]=t=>s_e.FromTape(t.ID,t.type,t.arguments);O[$At]=t=>a_e.FromTape(t.ID,t.type,t.arguments);O[ZAt]=t=>o_e.FromTape(t.ID,t.type,t.arguments);O[KAt]=t=>l_e.FromTape(t.ID,t.type,t.arguments);O[JAt]=t=>c_e.FromTape(t.ID,t.type,t.arguments);O[QAt]=t=>u_e.FromTape(t.ID,t.type,t.arguments);O[eOt]=t=>h_e.FromTape(t.ID,t.type,t.arguments);O[tOt]=t=>p_e.FromTape(t.ID,t.type,t.arguments);O[rOt]=t=>d_e.FromTape(t.ID,t.type,t.arguments);O[iOt]=t=>f_e.FromTape(t.ID,t.type,t.arguments);O[nOt]=t=>m_e.FromTape(t.ID,t.type,t.arguments);O[sOt]=t=>g_e.FromTape(t.ID,t.type,t.arguments);O[aOt]=t=>v_e.FromTape(t.ID,t.type,t.arguments);O[oOt]=t=>y_e.FromTape(t.ID,t.type,t.arguments);O[lOt]=t=>T_e.FromTape(t.ID,t.type,t.arguments);O[cOt]=t=>E_e.FromTape(t.ID,t.type,t.arguments);O[uOt]=t=>b_e.FromTape(t.ID,t.type,t.arguments);O[hOt]=t=>x_e.FromTape(t.ID,t.type,t.arguments);O[pOt]=t=>I_e.FromTape(t.ID,t.type,t.arguments);O[dOt]=t=>S_e.FromTape(t.ID,t.type,t.arguments);O[fOt]=t=>__e.FromTape(t.ID,t.type,t.arguments);O[mOt]=t=>w_e.FromTape(t.ID,t.type,t.arguments);O[gOt]=t=>R_e.FromTape(t.ID,t.type,t.arguments);O[vOt]=t=>M_e.FromTape(t.ID,t.type,t.arguments);O[yOt]=t=>D_e.FromTape(t.ID,t.type,t.arguments);O[TOt]=t=>C_e.FromTape(t.ID,t.type,t.arguments);O[EOt]=t=>A_e.FromTape(t.ID,t.type,t.arguments);O[bOt]=t=>O_e.FromTape(t.ID,t.type,t.arguments);O[xOt]=t=>P_e.FromTape(t.ID,t.type,t.arguments);O[IOt]=t=>N_e.FromTape(t.ID,t.type,t.arguments);O[SOt]=t=>L_e.FromTape(t.ID,t.type,t.arguments);O[_Ot]=t=>F_e.FromTape(t.ID,t.type,t.arguments);O[wOt]=t=>H_e.FromTape(t.ID,t.type,t.arguments);O[ROt]=t=>U_e.FromTape(t.ID,t.type,t.arguments);O[MOt]=t=>B_e.FromTape(t.ID,t.type,t.arguments);O[DOt]=t=>k_e.FromTape(t.ID,t.type,t.arguments);O[COt]=t=>G_e.FromTape(t.ID,t.type,t.arguments);O[AOt]=t=>V_e.FromTape(t.ID,t.type,t.arguments);O[OOt]=t=>z_e.FromTape(t.ID,t.type,t.arguments);O[POt]=t=>j_e.FromTape(t.ID,t.type,t.arguments);O[NOt]=t=>W_e.FromTape(t.ID,t.type,t.arguments);O[LOt]=t=>q_e.FromTape(t.ID,t.type,t.arguments);O[FOt]=t=>Y_e.FromTape(t.ID,t.type,t.arguments);O[HOt]=t=>X_e.FromTape(t.ID,t.type,t.arguments);O[UOt]=t=>$_e.FromTape(t.ID,t.type,t.arguments);O[BOt]=t=>Z_e.FromTape(t.ID,t.type,t.arguments);O[kOt]=t=>K_e.FromTape(t.ID,t.type,t.arguments);O[GOt]=t=>J_e.FromTape(t.ID,t.type,t.arguments);O[VOt]=t=>Q_e.FromTape(t.ID,t.type,t.arguments);O[zOt]=t=>ewe.FromTape(t.ID,t.type,t.arguments);O[jOt]=t=>twe.FromTape(t.ID,t.type,t.arguments);O[WOt]=t=>rwe.FromTape(t.ID,t.type,t.arguments);O[qOt]=t=>iwe.FromTape(t.ID,t.type,t.arguments);O[YOt]=t=>nwe.FromTape(t.ID,t.type,t.arguments);O[XOt]=t=>swe.FromTape(t.ID,t.type,t.arguments);O[$Ot]=t=>awe.FromTape(t.ID,t.type,t.arguments);O[ZOt]=t=>owe.FromTape(t.ID,t.type,t.arguments);O[KOt]=t=>lwe.FromTape(t.ID,t.type,t.arguments);O[JOt]=t=>cwe.FromTape(t.ID,t.type,t.arguments);O[QOt]=t=>uwe.FromTape(t.ID,t.type,t.arguments);O[e3t]=t=>hwe.FromTape(t.ID,t.type,t.arguments);O[t3t]=t=>pwe.FromTape(t.ID,t.type,t.arguments);O[r3t]=t=>dwe.FromTape(t.ID,t.type,t.arguments);O[i3t]=t=>fwe.FromTape(t.ID,t.type,t.arguments);O[n3t]=t=>mwe.FromTape(t.ID,t.type,t.arguments);O[s3t]=t=>gwe.FromTape(t.ID,t.type,t.arguments);O[a3t]=t=>vwe.FromTape(t.ID,t.type,t.arguments);O[o3t]=t=>ywe.FromTape(t.ID,t.type,t.arguments);O[l3t]=t=>Twe.FromTape(t.ID,t.type,t.arguments);O[c3t]=t=>Ewe.FromTape(t.ID,t.type,t.arguments);O[u3t]=t=>bwe.FromTape(t.ID,t.type,t.arguments);O[h3t]=t=>xwe.FromTape(t.ID,t.type,t.arguments);O[p3t]=t=>Iwe.FromTape(t.ID,t.type,t.arguments);O[d3t]=t=>Swe.FromTape(t.ID,t.type,t.arguments);O[f3t]=t=>_we.FromTape(t.ID,t.type,t.arguments);O[m3t]=t=>wwe.FromTape(t.ID,t.type,t.arguments);O[g3t]=t=>Rwe.FromTape(t.ID,t.type,t.arguments);O[v3t]=t=>Mwe.FromTape(t.ID,t.type,t.arguments);O[y3t]=t=>Dwe.FromTape(t.ID,t.type,t.arguments);O[T3t]=t=>Cwe.FromTape(t.ID,t.type,t.arguments);O[E3t]=t=>Awe.FromTape(t.ID,t.type,t.arguments);O[b3t]=t=>Owe.FromTape(t.ID,t.type,t.arguments);O[x3t]=t=>Pwe.FromTape(t.ID,t.type,t.arguments);O[I3t]=t=>Nwe.FromTape(t.ID,t.type,t.arguments);O[S3t]=t=>Lwe.FromTape(t.ID,t.type,t.arguments);O[_3t]=t=>Fwe.FromTape(t.ID,t.type,t.arguments);O[w3t]=t=>Hwe.FromTape(t.ID,t.type,t.arguments);O[R3t]=t=>Uwe.FromTape(t.ID,t.type,t.arguments);O[M3t]=t=>Bwe.FromTape(t.ID,t.type,t.arguments);O[D3t]=t=>kwe.FromTape(t.ID,t.type,t.arguments);O[C3t]=t=>Gwe.FromTape(t.ID,t.type,t.arguments);O[A3t]=t=>Vwe.FromTape(t.ID,t.type,t.arguments);O[O3t]=t=>zwe.FromTape(t.ID,t.type,t.arguments);O[P3t]=t=>jwe.FromTape(t.ID,t.type,t.arguments);O[N3t]=t=>Wwe.FromTape(t.ID,t.type,t.arguments);O[L3t]=t=>qwe.FromTape(t.ID,t.type,t.arguments);O[F3t]=t=>Ywe.FromTape(t.ID,t.type,t.arguments);O[H3t]=t=>Xwe.FromTape(t.ID,t.type,t.arguments);var Kg=class{constructor(t){this.value=t}};Kg.EMAIL="EMAIL";Kg.FAX="FAX";Kg.PHONE="PHONE";Kg.POST="POST";Kg.VERBAL="VERBAL";Kg.USERDEFINED="USERDEFINED";Kg.NOTDEFINED="NOTDEFINED";var pn=class{constructor(t){this.value=t}};pn.DEAD_LOAD_G="DEAD_LOAD_G";pn.COMPLETION_G1="COMPLETION_G1";pn.LIVE_LOAD_Q="LIVE_LOAD_Q";pn.SNOW_S="SNOW_S";pn.WIND_W="WIND_W";pn.PRESTRESSING_P="PRESTRESSING_P";pn.SETTLEMENT_U="SETTLEMENT_U";pn.TEMPERATURE_T="TEMPERATURE_T";pn.EARTHQUAKE_E="EARTHQUAKE_E";pn.FIRE="FIRE";pn.IMPULSE="IMPULSE";pn.IMPACT="IMPACT";pn.TRANSPORT="TRANSPORT";pn.ERECTION="ERECTION";pn.PROPPING="PROPPING";pn.SYSTEM_IMPERFECTION="SYSTEM_IMPERFECTION";pn.SHRINKAGE="SHRINKAGE";pn.CREEP="CREEP";pn.LACK_OF_FIT="LACK_OF_FIT";pn.BUOYANCY="BUOYANCY";pn.ICE="ICE";pn.CURRENT="CURRENT";pn.WAVE="WAVE";pn.RAIN="RAIN";pn.BRAKES="BRAKES";pn.USERDEFINED="USERDEFINED";pn.NOTDEFINED="NOTDEFINED";var $x=class{constructor(t){this.value=t}};$x.PERMANENT_G="PERMANENT_G";$x.VARIABLE_Q="VARIABLE_Q";$x.EXTRAORDINARY_A="EXTRAORDINARY_A";$x.USERDEFINED="USERDEFINED";$x.NOTDEFINED="NOTDEFINED";var Jg=class{constructor(t){this.value=t}};Jg.ELECTRICACTUATOR="ELECTRICACTUATOR";Jg.HANDOPERATEDACTUATOR="HANDOPERATEDACTUATOR";Jg.HYDRAULICACTUATOR="HYDRAULICACTUATOR";Jg.PNEUMATICACTUATOR="PNEUMATICACTUATOR";Jg.THERMOSTATICACTUATOR="THERMOSTATICACTUATOR";Jg.USERDEFINED="USERDEFINED";Jg.NOTDEFINED="NOTDEFINED";var Zx=class{constructor(t){this.value=t}};Zx.OFFICE="OFFICE";Zx.SITE="SITE";Zx.HOME="HOME";Zx.DISTRIBUTIONPOINT="DISTRIBUTIONPOINT";Zx.USERDEFINED="USERDEFINED";var Kx=class{constructor(t){this.value=t}};Kx.CONSTANTFLOW="CONSTANTFLOW";Kx.VARIABLEFLOWPRESSUREDEPENDANT="VARIABLEFLOWPRESSUREDEPENDANT";Kx.VARIABLEFLOWPRESSUREINDEPENDANT="VARIABLEFLOWPRESSUREINDEPENDANT";Kx.USERDEFINED="USERDEFINED";Kx.NOTDEFINED="NOTDEFINED";var fT=class{constructor(t){this.value=t}};fT.DIFFUSER="DIFFUSER";fT.GRILLE="GRILLE";fT.LOUVRE="LOUVRE";fT.REGISTER="REGISTER";fT.USERDEFINED="USERDEFINED";fT.NOTDEFINED="NOTDEFINED";var Hc=class{constructor(t){this.value=t}};Hc.FIXEDPLATECOUNTERFLOWEXCHANGER="FIXEDPLATECOUNTERFLOWEXCHANGER";Hc.FIXEDPLATECROSSFLOWEXCHANGER="FIXEDPLATECROSSFLOWEXCHANGER";Hc.FIXEDPLATEPARALLELFLOWEXCHANGER="FIXEDPLATEPARALLELFLOWEXCHANGER";Hc.ROTARYWHEEL="ROTARYWHEEL";Hc.RUNAROUNDCOILLOOP="RUNAROUNDCOILLOOP";Hc.HEATPIPE="HEATPIPE";Hc.TWINTOWERENTHALPYRECOVERYLOOPS="TWINTOWERENTHALPYRECOVERYLOOPS";Hc.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS="THERMOSIPHONSEALEDTUBEHEATEXCHANGERS";Hc.THERMOSIPHONCOILTYPEHEATEXCHANGERS="THERMOSIPHONCOILTYPEHEATEXCHANGERS";Hc.USERDEFINED="USERDEFINED";Hc.NOTDEFINED="NOTDEFINED";var Pf=class{constructor(t){this.value=t}};Pf.BELL="BELL";Pf.BREAKGLASSBUTTON="BREAKGLASSBUTTON";Pf.LIGHT="LIGHT";Pf.MANUALPULLBOX="MANUALPULLBOX";Pf.SIREN="SIREN";Pf.WHISTLE="WHISTLE";Pf.USERDEFINED="USERDEFINED";Pf.NOTDEFINED="NOTDEFINED";var Dde=class{constructor(t){this.value=t}};Dde.USERDEFINED="USERDEFINED";Dde.NOTDEFINED="NOTDEFINED";var Jx=class{constructor(t){this.value=t}};Jx.IN_PLANE_LOADING_2D="IN_PLANE_LOADING_2D";Jx.OUT_PLANE_LOADING_2D="OUT_PLANE_LOADING_2D";Jx.LOADING_3D="LOADING_3D";Jx.USERDEFINED="USERDEFINED";Jx.NOTDEFINED="NOTDEFINED";var mT=class{constructor(t){this.value=t}};mT.FIRST_ORDER_THEORY="FIRST_ORDER_THEORY";mT.SECOND_ORDER_THEORY="SECOND_ORDER_THEORY";mT.THIRD_ORDER_THEORY="THIRD_ORDER_THEORY";mT.FULL_NONLINEAR_THEORY="FULL_NONLINEAR_THEORY";mT.USERDEFINED="USERDEFINED";mT.NOTDEFINED="NOTDEFINED";var rA=class{constructor(t){this.value=t}};rA.ADD="ADD";rA.DIVIDE="DIVIDE";rA.MULTIPLY="MULTIPLY";rA.SUBTRACT="SUBTRACT";var Lk=class{constructor(t){this.value=t}};Lk.SITE="SITE";Lk.FACTORY="FACTORY";Lk.NOTDEFINED="NOTDEFINED";var $o=class{constructor(t){this.value=t}};$o.AMPLIFIER="AMPLIFIER";$o.CAMERA="CAMERA";$o.DISPLAY="DISPLAY";$o.MICROPHONE="MICROPHONE";$o.PLAYER="PLAYER";$o.PROJECTOR="PROJECTOR";$o.RECEIVER="RECEIVER";$o.SPEAKER="SPEAKER";$o.SWITCHER="SWITCHER";$o.TELEPHONE="TELEPHONE";$o.TUNER="TUNER";$o.USERDEFINED="USERDEFINED";$o.NOTDEFINED="NOTDEFINED";var gT=class{constructor(t){this.value=t}};gT.POLYLINE_FORM="POLYLINE_FORM";gT.CIRCULAR_ARC="CIRCULAR_ARC";gT.ELLIPTIC_ARC="ELLIPTIC_ARC";gT.PARABOLIC_ARC="PARABOLIC_ARC";gT.HYPERBOLIC_ARC="HYPERBOLIC_ARC";gT.UNSPECIFIED="UNSPECIFIED";var Uc=class{constructor(t){this.value=t}};Uc.PLANE_SURF="PLANE_SURF";Uc.CYLINDRICAL_SURF="CYLINDRICAL_SURF";Uc.CONICAL_SURF="CONICAL_SURF";Uc.SPHERICAL_SURF="SPHERICAL_SURF";Uc.TOROIDAL_SURF="TOROIDAL_SURF";Uc.SURF_OF_REVOLUTION="SURF_OF_REVOLUTION";Uc.RULED_SURF="RULED_SURF";Uc.GENERALISED_CONE="GENERALISED_CONE";Uc.QUADRIC_SURF="QUADRIC_SURF";Uc.SURF_OF_LINEAR_EXTRUSION="SURF_OF_LINEAR_EXTRUSION";Uc.UNSPECIFIED="UNSPECIFIED";var go=class{constructor(t){this.value=t}};go.BEAM="BEAM";go.JOIST="JOIST";go.HOLLOWCORE="HOLLOWCORE";go.LINTEL="LINTEL";go.SPANDREL="SPANDREL";go.T_BEAM="T_BEAM";go.GIRDER_SEGMENT="GIRDER_SEGMENT";go.DIAPHRAGM="DIAPHRAGM";go.PIERCAP="PIERCAP";go.HATSTONE="HATSTONE";go.CORNICE="CORNICE";go.EDGEBEAM="EDGEBEAM";go.USERDEFINED="USERDEFINED";go.NOTDEFINED="NOTDEFINED";var Qx=class{constructor(t){this.value=t}};Qx.FIXED_MOVEMENT="FIXED_MOVEMENT";Qx.GUIDED_LONGITUDINAL="GUIDED_LONGITUDINAL";Qx.GUIDED_TRANSVERSAL="GUIDED_TRANSVERSAL";Qx.FREE_MOVEMENT="FREE_MOVEMENT";Qx.NOTDEFINED="NOTDEFINED";var Xu=class{constructor(t){this.value=t}};Xu.CYLINDRICAL="CYLINDRICAL";Xu.SPHERICAL="SPHERICAL";Xu.ELASTOMERIC="ELASTOMERIC";Xu.POT="POT";Xu.GUIDE="GUIDE";Xu.ROCKER="ROCKER";Xu.ROLLER="ROLLER";Xu.DISK="DISK";Xu.USERDEFINED="USERDEFINED";Xu.NOTDEFINED="NOTDEFINED";var $u=class{constructor(t){this.value=t}};$u.GREATERTHAN="GREATERTHAN";$u.GREATERTHANOREQUALTO="GREATERTHANOREQUALTO";$u.LESSTHAN="LESSTHAN";$u.LESSTHANOREQUALTO="LESSTHANOREQUALTO";$u.EQUALTO="EQUALTO";$u.NOTEQUALTO="NOTEQUALTO";$u.INCLUDES="INCLUDES";$u.NOTINCLUDES="NOTINCLUDES";$u.INCLUDEDIN="INCLUDEDIN";$u.NOTINCLUDEDIN="NOTINCLUDEDIN";var iA=class{constructor(t){this.value=t}};iA.WATER="WATER";iA.STEAM="STEAM";iA.USERDEFINED="USERDEFINED";iA.NOTDEFINED="NOTDEFINED";var Fk=class{constructor(t){this.value=t}};Fk.UNION="UNION";Fk.INTERSECTION="INTERSECTION";Fk.DIFFERENCE="DIFFERENCE";var kl=class{constructor(t){this.value=t}};kl.ABUTMENT="ABUTMENT";kl.DECK="DECK";kl.DECK_SEGMENT="DECK_SEGMENT";kl.FOUNDATION="FOUNDATION";kl.PIER="PIER";kl.PIER_SEGMENT="PIER_SEGMENT";kl.PYLON="PYLON";kl.SUBSTRUCTURE="SUBSTRUCTURE";kl.SUPERSTRUCTURE="SUPERSTRUCTURE";kl.SURFACESTRUCTURE="SURFACESTRUCTURE";kl.USERDEFINED="USERDEFINED";kl.NOTDEFINED="NOTDEFINED";var Zu=class{constructor(t){this.value=t}};Zu.ARCHED="ARCHED";Zu.CABLE_STAYED="CABLE_STAYED";Zu.CANTILEVER="CANTILEVER";Zu.CULVERT="CULVERT";Zu.FRAMEWORK="FRAMEWORK";Zu.GIRDER="GIRDER";Zu.SUSPENSION="SUSPENSION";Zu.TRUSS="TRUSS";Zu.USERDEFINED="USERDEFINED";Zu.NOTDEFINED="NOTDEFINED";var eI=class{constructor(t){this.value=t}};eI.INSULATION="INSULATION";eI.PRECASTPANEL="PRECASTPANEL";eI.APRON="APRON";eI.USERDEFINED="USERDEFINED";eI.NOTDEFINED="NOTDEFINED";var Qg=class{constructor(t){this.value=t}};Qg.COMPLEX="COMPLEX";Qg.ELEMENT="ELEMENT";Qg.PARTIAL="PARTIAL";Qg.PROVISIONFORVOID="PROVISIONFORVOID";Qg.PROVISIONFORSPACE="PROVISIONFORSPACE";Qg.USERDEFINED="USERDEFINED";Qg.NOTDEFINED="NOTDEFINED";var Ku=class{constructor(t){this.value=t}};Ku.FENESTRATION="FENESTRATION";Ku.FOUNDATION="FOUNDATION";Ku.LOADBEARING="LOADBEARING";Ku.OUTERSHELL="OUTERSHELL";Ku.SHADING="SHADING";Ku.TRANSPORT="TRANSPORT";Ku.REINFORCING="REINFORCING";Ku.PRESTRESSING="PRESTRESSING";Ku.USERDEFINED="USERDEFINED";Ku.NOTDEFINED="NOTDEFINED";var Cde=class{constructor(t){this.value=t}};Cde.USERDEFINED="USERDEFINED";Cde.NOTDEFINED="NOTDEFINED";var vT=class{constructor(t){this.value=t}};vT.BEND="BEND";vT.CROSS="CROSS";vT.REDUCER="REDUCER";vT.TEE="TEE";vT.USERDEFINED="USERDEFINED";vT.NOTDEFINED="NOTDEFINED";var yT=class{constructor(t){this.value=t}};yT.CABLELADDERSEGMENT="CABLELADDERSEGMENT";yT.CABLETRAYSEGMENT="CABLETRAYSEGMENT";yT.CABLETRUNKINGSEGMENT="CABLETRUNKINGSEGMENT";yT.CONDUITSEGMENT="CONDUITSEGMENT";yT.USERDEFINED="USERDEFINED";yT.NOTDEFINED="NOTDEFINED";var e0=class{constructor(t){this.value=t}};e0.CONNECTOR="CONNECTOR";e0.ENTRY="ENTRY";e0.EXIT="EXIT";e0.JUNCTION="JUNCTION";e0.TRANSITION="TRANSITION";e0.USERDEFINED="USERDEFINED";e0.NOTDEFINED="NOTDEFINED";var TT=class{constructor(t){this.value=t}};TT.BUSBARSEGMENT="BUSBARSEGMENT";TT.CABLESEGMENT="CABLESEGMENT";TT.CONDUCTORSEGMENT="CONDUCTORSEGMENT";TT.CORESEGMENT="CORESEGMENT";TT.USERDEFINED="USERDEFINED";TT.NOTDEFINED="NOTDEFINED";var nA=class{constructor(t){this.value=t}};nA.WELL="WELL";nA.CAISSON="CAISSON";nA.USERDEFINED="USERDEFINED";nA.NOTDEFINED="NOTDEFINED";var tI=class{constructor(t){this.value=t}};tI.NOCHANGE="NOCHANGE";tI.MODIFIED="MODIFIED";tI.ADDED="ADDED";tI.DELETED="DELETED";tI.NOTDEFINED="NOTDEFINED";var rI=class{constructor(t){this.value=t}};rI.AIRCOOLED="AIRCOOLED";rI.WATERCOOLED="WATERCOOLED";rI.HEATRECOVERY="HEATRECOVERY";rI.USERDEFINED="USERDEFINED";rI.NOTDEFINED="NOTDEFINED";var Ade=class{constructor(t){this.value=t}};Ade.USERDEFINED="USERDEFINED";Ade.NOTDEFINED="NOTDEFINED";var kp=class{constructor(t){this.value=t}};kp.DXCOOLINGCOIL="DXCOOLINGCOIL";kp.ELECTRICHEATINGCOIL="ELECTRICHEATINGCOIL";kp.GASHEATINGCOIL="GASHEATINGCOIL";kp.HYDRONICCOIL="HYDRONICCOIL";kp.STEAMHEATINGCOIL="STEAMHEATINGCOIL";kp.WATERCOOLINGCOIL="WATERCOOLINGCOIL";kp.WATERHEATINGCOIL="WATERHEATINGCOIL";kp.USERDEFINED="USERDEFINED";kp.NOTDEFINED="NOTDEFINED";var t0=class{constructor(t){this.value=t}};t0.COLUMN="COLUMN";t0.PILASTER="PILASTER";t0.PIERSTEM="PIERSTEM";t0.PIERSTEM_SEGMENT="PIERSTEM_SEGMENT";t0.STANDCOLUMN="STANDCOLUMN";t0.USERDEFINED="USERDEFINED";t0.NOTDEFINED="NOTDEFINED";var vo=class{constructor(t){this.value=t}};vo.ANTENNA="ANTENNA";vo.COMPUTER="COMPUTER";vo.FAX="FAX";vo.GATEWAY="GATEWAY";vo.MODEM="MODEM";vo.NETWORKAPPLIANCE="NETWORKAPPLIANCE";vo.NETWORKBRIDGE="NETWORKBRIDGE";vo.NETWORKHUB="NETWORKHUB";vo.PRINTER="PRINTER";vo.REPEATER="REPEATER";vo.ROUTER="ROUTER";vo.SCANNER="SCANNER";vo.USERDEFINED="USERDEFINED";vo.NOTDEFINED="NOTDEFINED";var Ode=class{constructor(t){this.value=t}};Ode.P_COMPLEX="P_COMPLEX";Ode.Q_COMPLEX="Q_COMPLEX";var Gs=class{constructor(t){this.value=t}};Gs.DYNAMIC="DYNAMIC";Gs.RECIPROCATING="RECIPROCATING";Gs.ROTARY="ROTARY";Gs.SCROLL="SCROLL";Gs.TROCHOIDAL="TROCHOIDAL";Gs.SINGLESTAGE="SINGLESTAGE";Gs.BOOSTER="BOOSTER";Gs.OPENTYPE="OPENTYPE";Gs.HERMETIC="HERMETIC";Gs.SEMIHERMETIC="SEMIHERMETIC";Gs.WELDEDSHELLHERMETIC="WELDEDSHELLHERMETIC";Gs.ROLLINGPISTON="ROLLINGPISTON";Gs.ROTARYVANE="ROTARYVANE";Gs.SINGLESCREW="SINGLESCREW";Gs.TWINSCREW="TWINSCREW";Gs.USERDEFINED="USERDEFINED";Gs.NOTDEFINED="NOTDEFINED";var Gp=class{constructor(t){this.value=t}};Gp.AIRCOOLED="AIRCOOLED";Gp.EVAPORATIVECOOLED="EVAPORATIVECOOLED";Gp.WATERCOOLED="WATERCOOLED";Gp.WATERCOOLEDBRAZEDPLATE="WATERCOOLEDBRAZEDPLATE";Gp.WATERCOOLEDSHELLCOIL="WATERCOOLEDSHELLCOIL";Gp.WATERCOOLEDSHELLTUBE="WATERCOOLEDSHELLTUBE";Gp.WATERCOOLEDTUBEINTUBE="WATERCOOLEDTUBEINTUBE";Gp.USERDEFINED="USERDEFINED";Gp.NOTDEFINED="NOTDEFINED";var sA=class{constructor(t){this.value=t}};sA.ATPATH="ATPATH";sA.ATSTART="ATSTART";sA.ATEND="ATEND";sA.NOTDEFINED="NOTDEFINED";var iI=class{constructor(t){this.value=t}};iI.HARD="HARD";iI.SOFT="SOFT";iI.ADVISORY="ADVISORY";iI.USERDEFINED="USERDEFINED";iI.NOTDEFINED="NOTDEFINED";var Ju=class{constructor(t){this.value=t}};Ju.DEMOLISHING="DEMOLISHING";Ju.EARTHMOVING="EARTHMOVING";Ju.ERECTING="ERECTING";Ju.HEATING="HEATING";Ju.LIGHTING="LIGHTING";Ju.PAVING="PAVING";Ju.PUMPING="PUMPING";Ju.TRANSPORTING="TRANSPORTING";Ju.USERDEFINED="USERDEFINED";Ju.NOTDEFINED="NOTDEFINED";var Bc=class{constructor(t){this.value=t}};Bc.AGGREGATES="AGGREGATES";Bc.CONCRETE="CONCRETE";Bc.DRYWALL="DRYWALL";Bc.FUEL="FUEL";Bc.GYPSUM="GYPSUM";Bc.MASONRY="MASONRY";Bc.METAL="METAL";Bc.PLASTIC="PLASTIC";Bc.WOOD="WOOD";Bc.NOTDEFINED="NOTDEFINED";Bc.USERDEFINED="USERDEFINED";var aA=class{constructor(t){this.value=t}};aA.ASSEMBLY="ASSEMBLY";aA.FORMWORK="FORMWORK";aA.USERDEFINED="USERDEFINED";aA.NOTDEFINED="NOTDEFINED";var r0=class{constructor(t){this.value=t}};r0.FLOATING="FLOATING";r0.PROGRAMMABLE="PROGRAMMABLE";r0.PROPORTIONAL="PROPORTIONAL";r0.MULTIPOSITION="MULTIPOSITION";r0.TWOPOSITION="TWOPOSITION";r0.USERDEFINED="USERDEFINED";r0.NOTDEFINED="NOTDEFINED";var oA=class{constructor(t){this.value=t}};oA.ACTIVE="ACTIVE";oA.PASSIVE="PASSIVE";oA.USERDEFINED="USERDEFINED";oA.NOTDEFINED="NOTDEFINED";var nI=class{constructor(t){this.value=t}};nI.NATURALDRAFT="NATURALDRAFT";nI.MECHANICALINDUCEDDRAFT="MECHANICALINDUCEDDRAFT";nI.MECHANICALFORCEDDRAFT="MECHANICALFORCEDDRAFT";nI.USERDEFINED="USERDEFINED";nI.NOTDEFINED="NOTDEFINED";var Pde=class{constructor(t){this.value=t}};Pde.USERDEFINED="USERDEFINED";Pde.NOTDEFINED="NOTDEFINED";var Vp=class{constructor(t){this.value=t}};Vp.BUDGET="BUDGET";Vp.COSTPLAN="COSTPLAN";Vp.ESTIMATE="ESTIMATE";Vp.TENDER="TENDER";Vp.PRICEDBILLOFQUANTITIES="PRICEDBILLOFQUANTITIES";Vp.UNPRICEDBILLOFQUANTITIES="UNPRICEDBILLOFQUANTITIES";Vp.SCHEDULEOFRATES="SCHEDULEOFRATES";Vp.USERDEFINED="USERDEFINED";Vp.NOTDEFINED="NOTDEFINED";var Zo=class{constructor(t){this.value=t}};Zo.CEILING="CEILING";Zo.FLOORING="FLOORING";Zo.CLADDING="CLADDING";Zo.ROOFING="ROOFING";Zo.MOLDING="MOLDING";Zo.SKIRTINGBOARD="SKIRTINGBOARD";Zo.INSULATION="INSULATION";Zo.MEMBRANE="MEMBRANE";Zo.SLEEVING="SLEEVING";Zo.WRAPPING="WRAPPING";Zo.COPING="COPING";Zo.USERDEFINED="USERDEFINED";Zo.NOTDEFINED="NOTDEFINED";var lA=class{constructor(t){this.value=t}};lA.OFFICE="OFFICE";lA.SITE="SITE";lA.USERDEFINED="USERDEFINED";lA.NOTDEFINED="NOTDEFINED";var Nde=class{constructor(t){this.value=t}};Nde.USERDEFINED="USERDEFINED";Nde.NOTDEFINED="NOTDEFINED";var cA=class{constructor(t){this.value=t}};cA.LINEAR="LINEAR";cA.LOG_LINEAR="LOG_LINEAR";cA.LOG_LOG="LOG_LOG";cA.NOTDEFINED="NOTDEFINED";var Ko=class{constructor(t){this.value=t}};Ko.BACKDRAFTDAMPER="BACKDRAFTDAMPER";Ko.BALANCINGDAMPER="BALANCINGDAMPER";Ko.BLASTDAMPER="BLASTDAMPER";Ko.CONTROLDAMPER="CONTROLDAMPER";Ko.FIREDAMPER="FIREDAMPER";Ko.FIRESMOKEDAMPER="FIRESMOKEDAMPER";Ko.FUMEHOODEXHAUST="FUMEHOODEXHAUST";Ko.GRAVITYDAMPER="GRAVITYDAMPER";Ko.GRAVITYRELIEFDAMPER="GRAVITYRELIEFDAMPER";Ko.RELIEFDAMPER="RELIEFDAMPER";Ko.SMOKEDAMPER="SMOKEDAMPER";Ko.USERDEFINED="USERDEFINED";Ko.NOTDEFINED="NOTDEFINED";var sI=class{constructor(t){this.value=t}};sI.MEASURED="MEASURED";sI.PREDICTED="PREDICTED";sI.SIMULATED="SIMULATED";sI.USERDEFINED="USERDEFINED";sI.NOTDEFINED="NOTDEFINED";var dr=class{constructor(t){this.value=t}};dr.ANGULARVELOCITYUNIT="ANGULARVELOCITYUNIT";dr.AREADENSITYUNIT="AREADENSITYUNIT";dr.COMPOUNDPLANEANGLEUNIT="COMPOUNDPLANEANGLEUNIT";dr.DYNAMICVISCOSITYUNIT="DYNAMICVISCOSITYUNIT";dr.HEATFLUXDENSITYUNIT="HEATFLUXDENSITYUNIT";dr.INTEGERCOUNTRATEUNIT="INTEGERCOUNTRATEUNIT";dr.ISOTHERMALMOISTURECAPACITYUNIT="ISOTHERMALMOISTURECAPACITYUNIT";dr.KINEMATICVISCOSITYUNIT="KINEMATICVISCOSITYUNIT";dr.LINEARVELOCITYUNIT="LINEARVELOCITYUNIT";dr.MASSDENSITYUNIT="MASSDENSITYUNIT";dr.MASSFLOWRATEUNIT="MASSFLOWRATEUNIT";dr.MOISTUREDIFFUSIVITYUNIT="MOISTUREDIFFUSIVITYUNIT";dr.MOLECULARWEIGHTUNIT="MOLECULARWEIGHTUNIT";dr.SPECIFICHEATCAPACITYUNIT="SPECIFICHEATCAPACITYUNIT";dr.THERMALADMITTANCEUNIT="THERMALADMITTANCEUNIT";dr.THERMALCONDUCTANCEUNIT="THERMALCONDUCTANCEUNIT";dr.THERMALRESISTANCEUNIT="THERMALRESISTANCEUNIT";dr.THERMALTRANSMITTANCEUNIT="THERMALTRANSMITTANCEUNIT";dr.VAPORPERMEABILITYUNIT="VAPORPERMEABILITYUNIT";dr.VOLUMETRICFLOWRATEUNIT="VOLUMETRICFLOWRATEUNIT";dr.ROTATIONALFREQUENCYUNIT="ROTATIONALFREQUENCYUNIT";dr.TORQUEUNIT="TORQUEUNIT";dr.MOMENTOFINERTIAUNIT="MOMENTOFINERTIAUNIT";dr.LINEARMOMENTUNIT="LINEARMOMENTUNIT";dr.LINEARFORCEUNIT="LINEARFORCEUNIT";dr.PLANARFORCEUNIT="PLANARFORCEUNIT";dr.MODULUSOFELASTICITYUNIT="MODULUSOFELASTICITYUNIT";dr.SHEARMODULUSUNIT="SHEARMODULUSUNIT";dr.LINEARSTIFFNESSUNIT="LINEARSTIFFNESSUNIT";dr.ROTATIONALSTIFFNESSUNIT="ROTATIONALSTIFFNESSUNIT";dr.MODULUSOFSUBGRADEREACTIONUNIT="MODULUSOFSUBGRADEREACTIONUNIT";dr.ACCELERATIONUNIT="ACCELERATIONUNIT";dr.CURVATUREUNIT="CURVATUREUNIT";dr.HEATINGVALUEUNIT="HEATINGVALUEUNIT";dr.IONCONCENTRATIONUNIT="IONCONCENTRATIONUNIT";dr.LUMINOUSINTENSITYDISTRIBUTIONUNIT="LUMINOUSINTENSITYDISTRIBUTIONUNIT";dr.MASSPERLENGTHUNIT="MASSPERLENGTHUNIT";dr.MODULUSOFLINEARSUBGRADEREACTIONUNIT="MODULUSOFLINEARSUBGRADEREACTIONUNIT";dr.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT="MODULUSOFROTATIONALSUBGRADEREACTIONUNIT";dr.PHUNIT="PHUNIT";dr.ROTATIONALMASSUNIT="ROTATIONALMASSUNIT";dr.SECTIONAREAINTEGRALUNIT="SECTIONAREAINTEGRALUNIT";dr.SECTIONMODULUSUNIT="SECTIONMODULUSUNIT";dr.SOUNDPOWERLEVELUNIT="SOUNDPOWERLEVELUNIT";dr.SOUNDPOWERUNIT="SOUNDPOWERUNIT";dr.SOUNDPRESSURELEVELUNIT="SOUNDPRESSURELEVELUNIT";dr.SOUNDPRESSUREUNIT="SOUNDPRESSUREUNIT";dr.TEMPERATUREGRADIENTUNIT="TEMPERATUREGRADIENTUNIT";dr.TEMPERATURERATEOFCHANGEUNIT="TEMPERATURERATEOFCHANGEUNIT";dr.THERMALEXPANSIONCOEFFICIENTUNIT="THERMALEXPANSIONCOEFFICIENTUNIT";dr.WARPINGCONSTANTUNIT="WARPINGCONSTANTUNIT";dr.WARPINGMOMENTUNIT="WARPINGMOMENTUNIT";dr.USERDEFINED="USERDEFINED";var Lde=class{constructor(t){this.value=t}};Lde.POSITIVE="POSITIVE";Lde.NEGATIVE="NEGATIVE";var ET=class{constructor(t){this.value=t}};ET.ANCHORPLATE="ANCHORPLATE";ET.BRACKET="BRACKET";ET.SHOE="SHOE";ET.EXPANSION_JOINT_DEVICE="EXPANSION_JOINT_DEVICE";ET.USERDEFINED="USERDEFINED";ET.NOTDEFINED="NOTDEFINED";var Qu=class{constructor(t){this.value=t}};Qu.FORMEDDUCT="FORMEDDUCT";Qu.INSPECTIONCHAMBER="INSPECTIONCHAMBER";Qu.INSPECTIONPIT="INSPECTIONPIT";Qu.MANHOLE="MANHOLE";Qu.METERCHAMBER="METERCHAMBER";Qu.SUMP="SUMP";Qu.TRENCH="TRENCH";Qu.VALVECHAMBER="VALVECHAMBER";Qu.USERDEFINED="USERDEFINED";Qu.NOTDEFINED="NOTDEFINED";var bT=class{constructor(t){this.value=t}};bT.CABLE="CABLE";bT.CABLECARRIER="CABLECARRIER";bT.DUCT="DUCT";bT.PIPE="PIPE";bT.USERDEFINED="USERDEFINED";bT.NOTDEFINED="NOTDEFINED";var Lr=class{constructor(t){this.value=t}};Lr.AIRCONDITIONING="AIRCONDITIONING";Lr.AUDIOVISUAL="AUDIOVISUAL";Lr.CHEMICAL="CHEMICAL";Lr.CHILLEDWATER="CHILLEDWATER";Lr.COMMUNICATION="COMMUNICATION";Lr.COMPRESSEDAIR="COMPRESSEDAIR";Lr.CONDENSERWATER="CONDENSERWATER";Lr.CONTROL="CONTROL";Lr.CONVEYING="CONVEYING";Lr.DATA="DATA";Lr.DISPOSAL="DISPOSAL";Lr.DOMESTICCOLDWATER="DOMESTICCOLDWATER";Lr.DOMESTICHOTWATER="DOMESTICHOTWATER";Lr.DRAINAGE="DRAINAGE";Lr.EARTHING="EARTHING";Lr.ELECTRICAL="ELECTRICAL";Lr.ELECTROACOUSTIC="ELECTROACOUSTIC";Lr.EXHAUST="EXHAUST";Lr.FIREPROTECTION="FIREPROTECTION";Lr.FUEL="FUEL";Lr.GAS="GAS";Lr.HAZARDOUS="HAZARDOUS";Lr.HEATING="HEATING";Lr.LIGHTING="LIGHTING";Lr.LIGHTNINGPROTECTION="LIGHTNINGPROTECTION";Lr.MUNICIPALSOLIDWASTE="MUNICIPALSOLIDWASTE";Lr.OIL="OIL";Lr.OPERATIONAL="OPERATIONAL";Lr.POWERGENERATION="POWERGENERATION";Lr.RAINWATER="RAINWATER";Lr.REFRIGERATION="REFRIGERATION";Lr.SECURITY="SECURITY";Lr.SEWAGE="SEWAGE";Lr.SIGNAL="SIGNAL";Lr.STORMWATER="STORMWATER";Lr.TELEPHONE="TELEPHONE";Lr.TV="TV";Lr.VACUUM="VACUUM";Lr.VENT="VENT";Lr.VENTILATION="VENTILATION";Lr.WASTEWATER="WASTEWATER";Lr.WATERSUPPLY="WATERSUPPLY";Lr.USERDEFINED="USERDEFINED";Lr.NOTDEFINED="NOTDEFINED";var xT=class{constructor(t){this.value=t}};xT.PUBLIC="PUBLIC";xT.RESTRICTED="RESTRICTED";xT.CONFIDENTIAL="CONFIDENTIAL";xT.PERSONAL="PERSONAL";xT.USERDEFINED="USERDEFINED";xT.NOTDEFINED="NOTDEFINED";var aI=class{constructor(t){this.value=t}};aI.DRAFT="DRAFT";aI.FINALDRAFT="FINALDRAFT";aI.FINAL="FINAL";aI.REVISION="REVISION";aI.NOTDEFINED="NOTDEFINED";var zp=class{constructor(t){this.value=t}};zp.SWINGING="SWINGING";zp.DOUBLE_ACTING="DOUBLE_ACTING";zp.SLIDING="SLIDING";zp.FOLDING="FOLDING";zp.REVOLVING="REVOLVING";zp.ROLLINGUP="ROLLINGUP";zp.FIXEDPANEL="FIXEDPANEL";zp.USERDEFINED="USERDEFINED";zp.NOTDEFINED="NOTDEFINED";var uA=class{constructor(t){this.value=t}};uA.LEFT="LEFT";uA.MIDDLE="MIDDLE";uA.RIGHT="RIGHT";uA.NOTDEFINED="NOTDEFINED";var jp=class{constructor(t){this.value=t}};jp.ALUMINIUM="ALUMINIUM";jp.HIGH_GRADE_STEEL="HIGH_GRADE_STEEL";jp.STEEL="STEEL";jp.WOOD="WOOD";jp.ALUMINIUM_WOOD="ALUMINIUM_WOOD";jp.ALUMINIUM_PLASTIC="ALUMINIUM_PLASTIC";jp.PLASTIC="PLASTIC";jp.USERDEFINED="USERDEFINED";jp.NOTDEFINED="NOTDEFINED";var As=class{constructor(t){this.value=t}};As.SINGLE_SWING_LEFT="SINGLE_SWING_LEFT";As.SINGLE_SWING_RIGHT="SINGLE_SWING_RIGHT";As.DOUBLE_DOOR_SINGLE_SWING="DOUBLE_DOOR_SINGLE_SWING";As.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT";As.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT";As.DOUBLE_SWING_LEFT="DOUBLE_SWING_LEFT";As.DOUBLE_SWING_RIGHT="DOUBLE_SWING_RIGHT";As.DOUBLE_DOOR_DOUBLE_SWING="DOUBLE_DOOR_DOUBLE_SWING";As.SLIDING_TO_LEFT="SLIDING_TO_LEFT";As.SLIDING_TO_RIGHT="SLIDING_TO_RIGHT";As.DOUBLE_DOOR_SLIDING="DOUBLE_DOOR_SLIDING";As.FOLDING_TO_LEFT="FOLDING_TO_LEFT";As.FOLDING_TO_RIGHT="FOLDING_TO_RIGHT";As.DOUBLE_DOOR_FOLDING="DOUBLE_DOOR_FOLDING";As.REVOLVING="REVOLVING";As.ROLLINGUP="ROLLINGUP";As.USERDEFINED="USERDEFINED";As.NOTDEFINED="NOTDEFINED";var oI=class{constructor(t){this.value=t}};oI.DOOR="DOOR";oI.GATE="GATE";oI.TRAPDOOR="TRAPDOOR";oI.USERDEFINED="USERDEFINED";oI.NOTDEFINED="NOTDEFINED";var hs=class{constructor(t){this.value=t}};hs.SINGLE_SWING_LEFT="SINGLE_SWING_LEFT";hs.SINGLE_SWING_RIGHT="SINGLE_SWING_RIGHT";hs.DOUBLE_DOOR_SINGLE_SWING="DOUBLE_DOOR_SINGLE_SWING";hs.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT";hs.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT="DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT";hs.DOUBLE_SWING_LEFT="DOUBLE_SWING_LEFT";hs.DOUBLE_SWING_RIGHT="DOUBLE_SWING_RIGHT";hs.DOUBLE_DOOR_DOUBLE_SWING="DOUBLE_DOOR_DOUBLE_SWING";hs.SLIDING_TO_LEFT="SLIDING_TO_LEFT";hs.SLIDING_TO_RIGHT="SLIDING_TO_RIGHT";hs.DOUBLE_DOOR_SLIDING="DOUBLE_DOOR_SLIDING";hs.FOLDING_TO_LEFT="FOLDING_TO_LEFT";hs.FOLDING_TO_RIGHT="FOLDING_TO_RIGHT";hs.DOUBLE_DOOR_FOLDING="DOUBLE_DOOR_FOLDING";hs.REVOLVING="REVOLVING";hs.ROLLINGUP="ROLLINGUP";hs.SWING_FIXED_LEFT="SWING_FIXED_LEFT";hs.SWING_FIXED_RIGHT="SWING_FIXED_RIGHT";hs.USERDEFINED="USERDEFINED";hs.NOTDEFINED="NOTDEFINED";var Wp=class{constructor(t){this.value=t}};Wp.BEND="BEND";Wp.CONNECTOR="CONNECTOR";Wp.ENTRY="ENTRY";Wp.EXIT="EXIT";Wp.JUNCTION="JUNCTION";Wp.OBSTRUCTION="OBSTRUCTION";Wp.TRANSITION="TRANSITION";Wp.USERDEFINED="USERDEFINED";Wp.NOTDEFINED="NOTDEFINED";var hA=class{constructor(t){this.value=t}};hA.RIGIDSEGMENT="RIGIDSEGMENT";hA.FLEXIBLESEGMENT="FLEXIBLESEGMENT";hA.USERDEFINED="USERDEFINED";hA.NOTDEFINED="NOTDEFINED";var lI=class{constructor(t){this.value=t}};lI.FLATOVAL="FLATOVAL";lI.RECTANGULAR="RECTANGULAR";lI.ROUND="ROUND";lI.USERDEFINED="USERDEFINED";lI.NOTDEFINED="NOTDEFINED";var Os=class{constructor(t){this.value=t}};Os.DISHWASHER="DISHWASHER";Os.ELECTRICCOOKER="ELECTRICCOOKER";Os.FREESTANDINGELECTRICHEATER="FREESTANDINGELECTRICHEATER";Os.FREESTANDINGFAN="FREESTANDINGFAN";Os.FREESTANDINGWATERHEATER="FREESTANDINGWATERHEATER";Os.FREESTANDINGWATERCOOLER="FREESTANDINGWATERCOOLER";Os.FREEZER="FREEZER";Os.FRIDGE_FREEZER="FRIDGE_FREEZER";Os.HANDDRYER="HANDDRYER";Os.KITCHENMACHINE="KITCHENMACHINE";Os.MICROWAVE="MICROWAVE";Os.PHOTOCOPIER="PHOTOCOPIER";Os.REFRIGERATOR="REFRIGERATOR";Os.TUMBLEDRYER="TUMBLEDRYER";Os.VENDINGMACHINE="VENDINGMACHINE";Os.WASHINGMACHINE="WASHINGMACHINE";Os.USERDEFINED="USERDEFINED";Os.NOTDEFINED="NOTDEFINED";var IT=class{constructor(t){this.value=t}};IT.CONSUMERUNIT="CONSUMERUNIT";IT.DISTRIBUTIONBOARD="DISTRIBUTIONBOARD";IT.MOTORCONTROLCENTRE="MOTORCONTROLCENTRE";IT.SWITCHBOARD="SWITCHBOARD";IT.USERDEFINED="USERDEFINED";IT.NOTDEFINED="NOTDEFINED";var i0=class{constructor(t){this.value=t}};i0.BATTERY="BATTERY";i0.CAPACITORBANK="CAPACITORBANK";i0.HARMONICFILTER="HARMONICFILTER";i0.INDUCTORBANK="INDUCTORBANK";i0.UPS="UPS";i0.USERDEFINED="USERDEFINED";i0.NOTDEFINED="NOTDEFINED";var cI=class{constructor(t){this.value=t}};cI.CHP="CHP";cI.ENGINEGENERATOR="ENGINEGENERATOR";cI.STANDALONE="STANDALONE";cI.USERDEFINED="USERDEFINED";cI.NOTDEFINED="NOTDEFINED";var n0=class{constructor(t){this.value=t}};n0.DC="DC";n0.INDUCTION="INDUCTION";n0.POLYPHASE="POLYPHASE";n0.RELUCTANCESYNCHRONOUS="RELUCTANCESYNCHRONOUS";n0.SYNCHRONOUS="SYNCHRONOUS";n0.USERDEFINED="USERDEFINED";n0.NOTDEFINED="NOTDEFINED";var uI=class{constructor(t){this.value=t}};uI.TIMECLOCK="TIMECLOCK";uI.TIMEDELAY="TIMEDELAY";uI.RELAY="RELAY";uI.USERDEFINED="USERDEFINED";uI.NOTDEFINED="NOTDEFINED";var Js=class{constructor(t){this.value=t}};Js.ACCESSORY_ASSEMBLY="ACCESSORY_ASSEMBLY";Js.ARCH="ARCH";Js.BEAM_GRID="BEAM_GRID";Js.BRACED_FRAME="BRACED_FRAME";Js.GIRDER="GIRDER";Js.REINFORCEMENT_UNIT="REINFORCEMENT_UNIT";Js.RIGID_FRAME="RIGID_FRAME";Js.SLAB_FIELD="SLAB_FIELD";Js.TRUSS="TRUSS";Js.ABUTMENT="ABUTMENT";Js.PIER="PIER";Js.PYLON="PYLON";Js.CROSS_BRACING="CROSS_BRACING";Js.DECK="DECK";Js.USERDEFINED="USERDEFINED";Js.NOTDEFINED="NOTDEFINED";var Hk=class{constructor(t){this.value=t}};Hk.COMPLEX="COMPLEX";Hk.ELEMENT="ELEMENT";Hk.PARTIAL="PARTIAL";var pA=class{constructor(t){this.value=t}};pA.EXTERNALCOMBUSTION="EXTERNALCOMBUSTION";pA.INTERNALCOMBUSTION="INTERNALCOMBUSTION";pA.USERDEFINED="USERDEFINED";pA.NOTDEFINED="NOTDEFINED";var kc=class{constructor(t){this.value=t}};kc.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER="DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER";kc.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER="DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER";kc.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER="DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER";kc.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER="DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER";kc.DIRECTEVAPORATIVEAIRWASHER="DIRECTEVAPORATIVEAIRWASHER";kc.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER="INDIRECTEVAPORATIVEPACKAGEAIRCOOLER";kc.INDIRECTEVAPORATIVEWETCOIL="INDIRECTEVAPORATIVEWETCOIL";kc.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER="INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER";kc.INDIRECTDIRECTCOMBINATION="INDIRECTDIRECTCOMBINATION";kc.USERDEFINED="USERDEFINED";kc.NOTDEFINED="NOTDEFINED";var Nf=class{constructor(t){this.value=t}};Nf.DIRECTEXPANSION="DIRECTEXPANSION";Nf.DIRECTEXPANSIONSHELLANDTUBE="DIRECTEXPANSIONSHELLANDTUBE";Nf.DIRECTEXPANSIONTUBEINTUBE="DIRECTEXPANSIONTUBEINTUBE";Nf.DIRECTEXPANSIONBRAZEDPLATE="DIRECTEXPANSIONBRAZEDPLATE";Nf.FLOODEDSHELLANDTUBE="FLOODEDSHELLANDTUBE";Nf.SHELLANDCOIL="SHELLANDCOIL";Nf.USERDEFINED="USERDEFINED";Nf.NOTDEFINED="NOTDEFINED";var ST=class{constructor(t){this.value=t}};ST.EVENTRULE="EVENTRULE";ST.EVENTMESSAGE="EVENTMESSAGE";ST.EVENTTIME="EVENTTIME";ST.EVENTCOMPLEX="EVENTCOMPLEX";ST.USERDEFINED="USERDEFINED";ST.NOTDEFINED="NOTDEFINED";var hI=class{constructor(t){this.value=t}};hI.STARTEVENT="STARTEVENT";hI.ENDEVENT="ENDEVENT";hI.INTERMEDIATEEVENT="INTERMEDIATEEVENT";hI.USERDEFINED="USERDEFINED";hI.NOTDEFINED="NOTDEFINED";var _T=class{constructor(t){this.value=t}};_T.EXTERNAL="EXTERNAL";_T.EXTERNAL_EARTH="EXTERNAL_EARTH";_T.EXTERNAL_WATER="EXTERNAL_WATER";_T.EXTERNAL_FIRE="EXTERNAL_FIRE";_T.USERDEFINED="USERDEFINED";_T.NOTDEFINED="NOTDEFINED";var qp=class{constructor(t){this.value=t}};qp.CENTRIFUGALFORWARDCURVED="CENTRIFUGALFORWARDCURVED";qp.CENTRIFUGALRADIAL="CENTRIFUGALRADIAL";qp.CENTRIFUGALBACKWARDINCLINEDCURVED="CENTRIFUGALBACKWARDINCLINEDCURVED";qp.CENTRIFUGALAIRFOIL="CENTRIFUGALAIRFOIL";qp.TUBEAXIAL="TUBEAXIAL";qp.VANEAXIAL="VANEAXIAL";qp.PROPELLORAXIAL="PROPELLORAXIAL";qp.USERDEFINED="USERDEFINED";qp.NOTDEFINED="NOTDEFINED";var pI=class{constructor(t){this.value=t}};pI.GLUE="GLUE";pI.MORTAR="MORTAR";pI.WELD="WELD";pI.USERDEFINED="USERDEFINED";pI.NOTDEFINED="NOTDEFINED";var Lf=class{constructor(t){this.value=t}};Lf.AIRPARTICLEFILTER="AIRPARTICLEFILTER";Lf.COMPRESSEDAIRFILTER="COMPRESSEDAIRFILTER";Lf.ODORFILTER="ODORFILTER";Lf.OILFILTER="OILFILTER";Lf.STRAINER="STRAINER";Lf.WATERFILTER="WATERFILTER";Lf.USERDEFINED="USERDEFINED";Lf.NOTDEFINED="NOTDEFINED";var s0=class{constructor(t){this.value=t}};s0.BREECHINGINLET="BREECHINGINLET";s0.FIREHYDRANT="FIREHYDRANT";s0.HOSEREEL="HOSEREEL";s0.SPRINKLER="SPRINKLER";s0.SPRINKLERDEFLECTOR="SPRINKLERDEFLECTOR";s0.USERDEFINED="USERDEFINED";s0.NOTDEFINED="NOTDEFINED";var dA=class{constructor(t){this.value=t}};dA.SOURCE="SOURCE";dA.SINK="SINK";dA.SOURCEANDSINK="SOURCEANDSINK";dA.NOTDEFINED="NOTDEFINED";var eh=class{constructor(t){this.value=t}};eh.PRESSUREGAUGE="PRESSUREGAUGE";eh.THERMOMETER="THERMOMETER";eh.AMMETER="AMMETER";eh.FREQUENCYMETER="FREQUENCYMETER";eh.POWERFACTORMETER="POWERFACTORMETER";eh.PHASEANGLEMETER="PHASEANGLEMETER";eh.VOLTMETER_PEAK="VOLTMETER_PEAK";eh.VOLTMETER_RMS="VOLTMETER_RMS";eh.USERDEFINED="USERDEFINED";eh.NOTDEFINED="NOTDEFINED";var wT=class{constructor(t){this.value=t}};wT.ENERGYMETER="ENERGYMETER";wT.GASMETER="GASMETER";wT.OILMETER="OILMETER";wT.WATERMETER="WATERMETER";wT.USERDEFINED="USERDEFINED";wT.NOTDEFINED="NOTDEFINED";var a0=class{constructor(t){this.value=t}};a0.CAISSON_FOUNDATION="CAISSON_FOUNDATION";a0.FOOTING_BEAM="FOOTING_BEAM";a0.PAD_FOOTING="PAD_FOOTING";a0.PILE_CAP="PILE_CAP";a0.STRIP_FOOTING="STRIP_FOOTING";a0.USERDEFINED="USERDEFINED";a0.NOTDEFINED="NOTDEFINED";var Yp=class{constructor(t){this.value=t}};Yp.CHAIR="CHAIR";Yp.TABLE="TABLE";Yp.DESK="DESK";Yp.BED="BED";Yp.FILECABINET="FILECABINET";Yp.SHELF="SHELF";Yp.SOFA="SOFA";Yp.USERDEFINED="USERDEFINED";Yp.NOTDEFINED="NOTDEFINED";var fA=class{constructor(t){this.value=t}};fA.TERRAIN="TERRAIN";fA.SOIL_BORING_POINT="SOIL_BORING_POINT";fA.USERDEFINED="USERDEFINED";fA.NOTDEFINED="NOTDEFINED";var Xp=class{constructor(t){this.value=t}};Xp.GRAPH_VIEW="GRAPH_VIEW";Xp.SKETCH_VIEW="SKETCH_VIEW";Xp.MODEL_VIEW="MODEL_VIEW";Xp.PLAN_VIEW="PLAN_VIEW";Xp.REFLECTED_PLAN_VIEW="REFLECTED_PLAN_VIEW";Xp.SECTION_VIEW="SECTION_VIEW";Xp.ELEVATION_VIEW="ELEVATION_VIEW";Xp.USERDEFINED="USERDEFINED";Xp.NOTDEFINED="NOTDEFINED";var Fde=class{constructor(t){this.value=t}};Fde.GLOBAL_COORDS="GLOBAL_COORDS";Fde.LOCAL_COORDS="LOCAL_COORDS";var RT=class{constructor(t){this.value=t}};RT.RECTANGULAR="RECTANGULAR";RT.RADIAL="RADIAL";RT.TRIANGULAR="TRIANGULAR";RT.IRREGULAR="IRREGULAR";RT.USERDEFINED="USERDEFINED";RT.NOTDEFINED="NOTDEFINED";var mA=class{constructor(t){this.value=t}};mA.PLATE="PLATE";mA.SHELLANDTUBE="SHELLANDTUBE";mA.USERDEFINED="USERDEFINED";mA.NOTDEFINED="NOTDEFINED";var Aa=class{constructor(t){this.value=t}};Aa.STEAMINJECTION="STEAMINJECTION";Aa.ADIABATICAIRWASHER="ADIABATICAIRWASHER";Aa.ADIABATICPAN="ADIABATICPAN";Aa.ADIABATICWETTEDELEMENT="ADIABATICWETTEDELEMENT";Aa.ADIABATICATOMIZING="ADIABATICATOMIZING";Aa.ADIABATICULTRASONIC="ADIABATICULTRASONIC";Aa.ADIABATICRIGIDMEDIA="ADIABATICRIGIDMEDIA";Aa.ADIABATICCOMPRESSEDAIRNOZZLE="ADIABATICCOMPRESSEDAIRNOZZLE";Aa.ASSISTEDELECTRIC="ASSISTEDELECTRIC";Aa.ASSISTEDNATURALGAS="ASSISTEDNATURALGAS";Aa.ASSISTEDPROPANE="ASSISTEDPROPANE";Aa.ASSISTEDBUTANE="ASSISTEDBUTANE";Aa.ASSISTEDSTEAM="ASSISTEDSTEAM";Aa.USERDEFINED="USERDEFINED";Aa.NOTDEFINED="NOTDEFINED";var MT=class{constructor(t){this.value=t}};MT.CYCLONIC="CYCLONIC";MT.GREASE="GREASE";MT.OIL="OIL";MT.PETROL="PETROL";MT.USERDEFINED="USERDEFINED";MT.NOTDEFINED="NOTDEFINED";var DT=class{constructor(t){this.value=t}};DT.INTERNAL="INTERNAL";DT.EXTERNAL="EXTERNAL";DT.EXTERNAL_EARTH="EXTERNAL_EARTH";DT.EXTERNAL_WATER="EXTERNAL_WATER";DT.EXTERNAL_FIRE="EXTERNAL_FIRE";DT.NOTDEFINED="NOTDEFINED";var dI=class{constructor(t){this.value=t}};dI.ASSETINVENTORY="ASSETINVENTORY";dI.SPACEINVENTORY="SPACEINVENTORY";dI.FURNITUREINVENTORY="FURNITUREINVENTORY";dI.USERDEFINED="USERDEFINED";dI.NOTDEFINED="NOTDEFINED";var gA=class{constructor(t){this.value=t}};gA.DATA="DATA";gA.POWER="POWER";gA.USERDEFINED="USERDEFINED";gA.NOTDEFINED="NOTDEFINED";var vA=class{constructor(t){this.value=t}};vA.UNIFORM_KNOTS="UNIFORM_KNOTS";vA.QUASI_UNIFORM_KNOTS="QUASI_UNIFORM_KNOTS";vA.PIECEWISE_BEZIER_KNOTS="PIECEWISE_BEZIER_KNOTS";vA.UNSPECIFIED="UNSPECIFIED";var is=class{constructor(t){this.value=t}};is.ADMINISTRATION="ADMINISTRATION";is.CARPENTRY="CARPENTRY";is.CLEANING="CLEANING";is.CONCRETE="CONCRETE";is.DRYWALL="DRYWALL";is.ELECTRIC="ELECTRIC";is.FINISHING="FINISHING";is.FLOORING="FLOORING";is.GENERAL="GENERAL";is.HVAC="HVAC";is.LANDSCAPING="LANDSCAPING";is.MASONRY="MASONRY";is.PAINTING="PAINTING";is.PAVING="PAVING";is.PLUMBING="PLUMBING";is.ROOFING="ROOFING";is.SITEGRADING="SITEGRADING";is.STEELWORK="STEELWORK";is.SURVEYING="SURVEYING";is.USERDEFINED="USERDEFINED";is.NOTDEFINED="NOTDEFINED";var Gc=class{constructor(t){this.value=t}};Gc.COMPACTFLUORESCENT="COMPACTFLUORESCENT";Gc.FLUORESCENT="FLUORESCENT";Gc.HALOGEN="HALOGEN";Gc.HIGHPRESSUREMERCURY="HIGHPRESSUREMERCURY";Gc.HIGHPRESSURESODIUM="HIGHPRESSURESODIUM";Gc.LED="LED";Gc.METALHALIDE="METALHALIDE";Gc.OLED="OLED";Gc.TUNGSTENFILAMENT="TUNGSTENFILAMENT";Gc.USERDEFINED="USERDEFINED";Gc.NOTDEFINED="NOTDEFINED";var Uk=class{constructor(t){this.value=t}};Uk.AXIS1="AXIS1";Uk.AXIS2="AXIS2";Uk.AXIS3="AXIS3";var yA=class{constructor(t){this.value=t}};yA.TYPE_A="TYPE_A";yA.TYPE_B="TYPE_B";yA.TYPE_C="TYPE_C";yA.NOTDEFINED="NOTDEFINED";var Vc=class{constructor(t){this.value=t}};Vc.COMPACTFLUORESCENT="COMPACTFLUORESCENT";Vc.FLUORESCENT="FLUORESCENT";Vc.HIGHPRESSUREMERCURY="HIGHPRESSUREMERCURY";Vc.HIGHPRESSURESODIUM="HIGHPRESSURESODIUM";Vc.LIGHTEMITTINGDIODE="LIGHTEMITTINGDIODE";Vc.LOWPRESSURESODIUM="LOWPRESSURESODIUM";Vc.LOWVOLTAGEHALOGEN="LOWVOLTAGEHALOGEN";Vc.MAINVOLTAGEHALOGEN="MAINVOLTAGEHALOGEN";Vc.METALHALIDE="METALHALIDE";Vc.TUNGSTENFILAMENT="TUNGSTENFILAMENT";Vc.NOTDEFINED="NOTDEFINED";var fI=class{constructor(t){this.value=t}};fI.POINTSOURCE="POINTSOURCE";fI.DIRECTIONSOURCE="DIRECTIONSOURCE";fI.SECURITYLIGHTING="SECURITYLIGHTING";fI.USERDEFINED="USERDEFINED";fI.NOTDEFINED="NOTDEFINED";var mI=class{constructor(t){this.value=t}};mI.LOAD_GROUP="LOAD_GROUP";mI.LOAD_CASE="LOAD_CASE";mI.LOAD_COMBINATION="LOAD_COMBINATION";mI.USERDEFINED="USERDEFINED";mI.NOTDEFINED="NOTDEFINED";var gI=class{constructor(t){this.value=t}};gI.LOGICALAND="LOGICALAND";gI.LOGICALOR="LOGICALOR";gI.LOGICALXOR="LOGICALXOR";gI.LOGICALNOTAND="LOGICALNOTAND";gI.LOGICALNOTOR="LOGICALNOTOR";var Jo=class{constructor(t){this.value=t}};Jo.ANCHORBOLT="ANCHORBOLT";Jo.BOLT="BOLT";Jo.DOWEL="DOWEL";Jo.NAIL="NAIL";Jo.NAILPLATE="NAILPLATE";Jo.RIVET="RIVET";Jo.SCREW="SCREW";Jo.SHEARCONNECTOR="SHEARCONNECTOR";Jo.STAPLE="STAPLE";Jo.STUDSHEARCONNECTOR="STUDSHEARCONNECTOR";Jo.COUPLER="COUPLER";Jo.USERDEFINED="USERDEFINED";Jo.NOTDEFINED="NOTDEFINED";var o0=class{constructor(t){this.value=t}};o0.AIRSTATION="AIRSTATION";o0.FEEDAIRUNIT="FEEDAIRUNIT";o0.OXYGENGENERATOR="OXYGENGENERATOR";o0.OXYGENPLANT="OXYGENPLANT";o0.VACUUMSTATION="VACUUMSTATION";o0.USERDEFINED="USERDEFINED";o0.NOTDEFINED="NOTDEFINED";var xs=class{constructor(t){this.value=t}};xs.BRACE="BRACE";xs.CHORD="CHORD";xs.COLLAR="COLLAR";xs.MEMBER="MEMBER";xs.MULLION="MULLION";xs.PLATE="PLATE";xs.POST="POST";xs.PURLIN="PURLIN";xs.RAFTER="RAFTER";xs.STRINGER="STRINGER";xs.STRUT="STRUT";xs.STUD="STUD";xs.STIFFENING_RIB="STIFFENING_RIB";xs.ARCH_SEGMENT="ARCH_SEGMENT";xs.SUSPENSION_CABLE="SUSPENSION_CABLE";xs.SUSPENDER="SUSPENDER";xs.STAY_CABLE="STAY_CABLE";xs.USERDEFINED="USERDEFINED";xs.NOTDEFINED="NOTDEFINED";var vI=class{constructor(t){this.value=t}};vI.BELTDRIVE="BELTDRIVE";vI.COUPLING="COUPLING";vI.DIRECTDRIVE="DIRECTDRIVE";vI.USERDEFINED="USERDEFINED";vI.NOTDEFINED="NOTDEFINED";var U3t=class{constructor(t){this.value=t}};U3t.NULL="NULL";var Ff=class{constructor(t){this.value=t}};Ff.PRODUCT="PRODUCT";Ff.PROCESS="PROCESS";Ff.CONTROL="CONTROL";Ff.RESOURCE="RESOURCE";Ff.ACTOR="ACTOR";Ff.GROUP="GROUP";Ff.PROJECT="PROJECT";Ff.NOTDEFINED="NOTDEFINED";var Qo=class{constructor(t){this.value=t}};Qo.CODECOMPLIANCE="CODECOMPLIANCE";Qo.CODEWAIVER="CODEWAIVER";Qo.DESIGNINTENT="DESIGNINTENT";Qo.EXTERNAL="EXTERNAL";Qo.HEALTHANDSAFETY="HEALTHANDSAFETY";Qo.MERGECONFLICT="MERGECONFLICT";Qo.MODELVIEW="MODELVIEW";Qo.PARAMETER="PARAMETER";Qo.REQUIREMENT="REQUIREMENT";Qo.SPECIFICATION="SPECIFICATION";Qo.TRIGGERCONDITION="TRIGGERCONDITION";Qo.USERDEFINED="USERDEFINED";Qo.NOTDEFINED="NOTDEFINED";var $p=class{constructor(t){this.value=t}};$p.ASSIGNEE="ASSIGNEE";$p.ASSIGNOR="ASSIGNOR";$p.LESSEE="LESSEE";$p.LESSOR="LESSOR";$p.LETTINGAGENT="LETTINGAGENT";$p.OWNER="OWNER";$p.TENANT="TENANT";$p.USERDEFINED="USERDEFINED";$p.NOTDEFINED="NOTDEFINED";var TA=class{constructor(t){this.value=t}};TA.OPENING="OPENING";TA.RECESS="RECESS";TA.USERDEFINED="USERDEFINED";TA.NOTDEFINED="NOTDEFINED";var l0=class{constructor(t){this.value=t}};l0.AUDIOVISUALOUTLET="AUDIOVISUALOUTLET";l0.COMMUNICATIONSOUTLET="COMMUNICATIONSOUTLET";l0.POWEROUTLET="POWEROUTLET";l0.DATAOUTLET="DATAOUTLET";l0.TELEPHONEOUTLET="TELEPHONEOUTLET";l0.USERDEFINED="USERDEFINED";l0.NOTDEFINED="NOTDEFINED";var Hde=class{constructor(t){this.value=t}};Hde.USERDEFINED="USERDEFINED";Hde.NOTDEFINED="NOTDEFINED";var yI=class{constructor(t){this.value=t}};yI.GRILL="GRILL";yI.LOUVER="LOUVER";yI.SCREEN="SCREEN";yI.USERDEFINED="USERDEFINED";yI.NOTDEFINED="NOTDEFINED";var TI=class{constructor(t){this.value=t}};TI.ACCESS="ACCESS";TI.BUILDING="BUILDING";TI.WORK="WORK";TI.USERDEFINED="USERDEFINED";TI.NOTDEFINED="NOTDEFINED";var Bk=class{constructor(t){this.value=t}};Bk.PHYSICAL="PHYSICAL";Bk.VIRTUAL="VIRTUAL";Bk.NOTDEFINED="NOTDEFINED";var CT=class{constructor(t){this.value=t}};CT.CAST_IN_PLACE="CAST_IN_PLACE";CT.COMPOSITE="COMPOSITE";CT.PRECAST_CONCRETE="PRECAST_CONCRETE";CT.PREFAB_STEEL="PREFAB_STEEL";CT.USERDEFINED="USERDEFINED";CT.NOTDEFINED="NOTDEFINED";var Hf=class{constructor(t){this.value=t}};Hf.BORED="BORED";Hf.DRIVEN="DRIVEN";Hf.JETGROUTING="JETGROUTING";Hf.COHESION="COHESION";Hf.FRICTION="FRICTION";Hf.SUPPORT="SUPPORT";Hf.USERDEFINED="USERDEFINED";Hf.NOTDEFINED="NOTDEFINED";var Zp=class{constructor(t){this.value=t}};Zp.BEND="BEND";Zp.CONNECTOR="CONNECTOR";Zp.ENTRY="ENTRY";Zp.EXIT="EXIT";Zp.JUNCTION="JUNCTION";Zp.OBSTRUCTION="OBSTRUCTION";Zp.TRANSITION="TRANSITION";Zp.USERDEFINED="USERDEFINED";Zp.NOTDEFINED="NOTDEFINED";var c0=class{constructor(t){this.value=t}};c0.CULVERT="CULVERT";c0.FLEXIBLESEGMENT="FLEXIBLESEGMENT";c0.RIGIDSEGMENT="RIGIDSEGMENT";c0.GUTTER="GUTTER";c0.SPOOL="SPOOL";c0.USERDEFINED="USERDEFINED";c0.NOTDEFINED="NOTDEFINED";var zc=class{constructor(t){this.value=t}};zc.CURTAIN_PANEL="CURTAIN_PANEL";zc.SHEET="SHEET";zc.FLANGE_PLATE="FLANGE_PLATE";zc.WEB_PLATE="WEB_PLATE";zc.STIFFENER_PLATE="STIFFENER_PLATE";zc.GUSSET_PLATE="GUSSET_PLATE";zc.COVER_PLATE="COVER_PLATE";zc.SPLICE_PLATE="SPLICE_PLATE";zc.BASE_PLATE="BASE_PLATE";zc.USERDEFINED="USERDEFINED";zc.NOTDEFINED="NOTDEFINED";var kk=class{constructor(t){this.value=t}};kk.CURVE3D="CURVE3D";kk.PCURVE_S1="PCURVE_S1";kk.PCURVE_S2="PCURVE_S2";var Kp=class{constructor(t){this.value=t}};Kp.ADVICE_CAUTION="ADVICE_CAUTION";Kp.ADVICE_NOTE="ADVICE_NOTE";Kp.ADVICE_WARNING="ADVICE_WARNING";Kp.CALIBRATION="CALIBRATION";Kp.DIAGNOSTIC="DIAGNOSTIC";Kp.SHUTDOWN="SHUTDOWN";Kp.STARTUP="STARTUP";Kp.USERDEFINED="USERDEFINED";Kp.NOTDEFINED="NOTDEFINED";var Ude=class{constructor(t){this.value=t}};Ude.CURVE="CURVE";Ude.AREA="AREA";var u0=class{constructor(t){this.value=t}};u0.CHANGEORDER="CHANGEORDER";u0.MAINTENANCEWORKORDER="MAINTENANCEWORKORDER";u0.MOVEORDER="MOVEORDER";u0.PURCHASEORDER="PURCHASEORDER";u0.WORKORDER="WORKORDER";u0.USERDEFINED="USERDEFINED";u0.NOTDEFINED="NOTDEFINED";var Bde=class{constructor(t){this.value=t}};Bde.PROJECTED_LENGTH="PROJECTED_LENGTH";Bde.TRUE_LENGTH="TRUE_LENGTH";var EA=class{constructor(t){this.value=t}};EA.BLISTER="BLISTER";EA.DEVIATOR="DEVIATOR";EA.USERDEFINED="USERDEFINED";EA.NOTDEFINED="NOTDEFINED";var Uf=class{constructor(t){this.value=t}};Uf.PSET_TYPEDRIVENONLY="PSET_TYPEDRIVENONLY";Uf.PSET_TYPEDRIVENOVERRIDE="PSET_TYPEDRIVENOVERRIDE";Uf.PSET_OCCURRENCEDRIVEN="PSET_OCCURRENCEDRIVEN";Uf.PSET_PERFORMANCEDRIVEN="PSET_PERFORMANCEDRIVEN";Uf.QTO_TYPEDRIVENONLY="QTO_TYPEDRIVENONLY";Uf.QTO_TYPEDRIVENOVERRIDE="QTO_TYPEDRIVENOVERRIDE";Uf.QTO_OCCURRENCEDRIVEN="QTO_OCCURRENCEDRIVEN";Uf.NOTDEFINED="NOTDEFINED";var AT=class{constructor(t){this.value=t}};AT.ELECTRONIC="ELECTRONIC";AT.ELECTROMAGNETIC="ELECTROMAGNETIC";AT.RESIDUALCURRENT="RESIDUALCURRENT";AT.THERMAL="THERMAL";AT.USERDEFINED="USERDEFINED";AT.NOTDEFINED="NOTDEFINED";var Jp=class{constructor(t){this.value=t}};Jp.CIRCUITBREAKER="CIRCUITBREAKER";Jp.EARTHLEAKAGECIRCUITBREAKER="EARTHLEAKAGECIRCUITBREAKER";Jp.EARTHINGSWITCH="EARTHINGSWITCH";Jp.FUSEDISCONNECTOR="FUSEDISCONNECTOR";Jp.RESIDUALCURRENTCIRCUITBREAKER="RESIDUALCURRENTCIRCUITBREAKER";Jp.RESIDUALCURRENTSWITCH="RESIDUALCURRENTSWITCH";Jp.VARISTOR="VARISTOR";Jp.USERDEFINED="USERDEFINED";Jp.NOTDEFINED="NOTDEFINED";var Qp=class{constructor(t){this.value=t}};Qp.CIRCULATOR="CIRCULATOR";Qp.ENDSUCTION="ENDSUCTION";Qp.SPLITCASE="SPLITCASE";Qp.SUBMERSIBLEPUMP="SUBMERSIBLEPUMP";Qp.SUMPPUMP="SUMPPUMP";Qp.VERTICALINLINE="VERTICALINLINE";Qp.VERTICALTURBINE="VERTICALTURBINE";Qp.USERDEFINED="USERDEFINED";Qp.NOTDEFINED="NOTDEFINED";var EI=class{constructor(t){this.value=t}};EI.HANDRAIL="HANDRAIL";EI.GUARDRAIL="GUARDRAIL";EI.BALUSTRADE="BALUSTRADE";EI.USERDEFINED="USERDEFINED";EI.NOTDEFINED="NOTDEFINED";var bA=class{constructor(t){this.value=t}};bA.STRAIGHT="STRAIGHT";bA.SPIRAL="SPIRAL";bA.USERDEFINED="USERDEFINED";bA.NOTDEFINED="NOTDEFINED";var Bf=class{constructor(t){this.value=t}};Bf.STRAIGHT_RUN_RAMP="STRAIGHT_RUN_RAMP";Bf.TWO_STRAIGHT_RUN_RAMP="TWO_STRAIGHT_RUN_RAMP";Bf.QUARTER_TURN_RAMP="QUARTER_TURN_RAMP";Bf.TWO_QUARTER_TURN_RAMP="TWO_QUARTER_TURN_RAMP";Bf.HALF_TURN_RAMP="HALF_TURN_RAMP";Bf.SPIRAL_RAMP="SPIRAL_RAMP";Bf.USERDEFINED="USERDEFINED";Bf.NOTDEFINED="NOTDEFINED";var kf=class{constructor(t){this.value=t}};kf.DAILY="DAILY";kf.WEEKLY="WEEKLY";kf.MONTHLY_BY_DAY_OF_MONTH="MONTHLY_BY_DAY_OF_MONTH";kf.MONTHLY_BY_POSITION="MONTHLY_BY_POSITION";kf.BY_DAY_COUNT="BY_DAY_COUNT";kf.BY_WEEKDAY_COUNT="BY_WEEKDAY_COUNT";kf.YEARLY_BY_DAY_OF_MONTH="YEARLY_BY_DAY_OF_MONTH";kf.YEARLY_BY_POSITION="YEARLY_BY_POSITION";var bI=class{constructor(t){this.value=t}};bI.KILOPOINT="KILOPOINT";bI.MILEPOINT="MILEPOINT";bI.STATION="STATION";bI.USERDEFINED="USERDEFINED";bI.NOTDEFINED="NOTDEFINED";var th=class{constructor(t){this.value=t}};th.BLINN="BLINN";th.FLAT="FLAT";th.GLASS="GLASS";th.MATT="MATT";th.METAL="METAL";th.MIRROR="MIRROR";th.PHONG="PHONG";th.PLASTIC="PLASTIC";th.STRAUSS="STRAUSS";th.NOTDEFINED="NOTDEFINED";var rh=class{constructor(t){this.value=t}};rh.MAIN="MAIN";rh.SHEAR="SHEAR";rh.LIGATURE="LIGATURE";rh.STUD="STUD";rh.PUNCHING="PUNCHING";rh.EDGE="EDGE";rh.RING="RING";rh.ANCHORING="ANCHORING";rh.USERDEFINED="USERDEFINED";rh.NOTDEFINED="NOTDEFINED";var kde=class{constructor(t){this.value=t}};kde.PLAIN="PLAIN";kde.TEXTURED="TEXTURED";var jc=class{constructor(t){this.value=t}};jc.ANCHORING="ANCHORING";jc.EDGE="EDGE";jc.LIGATURE="LIGATURE";jc.MAIN="MAIN";jc.PUNCHING="PUNCHING";jc.RING="RING";jc.SHEAR="SHEAR";jc.STUD="STUD";jc.SPACEBAR="SPACEBAR";jc.USERDEFINED="USERDEFINED";jc.NOTDEFINED="NOTDEFINED";var Gde=class{constructor(t){this.value=t}};Gde.USERDEFINED="USERDEFINED";Gde.NOTDEFINED="NOTDEFINED";var Nn=class{constructor(t){this.value=t}};Nn.SUPPLIER="SUPPLIER";Nn.MANUFACTURER="MANUFACTURER";Nn.CONTRACTOR="CONTRACTOR";Nn.SUBCONTRACTOR="SUBCONTRACTOR";Nn.ARCHITECT="ARCHITECT";Nn.STRUCTURALENGINEER="STRUCTURALENGINEER";Nn.COSTENGINEER="COSTENGINEER";Nn.CLIENT="CLIENT";Nn.BUILDINGOWNER="BUILDINGOWNER";Nn.BUILDINGOPERATOR="BUILDINGOPERATOR";Nn.MECHANICALENGINEER="MECHANICALENGINEER";Nn.ELECTRICALENGINEER="ELECTRICALENGINEER";Nn.PROJECTMANAGER="PROJECTMANAGER";Nn.FACILITIESMANAGER="FACILITIESMANAGER";Nn.CIVILENGINEER="CIVILENGINEER";Nn.COMMISSIONINGENGINEER="COMMISSIONINGENGINEER";Nn.ENGINEER="ENGINEER";Nn.OWNER="OWNER";Nn.CONSULTANT="CONSULTANT";Nn.CONSTRUCTIONMANAGER="CONSTRUCTIONMANAGER";Nn.FIELDCONSTRUCTIONMANAGER="FIELDCONSTRUCTIONMANAGER";Nn.RESELLER="RESELLER";Nn.USERDEFINED="USERDEFINED";var Oa=class{constructor(t){this.value=t}};Oa.FLAT_ROOF="FLAT_ROOF";Oa.SHED_ROOF="SHED_ROOF";Oa.GABLE_ROOF="GABLE_ROOF";Oa.HIP_ROOF="HIP_ROOF";Oa.HIPPED_GABLE_ROOF="HIPPED_GABLE_ROOF";Oa.GAMBREL_ROOF="GAMBREL_ROOF";Oa.MANSARD_ROOF="MANSARD_ROOF";Oa.BARREL_ROOF="BARREL_ROOF";Oa.RAINBOW_ROOF="RAINBOW_ROOF";Oa.BUTTERFLY_ROOF="BUTTERFLY_ROOF";Oa.PAVILION_ROOF="PAVILION_ROOF";Oa.DOME_ROOF="DOME_ROOF";Oa.FREEFORM="FREEFORM";Oa.USERDEFINED="USERDEFINED";Oa.NOTDEFINED="NOTDEFINED";var Qs=class{constructor(t){this.value=t}};Qs.EXA="EXA";Qs.PETA="PETA";Qs.TERA="TERA";Qs.GIGA="GIGA";Qs.MEGA="MEGA";Qs.KILO="KILO";Qs.HECTO="HECTO";Qs.DECA="DECA";Qs.DECI="DECI";Qs.CENTI="CENTI";Qs.MILLI="MILLI";Qs.MICRO="MICRO";Qs.NANO="NANO";Qs.PICO="PICO";Qs.FEMTO="FEMTO";Qs.ATTO="ATTO";var Wi=class{constructor(t){this.value=t}};Wi.AMPERE="AMPERE";Wi.BECQUEREL="BECQUEREL";Wi.CANDELA="CANDELA";Wi.COULOMB="COULOMB";Wi.CUBIC_METRE="CUBIC_METRE";Wi.DEGREE_CELSIUS="DEGREE_CELSIUS";Wi.FARAD="FARAD";Wi.GRAM="GRAM";Wi.GRAY="GRAY";Wi.HENRY="HENRY";Wi.HERTZ="HERTZ";Wi.JOULE="JOULE";Wi.KELVIN="KELVIN";Wi.LUMEN="LUMEN";Wi.LUX="LUX";Wi.METRE="METRE";Wi.MOLE="MOLE";Wi.NEWTON="NEWTON";Wi.OHM="OHM";Wi.PASCAL="PASCAL";Wi.RADIAN="RADIAN";Wi.SECOND="SECOND";Wi.SIEMENS="SIEMENS";Wi.SIEVERT="SIEVERT";Wi.SQUARE_METRE="SQUARE_METRE";Wi.STERADIAN="STERADIAN";Wi.TESLA="TESLA";Wi.VOLT="VOLT";Wi.WATT="WATT";Wi.WEBER="WEBER";var Gl=class{constructor(t){this.value=t}};Gl.BATH="BATH";Gl.BIDET="BIDET";Gl.CISTERN="CISTERN";Gl.SHOWER="SHOWER";Gl.SINK="SINK";Gl.SANITARYFOUNTAIN="SANITARYFOUNTAIN";Gl.TOILETPAN="TOILETPAN";Gl.URINAL="URINAL";Gl.WASHHANDBASIN="WASHHANDBASIN";Gl.WCSEAT="WCSEAT";Gl.USERDEFINED="USERDEFINED";Gl.NOTDEFINED="NOTDEFINED";var Vde=class{constructor(t){this.value=t}};Vde.UNIFORM="UNIFORM";Vde.TAPERED="TAPERED";var yn=class{constructor(t){this.value=t}};yn.COSENSOR="COSENSOR";yn.CO2SENSOR="CO2SENSOR";yn.CONDUCTANCESENSOR="CONDUCTANCESENSOR";yn.CONTACTSENSOR="CONTACTSENSOR";yn.FIRESENSOR="FIRESENSOR";yn.FLOWSENSOR="FLOWSENSOR";yn.FROSTSENSOR="FROSTSENSOR";yn.GASSENSOR="GASSENSOR";yn.HEATSENSOR="HEATSENSOR";yn.HUMIDITYSENSOR="HUMIDITYSENSOR";yn.IDENTIFIERSENSOR="IDENTIFIERSENSOR";yn.IONCONCENTRATIONSENSOR="IONCONCENTRATIONSENSOR";yn.LEVELSENSOR="LEVELSENSOR";yn.LIGHTSENSOR="LIGHTSENSOR";yn.MOISTURESENSOR="MOISTURESENSOR";yn.MOVEMENTSENSOR="MOVEMENTSENSOR";yn.PHSENSOR="PHSENSOR";yn.PRESSURESENSOR="PRESSURESENSOR";yn.RADIATIONSENSOR="RADIATIONSENSOR";yn.RADIOACTIVITYSENSOR="RADIOACTIVITYSENSOR";yn.SMOKESENSOR="SMOKESENSOR";yn.SOUNDSENSOR="SOUNDSENSOR";yn.TEMPERATURESENSOR="TEMPERATURESENSOR";yn.WINDSENSOR="WINDSENSOR";yn.USERDEFINED="USERDEFINED";yn.NOTDEFINED="NOTDEFINED";var OT=class{constructor(t){this.value=t}};OT.START_START="START_START";OT.START_FINISH="START_FINISH";OT.FINISH_START="FINISH_START";OT.FINISH_FINISH="FINISH_FINISH";OT.USERDEFINED="USERDEFINED";OT.NOTDEFINED="NOTDEFINED";var xI=class{constructor(t){this.value=t}};xI.JALOUSIE="JALOUSIE";xI.SHUTTER="SHUTTER";xI.AWNING="AWNING";xI.USERDEFINED="USERDEFINED";xI.NOTDEFINED="NOTDEFINED";var Vl=class{constructor(t){this.value=t}};Vl.P_SINGLEVALUE="P_SINGLEVALUE";Vl.P_ENUMERATEDVALUE="P_ENUMERATEDVALUE";Vl.P_BOUNDEDVALUE="P_BOUNDEDVALUE";Vl.P_LISTVALUE="P_LISTVALUE";Vl.P_TABLEVALUE="P_TABLEVALUE";Vl.P_REFERENCEVALUE="P_REFERENCEVALUE";Vl.Q_LENGTH="Q_LENGTH";Vl.Q_AREA="Q_AREA";Vl.Q_VOLUME="Q_VOLUME";Vl.Q_COUNT="Q_COUNT";Vl.Q_WEIGHT="Q_WEIGHT";Vl.Q_TIME="Q_TIME";var ih=class{constructor(t){this.value=t}};ih.FLOOR="FLOOR";ih.ROOF="ROOF";ih.LANDING="LANDING";ih.BASESLAB="BASESLAB";ih.APPROACH_SLAB="APPROACH_SLAB";ih.PAVING="PAVING";ih.WEARING="WEARING";ih.SIDEWALK="SIDEWALK";ih.USERDEFINED="USERDEFINED";ih.NOTDEFINED="NOTDEFINED";var xA=class{constructor(t){this.value=t}};xA.SOLARCOLLECTOR="SOLARCOLLECTOR";xA.SOLARPANEL="SOLARPANEL";xA.USERDEFINED="USERDEFINED";xA.NOTDEFINED="NOTDEFINED";var IA=class{constructor(t){this.value=t}};IA.CONVECTOR="CONVECTOR";IA.RADIATOR="RADIATOR";IA.USERDEFINED="USERDEFINED";IA.NOTDEFINED="NOTDEFINED";var h0=class{constructor(t){this.value=t}};h0.SPACE="SPACE";h0.PARKING="PARKING";h0.GFA="GFA";h0.INTERNAL="INTERNAL";h0.EXTERNAL="EXTERNAL";h0.USERDEFINED="USERDEFINED";h0.NOTDEFINED="NOTDEFINED";var nh=class{constructor(t){this.value=t}};nh.CONSTRUCTION="CONSTRUCTION";nh.FIRESAFETY="FIRESAFETY";nh.LIGHTING="LIGHTING";nh.OCCUPANCY="OCCUPANCY";nh.SECURITY="SECURITY";nh.THERMAL="THERMAL";nh.TRANSPORT="TRANSPORT";nh.VENTILATION="VENTILATION";nh.USERDEFINED="USERDEFINED";nh.NOTDEFINED="NOTDEFINED";var II=class{constructor(t){this.value=t}};II.BIRDCAGE="BIRDCAGE";II.COWL="COWL";II.RAINWATERHOPPER="RAINWATERHOPPER";II.USERDEFINED="USERDEFINED";II.NOTDEFINED="NOTDEFINED";var p0=class{constructor(t){this.value=t}};p0.STRAIGHT="STRAIGHT";p0.WINDER="WINDER";p0.SPIRAL="SPIRAL";p0.CURVED="CURVED";p0.FREEFORM="FREEFORM";p0.USERDEFINED="USERDEFINED";p0.NOTDEFINED="NOTDEFINED";var ea=class{constructor(t){this.value=t}};ea.STRAIGHT_RUN_STAIR="STRAIGHT_RUN_STAIR";ea.TWO_STRAIGHT_RUN_STAIR="TWO_STRAIGHT_RUN_STAIR";ea.QUARTER_WINDING_STAIR="QUARTER_WINDING_STAIR";ea.QUARTER_TURN_STAIR="QUARTER_TURN_STAIR";ea.HALF_WINDING_STAIR="HALF_WINDING_STAIR";ea.HALF_TURN_STAIR="HALF_TURN_STAIR";ea.TWO_QUARTER_WINDING_STAIR="TWO_QUARTER_WINDING_STAIR";ea.TWO_QUARTER_TURN_STAIR="TWO_QUARTER_TURN_STAIR";ea.THREE_QUARTER_WINDING_STAIR="THREE_QUARTER_WINDING_STAIR";ea.THREE_QUARTER_TURN_STAIR="THREE_QUARTER_TURN_STAIR";ea.SPIRAL_STAIR="SPIRAL_STAIR";ea.DOUBLE_RETURN_STAIR="DOUBLE_RETURN_STAIR";ea.CURVED_RUN_STAIR="CURVED_RUN_STAIR";ea.TWO_CURVED_RUN_STAIR="TWO_CURVED_RUN_STAIR";ea.USERDEFINED="USERDEFINED";ea.NOTDEFINED="NOTDEFINED";var SI=class{constructor(t){this.value=t}};SI.READWRITE="READWRITE";SI.READONLY="READONLY";SI.LOCKED="LOCKED";SI.READWRITELOCKED="READWRITELOCKED";SI.READONLYLOCKED="READONLYLOCKED";var ed=class{constructor(t){this.value=t}};ed.CONST="CONST";ed.LINEAR="LINEAR";ed.POLYGONAL="POLYGONAL";ed.EQUIDISTANT="EQUIDISTANT";ed.SINUS="SINUS";ed.PARABOLA="PARABOLA";ed.DISCRETE="DISCRETE";ed.USERDEFINED="USERDEFINED";ed.NOTDEFINED="NOTDEFINED";var d0=class{constructor(t){this.value=t}};d0.RIGID_JOINED_MEMBER="RIGID_JOINED_MEMBER";d0.PIN_JOINED_MEMBER="PIN_JOINED_MEMBER";d0.CABLE="CABLE";d0.TENSION_MEMBER="TENSION_MEMBER";d0.COMPRESSION_MEMBER="COMPRESSION_MEMBER";d0.USERDEFINED="USERDEFINED";d0.NOTDEFINED="NOTDEFINED";var PT=class{constructor(t){this.value=t}};PT.CONST="CONST";PT.BILINEAR="BILINEAR";PT.DISCRETE="DISCRETE";PT.ISOCONTOUR="ISOCONTOUR";PT.USERDEFINED="USERDEFINED";PT.NOTDEFINED="NOTDEFINED";var _I=class{constructor(t){this.value=t}};_I.BENDING_ELEMENT="BENDING_ELEMENT";_I.MEMBRANE_ELEMENT="MEMBRANE_ELEMENT";_I.SHELL="SHELL";_I.USERDEFINED="USERDEFINED";_I.NOTDEFINED="NOTDEFINED";var SA=class{constructor(t){this.value=t}};SA.PURCHASE="PURCHASE";SA.WORK="WORK";SA.USERDEFINED="USERDEFINED";SA.NOTDEFINED="NOTDEFINED";var NT=class{constructor(t){this.value=t}};NT.MARK="MARK";NT.TAG="TAG";NT.TREATMENT="TREATMENT";NT.DEFECT="DEFECT";NT.USERDEFINED="USERDEFINED";NT.NOTDEFINED="NOTDEFINED";var Gk=class{constructor(t){this.value=t}};Gk.POSITIVE="POSITIVE";Gk.NEGATIVE="NEGATIVE";Gk.BOTH="BOTH";var Wc=class{constructor(t){this.value=t}};Wc.CONTACTOR="CONTACTOR";Wc.DIMMERSWITCH="DIMMERSWITCH";Wc.EMERGENCYSTOP="EMERGENCYSTOP";Wc.KEYPAD="KEYPAD";Wc.MOMENTARYSWITCH="MOMENTARYSWITCH";Wc.SELECTORSWITCH="SELECTORSWITCH";Wc.STARTER="STARTER";Wc.SWITCHDISCONNECTOR="SWITCHDISCONNECTOR";Wc.TOGGLESWITCH="TOGGLESWITCH";Wc.USERDEFINED="USERDEFINED";Wc.NOTDEFINED="NOTDEFINED";var _A=class{constructor(t){this.value=t}};_A.PANEL="PANEL";_A.WORKSURFACE="WORKSURFACE";_A.USERDEFINED="USERDEFINED";_A.NOTDEFINED="NOTDEFINED";var td=class{constructor(t){this.value=t}};td.BASIN="BASIN";td.BREAKPRESSURE="BREAKPRESSURE";td.EXPANSION="EXPANSION";td.FEEDANDEXPANSION="FEEDANDEXPANSION";td.PRESSUREVESSEL="PRESSUREVESSEL";td.STORAGE="STORAGE";td.VESSEL="VESSEL";td.USERDEFINED="USERDEFINED";td.NOTDEFINED="NOTDEFINED";var Vk=class{constructor(t){this.value=t}};Vk.ELAPSEDTIME="ELAPSEDTIME";Vk.WORKTIME="WORKTIME";Vk.NOTDEFINED="NOTDEFINED";var yo=class{constructor(t){this.value=t}};yo.ATTENDANCE="ATTENDANCE";yo.CONSTRUCTION="CONSTRUCTION";yo.DEMOLITION="DEMOLITION";yo.DISMANTLE="DISMANTLE";yo.DISPOSAL="DISPOSAL";yo.INSTALLATION="INSTALLATION";yo.LOGISTIC="LOGISTIC";yo.MAINTENANCE="MAINTENANCE";yo.MOVE="MOVE";yo.OPERATION="OPERATION";yo.REMOVAL="REMOVAL";yo.RENOVATION="RENOVATION";yo.USERDEFINED="USERDEFINED";yo.NOTDEFINED="NOTDEFINED";var wI=class{constructor(t){this.value=t}};wI.COUPLER="COUPLER";wI.FIXED_END="FIXED_END";wI.TENSIONING_END="TENSIONING_END";wI.USERDEFINED="USERDEFINED";wI.NOTDEFINED="NOTDEFINED";var f0=class{constructor(t){this.value=t}};f0.DUCT="DUCT";f0.COUPLER="COUPLER";f0.GROUTING_DUCT="GROUTING_DUCT";f0.TRUMPET="TRUMPET";f0.DIABOLO="DIABOLO";f0.USERDEFINED="USERDEFINED";f0.NOTDEFINED="NOTDEFINED";var LT=class{constructor(t){this.value=t}};LT.BAR="BAR";LT.COATED="COATED";LT.STRAND="STRAND";LT.WIRE="WIRE";LT.USERDEFINED="USERDEFINED";LT.NOTDEFINED="NOTDEFINED";var wA=class{constructor(t){this.value=t}};wA.LEFT="LEFT";wA.RIGHT="RIGHT";wA.UP="UP";wA.DOWN="DOWN";var m0=class{constructor(t){this.value=t}};m0.CONTINUOUS="CONTINUOUS";m0.DISCRETE="DISCRETE";m0.DISCRETEBINARY="DISCRETEBINARY";m0.PIECEWISEBINARY="PIECEWISEBINARY";m0.PIECEWISECONSTANT="PIECEWISECONSTANT";m0.PIECEWISECONTINUOUS="PIECEWISECONTINUOUS";m0.NOTDEFINED="NOTDEFINED";var g0=class{constructor(t){this.value=t}};g0.CURRENT="CURRENT";g0.FREQUENCY="FREQUENCY";g0.INVERTER="INVERTER";g0.RECTIFIER="RECTIFIER";g0.VOLTAGE="VOLTAGE";g0.USERDEFINED="USERDEFINED";g0.NOTDEFINED="NOTDEFINED";var RA=class{constructor(t){this.value=t}};RA.DISCONTINUOUS="DISCONTINUOUS";RA.CONTINUOUS="CONTINUOUS";RA.CONTSAMEGRADIENT="CONTSAMEGRADIENT";RA.CONTSAMEGRADIENTSAMECURVATURE="CONTSAMEGRADIENTSAMECURVATURE";var FT=class{constructor(t){this.value=t}};FT.BIQUADRATICPARABOLA="BIQUADRATICPARABOLA";FT.BLOSSCURVE="BLOSSCURVE";FT.CLOTHOIDCURVE="CLOTHOIDCURVE";FT.COSINECURVE="COSINECURVE";FT.CUBICPARABOLA="CUBICPARABOLA";FT.SINECURVE="SINECURVE";var v0=class{constructor(t){this.value=t}};v0.ELEVATOR="ELEVATOR";v0.ESCALATOR="ESCALATOR";v0.MOVINGWALKWAY="MOVINGWALKWAY";v0.CRANEWAY="CRANEWAY";v0.LIFTINGGEAR="LIFTINGGEAR";v0.USERDEFINED="USERDEFINED";v0.NOTDEFINED="NOTDEFINED";var zk=class{constructor(t){this.value=t}};zk.CARTESIAN="CARTESIAN";zk.PARAMETER="PARAMETER";zk.UNSPECIFIED="UNSPECIFIED";var jk=class{constructor(t){this.value=t}};jk.FINNED="FINNED";jk.USERDEFINED="USERDEFINED";jk.NOTDEFINED="NOTDEFINED";var qi=class{constructor(t){this.value=t}};qi.ABSORBEDDOSEUNIT="ABSORBEDDOSEUNIT";qi.AMOUNTOFSUBSTANCEUNIT="AMOUNTOFSUBSTANCEUNIT";qi.AREAUNIT="AREAUNIT";qi.DOSEEQUIVALENTUNIT="DOSEEQUIVALENTUNIT";qi.ELECTRICCAPACITANCEUNIT="ELECTRICCAPACITANCEUNIT";qi.ELECTRICCHARGEUNIT="ELECTRICCHARGEUNIT";qi.ELECTRICCONDUCTANCEUNIT="ELECTRICCONDUCTANCEUNIT";qi.ELECTRICCURRENTUNIT="ELECTRICCURRENTUNIT";qi.ELECTRICRESISTANCEUNIT="ELECTRICRESISTANCEUNIT";qi.ELECTRICVOLTAGEUNIT="ELECTRICVOLTAGEUNIT";qi.ENERGYUNIT="ENERGYUNIT";qi.FORCEUNIT="FORCEUNIT";qi.FREQUENCYUNIT="FREQUENCYUNIT";qi.ILLUMINANCEUNIT="ILLUMINANCEUNIT";qi.INDUCTANCEUNIT="INDUCTANCEUNIT";qi.LENGTHUNIT="LENGTHUNIT";qi.LUMINOUSFLUXUNIT="LUMINOUSFLUXUNIT";qi.LUMINOUSINTENSITYUNIT="LUMINOUSINTENSITYUNIT";qi.MAGNETICFLUXDENSITYUNIT="MAGNETICFLUXDENSITYUNIT";qi.MAGNETICFLUXUNIT="MAGNETICFLUXUNIT";qi.MASSUNIT="MASSUNIT";qi.PLANEANGLEUNIT="PLANEANGLEUNIT";qi.POWERUNIT="POWERUNIT";qi.PRESSUREUNIT="PRESSUREUNIT";qi.RADIOACTIVITYUNIT="RADIOACTIVITYUNIT";qi.SOLIDANGLEUNIT="SOLIDANGLEUNIT";qi.THERMODYNAMICTEMPERATUREUNIT="THERMODYNAMICTEMPERATUREUNIT";qi.TIMEUNIT="TIMEUNIT";qi.VOLUMEUNIT="VOLUMEUNIT";qi.USERDEFINED="USERDEFINED";var sh=class{constructor(t){this.value=t}};sh.ALARMPANEL="ALARMPANEL";sh.CONTROLPANEL="CONTROLPANEL";sh.GASDETECTIONPANEL="GASDETECTIONPANEL";sh.INDICATORPANEL="INDICATORPANEL";sh.MIMICPANEL="MIMICPANEL";sh.HUMIDISTAT="HUMIDISTAT";sh.THERMOSTAT="THERMOSTAT";sh.WEATHERSTATION="WEATHERSTATION";sh.USERDEFINED="USERDEFINED";sh.NOTDEFINED="NOTDEFINED";var y0=class{constructor(t){this.value=t}};y0.AIRHANDLER="AIRHANDLER";y0.AIRCONDITIONINGUNIT="AIRCONDITIONINGUNIT";y0.DEHUMIDIFIER="DEHUMIDIFIER";y0.SPLITSYSTEM="SPLITSYSTEM";y0.ROOFTOPUNIT="ROOFTOPUNIT";y0.USERDEFINED="USERDEFINED";y0.NOTDEFINED="NOTDEFINED";var Ln=class{constructor(t){this.value=t}};Ln.AIRRELEASE="AIRRELEASE";Ln.ANTIVACUUM="ANTIVACUUM";Ln.CHANGEOVER="CHANGEOVER";Ln.CHECK="CHECK";Ln.COMMISSIONING="COMMISSIONING";Ln.DIVERTING="DIVERTING";Ln.DRAWOFFCOCK="DRAWOFFCOCK";Ln.DOUBLECHECK="DOUBLECHECK";Ln.DOUBLEREGULATING="DOUBLEREGULATING";Ln.FAUCET="FAUCET";Ln.FLUSHING="FLUSHING";Ln.GASCOCK="GASCOCK";Ln.GASTAP="GASTAP";Ln.ISOLATING="ISOLATING";Ln.MIXING="MIXING";Ln.PRESSUREREDUCING="PRESSUREREDUCING";Ln.PRESSURERELIEF="PRESSURERELIEF";Ln.REGULATING="REGULATING";Ln.SAFETYCUTOFF="SAFETYCUTOFF";Ln.STEAMTRAP="STEAMTRAP";Ln.STOPCOCK="STOPCOCK";Ln.USERDEFINED="USERDEFINED";Ln.NOTDEFINED="NOTDEFINED";var Gf=class{constructor(t){this.value=t}};Gf.BENDING_YIELD="BENDING_YIELD";Gf.SHEAR_YIELD="SHEAR_YIELD";Gf.AXIAL_YIELD="AXIAL_YIELD";Gf.FRICTION="FRICTION";Gf.VISCOUS="VISCOUS";Gf.RUBBER="RUBBER";Gf.USERDEFINED="USERDEFINED";Gf.NOTDEFINED="NOTDEFINED";var RI=class{constructor(t){this.value=t}};RI.COMPRESSION="COMPRESSION";RI.SPRING="SPRING";RI.BASE="BASE";RI.USERDEFINED="USERDEFINED";RI.NOTDEFINED="NOTDEFINED";var Vf=class{constructor(t){this.value=t}};Vf.CUTOUT="CUTOUT";Vf.NOTCH="NOTCH";Vf.HOLE="HOLE";Vf.MITER="MITER";Vf.CHAMFER="CHAMFER";Vf.EDGE="EDGE";Vf.USERDEFINED="USERDEFINED";Vf.NOTDEFINED="NOTDEFINED";var zl=class{constructor(t){this.value=t}};zl.MOVABLE="MOVABLE";zl.PARAPET="PARAPET";zl.PARTITIONING="PARTITIONING";zl.PLUMBINGWALL="PLUMBINGWALL";zl.SHEAR="SHEAR";zl.SOLIDWALL="SOLIDWALL";zl.STANDARD="STANDARD";zl.POLYGONAL="POLYGONAL";zl.ELEMENTEDWALL="ELEMENTEDWALL";zl.RETAININGWALL="RETAININGWALL";zl.USERDEFINED="USERDEFINED";zl.NOTDEFINED="NOTDEFINED";var rd=class{constructor(t){this.value=t}};rd.FLOORTRAP="FLOORTRAP";rd.FLOORWASTE="FLOORWASTE";rd.GULLYSUMP="GULLYSUMP";rd.GULLYTRAP="GULLYTRAP";rd.ROOFDRAIN="ROOFDRAIN";rd.WASTEDISPOSALUNIT="WASTEDISPOSALUNIT";rd.WASTETRAP="WASTETRAP";rd.USERDEFINED="USERDEFINED";rd.NOTDEFINED="NOTDEFINED";var To=class{constructor(t){this.value=t}};To.SIDEHUNGRIGHTHAND="SIDEHUNGRIGHTHAND";To.SIDEHUNGLEFTHAND="SIDEHUNGLEFTHAND";To.TILTANDTURNRIGHTHAND="TILTANDTURNRIGHTHAND";To.TILTANDTURNLEFTHAND="TILTANDTURNLEFTHAND";To.TOPHUNG="TOPHUNG";To.BOTTOMHUNG="BOTTOMHUNG";To.PIVOTHORIZONTAL="PIVOTHORIZONTAL";To.PIVOTVERTICAL="PIVOTVERTICAL";To.SLIDINGHORIZONTAL="SLIDINGHORIZONTAL";To.SLIDINGVERTICAL="SLIDINGVERTICAL";To.REMOVABLECASEMENT="REMOVABLECASEMENT";To.FIXEDCASEMENT="FIXEDCASEMENT";To.OTHEROPERATION="OTHEROPERATION";To.NOTDEFINED="NOTDEFINED";var HT=class{constructor(t){this.value=t}};HT.LEFT="LEFT";HT.MIDDLE="MIDDLE";HT.RIGHT="RIGHT";HT.BOTTOM="BOTTOM";HT.TOP="TOP";HT.NOTDEFINED="NOTDEFINED";var zf=class{constructor(t){this.value=t}};zf.ALUMINIUM="ALUMINIUM";zf.HIGH_GRADE_STEEL="HIGH_GRADE_STEEL";zf.STEEL="STEEL";zf.WOOD="WOOD";zf.ALUMINIUM_WOOD="ALUMINIUM_WOOD";zf.PLASTIC="PLASTIC";zf.OTHER_CONSTRUCTION="OTHER_CONSTRUCTION";zf.NOTDEFINED="NOTDEFINED";var qc=class{constructor(t){this.value=t}};qc.SINGLE_PANEL="SINGLE_PANEL";qc.DOUBLE_PANEL_VERTICAL="DOUBLE_PANEL_VERTICAL";qc.DOUBLE_PANEL_HORIZONTAL="DOUBLE_PANEL_HORIZONTAL";qc.TRIPLE_PANEL_VERTICAL="TRIPLE_PANEL_VERTICAL";qc.TRIPLE_PANEL_BOTTOM="TRIPLE_PANEL_BOTTOM";qc.TRIPLE_PANEL_TOP="TRIPLE_PANEL_TOP";qc.TRIPLE_PANEL_LEFT="TRIPLE_PANEL_LEFT";qc.TRIPLE_PANEL_RIGHT="TRIPLE_PANEL_RIGHT";qc.TRIPLE_PANEL_HORIZONTAL="TRIPLE_PANEL_HORIZONTAL";qc.USERDEFINED="USERDEFINED";qc.NOTDEFINED="NOTDEFINED";var MI=class{constructor(t){this.value=t}};MI.WINDOW="WINDOW";MI.SKYLIGHT="SKYLIGHT";MI.LIGHTDOME="LIGHTDOME";MI.USERDEFINED="USERDEFINED";MI.NOTDEFINED="NOTDEFINED";var Yc=class{constructor(t){this.value=t}};Yc.SINGLE_PANEL="SINGLE_PANEL";Yc.DOUBLE_PANEL_VERTICAL="DOUBLE_PANEL_VERTICAL";Yc.DOUBLE_PANEL_HORIZONTAL="DOUBLE_PANEL_HORIZONTAL";Yc.TRIPLE_PANEL_VERTICAL="TRIPLE_PANEL_VERTICAL";Yc.TRIPLE_PANEL_BOTTOM="TRIPLE_PANEL_BOTTOM";Yc.TRIPLE_PANEL_TOP="TRIPLE_PANEL_TOP";Yc.TRIPLE_PANEL_LEFT="TRIPLE_PANEL_LEFT";Yc.TRIPLE_PANEL_RIGHT="TRIPLE_PANEL_RIGHT";Yc.TRIPLE_PANEL_HORIZONTAL="TRIPLE_PANEL_HORIZONTAL";Yc.USERDEFINED="USERDEFINED";Yc.NOTDEFINED="NOTDEFINED";var DI=class{constructor(t){this.value=t}};DI.FIRSTSHIFT="FIRSTSHIFT";DI.SECONDSHIFT="SECONDSHIFT";DI.THIRDSHIFT="THIRDSHIFT";DI.USERDEFINED="USERDEFINED";DI.NOTDEFINED="NOTDEFINED";var CI=class{constructor(t){this.value=t}};CI.ACTUAL="ACTUAL";CI.BASELINE="BASELINE";CI.PLANNED="PLANNED";CI.USERDEFINED="USERDEFINED";CI.NOTDEFINED="NOTDEFINED";var AI=class{constructor(t){this.value=t}};AI.ACTUAL="ACTUAL";AI.BASELINE="BASELINE";AI.PLANNED="PLANNED";AI.USERDEFINED="USERDEFINED";AI.NOTDEFINED="NOTDEFINED";var zde=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=c,this.LongDescription=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new zde(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.PredefinedType),t.push(this.Status),t.push(this.LongDescription),t}},jde=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.TheActor=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new jde(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.TheActor),t}},Wde=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Role=e,this.UserDefinedRole=i,this.Description=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Wde(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Role),t.push(this.UserDefinedRole),t.push(this.Description),t}},qde=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new qde(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Yde=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Yde(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Xde=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Purpose=e,this.Description=i,this.UserDefinedPurpose=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Xde(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Purpose),t.push(this.Description),t.push(this.UserDefinedPurpose),t}},$de=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Outer=e}static FromTape(t,r,e){let i=0,n=e[i++];return new $de(t,r,n)}ToTape(){let t=[];return t.push(this.Outer),t}},Zde=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Outer=e,this.Voids=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Zde(t,r,n,s)}ToTape(){let t=[];return t.push(this.Outer),t.push(this.Voids),t}},Kde=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Bounds=e,this.FaceSurface=i,this.SameSense=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Kde(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Bounds),t.push(this.FaceSurface),t.push(this.SameSense),t}},Jde=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Jde(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Qde=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Qde(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},efe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new efe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},tfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new tfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},rfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new rfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ife=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ife(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},nfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new nfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},sfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new sfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},afe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Axis=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new afe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Axis),t.push(this.PredefinedType),t}},ofe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.StartDistAlong=e,this.Segments=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new ofe(t,r,n,s)}ToTape(){let t=[];return t.push(this.StartDistAlong),t.push(this.Segments),t}},lfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n,this.CurveGeometry=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new lfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t.push(this.CurveGeometry),t}},cfe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new cfe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t}},ufe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l,this.Radius=c,this.IsConvex=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ufe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t.push(this.StartDistAlong),t.push(this.HorizontalLength),t.push(this.StartHeight),t.push(this.StartGradient),t.push(this.Radius),t.push(this.IsConvex),t}},hfe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new hfe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t.push(this.StartDistAlong),t.push(this.HorizontalLength),t.push(this.StartHeight),t.push(this.StartGradient),t}},pfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l,this.ParabolaConstant=c,this.IsConvex=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new pfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t.push(this.StartDistAlong),t.push(this.HorizontalLength),t.push(this.StartHeight),t.push(this.StartGradient),t.push(this.ParabolaConstant),t.push(this.IsConvex),t}},dfe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Segments=e}static FromTape(t,r,e){let i=0,n=e[i++];return new dfe(t,r,n)}ToTape(){let t=[];return t.push(this.Segments),t}},ffe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.TangentialContinuity=e,this.StartTag=i,this.EndTag=n,this.StartDistAlong=s,this.HorizontalLength=a,this.StartHeight=o,this.StartGradient=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new ffe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.TangentialContinuity),t.push(this.StartTag),t.push(this.EndTag),t.push(this.StartDistAlong),t.push(this.HorizontalLength),t.push(this.StartHeight),t.push(this.StartGradient),t}},mfe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Horizontal=e,this.Vertical=i,this.Tag=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new mfe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Horizontal),t.push(this.Vertical),t.push(this.Tag),t}},gfe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new gfe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},vfe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.OuterBoundary=e,this.InnerBoundaries=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new vfe(t,r,n,s)}ToTape(){let t=[];return t.push(this.OuterBoundary),t.push(this.InnerBoundaries),t}},yfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ApplicationDeveloper=e,this.Version=i,this.ApplicationFullName=n,this.ApplicationIdentifier=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new yfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ApplicationDeveloper),t.push(this.Version),t.push(this.ApplicationFullName),t.push(this.ApplicationIdentifier),t}},Tfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.AppliedValue=n,this.UnitBasis=s,this.ApplicableDate=a,this.FixedUntilDate=o,this.Category=l,this.Condition=c,this.ArithmeticOperator=u,this.Components=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Tfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.AppliedValue),t.push(this.UnitBasis),t.push(this.ApplicableDate),t.push(this.FixedUntilDate),t.push(this.Category),t.push(this.Condition),t.push(this.ArithmeticOperator),t.push(this.Components),t}},Efe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Identifier=e,this.Name=i,this.Description=n,this.TimeOfApproval=s,this.Status=a,this.Level=o,this.Qualifier=l,this.RequestingApproval=c,this.GivingApproval=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Efe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Identifier),t.push(this.Name),t.push(this.Description),t.push(this.TimeOfApproval),t.push(this.Status),t.push(this.Level),t.push(this.Qualifier),t.push(this.RequestingApproval),t.push(this.GivingApproval),t}},bfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingApproval=n,this.RelatedApprovals=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new bfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingApproval),t.push(this.RelatedApprovals),t}},xfe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.OuterCurve=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new xfe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.OuterCurve),t}},Ife=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Curve=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Ife(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Curve),t}},Sfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.OuterCurve=n,this.InnerCurves=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Sfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.OuterCurve),t.push(this.InnerCurves),t}},_fe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.OriginalValue=l,this.CurrentValue=c,this.TotalReplacementCost=u,this.Owner=h,this.User=p,this.ResponsiblePerson=d,this.IncorporationDate=f,this.DepreciatedValue=m}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++];return new _fe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.OriginalValue),t.push(this.CurrentValue),t.push(this.TotalReplacementCost),t.push(this.Owner),t.push(this.User),t.push(this.ResponsiblePerson),t.push(this.IncorporationDate),t.push(this.DepreciatedValue),t}},wfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.BottomFlangeWidth=s,this.OverallDepth=a,this.WebThickness=o,this.BottomFlangeThickness=l,this.BottomFlangeFilletRadius=c,this.TopFlangeWidth=u,this.TopFlangeThickness=h,this.TopFlangeFilletRadius=p,this.BottomFlangeEdgeRadius=d,this.BottomFlangeSlope=f,this.TopFlangeEdgeRadius=m,this.TopFlangeSlope=g}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++];return new wfe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.BottomFlangeWidth),t.push(this.OverallDepth),t.push(this.WebThickness),t.push(this.BottomFlangeThickness),t.push(this.BottomFlangeFilletRadius),t.push(this.TopFlangeWidth),t.push(this.TopFlangeThickness),t.push(this.TopFlangeFilletRadius),t.push(this.BottomFlangeEdgeRadius),t.push(this.BottomFlangeSlope),t.push(this.TopFlangeEdgeRadius),t.push(this.TopFlangeSlope),t}},Rfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Rfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Mfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Mfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Dfe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Location=e,this.Axis=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Dfe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Axis),t}},Cfe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Location=e,this.RefDirection=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Cfe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Location),t.push(this.RefDirection),t}},Afe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Location=e,this.Axis=i,this.RefDirection=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Afe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Axis),t.push(this.RefDirection),t}},Ofe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Degree=e,this.ControlPointsList=i,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Ofe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Degree),t.push(this.ControlPointsList),t.push(this.CurveForm),t.push(this.ClosedCurve),t.push(this.SelfIntersect),t}},Pfe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Degree=e,this.ControlPointsList=i,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a,this.KnotMultiplicities=o,this.Knots=l,this.KnotSpec=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Pfe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Degree),t.push(this.ControlPointsList),t.push(this.CurveForm),t.push(this.ClosedCurve),t.push(this.SelfIntersect),t.push(this.KnotMultiplicities),t.push(this.Knots),t.push(this.KnotSpec),t}},Nfe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.UDegree=e,this.VDegree=i,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Nfe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.UDegree),t.push(this.VDegree),t.push(this.ControlPointsList),t.push(this.SurfaceForm),t.push(this.UClosed),t.push(this.VClosed),t.push(this.SelfIntersect),t}},Lfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.UDegree=e,this.VDegree=i,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l,this.UMultiplicities=c,this.VMultiplicities=u,this.UKnots=h,this.VKnots=p,this.KnotSpec=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new Lfe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.UDegree),t.push(this.VDegree),t.push(this.ControlPointsList),t.push(this.SurfaceForm),t.push(this.UClosed),t.push(this.VClosed),t.push(this.SelfIntersect),t.push(this.UMultiplicities),t.push(this.VMultiplicities),t.push(this.UKnots),t.push(this.VKnots),t.push(this.KnotSpec),t}},Ffe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Ffe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Hfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Hfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Ufe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Ufe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Bfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Bfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},kfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new kfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Gfe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.RepeatS=e,this.RepeatT=i,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.RasterFormat=o,this.RasterCode=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Gfe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.RepeatS),t.push(this.RepeatT),t.push(this.Mode),t.push(this.TextureTransform),t.push(this.Parameter),t.push(this.RasterFormat),t.push(this.RasterCode),t}},Vfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Position=e,this.XLength=i,this.YLength=n,this.ZLength=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Vfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Position),t.push(this.XLength),t.push(this.YLength),t.push(this.ZLength),t}},zfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new zfe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},jfe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new jfe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Wfe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Operator=e,this.FirstOperand=i,this.SecondOperand=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Wfe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Operator),t.push(this.FirstOperand),t.push(this.SecondOperand),t}},qfe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Operator=e,this.FirstOperand=i,this.SecondOperand=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new qfe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Operator),t.push(this.FirstOperand),t.push(this.SecondOperand),t}},Yfe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Yfe(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},Xfe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Segments=e,this.SelfIntersect=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Xfe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Segments),t.push(this.SelfIntersect),t}},$fe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.TranslationalStiffnessByLengthX=i,this.TranslationalStiffnessByLengthY=n,this.TranslationalStiffnessByLengthZ=s,this.RotationalStiffnessByLengthX=a,this.RotationalStiffnessByLengthY=o,this.RotationalStiffnessByLengthZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new $fe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TranslationalStiffnessByLengthX),t.push(this.TranslationalStiffnessByLengthY),t.push(this.TranslationalStiffnessByLengthZ),t.push(this.RotationalStiffnessByLengthX),t.push(this.RotationalStiffnessByLengthY),t.push(this.RotationalStiffnessByLengthZ),t}},Zfe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.TranslationalStiffnessByAreaX=i,this.TranslationalStiffnessByAreaY=n,this.TranslationalStiffnessByAreaZ=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Zfe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TranslationalStiffnessByAreaX),t.push(this.TranslationalStiffnessByAreaY),t.push(this.TranslationalStiffnessByAreaZ),t}},Kfe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.TranslationalStiffnessX=i,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=s,this.RotationalStiffnessX=a,this.RotationalStiffnessY=o,this.RotationalStiffnessZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Kfe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TranslationalStiffnessX),t.push(this.TranslationalStiffnessY),t.push(this.TranslationalStiffnessZ),t.push(this.RotationalStiffnessX),t.push(this.RotationalStiffnessY),t.push(this.RotationalStiffnessZ),t}},Jfe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.TranslationalStiffnessX=i,this.TranslationalStiffnessY=n,this.TranslationalStiffnessZ=s,this.RotationalStiffnessX=a,this.RotationalStiffnessY=o,this.RotationalStiffnessZ=l,this.WarpingStiffness=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Jfe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TranslationalStiffnessX),t.push(this.TranslationalStiffnessY),t.push(this.TranslationalStiffnessZ),t.push(this.RotationalStiffnessX),t.push(this.RotationalStiffnessY),t.push(this.RotationalStiffnessZ),t.push(this.WarpingStiffness),t}},Qfe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Qfe(t,r)}ToTape(){return[]}},eme=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new eme(t,r)}ToTape(){return[]}},tme=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Corner=e,this.XDim=i,this.YDim=n,this.ZDim=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new tme(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Corner),t.push(this.XDim),t.push(this.YDim),t.push(this.ZDim),t}},rme=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BaseSurface=e,this.AgreementFlag=i,this.Enclosure=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new rme(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BaseSurface),t.push(this.AgreementFlag),t.push(this.Enclosure),t}},ime=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ime(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.PredefinedType),t}},nme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new nme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.PredefinedType),t}},sme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.ElevationOfRefHeight=h,this.ElevationOfTerrain=p,this.BuildingAddress=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new sme(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.ElevationOfRefHeight),t.push(this.ElevationOfTerrain),t.push(this.BuildingAddress),t}},ame=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new ame(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},ome=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ome(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},lme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new lme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},cme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new cme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ume=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ume(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},hme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new hme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},pme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.Elevation=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new pme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.Elevation),t}},dme=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.LongName=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new dme(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.PredefinedType),t.push(this.LongName),t}},fme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new fme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},mme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},gme=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Depth=s,this.Width=a,this.WallThickness=o,this.Girth=l,this.InternalFilletRadius=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new gme(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Depth),t.push(this.Width),t.push(this.WallThickness),t.push(this.Girth),t.push(this.InternalFilletRadius),t}},vme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new vme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},yme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new yme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Tme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Tme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Eme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Eme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},bme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new bme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},xme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new xme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Ime=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Ime(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Sme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Sme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},_me=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new _me(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},wme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new wme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Rme=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Coordinates=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Rme(t,r,n)}ToTape(){let t=[];return t.push(this.Coordinates),t}},Mme=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Mme(t,r)}ToTape(){return[]}},Dme=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.CoordList=e,this.TagList=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Dme(t,r,n,s)}ToTape(){let t=[];return t.push(this.CoordList),t.push(this.TagList),t}},Cme=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.CoordList=e,this.TagList=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Cme(t,r,n,s)}ToTape(){let t=[];return t.push(this.CoordList),t.push(this.TagList),t}},Ame=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Axis1=e,this.Axis2=i,this.LocalOrigin=n,this.Scale=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Ame(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Axis1),t.push(this.Axis2),t.push(this.LocalOrigin),t.push(this.Scale),t}},Ome=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Axis1=e,this.Axis2=i,this.LocalOrigin=n,this.Scale=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Ome(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Axis1),t.push(this.Axis2),t.push(this.LocalOrigin),t.push(this.Scale),t}},Pme=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Axis1=e,this.Axis2=i,this.LocalOrigin=n,this.Scale=s,this.Scale2=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Pme(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Axis1),t.push(this.Axis2),t.push(this.LocalOrigin),t.push(this.Scale),t.push(this.Scale2),t}},Nme=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Axis1=e,this.Axis2=i,this.LocalOrigin=n,this.Scale=s,this.Axis3=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Nme(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Axis1),t.push(this.Axis2),t.push(this.LocalOrigin),t.push(this.Scale),t.push(this.Axis3),t}},Lme=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Axis1=e,this.Axis2=i,this.LocalOrigin=n,this.Scale=s,this.Axis3=a,this.Scale2=o,this.Scale3=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Lme(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Axis1),t.push(this.Axis2),t.push(this.LocalOrigin),t.push(this.Scale),t.push(this.Axis3),t.push(this.Scale2),t.push(this.Scale3),t}},Fme=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Curve=n,this.Thickness=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Fme(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Curve),t.push(this.Thickness),t}},Hme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Hme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Ume=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Ume(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Bme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Bme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},kme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new kme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Gme=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Position=e,this.Radius=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Gme(t,r,n,s)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Radius),t}},Vme=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Radius=s,this.WallThickness=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Vme(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Radius),t.push(this.WallThickness),t}},zme=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Radius=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new zme(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Radius),t}},jme=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.StartPoint=e,this.StartDirection=i,this.SegmentLength=n,this.Radius=s,this.IsCCW=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new jme(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.StartPoint),t.push(this.StartDirection),t.push(this.SegmentLength),t.push(this.Radius),t.push(this.IsCCW),t}},Wme=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Wme(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},qme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new qme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Yme=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Source=e,this.Edition=i,this.EditionDate=n,this.Name=s,this.Description=a,this.Location=o,this.ReferenceTokens=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Yme(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Source),t.push(this.Edition),t.push(this.EditionDate),t.push(this.Name),t.push(this.Description),t.push(this.Location),t.push(this.ReferenceTokens),t}},Xme=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n,this.ReferencedSource=s,this.Description=a,this.Sort=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Xme(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t.push(this.ReferencedSource),t.push(this.Description),t.push(this.Sort),t}},$me=class{constructor(t,r,e){this.expressID=t,this.type=r,this.CfsFaces=e}static FromTape(t,r,e){let i=0,n=e[i++];return new $me(t,r,n)}ToTape(){let t=[];return t.push(this.CfsFaces),t}},Zme=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Zme(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Kme=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Kme(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Jme=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Red=i,this.Green=n,this.Blue=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Jme(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Red),t.push(this.Green),t.push(this.Blue),t}},Qme=class{constructor(t,r,e){this.expressID=t,this.type=r,this.ColourList=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Qme(t,r,n)}ToTape(){let t=[];return t.push(this.ColourList),t}},ege=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new ege(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},tge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new tge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},rge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new rge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ige=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ige(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},nge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new nge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},sge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new sge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},age=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.UsageName=n,this.HasProperties=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new age(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.UsageName),t.push(this.HasProperties),t}},oge=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.UsageName=a,this.TemplateType=o,this.HasPropertyTemplates=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new oge(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.UsageName),t.push(this.TemplateType),t.push(this.HasPropertyTemplates),t}},lge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Segments=e,this.SelfIntersect=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new lge(t,r,n,s)}ToTape(){let t=[];return t.push(this.Segments),t.push(this.SelfIntersect),t}},cge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Segments=e,this.SelfIntersect=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new cge(t,r,n,s)}ToTape(){let t=[];return t.push(this.Segments),t.push(this.SelfIntersect),t}},uge=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Transition=e,this.SameSense=i,this.ParentCurve=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new uge(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Transition),t.push(this.SameSense),t.push(this.ParentCurve),t}},hge=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Profiles=n,this.Label=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new hge(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Profiles),t.push(this.Label),t}},pge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new pge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},dge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new dge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},fge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new fge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},mge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},gge=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Position=e}static FromTape(t,r,e){let i=0,n=e[i++];return new gge(t,r,n)}ToTape(){let t=[];return t.push(this.Position),t}},vge=class{constructor(t,r,e){this.expressID=t,this.type=r,this.CfsFaces=e}static FromTape(t,r,e){let i=0,n=e[i++];return new vge(t,r,n)}ToTape(){let t=[];return t.push(this.CfsFaces),t}},yge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.CurveOnRelatingElement=e,this.CurveOnRelatedElement=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new yge(t,r,n,s)}ToTape(){let t=[];return t.push(this.CurveOnRelatingElement),t.push(this.CurveOnRelatedElement),t}},Tge=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Tge(t,r)}ToTape(){return[]}},Ege=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.PointOnRelatingElement=e,this.PointOnRelatedElement=i,this.EccentricityInX=n,this.EccentricityInY=s,this.EccentricityInZ=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Ege(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.PointOnRelatingElement),t.push(this.PointOnRelatedElement),t.push(this.EccentricityInX),t.push(this.EccentricityInY),t.push(this.EccentricityInZ),t}},bge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.PointOnRelatingElement=e,this.PointOnRelatedElement=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new bge(t,r,n,s)}ToTape(){let t=[];return t.push(this.PointOnRelatingElement),t.push(this.PointOnRelatedElement),t}},xge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SurfaceOnRelatingElement=e,this.SurfaceOnRelatedElement=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new xge(t,r,n,s)}ToTape(){let t=[];return t.push(this.SurfaceOnRelatingElement),t.push(this.SurfaceOnRelatedElement),t}},Ige=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.VolumeOnRelatingElement=e,this.VolumeOnRelatedElement=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Ige(t,r,n,s)}ToTape(){let t=[];return t.push(this.VolumeOnRelatingElement),t.push(this.VolumeOnRelatedElement),t}},Sge=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Sge(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.ConstraintGrade),t.push(this.ConstraintSource),t.push(this.CreatingActor),t.push(this.CreationTime),t.push(this.UserDefinedGrade),t}},_ge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new _ge(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},wge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new wge(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Rge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Rge(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Mge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new Mge(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Dge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Dge(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Cge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new Cge(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Age=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Age(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t}},Oge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Oge(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t}},Pge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=c,this.UnitsInContext=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Pge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t.push(this.Phase),t.push(this.RepresentationContexts),t.push(this.UnitsInContext),t}},Nge=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Dimensions=e,this.UnitType=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Nge(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Dimensions),t.push(this.UnitType),t.push(this.Name),t}},Lge=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Lge(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t}},Fge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Fge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Hge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Hge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Uge=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Dimensions=e,this.UnitType=i,this.Name=n,this.ConversionFactor=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Uge(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Dimensions),t.push(this.UnitType),t.push(this.Name),t.push(this.ConversionFactor),t}},Bge=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Dimensions=e,this.UnitType=i,this.Name=n,this.ConversionFactor=s,this.ConversionOffset=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Bge(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Dimensions),t.push(this.UnitType),t.push(this.Name),t.push(this.ConversionFactor),t.push(this.ConversionOffset),t}},kge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new kge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Gge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Gge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Vge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Vge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},zge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new zge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},jge=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SourceCRS=e,this.TargetCRS=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new jge(t,r,n,s)}ToTape(){let t=[];return t.push(this.SourceCRS),t.push(this.TargetCRS),t}},Wge=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.GeodeticDatum=n,this.VerticalDatum=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Wge(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.GeodeticDatum),t.push(this.VerticalDatum),t}},qge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.CostValues=c,this.CostQuantities=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new qge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.PredefinedType),t.push(this.CostValues),t.push(this.CostQuantities),t}},Yge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=c,this.SubmittedOn=u,this.UpdateDate=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Yge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.PredefinedType),t.push(this.Status),t.push(this.SubmittedOn),t.push(this.UpdateDate),t}},Xge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.AppliedValue=n,this.UnitBasis=s,this.ApplicableDate=a,this.FixedUntilDate=o,this.Category=l,this.Condition=c,this.ArithmeticOperator=u,this.Components=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Xge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.AppliedValue),t.push(this.UnitBasis),t.push(this.ApplicableDate),t.push(this.FixedUntilDate),t.push(this.Category),t.push(this.Condition),t.push(this.ArithmeticOperator),t.push(this.Components),t}},$ge=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new $ge(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Zge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Zge(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Kge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Kge(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Jge=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new Jge(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},Qge=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Position=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Qge(t,r,n)}ToTape(){let t=[];return t.push(this.Position),t}},e0e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.TreeRootExpression=e}static FromTape(t,r,e){let i=0,n=e[i++];return new e0e(t,r,n)}ToTape(){let t=[];return t.push(this.TreeRootExpression),t}},t0e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingMonetaryUnit=n,this.RelatedMonetaryUnit=s,this.ExchangeRate=a,this.RateDateTime=o,this.RateSource=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new t0e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingMonetaryUnit),t.push(this.RelatedMonetaryUnit),t.push(this.ExchangeRate),t.push(this.RateDateTime),t.push(this.RateSource),t}},r0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new r0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},i0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new i0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},n0e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new n0e(t,r)}ToTape(){return[]}},s0e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BasisSurface=e,this.OuterBoundary=i,this.InnerBoundaries=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new s0e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BasisSurface),t.push(this.OuterBoundary),t.push(this.InnerBoundaries),t}},a0e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BasisSurface=e,this.Boundaries=i,this.ImplicitOuter=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new a0e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BasisSurface),t.push(this.Boundaries),t.push(this.ImplicitOuter),t}},o0e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.StartPoint=e,this.StartDirection=i,this.SegmentLength=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new o0e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.StartPoint),t.push(this.StartDirection),t.push(this.SegmentLength),t}},l0e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.CurveFont=i,this.CurveWidth=n,this.CurveColour=s,this.ModelOrDraughting=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new l0e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.CurveFont),t.push(this.CurveWidth),t.push(this.CurveColour),t.push(this.ModelOrDraughting),t}},c0e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Name=e,this.PatternList=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new c0e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Name),t.push(this.PatternList),t}},u0e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.CurveFont=i,this.CurveFontScaling=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new u0e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.CurveFont),t.push(this.CurveFontScaling),t}},h0e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.VisibleSegmentLength=e,this.InvisibleSegmentLength=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new h0e(t,r,n,s)}ToTape(){let t=[];return t.push(this.VisibleSegmentLength),t.push(this.InvisibleSegmentLength),t}},p0e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Position=e,this.Radius=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new p0e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Radius),t}},d0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new d0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},f0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new f0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},m0e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new m0e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},g0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new g0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},v0e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.ParentProfile=n,this.Operator=s,this.Label=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new v0e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.ParentProfile),t.push(this.Operator),t.push(this.Label),t}},y0e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Elements=e,this.UnitType=i,this.UserDefinedType=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new y0e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Elements),t.push(this.UnitType),t.push(this.UserDefinedType),t}},T0e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Unit=e,this.Exponent=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new T0e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Unit),t.push(this.Exponent),t}},E0e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.LengthExponent=e,this.MassExponent=i,this.TimeExponent=n,this.ElectricCurrentExponent=s,this.ThermodynamicTemperatureExponent=a,this.AmountOfSubstanceExponent=o,this.LuminousIntensityExponent=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new E0e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.LengthExponent),t.push(this.MassExponent),t.push(this.TimeExponent),t.push(this.ElectricCurrentExponent),t.push(this.ThermodynamicTemperatureExponent),t.push(this.AmountOfSubstanceExponent),t.push(this.LuminousIntensityExponent),t}},b0e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.DirectionRatios=e}static FromTape(t,r,e){let i=0,n=e[i++];return new b0e(t,r,n)}ToTape(){let t=[];return t.push(this.DirectionRatios),t}},x0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new x0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},I0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new I0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},S0e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.DistanceAlong=e,this.OffsetLateral=i,this.OffsetVertical=n,this.OffsetLongitudinal=s,this.AlongHorizontal=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new S0e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.DistanceAlong),t.push(this.OffsetLateral),t.push(this.OffsetVertical),t.push(this.OffsetLongitudinal),t.push(this.AlongHorizontal),t}},_0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new _0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},w0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new w0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},R0e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.PredefinedType=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new R0e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t.push(this.PredefinedType),t}},M0e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new M0e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},D0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new D0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},C0e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new C0e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},A0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new A0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},O0e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new O0e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},P0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new P0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},N0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.FlowDirection=c,this.PredefinedType=u,this.SystemType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new N0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.FlowDirection),t.push(this.PredefinedType),t.push(this.SystemType),t}},L0e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.PredefinedType=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new L0e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t.push(this.PredefinedType),t}},F0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E){this.expressID=t,this.type=r,this.Identification=e,this.Name=i,this.Description=n,this.Location=s,this.Purpose=a,this.IntendedUse=o,this.Scope=l,this.Revision=c,this.DocumentOwner=u,this.Editors=h,this.CreationTime=p,this.LastRevisionTime=d,this.ElectronicFormat=f,this.ValidFrom=m,this.ValidUntil=g,this.Confidentiality=y,this.Status=E}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++];return new F0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x)}ToTape(){let t=[];return t.push(this.Identification),t.push(this.Name),t.push(this.Description),t.push(this.Location),t.push(this.Purpose),t.push(this.IntendedUse),t.push(this.Scope),t.push(this.Revision),t.push(this.DocumentOwner),t.push(this.Editors),t.push(this.CreationTime),t.push(this.LastRevisionTime),t.push(this.ElectronicFormat),t.push(this.ValidFrom),t.push(this.ValidUntil),t.push(this.Confidentiality),t.push(this.Status),t}},H0e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingDocument=n,this.RelatedDocuments=s,this.RelationshipType=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new H0e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingDocument),t.push(this.RelatedDocuments),t.push(this.RelationshipType),t}},U0e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n,this.Description=s,this.ReferencedDocument=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new U0e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t.push(this.Description),t.push(this.ReferencedDocument),t}},B0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.OverallHeight=u,this.OverallWidth=h,this.PredefinedType=p,this.OperationType=d,this.UserDefinedOperationType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new B0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.OverallHeight),t.push(this.OverallWidth),t.push(this.PredefinedType),t.push(this.OperationType),t.push(this.UserDefinedOperationType),t}},k0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.LiningDepth=a,this.LiningThickness=o,this.ThresholdDepth=l,this.ThresholdThickness=c,this.TransomThickness=u,this.TransomOffset=h,this.LiningOffset=p,this.ThresholdOffset=d,this.CasingThickness=f,this.CasingDepth=m,this.ShapeAspectStyle=g,this.LiningToPanelOffsetX=y,this.LiningToPanelOffsetY=E}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++];return new k0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.LiningDepth),t.push(this.LiningThickness),t.push(this.ThresholdDepth),t.push(this.ThresholdThickness),t.push(this.TransomThickness),t.push(this.TransomOffset),t.push(this.LiningOffset),t.push(this.ThresholdOffset),t.push(this.CasingThickness),t.push(this.CasingDepth),t.push(this.ShapeAspectStyle),t.push(this.LiningToPanelOffsetX),t.push(this.LiningToPanelOffsetY),t}},G0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.PanelDepth=a,this.PanelOperation=o,this.PanelWidth=l,this.PanelPosition=c,this.ShapeAspectStyle=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new G0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.PanelDepth),t.push(this.PanelOperation),t.push(this.PanelWidth),t.push(this.PanelPosition),t.push(this.ShapeAspectStyle),t}},V0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.OverallHeight=u,this.OverallWidth=h,this.PredefinedType=p,this.OperationType=d,this.UserDefinedOperationType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new V0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.OverallHeight),t.push(this.OverallWidth),t.push(this.PredefinedType),t.push(this.OperationType),t.push(this.UserDefinedOperationType),t}},z0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.OperationType=u,this.ConstructionType=h,this.ParameterTakesPrecedence=p,this.Sizeable=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new z0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.OperationType),t.push(this.ConstructionType),t.push(this.ParameterTakesPrecedence),t.push(this.Sizeable),t}},j0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.OperationType=p,this.ParameterTakesPrecedence=d,this.UserDefinedOperationType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new j0e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.OperationType),t.push(this.ParameterTakesPrecedence),t.push(this.UserDefinedOperationType),t}},W0e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new W0e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},q0e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new q0e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},Y0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Y0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},X0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new X0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},$0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new $0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Z0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Z0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},K0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new K0e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},J0e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new J0e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Q0e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.EdgeStart=e,this.EdgeEnd=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Q0e(t,r,n,s)}ToTape(){let t=[];return t.push(this.EdgeStart),t.push(this.EdgeEnd),t}},eve=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.EdgeStart=e,this.EdgeEnd=i,this.EdgeGeometry=n,this.SameSense=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new eve(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.EdgeStart),t.push(this.EdgeEnd),t.push(this.EdgeGeometry),t.push(this.SameSense),t}},tve=class{constructor(t,r,e){this.expressID=t,this.type=r,this.EdgeList=e}static FromTape(t,r,e){let i=0,n=e[i++];return new tve(t,r,n)}ToTape(){let t=[];return t.push(this.EdgeList),t}},rve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new rve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ive=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ive(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},nve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new nve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},sve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new sve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},ave=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ave(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ove=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ove(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},lve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new lve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},cve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new cve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},uve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new uve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},hve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new hve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},pve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new pve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},dve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new dve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},fve=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new fve(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},mve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.AssemblyPlace=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.AssemblyPlace),t.push(this.PredefinedType),t}},gve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new gve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},vve=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new vve(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},yve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new yve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Tve=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.MethodOfMeasurement=a,this.Quantities=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Tve(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.MethodOfMeasurement),t.push(this.Quantities),t}},Eve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Eve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},bve=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Position=e}static FromTape(t,r,e){let i=0,n=e[i++];return new bve(t,r,n)}ToTape(){let t=[];return t.push(this.Position),t}},xve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Position=e,this.SemiAxis1=i,this.SemiAxis2=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new xve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Position),t.push(this.SemiAxis1),t.push(this.SemiAxis2),t}},Ive=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.SemiAxis1=s,this.SemiAxis2=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Ive(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.SemiAxis1),t.push(this.SemiAxis2),t}},Sve=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Sve(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},_ve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new _ve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},wve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new wve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Rve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Rve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Mve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Mve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Dve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Dve(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Cve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Cve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Ave=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Ave(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Ove=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.PredefinedType=c,this.EventTriggerType=u,this.UserDefinedEventTriggerType=h,this.EventOccurenceTime=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Ove(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.PredefinedType),t.push(this.EventTriggerType),t.push(this.UserDefinedEventTriggerType),t.push(this.EventOccurenceTime),t}},Pve=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.ActualDate=s,this.EarlyDate=a,this.LateDate=o,this.ScheduleDate=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Pve(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.ActualDate),t.push(this.EarlyDate),t.push(this.LateDate),t.push(this.ScheduleDate),t}},Nve=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ProcessType=u,this.PredefinedType=h,this.EventTriggerType=p,this.UserDefinedEventTriggerType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new Nve(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ProcessType),t.push(this.PredefinedType),t.push(this.EventTriggerType),t.push(this.UserDefinedEventTriggerType),t}},Lve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Properties=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Lve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Properties),t}},Fve=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Fve(t,r)}ToTape(){return[]}},Hve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Hve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t}},Uve=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingReference=n,this.RelatedResourceObjects=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Uve(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingReference),t.push(this.RelatedResourceObjects),t}},Bve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Bve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.PredefinedType),t}},kve=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new kve(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t}},Gve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Gve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t}},Vve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Vve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t}},zve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new zve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t}},jve=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.ExtrudedDirection=n,this.Depth=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new jve(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.ExtrudedDirection),t.push(this.Depth),t}},Wve=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.ExtrudedDirection=n,this.Depth=s,this.EndSweptArea=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Wve(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.ExtrudedDirection),t.push(this.Depth),t.push(this.EndSweptArea),t}},qve=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Bounds=e}static FromTape(t,r,e){let i=0,n=e[i++];return new qve(t,r,n)}ToTape(){let t=[];return t.push(this.Bounds),t}},Yve=class{constructor(t,r,e){this.expressID=t,this.type=r,this.FbsmFaces=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Yve(t,r,n)}ToTape(){let t=[];return t.push(this.FbsmFaces),t}},Xve=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Bound=e,this.Orientation=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Xve(t,r,n,s)}ToTape(){let t=[];return t.push(this.Bound),t.push(this.Orientation),t}},$ve=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Bound=e,this.Orientation=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new $ve(t,r,n,s)}ToTape(){let t=[];return t.push(this.Bound),t.push(this.Orientation),t}},Zve=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Bounds=e,this.FaceSurface=i,this.SameSense=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Zve(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Bounds),t.push(this.FaceSurface),t.push(this.SameSense),t}},Kve=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Outer=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Kve(t,r,n)}ToTape(){let t=[];return t.push(this.Outer),t}},Jve=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Outer=e,this.Voids=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Jve(t,r,n,s)}ToTape(){let t=[];return t.push(this.Outer),t.push(this.Voids),t}},Qve=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Qve(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t}},eye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new eye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t}},tye=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.TensionFailureX=i,this.TensionFailureY=n,this.TensionFailureZ=s,this.CompressionFailureX=a,this.CompressionFailureY=o,this.CompressionFailureZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new tye(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TensionFailureX),t.push(this.TensionFailureY),t.push(this.TensionFailureZ),t.push(this.CompressionFailureX),t.push(this.CompressionFailureY),t.push(this.CompressionFailureZ),t}},rye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new rye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},iye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new iye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},nye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new nye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},sye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new sye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},aye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new aye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},oye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new oye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},lye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new lye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},cye=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.FillStyles=i,this.ModelorDraughting=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new cye(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.FillStyles),t.push(this.ModelorDraughting),t}},uye=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.HatchLineAppearance=e,this.StartOfNextHatchLine=i,this.PointOfReferenceHatchLine=n,this.PatternStart=s,this.HatchLineAngle=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new uye(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.HatchLineAppearance),t.push(this.StartOfNextHatchLine),t.push(this.PointOfReferenceHatchLine),t.push(this.PatternStart),t.push(this.HatchLineAngle),t}},hye=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.TilingPattern=e,this.Tiles=i,this.TilingScale=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new hye(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.TilingPattern),t.push(this.Tiles),t.push(this.TilingScale),t}},pye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new pye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},dye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new dye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},fye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new fye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},mye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},gye=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.Directrix=n,this.StartParam=s,this.EndParam=a,this.FixedReference=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new gye(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.Directrix),t.push(this.StartParam),t.push(this.EndParam),t.push(this.FixedReference),t}},vye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new vye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},yye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new yye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Tye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Tye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Eye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Eye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},bye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new bye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},xye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new xye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Iye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Iye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Sye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Sye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},_ye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new _ye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},wye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new wye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Rye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Rye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Mye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Mye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Dye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Dye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Cye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Cye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Aye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Aye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Oye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Oye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Pye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Pye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Nye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Nye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Lye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Lye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Fye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Fye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Hye=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Hye(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Uye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Uye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Bye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Bye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},kye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.AssemblyPlace=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new kye(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.AssemblyPlace),t.push(this.PredefinedType),t}},Gye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Gye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Vye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Vye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},zye=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Elements=e}static FromTape(t,r,e){let i=0,n=e[i++];return new zye(t,r,n)}ToTape(){let t=[];return t.push(this.Elements),t}},jye=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.ContextIdentifier=e,this.ContextType=i,this.CoordinateSpaceDimension=n,this.Precision=s,this.WorldCoordinateSystem=a,this.TrueNorth=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new jye(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.ContextIdentifier),t.push(this.ContextType),t.push(this.CoordinateSpaceDimension),t.push(this.Precision),t.push(this.WorldCoordinateSystem),t.push(this.TrueNorth),t}},Wye=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Wye(t,r)}ToTape(){return[]}},qye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.ContextIdentifier=e,this.ContextType=i,this.CoordinateSpaceDimension=n,this.Precision=s,this.WorldCoordinateSystem=a,this.TrueNorth=o,this.ParentContext=l,this.TargetScale=c,this.TargetView=u,this.UserDefinedTargetView=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new qye(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.ContextIdentifier),t.push(this.ContextType),t.push(this.CoordinateSpaceDimension),t.push(this.Precision),t.push(this.WorldCoordinateSystem),t.push(this.TrueNorth),t.push(this.ParentContext),t.push(this.TargetScale),t.push(this.TargetView),t.push(this.UserDefinedTargetView),t}},Yye=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Elements=e}static FromTape(t,r,e){let i=0,n=e[i++];return new Yye(t,r,n)}ToTape(){let t=[];return t.push(this.Elements),t}},Xye=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.UAxes=c,this.VAxes=u,this.WAxes=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Xye(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.UAxes),t.push(this.VAxes),t.push(this.WAxes),t.push(this.PredefinedType),t}},$ye=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.AxisTag=e,this.AxisCurve=i,this.SameSense=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new $ye(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.AxisTag),t.push(this.AxisCurve),t.push(this.SameSense),t}},Zye=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.PlacementRelTo=e,this.PlacementLocation=i,this.PlacementRefDirection=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new Zye(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.PlacementRelTo),t.push(this.PlacementLocation),t.push(this.PlacementRefDirection),t}},Kye=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Kye(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t}},Jye=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.BaseSurface=e,this.AgreementFlag=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Jye(t,r,n,s)}ToTape(){let t=[];return t.push(this.BaseSurface),t.push(this.AgreementFlag),t}},Qye=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Qye(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},eTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new eTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},tTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new tTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},rTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new rTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},iTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.OverallWidth=s,this.OverallDepth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=c,this.FlangeEdgeRadius=u,this.FlangeSlope=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new iTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.OverallWidth),t.push(this.OverallDepth),t.push(this.WebThickness),t.push(this.FlangeThickness),t.push(this.FilletRadius),t.push(this.FlangeEdgeRadius),t.push(this.FlangeSlope),t}},nTe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.RepeatS=e,this.RepeatT=i,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.URLReference=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new nTe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.RepeatS),t.push(this.RepeatT),t.push(this.Mode),t.push(this.TextureTransform),t.push(this.Parameter),t.push(this.URLReference),t}},sTe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.MappedTo=e,this.Opacity=i,this.Colours=n,this.ColourIndex=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new sTe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.MappedTo),t.push(this.Opacity),t.push(this.Colours),t.push(this.ColourIndex),t}},aTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Points=e,this.Segments=i,this.SelfIntersect=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new aTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Points),t.push(this.Segments),t.push(this.SelfIntersect),t}},oTe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.CoordIndex=e}static FromTape(t,r,e){let i=0,n=e[i++];return new oTe(t,r,n)}ToTape(){let t=[];return t.push(this.CoordIndex),t}},lTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.CoordIndex=e,this.InnerCoordIndices=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new lTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.CoordIndex),t.push(this.InnerCoordIndices),t}},cTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Maps=e,this.MappedTo=i,this.TexCoords=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new cTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Maps),t.push(this.MappedTo),t.push(this.TexCoords),t}},uTe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Maps=e,this.MappedTo=i,this.TexCoords=n,this.TexCoordIndex=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new uTe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Maps),t.push(this.MappedTo),t.push(this.TexCoords),t.push(this.TexCoordIndex),t}},hTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new hTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},pTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new pTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},dTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Curve3D=e,this.AssociatedGeometry=i,this.MasterRepresentation=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new dTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Curve3D),t.push(this.AssociatedGeometry),t.push(this.MasterRepresentation),t}},fTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.Jurisdiction=l,this.ResponsiblePersons=c,this.LastUpdateDate=u,this.CurrentValue=h,this.OriginalValue=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new fTe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.PredefinedType),t.push(this.Jurisdiction),t.push(this.ResponsiblePersons),t.push(this.LastUpdateDate),t.push(this.CurrentValue),t.push(this.OriginalValue),t}},mTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=c,this.Values=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new mTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.StartTime),t.push(this.EndTime),t.push(this.TimeSeriesDataType),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.Unit),t.push(this.Values),t}},gTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.TimeStamp=e,this.ListValues=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new gTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.TimeStamp),t.push(this.ListValues),t}},vTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new vTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},yTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new yTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},TTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Depth=s,this.Width=a,this.Thickness=o,this.FilletRadius=l,this.EdgeRadius=c,this.LegSlope=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new TTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Depth),t.push(this.Width),t.push(this.Thickness),t.push(this.FilletRadius),t.push(this.EdgeRadius),t.push(this.LegSlope),t}},ETe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new ETe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},bTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new bTe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},xTe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.LagValue=s,this.DurationType=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new xTe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.LagValue),t.push(this.DurationType),t}},ITe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ITe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},STe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new STe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},_Te=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.Version=i,this.Publisher=n,this.VersionDate=s,this.Location=a,this.Description=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new _Te(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Version),t.push(this.Publisher),t.push(this.VersionDate),t.push(this.Location),t.push(this.Description),t}},wTe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Location=e,this.Identification=i,this.Name=n,this.Description=s,this.Language=a,this.ReferencedLibrary=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new wTe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Location),t.push(this.Identification),t.push(this.Name),t.push(this.Description),t.push(this.Language),t.push(this.ReferencedLibrary),t}},RTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.MainPlaneAngle=e,this.SecondaryPlaneAngle=i,this.LuminousIntensity=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new RTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.MainPlaneAngle),t.push(this.SecondaryPlaneAngle),t.push(this.LuminousIntensity),t}},MTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new MTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},DTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new DTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},CTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.LightDistributionCurve=e,this.DistributionData=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new CTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.LightDistributionCurve),t.push(this.DistributionData),t}},ATe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new ATe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t}},OTe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new OTe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t}},PTe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s,this.Orientation=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new PTe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t.push(this.Orientation),t}},NTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.ColourAppearance=o,this.ColourTemperature=l,this.LuminousFlux=c,this.LightEmissionSource=u,this.LightDistributionDataSource=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new NTe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t.push(this.Position),t.push(this.ColourAppearance),t.push(this.ColourTemperature),t.push(this.LuminousFlux),t.push(this.LightEmissionSource),t.push(this.LightDistributionDataSource),t}},LTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.Radius=o,this.ConstantAttenuation=l,this.DistanceAttenuation=c,this.QuadricAttenuation=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new LTe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t.push(this.Position),t.push(this.Radius),t.push(this.ConstantAttenuation),t.push(this.DistanceAttenuation),t.push(this.QuadricAttenuation),t}},FTe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.Name=e,this.LightColour=i,this.AmbientIntensity=n,this.Intensity=s,this.Position=a,this.Radius=o,this.ConstantAttenuation=l,this.DistanceAttenuation=c,this.QuadricAttenuation=u,this.Orientation=h,this.ConcentrationExponent=p,this.SpreadAngle=d,this.BeamWidthAngle=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new FTe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LightColour),t.push(this.AmbientIntensity),t.push(this.Intensity),t.push(this.Position),t.push(this.Radius),t.push(this.ConstantAttenuation),t.push(this.DistanceAttenuation),t.push(this.QuadricAttenuation),t.push(this.Orientation),t.push(this.ConcentrationExponent),t.push(this.SpreadAngle),t.push(this.BeamWidthAngle),t}},HTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Pnt=e,this.Dir=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new HTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Pnt),t.push(this.Dir),t}},UTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.StartPoint=e,this.StartDirection=i,this.SegmentLength=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new UTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.StartPoint),t.push(this.StartDirection),t.push(this.SegmentLength),t}},BTe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.PlacementRelTo=e,this.PlacementMeasuredAlong=i,this.Distance=n,this.Orientation=s,this.CartesianPosition=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new BTe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.PlacementRelTo),t.push(this.PlacementMeasuredAlong),t.push(this.Distance),t.push(this.Orientation),t.push(this.CartesianPosition),t}},kTe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Axis=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new kTe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Axis),t}},GTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.PlacementRelTo=e,this.RelativePlacement=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new GTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.PlacementRelTo),t.push(this.RelativePlacement),t}},VTe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new VTe(t,r)}ToTape(){return[]}},zTe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Outer=e}static FromTape(t,r,e){let i=0,n=e[i++];return new zTe(t,r,n)}ToTape(){let t=[];return t.push(this.Outer),t}},jTe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.SourceCRS=e,this.TargetCRS=i,this.Eastings=n,this.Northings=s,this.OrthogonalHeight=a,this.XAxisAbscissa=o,this.XAxisOrdinate=l,this.Scale=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new jTe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.SourceCRS),t.push(this.TargetCRS),t.push(this.Eastings),t.push(this.Northings),t.push(this.OrthogonalHeight),t.push(this.XAxisAbscissa),t.push(this.XAxisOrdinate),t.push(this.Scale),t}},WTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.MappingSource=e,this.MappingTarget=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new WTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.MappingSource),t.push(this.MappingTarget),t}},qTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Category=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new qTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Category),t}},YTe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.MaterialClassifications=e,this.ClassifiedMaterial=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new YTe(t,r,n,s)}ToTape(){let t=[];return t.push(this.MaterialClassifications),t.push(this.ClassifiedMaterial),t}},XTe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Material=n,this.Fraction=s,this.Category=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new XTe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Material),t.push(this.Fraction),t.push(this.Category),t}},$Te=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.MaterialConstituents=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new $Te(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.MaterialConstituents),t}},ZTe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new ZTe(t,r)}ToTape(){return[]}},KTe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Representations=n,this.RepresentedMaterial=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new KTe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Representations),t.push(this.RepresentedMaterial),t}},JTe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Material=e,this.LayerThickness=i,this.IsVentilated=n,this.Name=s,this.Description=a,this.Category=o,this.Priority=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new JTe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Material),t.push(this.LayerThickness),t.push(this.IsVentilated),t.push(this.Name),t.push(this.Description),t.push(this.Category),t.push(this.Priority),t}},QTe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.MaterialLayers=e,this.LayerSetName=i,this.Description=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new QTe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.MaterialLayers),t.push(this.LayerSetName),t.push(this.Description),t}},eEe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ForLayerSet=e,this.LayerSetDirection=i,this.DirectionSense=n,this.OffsetFromReferenceLine=s,this.ReferenceExtent=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new eEe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ForLayerSet),t.push(this.LayerSetDirection),t.push(this.DirectionSense),t.push(this.OffsetFromReferenceLine),t.push(this.ReferenceExtent),t}},tEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Material=e,this.LayerThickness=i,this.IsVentilated=n,this.Name=s,this.Description=a,this.Category=o,this.Priority=l,this.OffsetDirection=c,this.OffsetValues=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new tEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Material),t.push(this.LayerThickness),t.push(this.IsVentilated),t.push(this.Name),t.push(this.Description),t.push(this.Category),t.push(this.Priority),t.push(this.OffsetDirection),t.push(this.OffsetValues),t}},rEe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Materials=e}static FromTape(t,r,e){let i=0,n=e[i++];return new rEe(t,r,n)}ToTape(){let t=[];return t.push(this.Materials),t}},iEe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Material=n,this.Profile=s,this.Priority=a,this.Category=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new iEe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Material),t.push(this.Profile),t.push(this.Priority),t.push(this.Category),t}},nEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.MaterialProfiles=n,this.CompositeProfile=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new nEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.MaterialProfiles),t.push(this.CompositeProfile),t}},sEe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.ForProfileSet=e,this.CardinalPoint=i,this.ReferenceExtent=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new sEe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.ForProfileSet),t.push(this.CardinalPoint),t.push(this.ReferenceExtent),t}},aEe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ForProfileSet=e,this.CardinalPoint=i,this.ReferenceExtent=n,this.ForProfileEndSet=s,this.CardinalEndPoint=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new aEe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ForProfileSet),t.push(this.CardinalPoint),t.push(this.ReferenceExtent),t.push(this.ForProfileEndSet),t.push(this.CardinalEndPoint),t}},oEe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Material=n,this.Profile=s,this.Priority=a,this.Category=o,this.OffsetValues=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new oEe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Material),t.push(this.Profile),t.push(this.Priority),t.push(this.Category),t.push(this.OffsetValues),t}},lEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Properties=n,this.Material=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new lEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Properties),t.push(this.Material),t}},cEe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingMaterial=n,this.RelatedMaterials=s,this.Expression=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new cEe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingMaterial),t.push(this.RelatedMaterials),t.push(this.Expression),t}},uEe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new uEe(t,r)}ToTape(){return[]}},hEe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.ValueComponent=e,this.UnitComponent=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new hEe(t,r,n,s)}ToTape(){let t=[];return t.push(this.ValueComponent),t.push(this.UnitComponent),t}},pEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.NominalDiameter=u,this.NominalLength=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new pEe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.NominalDiameter),t.push(this.NominalLength),t.push(this.PredefinedType),t}},dEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.NominalDiameter=p,this.NominalLength=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new dEe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.NominalDiameter),t.push(this.NominalLength),t}},fEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new fEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},mEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mEe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},gEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new gEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},vEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new vEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},yEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new yEe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},TEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l,this.Benchmark=c,this.ValueSource=u,this.DataValue=h,this.ReferencePath=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new TEe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.ConstraintGrade),t.push(this.ConstraintSource),t.push(this.CreatingActor),t.push(this.CreationTime),t.push(this.UserDefinedGrade),t.push(this.Benchmark),t.push(this.ValueSource),t.push(this.DataValue),t.push(this.ReferencePath),t}},EEe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.ParentProfile=n,this.Operator=s,this.Label=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new EEe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.ParentProfile),t.push(this.Operator),t.push(this.Label),t}},bEe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Currency=e}static FromTape(t,r,e){let i=0,n=e[i++];return new bEe(t,r,n)}ToTape(){let t=[];return t.push(this.Currency),t}},xEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new xEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},IEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new IEe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},SEe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Dimensions=e,this.UnitType=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new SEe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Dimensions),t.push(this.UnitType),t}},_Ee=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new _Ee(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t}},wEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new wEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},REe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.PlacementRelTo=e}static FromTape(t,r,e){let i=0,n=e[i++];return new REe(t,r,n)}ToTape(){let t=[];return t.push(this.PlacementRelTo),t}},MEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.ConstraintGrade=n,this.ConstraintSource=s,this.CreatingActor=a,this.CreationTime=o,this.UserDefinedGrade=l,this.BenchmarkValues=c,this.LogicalAggregator=u,this.ObjectiveQualifier=h,this.UserDefinedQualifier=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new MEe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.ConstraintGrade),t.push(this.ConstraintSource),t.push(this.CreatingActor),t.push(this.CreationTime),t.push(this.UserDefinedGrade),t.push(this.BenchmarkValues),t.push(this.LogicalAggregator),t.push(this.ObjectiveQualifier),t.push(this.UserDefinedQualifier),t}},DEe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.TheActor=o,this.PredefinedType=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new DEe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.TheActor),t.push(this.PredefinedType),t}},CEe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.BasisCurve=e}static FromTape(t,r,e){let i=0,n=e[i++];return new CEe(t,r,n)}ToTape(){let t=[];return t.push(this.BasisCurve),t}},AEe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BasisCurve=e,this.Distance=i,this.SelfIntersect=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new AEe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BasisCurve),t.push(this.Distance),t.push(this.SelfIntersect),t}},OEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.BasisCurve=e,this.Distance=i,this.SelfIntersect=n,this.RefDirection=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new OEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.BasisCurve),t.push(this.Distance),t.push(this.SelfIntersect),t.push(this.RefDirection),t}},PEe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BasisCurve=e,this.OffsetValues=i,this.Tag=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new PEe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BasisCurve),t.push(this.OffsetValues),t.push(this.Tag),t}},NEe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.CfsFaces=e}static FromTape(t,r,e){let i=0,n=e[i++];return new NEe(t,r,n)}ToTape(){let t=[];return t.push(this.CfsFaces),t}},LEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new LEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},FEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new FEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},HEe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Identification=e,this.Name=i,this.Description=n,this.Roles=s,this.Addresses=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new HEe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Identification),t.push(this.Name),t.push(this.Description),t.push(this.Roles),t.push(this.Addresses),t}},UEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingOrganization=n,this.RelatedOrganizations=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new UEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingOrganization),t.push(this.RelatedOrganizations),t}},BEe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.LateralAxisDirection=e,this.VerticalAxisDirection=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new BEe(t,r,n,s)}ToTape(){let t=[];return t.push(this.LateralAxisDirection),t.push(this.VerticalAxisDirection),t}},kEe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.EdgeStart=e,this.EdgeEnd=i,this.EdgeElement=n,this.Orientation=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new kEe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.EdgeStart),t.push(this.EdgeEnd),t.push(this.EdgeElement),t.push(this.Orientation),t}},GEe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Segments=e,this.SelfIntersect=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new GEe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Segments),t.push(this.SelfIntersect),t}},VEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new VEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},zEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new zEe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},jEe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.OwningUser=e,this.OwningApplication=i,this.State=n,this.ChangeAction=s,this.LastModifiedDate=a,this.LastModifyingUser=o,this.LastModifyingApplication=l,this.CreationDate=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new jEe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.OwningUser),t.push(this.OwningApplication),t.push(this.State),t.push(this.ChangeAction),t.push(this.LastModifiedDate),t.push(this.LastModifyingUser),t.push(this.LastModifyingApplication),t.push(this.CreationDate),t}},WEe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new WEe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t}},qEe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.EdgeList=e}static FromTape(t,r,e){let i=0,n=e[i++];return new qEe(t,r,n)}ToTape(){let t=[];return t.push(this.EdgeList),t}},YEe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.BasisSurface=e,this.ReferenceCurve=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new YEe(t,r,n,s)}ToTape(){let t=[];return t.push(this.BasisSurface),t.push(this.ReferenceCurve),t}},XEe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LifeCyclePhase=l,this.PredefinedType=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new XEe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LifeCyclePhase),t.push(this.PredefinedType),t}},$Ee=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.OperationType=a,this.PanelPosition=o,this.FrameDepth=l,this.FrameThickness=c,this.ShapeAspectStyle=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new $Ee(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.OperationType),t.push(this.PanelPosition),t.push(this.FrameDepth),t.push(this.FrameThickness),t.push(this.ShapeAspectStyle),t}},ZEe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=c,this.LongDescription=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ZEe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.PredefinedType),t.push(this.Status),t.push(this.LongDescription),t}},KEe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Identification=e,this.FamilyName=i,this.GivenName=n,this.MiddleNames=s,this.PrefixTitles=a,this.SuffixTitles=o,this.Roles=l,this.Addresses=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new KEe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Identification),t.push(this.FamilyName),t.push(this.GivenName),t.push(this.MiddleNames),t.push(this.PrefixTitles),t.push(this.SuffixTitles),t.push(this.Roles),t.push(this.Addresses),t}},JEe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.ThePerson=e,this.TheOrganization=i,this.Roles=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new JEe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.ThePerson),t.push(this.TheOrganization),t.push(this.Roles),t}},QEe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.HasQuantities=n,this.Discrimination=s,this.Quality=a,this.Usage=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new QEe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.HasQuantities),t.push(this.Discrimination),t.push(this.Quality),t.push(this.Usage),t}},e1e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Name=e,this.Description=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new e1e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t}},t1e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new t1e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t}},r1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u,this.ConstructionType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new r1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t.push(this.ConstructionType),t}},i1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new i1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},n1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new n1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},s1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new s1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},a1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new a1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},o1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new o1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},l1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.RepeatS=e,this.RepeatT=i,this.Mode=n,this.TextureTransform=s,this.Parameter=a,this.Width=o,this.Height=l,this.ColourComponents=c,this.Pixel=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new l1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.RepeatS),t.push(this.RepeatT),t.push(this.Mode),t.push(this.TextureTransform),t.push(this.Parameter),t.push(this.Width),t.push(this.Height),t.push(this.ColourComponents),t.push(this.Pixel),t}},c1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Location=e}static FromTape(t,r,e){let i=0,n=e[i++];return new c1e(t,r,n)}ToTape(){let t=[];return t.push(this.Location),t}},u1e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.SizeInX=e,this.SizeInY=i,this.Placement=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new u1e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.SizeInX),t.push(this.SizeInY),t.push(this.Placement),t}},h1e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SizeInX=e,this.SizeInY=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new h1e(t,r,n,s)}ToTape(){let t=[];return t.push(this.SizeInX),t.push(this.SizeInY),t}},p1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Position=e}static FromTape(t,r,e){let i=0,n=e[i++];return new p1e(t,r,n)}ToTape(){let t=[];return t.push(this.Position),t}},d1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new d1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},f1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new f1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},m1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new m1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},g1e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new g1e(t,r)}ToTape(){return[]}},v1e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.BasisCurve=e,this.PointParameter=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new v1e(t,r,n,s)}ToTape(){let t=[];return t.push(this.BasisCurve),t.push(this.PointParameter),t}},y1e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.BasisSurface=e,this.PointParameterU=i,this.PointParameterV=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new y1e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.BasisSurface),t.push(this.PointParameterU),t.push(this.PointParameterV),t}},T1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Polygon=e}static FromTape(t,r,e){let i=0,n=e[i++];return new T1e(t,r,n)}ToTape(){let t=[];return t.push(this.Polygon),t}},E1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.BaseSurface=e,this.AgreementFlag=i,this.Position=n,this.PolygonalBoundary=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new E1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.BaseSurface),t.push(this.AgreementFlag),t.push(this.Position),t.push(this.PolygonalBoundary),t}},b1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Coordinates=e,this.Closed=i,this.Faces=n,this.PnIndex=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new b1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Coordinates),t.push(this.Closed),t.push(this.Faces),t.push(this.PnIndex),t}},x1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Points=e}static FromTape(t,r,e){let i=0,n=e[i++];return new x1e(t,r,n)}ToTape(){let t=[];return t.push(this.Points),t}},I1e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new I1e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},S1e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new S1e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},_1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.Purpose=e,this.Description=i,this.UserDefinedPurpose=n,this.InternalLocation=s,this.AddressLines=a,this.PostalBox=o,this.Town=l,this.Region=c,this.PostalCode=u,this.Country=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new _1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.Purpose),t.push(this.Description),t.push(this.UserDefinedPurpose),t.push(this.InternalLocation),t.push(this.AddressLines),t.push(this.PostalBox),t.push(this.Town),t.push(this.Region),t.push(this.PostalCode),t.push(this.Country),t}},w1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new w1e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},R1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new R1e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},M1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new M1e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},D1e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new D1e(t,r)}ToTape(){return[]}},C1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new C1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},A1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new A1e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},O1e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new O1e(t,r)}ToTape(){return[]}},P1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.AssignedItems=n,this.Identifier=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new P1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.AssignedItems),t.push(this.Identifier),t}},N1e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.AssignedItems=n,this.Identifier=s,this.LayerOn=a,this.LayerFrozen=o,this.LayerBlocked=l,this.LayerStyles=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new N1e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.AssignedItems),t.push(this.Identifier),t.push(this.LayerOn),t.push(this.LayerFrozen),t.push(this.LayerBlocked),t.push(this.LayerStyles),t}},L1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new L1e(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},F1e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Styles=e}static FromTape(t,r,e){let i=0,n=e[i++];return new F1e(t,r,n)}ToTape(){let t=[];return t.push(this.Styles),t}},H1e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.PredefinedType=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new H1e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.PredefinedType),t}},U1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ProcessType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new U1e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ProcessType),t.push(this.PredefinedType),t}},B1e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new B1e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t}},k1e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new k1e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},G1e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Representations=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new G1e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Representations),t}},V1e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Representations=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new V1e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Representations),t}},z1e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new z1e(t,r,n,s)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t}},j1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Properties=n,this.ProfileDefinition=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new j1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Properties),t.push(this.ProfileDefinition),t}},W1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=c,this.UnitsInContext=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new W1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t.push(this.Phase),t.push(this.RepresentationContexts),t.push(this.UnitsInContext),t}},q1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o,this.Phase=l,this.RepresentationContexts=c,this.UnitsInContext=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new q1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t.push(this.Phase),t.push(this.RepresentationContexts),t.push(this.UnitsInContext),t}},Y1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.PredefinedType=l,this.Status=c,this.LongDescription=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Y1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.PredefinedType),t.push(this.Status),t.push(this.LongDescription),t}},X1e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.GeodeticDatum=n,this.VerticalDatum=s,this.MapProjection=a,this.MapZone=o,this.MapUnit=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new X1e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.GeodeticDatum),t.push(this.VerticalDatum),t.push(this.MapProjection),t.push(this.MapZone),t.push(this.MapUnit),t}},$1e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new $1e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Z1e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Name=e,this.Description=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Z1e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t}},K1e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new K1e(t,r)}ToTape(){return[]}},J1e=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.UpperBoundValue=n,this.LowerBoundValue=s,this.Unit=a,this.SetPointValue=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new J1e(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.UpperBoundValue),t.push(this.LowerBoundValue),t.push(this.Unit),t.push(this.SetPointValue),t}},Q1e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Q1e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},ebe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.DependingProperty=n,this.DependantProperty=s,this.Expression=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new ebe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.DependingProperty),t.push(this.DependantProperty),t.push(this.Expression),t}},tbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.EnumerationValues=n,this.EnumerationReference=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new tbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.EnumerationValues),t.push(this.EnumerationReference),t}},rbe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.EnumerationValues=i,this.Unit=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new rbe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.EnumerationValues),t.push(this.Unit),t}},ibe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.ListValues=n,this.Unit=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new ibe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.ListValues),t.push(this.Unit),t}},nbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.UsageName=n,this.PropertyReference=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new nbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.UsageName),t.push(this.PropertyReference),t}},sbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.HasProperties=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new sbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.HasProperties),t}},abe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new abe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},obe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.TemplateType=a,this.ApplicableEntity=o,this.HasPropertyTemplates=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new obe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.TemplateType),t.push(this.ApplicableEntity),t.push(this.HasPropertyTemplates),t}},lbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.NominalValue=n,this.Unit=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new lbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.NominalValue),t.push(this.Unit),t}},cbe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.DefiningValues=n,this.DefinedValues=s,this.Expression=a,this.DefiningUnit=o,this.DefinedUnit=l,this.CurveInterpolation=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new cbe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.DefiningValues),t.push(this.DefinedValues),t.push(this.Expression),t.push(this.DefiningUnit),t.push(this.DefinedUnit),t.push(this.CurveInterpolation),t}},ube=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new ube(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},hbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new hbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},pbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new pbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},dbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new dbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},fbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new fbe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},mbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new mbe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},gbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.ProxyType=c,this.Tag=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new gbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.ProxyType),t.push(this.Tag),t}},vbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new vbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ybe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ybe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Tbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.AreaValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Tbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.AreaValue),t.push(this.Formula),t}},Ebe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.CountValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Ebe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.CountValue),t.push(this.Formula),t}},bbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.LengthValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new bbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.LengthValue),t.push(this.Formula),t}},xbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new xbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},Ibe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.TimeValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Ibe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.TimeValue),t.push(this.Formula),t}},Sbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.VolumeValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Sbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.VolumeValue),t.push(this.Formula),t}},_be=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.Unit=n,this.WeightValue=s,this.Formula=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new _be(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.WeightValue),t.push(this.Formula),t}},wbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new wbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Rbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Rbe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Mbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Mbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Dbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Dbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Cbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Cbe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Abe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Abe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Obe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Degree=e,this.ControlPointsList=i,this.CurveForm=n,this.ClosedCurve=s,this.SelfIntersect=a,this.KnotMultiplicities=o,this.Knots=l,this.KnotSpec=c,this.WeightsData=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Obe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Degree),t.push(this.ControlPointsList),t.push(this.CurveForm),t.push(this.ClosedCurve),t.push(this.SelfIntersect),t.push(this.KnotMultiplicities),t.push(this.Knots),t.push(this.KnotSpec),t.push(this.WeightsData),t}},Pbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.UDegree=e,this.VDegree=i,this.ControlPointsList=n,this.SurfaceForm=s,this.UClosed=a,this.VClosed=o,this.SelfIntersect=l,this.UMultiplicities=c,this.VMultiplicities=u,this.UKnots=h,this.VKnots=p,this.KnotSpec=d,this.WeightsData=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new Pbe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.UDegree),t.push(this.VDegree),t.push(this.ControlPointsList),t.push(this.SurfaceForm),t.push(this.UClosed),t.push(this.VClosed),t.push(this.SelfIntersect),t.push(this.UMultiplicities),t.push(this.VMultiplicities),t.push(this.UKnots),t.push(this.VKnots),t.push(this.KnotSpec),t.push(this.WeightsData),t}},Nbe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.XDim=s,this.YDim=a,this.WallThickness=o,this.InnerFilletRadius=l,this.OuterFilletRadius=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Nbe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.XDim),t.push(this.YDim),t.push(this.WallThickness),t.push(this.InnerFilletRadius),t.push(this.OuterFilletRadius),t}},Lbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.XDim=s,this.YDim=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Lbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.XDim),t.push(this.YDim),t}},Fbe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Position=e,this.XLength=i,this.YLength=n,this.Height=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Fbe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Position),t.push(this.XLength),t.push(this.YLength),t.push(this.Height),t}},Hbe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.BasisSurface=e,this.U1=i,this.V1=n,this.U2=s,this.V2=a,this.Usense=o,this.Vsense=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Hbe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.BasisSurface),t.push(this.U1),t.push(this.V1),t.push(this.U2),t.push(this.V2),t.push(this.Usense),t.push(this.Vsense),t}},Ube=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.RecurrenceType=e,this.DayComponent=i,this.WeekdayComponent=n,this.MonthComponent=s,this.Position=a,this.Interval=o,this.Occurrences=l,this.TimePeriods=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Ube(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.RecurrenceType),t.push(this.DayComponent),t.push(this.WeekdayComponent),t.push(this.MonthComponent),t.push(this.Position),t.push(this.Interval),t.push(this.Occurrences),t.push(this.TimePeriods),t}},Bbe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.TypeIdentifier=e,this.AttributeIdentifier=i,this.InstanceName=n,this.ListPositions=s,this.InnerReference=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new Bbe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.TypeIdentifier),t.push(this.AttributeIdentifier),t.push(this.InstanceName),t.push(this.ListPositions),t.push(this.InnerReference),t}},kbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=c,this.RestartDistance=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new kbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.PredefinedType),t.push(this.RestartDistance),t}},Gbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=c,this.TimeStep=u,this.Values=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Gbe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.StartTime),t.push(this.EndTime),t.push(this.TimeSeriesDataType),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.Unit),t.push(this.TimeStep),t.push(this.Values),t}},Vbe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.TotalCrossSectionArea=e,this.SteelGrade=i,this.BarSurface=n,this.EffectiveDepth=s,this.NominalBarDiameter=a,this.BarCount=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Vbe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.TotalCrossSectionArea),t.push(this.SteelGrade),t.push(this.BarSurface),t.push(this.EffectiveDepth),t.push(this.NominalBarDiameter),t.push(this.BarCount),t}},zbe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.DefinitionType=a,this.ReinforcementSectionDefinitions=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new zbe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.DefinitionType),t.push(this.ReinforcementSectionDefinitions),t}},jbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u,this.NominalDiameter=h,this.CrossSectionArea=p,this.BarLength=d,this.PredefinedType=f,this.BarSurface=m}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++];return new jbe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t.push(this.NominalDiameter),t.push(this.CrossSectionArea),t.push(this.BarLength),t.push(this.PredefinedType),t.push(this.BarSurface),t}},Wbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.NominalDiameter=p,this.CrossSectionArea=d,this.BarLength=f,this.BarSurface=m,this.BendingShapeCode=g,this.BendingParameters=y}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++];return new Wbe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.NominalDiameter),t.push(this.CrossSectionArea),t.push(this.BarLength),t.push(this.BarSurface),t.push(this.BendingShapeCode),t.push(this.BendingParameters),t}},qbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new qbe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t}},Ybe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Ybe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},Xbe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u,this.MeshLength=h,this.MeshWidth=p,this.LongitudinalBarNominalDiameter=d,this.TransverseBarNominalDiameter=f,this.LongitudinalBarCrossSectionArea=m,this.TransverseBarCrossSectionArea=g,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=E,this.PredefinedType=b}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++],S=e[i++];return new Xbe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t.push(this.MeshLength),t.push(this.MeshWidth),t.push(this.LongitudinalBarNominalDiameter),t.push(this.TransverseBarNominalDiameter),t.push(this.LongitudinalBarCrossSectionArea),t.push(this.TransverseBarCrossSectionArea),t.push(this.LongitudinalBarSpacing),t.push(this.TransverseBarSpacing),t.push(this.PredefinedType),t}},$be=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.MeshLength=p,this.MeshWidth=d,this.LongitudinalBarNominalDiameter=f,this.TransverseBarNominalDiameter=m,this.LongitudinalBarCrossSectionArea=g,this.TransverseBarCrossSectionArea=y,this.LongitudinalBarSpacing=E,this.TransverseBarSpacing=b,this.BendingShapeCode=x,this.BendingParameters=S}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++],S=e[i++],D=e[i++],P=e[i++];return new $be(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S,D,P)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.MeshLength),t.push(this.MeshWidth),t.push(this.LongitudinalBarNominalDiameter),t.push(this.TransverseBarNominalDiameter),t.push(this.LongitudinalBarCrossSectionArea),t.push(this.TransverseBarCrossSectionArea),t.push(this.LongitudinalBarSpacing),t.push(this.TransverseBarSpacing),t.push(this.BendingShapeCode),t.push(this.BendingParameters),t}},Zbe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingObject=a,this.RelatedObjects=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Zbe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingObject),t.push(this.RelatedObjects),t}},Kbe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Kbe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t}},Jbe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingActor=l,this.ActingRole=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Jbe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingActor),t.push(this.ActingRole),t}},Qbe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingControl=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Qbe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingControl),t}},exe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingGroup=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new exe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingGroup),t}},txe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingGroup=l,this.Factor=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new txe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingGroup),t.push(this.Factor),t}},rxe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingProcess=l,this.QuantityInProcess=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new rxe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingProcess),t.push(this.QuantityInProcess),t}},ixe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingProduct=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new ixe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingProduct),t}},nxe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatedObjectsType=o,this.RelatingResource=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new nxe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatedObjectsType),t.push(this.RelatingResource),t}},sxe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new sxe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t}},axe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingApproval=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new axe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingApproval),t}},oxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingClassification=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new oxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingClassification),t}},lxe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.Intent=o,this.RelatingConstraint=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new lxe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.Intent),t.push(this.RelatingConstraint),t}},cxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingDocument=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new cxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingDocument),t}},uxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingLibrary=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new uxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingLibrary),t}},hxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingMaterial=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new hxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingMaterial),t}},pxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new pxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},dxe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new dxe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ConnectionGeometry),t.push(this.RelatingElement),t.push(this.RelatedElement),t}},fxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l,this.RelatingPriorities=c,this.RelatedPriorities=u,this.RelatedConnectionType=h,this.RelatingConnectionType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new fxe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ConnectionGeometry),t.push(this.RelatingElement),t.push(this.RelatedElement),t.push(this.RelatingPriorities),t.push(this.RelatedPriorities),t.push(this.RelatedConnectionType),t.push(this.RelatingConnectionType),t}},mxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingPort=a,this.RelatedElement=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new mxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingPort),t.push(this.RelatedElement),t}},gxe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingPort=a,this.RelatedPort=o,this.RealizingElement=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new gxe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingPort),t.push(this.RelatedPort),t.push(this.RealizingElement),t}},vxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedStructuralActivity=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new vxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingElement),t.push(this.RelatedStructuralActivity),t}},yxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=o,this.AppliedCondition=l,this.AdditionalConditions=c,this.SupportedLength=u,this.ConditionCoordinateSystem=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new yxe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingStructuralMember),t.push(this.RelatedStructuralConnection),t.push(this.AppliedCondition),t.push(this.AdditionalConditions),t.push(this.SupportedLength),t.push(this.ConditionCoordinateSystem),t}},Txe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingStructuralMember=a,this.RelatedStructuralConnection=o,this.AppliedCondition=l,this.AdditionalConditions=c,this.SupportedLength=u,this.ConditionCoordinateSystem=h,this.ConnectionConstraint=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Txe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingStructuralMember),t.push(this.RelatedStructuralConnection),t.push(this.AppliedCondition),t.push(this.AdditionalConditions),t.push(this.SupportedLength),t.push(this.ConditionCoordinateSystem),t.push(this.ConnectionConstraint),t}},Exe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ConnectionGeometry=a,this.RelatingElement=o,this.RelatedElement=l,this.RealizingElements=c,this.ConnectionType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Exe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ConnectionGeometry),t.push(this.RelatingElement),t.push(this.RelatedElement),t.push(this.RealizingElements),t.push(this.ConnectionType),t}},bxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedElements=a,this.RelatingStructure=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new bxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedElements),t.push(this.RelatingStructure),t}},xxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingBuildingElement=a,this.RelatedCoverings=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new xxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingBuildingElement),t.push(this.RelatedCoverings),t}},Ixe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedCoverings=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Ixe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingSpace),t.push(this.RelatedCoverings),t}},Sxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingContext=a,this.RelatedDefinitions=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Sxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingContext),t.push(this.RelatedDefinitions),t}},_xe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new _xe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},wxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new wxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},Rxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingObject=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Rxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingObject),t}},Mxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingPropertyDefinition=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Mxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingPropertyDefinition),t}},Dxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedPropertySets=a,this.RelatingTemplate=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Dxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedPropertySets),t.push(this.RelatingTemplate),t}},Cxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedObjects=a,this.RelatingType=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Cxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedObjects),t.push(this.RelatingType),t}},Axe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingOpeningElement=a,this.RelatedBuildingElement=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Axe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingOpeningElement),t.push(this.RelatedBuildingElement),t}},Oxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedControlElements=a,this.RelatingFlowElement=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Oxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedControlElements),t.push(this.RelatingFlowElement),t}},Pxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedElement=o,this.InterferenceGeometry=l,this.InterferenceType=c,this.ImpliedOrder=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Pxe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingElement),t.push(this.RelatedElement),t.push(this.InterferenceGeometry),t.push(this.InterferenceType),t.push(this.ImpliedOrder),t}},Nxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingObject=a,this.RelatedObjects=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Nxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingObject),t.push(this.RelatedObjects),t}},Lxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingPositioningElement=a,this.RelatedProducts=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Lxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingPositioningElement),t.push(this.RelatedProducts),t}},Fxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingElement=a,this.RelatedFeatureElement=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Fxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingElement),t.push(this.RelatedFeatureElement),t}},Hxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatedElements=a,this.RelatingStructure=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Hxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatedElements),t.push(this.RelatingStructure),t}},Uxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingProcess=a,this.RelatedProcess=o,this.TimeLag=l,this.SequenceType=c,this.UserDefinedSequenceType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Uxe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingProcess),t.push(this.RelatedProcess),t.push(this.TimeLag),t.push(this.SequenceType),t.push(this.UserDefinedSequenceType),t}},Bxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingSystem=a,this.RelatedBuildings=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Bxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingSystem),t.push(this.RelatedBuildings),t}},kxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=c,this.InternalOrExternalBoundary=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new kxe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingSpace),t.push(this.RelatedBuildingElement),t.push(this.ConnectionGeometry),t.push(this.PhysicalOrVirtualBoundary),t.push(this.InternalOrExternalBoundary),t}},Gxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=c,this.InternalOrExternalBoundary=u,this.ParentBoundary=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Gxe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingSpace),t.push(this.RelatedBuildingElement),t.push(this.ConnectionGeometry),t.push(this.PhysicalOrVirtualBoundary),t.push(this.InternalOrExternalBoundary),t.push(this.ParentBoundary),t}},Vxe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingSpace=a,this.RelatedBuildingElement=o,this.ConnectionGeometry=l,this.PhysicalOrVirtualBoundary=c,this.InternalOrExternalBoundary=u,this.ParentBoundary=h,this.CorrespondingBoundary=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new Vxe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingSpace),t.push(this.RelatedBuildingElement),t.push(this.ConnectionGeometry),t.push(this.PhysicalOrVirtualBoundary),t.push(this.InternalOrExternalBoundary),t.push(this.ParentBoundary),t.push(this.CorrespondingBoundary),t}},zxe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.RelatingBuildingElement=a,this.RelatedOpeningElement=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new zxe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.RelatingBuildingElement),t.push(this.RelatedOpeningElement),t}},jxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new jxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},Wxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Transition=e,this.SameSense=i,this.ParentCurve=n,this.ParamLength=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Wxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Transition),t.push(this.SameSense),t.push(this.ParentCurve),t.push(this.ParamLength),t}},qxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new qxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},Yxe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.ContextIdentifier=e,this.ContextType=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Yxe(t,r,n,s)}ToTape(){let t=[];return t.push(this.ContextIdentifier),t.push(this.ContextType),t}},Xxe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Xxe(t,r)}ToTape(){return[]}},$xe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.MappingOrigin=e,this.MappedRepresentation=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new $xe(t,r,n,s)}ToTape(){let t=[];return t.push(this.MappingOrigin),t.push(this.MappedRepresentation),t}},Zxe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new Zxe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t}},Kxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatedResourceObjects=n,this.RelatingApproval=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Kxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatedResourceObjects),t.push(this.RelatingApproval),t}},Jxe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.RelatingConstraint=n,this.RelatedResourceObjects=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new Jxe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.RelatingConstraint),t.push(this.RelatedResourceObjects),t}},Qxe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Name=e,this.Description=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Qxe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t}},eIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.ScheduleWork=s,this.ScheduleUsage=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.ScheduleContour=c,this.LevelingDelay=u,this.IsOverAllocated=h,this.StatusTime=p,this.ActualWork=d,this.ActualUsage=f,this.ActualStart=m,this.ActualFinish=g,this.RemainingWork=y,this.RemainingUsage=E,this.Completion=b}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++],S=e[i++];return new eIe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.ScheduleWork),t.push(this.ScheduleUsage),t.push(this.ScheduleStart),t.push(this.ScheduleFinish),t.push(this.ScheduleContour),t.push(this.LevelingDelay),t.push(this.IsOverAllocated),t.push(this.StatusTime),t.push(this.ActualWork),t.push(this.ActualUsage),t.push(this.ActualStart),t.push(this.ActualFinish),t.push(this.RemainingWork),t.push(this.RemainingUsage),t.push(this.Completion),t}},tIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.Axis=n,this.Angle=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new tIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.Axis),t.push(this.Angle),t}},rIe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.Axis=n,this.Angle=s,this.EndSweptArea=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new rIe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.Axis),t.push(this.Angle),t.push(this.EndSweptArea),t}},iIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Position=e,this.Height=i,this.BottomRadius=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new iIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Height),t.push(this.BottomRadius),t}},nIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Position=e,this.Height=i,this.Radius=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new nIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Height),t.push(this.Radius),t}},sIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new sIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},aIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new aIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},oIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new oIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t}},lIe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.XDim=s,this.YDim=a,this.RoundingRadius=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new lIe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.XDim),t.push(this.YDim),t.push(this.RoundingRadius),t}},cIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Dimensions=e,this.UnitType=i,this.Prefix=n,this.Name=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new cIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Dimensions),t.push(this.UnitType),t.push(this.Prefix),t.push(this.Name),t}},uIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new uIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},hIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new hIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},pIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new pIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t}},dIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Curve3D=e,this.AssociatedGeometry=i,this.MasterRepresentation=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new dIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Curve3D),t.push(this.AssociatedGeometry),t.push(this.MasterRepresentation),t}},fIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.SectionType=e,this.StartProfile=i,this.EndProfile=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new fIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.SectionType),t.push(this.StartProfile),t.push(this.EndProfile),t}},mIe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.LongitudinalStartPosition=e,this.LongitudinalEndPosition=i,this.TransversePosition=n,this.ReinforcementRole=s,this.SectionDefinition=a,this.CrossSectionReinforcementDefinitions=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new mIe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.LongitudinalStartPosition),t.push(this.LongitudinalEndPosition),t.push(this.TransversePosition),t.push(this.ReinforcementRole),t.push(this.SectionDefinition),t.push(this.CrossSectionReinforcementDefinitions),t}},gIe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Directrix=e,this.CrossSections=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new gIe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Directrix),t.push(this.CrossSections),t}},vIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Directrix=e,this.CrossSections=i,this.CrossSectionPositions=n,this.FixedAxisVertical=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new vIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Directrix),t.push(this.CrossSections),t.push(this.CrossSectionPositions),t.push(this.FixedAxisVertical),t}},yIe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.SpineCurve=e,this.CrossSections=i,this.CrossSectionPositions=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new yIe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.SpineCurve),t.push(this.CrossSections),t.push(this.CrossSectionPositions),t}},TIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new TIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},EIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new EIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},bIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new bIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},xIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new xIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},IIe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.ShapeRepresentations=e,this.Name=i,this.Description=n,this.ProductDefinitional=s,this.PartOfProductDefinitionShape=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new IIe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.ShapeRepresentations),t.push(this.Name),t.push(this.Description),t.push(this.ProductDefinitional),t.push(this.PartOfProductDefinitionShape),t}},SIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new SIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},_Ie=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new _Ie(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},wIe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.SbsmBoundary=e}static FromTape(t,r,e){let i=0,n=e[i++];return new wIe(t,r,n)}ToTape(){let t=[];return t.push(this.SbsmBoundary),t}},RIe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Name=e,this.Description=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new RIe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t}},MIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.TemplateType=a,this.PrimaryMeasureType=o,this.SecondaryMeasureType=l,this.Enumerators=c,this.PrimaryUnit=u,this.SecondaryUnit=h,this.Expression=p,this.AccessState=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new MIe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.TemplateType),t.push(this.PrimaryMeasureType),t.push(this.SecondaryMeasureType),t.push(this.Enumerators),t.push(this.PrimaryUnit),t.push(this.SecondaryUnit),t.push(this.Expression),t.push(this.AccessState),t}},DIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.RefLatitude=h,this.RefLongitude=p,this.RefElevation=d,this.LandTitleNumber=f,this.SiteAddress=m}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++];return new DIe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.RefLatitude),t.push(this.RefLongitude),t.push(this.RefElevation),t.push(this.LandTitleNumber),t.push(this.SiteAddress),t}},CIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new CIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},AIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new AIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},OIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new OIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},PIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new PIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},NIe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.SlippageX=i,this.SlippageY=n,this.SlippageZ=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new NIe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.SlippageX),t.push(this.SlippageY),t.push(this.SlippageZ),t}},LIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new LIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},FIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new FIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},HIe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new HIe(t,r)}ToTape(){return[]}},UIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u,this.PredefinedType=h,this.ElevationWithFlooring=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new UIe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t.push(this.PredefinedType),t.push(this.ElevationWithFlooring),t}},BIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new BIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},kIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new kIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},GIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.LongName=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new GIe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.LongName),t}},VIe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new VIe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t}},zIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new zIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},jIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.CompositionType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new jIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.CompositionType),t}},WIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new WIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t}},qIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.LongName=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new qIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.LongName),t.push(this.PredefinedType),t}},YIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.LongName=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new YIe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.LongName),t}},XIe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Position=e,this.Radius=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new XIe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Radius),t}},$Ie=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Position=e,this.Radius=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new $Ie(t,r,n,s)}ToTape(){let t=[];return t.push(this.Position),t.push(this.Radius),t}},ZIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ZIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},KIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new KIe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},JIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new JIe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},QIe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.NumberOfRisers=u,this.NumberOfTreads=h,this.RiserHeight=p,this.TreadLength=d,this.PredefinedType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new QIe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.NumberOfRisers),t.push(this.NumberOfTreads),t.push(this.RiserHeight),t.push(this.TreadLength),t.push(this.PredefinedType),t}},eSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new eSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},tSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new tSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},rSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new rSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t}},iSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new iSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t}},nSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.OrientationOf2DPlane=l,this.LoadedBy=c,this.HasResults=u,this.SharedPlacement=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new nSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.PredefinedType),t.push(this.OrientationOf2DPlane),t.push(this.LoadedBy),t.push(this.HasResults),t.push(this.SharedPlacement),t}},sSe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new sSe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedCondition),t}},aSe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new aSe(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},oSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new oSe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t.push(this.ProjectedOrTrue),t.push(this.PredefinedType),t}},lSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=c,this.Axis=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new lSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedCondition),t.push(this.Axis),t}},cSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=c,this.Axis=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new cSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.PredefinedType),t.push(this.Axis),t}},uSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=c,this.Axis=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new uSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.PredefinedType),t.push(this.Axis),t}},hSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new hSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.PredefinedType),t}},pSe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new pSe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},dSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new dSe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t.push(this.ProjectedOrTrue),t.push(this.PredefinedType),t}},fSe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new fSe(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},mSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.ActionType=l,this.ActionSource=c,this.Coefficient=u,this.Purpose=h,this.SelfWeightCoefficients=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new mSe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.PredefinedType),t.push(this.ActionType),t.push(this.ActionSource),t.push(this.Coefficient),t.push(this.Purpose),t.push(this.SelfWeightCoefficients),t}},gSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Values=i,this.Locations=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new gSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Values),t.push(this.Locations),t}},vSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.PredefinedType=o,this.ActionType=l,this.ActionSource=c,this.Coefficient=u,this.Purpose=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new vSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.PredefinedType),t.push(this.ActionType),t.push(this.ActionSource),t.push(this.Coefficient),t.push(this.Purpose),t}},ySe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.LinearForceX=i,this.LinearForceY=n,this.LinearForceZ=s,this.LinearMomentX=a,this.LinearMomentY=o,this.LinearMomentZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new ySe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.LinearForceX),t.push(this.LinearForceY),t.push(this.LinearForceZ),t.push(this.LinearMomentX),t.push(this.LinearMomentY),t.push(this.LinearMomentZ),t}},TSe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new TSe(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},ESe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.PlanarForceX=i,this.PlanarForceY=n,this.PlanarForceZ=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new ESe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.PlanarForceX),t.push(this.PlanarForceY),t.push(this.PlanarForceZ),t}},bSe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.DisplacementX=i,this.DisplacementY=n,this.DisplacementZ=s,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=o,this.RotationalDisplacementRZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new bSe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DisplacementX),t.push(this.DisplacementY),t.push(this.DisplacementZ),t.push(this.RotationalDisplacementRX),t.push(this.RotationalDisplacementRY),t.push(this.RotationalDisplacementRZ),t}},xSe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.DisplacementX=i,this.DisplacementY=n,this.DisplacementZ=s,this.RotationalDisplacementRX=a,this.RotationalDisplacementRY=o,this.RotationalDisplacementRZ=l,this.Distortion=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new xSe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DisplacementX),t.push(this.DisplacementY),t.push(this.DisplacementZ),t.push(this.RotationalDisplacementRX),t.push(this.RotationalDisplacementRY),t.push(this.RotationalDisplacementRZ),t.push(this.Distortion),t}},ISe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.Name=e,this.ForceX=i,this.ForceY=n,this.ForceZ=s,this.MomentX=a,this.MomentY=o,this.MomentZ=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new ISe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.Name),t.push(this.ForceX),t.push(this.ForceY),t.push(this.ForceZ),t.push(this.MomentX),t.push(this.MomentY),t.push(this.MomentZ),t}},SSe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.ForceX=i,this.ForceY=n,this.ForceZ=s,this.MomentX=a,this.MomentY=o,this.MomentZ=l,this.WarpingMoment=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new SSe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.ForceX),t.push(this.ForceY),t.push(this.ForceZ),t.push(this.MomentX),t.push(this.MomentY),t.push(this.MomentZ),t.push(this.WarpingMoment),t}},_Se=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Name=e}static FromTape(t,r,e){let i=0,n=e[i++];return new _Se(t,r,n)}ToTape(){let t=[];return t.push(this.Name),t}},wSe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.DeltaTConstant=i,this.DeltaTY=n,this.DeltaTZ=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new wSe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DeltaTConstant),t.push(this.DeltaTY),t.push(this.DeltaTZ),t}},RSe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new RSe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t}},MSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new MSe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t.push(this.ProjectedOrTrue),t.push(this.PredefinedType),t}},DSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new DSe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t}},CSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=c,this.ConditionCoordinateSystem=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new CSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedCondition),t.push(this.ConditionCoordinateSystem),t}},ASe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new ASe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t}},OSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new OSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t}},PSe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.TheoryType=o,this.ResultForLoadGroup=l,this.IsLinear=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new PSe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.TheoryType),t.push(this.ResultForLoadGroup),t.push(this.IsLinear),t}},NSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.DestabilizingLoad=h,this.ProjectedOrTrue=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new NSe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.DestabilizingLoad),t.push(this.ProjectedOrTrue),t.push(this.PredefinedType),t}},LSe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedCondition=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new LSe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedCondition),t}},FSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=c,this.Thickness=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new FSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.PredefinedType),t.push(this.Thickness),t}},HSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.PredefinedType=c,this.Thickness=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new HSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.PredefinedType),t.push(this.Thickness),t}},USe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.AppliedLoad=c,this.GlobalOrLocal=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new USe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.AppliedLoad),t.push(this.GlobalOrLocal),t.push(this.PredefinedType),t}},BSe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new BSe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},kSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Item=e,this.Styles=i,this.Name=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new kSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Item),t.push(this.Styles),t.push(this.Name),t}},GSe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new GSe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},VSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Usage=c,this.BaseCosts=u,this.BaseQuantity=h,this.PredefinedType=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new VSe(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Usage),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},zSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u,this.BaseCosts=h,this.BaseQuantity=p,this.PredefinedType=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new zSe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t.push(this.BaseCosts),t.push(this.BaseQuantity),t.push(this.PredefinedType),t}},jSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.EdgeStart=e,this.EdgeEnd=i,this.ParentEdge=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new jSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.EdgeStart),t.push(this.EdgeEnd),t.push(this.ParentEdge),t}},WSe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new WSe(t,r)}ToTape(){return[]}},qSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Curve3D=e,this.AssociatedGeometry=i,this.MasterRepresentation=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new qSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Curve3D),t.push(this.AssociatedGeometry),t.push(this.MasterRepresentation),t}},YSe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i,this.Directrix=n,this.StartParam=s,this.EndParam=a,this.ReferenceSurface=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new YSe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t.push(this.Directrix),t.push(this.StartParam),t.push(this.EndParam),t.push(this.ReferenceSurface),t}},XSe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new XSe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},$Se=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.SweptCurve=e,this.Position=i,this.ExtrudedDirection=n,this.Depth=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new $Se(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.SweptCurve),t.push(this.Position),t.push(this.ExtrudedDirection),t.push(this.Depth),t}},ZSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.SweptCurve=e,this.Position=i,this.AxisPosition=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new ZSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.SweptCurve),t.push(this.Position),t.push(this.AxisPosition),t}},KSe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.Name=e,this.SurfaceReinforcement1=i,this.SurfaceReinforcement2=n,this.ShearReinforcement=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new KSe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.Name),t.push(this.SurfaceReinforcement1),t.push(this.SurfaceReinforcement2),t.push(this.ShearReinforcement),t}},JSe=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Side=i,this.Styles=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new JSe(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Side),t.push(this.Styles),t}},QSe=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.DiffuseTransmissionColour=e,this.DiffuseReflectionColour=i,this.TransmissionColour=n,this.ReflectanceColour=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new QSe(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.DiffuseTransmissionColour),t.push(this.DiffuseReflectionColour),t.push(this.TransmissionColour),t.push(this.ReflectanceColour),t}},e_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.RefractionIndex=e,this.DispersionFactor=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new e_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.RefractionIndex),t.push(this.DispersionFactor),t}},t_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.SurfaceColour=e,this.Transparency=i,this.DiffuseColour=n,this.TransmissionColour=s,this.DiffuseTransmissionColour=a,this.ReflectionColour=o,this.SpecularColour=l,this.SpecularHighlight=c,this.ReflectanceMethod=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new t_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.SurfaceColour),t.push(this.Transparency),t.push(this.DiffuseColour),t.push(this.TransmissionColour),t.push(this.DiffuseTransmissionColour),t.push(this.ReflectionColour),t.push(this.SpecularColour),t.push(this.SpecularHighlight),t.push(this.ReflectanceMethod),t}},r_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SurfaceColour=e,this.Transparency=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new r_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.SurfaceColour),t.push(this.Transparency),t}},i_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Textures=e}static FromTape(t,r,e){let i=0,n=e[i++];return new i_e(t,r,n)}ToTape(){let t=[];return t.push(this.Textures),t}},n_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.RepeatS=e,this.RepeatT=i,this.Mode=n,this.TextureTransform=s,this.Parameter=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new n_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.RepeatS),t.push(this.RepeatT),t.push(this.Mode),t.push(this.TextureTransform),t.push(this.Parameter),t}},s_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SweptArea=e,this.Position=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new s_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.SweptArea),t.push(this.Position),t}},a_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Directrix=e,this.Radius=i,this.InnerRadius=n,this.StartParam=s,this.EndParam=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new a_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Directrix),t.push(this.Radius),t.push(this.InnerRadius),t.push(this.StartParam),t.push(this.EndParam),t}},o_e=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Directrix=e,this.Radius=i,this.InnerRadius=n,this.StartParam=s,this.EndParam=a,this.FilletRadius=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new o_e(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Directrix),t.push(this.Radius),t.push(this.InnerRadius),t.push(this.StartParam),t.push(this.EndParam),t.push(this.FilletRadius),t}},l_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.SweptCurve=e,this.Position=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new l_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.SweptCurve),t.push(this.Position),t}},c_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new c_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},u_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new u_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},h_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new h_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t}},p_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new p_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},d_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new d_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},f_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=c,this.FlangeEdgeRadius=u,this.WebEdgeRadius=h,this.WebSlope=p,this.FlangeSlope=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new f_e(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Depth),t.push(this.FlangeWidth),t.push(this.WebThickness),t.push(this.FlangeThickness),t.push(this.FilletRadius),t.push(this.FlangeEdgeRadius),t.push(this.WebEdgeRadius),t.push(this.WebSlope),t.push(this.FlangeSlope),t}},m_e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Name=e,this.Rows=i,this.Columns=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new m_e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Rows),t.push(this.Columns),t}},g_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Identifier=e,this.Name=i,this.Description=n,this.Unit=s,this.ReferencePath=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new g_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Identifier),t.push(this.Name),t.push(this.Description),t.push(this.Unit),t.push(this.ReferencePath),t}},v_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.RowCells=e,this.IsHeading=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new v_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.RowCells),t.push(this.IsHeading),t}},y_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new y_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},T_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new T_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},E_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.LongDescription=l,this.Status=c,this.WorkMethod=u,this.IsMilestone=h,this.Priority=p,this.TaskTime=d,this.PredefinedType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new E_e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.LongDescription),t.push(this.Status),t.push(this.WorkMethod),t.push(this.IsMilestone),t.push(this.Priority),t.push(this.TaskTime),t.push(this.PredefinedType),t}},b_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.DurationType=s,this.ScheduleDuration=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.EarlyStart=c,this.EarlyFinish=u,this.LateStart=h,this.LateFinish=p,this.FreeFloat=d,this.TotalFloat=f,this.IsCritical=m,this.StatusTime=g,this.ActualDuration=y,this.ActualStart=E,this.ActualFinish=b,this.RemainingTime=x,this.Completion=S}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++],S=e[i++],D=e[i++],P=e[i++];return new b_e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S,D,P)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.DurationType),t.push(this.ScheduleDuration),t.push(this.ScheduleStart),t.push(this.ScheduleFinish),t.push(this.EarlyStart),t.push(this.EarlyFinish),t.push(this.LateStart),t.push(this.LateFinish),t.push(this.FreeFloat),t.push(this.TotalFloat),t.push(this.IsCritical),t.push(this.StatusTime),t.push(this.ActualDuration),t.push(this.ActualStart),t.push(this.ActualFinish),t.push(this.RemainingTime),t.push(this.Completion),t}},x_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S,D){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.DurationType=s,this.ScheduleDuration=a,this.ScheduleStart=o,this.ScheduleFinish=l,this.EarlyStart=c,this.EarlyFinish=u,this.LateStart=h,this.LateFinish=p,this.FreeFloat=d,this.TotalFloat=f,this.IsCritical=m,this.StatusTime=g,this.ActualDuration=y,this.ActualStart=E,this.ActualFinish=b,this.RemainingTime=x,this.Completion=S,this.Recurrence=D}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++],S=e[i++],D=e[i++],P=e[i++],_=e[i++];return new x_e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x,S,D,P,_)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.DurationType),t.push(this.ScheduleDuration),t.push(this.ScheduleStart),t.push(this.ScheduleFinish),t.push(this.EarlyStart),t.push(this.EarlyFinish),t.push(this.LateStart),t.push(this.LateFinish),t.push(this.FreeFloat),t.push(this.TotalFloat),t.push(this.IsCritical),t.push(this.StatusTime),t.push(this.ActualDuration),t.push(this.ActualStart),t.push(this.ActualFinish),t.push(this.RemainingTime),t.push(this.Completion),t.push(this.Recurrence),t}},I_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ProcessType=u,this.PredefinedType=h,this.WorkMethod=p}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++];return new I_e(t,r,n,s,a,o,l,c,u,h,p,d,f)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ProcessType),t.push(this.PredefinedType),t.push(this.WorkMethod),t}},S_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.Purpose=e,this.Description=i,this.UserDefinedPurpose=n,this.TelephoneNumbers=s,this.FacsimileNumbers=a,this.PagerNumber=o,this.ElectronicMailAddresses=l,this.WWWHomePageURL=c,this.MessagingIDs=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new S_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.Purpose),t.push(this.Description),t.push(this.UserDefinedPurpose),t.push(this.TelephoneNumbers),t.push(this.FacsimileNumbers),t.push(this.PagerNumber),t.push(this.ElectronicMailAddresses),t.push(this.WWWHomePageURL),t.push(this.MessagingIDs),t}},__e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u,this.PredefinedType=h,this.NominalDiameter=p,this.CrossSectionArea=d,this.TensionForce=f,this.PreStress=m,this.FrictionCoefficient=g,this.AnchorageSlip=y,this.MinCurvatureRadius=E}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++],x=e[i++];return new __e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b,x)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t.push(this.PredefinedType),t.push(this.NominalDiameter),t.push(this.CrossSectionArea),t.push(this.TensionForce),t.push(this.PreStress),t.push(this.FrictionCoefficient),t.push(this.AnchorageSlip),t.push(this.MinCurvatureRadius),t}},w_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new w_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t.push(this.PredefinedType),t}},R_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new R_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},M_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.SteelGrade=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new M_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.SteelGrade),t.push(this.PredefinedType),t}},D_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new D_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},C_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.NominalDiameter=p,this.CrossSectionArea=d,this.SheathDiameter=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new C_e(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.NominalDiameter),t.push(this.CrossSectionArea),t.push(this.SheathDiameter),t}},A_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Coordinates=e}static FromTape(t,r,e){let i=0,n=e[i++];return new A_e(t,r,n)}ToTape(){let t=[];return t.push(this.Coordinates),t}},O_e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new O_e(t,r)}ToTape(){return[]}},P_e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Literal=e,this.Placement=i,this.Path=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new P_e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Literal),t.push(this.Placement),t.push(this.Path),t}},N_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Literal=e,this.Placement=i,this.Path=n,this.Extent=s,this.BoxAlignment=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new N_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Literal),t.push(this.Placement),t.push(this.Path),t.push(this.Extent),t.push(this.BoxAlignment),t}},L_e=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Name=e,this.TextCharacterAppearance=i,this.TextStyle=n,this.TextFontStyle=s,this.ModelOrDraughting=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new L_e(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Name),t.push(this.TextCharacterAppearance),t.push(this.TextStyle),t.push(this.TextFontStyle),t.push(this.ModelOrDraughting),t}},F_e=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.FontFamily=i,this.FontStyle=n,this.FontVariant=s,this.FontWeight=a,this.FontSize=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new F_e(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.FontFamily),t.push(this.FontStyle),t.push(this.FontVariant),t.push(this.FontWeight),t.push(this.FontSize),t}},H_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Colour=e,this.BackgroundColour=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new H_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.Colour),t.push(this.BackgroundColour),t}},U_e=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.TextIndent=e,this.TextAlign=i,this.TextDecoration=n,this.LetterSpacing=s,this.WordSpacing=a,this.TextTransform=o,this.LineHeight=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new U_e(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.TextIndent),t.push(this.TextAlign),t.push(this.TextDecoration),t.push(this.LetterSpacing),t.push(this.WordSpacing),t.push(this.TextTransform),t.push(this.LineHeight),t}},B_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Maps=e}static FromTape(t,r,e){let i=0,n=e[i++];return new B_e(t,r,n)}ToTape(){let t=[];return t.push(this.Maps),t}},k_e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Maps=e,this.Mode=i,this.Parameter=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new k_e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Maps),t.push(this.Mode),t.push(this.Parameter),t}},G_e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Maps=e,this.Vertices=i,this.MappedTo=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new G_e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Maps),t.push(this.Vertices),t.push(this.MappedTo),t}},V_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Coordinates=e}static FromTape(t,r,e){let i=0,n=e[i++];return new V_e(t,r,n)}ToTape(){let t=[];return t.push(this.Coordinates),t}},z_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.TexCoordsList=e}static FromTape(t,r,e){let i=0,n=e[i++];return new z_e(t,r,n)}ToTape(){let t=[];return t.push(this.TexCoordsList),t}},j_e=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.StartTime=e,this.EndTime=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new j_e(t,r,n,s)}ToTape(){let t=[];return t.push(this.StartTime),t.push(this.EndTime),t}},W_e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.Name=e,this.Description=i,this.StartTime=n,this.EndTime=s,this.TimeSeriesDataType=a,this.DataOrigin=o,this.UserDefinedDataOrigin=l,this.Unit=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new W_e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.Name),t.push(this.Description),t.push(this.StartTime),t.push(this.EndTime),t.push(this.TimeSeriesDataType),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.Unit),t}},q_e=class{constructor(t,r,e){this.expressID=t,this.type=r,this.ListValues=e}static FromTape(t,r,e){let i=0,n=e[i++];return new q_e(t,r,n)}ToTape(){let t=[];return t.push(this.ListValues),t}},Y_e=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Y_e(t,r)}ToTape(){return[]}},X_e=class{constructor(t,r,e,i,n,s){this.expressID=t,this.type=r,this.ContextOfItems=e,this.RepresentationIdentifier=i,this.RepresentationType=n,this.Items=s}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++];return new X_e(t,r,n,s,a,o)}ToTape(){let t=[];return t.push(this.ContextOfItems),t.push(this.RepresentationIdentifier),t.push(this.RepresentationType),t.push(this.Items),t}},$_e=class{constructor(t,r,e,i,n){this.expressID=t,this.type=r,this.Position=e,this.MajorRadius=i,this.MinorRadius=n}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++];return new $_e(t,r,n,s,a)}ToTape(){let t=[];return t.push(this.Position),t.push(this.MajorRadius),t.push(this.MinorRadius),t}},Z_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Z_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},K_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new K_e(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},J_e=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.StartPoint=e,this.StartDirection=i,this.SegmentLength=n,this.StartRadius=s,this.EndRadius=a,this.IsStartRadiusCCW=o,this.IsEndRadiusCCW=l,this.TransitionCurveType=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new J_e(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.StartPoint),t.push(this.StartDirection),t.push(this.SegmentLength),t.push(this.StartRadius),t.push(this.EndRadius),t.push(this.IsStartRadiusCCW),t.push(this.IsEndRadiusCCW),t.push(this.TransitionCurveType),t}},Q_e=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Q_e(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ewe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ewe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},twe=class{constructor(t,r,e,i,n,s,a,o,l){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.BottomXDim=s,this.TopXDim=a,this.YDim=o,this.TopXOffset=l}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++];return new twe(t,r,n,s,a,o,l,c,u)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.BottomXDim),t.push(this.TopXDim),t.push(this.YDim),t.push(this.TopXOffset),t}},rwe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.Coordinates=e,this.Normals=i,this.Closed=n,this.CoordIndex=s,this.PnIndex=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new rwe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.Coordinates),t.push(this.Normals),t.push(this.Closed),t.push(this.CoordIndex),t.push(this.PnIndex),t}},iwe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Coordinates=e,this.Normals=i,this.Closed=n,this.CoordIndex=s,this.PnIndex=a,this.Flags=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new iwe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Coordinates),t.push(this.Normals),t.push(this.Closed),t.push(this.CoordIndex),t.push(this.PnIndex),t.push(this.Flags),t}},nwe=class{constructor(t,r,e,i,n,s,a){this.expressID=t,this.type=r,this.BasisCurve=e,this.Trim1=i,this.Trim2=n,this.SenseAgreement=s,this.MasterRepresentation=a}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++];return new nwe(t,r,n,s,a,o,l)}ToTape(){let t=[];return t.push(this.BasisCurve),t.push(this.Trim1),t.push(this.Trim2),t.push(this.SenseAgreement),t.push(this.MasterRepresentation),t}},swe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new swe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},awe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new awe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},owe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new owe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t}},lwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ProcessType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new lwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ProcessType),t}},cwe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new cwe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t}},uwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.Identification=l,this.LongDescription=c,this.ResourceType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new uwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.Identification),t.push(this.LongDescription),t.push(this.ResourceType),t}},hwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=c,this.EdgeRadius=u,this.FlangeSlope=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new hwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Depth),t.push(this.FlangeWidth),t.push(this.WebThickness),t.push(this.FlangeThickness),t.push(this.FilletRadius),t.push(this.EdgeRadius),t.push(this.FlangeSlope),t}},pwe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.Units=e}static FromTape(t,r,e){let i=0,n=e[i++];return new pwe(t,r,n)}ToTape(){let t=[];return t.push(this.Units),t}},dwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new dwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},fwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new fwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},mwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new mwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},gwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new gwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},vwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new vwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},ywe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new ywe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Twe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.Orientation=e,this.Magnitude=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Twe(t,r,n,s)}ToTape(){let t=[];return t.push(this.Orientation),t.push(this.Magnitude),t}},Ewe=class{constructor(t,r){this.expressID=t,this.type=r}static FromTape(t,r,e){let i=0;return new Ewe(t,r)}ToTape(){return[]}},bwe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.LoopVertex=e}static FromTape(t,r,e){let i=0,n=e[i++];return new bwe(t,r,n)}ToTape(){let t=[];return t.push(this.LoopVertex),t}},xwe=class{constructor(t,r,e){this.expressID=t,this.type=r,this.VertexGeometry=e}static FromTape(t,r,e){let i=0,n=e[i++];return new xwe(t,r,n)}ToTape(){let t=[];return t.push(this.VertexGeometry),t}},Iwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Iwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Swe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Swe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},_we=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new _we(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},wwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new wwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Rwe=class{constructor(t,r,e,i,n,s,a,o,l,c){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++];return new Rwe(t,r,n,s,a,o,l,c,u,h)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t}},Mwe=class{constructor(t,r,e,i){this.expressID=t,this.type=r,this.IntersectingAxes=e,this.OffsetDistances=i}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++];return new Mwe(t,r,n,s)}ToTape(){let t=[];return t.push(this.IntersectingAxes),t.push(this.OffsetDistances),t}},Dwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Dwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Cwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Cwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Awe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Awe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Owe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Owe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Pwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Pwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Nwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Nwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.PredefinedType),t}},Lwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++];return new Lwe(t,r,n,s,a,o,l,c,u,h,p,d)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t}},Fwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.OverallHeight=u,this.OverallWidth=h,this.PredefinedType=p,this.PartitioningType=d,this.UserDefinedPartitioningType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new Fwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.OverallHeight),t.push(this.OverallWidth),t.push(this.PredefinedType),t.push(this.PartitioningType),t.push(this.UserDefinedPartitioningType),t}},Hwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m,g,y){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.LiningDepth=a,this.LiningThickness=o,this.TransomThickness=l,this.MullionThickness=c,this.FirstTransomOffset=u,this.SecondTransomOffset=h,this.FirstMullionOffset=p,this.SecondMullionOffset=d,this.ShapeAspectStyle=f,this.LiningOffset=m,this.LiningToPanelOffsetX=g,this.LiningToPanelOffsetY=y}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++],E=e[i++],b=e[i++];return new Hwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y,E,b)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.LiningDepth),t.push(this.LiningThickness),t.push(this.TransomThickness),t.push(this.MullionThickness),t.push(this.FirstTransomOffset),t.push(this.SecondTransomOffset),t.push(this.FirstMullionOffset),t.push(this.SecondMullionOffset),t.push(this.ShapeAspectStyle),t.push(this.LiningOffset),t.push(this.LiningToPanelOffsetX),t.push(this.LiningToPanelOffsetY),t}},Uwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.OperationType=a,this.PanelPosition=o,this.FrameDepth=l,this.FrameThickness=c,this.ShapeAspectStyle=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Uwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.OperationType),t.push(this.PanelPosition),t.push(this.FrameDepth),t.push(this.FrameThickness),t.push(this.ShapeAspectStyle),t}},Bwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.ObjectPlacement=o,this.Representation=l,this.Tag=c,this.OverallHeight=u,this.OverallWidth=h,this.PredefinedType=p,this.PartitioningType=d,this.UserDefinedPartitioningType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new Bwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.ObjectPlacement),t.push(this.Representation),t.push(this.Tag),t.push(this.OverallHeight),t.push(this.OverallWidth),t.push(this.PredefinedType),t.push(this.PartitioningType),t.push(this.UserDefinedPartitioningType),t}},kwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ConstructionType=u,this.OperationType=h,this.ParameterTakesPrecedence=p,this.Sizeable=d}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++];return new kwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ConstructionType),t.push(this.OperationType),t.push(this.ParameterTakesPrecedence),t.push(this.Sizeable),t}},Gwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ApplicableOccurrence=a,this.HasPropertySets=o,this.RepresentationMaps=l,this.Tag=c,this.ElementType=u,this.PredefinedType=h,this.PartitioningType=p,this.ParameterTakesPrecedence=d,this.UserDefinedPartitioningType=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new Gwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ApplicableOccurrence),t.push(this.HasPropertySets),t.push(this.RepresentationMaps),t.push(this.Tag),t.push(this.ElementType),t.push(this.PredefinedType),t.push(this.PartitioningType),t.push(this.ParameterTakesPrecedence),t.push(this.UserDefinedPartitioningType),t}},Vwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.WorkingTimes=l,this.ExceptionTimes=c,this.PredefinedType=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Vwe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.WorkingTimes),t.push(this.ExceptionTimes),t.push(this.PredefinedType),t}},zwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=c,this.Purpose=u,this.Duration=h,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++];return new zwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.CreationDate),t.push(this.Creators),t.push(this.Purpose),t.push(this.Duration),t.push(this.TotalFloat),t.push(this.StartTime),t.push(this.FinishTime),t}},jwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=c,this.Purpose=u,this.Duration=h,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f,this.PredefinedType=m}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++];return new jwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.CreationDate),t.push(this.Creators),t.push(this.Purpose),t.push(this.Duration),t.push(this.TotalFloat),t.push(this.StartTime),t.push(this.FinishTime),t.push(this.PredefinedType),t}},Wwe=class{constructor(t,r,e,i,n,s,a,o,l,c,u,h,p,d,f,m){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.Identification=o,this.CreationDate=l,this.Creators=c,this.Purpose=u,this.Duration=h,this.TotalFloat=p,this.StartTime=d,this.FinishTime=f,this.PredefinedType=m}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++],d=e[i++],f=e[i++],m=e[i++],g=e[i++],y=e[i++];return new Wwe(t,r,n,s,a,o,l,c,u,h,p,d,f,m,g,y)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.Identification),t.push(this.CreationDate),t.push(this.Creators),t.push(this.Purpose),t.push(this.Duration),t.push(this.TotalFloat),t.push(this.StartTime),t.push(this.FinishTime),t.push(this.PredefinedType),t}},qwe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.Name=e,this.DataOrigin=i,this.UserDefinedDataOrigin=n,this.RecurrencePattern=s,this.Start=a,this.Finish=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new qwe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.Name),t.push(this.DataOrigin),t.push(this.UserDefinedDataOrigin),t.push(this.RecurrencePattern),t.push(this.Start),t.push(this.Finish),t}},Ywe=class{constructor(t,r,e,i,n,s,a,o,l,c,u){this.expressID=t,this.type=r,this.ProfileType=e,this.ProfileName=i,this.Position=n,this.Depth=s,this.FlangeWidth=a,this.WebThickness=o,this.FlangeThickness=l,this.FilletRadius=c,this.EdgeRadius=u}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++],u=e[i++],h=e[i++],p=e[i++];return new Ywe(t,r,n,s,a,o,l,c,u,h,p)}ToTape(){let t=[];return t.push(this.ProfileType),t.push(this.ProfileName),t.push(this.Position),t.push(this.Depth),t.push(this.FlangeWidth),t.push(this.WebThickness),t.push(this.FlangeThickness),t.push(this.FilletRadius),t.push(this.EdgeRadius),t}},Xwe=class{constructor(t,r,e,i,n,s,a,o){this.expressID=t,this.type=r,this.GlobalId=e,this.OwnerHistory=i,this.Name=n,this.Description=s,this.ObjectType=a,this.LongName=o}static FromTape(t,r,e){let i=0,n=e[i++],s=e[i++],a=e[i++],o=e[i++],l=e[i++],c=e[i++];return new Xwe(t,r,n,s,a,o,l,c)}ToTape(){let t=[];return t.push(this.GlobalId),t.push(this.OwnerHistory),t.push(this.Name),t.push(this.Description),t.push(this.ObjectType),t.push(this.LongName),t}},Rde=HTt();var Wk=class{constructor(){this.wasmModule=void 0,this.fs=void 0}Init(){return LTt(this,null,function*(){Rde?(this.wasmModule=yield Rde({noInitialRun:!0}),this.fs=this.wasmModule.FS):console.error("Could not find wasm module at './web-ifc' from web-ifc-api.ts")})}OpenModel(t,r){this.wasmModule.FS_createDataFile("/","filename",t,!0,!0,!0);let e=wde({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},r),i=this.wasmModule.OpenModel(e);return this.wasmModule.FS_unlink("/filename"),i}CreateModel(t){let r=wde({COORDINATE_TO_ORIGIN:!1,USE_FAST_BOOLS:!1,CIRCLE_SEGMENTS_LOW:5,CIRCLE_SEGMENTS_MEDIUM:8,CIRCLE_SEGMENTS_HIGH:12},t);return this.wasmModule.CreateModel(r)}ExportFileAsIFC(t){this.wasmModule.ExportFileAsIFC(t);let r=this.fs.readFile("/export.ifc");return this.wasmModule.FS_unlink("/export.ifc"),r}GetGeometry(t,r){return this.wasmModule.GetGeometry(t,r)}GetLine(t,r,e=!1){let i=this.GetRawLineData(t,r),n=O[i.type](i);return e&&this.FlattenLine(t,n),n}WriteLine(t,r){Object.keys(r).forEach(i=>{let n=r[i];if(n&&n.expressID!==void 0)this.WriteLine(t,n),r[i]={type:5,value:n.expressID};else if(Array.isArray(n)&&n.length>0)for(let s=0;s{let i=r[e];if(i&&i.type===5)r[e]=this.GetLine(t,i.value,!0);else if(Array.isArray(i)&&i.length>0&&i[0].type===5)for(let n=0;nqo(t,r),Zwe=(t,r)=>new jt(new Float32Array(t),r),B3t=(t,r)=>new jt(new Uint32Array(t),r),qk="default",jl={aggregates:{name:Ck,relating:"RelatingObject",related:"RelatedObjects",key:"children"},spatial:{name:Ok,relating:"RelatingStructure",related:"RelatedElements",key:"children"},psets:{name:Pk,relating:"RelatingPropertyDefinition",related:"RelatedObjects",key:"hasPsets"},materials:{name:Ak,relating:"RelatingMaterial",related:"RelatedObjects",key:"hasMaterial"},type:{name:Nk,relating:"RelatingType",related:"RelatedObjects",key:"hasType"}},Yk=class{constructor(r,e){this.state=r,this.BVH=e,this.loadedModels=0,this.currentWebIfcID=-1,this.currentModelID=-1}parse(r){return ot(this,null,function*(){return this.state.api.wasmModule===void 0&&(yield this.state.api.Init()),this.newIfcModel(r),this.loadedModels++,this.loadAllGeometry()})}newIfcModel(r){let e=new Uint8Array(r);this.currentWebIfcID=this.state.api.OpenModel(e,this.state.webIfcSettings),this.currentModelID=this.state.useJSON?this.loadedModels:this.currentWebIfcID,this.state.models[this.currentModelID]={modelID:this.currentModelID,mesh:{},items:{},types:{},jsonData:{}}}loadAllGeometry(){return this.saveAllPlacedGeometriesByMaterial(),this.generateAllGeometriesByMaterial()}generateAllGeometriesByMaterial(){let{geometry:r,materials:e}=this.getGeometryAndMaterials();this.BVH.applyThreeMeshBVH(r);let i=new Je(r,e);return i.modelID=this.currentModelID,this.state.models[this.currentModelID].mesh=i,i}getGeometryAndMaterials(){let r=this.state.models[this.currentModelID].items,e=[],i=[];for(let s in r){i.push(r[s].material);let a=Object.values(r[s].geometries);e.push(UT(a))}return{geometry:UT(e,!0),materials:i}}saveAllPlacedGeometriesByMaterial(){let r=this.state.api.LoadAllGeometry(this.currentWebIfcID);for(let e=0;e0?UT(r,e):new it}isConfigValid(r){return this.isValid(r.scene)&&this.isValid(r.modelID)&&this.isValid(r.ids)&&this.isValid(r.removePrevious)}isValid(r){return r!=null}getGeomAndMat(r){let e=[],i=[];for(let n in r){let s=Object.values(r[n].geometries);s.length&&(i.push(r[n].material),s.length>1?e.push(UT(s)):e.push(...s))}return{geomsByMaterial:e,materials:i}}updatePreviousSelection(r,e){let i=this.selected[this.matID(e)];if(!i)return this.newSelectionGroup(e);r.remove(i.mesh),e.removePrevious?i.ids=new Set(e.ids):e.ids.forEach(n=>i.ids.add(n))}newSelectionGroup(r){this.selected[this.matID(r)]={ids:new Set(r.ids),mesh:{}}}isPreviousSelection(r){if(!this.selected[this.matID(r)])return!1;if(this.containsIds(r))return!0;let e=this.selected[this.matID(r)].ids;return JSON.stringify(r.ids)===JSON.stringify(e)}containsIds(r){let e=r.ids,i=Array.from(this.selected[this.matID(r)].ids);return e.every((n=>s=>n=i.indexOf(s,n)+1)(0))}addToPreviousSelection(r){let e=this.selected[this.matID(r)],i=this.filter(r),n=Object.values(i).map(a=>Object.values(a.geometries)).flat(),s=e.mesh.geometry;e.mesh.geometry=UT([s,...n]),r.ids.forEach(a=>e.ids.add(a))}filter(r){let e=this.selected[this.matID(r)].ids,i=this.state.models[r.modelID].items,n={};for(let s in i)n[s]={material:i[s].material,geometries:this.filterGeometries(e,i[s].geometries)};return n}filterGeometries(r,e){let i=Array.from(r);return Object.keys(e).filter(n=>i.includes(parseInt(n,10))).reduce((n,s)=>Mn(Ur({},n),{[s]:e[s]}),{})}isEasySelection(r){let e=this.matID(r);if(!r.removePrevious&&!this.isDefaultMat(r)&&this.selected[e])return!0}isDefaultMat(r){return this.matIDNoConfig(r.modelID)===this.matID(r)}matID(r){let e;return r.material?e=r.material.uuid||qk:e=qk,e.concat(" - ").concat(r.modelID.toString())}matIDNoConfig(r,e){let i=qk;return e&&(i=e.uuid),i.concat(" - ").concat(r.toString())}},t8={103090709:"IFCPROJECT",4097777520:"IFCSITE",4031249490:"IFCBUILDING",3124254112:"IFCBUILDINGSTOREY",3856911033:"IFCSPACE",1674181508:"IFCANNOTATION",25142252:"IFCCONTROLLER",32344328:"IFCBOILER",76236018:"IFCLAMP",90941305:"IFCPUMP",177149247:"IFCAIRTERMINALBOX",182646315:"IFCFLOWINSTRUMENT",263784265:"IFCFURNISHINGELEMENT",264262732:"IFCELECTRICGENERATOR",277319702:"IFCAUDIOVISUALAPPLIANCE",310824031:"IFCPIPEFITTING",331165859:"IFCSTAIR",342316401:"IFCDUCTFITTING",377706215:"IFCMECHANICALFASTENER",395920057:"IFCDOOR",402227799:"IFCELECTRICMOTOR",413509423:"IFCSYSTEMFURNITUREELEMENT",484807127:"IFCEVAPORATOR",486154966:"IFCWINDOWSTANDARDCASE",629592764:"IFCLIGHTFIXTURE",630975310:"IFCUNITARYCONTROLELEMENT",635142910:"IFCCABLECARRIERFITTING",639361253:"IFCCOIL",647756555:"IFCFASTENER",707683696:"IFCFLOWSTORAGEDEVICE",738039164:"IFCPROTECTIVEDEVICE",753842376:"IFCBEAM",812556717:"IFCTANK",819412036:"IFCFILTER",843113511:"IFCCOLUMN",862014818:"IFCELECTRICDISTRIBUTIONBOARD",900683007:"IFCFOOTING",905975707:"IFCCOLUMNSTANDARDCASE",926996030:"IFCVOIDINGFEATURE",979691226:"IFCREINFORCINGBAR",987401354:"IFCFLOWSEGMENT",1003880860:"IFCELECTRICTIMECONTROL",1051757585:"IFCCABLEFITTING",1052013943:"IFCDISTRIBUTIONCHAMBERELEMENT",1062813311:"IFCDISTRIBUTIONCONTROLELEMENT",1073191201:"IFCMEMBER",1095909175:"IFCBUILDINGELEMENTPROXY",1156407060:"IFCPLATESTANDARDCASE",1162798199:"IFCSWITCHINGDEVICE",1329646415:"IFCSHADINGDEVICE",1335981549:"IFCDISCRETEACCESSORY",1360408905:"IFCDUCTSILENCER",1404847402:"IFCSTACKTERMINAL",1426591983:"IFCFIRESUPPRESSIONTERMINAL",1437502449:"IFCMEDICALDEVICE",1509553395:"IFCFURNITURE",1529196076:"IFCSLAB",1620046519:"IFCTRANSPORTELEMENT",1634111441:"IFCAIRTERMINAL",1658829314:"IFCENERGYCONVERSIONDEVICE",1677625105:"IFCCIVILELEMENT",1687234759:"IFCPILE",1904799276:"IFCELECTRICAPPLIANCE",1911478936:"IFCMEMBERSTANDARDCASE",1945004755:"IFCDISTRIBUTIONELEMENT",1973544240:"IFCCOVERING",1999602285:"IFCSPACEHEATER",2016517767:"IFCROOF",2056796094:"IFCAIRTOAIRHEATRECOVERY",2058353004:"IFCFLOWCONTROLLER",2068733104:"IFCHUMIDIFIER",2176052936:"IFCJUNCTIONBOX",2188021234:"IFCFLOWMETER",2223149337:"IFCFLOWTERMINAL",2262370178:"IFCRAILING",2272882330:"IFCCONDENSER",2295281155:"IFCPROTECTIVEDEVICETRIPPINGUNIT",2320036040:"IFCREINFORCINGMESH",2347447852:"IFCTENDONANCHOR",2391383451:"IFCVIBRATIONISOLATOR",2391406946:"IFCWALL",2474470126:"IFCMOTORCONNECTION",2769231204:"IFCVIRTUALELEMENT",2814081492:"IFCENGINE",2906023776:"IFCBEAMSTANDARDCASE",2938176219:"IFCBURNER",2979338954:"IFCBUILDINGELEMENTPART",3024970846:"IFCRAMP",3026737570:"IFCTUBEBUNDLE",3027962421:"IFCSLABSTANDARDCASE",3040386961:"IFCDISTRIBUTIONFLOWELEMENT",3053780830:"IFCSANITARYTERMINAL",3079942009:"IFCOPENINGSTANDARDCASE",3087945054:"IFCALARM",3101698114:"IFCSURFACEFEATURE",3127900445:"IFCSLABELEMENTEDCASE",3132237377:"IFCFLOWMOVINGDEVICE",3171933400:"IFCPLATE",3221913625:"IFCCOMMUNICATIONSAPPLIANCE",3242481149:"IFCDOORSTANDARDCASE",3283111854:"IFCRAMPFLIGHT",3296154744:"IFCCHIMNEY",3304561284:"IFCWINDOW",3310460725:"IFCELECTRICFLOWSTORAGEDEVICE",3319311131:"IFCHEATEXCHANGER",3415622556:"IFCFAN",3420628829:"IFCSOLARDEVICE",3493046030:"IFCGEOGRAPHICELEMENT",3495092785:"IFCCURTAINWALL",3508470533:"IFCFLOWTREATMENTDEVICE",3512223829:"IFCWALLSTANDARDCASE",3518393246:"IFCDUCTSEGMENT",3571504051:"IFCCOMPRESSOR",3588315303:"IFCOPENINGELEMENT",3612865200:"IFCPIPESEGMENT",3640358203:"IFCCOOLINGTOWER",3651124850:"IFCPROJECTIONELEMENT",3694346114:"IFCOUTLET",3747195512:"IFCEVAPORATIVECOOLER",3758799889:"IFCCABLECARRIERSEGMENT",3824725483:"IFCTENDON",3825984169:"IFCTRANSFORMER",3902619387:"IFCCHILLER",4074379575:"IFCDAMPER",4086658281:"IFCSENSOR",4123344466:"IFCELEMENTASSEMBLY",4136498852:"IFCCOOLEDBEAM",4156078855:"IFCWALLELEMENTEDCASE",4175244083:"IFCINTERCEPTOR",4207607924:"IFCVALVE",4217484030:"IFCCABLESEGMENT",4237592921:"IFCWASTETERMINAL",4252922144:"IFCSTAIRFLIGHT",4278956645:"IFCFLOWFITTING",4288193352:"IFCACTUATOR",4292641817:"IFCUNITARYEQUIPMENT",3009204131:"IFCGRID"},k3t={3821786052:"IFCACTIONREQUEST",2296667514:"IFCACTOR",3630933823:"IFCACTORROLE",4288193352:"IFCACTUATOR",2874132201:"IFCACTUATORTYPE",618182010:"IFCADDRESS",1635779807:"IFCADVANCEDBREP",2603310189:"IFCADVANCEDBREPWITHVOIDS",3406155212:"IFCADVANCEDFACE",1634111441:"IFCAIRTERMINAL",177149247:"IFCAIRTERMINALBOX",1411407467:"IFCAIRTERMINALBOXTYPE",3352864051:"IFCAIRTERMINALTYPE",2056796094:"IFCAIRTOAIRHEATRECOVERY",1871374353:"IFCAIRTOAIRHEATRECOVERYTYPE",3087945054:"IFCALARM",3001207471:"IFCALARMTYPE",325726236:"IFCALIGNMENT",749761778:"IFCALIGNMENT2DHORIZONTAL",3199563722:"IFCALIGNMENT2DHORIZONTALSEGMENT",2483840362:"IFCALIGNMENT2DSEGMENT",3379348081:"IFCALIGNMENT2DVERSEGCIRCULARARC",3239324667:"IFCALIGNMENT2DVERSEGLINE",4263986512:"IFCALIGNMENT2DVERSEGPARABOLICARC",53199957:"IFCALIGNMENT2DVERTICAL",2029264950:"IFCALIGNMENT2DVERTICALSEGMENT",3512275521:"IFCALIGNMENTCURVE",1674181508:"IFCANNOTATION",669184980:"IFCANNOTATIONFILLAREA",639542469:"IFCAPPLICATION",411424972:"IFCAPPLIEDVALUE",130549933:"IFCAPPROVAL",3869604511:"IFCAPPROVALRELATIONSHIP",3798115385:"IFCARBITRARYCLOSEDPROFILEDEF",1310608509:"IFCARBITRARYOPENPROFILEDEF",2705031697:"IFCARBITRARYPROFILEDEFWITHVOIDS",3460190687:"IFCASSET",3207858831:"IFCASYMMETRICISHAPEPROFILEDEF",277319702:"IFCAUDIOVISUALAPPLIANCE",1532957894:"IFCAUDIOVISUALAPPLIANCETYPE",4261334040:"IFCAXIS1PLACEMENT",3125803723:"IFCAXIS2PLACEMENT2D",2740243338:"IFCAXIS2PLACEMENT3D",1967976161:"IFCBSPLINECURVE",2461110595:"IFCBSPLINECURVEWITHKNOTS",2887950389:"IFCBSPLINESURFACE",167062518:"IFCBSPLINESURFACEWITHKNOTS",753842376:"IFCBEAM",2906023776:"IFCBEAMSTANDARDCASE",819618141:"IFCBEAMTYPE",4196446775:"IFCBEARING",3649138523:"IFCBEARINGTYPE",616511568:"IFCBLOBTEXTURE",1334484129:"IFCBLOCK",32344328:"IFCBOILER",231477066:"IFCBOILERTYPE",3649129432:"IFCBOOLEANCLIPPINGRESULT",2736907675:"IFCBOOLEANRESULT",4037036970:"IFCBOUNDARYCONDITION",1136057603:"IFCBOUNDARYCURVE",1560379544:"IFCBOUNDARYEDGECONDITION",3367102660:"IFCBOUNDARYFACECONDITION",1387855156:"IFCBOUNDARYNODECONDITION",2069777674:"IFCBOUNDARYNODECONDITIONWARPING",1260505505:"IFCBOUNDEDCURVE",4182860854:"IFCBOUNDEDSURFACE",2581212453:"IFCBOUNDINGBOX",2713105998:"IFCBOXEDHALFSPACE",644574406:"IFCBRIDGE",963979645:"IFCBRIDGEPART",4031249490:"IFCBUILDING",3299480353:"IFCBUILDINGELEMENT",2979338954:"IFCBUILDINGELEMENTPART",39481116:"IFCBUILDINGELEMENTPARTTYPE",1095909175:"IFCBUILDINGELEMENTPROXY",1909888760:"IFCBUILDINGELEMENTPROXYTYPE",1950629157:"IFCBUILDINGELEMENTTYPE",3124254112:"IFCBUILDINGSTOREY",1177604601:"IFCBUILDINGSYSTEM",2938176219:"IFCBURNER",2188180465:"IFCBURNERTYPE",2898889636:"IFCCSHAPEPROFILEDEF",635142910:"IFCCABLECARRIERFITTING",395041908:"IFCCABLECARRIERFITTINGTYPE",3758799889:"IFCCABLECARRIERSEGMENT",3293546465:"IFCCABLECARRIERSEGMENTTYPE",1051757585:"IFCCABLEFITTING",2674252688:"IFCCABLEFITTINGTYPE",4217484030:"IFCCABLESEGMENT",1285652485:"IFCCABLESEGMENTTYPE",3999819293:"IFCCAISSONFOUNDATION",3203706013:"IFCCAISSONFOUNDATIONTYPE",1123145078:"IFCCARTESIANPOINT",574549367:"IFCCARTESIANPOINTLIST",1675464909:"IFCCARTESIANPOINTLIST2D",2059837836:"IFCCARTESIANPOINTLIST3D",59481748:"IFCCARTESIANTRANSFORMATIONOPERATOR",3749851601:"IFCCARTESIANTRANSFORMATIONOPERATOR2D",3486308946:"IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM",3331915920:"IFCCARTESIANTRANSFORMATIONOPERATOR3D",1416205885:"IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM",3150382593:"IFCCENTERLINEPROFILEDEF",3902619387:"IFCCHILLER",2951183804:"IFCCHILLERTYPE",3296154744:"IFCCHIMNEY",2197970202:"IFCCHIMNEYTYPE",2611217952:"IFCCIRCLE",2937912522:"IFCCIRCLEHOLLOWPROFILEDEF",1383045692:"IFCCIRCLEPROFILEDEF",1062206242:"IFCCIRCULARARCSEGMENT2D",1677625105:"IFCCIVILELEMENT",3893394355:"IFCCIVILELEMENTTYPE",747523909:"IFCCLASSIFICATION",647927063:"IFCCLASSIFICATIONREFERENCE",2205249479:"IFCCLOSEDSHELL",639361253:"IFCCOIL",2301859152:"IFCCOILTYPE",776857604:"IFCCOLOURRGB",3285139300:"IFCCOLOURRGBLIST",3264961684:"IFCCOLOURSPECIFICATION",843113511:"IFCCOLUMN",905975707:"IFCCOLUMNSTANDARDCASE",300633059:"IFCCOLUMNTYPE",3221913625:"IFCCOMMUNICATIONSAPPLIANCE",400855858:"IFCCOMMUNICATIONSAPPLIANCETYPE",2542286263:"IFCCOMPLEXPROPERTY",3875453745:"IFCCOMPLEXPROPERTYTEMPLATE",3732776249:"IFCCOMPOSITECURVE",15328376:"IFCCOMPOSITECURVEONSURFACE",2485617015:"IFCCOMPOSITECURVESEGMENT",1485152156:"IFCCOMPOSITEPROFILEDEF",3571504051:"IFCCOMPRESSOR",3850581409:"IFCCOMPRESSORTYPE",2272882330:"IFCCONDENSER",2816379211:"IFCCONDENSERTYPE",2510884976:"IFCCONIC",370225590:"IFCCONNECTEDFACESET",1981873012:"IFCCONNECTIONCURVEGEOMETRY",2859738748:"IFCCONNECTIONGEOMETRY",45288368:"IFCCONNECTIONPOINTECCENTRICITY",2614616156:"IFCCONNECTIONPOINTGEOMETRY",2732653382:"IFCCONNECTIONSURFACEGEOMETRY",775493141:"IFCCONNECTIONVOLUMEGEOMETRY",1959218052:"IFCCONSTRAINT",3898045240:"IFCCONSTRUCTIONEQUIPMENTRESOURCE",2185764099:"IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE",1060000209:"IFCCONSTRUCTIONMATERIALRESOURCE",4105962743:"IFCCONSTRUCTIONMATERIALRESOURCETYPE",488727124:"IFCCONSTRUCTIONPRODUCTRESOURCE",1525564444:"IFCCONSTRUCTIONPRODUCTRESOURCETYPE",2559216714:"IFCCONSTRUCTIONRESOURCE",2574617495:"IFCCONSTRUCTIONRESOURCETYPE",3419103109:"IFCCONTEXT",3050246964:"IFCCONTEXTDEPENDENTUNIT",3293443760:"IFCCONTROL",25142252:"IFCCONTROLLER",578613899:"IFCCONTROLLERTYPE",2889183280:"IFCCONVERSIONBASEDUNIT",2713554722:"IFCCONVERSIONBASEDUNITWITHOFFSET",4136498852:"IFCCOOLEDBEAM",335055490:"IFCCOOLEDBEAMTYPE",3640358203:"IFCCOOLINGTOWER",2954562838:"IFCCOOLINGTOWERTYPE",1785450214:"IFCCOORDINATEOPERATION",1466758467:"IFCCOORDINATEREFERENCESYSTEM",3895139033:"IFCCOSTITEM",1419761937:"IFCCOSTSCHEDULE",602808272:"IFCCOSTVALUE",1973544240:"IFCCOVERING",1916426348:"IFCCOVERINGTYPE",3295246426:"IFCCREWRESOURCE",1815067380:"IFCCREWRESOURCETYPE",2506170314:"IFCCSGPRIMITIVE3D",2147822146:"IFCCSGSOLID",539742890:"IFCCURRENCYRELATIONSHIP",3495092785:"IFCCURTAINWALL",1457835157:"IFCCURTAINWALLTYPE",2601014836:"IFCCURVE",2827736869:"IFCCURVEBOUNDEDPLANE",2629017746:"IFCCURVEBOUNDEDSURFACE",1186437898:"IFCCURVESEGMENT2D",3800577675:"IFCCURVESTYLE",1105321065:"IFCCURVESTYLEFONT",2367409068:"IFCCURVESTYLEFONTANDSCALING",3510044353:"IFCCURVESTYLEFONTPATTERN",1213902940:"IFCCYLINDRICALSURFACE",4074379575:"IFCDAMPER",3961806047:"IFCDAMPERTYPE",3426335179:"IFCDEEPFOUNDATION",1306400036:"IFCDEEPFOUNDATIONTYPE",3632507154:"IFCDERIVEDPROFILEDEF",1765591967:"IFCDERIVEDUNIT",1045800335:"IFCDERIVEDUNITELEMENT",2949456006:"IFCDIMENSIONALEXPONENTS",32440307:"IFCDIRECTION",1335981549:"IFCDISCRETEACCESSORY",2635815018:"IFCDISCRETEACCESSORYTYPE",1945343521:"IFCDISTANCEEXPRESSION",1052013943:"IFCDISTRIBUTIONCHAMBERELEMENT",1599208980:"IFCDISTRIBUTIONCHAMBERELEMENTTYPE",562808652:"IFCDISTRIBUTIONCIRCUIT",1062813311:"IFCDISTRIBUTIONCONTROLELEMENT",2063403501:"IFCDISTRIBUTIONCONTROLELEMENTTYPE",1945004755:"IFCDISTRIBUTIONELEMENT",3256556792:"IFCDISTRIBUTIONELEMENTTYPE",3040386961:"IFCDISTRIBUTIONFLOWELEMENT",3849074793:"IFCDISTRIBUTIONFLOWELEMENTTYPE",3041715199:"IFCDISTRIBUTIONPORT",3205830791:"IFCDISTRIBUTIONSYSTEM",1154170062:"IFCDOCUMENTINFORMATION",770865208:"IFCDOCUMENTINFORMATIONRELATIONSHIP",3732053477:"IFCDOCUMENTREFERENCE",395920057:"IFCDOOR",2963535650:"IFCDOORLININGPROPERTIES",1714330368:"IFCDOORPANELPROPERTIES",3242481149:"IFCDOORSTANDARDCASE",526551008:"IFCDOORSTYLE",2323601079:"IFCDOORTYPE",445594917:"IFCDRAUGHTINGPREDEFINEDCOLOUR",4006246654:"IFCDRAUGHTINGPREDEFINEDCURVEFONT",342316401:"IFCDUCTFITTING",869906466:"IFCDUCTFITTINGTYPE",3518393246:"IFCDUCTSEGMENT",3760055223:"IFCDUCTSEGMENTTYPE",1360408905:"IFCDUCTSILENCER",2030761528:"IFCDUCTSILENCERTYPE",3900360178:"IFCEDGE",476780140:"IFCEDGECURVE",1472233963:"IFCEDGELOOP",1904799276:"IFCELECTRICAPPLIANCE",663422040:"IFCELECTRICAPPLIANCETYPE",862014818:"IFCELECTRICDISTRIBUTIONBOARD",2417008758:"IFCELECTRICDISTRIBUTIONBOARDTYPE",3310460725:"IFCELECTRICFLOWSTORAGEDEVICE",3277789161:"IFCELECTRICFLOWSTORAGEDEVICETYPE",264262732:"IFCELECTRICGENERATOR",1534661035:"IFCELECTRICGENERATORTYPE",402227799:"IFCELECTRICMOTOR",1217240411:"IFCELECTRICMOTORTYPE",1003880860:"IFCELECTRICTIMECONTROL",712377611:"IFCELECTRICTIMECONTROLTYPE",1758889154:"IFCELEMENT",4123344466:"IFCELEMENTASSEMBLY",2397081782:"IFCELEMENTASSEMBLYTYPE",1623761950:"IFCELEMENTCOMPONENT",2590856083:"IFCELEMENTCOMPONENTTYPE",1883228015:"IFCELEMENTQUANTITY",339256511:"IFCELEMENTTYPE",2777663545:"IFCELEMENTARYSURFACE",1704287377:"IFCELLIPSE",2835456948:"IFCELLIPSEPROFILEDEF",1658829314:"IFCENERGYCONVERSIONDEVICE",2107101300:"IFCENERGYCONVERSIONDEVICETYPE",2814081492:"IFCENGINE",132023988:"IFCENGINETYPE",3747195512:"IFCEVAPORATIVECOOLER",3174744832:"IFCEVAPORATIVECOOLERTYPE",484807127:"IFCEVAPORATOR",3390157468:"IFCEVAPORATORTYPE",4148101412:"IFCEVENT",211053100:"IFCEVENTTIME",4024345920:"IFCEVENTTYPE",297599258:"IFCEXTENDEDPROPERTIES",4294318154:"IFCEXTERNALINFORMATION",3200245327:"IFCEXTERNALREFERENCE",1437805879:"IFCEXTERNALREFERENCERELATIONSHIP",1209101575:"IFCEXTERNALSPATIALELEMENT",2853485674:"IFCEXTERNALSPATIALSTRUCTUREELEMENT",2242383968:"IFCEXTERNALLYDEFINEDHATCHSTYLE",1040185647:"IFCEXTERNALLYDEFINEDSURFACESTYLE",3548104201:"IFCEXTERNALLYDEFINEDTEXTFONT",477187591:"IFCEXTRUDEDAREASOLID",2804161546:"IFCEXTRUDEDAREASOLIDTAPERED",2556980723:"IFCFACE",2047409740:"IFCFACEBASEDSURFACEMODEL",1809719519:"IFCFACEBOUND",803316827:"IFCFACEOUTERBOUND",3008276851:"IFCFACESURFACE",807026263:"IFCFACETEDBREP",3737207727:"IFCFACETEDBREPWITHVOIDS",24185140:"IFCFACILITY",1310830890:"IFCFACILITYPART",4219587988:"IFCFAILURECONNECTIONCONDITION",3415622556:"IFCFAN",346874300:"IFCFANTYPE",647756555:"IFCFASTENER",2489546625:"IFCFASTENERTYPE",2827207264:"IFCFEATUREELEMENT",2143335405:"IFCFEATUREELEMENTADDITION",1287392070:"IFCFEATUREELEMENTSUBTRACTION",738692330:"IFCFILLAREASTYLE",374418227:"IFCFILLAREASTYLEHATCHING",315944413:"IFCFILLAREASTYLETILES",819412036:"IFCFILTER",1810631287:"IFCFILTERTYPE",1426591983:"IFCFIRESUPPRESSIONTERMINAL",4222183408:"IFCFIRESUPPRESSIONTERMINALTYPE",2652556860:"IFCFIXEDREFERENCESWEPTAREASOLID",2058353004:"IFCFLOWCONTROLLER",3907093117:"IFCFLOWCONTROLLERTYPE",4278956645:"IFCFLOWFITTING",3198132628:"IFCFLOWFITTINGTYPE",182646315:"IFCFLOWINSTRUMENT",4037862832:"IFCFLOWINSTRUMENTTYPE",2188021234:"IFCFLOWMETER",3815607619:"IFCFLOWMETERTYPE",3132237377:"IFCFLOWMOVINGDEVICE",1482959167:"IFCFLOWMOVINGDEVICETYPE",987401354:"IFCFLOWSEGMENT",1834744321:"IFCFLOWSEGMENTTYPE",707683696:"IFCFLOWSTORAGEDEVICE",1339347760:"IFCFLOWSTORAGEDEVICETYPE",2223149337:"IFCFLOWTERMINAL",2297155007:"IFCFLOWTERMINALTYPE",3508470533:"IFCFLOWTREATMENTDEVICE",3009222698:"IFCFLOWTREATMENTDEVICETYPE",900683007:"IFCFOOTING",1893162501:"IFCFOOTINGTYPE",263784265:"IFCFURNISHINGELEMENT",4238390223:"IFCFURNISHINGELEMENTTYPE",1509553395:"IFCFURNITURE",1268542332:"IFCFURNITURETYPE",3493046030:"IFCGEOGRAPHICELEMENT",4095422895:"IFCGEOGRAPHICELEMENTTYPE",987898635:"IFCGEOMETRICCURVESET",3448662350:"IFCGEOMETRICREPRESENTATIONCONTEXT",2453401579:"IFCGEOMETRICREPRESENTATIONITEM",4142052618:"IFCGEOMETRICREPRESENTATIONSUBCONTEXT",3590301190:"IFCGEOMETRICSET",3009204131:"IFCGRID",852622518:"IFCGRIDAXIS",178086475:"IFCGRIDPLACEMENT",2706460486:"IFCGROUP",812098782:"IFCHALFSPACESOLID",3319311131:"IFCHEATEXCHANGER",1251058090:"IFCHEATEXCHANGERTYPE",2068733104:"IFCHUMIDIFIER",1806887404:"IFCHUMIDIFIERTYPE",1484403080:"IFCISHAPEPROFILEDEF",3905492369:"IFCIMAGETEXTURE",3570813810:"IFCINDEXEDCOLOURMAP",2571569899:"IFCINDEXEDPOLYCURVE",178912537:"IFCINDEXEDPOLYGONALFACE",2294589976:"IFCINDEXEDPOLYGONALFACEWITHVOIDS",1437953363:"IFCINDEXEDTEXTUREMAP",2133299955:"IFCINDEXEDTRIANGLETEXTUREMAP",4175244083:"IFCINTERCEPTOR",3946677679:"IFCINTERCEPTORTYPE",3113134337:"IFCINTERSECTIONCURVE",2391368822:"IFCINVENTORY",3741457305:"IFCIRREGULARTIMESERIES",3020489413:"IFCIRREGULARTIMESERIESVALUE",2176052936:"IFCJUNCTIONBOX",4288270099:"IFCJUNCTIONBOXTYPE",572779678:"IFCLSHAPEPROFILEDEF",3827777499:"IFCLABORRESOURCE",428585644:"IFCLABORRESOURCETYPE",1585845231:"IFCLAGTIME",76236018:"IFCLAMP",1051575348:"IFCLAMPTYPE",2655187982:"IFCLIBRARYINFORMATION",3452421091:"IFCLIBRARYREFERENCE",4162380809:"IFCLIGHTDISTRIBUTIONDATA",629592764:"IFCLIGHTFIXTURE",1161773419:"IFCLIGHTFIXTURETYPE",1566485204:"IFCLIGHTINTENSITYDISTRIBUTION",1402838566:"IFCLIGHTSOURCE",125510826:"IFCLIGHTSOURCEAMBIENT",2604431987:"IFCLIGHTSOURCEDIRECTIONAL",4266656042:"IFCLIGHTSOURCEGONIOMETRIC",1520743889:"IFCLIGHTSOURCEPOSITIONAL",3422422726:"IFCLIGHTSOURCESPOT",1281925730:"IFCLINE",3092502836:"IFCLINESEGMENT2D",388784114:"IFCLINEARPLACEMENT",1154579445:"IFCLINEARPOSITIONINGELEMENT",2624227202:"IFCLOCALPLACEMENT",1008929658:"IFCLOOP",1425443689:"IFCMANIFOLDSOLIDBREP",3057273783:"IFCMAPCONVERSION",2347385850:"IFCMAPPEDITEM",1838606355:"IFCMATERIAL",1847130766:"IFCMATERIALCLASSIFICATIONRELATIONSHIP",3708119e3:"IFCMATERIALCONSTITUENT",2852063980:"IFCMATERIALCONSTITUENTSET",760658860:"IFCMATERIALDEFINITION",2022407955:"IFCMATERIALDEFINITIONREPRESENTATION",248100487:"IFCMATERIALLAYER",3303938423:"IFCMATERIALLAYERSET",1303795690:"IFCMATERIALLAYERSETUSAGE",1847252529:"IFCMATERIALLAYERWITHOFFSETS",2199411900:"IFCMATERIALLIST",2235152071:"IFCMATERIALPROFILE",164193824:"IFCMATERIALPROFILESET",3079605661:"IFCMATERIALPROFILESETUSAGE",3404854881:"IFCMATERIALPROFILESETUSAGETAPERING",552965576:"IFCMATERIALPROFILEWITHOFFSETS",3265635763:"IFCMATERIALPROPERTIES",853536259:"IFCMATERIALRELATIONSHIP",1507914824:"IFCMATERIALUSAGEDEFINITION",2597039031:"IFCMEASUREWITHUNIT",377706215:"IFCMECHANICALFASTENER",2108223431:"IFCMECHANICALFASTENERTYPE",1437502449:"IFCMEDICALDEVICE",1114901282:"IFCMEDICALDEVICETYPE",1073191201:"IFCMEMBER",1911478936:"IFCMEMBERSTANDARDCASE",3181161470:"IFCMEMBERTYPE",3368373690:"IFCMETRIC",2998442950:"IFCMIRROREDPROFILEDEF",2706619895:"IFCMONETARYUNIT",2474470126:"IFCMOTORCONNECTION",977012517:"IFCMOTORCONNECTIONTYPE",1918398963:"IFCNAMEDUNIT",3888040117:"IFCOBJECT",219451334:"IFCOBJECTDEFINITION",3701648758:"IFCOBJECTPLACEMENT",2251480897:"IFCOBJECTIVE",4143007308:"IFCOCCUPANT",590820931:"IFCOFFSETCURVE",3388369263:"IFCOFFSETCURVE2D",3505215534:"IFCOFFSETCURVE3D",2485787929:"IFCOFFSETCURVEBYDISTANCES",2665983363:"IFCOPENSHELL",3588315303:"IFCOPENINGELEMENT",3079942009:"IFCOPENINGSTANDARDCASE",4251960020:"IFCORGANIZATION",1411181986:"IFCORGANIZATIONRELATIONSHIP",643959842:"IFCORIENTATIONEXPRESSION",1029017970:"IFCORIENTEDEDGE",144952367:"IFCOUTERBOUNDARYCURVE",3694346114:"IFCOUTLET",2837617999:"IFCOUTLETTYPE",1207048766:"IFCOWNERHISTORY",2529465313:"IFCPARAMETERIZEDPROFILEDEF",2519244187:"IFCPATH",1682466193:"IFCPCURVE",2382730787:"IFCPERFORMANCEHISTORY",3566463478:"IFCPERMEABLECOVERINGPROPERTIES",3327091369:"IFCPERMIT",2077209135:"IFCPERSON",101040310:"IFCPERSONANDORGANIZATION",3021840470:"IFCPHYSICALCOMPLEXQUANTITY",2483315170:"IFCPHYSICALQUANTITY",2226359599:"IFCPHYSICALSIMPLEQUANTITY",1687234759:"IFCPILE",1158309216:"IFCPILETYPE",310824031:"IFCPIPEFITTING",804291784:"IFCPIPEFITTINGTYPE",3612865200:"IFCPIPESEGMENT",4231323485:"IFCPIPESEGMENTTYPE",597895409:"IFCPIXELTEXTURE",2004835150:"IFCPLACEMENT",603570806:"IFCPLANARBOX",1663979128:"IFCPLANAREXTENT",220341763:"IFCPLANE",3171933400:"IFCPLATE",1156407060:"IFCPLATESTANDARDCASE",4017108033:"IFCPLATETYPE",2067069095:"IFCPOINT",4022376103:"IFCPOINTONCURVE",1423911732:"IFCPOINTONSURFACE",2924175390:"IFCPOLYLOOP",2775532180:"IFCPOLYGONALBOUNDEDHALFSPACE",2839578677:"IFCPOLYGONALFACESET",3724593414:"IFCPOLYLINE",3740093272:"IFCPORT",1946335990:"IFCPOSITIONINGELEMENT",3355820592:"IFCPOSTALADDRESS",759155922:"IFCPREDEFINEDCOLOUR",2559016684:"IFCPREDEFINEDCURVEFONT",3727388367:"IFCPREDEFINEDITEM",3778827333:"IFCPREDEFINEDPROPERTIES",3967405729:"IFCPREDEFINEDPROPERTYSET",1775413392:"IFCPREDEFINEDTEXTFONT",677532197:"IFCPRESENTATIONITEM",2022622350:"IFCPRESENTATIONLAYERASSIGNMENT",1304840413:"IFCPRESENTATIONLAYERWITHSTYLE",3119450353:"IFCPRESENTATIONSTYLE",2417041796:"IFCPRESENTATIONSTYLEASSIGNMENT",2744685151:"IFCPROCEDURE",569719735:"IFCPROCEDURETYPE",2945172077:"IFCPROCESS",4208778838:"IFCPRODUCT",673634403:"IFCPRODUCTDEFINITIONSHAPE",2095639259:"IFCPRODUCTREPRESENTATION",3958567839:"IFCPROFILEDEF",2802850158:"IFCPROFILEPROPERTIES",103090709:"IFCPROJECT",653396225:"IFCPROJECTLIBRARY",2904328755:"IFCPROJECTORDER",3843373140:"IFCPROJECTEDCRS",3651124850:"IFCPROJECTIONELEMENT",2598011224:"IFCPROPERTY",986844984:"IFCPROPERTYABSTRACTION",871118103:"IFCPROPERTYBOUNDEDVALUE",1680319473:"IFCPROPERTYDEFINITION",148025276:"IFCPROPERTYDEPENDENCYRELATIONSHIP",4166981789:"IFCPROPERTYENUMERATEDVALUE",3710013099:"IFCPROPERTYENUMERATION",2752243245:"IFCPROPERTYLISTVALUE",941946838:"IFCPROPERTYREFERENCEVALUE",1451395588:"IFCPROPERTYSET",3357820518:"IFCPROPERTYSETDEFINITION",492091185:"IFCPROPERTYSETTEMPLATE",3650150729:"IFCPROPERTYSINGLEVALUE",110355661:"IFCPROPERTYTABLEVALUE",3521284610:"IFCPROPERTYTEMPLATE",1482703590:"IFCPROPERTYTEMPLATEDEFINITION",738039164:"IFCPROTECTIVEDEVICE",2295281155:"IFCPROTECTIVEDEVICETRIPPINGUNIT",655969474:"IFCPROTECTIVEDEVICETRIPPINGUNITTYPE",1842657554:"IFCPROTECTIVEDEVICETYPE",3219374653:"IFCPROXY",90941305:"IFCPUMP",2250791053:"IFCPUMPTYPE",2044713172:"IFCQUANTITYAREA",2093928680:"IFCQUANTITYCOUNT",931644368:"IFCQUANTITYLENGTH",2090586900:"IFCQUANTITYSET",3252649465:"IFCQUANTITYTIME",2405470396:"IFCQUANTITYVOLUME",825690147:"IFCQUANTITYWEIGHT",2262370178:"IFCRAILING",2893384427:"IFCRAILINGTYPE",3024970846:"IFCRAMP",3283111854:"IFCRAMPFLIGHT",2324767716:"IFCRAMPFLIGHTTYPE",1469900589:"IFCRAMPTYPE",1232101972:"IFCRATIONALBSPLINECURVEWITHKNOTS",683857671:"IFCRATIONALBSPLINESURFACEWITHKNOTS",2770003689:"IFCRECTANGLEHOLLOWPROFILEDEF",3615266464:"IFCRECTANGLEPROFILEDEF",2798486643:"IFCRECTANGULARPYRAMID",3454111270:"IFCRECTANGULARTRIMMEDSURFACE",3915482550:"IFCRECURRENCEPATTERN",2433181523:"IFCREFERENCE",4021432810:"IFCREFERENT",3413951693:"IFCREGULARTIMESERIES",1580146022:"IFCREINFORCEMENTBARPROPERTIES",3765753017:"IFCREINFORCEMENTDEFINITIONPROPERTIES",979691226:"IFCREINFORCINGBAR",2572171363:"IFCREINFORCINGBARTYPE",3027567501:"IFCREINFORCINGELEMENT",964333572:"IFCREINFORCINGELEMENTTYPE",2320036040:"IFCREINFORCINGMESH",2310774935:"IFCREINFORCINGMESHTYPE",160246688:"IFCRELAGGREGATES",3939117080:"IFCRELASSIGNS",1683148259:"IFCRELASSIGNSTOACTOR",2495723537:"IFCRELASSIGNSTOCONTROL",1307041759:"IFCRELASSIGNSTOGROUP",1027710054:"IFCRELASSIGNSTOGROUPBYFACTOR",4278684876:"IFCRELASSIGNSTOPROCESS",2857406711:"IFCRELASSIGNSTOPRODUCT",205026976:"IFCRELASSIGNSTORESOURCE",1865459582:"IFCRELASSOCIATES",4095574036:"IFCRELASSOCIATESAPPROVAL",919958153:"IFCRELASSOCIATESCLASSIFICATION",2728634034:"IFCRELASSOCIATESCONSTRAINT",982818633:"IFCRELASSOCIATESDOCUMENT",3840914261:"IFCRELASSOCIATESLIBRARY",2655215786:"IFCRELASSOCIATESMATERIAL",826625072:"IFCRELCONNECTS",1204542856:"IFCRELCONNECTSELEMENTS",3945020480:"IFCRELCONNECTSPATHELEMENTS",4201705270:"IFCRELCONNECTSPORTTOELEMENT",3190031847:"IFCRELCONNECTSPORTS",2127690289:"IFCRELCONNECTSSTRUCTURALACTIVITY",1638771189:"IFCRELCONNECTSSTRUCTURALMEMBER",504942748:"IFCRELCONNECTSWITHECCENTRICITY",3678494232:"IFCRELCONNECTSWITHREALIZINGELEMENTS",3242617779:"IFCRELCONTAINEDINSPATIALSTRUCTURE",886880790:"IFCRELCOVERSBLDGELEMENTS",2802773753:"IFCRELCOVERSSPACES",2565941209:"IFCRELDECLARES",2551354335:"IFCRELDECOMPOSES",693640335:"IFCRELDEFINES",1462361463:"IFCRELDEFINESBYOBJECT",4186316022:"IFCRELDEFINESBYPROPERTIES",307848117:"IFCRELDEFINESBYTEMPLATE",781010003:"IFCRELDEFINESBYTYPE",3940055652:"IFCRELFILLSELEMENT",279856033:"IFCRELFLOWCONTROLELEMENTS",427948657:"IFCRELINTERFERESELEMENTS",3268803585:"IFCRELNESTS",1441486842:"IFCRELPOSITIONS",750771296:"IFCRELPROJECTSELEMENT",1245217292:"IFCRELREFERENCEDINSPATIALSTRUCTURE",4122056220:"IFCRELSEQUENCE",366585022:"IFCRELSERVICESBUILDINGS",3451746338:"IFCRELSPACEBOUNDARY",3523091289:"IFCRELSPACEBOUNDARY1STLEVEL",1521410863:"IFCRELSPACEBOUNDARY2NDLEVEL",1401173127:"IFCRELVOIDSELEMENT",478536968:"IFCRELATIONSHIP",816062949:"IFCREPARAMETRISEDCOMPOSITECURVESEGMENT",1076942058:"IFCREPRESENTATION",3377609919:"IFCREPRESENTATIONCONTEXT",3008791417:"IFCREPRESENTATIONITEM",1660063152:"IFCREPRESENTATIONMAP",2914609552:"IFCRESOURCE",2943643501:"IFCRESOURCEAPPROVALRELATIONSHIP",1608871552:"IFCRESOURCECONSTRAINTRELATIONSHIP",2439245199:"IFCRESOURCELEVELRELATIONSHIP",1042787934:"IFCRESOURCETIME",1856042241:"IFCREVOLVEDAREASOLID",3243963512:"IFCREVOLVEDAREASOLIDTAPERED",4158566097:"IFCRIGHTCIRCULARCONE",3626867408:"IFCRIGHTCIRCULARCYLINDER",2016517767:"IFCROOF",2781568857:"IFCROOFTYPE",2341007311:"IFCROOT",2778083089:"IFCROUNDEDRECTANGLEPROFILEDEF",448429030:"IFCSIUNIT",3053780830:"IFCSANITARYTERMINAL",1768891740:"IFCSANITARYTERMINALTYPE",1054537805:"IFCSCHEDULINGTIME",2157484638:"IFCSEAMCURVE",2042790032:"IFCSECTIONPROPERTIES",4165799628:"IFCSECTIONREINFORCEMENTPROPERTIES",1862484736:"IFCSECTIONEDSOLID",1290935644:"IFCSECTIONEDSOLIDHORIZONTAL",1509187699:"IFCSECTIONEDSPINE",4086658281:"IFCSENSOR",1783015770:"IFCSENSORTYPE",1329646415:"IFCSHADINGDEVICE",4074543187:"IFCSHADINGDEVICETYPE",867548509:"IFCSHAPEASPECT",3982875396:"IFCSHAPEMODEL",4240577450:"IFCSHAPEREPRESENTATION",4124623270:"IFCSHELLBASEDSURFACEMODEL",3692461612:"IFCSIMPLEPROPERTY",3663146110:"IFCSIMPLEPROPERTYTEMPLATE",4097777520:"IFCSITE",1529196076:"IFCSLAB",3127900445:"IFCSLABELEMENTEDCASE",3027962421:"IFCSLABSTANDARDCASE",2533589738:"IFCSLABTYPE",2609359061:"IFCSLIPPAGECONNECTIONCONDITION",3420628829:"IFCSOLARDEVICE",1072016465:"IFCSOLARDEVICETYPE",723233188:"IFCSOLIDMODEL",3856911033:"IFCSPACE",1999602285:"IFCSPACEHEATER",1305183839:"IFCSPACEHEATERTYPE",3812236995:"IFCSPACETYPE",1412071761:"IFCSPATIALELEMENT",710998568:"IFCSPATIALELEMENTTYPE",2706606064:"IFCSPATIALSTRUCTUREELEMENT",3893378262:"IFCSPATIALSTRUCTUREELEMENTTYPE",463610769:"IFCSPATIALZONE",2481509218:"IFCSPATIALZONETYPE",451544542:"IFCSPHERE",4015995234:"IFCSPHERICALSURFACE",1404847402:"IFCSTACKTERMINAL",3112655638:"IFCSTACKTERMINALTYPE",331165859:"IFCSTAIR",4252922144:"IFCSTAIRFLIGHT",1039846685:"IFCSTAIRFLIGHTTYPE",338393293:"IFCSTAIRTYPE",682877961:"IFCSTRUCTURALACTION",3544373492:"IFCSTRUCTURALACTIVITY",2515109513:"IFCSTRUCTURALANALYSISMODEL",1179482911:"IFCSTRUCTURALCONNECTION",2273995522:"IFCSTRUCTURALCONNECTIONCONDITION",1004757350:"IFCSTRUCTURALCURVEACTION",4243806635:"IFCSTRUCTURALCURVECONNECTION",214636428:"IFCSTRUCTURALCURVEMEMBER",2445595289:"IFCSTRUCTURALCURVEMEMBERVARYING",2757150158:"IFCSTRUCTURALCURVEREACTION",3136571912:"IFCSTRUCTURALITEM",1807405624:"IFCSTRUCTURALLINEARACTION",2162789131:"IFCSTRUCTURALLOAD",385403989:"IFCSTRUCTURALLOADCASE",3478079324:"IFCSTRUCTURALLOADCONFIGURATION",1252848954:"IFCSTRUCTURALLOADGROUP",1595516126:"IFCSTRUCTURALLOADLINEARFORCE",609421318:"IFCSTRUCTURALLOADORRESULT",2668620305:"IFCSTRUCTURALLOADPLANARFORCE",2473145415:"IFCSTRUCTURALLOADSINGLEDISPLACEMENT",1973038258:"IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION",1597423693:"IFCSTRUCTURALLOADSINGLEFORCE",1190533807:"IFCSTRUCTURALLOADSINGLEFORCEWARPING",2525727697:"IFCSTRUCTURALLOADSTATIC",3408363356:"IFCSTRUCTURALLOADTEMPERATURE",530289379:"IFCSTRUCTURALMEMBER",1621171031:"IFCSTRUCTURALPLANARACTION",2082059205:"IFCSTRUCTURALPOINTACTION",734778138:"IFCSTRUCTURALPOINTCONNECTION",1235345126:"IFCSTRUCTURALPOINTREACTION",3689010777:"IFCSTRUCTURALREACTION",2986769608:"IFCSTRUCTURALRESULTGROUP",3657597509:"IFCSTRUCTURALSURFACEACTION",1975003073:"IFCSTRUCTURALSURFACECONNECTION",3979015343:"IFCSTRUCTURALSURFACEMEMBER",2218152070:"IFCSTRUCTURALSURFACEMEMBERVARYING",603775116:"IFCSTRUCTURALSURFACEREACTION",2830218821:"IFCSTYLEMODEL",3958052878:"IFCSTYLEDITEM",3049322572:"IFCSTYLEDREPRESENTATION",148013059:"IFCSUBCONTRACTRESOURCE",4095615324:"IFCSUBCONTRACTRESOURCETYPE",2233826070:"IFCSUBEDGE",2513912981:"IFCSURFACE",699246055:"IFCSURFACECURVE",2028607225:"IFCSURFACECURVESWEPTAREASOLID",3101698114:"IFCSURFACEFEATURE",2809605785:"IFCSURFACEOFLINEAREXTRUSION",4124788165:"IFCSURFACEOFREVOLUTION",2934153892:"IFCSURFACEREINFORCEMENTAREA",1300840506:"IFCSURFACESTYLE",3303107099:"IFCSURFACESTYLELIGHTING",1607154358:"IFCSURFACESTYLEREFRACTION",1878645084:"IFCSURFACESTYLERENDERING",846575682:"IFCSURFACESTYLESHADING",1351298697:"IFCSURFACESTYLEWITHTEXTURES",626085974:"IFCSURFACETEXTURE",2247615214:"IFCSWEPTAREASOLID",1260650574:"IFCSWEPTDISKSOLID",1096409881:"IFCSWEPTDISKSOLIDPOLYGONAL",230924584:"IFCSWEPTSURFACE",1162798199:"IFCSWITCHINGDEVICE",2315554128:"IFCSWITCHINGDEVICETYPE",2254336722:"IFCSYSTEM",413509423:"IFCSYSTEMFURNITUREELEMENT",1580310250:"IFCSYSTEMFURNITUREELEMENTTYPE",3071757647:"IFCTSHAPEPROFILEDEF",985171141:"IFCTABLE",2043862942:"IFCTABLECOLUMN",531007025:"IFCTABLEROW",812556717:"IFCTANK",5716631:"IFCTANKTYPE",3473067441:"IFCTASK",1549132990:"IFCTASKTIME",2771591690:"IFCTASKTIMERECURRING",3206491090:"IFCTASKTYPE",912023232:"IFCTELECOMADDRESS",3824725483:"IFCTENDON",2347447852:"IFCTENDONANCHOR",3081323446:"IFCTENDONANCHORTYPE",3663046924:"IFCTENDONCONDUIT",2281632017:"IFCTENDONCONDUITTYPE",2415094496:"IFCTENDONTYPE",2387106220:"IFCTESSELLATEDFACESET",901063453:"IFCTESSELLATEDITEM",4282788508:"IFCTEXTLITERAL",3124975700:"IFCTEXTLITERALWITHEXTENT",1447204868:"IFCTEXTSTYLE",1983826977:"IFCTEXTSTYLEFONTMODEL",2636378356:"IFCTEXTSTYLEFORDEFINEDFONT",1640371178:"IFCTEXTSTYLETEXTMODEL",280115917:"IFCTEXTURECOORDINATE",1742049831:"IFCTEXTURECOORDINATEGENERATOR",2552916305:"IFCTEXTUREMAP",1210645708:"IFCTEXTUREVERTEX",3611470254:"IFCTEXTUREVERTEXLIST",1199560280:"IFCTIMEPERIOD",3101149627:"IFCTIMESERIES",581633288:"IFCTIMESERIESVALUE",1377556343:"IFCTOPOLOGICALREPRESENTATIONITEM",1735638870:"IFCTOPOLOGYREPRESENTATION",1935646853:"IFCTOROIDALSURFACE",3825984169:"IFCTRANSFORMER",1692211062:"IFCTRANSFORMERTYPE",2595432518:"IFCTRANSITIONCURVESEGMENT2D",1620046519:"IFCTRANSPORTELEMENT",2097647324:"IFCTRANSPORTELEMENTTYPE",2715220739:"IFCTRAPEZIUMPROFILEDEF",2916149573:"IFCTRIANGULATEDFACESET",1229763772:"IFCTRIANGULATEDIRREGULARNETWORK",3593883385:"IFCTRIMMEDCURVE",3026737570:"IFCTUBEBUNDLE",1600972822:"IFCTUBEBUNDLETYPE",1628702193:"IFCTYPEOBJECT",3736923433:"IFCTYPEPROCESS",2347495698:"IFCTYPEPRODUCT",3698973494:"IFCTYPERESOURCE",427810014:"IFCUSHAPEPROFILEDEF",180925521:"IFCUNITASSIGNMENT",630975310:"IFCUNITARYCONTROLELEMENT",3179687236:"IFCUNITARYCONTROLELEMENTTYPE",4292641817:"IFCUNITARYEQUIPMENT",1911125066:"IFCUNITARYEQUIPMENTTYPE",4207607924:"IFCVALVE",728799441:"IFCVALVETYPE",1417489154:"IFCVECTOR",2799835756:"IFCVERTEX",2759199220:"IFCVERTEXLOOP",1907098498:"IFCVERTEXPOINT",1530820697:"IFCVIBRATIONDAMPER",3956297820:"IFCVIBRATIONDAMPERTYPE",2391383451:"IFCVIBRATIONISOLATOR",3313531582:"IFCVIBRATIONISOLATORTYPE",2769231204:"IFCVIRTUALELEMENT",891718957:"IFCVIRTUALGRIDINTERSECTION",926996030:"IFCVOIDINGFEATURE",2391406946:"IFCWALL",4156078855:"IFCWALLELEMENTEDCASE",3512223829:"IFCWALLSTANDARDCASE",1898987631:"IFCWALLTYPE",4237592921:"IFCWASTETERMINAL",1133259667:"IFCWASTETERMINALTYPE",3304561284:"IFCWINDOW",336235671:"IFCWINDOWLININGPROPERTIES",512836454:"IFCWINDOWPANELPROPERTIES",486154966:"IFCWINDOWSTANDARDCASE",1299126871:"IFCWINDOWSTYLE",4009809668:"IFCWINDOWTYPE",4088093105:"IFCWORKCALENDAR",1028945134:"IFCWORKCONTROL",4218914973:"IFCWORKPLAN",3342526732:"IFCWORKSCHEDULE",1236880293:"IFCWORKTIME",2543172580:"IFCZSHAPEPROFILEDEF",1033361043:"IFCZONE"},$k=class{constructor(r){this.state=r}getExpressId(r,e){if(!r.index)return;let i=r.index.array;return r.attributes[Kwe].getX(i[3*e])}getItemProperties(r,e,i=!1){return this.state.useJSON?Ur({},this.state.models[r].jsonData[e]):this.state.api.GetLine(r,e,i)}getAllItemsOfType(r,e,i){return this.state.useJSON?this.getAllItemsOfTypeJSON(r,e,i):this.getAllItemsOfTypeWebIfcAPI(r,e,i)}getPropertySets(r,e,i=!1){return this.state.useJSON?this.getPropertyJSON(r,e,i,jl.psets):this.getPropertyWebIfcAPI(r,e,i,jl.psets)}getTypeProperties(r,e,i=!1){return this.state.useJSON?this.getPropertyJSON(r,e,i,jl.type):this.getPropertyWebIfcAPI(r,e,i,jl.type)}getMaterialsProperties(r,e,i=!1){return this.state.useJSON?this.getPropertyJSON(r,e,i,jl.materials):this.getPropertyWebIfcAPI(r,e,i,jl.materials)}getSpatialStructure(r){return this.state.useJSON?this.getSpatialStructureJSON(r):this.getSpatialStructureWebIfcAPI(r)}getSpatialStructureJSON(r){let e=this.getSpatialTreeChunks(r),i=this.getAllItemsOfTypeJSON(r,tA,!1)[0],n=this.newIfcProject(i);return this.getSpatialNode(r,n,e),Ur({},n)}getSpatialStructureWebIfcAPI(r){let e=this.getSpatialTreeChunks(r),i=this.state.api.GetLineIDsWithType(r,tA).get(0),n=this.newIfcProject(i);return this.getSpatialNode(r,n,e),n}getAllItemsOfTypeJSON(r,e,i){let n=this.state.models[r].jsonData,s=k3t[e];if(!s)throw new Error(`Type not found: ${e}`);return this.filterJSONItemsByType(n,s,i)}filterJSONItemsByType(r,e,i){let n=[];return Object.keys(r).forEach(s=>{let a=parseInt(s);r[a].type.toUpperCase()===e&&n.push(i?Ur({},r[a]):a)}),n}getItemsByIDJSON(r,e){let i=this.state.models[r].jsonData,n=[];return e.forEach(s=>n.push(Ur({},i[s]))),n}getPropertyJSON(r,e,i=!1,n){let s=this.getAllRelatedItemsOfTypeJSON(r,e,n),a=this.getItemsByIDJSON(r,s);return i&&a.forEach(o=>this.getJSONReferencesRecursively(r,o)),a}getJSONReferencesRecursively(r,e){if(e==null)return;let i=Object.keys(e);for(let n=0;n(n.type===5&&(n=this.getItemsByIDJSON(r,[n.value])[0],this.getJSONReferencesRecursively(r,n)),n))}getPropertyWebIfcAPI(r,e,i=!1,n){return this.getAllRelatedItemsOfTypeWebIfcAPI(r,e,n).map(a=>this.state.api.GetLine(r,a,i))}getAllItemsOfTypeWebIfcAPI(r,e,i){let n=[],s=this.state.api.GetLineIDsWithType(r,e);for(let a=0;athis.state.api.GetLine(r,a)):n}newIfcProject(r){return{expressID:r,type:"IFCPROJECT",children:[]}}getSpatialTreeChunks(r){let e={};return this.state.useJSON?(this.getChunksJSON(r,e,jl.aggregates),this.getChunksJSON(r,e,jl.spatial)):(this.getChunksWebIfcAPI(r,e,jl.aggregates),this.getChunksWebIfcAPI(r,e,jl.spatial)),e}getChunksJSON(r,e,i){this.getAllItemsOfTypeJSON(r,i.name,!0).forEach(s=>{this.saveChunk(e,i,s)})}getChunksWebIfcAPI(r,e,i){let n=this.state.api.GetLineIDsWithType(r,i.name);for(let s=0;sa.value);r[n]==null?r[n]=s:r[n]=r[n].concat(s)}getSpatialNode(r,e,i){this.getChildren(r,e,i,jl.aggregates),this.getChildren(r,e,i,jl.spatial)}getChildren(r,e,i,n){let s=i[e.expressID];if(s==null)return;let a=n.key;e[a]=s.map(o=>{let l=this.newNode(r,o);return this.getSpatialNode(r,l,i),l})}newNode(r,e){let i=this.getNodeType(r,e);return{expressID:e,type:i,children:[]}}getNodeType(r,e){if(this.state.useJSON)return this.state.models[r].jsonData[e].type;let i=this.state.models[r].types[e];return t8[i]}getAllRelatedItemsOfTypeJSON(r,e,i){let n=this.getAllItemsOfTypeJSON(r,i.name,!0),s=[];return n.forEach(a=>{this.isRelated(e,a,i)&&this.getRelated(a,i,s)}),s}getAllRelatedItemsOfTypeWebIfcAPI(r,e,i){let n=this.state.api.GetLineIDsWithType(r,i.name),s=[];for(let a=0;ai.push(s.value)):i.push(n.value)}isRelated(r,e,i){let n=e[i.related];return Array.isArray(n)?n.map(a=>a.value).includes(r):n.value===r}},Zk=class{constructor(r){this.state=r}getAllTypes(){for(let r in this.state.models){let e=this.state.models[r].types;Object.keys(e).length==0&&this.getAllTypesOfModel(parseInt(r))}}getAllTypesOfModel(r){let e=Object.keys(t8).map(n=>parseInt(n)),i=this.state.models[r].types;e.forEach(n=>{let s=this.state.api.GetLineIDsWithType(r,n);for(let a=0;a{n[l]&&s.push(...n[l])});let a=this.getCoordinates(r),o=this.modelCoordinates[r];i?s.forEach(l=>a.set([0,0,0],l)):s.forEach(l=>a.set([o[l],o[l+1],o[l+2]],l)),this.getAttributes(r).position.needsUpdate=!0}showAllItems(r){this.modelCoordinates[r]&&(this.resetCoordinates(r),this.getAttributes(r).position.needsUpdate=!0)}hideAllItems(r){this.getCoordinates(r).fill(0),this.getAttributes(r).position.needsUpdate=!0}initializeCoordinates(r){let e=this.getCoordinates(r);this.modelCoordinates[r]||(this.modelCoordinates[r]=new Float32Array(e))}resetCoordinates(r){let e=this.modelCoordinates[r];this.getCoordinates(r).set(e)}getCoordinates(r){return this.getAttributes(r).position.array}getAttributes(r){return this.state.models[r].mesh.geometry.attributes}},e8=class{constructor(){this.state={models:[],api:new Wk,useJSON:!1},this.BVH=new Jk,this.parser=new Yk(this.state,this.BVH),this.subsets=new Xk(this.state,this.BVH),this.properties=new $k(this.state),this.types=new Zk(this.state),this.hider=new Qk(this.state)}parse(r){return ot(this,null,function*(){let e=yield this.parser.parse(r);this.state.useJSON?this.disposeMemory():this.types.getAllTypes(),this.hider.processCoordinates(e.modelID);let i=new Kk(e.geometry,e.material);return i.setIFCManager(this),i})}setWasmPath(r){this.state.api.SetWasmPath(r)}applyWebIfcConfig(r){this.state.webIfcSettings=r}useJSONData(r=!0){this.state.useJSON=r,this.disposeMemory()}addModelJSONData(r,e){let i=this.state.models[r];i&&(i.jsonData=e)}disposeMemory(){this.state.api=null,this.state.api=new Wk}setupThreeMeshBVH(r,e,i){this.BVH.initializeMeshBVH(r,e,i)}close(r,e){this.state.api.CloseModel(r),e&&e.remove(this.state.models[r].mesh),delete this.state.models[r]}getExpressId(r,e){return this.properties.getExpressId(r,e)}getAllItemsOfType(r,e,i){return this.properties.getAllItemsOfType(r,e,i)}getItemProperties(r,e,i=!1){return this.properties.getItemProperties(r,e,i)}getPropertySets(r,e,i=!1){return this.properties.getPropertySets(r,e,i)}getTypeProperties(r,e,i=!1){return this.properties.getTypeProperties(r,e,i)}getMaterialsProperties(r,e,i=!1){return this.properties.getMaterialsProperties(r,e,i)}getIfcType(r,e){let i=this.state.models[r].types[e];return t8[i]}getSpatialStructure(r){return this.properties.getSpatialStructure(r)}getSubset(r,e){return this.subsets.getSubset(r,e)}removeSubset(r,e,i){this.subsets.removeSubset(r,e,i)}createSubset(r){return this.subsets.createSubset(r)}hideItems(r,e){this.hider.hideItems(r,e)}hideAllItems(r){this.hider.hideAllItems(r)}showItems(r,e){this.hider.showItems(r,e)}showAllItems(r){this.hider.showAllItems(r)}},MA=class extends li{constructor(r){super(r),this.ifcManager=new e8}load(r,e,i,n){let s=this,a=new ci(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(r,function(o){return ot(this,null,function*(){try{if(typeof o=="string")throw new Error("IFC files must be given as a buffer!");e(yield s.parse(o))}catch(l){n?n(l):console.error(l),s.manager.itemError(r)}})},i,n)}parse(r){return this.ifcManager.parse(r)}};var DA=class extends li{constructor(r){super(r)}load(r,e,i,n){let s=this,a=this.path===""?ks.extractUrlBase(r):this.path,o=new ci(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(r,function(l){try{e(s.parse(l,a))}catch(c){n?n(c):console.error(c),s.manager.itemError(r)}},i,n)}setMaterialOptions(r){return this.materialOptions=r,this}parse(r,e){let i=r.split(` +`),n={},s=/\s+/,a={};for(let l=0;l=0?c.substring(0,u):c;h=h.toLowerCase();let p=u>=0?c.substring(u+1):"";if(p=p.trim(),h==="newmtl")n={name:p},a[p]=n;else if(h==="ka"||h==="kd"||h==="ks"||h==="ke"){let d=p.split(s,3);n[h]=[parseFloat(d[0]),parseFloat(d[1]),parseFloat(d[2])]}else n[h]=p}let o=new r8(this.resourcePath||e,this.materialOptions);return o.setCrossOrigin(this.crossOrigin),o.setManager(this.manager),o.setMaterials(a),o}},r8=class{constructor(r="",e={}){this.baseUrl=r,this.options=e,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=this.options.side!==void 0?this.options.side:en,this.wrap=this.options.wrap!==void 0?this.options.wrap:gn}setCrossOrigin(r){return this.crossOrigin=r,this}setManager(r){this.manager=r}setMaterials(r){this.materialsInfo=this.convert(r),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(r){if(!this.options)return r;let e={};for(let i in r){let n=r[i],s={};e[i]=s;for(let a in n){let o=!0,l=n[a],c=a.toLowerCase();switch(c){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(l=[l[0]/255,l[1]/255,l[2]/255]),this.options&&this.options.ignoreZeroRGBs&&l[0]===0&&l[1]===0&&l[2]===0&&(o=!1);break;default:break}o&&(s[c]=l)}}return e}preload(){for(let r in this.materialsInfo)this.create(r)}getIndex(r){return this.nameLookup[r]}getAsArray(){let r=0;for(let e in this.materialsInfo)this.materialsArray[r]=this.create(e),this.nameLookup[e]=r,r++;return this.materialsArray}create(r){return this.materials[r]===void 0&&this.createMaterial_(r),this.materials[r]}createMaterial_(r){let e=this,i=this.materialsInfo[r],n={name:r,side:this.side};function s(o,l){return typeof l!="string"||l===""?"":/^https?:\/\//i.test(l)?l:o+l}function a(o,l){if(n[o])return;let c=e.getTextureParams(l,n),u=e.loadTexture(s(e.baseUrl,c.url));u.repeat.copy(c.scale),u.offset.copy(c.offset),u.wrapS=e.wrap,u.wrapT=e.wrap,(o==="map"||o==="emissiveMap")&&(u.encoding=yr),n[o]=u}for(let o in i){let l=i[o],c;if(l!=="")switch(o.toLowerCase()){case"kd":n.color=new Ve().fromArray(l).convertSRGBToLinear();break;case"ks":n.specular=new Ve().fromArray(l).convertSRGBToLinear();break;case"ke":n.emissive=new Ve().fromArray(l).convertSRGBToLinear();break;case"map_kd":a("map",l);break;case"map_ks":a("specularMap",l);break;case"map_ke":a("emissiveMap",l);break;case"norm":a("normalMap",l);break;case"map_bump":case"bump":a("bumpMap",l);break;case"map_d":a("alphaMap",l),n.transparent=!0;break;case"ns":n.shininess=parseFloat(l);break;case"d":c=parseFloat(l),c<1&&(n.opacity=c,n.transparent=!0);break;case"tr":c=parseFloat(l),this.options&&this.options.invertTrProperty&&(c=1-c),c>0&&(n.opacity=1-c,n.transparent=!0);break;default:break}}return this.materials[r]=new Ts(n),this.materials[r]}getTextureParams(r,e){let i={scale:new le(1,1),offset:new le(0,0)},n=r.split(/\s+/),s;return s=n.indexOf("-bm"),s>=0&&(e.bumpScale=parseFloat(n[s+1]),n.splice(s,2)),s=n.indexOf("-s"),s>=0&&(i.scale.set(parseFloat(n[s+1]),parseFloat(n[s+2])),n.splice(s,4)),s=n.indexOf("-o"),s>=0&&(i.offset.set(parseFloat(n[s+1]),parseFloat(n[s+2])),n.splice(s,4)),i.url=n.join(" ").trim(),i}loadTexture(r,e,i,n,s){let a=this.manager!==void 0?this.manager:oo,o=a.getHandler(r);o===null&&(o=new Es(a)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin);let l=o.load(r,i,n,s);return e!==void 0&&(l.mapping=e),l}};var V3t=/^[og]\s*(.+)?/,z3t=/^mtllib /,j3t=/^usemtl /,W3t=/^usemap /,Jwe=/\s+/,Qwe=new A,i8=new A,eRe=new A,tRe=new A,Wl=new A,CA=new Ve;function q3t(){let t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(r,e){if(this.object&&this.object.fromDeclaration===!1){this.object.name=r,this.object.fromDeclaration=e!==!1;return}let i=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:r||"",fromDeclaration:e!==!1,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(n,s){let a=this._finalize(!1);a&&(a.inherited||a.groupCount<=0)&&this.materials.splice(a.index,1);let o={index:this.materials.length,name:n||"",mtllib:Array.isArray(s)&&s.length>0?s[s.length-1]:"",smooth:a!==void 0?a.smooth:this.smooth,groupStart:a!==void 0?a.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(l){let c={index:typeof l=="number"?l:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return c.clone=this.clone.bind(c),c}};return this.materials.push(o),o},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(n){let s=this.currentMaterial();if(s&&s.groupEnd===-1&&(s.groupEnd=this.geometry.vertices.length/3,s.groupCount=s.groupEnd-s.groupStart,s.inherited=!1),n&&this.materials.length>1)for(let a=this.materials.length-1;a>=0;a--)this.materials[a].groupCount<=0&&this.materials.splice(a,1);return n&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),s}},i&&i.name&&typeof i.clone=="function"){let n=i.clone(0);n.inherited=!0,this.object.materials.push(n)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(r,e){let i=parseInt(r,10);return(i>=0?i-1:i+e/3)*3},parseNormalIndex:function(r,e){let i=parseInt(r,10);return(i>=0?i-1:i+e/3)*3},parseUVIndex:function(r,e){let i=parseInt(r,10);return(i>=0?i-1:i+e/2)*2},addVertex:function(r,e,i){let n=this.vertices,s=this.object.geometry.vertices;s.push(n[r+0],n[r+1],n[r+2]),s.push(n[e+0],n[e+1],n[e+2]),s.push(n[i+0],n[i+1],n[i+2])},addVertexPoint:function(r){let e=this.vertices;this.object.geometry.vertices.push(e[r+0],e[r+1],e[r+2])},addVertexLine:function(r){let e=this.vertices;this.object.geometry.vertices.push(e[r+0],e[r+1],e[r+2])},addNormal:function(r,e,i){let n=this.normals,s=this.object.geometry.normals;s.push(n[r+0],n[r+1],n[r+2]),s.push(n[e+0],n[e+1],n[e+2]),s.push(n[i+0],n[i+1],n[i+2])},addFaceNormal:function(r,e,i){let n=this.vertices,s=this.object.geometry.normals;Qwe.fromArray(n,r),i8.fromArray(n,e),eRe.fromArray(n,i),Wl.subVectors(eRe,i8),tRe.subVectors(Qwe,i8),Wl.cross(tRe),Wl.normalize(),s.push(Wl.x,Wl.y,Wl.z),s.push(Wl.x,Wl.y,Wl.z),s.push(Wl.x,Wl.y,Wl.z)},addColor:function(r,e,i){let n=this.colors,s=this.object.geometry.colors;n[r]!==void 0&&s.push(n[r+0],n[r+1],n[r+2]),n[e]!==void 0&&s.push(n[e+0],n[e+1],n[e+2]),n[i]!==void 0&&s.push(n[i+0],n[i+1],n[i+2])},addUV:function(r,e,i){let n=this.uvs,s=this.object.geometry.uvs;s.push(n[r+0],n[r+1]),s.push(n[e+0],n[e+1]),s.push(n[i+0],n[i+1])},addDefaultUV:function(){let r=this.object.geometry.uvs;r.push(0,0),r.push(0,0),r.push(0,0)},addUVLine:function(r){let e=this.uvs;this.object.geometry.uvs.push(e[r+0],e[r+1])},addFace:function(r,e,i,n,s,a,o,l,c){let u=this.vertices.length,h=this.parseVertexIndex(r,u),p=this.parseVertexIndex(e,u),d=this.parseVertexIndex(i,u);if(this.addVertex(h,p,d),this.addColor(h,p,d),o!==void 0&&o!==""){let f=this.normals.length;h=this.parseNormalIndex(o,f),p=this.parseNormalIndex(l,f),d=this.parseNormalIndex(c,f),this.addNormal(h,p,d)}else this.addFaceNormal(h,p,d);if(n!==void 0&&n!==""){let f=this.uvs.length;h=this.parseUVIndex(n,f),p=this.parseUVIndex(s,f),d=this.parseUVIndex(a,f),this.addUV(h,p,d),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(r){this.object.geometry.type="Points";let e=this.vertices.length;for(let i=0,n=r.length;i=7?(CA.setRGB(parseFloat(h[4]),parseFloat(h[5]),parseFloat(h[6])).convertSRGBToLinear(),e.colors.push(CA.r,CA.g,CA.b)):e.colors.push(void 0,void 0,void 0);break;case"vn":e.normals.push(parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3]));break;case"vt":e.uvs.push(parseFloat(h[1]),parseFloat(h[2]));break}}else if(u==="f"){let p=c.slice(1).trim().split(Jwe),d=[];for(let m=0,g=p.length;m0){let E=y.split("/");d.push(E)}}let f=d[0];for(let m=1,g=d.length-1;m1){let p=n[1].trim().toLowerCase();e.object.smooth=p!=="0"&&p!=="off"}else e.object.smooth=!0;let h=e.object.currentMaterial();h&&(h.smooth=e.object.smooth)}else{if(c==="\0")continue;console.warn('THREE.OBJLoader: Unexpected line: "'+c+'"')}}e.finalize();let s=new hr;if(s.materialLibraries=[].concat(e.materialLibraries),!(e.objects.length===1&&e.objects[0].geometry.vertices.length===0)===!0)for(let o=0,l=e.objects.length;o0&&m.setAttribute("normal",new ct(u.normals,3)),u.colors.length>0&&(f=!0,m.setAttribute("color",new ct(u.colors,3))),u.hasUVIndices===!0&&m.setAttribute("uv",new ct(u.uvs,2));let g=[];for(let E=0,b=h.length;E1){for(let E=0,b=h.length;E0){let o=new Vn({size:1,sizeAttenuation:!1}),l=new it;l.setAttribute("position",new ct(e.vertices,3)),e.colors.length>0&&e.colors[0]!==void 0&&(l.setAttribute("color",new ct(e.colors,3)),o.vertexColors=!0);let c=new rn(l,o);s.add(c)}return s}};var OA=new Ve,PA=class extends li{constructor(r){super(r),this.propertyNameMapping={},this.customPropertyMapping={}}load(r,e,i,n){let s=this,a=new ci(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(r,function(o){try{e(s.parse(o))}catch(l){n?n(l):console.error(l),s.manager.itemError(r)}},i,n)}setPropertyNameMapping(r){this.propertyNameMapping=r}setCustomPropertyNameMapping(r){this.customPropertyMapping=r}parse(r){function e(g){let y=/^ply([\s\S]*)end_header(\r\n|\r|\n)/,E="",b=0,x=y.exec(g);x!==null&&(E=x[1],b=new Blob([x[0]]).size);let S={comments:[],elements:[],headerLength:b,objInfo:""},D=E.split(/\r\n|\r|\n/),P;function _(w,F){let X={type:w[0]};return X.type==="list"?(X.name=w[3],X.countType=w[1],X.itemType=w[2]):X.name=w[1],X.name in F&&(X.name=F[X.name]),X}for(let w=0;wb.name);function E(b){for(let x=0,S=b.length;x=w.count&&(P++,_=0,w=y.elements[P],F=a(w.properties));let he=n(w.properties,H);c(E,w.name,he,F),_++}return l(E)}function l(g){let y=new it;g.indices.length>0&&y.setIndex(g.indices),y.setAttribute("position",new ct(g.vertices,3)),g.normals.length>0&&y.setAttribute("normal",new ct(g.normals,3)),g.uvs.length>0&&y.setAttribute("uv",new ct(g.uvs,2)),g.colors.length>0&&y.setAttribute("color",new ct(g.colors,3)),g.faceVertexUvs.length>0&&(y=y.toNonIndexed(),y.setAttribute("uv",new ct(g.faceVertexUvs,2)));for(let E of Object.keys(m.customPropertyMapping))g[E].length>0&&y.setAttribute(E,new ct(g[E],m.customPropertyMapping[E].length));return y.computeBoundingSphere(),y}function c(g,y,E,b){if(y==="vertex"){g.vertices.push(E[b.attrX],E[b.attrY],E[b.attrZ]),b.attrNX!==null&&b.attrNY!==null&&b.attrNZ!==null&&g.normals.push(E[b.attrNX],E[b.attrNY],E[b.attrNZ]),b.attrS!==null&&b.attrT!==null&&g.uvs.push(E[b.attrS],E[b.attrT]),b.attrR!==null&&b.attrG!==null&&b.attrB!==null&&(OA.setRGB(E[b.attrR]/255,E[b.attrG]/255,E[b.attrB]/255).convertSRGBToLinear(),g.colors.push(OA.r,OA.g,OA.b));for(let x of Object.keys(m.customPropertyMapping))for(let S of m.customPropertyMapping[x])g[x].push(E[S])}else if(y==="face"){let x=E.vertex_indices||E.vertex_index,S=E.texcoord;x.length===3?(g.indices.push(x[0],x[1],x[2]),S&&S.length===6&&(g.faceVertexUvs.push(S[0],S[1]),g.faceVertexUvs.push(S[2],S[3]),g.faceVertexUvs.push(S[4],S[5]))):x.length===4&&(g.indices.push(x[0],x[1],x[3]),g.indices.push(x[1],x[2],x[3]))}}function u(g,y){let E={},b=0;for(let x=0;xx.getInt8(P),size:1};case"uint8":case"uchar":return{read:P=>x.getUint8(P),size:1};case"int16":case"short":return{read:P=>x.getInt16(P,D),size:2};case"uint16":case"ushort":return{read:P=>x.getUint16(P,D),size:2};case"int32":case"int":return{read:P=>x.getInt32(P,D),size:4};case"uint32":case"uint":return{read:P=>x.getUint32(P,D),size:4};case"float32":case"float":return{read:P=>x.getFloat32(P,D),size:4};case"float64":case"double":return{read:P=>x.getFloat64(P,D),size:8}}}for(let x=0,S=g.length;x>5&31)/31,f=(N>>10&31)/31)}for(let N=1;N<=3;N++){let k=X+N*12,G=F*3*3+(N-1)*3;_[G]=u.getFloat32(k,!0),_[G+1]=u.getFloat32(k+4,!0),_[G+2]=u.getFloat32(k+8,!0),w[G]=H,w[G+1]=he,w[G+2]=C,m&&(g[G]=p,g[G+1]=d,g[G+2]=f)}}return P.setAttribute("position",new jt(_,3)),P.setAttribute("normal",new jt(w,3)),m&&(P.setAttribute("color",new jt(g,3)),P.hasColors=!0,P.alpha=x),P}function s(c){let u=new it,h=/solid([\s\S]*?)endsolid/g,p=/facet([\s\S]*?)endfacet/g,d=0,f=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,m=new RegExp("vertex"+f+f+f,"g"),g=new RegExp("normal"+f+f+f,"g"),y=[],E=[],b=new A,x,S=0,D=0,P=0;for(;(x=h.exec(c))!==null;){D=P;let _=x[0];for(;(x=p.exec(_))!==null;){let X=0,H=0,he=x[0];for(;(x=g.exec(he))!==null;)b.x=parseFloat(x[1]),b.y=parseFloat(x[2]),b.z=parseFloat(x[3]),H++;for(;(x=m.exec(he))!==null;)y.push(parseFloat(x[1]),parseFloat(x[2]),parseFloat(x[3])),E.push(b.x,b.y,b.z),X++,P++;H!==1&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+d),X!==3&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+d),d++}let w=D,F=P-D;u.addGroup(w,F,S),S++}return u.setAttribute("position",new ct(y,3)),u.setAttribute("normal",new ct(E,3)),u}function a(c){return typeof c!="string"?new TextDecoder().decode(c):c}function o(c){if(typeof c=="string"){let u=new Uint8Array(c.length);for(let h=0;h{let r={};return t.forEach((e,i)=>r[e]=i),r})(OI),aPt=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Vs=String.fromCharCode.bind(String),bRe=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):(t,r=e=>e)=>new Uint8Array(Array.prototype.slice.call(t,0).map(r)),_Re=t=>t.replace(/=/g,"").replace(/[+\/]/g,r=>r=="+"?"-":"_"),wRe=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),RRe=t=>{let r,e,i,n,s="",a=t.length%3;for(let o=0;o255||(i=t.charCodeAt(o++))>255||(n=t.charCodeAt(o++))>255)throw new TypeError("invalid character found");r=e<<16|i<<8|n,s+=OI[r>>18&63]+OI[r>>12&63]+OI[r>>6&63]+OI[r&63]}return a?s.slice(0,a-3)+"===".substring(a):s},f8=nPt?t=>btoa(t):GT?t=>Buffer.from(t,"binary").toString("base64"):RRe,p8=GT?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let i=0,n=t.length;ir?_Re(p8(t)):p8(t),oPt=t=>{if(t.length<2){var r=t.charCodeAt(0);return r<128?t:r<2048?Vs(192|r>>>6)+Vs(128|r&63):Vs(224|r>>>12&15)+Vs(128|r>>>6&63)+Vs(128|r&63)}else{var r=65536+(t.charCodeAt(0)-55296)*1024+(t.charCodeAt(1)-56320);return Vs(240|r>>>18&7)+Vs(128|r>>>12&63)+Vs(128|r>>>6&63)+Vs(128|r&63)}},lPt=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,MRe=t=>t.replace(lPt,oPt),xRe=GT?t=>Buffer.from(t,"utf8").toString("base64"):ERe?t=>p8(ERe.encode(t)):t=>f8(MRe(t)),kT=(t,r=!1)=>r?_Re(xRe(t)):xRe(t),IRe=t=>kT(t,!0),cPt=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,uPt=t=>{switch(t.length){case 4:var r=(7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3),e=r-65536;return Vs((e>>>10)+55296)+Vs((e&1023)+56320);case 3:return Vs((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return Vs((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},DRe=t=>t.replace(cPt,uPt),CRe=t=>{if(t=t.replace(/\s+/g,""),!aPt.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(t.length&3));let r,e="",i,n;for(let s=0;s>16&255):n===64?Vs(r>>16&255,r>>8&255):Vs(r>>16&255,r>>8&255,r&255);return e},m8=iPt?t=>atob(wRe(t)):GT?t=>Buffer.from(t,"base64").toString("binary"):CRe,ARe=GT?t=>bRe(Buffer.from(t,"base64")):t=>bRe(m8(t),r=>r.charCodeAt(0)),ORe=t=>ARe(PRe(t)),hPt=GT?t=>Buffer.from(t,"base64").toString("utf8"):TRe?t=>TRe.decode(ARe(t)):t=>DRe(m8(t)),PRe=t=>wRe(t.replace(/[-_]/g,r=>r=="-"?"+":"/")),d8=t=>hPt(PRe(t)),pPt=t=>{if(typeof t!="string")return!1;let r=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(r)||!/[^\s0-9a-zA-Z\-_]/.test(r)},NRe=t=>({value:t,enumerable:!1,writable:!0,configurable:!0}),LRe=function(){let t=(r,e)=>Object.defineProperty(String.prototype,r,NRe(e));t("fromBase64",function(){return d8(this)}),t("toBase64",function(r){return kT(this,r)}),t("toBase64URI",function(){return kT(this,!0)}),t("toBase64URL",function(){return kT(this,!0)}),t("toUint8Array",function(){return ORe(this)})},FRe=function(){let t=(r,e)=>Object.defineProperty(Uint8Array.prototype,r,NRe(e));t("toBase64",function(r){return kA(this,r)}),t("toBase64URI",function(){return kA(this,!0)}),t("toBase64URL",function(){return kA(this,!0)})},dPt=()=>{LRe(),FRe()},HRe={version:SRe,VERSION:rPt,atob:m8,atobPolyfill:CRe,btoa:f8,btoaPolyfill:RRe,fromBase64:d8,toBase64:kT,encode:kT,encodeURI:IRe,encodeURL:IRe,utob:MRe,btou:DRe,decode:d8,isValid:pPt,fromUint8Array:kA,toUint8Array:ORe,extendString:LRe,extendUint8Array:FRe,extendBuiltins:dPt};var $l=Un(tMe(),1);var GA=class extends Sp{constructor(r,e={}){let i=e.font;if(i===void 0)super();else{let n=i.generateShapes(r,e.size);e.depth=e.height!==void 0?e.height:50,e.bevelThickness===void 0&&(e.bevelThickness=10),e.bevelSize===void 0&&(e.bevelSize=8),e.bevelEnabled===void 0&&(e.bevelEnabled=!1),super(n,e)}this.type="TextGeometry"}};var VA="BYLAYER",g8="BYBLOCK";var T0=["INSERT","DIMENSION"];var wTr=Un(aMe(),1);var zA=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];var VT=class{constructor(){this.pointer=0;this.eof=!1}};var oMe=1e3,BI=class extends VT{constructor(e){super();this.int8Array=new Int8Array(oMe);this.caches=new Map;this.reader=new Df(e);let i=this.reader.readBytes(22),n="";for(let s=0;s<18;s++)n+=String.fromCharCode(i[s]);if(n!="AutoCAD Binary DXF")throw new Error("Invalid DXF file")}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file.");let e={code:this.reader.readInt16()};return e.value=this.parseGroupValue(e.code),e.code===0&&e.value==="EOF"&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return this.eof?!1:!this.reader.IsEnd()}isEOF(){return this.eof}parseGroupValue(e){if(e>=0&&e<=9)return this.readNullTerminatedString();if(e>=10&&e<=59)return this.reader.readFloat64();if(e>=60&&e<=79)return this.reader.readInt16();if(e>=90&&e<=99)return this.reader.readInt32();if(e>=100&&e<=109)return this.readNullTerminatedString();if(e>=110&&e<=149)return this.reader.readFloat64();if(e>=160&&e<=169)return this.reader.readInt64();if(e>=170&&e<=179)return this.reader.readInt16();if(e>=210&&e<=239)return this.reader.readFloat64();if(e>=270&&e<=289)return this.reader.readInt16();if(e>=290&&e<=299)return this.reader.readInt8()>0;if(e>=300&&e<=309)return this.readNullTerminatedString();if(e>=310&&e<=319){let i=this.ReadBinaryData();return lMe(i)}if(e>=320&&e<=369)return this.readNullTerminatedString();if(e>=370&&e<=389)return this.reader.readInt16();if(e>=390&&e<=399)return this.readNullTerminatedString();if(e>=400&&e<=409)return this.reader.readInt16();if(e>=410&&e<=419)return this.readNullTerminatedString();if(e>=420&&e<=429)return this.reader.readInt32();if(e>=430&&e<=439)return this.readNullTerminatedString();if(e>=440&&e<=459)return this.reader.readInt32();if(e>=460&&e<=469)return this.reader.readFloat64();if(e>=470&&e<=481)return this.readNullTerminatedString();if(e===999)throw new Error("The comment group 999, is not used in binary DXF files at byte address!");if(e===1004){let i=this.ReadBinaryData();return lMe(i)}if(e>=1e3&&e<=1009)return this.readNullTerminatedString();if(e>=1010&&e<=1059)return this.reader.readFloat64();if(e>=1060&&e<=1070)return this.reader.readInt16();if(e===1071)return this.reader.readInt32();ne.warn(`[DxfBinReader] Invalid code '${e}' at byte address ${this.reader.getPosition()}`)}readNullTerminatedString(){var o;this.decoder||(this.decoder=new TextDecoder("utf-8"));let e=0,i=this.reader.readInt8();for(;i!==0;)this.int8Array[e++]=i,i=this.reader.readInt8();if(e===0)return"";if(e>oMe)return ne.warn(`[DxfBinReader] Failed to read string! The number of bytes is ${e} !`),"";let n=this.int8Array.subarray(0,e),s=n.toString();if(this.caches.get(s))return this.caches.get(s);let a=(o=this.decoder)==null?void 0:o.decode(n);return this.caches.set(s,a),a}ReadBinaryData(){let e=this.reader.readUint8();return this.reader.readBytes(e)}};function lMe(t){return Array.prototype.map.call(t,r=>("00"+r.toString(16)).slice(-2)).join("")}var zT=class extends VT{constructor(e){super();this.data=e}next(){if(!this.hasNext())throw this.eof?new Error("Cannot call 'next' after EOF group has been read"):new Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this.data[this.pointer]);let e={code:parseInt(this.data[this.pointer])};return this.pointer++,e.value=_Pt(e.code,this.data[this.pointer].trim()),this.pointer++,e.code===0&&e.value==="EOF"&&(this.eof=!0),this.lastReadGroup=e,e}hasNext(){return!(this.eof||this.pointer>this.data.length-2)}isEOF(){return this.eof}};function _Pt(t,r){return t>=0&&t<=9?r:t>=10&&t<=59?parseFloat(r):t>=60&&t<=99?parseInt(r):t>=100&&t<=109?r:t>=110&&t<=149?parseFloat(r):t>=160&&t<=179?parseInt(r):t>=210&&t<=239?parseFloat(r):t>=270&&t<=289?parseInt(r):t>=290&&t<=299?wPt(r):t>=300&&t<=369?r:t>=370&&t<=389?parseInt(r):t>=390&&t<=399?r:t>=400&&t<=409?parseInt(r):t>=410&&t<=419?r:t>=420&&t<=429?parseInt(r):t>=430&&t<=439?r:t>=440&&t<=459?parseInt(r):t>=460&&t<=469?parseFloat(r):t>=470&&t<=481||t===999||t>=1e3&&t<=1009?r:t>=1010&&t<=1059?parseFloat(r):t>=1060&&t<=1071?parseInt(r):(ne.info("WARNING: Group code does not have a defined type: %j",{code:t,value:r}),r)}function wPt(t){if(t==="0")return!1;if(t==="1")return!0;throw TypeError("String '"+t+"' cannot be cast to Boolean type")}var hMe=Un(Yl(),1);var RPt="OriginalHandle",MPt="OriginalType",DPt="Outlines",cMe=["PROXY","REGION","INSERT","HATCH"];function E0(t){return zA[t]}function ft(t){let r={},e=t.lastReadGroup,i=e.code;if(r.x=e.value,i+=10,e=t.next(),e.code!=i)throw new Error(`Expected code for point value to be ${i} but got ${e.code}`);return r.y=e.value,i+=10,e=t.next(),e.code!=i||(r.z=e.value,t.next()),r}function uMe(t,r){let e=t.lastReadGroup,i=[];for(let n=0;n<16;n++){if(e.code!==r)throw new Error(`Expected code for matrix value to be ${r} but got ${e.code}`);i.push(e.value),e=t.next()}return i}function fr(t,r){switch(r.code){case 0:t.type=r.value;break;case 5:t.handle=r.value;break;case 6:t.lineType=r.value.toUpperCase();break;case 8:t.layer=r.value;break;case 48:t.lineTypeScale=r.value,t.lineTypeScale<=0&&(t.lineTypeScale=1);break;case 60:t.visible=r.value===0;break;case 62:t.isTrueColor||(t.colorIndex=r.value,t.colorIndex<0&&ne.warn("[DxfParser] a negative value of colorIndex indicates that the layer is turned off"),t.color=E0(Math.abs(r.value)));break;case 67:t.inPaperSpace=r.value!==0;break;case 100:break;case 330:t.ownerHandle=r.value;break;case 347:t.materialObjectHandle=r.value;break;case 370:t.lineweight=r.value;break;case 410:t.layoutName=r.value;break;case 420:t.isTrueColor=!0,t.color=r.value;break;case 1e3:if(r.value&&r.value.includes(RPt)){let e=r.value.split(":").map(i=>i.trim());t.extendedData||(t.extendedData={}),t.extendedData.originalHandle=e[1]}if(t.extendedData&&t.extendedData.outlines)try{t.extendedData.outlines=JSON.parse(r.value||"[]")}catch(e){t.extendedData.outlines=void 0}if(r.value&&r.value.includes(DPt)&&(t.extendedData||(t.extendedData={}),t.extendedData.outlines=[]),r.value&&r.value.includes(MPt)){let e=r.value.split(":").map(i=>i.trim());t.extendedData||(t.extendedData={}),t.extendedData.originalType=e[1]}break;case 1001:break;default:return!1}return!0}function ah(t,r){switch(r.code){case 0:t.type=r.value;break;case 5:t.handle=r.value;break;case 330:t.ownerHandle=r.value;break;case 1e3:break;case 1001:break;default:return!1}return!0}var GI=class{constructor(){this.ForEntityName="3DFACE"}parseEntity(r,e){let i={type:e.value,vertices:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 70:{if(e.value!==0){let n=Math.log2(e.value)-1;i.vertices.splice(n,1)}e=r.next()}break;case 10:i.vertices=CPt(r,e),e=r.lastReadGroup;break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};function CPt(t,r){let e=[],i=!1,n=!1,s=4;for(let a=0;a<=s;a++){let o={};for(;!t.isEOF()&&!(r.code===0||n);){switch(r.code){case 10:case 11:case 12:case 13:if(i){n=!0;continue}o.x=r.value,i=!0;break;case 20:case 21:case 22:case 23:o.y=r.value;break;case 30:case 31:case 32:case 33:o.z=r.value;break;default:return e}r=t.next()}(0,hMe.isEmpty)(o)||e.push(o),i=!1,n=!1}return e}var VI=class{constructor(){this.ForEntityName="ARC"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.center=ft(r),e=r.lastReadGroup;break;case 40:i.radius=e.value,e=r.next();break;case 50:i.startAngle=Math.PI/180*e.value,e=r.next();break;case 51:i.endAngle=Math.PI/180*e.value,i.angleLength=i.endAngle-i.startAngle,e=r.next();break;case 210:i.extrusionDirectionX=e.value,e=r.next();break;case 220:i.extrusionDirectionY=e.value,e=r.next();break;case 230:i.extrusionDirectionZ=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var zI=class{constructor(){this.ForEntityName="ATTDEF"}parseEntity(r,e){let i={type:e.value,xScale:1,textStyle:"STANDARD"};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 1:i.text=e.value,e=r.next();break;case 2:i.tag=e.value,e=r.next();break;case 3:i.prompt=e.value,e=r.next();break;case 7:i.textStyle=e.value,e=r.next();break;case 10:i.startPoint=ft(r),e=r.lastReadGroup;break;case 11:i.endPoint=ft(r),e=r.lastReadGroup;break;case 39:i.thickness=e.value,e=r.next();break;case 40:i.textHeight=e.value,e=r.next();break;case 41:i.xScale=e.value,e=r.next();break;case 50:i.rotation=e.value,e=r.next();break;case 51:i.obliqueAngle=e.value,e=r.next();break;case 70:i.invisible=!!(e.value&1),i.constant=!!(e.value&2),i.verificationRequired=!!(e.value&4),i.preset=!!(e.value&8),e=r.next();break;case 71:i.backwards=!!(e.value&2),i.mirrored=!!(e.value&4),e=r.next();break;case 72:i.horizontalJustification=e.value,e=r.next();break;case 73:i.fieldLength=e.value,e=r.next();break;case 74:i.verticalJustification=e.value,e=r.next();break;case 100:e=r.next();break;case 210:i.extrusionDirectionX=e.value,e=r.next();break;case 220:i.extrusionDirectionY=e.value,e=r.next();break;case 230:i.extrusionDirectionZ=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var jI=class{constructor(){this.ForEntityName="ATTRIB"}parseEntity(r,e){let i={type:e.value,xScale:1,textStyle:"STANDARD"};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 1:i.text=e.value,e=r.next();break;case 2:i.tag=e.value,e=r.next();break;case 3:i.prompt=e.value,e=r.next();break;case 7:i.textStyle=e.value,e=r.next();break;case 10:i.startPoint=ft(r),e=r.lastReadGroup;break;case 11:i.endPoint=ft(r),e=r.lastReadGroup;break;case 39:i.thickness=e.value,e=r.next();break;case 40:i.textHeight=e.value,e=r.next();break;case 41:i.xScale=e.value,e=r.next();break;case 50:i.rotation=e.value,e=r.next();break;case 51:i.obliqueAngle=e.value,e=r.next();break;case 70:i.invisible=!!(e.value&1),i.constant=!!(e.value&2),i.verificationRequired=!!(e.value&4),i.preset=!!(e.value&8),e=r.next();break;case 71:i.backwards=!!(e.value&2),i.mirrored=!!(e.value&4),e=r.next();break;case 72:i.horizontalJustification=e.value,e=r.next();break;case 73:i.fieldLength=e.value,e=r.next();break;case 74:i.verticalJustification=e.value,e=r.next();break;case 100:e=r.next();break;case 210:i.extrusionDirectionX=e.value,e=r.next();break;case 220:i.extrusionDirectionY=e.value,e=r.next();break;case 230:i.extrusionDirectionZ=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var WI=class{constructor(){this.ForEntityName="CIRCLE"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.center=ft(r),e=r.lastReadGroup;break;case 40:i.radius=e.value,e=r.next();break;case 50:i.startAngle=Math.PI/180*e.value,e=r.next();break;case 51:let n=Math.PI/180*e.value;n=0&&e.push({angle:s,origin:a,delta:o,dashPattern:c})}return e}function LPt(t,r){let e=[],i=r.next();for(;e.length0&&(i.colorIndex=e.value,i.color=E0(Math.abs(e.value)))))}e=r.next();break;default:fr(i,e),e=r.next();break}return i}};function FPt(t){switch(t){case 40:return"DIMSCALE";case 41:return"DIMASZ";case 42:return"DIMEXO";case 44:return"DIMEXE";case 75:return"DIMSE1";case 76:return"DIMSE2";case 77:return"DIMTAD";case 140:return"DIMTXT";case 144:return"DIMLFAC";case 147:return"DIMGAP";case 176:return"DIMCLRD";case 178:return"DIMCLRT";case 271:return"DIMDEC";case 341:return"DIMLDRBLK";default:return null}}var KI=class{constructor(){this.ForEntityName="LINE"}parseEntity(r,e){let i={type:e.value,vertices:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.vertices.unshift(ft(r)),e=r.lastReadGroup;break;case 11:i.vertices.push(ft(r)),e=r.lastReadGroup;break;case 210:i.extrusionDirection=ft(r),e=r.lastReadGroup;break;case 100:e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var JI=class{constructor(){this.ForEntityName="LWPOLYLINE"}parseEntity(r,e){let i={type:e.value,vertices:[]},n=0;for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 38:i.elevation=e.value,e=r.next();break;case 39:i.thickness=e.value,e=r.next();break;case 70:i.shape=(e.value&1)===1,i.hasContinuousLinetypePattern=(e.value&128)===128,e=r.next();break;case 90:n=e.value,e=r.next();break;case 10:i.vertices.push(...HPt(n,r)),e=r.lastReadGroup;break;case 43:e.value!==0&&(i.constantWidth=e.value),e=r.next();break;case 210:i.extrusionDirectionX=e.value,e=r.next();break;case 220:i.extrusionDirectionY=e.value,e=r.next();break;case 230:i.extrusionDirectionZ=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};function HPt(t,r){if(!t||t<=0)throw Error("n must be greater than 0 verticies");let e=[],i=!1,n=!1,s=r.lastReadGroup,a={};for(;!r.isEOF()&&!(s.code===0||n);)switch(s.code){case 10:if(i){n=!0;continue}a.x=s.value,i=!0,s=r.next();break;case 20:a.y=s.value,s=r.next();break;case 30:a.z=s.value,s=r.next();break;case 40:a.startWidth=s.value,s=r.next();break;case 41:a.endWidth=s.value,s=r.next();break;case 42:s.value!=0&&(a.bulge=s.value),s=r.next();break;default:return i&&e.push(a),e}return e.push(a),i=!1,n=!1,e}var QI=class{constructor(){this.ForEntityName="MULTILEADER"}parseEntity(r,e){let i={type:e.value};i.contextData={leaders:[]},e=r.next();function n(){for(;!r.isEOF();)switch(e.code){case 0:return;case 340:i.leaderStyleId=e.value,e=r.next();break;case 170:i.leaderLineType=e.value,e=r.next();break;case 91:i.leaderLineColor=e.value,e=r.next();break;case 341:i.leaderLineTypeId=e.value,e=r.next();break;case 171:i.leaderLineWeight=e.value,e=r.next();break;case 41:i.doglegLength=e.value,e=r.next();break;case 290:i.enableLanding=e.value,e=r.next();break;case 291:i.enableDogLeg=e.value,e=r.next();break;case 342:i.arrowHeadId=e.value,e=r.next();break;case 42:i.arrowHeadSize=e.value,e=r.next();break;case 172:i.contentType=e.value,e=r.next();break;case 173:i.textLeftAttachmentType=e.value,e=r.next();break;case 95:i.textLeftAttachmentType=e.value,e=r.next();break;case 174:i.textAngleType=e.value,e=r.next();break;case 175:i.textAlignmentType=e.value,e=r.next();break;case 343:i.textStyleId=e.value,e=r.next();break;case 92:i.textColor=e.value,e=r.next();break;case 292:i.enableFrameText=e.value,e=r.next();break;case 344:i.blockContentId=e.value,e=r.next();break;case 93:i.blockContentColor=e.value,e=r.next();break;case 10:i.blockContentScale=ft(r),e=r.lastReadGroup;break;case 43:i.blockContentRotation=e.value,e=r.next();break;case 176:i.blockContentConnectionType=e.value,e=r.next();break;case 293:i.enableAnotationScale=e.value,e=r.next();break;case 94:i.arrowHeadIndex=e.value,e=r.next();break;case 177:i.blockAttributeIndex=e.value,e=r.next();break;case 44:i.blockAttributeWidth=e.value,e=r.next();break;case 302:i.blockAttributeTextString=e.value,e=r.next();break;case 294:i.textDirectionNegative=e.value,e=r.next();break;case 178:i.textAlignInIPE=e.value,e=r.next();break;case 179:i.textAttachmentPoint=e.value,e=r.next();break;case 271:i.textAttachmentDirectionMText=e.value,e=r.next();break;case 272:i.textAttachmentDirectionBottom=e.value,e=r.next();break;case 273:i.textAttachmentDirectionTop=e.value,e=r.next();break;case 300:s(),e=r.lastReadGroup;break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}}function s(){for(;!r.isEOF();)switch(e.code){case 40:i.contextData.contentScale=e.value,e=r.next();break;case 10:i.contextData.contentBasePosition=ft(r),e=r.lastReadGroup;break;case 145:i.contextData.landingGap=e.value,e=r.next();break;case 290:i.contextData.hasMText=e.value,e=r.next();break;case 304:i.contextData.defaultTextContents=e.value,e=r.next();break;case 11:i.contextData.textNormalDirection=ft(r),e=r.lastReadGroup;break;case 12:i.contextData.textLocation=ft(r),e=r.lastReadGroup;break;case 13:i.contextData.textDirection=ft(r),e=r.lastReadGroup;break;case 140:i.contextData.arrowHeadSize=e.value,e=r.next();break;case 41:i.contextData.textHeight=e.value,e=r.next();break;case 42:i.contextData.textRotation=e.value,e=r.next();break;case 43:i.contextData.textWidth=e.value,e=r.next();break;case 44:e=r.next();break;case 45:i.contextData.textLineSpacingFactor=e.value,e=r.next();break;case 90:i.contextData.textColor=e.value,e=r.next();break;case 170:i.contextData.textLineSpacingStyle=e.value,e=r.next();break;case 171:i.contextData.textAttachment=e.value,e=r.next();break;case 172:i.contextData.textFlowDirection=e.value,e=r.next();break;case 141:i.contextData.textBackgroundScaleFactor=e.value,e=r.next();break;case 92:i.contextData.textBackgroundTransparency=e.value,e=r.next();break;case 291:i.contextData.textBackgroundColorOn=e.value,e=r.next();break;case 292:i.contextData.textBackgroundFillOn=e.value,e=r.next();break;case 293:i.contextData.textUseAutoHeight=e.value,e=r.next();break;case 173:i.contextData.textColumnType=e.value,e=r.next();break;case 142:i.contextData.textColumnWidth=e.value,e=r.next();break;case 143:i.contextData.textColumnGutterWidth=e.value,e=r.next();break;case 144:i.contextData.textColumnHeight=e.value,e=r.next();break;case 295:i.contextData.textUseWordBreak=e.value,e=r.next();break;case 296:i.contextData.hasBlock=e.value,e=r.next();break;case 341:i.contextData.blockContentId=e.value,e=r.next();break;case 14:i.contextData.blockContentNormalDirection=ft(r),e=r.lastReadGroup;break;case 15:i.contextData.blockContentPosition=ft(r),e=r.lastReadGroup;break;case 16:i.contextData.blockContentScale=e.value,e=r.next();break;case 46:i.contextData.blockContentRotation=e.value,e=r.next();break;case 93:i.contextData.blockContentColor=e.value,e=r.next();break;case 47:i.contextData.blockTransformationMatrix=uMe(r,47),e=r.lastReadGroup;break;case 110:i.contextData.planeOriginPoint=ft(r),e=r.lastReadGroup;break;case 111:i.contextData.planeXAxisDirection=ft(r),e=r.lastReadGroup;break;case 112:i.contextData.planeYAxisDirection=ft(r),e=r.lastReadGroup;break;case 297:i.contextData.planeNormalReversed=e.value,e=r.next();break;case 301:return;case 302:a(),e=r.lastReadGroup;break;default:e=r.next();break}}function a(){let l={leaderLines:[]};for(i.contextData.leaders.push(l);!r.isEOF();)switch(e.code){case 290:l.hasSetLastLeaderLinePoint=e.value,e=r.next();break;case 291:l.hasSetDoglegVector=e.value,e=r.next();break;case 10:l.lastLeaderLinePoint=ft(r),e=r.lastReadGroup;break;case 11:l.doglegVector=ft(r),e=r.lastReadGroup;break;case 90:l.leaderBranchIndex=e.value,e=r.next();break;case 40:l.doglegLength=e.value,e=r.next();break;case 303:return;case 304:o(),e=r.lastReadGroup;break;default:e=r.next();break}}function o(){let l=i.contextData.leaders[i.contextData.leaders.length-1],c={vertices:[[]]};for(l.leaderLines.push(c);!r.isEOF();)switch(e.code){case 10:c.vertices[0].push(ft(r)),e=r.lastReadGroup;break;case 305:return;default:e=r.next();break}}return n(),i}};var eS=class{constructor(){this.ForEntityName="MTEXT"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 3:i.text?i.text+=e.value:i.text=e.value,e=r.next();break;case 1:i.text?i.text+=e.value:i.text=e.value,e=r.next();break;case 10:i.position=ft(r),e=r.lastReadGroup;break;case 7:i.textStyle=e.value,e=r.next();break;case 44:i.lineSpaceFactor=e.value,e=r.next();break;case 11:i.directionVector=ft(r),e=r.lastReadGroup;break;case 40:i.height=e.value,e=r.next();break;case 41:i.width=e.value,e=r.next();break;case 50:i.rotation=e.value,e=r.next();break;case 71:i.attachmentPoint=e.value,e=r.next();break;case 72:i.drawingDirection=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var tS=class{constructor(){this.ForEntityName="OLE2FRAME"}parseEntity(r,e){let i={type:e.value,binaryData:""};for(e=r.next();e.value!=="OLE"&&e.code!==0;)switch(e.code){case 3:i.documentType=e.value,e=r.next();break;case 70:i.version=e.value,e=r.next();break;case 10:i.leftUpX=e.value,e=r.next();break;case 20:i.leftUpY=e.value,e=r.next();break;case 30:i.leftUpZ=e.value,e=r.next();break;case 11:i.rightDownX=e.value,e=r.next();break;case 21:i.rightDownY=e.value,e=r.next();break;case 31:i.rightDownZ=e.value,e=r.next();break;case 90:i.lengthOfBinaryData=e.value,e=r.next();break;case 310:i.binaryData+=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var rS=class{constructor(){this.ForEntityName="POINT"}parseEntity(r,e){let n={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:n.position=ft(r),e=r.lastReadGroup;break;case 39:n.thickness=e.value,e=r.next();break;case 210:n.extrusionDirection=ft(r),e=r.lastReadGroup;break;case 100:e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(n,e),e=r.next();break}return n}};var iS=class{constructor(){this.ForEntityName="VERTEX"}parseEntity(r,e){var i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.x=e.value,e=r.next();break;case 20:i.y=e.value,e=r.next();break;case 30:i.z=e.value,e=r.next();break;case 40:e=r.next();break;case 41:e=r.next();break;case 42:e.value!=0&&(i.bulge=e.value),e=r.next();break;case 70:i.curveFittingVertex=(e.value&1)!==0,i.curveFitTangent=(e.value&2)!==0,i.splineVertex=(e.value&8)!==0,i.splineControlPoint=(e.value&16)!==0,i.threeDPolylineVertex=(e.value&32)!==0,i.threeDPolylineMesh=(e.value&64)!==0,i.polyfaceMeshVertex=(e.value&128)!==0,e=r.next();break;case 50:e=r.next();break;case 71:i.faceA=e.value,e=r.next();break;case 72:i.faceB=e.value,e=r.next();break;case 73:i.faceC=e.value,e=r.next();break;case 74:i.faceD=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var nS=class{constructor(){this.ForEntityName="POLYLINE"}parseEntity(r,e){var i={type:e.value,vertices:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:e=r.next();break;case 20:e=r.next();break;case 30:e=r.next();break;case 39:e=r.next(),i.thickness=e.value;break;case 40:e=r.next();break;case 41:e=r.next();break;case 70:i.shape=(e.value&1)!==0,i.includesCurveFitVertices=(e.value&2)!==0,i.includesSplineFitVertices=(e.value&4)!==0,i.is3dPolyline=(e.value&8)!==0,i.is3dPolygonMesh=(e.value&16)!==0,i.is3dPolygonMeshClosed=(e.value&32)!==0,i.isPolyfaceMesh=(e.value&64)!==0,i.hasContinuousLinetypePattern=(e.value&128)!==0,e=r.next();break;case 71:e=r.next();break;case 72:e=r.next();break;case 73:e=r.next();break;case 74:e=r.next();break;case 75:e=r.next();break;case 210:i.extrusionDirection=ft(r),e=r.lastReadGroup;break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i.vertices=UPt(r,e),i}};function UPt(t,r){let e=new iS,i=[];for(;!t.isEOF();)if(r.code===0){if(r.value==="VERTEX")i.push(e.parseEntity(t,r)),r=t.lastReadGroup;else if(r.value==="SEQEND"){BPt(t,r);break}}return i}function BPt(t,r){let e={type:r.value};for(r=t.next();!t.isEOF()&&r.code!==0;)if(r.code===101)for(;r.code!=0;)r=t.next();else fr(e,r),r=t.next();return e}var sS=class{constructor(){this.ForEntityName="RAY"}parseEntity(r,e){let i={type:e.value,vertices:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.vertices.unshift(ft(r)),e=r.lastReadGroup;break;case 11:i.directionVector=ft(r),e=r.lastReadGroup;break;case 100:e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var aS=class{constructor(){this.ForEntityName="REGION"}parseEntity(r,e){let n={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 70:n.modelerVersion=e.value,e=r.next();break;case 1:n.proprietaryData=e.value,e=r.next();break;case 3:n.proprietaryData+=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(n,e),e=r.next();break}return n}};var oS=class{constructor(){this.ForEntityName="SEQEND"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case-2:break;default:fr(i,e),e=r.next();break}return i}};var lS=class{constructor(){this.ForEntityName="SOLID"}parseEntity(r,e){let i={type:e.value,points:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.points[0]=ft(r),e=r.lastReadGroup;break;case 11:i.points[1]=ft(r),e=r.lastReadGroup;break;case 12:i.points[2]=ft(r),e=r.lastReadGroup;break;case 13:i.points[3]=ft(r),e=r.lastReadGroup;break;case 210:i.extrusionDirection=ft(r),e=r.lastReadGroup;break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var cS=class{constructor(){this.ForEntityName="SPLINE"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.controlPoints||(i.controlPoints=[]),i.controlPoints.push(ft(r)),e=r.lastReadGroup;break;case 11:i.fitPoints||(i.fitPoints=[]),i.fitPoints.push(ft(r)),e=r.lastReadGroup;break;case 12:i.startTangent=ft(r),e=r.lastReadGroup;break;case 13:i.endTangent=ft(r),e=r.lastReadGroup;break;case 40:i.knotValues||(i.knotValues=[]),i.knotValues.push(e.value),e=r.next();break;case 70:e.value&1&&(i.closed=!0),e.value&2&&(i.periodic=!0),e.value&4&&(i.rational=!0),e.value&8&&(i.planar=!0),e.value&16&&(i.planar=!0,i.linear=!0),e=r.next();break;case 71:i.degreeOfSplineCurve=e.value,e=r.next();break;case 72:i.numberOfKnots=e.value,e=r.next();break;case 73:i.numberOfControlPoints=e.value,e=r.next();break;case 74:i.numberOfFitPoints=e.value,e=r.next();break;case 210:i.normalVector=ft(r),e=r.lastReadGroup;break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var uS=class{constructor(){this.ForEntityName="TEXT"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.startPoint=ft(r),e=r.lastReadGroup;break;case 11:i.endPoint=ft(r),e=r.lastReadGroup;break;case 40:i.textHeight=e.value,e=r.next();break;case 41:i.xScale=e.value,e=r.next();break;case 50:i.rotation=e.value,e=r.next();break;case 1:i.text=e.value,e=r.next();break;case 72:i.halign=e.value,e=r.next();break;case 73:i.valign=e.value,e=r.next();break;case 7:i.textStyle=e.value,e=r.next();break;case 71:i.mirrored=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var hS=class{constructor(){this.ForEntityName="VIEWPORT"}parseEntity(r,e){let i={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 68:i.viewportStatus=e.value,e=r.next();break;case 40:i.width_paperSpace=e.value,e=r.next();break;case 41:i.height_paperSpace=e.value,e=r.next();break;case 69:i.viewportId=e.value,e=r.next();break;case 10:i.centerPoint=ft(r),e=r.lastReadGroup;break;case 12:i.centerPoint_dcs=ft(r),e=r.lastReadGroup;break;case 13:i.snapBasePoint_dcs=ft(r),e=r.lastReadGroup;break;case 14:i.snapSpacing_dcs=ft(r),e=r.lastReadGroup;break;case 15:i.gridSpacing_dcs=ft(r),e=r.lastReadGroup;break;case 16:i.viewDirection=ft(r),e=r.lastReadGroup;break;case 17:i.viewTarget=ft(r),e=r.lastReadGroup;break;case 42:i.perspectiveLens=e.value,e=r.next();break;case 43:i.frontClippingPlaneZ=e.value,e=r.next();break;case 44:i.backClippingPlaneZ=e.value,e=r.next();break;case 45:i.viewHeight=e.value,e=r.next();break;case 50:i.snapAngle=e.value,e=r.next();break;case 51:i.viewTwistAngle=e.value,e=r.next();break;case 72:i.circleZoomPercent=e.value,e=r.next();break;case 331:i.frozenLayerHandles=i.frozenLayerHandles||[],i.frozenLayerHandles.push(e.value),e=r.next();break;case 90:i.viewportStatusFlags=e.value,e=r.next();break;case 340:i.viewportClippingBoundaryhandleId=e.value,e=r.next();break;case 1:i.plotStyleSheetName=e.value,e=r.next();break;case 281:i.renderMode=e.value,e=r.next();break;case 71:i.viewportFlag_ucs=e.value,e=r.next();break;case 74:i.ucsIcon=e.value,e=r.next();break;case 110:i.ucsOrigin=ft(r),e=r.lastReadGroup;break;case 111:i.ucsXAxis=ft(r),e=r.lastReadGroup;break;case 112:i.ucsYAxis=ft(r),e=r.lastReadGroup;break;case 345:i.ucsTableRecordHandle=e.value,e=r.next();break;case 346:i.baseUcsTableRecordHandle=e.value,e=r.next();break;case 79:i.orthographicType=e.value,e=r.next();break;case 146:i.elevation=e.value,e=r.next();break;case 170:i.shadePlotMode=e.value,e=r.next();break;case 61:i.frequency=e.value,e=r.next();break;case 292:i.lightingFlag=e.value,e=r.next();break;case 282:i.lightingType=e.value,e=r.next();break;case 141:i.viewBrightness=e.value,e=r.next();break;case 142:i.viewContrast=e.value,e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var pS=class{constructor(){this.ForEntityName="XLINE"}parseEntity(r,e){let i={type:e.value,vertices:[]};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 10:i.vertices.unshift(ft(r)),e=r.lastReadGroup;break;case 11:i.directionVector=ft(r),e=r.lastReadGroup;break;case 100:e=r.next();break;case 101:for(;e.code!=0;)e=r.next();break;default:fr(i,e),e=r.next();break}return i}};var jA=class{constructor(){this.ForObjectName="DICTIONARY"}parseObject(r,e){let n={type:e.value},s=[],a=[];for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 280:n.isHardOwner=e.value===1,e=r.next();break;case 281:n.cloningFlag=e.value,e=r.next();break;case 3:s.push(e.value),e=r.next();break;case 350:a.push(e.value),e=r.next();break;case 360:a.push(e.value),e=r.next();break;case 100:e=r.next();break;case 102:e=r.next();break;default:ah(n,e),e=r.next();break}if(s.length!==a.length)throw new Error("The number of Dictionary entries does not match !");return n.entries={},s.forEach((o,l)=>{n.entries[a[l]]=o}),n}};var WA=class{constructor(){this.ForObjectName="LAYOUT"}parseObject(r,e){let n={type:e.value};for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 100:e=r.next();break;case 1:n.layoutName=e.value,e=r.next();break;case 70:n.flag=e.value,e=r.next();break;case 71:n.tabOrder=e.value,e=r.next();break;case 76:n.orthographicType=e.value,e=r.next();break;case 10:n.minLimit=ft(r),e=r.lastReadGroup;break;case 11:n.maxLimit=ft(r),e=r.lastReadGroup;break;case 12:n.basePoint=ft(r),e=r.lastReadGroup;break;case 13:n.origin=ft(r),e=r.lastReadGroup;break;case 14:n.minExtent=ft(r),e=r.lastReadGroup;break;case 15:n.maxExtent=ft(r),e=r.lastReadGroup;break;case 16:n.XAxis=ft(r),e=r.lastReadGroup;break;case 17:n.YAxis=ft(r),e=r.lastReadGroup;break;case 146:n.elevation=e.value,e=r.next();break;case 331:n.viewportHandle=e.value,e=r.next();break;default:ah(n,e),e=r.next();break}return n.blockTableHandle=n.ownerHandle,n}};var qA=class{constructor(){this.ForObjectName="SORTENTSTABLE"}parseObject(r,e){let n={type:e.value},s=!1;n.sortEntsObject={},n.sortEntsObject.entityHandles=[];let a=[];for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 5:s?(a.push(e.value),n.sortEntsObject.entityHandles.push(a),a=[]):n.handle=e.value,e=r.next();break;case 100:e=r.next(),s=!0;break;case 102:e=r.next();break;case 330:s?n.sortEntsObject.ownerHandle=e.value:n.ownerHandle=e.value,e=r.next();break;case 331:a.push(e.value),e=r.next();break;default:ah(n,e),e=r.next();break}return n}};var YA=class{constructor(){this.ForObjectName="SPATIAL_FILTER"}parseObject(r,e){let n={type:e.value};n.vertices=[];let s,a;for(e=r.next();!r.isEOF()&&e.code!==0;)switch(e.code){case 11:n.origin=ft(r),e=r.lastReadGroup;break;case 70:n.numberOfPointsOnClipBoundary=e.value,n.numberOfPointsOnClipBoundary===2?(e=r.next(),s=ft(r),e=r.lastReadGroup,a=ft(r),e=r.lastReadGroup,n.vertices.push(s,{x:a.x,y:s.y},a,{x:s.x,y:a.y},s)):n.numberOfPointsOnClipBoundary>2?(n.vertices=kPt(n.numberOfPointsOnClipBoundary,r),e=r.lastReadGroup):e=r.next();break;case 71:n.clipBoundaryVisible=e.value===1,e=r.next();break;case 72:n.frontClippingPlaneFlag=e.value===1,e=r.next(),n.frontClippingPlaneFlag&&e.code===40&&(n.frontClippingPlaneDistance=e.value,e=r.next());break;case 73:n.backClippingPlaneFlag=e.value===1,e=r.next(),n.backClippingPlaneFlag&&e.code===41&&(n.backClippingPlaneDistance=e.value,e=r.next());break;case 100:e=r.next();break;case 102:e=r.next();break;case 210:n.extrusionDirectionX=e.value,e=r.next();break;case 220:n.extrusionDirectionY=e.value,e=r.next();break;case 230:n.extrusionDirectionZ=e.value,e=r.next();break;case 40:n.invertBlockMatrix=pMe(r,40),n.matrix=pMe(r,40),e=r.lastReadGroup;break;default:ah(n,e),e=r.next();break}return n}};function kPt(t,r){r.next();let e=[];for(;e.length{r.on("data",a=>{e+=a}),r.on("end",()=>{try{n(i.parse(e))}catch(a){s(a)}}),r.on("error",a=>{s(a)})})}_parse(r){let e={},i=0;if(!r.hasNext())throw Error("Empty file");let n=this,s;function a(){for(s=r.next();s.code===999;)s=r.next();for(;!r.isEOF();)if(s.code===0&&s.value==="SECTION"){if(s=r.next(),s.code!==2){ne.error("Unexpected code %s after 0:SECTION",dMe(s)),s=r.next();continue}if(s.value==="HEADER")ne.trace("> HEADER"),e.header=o(),ne.trace("<");else if(s.value==="TABLES")ne.trace("> TABLES"),e.tables=u(),ne.trace("<");else if(s.value==="BLOCKS")ne.trace("> BLOCKS"),e.blocks=l(),ne.trace("<");else if(s.value==="ENTITIES")ne.trace("> ENTITIES"),e.entities=x(!1),ne.trace("<");else if(s.value==="OBJECTS")ne.trace("> OBJECTS"),e.objects=S(),ne.trace("<");else if(s.value==="EOF")ne.trace("EOF");else{let w=s.value;n.unhandledSections[w]?n.unhandledSections[w]++:n.unhandledSections[w]=1}}else s=r.next();let _=(w,F)=>{Object.keys(F).length>0&&ne.warn(w,F)};n.unhandledSections={},n.unhandledEntities={},n.unhandledObjects={},n.unsupportedLineTypes={}}function o(){let _=null,w=null,F={};for(s=r.next();;){if(tl(s,0,"ENDSEC")){_&&(F[_]=w);break}else s.code===9?(_&&(F[_]=w),_=s.value):s.code===10?w={x:s.value}:s.code===20?w.y=s.value:s.code===30?w.z=s.value:w=s.value;s=r.next()}return s=r.next(),F}function l(){let _={};for(s=r.next();s.value!=="EOF"&&!tl(s,0,"ENDSEC");)if(tl(s,0,"BLOCK")){ne.trace("block {");let w=c();ne.trace("}"),P(w),w.name?_[w.name]=w:ne.error(`[DxfParser] Block with handle '${w.handle}' is missing a name, ignored!`)}else id(s),s=r.next();return _}function c(){let _={};for(s=r.next();s.value!=="EOF";){switch(s.code){case 1:_.xrefPath=s.value,s=r.next();break;case 2:_.name=s.value,s=r.next();break;case 3:_.name2=s.value,s=r.next();break;case 4:_.description=s.value,s=r.next();break;case 5:_.handle=s.value,s=r.next();break;case 8:_.layer=s.value,s=r.next();break;case 10:_.position=D(s),s=r.lastReadGroup;break;case 67:_.paperSpace=!!(s.value&&s.value===1),s=r.next();break;case 70:_.blockType=s.value,s=r.next();break;case 100:s=r.next();break;case 330:_.ownerHandle=s.value,s=r.next();break;case 0:if(s.value=="ENDBLK")break;_.entities=x(!0);break;default:id(s),s=r.next();break}if(tl(s,0,"ENDBLK")){s=r.next();break}}return _}function u(){let _={};for(s=r.next();s.value!=="EOF"&&!tl(s,0,"ENDSEC");)tl(s,0,"TABLE")?(s=r.next(),b[s.value]?(ne.trace(s.value+" Table {"),_[b[s.value].tableName]=p(s),ne.trace("}")):ne.trace("Unhandled Table "+s.value)):s=r.next();return s=r.next(),_}let h="ENDTAB";function p(_){let w=b[_.value],F={},X=0;for(s=r.next();!tl(s,0,h);)switch(s.code){case 5:F.handle=s.value,s=r.next();break;case 330:F.ownerHandle=s.value,s=r.next();break;case 100:s.value==="AcDbSymbolTable"||id(s),s=r.next();break;case 70:X=s.value,s=r.next();break;case 0:s.value===w.dxfSymbolName?F[w.tableRecordsProperty]=w.parseTableRecords():(id(s),s=r.next());break;default:id(s),s=r.next();break}let H=F[w.tableRecordsProperty];if(H){let he=(()=>{if(H.constructor===Array)return H.length;if(typeof H=="object")return Object.keys(H).length})();X!==he&&ne.warn(`[DxfParser] Parsed ${he} ${w.dxfSymbolName}s but expected ${X}`)}return s=r.next(),F}function d(){let _=[],w={};for(ne.trace("ViewPort {"),s=r.next();!tl(s,0,h);)switch(s.code){case 2:w.name=s.value,s=r.next();break;case 10:w.lowerLeftCorner=D(s),s=r.lastReadGroup;break;case 11:w.upperRightCorner=D(s),s=r.lastReadGroup;break;case 12:w.center=D(s),s=r.lastReadGroup;break;case 13:w.snapBasePoint=D(s),s=r.lastReadGroup;break;case 14:w.snapSpacing=D(s),s=r.lastReadGroup;break;case 15:w.gridSpacing=D(s),s=r.lastReadGroup;break;case 16:w.viewDirectionFromTarget=D(s),s=r.lastReadGroup;break;case 17:w.viewTarget=D(s),s=r.lastReadGroup;break;case 40:w.viewHeight=s.value,s=r.next();break;case 41:w.aspectRatio=s.value,s=r.next();break;case 42:w.lensLength=s.value,s=r.next();break;case 43:w.frontClippingPlane=s.value,s=r.next();break;case 44:w.backClippingPlane=s.value,s=r.next();break;case 45:w.viewHeight=s.value,s=r.next();break;case 50:w.snapRotationAngle=s.value,s=r.next();break;case 51:w.viewTwistAngle=s.value,s=r.next();break;case 79:w.orthographicType=s.value,s=r.next();break;case 110:w.ucsOrigin=D(s),s=r.lastReadGroup;break;case 111:w.ucsXAxis=D(s),s=r.lastReadGroup;break;case 112:w.ucsYAxis=D(s),s=r.lastReadGroup;break;case 281:w.renderMode=s.value,s=r.next();break;case 282:w.defaultLightingType=s.value,s=r.next();break;case 292:w.defaultLightingOn=s.value,s=r.next();break;case 330:w.ownerHandle=s.value,s=r.next();break;case 63:case 421:case 431:w.ambientColor=s.value,s=r.next();break;case 0:s.value==="VPORT"&&(ne.trace("}"),_.push(w),ne.trace("ViewPort {"),w={},s=r.next());break;default:id(s),s=r.next();break}return ne.trace("}"),_.push(w),_}function f(){let _={},w={},F=0,X="",H=!1;for(ne.trace("LType {"),s=r.next();!tl(s,0,"ENDTAB");)switch(s.code){case 2:w.name=s.value.toUpperCase(),X=w.name,s=r.next();break;case 3:w.description=s.value,s=r.next();break;case 9:s=r.next();break;case 40:w.patternLength=s.value,s=r.next();break;case 44:s=r.next();break;case 45:s=r.next();break;case 46:s=r.next();break;case 49:let he=s.value;H&&(he=Math.abs(he),H=!1),w.pattern.push(he),s=r.next();break;case 70:s=r.next();break;case 73:F=s.value,F>0&&(w.pattern=[]),s=r.next();break;case 74:s.value!==0&&(H=!0,n.unsupportedLineTypes[w.name]?n.unsupportedLineTypes[w.name]++:n.unsupportedLineTypes[w.name]=1),s=r.next();break;case 75:s=r.next();break;case 0:ne.trace("}"),F>0&&F!==w.pattern.length&&ne.warn("[DxfParser] lengths do not match on LTYPE pattern"),_[X]=w,w={},ne.trace("LType {"),s=r.next();break;default:s=r.next();break}return ne.trace("}"),_[X]=w,_}function m(){let _={},w={},F;for(ne.trace("Layer {"),s=r.next();!tl(s,0,"ENDTAB");)switch(s.code){case 2:w.name=s.value,F=s.value,s=r.next();break;case 5:w.handle=s.value,s=r.next();break;case 62:w.visible=s.value>=0,w.colorIndex=Math.abs(s.value),w.color=jPt(w.colorIndex),s=r.next();break;case 70:w.flag=s.value,w.frozen=(w.flag&1)>0,s=r.next();break;case 420:w.color=Math.abs(s.value),s=r.next();break;case 6:w.lineType=s.value.toUpperCase(),s=r.next();break;case 370:w.lineweight=s.value,s=r.next();break;case 0:s.value==="LAYER"&&(ne.trace("}"),F&&(_[F]=w),ne.trace("Layer {"),w={},F=void 0,s=r.next());break;default:id(s),s=r.next();break}return ne.trace("}"),F&&(_[F]=w),_}function g(){let _={},w={},F;for(ne.trace("Style {"),s=r.next();!tl(s,0,"ENDTAB");)switch(s.code){case 2:w.styleName=s.value,F=s.value,s=r.next();break;case 3:w.fontFile=s.value,s=r.next();break;case 4:w.bigFontFile=s.value,s=r.next();break;case 5:w.handle=s.value,s=r.next();break;case 7:w.textStyle=s.value,s=r.next();break;case 40:w.textHeight=s.value,s=r.next();break;case 41:w.xScale=s.value,s=r.next();break;case 42:w.priorTextHeight=s.value,s=r.next();break;case 50:w.rotation=s.value,s=r.next();break;case 70:s=r.next();break;case 71:w.mirroreType=s.value,s=r.next();break;case 330:w.ownerHandle=s.value,s=r.next();break;case 0:s.value==="STYLE"&&(ne.trace("}"),F&&(_[F]=w),ne.trace("Style {"),w={},F=void 0,s=r.next());break;default:s=r.next();break}return ne.trace("}"),F&&(_[F]=w),_}function y(){let _={},w={},F;for(ne.trace("DimStyle {"),s=r.next();!tl(s,0,"ENDTAB");)switch(s.code){case 2:w.styleName=s.value,F=s.value,s=r.next();break;case 40:w.DIMSCALE=s.value,s=r.next();break;case 41:w.DIMASZ=s.value,s=r.next();break;case 42:w.DIMEXO=s.value,s=r.next();break;case 44:w.DIMEXE=s.value,s=r.next();break;case 75:w.DIMSE1=s.value,s=r.next();break;case 76:w.DIMSE2=s.value,s=r.next();break;case 77:w.DIMTAD=s.value,s=r.next();break;case 140:w.DIMTXT=s.value,s=r.next();break;case 144:w.DIMLFAC=s.value,s=r.next();break;case 147:w.DIMGAP=s.value,s=r.next();break;case 176:w.DIMCLRD=s.value,s=r.next();break;case 178:w.DIMCLRT=s.value,s=r.next();break;case 271:w.DIMDEC=s.value,s=r.next();break;case 341:w.DIMLDRBLK=s.value,s=r.next();break;case 70:s=r.next();break;case 0:s.value==="DIMSTYLE"&&(ne.trace("}"),F&&(_[F]=w),ne.trace("DimStyle {"),w={},F=void 0,s=r.next());break;default:s=r.next();break}return ne.trace("}"),F&&(_[F]=w),_}function E(){let _={},w={},F;for(ne.trace("BlockRecord {"),s=r.next();!tl(s,0,"ENDTAB");)switch(s.code){case 5:w.handle=s.value,s=r.next();break;case 330:w.ownerHandle=s.value,s=r.next();break;case 2:w.blockName=s.value,F=w.blockName,s=r.next();break;case 340:w.layoutHandle=s.value,s=r.next();break;case 70:w.blockInsertUnits=s.value,s=r.next();break;case 280:w.blockExplodability=s.value,s=r.next();break;case 281:w.blockScalability=s.value,s=r.next();break;case 310:w.bitmap=s.value,s=r.next();break;case 0:if(s.value==="BLOCK_RECORD"){ne.trace("}"),F&&(_[F]=w);let H=w.layoutHandle;F&&H&&H.length>0&&H!=="0"&&(n._layoutBlocks[H]=w),ne.trace("BlockRecord {"),w={},F=void 0,s=r.next()}else id(s),s=r.next();break;default:id(s),s=r.next();break}ne.trace("}"),F&&(_[F]=w);let X=w.layoutHandle;return F&&X&&X.length>0&&X!=="0"&&(n._layoutBlocks[X]=w),_}let b={VPORT:{tableRecordsProperty:"viewPorts",tableName:"viewPort",dxfSymbolName:"VPORT",parseTableRecords:d},LTYPE:{tableRecordsProperty:"lineTypes",tableName:"lineType",dxfSymbolName:"LTYPE",parseTableRecords:f},LAYER:{tableRecordsProperty:"layers",tableName:"layer",dxfSymbolName:"LAYER",parseTableRecords:m},BLOCK_RECORD:{tableRecordsProperty:"blockRecords",tableName:"blockRecord",dxfSymbolName:"BLOCK_RECORD",parseTableRecords:E},STYLE:{tableRecordsProperty:"styles",tableName:"style",dxfSymbolName:"STYLE",parseTableRecords:g},DIMSTYLE:{tableRecordsProperty:"dimStyles",tableName:"dimStyle",dxfSymbolName:"DIMSTYLE",parseTableRecords:y}};function x(_){let w=[],F=_?"ENDBLK":"ENDSEC";for(_||(s=r.next());;)if(s.code===0){if(s.value===F)break;let X=n._entityHandlers[s.value];if(X!=null){ne.trace(s.value+" {");let H=X.parseEntity(r,s);H&&(H.layer||(H.layer="0"),H.colorIndex===void 0&&(H.colorIndex=256),H.lineType||(H.lineType=VA)),s=r.lastReadGroup,ne.trace("}"),P(H),w.push(H)}else{let H=s.value;n.unhandledEntities[H]||(n.unhandledEntities[H]=0),n.unhandledEntities[H]++,s=r.next();continue}}else s=r.next();return F=="ENDSEC"&&(s=r.next()),w}function S(){let _={},w="ENDSEC";for(s=r.next();s.value!=="EOF";)if(s.code===0){if(s.value===w)break;let F=n._objectHandlers[s.value];if(F!=null){ne.trace(s.value+" {");let X=F.parseObject(r,s),H=s.value;s=r.lastReadGroup,ne.trace("}"),P(X),_[H]||(_[H]=[]),_[H].push(X)}else{let X=s.value;n.unhandledObjects[X]||(n.unhandledObjects[X]=0),n.unhandledObjects[X]++,s=r.next();continue}}else s=r.next();return s=r.next(),_.LAYOUT&&(Object.keys(n._layoutBlocks).length!==_.LAYOUT.length&&ne.warn("[DxfParser] The number of layout and block associations does not match!"),_.LAYOUT.forEach(F=>{n._layoutBlocks[F.handle]&&(F.associatedBlockName=n._layoutBlocks[F.handle].blockName)}),_.LAYOUT.sort((F,X)=>F.tabOrder-X.tabOrder)),_}function D(_){let w={},F=_.code;if(w.x=_.value,F+=10,_=r.next(),_.code!=F)throw new Error(`Expected code for point value to be ${F} but got ${_.code}.`);return w.y=_.value,F+=10,_=r.next(),_.code!=F||(w.z=_.value,_=r.next()),w}function P(_){if(!_)throw new TypeError("entity cannot be undefined or null");_.handle||(_.handle=(i++).toString())}return a(),e}splitByLineSeparator(r){let e=[],i=0;for(let n=0,s=r.length;n(n.Added="Added",n.Removed="Removed",n.Modified="Modified",n.NoChange="NoChange",n))(ZA||{}),zs=1,$A=class{constructor(r,e){this.changes={};this.comparedBlocks=new Map;this.isComparingBlock=!1;this.isComparingDimension=!1;if(this.dxf1=r,this.dxf2=e,!r||!e)throw new Error("Invalid dxf data to compare!")}getLayerFrozen(r,e){var n,s,a;let i=(s=(n=r.tables)==null?void 0:n.layer)==null?void 0:s.layers;return i&&((a=i[e.layer])==null?void 0:a.frozen)}compare(r){return ot(this,null,function*(){this.changes={};let e=[],i=new Map;return this.dxf1.entities.forEach(n=>{if(n.inPaperSpace!==!0){let s=this.getLayerFrozen(this.dxf1,n)===!0;!$A.ignoreEntityTypes.includes(n.type)&&!s&&e.push(n)}}),this.dxf2.entities.forEach(n=>{if(n.inPaperSpace!==!0){let s=this.getLayerFrozen(this.dxf2,n)===!0;!$A.ignoreEntityTypes.includes(n.type)&&!s&&i.set(n.handle,n)}}),yield this.compareEntities(e,i,void 0,r),Promise.resolve(this.changes)})}isDimensionBlock(r){return r.includes("*D")}compareInsertOrDemensionEntities(r,e,i,n){if(!r.block||!e.block)return;let s=r.block,a;if(this.isComparingBlock=!0,this.isDimensionBlock(s)){let o=this.dxf1.blocks[r.block],l=this.dxf2.blocks[e.block],c=Date.now();this.isComparingDimension=!0,a=this.compareBlock(o,l),this.isComparingDimension=!1,ne.debug(`[DxfCompare] compare block: ${s} cost ${(Date.now()-c)/1e3}s`)}else{if(!this.comparedBlocks.has(s)){let o=this.dxf1.blocks[s],l=this.dxf2.blocks[s],c=Date.now(),u=this.compareBlock(o,l);this.comparedBlocks.set(s,u),ne.debug(`[DxfCompare] compare block: ${s} cost ${(Date.now()-c)/1e3}s`)}a=this.comparedBlocks.get(s)}return a==null||a.forEach(o=>{if(o.parentHandles||(o.parentHandles=[]),i&&n)o.type==="Added"?o.parentHandles.push(n):o.type==="Removed"&&o.parentHandles.push(i);else{let l=[...o.parentHandles,r.handle];o.type==="Added"?this.changes[zs]=Mn(Ur({id:zs},o),{parentHandles:l}):o.type==="Removed"&&(this.changes[zs]=Mn(Ur({id:zs},o),{parentHandles:l})),zs++}}),!i&&!n&&(this.isComparingBlock=!1),a}compareBlock(r,e){var o,l;let i=[],n=[];(o=r==null?void 0:r.entities)==null||o.forEach(c=>{c.type!=="ATTDEF"&&!this.bIgnoreChildEntitiesOriginalType(c)&&i.push(c)}),(l=e==null?void 0:e.entities)==null||l.forEach(c=>{c.type!=="ATTDEF"&&!this.bIgnoreChildEntitiesOriginalType(c)&&n.push(c)});let s=[],a=[];for(let c=0;c0&&s.push(...f),h=!1,n.splice(p--,1);break}else{h=!1,n.splice(p--,1);break}}h&&(s.push({type:"Removed",handle:u.handle}),a.push(u.handle))}return n.forEach(c=>{a.includes(c.handle)||s.push({type:"Added",handle:c.handle})}),s}compareEntities(r,e,i,n){return ot(this,null,function*(){var c,u;let s=r.length,a=Math.round(Math.pow(s,.5)),o=Date.now(),l=h=>ot(this,null,function*(){if(n&&(h%a===0||h===s-1)){n(new ProgressEvent("compareProgress",{loaded:h+1,total:s}));let p=500,d=Date.now();(d-o>p||h===s-1)&&(yield bs.sleep(0),o=d)}});for(let h=0;h + void main() { + //vec4 worldPosition = modelMatrix * vec4(position, 1.0); + v_pos = position; + + #include + #include + #include + }`,a=` + uniform mat4 modelMatrix; + uniform float u_cameraZoom; + uniform vec3 u_color; + varying vec3 v_pos; + + struct PatternLine { + vec2 origin; + vec2 delta; + float angle; + float pattern[MAX_PATTERN_SEGMENT_COUNT]; + float patternSum[MAX_PATTERN_SEGMENT_COUNT+1]; + float patternLength; + }; + + uniform PatternLine u_patternLines[${t.length}]; + uniform float u_patternAngle; + + #include + + // Clamp [0..1] range + #define saturate(a) clamp(a, 0.0, 1.0) + + const float EPS = 0.000001; + + vec2 getWorldScale() { + return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz)); + } + + vec2 rotate(vec2 st, float rotation) { + const float PI = 3.1415926; + float angle = rotation * PI/180.0; + float sine = sin(angle), cosine = cos(angle); + return vec2(cosine * st.x - sine * st.y, cosine * st.y + sine * st.x); + } + + vec2 translate(vec2 samplePosition, vec2 offset) { + //move samplepoint in the opposite direction that we want to move shapes in + return samplePosition - offset; + } + + vec2 scale(vec2 samplePosition, float scale) { + return samplePosition / scale; + } + + float sdfLine(vec2 st, vec2 a, vec2 b) { + vec2 ap = st - a; + vec2 ab = b - a; + return abs(((ap.x * ab.y) - (ab.x * ap.y))) / length(ab); + } + + float drawSpaceLine(vec2 st, float distanceBetweenLines, float thick) { + float dist = sdfLine(st , vec2(0.0, 0.0) , vec2(1.0, 0.0)); + + //vec2 tt = dFdy(st); + //float scale = (abs(tt.x)+abs(tt.y))/2.0; + //float scale = length(fwidth(st)) * 0.5; + // close to a pixel + //float thick = 2.0; + //thick = (thick * 0.5 - 0.5) * scale; + + float lineDistance = abs(fract(dist / distanceBetweenLines + 0.5) - 0.5) * distanceBetweenLines; + //float distanceChange = fwidth(dist) * 0.5; + //float thresold = smoothstep(thick - distanceChange, thick + distanceChange, lineDistance); + //float thresold = step(thick,lineDistance); + // remove gradient + float thresold = step(thick,lineDistance); + + return saturate(thresold); + } + + float drawSolidLine(PatternLine patternLine, float thick) { + vec2 origin = patternLine.origin; + vec2 delta = patternLine.delta; + float distanceBetweenLines = length(delta); + + origin = rotate(origin,u_patternAngle); + vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle)); + + return drawSpaceLine(st, distanceBetweenLines , thick); + } + + int getPatternIndex(PatternLine patternLine, float u ) { + u = mod(u, patternLine.patternLength); + float distance = 0.0; + + #pragma unroll_loop_start + for(int i = 1; i < patternLine.patternSum.length(); i++){ + if(u < patternLine.patternSum[i]) { + distance = u - patternLine.patternSum[i-1]; + return i - 1; + } + } + #pragma unroll_loop_end + + return -1; + } + + float drawDashedLine(PatternLine patternLine, float thick){ + float thresold = 1.0; + vec2 origin = patternLine.origin; + vec2 delta = patternLine.delta; + float distanceBetweenLines = length(delta.y); + + origin = rotate(origin, u_patternAngle); + vec2 st = rotate(v_pos.xy - origin, -(patternLine.angle + u_patternAngle)); + + float offsetX = st.y * delta.x/delta.y; + float u = st.x - offsetX; + int index = getPatternIndex(patternLine, u); + if(index < 0){ + return thresold; + } + + float size = patternLine.pattern[index]; + if(size >= 0.0) { + thresold = drawSpaceLine(st, distanceBetweenLines , thick); + } + + return thresold; + } + + float drawLine(PatternLine patternLine, float thick) { + float t = 0.0; + if(patternLine.patternLength > 0.0) { + t = drawDashedLine(patternLine, thick); + } else { + t = drawSolidLine(patternLine, thick); + } + return t; + } + + void main() { + #include + + if(u_cameraZoom < EPS){ + gl_FragColor = vec4(u_color, 1.0); + return; + } + + vec2 worldScale = getWorldScale(); + float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0; + float thick = (0.7 / averageScale) / u_cameraZoom; + + float total = 0.0; + +#if ${t.length} > 1 + #pragma unroll_loop_start + for (int i = 0; i < u_patternLines.length(); i++) { + PatternLine pl = u_patternLines[i]; + float t = drawLine(pl, thick); + total += (1.0 - t); + } + #pragma unroll_loop_end +#else + float t = drawLine(u_patternLines[0], thick); + total += (1.0 - t); +#endif + + total = saturate(total); + if (total < 0.01) { + discard; + } + + gl_FragColor = vec4(u_color * total, 1.0); + } + `;return new Yt({uniforms:n,vertexShader:s,fragmentShader:a,clipping:!0})}var KA=class{static createLineShaderMaterial(r,e,i,n,s){let a=0,o=[];for(let h=0;h + + void main() { + vLineDistance = lineDistance; + + #include + #include + #include + }`,u=` + uniform mat4 modelMatrix; + uniform vec3 diffuse; + uniform vec3 u_color; + uniform float opacity; + uniform float pattern[${r.length}]; + uniform float patternLength; + uniform float u_viewportScale; + uniform float u_cameraZoom; + varying float vLineDistance; + + #include + + vec2 getWorldScale() { + return vec2(length(modelMatrix[0].xyz), length(modelMatrix[1].xyz)); + } + + void main() { + + #include + + // vec2 worldScale = getWorldScale(); + // float averageScale = (abs(worldScale.x) + abs(worldScale.y))/2.0; + // When zoomed out to a certain extent, it is displayed as a solid line. + if(patternLength * u_viewportScale * u_cameraZoom/1.5 < 1.0){ + gl_FragColor = vec4(u_color, opacity); + return; + } + + float pos = mod(vLineDistance, patternLength * u_viewportScale); + + for ( int i = 0; i < ${r.length}; i++ ) { + pos = pos - abs(pattern[i] * u_viewportScale); + if ( pos < 0.0 ) { + if ( pattern[i] > 0.0 ) { + gl_FragColor = vec4(u_color, opacity); + break; + } + discard; + } + } + }`;return new Yt({uniforms:l,vertexShader:c,fragmentShader:u,clipping:!0})}};var _8={};z_(_8,{default:()=>S8});var I8={};z_(I8,{default:()=>x8});var x8=(t,r)=>typeof r=="undefined"||+r==0?Math.round(t):(t=+t,r=+r,isNaN(t)||!(typeof r=="number"&&r%1===0)?NaN:(t=t.toString().split("e"),t=Math.round(+(t[0]+"e"+(t[1]?+t[1]-r:-r))),t=t.toString().split("e"),+(t[0]+"e"+(t[1]?+t[1]+r:r))));var S8=(t,r,e,i,n)=>{let s=e.length,a=e[0].length;if(t<0||t>1)throw new Error("t out of bounds [0,1]: "+t);if(r<1)throw new Error("degree must be at least 1 (linear)");if(r>s-1)throw new Error("degree must be less than or equal to point count - 1");if(i){if(i.length!==s+r+1)throw new Error("bad knot vector length")}else{i=[];for(let f=0;f=i[u]&&t<=i[u+1]);u++);let h=[];for(let f=0;fu-r-1+f;m--){p=(t-i[m])/(i[m+r+1-f]-i[m]);for(let g=0;g{t=t.replace(/%%(.)/g,(l,c)=>WPt[c]||c);let e=r==null?void 0:r.encoding,i=e instanceof TextDecoder?e:void 0,n="",s,a=[],o=l=>{n&&(a.push(n),n=""),a.push(l)};for(let l=0;l(t=XPt(t),r?$Pt(t,r):t),XPt=t=>t.replace(/\\[uU]\+([0-9a-fA-F]{4})/g,(r,e)=>String.fromCodePoint(parseInt(e,16))),$Pt=(t,r)=>{let e=r instanceof TextDecoder?r:new TextDecoder(r);return t.replace(/\\[mM]\+[0|1]([0-9a-fA-F]{2})([0-9a-fA-F]{2})/g,(i,n,s)=>(e=e||new TextDecoder(r)).decode(new Uint8Array([parseInt(n,16),parseInt(s,16)])))},QA=(t,r)=>{t=YPt(t,r==null?void 0:r.encoding);let e=0,i={text:""},n=[i],s=t.matchAll(/%%(\d\d\d|.)/g);for(let a of s){i.text+=t.slice(e,a.index);let l=a[1].toLowerCase(),c=qPt[l];c?i.text+=c:l.length===3?i.text+=String.fromCodePoint(+l):l==="k"||l==="o"||l==="u"?(i=Mn(Ur({},i),{text:""}),i[l]?delete i[l]:i[l]=1,n.push(i)):i.text+=l,e=a.index+a[0].length}return i.text+=t.slice(e),n.filter(a=>a.text)};var mMe=t=>t==="Unitless"?1:t==="Inches"?.0254:t==="Feet"?.3048:t==="Millimeters"?.001:t==="Centimeters"?.01:(t==="Meters"||console.warn(`[Units] Unsupported unit '${t}', will return 1 for unit scale.`),1),w8=(t,r)=>mMe(t)/mMe(r);var WT="0.2.23";var gMe="VERSION",KPt=()=>window.localStorage.getItem(gMe),JPt=()=>{window.localStorage.setItem(gMe,WT)},vMe=()=>KPt()!==WT?(JPt(),!0):!1;var qT=class{constructor(){this.DATABASE_NAME="gemini_viewer_db";this.TABLES=[{name:"viewpoint",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"annotation",options:{keyPath:"id",autoIncrement:!0},indexArray:[]},{name:"dxfdata",options:{keyPath:"dxfDataId",autoIncrement:!1},indexArray:[]},{name:"fontdata",options:{keyPath:"url",autoIncrement:!0},indexArray:[]}];this.db=void 0}static instance(){return qT._instance||(qT._instance=new qT),qT._instance}getDatabase(){return ot(this,null,function*(){let r=yield this.getDB(this.DATABASE_NAME);return this.db||(r.close(),vMe()&&(yield this.deleteDataBase(this.DATABASE_NAME)),r=yield this.getUpgradedDB(r)),r.onclose=()=>{this.db=void 0,ne.debug(`[DB] Db ${r.name} is closed.`)},r.onerror=e=>{this.db=void 0,ne.debug(`[DB] Db ${r.name} encountered error.`,e)},r.onabort=e=>{this.db=void 0,ne.debug(`[DB] Db ${r.name} aborted.`,e)},r.onversionchange=e=>{ne.debug("onversionchange",e)},this.db=r,Promise.resolve(this.db)})}closeDatabase(){this.db&&this.db.close()}deleteDataBase(r){return new Promise((e,i)=>{let n=window.indexedDB.deleteDatabase(r);n.onerror=s=>{ne.debug(s),i(s)},n.onsuccess=s=>{let a=s.target;ne.debug(`[DB] Db ${r} delete old version ${s.oldVersion}.`),e(a)}})}getDB(r){return ot(this,null,function*(){return new Promise((e,i)=>{let n=window.indexedDB.open(r);n.onerror=i,n.onsuccess=s=>{let a=s.target.result;ne.debug(`[DB] Db ${a.name} opened (version ${a.version}).`),e(a)}})})}getUpgradedDB(r){return ot(this,null,function*(){return new Promise((e,i)=>{ne.debug(`[DB] Upgrading db ${r.name} (version ${r.version})`);let n=window.indexedDB.open(r.name,r.version+1);n.onerror=i,n.onblocked=s=>{ne.debug("onblocked",s)},n.onupgradeneeded=s=>{let a=s.target.transaction;a.oncomplete=()=>{ne.debug(`[DB] Upgrade is done (new version: ${o.version}).`)};let o=s.target.result,l=[];for(let c=0;c0&&Promise.all(l).then(()=>{ne.debug(`[DB] All(${l.length}) tables created.`)})},n.onsuccess=s=>{let a=s.target.result;ne.debug(`[DB] Db ${a.name} opened (version ${a.version}).`),e(a)}})})}createTable(r,e,i,n){return ot(this,null,function*(){return new Promise(s=>{let a=r.createObjectStore(e,i);n&&n.forEach(o=>{a.createIndex(o.name,o.fields,{unique:o.unique})}),ne.debug(`[DB] Table ${e} created.`),s(r)})})}},ns=qT;ns._instance=void 0;var oh=class{constructor(){this.db=void 0;this.isCreatingTable=!1;if(ns.instance().TABLES.findIndex(e=>e.name===this.tableName())===-1)throw new Error(`Make sure to add table '${this.tableName()}' to IndexedDbManager.TABLES!`)}tableName(){throw new Error("Derived class have to override 'tableName', and set a proper table name!")}add(r,e,i){let n=this.tableName();ns.instance().getDatabase().then(s=>{let o=s.transaction([n],"readwrite").objectStore(n).add(r);o.onsuccess=e,o.onerror=i}).finally(()=>{ns.instance().closeDatabase()}).catch(s=>{i&&i(s)})}save(r,e,i){let n=this.tableName();ns.instance().getDatabase().then(s=>{let o=s.transaction([n],"readwrite").objectStore(n).put(r);o.onsuccess=e,o.onerror=i}).finally(()=>{ns.instance().closeDatabase()})}delete(r,e,i){let n=this.tableName();ns.instance().getDatabase().then(s=>{let o=s.transaction([n],"readwrite").objectStore(n).delete(r);o.onsuccess=e,o.onerror=i}).finally(()=>{ns.instance().closeDatabase()})}update(){ns.instance().getDatabase().then(()=>{})}query(r,e){let i=this.tableName();ns.instance().getDatabase().then(n=>{let a=n.transaction([i],"readonly").objectStore(i).openCursor();a.onsuccess=o=>{let l=o.target.result;l&&l.continue(),r&&r(l)},a.onerror=e}).finally(()=>{ns.instance().closeDatabase()})}queryAll(r,e){let i=this.tableName();ns.instance().getDatabase().then(n=>{let a=n.transaction([i],"readonly").objectStore(i).getAll();a.onsuccess=o=>{r&&r(a.result)},a.onerror=e}).finally(()=>{ns.instance().closeDatabase()})}clearAll(r,e){let i=this.tableName();ns.instance().getDatabase().then(n=>{let a=n.transaction([i],"readwrite").objectStore(i).clear();a.onsuccess=o=>{r&&r(o)},a.onerror=o=>{e&&e(o)}}).finally(()=>{ns.instance().closeDatabase()})}};var YT=class extends oh{tableName(){return"annotation"}static instance(){return YT._instance||(YT._instance=new YT),YT._instance}query(r,e,i){let n=[];super.query(s=>{if(!s){e&&e(n);return}!s.value||s.value.projectId!==r||n.push(s.value)},s=>{console.log(s)})}},R8=YT;R8._instance=void 0;var XT=class extends oh{tableName(){return"viewpoint"}static instance(){return XT._instance||(XT._instance=new XT),XT._instance}query(r,e,i){let n=[];super.query(s=>{if(!s){e&&e(n);return}!s.value||s.value.projectId!==r||n.push(s.value)},s=>{i&&i(),console.log(s)})}},M8=XT;M8._instance=void 0;var $T=class extends oh{tableName(){return"dxfdata"}static instance(){return $T._instance||($T._instance=new $T),$T._instance}query(r,e,i){let n=[],s=this.tableName();ns.instance().getDatabase().then(a=>{let l=a.transaction([s],"readonly").objectStore(s).get(r);l.onerror=c=>{i&&i(c),ne.info("[DxfDataTable] Failed to query !",c)},l.onsuccess=()=>{l.result&&n.push(l.result),e&&e(n)}}).finally(()=>{ns.instance().closeDatabase()})}},ZT=$T;ZT._instance=void 0;var I0=class extends oh{tableName(){return"fontdata"}static instance(){return I0._instance||(I0._instance=new I0),I0._instance}query(r,e,i){let n;super.query(s=>{if(!s){e&&e(n);return}!s.value||s.value.url!==r||(n=s.value)},s=>{i&&i(),console.log(s)})}queryAll(){return ot(this,null,function*(){return new Promise((r,e)=>{C7(I0.prototype,this,"queryAll").call(this,i=>{r(i)},i=>{e(i)})})})}},lh=I0;lh._instance=void 0;var eO=12;var nd=class extends Ja{constructor(e,i){super();this.width=0;this.lastPoint=e,this.polyLines=i,this.width=this.calcWidth(i)}offset(e){let i=[];for(let n=0;n>8}}return r.subarray(0,e)}var e2t="\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78\u5C3D\u52B2\u8346\u5162\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7\u9515\u55F3\u5AD2\u7477\u66A7\u972D\u8C19\u94F5\u9E4C\u5AAA\u9A9C\u9CCC\u94AF\u5457\u94A3\u9E28\u9F85\u9E4E\u8D32\u951B\u835C\u54D4\u6ED7\u94CB\u7B5A\u8DF8\u82C4\u7F0F\u7B3E\u9AA0\u98D1\u98D9\u9556\u9573\u9CD4\u50A7\u7F24\u69DF\u6BA1\u8191\u9554\u9ACC\u9B13\u7980\u997D\u94B9\u9E41\u94B8\u9A96\u9EEA\u607B\u9538\u4FAA\u9497\u5181\u8C04\u8C36\u8487\u5FCF\u5A75\u9AA3\u89C7\u7985\u9561\u4F25\u82CC\u6005\u960A\u9CB3\u7817\u4F27\u8C0C\u6987\u789C\u9F80\u67A8\u67FD\u94D6\u94DB\u996C\u9E31\u94F3\u4FE6\u5E31\u96E0\u520D\u7ECC\u8E70\u948F\u6006\u7F0D\u9E51\u8F8D\u9F8A\u9E5A\u82C1\u9AA2\u679E\u8F8F\u64BA\u9509\u9E7E\u54D2\u9791\u9A80\u7ED0\u6B9A\u8D55\u7605\u7BAA\u8C20\u7800\u88C6\u7118\u956B\u7C74\u8BCB\u8C1B\u7EE8\u89CC\u955D\u5DC5\u94BF\u766B\u94EB\u9CB7\u9CBD\u94E4\u94E5\u5CBD\u9E2B\u7AA6\u6E0E\u691F\u724D\u7B03\u9EE9\u7C16\u603C\u9566\u7096\u8DB8\u94CE\u8C14\u57A9\u960F\u8F6D\u9507\u9537\u9E57\u989A\u989B\u9CC4\u8BF6\u8FE9\u94D2\u9E38\u9C95\u94AB\u9C82\u7EEF\u9544\u9CB1\u507E\u6CA3\u51EB\u9A78\u7EC2\u7ECB\u8D59\u9EB8\u9C8B\u9CC6\u9486\u8D45\u5C34\u64C0\u7EC0\u6206\u777E\u8BF0\u7F1F\u9506\u7EA5\u9549\u988D\u4E98\u8D53\u7EE0\u9CA0\u8BDF\u7F11\u89CF\u8BC2\u6BC2\u94B4\u9522\u9E2A\u9E44\u9E58\u9E39\u63B4\u8BD6\u63BC\u9E73\u9CCF\u72B7\u5326\u523F\u59AB\u6867\u9C91\u9CDC\u886E\u7EF2\u9CA7\u57DA\u5459\u5E3C\u6901\u8748\u94EA\u961A\u7ED7\u9889\u704F\u98A2\u8BC3\u9616\u86CE\u9EC9\u8BA7\u836D\u95F3\u9C8E\u6D52\u9E55\u9A85\u6866\u94E7\u5942\u7F33\u953E\u9CA9\u9CC7\u8BD9\u835F\u54D5\u6D4D\u7F0B\u73F2\u6656\u8BE8\u9984\u960D\u94AC\u956C\u8BA6\u8BD8\u8360\u53FD\u54DC\u9AA5\u7391\u89CA\u9F51\u77F6\u7F81\u867F\u8DFB\u9701\u9C9A\u9CAB\u90CF\u6D43\u94D7\u9553\u86F2\u8C0F\u7F23\u620B\u622C\u7751\u9E63\u7B15\u9CA3\u97AF\u7EDB\u7F30\u6322\u5CE4\u9E6A\u9C9B\u7596\u988C\u9C92\u537A\u8369\u9991\u7F19\u8D46\u89D0\u522D\u6CFE\u8FF3\u5F2A\u80EB\u9753\u9604\u9E20\u9E6B\u8BB5\u5C66\u6989\u98D3\u949C\u9514\u7AAD\u9F83\u9529\u954C\u96BD\u8C32\u73CF\u76B2\u5240\u57B2\u5FFE\u607A\u94E0\u9534\u9F9B\u95F6\u94AA\u94D0\u9A92\u7F02\u8F72\u94B6\u951E\u9894\u9F88\u94FF\u55BE\u90D0\u54D9\u810D\u72EF\u9ACB\u8BD3\u8BF3\u909D\u5739\u7EA9\u8D36\u532E\u8489\u6126\u8069\u7BD1\u9603\u951F\u9CB2\u86F4\u5D03\u5F95\u6D9E\u6FD1\u8D49\u7750\u94FC\u765E\u7C41\u5C9A\u6984\u6593\u9567\u8934\u9606\u9512\u5520\u5D02\u94D1\u94F9\u75E8\u9CD3\u8BD4\u7F27\u4FEA\u90E6\u575C\u82C8\u8385\u84E0\u5456\u9026\u9A8A\u7F21\u67A5\u680E\u8F79\u783A\u9502\u9E42\u75A0\u7C9D\u8DDE\u96F3\u9CA1\u9CE2\u8539\u5941\u6F4B\u740F\u6B93\u88E2\u88E3\u9CA2\u9B49\u7F2D\u948C\u9E69\u853A\u5EEA\u6AA9\u8F9A\u8E8F\u7EEB\u68C2\u86CF\u9CAE\u6D4F\u9A9D\u7EFA\u954F\u9E68\u830F\u6CF7\u73D1\u680A\u80E7\u783B\u507B\u848C\u55BD\u5D5D\u9542\u7618\u8027\u877C\u9AC5\u5786\u64B8\u565C\u95FE\u6CF8\u6E0C\u680C\u6A79\u8F73\u8F82\u8F98\u6C07\u80EA\u9E2C\u9E6D\u823B\u9C88\u8114\u5A08\u683E\u9E3E\u92AE\u56F5\u8366\u7321\u6CFA\u6924\u8136\u9559\u6988\u891B\u950A\u5452\u551B\u5B37\u6769\u52A2\u7F26\u9558\u98A1\u9CD7\u9EBD\u626A\u7116\u61D1\u9494\u8288\u8C27\u7315\u7962\u6E11\u817C\u9EFE\u7F08\u7F2A\u95F5\u7F17\u8C1F\u84E6\u998D\u6B81\u9546\u94BC\u94D9\u8BB7\u94CC\u9CB5\u8F87\u9CB6\u8311\u8885\u9667\u8616\u55EB\u989F\u8E51\u82CE\u549B\u804D\u4FAC\u54DD\u9A7D\u9495\u50A9\u8BB4\u6004\u74EF\u8E52\u75B1\u8F94\u7EB0\u7F74\u94CD\u8C1D\u9A88\u7F25\u5AD4\u948B\u9564\u9568\u8572\u9A90\u7EEE\u6864\u789B\u9880\u9883\u9CCD\u4F65\u8368\u60AD\u9A9E\u7F31\u6920\u94A4\u5AF1\u6A2F\u6217\u709D\u9516\u9535\u956A\u7F9F\u8DC4\u8BEE\u8C2F\u835E\u7F32\u7857\u8DF7\u60EC\u9532\u7BA7\u9513\u63FF\u9CAD\u8315\u86F1\u5DEF\u8D47\u866E\u9CC5\u8BCE\u5C96\u9612\u89D1\u9E32\u8BE0\u7EFB\u8F81\u94E8\u9615\u9619\u60AB\u835B\u5A06\u6861\u996A\u8F6B\u5D58\u877E\u7F1B\u94F7\u98A6\u86AC\u98D2\u6BF5\u7CC1\u7F2B\u556C\u94EF\u7A51\u94E9\u9CA8\u917E\u8BAA\u59D7\u9A9F\u9490\u9CDD\u57A7\u6B87\u89DE\u538D\u6EE0\u7572\u8BDC\u8C02\u6E16\u8C25\u57D8\u83B3\u5F11\u8F7C\u8D33\u94C8\u9CA5\u7EF6\u6445\u7EBE\u95E9\u94C4\u53AE\u9A77\u7F0C\u9536\u9E36\u85AE\u998A\u98D5\u953C\u8C21\u7A23\u8C07\u836A\u72F2\u5522\u7743\u95FC\u94CA\u9CCE\u949B\u9C90\u6619\u94BD\u952C\u9878\u50A5\u9967\u94F4\u9557\u97EC\u94FD\u7F07\u9E48\u9617\u7C9C\u9F86\u9CA6\u6078\u94AD\u948D\u629F\u9968\u7BA8\u9F0D\u5A32\u817D\u7EA8\u7EFE\u8F8B\u8BFF\u5E0F\u95F1\u6CA9\u6DA0\u73AE\u97EA\u709C\u9C94\u960C\u83B4\u9F8C\u90AC\u5E91\u6003\u59A9\u9A9B\u9E49\u9E5C\u9969\u960B\u73BA\u89CB\u7856\u82CB\u83B6\u85D3\u5C98\u7303\u5A34\u9E47\u75EB\u869D\u7C7C\u8DF9\u8297\u9977\u9AA7\u7F03\u98E8\u54D3\u6F47\u9A81\u7EE1\u67AD\u7BAB\u4EB5\u64B7\u7EC1\u7F2C\u9649\u8365\u9990\u9E3A\u8BE9\u987C\u8C16\u94C9\u955F\u8C11\u6CF6\u9CD5\u57D9\u6D54\u9C9F\u57AD\u5A05\u6860\u6C29\u53A3\u8D5D\u4FE8\u5156\u8C33\u6079\u95EB\u917D\u9B47\u990D\u9F39\u7080\u8F7A\u9E5E\u9CD0\u9765\u8C12\u90BA\u6654\u70E8\u8BD2\u5453\u5CC4\u9974\u603F\u9A7F\u7F22\u8F76\u8D3B\u9487\u9552\u9571\u7617\u8223\u94DF\u763E\u8314\u83BA\u8426\u84E5\u6484\u5624\u6EE2\u6F46\u748E\u9E66\u763F\u988F\u7F42\u955B\u83B8\u94D5\u9C7F\u4F1B\u4FE3\u8C00\u8C15\u84E3\u5D5B\u996B\u9608\u59AA\u7EA1\u89CE\u6B24\u94B0\u9E46\u9E6C\u9F89\u6A7C\u9E22\u9F0B\u94BA\u90D3\u82B8\u607D\u6120\u7EAD\u97EB\u6B92\u6C32\u74D2\u8DB1\u933E\u9A75\u8D5C\u5567\u5E3B\u7BA6\u8C2E\u7F2F\u8C35\u8BCF\u948A\u8C2A\u8F84\u9E67\u6D48\u7F1C\u6862\u8F78\u8D48\u796F\u9E29\u8BE4\u5CE5\u94B2\u94EE\u7B5D\u9A98\u6809\u6800\u8F75\u8F7E\u8D3D\u9E37\u86F3\u7D77\u8E2C\u8E2F\u89EF\u953A\u7EA3\u7EC9\u4F2B\u69E0\u94E2\u556D\u9994\u989E\u9A93\u7F12\u8BFC\u956F\u8C18\u7F01\u8F8E\u8D40\u7726\u9531\u9F87\u9CBB\u506C\u8BF9\u9A7A\u9CB0\u955E\u7F35\u8E9C\u9CDF\u8BA0\u8C2B\u90C4\u52D0\u51FC\u5742\u5785\u57B4\u57EF\u57DD\u82D8\u836C\u836E\u839C\u83BC\u83F0\u85C1\u63F8\u5412\u5423\u5494\u549D\u54B4\u5658\u567C\u56AF\u5E5E\u5C99\u5D74\u5F77\u5FBC\u72B8\u72CD\u9980\u9987\u9993\u9995\u6123\u61B7\u61D4\u4E2C\u6E86\u6EDF\u6EB7\u6F24\u6F74\u6FB9\u752F\u7E9F\u7ED4\u7EF1\u73C9\u67A7\u684A\u6849\u69D4\u6A65\u8F71\u8F77\u8D4D\u80B7\u80E8\u98DA\u7173\u7145\u7198\u610D\u6DFC\u781C\u78D9\u770D\u949A\u94B7\u94D8\u94DE\u9503\u950D\u950E\u950F\u9518\u951D\u952A\u952B\u953F\u9545\u954E\u9562\u9565\u9569\u9572\u7A06\u9E4B\u9E5B\u9E71\u75AC\u75B4\u75D6\u766F\u88E5\u8941\u8022\u98A5\u87A8\u9EB4\u9C85\u9C86\u9C87\u9C9E\u9CB4\u9CBA\u9CBC\u9CCA\u9CCB\u9CD8\u9CD9\u9792\u97B4\u9F44",TMe="\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u769A\u764C\u85F9\u77EE\u827E\u7919\u611B\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u9AAF\u6602\u76CE\u51F9\u6556\u71AC\u7FFA\u8956\u50B2\u5967\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u58E9\u9738\u7F77\u7238\u767D\u67CF\u767E\u64FA\u4F70\u6557\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9812\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u8FA6\u7D46\u90A6\u5E6B\u6886\u699C\u8180\u7D81\u68D2\u78C5\u868C\u938A\u508D\u8B17\u82DE\u80DE\u5305\u8912\u525D\u8584\u96F9\u4FDD\u5821\u98FD\u5BF6\u62B1\u5831\u66B4\u8C79\u9B91\u7206\u676F\u7891\u60B2\u5351\u5317\u8F29\u80CC\u8C9D\u92C7\u500D\u72FD\u5099\u618A\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7E43\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B46\u5F7C\u78A7\u84D6\u853D\u7562\u6583\u6BD6\u5E63\u5E87\u75F9\u9589\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u908A\u7DE8\u8CB6\u6241\u4FBF\u8B8A\u535E\u8FA8\u8FAF\u8FAE\u904D\u6A19\u5F6A\u8198\u8868\u9C49\u618B\u5225\u765F\u5F6C\u658C\u7015\u6FF1\u8CD3\u64EF\u5175\u51B0\u67C4\u4E19\u79C9\u9905\u70B3\u75C5\u4E26\u73BB\u83E0\u64AD\u64A5\u7F3D\u6CE2\u535A\u52C3\u640F\u9251\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u99C1\u6355\u8514\u54FA\u88DC\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8CA1\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C3\u8836\u6B98\u615A\u6158\u71E6\u84BC\u8259\u5009\u6EC4\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5EC1\u7B56\u5074\u518A\u6E2C\u5C64\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8A6B\u62C6\u67F4\u8C7A\u6519\u647B\u87EC\u995E\u8B92\u7E8F\u93DF\u7522\u95E1\u986B\u660C\u7316\u5834\u5617\u5E38\u9577\u511F\u8178\u5EE0\u655E\u66A2\u5531\u5021\u8D85\u6284\u9214\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8ECA\u626F\u64A4\u63A3\u5FB9\u6F88\u90F4\u81E3\u8FB0\u5875\u6668\u5FF1\u6C88\u9673\u8D81\u896F\u6490\u7A31\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u61F2\u6F84\u8AA0\u627F\u901E\u9A01\u79E4\u5403\u7661\u6301\u5319\u6C60\u9072\u5F1B\u99B3\u6065\u9F52\u4F88\u5C3A\u8D64\u7FC5\u65A5\u71BE\u5145\u6C96\u87F2\u5D07\u5BF5\u62BD\u916C\u7587\u8E8A\u7A20\u6101\u7C4C\u4EC7\u7DA2\u7785\u919C\u81ED\u521D\u51FA\u6AE5\u5EDA\u8E87\u92E4\u96DB\u6EC1\u9664\u695A\u790E\u5132\u77D7\u6410\u89F8\u8655\u63E3\u5DDD\u7A7F\u693D\u50B3\u8239\u5598\u4E32\u7621\u7A97\u5E62\u5E8A\u95D6\u5275\u5439\u708A\u6376\u9318\u5782\u6625\u693F\u9187\u5507\u6DF3\u7D14\u8822\u6233\u7DBD\u75B5\u8328\u78C1\u96CC\u8FAD\u6148\u74F7\u8A5E\u6B64\u523A\u8CDC\u6B21\u8070\u8525\u56EA\u5306\u5F9E\u53E2\u6E4A\u7C97\u918B\u7C07\u4FC3\u8EA5\u7BE1\u7AC4\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u932F\u642D\u9054\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E36\u6B86\u4EE3\u8CB8\u888B\u5F85\u902E\u6020\u803D\u64D4\u4E39\u55AE\u9132\u64A3\u81BD\u65E6\u6C2E\u4F46\u619A\u6DE1\u8A95\u5F48\u86CB\u7576\u64CB\u9EE8\u8569\u6A94\u5200\u6417\u8E48\u5012\u5CF6\u79B1\u5C0E\u5230\u7A3B\u60BC\u9053\u76DC\u5FB7\u5F97\u7684\u8E6C\u71C8\u767B\u7B49\u77AA\u51F3\u9127\u5824\u4F4E\u6EF4\u8FEA\u6575\u7B1B\u72C4\u6ECC\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u905E\u7DE0\u985B\u6382\u6EC7\u7898\u9EDE\u5178\u975B\u588A\u96FB\u4F43\u7538\u5E97\u60E6\u5960\u6FB1\u6BBF\u7889\u53FC\u96D5\u96D5\u5201\u6389\u540A\u91E3\u8ABF\u8DCC\u7239\u789F\u8776\u53E0\u8ADC\u758A\u4E01\u76EF\u53EE\u91D8\u9802\u9F0E\u9320\u5B9A\u8A02\u4E1F\u6771\u51AC\u8463\u61C2\u52D5\u68DF\u4F97\u606B\u51CD\u6D1E\u515C\u6296\u9B25\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u72A2\u7368\u8B80\u5835\u7779\u8CED\u675C\u934D\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u935B\u6BB5\u65B7\u7DDE\u5806\u514C\u968A\u5C0D\u58A9\u5678\u8E72\u6566\u9813\u56E4\u920D\u76FE\u9041\u6387\u54C6\u591A\u596A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u58AE\u86FE\u5CE8\u9D5D\u4FC4\u984D\u8A1B\u5A25\u60E1\u5384\u627C\u904F\u9102\u9913\u6069\u800C\u5152\u8033\u723E\u990C\u6D31\u4E8C\u8CB3\u767C\u7F70\u7B4F\u4F10\u4E4F\u95A5\u6CD5\u743A\u85E9\u5E06\u756A\u7FFB\u6A0A\u792C\u91E9\u7E41\u51E1\u7169\u53CD\u8FD4\u7BC4\u8CA9\u72AF\u98EF\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8A2A\u7D21\u653E\u83F2\u975E\u5561\u98DB\u80A5\u532A\u8AB9\u5420\u80BA\u5EE2\u6CB8\u8CBB\u82AC\u915A\u5429\u6C1B\u5206\u7D1B\u58B3\u711A\u6C7E\u7C89\u596E\u4EFD\u5FFF\u61A4\u7CDE\u8C50\u5C01\u6953\u8702\u5CF0\u92D2\u98A8\u760B\u70FD\u9022\u99AE\u7E2B\u8AF7\u5949\u9CF3\u4F5B\u5426\u592B\u6577\u819A\u5B75\u6276\u62C2\u8F3B\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u64AB\u8F14\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8CE6\u5FA9\u5085\u4ED8\u961C\u7236\u8179\u8CA0\u5BCC\u8A03\u9644\u5A66\u7E1B\u5490\u5676\u560E\u8A72\u6539\u6982\u9223\u84CB\u6E89\u5E79\u7518\u687F\u67D1\u7AFF\u809D\u8D95\u611F\u7A08\u6562\u8D1B\u5CA1\u525B\u92FC\u7F38\u809B\u7DB1\u5D17\u6E2F\u6760\u7BD9\u81EF\u9AD8\u818F\u7F94\u7CD5\u641E\u93AC\u7A3F\u544A\u54E5\u6B4C\u64F1\u6208\u9D3F\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u95A3\u9694\u927B\u500B\u5404\u7D66\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F94\u4F9B\u8EAC\u516C\u5BAE\u5F13\u978F\u6C5E\u62F1\u8CA2\u5171\u9264\u52FE\u6E9D\u830D\u72D7\u57A2\u69CB\u8CFC\u5920\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u8831\u9AA8\u8C37\u80A1\u6545\u9867\u56FA\u96C7\u522E\u74DC\u526E\u5BE1\u639B\u8902\u4E56\u62D0\u602A\u68FA\u95DC\u5B98\u51A0\u89C0\u7BA1\u9928\u7F50\u6163\u704C\u8CAB\u5149\u5EE3\u901B\u7470\u898F\u572D\u77FD\u6B78\u9F9C\u95A8\u8ECC\u9B3C\u8A6D\u7678\u6842\u6AC3\u8DEA\u8CB4\u528A\u8F25\u6EFE\u68CD\u934B\u90ED\u570B\u679C\u88F9\u904E\u54C8\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u99ED\u9163\u61A8\u90AF\u97D3\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6F22\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u865F\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u95A1\u6CB3\u6DB8\u8D6B\u8910\u9DB4\u8CC0\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A6B\u8861\u6052\u8F5F\u54C4\u70D8\u8679\u9D3B\u6D2A\u5B8F\u5F18\u7D05\u5589\u4FAF\u7334\u543C\u539A\u5019\u5F8C\u547C\u4E4E\u5FFD\u745A\u58FA\u846B\u80E1\u8774\u72D0\u7CCA\u6E56\u5F27\u864E\u552C\u8B77\u4E92\u6EEC\u6236\u82B1\u5629\u83EF\u733E\u6ED1\u756B\u5283\u5316\u8A71\u69D0\u5F8A\u61F7\u6DEE\u58DE\u6B61\u74B0\u6853\u9084\u7DE9\u63DB\u60A3\u559A\u7613\u8C62\u7165\u6E19\u5BA6\u5E7B\u8352\u614C\u9EC3\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8B0A\u7070\u63EE\u8F1D\u5FBD\u6062\u86D4\u56DE\u6BC0\u6094\u6167\u5349\u60E0\u6666\u8CC4\u7A62\u6703\u71F4\u532F\u8AF1\u8AA8\u7E6A\u8477\u660F\u5A5A\u9B42\u6E3E\u6DF7\u8C41\u6D3B\u5925\u706B\u7372\u6216\u60D1\u970D\u8CA8\u798D\u64CA\u573E\u57FA\u6A5F\u7578\u7A3D\u7A4D\u7B95\u808C\u9951\u8DE1\u6FC0\u8B4F\u96DE\u59EC\u7E3E\u7DDD\u5409\u6975\u68D8\u8F2F\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7D1A\u64E0\u5E7E\u810A\u5DF1\u858A\u6280\u5180\u5B63\u4F0E\u796D\u5291\u60B8\u6FDF\u5BC4\u5BC2\u8A08\u8A18\u65E2\u5FCC\u969B\u7E7C\u7D00\u5609\u67B7\u593E\u4F73\u5BB6\u52A0\u83A2\u9830\u8CC8\u7532\u9240\u5047\u7A3C\u50F9\u67B6\u99D5\u5AC1\u6BB2\u76E3\u5805\u5C16\u7B8B\u9593\u714E\u517C\u80A9\u8271\u5978\u7DD8\u7E6D\u6AA2\u67EC\u583F\u9E7C\u63C0\u64BF\u7C21\u5109\u526A\u6E1B\u85A6\u6ABB\u9452\u8E10\u8CE4\u898B\u9375\u7BAD\u4EF6\u5065\u8266\u528D\u991E\u6F38\u6FFA\u6F97\u5EFA\u50F5\u59DC\u5C07\u6F3F\u6C5F\u7586\u8523\u69F3\u734E\u8B1B\u5320\u91AC\u964D\u8549\u6912\u7901\u7126\u81A0\u4EA4\u90CA\u6F86\u9A55\u5B0C\u56BC\u652A\u9278\u77EF\u50E5\u8173\u72E1\u89D2\u9903\u7E73\u7D5E\u527F\u6559\u9175\u8F4E\u8F03\u53EB\u7A96\u63ED\u63A5\u7686\u7A2D\u8857\u968E\u622A\u52AB\u7BC0\u8396\u775B\u6676\u9BE8\u4EAC\u9A5A\u7CBE\u7CB3\u7D93\u4E95\u8B66\u666F\u9838\u975C\u5883\u656C\u93E1\u5F91\u75D9\u9756\u7ADF\u7AF6\u51C8\u70AF\u7A98\u63EA\u7A76\u7CFE\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u5EC4\u6551\u820A\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u99D2\u83CA\u5C40\u5480\u77E9\u8209\u6CAE\u805A\u62D2\u64DA\u5DE8\u5177\u8DDD\u8E1E\u92F8\u4FF1\u53E5\u61FC\u70AC\u5287\u6350\u9D51\u5A1F\u5026\u7737\u5377\u7D79\u6485\u652B\u6289\u6398\u5014\u7235\u6854\u5091\u6377\u776B\u7AED\u6F54\u7D50\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8AA1\u5C46\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7DCA\u9326\u50C5\u8B39\u9032\u9773\u6649\u7981\u8FD1\u71FC\u6D78\u76E1\u52C1\u834A\u5162\u89BA\u6C7A\u8A23\u7D55\u5747\u83CC\u921E\u8ECD\u541B\u5CFB\u4FCA\u7AE3\u6D5A\u90E1\u99FF\u5580\u5496\u5361\u54AF\u958B\u63E9\u6977\u51F1\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9846\u79D1\u6BBC\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8AB2\u80AF\u5543\u58BE\u61C7\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u6473\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5EAB\u8932\u8A87\u57AE\u630E\u8DE8\u80EF\u584A\u7B77\u5108\u5FEB\u5BEC\u6B3E\u5321\u7B50\u72C2\u6846\u7926\u7736\u66E0\u6CC1\u8667\u76D4\u5DCB\u7ABA\u8475\u594E\u9B41\u5080\u994B\u6127\u6F70\u5764\u6606\u6346\u56F0\u62EC\u64F4\u5ED3\u95CA\u5783\u62C9\u5587\u881F\u81D8\u8FA3\u5566\u840A\u4F86\u8CF4\u85CD\u5A6A\u6B04\u6514\u7C43\u95CC\u862D\u703E\u8B95\u652C\u89BD\u61F6\u7E9C\u721B\u6FEB\u746F\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u6488\u52DE\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6F87\u52D2\u6A02\u96F7\u9433\u857E\u78CA\u7D2F\u5121\u58D8\u64C2\u808B\u985E\u6DDA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7C6C\u8C8D\u96E2\u6F13\u7406\u674E\u88CF\u9BC9\u79AE\u8389\u8354\u540F\u6817\u9E97\u53B2\u52F5\u792B\u6B77\u5229\u5088\u4F8B\u4FD0\u75E2\u7ACB\u7C92\u701D\u96B8\u529B\u7483\u54E9\u5006\u806F\u84EE\u9023\u942E\u5EC9\u6190\u6F23\u7C3E\u6582\u81C9\u93C8\u6200\u7149\u7DF4\u7CE7\u6DBC\u6881\u7CB1\u826F\u5169\u8F1B\u91CF\u667E\u4EAE\u8AD2\u64A9\u804A\u50DA\u7642\u71CE\u5BE5\u907C\u6F66\u4E86\u6482\u9410\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u7375\u7433\u6797\u78F7\u9716\u81E8\u9130\u9C57\u6DCB\u51DC\u8CC3\u541D\u62CE\u73B2\u83F1\u96F6\u9F61\u9234\u4F36\u7F9A\u6DE9\u9748\u9675\u5DBA\u9818\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u993E\u7559\u5289\u7624\u6D41\u67F3\u516D\u9F8D\u807E\u56A8\u7C60\u7ABF\u9686\u58DF\u650F\u96B4\u6A13\u5A41\u645F\u7C0D\u6F0F\u964B\u8606\u76E7\u9871\u5EEC\u7210\u64C4\u9E75\u865C\u9B6F\u9E93\u788C\u9732\u8DEF\u8CC2\u9E7F\u6F5E\u797F\u9304\u9678\u622E\u9A62\u5442\u92C1\u4FB6\u65C5\u5C65\u5C62\u7E37\u616E\u6C2F\u5F8B\u7387\u6FFE\u7DA0\u5DD2\u6523\u5B7F\u7064\u5375\u4E82\u63A0\u7565\u6384\u8F2A\u502B\u4F96\u6DEA\u7DB8\u8AD6\u863F\u87BA\u7F85\u908F\u947C\u7C6E\u9A3E\u88F8\u843D\u6D1B\u99F1\u7D61\u5ABD\u9EBB\u746A\u78BC\u879E\u99AC\u7F75\u561B\u55CE\u57CB\u8CB7\u9EA5\u8CE3\u9081\u8108\u779E\u9945\u883B\u6EFF\u8513\u66FC\u6162\u6F2B\u8B3E\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u8C93\u8305\u9328\u6BDB\u77DB\u925A\u536F\u8302\u5192\u5E3D\u8C8C\u8CBF\u9EBD\u73AB\u679A\u6885\u9176\u9EF4\u7164\u6C92\u7709\u5A92\u9382\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u9580\u60B6\u5011\u840C\u8499\u6AAC\u76DF\u9333\u731B\u5922\u5B5F\u7787\u919A\u9761\u7CDC\u8FF7\u8B0E\u5F4C\u7C73\u79D8\u8993\u6CCC\u871C\u5BC6\u51AA\u68C9\u7720\u7DBF\u5195\u514D\u52C9\u5A29\u7DEC\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5EDF\u5999\u8511\u6EC5\u6C11\u62BF\u76BF\u654F\u61AB\u95A9\u660E\u879F\u9CF4\u9298\u540D\u547D\u8B2C\u6478\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8B00\u725F\u67D0\u62C7\u7261\u755D\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5436\u9209\u90A3\u5A1C\u7D0D\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96E3\u56CA\u6493\u8166\u60F1\u9B27\u6DD6\u5462\u9912\u5167\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u64EC\u59B3\u533F\u81A9\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u6506\u649A\u5FF5\u5A18\u91C0\u9CE5\u5C3F\u634F\u8076\u5B7D\u5699\u9477\u93B3\u6D85\u60A8\u6AB8\u7370\u51DD\u5BE7\u64F0\u6FD8\u725B\u626D\u9215\u7D10\u81BF\u6FC3\u8FB2\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u7627\u632A\u61E6\u7CEF\u8AFE\u54E6\u6B50\u9DD7\u6BC6\u85D5\u5614\u5076\u6F1A\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76E4\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u9F90\u65C1\u802A\u80D6\u62CB\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8CE0\u966A\u914D\u4F69\u6C9B\u5674\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9D6C\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A19\u98C4\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u983B\u8CA7\u54C1\u8058\u4E52\u576A\u860B\u840D\u5E73\u6191\u74F6\u8A55\u5C4F\u5761\u6F51\u9817\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u64B2\u92EA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6A38\u5703\u666E\u6D66\u8B5C\u66DD\u7011\u671F\u6B3A\u68F2\u621A\u59BB\u4E03\u6DD2\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u81CD\u9F4A\u65D7\u7948\u7941\u9A0E\u8D77\u8C48\u4E5E\u4F01\u555F\u5951\u780C\u5668\u6C23\u8FC4\u68C4\u6C7D\u6CE3\u8A16\u6390\u6D3D\u727D\u6261\u91EC\u925B\u5343\u9077\u7C3D\u4EDF\u8B19\u4E7E\u9ED4\u9322\u9257\u524D\u6F5B\u9063\u6DFA\u8B74\u5879\u5D4C\u6B20\u6B49\u69CD\u55C6\u8154\u7F8C\u58BB\u8594\u5F37\u6436\u6A47\u936C\u6572\u6084\u6A4B\u77A7\u55AC\u50D1\u5DE7\u9798\u64AC\u7FF9\u5CED\u4FCF\u7AC5\u5207\u8304\u4E14\u602F\u7ACA\u6B3D\u4FB5\u89AA\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BE2\u6C81\u9752\u8F15\u6C2B\u50BE\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9803\u8ACB\u6176\u74CA\u7AAE\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8DA8\u5340\u86C6\u66F2\u8EC0\u5C48\u9A45\u6E20\u53D6\u5A36\u9F72\u8DA3\u53BB\u5708\u9874\u6B0A\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u52F8\u7F3A\u7094\u7638\u537B\u9D72\u69B7\u78BA\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8B93\u9952\u64FE\u7E5E\u60F9\u71B1\u58EC\u4EC1\u4EBA\u5FCD\u97CC\u4EFB\u8A8D\u5203\u598A\u7D09\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u69AE\u878D\u7194\u6EB6\u5BB9\u7D68\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8EDF\u962E\u854A\u745E\u92B3\u958F\u6F64\u82E5\u5F31\u6492\u7051\u85A9\u816E\u9C13\u585E\u8CFD\u4E09\u4E09\u5098\u6563\u6851\u55D3\u55AA\u6414\u9A37\u6383\u5AC2\u745F\u8272\u6F80\u68EE\u50E7\u838E\u7802\u6BBA\u524E\u6C99\u7D17\u50BB\u5565\u715E\u7BE9\u66EC\u73CA\u82EB\u6749\u5C71\u522A\u717D\u886B\u9583\u965C\u64C5\u8D0D\u81B3\u5584\u6C55\u6247\u7E55\u5891\u50B7\u5546\u8CDE\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u71D2\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7D39\u5962\u8CD2\u86C7\u820C\u820D\u8D66\u651D\u5C04\u61FE\u6D89\u793E\u8A2D\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7D33\u795E\u6C88\u5BE9\u5B38\u751A\u814E\u614E\u6EF2\u8072\u751F\u7525\u7272\u5347\u7E69\u7701\u76DB\u5269\u52DD\u8056\u5E2B\u5931\u7345\u65BD\u6FD5\u8A69\u5C4D\u8671\u5341\u77F3\u62FE\u6642\u4EC0\u98DF\u8755\u5BE6\u8B58\u53F2\u77E2\u4F7F\u5C4E\u99DB\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52E2\u662F\u55DC\u566C\u9069\u4ED5\u4F8D\u91CB\u98FE\u6C0F\u5E02\u6043\u5BA4\u8996\u8A66\u6536\u624B\u9996\u5B88\u58FD\u6388\u552E\u53D7\u7626\u7378\u852C\u6A1E\u68B3\u6B8A\u6292\u8F38\u53D4\u8212\u6DD1\u758F\u66F8\u8D16\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C6C\u8853\u8FF0\u6A39\u675F\u620D\u8C4E\u5885\u5EB6\u6578\u6F31\u6055\u5237\u800D\u6454\u8870\u7529\u5E25\u6813\u62F4\u971C\u96D9\u723D\u8AB0\u6C34\u7761\u7A05\u542E\u77AC\u9806\u821C\u8AAA\u78A9\u6714\u720D\u65AF\u6495\u5636\u601D\u79C1\u53F8\u7D72\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u98FC\u5DF3\u677E\u8073\u616B\u980C\u9001\u5B8B\u8A1F\u8AA6\u641C\u8258\u64FB\u55FD\u8607\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8A34\u8085\u9178\u849C\u7B97\u96D6\u968B\u96A8\u7D8F\u9AD3\u788E\u6B72\u7A57\u9042\u96A7\u795F\u5B6B\u640D\u7B4D\u84D1\u68AD\u5506\u7E2E\u7463\u7D22\u9396\u6240\u584C\u4ED6\u5B83\u5979\u5854\u737A\u64BB\u8E4B\u8E0F\u80CE\u82D4\u64E1\u81FA\u6CF0\u915E\u592A\u614B\u6C70\u574D\u6524\u8CAA\u7671\u7058\u58C7\u6A80\u75F0\u6F6D\u8B5A\u8AC7\u5766\u6BEF\u8892\u78B3\u63A2\u5606\u70AD\u6E6F\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u71D9\u638F\u6FE4\u6ED4\u7D73\u8404\u6843\u9003\u6DD8\u9676\u8A0E\u5957\u7279\u85E4\u9A30\u75BC\u8B04\u68AF\u5254\u8E22\u92BB\u63D0\u984C\u8E44\u557C\u9AD4\u66FF\u568F\u60D5\u6D95\u5243\u5C5C\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u689D\u8FE2\u773A\u8DF3\u8CBC\u9435\u5E16\u5EF3\u807D\u70F4\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u9285\u5F64\u7AE5\u6876\u6345\u7B52\u7D71\u75DB\u5077\u6295\u982D\u900F\u51F8\u79BF\u7A81\u5716\u5F92\u9014\u5857\u5C60\u571F\u5410\u5154\u6E4D\u5718\u63A8\u9839\u817F\u86FB\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u812B\u9D15\u9640\u99B1\u99DD\u6A62\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u7AAA\u5A03\u74E6\u896A\u6B6A\u5916\u8C4C\u5F4E\u7063\u73A9\u9811\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u842C\u8155\u6C6A\u738B\u4EA1\u6789\u7DB2\u5F80\u65FA\u671B\u5FD8\u5984\u5A01\u5DCD\u5FAE\u5371\u97CB\u9055\u6845\u570D\u552F\u60DF\u70BA\u6FF0\u7DAD\u8466\u840E\u59D4\u5049\u507D\u5C3E\u7DEF\u672A\u851A\u5473\u754F\u80C3\u9935\u9B4F\u4F4D\u6E2D\u8B02\u5C09\u6170\u885B\u761F\u6EAB\u868A\u6587\u805E\u7D0B\u543B\u7A69\u7D0A\u554F\u55E1\u7FC1\u7515\u64BE\u8778\u6E26\u7AA9\u6211\u65A1\u81E5\u63E1\u6C83\u5DEB\u55DA\u93A2\u70CF\u6C59\u8AA3\u5C4B\u7121\u856A\u68A7\u543E\u5433\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u5862\u620A\u9727\u6664\u7269\u52FF\u52D9\u609F\u8AA4\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u932B\u72A7\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u8972\u5E2D\u7FD2\u5AB3\u559C\u9291\u6D17\u7CFB\u9699\u6232\u7D30\u778E\u8766\u5323\u971E\u8F44\u6687\u5CFD\u4FE0\u72F9\u4E0B\u5EC8\u590F\u5687\u6380\u9341\u5148\u4ED9\u9BAE\u7E96\u9E79\u8CE2\u929C\u8237\u9591\u6D8E\u5F26\u5ACC\u986F\u96AA\u73FE\u737B\u7E23\u817A\u9921\u7FA8\u61B2\u9677\u9650\u7DDA\u76F8\u5EC2\u9472\u9999\u7BB1\u8944\u6E58\u9109\u7FD4\u7965\u8A73\u60F3\u97FF\u4EAB\u9805\u5DF7\u6A61\u50CF\u5411\u8C61\u856D\u785D\u9704\u524A\u54EE\u56C2\u92B7\u6D88\u5BB5\u6DC6\u66C9\u5C0F\u5B5D\u6821\u8096\u562F\u7B11\u6548\u6954\u4E9B\u6B47\u880D\u978B\u5354\u633E\u651C\u90AA\u659C\u8105\u8AE7\u5BEB\u68B0\u5378\u87F9\u61C8\u6CC4\u7009\u8B1D\u5C51\u85AA\u82AF\u92C5\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u91C1\u661F\u8165\u7329\u60FA\u8208\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u5147\u80F8\u5308\u6D36\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u92B9\u79C0\u8896\u7E61\u589F\u620C\u9700\u865B\u5653\u9808\u5F90\u8A31\u84C4\u9157\u6558\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7DD2\u7E8C\u8ED2\u55A7\u5BA3\u61F8\u65CB\u7384\u9078\u766C\u7729\u7D62\u9774\u859B\u5B78\u7A74\u96EA\u8840\u52DB\u718F\u5FAA\u65EC\u8A62\u5C0B\u99B4\u5DE1\u6B89\u6C5B\u8A13\u8A0A\u905C\u8FC5\u58D3\u62BC\u9D09\u9D28\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u555E\u4E9E\u8A1D\u7109\u54BD\u95B9\u7159\u6DF9\u9E7D\u56B4\u7814\u8712\u5DD6\u5EF6\u8A00\u984F\u95BB\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8277\u5830\u71D5\u53AD\u786F\u96C1\u5501\u5F65\u7130\u5BB4\u8AFA\u9A57\u6B83\u592E\u9D26\u79E7\u694A\u63DA\u4F6F\u760D\u7F8A\u6D0B\u967D\u6C27\u4EF0\u7662\u990A\u6A23\u6F3E\u9080\u8170\u5996\u7464\u6416\u582F\u9059\u7AAF\u8B20\u59DA\u54AC\u8200\u85E5\u8981\u8000\u6930\u564E\u8036\u723A\u91CE\u51B6\u4E5F\u9801\u6396\u696D\u8449\u66F3\u814B\u591C\u6DB2\u58F9\u58F9\u91AB\u63D6\u92A5\u4F9D\u4F0A\u8863\u9824\u5937\u907A\u79FB\u5100\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5C\u6905\u87FB\u501A\u5DF2\u4E59\u77E3\u4EE5\u85DD\u6291\u6613\u9091\u5C79\u5104\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u61B6\u7FA9\u76CA\u6EA2\u8A63\u8B70\u8ABC\u8B6F\u7570\u7FFC\u7FCC\u7E79\u8335\u852D\u56E0\u6BB7\u97F3\u9670\u59FB\u541F\u9280\u6DEB\u5BC5\u98F2\u5C39\u5F15\u96B1\u5370\u82F1\u6AFB\u5B30\u9DF9\u61C9\u7E93\u7469\u87A2\u71DF\u7192\u8805\u8FCE\u8D0F\u76C8\u5F71\u7A4E\u786C\u6620\u55B2\u64C1\u50AD\u81C3\u7670\u5EB8\u96CD\u8E34\u86F9\u8A60\u6CF3\u6E67\u6C38\u607F\u52C7\u7528\u5E7D\u512A\u60A0\u6182\u5C24\u7531\u90F5\u923E\u7336\u6CB9\u904A\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8A98\u53C8\u5E7C\u8FC2\u6DE4\u65BC\u76C2\u6986\u865E\u611A\u8F3F\u4F59\u4FDE\u903E\u9B5A\u6109\u6E1D\u6F01\u9685\u4E88\u5A1B\u96E8\u8207\u5DBC\u79B9\u5B87\u8A9E\u7FBD\u7389\u57DF\u828B\u90C1\u7C72\u9047\u55BB\u5CEA\u79A6\u6108\u6B32\u7344\u80B2\u8B7D\u6D74\u5BD3\u88D5\u9810\u8C6B\u99AD\u9D1B\u6DF5\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F45\u5712\u54E1\u5713\u733F\u6E90\u7DE3\u9060\u82D1\u9858\u6028\u9662\u66F0\u7D04\u8D8A\u8E8D\u9470\u5DBD\u7CB5\u6708\u6085\u95B1\u8018\u96F2\u9116\u52FB\u9695\u5141\u904B\u860A\u919E\u6688\u97FB\u5B55\u531D\u7838\u96DC\u683D\u54C9\u707D\u5BB0\u8F09\u518D\u5728\u54B1\u6522\u66AB\u8D0A\u8D13\u81DF\u846C\u906D\u7CDF\u947F\u85FB\u68D7\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7AC8\u71E5\u8CAC\u64C7\u5247\u6FA4\u8CCA\u600E\u589E\u618E\u66FE\u8D08\u7D2E\u55B3\u6E23\u5284\u8ECB\u9358\u9598\u7728\u67F5\u69A8\u548B\u4E4D\u70B8\u8A50\u6458\u9F4B\u5B85\u7A84\u50B5\u5BE8\u77BB\u6C08\u8A79\u7C98\u6CBE\u76DE\u65AC\u8F3E\u5D84\u5C55\u8638\u68E7\u5360\u6230\u7AD9\u6E5B\u7DBB\u6A1F\u7AE0\u5F70\u6F33\u5F35\u638C\u6F32\u6756\u4E08\u5E33\u8CEC\u4ED7\u8139\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D99\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u87C4\u8F4D\u8005\u937A\u8517\u9019\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8C9E\u91DD\u5075\u6795\u75B9\u8A3A\u9707\u632F\u93AE\u9663\u84B8\u6399\u775C\u5F81\u7319\u722D\u6014\u6574\u62EF\u6B63\u653F\u5E40\u7665\u912D\u8B49\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7E54\u8077\u76F4\u690D\u6B96\u57F7\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7D19\u8A8C\u646F\u64F2\u81F3\u81F4\u7F6E\u5E5F\u5CD9\u5236\u667A\u79E9\u7A1A\u8CEA\u7099\u75D4\u6EEF\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u9418\u8877\u7D42\u7A2E\u816B\u91CD\u4EF2\u773E\u821F\u5468\u5DDE\u6D32\u8B05\u7CA5\u8EF8\u8098\u5E1A\u5492\u76BA\u5B99\u665D\u9A5F\u73E0\u682A\u86DB\u6731\u8C6C\u8AF8\u8A85\u9010\u7AF9\u71ED\u716E\u62C4\u77DA\u56D1\u4E3B\u8457\u67F1\u52A9\u86C0\u8CAF\u9444\u7BC9\u4F4F\u8A3B\u795D\u99D0\u6293\u722A\u62FD\u5C08\u78DA\u8F49\u64B0\u8CFA\u7BC6\u6A01\u838A\u88DD\u599D\u649E\u58EF\u72C0\u690E\u9310\u8FFD\u8D05\u589C\u7DB4\u8AC4\u6E96\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u8457\u707C\u6FC1\u8332\u54A8\u8CC7\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6F2C\u5B57\u9B03\u68D5\u8E64\u5B97\u7D9C\u7E3D\u7E31\u9112\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8A5B\u963B\u7D44\u9246\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7\u9312\u566F\u5B21\u74A6\u66D6\u9744\u8AF3\u92A8\u9D6A\u5ABC\u9A41\u9C32\u9200\u5504\u9211\u9D07\u9F59\u9D6F\u8CC1\u931B\u84FD\u55F6\u6F77\u924D\u7BF3\u8E55\u8290\u7DF6\u7C69\u9A43\u98AE\u98C6\u93E2\u9463\u9C3E\u5110\u7E7D\u6AB3\u6BAF\u81CF\u944C\u9AD5\u9B22\u7A1F\u9911\u9238\u9D53\u923D\u9A42\u9EF2\u60FB\u9364\u5115\u91F5\u56C5\u8AC2\u8B96\u8546\u61FA\u5B0B\u9A4F\u8998\u79AA\u9414\u5000\u8407\u60B5\u95B6\u9BE7\u7868\u5096\u8AF6\u6AEC\u78E3\u9F54\u68D6\u6A89\u92EE\u943A\u98ED\u9D1F\u9283\u5114\u5E6C\u8B8E\u82BB\u7D40\u8E95\u91E7\u6134\u7D9E\u9D89\u8F1F\u9F6A\u9DBF\u84EF\u9A44\u6A05\u8F33\u651B\u92BC\u9E7A\u5660\u97C3\u99D8\u7D3F\u6BAB\u8CE7\u7649\u7C1E\u8B9C\u78AD\u8960\u71FE\u9419\u7CF4\u8A46\u8AE6\u7D88\u89BF\u93D1\u5DD4\u923F\u7672\u929A\u9BDB\u9C08\u92CC\u92A9\u5D20\u9D87\u7AC7\u7006\u6ADD\u7258\u7BE4\u9EF7\u7C6A\u61DF\u9413\u71C9\u8E89\u9438\u8AE4\u580A\u95BC\u8EDB\u92E8\u9354\u9D9A\u984E\u9853\u9C77\u8A92\u9087\u927A\u9D2F\u9B9E\u9201\u9B74\u7DCB\u9428\u9BE1\u50E8\u7043\u9CE7\u99D9\u7D31\u7D3C\u8CFB\u9EA9\u9B92\u9C12\u91D3\u8CC5\u5C37\u641F\u7D3A\u6207\u776A\u8AA5\u7E1E\u92EF\u7D07\u9398\u6F41\u4E99\u8CE1\u7D86\u9BC1\u8A6C\u7DF1\u89AF\u8A41\u8F42\u9237\u932E\u9D23\u9D60\u9DBB\u9D30\u6451\u8A7F\u645C\u9E1B\u9C25\u7377\u532D\u528C\u5AAF\u6A9C\u9BAD\u9C56\u889E\u7DC4\u9BC0\u581D\u54BC\u5E57\u69E8\u87C8\u927F\u95DE\u7D4E\u9821\u705D\u9865\u8A36\u95D4\u8823\u9ECC\u8A0C\u8452\u958E\u9C5F\u6EF8\u9D98\u9A4A\u6A3A\u93F5\u5950\u7E6F\u9370\u9BC7\u9C09\u8A7C\u8588\u5666\u6FAE\u7E62\u743F\u6689\u8AE2\u991B\u95BD\u9225\u944A\u8A10\u8A70\u85BA\u5630\u568C\u9A65\u74A3\u89AC\u9F4F\u78EF\u7F88\u8806\u8E8B\u973D\u9C6D\u9BFD\u90DF\u6D79\u92CF\u93B5\u87EF\u8AEB\u7E11\u6214\u6229\u77BC\u9DBC\u7B67\u9C39\u97C9\u7D73\u97C1\u649F\u5DA0\u9DE6\u9BAB\u7664\u981C\u9B9A\u5DF9\u85CE\u9949\u7E09\u8D10\u89B2\u5244\u6D87\u9015\u5F33\u811B\u975A\u9B2E\u9CE9\u9DF2\u8A4E\u5C68\u6AF8\u98B6\u9245\u92E6\u7AB6\u9F5F\u9308\u942B\u96CB\u8B4E\u73A8\u76B8\u5274\u584F\u613E\u6137\u93A7\u9347\u9F95\u958C\u9227\u92AC\u9A0D\u7DD9\u8EFB\u9233\u9301\u9837\u9F66\u93D7\u56B3\u9136\u5672\u81BE\u736A\u9AD6\u8A86\u8A91\u913A\u58D9\u7E8A\u8CBA\u5331\u8562\u6192\u8075\u7C23\u95AB\u9315\u9BE4\u8810\u5D0D\u5FA0\u6DF6\u7028\u8CDA\u775E\u9338\u7669\u7C5F\u5D50\u6B16\u6595\u946D\u8964\u95AC\u92C3\u562E\u5D97\u92A0\u9412\u7646\u9C33\u8A84\u7E32\u5137\u9148\u58E2\u85F6\u849E\u863A\u56A6\u9090\u9A6A\u7E2D\u6AEA\u6ADF\u8F62\u792A\u92F0\u9E1D\u7658\u7CF2\u8E92\u9742\u9C7A\u9C67\u861E\u5969\u7032\u7489\u6BAE\u8933\u895D\u9C31\u9B4E\u7E5A\u91D5\u9DEF\u85FA\u5EE9\u6A81\u8F54\u8EAA\u7DBE\u6B1E\u87F6\u9BEA\u700F\u9A2E\u7DB9\u93A6\u9DDA\u8622\u7027\u74CF\u6AF3\u6727\u7931\u50C2\u851E\u560D\u5D81\u93E4\u763A\u802C\u87BB\u9ACF\u58DA\u64FC\u5695\u95AD\u7018\u6DE5\u6AE8\u6AD3\u8F64\u8F05\u8F46\u6C0C\u81DA\u9E15\u9DFA\u826B\u9C78\u81E0\u5B4C\u6B12\u9E1E\u947E\u5707\u7296\u7380\u6FFC\u6B0F\u8161\u93CD\u6ADA\u8938\u92DD\u5638\u561C\u5B24\u69AA\u52F1\u7E35\u93DD\u9859\u9C3B\u9EBC\u636B\u71DC\u61E3\u9346\u7F8B\u8B10\u737C\u79B0\u6FA0\u9766\u9EFD\u7DF2\u7E46\u9594\u7DE1\u8B28\u9A40\u9943\u6B7F\u93CC\u926C\u9403\u8A25\u922E\u9BE2\u8F26\u9BF0\u8526\u88CA\u9689\u8617\u56C1\u9862\u8EA1\u82E7\u5680\u8079\u5102\u5665\u99D1\u91F9\u513A\u8B33\u616A\u750C\u8E63\u76B0\u8F61\u7D15\u7F86\u9239\u8ADE\u99E2\u7E39\u5B2A\u91D9\u93F7\u9420\u8604\u9A0F\u7DBA\u69BF\u78E7\u980E\u980F\u9C2D\u50C9\u8541\u6173\u9A2B\u7E7E\u69E7\u9210\u5B19\u6AA3\u6227\u7197\u9306\u93D8\u93F9\u7FA5\u8E4C\u8A9A\u8B59\u854E\u7E70\u78FD\u8E7A\u611C\u9365\u7BCB\u92DF\u64B3\u9BD6\u7162\u86FA\u5DF0\u8CD5\u87E3\u9C0D\u8A58\u5D87\u95C3\u89B7\u9D1D\u8A6E\u7DA3\u8F07\u9293\u95CB\u95D5\u6128\u8558\u5B08\u6A48\u98EA\u8ED4\u5DB8\u8811\u7E1F\u92A3\u9870\u8706\u98AF\u6BFF\u7CDD\u7E45\u55C7\u92AB\u7A61\u93A9\u9BCA\u91C3\u8A15\u59CD\u9A38\u91E4\u9C54\u5770\u6BA4\u89F4\u5399\u7044\u756C\u8A75\u8AD7\u700B\u8B1A\u5852\u8494\u5F12\u8EFE\u8CB0\u9230\u9C23\u7DAC\u6504\u7D13\u9582\u9460\u5EDD\u99DF\u7DE6\u9376\u9DE5\u85EA\u993F\u98BC\u93AA\u8B16\u7A4C\u8AB6\u84C0\u733B\u55E9\u8127\u95E5\u9248\u9C28\u9226\u9B90\u66C7\u926D\u931F\u9807\u513B\u9933\u940B\u93DC\u97DC\u92F1\u7DF9\u9D5C\u95D0\u7CF6\u9F60\u9C37\u615F\u9204\u91F7\u6476\u98E9\u7C5C\u9F09\u5AA7\u8183\u7D08\u7DB0\u8F1E\u8AC9\u5E43\u95C8\u6E88\u6F7F\u744B\u97D9\u7152\u9BAA\u95BF\u8435\u9F77\u9114\u5EE1\u61AE\u5AF5\u9A16\u9D61\u9DA9\u993C\u9B29\u74BD\u89A1\u7864\u83A7\u859F\u861A\u5CF4\u736B\u5AFB\u9DF4\u7647\u8814\u79C8\u8E9A\u858C\u9909\u9A64\u7DD7\u9957\u5635\u701F\u9A4D\u7D83\u689F\u7C2B\u893B\u64F7\u7D32\u7E88\u9658\u6ECE\u9948\u9D42\u8A61\u980A\u8AFC\u9249\u93C7\u8B14\u6FA9\u9C48\u5864\u6F6F\u9C58\u57E1\u5A6D\u690F\u6C2C\u53B4\u8D17\u513C\u5157\u8B9E\u61E8\u9586\u91C5\u9B58\u995C\u9F34\u716C\u8EFA\u9DC2\u9C29\u9768\u8B01\u9134\u66C4\u71C1\u8A52\u56C8\u5DA7\u98F4\u61CC\u9A5B\u7E0A\u8EFC\u8CBD\u91D4\u93B0\u943F\u761E\u8264\u92A6\u766E\u584B\u9DAF\u7E08\u93A3\u6516\u56B6\u7005\u7020\u74D4\u9E1A\u766D\u9826\u7F4C\u93DE\u8555\u92AA\u9B77\u50B4\u4FC1\u8ADB\u8AED\u8577\u5D33\u98EB\u95BE\u5AD7\u7D06\u89A6\u6B5F\u923A\u9D52\u9DF8\u9F6C\u6ADE\u9CF6\u9EFF\u925E\u9106\u8553\u60F2\u614D\u7D1C\u97DE\u6B9E\u6C33\u74DA\u8DB2\u93E8\u99D4\u8CFE\u5616\u5E58\u7C00\u8B56\u7E52\u8B6B\u8A54\u91D7\u8B2B\u8F12\u9DD3\u6E5E\u7E1D\u6968\u8EEB\u8CD1\u798E\u9D06\u8ACD\u5D22\u9266\u931A\u7B8F\u9A2D\u6ADB\u6894\u8EF9\u8F0A\u8D04\u9DD9\u8784\u7E36\u8E93\u8E91\u89F6\u937E\u7D02\u7E10\u4F47\u6AE7\u9296\u56C0\u994C\u9873\u9A05\u7E0B\u8AD1\u9432\u8AEE\u7DC7\u8F1C\u8CB2\u7725\u9319\u9F5C\u9BD4\u50AF\u8ACF\u9A36\u9BEB\u93C3\u7E98\u8EA6\u9C52\u8A01\u8B7E\u90E4\u731B\u6C39\u962A\u58DF\u5816\u57B5\u588A\u6ABE\u8552\u8464\u84E7\u8493\u83C7\u69C1\u6463\u54A4\u551A\u54E2\u565D\u5645\u6485\u5288\u8B14\u8946\u5DB4\u810A\u4EFF\u50E5\u7341\u9E85\u9918\u9937\u994A\u9962\u695E\u6035\u61CD\u723F\u6F35\u7069\u6DF7\u6FEB\u7026\u6DE1\u5BE7\u7CF8\u7D5D\u7DD4\u7449\u6898\u68EC\u6848\u6A70\u6AEB\u8EF2\u8EE4\u8CEB\u8181\u8156\u98C8\u7CCA\u7146\u6E9C\u6E63\u6E3A\u78B8\u6EFE\u7798\u9208\u9255\u92E3\u92B1\u92E5\u92F6\u9426\u9427\u9369\u9340\u9343\u9307\u9384\u9387\u93BF\u941D\u9465\u9479\u9454\u7A6D\u9D93\u9DA5\u9E0C\u7667\u5C59\u7602\u81D2\u8947\u7E48\u802E\u986C\u87CE\u9EAF\u9B81\u9B83\u9B8E\u9BD7\u9BDD\u9BF4\u9C5D\u9BFF\u9C20\u9C35\u9C45\u97BD\u97DD\u9F47";function EMe(t){return e2t.charAt(TMe.indexOf(t.charAt(0)))}var C1r=new RegExp("[\u4E00-\u9FA5]+");function bMe(t){return TMe.includes(t)}var hi=class{static GetBytes(r){switch(typeof r){case"string":{let e=new Uint16Array(r.length);for(let i=0;i4294967295?function(e){return e[0]=r,new Uint8Array(e.buffer)}(new Float64Array(1)):function(e){return e[0]=r,new Uint8Array(e.buffer)}(new Int32Array(1)):function(e){return e[0]=r,new Uint8Array(e.buffer)}(new Float64Array(1));case"boolean":return function(e){return e[0]=Number(r),e}(new Uint8Array(1));default:if(r instanceof Array){let e=[];for(let a=0;ar.length&&(i-=e);let n="";for(let s=0;sr.length&&(i-=e);let n=new Uint8Array(i);for(let s=0;s1&&(s.push(a.slice()),a=[]);break;case 3:c++,i/=e[c];break;case 4:c++,i*=e[c];break;case 5:if(o.length===4)throw"The position stack is only four locations deep";o.push(n);break;case 6:n=o.pop(),a.length>1&&(s.push(a.slice()),a=[]),l&&a.push(n.clone());break;case 7:{let h=0,p,d=i*r.baseUp,f=n.clone();switch(a.length>1&&(s.push(a.slice()),a=[]),r.type){case 0:c++,h=e[c];break;case 1:c++,h=e[c],h==0&&(c++,h=hi.ToUInt16(new Uint8Array([e[c++],e[c++]]),0),f.x=e[c++]*i,f.y=e[c++]*i,d=e[c]*i);break;case 2:c+=2,h=hi.ToUInt16(new Uint8Array([e[c-1],e[c]]),0);break;default:break}h!==0&&(p=r.getGraphicTextShape(h,d,f),p&&(s.push(...p.polyLines.slice()),n=p.lastPoint.clone()))}break;case 8:{let h=new le;h.x=hi.byteTosbyte(e[++c]),h.y=hi.byteTosbyte(e[++c]),n.add(h.multiplyScalar(i)),l&&a.push(n.clone())}break;case 9:for(;;){let p=new le;if(p.x=hi.byteTosbyte(e[++c]),p.y=hi.byteTosbyte(e[++c]),p.x==0&&p.y==0)break;n.add(p.multiplyScalar(i)),l&&a.push(n.clone())}break;case 10:{let h=e[++c]*i,p=hi.byteTosbyte(e[++c]),d=(p&112)>>4,f=p&7;f==0&&(f=8);let m=Math.PI/4,g=m*f,y=jf.CICLESPAN;p<0&&(y=-y,g=-g);let E=m*d,b=E+g,x=n.clone().sub(new le(Math.cos(E)*h,Math.sin(E)*h));if(n=x.clone().add(new le(Math.cos(b)*h,Math.sin(b)*h)),l){let S=E,D=!0;for(;D&&(S+=y,p>=0&&Sb);)a.push(x.clone().add(new le(h*Math.cos(S),h*Math.sin(S))));a.push(n.clone())}}break;case 11:{let h=e[++c],p=e[++c],d=e[++c],f=e[++c],m=(d*255+f)*i,g=hi.byteTosbyte(e[++c]),y=(g&112)>>4,E=g&7;E==0&&(E=8),p!=0&&E--;let b=Math.PI/4,x=b*E,S=jf.CICLESPAN,D=1;g<0&&(S=-S,x=-x,D=-1);let P=b*y,_=P+x;P+=b*h/256*D,_+=b*p/256*D;let w=n.clone().sub(new le(m*Math.cos(P),m*Math.sin(P)));if(n=w.clone().add(new le(m*Math.cos(_),m*Math.sin(_))),l){let F=P,X=!0;for(;X&&(F+=S,g>0&&F<_||g<0&&F>_);)a.push(w.clone().add(new le(m*Math.cos(F),m*Math.sin(F))));a.push(n.clone())}}break;case 12:{let h=new le;h.x=hi.byteTosbyte(e[++c])*i,h.y=hi.byteTosbyte(e[++c])*i;let p=hi.byteTosbyte(e[++c]);p<-127&&(p=-127),l&&(p==0?a.push(n.clone().add(h)):a.push(jf._generateArcPoints(n,h,p/127))),n.add(h)}break;case 13:for(;;){let p=new le;if(p.x=hi.byteTosbyte(e[++c])*i,p.y=hi.byteTosbyte(e[++c])*i,p.x==0&&p.y==0)break;let d=hi.byteTosbyte(e[++c]);d<-127&&(d=-127),l&&(d==0?a.push(n.clone().add(p)):a.push(jf._generateArcPoints(n.clone(),p,d/127))),n.add(p)}break;case 14:c=jf.skipCode(r,e,++c);break;default:if(u>15){let h=(u&240)>>4,p=u&15,d=new le;switch(p){case 0:d.x=1;break;case 1:d.x=1,d.y=.5;break;case 2:d.x=1,d.y=1;break;case 3:d.x=.5,d.y=1;break;case 4:d.y=1;break;case 5:d.x=-.5,d.y=1;break;case 6:d.x=-1,d.y=1;break;case 7:d.x=-1,d.y=.5;break;case 8:d.x=-1;break;case 9:d.x=-1,d.y=-.5;break;case 10:d.x=-1,d.y=-1;break;case 11:d.x=-.5,d.y=-1;break;case 12:d.y=-1;break;case 13:d.x=.5,d.y=-1;break;case 14:d.x=1,d.y=-1;break;case 15:d.x=1,d.y=-.5;break}n.add(d.multiplyScalar(h*i)),l&&a.push(n.clone())}break}}return new nd(n,s)}static skipCode(r,e,i){switch(e[i]){case 0:break;case 1:break;case 2:break;case 3:case 4:i++;break;case 5:break;case 6:break;case 7:switch(r.type){case 0:i++;break;case 1:i++,e[i]==0&&(i+=6);break;case 2:i+=2;break}break;case 8:i+=2;break;case 9:for(;;){let a=e[++i],o=e[++i];if(a==0&&o==0)break}break;case 10:i+=2;break;case 11:i+=5;break;case 12:i+=3;break;case 13:for(;;){let a=e[++i],o=e[++i];if(a==0&&o==0)break;let l=e[++i]}break;case 14:break;default:break}return i}static _generateArcPoints(r,e,i){let n=r.clone().add(e),s=i<0,a=!1;i=Math.abs(i);let o=e.length()/2,l=o*i,c=2*Math.atan(1/i),u=new le(e.y,-e.x);u.normalize(),u.multiplyScalar(l);let h=Math.abs(o/Math.sin(c/2)),p=r.add(e.divideScalar(2));a!==s?p.add(u):p.sub(u);let d=r.sub(p),f=n.sub(p),m=Math.atan2(d.y,d.x),g=Math.atan2(f.y,f.x),y=jf.CICLESPAN;s?(y=-y,mg&&(m-=2*Math.PI);let E=m,b=!0;for(;b;){if(E+=y,!s&&Eg)return p.add(new le(h*Math.cos(E),h*Math.sin(E)));break}return n}},Xl=jf;Xl.stopFlag="0x00",Xl.FILE_STOP_FLAG=["\r",` +`,""],Xl.CICLESPAN=Math.PI/18;var rO={130:[[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],131:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],132:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]]],133:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]]],134:[[[3,0],[7,0]],[[5,0],[5,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],135:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],136:[[[3,0],[7,0]],[[4,0],[4,9.5]],[[6,0],[6,9.5]],[[4,7.1],[2.6,6.6],[2.1,6.2],[1.7,5.4],[1.6,4],[2.1,3],[2.6,2.6],[3.9,2.2],[6.1,2.2],[7.5,2.6],[8,3.1],[8.4,3.9],[8.4,5.2],[7.9,6.1],[7.5,6.6],[6.1,7.1],[4,7.1]],[[3,9.5],[7,9.5]],[[12,10],[9,10],[9,6]],[[9,8],[11,8]]],178:[[[1.142,9.285],[1.142,9.428],[1.285,9.714],[1.428,9.857],[1.714,10],[2.285,10],[2.571,9.857],[2.714,9.714],[2.857,9.428],[2.857,9.142],[2.714,8.857],[2.428,8.428],[1,7],[3,7]]],8960:[[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]],[[0,0],[8,8]]],20393:[[[0,0],[0,6.666]],[[0,4.761],[1.428,6.19],[2.38,6.666],[3.809,6.666],[4.761,6.19],[5.238,4.761],[5.238,0]],[[5.238,4.761],[6.666,6.19],[7.619,6.666],[9.047,6.666],[10,6.19],[10.476,4.761],[10.476,0]],[[11.142,9.285],[11.142,9.428],[11.285,9.714],[11.428,9.857],[11.714,10],[12.285,10],[12.571,9.857],[12.714,9.714],[12.857,9.428],[12.857,9.142],[12.714,8.857],[12.428,8.428],[11,7],[13,7]]],41123:[],55714:[[[2,5.9],[2.6,6.1],[3.4,7],[3.4,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],55970:[[[2.3,5.6],[2.3,5.9],[2.6,6.4],[2.9,6.7],[3.4,7],[4.6,7],[5.1,6.7],[5.4,6.4],[5.7,5.9],[5.7,5.3],[5.4,4.7],[4.9,3.9],[2,1],[6,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56226:[[[2.6,7],[5.7,7],[4,4.7],[4.9,4.7],[5.4,4.4],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56482:[[[4.9,7],[2,3],[6.3,3]],[[4.9,7],[4.9,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56738:[[[5.4,7],[2.6,7],[2.3,4.4],[2.6,4.7],[3.4,5],[4.3,5],[5.1,4.7],[5.7,4.1],[6,3.3],[6,2.7],[5.7,1.9],[5.1,1.3],[4.3,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],56994:[[[5.4,6.1],[5.1,6.7],[4.3,7],[3.7,7],[2.9,6.7],[2.3,5.9],[2,4.4],[2,3],[2.3,1.9],[2.9,1.3],[3.7,1],[4,1],[4.9,1.3],[5.4,1.9],[5.7,2.7],[5.7,3],[5.4,3.9],[4.9,4.4],[4,4.7],[3.7,4.7],[2.9,4.4],[2.3,3.9],[2,3]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57250:[[[2,7],[6,7],[3.1,1]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57506:[[[3.4,7],[2.6,6.7],[2.3,6.1],[2.3,5.6],[2.6,5],[3.1,4.7],[4.3,4.4],[5.1,4.1],[5.7,3.6],[6,3],[6,2.1],[5.7,1.6],[5.4,1.3],[4.6,1],[3.4,1],[2.6,1.3],[2.3,1.6],[2,2.1],[2,3],[2.3,3.6],[2.9,4.1],[3.7,4.4],[4.9,4.7],[5.4,5],[5.7,5.6],[5.7,6.1],[5.4,6.7],[4.6,7],[3.4,7]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],57762:[[[5.7,5],[5.4,4.1],[4.9,3.6],[4,3.3],[3.7,3.3],[2.9,3.6],[2.3,4.1],[2,5],[2,5.3],[2.3,6.1],[2.9,6.7],[3.7,7],[4,7],[4.9,6.7],[5.4,6.1],[5.7,5],[5.7,3.6],[5.4,2.1],[4.9,1.3],[4,1],[3.4,1],[2.6,1.3],[2.3,1.9]],[[2.9,8],[1.7,7.4],[.6,6.3],[0,4.6],[0,3.4],[.6,1.7],[1.7,.6],[2.9,0],[4.6,0],[5.7,.6],[6.9,1.7],[7.4,3.4],[7.4,4.6],[6.9,6.3],[5.7,7.4],[4.6,8],[2.9,8]]],60070:[[[0,6],[10,6],[10,4]]],60326:[[[0,7],[0,5],[10,5]]]};var iO=new Qi,Wf=class{constructor(r){this.type=1;this.info="";this.orientation=0;this.baseUp=0;this.baseDown=0;this.fileHeader="";this.fileVersion="";this.datas={};this.graphicData=new Map;this.url=r}getGraphicDataByCode(r,e){if(r===0)return;let i=this.datas;if(!this.graphicData.has(r))if(i[r]){let n=i[r],s=eO/this.baseUp,a=Xl.parserCode(this,n,s);this.graphicData.set(r,a)}else{if(rO[r]){let n=[];for(let o=0;onew le(l[0],l[1])));let s=new nd(new le,n),a=e/eO;return iO.identity().scale(a,a),s.transform(iO)}return}if(this.graphicData.has(r)){let n=e/eO;return iO.identity().scale(n,n),this.graphicData.get(r).transform(iO)}}getGraphicTextShape(r,e,i){var n;return(n=this.getGraphicDataByCode(r,e))==null?void 0:n.offset(i)}getFontFile(){return{url:this.url,type:this.type,datas:this.datas,info:this.info,orientation:this.orientation,baseUp:this.baseUp,baseDown:this.baseDown,fileHeader:this.fileHeader,fileVersion:this.fileVersion}}setFontFile(r){this.url=r.url,this.type=r.type,this.datas=r.datas,this.info=r.info,this.orientation=r.orientation,this.baseUp=r.baseUp,this.baseDown=r.baseDown,this.fileHeader=r.fileHeader,this.fileVersion=r.fileVersion}releaseFontData(){this.datas={},this.graphicData.clear()}setFontDataToIndexedDb(){return ot(this,null,function*(){let r=this.getFontFile();return new Promise((e,i)=>{lh.instance().save(r,()=>{console.log(`[FontFile] Saved '${this.url}' (${this.fileHeader}) to indexedDb`),e()},n=>i(`[FontFile] Failed to save '${this.url}' (${this.fileHeader}) to indexedDb! ${n}`))})})}getFontDataByIndexedDb(){return ot(this,null,function*(){return new Promise((r,e)=>{lh.instance().query(this.url,i=>{r(i)},()=>e("[FontFile] Failed to get FontData from IndexedDB"))})})}};var fS=class extends Wf{constructor(e){super(e);this.isExtend=!1;this.type=1}init(e){hi.ToInt16(e.readBytes(2),0);let i=hi.ToInt16(e.readBytes(2),0),n=hi.ToInt16(e.readBytes(2),0);for(let u=0;u>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:r+=String.fromCharCode(i);break;case 12:case 13:n=t[e++],r+=String.fromCharCode((i&31)<<6|n&63);break;case 14:n=t[e++],s=t[e++],r+=String.fromCharCode((i&15)<<12|(n&63)<<6|(s&63)<<0);break}return r}var mS=class extends Wf{constructor(e){super(e);this.type=0}init(e){e.readBytes(2),e.readBytes(2);let i=hi.ToInt16(e.readBytes(2),0),n=[];for(let c=0;co){d?(p+=E.width+a,d=!1):(d=!0,p=0,h-=s+n),nO.set(p,h);let b=E.offset(nO);c.push(b),!d&&(p+=E.width+a)}else{nO.set(p,h);let b=E.offset(nO);c.push(b),p+=E.width+a}}d=!1,p=0,h-=s+n}return c}getNotFoundTextShape(e){let i=Xl.getCode("\uFF1F");return this.getGraphicDataByCode(i,e)}generateShapes(e,i=sO.DEFAULT_SIZE,n=0,s=0,a=0){return this.getGraphicData(e,i,n,s,a)}addUnsupportedChar(e){this.unsupportedChars[e]||(this.unsupportedChars[e]=0),this.unsupportedChars[e]++}static checkFontIsLoaded(e){return ot(this,null,function*(){let i=!1,n=yield lh.instance().queryAll();if(n.length!==e.length)return!1;for(let s=0;si.setFontDataToIndexedDb());return yield Promise.all(e).then(()=>{ne.debug("[ShxFont] Saves font data to IndexDB")})})}getFontData(){return ot(this,null,function*(){let e=yield lh.instance().queryAll(),i=[],n=new Map;for(let s=0;s{let o=this.parse(a);e&&e(o)}).catch(a=>{n&&n(a)})}loadFile(r,e){return ot(this,null,function*(){return new Promise((n,s)=>{let a=new ci(this.manager);a.setResponseType("arraybuffer"),a.load(r,o=>{n({url:r,arrayBuffer:o})},e,o=>{s(o)})})})}loadAsync(r,e){return ot(this,null,function*(){return Array.isArray(r)||(r=[r]),(yield Xc.checkFontIsLoaded(r))?Promise.resolve(new Xc):new Promise((n,s)=>{this.load(r,n,e,s)})})}parse(r){return new Xc(r)}static isShxFile(r){var e;return((e=r.split(".").pop())==null?void 0:e.toLowerCase())==="shx"}};var qf=new A(1,0,0),O8=new A(0,1,0),aO=new A(0,0,1),xMe=new A(0,0,0),Yf=0,i2t="CONTINUOUS",P8=new Vn({color:Yf}),Pa=new Tr({color:Yf}),vS=new or({color:Yf}),IMe=new Ue;var N8=new Ue,$c=new Ue,ps=new A,yS=new A,TS=new le,SMe=new Or,n2t=t=>t.viewDirectionFromTarget!==void 0,s2t=t=>{if(t){let r=t.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);if(r&&r.length>0){let e=r[1],i=t.replace("data:"+e+";","").split(",");if(i&&i.length===2&&i[0]==="base64"){let n=i[1];return HRe.decode(n)}}}return null},KT={Math:{}};KT.Math.angle2=function(t,r){let e=new le(t.x,t.y),i=new le(r.x,r.y);return i.sub(e),i.normalize(),i.y<0?-Math.acos(i.x):Math.acos(i.x)};KT.Math.polar=function(t,r,e){return{x:t.x+r*Math.cos(e),y:t.y+r*Math.sin(e)}};var a2t=(t,r,e,i)=>{let n=t?new le(t.x,t.y):new le(0,0),s=r?new le(r.x,r.y):new le(1,0);e=e||1;let a=4*Math.atan(e),o=n.distanceTo(s)/2/Math.sin(a/2),l=KT.Math.polar(t,o,KT.Math.angle2(n,s)+(Math.PI/2-a/2));i=i||Math.max(Math.abs(Math.ceil(a/(Math.PI/18))),6);let c=KT.Math.angle2(l,n),u=a/i,h=[];h.push(new A(n.x,n.y,0));for(let p=1;p<=i-1;p++){let d=KT.Math.polar(l,Math.abs(o),c+u*p);h.push(new A(d.x,d.y,0))}return h},o2t=(t,r,e,i=t.length*2,n)=>{let s=[],a=t.map(o=>[o.x,o.y]);for(let o=0;o<1;o+=1/i){let l=S8(o,r,a,e,n);s.push(new A(l[0],l[1],0))}return s},L8=(t,r=!1)=>{let e=[],i=t.length;for(let n=0;n{let r=[];return t.faceA&&r.push(t.faceA),t.faceB&&r.push(t.faceB),t.faceC&&r.push(t.faceC),t.faceD&&r.push(t.faceD),r},c2t=t=>{let r=[],e=[];t.forEach(n=>{n.polyfaceMeshVertex&&(n.threeDPolylineMesh?r.push(new A(n.x,n.y,n.z)):e.push(l2t(n)))});let i=[];for(let n=0;n=r.length||c<0){o=!1;break}a.push(r[c])}!o||a.length===0||(a.push(a[0]),i.push(a))}return i},Ri=class extends li{constructor(e=!1,i=!0){super();this.timer=Date.now();this.ignorePaperSpace=!1;this.angBase=0;this.angDir=0;this.header=void 0;this.pointsMaterials={};this.lineBasicMaterials={};this.lineShaderMaterials={};this.meshBasicMaterials={};this.meshTextureMaterials={};this.hatchShaderMaterials=[];this.entityCount=0;this.curveCount=0;this.averageCurveSize=0;this.enableRenderOrder=!1;this.enableLocalCache=!0;this.enableReleaseData=!0;this.enableMerge=!0;this.enableSimplify=!0;this.enableRTC=!0;this.enableWidthLine=!1;this.dxfDataId=void 0;this.compareContext=void 0;this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0};this.blockReferencesCache={};this.blockRecordsCache=void 0;this.entitiesCache=void 0;this.blocksCache=void 0;this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0;this.spatialFiltersCache=void 0;this.entityThreejsCache=void 0;this.entityTypesAndTimes=void 0;this.nonSnapableTypes=new Set(["ATTDEF","ATTRIB","LEADER","MTEXT","MULTILEADER","OLE2FRAME","TEXT"]);this.entityHandlesWithRenderOrder={};this.addViewport=(e,i)=>{if(e.type==="VIEWPORT"){i[e.ownerHandle]||(i[e.ownerHandle]=[]);let n=e;i[e.ownerHandle].push(n)}};Ri.abortJobs=!1,this.ignorePaperSpace=e,this.enableLocalCache=i,this.pointsMaterials[Yf]=P8,this.lineBasicMaterials[Yf]=Pa,this.meshBasicMaterials[Yf]=vS}setFont(e){return this.font=e,this}download(e,i){return ot(this,null,function*(){let n=s2t(e);if(!n){let s=Date.now(),a=new ci(this.manager);a.setResponseType("arraybuffer"),a.setPath(this.path),n=yield a.loadAsync(e,i),ne.info(`[DxfLoader] ${e} dxf file downloaded in ${(Date.now()-s)/1e3}s`)}return n})}load(e,i,n){return ot(this,null,function*(){return this.enableLocalCache&&i&&(i=i.trim()).length>0&&(this.dxfDataId=i),this.loadAsync(e,n)})}loadAsync(e,i){return ot(this,null,function*(){let n=(u,h,p)=>{let d=u.loaded*100/u.total;d=d*(p-h)/100+h,i&&i(new ProgressEvent(u.type,{loaded:d,total:100}))},s=u=>n(u,0,50),a=u=>n(u,50,100),o=u=>n(u,10,100);if(this.enableLocalCache&&this.dxfDataId){let u;try{if(this.timer=Date.now(),u=yield this.getDxfDataFromIndexedDb(this.dxfDataId),u){ne.info(`[DxfLoader] Loaded DxfData from indexedDb in ${(Date.now()-this.timer)/1e3}s`);let h=yield this.loadEntities(u,o);return Promise.resolve(h)}}catch(h){ne.warn("[DxfLoader] Failed to parse data from indexedDb",h)}}let l=yield this.parse(e,s);return yield this.loadEntities(l,a)})}parse(e,i){return ot(this,null,function*(){let n=c=>{i&&i(new ProgressEvent("",{loaded:c,total:100}))},s=(c,u,h)=>{let p=c.loaded*100/c.total;p=p*(h-u)/100+u,p>h&&(ne.warn("[DxfLoader] Invalid ProgressEvent:",c),p=h),i&&i(new ProgressEvent(c.type,{loaded:p,total:100}))},a=c=>s(c,0,40),o=yield this.download(e,a);if(!o)return Promise.reject(`[DxfLoader] Failed to download ${e}`);if(Ri.abortJobs)return Promise.reject("[DXFLoader] Job aborted");this.timer=Date.now(),ne.info("[DxfLoader] Start parsing...");let l=new x0().parseSync(o);if(n(80),ne.info(`[DxfLoader] Parsed in ${(Date.now()-this.timer)/1e3}s, creating entities...`),Ri.abortJobs)return Promise.reject("[DXFLoader] Job aborted");if(l&&(l.objects.LAYOUT||(ne.warn("[DxfLoader] No layout defined! Will add a default 'Model' layout!"),l.objects.LAYOUT=[{layoutName:Ri.MODEL_LAYOUT_NAME}]),this.enableLocalCache&&this.dxfDataId)){let c=Date.now();try{yield this.setDxfDataToIndexedDb(this.dxfDataId,l),ne.info(`[DxfLoader] Saved to indexedDb in ${(Date.now()-c)/1e3}s`)}catch(u){ne.warn(`[DxfLoader] Failed to save '${this.dxfDataId}' to indexedDb!`,u)}}return n(100),l})}parseHeader(e){if(!e){ne.error("[DxfLoader]: Invalid header!");return}this.header=e;let i=e.$ACADVER.toString();i!=="AC1032"&&ne.warn(`[DxfLoader] Unexpected version: ${i}. But we'll try to continue.`),this.angBase=e.$ANGBASE||0,this.angDir=e.$ANGDIR||0}loadEntities(e,i){return ot(this,null,function*(){let n=Date.now();this.parseHeader(e.header),this.enableRenderOrder&&(this.initRenderOrderInfo(e),this.enableMerge=!1);let s=0,a=e.entities.length;this.entityCount=a,Object.keys(e.blocks).forEach(x=>{var S;this.entityCount+=((S=e.blocks[x].entities)==null?void 0:S.length)||0});let o=Math.round(Math.pow(a,.5)),l=Date.now(),c=x=>ot(this,null,function*(){if(i&&(x%o===0||x===a-1)){i(new ProgressEvent("parseProgress",{loaded:x+1,total:a}));let S=500,D=Date.now();(D-l>S||x===a-1)&&(yield bs.sleep(0),l=D)}}),u={};e.objects.LAYOUT.forEach(x=>{let S=x;u[S.layoutName]=S});let h={},p=x=>{let S=x.userData.layerName,D=h[S];D||(D=[],h[S]=D),D.push(x)},d={},f={},m=new hr;Qr.setSharedVariablesOfObject(m);for(let x=0;xH.name===_);w||(w=new hr,Qr.setSharedVariablesOfObject(w),w.name=_,w.userData.isLayoutLevelObject=!0,m.add(w)),s++,f[_]||(f[_]={object:w,layerObjects:{}});let F=f[_],X;if(_!==Ri.MODEL_LAYOUT_NAME){let H=u[_];H.directAssociatedLeafObjectSet||(H.directAssociatedLeafObjectSet=new Set),X=H.directAssociatedLeafObjectSet}if(this.enableMerge&&D.geometry){Qr.setSharedVariablesOfObject(D);let H=D.userData.layerName;this.getLayerVisible(e,H)===!1&&(D.visible=!1),F.layerObjects[H]||(F.layerObjects[H]=[]),F.layerObjects[H].push(D)}else w.add(D),D.traverse(H=>{if(Qr.setSharedVariablesOfObject(H),H.geometry){let he=H.userData.layerName;this.getLayerVisible(e,he)===!1&&(H.visible=!1),p(H),X&&X.add(H)}});yield c(x)}e.objects.LAYOUT.forEach(x=>{let S=x,D=S.layoutName;if(this.ignorePaperSpace&&D!==Ri.MODEL_LAYOUT_NAME)return;let P=S.associatedBlockName,_=e.blocks[P];_&&this.drawLayout(_,e,S,m,h,d)}),ne.debug(`[DxfLoader] Drew entities in ${(Date.now()-n)/1e3}s`);for(let x in f){let S=f[x],D=S.object,P;if(x!==Ri.MODEL_LAYOUT_NAME){let _=u[x];_.directAssociatedLeafObjectSet||(_.directAssociatedLeafObjectSet=new Set),P=_.directAssociatedLeafObjectSet}for(let _ in S.layerObjects){let w=S.layerObjects[_],F=ji.deepMerge(w,void 0,!1,!1,!0),X=F.added,H=F.removed;if(H.length!==w.length){let he=H;H.length>=100&&(he=new Set(H));let C=N=>Array.isArray(he)?he.indexOf(N)>=0:he.has(N);for(let N=0,k=w.length;N{y+=x}),this.enableRTC&&ne.debug(`[DxfLoader] Totally rebased ${this.statsInfo.rebasedEntityCount}(out of ${y}) entities`),this.enableMerge){let x=ji.mergeInfo;ne.debug(`[DxfLoader] Inner merged ${x.removedObjects} objects to ${x.mergedMeshes} meshes, ${x.mergedLines} lines, ${x.mergedPoints} points, ${x.mergedUnknownTypeObjects?x.mergedUnknownTypeObjects+" unknown type,":""} in ${x.elapsedTime/1e3}s`)}let E=(x,S,...D)=>{Object.keys(S).length>0};E("[DxfLoader] Unsupported entity types and count:",this.statsInfo.unsupportedEntityTypes),E("[DxfLoader] Unsupported text style names and count:",this.statsInfo.unsupportedTextStyles),E("[DxfLoader] Unsupported hatch pattern names and count:",this.statsInfo.unsupportedHatchPatterns,". Filling in solid lines instead."),E("[DxfLoader] Ignored invisible entity types and count:",this.statsInfo.invisibleEntities),E("[DxfLoader] Ignored frozen layers and entity count:",this.statsInfo.ignoredFrozenLayersAndEntityCount),E("[DxfLoader] Ignored inserts and count (may because they don't contain anything):",this.statsInfo.ignoredInserts),this.ignorePaperSpace&&E("[DxfLoader] Ignored paper space entity count:",this.statsInfo.ignoredPaperSpaceEntityTypesAndCount),this.font.unsupportedChars&&E("[DxfLoader] Unsupported chars and count:",this.font.unsupportedChars),this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(e)),ne.info(`[DxfLoader] loadEntities() done in ${(Date.now()-n)/1e3}s`);let b=Mn(Ur({},e),{threejsObject:m,layersAndThreejsObjects:h,loadedEntityCount:s,layoutViewportsMap:d});return Promise.resolve(b)})}loadEntitiesForCompare(e,i,n,s){return ot(this,null,function*(){let a=e.entities.length,o=i.entities.length,l=()=>ot(this,null,function*(){var S;let u=this.compareContext,h=u.isTheFirstFile,p=h?e:i,d=new hr,f=h?a:o,m=p.entities.length;this.entityCount=m,Object.keys(p.blocks).forEach(D=>{var P;this.entityCount+=((P=p.blocks[D].entities)==null?void 0:P.length)||0});let g=Math.round(Math.pow(f,.5)),y=Date.now(),E=D=>ot(this,null,function*(){if(s&&(D%g===0||D===f-1)){let P=D+1;h||(P+=a),s(new ProgressEvent("parseProgress",{loaded:P,total:a+o}));let _=500,w=Date.now();(w-y>_||D===f-1)&&(yield bs.sleep(0),y=w)}});this.parseHeader(p.header);let b={};for(let D=0;D{if(X.geometry){let H=X.userData.layerName;this.getLayerVisible(p,H)===!1&&(X.visible=!1);let he=b[H];he||(he=[],b[H]=he),he.push(X)}}),yield E(D)}let x=p;x.threejsObject=d,d.updateMatrixWorld(!0),x.layersAndThreejsObjects=b,x.layoutViewportsMap={},h&&(u.preservedHandles||(u.preservedHandles=new Set));for(let D in n){let P=n[D];h&&(P.type==="Added"||P.type==="Modified")&&((S=u.preservedHandles)==null||S.add(P.handle),P.parentHandles&&P.parentHandles.forEach(w=>{var F;return(F=u.preservedHandles)==null?void 0:F.add(w)}));let _=this.entityThreejsCache&&this.entityThreejsCache[P.handle];P.parentHandles&&(_=this.entityThreejsCache&&this.entityThreejsCache[P.parentHandles[P.parentHandles.length-1]]),_&&(_=this.setObjectColorByChange(_,P)),P.type!=="NoChange"&&_&&(P.type==="Added"?!h&&(P.box=new Ot().setFromObject(_)):P.type==="Removed"?h&&(P.box=new Ot().setFromObject(_)):P.type==="Modified"&&(P.box?P.box.union(new Ot().setFromObject(_)):P.box=new Ot().setFromObject(_)))}Ri.merge(x)}),c=Date.now();this.compareContext={changes:n,isTheFirstFile:!0},St.printMemory("Before loading entities for first dxf"),yield l(),ne.info(`[DxfLoader] loadEntities for first dxf in ${(Date.now()-c)/1e3}s`),St.printMemory("After loading entities for first dxf"),this.releaseCachedData(!1),this.releaseDxfData(e),St.printMemory("Before loading entities for second dxf"),c=Date.now(),this.compareContext.isTheFirstFile=!1,yield l(),ne.info(`[DxfLoader] loadEntities for second dxf in ${(Date.now()-c)/1e3}s`);for(let u of Object.values(n))u.box||delete n[u.handle];this.compareContext.preservedHandles=void 0,this.enableReleaseData&&(this.releaseCachedData(),this.releaseDxfData(i)),St.printMemory("After loading entities for second dxf")})}setObjectColorByChange(e,i){let n=o=>{var c;let l=Wn.ENTITY_COLOR_NO_CHANGE;return o.type==="Added"?l=Wn.ENTITY_COLOR_ADDED:o.type==="Removed"?l=Wn.ENTITY_COLOR_REMOVED:o.type==="Modified"&&(l=(c=this.compareContext)!=null&&c.isTheFirstFile?Wn.ENTITY_COLOR_REMOVED:Wn.ENTITY_COLOR_ADDED),l},s=(o,l)=>{o.traverse(c=>{if(c.material){if(c.material instanceof Tr)c.material=this.getLineBasicMaterial(l);else if(c.material instanceof or)c.material=this.getMeshBasicMaterial(l);else if(c.material instanceof Vn)c.material=this.getPointsMaterial(l);else if(c.material instanceof Yt){let u=c.material.clone();this.updateMaterialUniforms(u),u.uniforms.u_color.value.set(l),c.material=u}}})},a=n(i);return e.traverse(o=>{i.parentHandles?o.userData&&o.userData.handle&&o.userData.handle===i.handle&&(s(o,a),e=o):s(o,a)}),e}releaseCachedData(e=!0){e&&(this.pointsMaterials={},this.lineBasicMaterials={},this.lineShaderMaterials={},this.meshBasicMaterials={},this.meshTextureMaterials={},this.hatchShaderMaterials=[]),this.header=void 0,this.blockReferencesCache={},this.blockRecordsCache=void 0,this.blocksCache=void 0,this.entitiesCache=void 0,this.dictionaryOwnerHandleAndSpatialFilterHandlesCache=void 0,this.spatialFiltersCache=void 0,this.entityThreejsCache=void 0,this.entityTypesAndTimes=void 0,this.entityHandlesWithRenderOrder={},this.statsInfo={unsupportedEntity:{},unsupportedEntityTypes:{},unsupportedTextStyles:{},unsupportedHatchPatterns:{},invisibleEntities:{},ignoredFrozenLayersAndEntityCount:{},ignoredInserts:{},entityTypesAndMeshCount:{},ignoredPaperSpaceEntityTypesAndCount:{},rebasedEntityCount:0}}releaseEntity(e){e.vertices&&(e.vertices=void 0),e.knotValues&&(e.knotValues=void 0),e.controlPoints&&(e.controlPoints=void 0),e.binaryData&&(e.binaryData=void 0),e.text&&(e.text=void 0),e.extendedData&&(e.extendedData=void 0),e.contextData&&(e.contextData=void 0);let i=e;i.boundaryPaths&&(i.boundaryPaths=[]),i.patternLines&&(i.patternLines=void 0)}releaseDxfData(e){delete e.objects.DICTIONARY,delete e.objects.SORTENTSTABLE,delete e.objects.XRECORD,delete e.tables.dimStyle,delete e.tables.lineType,delete e.tables.style,delete e.tables.blockRecord,e.entities=[],e.blocks={}}drawEntity(e,i,n,s=!1){if(this.compareContext&&this.compareContext.preservedHandles&&this.compareContext.preservedHandles.has(e.handle)&&T0.includes(e.type)&&(s=!0),!s&&this.compareContext&&this.compareContext.preservedHandles&&!T0.includes(e.type)&&!this.compareContext.preservedHandles.has(e.handle)&&(!n||n&&!this.compareContext.preservedHandles.has(n.handle)))return;if(this.getLayerFrozen(i,e)===!0){let u=e.layer;this.statsInfo.ignoredFrozenLayersAndEntityCount[u]||(this.statsInfo.ignoredFrozenLayersAndEntityCount[u]=0),this.statsInfo.ignoredFrozenLayersAndEntityCount[u]++;return}if(e.visible===!1||e.invisible){this.statsInfo.invisibleEntities[e.type]||(this.statsInfo.invisibleEntities[e.type]=0),this.statsInfo.invisibleEntities[e.type]++;return}if(this.ignorePaperSpace&&e.inPaperSpace){this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]||(this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]=0),this.statsInfo.ignoredPaperSpaceEntityTypesAndCount[e.type]++;return}this.entityThreejsCache||(this.entityThreejsCache={});let o=Date.now(),l,c=!1;if(!this.compareContext&&this.entityThreejsCache[e.handle])l=this.entityThreejsCache[e.handle].clone(),c=!0;else if(!this.statsInfo.unsupportedEntity[e.handle]){if(e.type==="CIRCLE"||e.type==="ARC")l=this.drawArc(e,i,n);else if(e.type==="LINE"||e.type==="POLYLINE")l=this.drawLine(e);else if(e.type==="XLINE")l=this.drawXLine(e);else if(e.type!=="SEQEND"){if(e.type==="RAY")l=this.drawRay(e);else if(e.type==="LWPOLYLINE")l=this.drawLWPolyline(e,i,n);else if(e.type==="3DFACE")l=this.draw3DFace(e);else if(e.type==="TEXT")l=this.drawText(e,i,n);else if(e.type==="SOLID")l=this.drawSolid(e,i,n);else if(e.type==="POINT")l=this.drawPoint(e,i,n);else if(e.type==="INSERT")l=this.drawInsert(e,i,s);else if(e.type==="SPLINE")l=this.drawSpline(e,n);else if(e.type==="MTEXT")l=this.drawMText(e,i,n);else if(e.type==="ELLIPSE")l=this.drawEllipse(e,i,n);else if(e.type==="DIMENSION")l=this.drawDimension(e,i);else if(e.type!=="REGION")if(e.type==="ATTDEF")l=this.drawAttDef(e,i,n);else if(e.type==="ATTRIB"){if(!n)for(let u=0;u{Qr.setSharedVariablesOfObject(p),p.matrixAutoUpdate=!1,p.updateMatrix(),p.geometry&&(h===!1&&(p.userData.layerVisible=!1),p.userData.layerName=u,this.setMaterial(p,e,i,n))}),c||(this.nonSnapableTypes.has(e.type)&&l.traverse(p=>{p.layers.set(10)}),this.enableRenderOrder&&(this.entityHandlesWithRenderOrder[e.handle]?l.renderOrder=parseInt(this.entityHandlesWithRenderOrder[e.handle],16)+.1:l.renderOrder=parseInt(e.handle,16)))}return T0.includes(e.type)||(this.entityTypesAndTimes||(this.entityTypesAndTimes={}),this.entityTypesAndTimes[e.type]||(this.entityTypesAndTimes[e.type]={createCount:0,totalTime:0,averageTime:0}),this.entityTypesAndTimes[e.type].createCount++,this.entityTypesAndTimes[e.type].totalTime+=Date.now()-o),l?this.statsInfo.entityTypesAndMeshCount[e.type]?this.statsInfo.entityTypesAndMeshCount[e.type]++:this.statsInfo.entityTypesAndMeshCount[e.type]=1:(this.statsInfo.unsupportedEntityTypes[e.type]?this.statsInfo.unsupportedEntityTypes[e.type]++:this.statsInfo.unsupportedEntityTypes[e.type]=1,T0.includes(e.type)||(this.statsInfo.unsupportedEntity[e.handle]?this.statsInfo.unsupportedEntity[e.handle]++:this.statsInfo.unsupportedEntity[e.handle]=1)),l}drawEllipse(e,i,n){if(!e.majorAxisEndPoint||!e.center||e.axisRatio===void 0||e.startAngle===void 0||e.endAngle===void 0)return;let s=e.startAngle,a=e.endAngle;if(e.extrusionDirection&&e.extrusionDirection.z<0&&(s=Math.PI*2-e.endAngle,a=Math.PI*2-e.startAngle),lr.areNumbersEqual(s,a,1e-5)){ne.warn("[DxfLoader] Ellipse entity (handle '%s') contains the same start and end angle, ignored!",e.handle);return}let o=a-s;for(;o>Math.PI*2;)o-=Math.PI*2;Math.abs(o)<=1e-5&&(a=lr.floorNumber(s+Math.PI*2,5));let l=Math.sqrt(Math.pow(e.majorAxisEndPoint.x,2)+Math.pow(e.majorAxisEndPoint.y,2)),c=l*e.axisRatio,u=Math.atan2(e.majorAxisEndPoint.y,e.majorAxisEndPoint.x),h=new xp(e.center.x,e.center.y,l,c,s,a,!1,u),p=1,d=n;d!=null&&d.xScale&&(d!=null&&d.yScale)&&(p=Math.max(Math.abs(d.xScale),Math.abs(d.yScale)));let f=this.getDivision(s,a,Math.max(l,c)*p),m=h.getPoints(f),g=[],y=m.length;for(let D=0;D{g.geometry&&g.geometry.translate(d,f,0)}),e.rotation&&(l.rotation.z=e.rotation*Math.PI/180),e.directionVector){let g=e.directionVector,y=new A(g.x,g.y,g.z),E=y.clone().cross(qf),b=new A(1,0,0).angleTo(y);l.rotateZ(E.z>0?-b:b)}return o.lineLength>1?l.position.y-=u.y+o.style.textHeight:l.position.y-=u.y,l}getMTextGroup(e,i,n,s,a){var h;if(e.length===0)return;let o=(a?a.style.textHeight:i.textHeight)||0;if(i.textStyle){let p=n.tables.style.styles[i.textStyle];o=o||p.textHeight}let l=o/1.5,c=o/2,u=new hr;for(let p=0;p{a&&a[a.length-1]&&a[a.length-1].colorIndex===u.colorIndex?a[a.length-1].text+=u.text:a.push(u)}),s=c.lineLength}else if(typeof l=="object"){if(l.S&&l.S.length===3){let c=l.S[0]+"/"+l.S[2],u=this.getTextLineNum(c);a&&a[a.length-1]&&a[a.length-1].colorIndex===void 0?a[a.length-1].text+=c:a.push({text:l.S[0]+"/"+l.S[2],lineNum:s}),s+=u}else if(l.C!==void 0&&(o++,typeof e[o]=="string")){let c=this.getTextLineNum(e[o]);a&&a[a.length-1]&&a[a.length-1].colorIndex===l.C?a[a.length-1].text+=e[o]:a.push({colorIndex:l.C,text:e[o],lineNum:s}),s+=c}}}return{text:a,lineLength:s,style:n}}getTextLineNum(e){let i=e.match(new RegExp("\\n","g"));return i?i.length:0}draw3DFace(e){if(!e.vertices||e.vertices.length===0){ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);return}let i=e.vertices.map(l=>new A(l.x,l.y,l.z));if(i.length===0)return;lr.areVector3sEqual(i[0],i[i.length-1])||i.push(i[0]);let n=new A,s=!1;this.enableRTC&&(s=Wt.checkAndRebasePositionsOnRTC(i,n));let a=new it().setFromPoints(i),o=new _r(a,Pa);return s&&(this.setRTCUserData(o),o.position.x+=n.x,o.position.y+=n.y),o.renderOrder=2,o}drawSpline(e,i){if(!e.controlPoints||!e.degreeOfSplineCurve||!e.knotValues)return;let n=1/0,s=1/0,a=-1/0,o=-1/0;for(let E of e.controlPoints)E.xa&&(a=E.x),E.y>o&&(o=E.y);let l=1,c=i;c!=null&&c.xScale&&(c!=null&&c.yScale)&&(l=Math.max(Math.abs(c.xScale),Math.abs(c.yScale)));let u=Math.max(a-n,o-s),h=this.getBSplineInterpolationsPerSplineSegment(e.controlPoints.length,u*l),p=o2t(e.controlPoints,e.degreeOfSplineCurve,e.knotValues,h),d=new A,f=!1;this.enableRTC&&(f=Wt.checkAndRebasePositionsOnRTC(p,d));let m=Wt.getAdjacentNonRepeatPoints(p);if(m.length<2){ne.warn("[DxfLoader] Spline entity (handle '%s') contains less than 2 points, ignored!",e.handle);return}let g=new it().setFromPoints(m),y=new _r(g,Pa);return f&&(this.setRTCUserData(y),y.position.x+=d.x,y.position.y+=d.y),y}drawXLine(e){if(!e.vertices||e.vertices.length===0){ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);return}let i=St.arrayOrObjectToVector3(e.directionVector),n=new A(e.vertices[0].x,e.vertices[0].y,0),s=[];if(s.push(i.clone().multiplyScalar(-1e6).add(n)),s.push(i.clone().multiplyScalar(1e6).add(n)),s.length===0)return;let a=new A,o=!1;this.enableRTC&&(o=Wt.checkAndRebasePositionsOnRTC(s,a));let l=new it().setFromPoints(s),c=new _r(l,Pa);return o&&(this.setRTCUserData(c),c.position.x+=a.x,c.position.y+=a.y),c.renderOrder=2,c}drawRay(e){if(!e.vertices||e.vertices.length===0){ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);return}let i=St.arrayOrObjectToVector3(e.directionVector),n=e.vertices.map(c=>new A(c.x,c.y,0));if(n.push(i.multiplyScalar(1e6).add(n[0])),n.length===0)return;let s=new A,a=!1;this.enableRTC&&(a=Wt.checkAndRebasePositionsOnRTC(n,s));let o=new it().setFromPoints(n),l=new _r(o,Pa);return a&&(this.setRTCUserData(l),l.position.x+=s.x,l.position.y+=s.y),l.renderOrder=2,l}drawLine(e){if(!e.vertices||e.vertices.length===0){ne.warn("[DxfLoader] Entity is missing vertices:",e.handle);return}let i=[];if(e.isPolyfaceMesh)i=c2t(e.vertices);else{let l=L8(e.vertices,e.shape);e.shape&&l.length>0&&l.push(l[0]),l.length>0&&(i=[l])}if(i.length===0)return;let n=[];for(let l=0;l0){if(this.enableRTC){let m=0;i.forEach(g=>{g.forEach(y=>{s.add(y),m++})}),s.divideScalar(m),a=Wt.shouldRebasePositionOnRTC(s)}let l=[],c=[],u=0,h=0,p=0,d=0;i.forEach(m=>{for(let g=0;g0&&c.push(u+g-1,u+g);u=m.length});let f=new it().setFromPoints(l);f.setIndex(c),o=new oi(f,Pa)}if(n.length>0){this.enableRTC&&(a=Wt.checkAndRebasePositionsOnRTC(n,s));let l=new it().setFromPoints(n);o=new rn(l,P8)}if(o)return a&&(this.setRTCUserData(o),o.position.x+=s.x,o.position.y+=s.y),o}drawLWPolyline(e,i,n){var h;if(!e.vertices||e.vertices.length<2){ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);return}let s=e;if(s.extrusionDirectionX!==void 0&&s.extrusionDirectionY!==void 0&&s.extrusionDirectionZ!==void 0){ps.set(s.extrusionDirectionX,s.extrusionDirectionY,s.extrusionDirectionZ);let p=Ri.getOcsMatrix(ps).invert(),d=0;s.elevation!==void 0&&s.elevation>0&&(d=s.elevation),s.vertices.forEach(f=>{let m=ps.set(f.x,f.y,d).applyMatrix4(p);f.x=m.x,f.y=m.y})}let a=L8(e.vertices,e.shape);if(e.shape&&a.length>0&&!lr.areVector3sEqual(a[0],a[a.length-1])&&a.push(a[0]),a.length<2){ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);return}(h=e.extendedData)!=null&&h.outlines&&e.extendedData.outlines.forEach(d=>{let f=d.map(m=>new A(m[0],m[1],0));lr.areVectorsClose(f[0],f[f.length-1])||f.push(f[0]),a.push(...f)});let o=new A,l=!1;this.enableRTC&&(l=Wt.checkAndRebasePositionsOnRTC(a,o));let c=Wt.getAdjacentNonRepeatPoints(a);if(c.length<2){ne.warn("[DxfLoader] Invalid LWPolyline entity (handle '%s'), ignored!",e.handle);return}let u;if(this.enableWidthLine&&s.constantWidth!==void 0&&s.constantWidth>1){let p=i.tables.lineType.lineTypes[this.getLineType(e,i,n)];if(!(p&&p.pattern&&p.pattern.length!==0)){let d=Wt.convertWidthLineToMeshGeometry(c,s.constantWidth);if(!d)ne.warn("[DxfLoader] Failed to convert width line to mesh geometry: %s ",e.handle);else{let f=new Je(d,vS);u=new hr,u.add(f);let m=Qr.createOutlineSync(d,f.matrix,Pa);m.layers.set(10),u.add(m)}}}return u||(u=new _r(new it().setFromPoints(c),Pa)),l&&(this.setRTCUserData(u),u.position.x+=o.x,u.position.y+=o.y,u.position.z+=o.z),u}drawMLeader(e,i,n){var u,h,p,d,f,m,g,y;let s=i.tables.dimStyle.dimStyles[e.dimensionStyle]||this.getDefaultDimensionStyle(i),a=new hr,o=JA((u=e.contextData)==null?void 0:u.defaultTextContents),l=this.mtextContentAndFormattingToTextAndStyle(o,e),c=this.getMTextGroup(l.text,e,i,n,l);if(c){(h=e.contextData)!=null&&h.textLocation&&(c.position.x+=e.contextData.textLocation.x,c.position.y+=e.contextData.textLocation.y);let E=((p=e.contextData)==null?void 0:p.textWidth)||1;switch(l.style.horizontalAlignment){case"left":break;case"center":E&&(c.position.x+=E/2);break;case"right":E&&(c.position.x+=E);break;default:break}let S=new Ot().setFromObject(c).getSize(ps),D=S.x,P=S.y,_=0,w=0;switch((d=e.contextData)==null?void 0:d.textAttachment){case 1:_=0,w=0;break;case 2:_-=D/2,w=0;break;case 3:_-=D,w=0;break;case 4:_=0,w+=P/2;break;case 5:_-=D/2,w+=P/2;break;case 6:_-=D,w+=P/2;break;case 7:_=0,w+=P;break;case 8:_-=D/2,w+=P;break;case 9:_-=D,w+=P;break;default:return}if(c.traverse(F=>{F.geometry&&F.geometry.translate(_,w,0)}),(f=e.contextData)!=null&&f.textRotation&&(c.rotation.z=e.contextData.textRotation*Math.PI/180),(m=e.contextData)!=null&&m.textDirection){let F=e.contextData.textDirection,X=new A(F.x,F.y,F.z),H=X.clone().cross(new A(1,0,0)),he=new A(1,0,0).angleTo(X);c.rotateZ(H.z>0?-he:he)}c.renderOrder=5,a.add(c)}if(e.leaderLineType!==0){let E=[],b=(g=e.contextData)==null?void 0:g.leaders[0];if(!b)return a;let x=b.lastLeaderLinePoint;if(e.enableDogLeg){let F=new A(x.x,x.y,x.z),X=b.doglegLength,he=new A(b.doglegVector.x,b.doglegVector.y,b.doglegVector.z).multiplyScalar(X),C=F.clone().add(he);E.push(C,F)}let S=((y=e.contextData)==null?void 0:y.leaders[0].leaderLines)||[];for(let F=0;Fnew A(j.x,j.y,j.z)),he=new A(x.x,x.y,x.z);for(let j=0;j0?(p.add(g),ji.merge(p,!1),p):g}drawDefaultLeadArrow(e,i,n,s){let a=n*(e.x-i.x),o=n*(e.y-i.y),l=o,c=-a,u=new A(i.x+a+l/6,i.y+o+c/6,0),h=new A(i.x+a-l/6,i.y+o-c/6,0);s.push(i,u),s.push(i,h),s.push(u,h)}getBlockByHandle(e,i){if(!this.blocksCache){this.blocksCache={};for(let n in e){let s=e[n];this.blocksCache[s.ownerHandle]||(this.blocksCache[s.ownerHandle]=s)}}return this.blocksCache[i]}static transformAngleByOcsMatrix(e,i){let a=ps.set(Math.cos(i)*1,Math.sin(i)*1,0).applyMatrix4(e);return Math.atan2(a.y,a.x)}static getArcAnglesByOcsMatrix(e,i,n){let s=lr.getArcAngleSpanRad(i,n),a=Ri.transformAngleByOcsMatrix(e,i),o=Ri.transformAngleByOcsMatrix(e,n),l;if(lr.areNumbersClose(s,Math.PI)){s=1;let c=Ri.transformAngleByOcsMatrix(e,i+s);l=lr.getArcAngleSpanRad(a,c)}else{if(lr.areNumbersClose(s,Math.PI*2))return[a,a+Math.PI*2];l=lr.getArcAngleSpanRad(a,o)}return lr.areNumbersClose(s,l,1e-8)?[a,o]:[o,a]}drawArc(e,i,n){var x,S,D;if(!e.radius||e.radius<.001){ne.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is undefined, ignored!`);return}if(!e.radius||e.radius<.001){ne.warn(`[DxfLoader] The radius of arc (handle '${e.handle}') is too small, ignored!`);return}let s=new A(0,0,1);e.extrusionDirectionX!==void 0&&e.extrusionDirectionY!==void 0&&e.extrusionDirectionZ!==void 0&&s.set(e.extrusionDirectionX,e.extrusionDirectionY,e.extrusionDirectionZ);let a=Ri.getOcsMatrix(s),o,l;if(e.type==="CIRCLE")o=e.startAngle||0,l=o+2*Math.PI;else{if(e.startAngle==null||e.endAngle==null||(o=e.startAngle,l=e.endAngle,lr.areNumbersEqual(o,l,.001)))return;if(!lr.areNumbersClose(lr.getArcAngleSpanRad(o,l),Math.PI*2)){let P=Ri.getArcAnglesByOcsMatrix(a,o,l);o=P[0],l=P[1]}}let c=new Eg(0,0,e.radius,o,l,this.angBase!==0),u=1,h=n;h!=null&&h.xScale&&(h!=null&&h.yScale)&&(u=Math.max(Math.abs(h.xScale),Math.abs(h.yScale)));let p=this.getDivision(o,l,e.radius*u),d=c.getPoints(p),f=new A,m=!1;this.enableRTC&&(m=Wt.checkAndRebasePositionsOnRTC(d,f));let g=new it().setFromPoints(d),y=new _r(g,Pa),E=new A;e.center&&(E.x=e.center.x,E.y=e.center.y);let b=new A((x=e.center)==null?void 0:x.x,(S=e.center)==null?void 0:S.y,(D=e.center)==null?void 0:D.z).applyMatrix4(a.invert());return E.x=b.x,E.y=b.y,y.position.copy(E),m?(this.setRTCUserData(y),y.position.x+=f.x,y.position.y+=f.y):Wt.shouldRebasePositionOnRTC(y.position)&&this.setRTCUserData(y),y}addTriangleFacingCamera(e,i,n,s){let a=new A,o=new A;a.subVectors(n,i),o.subVectors(s,i),a.cross(o);let l=new A(i.x,i.y,i.z),c=new A(n.x,n.y,n.z),u=new A(s.x,s.y,s.z);a.z<0?e.push(u,c,l):e.push(l,c,u)}drawSolid(e,i,n){let s=e.points;if(!s||s.length<4)return;if(e.extrusionDirection&&e.extrusionDirection.z){ps.set(0,0,e.extrusionDirection.z);let p=Ri.getOcsMatrix(ps).invert();s.forEach(d=>{let f=ps.set(d.x,d.y,0).applyMatrix4(p);d.x=f.x,d.y=f.y})}let a=[],o=[];this.addTriangleFacingCamera(a,s[0],s[1],s[2]),o.push(0,1,2),this.addTriangleFacingCamera(a,s[1],s[2],s[3]),o.push(3,4,5);let l=new A,c=!1;this.enableRTC&&(c=Wt.checkAndRebasePositionsOnRTC(a,l));let u=new it().setFromPoints(a);u.setIndex(o);let h=new Je(u,vS);return c&&(this.setRTCUserData(h),h.position.x+=l.x,h.position.y+=l.y),h}getDefaultTextStyle(e){return e.tables.style.styles.STANDARD||e.tables.style.styles.Standard||{}}getDefaultDimensionStyle(e){return e.tables.dimStyle.dimStyles.STANDARD||e.tables.dimStyle.dimStyles.Standard||{}}getTextEncoding(e){return e.bigFontFile&&e.bigFontFile.toUpperCase().startsWith("GB")?"gbk":"utf8"}getTextMesh(e,i,n,s,a){if(!e)return;i.textStyle&&(this.statsInfo.unsupportedTextStyles[i.textStyle]||(this.statsInfo.unsupportedTextStyles[i.textStyle]=0),this.statsInfo.unsupportedTextStyles[i.textStyle]++);let o,l=(a?a.style.textHeight:i.textHeight)||0,c=.67,u={_TCH_DIM:1.45};if(i.textStyle&&u[i.textStyle]&&(c=u[i.textStyle]),i.xScale&&(c*=i.xScale),i.textStyle){let p=n.tables.style.styles[i.textStyle];c*=(p==null?void 0:p.xScale)||1,l=l||p.textHeight}let h=0;if(i.width&&(h=i.width/c+2),i.contextData&&i.contextData.textWidth&&i.contextData.textHeightm.toThreeGeometry()),f=qo(d);f.scale(c,1,1),o=new oi(f,Pa)}else if(this.font instanceof Zg){let p={font:this.font,height:0,size:l||12,curveSegments:3,bevelSegments:3},d=new GA(e,p);o=new Je(d,vS)}return o}transformTextMesh(e,i){let s=new Ot().setFromObject(i).getSize(ps),{halign:a,valign:o}=e,l=e.width||s.x,c=s.y;if(a===void 0&&o===void 0&&e.startPoint||[3,5].includes(a)&&e.startPoint?(i.position.x+=e.startPoint.x,i.position.y+=e.startPoint.y,i.position.z+=e.startPoint.z):e.endPoint&&(i.position.x+=e.endPoint.x,i.position.y+=e.endPoint.y,i.position.z+=e.endPoint.z),a!==3&&a!==5){if(e.rotation){let u=e.rotation*Math.PI/180;i.rotateZ(u)}e.mirrored===2?i.rotateY(Math.PI):e.mirrored===4&&i.rotateX(Math.PI)}switch(a){case 0:break;case 1:i.translateX(-l/2);break;case 2:i.translateX(-l);break;case 3:if(e.startPoint&&e.endPoint){let u=new A(e.startPoint.x,e.startPoint.y,e.startPoint.z),h=new A(e.endPoint.x,e.endPoint.y,e.endPoint.z),p=new A().subVectors(u,h),f=p.length()/l;i.scale.multiplyScalar(f);let m=p.clone().cross(qf),g=p.angleTo(qf);i.rotateZ(m.z>0?Math.PI-g:g-Math.PI),(e.mirrored===2||e.mirrored===4)&&i.rotateX(Math.PI)}break;case 4:i.translateX(-l/2),i.translateY(-c/2);break;case 5:if(e.startPoint&&e.endPoint){let u=new A(e.startPoint.x,e.startPoint.y,e.startPoint.z),h=new A(e.endPoint.x,e.endPoint.y,e.endPoint.z),p=new A().subVectors(u,h),f=p.length()/l;i.scale.setX(f);let m=p.clone().cross(qf),g=p.angleTo(qf);i.rotateZ(m.z>0?Math.PI-g:g-Math.PI),(e.mirrored===2||e.mirrored===4)&&i.rotateX(Math.PI)}break;default:break}switch(o){case 0:break;case 1:break;case 2:i.translateY(-c/2);break;case 3:i.translateY(-c);break;default:break}return i.position.z=0,i}drawText(e,i,n){let s=e.text;if(!s||!this.font)return;let a=i.tables.style.styles[e.textStyle]||this.getDefaultTextStyle(i);s=QA(s,{encoding:this.getTextEncoding(a)}).map(u=>u.text).join("");let l=this.getTextMesh(s,e,i,n);if(!l)return;let c=l.geometry;if(l instanceof Je&&!c.getIndex()){let u=c.getAttribute("position"),h=[];for(let p=0;pc.text).join();let o=this.getTextMesh(s,e,i,n);if(!o)return;let l=o.geometry;if(l.hasAttribute("uv")&&l.deleteAttribute("uv"),l.hasAttribute("normal")&&l.deleteAttribute("normal"),this.transformTextMesh(e,o),Wt.shouldRebasePositionOnRTC(o.position))this.setRTCUserData(o);else{let c=Wt.caculateGeometryCenter(l);c&&Wt.shouldRebasePositionOnRTC(c)&&this.setRTCUserData(o)}return o}drawAttrib(e,i,n){let s=e.text;if(!s||!this.font)return;s=QA(s).map(c=>c.text).join();let o=this.getTextMesh(s,e,i,n);if(!o)return;let l=o.geometry;if(l.hasAttribute("uv")&&l.deleteAttribute("uv"),l.hasAttribute("normal")&&l.deleteAttribute("normal"),this.transformTextMesh(e,o),Wt.shouldRebasePositionOnRTC(o.position))this.setRTCUserData(o);else{let c=Wt.caculateGeometryCenter(l);c&&Wt.shouldRebasePositionOnRTC(c)&&this.setRTCUserData(o)}return o}drawPoint(e,i,n){if(!e.position)return;let s=new it,a=[new A(e.position.x,e.position.y,e.position.z)];ps.set(0,0,0);let o=ps,l=!1;this.enableRTC&&(l=Wt.checkAndRebasePositionsOnRTC(a,o)),s.setFromPoints(a);let c=new rn(s,P8);return l&&(this.setRTCUserData(c),c.position.x+=o.x,c.position.y+=o.y),c}drawDimension(e,i){if(!e.block)return;let n=i.blocks[e.block];if(!n||!n.entities)return;let s=i.tables.dimStyle.dimStyles[e.dimStyleName]||this.getDefaultDimensionStyle(i);s&&s.DIMCLRD>0&&(e.colorIndex=s.DIMCLRD,e.color=E0(e.colorIndex));let a=new hr;for(let l=0;l`,a.userData.entityType=e.type;let o=e==null?void 0:e.insertionPoint;return o&&(a.position.x+=o.x,a.position.y+=o.y),Wt.shouldRebasePositionOnRTC(a.position)&&this.setRTCUserData(a),a}drawInsert(e,i,n=!1){if(!e.block)return;let s=i.blocks[e.block];if(!s.entities)return;e.blockPosition=s.position;let a=new hr;for(let h=0;h`,a.userData.entityType=e.type,e!=null&&e.blockPosition&&(a.position.x-=e.blockPosition.x,a.position.y-=e.blockPosition.y,a.updateMatrix());let o=ps.set(1,1,1);e.xScale&&(o.x=e.xScale),e.yScale&&(o.y=e.yScale);let l=new Sr;e.rotation&&(l.z=e.rotation*Math.PI/180),SMe.setFromEuler(l,!1);let c=yS.set(0,0,0);e.position&&(c.x=e.position.x,c.y=e.position.y),$c.compose(c,SMe,o),e.extrusionDirection&&e.extrusionDirection.z<0&&$c.premultiply(IMe.identity().makeScale(-1,1,1)),N8.copy(a.matrix),a.applyMatrix4($c),Wt.shouldRebasePositionOnRTC(a.position)&&this.setRTCUserData(a);let u=this.findSpatialFilterByHandle(e.handle,i);if(u){let h=this.drawSpatialFilter(u),p=u;p&&p.clipPolylines&&p.clipPolylines.length>0&&(a.userData.spatialFilterHandle=u.handle,this.cloneMaterialsForSpatialFilter(a),h&&h.applyMatrix4(N8.invert()),ne.debug("[DxfLoader] Spatial filter:",e.associatedSpatialFilter))}return a}drawSpatialFilter(e){let i=e;if(i.threejsObject)return i.threejsObject.clone();let n=e.invertBlockMatrix;$c.set(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],0,0,0,1);let s=[];e.vertices.forEach(l=>{s.push(new A(l.x,l.y,0))});let a={polyline:[],bConcave:!1,bReversed:!1};if(e.numberOfPointsOnClipBoundary===2)a.polyline=s;else{let l=e.numberOfPointsOnClipBoundary,c=3;if(lf;g--){let y=s[g];if(lr.areVector3sEqual(m,y)&&f+10)break;u.push(m)}if(h>0)for(let f=h+1;f{p.push(new le(f.x,f.y)),d.push([f.x,f.y])}),!Wt.isConvex(p)){ne.warn(`[DxfLoader] Concave polygon is not supported for spatial filter (handle '${e.handle}'), converting to convex polygon!`);let f=(0,_Me.default)(d,1/0);u=[],f.forEach(m=>{u.push(new A(m[0],m[1],0))})}lr.areVector3sEqual(u[0],u[u.length-1])||u.push(u[0]),a.polyline=u,a.bReversed=h>0}let o;return this.enableReleaseData&&(e.vertices=[],e.matrix=[],e.invertBlockMatrix=[]),i.localMatrix=$c.clone(),i.clipPolylines=[],i.clipPolylines.push(a),o}drawLayout(e,i,n,s,a,o){if(!e.entities)return;let l;if(n.layoutName!==Ri.MODEL_LAYOUT_NAME){let p=n;p.directAssociatedLeafObjectSet||(p.directAssociatedLeafObjectSet=new Set),l=p.directAssociatedLeafObjectSet}let c=new hr;Qr.setSharedVariablesOfObject(c);for(let p=0;p{if(m.geometry){let g=m.userData.layerName;this.getLayerVisible(i,g)===!1&&(m.visible=!1);let y=a[g];y||(y=[],a[g]=y),y.push(m),l&&l.add(m)}}))}if(c.children.length===0)return;c.userData.layerName=e.layer;let u=n.layoutName,h=s.children.find(p=>p.name===u);h||(h=new hr,Qr.setSharedVariablesOfObject(h),h.name=u,h.userData.isLayoutLevelObject=!0,s.add(h)),h.add(c),e.position&&c.position.set(e.position.x,e.position.y,e.position.z||0),c.matrixAutoUpdate=!1,c.updateMatrix()}convertEdgeToPoints(e){let i=[];switch(e.type){case 1:{let s=e;i.push(new le(s.startPoint.x,s.startPoint.y)),i.push(new le(s.endPoint.x,s.endPoint.y));break}case 2:{let s=e,a=s.startAngle*wr.DEG2RAD,o=s.endAngle*wr.DEG2RAD;s.bCounterclockwise||(a=Math.PI*2-a,o=Math.PI*2-o);let l=new Eg(s.center.x,s.center.y,s.radius,a,o,!s.bCounterclockwise),c=this.getDivision(a,o,s.radius);i.push(...l.getPoints(c));break}case 3:{let s=e,a=Math.sqrt(Math.pow(s.majorAxisEndPoint.x,2)+Math.pow(s.majorAxisEndPoint.y,2)),o=a*s.minorRatio,l=Math.atan2(s.majorAxisEndPoint.y,s.majorAxisEndPoint.x),c=s.startAngle*wr.DEG2RAD,u=s.endAngle*wr.DEG2RAD;s.bCounterclockwise||(c=Math.PI*2-c,u=Math.PI*2-u);let h=new xp(s.center.x,s.center.y,a,o,c,u,!s.bCounterclockwise,l),p=this.getDivision(c,u,Math.max(a,o));i.push(...h.getPoints(p));break}case 4:{let s=e;i.push(...s.controlPoints);break}case 0:{let s=e;i.push(...L8(s.points,s.isClosed));break}}return i}drawHatch(e,i,n){var y;let s=e;if(s.boundaryPaths.length==0)return;let a=[],o=[],l=[];if(s.boundaryPaths.forEach((E,b)=>{if(this.IsfilteredByPathTypeFlag(E.pathTypeFlag)){let P="[DxfLoader] The %d path type flag is filtered at the %dth boundrayPath (hatch handle '%s')";ne.info(P,E.pathTypeFlag,b,s.handle);return}let x=E.edges;if(x.length===0)return;let S=[];for(let P=0;P31&&!(_=>{for(let w=1;w<_.length;++w){let F=_[w-1].endPoint,X=_[w].startPoint;if(!F||!X||!lr.areVector2sEqual(F,X))return!1}return!0})(E.edges)){let _="[DxfLoader] The %dth boundaryPath (hatch handle '%s') has unknown path, ignored!";ne.warn(_,b,s.handle);return}lr.areVector2sEqual(S[0],S[S.length-1])||S.push(S[0]);let D=S.map(P=>new le(St.roundNumber(P.x,7),St.roundNumber(P.y,7)));if((D==null?void 0:D.length)>0){a.push(D);let P=new Ds().setFromPoints(D);o.push(P);let _=P.getSize(TS),w=_.x*_.y;l.push({area:w,index:a.length-1})}}),a.length===0)return;let c=new le,u=this.checkAndRebasePolygonsOnRTC(a,c);l.sort((E,b)=>E.area-b.area);let h=[];l.forEach(E=>{h.push(E.index)});let p=this.buildContainHierarchyTree(a,o,h),d=[];this.buildHatchGeometry(a,p,d);let f;if(d.length>0&&(f=qo(d)),!f||!f.getIndex()||((y=f.getIndex())==null?void 0:y.count)===0){ne.warn("[DxfLoader] Failed to convert hatch boundaries!");return}let m=new Je(f,vS);m.layers.set(10),this.setHatchMaterial(m,s,i,c,n);let g=m;return u?(this.setRTCUserData(m),g.position.x+=c.x,g.position.y+=c.y):Wt.shouldRebasePositionOnRTC(g.position)&&this.setRTCUserData(g),g}drawOle2frame(e,i){let{leftUpX:n,leftUpY:s,rightDownX:a,rightDownY:o}=e;if(!n||!s||!a||!o)return;let l=[new le(n,s),new le(n,o),new le(a,o),new le(a,s),new le(n,s)],c=new A,u=!1;this.enableRTC&&(u=Wt.checkAndRebasePositionsOnRTC(l,c));let h=new it().setFromPoints(l),p=this.getLineBasicMaterial(16777215),d=new _r(h,p);u&&(this.setRTCUserData(d),d.position.x+=c.x,d.position.y+=c.y);let f=new hr;f.add(d);let m,g=i.objects.DICTIONARY;for(let E of g){let b=E;for(let x in b.entries)if(b.entries[x]===e.handle){m=x;break}}let y;if(m)if(this.meshTextureMaterials[m])y=this.meshTextureMaterials[m];else for(let E=0;E1?f:d}static getOcsMatrix(e){let i=qf,n=O8,s=aO,a=new A(0,1,0),o=new A(0,0,1);return lr.areVectorsClose(e,o)?$c.identity():(s=e.clone().normalize(),lr.areVectorsClose(s,o)||(Math.abs(s.x)<1/64&&Math.abs(s.y)<1/64?i=a.cross(s).normalize():i=o.cross(s).normalize(),n=s.clone().cross(i).normalize()),$c.set(i.x,i.y,i.z,0,n.x,n.y,n.z,0,s.x,s.y,s.z,0,0,0,0,1))}static getDcs2WcsMatrix(e,i){let n;n2t(e)?n=e.viewDirectionFromTarget:n=e.viewDirection;let s=new A(n.x,n.y,n.z),a=new A(e.viewTarget.x,e.viewTarget.y,e.viewTarget.z),o=e.viewTwistAngle,l,c,u;u=s.clone().normalize(),l=aO.clone().cross(s),l.length()>0?(l.normalize(),c=u.clone().cross(l)):u.z<0?(l=qf.clone().negate(),c=O8,u=aO.clone().negate()):(l=qf,c=O8,u=aO);let h=new Ue,p=$c.identity();return p.makeBasis(l,c,u),h.premultiply(p),h.premultiply($c.identity().compose(a.clone(),new Or().setFromAxisAngle(new A(0,0,1),wr.degToRad(i?o:-o)),new A(1,1,1))),h}getViewportMsToPsMatrix(e){let i=new A(e.centerPoint_dcs.x,e.centerPoint_dcs.y,0),n=new A(e.centerPoint.x,e.centerPoint.y,e.centerPoint.z),s=e.viewHeight,a=e.height_paperSpace,o=s/a,l=Ri.getDcs2WcsMatrix(e,this.angDir),c=new Ue;c.setPosition(xMe.clone().sub(n));let u=IMe.identity();u.scale(ps.set(o,o,o));let h=N8.identity().setPosition(xMe.clone().sub(n));u.premultiply(h.clone().invert()).multiply(h),c.multiply(u);let p=$c.identity();p.setPosition(i),l.multiply(p);let d=$c.identity();return c.invert().multiply(d).multiply(l.invert())}drawViewport(e,i,n){let s=e;if(s.viewportId=="1"){e.psBBox=new Ot,e.msToPsMatrix=new Ue;return}let a=[],o=s.centerPoint,l=s.width_paperSpace/2,c=s.height_paperSpace/2;a.push(new A(o.x-l,o.y-c,0)),a.push(new A(o.x-l,o.y+c,0)),a.push(new A(o.x+l,o.y+c,0)),a.push(new A(o.x+l,o.y-c,0)),a.push(a[0]),e.psBBox=new Ot(a[0],a[2]),e.msToPsMatrix=this.getViewportMsToPsMatrix(s);let u=new A,h=!1;this.enableRTC&&(h=Wt.checkAndRebasePositionsOnRTC(a,u));let p=new it().setFromPoints(a),d=new _r(p,Pa);h&&(this.setRTCUserData(d),d.position.x+=u.x,d.position.y+=u.y),d.userData.entityType=e.type;let f=new hr;f.add(d);let m=e.psBBox.clone();m.applyMatrix4(e.msToPsMatrix.clone().invert()),m.min.z=0,m.max.z=0;let g=[];g.push(m.min),g.push(new A(m.min.x,m.max.y,0)),g.push(m.max),g.push(new A(m.max.x,m.min.y,0)),g.push(g[0]);let y=new A,E=!1;this.enableRTC&&(E=Wt.checkAndRebasePositionsOnRTC(g,y));let b=new it().setFromPoints(g),x=new _r(b,Pa);return E&&(this.setRTCUserData(x),x.position.x+=y.x,x.position.y+=y.y),x.userData.entityType=e.type,x.userData.inPaperSpace=!0,f.add(x),d}getColor(e,i,n){var a,o,l,c,u,h;if(this.compareContext){let p=e.compareChangeType;return p==="Added"?Wn.ENTITY_COLOR_ADDED:p==="Removed"?Wn.ENTITY_COLOR_REMOVED:p==="Modified"?this.compareContext.isTheFirstFile?Wn.ENTITY_COLOR_REMOVED:Wn.ENTITY_COLOR_ADDED:Wn.ENTITY_COLOR_NO_CHANGE}let s=e;if(s&&s.isGradientColor){let p=s.gradientColors;if(p&&p.length>=2){if(p[0]!==p[1]){let d=`[DxfLoader] Gradient colors are not supported for hatch '${e.handle}', will use the first color!`;ne.warn(d)}return p[0]}}if(e.isTrueColor||e.colorIndex>0&&e.colorIndex<256)return e.color;if(e.colorIndex===0)return n?this.getColor(n,i):(o=(a=i.tables)==null?void 0:a.layer)==null?void 0:o.layers[0].color;if(e.colorIndex===256){let p=(c=(l=i.tables)==null?void 0:l.layer)==null?void 0:c.layers,d=p&&p[e.layer],f=p&&n&&p[n.layer],m=Yf;return d&&d.name!=="0"?m=d.color:f?m=f.color:d?m=d.color:m=(h=(u=i.tables)==null?void 0:u.layer)==null?void 0:h.layers[0].color,m}return ne.warn("[DxfLoader] Unknown colorIndex"),Yf}getLineType(e,i,n){var o,l;if(n&&n.type==="DIMENSION")return this.getLineType(n,i);if(e.lineType!==VA&&e.lineType!==g8)return e.lineType;if(e.lineType===g8)return n?this.getLineType(n,i):e.lineType;let s=(l=(o=i.tables)==null?void 0:o.layer)==null?void 0:l.layers,a=i2t;if(e.layer!=="0"){let c=s&&s[e.layer];if(c)return c.lineType}else if(n){let c=s&&s[n.layer];if(c)return c.lineType}return a}getLayerName(e,i,n){var c,u;let s=(u=(c=i.tables)==null?void 0:c.layer)==null?void 0:u.layers,a=s&&s[e.layer],o=s&&n&&s[n.layer],l=a.name;return a&&a.name==="0"&&o&&(l=o.name),l||"0"}setMaterial(e,i,n,s){let a=e;if(!a.geometry||(this.setRenderOrderByObjectType(e),i.type==="OLE2FRAME"))return;if(i.type==="MTEXT"){e.renderOrder=5;return}if(i.type==="HATCH"){TS.set(0,0),this.setHatchMaterial(e,i,n,TS,s);return}let o,l=this.getColor(i,n,s);if(i.type==="LWPOLYLINE"&&(a.isMesh?(o=this.getMeshBasicMaterial(l),e.renderOrder=1):e.userData.isOutline&&(o=this.getLineBasicMaterial(l),e.renderOrder=3),o)){a.material=o;return}if(i.type==="SOLID")o=this.getMeshBasicMaterial(l);else if(i.type==="TEXT"||i.type==="ATTDEF"||i.type==="ATTRIB")o=this.getLineBasicMaterial(l),e.renderOrder=5;else if(i.type==="LEADER"||i.type==="MULTILEADER"||i.type==="VIEWPORT")o=this.getLineBasicMaterial(l);else if(i.type==="POINT")o=this.getPointsMaterial(l);else{if(e.material instanceof Vn){o=this.getPointsMaterial(l),a.material=o;return}let c=n.tables.lineType.lineTypes[this.getLineType(i,n,s)],u=i.lineTypeScale||1;c&&c.pattern&&c.pattern.length!==0?(o=this.getLineShaderMaterial(c,l,u),e.renderOrder=3):o=this.getLineBasicMaterial(l)}a.material=o}setHatchMaterial(e,i,n,s,a){let o=e;if(!o.geometry)return;let l=this.getColor(i,n,a);if(o.isLine){o.material=this.getLineBasicMaterial(l);return}let c=-1,u;if(i.solidFill)u=this.getMeshBasicMaterial(l);else{if(o.material instanceof Yt){u=o.material;let h=new Ve(l);o.material.uniforms.u_color.value.equals(h)||(u=o.material.clone(),this.updateMaterialUniforms(u),u.uniforms.u_color.value.set(l))}else u=this.getHatchShaderMaterial(i,l,s);c=0}u||(u=this.getMeshBasicMaterial(l),c=-1),o.material=u,o.renderOrder=c}setRenderOrderByObjectType(e){let i=e,n=0;i.isMesh?n=-1:i.isLine?n=2:i.isPoints&&(n=4),e.renderOrder=n}getPointsMaterial(e){return this.pointsMaterials[e]||(this.pointsMaterials[e]=new Vn({size:.2,color:e})),this.pointsMaterials[e]}getLineBasicMaterial(e){return this.lineBasicMaterials[e]||(this.lineBasicMaterials[e]=new Tr({color:e})),this.lineBasicMaterials[e]}getLineShaderMaterial(e,i,n){let s=`${e.name}_${i}_${n}`;if(!this.lineShaderMaterials[s]){let a=this.getLineTypeScales(),o=a.ltScale*a.celtScale*n;this.lineShaderMaterials[s]=KA.createLineShaderMaterial(e.pattern,i,o,Ri.viewportScaleUniform,Ri.cameraZoomUniform)}return this.lineShaderMaterials[s]}getMeshBasicMaterial(e){return this.meshBasicMaterials[e]||(this.meshBasicMaterials[e]=new or({color:e})),this.meshBasicMaterials[e]}getHatchShaderMaterial(e,i,n){if(!e.patternLines||e.patternLines.length<1)return;let s=this.findMatchedHatchShaderMaterial(e,i);if(s)return s;let a=.005,o=.05,l=2;e.patternLines.forEach(d=>{l=Math.max(d.dashPattern.length,l)});let c=0,u=[],h=new le;for(let d of e.patternLines){let f=new le(d.origin.x,d.origin.y).sub(n).rotateAround(h,-wr.degToRad(e.patternAngle)),m=new le(d.delta.x,d.delta.y).rotateAround(h,-wr.degToRad(d.angle));if(m.y===0){ne.warn("[DxfLoader] delta.y is equal to zero !");return}let g=d.dashPattern.length,y=!0,E=0;for(let _=0;_0&&(y=!1),E+=Math.abs(w)}let b=y?o:a,x=[],S=[],D=0;S[0]=D;for(let _=0;_Ri.maxFragmentUniforms){ne.warn("[DxfLoader] There will be warning in fragment shader when number of uniforms exceeds 1024, so extra hatch line patterns are ignored here!");break}u.push(P)}let p=fMe(u,e.patternAngle,Ri.cameraZoomUniform,new Ve(i));return p.defines={MAX_PATTERN_SEGMENT_COUNT:l},this.hatchShaderMaterials.push({patternLines:e.patternLines,patternAngle:e.patternAngle,color:i,material:p}),p}getDivision(e,i,n){let s=Math.round(5e4/this.entityCount);s=Math.max(s,2),s=Math.min(s,10);let a=s*5,l=s*2;if(this.averageCurveSize){let h=Math.pow(n/this.averageCurveSize,.5);l*=h,l=Math.max(l,s),l=Math.min(l,a)}let c=i-e;c<0&&(c+=Math.PI*2),l=Math.ceil(l*(c/Math.PI));let u=8;return c<.087?u=2:c<.174?u=3:c<.52?u=4:c<1.57?u=5:c<3.14?u=6:c<4.71&&(u=7),l=Math.max(l,u),this.averageCurveSize=(this.averageCurveSize*this.curveCount+n)/(this.curveCount+1),this.curveCount++,Math.max(l,12)}getBSplineInterpolationsPerSplineSegment(e,i){let n=1;this.averageCurveSize&&(n=Math.pow(i/this.averageCurveSize,.5),n=Math.max(n,.5),n=Math.min(n,2)),this.averageCurveSize=(this.averageCurveSize*this.curveCount+i)/(this.curveCount+1),this.curveCount++;let s=e*2*n;if(e>20){let a=Math.log10(e);s/=a}return s}getSimplifyTolerance(){return .03}setDxfDataToIndexedDb(e,i){return ot(this,null,function*(){let n={dxfDataId:e,dxf:i};return new Promise((s,a)=>{ZT.instance().add(n,()=>{ne.info(`[DxfLoader] Saved '${e}' to indexedDb`),s()},o=>{a(o)})})})}getDxfDataFromIndexedDb(e){return ot(this,null,function*(){return new Promise((i,n)=>{ZT.instance().query(e,s=>{s&&s.length>0&&i(s[0].dxf),i(void 0)},()=>n())})})}buildContainHierarchyTree(e,i,n){var l;let s=new Map,a=n.length;for(let c=0;c{c.children.length===0?s.push(c.index):a.set(c.index,c.children.map(u=>u.index))});let o=c=>{try{let u=new _p(c);u.hasAttribute("uv")&&u.deleteAttribute("uv"),u.hasAttribute("normal")&&u.deleteAttribute("normal"),n.push(u)}catch(u){ne.warn(`[DxfLoader] triangulate shape error: ${c.getPoints().map(h=>h.toArray()).toString()}`)}};s.forEach(c=>{let u=e[c];if(u.length===0)return;let h=new Ja(u);o(h)});let l=c=>c.map(u=>u.toArray());for(let c of a){let u=new Ja(e[c[0]]),h={regions:[],inverted:!1},p=this.findIntersectHole(e,c[1]);p.forEach(f=>{let m={regions:[],inverted:!1};try{f.forEach((g,y)=>{if($l.epsilon(lr.getVector2RelativeEps(e[g][0]),1e-6),y===0)m=$l.segments({regions:[l(e[g])],inverted:!1});else{let E=$l.segments({regions:[l(e[g])],inverted:!1}),b=$l.combine(m,E);h=$l.polygon($l.selectUnion(b)),h.regions.length>0?h.regions.forEach(x=>{if(x.length===0)return;let S=x.map(D=>new le(D[0],D[1]));u.holes.push(new ku(S))}):ne.warn("[DxfLoader] mergedHoles.regions is empty")}})}catch(g){ne.warn(`[DxfLoader] polybooljs has error: ${g}, epsilon is ${$l.epsilon()}`)}});let d=p.flat(2);for(let f=0;f{c.children.forEach(u=>{this.buildHatchGeometry(e,u,n)})})}findIntersectHole(e,i){let n=i.length,s=[];for(let a=0;a{a.forEach(o=>{i.add(o),n++})}),i.divideScalar(n);let s=!1;if(this.enableRTC&&Wt.shouldRebasePositionOnRTC(i)){s=!0;for(let a=0;a{o.entries[l]&&o.entries[l]==="ACAD_SORTENTS"&&i.add(l)})}if(i.size===0)return;let s=e.objects.SORTENTSTABLE;if(s)for(let a=0;aMath.abs(u-h)<1e-5,a=(u,h)=>{if(u.length!==h.length)return!1;for(let p=0;ps(u.angle,h.angle)&&s(u.delta.x,h.delta.x)&&s(u.delta.y,h.delta.y)&&s(u.origin.x,h.origin.x)&&s(u.origin.y,h.origin.y)&&a(u.dashPattern,h.dashPattern),l=(u,h)=>{if(u.length!==h.length)return!1;for(let p=0;pu.color===i&&u.patternAngle===e.patternAngle&&l(u.patternLines,n));return c==null?void 0:c.material}getLayout(e,i){if(!this.blockRecordsCache){this.blockRecordsCache={};let a=this.blockRecordsCache,o=e.tables.blockRecord.blockRecords;Object.values(o).forEach(l=>{a[l.handle]=l.layoutHandle})}let n=this.blockRecordsCache[i.ownerHandle];if(n){let o=e.objects.LAYOUT.find(l=>l.handle===n);if(o)return o}if(!this.entitiesCache){this.entitiesCache={};let a=this.entitiesCache;Object.values(e.entities).forEach(o=>{a[o.handle]=o})}let s=this.entitiesCache[i.ownerHandle];return s?this.getLayout(e,s):(ne.warn("[DxfLoader] Failed to find layout name for entity:",i),e.objects.LAYOUT.find(a=>a.layoutName===Ri.MODEL_LAYOUT_NAME))}getLayerVisible(e,i){var s,a,o;let n=(a=(s=e.tables)==null?void 0:s.layer)==null?void 0:a.layers;return n&&((o=n[i])==null?void 0:o.visible)}getLayerFrozen(e,i){var s,a,o;let n=(a=(s=e.tables)==null?void 0:s.layer)==null?void 0:a.layers;return n&&((o=n[i.layer])==null?void 0:o.frozen)}updateMaterialUniforms(e){e instanceof Yt&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=Ri.cameraZoomUniform),e.uniforms.u_viewportScale&&(e.uniforms.u_viewportScale=Ri.viewportScaleUniform))}cloneMaterialsForSpatialFilter(e){let i=new Map,n=s=>{let a;return Array.isArray(s)?(a=[],s.forEach(o=>{if(i.has(o.id))a.push(i.get(o.id));else{let l=o.clone();this.updateMaterialUniforms(l),i.set(o.id,l),a.push(l)}})):s&&(i.has(s.id)?a=i.get(s.id):(a=s.clone(),this.updateMaterialUniforms(a),i.set(s.id,a))),a};e.traverse(s=>{s.material&&(s.material=n(s.material))})}getLineTypeScales(){let e={ltScale:1,celtScale:1};return this.header&&(e.ltScale=this.header.$LTSCALE||1,e.celtScale=this.header.$CELTSCALE||1),e}static getDxfUnits(e){switch(e||0){case 0:return"Unitless";case 1:return"Inches";case 2:return"Feet";case 4:return"Millimeters";case 5:return"Centimeters";case 6:return"Meters";default:ne.warn(`[DxfLoader] Unsupported $INSUNITS '${e}'`);break}return"Unitless"}static computeLineDistance(e){let i=e.isLineSegments===!0,n=e.geometry,s=e.matrixWorld;if(n.index&&(ne.debug(`[DxfLoader] Line with id '${e.id}' contains index buffer, going to convert it to non-indexed.`),n=Wt.convertGeometryWithIndexedToNonIndexed(n)),n.index===null){let a=n.attributes.position;if(!a||a.count===0)return;let o=[];if(i)for(let l=0,c=a.count;l{let s=n;s.isLine&&s.material instanceof Yt&&Ri.computeLineDistance(s)}),ne.debug(`[DxfLoader] Computed line distances in ${(Date.now()-i)/1e3}s`)}static merge(e){let i={};e.objects.LAYOUT.forEach(p=>{var f;let d=p;i[d.layoutName]=d,(f=d.directAssociatedLeafObjectSet)==null||f.clear()});let n=Date.now(),s={},a={},o=15e3,l=0,c=0,u=()=>{let p=Date.now();for(let d in s){let f=s[d];Ri.removeEmptyObjectsFromRemovingMarkedObjects(f.children,f.object),f.children=[]}l=0,c+=Date.now()-p};for(let p in e.layersAndThreejsObjects){let d=e.layersAndThreejsObjects[p];if(d.length<=1)continue;let f=Date.now(),m={};for(let y of d){let E,b=y;for(;b;){if(b.userData.isLayoutLevelObject){E=b;break}b=b.parent}if(!E)continue;let x=E.name;m[x]||(m[x]={object:E,children:[]}),m[x].children.push(y)}let g=[];for(let y in m){let E;if(y!==Ri.MODEL_LAYOUT_NAME){let _=i[y];_.directAssociatedLeafObjectSet||(_.directAssociatedLeafObjectSet=new Set),E=_.directAssociatedLeafObjectSet}let b=m[y],x=ji.deepMerge(b.children,b.object,!1,!1,!0),S=x.added,D=x.removed;s[y]||(s[y]={object:b.object,children:[]}),a[y]||(a[y]={object:b.object,children:[]});let P=D.length>o;if(P){let _=Date.now();Ri.removeEmptyObjectsFromRemovingMarkedObjects(D,b.object),c+=Date.now()-_}else l+=D.length;if(D.length===b.children.length)P||D.forEach(_=>{s[y].children.push(_)});else{let _=D;D.length>=100&&(_=new Set(D));let w=F=>Array.isArray(_)?_.indexOf(F)>=0:_.has(F);for(let F=0;Fo&&u()}e.layersAndThreejsObjects[p]=g,ne.debug(`[DxfLoader] Merged layer '${p}' in ${(Date.now()-f)/1e3}s`)}l>0&&u();for(let p in a){let d=a[p];e.threejsObject.children.find(m=>m.name===p)||e.threejsObject.add(d.object),d.children.forEach(m=>{d.object.add(m),m.updateWorldMatrix(!1,!1)}),d.children=[]}ne.debug(`[DxfLoader] MergeUtils.deepMerge costed ${ji.mergeInfo.elapsedTime/1e3}s`),ne.debug(`[DxfLoader] The remove operation of deep merge costed ${c/1e3}s`),ne.debug(`[DxfLoader] Deep merge totally costed ${(Date.now()-n)/1e3}s`);let h=ji.mergeInfo;ne.debug(`[DxfLoader] Totally merged ${h.removedObjects} objects to ${h.mergedMeshes} meshes, ${h.mergedLines} lines, ${h.mergedPoints} points, ${h.mergedUnknownTypeObjects?h.mergedUnknownTypeObjects+" unknown type,":""} `)}static statLayoutAndLayerObjects(e){let i=new WeakSet,n=0;for(let o in e.layersAndThreejsObjects)e.layersAndThreejsObjects[o].forEach(c=>{c.geometry&&(n++,i.has(c)?console.warn(c):i.add(c))});let s=new WeakSet,a=0;if(e.threejsObject.traverse(o=>{o.geometry&&(a++,s.has(o)?console.warn(o):s.add(o))}),n!=a)for(let o in e.layersAndThreejsObjects)e.layersAndThreejsObjects[o].forEach(c=>{c.geometry&&(s.has(c)||console.warn(c))});ne.info(`[DxfLoader] The count of layer objects is ${n},The count of layout objects is ${a} `)}static removeEmptyObjectsFromRemovingMarkedObjects(e,i){if(e.length===0)return;let n=s=>{let a=[];for(let o of s){o.userData.validCount=0;let l=o.parent;l&&l!==i&&(l.userData.validCount===void 0&&(l.userData.validCount=l.children.length),--l.userData.validCount===0&&a.push(l))}a.length>0&&n(a)};n(e),this.removeEmptyObjectsFromMark(i)}static removeEmptyObjectsFromMark(e){if(e.userData.validCount===0||Qr.isEmptyObject(e))return e.removeFromParent(),!0;for(let i=0;i>3],i=r&7;return(e&128>>i)>>7-i}setBit(r,e){var i=r>>3,n=this.u8[i],s=r&7;e?this.u8[i]=n|128>>s:this.u8[i]=n&~(128>>s)}getInt12(r){var e=r/8|0,i=this.u8[e],n=this.u8[e+1],s=this.u8[e+2],a=r%8,o=8-a,l=Math.min(12-o,8),c=Math.max(12-o-l,0),u=~(255<>12-a)-2048}setInt12(r,e){e+=2048;var i=r/8|0,n=r%8,s=e<<12-n,a=(s&16711680)>>16,o=(s&65280)>>8,l=s&255,c=8-n,u=Math.min(12-c,8),h=Math.max(12-c-u,0),p=255<>8-(2-s))),c=255<<8-o;return i&=l,n&=c,((i<<8)+n>>10-s)-32}setInt6(r,e){e+=32;var i=r/8|0,n=r%8,s=e<<10-n,a=(s&65280)>>8,o=s&255,l=8-n,c=Math.max(6-l,0),u=(255<>8-(2-n));this.u8[i]=(this.u8[i]&u)+a;var h=~(255<<8-c);this.u8[i+1]=(this.u8[i+1]&h)+o}test(){var r=new ArrayBuffer(3),e=new _0(r),i,n;for(n=0;n<12;n++)for(i=-2048;i<2048;i++)if(e.setInt12(n,i),e.getInt12(n)!=i){console.log("12-bit prob at",n,i),console.log("expected",i,"got",e.getInt12(n));break}for(n=0;n<18;n++)for(i=-32;i<32;i++)if(e.setInt6(n,i),e.getInt6(n)!=i){console.log("6-bit prob at",n,i),console.log("expected",i,"got",e.getInt6(n));break}return e}};var oO=class{parse(r){var e={},i=new DataView(r),n=0;if(e.fileCode=i.getInt32(n,!1),e.fileCode!=9994)throw new Error("Unknown file code: "+e.fileCode);for(n+=6*4,e.wordLength=i.getInt32(n,!1),e.byteLength=e.wordLength*2,n+=4,e.version=i.getInt32(n,!0),n+=4,e.shapeType=i.getInt32(n,!0),n+=4,e.minX=i.getFloat64(n,!0),e.minY=i.getFloat64(n+8,!0),e.maxX=i.getFloat64(n+16,!0),e.maxY=i.getFloat64(n+24,!0),e.minZ=i.getFloat64(n+32,!0),e.maxZ=i.getFloat64(n+40,!0),e.minM=i.getFloat64(n+48,!0),e.maxM=i.getFloat64(n+56,!0),n+=8*8,e.records=[];ng.push(...b));let y=new it;y.setFromPoints(f),y.setIndex(g),e.push(y);let E=new it;f.length>2&&!f[0].equals(f[f.length-1])&&f.push(f[0]),E.setFromPoints(f),i.push(E)}else{let m=new it;m.setFromPoints(f),i.push(m)}}}for(var d=new pr,n=0;n1023||Math.abs(a-r[l+1])>1023?(i.push(n),o+=1,n=[],s=r[l],a=r[l+1],n.push(s,a),o+=4,l++):(n.push((r[l]-s)/8,(r[l+1]-a)/8),s+=((r[l]-s)/8|0)*8,a+=((r[l+1]-a)/8|0)*8,o+=2,l++)}return this.storeDeltas(o,e)}deltaEncode6(r){var e=[],i=[],n=[],s=0,a=0,o=0,l=0;for(o=0;o31||Math.abs(a-r[o+1])>31?(i.push(n),l+=1,n=[],s=r[o],a=r[o+1],n.push(s,a),l+=4,o++):(n.push(r[o]-s,r[o+1]-a),s+=r[o]-s,a+=r[o+1]-a,l+=2,o++)}return this.storeDeltas6(l,e)}storeDeltas(r,e){for(var i=new ArrayBuffer(r),n=new DataView(i),s=0,a=0;a{this.updateProgress(i,50);let o=new oO().parse(s.response),l=new lO().createModel(o);this.updateProgress(i,99),e(l)},s.onerror=n,s.open("GET",r),s.send(null)})}updateProgress(r,e){if(r){let i={lengthComputable:!0,loaded:e,total:100};r(new ProgressEvent("progress",i))}}};var u2t="three/js/libs/draco/gltf/",Zc=class{constructor(r){this.manager=r}loadLocalModel(r,e,i){return ot(this,null,function*(){let n=e.toLowerCase();return n.endsWith("fbx")?this.loadFbx(r,i):n.endsWith("obj")?this.loadObj(r,i):n.endsWith("stl")?this.loadStl(r,i):n.endsWith("ifc")?this.loadIfc(r,i):n.endsWith("shp")?this.loadShp(r,i):n.endsWith("dae")?this.loadDae(r,i):n.endsWith("dxf")?this.loadDxf(r,i):n.endsWith("jpg")||n.endsWith("jpeg")||n.endsWith("png")?this.loadImage(r,i):this.loadGltf(r,i)})}loadModel(r,e,i){return ot(this,null,function*(){let n=r;if(!n)return Promise.resolve();let s=(e==null?void 0:e.toLowerCase())||"";if(!s){let a=n.split("?")[0].toLowerCase();if(a){let o=a.lastIndexOf(".");o!==-1&&(s=a.slice(o+1))}}return s.endsWith("fbx")?this.loadFbx(n,i):s.endsWith("obj")?this.loadObj(n,i):s.endsWith("stl")?this.loadStl(n,i):s.endsWith("ifc")?this.loadIfc(n,i):s.endsWith("shp")?this.loadShp(n,i):s.endsWith("dae")?this.loadDae(n,i):s.endsWith("dxf")?this.loadDxf(n,i):s.endsWith("jpg")||s.endsWith("jpeg")||s.endsWith("png")?this.loadImage(n,i):this.loadGltf(n,i)})}loadGltf(r,e){return ot(this,null,function*(){let i=this.getGltfLoader();r.indexOf("#")!==-1&&console.warn(`[LoadingHelper] '#' is not allowed in filename ${r}`),r=r.replace(/#/g,encodeURIComponent("#"));let n=yield i.loadAsync(r,e);return Promise.resolve(n.scene)})}parseGltf(r,e,i,n){return this.getGltfLoader().parse(r,e,a=>i(a.scene),n)}loadFbx(r,e){return ot(this,null,function*(){let n=yield new KC(this.manager).loadAsync(r,e);return Promise.resolve(n)})}loadObj(r,e){return ot(this,null,function*(){let i=new AA(this.manager),n=new DA(this.manager),s=r.replace(".obj",".mtl"),a=yield n.loadAsync(s,e);a.preload(),i.setMaterials(a);let o=yield i.loadAsync(r,e);return Promise.resolve(o)})}loadStl(r,e){return ot(this,null,function*(){let n=yield new NA(this.manager).loadAsync(r,e);return Promise.resolve(new Je(n))})}loadIfc(r,e){return ot(this,null,function*(){let i=new MA(this.manager),n=i.ifcManager;n&&typeof n.setWasmPath=="function"&&n.setWasmPath("../three/js/libs/ifc/");let s=yield i.loadAsync(r,e);return Promise.resolve(s.mesh)})}loadShp(r,e){return ot(this,null,function*(){let i=new cO;return new Promise((n,s)=>{i.load(r,a=>{n(a)},e,a=>{s(a)})})})}loadDae(r,e){return ot(this,null,function*(){let n=yield new YC(this.manager).loadAsync(r,e);return Promise.resolve(n.scene)})}loadDxf(r,e){return ot(this,null,function*(){this.font||console.warn("[LoadingHelper] Should set font first!");let i=new xr;try{let n=yield i.loadAsync(r,e);return Promise.resolve(n.threejsObject)}catch(n){let s=new ErrorEvent("");return Promise.reject(s)}})}loadPly(r,e){return ot(this,null,function*(){let n=yield new PA(this.manager).loadAsync(r,e);return Promise.resolve(new Je(n))})}loadImage(r,e){return ot(this,null,function*(){let n=yield new Es(this.manager).loadAsync(r,e);if(!n)return Promise.reject("Failed to load image!");let s=10,a=n.image,o=a&&a.height||s,l=a&&a.width||s;o=s/l*o,l=s;let c=new or({map:n,side:wi,transparent:!0}),u=new ts(l,o),h=new Je(u,c);return Promise.resolve(h)})}loadDxfDataAsync(r,e,i,n,s,a){return ot(this,null,function*(){var l;this.font||console.warn("[LoadingHelper] Should set font first!");let o=new xr(s,a);return o.setFont(this.font),o.manager.onLoad=()=>{n&&n()},this.font.getFontData&&(yield(l=this.font)==null?void 0:l.getFontData()),o.load(r,e,i)})}setFont(r){this.font=r}getGltfLoader(){if(!this.gltfLoader){this.gltfLoader=new Yu(this.manager);let r=new XC(this.manager);r.setDecoderPath(u2t),this.gltfLoader.setDRACOLoader(r)}return this.gltfLoader}};var JT=class{constructor(r){this.running=!1;this.workers=[];let e=1;r?e=r:window.navigator&&(e=Math.max(e,window.navigator.hardwareConcurrency-1));for(let i=0;i{let s=this.workers.length,a=r.length,o=[],l=Math.floor(a/s),c=a%s,u=0,h=0;for(let p=0;p=h)break;ne.debug("startIndex: "+u+" endIndex: "+h),o.push(d.generate(r.slice(u,h),e))}Promise.allSettled(o).then(()=>{this.running=!1,n()})})})}dispose(){for(let r=0;r{n.traverse(s=>{let a=s;if(a.isMesh&&a.geometry&&ji.isMergedMesh(a)&&!(a instanceof tn)){if(i.has(a.geometry.id))return;a.geometry.index&&e.saveOriginalIndex&&(a.geometry.userData.originalIndex=a.geometry.index.array.slice()),a.geometry.boundsTree=new Nc(a.geometry,e),i.add(a.geometry.id)}})})}static createMeshBvhAsync(r,e={}){let i=new Set,n=[];r.forEach(a=>{a.traverse(o=>{let l=o;if(l.isMesh&&l.geometry&&ji.isMergedMesh(l)&&!(l instanceof tn)){if(i.has(l.geometry.id))return;n.push(l.geometry),i.add(l.geometry.id)}})});let s=new JT;s.generate(n,e).then(()=>{s.dispose()})}};function QT(t){return{type:t}}var ch={movable:!1,startDistBetweenFingers:0,scale:1},eE=2*Math.PI,wMe=1e-6,uO=class extends Ra{constructor(e,i,n=!1){super();this.enabled=!0;this.target=new A;this.enableZoom=!1;this.enablePan=!1;this.enableRotate=!0;this.state=-1;this.rotateSpeed=1;this.zoomSpeed=1;this.panSpeed=1;this.scale=1;this.minZoom=0;this.maxZoom=1/0;this.screenSpacePanning=!0;this.autoRotate=!0;this.autoRotateSpeed=2;this.enableDamping=!1;this.dampingFactor=.05;this.minAzimuthAngle=-1/0;this.maxAzimuthAngle=1/0;this.minPolarAngle=0;this.maxPolarAngle=Math.PI;this.minDistance=0;this.maxDistance=1/0;this.keyPanSpeed=7;this.minFov=50;this.maxFov=95;this.zoomChanged=!1;this.panOffset=new A;this.pointerPositions={};this.rotateStart=new le;this.rotateEnd=new le;this.rotateDelta=new le;this.dollyStart=new le;this.dollyEnd=new le;this.dollyDelta=new le;this.panStart=new le;this.panEnd=new le;this.panDelta=new le;this.pointers=[];this.spherical=new Pc;this.sphericalDelta=new Pc;this.update=function(e){let i=new A,n=new A,s=new Or;return function(){let o=e.quat,l=o.clone().invert(),c=e.object.position;i.copy(c).sub(e.target),i.applyQuaternion(o),e.spherical.setFromVector3(i),e.autoRotate&&e.state===-1&&(e.isVRMode?e.sphericalDelta.theta+=eE/60/60*e.autoRotateSpeed:e.sphericalDelta.theta-=eE/60/60*e.autoRotateSpeed),e.enableDamping?(e.spherical.theta+=e.sphericalDelta.theta*e.dampingFactor,e.spherical.phi+=e.sphericalDelta.phi*e.dampingFactor):(e.spherical.theta+=e.sphericalDelta.theta,e.spherical.phi+=e.sphericalDelta.phi);let u=e.minAzimuthAngle,h=e.maxAzimuthAngle;return isFinite(u)&&isFinite(h)&&(u<-Math.PI?u+=eE:u>Math.PI&&(u-=eE),h<-Math.PI?h+=eE:h>Math.PI&&(h-=eE),u<=h?e.spherical.theta=Math.max(u,Math.min(h,e.spherical.theta)):e.spherical.theta=e.spherical.theta>(u+h)/2?Math.max(u,e.spherical.theta):Math.min(h,e.spherical.theta)),e.spherical.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,e.spherical.phi)),e.spherical.makeSafe(),e.spherical.radius*=e.scale,e.spherical.radius=Math.max(e.minDistance,Math.min(e.maxDistance,e.spherical.radius)),e.enableDamping===!0?e.target.addScaledVector(e.panOffset,e.dampingFactor):e.target.add(e.panOffset),i.setFromSpherical(e.spherical),i.applyQuaternion(l),c.copy(e.target).add(i),e.object.lookAt(e.target),e.enableDamping===!0?(e.sphericalDelta.theta*=1-e.dampingFactor,e.sphericalDelta.phi*=1-e.dampingFactor,e.panOffset.multiplyScalar(1-e.dampingFactor)):(e.sphericalDelta.set(0,0,0),e.panOffset.set(0,0,0)),e.scale=1,e.zoomChanged||n.distanceToSquared(e.object.position)>wMe||8*(1-s.dot(e.object.quaternion))>wMe?(e.dispatchEvent(QT("change")),n.copy(e.object.position),s.copy(e.object.quaternion),e.zoomChanged=!1,!0):!1}}(this);this.onContextMenu=function(e){return i=>{e.enabled!==!1&&i.preventDefault()}}(this);this.onPointerDown=function(e){return i=>{e.enabled!==!1&&(e.pointers.length===0&&(e.domElement.setPointerCapture(i.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),e.addPointer(i),i.pointerType==="touch"?e.onTouchStart(i):e.onMouseDown(i))}}(this);this.onPointerMove=function(e){return i=>{e.enabled!==!1&&(i.pointerType==="touch"?e.onTouchMove(i):e.onMouseMove(i))}}(this);this.onPointerUp=function(e){return i=>{e.removePointer(i),e.pointers.length===0&&(e.domElement.releasePointerCapture(i.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),i.pointerType==="touch"&&e.handlerTouchEnd(i),e.dispatchEvent(QT("end")),e.state=-1}}(this);this.onPointerCancel=function(e){return i=>{e.removePointer(i),e.handlerTouchEnd(i)}}(this);this.onMouseWheel=function(e){return i=>{e.enabled===!1||e.enableZoom===!1||e.state!==-1||(i.preventDefault(),i.stopPropagation(),e.dispatchEvent(QT("start")),e.handleMouseWheel(i),e.dispatchEvent(QT("end")))}}(this);this.pan=function(e){let i=new A;return function(s,a){let o=e.domElement;if(e.object instanceof qr){let l=e.object.position;i.copy(l).sub(e.target);let c=i.length();c*=Math.tan(e.object.fov/2*Math.PI/180),e.panLeft(2*s*c/o.clientHeight,e.object.matrix),e.panUp(2*a*c/o.clientHeight,e.object.matrix)}else console.warn("WARNING: VRControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1}}(this);this.panLeft=function(e){let i=new A;return function(s,a){i.setFromMatrixColumn(a,0),i.multiplyScalar(-s),e.panOffset.add(i)}}(this);this.panUp=function(e){let i=new A;return function(s,a){e.screenSpacePanning===!0?i.setFromMatrixColumn(a,1):(i.setFromMatrixColumn(a,0),i.crossVectors(e.object.up,i)),i.multiplyScalar(s),e.panOffset.add(i)}}(this);this.onKeyDown=e=>{this.enabled===!1||this.enablePan===!1||this.handleKeyDown(e)};this.object=e,this.domElement=i,this.isVRMode=n,this.quat=new Or().setFromUnitVectors(this.object.up,new A(0,1,0)),this.domElement&&this.domElement.style&&(this.domElement.style.touchAction="none"),this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerCancel),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this.domElementKeyEvents&&this.domElementKeyEvents.removeEventListener("keydown",this.onKeyDown)}addPointer(e){this.pointers.push(e)}removePointer(e){delete this.pointerPositions[e.pointerId];for(let i=0;i0&&this.dollyOut(i),this.update()}handleMouseDownRotate(e){this.rotateStart.set(e.clientX,e.clientY)}handleMouseDownDolly(e){this.dollyStart.set(e.clientX,e.clientY)}handleMouseDownPan(e){this.panStart.set(e.clientX,e.clientY)}handleTouchStartRotate(){if(this.pointers.length===1)this.rotateStart.set(this.pointers[0].pageX,this.pointers[0].pageY);else{let e=.5*(this.pointers[0].pageX+this.pointers[1].pageX),i=.5*(this.pointers[0].pageY+this.pointers[1].pageY);this.rotateStart.set(e,i)}}handleTouchStartDolly(e){if(e.length<2)return;let i=e[0],n=e[1];ch.startDistBetweenFingers=this.getDist([i.pageX,i.pageY],[n.pageX,n.pageY]),ch.movable=!0,ch.scale=1}updateRotate(){let e=this.isVRMode,i=this.sphericalDelta;this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);let n=this.domElement;e?(i.theta+=2*Math.PI*this.rotateDelta.x/n.clientHeight,i.phi+=2*Math.PI*this.rotateDelta.y/n.clientHeight):(i.theta-=2*Math.PI*this.rotateDelta.x/n.clientHeight,i.phi-=2*Math.PI*this.rotateDelta.y/n.clientHeight),this.rotateStart.copy(this.rotateEnd)}handleMouseMoveRotate(e){this.rotateEnd.set(e.clientX,e.clientY),this.updateRotate()}dollyOut(e){this.object instanceof qr?this.scale/=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}dollyIn(e){this.object instanceof qr?this.scale*=e:(console.warn("WARNING: VRControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}handleMouseMoveDolly(e){this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart);let i=Math.pow(.95,this.zoomSpeed);this.dollyDelta.y>0?this.dollyOut(i):this.dollyIn(i),this.dollyStart.copy(this.dollyEnd)}handleMouseMovePan(e){this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)}getSecondPointerPosition(e){let i=e.pointerId===this.pointers[0].pointerId?this.pointers[1]:this.pointers[0];return this.pointerPositions[i.pointerId]}handleTouchMoveRotate(e){if(this.pointers.length==1)this.rotateEnd.set(e.pageX,e.pageY);else{let i=this.getSecondPointerPosition(e),n=.5*(e.pageX+i.x),s=.5*(e.pageY+i.y);this.rotateEnd.set(n,s)}this.updateRotate()}updateFov(e){var u;let i=this.object;if(!i||!(i instanceof qr)){console.warn("WARNING: VRControls.js encountered an unknown camera type - updateFov disabled.");return}let n=this.minFov,s=this.maxFov,a=h=>{let p=i.fov+h;p=Math.min(p,s),p=Math.max(p,n),i.fov!==p&&(i.fov=p,i.updateProjectionMatrix(),this.dispatchEvent({type:"change"}))},o=20,l=5,c=e/o;for(let h=0;ha(c),h*l);this.autoRotate&&((u=this.controlsHelper)==null||u.delayAutoRotate())}handleTouchMoveDolly(e){if(!ch.movable||this.pointers.length<2)return;let i=this.getSecondPointerPosition(e),n=[e.pageX,e.pageY],s=[i.x,i.y],a=ch.startDistBetweenFingers,o=this.getDist(n,s);if(!a||!o||Math.abs(a-o)<10)return;let l=o/a;console.log(l);let c=3;l=Math.min(l,c),l=Math.max(l,1/c);let u=.05,h=l-ch.scale;if(Math.abs(h)0,d=0;p?d=-h*10:d=(ch.scale/l-1)*10,this.updateFov(d),ch.scale=l}handleKeyDown(e){let i=!1;switch(e.code){case"ArrowUp":this.pan(0,this.keyPanSpeed),i=!0;break;case"ArrowDown":this.pan(0,-this.keyPanSpeed),i=!0;break;case"ArrowLeft":this.pan(this.keyPanSpeed,0),i=!0;break;case"ArrowRight":this.pan(-this.keyPanSpeed,0),i=!0;break}i&&(e.preventDefault(),this.update())}listenToKeyEvents(e){e.addEventListener("keydown",this.onKeyDown),this.domElementKeyEvents=e}};var Ps={LEFT:1,RIGHT:2,MIDDLE:4},Nt=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768});function w0(t){return t.isPerspectiveCamera}function Xf(t){return t.isOrthographicCamera}var tE=Math.PI*2,RMe=Math.PI/2,FMe=1e-5;function _n(t,r=FMe){return Math.abs(t){r.x+=e.clientX,r.y+=e.clientY}),r.x/=t.length,r.y/=t.length}function H8(t,r){return Xf(t)?(console.warn(`${r} is not supported in OrthographicCamera`),!0):!1}function DMe(t){return t.invert?t.invert():t.inverse(),t}var V8=class{constructor(){this._listeners={}}addEventListener(r,e){let i=this._listeners;i[r]===void 0&&(i[r]=[]),i[r].indexOf(e)===-1&&i[r].push(e)}removeEventListener(r,e){let n=this._listeners[r];if(n!==void 0){let s=n.indexOf(e);s!==-1&&n.splice(s,1)}}removeAllEventListeners(r){if(!r){this._listeners={};return}Array.isArray(this._listeners[r])&&(this._listeners[r].length=0)}dispatchEvent(r){let i=this._listeners[r.type];if(i!==void 0){r.target=this;let n=i.slice(0);for(let s=0,a=n.length;s{},this._enabled=!0,this._state=Nt.NONE,this._viewport=null,this._dollyControlAmount=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._activePointers=[],this._truckInternal=(i,n,s)=>{if(w0(this._camera)){let a=pi.copy(this._camera.position).sub(this._target),o=this._camera.getEffectiveFOV()*mr.MathUtils.DEG2RAD,l=a.length()*Math.tan(o*.5),c=this.truckSpeed*i*l/this._elementRect.height,u=this.truckSpeed*n*l/this._elementRect.height;this.verticalDragToForward?(s?this.setFocalOffset(this._focalOffsetEnd.x+c,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(c,0,!0),this.forward(-u,!0)):s?this.setFocalOffset(this._focalOffsetEnd.x+c,this._focalOffsetEnd.y+u,this._focalOffsetEnd.z,!0):this.truck(c,u,!0)}else if(Xf(this._camera)){let a=this._camera,o=i*(a.right-a.left)/a.zoom/this._elementRect.width,l=n*(a.top-a.bottom)/a.zoom/this._elementRect.height;s?this.setFocalOffset(this._focalOffsetEnd.x+o,this._focalOffsetEnd.y+l,this._focalOffsetEnd.z,!0):this.truck(o,l,!0)}},this._rotateInternal=(i,n)=>{let s=tE*this.azimuthRotateSpeed*i/this._elementRect.height,a=tE*this.polarRotateSpeed*n/this._elementRect.height;this.rotate(s,a,!0)},this._dollyInternal=(i,n,s)=>{let a=Math.pow(.95,-i*this.dollySpeed),o=this._sphericalEnd.radius*a,l=this._sphericalEnd.radius,c=l*(i>=0?-1:1);this.dollyTo(o),this.infinityDolly&&(o{let a=Math.pow(.95,i*this.dollySpeed),o=this._zoomEnd;this.zoomTo(this._zoom*a),this.dollyToCursor&&(this._dollyControlAmount+=this._zoomEnd-o,this._dollyControlCoord.set(n,s))},typeof mr=="undefined"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=r,this._yAxisUpSpace=new mr.Quaternion().setFromUnitVectors(this._camera.up,pO),this._yAxisUpSpaceInverse=DMe(this._yAxisUpSpace.clone()),this._state=Nt.NONE,this._domElement=e,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._target=new mr.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new mr.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new mr.Spherical().setFromVector3(pi.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._nearPlaneCorners=[new mr.Vector3,new mr.Vector3,new mr.Vector3,new mr.Vector3],this._updateNearPlaneCorners(),this._boundary=new mr.Box3(new mr.Vector3(-1/0,-1/0,-1/0),new mr.Vector3(1/0,1/0,1/0)),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlAmount=0,this._dollyControlCoord=new mr.Vector2,this.mouseButtons={left:Nt.ROTATE,middle:Nt.DOLLY,right:Nt.TRUCK,wheel:w0(this._camera)?Nt.DOLLY:Xf(this._camera)?Nt.ZOOM:Nt.NONE},this.touches={one:Nt.TOUCH_ROTATE,two:w0(this._camera)?Nt.TOUCH_DOLLY_TRUCK:Xf(this._camera)?Nt.TOUCH_ZOOM_TRUCK:Nt.NONE,three:Nt.TOUCH_TRUCK},this._domElement){let i=new mr.Vector2,n=new mr.Vector2,s=new mr.Vector2,a=S=>{if(!this._enabled)return;let D={pointerId:S.pointerId,clientX:S.clientX,clientY:S.clientY,deltaX:0,deltaY:0};this._activePointers.push(D),this._domElement.ownerDocument.removeEventListener("pointermove",c,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",p),this._domElement.ownerDocument.addEventListener("pointermove",c,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",p),E(S)},o=S=>{if(!this._enabled)return;let D={pointerId:0,clientX:S.clientX,clientY:S.clientY,deltaX:0,deltaY:0};this._activePointers.push(D),this._domElement.ownerDocument.removeEventListener("mousemove",u),this._domElement.ownerDocument.removeEventListener("mouseup",d),this._domElement.ownerDocument.addEventListener("mousemove",u),this._domElement.ownerDocument.addEventListener("mouseup",d),E(S)},l=S=>{this._enabled&&(S.preventDefault(),Array.prototype.forEach.call(S.changedTouches,D=>{let P={pointerId:D.identifier,clientX:D.clientX,clientY:D.clientY,deltaX:0,deltaY:0};this._activePointers.push(P)}),this._domElement.ownerDocument.removeEventListener("touchmove",h,{passive:!1}),this._domElement.ownerDocument.removeEventListener("touchend",f),this._domElement.ownerDocument.addEventListener("touchmove",h,{passive:!1}),this._domElement.ownerDocument.addEventListener("touchend",f),E(S))},c=S=>{S.cancelable&&S.preventDefault();let D=S.pointerId,P=this._findPointerById(D);if(P){if(P.clientX=S.clientX,P.clientY=S.clientY,P.deltaX=S.movementX,P.deltaY=S.movementY,S.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=0,(S.buttons&Ps.LEFT)===Ps.LEFT&&(this._state=this._state|this.mouseButtons.left),(S.buttons&Ps.MIDDLE)===Ps.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(S.buttons&Ps.RIGHT)===Ps.RIGHT&&(this._state=this._state|this.mouseButtons.right);b()}},u=S=>{let D=this._findPointerById(0);D&&(D.clientX=S.clientX,D.clientY=S.clientY,D.deltaX=S.movementX,D.deltaY=S.movementY,this._state=0,(S.buttons&Ps.LEFT)===Ps.LEFT&&(this._state=this._state|this.mouseButtons.left),(S.buttons&Ps.MIDDLE)===Ps.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(S.buttons&Ps.RIGHT)===Ps.RIGHT&&(this._state=this._state|this.mouseButtons.right),b())},h=S=>{S.cancelable&&S.preventDefault(),Array.prototype.forEach.call(S.changedTouches,D=>{let P=D.identifier,_=this._findPointerById(P);_&&(_.clientX=D.clientX,_.clientY=D.clientY)}),b()},p=S=>{let D=S.pointerId,P=this._findPointerById(D);if(P&&this._activePointers.splice(this._activePointers.indexOf(P),1),S.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=Nt.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=Nt.NONE;x()},d=()=>{let S=this._findPointerById(0);S&&this._activePointers.splice(this._activePointers.indexOf(S),1),this._state=Nt.NONE,x()},f=S=>{switch(Array.prototype.forEach.call(S.changedTouches,D=>{let P=D.identifier,_=this._findPointerById(P);_&&this._activePointers.splice(this._activePointers.indexOf(_),1)}),this._activePointers.length){case 0:this._state=Nt.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}x()},m=-1,g=S=>{if(!this._enabled||this.mouseButtons.wheel===Nt.NONE)return;if(S.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===Nt.ROTATE||this.mouseButtons.wheel===Nt.TRUCK){let F=performance.now();m-F<1e3&&this._getClientRect(this._elementRect),m=F}let D=h2t?-1:-3,P=S.deltaMode===1?S.deltaY/D:S.deltaY/(D*10),_=this.dollyToCursor?(S.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,w=this.dollyToCursor?(S.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case Nt.ROTATE:{this._rotateInternal(S.deltaX,S.deltaY);break}case Nt.TRUCK:{this._truckInternal(S.deltaX,S.deltaY,!1);break}case Nt.OFFSET:{this._truckInternal(S.deltaX,S.deltaY,!0);break}case Nt.DOLLY:{this._dollyInternal(-P,_,w);break}case Nt.ZOOM:{this._zoomInternal(-P,_,w);break}}this.dispatchEvent({type:"control"})},y=S=>{this._enabled&&S.preventDefault()},E=S=>{if(!this._enabled)return;if(F8(this._activePointers,bo),this._getClientRect(this._elementRect),i.copy(bo),n.copy(bo),this._activePointers.length>=2){let P=bo.x-this._activePointers[1].clientX,_=bo.y-this._activePointers[1].clientY,w=Math.sqrt(P*P+_*_);s.set(0,w);let F=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,X=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;n.set(F,X)}if("touches"in S||"pointerType"in S&&S.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=0,(S.buttons&Ps.LEFT)===Ps.LEFT&&(this._state=this._state|this.mouseButtons.left),(S.buttons&Ps.MIDDLE)===Ps.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(S.buttons&Ps.RIGHT)===Ps.RIGHT&&(this._state=this._state|this.mouseButtons.right);this.dispatchEvent({type:"controlstart"})},b=()=>{if(!this._enabled)return;F8(this._activePointers,bo);let S=this._domElement&&document.pointerLockElement===this._domElement,D=S?-this._activePointers[0].deltaX:n.x-bo.x,P=S?-this._activePointers[0].deltaY:n.y-bo.y;if(n.copy(bo),((this._state&Nt.ROTATE)===Nt.ROTATE||(this._state&Nt.TOUCH_ROTATE)===Nt.TOUCH_ROTATE||(this._state&Nt.TOUCH_DOLLY_ROTATE)===Nt.TOUCH_DOLLY_ROTATE||(this._state&Nt.TOUCH_ZOOM_ROTATE)===Nt.TOUCH_ZOOM_ROTATE)&&this._rotateInternal(D,P),(this._state&Nt.DOLLY)===Nt.DOLLY||(this._state&Nt.ZOOM)===Nt.ZOOM){let _=this.dollyToCursor?(i.x-this._elementRect.x)/this._elementRect.width*2-1:0,w=this.dollyToCursor?(i.y-this._elementRect.y)/this._elementRect.height*-2+1:0;this._state===Nt.DOLLY?this._dollyInternal(P*hO,_,w):this._zoomInternal(P*hO,_,w)}if((this._state&Nt.TOUCH_DOLLY)===Nt.TOUCH_DOLLY||(this._state&Nt.TOUCH_ZOOM)===Nt.TOUCH_ZOOM||(this._state&Nt.TOUCH_DOLLY_TRUCK)===Nt.TOUCH_DOLLY_TRUCK||(this._state&Nt.TOUCH_ZOOM_TRUCK)===Nt.TOUCH_ZOOM_TRUCK||(this._state&Nt.TOUCH_DOLLY_OFFSET)===Nt.TOUCH_DOLLY_OFFSET||(this._state&Nt.TOUCH_ZOOM_OFFSET)===Nt.TOUCH_ZOOM_OFFSET||(this._state&Nt.TOUCH_DOLLY_ROTATE)===Nt.TOUCH_DOLLY_ROTATE||(this._state&Nt.TOUCH_ZOOM_ROTATE)===Nt.TOUCH_ZOOM_ROTATE){let _=bo.x-this._activePointers[1].clientX,w=bo.y-this._activePointers[1].clientY,F=Math.sqrt(_*_+w*w),X=s.y-F;s.set(0,F);let H=this.dollyToCursor?(n.x-this._elementRect.x)/this._elementRect.width*2-1:0,he=this.dollyToCursor?(n.y-this._elementRect.y)/this._elementRect.height*-2+1:0;this._state===Nt.TOUCH_DOLLY||this._state===Nt.TOUCH_DOLLY_ROTATE||this._state===Nt.TOUCH_DOLLY_TRUCK||this._state===Nt.TOUCH_DOLLY_OFFSET?this._dollyInternal(X*hO,H,he):this._zoomInternal(X*hO,H,he)}((this._state&Nt.TRUCK)===Nt.TRUCK||(this._state&Nt.TOUCH_TRUCK)===Nt.TOUCH_TRUCK||(this._state&Nt.TOUCH_DOLLY_TRUCK)===Nt.TOUCH_DOLLY_TRUCK||(this._state&Nt.TOUCH_ZOOM_TRUCK)===Nt.TOUCH_ZOOM_TRUCK)&&this._truckInternal(D,P,!1),((this._state&Nt.OFFSET)===Nt.OFFSET||(this._state&Nt.TOUCH_OFFSET)===Nt.TOUCH_OFFSET||(this._state&Nt.TOUCH_DOLLY_OFFSET)===Nt.TOUCH_DOLLY_OFFSET||(this._state&Nt.TOUCH_ZOOM_OFFSET)===Nt.TOUCH_ZOOM_OFFSET)&&this._truckInternal(D,P,!0),this.dispatchEvent({type:"control"})},x=()=>{F8(this._activePointers,bo),n.copy(bo),this._activePointers.length===0&&(this._domElement.ownerDocument.removeEventListener("pointermove",c,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",p),this._domElement.ownerDocument.removeEventListener("touchmove",h,{passive:!1}),this._domElement.ownerDocument.removeEventListener("touchend",f),this.dispatchEvent({type:"controlend"}))};this._domElement.addEventListener("pointerdown",a),CMe&&this._domElement.addEventListener("mousedown",o),CMe&&this._domElement.addEventListener("touchstart",l),this._domElement.addEventListener("pointercancel",p),this._domElement.addEventListener("wheel",g,{passive:!1}),this._domElement.addEventListener("contextmenu",y),this._removeAllEventListeners=()=>{this._domElement.removeEventListener("pointerdown",a),this._domElement.removeEventListener("mousedown",o),this._domElement.removeEventListener("touchstart",l),this._domElement.removeEventListener("pointercancel",p),this._domElement.removeEventListener("wheel",g,{passive:!1}),this._domElement.removeEventListener("contextmenu",y),this._domElement.ownerDocument.removeEventListener("pointermove",c,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",u),this._domElement.ownerDocument.removeEventListener("touchmove",h,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",p),this._domElement.ownerDocument.removeEventListener("mouseup",d),this._domElement.ownerDocument.removeEventListener("touchend",f)},this.cancel=()=>{this._state!==Nt.NONE&&(this._state=Nt.NONE,this._activePointers.length=0,x())}}this.update(0)}static install(r){mr=r.THREE,AMe=Object.freeze(new mr.Vector3(0,0,0)),pO=Object.freeze(new mr.Vector3(0,1,0)),U8=Object.freeze(new mr.Vector3(0,0,1)),bo=new mr.Vector2,pi=new mr.Vector3,sn=new mr.Vector3,rE=new mr.Vector3,uh=new mr.Vector3,hh=new mr.Vector3,R0=new mr.Vector3,OMe=new mr.Vector3,PMe=new mr.Vector3,Kc=new mr.Spherical,xS=new mr.Spherical,iE=new mr.Box3,NMe=new mr.Box3,B8=new mr.Sphere,LMe=new mr.Quaternion,k8=new mr.Quaternion,G8=new mr.Matrix4,dO=new mr.Raycaster}static get ACTION(){return Nt}get camera(){return this._camera}set camera(r){this._camera=r,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(r){this._enabled=r,r?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="")}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(r){this._spherical.radius===r&&this._sphericalEnd.radius===r||(this._spherical.radius=r,this._sphericalEnd.radius=r,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(r){this._spherical.theta===r&&this._sphericalEnd.theta===r||(this._spherical.theta=r,this._sphericalEnd.theta=r,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(r){this._spherical.phi===r&&this._sphericalEnd.phi===r||(this._spherical.phi=r,this._sphericalEnd.phi=r,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(r){this._boundaryEnclosesCamera=r,this._needsUpdate=!0}addEventListener(r,e){super.addEventListener(r,e)}removeEventListener(r,e){super.removeEventListener(r,e)}rotate(r,e,i=!1){return this.rotateTo(this._sphericalEnd.theta+r,this._sphericalEnd.phi+e,i)}rotateAzimuthTo(r,e=!1){return this.rotateTo(r,this._sphericalEnd.phi,e)}rotatePolarTo(r,e=!1){return this.rotateTo(this._sphericalEnd.theta,r,e)}rotateTo(r,e,i=!1){let n=mr.MathUtils.clamp(r,this.minAzimuthAngle,this.maxAzimuthAngle),s=mr.MathUtils.clamp(e,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=n,this._sphericalEnd.phi=s,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,i||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);let a=!i||Sn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Sn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(a)}dolly(r,e=!1){return this.dollyTo(this._sphericalEnd.radius-r,e)}dollyTo(r,e=!1){let i=this._sphericalEnd.radius,n=mr.MathUtils.clamp(r,this.minDistance,this.maxDistance);if(this.colliderMeshes.length>=1){let o=this._collisionTest(),l=Sn(o,this._spherical.radius);if(!(i>n)&&l)return Promise.resolve();this._sphericalEnd.radius=Math.min(n,o)}else this._sphericalEnd.radius=n;this._needsUpdate=!0,e||(this._spherical.radius=this._sphericalEnd.radius);let a=!e||Sn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(a)}zoom(r,e=!1){return this.zoomTo(this._zoomEnd+r,e)}zoomTo(r,e=!1){this._zoomEnd=mr.MathUtils.clamp(r,this.minZoom,this.maxZoom),this._needsUpdate=!0,e||(this._zoom=this._zoomEnd);let i=!e||Sn(this._zoom,this._zoomEnd,this.restThreshold);return this._createOnRestPromise(i)}pan(r,e,i=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(r,e,i)}truck(r,e,i=!1){this._camera.updateMatrix(),uh.setFromMatrixColumn(this._camera.matrix,0),hh.setFromMatrixColumn(this._camera.matrix,1),uh.multiplyScalar(r),hh.multiplyScalar(-e);let n=pi.copy(uh).add(hh),s=sn.copy(this._targetEnd).add(n);return this.moveTo(s.x,s.y,s.z,i)}forward(r,e=!1){pi.setFromMatrixColumn(this._camera.matrix,0),pi.crossVectors(this._camera.up,pi),pi.multiplyScalar(r);let i=sn.copy(this._targetEnd).add(pi);return this.moveTo(i.x,i.y,i.z,e)}moveTo(r,e,i,n=!1){let s=pi.set(r,e,i).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,s,this.boundaryFriction),this._needsUpdate=!0,n||this._target.copy(this._targetEnd);let a=!n||Sn(this._target.x,this._targetEnd.x,this.restThreshold)&&Sn(this._target.y,this._targetEnd.y,this.restThreshold)&&Sn(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(a)}fitToBox(r,e,{cover:i=!1,paddingLeft:n=0,paddingRight:s=0,paddingBottom:a=0,paddingTop:o=0}={}){let l=[],c=r.isBox3?iE.copy(r):iE.setFromObject(r);c.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());let u=MMe(this._sphericalEnd.theta,RMe),h=MMe(this._sphericalEnd.phi,RMe);l.push(this.rotateTo(u,h,e));let p=pi.setFromSpherical(this._sphericalEnd).normalize(),d=LMe.setFromUnitVectors(p,U8),f=Sn(Math.abs(p.y),1);f&&d.multiply(k8.setFromAxisAngle(pO,u)),d.multiply(this._yAxisUpSpaceInverse);let m=NMe.makeEmpty();sn.copy(c.min).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.min).setX(c.max.x).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.min).setY(c.max.y).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.max).setZ(c.min.z).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.min).setZ(c.max.z).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.max).setY(c.min.y).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.max).setX(c.min.x).applyQuaternion(d),m.expandByPoint(sn),sn.copy(c.max).applyQuaternion(d),m.expandByPoint(sn),m.min.x-=n,m.min.y-=a,m.max.x+=s,m.max.y+=o,d.setFromUnitVectors(U8,p),f&&d.premultiply(k8.invert()),d.premultiply(this._yAxisUpSpace);let g=m.getSize(pi),y=m.getCenter(sn).applyQuaternion(d);if(w0(this._camera)){let E=this.getDistanceToFitBox(g.x,g.y,g.z,i);l.push(this.moveTo(y.x,y.y,y.z,e)),l.push(this.dollyTo(E,e)),l.push(this.setFocalOffset(0,0,0,e))}else if(Xf(this._camera)){let E=this._camera,b=E.right-E.left,x=E.top-E.bottom,S=i?Math.max(b/g.x,x/g.y):Math.min(b/g.x,x/g.y);l.push(this.moveTo(y.x,y.y,y.z,e)),l.push(this.zoomTo(S,e)),l.push(this.setFocalOffset(0,0,0,e))}return Promise.all(l)}fitToSphere(r,e){let i=[],s=r instanceof mr.Sphere?B8.copy(r):p2t(r,B8);if(i.push(this.moveTo(s.center.x,s.center.y,s.center.z,e)),w0(this._camera)){let a=this.getDistanceToFitSphere(s.radius);i.push(this.dollyTo(a,e))}else if(Xf(this._camera)){let a=this._camera.right-this._camera.left,o=this._camera.top-this._camera.bottom,l=2*s.radius,c=Math.min(a/l,o/l);i.push(this.zoomTo(c,e))}return i.push(this.setFocalOffset(0,0,0,e)),Promise.all(i)}setLookAt(r,e,i,n,s,a,o=!1){let l=sn.set(n,s,a),c=pi.set(r,e,i);this._targetEnd.copy(l),this._sphericalEnd.setFromVector3(c.sub(l).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,o||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let u=!o||Sn(this._target.x,this._targetEnd.x,this.restThreshold)&&Sn(this._target.y,this._targetEnd.y,this.restThreshold)&&Sn(this._target.z,this._targetEnd.z,this.restThreshold)&&Sn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Sn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&Sn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(u)}lerpLookAt(r,e,i,n,s,a,o,l,c,u,h,p,d,f=!1){let m=pi.set(n,s,a),g=sn.set(r,e,i);Kc.setFromVector3(g.sub(m).applyQuaternion(this._yAxisUpSpace));let y=rE.set(u,h,p),E=sn.set(o,l,c);xS.setFromVector3(E.sub(y).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(m.lerp(y,d));let b=xS.theta-Kc.theta,x=xS.phi-Kc.phi,S=xS.radius-Kc.radius;this._sphericalEnd.set(Kc.radius+S*d,Kc.phi+x*d,Kc.theta+b*d),this.normalizeRotations(),this._needsUpdate=!0,f||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));let D=!f||Sn(this._target.x,this._targetEnd.x,this.restThreshold)&&Sn(this._target.y,this._targetEnd.y,this.restThreshold)&&Sn(this._target.z,this._targetEnd.z,this.restThreshold)&&Sn(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&Sn(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&Sn(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(D)}setPosition(r,e,i,n=!1){return this.setLookAt(r,e,i,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,n)}setTarget(r,e,i,n=!1){let s=this.getPosition(pi);return this.setLookAt(s.x,s.y,s.z,r,e,i,n)}setFocalOffset(r,e,i,n=!1){this._focalOffsetEnd.set(r,e,i),this._needsUpdate=!0,n||this._focalOffset.copy(this._focalOffsetEnd);let s=!n||Sn(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&Sn(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&Sn(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(s)}setOrbitPoint(r,e,i){this._camera.updateMatrixWorld(),uh.setFromMatrixColumn(this._camera.matrixWorldInverse,0),hh.setFromMatrixColumn(this._camera.matrixWorldInverse,1),R0.setFromMatrixColumn(this._camera.matrixWorldInverse,2);let n=pi.set(r,e,i),s=n.distanceTo(this._camera.position),a=n.sub(this._camera.position);uh.multiplyScalar(a.x),hh.multiplyScalar(a.y),R0.multiplyScalar(a.z),pi.copy(uh).add(hh).add(R0),pi.z=pi.z+s,this.dollyTo(s,!1),this.setFocalOffset(-pi.x,pi.y,-pi.z,!1),this.moveTo(r,e,i,!1)}setBoundary(r){if(!r){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(r),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(r,e,i,n){if(r===null){this._viewport=null;return}this._viewport=this._viewport||new mr.Vector4,typeof r=="number"?this._viewport.set(r,e,i,n):this._viewport.copy(r)}getDistanceToFitBox(r,e,i,n=!1){if(H8(this._camera,"getDistanceToFitBox"))return this._spherical.radius;let s=r/e,a=this._camera.getEffectiveFOV()*mr.MathUtils.DEG2RAD,o=this._camera.aspect;return((n?s>o:si.pointerId===r?(e=i,!0):!1),e}_encloseToBoundary(r,e,i){let n=e.lengthSq();if(n===0)return r;let s=sn.copy(e).add(r),o=this._boundary.clampPoint(s,rE).sub(s),l=o.lengthSq();if(l===0)return r.add(e);if(l===n)return r;if(i===0)return r.add(e).add(o);{let c=1+i*l/e.dot(o);return r.add(sn.copy(e).multiplyScalar(c)).add(o.multiplyScalar(1-i))}}_updateNearPlaneCorners(){if(w0(this._camera)){let r=this._camera,e=r.near,i=r.getEffectiveFOV()*mr.MathUtils.DEG2RAD,n=Math.tan(i*.5)*e,s=n*r.aspect;this._nearPlaneCorners[0].set(-s,-n,0),this._nearPlaneCorners[1].set(s,-n,0),this._nearPlaneCorners[2].set(s,n,0),this._nearPlaneCorners[3].set(-s,n,0)}else if(Xf(this._camera)){let r=this._camera,e=1/r.zoom,i=r.left*e,n=r.right*e,s=r.top*e,a=r.bottom*e;this._nearPlaneCorners[0].set(i,s,0),this._nearPlaneCorners[1].set(n,s,0),this._nearPlaneCorners[2].set(n,a,0),this._nearPlaneCorners[3].set(i,a,0)}}_collisionTest(){let r=1/0;if(!(this.colliderMeshes.length>=1)||H8(this._camera,"_collisionTest"))return r;let i=pi.setFromSpherical(this._spherical).divideScalar(this._spherical.radius);G8.lookAt(AMe,i,this._camera.up);for(let n=0;n<4;n++){let s=sn.copy(this._nearPlaneCorners[n]);s.applyMatrix4(G8);let a=rE.addVectors(this._target,s);dO.set(a,i),dO.far=this._spherical.radius+1;let o=dO.intersectObjects(this.colliderMeshes);o.length!==0&&o[0].distance{let i=()=>{this.removeEventListener("rest",i),e()};this.addEventListener("rest",i)}))}_removeAllEventListeners(){}};function p2t(t,r){let e=r,i=e.center;iE.makeEmpty(),t.traverseVisible(s=>{s.isMesh&&iE.expandByObject(s)}),iE.getCenter(i);let n=0;return t.traverseVisible(s=>{if(!s.isMesh)return;let a=s,o=a.geometry.clone();if(o.applyMatrix4(a.matrixWorld),o.isBufferGeometry){let c=o.attributes.position;for(let u=0,h=c.count;u{!this.enabled||!this.enablePan||this.handleKeyDown(r)};qn.install({THREE:Pt}),this.cameraControls=new qn(r,e),this.object=r,this.domElement=e,this.dampingFactor=.05,this.zoomSpeed=.05,this.rotateSpeed=1,this.panSpeed=1,this.mouseButtons={LEFT:bi.ROTATE,MIDDLE:bi.DOLLY,RIGHT:bi.PAN},this.touches={ONE:ao.ROTATE,TWO:ao.DOLLY_PAN}}get minDistance(){return this.cameraControls.minDistance}set minDistance(r){this.cameraControls.minDistance=r}get maxDistance(){return this.cameraControls.maxDistance}set maxDistance(r){this.cameraControls.maxDistance=r}get minZoom(){return this.cameraControls.minZoom}set minZoom(r){this.cameraControls.minZoom=r}get maxZoom(){return this.cameraControls.maxZoom}set maxZoom(r){this.cameraControls.maxZoom=r}get minPolarAngle(){return this.cameraControls.minPolarAngle}set minPolarAngle(r){this.cameraControls.minPolarAngle=r}get maxPolarAngle(){return this.cameraControls.maxPolarAngle}set maxPolarAngle(r){this.cameraControls.maxPolarAngle=r}get minAzimuthAngle(){return this.cameraControls.minAzimuthAngle}set minAzimuthAngle(r){this.cameraControls.minAzimuthAngle=r}get maxAzimuthAngle(){return this.cameraControls.maxAzimuthAngle}set maxAzimuthAngle(r){this.cameraControls.maxAzimuthAngle=r}get enabled(){return this.cameraControls.enabled}set enabled(r){this.cameraControls.enabled=r}get position(){return this.cameraControls.getPosition(new A)}set position(r){this.cameraControls.setPosition(r.x,r.y,r.z)}get target(){let r=new A;return this.cameraControls.getTarget(r),r}set target(r){this.cameraControls.setTarget(r.x,r.y,r.z)}get enableDamping(){return this._enableDamping}set enableDamping(r){this._enableDamping=r,r||(this.dampingFactorValue=this.cameraControls.dampingFactor),this.cameraControls.dampingFactor=r?this.dampingFactorValue:1,this.cameraControls.draggingDampingFactor=r?this.dampingFactorValue:1,r&&(this.dampingFactorValue=void 0)}get dampingFactor(){return this.cameraControls.dampingFactor}set dampingFactor(r){this.cameraControls.dampingFactor=r,this.cameraControls.draggingDampingFactor=r}get enableZoom(){return this._enableZoom}set enableZoom(r){this._enableZoom=r,r||(this.dollySpeedValue=this.cameraControls.dollySpeed),this.cameraControls.dollySpeed=r?this.dollySpeedValue:0,r&&(this.dollySpeedValue=void 0)}get zoomSpeed(){return this.cameraControls.dollySpeed}set zoomSpeed(r){this.cameraControls.dollySpeed=r}get enableRotate(){return this._enableRotate}set enableRotate(r){this._enableRotate=r,r||(this.rotateSpeedValue=this.cameraControls.azimuthRotateSpeed),this.cameraControls.azimuthRotateSpeed=r?this.rotateSpeedValue:0,this.cameraControls.polarRotateSpeed=r?this.rotateSpeedValue:0,r&&(this.rotateSpeedValue=void 0)}get rotateSpeed(){return this.cameraControls.azimuthRotateSpeed}set rotateSpeed(r){this.cameraControls.azimuthRotateSpeed=r,this.cameraControls.polarRotateSpeed=r}get enablePan(){return this._enablePan}set enablePan(r){this._enablePan=r,r||(this.panSpeedValue=this.cameraControls.truckSpeed),this.cameraControls.truckSpeed=r?this.panSpeedValue:0,r&&(this.panSpeedValue=void 0)}get panSpeed(){return this.cameraControls.truckSpeed}set panSpeed(r){this.cameraControls.truckSpeed=r}get dollyToCursor(){return this.cameraControls.dollyToCursor}set dollyToCursor(r){this.cameraControls.dollyToCursor=r}get screenSpacePanning(){return!this.cameraControls.verticalDragToForward}set screenSpacePanning(r){this.cameraControls.verticalDragToForward=!r}get mouseButtons(){return this._mouseButtons}set mouseButtons(r){this._mouseButtons=r;for(let e in r){let i=d2t(this.object)[r[e]];e==="MIDDLE"?this.cameraControls.mouseButtons.wheel=i:this.cameraControls.mouseButtons[e.toLowerCase()]=i}this.cameraControls.mouseButtons.middle=qn.ACTION.NONE}get touches(){return this._touches}set touches(r){this._touches=r;for(let e in r){let i=f2t(this.object)[r[e]],n=e.toLowerCase();if(n==="one"){(i===qn.ACTION.TOUCH_ROTATE||i===qn.ACTION.TOUCH_TRUCK)&&(this.cameraControls.touches[n]=i);continue}this.cameraControls.touches[n]=i}}get target0(){let r=JSON.parse(this.cameraControls.toJSON()).target0;return new A(r[0],r[1],r[2])}set target0(r){let e=JSON.parse(this.cameraControls.toJSON());e.target0=r.toArray(),this.cameraControls.fromJSON(JSON.stringify(e))}get position0(){let r=JSON.parse(this.cameraControls.toJSON()).position0;return new A(r[0],r[1],r[2])}set position0(r){let e=JSON.parse(this.cameraControls.toJSON());e.position0=r.toArray(),this.cameraControls.fromJSON(JSON.stringify(e))}get zoom0(){return JSON.parse(this.cameraControls.toJSON()).zoom0}set zoom0(r){let e=JSON.parse(this.cameraControls.toJSON());e.zoom0=r,this.cameraControls.fromJSON(JSON.stringify(e))}handleKeyDown(r){let e=!1;switch(r.code){case this.keys.UP:r.ctrlKey||r.metaKey||r.shiftKey?this.cameraControls.rotateAzimuthTo(2*Math.PI*this.cameraControls.azimuthRotateSpeed/this.domElement.clientHeight,!1):this.cameraControls.truck(0,this.keyPanSpeed*.05/this.panSpeed,!1),e=!0;break;case this.keys.BOTTOM:r.ctrlKey||r.metaKey||r.shiftKey?this.cameraControls.rotateAzimuthTo(-2*Math.PI*this.cameraControls.azimuthRotateSpeed/this.domElement.clientHeight,!1):this.cameraControls.truck(0,-this.keyPanSpeed*.05/this.panSpeed,!1),e=!0;break;case this.keys.LEFT:r.ctrlKey||r.metaKey||r.shiftKey?this.cameraControls.rotatePolarTo(2*Math.PI*this.cameraControls.polarRotateSpeed/this.domElement.clientHeight,!1):this.cameraControls.truck(this.keyPanSpeed*.05/this.panSpeed,0,!1),e=!0;break;case this.keys.RIGHT:r.ctrlKey||r.metaKey||r.shiftKey?this.cameraControls.rotatePolarTo(-2*Math.PI*this.cameraControls.polarRotateSpeed/this.domElement.clientHeight,!1):this.cameraControls.truck(-this.keyPanSpeed*.05/this.panSpeed,0,!1),e=!0;break}e&&(r.preventDefault(),this.update())}getAutoRotationAngle(){return 2*Math.PI/60/60*this.autoRotateSpeed}listenToKeyEvents(r){r.addEventListener("keydown",this.onKeyDown),this.domElementKeyEvents=r}update(){let r=this.clock.getDelta();this.cameraControls.update(r),this.autoRotate&&this.cameraControls.currentAction===qn.ACTION.NONE&&this.cameraControls.rotate(this.getAutoRotationAngle(),0,!1)}saveState(){this.cameraControls.saveState()}reset(){this.cameraControls.reset(!0)}dispose(){this.cameraControls.dispose()}getPolarAngle(){return this.cameraControls.polarAngle}getAzimuthalAngle(){return this.cameraControls.azimuthAngle}getDistance(){return this.cameraControls.distance}addEventListener(r,e){this.cameraControls.addEventListener(r,e)}removeEventListener(r,e){this.cameraControls.removeEventListener(r,e)}dispatchEvent(r){this.cameraControls.dispatchEvent(r)}setLookAt(r,e){this.cameraControls.setLookAt(r.x,r.y,r.z,e.x,e.y,e.z,!1),this.cameraControls.setFocalOffset(0,0,0,!1)}setOrbitPoint(r){this.cameraControls.setOrbitPoint(r.x,r.y,r.z)}};var mO,rl=class extends po{constructor(e){super(St.guid());this.needsFrustumCulled=!1;this.snapType="Dot";this.snapLineVisible=!1;this.snapType=e,this.drawSnapFunctions={Dot:this.drawDot.bind(this),Square:this.drawSquare.bind(this),Cross:this.drawCross.bind(this),Triangle:this.drawTriangle.bind(this),Perpendicular:this.drawPerpendicular.bind(this)}}setSnapLineVisible(e){this.snapLineVisible=e}draw(e,i){this.osnapInfo&&(this.snapLineVisible&&this.drawSnapLine(e,i),e.save(),e.fillStyle=rl.FILL_COLOR,e.strokeStyle=rl.LINE_COLOR,e.lineWidth=rl.LINE_WIDTH,e.beginPath(),this.drawSnapFunctions[this.snapType](e,i),mO&&this.drawDebug(e,i),e.closePath(),e.fill(),e.stroke(),e.restore())}drawDebug(e,i){mO==null||mO.forEach(n=>{let s=this.transToScreenCoord(n.start,i),a=this.transToScreenCoord(n.end,i);e.moveTo(s.x,s.y),e.lineTo(a.x,a.y)})}drawSelect(e,i){}isPointInPath(e){return!1}drawSnapLine(e,i){e.save(),e.strokeStyle=rl.SNAP_LINE_COLOR,e.lineWidth=rl.LINE_WIDTH;let n=this.transToScreenCoord(this.osnapInfo.line.start,i),s=this.transToScreenCoord(this.osnapInfo.line.end,i);e.moveTo(n.x,n.y),e.lineTo(s.x,s.y),e.stroke(),e.restore()}drawDot(e,i){let n=this.transToScreenCoord(this.osnapInfo.point,i);e.arc(n.x,n.y,rl.SNAP_ICON_SIZE/3,0,Math.PI*2)}drawSquare(e,i){let n=this.transToScreenCoord(this.osnapInfo.point,i),s=rl.SNAP_ICON_SIZE/1.2,a=rl.SNAP_ICON_SIZE/1.2;e.rect(n.x-s/2,n.y-a/2,s,a)}drawTriangle(e,i){let n=this.transToScreenCoord(this.osnapInfo.point,i),s=rl.SNAP_ICON_SIZE/1.2/2,a=new le(0,-s).add(n),o=new le(-.87*s,s/2).add(n),l=new le(.87*s,s/2).add(n);e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.lineTo(l.x,l.y),e.closePath()}drawCross(e,i){let n=this.transToScreenCoord(this.osnapInfo.point,i),s=rl.SNAP_ICON_SIZE/1.2/2,a=new le(-s,-s).add(n),o=new le(s,s).add(n),l=new le(s,-s).add(n),c=new le(-s,s).add(n);e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.moveTo(l.x,l.y),e.lineTo(c.x,c.y)}drawPerpendicular(e,i){let n=this.transToScreenCoord(this.osnapInfo.point,i),s=rl.SNAP_ICON_SIZE/1.2/2;[new le(0,0).add(n),new le(-s,0).add(n),new le(0,0).add(n),new le(0,s).add(n),new le(s,s).add(n),new le(-s,s).add(n),new le(-s,s).add(n),new le(-s,-s).add(n)].forEach((o,l)=>{l===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)})}update(e){this.osnapInfo=e}getClassType(){return"SnapDrawable"}},il=rl;il.LINE_COLOR="rgba(255, 240, 0, 0.8)",il.FILL_COLOR="rgba(135, 206, 250, 0.5)",il.SNAP_LINE_COLOR="rgba(255, 240, 0, 0.3)",il.LINE_WIDTH=2.5,il.SNAP_ICON_SIZE=10;Dr._registerDrawableClass(il);var m2t=1e-5,gO=class{constructor(r){this.drawableList=new Hp("snap");this.markers={};this.activeOSnapType=0;this.snapTolerance=1;var e;this.overlayRender=r,(e=this.overlayRender)==null||e.addDrawableList(this.drawableList),this.initOSnapMarkers()}initOSnapMarkers(){let r=new il("Square"),e=new il("Triangle"),i=new il("Dot"),n=new il("Cross"),s=new il("Perpendicular");this.markers[2]=r,this.markers[4]=r,this.markers[8]=e,this.markers[1]=i,this.markers[32]=n,this.markers[16]=s,Object.values(this.markers).forEach(a=>{a.visible=!1,this.drawableList.addDrawable(a)})}updateSnapTolerance(r){this.snapTolerance=r}getSnapTolerance(){return this.snapTolerance}getMarker(r){return this.markers[r]}deactivate(){this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=0}destroy(){}handleSnap(r,e,i,n){if(!(e!=null&&e.length)){this.activateMarker(0);return}let s=this.getInteractionLines(r,e);if(s){let a=this.getSnapInfo(r,s,n);if(!a||a.type===0){this.activateMarker(0);return}return this.activateMarker(a.type,i,a),a.point}this.activateMarker(0)}activateMarker(r,e=!1,i){var s;this.activeOSnapType&&(this.markers[this.activeOSnapType].visible=!1),this.activeOSnapType=r;let n=this.markers[r];n&&i&&(n.setSnapLineVisible(e),n.update(i),n.visible=!0),(s=this.overlayRender)==null||s.render()}getFootOfPerpendicular(r,e,i=m2t){let{start:n,end:s}=e,a=n.x-s.x,o=n.y-s.y,l=n.z-s.z;if(n.distanceTo(s)o.type-a.type),n[0]}};var W8=Un(Yl(),1);var ph=class{constructor(r,e,i){this.follow=r=>{let{x:e,y:i}=Mr.getScreenPointByEvent(r,this.parentNode);this.node.style.left=e+15+"px",this.node.style.top=i-30+"px"};this.show=()=>this.node.hasAttribute("hidden")&&this.node.removeAttribute("hidden");this.hide=()=>!this.node.hasAttribute("hidden")&&this.node.setAttribute("hidden","");this.destroy=()=>{this.target?this.target.removeEventListener(wf,this.follow):document.removeEventListener(wf,this.follow),this.parentNode.removeChild(this.node)};this.node=document.createElement("div"),this.node.id=r,e&&this.node.append(e),this.childNode=document.createElement("div"),this.target=i==null?void 0:i.target,this.parentNode=(i==null?void 0:i.parentNode)||document.body,i!=null&&i.followPointer&&(this.node.classList.add("follow-tooltip"),this.target?this.target.addEventListener(wf,this.follow):document.addEventListener(wf,this.follow)),this.parentNode.appendChild(this.node),!(i!=null&&i.showOnCreate)&&this.node.setAttribute("hidden","")}setContent(r){this.node.textContent&&(this.node.textContent=null),(0,W8.forEach)(this.node.children,e=>{this.node.removeChild(e)}),this.node.append(r),this.node.appendChild(this.childNode)}updateChildContent(r){this.childNode.textContent&&(this.childNode.textContent=null),(0,W8.forEach)(this.childNode.children,e=>{this.childNode.removeChild(e)}),this.childNode.append(r)}};var vO=class{constructor(r){this.mouseDown=!1;this.mouseMove=!1;this.mouseDownPositionX=-1;this.mouseDownPositionY=-1;this.tempEnableRotate=!1;this.actived=!1;this.isResolvedOrRejected=!1;this.mousedown=r=>{var e,i;if(r.preventDefault(),r.button===0){this.mouseDown=!0;let n=Mr.getScreenPointByEvent(r,this.viewerContainer);this.mouseDownPositionX=n.x,this.mouseDownPositionY=n.y,(e=this.tooltip)==null||e.hide(),(i=this.tooltip)==null||i.destroy(),this.tooltip=void 0}};this.mousemove=r=>{if(r.preventDefault(),!this.mouseDown)return;let e=Mr.getScreenPointByEvent(r,this.viewerContainer);if(this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(e.x-this.mouseDownPositionX)>=5||Math.abs(e.y-this.mouseDownPositionY)>=5)){this.mouseMove=!0;let n=new le(Math.min(this.mouseDownPositionX,e.x),Math.min(this.mouseDownPositionY,e.y)),s=new le(Math.max(this.mouseDownPositionX,e.x),Math.max(this.mouseDownPositionY,e.y));this.drawRect(n,s)}};this.mouseup=r=>{if(r.preventDefault(),this.mouseDown&&this.mouseMove){let e=Mr.getScreenPointByEvent(r,this.viewerContainer),i=new le(Math.min(this.mouseDownPositionX,e.x),Math.min(this.mouseDownPositionY,e.y)),n=new le(Math.max(this.mouseDownPositionX,e.x),Math.max(this.mouseDownPositionY,e.y)),s=new Ds(i,n);this.deactivate(),this.setRectDomVisible(!1),this.resolve&&(this.resolve(s),this.isResolvedOrRejected=!0)}this.mouseDown=!1,this.mouseMove=!1,this.mouseDownPositionX=-1,this.mouseDownPositionY=-1};this.viewer=r}get viewerContainer(){return this.viewer.viewerContainer}isActived(){return this.actived}activate(){var i;if(this.isActived()){this.reject&&(this.reject("BoxSelectHelper is already actived!"),this.isResolvedOrRejected=!0);return}this.actived=!0,this.viewerContainer.addEventListener("pointerdown",this.mousedown),this.viewerContainer.addEventListener("pointermove",this.mousemove),this.viewerContainer.addEventListener("pointerup",this.mouseup);let r=this.viewer.controls;this.tempKey=r.mouseButtons.LEFT,this.tempEnableRotate=r.enableRotate,r.mouseButtons.LEFT=-1,r.enableRotate=!1;let e=this.viewer.translate;if(e){this.tooltip=new ph("box-select-tooltip",e("Tooltip.boxSelect"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.viewerContainer});let n=document.getElementById("box-select-tooltip");n&&(n.style.pointerEvents="none");let s=e("Tooltip.boxSelect");s&&this.tooltip&&((i=this.tooltip)==null||i.setContent(s))}}deactivate(){var r,e;this.actived=!1,this.viewerContainer.removeEventListener("pointerdown",this.mousedown),this.viewerContainer.removeEventListener("pointermove",this.mousemove),this.viewerContainer.removeEventListener("pointerup",this.mouseup),(r=this.tooltip)==null||r.hide(),(e=this.tooltip)==null||e.destroy(),this.tooltip=void 0,this.viewer.controls.mouseButtons.LEFT=this.tempKey,this.viewer.controls.enableRotate=this.tempEnableRotate}drawRect(r,e){this.rectDom||(this.rectDom=document.createElement("div"),this.rectDom.style.cssText=`position: absolute;border: ${vO.BORDER_WIDTH} solid ${vO.BORDER_COLOR};`,this.viewerContainer.appendChild(this.rectDom)),this.setRectDomVisible(!0),this.rectDom.style.left=`${r.x}px`,this.rectDom.style.top=`${r.y}px`;let i=Math.abs(e.x-r.x),n=Math.abs(e.y-r.y);this.rectDom.style.width=`${i}px`,this.rectDom.style.height=`${n}px`}setRectDomVisible(r){this.rectDom&&(this.rectDom.style.display=r?"inline-block":"none")}select(){return ot(this,null,function*(){return new Promise((r,e)=>{this.resolve=r,this.reject=e,this.activate()})})}destroy(){var r;this.deactivate(),(r=this.rectDom)==null||r.remove(),this.rectDom=void 0,this.isResolvedOrRejected||this.reject&&this.reject("BoxSelectHelper is not done for some reason!")}},$f=vO;$f.BORDER_COLOR="#fff000",$f.BORDER_WIDTH="2px";var UMe=Un(Yl(),1),nE=class{constructor(r){this.history=[];this.step=0;this.maxCount=50;this.maxCount=r||this.maxCount}addRecord(r,e){this.history.length===this.maxCount&&this.history.shift(),this.step!==this.history.length&&this.history.splice(this.step),this.history.push({type:r,payload:(0,UMe.cloneDeep)(e)}),this.step++}undo(){if(this.step!==0)return this.step--,this.history[this.step]}redo(){if(this.step!==this.history.length)return this.step++,this.history[this.step-1]}clear(){this.history=[],this.step=0}destroy(){this.clear(),this.maxCount=0}};function Jc(t){return Jc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Jc(t)}function Zl(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function BMe(t,r){for(var e=0;et.length)&&(r=t.length);for(var e=0,i=new Array(r);e1&&arguments[1]!==void 0?arguments[1]:{};Zl(this,t),this.init(r,e)}return Kl(t,[{key:"init",value:function(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=i.prefix||"i18next:",this.logger=e||g2t,this.options=i,this.debug=i.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,i=new Array(e),n=0;n1?i-1:0),s=1;s-1?o.replace(/###/g,"."):o}function n(){return!t||typeof t=="string"}for(var s=typeof r!="string"?[].concat(r):r.split(".");s.length>1;){if(n())return{};var a=i(s.shift());!t[a]&&e&&(t[a]=new e),Object.prototype.hasOwnProperty.call(t,a)?t=t[a]:t={}}return n()?{}:{obj:t,k:i(s.shift())}}function zMe(t,r,e){var i=J8(t,r,Object),n=i.obj,s=i.k;n[s]=e}function T2t(t,r,e,i){var n=J8(t,r,Object),s=n.obj,a=n.k;s[a]=s[a]||[],i&&(s[a]=s[a].concat(e)),i||s[a].push(e)}function bO(t,r){var e=J8(t,r),i=e.obj,n=e.k;if(i)return i[n]}function jMe(t,r,e){var i=bO(t,e);return i!==void 0?i:bO(r,e)}function rDe(t,r,e){for(var i in r)i!=="__proto__"&&i!=="constructor"&&(i in t?typeof t[i]=="string"||t[i]instanceof String||typeof r[i]=="string"||r[i]instanceof String?e&&(t[i]=r[i]):rDe(t[i],r[i],e):t[i]=r[i]);return t}function aE(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var E2t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function b2t(t){return typeof t=="string"?t.replace(/[&<>"'\/]/g,function(r){return E2t[r]}):t}var IO=typeof window!="undefined"&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,x2t=[" ",",","?","!",";"];function I2t(t,r,e){r=r||"",e=e||"";var i=x2t.filter(function(o){return r.indexOf(o)<0&&e.indexOf(o)<0});if(i.length===0)return!0;var n=new RegExp("(".concat(i.map(function(o){return o==="?"?"\\?":o}).join("|"),")")),s=!n.test(t);if(!s){var a=t.indexOf(e);a>0&&!n.test(t.substring(0,a))&&(s=!0)}return s}function WMe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function TO(t){for(var r=1;r2&&arguments[2]!==void 0?arguments[2]:".";if(t){if(t[r])return t[r];for(var i=r.split(e),n=t,s=0;ss+a;)a++,o=i.slice(s,s+a).join(e),l=n[o];if(l===void 0)return;if(r.endsWith(o)){if(typeof l=="string")return l;if(o&&typeof l[o]=="string")return l[o]}var c=i.slice(s+a).join(e);return c?iDe(l,c,e):void 0}n=n[i[s]]}return n}}var w2t=function(t){sE(e,t);var r=S2t(e);function e(i){var n,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Zl(this,e),n=r.call(this),IO&&Kf.call(Qc(n)),n.data=i||{},n.options=s,n.options.keySeparator===void 0&&(n.options.keySeparator="."),n.options.ignoreJSONStructure===void 0&&(n.options.ignoreJSONStructure=!0),n}return Kl(e,[{key:"addNamespaces",value:function(n){this.options.ns.indexOf(n)<0&&this.options.ns.push(n)}},{key:"removeNamespaces",value:function(n){var s=this.options.ns.indexOf(n);s>-1&&this.options.ns.splice(s,1)}},{key:"getResource",value:function(n,s,a){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},l=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,c=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure,u=[n,s];a&&typeof a!="string"&&(u=u.concat(a)),a&&typeof a=="string"&&(u=u.concat(l?a.split(l):a)),n.indexOf(".")>-1&&(u=n.split("."));var h=bO(this.data,u);return h||!c||typeof a!="string"?h:iDe(this.data&&this.data[n]&&this.data[n][s],a,l)}},{key:"addResource",value:function(n,s,a,o){var l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},c=this.options.keySeparator;c===void 0&&(c=".");var u=[n,s];a&&(u=u.concat(c?a.split(c):a)),n.indexOf(".")>-1&&(u=n.split("."),o=s,s=u[1]),this.addNamespaces(s),zMe(this.data,u,o),l.silent||this.emit("added",n,s,a,o)}},{key:"addResources",value:function(n,s,a){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var l in a)(typeof a[l]=="string"||Object.prototype.toString.apply(a[l])==="[object Array]")&&this.addResource(n,s,l,a[l],{silent:!0});o.silent||this.emit("added",n,s,a)}},{key:"addResourceBundle",value:function(n,s,a,o,l){var c=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},u=[n,s];n.indexOf(".")>-1&&(u=n.split("."),o=a,a=s,s=u[1]),this.addNamespaces(s);var h=bO(this.data,u)||{};o?rDe(h,a,l):h=TO(TO({},h),a),zMe(this.data,u,h),c.silent||this.emit("added",n,s,a)}},{key:"removeResourceBundle",value:function(n,s){this.hasResourceBundle(n,s)&&delete this.data[n][s],this.removeNamespaces(s),this.emit("removed",n,s)}},{key:"hasResourceBundle",value:function(n,s){return this.getResource(n,s)!==void 0}},{key:"getResourceBundle",value:function(n,s){return s||(s=this.options.defaultNS),this.options.compatibilityAPI==="v1"?TO(TO({},{}),this.getResource(n,s)):this.getResource(n,s)}},{key:"getDataByLanguage",value:function(n){return this.data[n]}},{key:"hasLanguageSomeTranslations",value:function(n){var s=this.getDataByLanguage(n),a=s&&Object.keys(s)||[];return!!a.find(function(o){return s[o]&&Object.keys(s[o]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),e}(Kf),nDe={processors:{},addPostProcessor:function(r){this.processors[r.name]=r},handle:function(r,e,i,n,s){var a=this;return r.forEach(function(o){a.processors[o]&&(e=a.processors[o].process(e,i,n,s))}),e}};function qMe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function Na(t){for(var r=1;r1&&arguments[1]!==void 0?arguments[1]:{};return Zl(this,e),n=r.call(this),IO&&Kf.call(Qc(n)),y2t(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],i,Qc(n)),n.options=s,n.options.keySeparator===void 0&&(n.options.keySeparator="."),n.logger=mh.create("translator"),n}return Kl(e,[{key:"changeLanguage",value:function(n){n&&(this.language=n)}},{key:"exists",value:function(n){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(n==null)return!1;var a=this.resolve(n,s);return a&&a.res!==void 0}},{key:"extractFromKey",value:function(n,s){var a=s.nsSeparator!==void 0?s.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");var o=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,l=s.ns||this.options.defaultNS||[],c=a&&n.indexOf(a)>-1,u=!this.options.userDefinedKeySeparator&&!s.keySeparator&&!this.options.userDefinedNsSeparator&&!s.nsSeparator&&!I2t(n,a,o);if(c&&!u){var h=n.match(this.interpolator.nestingRegexp);if(h&&h.length>0)return{key:n,namespaces:l};var p=n.split(a);(a!==o||a===o&&this.options.ns.indexOf(p[0])>-1)&&(l=p.shift()),n=p.join(o)}return typeof l=="string"&&(l=[l]),{key:n,namespaces:l}}},{key:"translate",value:function(n,s,a){var o=this;if(Jc(s)!=="object"&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),s||(s={}),n==null)return"";Array.isArray(n)||(n=[String(n)]);var l=s.returnDetails!==void 0?s.returnDetails:this.options.returnDetails,c=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,u=this.extractFromKey(n[n.length-1],s),h=u.key,p=u.namespaces,d=p[p.length-1],f=s.lng||this.language,m=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f&&f.toLowerCase()==="cimode"){if(m){var g=s.nsSeparator||this.options.nsSeparator;return l?(y.res="".concat(d).concat(g).concat(h),y):"".concat(d).concat(g).concat(h)}return l?(y.res=h,y):h}var y=this.resolve(n,s),E=y&&y.res,b=y&&y.usedKey||h,x=y&&y.exactUsedKey||h,S=Object.prototype.toString.apply(E),D=["[object Number]","[object Function]","[object RegExp]"],P=s.joinArrays!==void 0?s.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject,w=typeof E!="string"&&typeof E!="boolean"&&typeof E!="number";if(_&&E&&w&&D.indexOf(S)<0&&!(typeof P=="string"&&S==="[object Array]")){if(!s.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var F=this.options.returnedObjectHandler?this.options.returnedObjectHandler(b,E,Na(Na({},s),{},{ns:p})):"key '".concat(h," (").concat(this.language,")' returned an object instead of string.");return l?(y.res=F,y):F}if(c){var X=S==="[object Array]",H=X?[]:{},he=X?x:b;for(var C in E)if(Object.prototype.hasOwnProperty.call(E,C)){var N="".concat(he).concat(c).concat(C);H[C]=this.translate(N,Na(Na({},s),{joinArrays:!1,ns:p})),H[C]===N&&(H[C]=E[C])}E=H}}else if(_&&typeof P=="string"&&S==="[object Array]")E=E.join(P),E&&(E=this.extendTranslation(E,n,s,a));else{var k=!1,G=!1,U=s.count!==void 0&&typeof s.count!="string",j=e.hasDefaultValue(s),ee=U?this.pluralResolver.getSuffix(f,s.count,s):"",ae=s["defaultValue".concat(ee)]||s.defaultValue;!this.isValidLookup(E)&&j&&(k=!0,E=ae),this.isValidLookup(E)||(G=!0,E=h);var se=s.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,ue=se&&G?void 0:E,ve=j&&ae!==E&&this.options.updateMissing;if(G||k||ve){if(this.logger.log(ve?"updateKey":"missingKey",f,d,h,ve?ae:E),c){var be=this.resolve(h,Na(Na({},s),{},{keySeparator:!1}));be&&be.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var de=[],we=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if(this.options.saveMissingTo==="fallback"&&we&&we[0])for(var Fe=0;Fe1&&arguments[1]!==void 0?arguments[1]:{},o,l,c,u,h;return typeof n=="string"&&(n=[n]),n.forEach(function(p){if(!s.isValidLookup(o)){var d=s.extractFromKey(p,a),f=d.key;l=f;var m=d.namespaces;s.options.fallbackNS&&(m=m.concat(s.options.fallbackNS));var g=a.count!==void 0&&typeof a.count!="string",y=g&&!a.ordinal&&a.count===0&&s.pluralResolver.shouldUseIntlApi(),E=a.context!==void 0&&(typeof a.context=="string"||typeof a.context=="number")&&a.context!=="",b=a.lngs?a.lngs:s.languageUtils.toResolveHierarchy(a.lng||s.language,a.fallbackLng);m.forEach(function(x){s.isValidLookup(o)||(h=x,!YMe["".concat(b[0],"-").concat(x)]&&s.utils&&s.utils.hasLoadedNamespace&&!s.utils.hasLoadedNamespace(h)&&(YMe["".concat(b[0],"-").concat(x)]=!0,s.logger.warn('key "'.concat(l,'" for languages "').concat(b.join(", "),`" won't get resolved as namespace "`).concat(h,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),b.forEach(function(S){if(!s.isValidLookup(o)){u=S;var D=[f];if(s.i18nFormat&&s.i18nFormat.addLookupKeys)s.i18nFormat.addLookupKeys(D,f,S,x,a);else{var P;g&&(P=s.pluralResolver.getSuffix(S,a.count,a));var _="_zero";if(g&&(D.push(f+P),y&&D.push(f+_)),E){var w="".concat(f).concat(s.options.contextSeparator).concat(a.context);D.push(w),g&&(D.push(w+P),y&&D.push(w+_))}}for(var F;F=D.pop();)s.isValidLookup(o)||(c=F,o=s.getResource(S,x,F,a))}}))})}}),{res:o,usedKey:l,exactUsedKey:c,usedLng:u,usedNS:h}}},{key:"isValidLookup",value:function(n){return n!==void 0&&!(!this.options.returnNull&&n===null)&&!(!this.options.returnEmptyString&&n==="")}},{key:"getResource",value:function(n,s,a){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(n,s,a,o):this.resourceStore.getResource(n,s,a,o)}}],[{key:"hasDefaultValue",value:function(n){var s="defaultValue";for(var a in n)if(Object.prototype.hasOwnProperty.call(n,a)&&s===a.substring(0,s.length)&&n[a]!==void 0)return!0;return!1}}]),e}(Kf);function K8(t){return t.charAt(0).toUpperCase()+t.slice(1)}var D2t=function(){function t(r){Zl(this,t),this.options=r,this.supportedLngs=this.options.supportedLngs||!1,this.logger=mh.create("languageUtils")}return Kl(t,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var i=e.split("-");return i.length===2||(i.pop(),i[i.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(i.join("-"))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var i=e.split("-");return this.formatLanguageCode(i[0])}},{key:"formatLanguageCode",value:function(e){if(typeof e=="string"&&e.indexOf("-")>-1){var i=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(s){return s.toLowerCase()}):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),i.indexOf(n[1].toLowerCase())>-1&&(n[1]=K8(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!=="sgn"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),i.indexOf(n[1].toLowerCase())>-1&&(n[1]=K8(n[1].toLowerCase())),i.indexOf(n[2].toLowerCase())>-1&&(n[2]=K8(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isSupportedCode",value:function(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var i=this;if(!e)return null;var n;return e.forEach(function(s){if(!n){var a=i.formatLanguageCode(s);(!i.options.supportedLngs||i.isSupportedCode(a))&&(n=a)}}),!n&&this.options.supportedLngs&&e.forEach(function(s){if(!n){var a=i.getLanguagePartFromCode(s);if(i.isSupportedCode(a))return n=a;n=i.options.supportedLngs.find(function(o){if(o.indexOf(a)===0)return o})}}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}},{key:"getFallbackCodes",value:function(e,i){if(!e)return[];if(typeof e=="function"&&(e=e(i)),typeof e=="string"&&(e=[e]),Object.prototype.toString.apply(e)==="[object Array]")return e;if(!i)return e.default||[];var n=e[i];return n||(n=e[this.getScriptPartFromCode(i)]),n||(n=e[this.formatLanguageCode(i)]),n||(n=e[this.getLanguagePartFromCode(i)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,i){var n=this,s=this.getFallbackCodes(i||this.options.fallbackLng||[],e),a=[],o=function(c){c&&(n.isSupportedCode(c)?a.push(c):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(c)))};return typeof e=="string"&&e.indexOf("-")>-1?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):typeof e=="string"&&o(this.formatLanguageCode(e)),s.forEach(function(l){a.indexOf(l)<0&&o(n.formatLanguageCode(l))}),a}}]),t}(),C2t=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],A2t={1:function(r){return Number(r>1)},2:function(r){return Number(r!=1)},3:function(r){return 0},4:function(r){return Number(r%10==1&&r%100!=11?0:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?1:2)},5:function(r){return Number(r==0?0:r==1?1:r==2?2:r%100>=3&&r%100<=10?3:r%100>=11?4:5)},6:function(r){return Number(r==1?0:r>=2&&r<=4?1:2)},7:function(r){return Number(r==1?0:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?1:2)},8:function(r){return Number(r==1?0:r==2?1:r!=8&&r!=11?2:3)},9:function(r){return Number(r>=2)},10:function(r){return Number(r==1?0:r==2?1:r<7?2:r<11?3:4)},11:function(r){return Number(r==1||r==11?0:r==2||r==12?1:r>2&&r<20?2:3)},12:function(r){return Number(r%10!=1||r%100==11)},13:function(r){return Number(r!==0)},14:function(r){return Number(r==1?0:r==2?1:r==3?2:3)},15:function(r){return Number(r%10==1&&r%100!=11?0:r%10>=2&&(r%100<10||r%100>=20)?1:2)},16:function(r){return Number(r%10==1&&r%100!=11?0:r!==0?1:2)},17:function(r){return Number(r==1||r%10==1&&r%100!=11?0:1)},18:function(r){return Number(r==0?0:r==1?1:2)},19:function(r){return Number(r==1?0:r==0||r%100>1&&r%100<11?1:r%100>10&&r%100<20?2:3)},20:function(r){return Number(r==1?0:r==0||r%100>0&&r%100<20?1:2)},21:function(r){return Number(r%100==1?1:r%100==2?2:r%100==3||r%100==4?3:0)},22:function(r){return Number(r==1?0:r==2?1:(r<0||r>10)&&r%10==0?2:3)}},O2t=["v1","v2","v3"],$Me={zero:0,one:1,two:2,few:3,many:4,other:5};function P2t(){var t={};return C2t.forEach(function(r){r.lngs.forEach(function(e){t[e]={numbers:r.nr,plurals:A2t[r.fc]}})}),t}var N2t=function(){function t(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Zl(this,t),this.languageUtils=r,this.options=e,this.logger=mh.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl=="undefined"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=P2t()}return Kl(t,[{key:"addRule",value:function(e,i){this.rules[e]=i}},{key:"getRule",value:function(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(e,{type:i.ordinal?"ordinal":"cardinal"})}catch(n){return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=this.getRule(e,i);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,i){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,n).map(function(s){return"".concat(i).concat(s)})}},{key:"getSuffixes",value:function(e){var i=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=this.getRule(e,n);return s?this.shouldUseIntlApi()?s.resolvedOptions().pluralCategories.sort(function(a,o){return $Me[a]-$Me[o]}).map(function(a){return"".concat(i.options.prepend).concat(a)}):s.numbers.map(function(a){return i.getSuffix(e,a,n)}):[]}},{key:"getSuffix",value:function(e,i){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=this.getRule(e,n);return s?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(s.select(i)):this.getSuffixRetroCompatible(s,i):(this.logger.warn("no plural rule found for: ".concat(e)),"")}},{key:"getSuffixRetroCompatible",value:function(e,i){var n=this,s=e.noAbs?e.plurals(i):e.plurals(Math.abs(i)),a=e.numbers[s];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(a===2?a="plural":a===1&&(a=""));var o=function(){return n.options.prepend&&a.toString()?n.options.prepend+a.toString():a.toString()};return this.options.compatibilityJSON==="v1"?a===1?"":typeof a=="number"?"_plural_".concat(a.toString()):o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString()}},{key:"shouldUseIntlApi",value:function(){return!O2t.includes(this.options.compatibilityJSON)}}]),t}();function ZMe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function eu(t){for(var r=1;r0&&arguments[0]!==void 0?arguments[0]:{};Zl(this,t),this.logger=mh.create("interpolator"),this.options=r,this.format=r.interpolation&&r.interpolation.format||function(e){return e},this.init(r)}return Kl(t,[{key:"init",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var i=e.interpolation;this.escape=i.escape!==void 0?i.escape:b2t,this.escapeValue=i.escapeValue!==void 0?i.escapeValue:!0,this.useRawValueToEscape=i.useRawValueToEscape!==void 0?i.useRawValueToEscape:!1,this.prefix=i.prefix?aE(i.prefix):i.prefixEscaped||"{{",this.suffix=i.suffix?aE(i.suffix):i.suffixEscaped||"}}",this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||",",this.unescapePrefix=i.unescapeSuffix?"":i.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":i.unescapeSuffix||"",this.nestingPrefix=i.nestingPrefix?aE(i.nestingPrefix):i.nestingPrefixEscaped||aE("$t("),this.nestingSuffix=i.nestingSuffix?aE(i.nestingSuffix):i.nestingSuffixEscaped||aE(")"),this.nestingOptionsSeparator=i.nestingOptionsSeparator?i.nestingOptionsSeparator:i.nestingOptionsSeparator||",",this.maxReplaces=i.maxReplaces?i.maxReplaces:1e3,this.alwaysFormat=i.alwaysFormat!==void 0?i.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var i="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(i,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,i,n,s){var a=this,o,l,c,u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function h(g){return g.replace(/\$/g,"$$$$")}var p=function(y){if(y.indexOf(a.formatSeparator)<0){var E=jMe(i,u,y);return a.alwaysFormat?a.format(E,void 0,n,eu(eu(eu({},s),i),{},{interpolationkey:y})):E}var b=y.split(a.formatSeparator),x=b.shift().trim(),S=b.join(a.formatSeparator).trim();return a.format(jMe(i,u,x),S,n,eu(eu(eu({},s),i),{},{interpolationkey:x}))};this.resetRegExp();var d=s&&s.missingInterpolationHandler||this.options.missingInterpolationHandler,f=s&&s.interpolation&&s.interpolation.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,m=[{regex:this.regexpUnescape,safeValue:function(y){return h(y)}},{regex:this.regexp,safeValue:function(y){return a.escapeValue?h(a.escape(y)):h(y)}}];return m.forEach(function(g){for(c=0;o=g.regex.exec(e);){var y=o[1].trim();if(l=p(y),l===void 0)if(typeof d=="function"){var E=d(e,o,s);l=typeof E=="string"?E:""}else if(s&&s.hasOwnProperty(y))l="";else if(f){l=o[0];continue}else a.logger.warn("missed to pass in variable ".concat(y," for interpolating ").concat(e)),l="";else typeof l!="string"&&!a.useRawValueToEscape&&(l=VMe(l));var b=g.safeValue(l);if(e=e.replace(o[0],b),f?(g.regex.lastIndex+=b.length,g.regex.lastIndex-=o[0].length):g.regex.lastIndex=0,c++,c>=a.maxReplaces)break}}),e}},{key:"nest",value:function(e,i){var n=this,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,o,l=eu({},s);l.applyPostProcessor=!1,delete l.defaultValue;function c(d,f){var m=this.nestingOptionsSeparator;if(d.indexOf(m)<0)return d;var g=d.split(new RegExp("".concat(m,"[ ]*{"))),y="{".concat(g[1]);d=g[0],y=this.interpolate(y,l),y=y.replace(/'/g,'"');try{l=JSON.parse(y),f&&(l=eu(eu({},f),l))}catch(E){return this.logger.warn("failed parsing options string in nesting for key ".concat(d),E),"".concat(d).concat(m).concat(y)}return delete l.defaultValue,d}for(;a=this.nestingRegexp.exec(e);){var u=[],h=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){var p=a[1].split(this.formatSeparator).map(function(d){return d.trim()});a[1]=p.shift(),u=p,h=!0}if(o=i(c.call(this,a[1].trim(),l),l),o&&a[0]===e&&typeof o!="string")return o;typeof o!="string"&&(o=VMe(o)),o||(this.logger.warn("missed to resolve ".concat(a[1]," for nesting ").concat(e)),o=""),h&&(o=u.reduce(function(d,f){return n.format(d,f,s.lng,eu(eu({},s),{},{interpolationkey:a[1].trim()}))},o.trim())),e=e.replace(a[0],o),this.regexp.lastIndex=0}return e}}]),t}();function KMe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function Zf(t){for(var r=1;r-1){var i=t.split("(");r=i[0].toLowerCase().trim();var n=i[1].substring(0,i[1].length-1);if(r==="currency"&&n.indexOf(":")<0)e.currency||(e.currency=n.trim());else if(r==="relativetime"&&n.indexOf(":")<0)e.range||(e.range=n.trim());else{var s=n.split(";");s.forEach(function(a){if(a){var o=a.split(":"),l=Z8(o),c=l[0],u=l.slice(1),h=u.join(":");e[c.trim()]||(e[c.trim()]=h.trim()),h.trim()==="false"&&(e[c.trim()]=!1),h.trim()==="true"&&(e[c.trim()]=!0),isNaN(h.trim())||(e[c.trim()]=parseInt(h.trim(),10))}})}}return{formatName:r,formatOptions:e}}var H2t=function(){function t(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Zl(this,t),this.logger=mh.create("formatter"),this.options=r,this.formats={number:function(i,n,s){return new Intl.NumberFormat(n,s).format(i)},currency:function(i,n,s){return new Intl.NumberFormat(n,Zf(Zf({},s),{},{style:"currency"})).format(i)},datetime:function(i,n,s){return new Intl.DateTimeFormat(n,Zf({},s)).format(i)},relativetime:function(i,n,s){return new Intl.RelativeTimeFormat(n,Zf({},s)).format(i,s.range||"day")},list:function(i,n,s){return new Intl.ListFormat(n,Zf({},s)).format(i)}},this.init(r)}return Kl(t,[{key:"init",value:function(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},n=i.interpolation;this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||","}},{key:"add",value:function(e,i){this.formats[e.toLowerCase().trim()]=i}},{key:"format",value:function(e,i,n,s){var a=this,o=i.split(this.formatSeparator),l=o.reduce(function(c,u){var h=F2t(u),p=h.formatName,d=h.formatOptions;if(a.formats[p]){var f=c;try{var m=s&&s.formatParams&&s.formatParams[s.interpolationkey]||{},g=m.locale||m.lng||s.locale||s.lng||n;f=a.formats[p](c,g,Zf(Zf(Zf({},d),s),m))}catch(y){a.logger.warn(y)}return f}else a.logger.warn("there was no format function for ".concat(p));return c},e);return l}}]),t}();function JMe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function QMe(t){for(var r=1;r3&&arguments[3]!==void 0?arguments[3]:{};return Zl(this,e),a=r.call(this),IO&&Kf.call(Qc(a)),a.backend=i,a.store=n,a.services=s,a.languageUtils=s.languageUtils,a.options=o,a.logger=mh.create("backendConnector"),a.waitingReads=[],a.maxParallelReads=o.maxParallelReads||10,a.readingCalls=0,a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(s,o.backend,o),a}return Kl(e,[{key:"queueLoad",value:function(n,s,a,o){var l=this,c={},u={},h={},p={};return n.forEach(function(d){var f=!0;s.forEach(function(m){var g="".concat(d,"|").concat(m);!a.reload&&l.store.hasResourceBundle(d,m)?l.state[g]=2:l.state[g]<0||(l.state[g]===1?u[g]===void 0&&(u[g]=!0):(l.state[g]=1,f=!1,u[g]===void 0&&(u[g]=!0),c[g]===void 0&&(c[g]=!0),p[m]===void 0&&(p[m]=!0)))}),f||(h[d]=!0)}),(Object.keys(c).length||Object.keys(u).length)&&this.queue.push({pending:u,pendingCount:Object.keys(u).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(c),pending:Object.keys(u),toLoadLanguages:Object.keys(h),toLoadNamespaces:Object.keys(p)}}},{key:"loaded",value:function(n,s,a){var o=n.split("|"),l=o[0],c=o[1];s&&this.emit("failedLoading",l,c,s),a&&this.store.addResourceBundle(l,c,a),this.state[n]=s?-1:2;var u={};this.queue.forEach(function(h){T2t(h.loaded,[l],c),k2t(h,n),s&&h.errors.push(s),h.pendingCount===0&&!h.done&&(Object.keys(h.loaded).forEach(function(p){u[p]||(u[p]={});var d=Object.keys(u[p]);d.length&&d.forEach(function(f){d[f]!==void 0&&(u[p][f]=!0)})}),h.done=!0,h.errors.length?h.callback(h.errors):h.callback())}),this.emit("loaded",u),this.queue=this.queue.filter(function(h){return!h.done})}},{key:"read",value:function(n,s,a){var o=this,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,c=arguments.length>4&&arguments[4]!==void 0?arguments[4]:350,u=arguments.length>5?arguments[5]:void 0;if(!n.length)return u(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:n,ns:s,fcName:a,tried:l,wait:c,callback:u});return}return this.readingCalls++,this.backend[a](n,s,function(h,p){if(h&&p&&l<5){setTimeout(function(){o.read.call(o,n,s,a,l+1,c*2,u)},c);return}if(o.readingCalls--,o.waitingReads.length>0){var d=o.waitingReads.shift();o.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}u(h,p)})}},{key:"prepareLoading",value:function(n,s){var a=this,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),l&&l();typeof n=="string"&&(n=this.languageUtils.toResolveHierarchy(n)),typeof s=="string"&&(s=[s]);var c=this.queueLoad(n,s,o,l);if(!c.toLoad.length)return c.pending.length||l(),null;c.toLoad.forEach(function(u){a.loadOne(u)})}},{key:"load",value:function(n,s,a){this.prepareLoading(n,s,{},a)}},{key:"reload",value:function(n,s,a){this.prepareLoading(n,s,{reload:!0},a)}},{key:"loadOne",value:function(n){var s=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",o=n.split("|"),l=o[0],c=o[1];this.read(l,c,"read",void 0,void 0,function(u,h){u&&s.logger.warn("".concat(a,"loading namespace ").concat(c," for language ").concat(l," failed"),u),!u&&h&&s.logger.log("".concat(a,"loaded namespace ").concat(c," for language ").concat(l),h),s.loaded(n,u,h)})}},{key:"saveMissing",value:function(n,s,a,o,l){var c=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(s)){this.logger.warn('did not save key "'.concat(a,'" as the namespace "').concat(s,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}a==null||a===""||(this.backend&&this.backend.create&&this.backend.create(n,s,a,o,null,QMe(QMe({},c),{},{isUpdate:l})),!(!n||!n[0])&&this.store.addResource(n[0],s,a,o))}}]),e}(Kf);function V2t(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(r){var e={};if(Jc(r[1])==="object"&&(e=r[1]),typeof r[1]=="string"&&(e.defaultValue=r[1]),typeof r[2]=="string"&&(e.tDescription=r[2]),Jc(r[2])==="object"||Jc(r[3])==="object"){var i=r[3]||r[2];Object.keys(i).forEach(function(n){e[n]=i[n]})}return e},interpolation:{escapeValue:!0,format:function(r,e,i,n){return r},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function eDe(t){return typeof t.ns=="string"&&(t.ns=[t.ns]),typeof t.fallbackLng=="string"&&(t.fallbackLng=[t.fallbackLng]),typeof t.fallbackNS=="string"&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t}function tDe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),e.push.apply(e,i)}return e}function fh(t){for(var r=1;r0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;if(Zl(this,e),i=r.call(this),IO&&Kf.call(Qc(i)),i.options=eDe(n),i.services={},i.logger=mh,i.modules={external:[]},W2t(Qc(i)),s&&!i.isInitialized&&!n.isClone){if(!i.options.initImmediate)return i.init(n,s),M0(i,Qc(i));setTimeout(function(){i.init(n,s)},0)}return i}return Kl(e,[{key:"init",value:function(){var n=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;typeof s=="function"&&(a=s,s={}),!s.defaultNS&&s.ns&&(typeof s.ns=="string"?s.defaultNS=s.ns:s.ns.indexOf("translation")<0&&(s.defaultNS=s.ns[0]));var o=V2t();this.options=fh(fh(fh({},o),this.options),eDe(s)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=fh(fh({},o.interpolation),this.options.interpolation)),s.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=s.keySeparator),s.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=s.nsSeparator);function l(y){return y?typeof y=="function"?new y:y:null}if(!this.options.isClone){this.modules.logger?mh.init(l(this.modules.logger),this.options):mh.init(null,this.options);var c;this.modules.formatter?c=this.modules.formatter:typeof Intl!="undefined"&&(c=H2t);var u=new D2t(this.options);this.store=new w2t(this.options.resources,this.options);var h=this.services;h.logger=mh,h.resourceStore=this.store,h.languageUtils=u,h.pluralResolver=new N2t(u,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===o.interpolation.format)&&(h.formatter=l(c),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new L2t(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new G2t(l(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(y){for(var E=arguments.length,b=new Array(E>1?E-1:0),x=1;x1?E-1:0),x=1;x0&&p[0]!=="dev"&&(this.options.lng=p[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var d=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];d.forEach(function(y){n[y]=function(){var E;return(E=n.store)[y].apply(E,arguments)}});var f=["addResource","addResources","addResourceBundle","removeResourceBundle"];f.forEach(function(y){n[y]=function(){var E;return(E=n.store)[y].apply(E,arguments),n}});var m=SS(),g=function(){var E=function(x,S){n.isInitialized&&!n.initializedStoreOnce&&n.logger.warn("init: i18next is already initialized. You should call init just once!"),n.isInitialized=!0,n.options.isClone||n.logger.log("initialized",n.options),n.emit("initialized",n.options),m.resolve(S),a(x,S)};if(n.languages&&n.options.compatibilityAPI!=="v1"&&!n.isInitialized)return E(null,n.t.bind(n));n.changeLanguage(n.options.lng,E)};return this.options.resources||!this.options.initImmediate?g():setTimeout(g,0),m}},{key:"loadResources",value:function(n){var s=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:EO,o=a,l=typeof n=="string"?n:this.language;if(typeof n=="function"&&(o=n),!this.options.resources||this.options.partialBundledLanguages){if(l&&l.toLowerCase()==="cimode")return o();var c=[],u=function(d){if(d){var f=s.services.languageUtils.toResolveHierarchy(d);f.forEach(function(m){c.indexOf(m)<0&&c.push(m)})}};if(l)u(l);else{var h=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);h.forEach(function(p){return u(p)})}this.options.preload&&this.options.preload.forEach(function(p){return u(p)}),this.services.backendConnector.load(c,this.options.ns,function(p){!p&&!s.resolvedLanguage&&s.language&&s.setResolvedLanguage(s.language),o(p)})}else o(null)}},{key:"reloadResources",value:function(n,s,a){var o=SS();return n||(n=this.languages),s||(s=this.options.ns),a||(a=EO),this.services.backendConnector.reload(n,s,function(l){o.resolve(),a(l)}),o}},{key:"use",value:function(n){if(!n)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!n.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return n.type==="backend"&&(this.modules.backend=n),(n.type==="logger"||n.log&&n.warn&&n.error)&&(this.modules.logger=n),n.type==="languageDetector"&&(this.modules.languageDetector=n),n.type==="i18nFormat"&&(this.modules.i18nFormat=n),n.type==="postProcessor"&&nDe.addPostProcessor(n),n.type==="formatter"&&(this.modules.formatter=n),n.type==="3rdParty"&&this.modules.external.push(n),this}},{key:"setResolvedLanguage",value:function(n){if(!(!n||!this.languages)&&!(["cimode","dev"].indexOf(n)>-1))for(var s=0;s-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}},{key:"changeLanguage",value:function(n,s){var a=this;this.isLanguageChangingTo=n;var o=SS();this.emit("languageChanging",n);var l=function(p){a.language=p,a.languages=a.services.languageUtils.toResolveHierarchy(p),a.resolvedLanguage=void 0,a.setResolvedLanguage(p)},c=function(p,d){d?(l(d),a.translator.changeLanguage(d),a.isLanguageChangingTo=void 0,a.emit("languageChanged",d),a.logger.log("languageChanged",d)):a.isLanguageChangingTo=void 0,o.resolve(function(){return a.t.apply(a,arguments)}),s&&s(p,function(){return a.t.apply(a,arguments)})},u=function(p){!n&&!p&&a.services.languageDetector&&(p=[]);var d=typeof p=="string"?p:a.services.languageUtils.getBestMatchFromCodes(p);d&&(a.language||l(d),a.translator.language||a.translator.changeLanguage(d),a.services.languageDetector&&a.services.languageDetector.cacheUserLanguage(d)),a.loadResources(d,function(f){c(f,d)})};return!n&&this.services.languageDetector&&!this.services.languageDetector.async?u(this.services.languageDetector.detect()):!n&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(u):u(n),o}},{key:"getFixedT",value:function(n,s,a){var o=this,l=function c(u,h){var p;if(Jc(h)!=="object"){for(var d=arguments.length,f=new Array(d>2?d-2:0),m=2;m1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var o=this.resolvedLanguage||this.languages[0],l=this.options?this.options.fallbackLng:!1,c=this.languages[this.languages.length-1];if(o.toLowerCase()==="cimode")return!0;var u=function(d,f){var m=s.services.backendConnector.state["".concat(d,"|").concat(f)];return m===-1||m===2};if(a.precheck){var h=a.precheck(this,u);if(h!==void 0)return h}return!!(this.hasResourceBundle(o,n)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||u(o,n)&&(!l||u(c,n)))}},{key:"loadNamespaces",value:function(n,s){var a=this,o=SS();return this.options.ns?(typeof n=="string"&&(n=[n]),n.forEach(function(l){a.options.ns.indexOf(l)<0&&a.options.ns.push(l)}),this.loadResources(function(l){o.resolve(),s&&s(l)}),o):(s&&s(),Promise.resolve())}},{key:"loadLanguages",value:function(n,s){var a=SS();typeof n=="string"&&(n=[n]);var o=this.options.preload||[],l=n.filter(function(c){return o.indexOf(c)<0});return l.length?(this.options.preload=o.concat(l),this.loadResources(function(c){a.resolve(),s&&s(c)}),a):(s&&s(),Promise.resolve())}},{key:"dir",value:function(n){if(n||(n=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!n)return"rtl";var s=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"];return s.indexOf(this.services.languageUtils.getLanguagePartFromCode(n))>-1||n.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var n=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:EO,o=fh(fh(fh({},this.options),s),{isClone:!0}),l=new e(o),c=["store","services","language"];return c.forEach(function(u){l[u]=n[u]}),l.services=fh({},this.services),l.services.utils={hasLoadedNamespace:l.hasLoadedNamespace.bind(l)},l.translator=new XMe(l.services,l.options),l.translator.on("*",function(u){for(var h=arguments.length,p=new Array(h>1?h-1:0),d=1;d0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new xO(t,r)});var La=xO.createInstance();La.createInstance=xO.createInstance;var NSr=La.createInstance,LSr=La.init,FSr=La.loadResources,HSr=La.reloadResources,USr=La.use,BSr=La.changeLanguage,kSr=La.getFixedT,gh=La.t,GSr=La.exists,VSr=La.setDefaultNamespace,zSr=La.hasLoadedNamespace,jSr=La.loadNamespaces,WSr=La.loadLanguages,Q8=La;var Jf=class extends jo{constructor(e){super();this.name="BaseViewer";this.translate=this.initLocalization();this.height=0;this.width=0;this.enableOverlayRenderer=!0;this.viewerCfg=e,this.initLocalization(),this.initViewerContainer(),this.initWidgetContainer()}initLocalization(){var i;let e=((i=this.viewerCfg)==null?void 0:i.language)||"cn";return Q8.init({lng:e,debug:!1,resources:{en:{translation:gpe},cn:{translation:vpe}}}),Q8.t}initViewerContainer(){let e=document.getElementById(this.viewerCfg.containerId);e||(ne.error("[BaseViewer] containerId:",this.viewerCfg.containerId,"is not found in dom tree! will append to document body"),e=document.body);let i=document.createElement("div");i.classList.add("viewer-container"),i.style.cssText="width: 100%; height: 100%; position: absolute; overflow: hidden;",e.appendChild(i),this.width=i.clientWidth,this.height=i.clientHeight,this.viewerContainer=i}initWidgetContainer(){var i;let e=document.createElement("div");e.classList.add("widget-container"),(i=this.viewerContainer)==null||i.appendChild(e),this.widgetContainer=e}destroy(){var e,i,n;(e=this.widgetContainer)==null||e.remove(),this.widgetContainer=void 0,(i=this.viewerContainer)==null||i.remove(),this.viewerContainer=void 0,(n=this.scene)==null||n.clear(),this.scene=void 0,this.renderer&&(this.renderer.domElement.remove(),this.renderer.clear(),this.renderer.dispose(),this.renderer.forceContextLoss(),this.renderer=void 0),this.overlayRender&&(this.overlayRender.destroy(),this.overlayRender=void 0),this.camera=void 0,this.controls&&(this.controls.dispose(),this.controls=void 0),this.groundPlane&&(this.groundPlane.geometry.dispose(),this.groundPlane.clear(),this.groundPlane=void 0)}enableRender(){}getRaycaster(){}getRaycastableObjectsByMouse(e){return[]}getBBox(){}getActiveSection(){}flyTo(e,i){}is3d(){return!0}deactivateMeasurement(){}setMeasurementsVisibility(e){}screenshot(e){return ot(this,null,function*(){})}showStats(){}hideStats(){}};var oE=class{constructor(r){this.viewer=r,this.boxSelectHelper=new $f(r)}get viewerContainer(){return this.viewer.viewerContainer}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}activate(){var r;(r=this.boxSelectHelper)==null||r.select().then(e=>{this.handleZoomToRect(e.min,e.max)})}deactivate(){var r;(r=this.boxSelectHelper)==null||r.deactivate(),this.boxSelectHelper=void 0}pickPositionByScreenPoint(r){let e=Mr.screenPoint2NdcPoint(r,this.camera,this.viewerContainer);this.raycaster.setFromCamera(e,this.camera);let i=[];this.viewer.name==="BimViewer"?i=this.viewer.getRaycastableObjectsByMouse({clientX:r.x,clientY:r.y}):this.viewer.name==="DxfViewer"&&(i=[this.viewer.groundPlane]);let n=this.raycaster.intersectObjects(i)||[];if(n.length>0)return n[0].point}handleZoomToRect(r,e){let i=this.pickPositionByScreenPoint(r),n=this.pickPositionByScreenPoint(e);if(i&&n){let s=new A(Math.min(i.x,n.x),Math.min(i.y,n.y),Math.min(i.z,n.z)),a=new A(Math.max(i.x,n.x),Math.max(i.y,n.y),Math.max(i.z,n.z)),o=new Ot(s,a);this.viewer.zoomToBBox(o)}}destroy(){this.deactivate()}};var _O=class extends nE{constructor(e,i){super(i);this.manager=e}undo(){let e=super.undo();switch(e==null?void 0:e.type){case"Add":{let i=this.manager.getMarkupById(e.payload.id);i&&this.manager.removeMarkup(i,!1)}break;case"Remove":{let i=this.manager.createMarkup(e.payload);i&&this.manager.addMarkup(i,!1)}break;case"Update":{let{from:i,to:n}=e.payload,s=this.manager.getMarkupById(i.id);s&&this.manager.updateMarkup(s,i,!1)}break;default:break}return e}redo(){let e=super.redo();switch(e==null?void 0:e.type){case"Add":{let i=this.manager.createMarkup(e.payload);i&&this.manager.addMarkup(i,!1)}break;case"Remove":{let i=this.manager.getMarkupById(e.payload.id);i&&this.manager.removeMarkup(i,!1)}break;case"Update":{let{from:i,to:n}=e.payload,s=this.manager.getMarkupById(n.id);s&&this.manager.updateMarkup(s,n,!1)}break;default:break}return e}};var sDe=new A,D0=class extends jo{constructor(e){var i;super();this.drawableList=new Hp("markup");this.lineWidth=2;this.lineColor="#ff0000";this.fillColor="rgba(255, 0, 0, 0.3)";this.fontSize=20;this.mouseDown=!1;this.mouseDownPositionX=void 0;this.mouseDownPositionY=void 0;this.isDrawing=!1;this.tempPoints=[];this.actived=!1;this.undoRedoHelper=new _O(this);this.mousedown=e=>{var n;let i=this.pickThreejsPositionByMouse(e);if(this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,e.button===0&&(this.mouseDown=!0),e.button===2&&(this.creatingShape&&this.tempPoints.length<2?(this.removeMarkup(this.creatingShape,!1),this.creatingShape=void 0):(n=this.creatingShape)==null||n.update(this.tempPoints),this.isDrawing&&this.endDraw(this.creatingShape)),this.selectedShape&&(this.selectedShape.selected=!1,this.selectedShape=void 0,this.render()),!this.isDrawing){let s=this.drawableList.getDrawableByPosition(i);s&&(this.selectedShape=s,s.selected=!0,this.render(),this.textInput&&(this.textInput.style.display="none"))}if(this.isCreateTextMode()&&this.mouseDown&&!this.selectedShape&&((!this.textInitialPosition||this.textInput&&this.textInput.value.length===0)&&(this.textInitialPosition=i.clone()),this.addInput(e.clientX,e.clientY)),this.isCreateLineMode()&&this.mouseDown&&!this.selectedShape){if(this.tempPoints.length>0){let s=this.tempPoints[0];if(sDe.subVectors(s,i).length(){e.preventDefault();let i=this.pickThreejsPositionByMouse(e);if(this.selectedShape){if(this.mouseDown&&this.mouseDownPositionX!==void 0&&this.mouseDownPositionY!==void 0){this.isEditing()||(this.initialDataForEditing=this.selectedShape.getData());let n=i.x-this.mouseDownPositionX,s=i.y-this.mouseDownPositionY;this.selectedShape.translate(n,s),this.render(),this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y}}else{if(this.isCreateDotMode())return;if(this.mouseDown&&this.isCreateShapeMode()&&this.mouseDownPositionX!==void 0&&this.mouseDownPositionY!==void 0){let n=new A(this.mouseDownPositionX,this.mouseDownPositionY,0);if(!this.creatingShape){let s=this.creatingShape=this.drawShape(n,i);s&&this.addMarkup(s,!1)}this.creatingShape.update([n,i]),this.isDrawing=!0,this.render()}if(this.isCreateLineMode()&&this.tempPoints.length>0&&this.isDrawing){if(!this.creatingShape){let s=this.creatingShape=this.drawLine([...this.tempPoints,i]);s&&this.addMarkup(s,!1)}let n=this.tempPoints[0];sDe.subVectors(n,i).length(){e.preventDefault(),this.mouseDown=!1,this.selectedShape&&this.isEditing()&&this.endEdit(this.selectedShape),this.isCreateShapeMode()&&this.isDrawing&&this.endDraw(this.creatingShape)};this.keydown=e=>{e.code==="Delete"?this.selectedShape&&this.removeMarkup(this.selectedShape):e.ctrlKey&&e.code==="KeyZ"?this.undo():e.ctrlKey&&e.code==="KeyY"?this.redo():e.code==="Escape"&&this.cancelDraw(this.creatingShape)};this.viewer=e,this.overlayRender=this.viewer.overlayRender,(i=this.overlayRender)==null||i.addDrawableList(this.drawableList)}get viewerCanvas(){var e;return(e=this.viewer.renderer)==null?void 0:e.domElement}get camera(){return this.viewer.camera}get raycaster(){return this.viewer.getRaycaster()}removeMarkupEventFromViewer(){}setMarkupsVisibility(e){this.drawableList.getDrawables().forEach(i=>i.visible=e)}clearAll(){this.drawableList.clear(),this.textInput&&(this.textInput.style.display="none"),this.undoRedoHelper.clear(),this.isDrawing&&this.endDraw(),this.render()}isMarkupActive(){return this.actived}activate(){this.actived=!0,this.viewerCanvas.addEventListener("pointerdown",this.mousedown),this.viewerCanvas.addEventListener("pointermove",this.mousemove),this.viewerCanvas.addEventListener("pointerup",this.mouseup),window.addEventListener("keydown",this.keydown);let e=this.viewer.controls;this.tempKey=e.mouseButtons.LEFT,e.mouseButtons.LEFT=-1,this.tempArrowKeys=e.keys,e.keys={},this.render()}deactivate(){this.actived=!1;let e=this.viewerCanvas;e&&(e.removeEventListener("pointerdown",this.mousedown),e.removeEventListener("pointermove",this.mousemove),e.removeEventListener("pointerup",this.mouseup)),window.removeEventListener("keydown",this.keydown),this.viewer.controls.mouseButtons.LEFT=this.tempKey,this.viewer.controls.keys=this.tempArrowKeys,this.textInput&&this.textInput.remove(),this.textInput=void 0,this.textInitialPosition=void 0,this.mouseDown=!1,this.selectedShape=void 0,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0}getActiveMarkupType(){return this.type}setDrawType(e){this.type=e,this.endDraw()}setLineWidth(e){this.lineWidth=e}getLineWidth(){return this.lineWidth}setLineColor(e){this.lineColor=e}getLineColor(){return this.lineColor}setFillColor(e){this.fillColor=e}getFillColor(){return this.fillColor}setFontSize(e){this.fontSize=e}getFontSize(){return this.fontSize}pickPositionByScreenPoint(e){let i=new A,n=Mr.screenPoint2NdcPoint(e,this.camera,this.viewerCanvas);this.raycaster.setFromCamera(n,this.camera);let s=this.viewer.scene,a=this.raycaster.intersectObject(this.viewer.groundPlane||s)||[];return a.length>0&&i.copy(a[0].point),i}pickThreejsPositionByMouse(e){let i=Mr.getScreenPointByEvent(e,this.viewerCanvas);return this.pickPositionByScreenPoint(i)}isEditing(){return!!this.initialDataForEditing}endEdit(e){this.undoRedoHelper.addRecord("Update",{from:this.initialDataForEditing,to:e.getData()}),this.initialDataForEditing=void 0}endDraw(e){e&&this.undoRedoHelper.addRecord("Add",e.getData()),this.reset()}cancelDraw(e){e&&this.removeMarkup(e,!1),this.reset()}reset(){this.textInput&&(this.textInput.style.display="none",this.textInput.value=""),this.textInitialPosition=void 0,this.tempPoints=[],this.isDrawing=!1,this.creatingShape=void 0,this.mouseDownPositionX=void 0,this.mouseDownPositionY=void 0,this.render()}render(){var e;(e=this.overlayRender)==null||e.render()}addMarkup(e,i=!0){this.drawableList.addDrawable(e),this.render(),i&&this.undoRedoHelper.addRecord("Add",e.getData())}updateMarkup(e,i,n=!0){this.drawableList.updateDrawable(e,i),this.render(),n&&this.undoRedoHelper.addRecord("Update",e.getData())}removeMarkup(e,i=!0){this.drawableList.removeDrawable(e),this.render(),i&&this.undoRedoHelper.addRecord("Remove",e.getData())}removeMarkupById(e,i=!0){let n=this.getMarkupById(e);this.drawableList.removeDrawable(n),this.render(),i&&this.undoRedoHelper.addRecord("Remove",n.getData())}createMarkup(e){return Dr.createDrawable(e)}getMarkupById(e){return this.drawableList.getDrawableById(e)}getMarkupData(){return this.drawableList.getDrawableDatas()}setMarkupData(e){this.drawableList.clear(),this.drawableList.setDrawableDatas(e),this.render()}isCreateLineMode(){return["PolylineMarkup","CloudLineMarkup"].includes(this.type)}isCreateDotMode(){return["DotMarkup"].includes(this.type)}isCreateTextMode(){return["TextMarkup"].includes(this.type)}isCreateShapeMode(){return["XMarkup","RectMarkup","CloudRectMarkup","CircleMarkup","EllipseMarkup","ArrowMarkup","DotMarkup"].includes(this.type)}drawShape(e,i){let n=[[e.x,e.y]];return i&&n.push([i.x,i.y]),Dr.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:n})}drawLine(e){return Dr.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,type:this.type,points:e.map(i=>[i.x,i.y])})}drawText(e,i){return Dr.createDrawable({id:St.guid(),lineWidth:this.lineWidth,lineColor:this.lineColor,fillColor:this.fillColor,fontSize:this.fontSize*this.overlayRender.getPixelSize(1,this.camera),type:this.type,text:i,points:[[e.x,e.y]]})}addInput(e,i){var s;if(!this.textInput){let a=document.createElement("textarea");a.style.cssText=` + position: fixed; + border: 1px solid red; + background: transparent; + outline: none; + resize: none; + overflow: hidden; + z-index: 1000; + box-sizing: content-box; + padding: 0px 2px; + color: ${this.lineColor}`,a.setAttribute("wrap","off"),a.onkeydown=l=>{if(l.key==="Enter"){let c=parseInt(a.style.height);a.style.height=`${c+this.fontSize}px`}this.isDrawing=!0};let o;a.onkeyup=l=>{var h;let c=l.target.value,u=((h=this.overlayRender)==null?void 0:h.measureTextLength(c,`${this.fontSize}px Arial`))||0;u>50&&(o&&clearTimeout(o),o=setTimeout(()=>{l.target.style.width=`${u+4}px`},0))},a.onfocus=()=>{},a.onblur=l=>{let c=l.target.value;if(c.length>0&&this.textInitialPosition){let u=this.creatingShape=this.drawText(this.textInitialPosition,c);u.setTolerance(this.overlayRender.getPixelSize(1,this.camera)),this.addMarkup(u,!1),this.endDraw(this.creatingShape)}},(s=this.viewer.viewerContainer)==null||s.appendChild(a),this.textInput=a}setTimeout(()=>{this.textInput.focus()},0),this.textInput.style.width=`${50}px`,this.textInput.style.height=`${this.fontSize}px`,this.textInput.style.lineHeight=`${this.fontSize}px`,this.textInput.style.fontSize=`${this.fontSize}px`,this.textInput.style.color=this.lineColor,this.textInput.style.display="inline-block",this.textInput.style.left=e+4+"px",this.textInput.style.top=i-this.fontSize+"px"}undo(){this.undoRedoHelper.undo()}redo(){this.undoRedoHelper.redo()}clearUndoRedo(){this.undoRedoHelper.clear()}destroy(){this.deactivate(),this.clearAll()}};var aDe=new A,wO=class extends po{constructor(e,i){super(e);this.lineSegments=[];this.boxes=i,this.lineColor="red",this.lineWidth=2,this.calculateCloudLineSegments(i)}calculateCloudLineSegments(e){var i;for(let n=0;n>>0,1):t.set(r,[]))},emit:function(r,e){var i=t.get(r);i&&i.slice().map(function(n){n(e)}),(i=t.get("*"))&&i.slice().map(function(n){n(r,e)})}}}var cE=(Oe=>(Oe.HomeView="HomeView",Oe.OrthoMode="OrthoMode",Oe.Measure="Measure",Oe.MeasureDistance="MeasureDistance",Oe.MeasureArea="MeasureArea",Oe.MeasureAngle="MeasureAngle",Oe.MeasureCoordinate="MeasureCoordinate",Oe.MeasureClear="MeasureClear",Oe.Markup="Markup",Oe.MarkupArrow="Arrow",Oe.MarkupRect="Rect",Oe.MarkupCloudRect="CloudRect",Oe.MarkupPolyLine="PolyLine",Oe.MarkupCloudLine="CloudLine",Oe.MarkupEllipse="Ellipse",Oe.MarkupCircle="Circle",Oe.MarkupDot="Dot",Oe.MarkupText="Text",Oe.MarkupX="X",Oe.MarkupStrokeStyle="StrokeStyle",Oe.MarkupLineWidth="LineWidth",Oe.MarkupLineWidth2="LineWidth2",Oe.MarkupLineWidth5="LineWidth5",Oe.MarkupLineWidth10="LineWidth10",Oe.MarkupFontSize="FontSize",Oe.MarkupFontSize14="FontSize14",Oe.MarkupFontSize18="FontSize18",Oe.MarkupFontSize24="FontSize24",Oe.MarkupClear="MarkupClear",Oe.MarkupQuit="MarkupQuit",Oe.Section="Section",Oe.SectionBox="SectionBox",Oe.SectionPlane="SectionPlane",Oe.SectionAxis="SectionAxis",Oe.BimTree="BimTree",Oe.Viewpoint="Viewpoint",Oe.Annotation="Annotation",Oe.Property="Property",Oe.Settings="Settings",Oe.Compared="Compared",Oe.QuitCompare="QuitCompare",Oe.Fullscreen="FullScreen",Oe.SceneClear="SceneClear",Oe.Layers="Layers",Oe.ZoomToRectangle="ZoomToRectangle",Oe.Screenshot="GetScreenshot",Oe))(cE||{}),oDe=[["HomeView","OrthoMode","FullScreen","ZoomToRectangle","GetScreenshot"],["Measure","Markup","Section"],["BimTree","Viewpoint","Annotation","Property","Compared","QuitCompare","Layers"],["Settings"]];var vh=class{constructor(r,e,i=[...oDe]){this.bimViewer=r;this.menuConfig=e;this.groupConfig=i;this.visible=!0;this.menuList=new Map;this.keydown=r=>{this.visible&&r.code==="Escape"&&this.clearActive()};this.init()}init(){var e;let r=document.createElement("div");r.classList.add("toolbar"),this.groupConfig.forEach((i,n)=>{let s=document.createElement("div");s.classList.add("toolbar-group");let a=document.createElement("div");a.classList.add("toolbar-group-division"),i.forEach(o=>{let l=(0,Yn.get)(this.menuConfig,o);if(l&&l.visible!==!1){let c=this.createToolbarMenu(this.bimViewer,o,l);s.appendChild(c.element)}}),s.hasChildNodes()&&(n&&r.appendChild(a),r.appendChild(s))}),this.element=r,(e=this.bimViewer.widgetContainer)==null||e.appendChild(r),r.oncontextmenu=i=>{i.preventDefault()},window.addEventListener("keydown",this.keydown,!1)}clearActive(){if(this.activateMenuId){let r=this.menuList.get(this.activateMenuId);r==null||r.setActive(!1),this.activateMenuId=void 0}}createToolbarMenu(r,e,i,n){let s=new eG(r,this,e,i,n);if(this.menuList.set(e,s),i.children){let a=document.createElement("div");a.classList.add("toolbar-sub-menu");let o=document.createElement("div");o.classList.add("toolbar-sub-menu-list"),a.appendChild(o),(0,Yn.forIn)(i.children,(l,c)=>{if(l&&l.visible!==!1){let u=this.createToolbarMenu(r,c,l,s);o.appendChild(u.element)}}),s.element.appendChild(a)}return s}updateMenu(r,e){(0,Yn.assign)(this.menuConfig[r],e),this.refresh()}updateMenus(r){(0,Yn.forEach)(r,({menuId:e,config:i})=>{(0,Yn.assign)(this.menuConfig[e],i)}),this.refresh()}addMenu(r,e,i){if((0,Yn.keys)(this.menuConfig).includes(r)){ne.error("[Toolbar]",r,"exists.");return}if((0,Yn.assign)(this.menuConfig,{[r]:e}),i){let[n,s]=i;if(n>this.groupConfig.length-1)this.groupConfig=(0,Yn.concat)(this.groupConfig,[[r]]);else{let a=this.groupConfig[n];this.groupConfig[n]=s>a.length-1?(0,Yn.concat)(a,r):(0,Yn.concat)((0,Yn.take)(a,s),r,(0,Yn.takeRight)(a,a.length-s))}}else this.groupConfig=(0,Yn.concat)(this.groupConfig,[[r]]);this.refresh()}refresh(){this.destroy(),this.init()}show(){this.element&&(this.element.style.display=""),this.visible=!0}hide(){this.element&&(this.element.style.display="none"),this.visible=!1}destroy(){this.element&&this.element.remove(),this.element=void 0,this.menuList.clear(),window.removeEventListener("keydown",this.keydown,!1)}},eG=class{constructor(r,e,i,n,s){this.bimViewer=r;this.toolbar=e;this.menuId=i;this.eventBus=lE();this.active=n.defaultActive||!1,this.element=n.customElement&&n.customElement(r,this.menuId,n)||this.createButton(r,this.menuId,n),this.eventBus.on("activeChange",a=>{a?(this.element.classList.add("active"),(0,Yn.forEach)(n.mutexIds,o=>{var c;let l=(c=this.toolbar)==null?void 0:c.menuList.get(o);l&&l.active&&l.setActive(!1)}),n.onActive&&n.onActive(r)):(this.element.classList.remove("active"),n.onDeactive&&n.onDeactive(r)),this.element.firstChild instanceof HTMLElement&&IC(this.element.firstChild.classList,n.icon,this.active),s&&s.setActive(a)}),this.element.onclick=a=>{switch(a.stopPropagation(),n.type){case 1:{n.onClick&&n.onClick(r,this.toolbar,a);break}case 4:{n.onClick&&n.onClick(r,this.toolbar,a),this.active=!this.active,this.toolbar.activateMenuId=this.menuId,this.eventBus.emit("activeChange",this.active);break}default:}}}createButton(r,e,i){let n=document.createElement("div");n.id=e,n.classList.add("toolbar-menu"),i.defaultActive&&n.classList.add("active"),i.children&&n.classList.add("toolbar-parent-menu");let{default:s="icon-new",iconFont:a=ho}=i.icon;return n.innerHTML=`
`,n.title=gh(i.menuName),n.innerHTML+=`${n.title}`,n}setActive(r){this.active=r,this.eventBus.emit("activeChange",this.active)}};var cDe={["Arrow"]:{menuName:"Toolbar.markupArrow",icon:{default:"icon-arrow",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("ArrowMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},["Rect"]:{defaultActive:!0,menuName:"Toolbar.markupRect",icon:{default:"icon-rectangle",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("RectMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Arrow","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},["CloudRect"]:{menuName:"Toolbar.markupCloudRect",icon:{default:"icon-cloud",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("CloudRectMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","Arrow","PolyLine","CloudLine","Ellipse","Circle","Dot","Text","X"]},["PolyLine"]:{menuName:"Toolbar.markupPolyLine",icon:{default:"icon-polyline",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("PolylineMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","Arrow","CloudRect","CloudLine","Ellipse","Circle","Dot","Text","X"]},["CloudLine"]:{menuName:"Toolbar.markupCloudLine",icon:{default:"icon-cloud-segment",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("CloudLineMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","Arrow","Ellipse","Circle","Dot","Text","X"]},["Ellipse"]:{menuName:"Toolbar.markupEllipse",icon:{default:"icon-oval",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("EllipseMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Arrow","Circle","Dot","Text","X"]},["Circle"]:{menuName:"Toolbar.markupCircle",icon:{default:"icon-round",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("CircleMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Dot","Text","X"]},["Dot"]:{menuName:"Toolbar.markupDot",icon:{default:"icon-round",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("DotMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Arrow","Circle","Text","X"]},["X"]:{menuName:"Toolbar.markupX",icon:{default:"icon-cross",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("XMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","Text"]},["Text"]:{menuName:"Toolbar.markupText",icon:{default:"icon-text",iconFont:"iconfont"},type:4,onActive:t=>{t.activateMarkup("TextMarkup")},onDeactive(t){t.deactivateMarkup()},mutexIds:["Rect","CloudRect","PolyLine","CloudLine","Ellipse","Circle","Dot","Arrow","X"]},["StrokeStyle"]:{menuName:"Toolbar.markupStroke",icon:{default:"icon-color-red",iconFont:"iconfont"},type:1,onClick:(t,r,e)=>{let i=e.target.parentElement,n=i==null?void 0:i.firstElementChild,s=document.createElement("input");s.setAttribute("type","color"),s.style.position="absolute",s.style.left=`${e.x}px`,s.style.top=`${e.y}px`,s.value=t.getMarkupLineColor(),s.click(),s.oninput=a=>{let o=a.target.value;t.setMarkupLineColor(o),n.style.color=o}}},["LineWidth"]:{menuName:"Toolbar.markupLineWidth",icon:{default:"icon-line",iconFont:"iconfont"},customElement(t,r,e){let i=document.createElement("div");return i.id=r,i.classList.add("toolbar-menu"),e.children&&i.classList.add("toolbar-parent-menu"),i.title=gh(e.menuName),i.innerHTML+=`${i.title}`,i},type:3,children:{["LineWidth2"]:{defaultActive:!0,icon:{default:"icon-line-2",iconFont:"iconfont"},onClick:t=>{t.setMarkupLineWidth(2)},type:4,menuName:"Toolbar.markupLineWidth2",mutexIds:["LineWidth5","LineWidth10"]},["LineWidth5"]:{icon:{default:"icon-line-3",iconFont:"iconfont"},onClick:t=>{t.setMarkupLineWidth(3)},type:4,menuName:"Toolbar.markupLineWidth5",mutexIds:["LineWidth2","LineWidth10"]},["LineWidth10"]:{icon:{default:"icon-line-4",iconFont:"iconfont"},onClick:t=>{t.setMarkupLineWidth(4)},type:4,menuName:"Toolbar.markupLineWidth10",mutexIds:["LineWidth2","LineWidth5"]}}},["FontSize"]:{menuName:"Toolbar.markupFontSize",icon:{default:"icon-font"},customElement(t,r,e){let i=document.createElement("div");return i.id=r,i.classList.add("toolbar-menu"),e.children&&i.classList.add("toolbar-parent-menu"),i.title=gh(e.menuName),i.innerHTML+=`${i.title}`,i},type:3,children:{["FontSize14"]:{icon:{default:"icon-font14",iconFont:"iconfont"},onClick:t=>{t.setMarkupFontSize(14)},type:4,menuName:"",mutexIds:["FontSize18","FontSize24"]},["FontSize18"]:{defaultActive:!0,icon:{default:"icon-font18",iconFont:"iconfont"},onClick:t=>{t.setMarkupFontSize(18)},type:4,menuName:"",mutexIds:["FontSize14","FontSize24"]},["FontSize24"]:{icon:{default:"icon-font24",iconFont:"iconfont"},onClick:t=>{t.setMarkupFontSize(24)},type:4,menuName:"",mutexIds:["FontSize14","FontSize18"]}}},["MarkupClear"]:{icon:{default:"icon-eraser",iconFont:"iconfont"},onClick:t=>{ne.info("[Toolbar]","Clear Markup",t),t.clearMarkups()},type:1,menuName:"Toolbar.clearMarkup"},["MarkupQuit"]:{icon:{default:""},customElement(t,r,e){let i=document.createElement("div");return i.id=r,i.classList.add("toolbar-menu"),e.children&&i.classList.add("toolbar-parent-menu"),i.title=gh(e.menuName),i.innerHTML+=`${i.title}`,i},onClick:(t,r)=>{var e;t.deactivateMarkup(),r.destroy(),(e=t.toolbar)==null||e.show()},type:1,menuName:"Toolbar.quitMarkup"}},q2t=[["Arrow","Rect","CloudRect","PolyLine","Ellipse","Circle","Text","MarkupClear","MarkupQuit"]],RO=class extends vh{constructor(r,e,i=[...q2t]){super(r,e,i)}};var uE=class{constructor(r,e,i=document.body){this.container=i;this.isFollowing=!1;this.diffX=0;this.diffY=0;this.start=r=>{this.isFollowing=!0,this.diffX=r.clientX-this.element.offsetLeft,this.diffY=r.clientY-this.element.offsetTop};this.stop=()=>{this.isFollowing=!1};this.follow=r=>{if(!this.isFollowing)return;let e=r.clientX-this.diffX,i=r.clientY-this.diffY;this.element.style.left=e+"px",this.element.style.top=i+"px"};this.element=document.createElement("div"),this.element.id=r,this.element.classList.add("pop-panel");let n=document.createElement("div");n.classList.add("pop-panel-header"),n.append(e),this.element.appendChild(n),this.header=n;let s=document.createElement("div");s.classList.add("pop-panel-body"),this.element.appendChild(s),this.body=s,n.addEventListener(vB,this.start),n.addEventListener(gB,this.stop),document.body.addEventListener(wf,this.follow),this.container.appendChild(this.element)}destroy(){document.body.removeEventListener(wf,this.follow),this.element.removeEventListener(vB,this.start),this.element.removeEventListener(gB,this.stop),this.element.remove()}};var Fa=new A(1,0,0),Qf=new A(0,1,0),em=new A(0,0,1);var uDe=new A(0,1,0),_S=new Ue,tG=2,tu=class extends hr{constructor(e=Fa){super();this.redMaterial=new or({color:16711680,depthTest:!1});this.greenMaterial=new or({color:65280,depthTest:!1});this.blueMaterial=new or({color:255,depthTest:!1});this.highlightMaterial=new or({color:16776960,depthTest:!1});this.pickableMaterial=new or({color:9807270,depthTest:!1});this.initIgnoreClipMaterial(),this.initOrUpdateByAxis(e)}initIgnoreClipMaterial(){[this.redMaterial,this.greenMaterial,this.blueMaterial,this.highlightMaterial,this.pickableMaterial].forEach(e=>{e.onBeforeCompile=function(i,n){i.fragmentShader=i.fragmentShader.replace("#include ","").replace("#include ",""),i.vertexShader=i.vertexShader.replace("#include ","").replace("#include ","")}})}setDirection(e){let i=new Or;i.setFromUnitVectors(Fa,e),this.applyQuaternion(i)}initOrUpdateByAxis(e){this.clear(),[{actionType:"TranslateX",direction:Fa,material:this.redMaterial},{actionType:"TranslateY",direction:Qf,material:this.greenMaterial},{actionType:"TranslateZ",direction:em,material:this.blueMaterial}].forEach(i=>{let{actionType:n,direction:s,material:a}=i,o=this.createTranslateGizmo(n,s,tG,s.angleTo(e)===0?a:this.pickableMaterial);this.add(o)}),[{actionType:"RotateX",direction:Fa,material:this.redMaterial,degree:90},{actionType:"RotateY",direction:Qf,material:this.greenMaterial,degree:90},{actionType:"RotateZ",direction:em,material:this.blueMaterial,degree:90}].forEach(i=>{let{actionType:n,direction:s,material:a,degree:o}=i;if(s.angleTo(e)!==0){let l=this.createRotateGizmo(n,s,tG,a,o);this.add(l)}}),this.createSphere(1,this.pickableMaterial)}createTranslateGizmo(e,i,n,s){let a=i.angleTo(uDe),o=uDe.clone().cross(i);_S.makeRotationAxis(o,a);let l=new Dl(n/5,n/5,n*20),c=n*10;l.translate(0,c,0),l.applyMatrix4(_S);let u=new Dl(0,n,n*3),h=c*2;u.translate(0,h,0),u.applyMatrix4(_S);let p=qo([u,l]),d=new Je(p,s);return d.userData.actionType=e,s===this.pickableMaterial&&d.layers.set(11),d}createRotateGizmo(e,i,n,s,a){let o=new A(0,0,1),l=i.clone().cross(o),c=i.angleTo(o);_S.makeRotationAxis(l,c);let u=new wp(n*12,n/5,8,36,wr.degToRad(a));u.applyMatrix4(_S);let h=new Je(u,s);return h.userData.actionType=e,h}createSphere(e,i){let n=new ro(e,32,16),s=new Je(n,i);s.layers.set(11),this.add(s)}setActiveAxis(e){this.initOrUpdateByAxis(e)}createHoverRotateObjectByAxis(e){let i=Fa;switch(e){case"RotateX":i=Fa;break;case"RotateY":i=Qf;break;case"RotateZ":i=em;break;default:break}return this.createRotateGizmo("",i,tG,this.highlightMaterial,360)}setActive(e,i){var s;let n=i.userData.actionType;["RotateX","RotateY","RotateZ"].includes(n)?e?(this.hoverObject=this.createHoverRotateObjectByAxis(n),this.add(this.hoverObject),i.visible=!1):((s=this.hoverObject)==null||s.removeFromParent(),i.visible=!0,this.hoverObject=void 0):e?(this.originalMaterial=i.material,i.material=this.highlightMaterial):this.originalMaterial&&(i.material=this.originalMaterial)}adjustSize(e){let i=new A;this.getWorldPosition(i);let n=e.position,s=1;e instanceof Zi?s=(e.top-e.bottom)/e.zoom:e instanceof qr&&(s=i.distanceTo(n)*Math.min(1.9*Math.tan(Math.PI*e.fov/360)/e.zoom,7)),this.scale.set(1,1,1).multiplyScalar(s/180)}};var tm=class{constructor(r){this.mouseDown=!1;this.lastWorldPos=new A;this.mouseMoved=!1;this.dragStarted=!1;this.refrencePlane=new Ei;this.isShowSectionPlane=!1;this.mousedown=r=>{r.button===0&&this.camera&&this.selectedObject&&(this.mouseDown=!0)};this.mousemove=r=>{if(this.dragStarted)this.updateRaycasterByMouse(r),this.onDragMove(r);else{this.activateSelectedObject(!1);let e=this.getIntersections(r);e?(this.selectedObject=e.object,this.activateSelectedObject(!0),this.mouseDown&&(this.dragStarted||(this.dragStarted=!0,this.onDragStart(r)))):this.selectedObject=void 0}this.viewer.enableRender()};this.mouseup=r=>{r.button===0&&(this.mouseDown&&this.dragStarted&&(this.onDragEnd(r),this.dragStarted=!1),this.mouseDown=!1,this.selectedObject=void 0)};this.keydown=r=>{r.code==="Escape"&&this.deactivate()};if(!r.camera||!r.renderer||!r.controls||!r.scene)throw new Error("Invalid bimViewer!");this.viewer=r,this.scene=r.scene,this.renderer=r.renderer;let e=r.getBBox();if(!e)throw new Error("Need to set sectionBox first!");this.sectionBox=e.clone()}get canvas(){var r;return(r=this.viewer.renderer)==null?void 0:r.domElement}get isActive(){return!!this.raycaster}get camera(){return this.viewer.camera}get controls(){return this.viewer.controls}setGlobalClippingEnable(r){this.clipPlanes&&(r?(this.renderer.localClippingEnabled=!0,this.renderer.clippingPlanes=this.clipPlanes):(this.renderer.localClippingEnabled=!1,this.renderer.clippingPlanes=[]))}activate(){this.canvas.addEventListener("pointerdown",this.mousedown),this.canvas.addEventListener("pointermove",this.mousemove),this.canvas.addEventListener("pointerup",this.mouseup),window.addEventListener("keydown",this.keydown),this.raycaster=this.viewer.getRaycaster()}deactivate(){var e;let r=this.canvas;r&&(r.removeEventListener("pointerdown",this.mousedown),r.removeEventListener("pointermove",this.mousemove),r.removeEventListener("pointerup",this.mouseup)),window.removeEventListener("keydown",this.keydown),this.setGlobalClippingEnable(!1),(e=this.selectedObject)==null||e.removeFromParent(),this.selectedObject=void 0,this.dragStarted=!1,this.raycaster=void 0}getIntersections(r){if(!this.raycaster)return;this.updateRaycasterByMouse(r);let e=this.raycaster.intersectObjects(this.getIntersectObjects())||[],i=e.find(n=>n.object&&n.object.parent instanceof tu);return i||e[0]}updateRaycasterByMouse(r){if(!this.raycaster)return;let e=Mr.getScreenPointByEvent(r,this.canvas),i=Mr.screenPoint2NdcPoint(e,this.camera,this.canvas);this.raycaster&&this.raycaster.layers.disable(11),this.raycaster.setFromCamera(i,this.camera)}destroy(){this.deactivate()}};var pDe=new Ot,dDe=new Or,MO=class extends Je{constructor(e,i){super();this.vertices=[];this.actionType=e,this.geometry=new it,this.vertices=i,this.geometry.setFromPoints(i),this.geometry.setIndex([0,1,2,0,2,3]),this.material=new or({depthTest:!1,color:MO.normalPlaneColor,transparent:!0,opacity:.1,side:wi}),this.createIgnoreClipMateriasl(this.material),this.geometry.computeVertexNormals(),this.edge=this.createEdge(i),this.add(this.edge)}createIgnoreClipMateriasl(e){e.onBeforeCompile=function(i,n){i.fragmentShader=i.fragmentShader.replace("#include ","").replace("#include ",""),i.vertexShader=i.vertexShader.replace("#include ","").replace("#include ","")}}createEdge(e){let i=new it;i.setFromPoints(e),i.setIndex([0,1,1,2,2,3,3,0]);let n=new Tr({color:MO.normalLineColor});this.createIgnoreClipMateriasl(n);let s=new _r(i,n);return s.layers.set(11),s}update(e){this.geometry.setFromPoints(e),this.geometry.computeBoundingSphere(),this.geometry.computeVertexNormals(),this.edge.geometry.setFromPoints(e),this.vertices=e}rotatePlane(e,i){let n=this.getPlaneCenter();dDe.setFromAxisAngle(e,i),this.vertices=this.vertices.map(s=>s.sub(n).applyQuaternion(dDe).add(n)),this.update(this.vertices)}setDirection(e){let i=new Or;i.setFromUnitVectors(Fa,e);let n=this.getPlaneCenter();this.vertices=this.vertices.map(s=>s.sub(n).applyQuaternion(i).add(n)),this.update(this.vertices)}getPlaneNormal(){let[e,i,n]=this.vertices,s=new A;return un.getNormal(e,i,n,s),s}setActive(e){this.material.opacity=e?.2:.1}getPlaneCenter(){pDe.setFromPoints(this.vertices);let e=new A;return pDe.getCenter(e),e}},an=MO;an.normalPlaneColor=new Ve(0,.855,.718),an.activePlaneColor=new Ve(1,1,0),an.normalLineColor=16777215;var DO=class extends tm{constructor(e){super(e);this.activeAxis="X";this.center=new A,this.sectionBox.getCenter(this.center),this.axisInfoMap={["X"]:{normal:new A(1,0,0)},["Y"]:{normal:new A(0,1,0)},["Z"]:{normal:new A(0,0,1)}},this.viewer.addEventListener("RenderAfter",()=>{var i;this.isActive&&((i=this.gizmo)==null||i.adjustSize(this.camera))})}activate(){super.activate(),this.setActiveAxis("X")}deactivate(){var e,i;super.deactivate(),(e=this.planeMesh)==null||e.removeFromParent(),(i=this.gizmo)==null||i.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0}resetSection(){var e,i;(e=this.planeMesh)==null||e.removeFromParent(),(i=this.gizmo)==null||i.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0,this.setActiveAxis("X")}setActiveAxis(e){this.activeAxis=e,this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setGlobalClippingEnable(!0),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.isShowSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){switch(this.activeAxis){case"X":this.clipPlane=new Ei(new A(-1,0,0),this.center.x);break;case"Y":this.clipPlane=new Ei(new A(0,-1,0),this.center.y);break;case"Z":this.clipPlane=new Ei(new A(0,0,-1),this.center.z);break;default:break}this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var l;let e=new A;this.sectionBox.getSize(e);let i=e.length(),n=this.center,s=new Ot().setFromCenterAndSize(n,new A(i,i,i)),{min:a,max:o}=s;switch((l=this.planeMesh)==null||l.removeFromParent(),this.activeAxis){case"X":this.planeMesh=new an("X",[new A(n.x,o.y,a.z),new A(n.x,o.y,o.z),new A(n.x,a.y,o.z),new A(n.x,a.y,a.z)]);break;case"Y":this.planeMesh=new an("Y",[new A(o.x,n.y,a.z),new A(a.x,n.y,a.z),new A(a.x,n.y,o.z),new A(o.x,n.y,o.z)]);break;case"Z":this.planeMesh=new an("Z",[new A(o.x,o.y,n.z),new A(a.x,o.y,n.z),new A(a.x,a.y,n.z),new A(o.x,a.y,n.z)]);break;default:break}this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var i,n;(i=this.gizmo)==null||i.removeFromParent();let e=this.axisInfoMap[this.activeAxis].normal;this.gizmo=new tu,this.gizmo.setDirection(e),this.sectionBox.getCenter(this.gizmo.position),(n=this.scene)==null||n.add(this.gizmo)}onDragStart(e){var n;if(this.selectedObject instanceof an)return;this.controls&&this.dragStarted&&this.selectedObject&&!(this.selectedObject instanceof an)&&(this.controls.enableRotate=!1),ne.info("[AxisPlaneSection] onDragStart:",e);let i=new A;this.sectionBox.getCenter(i),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),(n=this.raycaster)==null||n.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var d,f,m;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||this.selectedObject&&this.selectedObject instanceof an)return;let i=new A;(d=this.raycaster)==null||d.ray.intersectPlane(this.refrencePlane,i),console.log(i);let n=this.selectedObject.userData.actionType,s=new A().subVectors(this.lastWorldPos,this.center).normalize(),a=new A().subVectors(i,this.center).normalize(),o=new A().subVectors(i,this.lastWorldPos).projectOnVector(Fa.clone().applyQuaternion(this.gizmo.quaternion)),l=s.angleTo(a),c=new A().crossVectors(s,a),u=new A;this.sectionBox.getSize(u);let h=Math.max(u.x,u.y,u.z),p;switch(n){case"TranslateX":case"TranslateY":case"TranslateZ":p=new A().addVectors(this.gizmo.position,o),this.sectionBox.clone().setFromCenterAndSize(this.center,new A(h,h,h)).containsPoint(p)&&((f=this.gizmo)==null||f.position.add(o),(m=this.planeMesh)==null||m.position.add(o));break;case"RotateX":{let g=Fa.clone().applyQuaternion(this.gizmo.quaternion);c.dot(g)<0&&(l=-l),this.gizmo.rotateX(l),this.planeMesh.rotatePlane(g,l)}break;case"RotateY":{let g=Qf.clone().applyQuaternion(this.gizmo.quaternion);c.dot(g)<0&&(l=-l),this.gizmo.rotateY(l),this.planeMesh.rotatePlane(g,l)}break;case"RotateZ":{let g=em.clone().applyQuaternion(this.gizmo.quaternion);c.dot(g)<0&&(l=-l),this.gizmo.rotateZ(l),this.planeMesh.rotatePlane(g,l)}break;default:break}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=i}onDragEnd(e){this.selectedObject instanceof an||(this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[AxisPlaneSection] onDragEnd:",e))}getIntersectObjects(){return!this.planeMesh||!this.gizmo?[]:[this.planeMesh,this.gizmo]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof an?this.selectedObject.setActive(e):this.selectedObject.parent instanceof tu&&this.selectedObject.parent.setActive(e,this.selectedObject))}};var CO=class extends uE{constructor(e){let i=e.widgetContainer;super("axis-section-pop-panel","\u8F74\u5411\u5256\u5207",i);this.axis="x";this.isVisible=!0;this.keydown=e=>{e.code==="Escape"&&this.destroy()};this.section=e.getActiveSection(),this.createGroupSelectLayout(),this.addGroupSelectItems(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createGroupSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-group-select"),this.body.appendChild(e),this.groupSelectNode=e}addGroupSelectItems(){let e=(l,c,u=!1)=>{let h=document.createElement("div");return h.classList.add("pop-panel-item"),h.setAttribute("itemName",l),h.append(c),u&&h.classList.add("active"),this.groupSelectNode&&this.groupSelectNode.appendChild(h),h},i=()=>{s.classList.remove("active"),a.classList.remove("active"),o.classList.remove("active")},n=(l,c)=>u=>{u.stopPropagation(),this.activeItem!==l&&(i(),this.activeItem=l,c.classList.add("active"),this.section.setActiveAxis(l))},s=e("X","X",!0);s.onclick=n("X",s);let a=e("Y","Y");a.onclick=n("Y",a);let o=e("Z","Z");o.onclick=n("Z",o)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(s,a)=>{let o=document.createElement("i");o.classList.add(ho),o.classList.add(a),s.innerHTML="",s.appendChild(o)},n=((s,a,o="")=>{let l=document.createElement("div");return l.classList.add("pop-panel-item"),a&&l.setAttribute("title",a),l.setAttribute("itemName",s),l.setAttribute("isActive","false"),e(l,o),l})("visible","\u9690\u85CF\u5256\u5207\u9762","icon-hidesectionplane");n.onclick=()=>{this.isVisible=!this.isVisible,this.isVisible?(e(n,"icon-hidesectionplane"),n.setAttribute("title","\u9690\u85CF\u5256\u5207\u9762")):(e(n,"icon-showsectionplane"),n.setAttribute("title","\u663E\u793A\u5256\u5207\u9762")),this.section.setSectionVisible(this.isVisible)}}};var AO=class extends uE{constructor(e){let i=e.widgetContainer;super("pick-section-pop-panel","\u62FE\u53D6\u9762\u5256\u5207",i);this.isVisible=!0;this.enabled=!0;this.keydown=e=>{e.code==="Escape"&&this.destroy()};this.section=e.getActiveSection(),this.createActiveSelectLayout(),this.addActiveItems(),window.addEventListener("keydown",this.keydown)}destroy(){super.destroy(),window.removeEventListener("keydown",this.keydown)}createActiveSelectLayout(){let e=document.createElement("div");e.classList.add("pop-panel-active-select"),this.body.appendChild(e),this.activeSelectNode=e}addActiveItems(){let e=(a,o)=>{let l=document.createElement("i");l.classList.add(ho),l.classList.add(o),a.innerHTML="",a.appendChild(l)},i=(a,o,l="")=>{let c=document.createElement("div");return c.classList.add("pop-panel-item"),o&&c.setAttribute("title",o),c.setAttribute("itemName",a),c.setAttribute("isActive","false"),e(c,l),c},n=i("visible","\u9690\u85CF\u5256\u5207\u9762","icon-hidesectionplane");n.onclick=()=>{this.enabled&&(this.isVisible=!this.isVisible,this.isVisible?(e(n,"icon-hidesectionplane"),n.setAttribute("title","\u9690\u85CF\u5256\u5207\u9762")):(e(n,"icon-showsectionplane"),n.setAttribute("title","\u663E\u793A\u5256\u5207\u9762")),this.section.setSectionVisible(this.isVisible))},this.activeSelectNode&&this.activeSelectNode.appendChild(n),this.visibleNode=n;let s=i("reset","\u91CD\u7F6E","icon-reset");s.onclick=a=>{a.stopPropagation(),this.enabled&&(this.isVisible=!0,e(n,"icon-hidesectionplane"),n.setAttribute("title","\u9690\u85CF\u5256\u5207\u9762"),this.section.resetSection())},this.activeSelectNode&&this.activeSelectNode.appendChild(s),this.resetNode=s}enable(){this.enabled=!0,this.visibleNode&&this.visibleNode.classList.remove("disable")}disable(){this.enabled=!1,this.visibleNode&&this.visibleNode.classList.add("disable")}};var nl=(n=>(n.Distance="Distance",n.Area="Area",n.Angle="Angle",n.Coordinate="Coordinate",n))(nl||{}),ru=class extends jo{constructor(e,i,n,s){super();this.mouseMoved=!1;this.mouseDowned=!1;this.mouseDownPositionX=-1;this.mouseDownPositionY=-1;this.tempEdgeMaterial=new Tr({color:16711680});this.snapPoint=void 0;this.mousedown=e=>{let i=Mr.getScreenPointByEvent(e,this.canvas);this.mouseDownPositionX=i.x,this.mouseDownPositionY=i.y,this.mouseMoved=!1,this.mouseDowned=!0};this.mousemove=e=>{if(this.lastMoveEvent=e,this.mouseDownPositionX>=0&&this.mouseDownPositionY>=0&&(Math.abs(e.offsetX-this.mouseDownPositionX)>5||Math.abs(e.offsetY-this.mouseDownPositionY)>5)&&(this.mouseMoved=!0),this.mouseDowned)return;let i=this.getIntersections(e);if(!i.length)return;let n=Date.now();this.handleSnap(i),ne.debug(`[BaseMeasurement] this.handleSnap costs ${(Date.now()-n)/1e3}s`),this.onMouseMove(this.snapPoint),this.viewer.enableRender()};this.mouseup=e=>{e.buttons===0&&(this.mouseDowned=!1),this.mouseMoved||this.onMouseClick(e)};this.dblclick=()=>{ne.info("[Measure] Double clicked")};this.keydown=e=>{if(e.code==="Enter"){let i=new MouseEvent("pointerup",{button:bi.RIGHT});this.onMouseClick(i)}else e.code==="Escape"&&this.cancel()};this.getIntersections=e=>{if(!this.raycaster)return[];this.raycaster&&this.raycaster.layers.disable(10);let i=this.viewer.getRaycastableObjectsByMouse(e);ne.debug(`[BaseMeasurement] The count of raycastable object is ${i.length}`,i);let n=Date.now(),s=this.raycaster.intersectObjects(i,!0)||[];return ne.debug(`[BaseMeasurement] this.raycaster.intersectObjects costs ${(Date.now()-n)/1e3}s`),this.renderer.clippingPlanes.length>0&&(s=s.filter(a=>this.renderer.clippingPlanes.every(function(o){return o.distanceToPoint(a.point)>0}))),s};this.type=e,this.viewer=i,this.drawList=n,this.osnapHelper=s}get canvas(){var e;return(e=this.viewer.renderer)==null?void 0:e.domElement}get camera(){return this.viewer.camera}get renderer(){return this.viewer.renderer}get isActive(){return!!this.raycaster}get isMeasuring(){return this.isActive&&!this.completed}activate(){this.canvas.addEventListener("pointerdown",this.mousedown),this.canvas.addEventListener("pointermove",this.mousemove),this.canvas.addEventListener("pointerup",this.mouseup),this.canvas.addEventListener("dblclick",this.dblclick),window.addEventListener("keydown",this.keydown);let e=this.viewer.translate;if(e){this.tooltip=new ph("measure-tooltip",e("Tooltip.measure"),{followPointer:!0,showOnCreate:!0,parentNode:this.viewer.widgetContainer,target:this.canvas});let i=document.getElementById("measure-tooltip");i&&(i.style.pointerEvents="none")}this.setTooltipContent(),this.raycaster=this.viewer.getRaycaster()}deactivate(){var i,n;let e=this.canvas;e&&(e.removeEventListener("pointerdown",this.mousedown),e.removeEventListener("pointermove",this.mousemove),e.removeEventListener("pointerup",this.mouseup),e.removeEventListener("dblclick",this.dblclick)),window.removeEventListener("keydown",this.keydown),(i=this.tooltip)==null||i.hide(),(n=this.tooltip)==null||n.destroy(),this.tooltip=void 0,this.raycaster=void 0,this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}removeDrawable(e){this.drawList.removeDrawable(e)}clearClickedDrawable(){this.clickedOnMeasurementDrawable&&(this.clickedOnMeasurementDrawable.selected=!1,this.clickedOnMeasurementDrawable=void 0)}onMouseClick(e){let i=Date.now();if(!(this.lastClickTime&&i-this.lastClickTime<500)&&(this.lastClickTime=i,this.clickedOnMeasurementDrawable=void 0,this.completed==null||this.completed===!0)){let n=this.getIntersections(e)[0];if(n){let s=this.drawList.getDrawableByPosition(n.point,this.raycaster);s&&(this.dispatchEvent("clickedonmeasurement",s),this.clickedOnMeasurementDrawable=s)}}}getIntersectsOutline(e){var n,s;let i=[];for(let a=0;al instanceof rn?0:l instanceof oi?2:l instanceof _r?1:3;i.sort((l,c)=>{let u=o(l.object),h=o(c.object);return u!==h?u-h:l.distance-c.distance})}}i=this.getIntersectsOutline(i),ne.debug("[BaseMeasurement] filteredIntersections:",i),this.snapPoint=((a=this.osnapHelper.handleSnap(n,i,this.viewer.is3d(),this.lastMouseDownPosition))==null?void 0:a.clone())||e[0].point.clone(),this.snapPoint||(this.viewer.is3d()?this.snapPoint=e[0].point:this.snapPoint=n)}};ru.MAX_DISTANCE=5e3;var ra=class extends po{constructor(e,i){super(e);this.type="Distance";this.labelBounds=new Ds;this.drawing=!1;this.update(i)}setDrawingState(e){this.drawing=e}drawSelect(e,i){let n=this.getVertexs();this.drawPoints(e,i,n)}drawPoints(e,i,n){e.save(),e.fillStyle=ra.MAJOR_COLOR,e.strokeStyle=ra.MINOR_COLOR,e.lineWidth=ra.LINE_WIDTH,e.beginPath(),n.forEach(s=>{let a=this.transToScreenCoord(s,i);e.moveTo(a.x+ra.POINT_RADIUS,a.y),e.arc(a.x,a.y,ra.POINT_RADIUS,0,Math.PI*2)}),e.closePath(),e.fill(),e.stroke(),e.restore()}drawText(e,i){if(!this.label||!this.labelPositon)return;e.font=`${ra.LABEL_FONT_SIZE}px Arial`;let n=e.measureText(this.label).width*1.2,s=ra.LABEL_FONT_SIZE*1.5;this.labelBounds.setFromCenterAndSize(this.labelPositon,new le(n,s)),this.drawRoundRect(e,this.labelPositon.x-n/2,this.labelPositon.y-s/2,n,s,4),e.save(),e.fillStyle=ra.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}drawRoundRect(e,i,n,s,a,o){s<2*o&&(o=s/2),a<2*o&&(o=a/2),e.save(),e.fillStyle=ra.MAJOR_COLOR,e.strokeStyle=ra.MINOR_COLOR,e.lineWidth=ra.LINE_WIDTH,e.beginPath(),e.moveTo(i+o,n),e.arcTo(i+s,n,i+s,n+a,o),e.arcTo(i+s,n+a,i,n+a,o),e.arcTo(i,n+a,i,n,o),e.arcTo(i,n,i+s,n,o),e.closePath(),e.fill(),this.selected&&e.stroke(),e.restore()}getVertexs(){return this.points}update(e){let{min:i,max:n}=new Ot().setFromPoints(e);return this.x=i.x,this.y=i.y,this.width=Math.abs(n.x-i.x),this.height=Math.abs(n.y-i.y),this.points=e,this}getBounds(){let e=this.getVertexs();return new Ot().setFromPoints(e)}getData(){return{id:this.id,type:this.type,points:this.points.map(e=>[e.x,e.y,e.z])}}setData(e){super.setData(e),this.setLineColor(ra.MAJOR_COLOR),this.setFillColor(ra.AREA_FILL_COLOR),this.setLineWidth(ra.LINE_WIDTH)}isPointInPath(e,i){let n=i==null?void 0:i.ray;if(!n)return!1;let s=3*this.tolerance,a=this.transToScreenCoord(e,i.camera);if(this.labelBounds.containsPoint(a))return!0;let o=new A,l=new A,c=this.points;for(let u=0;u{let o=this.transToScreenCoord(s,i);a===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),this.points.length===3){let[s,a,o]=this.points.map(d=>this.transToScreenCoord(d,i)),l=new le().subVectors(s,a).normalize(),c=new le().subVectors(o,a).normalize(),u=Math.min(s.distanceTo(a),o.distanceTo(a)),h=l.angle(),p=c.angle();e.moveTo(a.x,a.y),e.arc(a.x,a.y,u/5,h,p,l.cross(c)<0)}e.stroke(),e.restore(),this.drawing&&this.drawPoints(e,i,this.points.slice(0,this.points.length-1)),this.drawText(e,i)}drawText(e,i){if(this.points.length<3)return;let[n,s,a]=this.points,o=this.getAngleBisector(n,s,a),l=this.calculateAngle(n,s,a);this.label=`${Wu(l,2)} ${this.getUnitString()}`;let u=Math.min(n.distanceTo(s),a.distanceTo(s))*.3;this.labelPositon=this.transToScreenCoord(s.clone().add(new A(o.x*u,o.y*u,o.z*u)),i),super.drawText(e,i)}getAngleBisector(e,i,n){let s=e,a=i,o=n,l=new A(s.x-a.x,s.y-a.y,s.z-a.z).normalize(),c=new A(o.x-a.x,o.y-a.y,o.z-a.z).normalize();return new A(l.x+c.x,l.y+c.y,l.z+c.z).normalize()}calculateAngle(e,i,n){let s=e,a=i,o=n,l=new A(s.x-a.x,s.y-a.y,s.z-a.z),c=new A(o.x-a.x,o.y-a.y,o.z-a.z);return l.angleTo(c)*180/Math.PI}getClassType(){return"Angle"}};Dr._registerDrawableClass(wS);var OO=class extends ru{constructor(r,e,i){super("Angle",r,e,i)}onMouseMove(r){this.createOrUpdateAngleMeasureDrawable(r)}onMouseClick(r){var s;if(super.onMouseClick(r),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),r.button===bi.RIGHT){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0;return}let e=this.getIntersections(r)[0];if(!e)return;let i=(s=this.snapPoint)!=null?s:e==null?void 0:e.point,n=this.drawingPoints;n.push(i),this.lastMouseDownPosition=i,n.length===1&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateAngleMeasureDrawable(),n.length>=3&&this.complete()}complete(){var r;(r=this.currentMeasureDrawable)==null||r.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.currentMeasureDrawable=void 0,this.drawingPoints=void 0,this.lastMouseDownPosition=void 0}cancel(){let r=this.drawingPoints;if(r&&r.length>0){if(r.pop(),r.length===0&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var i;let r=this.viewer.translate;if(!r)return;let e=r("Tooltip.measure");e&&this.tooltip&&((i=this.tooltip)==null||i.setContent(e))}createOrUpdateAngleMeasureDrawable(r){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let e=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new wS(St.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),r&&e.push(r),this.currentMeasureDrawable.update(e),this.currentMeasureDrawable.setDrawingState(!0)}};var RS=class extends Oi{constructor(e,i){super(e,i);this.type="Area";this.update(i)}draw(e,i){let n=this.points;e.save(),e.lineWidth=Oi.LINE_WIDTH,e.strokeStyle=Oi.MAJOR_COLOR,e.fillStyle=Oi.AREA_FILL_COLOR,e.beginPath(),n.forEach((s,a)=>{let o=this.transToScreenCoord(s,i);a===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.closePath(),e.fill(),e.stroke(),e.restore(),this.drawing&&this.drawPoints(e,i,this.points.slice(0,this.points.length-1)),this.drawText(e,i)}drawText(e,i){let n=this.points,s=this.calculateArea(n);this.label=`${Wu(s,2)}`,this.labelPositon=this.transToScreenCoord(this.getBarycenter(n),i),super.drawText(e,i)}calculateArea(e){let i=0,n=Mf.getFaces(e);for(let s=0;s{n+=o.x,s+=o.y,a+=o.z}),new A(n/i,s/i,a/i)}isPointInPath(e,i){let n=i==null?void 0:i.ray;if(!n)return!1;let s=this.transToScreenCoord(e,i.camera);if(this.labelBounds.containsPoint(s))return!0;let a=Mf.getFaces(this.points);for(let o=0;o=3&&!Mf.arePointsCoplanar([...e,n])){ne.warn("[Measure] The position is not coplanar with other points");return}e.push(n),this.lastMouseDownPosition=n,e.length===1&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateAreaMeasureDrawable()}complete(){var r;(r=this.currentMeasureDrawable)==null||r.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let r=this.drawingPoints;if(r&&r.length>0){if(r.pop(),r.length===0&&(this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let r=this.viewer.translate;if(r){let i=r("Tooltip.areaMeasurement");i&&this.tooltip&&((e=this.tooltip)==null||e.setContent(i))}}createOrUpdateAreaMeasureDrawable(r){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let e=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new RS(St.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),r&&e.push(r),this.currentMeasureDrawable.update(e),this.currentMeasureDrawable.setDrawingState(!0)}};var MS=class extends Oi{constructor(e,i){super(e,i);this.type="Coordinate";this.update(i)}draw(e,i){this.drawText(e,i),e.save(),e.lineWidth=Oi.LINE_WIDTH,e.strokeStyle=Oi.MAJOR_COLOR,e.fillStyle=Oi.AREA_FILL_COLOR;let n=this.points;e.beginPath(),n.forEach(s=>{let a=this.transToScreenCoord(s,i);e.arc(a.x,a.y,Oi.POINT_RADIUS,0,Math.PI*2)}),e.fill(),e.stroke(),e.restore()}drawText(e,i){let n=this.points[0];lr.areNumbersEqual(n.x,0);let s=lr.areNumbersEqual(n.x,0)?0:n.x,a=lr.areNumbersEqual(n.y,0)?0:n.y,o=lr.areNumbersEqual(n.z,0)?0:n.z;this.label=`${Wu(s,2)}, ${Wu(a,2)}, ${Wu(o,2)}`,e.font=`${Oi.LABEL_FONT_SIZE}px Arial`;let l=e.measureText(this.label).width*1.2,c=Oi.LABEL_FONT_SIZE*1.5;this.labelPositon=this.transToScreenCoord(n,i),this.labelPositon.y-=c/2,this.labelBounds.setFromCenterAndSize(this.labelPositon,new le(l,c)),this.drawRoundRect(e,this.labelPositon.x-l/2,this.labelPositon.y-c/2,l,c,4),e.save(),e.fillStyle=Oi.MINOR_COLOR,e.textBaseline="middle",e.textAlign="center",e.fillText(this.label,this.labelPositon.x,this.labelPositon.y),e.restore()}getClassType(){return"Coordinate"}};Dr._registerDrawableClass(MS);var NO=class extends ru{constructor(r,e,i){super("Coordinate",r,e,i)}onMouseMove(r){this.createOrUpdatePointMarker(r)}onMouseClick(r){var s;if(super.onMouseClick(r),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),r.button===bi.RIGHT){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0;return}let e=this.getIntersections(r)[0];if(!e)return;let i=(s=this.snapPoint)!=null?s:e==null?void 0:e.point,n=this.drawingPoints;n.push(i),this.lastMouseDownPosition=i,n.length===1&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdatePointMarker(i),n.length>=1&&this.complete()}complete(){this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let r=this.drawingPoints;if(r&&r.length>0){if(r.pop(),r.length===0&&(this.completed=!0),this.lastMoveEvent){let e=this.getIntersections(this.lastMoveEvent)[0];e&&this.onMouseMove(e.point)}}else this.deactivate(),this.dispatchEvent("deactivate",this.type);this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}setTooltipContent(){var e;let r=this.viewer.translate;if(r){let i=r("Tooltip.measure");i&&this.tooltip&&((e=this.tooltip)==null||e.setContent(i))}}createOrUpdatePointMarker(r){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let e=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new MS(St.guid(),this.drawingPoints),this.currentMeasureDrawable.selected=!0,this.drawList.addDrawable(this.currentMeasureDrawable)),r&&e.push(r),this.currentMeasureDrawable.update(e)}};var rG=class extends Oi{constructor(e,i){super(e,i);this.type="Distance";this.update(i)}draw(e,i){let n=this.points;e.save(),e.lineWidth=Oi.LINE_WIDTH,e.strokeStyle=Oi.MAJOR_COLOR,e.beginPath(),n.forEach((s,a)=>{let o=this.transToScreenCoord(s,i);a===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.closePath(),e.stroke(),e.restore(),this.drawing?this.drawPoints(e,i,this.points.slice(0,this.points.length-1)):this.selected||this.drawVerticalLine(e,i),this.drawText(e,i)}drawText(e,i){if(this.points.length<2)return;let[n,s]=this.points,a=n.distanceTo(s);this.label=`${Wu(a,2)}`,this.labelPositon=this.transToScreenCoord(n.clone().add(s).divideScalar(2),i),super.drawText(e,i)}drawVerticalLine(e,i){if(this.points.length<2)return;let[n,s]=this.points.map(u=>this.transToScreenCoord(u,i)),[a,o]=this.getShortLineBySegments(n,s),[l,c]=this.getShortLineBySegments(s,n);e.save(),e.lineWidth=Oi.LINE_WIDTH,e.strokeStyle=Oi.MAJOR_COLOR,e.beginPath(),e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.moveTo(l.x,l.y),e.lineTo(c.x,c.y),e.stroke(),e.restore()}getShortLineBySegments(e,i){let n=new le().subVectors(i,e).normalize(),s=rG.SHORT_LINE_LENGTH/2,a=Math.PI/2,o=n.clone().rotateAround(new le,a).normalize().multiplyScalar(s).add(e),l=n.clone().rotateAround(new le,-a).normalize().multiplyScalar(s).add(e);return[o,l]}getClassType(){return"Distance"}},hE=rG;hE.SHORT_LINE_LENGTH=12;Dr._registerDrawableClass(hE);var LO=class extends ru{constructor(r,e,i){super("Distance",r,e,i)}onMouseMove(r){this.createOrUpdateDistanceMeasureDrawable(r)}onMouseClick(r){var s;if(super.onMouseClick(r),this.clickedOnMeasurementDrawable)return;if(this.drawingPoints||(this.drawingPoints=[]),r.button===bi.RIGHT){this.drawingPoints=void 0,this.currentMeasureDrawable&&(this.removeDrawable(this.currentMeasureDrawable),this.currentMeasureDrawable=void 0),this.completed=void 0,this.lastMouseDownPosition=void 0;return}let e=this.getIntersections(r)[0];if(!e)return;let i=(s=this.snapPoint)!=null?s:e==null?void 0:e.point,n=this.drawingPoints;n.length<2&&n.push(i),this.lastMouseDownPosition=i,n.length===1&&(this.dispatchEvent("firstpointpicked"),this.completed=!1),this.createOrUpdateDistanceMeasureDrawable(),n.length>=2&&this.complete()}complete(){var r;(r=this.currentMeasureDrawable)==null||r.setDrawingState(!1),this.dispatchEvent("complete",this.currentMeasureDrawable),this.completed=!0,this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}cancel(){let r=this.drawingPoints;r&&r.length>0?(r.pop(),r.length===0&&(this.completed=!0),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)):(this.deactivate(),this.dispatchEvent("deactivate",this.type)),this.osnapHelper.deactivate(),this.drawingPoints=void 0,this.currentMeasureDrawable=void 0,this.lastMouseDownPosition=void 0}deactivate(){super.deactivate(),this.currentMeasureDrawable&&this.removeDrawable(this.currentMeasureDrawable)}setTooltipContent(){var e;let r=this.viewer.translate;if(r){let i=r("Tooltip.measure");i&&this.tooltip&&((e=this.tooltip)==null||e.setContent(i))}}createOrUpdateDistanceMeasureDrawable(r){if(!this.drawingPoints||this.drawingPoints&&this.drawingPoints.length<1)return;let e=[...this.drawingPoints];this.currentMeasureDrawable||(this.currentMeasureDrawable=new hE(St.guid(),this.drawingPoints),this.drawList.addDrawable(this.currentMeasureDrawable)),r&&e.push(r),this.currentMeasureDrawable.update(e),this.currentMeasureDrawable.setDrawingState(!0)}};var FO=class extends nE{constructor(e,i=30){super(i);this.manager=e}undo(){let e=super.undo();switch(e==null?void 0:e.type){case"ADD":{let i=e.payload.id;i&&this.manager.removeMeasurementById(i,!1)}break;case"REMOVE":{let i=e.payload,n=this.manager.createMeasurement(i);this.manager.addMeasurement(n,!1)}break;default:break}return e}redo(){let e=super.redo();switch(e==null?void 0:e.type){case"ADD":{let i=e.payload,n=this.manager.createMeasurement(i);this.manager.addMeasurement(n,!1)}break;case"REMOVE":{let i=e.payload.id;i&&this.manager.removeMeasurementById(i,!1)}break;default:break}return e}};var Ql=class{constructor(r){this.selectedMeasurementDrawable=void 0;this.drawableList=new Hp("measure");this.measurements={};this.activeMeasurementType=void 0;this.undoRedoHelper=new FO(this);this.keydown=r=>{let e=this.getActiveMeasurementType(),i;e&&(i=this.measurements[e]);let n=this.selectedMeasurementDrawable;n&&r.code==="Delete"&&(this.removeMeasurement(n),this.activeMeasurementType&&this.measurements[this.activeMeasurementType].clearClickedDrawable()),r.ctrlKey&&r.code==="KeyZ"&&(i!=null&&i.isMeasuring?i.cancel():this.undo()),r.ctrlKey&&r.code==="KeyY"&&(i!=null&&i.isMeasuring||this.redo()),this.viewer.enableRender()};var e;this.viewer=r,this.overlayRender=this.viewer.overlayRender,(e=this.overlayRender)==null||e.addDrawableList(this.drawableList),this.scene=new On,this.osnapHelper=new gO(this.overlayRender),this.measurements["Distance"]=new LO(this.viewer,this.drawableList,this.osnapHelper),this.measurements["Area"]=new PO(this.viewer,this.drawableList,this.osnapHelper),this.measurements["Angle"]=new OO(this.viewer,this.drawableList,this.osnapHelper),this.measurements["Coordinate"]=new NO(this.viewer,this.drawableList,this.osnapHelper),this.canvas.addEventListener("wheel",()=>{this.updateSnapTolerance()}),this.initEvents()}initEvents(){Object.values(this.measurements).forEach(r=>{r.addEventListener("complete",e=>{this.undoRedoHelper.addRecord("ADD",e.getData()),this.selectMeasurement(e)}),r.addEventListener("deactivate",()=>{this.osnapHelper.deactivate(),this.viewer.deactivateMeasurement()}),r.addEventListener("firstpointpicked",()=>{this.unselectMeasurement()}),r.addEventListener("clickedonmeasurement",e=>{this.selectMeasurement(e)})})}get canvas(){var r;return(r=this.viewer.renderer)==null?void 0:r.domElement}get raycaster(){return this.viewer.getRaycaster()}getPixelSizeInWorldCoord(){if(!this.viewer.viewerContainer)return ne.error("[BaseMeasurement] Missing viewer.container"),0;let r=this.viewer.camera,{clientWidth:e,clientHeight:i}=this.viewer.viewerContainer,n=0;if(r.type==="OrthographicCamera"){let s=r;n=Math.max(s.right-s.left,s.top-s.bottom)/s.zoom/Math.max(e,i)}else if(r.type==="PerspectiveCamera"){let s=r,a=this.viewer.cameraCfg,o=a&&St.arrayToVector3(a.eye),l=a&&St.arrayToVector3(a.look);n=2*(o.distanceTo(l)*Math.tan(s.fov/2*Math.PI/180))/i}return n}addMeasurement(r,e=!0){this.drawableList.addDrawable(r),this.selectedMeasurementDrawable=r,e&&this.undoRedoHelper.addRecord("ADD",r.getData()),this.viewer.enableRender()}createMeasurement(r){return Dr.createDrawable(r)}removeMeasurement(r,e=!0){this.drawableList.removeDrawable(r),this.selectedMeasurementDrawable=void 0,e&&this.undoRedoHelper.addRecord("REMOVE",r.getData()),this.viewer.enableRender()}updateSnapTolerance(r=3){let e=this.getPixelSizeInWorldCoord()*r;this.osnapHelper.updateSnapTolerance(e)}activateMeasurement(r){this.activeMeasurementType&&this.deactivateMeasurement(),this.measurements[r]?(this.measurements[r].activate(),this.activeMeasurementType=r,this.updateSnapTolerance()):(this.activeMeasurementType=void 0,ne.error("[Measure] Failed to activate measurement, type:",r)),window.addEventListener("keydown",this.keydown)}deactivateMeasurement(){this.unselectMeasurement();let r=this.activeMeasurementType;r&&this.measurements[r].deactivate(),this.activeMeasurementType=void 0,window.removeEventListener("keydown",this.keydown)}getActiveMeasurementType(){return this.activeMeasurementType}isMeasurementActive(){let r=this.activeMeasurementType;return r?this.measurements[r].isActive:!!this.getActiveMeasurementType()}getMeasurementsData(){return this.drawableList.getDrawableDatas()}setMeasurementsData(r){this.drawableList.clear(),r.forEach(e=>{this.measurements[e.type]?e.points.length>=2?this.addMeasurement(Dr.createDrawable(e),!1):ne.info("[Measure] Invalid points found in MeasurementData:",e):ne.warn("[Measure] Failed to add measurement data for",e)})}setMeasurementsVisibility(r){this.drawableList.getDrawables().forEach(e=>e.visible=r),this.viewer.enableRender()}clearMeasurements(){this.drawableList.clear(),this.viewer.enableRender()}removeMeasurementById(r,e=!0){let i=this.drawableList.getDrawableById(r);i&&(this.removeMeasurement(i,e),ne.warn("[Measure] Failed to find measurement by id:",r))}selectMeasurementById(r){this.unselectMeasurement();let e=this.drawableList.getDrawableById(r);e&&(e.selected=!0,this.selectedMeasurementDrawable=e),this.viewer.enableRender()}selectMeasurement(r){this.unselectMeasurement(),r.selected=!0,this.selectedMeasurementDrawable=r,this.viewer.enableRender()}unselectMeasurement(){this.selectedMeasurementDrawable&&(this.selectedMeasurementDrawable.selected=!1),this.selectedMeasurementDrawable=void 0,this.viewer.enableRender()}undo(){this.undoRedoHelper.undo()}redo(){this.undoRedoHelper.redo()}clearUndoRedo(){this.undoRedoHelper.clear()}destroy(){var r;this.deactivateMeasurement(),this.clearMeasurements(),this.measurements={},(r=this.osnapHelper)==null||r.destroy(),this.scene.clear(),this.undoRedoHelper.destroy()}};var ia,fDe={["HomeView"]:{icon:{default:"icon-home",active:"icon-home-filled"},menuName:"Toolbar.homeView",type:1,onClick:t=>{t.goToHomeView()}},["OrthoMode"]:{icon:{default:"icon-orthomode",active:"icon-orthomode-filled"},menuName:"Toolbar.orthoView",type:4,onActive:t=>{ne.info("[Toolbar]","Enter OrthoMode"),t.setToOrthographicCamera(!0)},onDeactive:t=>{ne.info("[Toolbar]","Exit OrthoMode"),t.setToOrthographicCamera(!1)}},["Measure"]:{icon:{default:"icon-measure",active:"icon-measure-filled"},menuName:"Toolbar.measurement",type:3,children:{["MeasureDistance"]:{icon:{default:"icon-distancemeasure",active:"icon-distancemeasure-filled"},menuName:"Toolbar.distanceMeasurement",onActive:t=>{t.deactivateSection(),t.activateMeasurement("Distance")},onDeactive:t=>{t.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},["MeasureArea"]:{icon:{default:"icon-areameasure",active:"icon-areameasure-filled"},onActive:t=>{t.deactivateSection(),t.activateMeasurement("Area")},onDeactive:t=>{t.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},["MeasureAngle"]:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-anglemeasure"},type:4,onActive:t=>{t.deactivateSection(),t.activateMeasurement("Angle")},onDeactive:t=>{t.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},["MeasureCoordinate"]:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure"},type:4,onActive:t=>{t.deactivateSection(),t.activateMeasurement("Coordinate")},onDeactive:t=>{t.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},["MeasureClear"]:{icon:{default:"icon-clear",active:"icon-clear-filled"},onClick:t=>{ne.debug("[Toolbar]","Clearing Measure",t),t.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}},mutexIds:["Section","SectionAxis","SectionBox","SectionPlane"]},["Section"]:{icon:{default:"icon-section",active:"icon-section-filled"},menuName:"Toolbar.section",type:3,children:{["SectionAxis"]:{icon:{default:"icon-sectionplane",active:"icon-sectionplane-filled"},menuName:"Toolbar.axisSection",type:4,onActive:t=>{t.deactivateMeasurement(),t.setMeasurementsVisibility(!1),ia==null||ia.destroy(),t.activateSection("AxisPlaneSection"),ia=new CO(t)},onDeactive:t=>{t.setMeasurementsVisibility(!0),t.deactivateSection(),ia==null||ia.destroy(),ia=void 0},mutexIds:["SectionBox","SectionPlane"]},["SectionPlane"]:{icon:{default:"icon-choosesectionplane",active:"icon-choosesectionplane-filled"},menuName:"Toolbar.pickSectionPlane",type:4,onActive:t=>{t.deactivateMeasurement(),t.setMeasurementsVisibility(!1),ia==null||ia.destroy(),t.activateSection("PickPlaneSection"),ia=new AO(t)},onDeactive:t=>{t.setMeasurementsVisibility(!0),t.deactivateSection(),ia==null||ia.destroy(),ia=void 0},mutexIds:["SectionAxis","SectionBox"]},["SectionBox"]:{icon:{default:"icon-sectionbox",active:"icon-sectionbox-filled"},menuName:"Toolbar.sectionBox",type:4,onActive:t=>{t.deactivateMeasurement(),t.setMeasurementsVisibility(!1),t.activateSection()},onDeactive:t=>{t.setMeasurementsVisibility(!0),t.deactivateSection()},mutexIds:["SectionAxis","SectionPlane"]}},mutexIds:["Measure","MeasureDistance","MeasureArea","MeasureAngle","MeasureCoordinate"]},["BimTree"]:{icon:{default:"icon-bimtree",active:"icon-bimtree-filled"},menuName:"Toolbar.bimTree",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Bim Tree")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Bim Tree")}},["Viewpoint"]:{icon:{default:"icon-viewpoint",active:"icon-viewpoint-filled"},menuName:"Toolbar.viewpoint",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Viewpoint")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Viewpoint")},visible:!1},["Annotation"]:{icon:{default:"icon-annotation",active:"icon-annotation-filled"},menuName:"Toolbar.annotation",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Annotation")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Annotation")},visible:!1},["Property"]:{icon:{default:"icon-property",active:"icon-property-filled"},menuName:"Toolbar.property",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Property")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Property")},visible:!1},["Settings"]:{icon:{default:"icon-settings",active:"icon-settings-filled"},menuName:"Toolbar.settings",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Settings")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Settings")},visible:!1},["FullScreen"]:{icon:{default:"icon-fullscreen",active:"icon-fullscreen-filled"},menuName:"Toolbar.fullscreen",type:4,onClick:(t,r)=>{let e=()=>{let i=r==null?void 0:r.menuList.get("FullScreen");i&&i.setActive(St.isFullScreen())};St.isFullScreen()?(St.exitFullscreen(),window.removeEventListener("resize",e)):St.fullScreen(t.viewerContainer),window.addEventListener("resize",e)}}},mDe={["SceneClear"]:{icon:{default:"icon-clear",active:"icon-clear-filled"},menuName:"clear",type:1,onClick:()=>{}}},gDe={["HomeView"]:{icon:{default:"icon-zhushitu",active:"icon-zhushitu",iconFont:"iconfont"},menuName:"Toolbar.homeView",type:1,onClick:t=>{t.goToHomeView()}},["ZoomToRectangle"]:{icon:{default:"icon-kuangxuanfangda",active:"icon-kuangxuanfangda",iconFont:"iconfont"},menuName:"Toolbar.zoomToRectangle",type:1,onClick:t=>{t.zoomToRect()}},["GetScreenshot"]:{icon:{default:"icon-frame-clipping",active:"icon-frame-clipping",iconFont:"iconfont"},menuName:"Toolbar.screenshot",type:1,onClick:t=>{t.getScreenshot().then(r=>{ne.info("[Toolbar] getScreenshot() returns:",r),r||ne.error("[Toolbar] Failed to get screenshot!");let e=document.createElement("a");e.href=r,e.download="",e.click()}).catch(r=>{ne.error("[Toolbar] Failed to get screenshot, reason:",r)})}},["Measure"]:{icon:{default:"icon-celiang1",active:"icon-celiang1",iconFont:"iconfont"},menuName:"Toolbar.measurement",type:3,children:{["MeasureDistance"]:{icon:{default:"icon-distancemeasure",active:"icon-distancemeasure-filled"},menuName:"Toolbar.distanceMeasurement",onActive:t=>{t.activateMeasurement("Distance")},onDeactive:t=>{t.deactivateMeasurement()},type:4,mutexIds:["MeasureArea","MeasureAngle","MeasureCoordinate"]},["MeasureArea"]:{icon:{default:"icon-areameasure",active:"icon-areameasure-filled"},onActive:t=>{t.activateMeasurement("Area")},onDeactive:t=>{t.deactivateMeasurement()},type:4,menuName:"Toolbar.areaMeasurement",mutexIds:["MeasureDistance","MeasureAngle","MeasureCoordinate"]},["MeasureAngle"]:{menuName:"Toolbar.angleMeasurement",icon:{default:"icon-anglemeasure"},type:4,onActive:t=>{t.activateMeasurement("Angle")},onDeactive:t=>{t.deactivateMeasurement()},mutexIds:["MeasureDistance","MeasureArea","MeasureCoordinate"]},["MeasureCoordinate"]:{menuName:"Toolbar.coordinateMeasurement",icon:{default:"icon-distancemeasure"},type:4,onActive:t=>{t.activateMeasurement("Coordinate")},onDeactive:t=>{t.deactivateMeasurement()},visible:!1,mutexIds:["MeasureDistance","MeasureArea","MeasureAngle"]},["MeasureClear"]:{icon:{default:"icon-clear",active:"icon-clear-filled"},onClick:t=>{ne.debug("[Toolbar]","Clearing Measure",t),t.clearMeasurements()},type:1,menuName:"Toolbar.clearMeasurement"}}},["Markup"]:{icon:{default:"icon-tianjiapizhu",iconFont:"iconfont"},menuName:"Toolbar.markup",type:1,onClick:(t,r)=>{t.activateMarkup("RectMarkup"),r.hide(),t.deactivateMeasurement(),new RO(t,Ur({},cDe))}},["Settings"]:{icon:{default:"icon-settings",active:"icon-settings-filled"},menuName:"Toolbar.settings",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Settings")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Settings")},visible:!0},["Compared"]:{icon:{default:"icon-compared",iconFont:"iconfont"},menuName:"Toolbar.compared",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Compare")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Compare")},visible:!1},["QuitCompare"]:{icon:{default:"icon-compared",iconFont:"iconfont"},menuName:"Toolbar.quitCompare",type:4,onActive:()=>{ne.info("[Toolbar]","Activate Compare")},onDeactive:()=>{ne.info("[Toolbar]","Deactivate Compare")},visible:!1},["Layers"]:{icon:{default:"icon-tucengkongzhi",active:"icon-tucengkongzhi",iconFont:"iconfont"},menuName:"Toolbar.layers",type:4,onClick:()=>{}},["FullScreen"]:{icon:{default:"icon-quanping",active:"icon-quanping",iconFont:"iconfont"},menuName:"Toolbar.fullscreen",type:4,onClick:(t,r)=>{let e=()=>{let i=r==null?void 0:r.menuList.get("FullScreen");i&&i.setActive(St.isFullScreen())};St.isFullScreen()?(St.exitFullscreen(),window.removeEventListener("resize",e)):St.fullScreen(t.viewerContainer),window.addEventListener("resize",e)}}};var vDe={enableNavCube:!0,enableAxisGizmo:!0,enableToolbar:!0,enableBottomBar:!0,enableContextMenu:!0,enableSpinner:!0,containerId:"myCanvas",units:"meters"};var DS=class{constructor(r="uploadModelFile"){this.input=document.createElement("input"),this.input.id=r,this.input.type="file",this.input.multiple=!0,this.input.accept=this.formats().map(e=>"."+e).join(","),this.input.style.display="none",this.input.onchange=e=>{let i=e.target.files;if(!i||i.length<=0){ne.error("[Uploader] No files to be uploaded!");return}this.uploadFiles(i)}}formats(){return ne.warn("[Uploader]: Should call derived class instead!"),[]}uploadFiles(r){ne.warn(`[Uploader]: Should call derived class instead! files: ${r}`)}openFileBrowserToUpload(){this.input.click()}},CS=class extends DS{constructor(e,i){super(i);this.defaultModelConfig={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!1};this.viewer=e}formats(){return["gltf","glb","dxf","obj","stl","fbx","ifc","dae","*"]}uploadFiles(e){let i=e.length;if(i===0)return;let n=Ur({},this.defaultModelConfig),s,a,o,l=new Map;for(let h=0;h{o&&(s=URL.createObjectURL(o),c.push(s),n.src=o.name)};if(!o)o=e[0],u();else{u();let h=ks.extractUrlBase(s);a=new Ap,a.setURLModifier(p=>{let d=decodeURI(p).replace(h,"").replace(/^(\.?\/)/,"");if(l.has(d)){let f=l.get(d),m=URL.createObjectURL(f);return c.push(m),m}return p})}this.viewer.loadLocalModel(s,n,a,h=>{let p=Math.floor(h.loaded*100/h.total);ne.info(`[Uploader] Loading ${o==null?void 0:o.name}, ${p}%`)}).then(()=>{ne.info(`[Uploader] Loaded ${o==null?void 0:o.name}`),c.forEach(URL.revokeObjectURL)})}},iG=class extends DS{constructor(e,i){super(i);this.defaultModelConfig={src:"",position:[0,0,0],rotation:[0,0,0],scale:[1,1,1],instantiate:!1,merge:!0};this.viewer=e}formats(){return["dxf"]}uploadFiles(e){let i=n=>{let s=(n.loaded*100/n.total).toFixed(1);ne.info(`[Uploader] Progress: ${s}%`)};if(e.length===2){let n=e[0],s=e[1],a=URL.createObjectURL(n),o=URL.createObjectURL(s);this.viewer.compare({src:a,modelId:n.name},{src:o,modelId:s.name},i).then(()=>{this.onSuccess&&this.onSuccess({compare:!0}),ne.debug(`[Uploader] Compared models: ${a}, ${o}`)}).catch(l=>{ne.error(`[Uploader] Failed to compare models: ${a}, ${o}. reason: ${l}`)})}else{let n=e[0],s=URL.createObjectURL(n),a=Ur({},this.defaultModelConfig);a.src=s,a.modelId=n.name;try{this.viewer.loadModelAsync(a,i).then(()=>{this.onSuccess&&this.onSuccess({}),ne.info(`[Uploader] Loaded model '${a.src}'`)})}catch(o){ne.info(o)}}}},nG=class extends DS{constructor(e,i){super(i);this.viewer=e}formats(){return["png","jpg","jpeg"]}uploadFiles(e){let i={panoramas:[],id:"viewpoint_1",name:"",position:[0,1,0],initialDirection:[0,0,1]};if(e.length===1){let n=[];n.push(URL.createObjectURL(e[0])),i.panoramas.push({id:"panorama_1",images:n}),this.viewer.setViewpoints([i]),this.viewer.activatePanoramaById(i.id,i.panoramas[0].id)}else if(e.length===6){let n=p=>{let d="";for(let f=0;f({position:new A(t,r,e),rotation:new Sr(i,n,s)}),Z2t={["Front"]:Mn(Ur({},Ns([0,0,1],[0,0,0])),{label:"NavCube.front"}),["Right"]:Mn(Ur({},Ns([1,0,0],[0,Yi,0])),{label:"NavCube.right"}),["Back"]:Mn(Ur({},Ns([0,0,-1],[0,Math.PI,0])),{label:"NavCube.back"}),["Left"]:Mn(Ur({},Ns([-1,0,0],[0,-Yi,0])),{label:"NavCube.left"}),["Top"]:Mn(Ur({},Ns([0,1,0],[-Yi,0,0])),{label:"NavCube.top"}),["Bottom"]:Mn(Ur({},Ns([0,-1,0],[Yi,0,0])),{label:"NavCube.bottom"})},K2t=[Ns([0,1,1],[-gi,0,-Yi]),Ns([0,1,-1],[-3*gi,0,-Yi]),Ns([0,-1,1],[gi,0,-Yi]),Ns([0,-1,-1],[3*gi,0,-Yi]),Ns([1,1,0],[-Yi,gi,0]),Ns([1,-1,0],[-Yi,3*gi,0]),Ns([-1,1,0],[-Yi,-gi,0]),Ns([-1,-1,0],[-Yi,-3*gi,0]),Ns([1,0,1],[0,gi,0]),Ns([1,0,-1],[0,3*gi,0]),Ns([-1,0,1],[0,-gi,0]),Ns([-1,0,-1],[0,-3*gi,0])],J2t=[{position:new A(1,1,1),rotation:[new Sr(-Yi,Yi,-gi),new Sr(-Yi,0,gi),new Sr(0,0,3*gi)]},{position:new A(1,1,-1),rotation:[new Sr(0,Yi,3*gi),new Sr(-Yi,0,3*gi),new Sr(0,Math.PI,-3*gi)]},{position:new A(-1,1,-1),rotation:[new Sr(Math.PI,-Yi,gi),new Sr(-Yi,0,-3*gi),new Sr(0,Math.PI,3*gi)]},{position:new A(-1,1,1),rotation:[new Sr(0,-Yi,3*gi),new Sr(-Yi,0,-gi),new Sr(0,0,-3*gi)]},{position:new A(1,-1,1),rotation:[new Sr(0,Yi,-gi),new Sr(-Yi,Math.PI,-gi),new Sr(0,0,gi)]},{position:new A(1,-1,-1),rotation:[new Sr(-Yi,Yi,3*gi),new Sr(Yi,0,gi),new Sr(0,Math.PI,-gi)]},{position:new A(-1,-1,1),rotation:[new Sr(0,-Yi,gi),new Sr(Yi,0,-3*gi),new Sr(0,0,-gi)]},{position:new A(-1,-1,-1),rotation:[new Sr(0,-Yi,-gi),new Sr(Yi,0,-gi),new Sr(0,Math.PI,gi)]}],UO=class extends pr{constructor(e={}){super();this.NAVCUBE_SIZE=100;this.clickHandler=e.onClick,(0,A0.forEach)(Z2t,i=>{this.createPlane(i)}),(0,A0.forEach)(K2t,i=>{this.createEdge(i)}),(0,A0.forEach)(J2t,(i,n)=>{this.createCorner(i,n)})}createPlane(e){let i=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),{rotation:n,label:s}=e,a=document.createElement("div");a.style.width=this.NAVCUBE_SIZE+"px",a.style.height=this.NAVCUBE_SIZE+"px",a.classList.add("navcube-plane"),a.classList.add("outer");let o=document.createElement("div");o.style.width=this.NAVCUBE_SIZE-4+"px",o.style.height=this.NAVCUBE_SIZE-4+"px",o.innerHTML=gh(s),o.classList.add("navcube-plane"),o.classList.add("inner"),a.appendChild(o);let l=new C0(a);l.position.copy(i),l.rotation.copy(n),this.add(l),a.addEventListener("click",()=>{this.clickHandler&&this.clickHandler(i.clone().normalize(),n)})}createEdge(e){let i=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2),n=document.createElement("div");n.style.width=4+"px",n.style.height=this.NAVCUBE_SIZE-40+"px",n.style.background=EDe,n.classList.add("navcube-edge");let s=new C0(n);s.position.copy(i),s.rotation.copy(e.rotation),this.add(s),n.addEventListener("click",()=>{this.clickHandler&&this.clickHandler(i.clone().normalize(),e.rotation)})}createCorner(e,i){let n=h=>{h.addEventListener("click",()=>{this.clickHandler&&this.clickHandler(e.position.clone().normalize(),new Sr)}),h.addEventListener("mouseenter",()=>{let p=document.getElementsByClassName("group-"+i);(0,A0.forEach)(p,d=>{d instanceof HTMLElement&&d.classList.add("highlight")})}),h.addEventListener("mouseleave",()=>{let p=document.getElementsByClassName("group-"+i);(0,A0.forEach)(p,d=>{d instanceof HTMLElement&&d.classList.remove("highlight")})})},s=e.position.clone().multiplyScalar(this.NAVCUBE_SIZE/2+.5),a=document.createElement("div");a.style.borderTop=`${14*Math.sqrt(3)}px solid #efefef`,a.style.borderLeft=`${14}px solid transparent`,a.style.borderRight=`${14}px solid transparent`,a.classList.add("navcube-corner"),a.classList.add("group-"+i);let o=new C0(a);o.position.copy(s).lerp(e.position,.14);let l=Math.atan2(s.z,s.x);o.rotateY(s.z*s.x<0?Math.PI+l:l);let c=new Sr().setFromVector3(s.clone().normalize());o.rotateX(-c.y),s.y<0&&o.rotateZ(Math.PI),this.add(o);let u=(h,p,d)=>{let f=document.createElement("div");f.style.borderTop=`${13}px solid ${EDe}`,f.style.borderLeft=`${13}px solid transparent`,f.style.borderRight=`${13}px solid transparent`,f.classList.add("navcube-corner-plane"),f.classList.add("group-"+p);let m=new C0(f),g=e.position.clone();g.setComponent(d,0),m.position.copy(s).sub(g),m.rotateX(h.x),m.rotateY(h.y),m.rotateZ(h.z),this.add(m),n(f)};(0,A0.forEach)(e.rotation,(h,p)=>{u(h,i,p)}),n(a)}};var BO=class{constructor(r,e){this.height=150;this.width=150;this.width=r||this.width,this.height=e||this.height,this.init()}init(){this.initRenderer(),this.initScene(),this.animate()}initRenderer(){this.renderer=new HO,this.renderer.setSize(this.width,this.height),this.renderer.domElement.classList.add("css3d-navcube"),document.body.appendChild(this.renderer.domElement)}initScene(){this.scene=new On;let r=window.innerWidth/window.innerHeight,e=200;this.camera=new Zi(e*r/-2,e*r/2,e/2,e/-2,1,1e3),this.camera.position.set(-200,200,200),this.scene.add(this.camera);let i=n=>{if(!this.camera||!n||!this.hostViewer||!this.hostViewer.camera||!this.hostViewer.controls)return;let s=this.hostViewer.controls.target,o=this.hostViewer.camera.position.distanceTo(s);this.hostViewer.flyTo(s.clone().add(n.clone().multiplyScalar(o)),s)};this.navCube=new UO({onClick:i}),this.scene.add(this.navCube)}render(){this.renderer&&this.scene&&this.camera&&(this.update(),this.renderer.render(this.scene,this.camera))}animate(){requestAnimationFrame(this.animate.bind(this)),this.render()}setHostViewer(r){this.hostViewer=r,this.update()}update(){if(!this.hostViewer||!this.hostViewer.camera)return;let r=this.hostViewer.camera;if(r){let e=new A;r.getWorldDirection(e);let i=r.up;this.updateCameraDirection(e,i)}}updateCameraDirection(r,e){if(!this.camera||!r)return;r.normalize();let i=20,n=0;this.camera.position.set(-r.x*i+n,-r.y*i+n,-r.z*i+n),this.camera.lookAt(n,n,n),this.camera.up=e}dispose(){!this.scene||!this.camera||!this.navCube||(this.scene.clear(),this.hostViewer=void 0,this.camera=void 0,this.navCube=void 0,this.scene=void 0)}};var Q2t=new A(1,0,0),eNt=new A(0,1,0),tNt=new A(0,0,1),kO=class extends tm{constructor(e){super(e);let{min:i,max:n}=this.sectionBox;this.sectionRange={x:[i.x,n.x],y:[i.y,n.y],z:[i.z,n.z]}}activate(){super.activate(),this.initOrUpdateClipPlane(),this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.setGlobalClippingEnable(!0)}deactivate(){super.deactivate(),this.planesMesh&&this.scene.remove(...this.planesMesh),this.planesMesh=void 0}initOrUpdateVertices(){if(!this.sectionBox)return;let{min:e,max:i}=this.sectionBox;this.vertices=[new A(i.x,i.y,i.z),new A(e.x,i.y,i.z),new A(e.x,e.y,i.z),new A(i.x,e.y,i.z),new A(i.x,i.y,e.z),new A(e.x,i.y,e.z),new A(e.x,e.y,e.z),new A(i.x,e.y,e.z)]}initOrUpdateClipPlane(){let{min:e,max:i}=this.sectionBox;this.clipPlanes?(this.clipPlanes[0].constant=i.x,this.clipPlanes[1].constant=-e.x,this.clipPlanes[2].constant=i.y,this.clipPlanes[3].constant=-e.y,this.clipPlanes[4].constant=i.z,this.clipPlanes[5].constant=-e.z):this.clipPlanes=[new Ei(new A(-1,0,0),i.x),new Ei(new A(1,0,0),-e.x),new Ei(new A(0,-1,0),i.y),new Ei(new A(0,1,0),-e.y),new Ei(new A(0,0,-1),i.z),new Ei(new A(0,0,1),-e.z)],this.renderer.clippingPlanes=this.clipPlanes}initOrUpdateSectionPlane(){let e=this.vertices;if(e){if(this.planesMesh)this.planesMesh[0].update([e[4],e[0],e[3],e[7]]),this.planesMesh[1].update([e[1],e[5],e[6],e[2]]),this.planesMesh[2].update([e[4],e[5],e[1],e[0]]),this.planesMesh[3].update([e[6],e[7],e[3],e[2]]),this.planesMesh[4].update([e[0],e[1],e[2],e[3]]),this.planesMesh[5].update([e[5],e[4],e[7],e[6]]);else{let i=[new an("Right",[e[4],e[0],e[3],e[7]]),new an("Left",[e[1],e[5],e[6],e[2]]),new an("Top",[e[4],e[5],e[1],e[0]]),new an("Bottom",[e[6],e[7],e[3],e[2]]),new an("Front",[e[0],e[1],e[2],e[3]]),new an("Back",[e[5],e[4],e[7],e[6]])];this.planesMesh=i,this.scene.add(...i)}this.viewer.enableRender()}}activateSelectedObject(e){var i;(i=this.selectedObject)==null||i.setActive(e)}onDragStart(e){var i;this.selectedObject&&(this.controls&&this.dragStarted&&(this.controls.enableRotate=!1),ne.info("[ObjectsBoxSection] onDragStart:",e),this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),this.selectedObject.getPlaneCenter()),(i=this.raycaster)==null||i.ray.intersectPlane(this.refrencePlane,this.lastWorldPos))}onDragMove(e){var s;if(!this.lastWorldPos||!this.selectedObject)return;let i=new A;(s=this.raycaster)==null||s.ray.intersectPlane(this.refrencePlane,i);let n=this.selectedObject.actionType;switch(n){case"Top":case"Bottom":this.dragTranslateSectionPlane(eNt,this.lastWorldPos,i,n);break;case"Left":case"Right":this.dragTranslateSectionPlane(Q2t,this.lastWorldPos,i,n);break;case"Front":case"Back":this.dragTranslateSectionPlane(tNt,this.lastWorldPos,i,n);break;default:break}this.lastWorldPos=i}onDragEnd(e){this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[ObjectsBoxSection] onDragEnd:",e)}dragTranslateSectionPlane(e,i,n,s){let{min:a,max:o}=this.sectionBox,l=n.clone().sub(i).projectOnVector(e),c;switch(s){case"Top":c=o.y+l.y,this.isInRange(c,this.sectionRange.y)&&(o.y=c);break;case"Bottom":c=a.y+l.y,this.isInRange(c,this.sectionRange.y)&&(a.y=c);break;case"Left":c=a.x+l.x,this.isInRange(c,this.sectionRange.x)&&(a.x=c);break;case"Right":c=o.x+l.x,this.isInRange(c,this.sectionRange.x)&&(o.x=c);break;case"Front":c=o.z+l.z,this.isInRange(c,this.sectionRange.z)&&(o.z=c);break;case"Back":c=a.z+l.z,this.isInRange(c,this.sectionRange.z)&&(a.z=c);break;default:break}this.initOrUpdateVertices(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.viewer.enableRender()}isInRange(e,i){return e>i[0]&&en.visible=e),this.isShowSectionPlane=e,this.viewer.enableRender()}};var GO=class extends tm{constructor(e){super(e);this.mousedown=e=>{var n;if(e.button===0){if(!this.faceInfo){let s=this.pickFace(e);if(s&&s.face){let a=s.face.normal,o=new Qi;a.applyNormalMatrix(o.getNormalMatrix(s.object.matrixWorld)),this.faceInfo={position:s.point,normal:a.normalize()},this.setSection(),(n=this.tooltip)==null||n.hide()}return}this.camera&&this.selectedObject&&(this.mouseDown=!0)}};this.mousemove=e=>{var i,n,s;if(!this.faceInfo)this.pickFace(e)?(i=this.tooltip)==null||i.show():(n=this.tooltip)==null||n.hide();else{if(this.dragStarted)this.updateRaycasterByMouse(e),this.onDragMove(e);else{this.activateSelectedObject(!1);let a=this.getIntersections(e);a?(this.selectedObject=a.object,this.activateSelectedObject(!0),this.mouseDown&&((s=this.selectedObject)==null?void 0:s.parent)instanceof tu&&(this.dragStarted||(this.dragStarted=!0,this.onDragStart(e)))):this.selectedObject=void 0}this.viewer.enableRender()}};this.center=new A,this.sectionBox.getCenter(this.center),this.viewer.addEventListener("RenderAfter",()=>{var i;this.isActive&&((i=this.gizmo)==null||i.adjustSize(this.camera))})}activate(){super.activate(),this.tooltip=new ph("pick-section-plane",gh("Tooltip.section"),{parentNode:this.viewer.widgetContainer,followPointer:!0})}deactivate(){var e,i,n;super.deactivate(),(e=this.planeMesh)==null||e.removeFromParent(),(i=this.gizmo)==null||i.removeFromParent(),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,(n=this.tooltip)==null||n.destroy(),this.tooltip=void 0}setSection(){this.initOrUpdateGizmo(),this.initOrUpdateSectionPlane(),this.initOrUpdateClipPlane(),this.setGlobalClippingEnable(!0),this.viewer.enableRender()}resetSection(){var e,i,n;(e=this.planeMesh)==null||e.removeFromParent(),(i=this.gizmo)==null||i.removeFromParent(),this.setGlobalClippingEnable(!1),this.planeMesh=void 0,this.gizmo=void 0,this.faceInfo=void 0,(n=this.tooltip)==null||n.show(),this.viewer.enableRender()}setSectionVisible(e){this.gizmo&&this.planeMesh&&(this.gizmo.visible=e,this.planeMesh.visible=e),this.isShowSectionPlane=e,this.viewer.enableRender()}initOrUpdateClipPlane(){if(!this.faceInfo)return;let{normal:e,position:i}=this.faceInfo;this.clipPlane=new Ei().setFromNormalAndCoplanarPoint(e.clone().negate(),i),this.clipPlane&&(this.clipPlanes=[this.clipPlane])}initOrUpdateSectionPlane(){var u;if(!this.faceInfo)return;let{normal:e,position:i}=this.faceInfo,n=new A;this.sectionBox.getSize(n);let s=n.length(),a=i,o=new Ot().setFromCenterAndSize(a,new A(s,s,s)),{min:l,max:c}=o;(u=this.planeMesh)==null||u.removeFromParent(),this.planeMesh=new an("Plane",[new A(a.x,c.y,l.z),new A(a.x,c.y,c.z),new A(a.x,l.y,c.z),new A(a.x,l.y,l.z)]),this.planeMesh.setDirection(e),this.planeMesh&&this.scene.add(this.planeMesh),this.viewer.enableRender()}initOrUpdateGizmo(){var n,s;if(!this.faceInfo)return;(n=this.gizmo)==null||n.removeFromParent();let{normal:e,position:i}=this.faceInfo;this.gizmo=new tu,this.gizmo.setDirection(e),this.gizmo.position.copy(i),(s=this.scene)==null||s.add(this.gizmo)}onDragStart(e){var n;if(!this.faceInfo||this.selectedObject instanceof an)return;this.controls&&this.dragStarted&&this.selectedObject&&!(this.selectedObject instanceof an)&&(this.controls.enableRotate=!1),ne.info("[PickPlaneSection] onDragStart:",e);let{position:i}=this.faceInfo;this.refrencePlane.setFromNormalAndCoplanarPoint(this.camera.getWorldDirection(this.refrencePlane.normal),i),(n=this.raycaster)==null||n.ray.intersectPlane(this.refrencePlane,this.lastWorldPos)}onDragMove(e){var f,m,g;if(!this.lastWorldPos||!this.selectedObject||!this.clipPlane||!this.planeMesh||!this.gizmo||!this.faceInfo||this.selectedObject&&this.selectedObject instanceof an)return;let i=new A;(f=this.raycaster)==null||f.ray.intersectPlane(this.refrencePlane,i);let n=this.selectedObject.userData.actionType,{position:s}=this.faceInfo,a=new A().subVectors(this.lastWorldPos,s).normalize(),o=new A().subVectors(i,s).normalize(),l=new A().subVectors(i,this.lastWorldPos).projectOnVector(Fa.clone().applyQuaternion(this.gizmo.quaternion)),c=a.angleTo(o),u=new A().crossVectors(a,o),h=new A;this.sectionBox.getSize(h);let p=Math.max(h.x,h.y,h.z),d;switch(n){case"TranslateX":case"TranslateY":case"TranslateZ":d=new A().addVectors(this.gizmo.position,l),this.sectionBox.clone().setFromCenterAndSize(this.center,new A(p,p,p)).containsPoint(d)&&((m=this.gizmo)==null||m.position.add(l),(g=this.planeMesh)==null||g.position.add(l));break;case"RotateX":{let y=Fa.clone().applyQuaternion(this.gizmo.quaternion);u.dot(y)<0&&(c=-c),this.gizmo.rotateX(c),this.planeMesh.rotatePlane(y,c)}break;case"RotateY":{let y=Qf.clone().applyQuaternion(this.gizmo.quaternion);u.dot(y)<0&&(c=-c),this.gizmo.rotateY(c),this.planeMesh.rotatePlane(y,c)}break;case"RotateZ":{let y=em.clone().applyQuaternion(this.gizmo.quaternion);u.dot(y)<0&&(c=-c),this.gizmo.rotateZ(c),this.planeMesh.rotatePlane(y,c)}break;default:break}this.clipPlane.setFromNormalAndCoplanarPoint(this.planeMesh.getPlaneNormal().negate(),this.gizmo.position),this.lastWorldPos=i}onDragEnd(e){this.selectedObject instanceof an||(this.controls&&!this.controls.enableRotate&&(this.controls.enableRotate=!0),this.activateSelectedObject(!1),this.dragStarted=!1,this.selectedObject=void 0,ne.info("[PickPlaneSection] onDragEnd:",e))}getIntersectObjects(){return!this.planeMesh||!this.gizmo?[]:[this.planeMesh,this.gizmo]}activateSelectedObject(e){this.selectedObject&&(this.selectedObject instanceof an?this.selectedObject.setActive(e):this.selectedObject.parent instanceof tu&&this.selectedObject.parent.setActive(e,this.selectedObject))}pickFace(e){if(!this.raycaster)return;let i=Mr.getScreenPointByEvent(e,this.canvas),n=Mr.screenPoint2NdcPoint(i,this.camera,this.canvas);this.raycaster.setFromCamera(n,this.camera);let s=[];return Object.values(this.viewer.loadedModels).forEach(l=>{let c=this.scene&&this.scene.getObjectById(l.id);c&&c.visible&&s.push(c)}),(this.raycaster.intersectObjects(this.viewer.getRaycastableObjectsByMouse(e))||[]).find(l=>{let c=l.object;return c.visible&&(c.userData.selectable!==!1||c instanceof Je)})}};var VO=class{constructor(r){this.sections={};this.viewer=r,this.sections["ObjectsBoxSection"]=new kO(r),this.sections["AxisPlaneSection"]=new DO(r),this.sections["PickPlaneSection"]=new GO(r)}get raycaster(){return this.viewer.getRaycaster()}activateSection(r){this.activeSectionType&&this.deactivateSection(),this.activeSectionType=r,this.sections[r].activate()}deactivateSection(){let r=this.activeSectionType;r&&this.sections[r].deactivate(),this.activeSectionType=void 0}resetSection(){}isSectionActive(){let r=this.activeSectionType;return r?this.sections[r].isActive:!!this.getActiveSectionType()}getActiveSectionType(){return this.activeSectionType}getActiveSection(){if(this.activeSectionType)return this.sections[this.activeSectionType]}destroy(){this.deactivateSection(),this.activeSectionType=void 0}};function sG(t){let r;try{r=new URL(t,"http://fakehost.com/")}catch(s){return null}let e=r.pathname.split("/").pop(),i=e.lastIndexOf(".");return i===-1||i===e.length-1?null:e.substring(i+1)}function rNt(t){Promise.resolve().then(t)}var zO=class{constructor(){this.maxSize=800,this.minSize=600,this.unloadPercent=.05,this.itemSet=new Map,this.itemList=[],this.usedSet=new Set,this.callbacks=new Map,this.unloadPriorityCallback=null;let r=this.itemSet;this.defaultPriorityCallback=e=>r.get(e)}isFull(){return this.itemSet.size>=this.maxSize}add(r,e){let i=this.itemSet;if(i.has(r)||this.isFull())return!1;let n=this.usedSet,s=this.itemList,a=this.callbacks;return s.push(r),n.add(r),i.set(r,Date.now()),a.set(r,e),!0}remove(r){let e=this.usedSet,i=this.itemSet,n=this.itemList,s=this.callbacks;if(i.has(r)){s.get(r)(r);let a=n.indexOf(r);return n.splice(a,1),e.delete(r),i.delete(r),s.delete(r),!0}return!1}markUsed(r){let e=this.itemSet,i=this.usedSet;e.has(r)&&!i.has(r)&&(e.set(r,Date.now()),i.add(r))}markAllUnused(){this.usedSet.clear()}unloadUnusedContent(){let r=this.unloadPercent,e=this.minSize,i=this.itemList,n=this.itemSet,s=this.usedSet,a=this.callbacks,o=i.length-s.size,l=i.length-e,c=this.unloadPriorityCallback||this.defaultPriorityCallback;if(l>0&&o>0){i.sort((f,m)=>{let g=s.has(f),y=s.has(m);return g&&y?0:!g&&!y?c(m)-c(f):g?1:-1});let u=Math.min(l,o),h=Math.max(e*r,u*r),p=Math.min(h,o);p=Math.ceil(p);let d=i.splice(0,p);for(let f=0,m=d.length;f{this.scheduled=!1,this.unloadUnusedContent(),r&&this.markAllUnused()}))}};var AS=class{constructor(){this.maxJobs=6,this.items=[],this.callbacks=new Map,this.currJobs=0,this.scheduled=!1,this.autoUpdate=!0,this.priorityCallback=()=>{throw new Error("PriorityQueue: PriorityCallback function not defined.")},this.schedulingCallback=r=>{requestAnimationFrame(r)},this._runjobs=()=>{this.tryRunJobs(),this.scheduled=!1}}sort(){let r=this.priorityCallback;this.items.sort(r)}add(r,e){return new Promise((i,n)=>{let s=(...l)=>e(...l).then(i).catch(n),a=this.items,o=this.callbacks;a.push(r),o.set(r,s),this.autoUpdate&&this.scheduleJobRun()})}remove(r){let e=this.items,i=this.callbacks,n=e.indexOf(r);n!==-1&&(e.splice(n,1),i.delete(r))}tryRunJobs(){this.sort();let r=this.items,e=this.callbacks,i=this.maxJobs,n=this.currJobs;for(;i>n&&r.length>0;){n++;let s=r.pop(),a=e.get(s);e.delete(s),a(s).then(()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()}).catch(()=>{this.currJobs--,this.autoUpdate&&this.scheduleJobRun()})}this.currJobs=n}scheduleJobRun(){this.scheduled||(this.schedulingCallback(this._runjobs),this.scheduled=!0)}};var iNt=.0033528106647474805,bDe=-(iNt*6378137-6378137);function oG(t){return t===3||t===4}function O0(t,r){return t.__lastFrameVisited===r&&t.__used}function xDe(t,r){t.__lastFrameVisited!==r&&(t.__lastFrameVisited=r,t.__used=!1,t.__inFrustum=!1,t.__isLeaf=!1,t.__visible=!1,t.__active=!1,t.__error=1/0,t.__distanceFromCamera=1/0,t.__childrenWereVisible=!1,t.__allChildrenLoaded=!1)}function IDe(t,r,e){if(xDe(t,r),t.__used=!0,e.markUsed(t),t.__contentEmpty){let i=t.children;for(let n=0,s=i.length;n0&&t.__depth+1>=s))return!0;let u=!1,h=t.children;for(let p=0,d=h.length;pt.__depth!==r.__depth?t.__depth>r.__depth?-1:1:t.__inFrustum!==r.__inFrustum?t.__inFrustum?1:-1:t.__used!==r.__used?t.__used?1:-1:t.__error!==r.__error?t.__error>r.__error?1:-1:t.__distanceFromCamera!==r.__distanceFromCamera?t.__distanceFromCamera>r.__distanceFromCamera?-1:1:0,nNt=t=>1/(t.__depthFromRenderedParent+1),qO=class{get rootTileSet(){let r=this.tileSets[this.rootURL];return!r||r instanceof Promise?null:r}get root(){let r=this.rootTileSet;return r?r.root:null}constructor(r){this.tileSets={},this.rootURL=r,this.fetchOptions={},this.preprocessURL=null;let e=new zO;e.unloadPriorityCallback=nNt;let i=new AS;i.maxJobs=4,i.priorityCallback=wDe;let n=new AS;n.maxJobs=1,n.priorityCallback=wDe,this.lruCache=e,this.downloadQueue=i,this.parseQueue=n,this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0,this.errorTarget=6,this.errorThreshold=1/0,this.loadSiblings=!0,this.displayActiveTiles=!1,this.maxDepth=1/0,this.stopAtEmptyTiles=!0}traverse(r,e){let n=this.tileSets[this.rootURL];!n||!n.root||WO(n.root,r,e)}update(){let r=this.stats,e=this.lruCache,i=this.tileSets,n=i[this.rootURL];if(this.rootURL in i){if(!n||!n.root)return}else{this.loadRootTileSet(this.rootURL);return}let s=n.root;r.inFrustum=0,r.used=0,r.active=0,r.visible=0,this.frameCount++,lG(s,this),cG(s,this),uG(s,this),hG(s,this),e.scheduleUnload()}parseTile(r,e,i){return null}disposeTile(r){}preprocessNode(r,e,i){if(r.content&&(!("uri"in r.content)&&"url"in r.content&&(r.content.uri=r.content.url,delete r.content.url),r.content.uri&&(r.content.uri=new URL(r.content.uri,i+"/").toString()),r.content.boundingVolume&&!("box"in r.content.boundingVolume||"sphere"in r.content.boundingVolume||"region"in r.content.boundingVolume)&&delete r.content.boundingVolume),r.parent=e,r.children=r.children||[],r.content&&r.content.uri){let s=sG(r.content.uri),a=Boolean(s&&s.toLowerCase()==="json");r.__externalTileSet=a,r.__contentEmpty=a}else r.__externalTileSet=!1,r.__contentEmpty=!0;r.__distanceFromCamera=1/0,r.__error=1/0,r.__inFrustum=!1,r.__isLeaf=!1,r.__usedLastFrame=!1,r.__used=!1,r.__wasSetVisible=!1,r.__visible=!1,r.__childrenWereVisible=!1,r.__allChildrenLoaded=!1,r.__wasSetActive=!1,r.__active=!1,r.__loadingState=0,r.__loadIndex=0,r.__loadAbort=null,r.__depthFromRenderedParent=-1,e===null?(r.__depth=0,r.refine=r.refine||"REPLACE"):(r.__depth=e.__depth+1,r.refine=r.refine||e.refine)}setTileActive(r,e){}setTileVisible(r,e){}calculateError(r){return 0}tileInView(r){return!0}resetFailedTiles(){let r=this.stats;r.failed!==0&&(this.traverse(e=>{e.__loadingState===4&&(e.__loadingState=0)}),r.failed=0)}fetchTileSet(r,e,i=null){return fetch(r,e).then(n=>{if(n.ok)return n.json();throw new Error(`TilesRenderer: Failed to load tileset "${r}" with status ${n.status} : ${n.statusText}`)}).then(n=>{let s=n.asset.version;console.assert(s==="1.0"||s==="0.0",'asset.version is expected to be a string of "1.0" or "0.0"');let a=r.replace(/\/[^\/]*\/?$/,"");return a=new URL(a,window.location.href).toString(),WO(n.root,(o,l)=>this.preprocessNode(o,l,a),null,i,i?i.__depth:0),n})}loadRootTileSet(r){let e=this.tileSets;if(r in e)return e[r]instanceof Error?Promise.reject(e[r]):Promise.resolve(e[r]);{let i=this.fetchTileSet(this.preprocessURL?this.preprocessURL(r):r,this.fetchOptions).then(n=>{e[r]=n});return i.catch(n=>{console.error(n),e[r]=n}),e[r]=i,i}}requestTileContents(r){if(r.__loadingState!==0)return;let e=this.stats,i=this.lruCache,n=this.downloadQueue,s=this.parseQueue,a=r.__externalTileSet;i.add(r,h=>{h.__loadingState===1?(h.__loadAbort.abort(),h.__loadAbort=null):a?h.children.length=0:this.disposeTile(h),h.__loadingState===1?e.downloading--:h.__loadingState===2&&e.parsing--,h.__loadingState=0,h.__loadIndex++,s.remove(h),n.remove(h)}),r.__loadIndex++;let o=r.__loadIndex,l=new AbortController,c=l.signal;e.downloading++,r.__loadAbort=l,r.__loadingState=1;let u=h=>{r.__loadIndex===o&&(h.name!=="AbortError"?(s.remove(r),n.remove(r),r.__loadingState===2?e.parsing--:r.__loadingState===1&&e.downloading--,e.failed++,console.error(`TilesRenderer : Failed to load tile at url "${r.content.uri}".`),console.error(h),r.__loadingState=4):i.remove(r))};a?n.add(r,h=>{if(h.__loadIndex!==o)return Promise.resolve();let p=this.preprocessURL?this.preprocessURL(h.content.uri):h.content.uri;return this.fetchTileSet(p,Object.assign({signal:c},this.fetchOptions),h)}).then(h=>{r.__loadIndex===o&&(e.downloading--,r.__loadAbort=null,r.__loadingState=3,r.children.push(h.root))}).catch(u):n.add(r,h=>{if(h.__loadIndex!==o)return Promise.resolve();let p=this.preprocessURL?this.preprocessURL(h.content.uri):h.content.uri;return fetch(p,Object.assign({signal:c},this.fetchOptions))}).then(h=>{if(r.__loadIndex===o){if(h.ok)return h.arrayBuffer();throw new Error(`Failed to load model with error code ${h.status}`)}}).then(h=>{if(r.__loadIndex===o)return e.downloading--,e.parsing++,r.__loadAbort=null,r.__loadingState=2,s.add(r,p=>{if(p.__loadIndex!==o)return Promise.resolve();let d=p.content.uri,f=sG(d);return this.parseTile(h,p,f)})}).then(()=>{r.__loadIndex===o&&(e.parsing--,r.__loadingState=3,r.__wasSetVisible&&this.setTileVisible(r,!0),r.__wasSetActive&&this.setTileActive(r,!0))}).catch(u)}dispose(){let r=this.lruCache;this.traverse(e=>{r.remove(e)}),this.stats={parsing:0,downloading:0,failed:0,inFrustum:0,used:0,active:0,visible:0},this.frameCount=0}};function YO(t){return new TextDecoder().decode(t)}var ad=class{constructor(r,e,i,n){this.buffer=r,this.binOffset=e+i,this.binLength=n;let s=null;if(i!==0){let a=new Uint8Array(r,e,i);s=JSON.parse(YO(a))}else s={};this.header=s}getKeys(){return Object.keys(this.header)}getData(r,e,i=null,n=null){let s=this.header;if(!(r in s))return null;let a=s[r];if(a instanceof Object){if(Array.isArray(a))return a;{let{buffer:o,binOffset:l,binLength:c}=this,u=a.byteOffset||0,h=a.type||n,p=a.componentType||i;if("type"in a&&n&&a.type!==n)throw new Error("FeatureTable: Specified type does not match expected type.");let d;switch(h){case"SCALAR":d=1;break;case"VEC2":d=2;break;case"VEC3":d=3;break;case"VEC4":d=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${r}".`)}let f,m=l+u,g=e*d;switch(p){case"BYTE":f=new Int8Array(o,m,g);break;case"UNSIGNED_BYTE":f=new Uint8Array(o,m,g);break;case"SHORT":f=new Int16Array(o,m,g);break;case"UNSIGNED_SHORT":f=new Uint16Array(o,m,g);break;case"INT":f=new Int32Array(o,m,g);break;case"UNSIGNED_INT":f=new Uint32Array(o,m,g);break;case"FLOAT":f=new Float32Array(o,m,g);break;case"DOUBLE":f=new Float64Array(o,m,g);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${r}".`)}if(m+g*f.BYTES_PER_ELEMENT>l+c)throw new Error("FeatureTable: Feature data read outside binary body length.");return f}}else return a}},rm=class extends ad{constructor(r,e,i,n,s){super(r,i,n,s),this.batchSize=e}getData(r,e=null,i=null){return super.getData(r,this.batchSize,e,i)}};var ec=class{constructor(){this.fetchOptions={},this.workingPath=""}load(r){return fetch(r,this.fetchOptions).then(e=>{if(!e.ok)throw new Error(`Failed to load file "${r}" with status ${e.status} : ${e.statusText}`);return e.arrayBuffer()}).then(e=>(this.workingPath===""&&(this.workingPath=this.workingPathForURL(r)),this.parse(e)))}resolveExternalURL(r){return/^[^\\/]/.test(r)?this.workingPath+"/"+r:r}workingPathForURL(r){let e=r.split(/[\\/]/g);return e.pop(),e.join("/")+"/"}parse(r){throw new Error("LoaderBase: Parse not implemented.")}};function iu(t){let r;if(t instanceof DataView?r=t:r=new DataView(t),String.fromCharCode(r.getUint8(0))==="{")return null;let e="";for(let i=0;i<4;i++)e+=String.fromCharCode(r.getUint8(i));return e}var XO=class extends ec{parse(r){let e=new DataView(r),i=iu(e);console.assert(i==="b3dm");let n=e.getUint32(4,!0);console.assert(n===1);let s=e.getUint32(8,!0);console.assert(s===r.byteLength);let a=e.getUint32(12,!0),o=e.getUint32(16,!0),l=e.getUint32(20,!0),c=e.getUint32(24,!0),u=28,h=r.slice(u,u+a+o),p=new ad(h,0,a,o),d=u+a+o,f=r.slice(d,d+l+c),m=new rm(f,p.getData("BATCH_LENGTH"),0,l,c),g=d+l+c,y=new Uint8Array(r,g,s-g);return{version:n,featureTable:p,batchTable:m,glbBytes:y}}};var pE=class extends XO{constructor(r=oo){super(),this.manager=r,this.adjustmentTransform=new Ue}parse(r){let e=super.parse(r),i=e.glbBytes.slice().buffer;return new Promise((n,s)=>{let a=this.manager,o=this.fetchOptions,l=a.getHandler("path.gltf")||new Yu(a);o.credentials==="include"&&o.mode==="cors"&&l.setCrossOrigin("use-credentials"),"credentials"in o&&l.setWithCredentials(o.credentials==="include"),o.headers&&l.setRequestHeader(o.headers);let c=this.workingPath;!/[\\/]$/.test(c)&&c.length&&(c+="/");let u=this.adjustmentTransform;l.parse(i,c,h=>{let{batchTable:p,featureTable:d}=e,{scene:f}=h,m=d.getData("RTC_CENTER");m&&(f.position.x+=m[0],f.position.y+=m[1],f.position.z+=m[2]),h.scene.updateMatrix(),h.scene.matrix.multiply(u),h.scene.matrix.decompose(h.scene.position,h.scene.quaternion,h.scene.scale),h.batchTable=p,h.featureTable=d,f.batchTable=p,f.featureTable=d,n(h)},s)})}};var $O=class extends ec{parse(r){let e=new DataView(r),i=iu(e);console.assert(i==="pnts");let n=e.getUint32(4,!0);console.assert(n===1);let s=e.getUint32(8,!0);console.assert(s===r.byteLength);let a=e.getUint32(12,!0),o=e.getUint32(16,!0),l=e.getUint32(20,!0),c=e.getUint32(24,!0),u=28,h=r.slice(u,u+a+o),p=new ad(h,0,a,o),d=u+a+o,f=r.slice(d,d+l+c),m=new rm(f,p.getData("BATCH_LENGTH")||p.getData("POINTS_LENGTH"),0,l,c);return Promise.resolve({version:n,featureTable:p,batchTable:m})}};var dE=class extends $O{constructor(r=oo){super(),this.manager=r}parse(r){return super.parse(r).then(e=>{let{featureTable:i}=e,n=i.getData("POINTS_LENGTH"),s=i.getData("POSITION",n,"FLOAT","VEC3"),a=i.getData("RGB",n,"UNSIGNED_BYTE","VEC3");["QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","CONSTANT_RGBA","BATCH_LENGTH","POSITION_QUANTIZED","RGBA","RGB565","NORMAL","NORMAL_OCT16P"].forEach(h=>{h in i.header&&console.warn(`PNTSLoader: Unsupported FeatureTable feature "${h}" detected.`)});let o=new it;o.setAttribute("position",new jt(s,3,!1));let l=new Vn;l.size=2,l.sizeAttenuation=!1,a!==null&&(o.setAttribute("color",new jt(a,3,!0)),l.vertexColors=!0);let c=new rn(o,l);e.scene=c,e.scene.featureTable=i;let u=i.getData("RTC_CENTER");return u&&(e.scene.position.x+=u[0],e.scene.position.y+=u[1],e.scene.position.z+=u[2]),e})}};var ZO=class extends ec{parse(r){let e=new DataView(r),i=iu(e);console.assert(i==="i3dm");let n=e.getUint32(4,!0);console.assert(n===1);let s=e.getUint32(8,!0);console.assert(s===r.byteLength);let a=e.getUint32(12,!0),o=e.getUint32(16,!0),l=e.getUint32(20,!0),c=e.getUint32(24,!0),u=e.getUint32(28,!0),h=32,p=r.slice(h,h+a+o),d=new ad(p,0,a,o),f=h+a+o,m=r.slice(f,f+l+c),g=new rm(m,d.getData("INSTANCES_LENGTH"),0,l,c),y=f+l+c,E=new Uint8Array(r,y,s-y),b=null,x=null;if(u)b=E,x=Promise.resolve();else{let S=this.resolveExternalURL(YO(E));x=fetch(S,this.fetchOptions).then(D=>{if(!D.ok)throw new Error(`I3DMLoaderBase : Failed to load file "${S}" with status ${D.status} : ${D.statusText}`);return D.arrayBuffer()}).then(D=>{b=new Uint8Array(D)})}return x.then(()=>({version:n,featureTable:d,batchTable:g,glbBytes:b}))}};var RDe=new A,fG=new A,mG=new A,MDe=new A,gG=new Or,KO=new A,JO=new Ue,fE=class extends ZO{constructor(r=oo){super(),this.manager=r,this.adjustmentTransform=new Ue}resolveExternalURL(r){return this.manager.resolveURL(super.resolveExternalURL(r))}parse(r){return super.parse(r).then(e=>{let{featureTable:i,batchTable:n}=e,s=e.glbBytes.slice().buffer;return new Promise((a,o)=>{let l=this.fetchOptions,c=this.manager,u=c.getHandler("path.gltf")||new Yu(c);l.credentials==="include"&&l.mode==="cors"&&u.setCrossOrigin("use-credentials"),"credentials"in l&&u.setWithCredentials(l.credentials==="include"),l.headers&&u.setRequestHeader(l.headers);let h=this.workingPath;/[\\/]$/.test(h)||(h+="/");let p=this.adjustmentTransform;u.parse(s,h,d=>{let f=i.getData("INSTANCES_LENGTH"),m=i.getData("POSITION",f,"FLOAT","VEC3"),g=i.getData("NORMAL_UP",f,"FLOAT","VEC3"),y=i.getData("NORMAL_RIGHT",f,"FLOAT","VEC3"),E=i.getData("SCALE_NON_UNIFORM",f,"FLOAT","VEC3"),b=i.getData("SCALE",f,"FLOAT","SCALAR");["RTC_CENTER","QUANTIZED_VOLUME_OFFSET","QUANTIZED_VOLUME_SCALE","EAST_NORTH_UP","POSITION_QUANTIZED","NORMAL_UP_OCT32P","NORMAL_RIGHT_OCT32P"].forEach(P=>{P in i.header&&console.warn(`I3DMLoader: Unsupported FeatureTable feature "${P}" detected.`)});let x=new Map,S=[];d.scene.traverse(P=>{if(P.isMesh){let{geometry:_,material:w}=P,F=new tn(_,w,f);F.position.copy(P.position),F.rotation.copy(P.rotation),F.scale.copy(P.scale),S.push(F),x.set(P,F)}});let D=new A;for(let P=0;P{let w=_.parent;w&&(w.remove(_),w.add(P),P.updateMatrixWorld(),P.position.copy(D).applyMatrix4(P.matrixWorld))});for(let P=0;P{let o=new hr;return a.forEach(l=>{o.add(l.scene)}),{tiles:a,scene:o}})}};var t3=class{constructor(){this.name="CESIUM_RTC"}afterRoot(r){if(r.parser.json.extensions&&r.parser.json.extensions.CESIUM_RTC){let{center:e}=r.parser.json.extensions.CESIUM_RTC;e&&(r.scene.position.x+=e[0],r.scene.position.y+=e[1],r.scene.position.z+=e[2])}}};var r3=class extends ec{constructor(r=oo){super(),this.manager=r}parse(r){return new Promise((e,i)=>{let n=this.manager,s=this.fetchOptions,a=n.getHandler("path.gltf")||n.getHandler("path.glb");a||(a=new Yu(n),a.register(()=>new t3),s.credentials==="include"&&s.mode==="cors"&&a.setCrossOrigin("use-credentials"),"credentials"in s&&a.setWithCredentials(s.credentials==="include"),s.headers&&a.setRequestHeader(s.headers));let o=a.resourcePath||a.path||this.workingPath;!/[\\/]$/.test(o)&&o.length&&(o+="/"),a.parse(r,o,l=>{e(l)},i)})}};var i3=new Ue,n3=class extends hr{constructor(r){super(),this.name="TilesRenderer.TilesGroup",this.tilesRenderer=r}raycast(r,e){this.tilesRenderer.optimizeRaycast&&this.tilesRenderer.raycast(r,e)}updateMatrixWorld(r){if(this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldNeedsUpdate||r){this.parent===null?i3.copy(this.matrix):i3.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1;let e=i3.elements,i=this.matrixWorld.elements,n=!1;for(let s=0;s<16;s++){let a=e[s],o=i[s];if(Math.abs(a-o)>Number.EPSILON){n=!0;break}}if(n){this.matrixWorld.copy(i3);let s=this.children;for(let a=0,o=s.length;a=e&&E<=i&&b>=n&&b<=s){let x=aNt(r);p.push(x),this.getCartographicToPosition(E,b,m,x)}}}return p}getBoundingBox(r,e){ADe();let{latStart:i,latEnd:n,lonStart:s,lonEnd:a}=this;if(n-i{Object.getPrototypeOf(i).raycast.call(i,r,e)})}function EG(t,r,e,i){if(e.has(t))if(TG(t.cached.scene,i,tc),tc.length>0){tc.length>1&&tc.sort(yG);let l=tc[0];return tc.length=0,l}else return null;let n=[],s=t.children;for(let l=0,c=s.length;l1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when raycasting.");let y={distance:1/0,tile:null};n.push(y),y.distance=ODe.distanceToSquared(yE.origin)*g*g,y.tile=u}else continue}n.sort(yG);let a=1/0,o=null;for(let l=0,c=n.length;la)break;{let p=u.tile,d=p.cached.scene,f=null;if(e.has(p)?(TG(d,i,tc),tc.length>0&&(tc.length>1&&tc.sort(yG),f=tc[0])):f=EG(p,r,e,i),f){let m=f.distance*f.distance;m{e.frustumCulled=e[LDe]&&r})}var LS=class extends qO{get autoDisableRendererCulling(){return this._autoDisableRendererCulling}set autoDisableRendererCulling(r){this._autoDisableRendererCulling!==r&&(super._autoDisableRendererCulling=r,this.forEachLoadedModel(e=>{NDe(e,!r)}))}constructor(...r){super(...r),this.group=new n3(this),this.cameras=[],this.cameraMap=new Map,this.cameraInfo=[],this.activeTiles=new Set,this.visibleTiles=new Set,this._autoDisableRendererCulling=!0,this.optimizeRaycast=!0,this.onLoadTileSet=null,this.onLoadModel=null,this.onDisposeModel=null,this.onTileVisibilityChange=null;let e=new Ap;e.setURLModifier(n=>this.preprocessURL?this.preprocessURL(n):n),this.manager=e;let i=this;this._overridenRaycast=function(n,s){i.optimizeRaycast||Object.getPrototypeOf(this).raycast.call(this,n,s)}}getBounds(r){if(!this.root)return!1;let e=this.root.cached,i=e.box,n=e.boxTransform;return i?(r.copy(i),r.applyMatrix4(n),!0):!1}getOrientedBounds(r,e){if(!this.root)return!1;let i=this.root.cached,n=i.box,s=i.boxTransform;return n?(r.copy(n),e.copy(s),!0):!1}getBoundingSphere(r){if(!this.root)return!1;let e=this.root.cached.sphere;return e?(r.copy(e),!0):!1}forEachLoadedModel(r){this.traverse(e=>{let i=e.cached.scene;i&&r(i,e)})}raycast(r,e){if(this.root)if(r.firstHitOnly){let i=EG(this.root,this.group,this.activeTiles,r);i&&e.push(i)}else bG(this.root,this.group,this.activeTiles,r,e)}hasCamera(r){return this.cameraMap.has(r)}setCamera(r){let e=this.cameras,i=this.cameraMap;return i.has(r)?!1:(i.set(r,new le),e.push(r),!0)}setResolution(r,e,i){let n=this.cameraMap;return n.has(r)?(e instanceof le?n.get(r).copy(e):n.get(r).set(e,i),!0):!1}setResolutionFromRenderer(r,e){let i=this.cameraMap;if(!i.has(r))return!1;let n=i.get(r);return e.getSize(n),n.multiplyScalar(e.getPixelRatio()),!0}deleteCamera(r){let e=this.cameras,i=this.cameraMap;if(i.has(r)){let n=e.indexOf(r);return e.splice(n,1),i.delete(r),!0}return!1}fetchTileSet(r,...e){let i=super.fetchTileSet(r,...e);return i.then(n=>{this.onLoadTileSet&&Promise.resolve().then(()=>{this.onLoadTileSet(n,r)})}),i}update(){let r=this.group,e=this.cameras,i=this.cameraMap,n=this.cameraInfo;if(e.length===0){console.warn("TilesRenderer: no cameras defined. Cannot update 3d tiles.");return}for(;n.length>e.length;)n.pop();for(;n.length1e-6&&console.warn("ThreeTilesRenderer : Non uniform scale used for tile which may cause issues when calculating screen space error.");for(let a=0,o=n.length;ay.scene);break}case"pnts":{let g=new dE(l);g.workingPath=a,g.fetchOptions=o,u=g.parse(r).then(y=>y.scene);break}case"i3dm":{let g=new fE(l);g.workingPath=a,g.fetchOptions=o,g.adjustmentTransform.copy(nu),u=g.parse(r).then(y=>y.scene);break}case"cmpt":{let g=new e3(l);g.workingPath=a,g.fetchOptions=o,g.adjustmentTransform.copy(nu),u=g.parse(r).then(y=>y.scene);break}case"gltf":case"glb":let m=new r3(l);m.workingPath=a,m.fetchOptions=o,u=m.parse(r).then(g=>g.scene);break;default:console.warn(`TilesRenderer: Content type "${f}" not supported.`),u=Promise.resolve(null);break}return u.then(m=>{if(e._loadIndex!==c)return;m.updateMatrix(),(f==="glb"||f==="gltf")&&m.matrix.multiply(nu),m.matrix.premultiply(d),m.matrix.decompose(m.position,m.quaternion,m.scale),m.traverse(b=>{b[LDe]=b.frustumCulled}),NDe(m,!this.autoDisableRendererCulling),p.scene=m,m.traverse(b=>{b.raycast=this._overridenRaycast});let g=[],y=[],E=[];m.traverse(b=>{if(b.geometry&&y.push(b.geometry),b.material){let x=b.material;g.push(b.material);for(let S in x){let D=x[S];D&&D.isTexture&&E.push(D)}}}),p.materials=g,p.geometry=y,p.textures=E,this.onLoadModel&&this.onLoadModel(m,e)})}disposeTile(r){let e=r.cached;if(e.scene){let i=e.materials,n=e.geometry,s=e.textures,a=e.scene.parent;for(let o=0,l=n.length;o=s+1e3&&(o.update(a*1e3/(u-s),100),s=u,a=0,c)){var h=performance.memory;c.update(h.usedJSHeapSize/1048576,h.jsHeapSizeLimit/1048576)}return u},update:function(){n=this.end()},domElement:r,setMode:i}};US.Panel=function(t,r,e){var i=1/0,n=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,l=48*a,c=3*a,u=2*a,h=3*a,p=15*a,d=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=e,g.fillRect(0,0,o,l),g.fillStyle=r,g.fillText(t,c,u),g.fillRect(h,p,d,f),g.fillStyle=e,g.globalAlpha=.9,g.fillRect(h,p,d,f),{dom:m,update:function(y,E){i=Math.min(i,y),n=Math.max(n,y),g.fillStyle=e,g.globalAlpha=1,g.fillRect(0,0,o,p),g.fillStyle=r,g.fillText(s(y)+" "+t+" ("+s(i)+"-"+s(n)+")",c,u),g.drawImage(m,h+a,p,d-a,f,h,p,d-a,f),g.fillRect(h+d-a,p,a,f),g.fillStyle=e,g.globalAlpha=.9,g.fillRect(h+d-a,p,a,s((1-y/E)*f))}}};var u3=US;var ss=class{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}},cNt=new Zi(-1,1,1,-1,0,1),IG=new it;IG.setAttribute("position",new ct([-1,3,0,-1,-1,0,3,-1,0],3));IG.setAttribute("uv",new ct([0,2,0,0,2,0],2));var na=class{constructor(r){this._mesh=new Je(IG,r)}dispose(){this._mesh.geometry.dispose()}render(r){r.render(this._mesh,cNt)}get material(){return this._mesh.material}set material(r){this._mesh.material=r}};var SG={defines:{KERNEL_SIZE_FLOAT:"25.0",KERNEL_SIZE_INT:"25"},uniforms:{tDiffuse:{value:null},uImageIncrement:{value:new le(.001953125,0)},cKernel:{value:[]}},vertexShader:` + + uniform vec2 uImageIncrement; + + varying vec2 vUv; + + void main() { + + vUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:` + + uniform float cKernel[ KERNEL_SIZE_INT ]; + + uniform sampler2D tDiffuse; + uniform vec2 uImageIncrement; + + varying vec2 vUv; + + void main() { + + vec2 imageCoord = vUv; + vec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 ); + + for( int i = 0; i < KERNEL_SIZE_INT; i ++ ) { + + sum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ]; + imageCoord += uImageIncrement; + + } + + gl_FragColor = sum; + + }`,buildKernel:function(t){let e=2*Math.ceil(t*3)+1;e>25&&(e=25);let i=(e-1)*.5,n=new Array(e),s=0;for(let a=0;a0){r.getClearColor(this._oldClearColor),this.oldClearAlpha=r.getClearAlpha();let a=r.autoClear;r.autoClear=!1,s&&r.state.buffers.stencil.setTest(!1),r.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);let o=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,r.setRenderTarget(this.renderTargetDepthBuffer),r.clear(),r.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,r.setRenderTarget(this.renderTargetMaskBuffer),r.clear(),r.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=o,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,r.setRenderTarget(this.renderTargetMaskDownSampleBuffer),r.clear(),this.fsQuad.render(r),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){let l=.625+Math.cos(performance.now()*.01/this.pulsePeriod)*.75/2;this.tempPulseColor1.multiplyScalar(l),this.tempPulseColor2.multiplyScalar(l)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,r.setRenderTarget(this.renderTargetEdgeBuffer1),r.clear(),this.fsQuad.render(r),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=au.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,r.setRenderTarget(this.renderTargetBlurBuffer1),r.clear(),this.fsQuad.render(r),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=au.BlurDirectionY,r.setRenderTarget(this.renderTargetEdgeBuffer1),r.clear(),this.fsQuad.render(r),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=au.BlurDirectionX,r.setRenderTarget(this.renderTargetBlurBuffer2),r.clear(),this.fsQuad.render(r),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=au.BlurDirectionY,r.setRenderTarget(this.renderTargetEdgeBuffer2),r.clear(),this.fsQuad.render(r),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,s&&r.state.buffers.stencil.setTest(!0),r.setRenderTarget(i),this.fsQuad.render(r),r.setClearColor(this._oldClearColor,this.oldClearAlpha),r.autoClear=a}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=i.texture,r.setRenderTarget(null),this.fsQuad.render(r))}getPrepareMaskMaterial(){return new Yt({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new le(.5,.5)},textureMatrix:{value:null}},vertexShader:`#include + #include + + varying vec4 projTexCoord; + varying vec4 vPosition; + uniform mat4 textureMatrix; + + void main() { + + #include + #include + #include + #include + #include + + vPosition = mvPosition; + + vec4 worldPosition = vec4( transformed, 1.0 ); + + #ifdef USE_INSTANCING + + worldPosition = instanceMatrix * worldPosition; + + #endif + + worldPosition = modelMatrix * worldPosition; + + projTexCoord = textureMatrix * worldPosition; + + }`,fragmentShader:`#include + varying vec4 vPosition; + varying vec4 projTexCoord; + uniform sampler2D depthTexture; + uniform vec2 cameraNearFar; + + void main() { + + float depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord )); + float viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y ); + float depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0; + gl_FragColor = vec4(0.0, depthTest, 1.0, 1.0); + + }`})}getEdgeDetectionMaterial(){return new Yt({uniforms:{maskTexture:{value:null},texSize:{value:new le(.5,.5)},visibleEdgeColor:{value:new A(1,1,1)},hiddenEdgeColor:{value:new A(1,1,1)}},vertexShader:`varying vec2 vUv; + + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:`varying vec2 vUv; + + uniform sampler2D maskTexture; + uniform vec2 texSize; + uniform vec3 visibleEdgeColor; + uniform vec3 hiddenEdgeColor; + + void main() { + vec2 invSize = 1.0 / texSize; + vec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize); + vec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy); + vec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy); + vec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw); + vec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw); + float diff1 = (c1.r - c2.r)*0.5; + float diff2 = (c3.r - c4.r)*0.5; + float d = length( vec2(diff1, diff2) ); + float a1 = min(c1.g, c2.g); + float a2 = min(c3.g, c4.g); + float visibilityFactor = min(a1, a2); + vec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor; + gl_FragColor = vec4(edgeColor, 1.0) * vec4(d); + }`})}getSeperableBlurMaterial(r){return new Yt({defines:{MAX_RADIUS:r},uniforms:{colorTexture:{value:null},texSize:{value:new le(.5,.5)},direction:{value:new le(.5,.5)},kernelRadius:{value:1}},vertexShader:`varying vec2 vUv; + + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:`#include + varying vec2 vUv; + uniform sampler2D colorTexture; + uniform vec2 texSize; + uniform vec2 direction; + uniform float kernelRadius; + + float gaussianPdf(in float x, in float sigma) { + return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma; + } + + void main() { + vec2 invSize = 1.0 / texSize; + float sigma = kernelRadius/2.0; + float weightSum = gaussianPdf(0.0, sigma); + vec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum; + vec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS); + vec2 uvOffset = delta; + for( int i = 1; i <= MAX_RADIUS; i ++ ) { + float x = kernelRadius * float(i) / float(MAX_RADIUS); + float w = gaussianPdf(x, sigma); + vec4 sample1 = texture2D( colorTexture, vUv + uvOffset); + vec4 sample2 = texture2D( colorTexture, vUv - uvOffset); + diffuseSum += ((sample1 + sample2) * w); + weightSum += (2.0 * w); + uvOffset += delta; + } + gl_FragColor = diffuseSum/weightSum; + }`})}getOverlayMaterial(){return new Yt({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:`varying vec2 vUv; + + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:`varying vec2 vUv; + + uniform sampler2D maskTexture; + uniform sampler2D edgeTexture1; + uniform sampler2D edgeTexture2; + uniform sampler2D patternTexture; + uniform float edgeStrength; + uniform float edgeGlow; + uniform bool usePatternTexture; + + void main() { + vec4 edgeValue1 = texture2D(edgeTexture1, vUv); + vec4 edgeValue2 = texture2D(edgeTexture2, vUv); + vec4 maskColor = texture2D(maskTexture, vUv); + vec4 patternColor = texture2D(patternTexture, 6.0 * vUv); + float visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5; + vec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow; + vec4 finalColor = edgeStrength * maskColor.r * edgeValue; + if(usePatternTexture) + finalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r); + gl_FragColor = finalColor; + }`,blending:fp,depthTest:!1,depthWrite:!1,transparent:!0})}};au.BlurDirectionX=new le(1,0);au.BlurDirectionY=new le(0,1);var d3=class extends ss{constructor(r,e,i,n,s){super(),this.scene=r,this.camera=e,this.overrideMaterial=i,this.clearColor=n,this.clearAlpha=s!==void 0?s:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new Ve}render(r,e,i){let n=r.autoClear;r.autoClear=!1;let s,a;this.overrideMaterial!==void 0&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(r.getClearColor(this._oldClearColor),s=r.getClearAlpha(),r.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&r.clearDepth(),r.setRenderTarget(this.renderToScreen?null:i),this.clear&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),r.render(this.scene,this.camera),this.clearColor&&r.setClearColor(this._oldClearColor,s),this.overrideMaterial!==void 0&&(this.scene.overrideMaterial=a),r.autoClear=n}};var kS={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new le(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new Ue},cameraInverseProjectionMatrix:{value:new Ue},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:` + + varying vec2 vUv; + + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + + #include + + varying vec2 vUv; + + #if DIFFUSE_TEXTURE == 1 + uniform sampler2D tDiffuse; + #endif + + uniform sampler2D tDepth; + + #if NORMAL_TEXTURE == 1 + uniform sampler2D tNormal; + #endif + + uniform float cameraNear; + uniform float cameraFar; + uniform mat4 cameraProjectionMatrix; + uniform mat4 cameraInverseProjectionMatrix; + + uniform float scale; + uniform float intensity; + uniform float bias; + uniform float kernelRadius; + uniform float minResolution; + uniform vec2 size; + uniform float randomSeed; + + // RGBA depth + + #include + + vec4 getDefaultColor( const in vec2 screenPosition ) { + #if DIFFUSE_TEXTURE == 1 + return texture2D( tDiffuse, vUv ); + #else + return vec4( 1.0 ); + #endif + } + + float getDepth( const in vec2 screenPosition ) { + #if DEPTH_PACKING == 1 + return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); + #else + return texture2D( tDepth, screenPosition ).x; + #endif + } + + float getViewZ( const in float depth ) { + #if PERSPECTIVE_CAMERA == 1 + return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); + #else + return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); + #endif + } + + vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) { + float clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3]; + vec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 ); + clipPosition *= clipW; // unprojection. + + return ( cameraInverseProjectionMatrix * clipPosition ).xyz; + } + + vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) { + #if NORMAL_TEXTURE == 1 + return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz ); + #else + return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) ); + #endif + } + + float scaleDividedByCameraFar; + float minResolutionMultipliedByCameraFar; + + float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) { + vec3 viewDelta = sampleViewPosition - centerViewPosition; + float viewDistance = length( viewDelta ); + float scaledScreenDistance = scaleDividedByCameraFar * viewDistance; + + return max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) ); + } + + // moving costly divides into consts + const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES ); + const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES ); + + float getAmbientOcclusion( const in vec3 centerViewPosition ) { + // precompute some variables require in getOcclusion. + scaleDividedByCameraFar = scale / cameraFar; + minResolutionMultipliedByCameraFar = minResolution * cameraFar; + vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv ); + + // jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/ + float angle = rand( vUv + randomSeed ) * PI2; + vec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size; + vec2 radiusStep = radius; + + float occlusionSum = 0.0; + float weightSum = 0.0; + + for( int i = 0; i < NUM_SAMPLES; i ++ ) { + vec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius; + radius += radiusStep; + angle += ANGLE_STEP; + + float sampleDepth = getDepth( sampleUv ); + if( sampleDepth >= ( 1.0 - EPSILON ) ) { + continue; + } + + float sampleViewZ = getViewZ( sampleDepth ); + vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ ); + occlusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition ); + weightSum += 1.0; + } + + if( weightSum == 0.0 ) discard; + + return occlusionSum * ( intensity / weightSum ); + } + + void main() { + float centerDepth = getDepth( vUv ); + if( centerDepth >= ( 1.0 - EPSILON ) ) { + discard; + } + + float centerViewZ = getViewZ( centerDepth ); + vec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ ); + + float ambientOcclusion = getAmbientOcclusion( viewPosition ); + + gl_FragColor = getDefaultColor( vUv ); + gl_FragColor.xyz *= 1.0 - ambientOcclusion; + }`};var hd={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new le(512,512)},sampleUvOffsets:{value:[new le(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:` + + #include + + uniform vec2 size; + + varying vec2 vUv; + varying vec2 vInvSize; + + void main() { + vUv = uv; + vInvSize = 1.0 / size; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:` + + #include + #include + + uniform sampler2D tDiffuse; + uniform sampler2D tDepth; + + uniform float cameraNear; + uniform float cameraFar; + uniform float depthCutoff; + + uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ]; + uniform float sampleWeights[ KERNEL_RADIUS + 1 ]; + + varying vec2 vUv; + varying vec2 vInvSize; + + float getDepth( const in vec2 screenPosition ) { + #if DEPTH_PACKING == 1 + return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) ); + #else + return texture2D( tDepth, screenPosition ).x; + #endif + } + + float getViewZ( const in float depth ) { + #if PERSPECTIVE_CAMERA == 1 + return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); + #else + return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); + #endif + } + + void main() { + float depth = getDepth( vUv ); + if( depth >= ( 1.0 - EPSILON ) ) { + discard; + } + + float centerViewZ = -getViewZ( depth ); + bool rBreak = false, lBreak = false; + + float weightSum = sampleWeights[0]; + vec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum; + + for( int i = 1; i <= KERNEL_RADIUS; i ++ ) { + + float sampleWeight = sampleWeights[i]; + vec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize; + + vec2 sampleUv = vUv + sampleUvOffset; + float viewZ = -getViewZ( getDepth( sampleUv ) ); + + if( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true; + + if( ! rBreak ) { + diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; + weightSum += sampleWeight; + } + + sampleUv = vUv - sampleUvOffset; + viewZ = -getViewZ( getDepth( sampleUv ) ); + + if( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true; + + if( ! lBreak ) { + diffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight; + weightSum += sampleWeight; + } + + } + + gl_FragColor = diffuseSum / weightSum; + }`},GS={createSampleWeights:function(t,r){let e=[];for(let i=0;i<=t;i++)e.push(hNt(i,r));return e},createSampleOffsets:function(t,r){let e=[];for(let i=0;i<=t;i++)e.push(r.clone().multiplyScalar(i));return e},configure:function(t,r,e,i){t.defines.KERNEL_RADIUS=r,t.uniforms.sampleUvOffsets.value=GS.createSampleOffsets(r,i),t.uniforms.sampleWeights.value=GS.createSampleWeights(r,e),t.needsUpdate=!0}};function hNt(t,r){return Math.exp(-(t*t)/(2*(r*r)))/(Math.sqrt(2*Math.PI)*r)}var f3={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:` + + uniform float opacity; + + uniform sampler2D tDiffuse; + + varying vec2 vUv; + + #include + + void main() { + + float depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) ); + gl_FragColor = vec4( vec3( depth ), opacity ); + + }`};var VS=class extends ss{constructor(r,e,i=!1,n=!1,s=new le(256,256)){super(),this.scene=r,this.camera=e,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=i,this.supportsNormalTexture=n,this.originalClearColor=new Ve,this._oldClearColor=new Ve,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new le(s.x,s.y),this.saoRenderTarget=new kr(this.resolution.x,this.resolution.y),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new kr(this.resolution.x,this.resolution.y,{minFilter:Di,magFilter:Di}),this.depthRenderTarget=this.normalRenderTarget.clone();let a;this.supportsDepthTextureExtension&&(a=new lf,a.type=_x,this.beautyRenderTarget.depthTexture=a,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new Tp,this.depthMaterial.depthPacking=Gy,this.depthMaterial.blending=Fi,this.normalMaterial=new hf,this.normalMaterial.blending=Fi,this.saoMaterial=new Yt({defines:Object.assign({},kS.defines),fragmentShader:kS.fragmentShader,vertexShader:kS.vertexShader,uniforms:hn.clone(kS.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=Fi,this.vBlurMaterial=new Yt({uniforms:hn.clone(hd.uniforms),defines:Object.assign({},hd.defines),vertexShader:hd.vertexShader,fragmentShader:hd.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=Fi,this.hBlurMaterial=new Yt({uniforms:hn.clone(hd.uniforms),defines:Object.assign({},hd.defines),vertexShader:hd.vertexShader,fragmentShader:hd.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?a:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=Fi,this.materialCopy=new Yt({uniforms:hn.clone(sa.uniforms),vertexShader:sa.vertexShader,fragmentShader:sa.fragmentShader,blending:Fi}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Op,this.materialCopy.blendSrc=Uy,this.materialCopy.blendDst=ff,this.materialCopy.blendEquation=Sa,this.materialCopy.blendSrcAlpha=Hy,this.materialCopy.blendDstAlpha=ff,this.materialCopy.blendEquationAlpha=Sa,this.depthCopy=new Yt({uniforms:hn.clone(f3.uniforms),vertexShader:f3.vertexShader,fragmentShader:f3.fragmentShader,blending:Fi}),this.fsQuad=new na(null)}render(r,e,i){if(this.renderToScreen&&(this.materialCopy.blending=Fi,this.materialCopy.uniforms.tDiffuse.value=i.texture,this.materialCopy.needsUpdate=!0,this.renderPass(r,this.materialCopy,null)),this.params.output===1)return;r.getClearColor(this._oldClearColor),this.oldClearAlpha=r.getClearAlpha();let n=r.autoClear;r.autoClear=!1,r.setRenderTarget(this.depthRenderTarget),r.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;let s=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=s,this.hBlurMaterial.uniforms.depthCutoff.value=s,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),(this.prevStdDev!==this.params.saoBlurStdDev||this.prevNumSamples!==this.params.saoBlurRadius)&&(GS.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new le(0,1)),GS.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new le(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),r.setClearColor(0),r.setRenderTarget(this.beautyRenderTarget),r.clear(),r.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(r,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(r,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(r,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(r,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(r,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let a=this.materialCopy;this.params.output===3?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,a=this.depthCopy):this.params.output===4?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),this.params.output===0?a.blending=Op:a.blending=Fi,this.renderPass(r,a,this.renderToScreen?null:i),r.setClearColor(this._oldClearColor,this.oldClearAlpha),r.autoClear=n}renderPass(r,e,i,n,s){r.getClearColor(this.originalClearColor);let a=r.getClearAlpha(),o=r.autoClear;r.setRenderTarget(i),r.autoClear=!1,n!=null&&(r.setClearColor(n),r.setClearAlpha(s||0),r.clear()),this.fsQuad.material=e,this.fsQuad.render(r),r.autoClear=o,r.setClearColor(this.originalClearColor),r.setClearAlpha(a)}renderOverride(r,e,i,n,s){r.getClearColor(this.originalClearColor);let a=r.getClearAlpha(),o=r.autoClear;r.setRenderTarget(i),r.autoClear=!1,n=e.clearColor||n,s=e.clearAlpha||s,n!=null&&(r.setClearColor(n),r.setClearAlpha(s||0),r.clear()),this.scene.overrideMaterial=e,r.render(this.scene,this.camera),this.scene.overrideMaterial=null,r.autoClear=o,r.setClearColor(this.originalClearColor),r.setClearAlpha(a)}setSize(r,e){this.beautyRenderTarget.setSize(r,e),this.saoRenderTarget.setSize(r,e),this.blurIntermediateRenderTarget.setSize(r,e),this.normalRenderTarget.setSize(r,e),this.depthRenderTarget.setSize(r,e),this.saoMaterial.uniforms.size.value.set(r,e),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(r,e),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(r,e),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}};VS.OUTPUT={Beauty:1,Default:0,SAO:2,Depth:3,Normal:4};var m3=class extends ss{constructor(r,e,i,n){super(),this.scene=r,this.camera=e,this.sampleLevel=4,this.unbiased=!0,this.clearColor=i!==void 0?i:0,this.clearAlpha=n!==void 0?n:0,this._oldClearColor=new Ve;let s=sa;this.copyUniforms=hn.clone(s.uniforms),this.copyMaterial=new Yt({uniforms:this.copyUniforms,vertexShader:s.vertexShader,fragmentShader:s.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blending:Op,blendEquation:Sa,blendDst:Fy,blendDstAlpha:Fy,blendSrc:Ix,blendSrcAlpha:Fy}),this.fsQuad=new na(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(r,e){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(r,e)}render(r,e,i){this.sampleRenderTarget||(this.sampleRenderTarget=new kr(i.width,i.height),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");let n=pNt[Math.max(0,Math.min(this.sampleLevel,5))],s=r.autoClear;r.autoClear=!1,r.getClearColor(this._oldClearColor);let a=r.getClearAlpha(),o=1/n.length,l=1/32;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;let c={fullWidth:i.width,fullHeight:i.height,offsetX:0,offsetY:0,width:i.width,height:i.height},u=Object.assign({},this.camera.view);u.enabled&&Object.assign(c,u);for(let h=0;hm?(g=1,y=0):(g=0,y=1);let E=f-g+u,b=m-y+u,x=f-1+2*u,S=m-1+2*u,D=l&255,P=c&255,_=this.perm[D+this.perm[P]]%12,w=this.perm[D+g+this.perm[P+y]]%12,F=this.perm[D+1+this.perm[P+1]]%12,X=.5-f*f-m*m;X<0?i=0:(X*=X,i=X*X*this.dot(this.grad3[_],f,m));let H=.5-E*E-b*b;H<0?n=0:(H*=H,n=H*H*this.dot(this.grad3[w],E,b));let he=.5-x*x-S*S;return he<0?s=0:(he*=he,s=he*he*this.dot(this.grad3[F],x,S)),70*(i+n+s)}noise3d(r,e,i){let n,s,a,o,l=.3333333333333333,c=(r+e+i)*l,u=Math.floor(r+c),h=Math.floor(e+c),p=Math.floor(i+c),d=1/6,f=(u+h+p)*d,m=u-f,g=h-f,y=p-f,E=r-m,b=e-g,x=i-y,S,D,P,_,w,F;E>=b?b>=x?(S=1,D=0,P=0,_=1,w=1,F=0):E>=x?(S=1,D=0,P=0,_=1,w=0,F=1):(S=0,D=0,P=1,_=1,w=0,F=1):bF?32:0,C=w>X?16:0,N=F>X?8:0,k=w>H?4:0,G=F>H?2:0,U=X>H?1:0,j=he+C+N+k+G+U,ee=a[j][0]>=3?1:0,ae=a[j][1]>=3?1:0,se=a[j][2]>=3?1:0,ue=a[j][3]>=3?1:0,ve=a[j][0]>=2?1:0,be=a[j][1]>=2?1:0,de=a[j][2]>=2?1:0,we=a[j][3]>=2?1:0,Fe=a[j][0]>=1?1:0,je=a[j][1]>=1?1:0,Oe=a[j][2]>=1?1:0,dt=a[j][3]>=1?1:0,Be=w-ee+c,ke=F-ae+c,nt=X-se+c,bt=H-ue+c,mt=w-ve+2*c,_e=F-be+2*c,J=X-de+2*c,$=H-we+2*c,re=w-Fe+3*c,me=F-je+3*c,z=X-Oe+3*c,Y=H-dt+3*c,xe=w-1+4*c,Ce=F-1+4*c,Ge=X-1+4*c,Ze=H-1+4*c,gt=g&255,ye=y&255,Re=E&255,ut=b&255,vt=o[gt+o[ye+o[Re+o[ut]]]]%32,Et=o[gt+ee+o[ye+ae+o[Re+se+o[ut+ue]]]]%32,Ct=o[gt+ve+o[ye+be+o[Re+de+o[ut+we]]]]%32,Dt=o[gt+Fe+o[ye+je+o[Re+Oe+o[ut+dt]]]]%32,cr=o[gt+1+o[ye+1+o[Re+1+o[ut+1]]]]%32,Xt=.6-w*w-F*F-X*X-H*H;Xt<0?u=0:(Xt*=Xt,u=Xt*Xt*this.dot4(s[vt],w,F,X,H));let gr=.6-Be*Be-ke*ke-nt*nt-bt*bt;gr<0?h=0:(gr*=gr,h=gr*gr*this.dot4(s[Et],Be,ke,nt,bt));let Ae=.6-mt*mt-_e*_e-J*J-$*$;Ae<0?p=0:(Ae*=Ae,p=Ae*Ae*this.dot4(s[Ct],mt,_e,J,$));let Xe=.6-re*re-me*me-z*z-Y*Y;Xe<0?d=0:(Xe*=Xe,d=Xe*Xe*this.dot4(s[Dt],re,me,z,Y));let lt=.6-xe*xe-Ce*Ce-Ge*Ge-Ze*Ze;return lt<0?f=0:(lt*=lt,f=lt*lt*this.dot4(s[cr],xe,Ce,Ge,Ze)),27*(u+h+p+d+f)}};var zS={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new le},cameraProjectionMatrix:{value:new Ue},cameraInverseProjectionMatrix:{value:new Ue},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:` + + varying vec2 vUv; + + void main() { + + vUv = uv; + + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:` + + uniform sampler2D tDiffuse; + uniform sampler2D tNormal; + uniform sampler2D tDepth; + uniform sampler2D tNoise; + + uniform vec3 kernel[ KERNEL_SIZE ]; + + uniform vec2 resolution; + + uniform float cameraNear; + uniform float cameraFar; + uniform mat4 cameraProjectionMatrix; + uniform mat4 cameraInverseProjectionMatrix; + + uniform float kernelRadius; + uniform float minDistance; // avoid artifacts caused by neighbour fragments with minimal depth difference + uniform float maxDistance; // avoid the influence of fragments which are too far away + + varying vec2 vUv; + + #include + + float getDepth( const in vec2 screenPosition ) { + + return texture2D( tDepth, screenPosition ).x; + + } + + float getLinearDepth( const in vec2 screenPosition ) { + + #if PERSPECTIVE_CAMERA == 1 + + float fragCoordZ = texture2D( tDepth, screenPosition ).x; + float viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar ); + return viewZToOrthographicDepth( viewZ, cameraNear, cameraFar ); + + #else + + return texture2D( tDepth, screenPosition ).x; + + #endif + + } + + float getViewZ( const in float depth ) { + + #if PERSPECTIVE_CAMERA == 1 + + return perspectiveDepthToViewZ( depth, cameraNear, cameraFar ); + + #else + + return orthographicDepthToViewZ( depth, cameraNear, cameraFar ); + + #endif + + } + + vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) { + + float clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3]; + + vec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 ); + + clipPosition *= clipW; // unprojection. + + return ( cameraInverseProjectionMatrix * clipPosition ).xyz; + + } + + vec3 getViewNormal( const in vec2 screenPosition ) { + + return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz ); + + } + + void main() { + + float depth = getDepth( vUv ); + float viewZ = getViewZ( depth ); + + vec3 viewPosition = getViewPosition( vUv, depth, viewZ ); + vec3 viewNormal = getViewNormal( vUv ); + + vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 ); + vec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r ); + + // compute matrix used to reorient a kernel vector + + vec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) ); + vec3 bitangent = cross( viewNormal, tangent ); + mat3 kernelMatrix = mat3( tangent, bitangent, viewNormal ); + + float occlusion = 0.0; + + for ( int i = 0; i < KERNEL_SIZE; i ++ ) { + + vec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space + vec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point + + vec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC + samplePointNDC /= samplePointNDC.w; + + vec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates + + float realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture + float sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value + float delta = sampleDepth - realDepth; + + if ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion + + occlusion += 1.0; + + } + + } + + occlusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 ); + + gl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 ); + + }`},jS={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:`varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:`uniform sampler2D tDepth; + + uniform float cameraNear; + uniform float cameraFar; + + varying vec2 vUv; + + #include + + float getLinearDepth( const in vec2 screenPosition ) { + + #if PERSPECTIVE_CAMERA == 1 + + float fragCoordZ = texture2D( tDepth, screenPosition ).x; + float viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar ); + return viewZToOrthographicDepth( viewZ, cameraNear, cameraFar ); + + #else + + return texture2D( tDepth, screenPosition ).x; + + #endif + + } + + void main() { + + float depth = getLinearDepth( vUv ); + gl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 ); + + }`},WS={uniforms:{tDiffuse:{value:null},resolution:{value:new le}},vertexShader:`varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:`uniform sampler2D tDiffuse; + + uniform vec2 resolution; + + varying vec2 vUv; + + void main() { + + vec2 texelSize = ( 1.0 / resolution ); + float result = 0.0; + + for ( int i = - 2; i <= 2; i ++ ) { + + for ( int j = - 2; j <= 2; j ++ ) { + + vec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize; + result += texture2D( tDiffuse, vUv + offset ).r; + + } + + } + + gl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 ); + + }`};var rc=class extends ss{constructor(r,e,i,n){super(),this.width=i!==void 0?i:512,this.height=n!==void 0?n:512,this.clear=!0,this.camera=e,this.scene=r,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();let s=new lf;s.format=gp,s.type=dp,this.beautyRenderTarget=new kr(this.width,this.height),this.normalRenderTarget=new kr(this.width,this.height,{minFilter:Di,magFilter:Di,depthTexture:s}),this.ssaoRenderTarget=new kr(this.width,this.height),this.blurRenderTarget=this.ssaoRenderTarget.clone(),this.ssaoMaterial=new Yt({defines:Object.assign({},zS.defines),uniforms:hn.clone(zS.uniforms),vertexShader:zS.vertexShader,fragmentShader:zS.fragmentShader,blending:Fi}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new hf,this.normalMaterial.blending=Fi,this.blurMaterial=new Yt({defines:Object.assign({},WS.defines),uniforms:hn.clone(WS.uniforms),vertexShader:WS.vertexShader,fragmentShader:WS.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new Yt({defines:Object.assign({},jS.defines),uniforms:hn.clone(jS.uniforms),vertexShader:jS.vertexShader,fragmentShader:jS.fragmentShader,blending:Fi}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new Yt({uniforms:hn.clone(sa.uniforms),vertexShader:sa.vertexShader,fragmentShader:sa.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:Uy,blendDst:ff,blendEquation:Sa,blendSrcAlpha:Hy,blendDstAlpha:ff,blendEquationAlpha:Sa}),this.fsQuad=new na(null),this.originalClearColor=new Ve}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(r,e){switch(r.capabilities.isWebGL2===!1&&(this.noiseTexture.format=YD),r.setRenderTarget(this.beautyRenderTarget),r.clear(),r.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(r,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(r,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(r,this.blurMaterial,this.blurRenderTarget),this.output){case rc.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=Fi,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e);break;case rc.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Fi,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e);break;case rc.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Fi,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e);break;case rc.OUTPUT.Depth:this.renderPass(r,this.depthRenderMaterial,this.renderToScreen?null:e);break;case rc.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=Fi,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e);break;case rc.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=Fi,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=Op,this.renderPass(r,this.copyMaterial,this.renderToScreen?null:e);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(r,e,i,n,s){r.getClearColor(this.originalClearColor);let a=r.getClearAlpha(),o=r.autoClear;r.setRenderTarget(i),r.autoClear=!1,n!=null&&(r.setClearColor(n),r.setClearAlpha(s||0),r.clear()),this.fsQuad.material=e,this.fsQuad.render(r),r.autoClear=o,r.setClearColor(this.originalClearColor),r.setClearAlpha(a)}renderOverride(r,e,i,n,s){r.getClearColor(this.originalClearColor);let a=r.getClearAlpha(),o=r.autoClear;r.setRenderTarget(i),r.autoClear=!1,n=e.clearColor||n,s=e.clearAlpha||s,n!=null&&(r.setClearColor(n),r.setClearAlpha(s||0),r.clear()),this.scene.overrideMaterial=e,r.render(this.scene,this.camera),this.scene.overrideMaterial=null,r.autoClear=o,r.setClearColor(this.originalClearColor),r.setClearAlpha(a)}setSize(r,e){this.width=r,this.height=e,this.beautyRenderTarget.setSize(r,e),this.ssaoRenderTarget.setSize(r,e),this.normalRenderTarget.setSize(r,e),this.blurRenderTarget.setSize(r,e),this.ssaoMaterial.uniforms.resolution.value.set(r,e),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(r,e)}generateSampleKernel(){let r=this.kernelSize,e=this.kernel;for(let i=0;i + varying vec2 vUv; + uniform sampler2D colorTexture; + uniform vec2 texSize; + uniform vec2 direction; + + float gaussianPdf(in float x, in float sigma) { + return 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma; + } + void main() { + vec2 invSize = 1.0 / texSize; + float fSigma = float(SIGMA); + float weightSum = gaussianPdf(0.0, fSigma); + vec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum; + for( int i = 1; i < KERNEL_RADIUS; i ++ ) { + float x = float(i); + float w = gaussianPdf(x, fSigma); + vec2 uvOffset = direction * invSize * x; + vec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb; + vec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb; + diffuseSum += (sample1 + sample2) * w; + weightSum += 2.0 * w; + } + gl_FragColor = vec4(diffuseSum/weightSum, 1.0); + }`})}getCompositeMaterial(r){return new Yt({defines:{NUM_MIPS:r},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:`varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + }`,fragmentShader:`varying vec2 vUv; + uniform sampler2D blurTexture1; + uniform sampler2D blurTexture2; + uniform sampler2D blurTexture3; + uniform sampler2D blurTexture4; + uniform sampler2D blurTexture5; + uniform float bloomStrength; + uniform float bloomRadius; + uniform float bloomFactors[NUM_MIPS]; + uniform vec3 bloomTintColors[NUM_MIPS]; + + float lerpBloomFactor(const in float factor) { + float mirrorFactor = 1.2 - factor; + return mix(factor, mirrorFactor, bloomRadius); + } + + void main() { + gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) + + lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) + + lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) + + lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) + + lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) ); + }`})}};pd.BlurDirectionX=new le(1,0);pd.BlurDirectionY=new le(0,1);var UDe={uniforms:{tDiffuse:{value:null},resolution:{value:new le(1/1024,1/512)}},vertexShader:` + + varying vec2 vUv; + + void main() { + + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); + + }`,fragmentShader:` + precision highp float; + + uniform sampler2D tDiffuse; + + uniform vec2 resolution; + + varying vec2 vUv; + + // FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com) + + //---------------------------------------------------------------------------------- + // File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag + // SDK Version: v3.00 + // Email: gameworks@nvidia.com + // Site: http://developer.nvidia.com/ + // + // Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions + // are met: + // * Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // * Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // * Neither the name of NVIDIA CORPORATION nor the names of its + // contributors may be used to endorse or promote products derived + // from this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY + // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // + //---------------------------------------------------------------------------------- + + #ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 0 + #endif + + /*--------------------------------------------------------------------------*/ + #define FxaaTexTop(t, p) texture2D(t, p, -100.0) + #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), -100.0) + /*--------------------------------------------------------------------------*/ + + #define NUM_SAMPLES 5 + + // assumes colors have premultipliedAlpha, so that the calculated color contrast is scaled by alpha + float contrast( vec4 a, vec4 b ) { + vec4 diff = abs( a - b ); + return max( max( max( diff.r, diff.g ), diff.b ), diff.a ); + } + + /*============================================================================ + + FXAA3 QUALITY - PC + + ============================================================================*/ + + /*--------------------------------------------------------------------------*/ + vec4 FxaaPixelShader( + vec2 posM, + sampler2D tex, + vec2 fxaaQualityRcpFrame, + float fxaaQualityEdgeThreshold, + float fxaaQualityinvEdgeThreshold + ) { + vec4 rgbaM = FxaaTexTop(tex, posM); + vec4 rgbaS = FxaaTexOff(tex, posM, vec2( 0.0, 1.0), fxaaQualityRcpFrame.xy); + vec4 rgbaE = FxaaTexOff(tex, posM, vec2( 1.0, 0.0), fxaaQualityRcpFrame.xy); + vec4 rgbaN = FxaaTexOff(tex, posM, vec2( 0.0,-1.0), fxaaQualityRcpFrame.xy); + vec4 rgbaW = FxaaTexOff(tex, posM, vec2(-1.0, 0.0), fxaaQualityRcpFrame.xy); + // . S . + // W M E + // . N . + + bool earlyExit = max( max( max( + contrast( rgbaM, rgbaN ), + contrast( rgbaM, rgbaS ) ), + contrast( rgbaM, rgbaE ) ), + contrast( rgbaM, rgbaW ) ) + < fxaaQualityEdgeThreshold; + // . 0 . + // 0 0 0 + // . 0 . + + #if (FXAA_DISCARD == 1) + if(earlyExit) FxaaDiscard; + #else + if(earlyExit) return rgbaM; + #endif + + float contrastN = contrast( rgbaM, rgbaN ); + float contrastS = contrast( rgbaM, rgbaS ); + float contrastE = contrast( rgbaM, rgbaE ); + float contrastW = contrast( rgbaM, rgbaW ); + + float relativeVContrast = ( contrastN + contrastS ) - ( contrastE + contrastW ); + relativeVContrast *= fxaaQualityinvEdgeThreshold; + + bool horzSpan = relativeVContrast > 0.; + // . 1 . + // 0 0 0 + // . 1 . + + // 45 deg edge detection and corners of objects, aka V/H contrast is too similar + if( abs( relativeVContrast ) < .3 ) { + // locate the edge + vec2 dirToEdge; + dirToEdge.x = contrastE > contrastW ? 1. : -1.; + dirToEdge.y = contrastS > contrastN ? 1. : -1.; + // . 2 . . 1 . + // 1 0 2 ~= 0 0 1 + // . 1 . . 0 . + + // tap 2 pixels and see which ones are "outside" the edge, to + // determine if the edge is vertical or horizontal + + vec4 rgbaAlongH = FxaaTexOff(tex, posM, vec2( dirToEdge.x, -dirToEdge.y ), fxaaQualityRcpFrame.xy); + float matchAlongH = contrast( rgbaM, rgbaAlongH ); + // . 1 . + // 0 0 1 + // . 0 H + + vec4 rgbaAlongV = FxaaTexOff(tex, posM, vec2( -dirToEdge.x, dirToEdge.y ), fxaaQualityRcpFrame.xy); + float matchAlongV = contrast( rgbaM, rgbaAlongV ); + // V 1 . + // 0 0 1 + // . 0 . + + relativeVContrast = matchAlongV - matchAlongH; + relativeVContrast *= fxaaQualityinvEdgeThreshold; + + if( abs( relativeVContrast ) < .3 ) { // 45 deg edge + // 1 1 . + // 0 0 1 + // . 0 1 + + // do a simple blur + return mix( + rgbaM, + (rgbaN + rgbaS + rgbaE + rgbaW) * .25, + .4 + ); + } + + horzSpan = relativeVContrast > 0.; + } + + if(!horzSpan) rgbaN = rgbaW; + if(!horzSpan) rgbaS = rgbaE; + // . 0 . 1 + // 1 0 1 -> 0 + // . 0 . 1 + + bool pairN = contrast( rgbaM, rgbaN ) > contrast( rgbaM, rgbaS ); + if(!pairN) rgbaN = rgbaS; + + vec2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + + bool doneN = false; + bool doneP = false; + + float nDist = 0.; + float pDist = 0.; + + vec2 posN = posM; + vec2 posP = posM; + + int iterationsUsed = 0; + int iterationsUsedN = 0; + int iterationsUsedP = 0; + for( int i = 0; i < NUM_SAMPLES; i++ ) { + iterationsUsed = i; + + float increment = float(i + 1); + + if(!doneN) { + nDist += increment; + posN = posM + offNP * nDist; + vec4 rgbaEndN = FxaaTexTop(tex, posN.xy); + doneN = contrast( rgbaEndN, rgbaM ) > contrast( rgbaEndN, rgbaN ); + iterationsUsedN = i; + } + + if(!doneP) { + pDist += increment; + posP = posM - offNP * pDist; + vec4 rgbaEndP = FxaaTexTop(tex, posP.xy); + doneP = contrast( rgbaEndP, rgbaM ) > contrast( rgbaEndP, rgbaN ); + iterationsUsedP = i; + } + + if(doneN || doneP) break; + } + + + if ( !doneP && !doneN ) return rgbaM; // failed to find end of edge + + float dist = min( + doneN ? float( iterationsUsedN ) / float( NUM_SAMPLES - 1 ) : 1., + doneP ? float( iterationsUsedP ) / float( NUM_SAMPLES - 1 ) : 1. + ); + + // hacky way of reduces blurriness of mostly diagonal edges + // but reduces AA quality + dist = pow(dist, .5); + + dist = 1. - dist; + + return mix( + rgbaM, + rgbaN, + dist * .5 + ); + } + + void main() { + const float edgeDetectionQuality = .2; + const float invEdgeDetectionQuality = 1. / edgeDetectionQuality; + + gl_FragColor = FxaaPixelShader( + vUv, + tDiffuse, + resolution, + edgeDetectionQuality, // [0,1] contrast needed, otherwise early discard + invEdgeDetectionQuality + ); + + } + `};var RG=Un(Yl(),1);var dNt="bottomBar";var fNt={["stats"]:{icon:{default:"icon-showsectionplane"},mutexIds:["statistics","cameraInfo","tips"],onActive:t=>{t.viewer.showStats()},onDeactive:t=>{t.viewer.hideStats()}},["statistics"]:{icon:{default:"icon-info",active:"icon-info-filled"},mutexIds:["stats","cameraInfo","tips"],onActive:t=>{let r=document.createElement("span");if(!t.viewer.scene){r.textContent="Failed!";return}r.textContent="Comupting...";let e={components:{},points:0,faces:0,materials:{},lights:{}},i=(l,c)=>{if(c.components[l.type]?c.components[l.type]++:c.components[l.type]=1,l.geometry){let p=l.geometry;if(l instanceof Je){if(p.index&&p.index.count){let d=Math.round(p.index.count/3);l instanceof tn&&(d*=l.count),c.faces+=d}else if(p.groups.length>0)for(let d=0;d{c.materials[p]?c.materials[p]++:c.materials[p]=1},h=l.material;h instanceof Gr?u(h.id):Array.isArray(h)&&h.forEach(p=>u(p.id))},n=l=>{var u;let c=(u=l.renderer)==null?void 0:u.domElement;return c==null?void 0:c.dataset.engine},s=["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"];t.viewer.scene.traverse(l=>{(l instanceof Je||l instanceof _r||l instanceof rn)&&!s.includes(l.name)?i(l,e):l instanceof Al&&(e.lights[l.type]?e.lights[l.type]++:e.lights[l.type]=1)});let a=(l,c)=>{r.innerHTML+=`

${l}:${c}

`};r.innerHTML="";let o=` (${n(t.viewer)})`;if(a("Version",`${WT}${o}`),a("Components",JSON.stringify(e.components)),a("Points",e.points),a("Faces",e.faces),a("Materials",Object.keys(e.materials).length),a("Lights",JSON.stringify(e.lights)),t.viewer.name==="DxfViewer"){let l=t.viewer.getEntitiesCount();a("Entities",l)}t.tooltip.setContent(r),t.tooltip.show()},onDeactive:t=>{t.tooltip.hide()},onUpdate:t=>{let r=t.viewer.renderer,e=document.createElement("span"),i=(s,a)=>{e.innerHTML+=`

${s}:${a}

`};e.innerHTML="

-- Renderer Info --

";let n=r==null?void 0:r.info;i("Drawcalls",JSON.stringify(n==null?void 0:n.render.calls)),i("Points",JSON.stringify(n==null?void 0:n.render.points)),i("Lines",JSON.stringify(n==null?void 0:n.render.lines)),i("Triangles",JSON.stringify(n==null?void 0:n.render.triangles)),i("Geometries",JSON.stringify(n==null?void 0:n.memory.geometries)),i("Textures",JSON.stringify(n==null?void 0:n.memory.textures)),t.tooltip.updateChildContent(e)}},["cameraInfo"]:{icon:{default:"icon-view",active:"icon-view-filled"},mutexIds:["stats","statistics","tips"],onActive:t=>{let r=()=>{if(!t.viewer||!t.viewer.camera||!t.viewer.controls)return;let e=t.viewer.camera,i=t.viewer.controls,n=l=>St.numberToString(l),s=l=>St.vectorToString(l),a=e.position,o=i.target;if(a){let l=document.createElement("span");l.innerHTML=` +

Camera position:${s(a)}

+

Camera target:${s(o)}

`,e instanceof Zi&&(l.innerHTML+=` +

top: ${n(e.top)}, bottom: ${n(e.bottom)}, left: ${n(e.left)}, right: ${n(e.right)}

+

zoom: ${n(e.zoom)}

`),t.tooltip.setContent(l)}t.active||window.removeEventListener("mouseup",r)};if(r(),window.addEventListener("mouseup",r),t.viewer.name==="BimViewer"){let e=t.viewer.controls;e==null||e.addEventListener("update",r)}else t.viewer.controls.addEventListener("change",r);t.tooltip.show()},onDeactive:t=>{t.tooltip.hide()}},["tips"]:{icon:{default:"icon-more"},mutexIds:["stats","cameraInfo","cameraInfo"],onActive:t=>{let r=document.createElement("span");t.viewer.name==="BimViewer"?r.innerHTML=` +

W: Move forward

+

A: Move backward

+

S: Move left

+

D: Move right

+

Q: Rise up

+

E: Lower down

+

\u2191: Rotate up

+

\u2193: Rotate down

+

\u2190: Rotate to left

+

\u2192: Rotate to right

+ `:t.viewer.name==="DxfViewer"?r.innerHTML=` +

\u2191: Move up

+

\u2193: Move down

+

\u2190: Move to left

+

\u2192: Move to right

+ `:t.viewer.name==="BaseViewer"?r.innerHTML=` +

\u2191: Rotate up

+

\u2193: Rotate down

+

\u2190: Rotate to left

+

\u2192: Rotate to right

+ `:r.innerHTML=` +

Nothing to show

+ `,t.tooltip.setContent(r),t.tooltip.show()},onDeactive:t=>{t.tooltip.hide()}}},nm=class{constructor(r){this.viewer=r;this.itemList=new Map;this.init()}update(){this.itemList.forEach(r=>{r.update()})}init(){var e;let r=document.createElement("div");r.id=dNt,r.classList.add("bottom-bar"),(0,RG.forEach)(fNt,(i,n)=>{let s=this.createItem(this.viewer,n,i);r.appendChild(s.element)}),this.element=r,(e=this.viewer.widgetContainer)==null||e.appendChild(this.element)}createItem(r,e,i){let n=new wG(r,this,e,i);return this.itemList.set(e,n),n}},wG=class{constructor(r,e,i,n){this.viewer=r;this.bottomBar=e;this.menuId=i;this.cfg=n;this.eventBus=lE();this.active=!1;this.itemconfig=n,this.element=this.createButton(this.menuId,n),this.tooltip=new ph(i+"-tooltip",null,{parentNode:r.widgetContainer}),this.eventBus.on("activeChange",s=>{s?(this.element.classList.add("active"),(0,RG.forEach)(n.mutexIds,a=>{var l;let o=(l=this.bottomBar)==null?void 0:l.itemList.get(a);o&&o.active&&o.setActive(!1)}),n.onActive&&n.onActive(this)):(this.element.classList.remove("active"),n.onDeactive&&n.onDeactive(this)),this.element instanceof HTMLElement&&IC(this.element.classList,n.icon,this.active)})}createButton(r,e){let i=document.createElement("i");i.id=r;let{default:n="icon-new",iconFont:s=ho}=e.icon;return i.classList.add("icon"),i.classList.add(s),i.classList.add(n),i.onclick=()=>{this.active=!this.active,e.onClick&&e.onClick(this),this.eventBus.emit("activeChange",this.active)},i}setActive(r){this.active=r,this.eventBus.emit("activeChange",this.active)}update(){this.active&&this.itemconfig.onUpdate&&this.itemconfig.onUpdate(this)}};var qS=Un(Yl(),1);var mNt="gemini-context-menu",v3=class{constructor(r){this.itemList=[];this.id=r.id||mNt,this.container=r.container||document.body,this.context=r.context||{},this.element=this.createMenuUI(r.items||[]),this.handleClick=()=>{this.hide()},r.hideOnMouseDown!==!1&&document.addEventListener("click",this.handleClick),this.hide()}isEnable(r){return r.getEnabled?r.getEnabled(this.context):r.enabled!==void 0?r.enabled:!0}isShown(r){return r.getShown?r.getShown(this.context):r.shown!==void 0?r.shown:!0}getTitle(r){return r.title||r.getTitle&&r.getTitle(this.context)||""}createMenuUI(r){let e=document.createElement("div");e.id=this.id,e.classList.add("context-menu");let i=this.createMenuGroup(r);return e.append(...i),this.container.appendChild(e),e}createMenuGroup(r){return(0,qS.map)(r,e=>{let i=document.createElement("ul");return(0,qS.forEach)(e,n=>{let s=this.createMenuItem(n);i.append(s)}),i})}createMenuItem(r){let e=document.createElement("li");return e.innerHTML=this.getTitle(r),e.onclick=()=>r.doAction&&r.doAction(this.context),this.isEnable(r)?e.classList.remove("disabled"):e.classList.add("disabled"),this.isShown(r)?e.removeAttribute("hidden"):e.setAttribute("hidden",""),this.itemList.push([r,e]),e}updateMenuItems(){(0,qS.forEach)(this.itemList,([r,e])=>{this.isEnable(r)?e.classList.remove("disabled"):e.classList.add("disabled"),this.isShown(r)?e.removeAttribute("hidden"):e.setAttribute("hidden",""),e.innerHTML=this.getTitle(r)})}showMenuElement(r,e){let i=this.element.offsetHeight,n=this.element.offsetWidth;e+i>window.innerHeight&&(e=window.innerHeight-i-5),r+n>window.innerWidth&&(r=window.innerWidth-n-5),this.element.style.left=r+"px",this.element.style.top=e+"px"}show(r,e){this.updateMenuItems(),this.element.removeAttribute("hidden"),this.showMenuElement(r,e)}hide(){this.element.setAttribute("hidden","")}destroy(){document.removeEventListener("click",this.handleClick),this.container.removeChild(this.element)}};var xo=t=>({bimViewer:r})=>r.translate(`ContextMenu.${t}`),kDe=t=>{var e;let r=0;return(e=t.scene)==null||e.traverseVisible(i=>{i instanceof Je&&r++}),r>0},gNt=t=>{var e,i;let r=0;return(e=t.scene)==null||e.traverse(n=>{n instanceof Je&&r++}),(i=t.scene)==null||i.traverseVisible(n=>{n instanceof Je&&r--}),r>0},MG=t=>t.hasTransparentObject(),y3=t=>t.userData.selectable!==!1,BDe=(t,r,e,i)=>{let n=t.selectedObject;return!n||!r||n.id!==r.id?!1:e!=null&&n.isInstancedMesh?e===n.userData.instanceId:i!=null&&ji.isMergedMesh(n)?i===n.userData.batchId:!0},vNt={getTitle:xo("viewFitEntity"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:r})=>{t.flyToObject(r)}},yNt={getTitle:xo("viewFitAll"),getEnabled:({bimViewer:t})=>kDe(t),doAction:({bimViewer:t})=>t.viewFitAll()},TNt={getTitle:xo("hideEntity"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:r})=>{y3(r)&&(r.visible=!1,t.enableRender())}},ENt={getTitle:xo("hideOthers"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:r})=>{var e;(e=t.scene)==null||e.traverse(i=>{i instanceof Je&&y3(i)&&(i.visible=!1)}),r.visible=!0,t.enableRender()}},bNt={getTitle:xo("hideAll"),getEnabled:({bimViewer:t})=>kDe(t),doAction:({bimViewer:t})=>{var r;(r=t.scene)==null||r.traverse(e=>{e instanceof Je&&y3(e)&&(e.visible=!1)}),t.enableRender()}},xNt={getTitle:xo("showAll"),getEnabled:({bimViewer:t})=>gNt(t),doAction:({bimViewer:t})=>{var r;(r=t.scene)==null||r.traverse(e=>{e instanceof Je&&y3(e)&&(e.visible=!0)}),t.enableRender()}},INt={getTitle:({hit:t,bimViewer:r,instanceId:e,batchId:i})=>BDe(r,t,e,i)?xo("deselect")({bimViewer:r}):xo("select")({bimViewer:r}),getShown:({hit:t})=>t,doAction:({hit:t,bimViewer:r,instanceId:e,batchId:i})=>{if(t.userData.selectable===!1){ne.debug(`[ContextMenu] object(type: ${t.type}, name: ${t.name}) not selectable!`);return}BDe(r,t,e,i)?r.clearSelection():r.selectObject(t,t.instanceId,i)}},SNt={getTitle:xo("selectNone"),getEnabled:({bimViewer:t})=>t.selectedObject,doAction:({bimViewer:t})=>t.clearSelection()},_Nt={getTitle:xo("xRayAll"),getShown:({bimViewer:t})=>!MG(t),doAction:({bimViewer:t})=>{t.addOrRemoveObjectOpacity(!0),t.enableRender()}},wNt={getTitle:xo("xRayNone"),getEnabled:({bimViewer:t})=>MG(t),doAction:({bimViewer:t})=>{MG(t)&&(t.addOrRemoveObjectOpacity(!1),t.enableRender())}},RNt={getTitle:xo("xRayEntity"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:r})=>{t.addOrRemoveObjectOpacity(!0,void 0,[r.id],void 0)}},MNt={getTitle:xo("xRayOthers"),getShown:({hit:t})=>t,doAction:({bimViewer:t,hit:r})=>{t.addOrRemoveObjectOpacity(!0,.1,void 0,[r.id]),t.enableRender()}},DNt={getTitle:({bimViewer:t})=>{let r="";switch(t.sectionType){case"PickPlaneSection":r="*showSectionPlane";break;case"AxisPlaneSection":r="showAxisSection";break;case"ObjectsBoxSection":r="*showSectionBox";break}return t.translate(`ContextMenu.${r}`)},getShown:({bimViewer:t,section:r})=>t.sectionType==="PickPlaneSection"||t.sectionType==="AxisPlaneSection"?!!r&&!r.isShowSectionPlane:!1,doAction:({bimViewer:t,section:r})=>{(t.sectionType==="PickPlaneSection"||t.sectionType==="AxisPlaneSection")&&(r==null||r.setSectionVisible(!0))}},CNt={getTitle:({bimViewer:t})=>{let r="";switch(t.sectionType){case"PickPlaneSection":r="hideSectionPlane";break;case"AxisPlaneSection":r="hideAxisSection";break;case"ObjectsBoxSection":r="hideSectionBox";break}return t.translate(`ContextMenu.${r}`)},getShown:t=>GDe(t),doAction:({bimViewer:t,section:r})=>{(t.sectionType==="PickPlaneSection"||t.sectionType==="AxisPlaneSection")&&(r==null||r.setSectionVisible(!1))}},ANt={getTitle:xo("undoSection"),getShown:t=>GDe(t),doAction:({bimViewer:t,toolbar:r})=>{if(t.sectionType==="PickPlaneSection"){let e=r==null?void 0:r.menuList.get("SectionPlane");e==null||e.setActive(!1)}else if(t.sectionType==="AxisPlaneSection"){let e=r==null?void 0:r.menuList.get("SectionAxis");e==null||e.setActive(!1)}else if(t.sectionType==="ObjectsBoxSection"){let e=r==null?void 0:r.menuList.get("SectionBox");e==null||e.setActive(!1)}}},GDe=({bimViewer:t,hit:r,section:e})=>t.sectionType==="PickPlaneSection"?!!e&&e.isShowSectionPlane&&(r==null?void 0:r.name)===yB:t.sectionType==="AxisPlaneSection"?!!e&&e.isShowSectionPlane&&(r==null?void 0:r.name)===yB:!1,VDe=[[DNt],[CNt,ANt],[vNt,yNt],[TNt,ENt,bNt,xNt],[RNt,MNt,_Nt,wNt],[INt,SNt]];function ONt(t){if(t&&typeof window!="undefined"){var r=document.createElement("style");return r.setAttribute("type","text/css"),r.innerHTML=t,document.head.appendChild(r),t}}function IE(t,r){var e=t.__state.conversionName.toString(),i=Math.round(t.r),n=Math.round(t.g),s=Math.round(t.b),a=t.a,o=Math.round(t.h),l=t.s.toFixed(1),c=t.v.toFixed(1);if(r||e==="THREE_CHAR_HEX"||e==="SIX_CHAR_HEX"){for(var u=t.hex.toString(16);u.length<6;)u="0"+u;return"#"+u}else{if(e==="CSS_RGB")return"rgb("+i+","+n+","+s+")";if(e==="CSS_RGBA")return"rgba("+i+","+n+","+s+","+a+")";if(e==="HEX")return"0x"+t.hex.toString(16);if(e==="RGB_ARRAY")return"["+i+","+n+","+s+"]";if(e==="RGBA_ARRAY")return"["+i+","+n+","+s+","+a+"]";if(e==="RGB_OBJ")return"{r:"+i+",g:"+n+",b:"+s+"}";if(e==="RGBA_OBJ")return"{r:"+i+",g:"+n+",b:"+s+",a:"+a+"}";if(e==="HSV_OBJ")return"{h:"+o+",s:"+l+",v:"+c+"}";if(e==="HSVA_OBJ")return"{h:"+o+",s:"+l+",v:"+c+",a:"+a+"}"}return"unknown format"}var zDe=Array.prototype.forEach,YS=Array.prototype.slice,ht={BREAK:{},extend:function(r){return this.each(YS.call(arguments,1),function(e){var i=this.isObject(e)?Object.keys(e):[];i.forEach(function(n){this.isUndefined(e[n])||(r[n]=e[n])}.bind(this))},this),r},defaults:function(r){return this.each(YS.call(arguments,1),function(e){var i=this.isObject(e)?Object.keys(e):[];i.forEach(function(n){this.isUndefined(r[n])&&(r[n]=e[n])}.bind(this))},this),r},compose:function(){var r=YS.call(arguments);return function(){for(var e=YS.call(arguments),i=r.length-1;i>=0;i--)e=[r[i].apply(this,e)];return e[0]}},each:function(r,e,i){if(r){if(zDe&&r.forEach&&r.forEach===zDe)r.forEach(e,i);else if(r.length===r.length+0){var n=void 0,s=void 0;for(n=0,s=r.length;n1?ht.toArray(arguments):arguments[0];return ht.each(PNt,function(e){if(e.litmus(r))return ht.each(e.conversions,function(i,n){if(XS=i.read(r),T3===!1&&XS!==!1)return T3=XS,XS.conversionName=n,XS.conversion=i,ht.BREAK}),ht.BREAK}),T3},jDe=void 0,b3={hsv_to_rgb:function(r,e,i){var n=Math.floor(r/60)%6,s=r/60-Math.floor(r/60),a=i*(1-e),o=i*(1-s*e),l=i*(1-(1-s)*e),c=[[i,l,a],[o,i,a],[a,i,l],[a,o,i],[l,a,i],[i,a,o]][n];return{r:c[0]*255,g:c[1]*255,b:c[2]*255}},rgb_to_hsv:function(r,e,i){var n=Math.min(r,e,i),s=Math.max(r,e,i),a=s-n,o=void 0,l=void 0;if(s!==0)l=a/s;else return{h:NaN,s:0,v:0};return r===s?o=(e-i)/a:e===s?o=2+(i-r)/a:o=4+(r-e)/a,o/=6,o<0&&(o+=1),{h:o*360,s:l,v:s/255}},rgb_to_hex:function(r,e,i){var n=this.hex_with_component(0,2,r);return n=this.hex_with_component(n,1,e),n=this.hex_with_component(n,0,i),n},component_from_hex:function(r,e){return r>>e*8&255},hex_with_component:function(r,e,i){return i<<(jDe=e*8)|r&~(255<-1?r.length-r.indexOf(".")-1:0}var rCe=function(t){am(r,t);function r(e,i,n){ou(this,r);var s=om(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,i)),a=n||{};return s.__min=a.min,s.__max=a.max,s.__step=a.step,ht.isUndefined(s.__step)?s.initialValue===0?s.__impliedStep=1:s.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(s.initialValue))/Math.LN10))/10:s.__impliedStep=s.__step,s.__precision=WDe(s.__impliedStep),s}return lu(r,[{key:"setValue",value:function(i){var n=i;return this.__min!==void 0&&nthis.__max&&(n=this.__max),this.__step!==void 0&&n%this.__step!==0&&(n=Math.round(n/this.__step)*this.__step),sm(r.prototype.__proto__||Object.getPrototypeOf(r.prototype),"setValue",this).call(this,n)}},{key:"min",value:function(i){return this.__min=i,this}},{key:"max",value:function(i){return this.__max=i,this}},{key:"step",value:function(i){return this.__step=i,this.__impliedStep=i,this.__precision=WDe(i),this}}]),r}(N0);function BNt(t,r){var e=Math.pow(10,r);return Math.round(t*e)/e}var x3=function(t){am(r,t);function r(e,i,n){ou(this,r);var s=om(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,i,n));s.__truncationSuspended=!1;var a=s,o=void 0;function l(){var f=parseFloat(a.__input.value);ht.isNaN(f)||a.setValue(f)}function c(){a.__onFinishChange&&a.__onFinishChange.call(a,a.getValue())}function u(){c()}function h(f){var m=o-f.clientY;a.setValue(a.getValue()+m*a.__impliedStep),o=f.clientY}function p(){We.unbind(window,"mousemove",h),We.unbind(window,"mouseup",p),c()}function d(f){We.bind(window,"mousemove",h),We.bind(window,"mouseup",p),o=f.clientY}return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),We.bind(s.__input,"change",l),We.bind(s.__input,"blur",u),We.bind(s.__input,"mousedown",d),We.bind(s.__input,"keydown",function(f){f.keyCode===13&&(a.__truncationSuspended=!0,this.blur(),a.__truncationSuspended=!1,c())}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return lu(r,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():BNt(this.getValue(),this.__precision),sm(r.prototype.__proto__||Object.getPrototypeOf(r.prototype),"updateDisplay",this).call(this)}}]),r}(rCe);function qDe(t,r,e,i,n){return i+(n-i)*((t-r)/(e-r))}var AG=function(t){am(r,t);function r(e,i,n,s,a){ou(this,r);var o=om(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,i,{min:n,max:s,step:a})),l=o;o.__background=document.createElement("div"),o.__foreground=document.createElement("div"),We.bind(o.__background,"mousedown",c),We.bind(o.__background,"touchstart",p),We.addClass(o.__background,"slider"),We.addClass(o.__foreground,"slider-fg");function c(m){document.activeElement.blur(),We.bind(window,"mousemove",u),We.bind(window,"mouseup",h),u(m)}function u(m){m.preventDefault();var g=l.__background.getBoundingClientRect();return l.setValue(qDe(m.clientX,g.left,g.right,l.__min,l.__max)),!1}function h(){We.unbind(window,"mousemove",u),We.unbind(window,"mouseup",h),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}function p(m){m.touches.length===1&&(We.bind(window,"touchmove",d),We.bind(window,"touchend",f),d(m))}function d(m){var g=m.touches[0].clientX,y=l.__background.getBoundingClientRect();l.setValue(qDe(g,y.left,y.right,l.__min,l.__max))}function f(){We.unbind(window,"touchmove",d),We.unbind(window,"touchend",f),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}return o.updateDisplay(),o.__background.appendChild(o.__foreground),o.domElement.appendChild(o.__background),o}return lu(r,[{key:"updateDisplay",value:function(){var i=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=i*100+"%",sm(r.prototype.__proto__||Object.getPrototypeOf(r.prototype),"updateDisplay",this).call(this)}}]),r}(rCe),iCe=function(t){am(r,t);function r(e,i,n){ou(this,r);var s=om(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,i)),a=s;return s.__button=document.createElement("div"),s.__button.innerHTML=n===void 0?"Fire":n,We.bind(s.__button,"click",function(o){return o.preventDefault(),a.fire(),!1}),We.addClass(s.__button,"button"),s.domElement.appendChild(s.__button),s}return lu(r,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),r}(N0),OG=function(t){am(r,t);function r(e,i){ou(this,r);var n=om(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e,i));n.__color=new Ls(n.getValue()),n.__temp=new Ls(0);var s=n;n.domElement=document.createElement("div"),We.makeSelectable(n.domElement,!1),n.__selector=document.createElement("div"),n.__selector.className="selector",n.__saturation_field=document.createElement("div"),n.__saturation_field.className="saturation-field",n.__field_knob=document.createElement("div"),n.__field_knob.className="field-knob",n.__field_knob_border="2px solid ",n.__hue_knob=document.createElement("div"),n.__hue_knob.className="hue-knob",n.__hue_field=document.createElement("div"),n.__hue_field.className="hue-field",n.__input=document.createElement("input"),n.__input.type="text",n.__input_textShadow="0 1px 1px ",We.bind(n.__input,"keydown",function(m){m.keyCode===13&&h.call(this)}),We.bind(n.__input,"blur",h),We.bind(n.__selector,"mousedown",function(){We.addClass(this,"drag").bind(window,"mouseup",function(){We.removeClass(s.__selector,"drag")})}),We.bind(n.__selector,"touchstart",function(){We.addClass(this,"drag").bind(window,"touchend",function(){We.removeClass(s.__selector,"drag")})});var a=document.createElement("div");ht.extend(n.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),ht.extend(n.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:n.__field_knob_border+(n.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),ht.extend(n.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),ht.extend(n.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),ht.extend(a.style,{width:"100%",height:"100%",background:"none"}),YDe(a,"top","rgba(0,0,0,0)","#000"),ht.extend(n.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),GNt(n.__hue_field),ht.extend(n.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:n.__input_textShadow+"rgba(0,0,0,0.7)"}),We.bind(n.__saturation_field,"mousedown",o),We.bind(n.__saturation_field,"touchstart",o),We.bind(n.__field_knob,"mousedown",o),We.bind(n.__field_knob,"touchstart",o),We.bind(n.__hue_field,"mousedown",l),We.bind(n.__hue_field,"touchstart",l);function o(m){d(m),We.bind(window,"mousemove",d),We.bind(window,"touchmove",d),We.bind(window,"mouseup",c),We.bind(window,"touchend",c)}function l(m){f(m),We.bind(window,"mousemove",f),We.bind(window,"touchmove",f),We.bind(window,"mouseup",u),We.bind(window,"touchend",u)}function c(){We.unbind(window,"mousemove",d),We.unbind(window,"touchmove",d),We.unbind(window,"mouseup",c),We.unbind(window,"touchend",c),p()}function u(){We.unbind(window,"mousemove",f),We.unbind(window,"touchmove",f),We.unbind(window,"mouseup",u),We.unbind(window,"touchend",u),p()}function h(){var m=CG(this.value);m!==!1?(s.__color.__state=m,s.setValue(s.__color.toOriginal())):this.value=s.__color.toString()}function p(){s.__onFinishChange&&s.__onFinishChange.call(s,s.__color.toOriginal())}n.__saturation_field.appendChild(a),n.__selector.appendChild(n.__field_knob),n.__selector.appendChild(n.__saturation_field),n.__selector.appendChild(n.__hue_field),n.__hue_field.appendChild(n.__hue_knob),n.domElement.appendChild(n.__input),n.domElement.appendChild(n.__selector),n.updateDisplay();function d(m){m.type.indexOf("touch")===-1&&m.preventDefault();var g=s.__saturation_field.getBoundingClientRect(),y=m.touches&&m.touches[0]||m,E=y.clientX,b=y.clientY,x=(E-g.left)/(g.right-g.left),S=1-(b-g.top)/(g.bottom-g.top);return S>1?S=1:S<0&&(S=0),x>1?x=1:x<0&&(x=0),s.__color.v=S,s.__color.s=x,s.setValue(s.__color.toOriginal()),!1}function f(m){m.type.indexOf("touch")===-1&&m.preventDefault();var g=s.__hue_field.getBoundingClientRect(),y=m.touches&&m.touches[0]||m,E=y.clientY,b=1-(E-g.top)/(g.bottom-g.top);return b>1?b=1:b<0&&(b=0),s.__color.h=b*360,s.setValue(s.__color.toOriginal()),!1}return n}return lu(r,[{key:"updateDisplay",value:function(){var i=CG(this.getValue());if(i!==!1){var n=!1;ht.each(Ls.COMPONENTS,function(o){if(!ht.isUndefined(i[o])&&!ht.isUndefined(this.__color.__state[o])&&i[o]!==this.__color.__state[o])return n=!0,{}},this),n&&ht.extend(this.__color.__state,i)}ht.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var s=this.__color.v<.5||this.__color.s>.5?255:0,a=255-s;ht.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+s+","+s+","+s+")"}),this.__hue_knob.style.marginTop=(1-this.__color.h/360)*100+"px",this.__temp.s=1,this.__temp.v=1,YDe(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),ht.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+s+","+s+","+s+")",textShadow:this.__input_textShadow+"rgba("+a+","+a+","+a+",.7)"})}}]),r}(N0),kNt=["-moz-","-o-","-webkit-","-ms-",""];function YDe(t,r,e,i){t.style.background="",ht.each(kNt,function(n){t.style.cssText+="background: "+n+"linear-gradient("+r+", "+e+" 0%, "+i+" 100%); "})}function GNt(t){t.style.background="",t.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",t.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",t.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",t.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",t.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var VNt={load:function(r,e){var i=e||document,n=i.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=r,i.getElementsByTagName("head")[0].appendChild(n)},inject:function(r,e){var i=e||document,n=document.createElement("style");n.type="text/css",n.innerHTML=r;var s=i.getElementsByTagName("head")[0];try{s.appendChild(n)}catch(a){}}},zNt=`
+ + Here's the new load parameter for your GUI's constructor: + + + +
+ + Automatically save + values to localStorage on exit. + +
The values saved to localStorage will + override those passed to dat.GUI's constructor. This makes it + easier to work incrementally, but localStorage is fragile, + and your friends may not see the same values you do. + +
+ +
+ +
`,jNt=function(r,e){var i=r[e];return ht.isArray(arguments[2])||ht.isObject(arguments[2])?new HNt(r,e,arguments[2]):ht.isNumber(i)?ht.isNumber(arguments[2])&&ht.isNumber(arguments[3])?ht.isNumber(arguments[4])?new AG(r,e,arguments[2],arguments[3],arguments[4]):new AG(r,e,arguments[2],arguments[3]):ht.isNumber(arguments[4])?new x3(r,e,{min:arguments[2],max:arguments[3],step:arguments[4]}):new x3(r,e,{min:arguments[2],max:arguments[3]}):ht.isString(i)?new UNt(r,e):ht.isFunction(i)?new iCe(r,e,""):ht.isBoolean(i)?new tCe(r,e):null};function WNt(t){setTimeout(t,1e3/60)}var qNt=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||WNt,YNt=function(){function t(){ou(this,t),this.backgroundElement=document.createElement("div"),ht.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),We.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),ht.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var r=this;We.bind(this.backgroundElement,"click",function(){r.hide()})}return lu(t,[{key:"show",value:function(){var e=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),ht.defer(function(){e.backgroundElement.style.opacity=1,e.domElement.style.opacity=1,e.domElement.style.webkitTransform="scale(1)"})}},{key:"hide",value:function(){var e=this,i=function n(){e.domElement.style.display="none",e.backgroundElement.style.display="none",We.unbind(e.domElement,"webkitTransitionEnd",n),We.unbind(e.domElement,"transitionend",n),We.unbind(e.domElement,"oTransitionEnd",n)};We.bind(this.domElement,"webkitTransitionEnd",i),We.bind(this.domElement,"transitionend",i),We.bind(this.domElement,"oTransitionEnd",i),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-We.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-We.getHeight(this.domElement)/2+"px"}}]),t}(),XNt=ONt(`.dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda} +`);VNt.inject(XNt);var XDe="dg",$De=72,ZDe=20,JS="Default",$S=function(){try{return!!window.localStorage}catch(t){return!1}}(),ZS=void 0,KDe=!0,bE=void 0,DG=!1,nCe=[],Tn=function t(r){var e=this,i=r||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),We.addClass(this.domElement,XDe),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=ht.defaults(i,{closeOnTop:!1,autoPlace:!0,width:t.DEFAULT_WIDTH}),i=ht.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),ht.isUndefined(i.load)?i.load={preset:JS}:i.preset&&(i.load.preset=i.preset),ht.isUndefined(i.parent)&&i.hideable&&nCe.push(this),i.resizable=ht.isUndefined(i.parent)&&i.resizable,i.autoPlace&&ht.isUndefined(i.scrollable)&&(i.scrollable=!0);var n=$S&&localStorage.getItem(xE(this,"isLocal"))==="true",s=void 0,a=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return e.parent?e.getRoot().preset:i.load.preset},set:function(p){e.parent?e.getRoot().preset=p:i.load.preset=p,JNt(this),e.revert()}},width:{get:function(){return i.width},set:function(p){i.width=p,LG(e,p)}},name:{get:function(){return i.name},set:function(p){i.name=p,a&&(a.innerHTML=i.name)}},closed:{get:function(){return i.closed},set:function(p){i.closed=p,i.closed?We.addClass(e.__ul,t.CLASS_CLOSED):We.removeClass(e.__ul,t.CLASS_CLOSED),this.onResize(),e.__closeButton&&(e.__closeButton.innerHTML=p?t.TEXT_OPEN:t.TEXT_CLOSED)}},load:{get:function(){return i.load}},useLocalStorage:{get:function(){return n},set:function(p){$S&&(n=p,p?We.bind(window,"unload",s):We.unbind(window,"unload",s),localStorage.setItem(xE(e,"isLocal"),p))}}}),ht.isUndefined(i.parent)){if(this.closed=i.closed||!1,We.addClass(this.domElement,t.CLASS_MAIN),We.makeSelectable(this.domElement,!1),$S&&n){e.useLocalStorage=!0;var o=localStorage.getItem(xE(this,"gui"));o&&(i.load=JSON.parse(o))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=t.TEXT_CLOSED,We.addClass(this.__closeButton,t.CLASS_CLOSE_BUTTON),i.closeOnTop?(We.addClass(this.__closeButton,t.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(We.addClass(this.__closeButton,t.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),We.bind(this.__closeButton,"click",function(){e.closed=!e.closed})}else{i.closed===void 0&&(i.closed=!0);var l=document.createTextNode(i.name);We.addClass(l,"controller-name"),a=UG(e,l);var c=function(p){return p.preventDefault(),e.closed=!e.closed,!1};We.addClass(this.__ul,t.CLASS_CLOSED),We.addClass(a,"title"),We.bind(a,"click",c),i.closed||(this.closed=!1)}i.autoPlace&&(ht.isUndefined(i.parent)&&(KDe&&(bE=document.createElement("div"),We.addClass(bE,XDe),We.addClass(bE,t.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(bE),KDe=!1),bE.appendChild(this.domElement),We.addClass(this.domElement,t.CLASS_AUTO_PLACE)),this.parent||LG(e,i.width)),this.__resizeHandler=function(){e.onResizeDebounced()},We.bind(window,"resize",this.__resizeHandler),We.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),We.bind(this.__ul,"transitionend",this.__resizeHandler),We.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),i.resizable&&KNt(this),s=function(){$S&&localStorage.getItem(xE(e,"isLocal"))==="true"&&localStorage.setItem(xE(e,"gui"),JSON.stringify(e.getSaveObject()))},this.saveToLocalStorageIfPossible=s;function u(){var h=e.getRoot();h.width+=1,ht.defer(function(){h.width-=1})}i.parent||u()};Tn.toggleHide=function(){DG=!DG,ht.each(nCe,function(t){t.domElement.style.display=DG?"none":""})};Tn.CLASS_AUTO_PLACE="a";Tn.CLASS_AUTO_PLACE_CONTAINER="ac";Tn.CLASS_MAIN="main";Tn.CLASS_CONTROLLER_ROW="cr";Tn.CLASS_TOO_TALL="taller-than-window";Tn.CLASS_CLOSED="closed";Tn.CLASS_CLOSE_BUTTON="close-button";Tn.CLASS_CLOSE_TOP="close-top";Tn.CLASS_CLOSE_BOTTOM="close-bottom";Tn.CLASS_DRAG="drag";Tn.DEFAULT_WIDTH=245;Tn.TEXT_CLOSED="Close Controls";Tn.TEXT_OPEN="Open Controls";Tn._keydownHandler=function(t){document.activeElement.type!=="text"&&(t.which===$De||t.keyCode===$De)&&Tn.toggleHide()};We.bind(window,"keydown",Tn._keydownHandler,!1);ht.extend(Tn.prototype,{add:function(r,e){return KS(this,r,e,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(r,e){return KS(this,r,e,{color:!0})},remove:function(r){this.__ul.removeChild(r.__li),this.__controllers.splice(this.__controllers.indexOf(r),1);var e=this;ht.defer(function(){e.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&bE.removeChild(this.domElement);var r=this;ht.each(this.__folders,function(e){r.removeFolder(e)}),We.unbind(window,"keydown",Tn._keydownHandler,!1),JDe(this)},addFolder:function(r){if(this.__folders[r]!==void 0)throw new Error('You already have a folder in this GUI by the name "'+r+'"');var e={name:r,parent:this};e.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[r]&&(e.closed=this.load.folders[r].closed,e.load=this.load.folders[r]);var i=new Tn(e);this.__folders[r]=i;var n=UG(this,i.domElement);return We.addClass(n,"folder"),i},removeFolder:function(r){this.__ul.removeChild(r.domElement.parentElement),delete this.__folders[r.name],this.load&&this.load.folders&&this.load.folders[r.name]&&delete this.load.folders[r.name],JDe(r);var e=this;ht.each(r.__folders,function(i){r.removeFolder(i)}),ht.defer(function(){e.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var r=this.getRoot();if(r.scrollable){var e=We.getOffset(r.__ul).top,i=0;ht.each(r.__ul.childNodes,function(n){r.autoPlace&&n===r.__save_row||(i+=We.getHeight(n))}),window.innerHeight-e-ZDe0&&(r.preset=this.preset,r.remembered||(r.remembered={}),r.remembered[this.preset]=E3(this)),r.folders={},ht.each(this.__folders,function(e,i){r.folders[i]=e.getSaveObject()}),r},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=E3(this),PG(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(r){this.load.remembered||(this.load.remembered={},this.load.remembered[JS]=E3(this,!0)),this.load.remembered[r]=E3(this),this.preset=r,NG(this,r,!0),this.saveToLocalStorageIfPossible()},revert:function(r){ht.each(this.__controllers,function(e){this.getRoot().load.remembered?sCe(r||this.getRoot(),e):e.setValue(e.initialValue),e.__onFinishChange&&e.__onFinishChange.call(e,e.getValue())},this),ht.each(this.__folders,function(e){e.revert(e)}),r||PG(this.getRoot(),!1)},listen:function(r){var e=this.__listening.length===0;this.__listening.push(r),e&&aCe(this.__listening)},updateDisplay:function(){ht.each(this.__controllers,function(r){r.updateDisplay()}),ht.each(this.__folders,function(r){r.updateDisplay()})}});function UG(t,r,e){var i=document.createElement("li");return r&&i.appendChild(r),e?t.__ul.insertBefore(i,e):t.__ul.appendChild(i),t.onResize(),i}function JDe(t){We.unbind(window,"resize",t.__resizeHandler),t.saveToLocalStorageIfPossible&&We.unbind(window,"unload",t.saveToLocalStorageIfPossible)}function PG(t,r){var e=t.__preset_select[t.__preset_select.selectedIndex];r?e.innerHTML=e.value+"*":e.innerHTML=e.value}function $Nt(t,r,e){if(e.__li=r,e.__gui=t,ht.extend(e,{options:function(a){if(arguments.length>1){var o=e.__li.nextElementSibling;return e.remove(),KS(t,e.object,e.property,{before:o,factoryArgs:[ht.toArray(arguments)]})}if(ht.isArray(a)||ht.isObject(a)){var l=e.__li.nextElementSibling;return e.remove(),KS(t,e.object,e.property,{before:l,factoryArgs:[a]})}},name:function(a){return e.__li.firstElementChild.firstElementChild.innerHTML=a,e},listen:function(){return e.__gui.listen(e),e},remove:function(){return e.__gui.remove(e),e}}),e instanceof AG){var i=new x3(e.object,e.property,{min:e.__min,max:e.__max,step:e.__step});ht.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(s){var a=e[s],o=i[s];e[s]=i[s]=function(){var l=Array.prototype.slice.call(arguments);return o.apply(i,l),a.apply(e,l)}}),We.addClass(r,"has-slider"),e.domElement.insertBefore(i.domElement,e.domElement.firstElementChild)}else if(e instanceof x3){var n=function(a){if(ht.isNumber(e.__min)&&ht.isNumber(e.__max)){var o=e.__li.firstElementChild.firstElementChild.innerHTML,l=e.__gui.__listening.indexOf(e)>-1;e.remove();var c=KS(t,e.object,e.property,{before:e.__li.nextElementSibling,factoryArgs:[e.__min,e.__max,e.__step]});return c.name(o),l&&c.listen(),c}return a};e.min=ht.compose(n,e.min),e.max=ht.compose(n,e.max)}else e instanceof tCe?(We.bind(r,"click",function(){We.fakeEvent(e.__checkbox,"click")}),We.bind(e.__checkbox,"click",function(s){s.stopPropagation()})):e instanceof iCe?(We.bind(r,"click",function(){We.fakeEvent(e.__button,"click")}),We.bind(r,"mouseover",function(){We.addClass(e.__button,"hover")}),We.bind(r,"mouseout",function(){We.removeClass(e.__button,"hover")})):e instanceof OG&&(We.addClass(r,"color"),e.updateDisplay=ht.compose(function(s){return r.style.borderLeftColor=e.__color.toString(),s},e.updateDisplay),e.updateDisplay());e.setValue=ht.compose(function(s){return t.getRoot().__preset_select&&e.isModified()&&PG(t.getRoot(),!0),s},e.setValue)}function sCe(t,r){var e=t.getRoot(),i=e.__rememberedObjects.indexOf(r.object);if(i!==-1){var n=e.__rememberedObjectIndecesToControllers[i];if(n===void 0&&(n={},e.__rememberedObjectIndecesToControllers[i]=n),n[r.property]=r,e.load&&e.load.remembered){var s=e.load.remembered,a=void 0;if(s[t.preset])a=s[t.preset];else if(s[JS])a=s[JS];else return;if(a[i]&&a[i][r.property]!==void 0){var o=a[i][r.property];r.initialValue=o,r.setValue(o)}}}}function KS(t,r,e,i){if(r[e]===void 0)throw new Error('Object "'+r+'" has no property "'+e+'"');var n=void 0;if(i.color)n=new OG(r,e);else{var s=[r,e].concat(i.factoryArgs);n=jNt.apply(t,s)}i.before instanceof N0&&(i.before=i.before.__li),sCe(t,n),We.addClass(n.domElement,"c");var a=document.createElement("span");We.addClass(a,"property-name"),a.innerHTML=n.property;var o=document.createElement("div");o.appendChild(a),o.appendChild(n.domElement);var l=UG(t,o,i.before);return We.addClass(l,Tn.CLASS_CONTROLLER_ROW),n instanceof OG?We.addClass(l,"color"):We.addClass(l,NNt(n.getValue())),$Nt(t,l,n),t.__controllers.push(n),n}function xE(t,r){return document.location.href+"."+r}function NG(t,r,e){var i=document.createElement("option");i.innerHTML=r,i.value=r,t.__preset_select.appendChild(i),e&&(t.__preset_select.selectedIndex=t.__preset_select.length-1)}function QDe(t,r){r.style.display=t.useLocalStorage?"block":"none"}function ZNt(t){var r=t.__save_row=document.createElement("li");We.addClass(t.domElement,"has-save"),t.__ul.insertBefore(r,t.__ul.firstChild),We.addClass(r,"save-row");var e=document.createElement("span");e.innerHTML=" ",We.addClass(e,"button gears");var i=document.createElement("span");i.innerHTML="Save",We.addClass(i,"button"),We.addClass(i,"save");var n=document.createElement("span");n.innerHTML="New",We.addClass(n,"button"),We.addClass(n,"save-as");var s=document.createElement("span");s.innerHTML="Revert",We.addClass(s,"button"),We.addClass(s,"revert");var a=t.__preset_select=document.createElement("select");if(t.load&&t.load.remembered?ht.each(t.load.remembered,function(h,p){NG(t,p,p===t.preset)}):NG(t,JS,!1),We.bind(a,"change",function(){for(var h=0;h{let t=lCe[0],r={};for(let e of lCe)if((e==null?void 0:e[1])in document){for(let[n,s]of e.entries())r[t[n]]=s;return r}return!1})(),cCe={change:dd.fullscreenchange,error:dd.fullscreenerror},sl={request(t=document.documentElement,r){return new Promise((e,i)=>{let n=()=>{sl.off("change",n),e()};sl.on("change",n);let s=t[dd.requestFullscreen](r);s instanceof Promise&&s.then(n).catch(i)})},exit(){return new Promise((t,r)=>{if(!sl.isFullscreen){t();return}let e=()=>{sl.off("change",e),t()};sl.on("change",e);let i=document[dd.exitFullscreen]();i instanceof Promise&&i.then(e).catch(r)})},toggle(t,r){return sl.isFullscreen?sl.exit():sl.request(t,r)},onchange(t){sl.on("change",t)},onerror(t){sl.on("error",t)},on(t,r){let e=cCe[t];e&&document.addEventListener(e,r,!1)},off(t,r){let e=cCe[t];e&&document.removeEventListener(e,r,!1)},raw:dd};Object.defineProperties(sl,{isFullscreen:{get:()=>Boolean(document[dd.fullscreenElement])},element:{enumerable:!0,get:()=>{var t;return(t=document[dd.fullscreenElement])!=null?t:void 0}},isEnabled:{enumerable:!0,get:()=>Boolean(document[dd.fullscreenEnabled])}});dd||(sl={isEnabled:!1});var I3=sl;function uCe(t,r,e,i,n,s,a){let o=t.addFolder(r);o.add(e,"x",n,s,a).onChange(i),o.add(e,"y",n,s,a).onChange(i),o.add(e,"z",n,s,a).onChange(i)}var S3=class{constructor(r){this.exploderDict={};this.controls={showGroundGrid:!1,showGrassGround:!1,skyMode:["None","Black Background","White Background","Gradient ramp","Cloudy"],environments:["None","Default (City Streat 64x32)","Venice Sunset","Footprint Court (HDR Labs)","City Street"],homeView:()=>console.log("[DGH] Go to home view"),views:["Top","Bottom","Front","Back","Left","Right"],OrthographicCamera:!1,viewpoints:!1,annotations:!1,takeSnapshot:()=>console.log("[DGH] Taking snapshot..."),fullScreen:()=>console.log("[DGH] Full screen..."),webcam:!1,uploadFile:()=>console.log("[DGH] Upload file..."),showBimTree:!1,showPropertyPanel:!1,transparentMode:!1,showVertexNormals:!1,sectionMode:["No section","Box section","Plane section"],alVisible:!0,alColor:"#cccccc",alIntensity:1,dlColor:"#dddddd",showDlHelper:!1,hlVisible:!0,hlIntensity:1,hlColor:[255,255,255,.6],hlGroundColor:[200,255,200,.6],fogEnabled:!1,fogColor:14540253,fogNearDistance:1,fogFarDistance:1e3,composerEnabled:!1,renderPassEnabled:!1,fxaaEnabled:!1,saoEnabled:!1,ssaoEnabled:!1,outlineEnabled:!1,ssaaEnabled:!1,bloomEnabled:!1,unrealBloomEnabled:!1};this.viewer=r,this.init()}init(){if(!this.viewer||!this.viewer.renderer||!this.viewer.scene)throw new Error("Need to initialize renderer, scene first!");let r=this.viewer,e=this.viewer.scene,i=this.controls;this.gui=new oCe({name:"controls",autoPlace:!0,width:300,closed:!0}),this.gui.domElement.style.opacity="0.6";let n=this.gui.addFolder("Common settings");n.add(i,"showGroundGrid").name("Show ground grid").onChange(m=>{r.groundGrid?r.groundGrid.visible=m:m&&(r.groundGrid=Ks.createGroundGrid(),e.add(r.groundGrid),r.enableRender()),r.enableRender()}),n.add(i,"showGrassGround").name("Show grass ground").onChange(m=>{r.grassGround?r.grassGround.visible=m:m&&ot(this,null,function*(){r.grassGround=yield Ks.createGrassGround(),e.add(r.grassGround),r.enableRender()}),r.enableRender()});let s=n.add(i,"skyMode",i.skyMode).name("Sky mode");s.onChange(m=>{if(r.skyOfGradientRamp&&(r.skyOfGradientRamp.visible=m==="Gradient ramp"),m==="Black Background")e.background=new Ve(0);else if(m==="White Background")e.background=new Ve(16777215);else if(m==="Gradient ramp")r.skyOfGradientRamp||(r.skyOfGradientRamp=Xo.createSkyOfGradientRamp(),e.add(r.skyOfGradientRamp)),r.skyOfGradientRamp.visible=!0;else if(m==="Cloudy"){let g=["right.jpg","left.jpg","top.jpg","bottom.jpg","front.jpg","back.jpg"];g=g.map(y=>`${window.location.origin}/images/skybox/cloudy/${y}`),Xo.createSkyFromTextures(g).then(y=>{e.background=y})}else e.background=r.sceneBackgroundColor;r.enableRender()}),s.setValue("Gradient ramp"),n.add(i,"environments",i.environments).name("Environments").onChange(m=>{let g="";if(m==="Default (City Streat 64x32)"){if(r.pmremGenerator){Lc.createEnvTextureFromDataArray(r.pmremGenerator).then(y=>{e.environment=y}),r.enableRender();return}}else m==="Venice Sunset"?g="venice_sunset_1k.hdr":m==="Footprint Court (HDR Labs)"?g="footprint_court_2k.hdr":m==="City Street"&&(g="city_street_256.hdr");g===""?e.environment=null:(g=`${window.location.origin}/images/envmap/${g}`,Lc.createEnvTexture(r.pmremGenerator,g).then(y=>{e.environment=y})),r.enableRender()}),n.add(i,"homeView").name("Go to home view").onChange(()=>{r.goToHomeView()}),n.add(i,"views",i.views).name("Views").onChange(m=>{var x;let g=new A,y=new A,E=vn.getVisibleObjectBoundingBox(e),b=bs.getCameraDirectionByView(m);bs.getCameraPositionByBboxAndDirection(E,g,y,(x=r.camera)==null?void 0:x.projectionMatrix,b),r.flyTo(g,y)}),n.add(i,"OrthographicCamera").name("Orth Camera").onChange(m=>{r.setToOrthographicCamera(m)}),n.add(i,"takeSnapshot").name("Take snapshot").onChange(()=>{}),n.add(i,"fullScreen").name("Full screen").onChange(()=>{I3&&I3.isEnabled&&I3.request(),r.enableRender()}),n.add(i,"uploadFile").name("Upload file").onChange(()=>{new CS(r).openFileBrowserToUpload()});let o=this.gui.addFolder("Model operations");o.add(i,"transparentMode",i.transparentMode).name("Transparent mode").onChange(m=>{r.addOrRemoveObjectOpacity(m),r.enableRender()}),o.add(i,"showVertexNormals",i.showVertexNormals).name("Show Vertex Normals").onChange(m=>{r.showVertexNormals(m),r.enableRender()}),o.add(i,"sectionMode",i.sectionMode).name("Section mode").onChange(m=>{m==="No section"?r.deactivateSection():m==="Box section"?r.activateSection("ObjectsBoxSection"):m==="Plane section"&&r.activateSection("PickPlaneSection"),r.enableRender()});let l=this.viewer.ambientLight,c=this.gui.addFolder("Ambient light");c.add(i,"alVisible",i.alVisible).name("visible").onChange(m=>{l&&(l.visible=m),r.enableRender()}),c.addColor(i,"alColor").name("color").onChange(m=>{l&&(l.color=new Ve(m)),r.enableRender()}),c.add(i,"alIntensity",0,5).name("intensity").onChange(m=>{l&&(l.intensity=m),r.enableRender()});let u=this.viewer.directionalLight;if(u){let m=this.gui.addFolder("Directional light");m.add(u,"visible").name("visible").onChange(E=>{u&&(u.visible=E),r.enableRender()}),m.addColor(i,"dlColor").name("color").onChange(E=>{u&&(u.color=new Ve(E)),r.enableRender()}),m.add(u,"intensity",0,5).name("intensity").onChange(E=>{u&&(u.intensity=E),r.enableRender()}),m.add(u,"castShadow").name("castShadow").onChange(E=>{u&&(u.castShadow=E),r.enableRender()}),m.add(i,"showDlHelper").name("showDlHelper").onChange(E=>{r.showDirectionalLightHelper(E),r.enableRender()});let g=()=>{r.updateDirectionalLight(),r.enableRender()};uCe(m,"position",u.position,g),uCe(m,"target",u.target.position,g);let y=m.addFolder("shadow");y.add(u.shadow.camera,"near").name("near").onChange(g),y.add(u.shadow.camera,"far").name("far").onChange(g),y.add(u.shadow.camera,"zoom").name("zoom").onChange(g)}let h=this.viewer.hemisphereLight,p=this.gui.addFolder("Hemisphere Light");p.add(i,"hlVisible",i.hlVisible).name("visible").onChange(m=>{h&&(h.visible=m),r.enableRender()}),p.add(i,"hlIntensity",0,5).name("intensity").onChange(m=>{h&&(h.intensity=m),r.enableRender()}),p.addColor(i,"hlColor").name("color").onChange(m=>{h&&(h.color=new Ve(m)),r.enableRender()}),p.addColor(i,"hlGroundColor").name("groundColor").onChange(m=>{h&&(h.groundColor=new Ve(m)),r.enableRender()});let d=this.gui.addFolder("Fog");d.add(i,"fogEnabled",i.fogEnabled).name("Enabled").onChange(m=>{m?e.fog=new Uu(i.fogColor,i.fogNearDistance,i.fogFarDistance):e.fog=null,r.enableRender()}),d.add(i,"fogNearDistance",0,100).name("Near").onChange(m=>{i.fogEnabled&&e&&(e.fog=new Uu(i.fogColor,m,i.fogFarDistance)),r.enableRender()}),d.add(i,"fogFarDistance",100,2e3).name("Far").onChange(m=>{i.fogEnabled&&e&&(e.fog=new Uu(i.fogColor,i.fogNearDistance,m)),r.enableRender()});let f=this.gui.addFolder("Composer");f.add(i,"composerEnabled",i.composerEnabled).name("Composer Enabled").onChange(m=>{r.enableComposer(m)}),f.add(i,"renderPassEnabled",i.renderPassEnabled).name("RenderPass Enabled").onChange(m=>{r.enableRenderPass(m)}),f.add(i,"fxaaEnabled",i.fxaaEnabled).name("Effect FXAA Enabled").onChange(m=>{r.enableFxaaPass(m)}),f.add(i,"saoEnabled",i.saoEnabled).name("SAO Enabled").onChange(m=>{r.enableSaoPass(m)}),f.add(i,"ssaoEnabled",i.ssaoEnabled).name("SSAO Enabled").onChange(m=>{r.enableSsaoPass(m)}),f.add(i,"outlineEnabled",i.outlineEnabled).name("OutlinePass Enabled").onChange(m=>{r.enableOutlinePass(m)}),f.add(i,"ssaaEnabled",i.ssaaEnabled).name("SSAA Enabled").onChange(m=>{r.enableSsaaPass(m)}),f.add(i,"bloomEnabled",i.bloomEnabled).name("Bloom Enabled").onChange(m=>{r.enableBloomPass(m)}),f.add(i,"unrealBloomEnabled",i.unrealBloomEnabled).name("Unreal Bloom Enabled").onChange(m=>{r.enableUnrealBloomPass(m)})}setExplodeMode(r,e=!1){!this.viewer||!this.viewer.scene||!this.viewer.loadedModels||!this.exploderDict||(r?vn.explodeObjects(this.viewer.scene,this.exploderDict,Object.values(this.viewer.loadedModels).map(i=>i.id),e):vn.unexplodeObjects(this.viewer.scene,this.exploderDict||{}))}open(){this.gui&&this.gui.open()}close(){this.gui&&this.gui.close()}beforeDestroy(){this.viewer=void 0,this.gui&&this.gui.destroy(),this.gui=void 0,this.exploderDict=[]}};var _3=class{constructor(){this.vertexShader=` + varying vec2 vUv; + void main( void ) { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); + }`;this.fragmentShader=` + uniform vec3 keyColor; + uniform float similarity; + uniform float smoothness; + varying vec2 vUv; + uniform sampler2D map; + void main() { + vec4 videoColor = texture2D(map, vUv); + + float Y1 = 0.299 * keyColor.r + 0.587 * keyColor.g + 0.114 * keyColor.b; + float Cr1 = keyColor.r - Y1; + float Cb1 = keyColor.b - Y1; + + float Y2 = 0.299 * videoColor.r + 0.587 * videoColor.g + 0.114 * videoColor.b; + float Cr2 = videoColor.r - Y2; + float Cb2 = videoColor.b - Y2; + + float blend = smoothstep(similarity, similarity + smoothness, distance(vec2(Cr2, Cb2), vec2(Cr1, Cb1))); + gl_FragColor = vec4(videoColor.rgb, videoColor.a * blend); + }`;let r=document.createElement("video");this.webcam=r;let e={video:{width:600,height:400}};navigator.mediaDevices.getUserMedia(e).then(s=>{r.srcObject=s,r.onloadedmetadata=()=>{r.setAttribute("autoplay","true"),r.setAttribute("playsinline","true"),r.play()}}).catch(function(s){alert(s.name+": "+s.message)}),this.webcamCanvas=document.createElement("canvas");let i=this.webcamCanvas.getContext("2d");this.canvasCtx=i,i.fillStyle="#000000",i.fillRect(0,0,this.webcamCanvas.width,this.webcamCanvas.height);let n=new Hi(this.webcamCanvas);this.webcamTexture=n,n.minFilter=ai,n.magFilter=ai,this.shaderMaterial=new Yt({transparent:!0,uniforms:{map:{value:n},keyColor:{value:[0,1,0]},similarity:{value:.3},smoothness:{value:0}},vertexShader:this.vertexShader,fragmentShader:this.fragmentShader})}getShaderMaterial(){return this.shaderMaterial}createWebCamPlane(r=5,e=4){let i=new ts(r,e);return new Je(i,this.shaderMaterial)}animate(){this.webcam.readyState===this.webcam.HAVE_ENOUGH_DATA&&(this.canvasCtx.drawImage(this.webcam,0,0,this.webcamCanvas.width,this.webcamCanvas.height),this.webcamTexture.needsUpdate=!0)}};var hCe=new A,pCe=new zi,BG=class extends Jf{constructor(e,i){var n;super(e);this.name="BimViewer";this.timer=Date.now();this.selectedObject=void 0;this.sceneBackgroundColor=new Ve(15463159);this.loadedModels={};this.loaded3dTiles={};this.composerRenderEnabled=!0;this.composerEnabled=!1;this.savedMaterialsForOpacity=[];this.mouseMoved=!1;this.mouseDoubleClicked=!1;this.raf=new uT;this.renderEnabled=!0;this.isFrustumInsectChecking=!1;this.lastFrameExecuteTime=Date.now();this.maxFps=60;this.events=[];this.settings=sT;this.jobCount=0;this.twoDModelCount=0;this.bbox=new Ot;this.onResize=()=>{var i;let e=(i=this.renderer)==null?void 0:i.domElement;e&&e.parentElement&&this.resize(e.parentElement.clientWidth,e.parentElement.clientHeight)};this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout(()=>{this.renderEnabled=!1,this.composerRenderEnabled=!0},e))};this.applyOptionsAndAddToScene=(e,i,n)=>{ne.info(`[BimViewer] '${e}' is loaded in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),this.timer=Date.now();let s=n.src&&n.src.toLowerCase();if(s&&s.endsWith("dxf")&&this.twoDModelCount++,n.matrix&&n.matrix.length===16){let l=new Ue;l.elements=n.matrix,i.applyMatrix4(l)}else{let l=n.position||[0,0,0],c=n.rotation||[0,0,0],u=n.scale||[1,1,1];i.position.set(l[0],l[1],l[2]),i.rotation.set(c[0]*Math.PI/180,c[1]*Math.PI/180,c[2]*Math.PI/180),i.scale.set(u[0],u[1],u[2])}i.matrixAutoUpdate=!1,i.updateMatrix(),i.traverse(l=>{!!1&&l.matrixAutoUpdate&&(l.matrixAutoUpdate=!1,l.updateMatrix())});let a=n.instantiate,o=n.merge;a?setTimeout(()=>{this.instantiate(i),setTimeout(()=>{o&&this.merge(i),this.addLoadedModelToScene(i,n)},0)},0):o?setTimeout(()=>{this.merge(i),setTimeout(()=>this.addLoadedModelToScene(i,n),0)},0):this.addLoadedModelToScene(i,n)};this.updateOrbPoint=()=>{var e;((e=this.anchor)==null?void 0:e.className.indexOf("active"))!==-1&&this.lastOrbPoint&&this.controls&&this.controls.setOrbitPoint(this.lastOrbPoint)};this.onPointerDown=e=>{var i,n;!((i=this.controls)!=null&&i.enableRotate)||!this.renderer||(n=this.sectionManager)!=null&&n.isSectionActive()||this.setOrbitPoint(e)};this.onAnchorPointerUp=()=>{this.anchor&&(this.anchor.className="anchor")};this.viewerCfg=Ur(Ur({},vDe),e),ne.info("[BimViewer]","viewerCfg:",this.viewerCfg),this.settings=sT,this.cameraCfg=i,this.cameraCfg&&this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg&&this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.increaseJobCount(),this.init(),this.animate(),this.renderer&&((n=this.viewerContainer)==null||n.append(this.renderer.domElement)),window.addEventListener("resize",this.onResize),window.addEventListener("keyup",s=>{s.altKey&&s.code==="KeyR"&&this.flyToRandomObject()}),this.decreaseJobCount(),ne.info(`[BimViewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initPointerEvents(),e.enableDatGui===!0&&this.initDatGui(),this.initOthers(),e.enableAxisGizmo===!0&&(this.axes=this.initAxes()),e.enableStats===!0&&(this.stats=this.initStats()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar()),e.enableNavCube&&(this.navCube=this.initNavCube()),e.enableContextMenu&&(this.contextMenu=this.initContextMenu())}initScene(){this.scene=new On,this.scene.matrixAutoUpdate=!1}initRenderer(){this.renderer=new Pl({antialias:!0,preserveDrawingBuffer:!0}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.outputEncoding=yr,this.renderer.toneMappingExposure=1,this.renderer.physicallyCorrectLights=!0,this.renderer.setClearColor(11119017,1),this.renderer.shadowMap.enabled=!0,this.renderer.shadowMap.type=Ly,St.printGpuInfo(this.renderer.getContext()),this.pmremGenerator=new yp(this.renderer),this.pmremGenerator.compileEquirectangularShader(),this.enableOverlayRenderer&&(this.overlayRender=new Dr(this)),this.setEnvironmentFromDataArray()}initCamera(){this.scene&&(this.perspectiveCamera=new qr(45,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.perspectiveCamera.layers.enable(11),this.perspectiveCamera.position.set(0,100,0),this.scene.add(this.perspectiveCamera),this.camera=this.perspectiveCamera)}initControls(e=!1){if(!this.renderer)return;aT.printDeviceInfo();let i=e?this.orthoCamera:this.perspectiveCamera;if(!i)return;let n;(!this.perspectiveCameraControls||!this.orthoCameraConrols)&&(n=new fO(i,this.renderer.domElement),n.dollyToCursor=!1,n.enableDamping=!0,n.dampingFactor=.5,n.enabled=!0,n.keyPanSpeed=10,n.keys={LEFT:"KeyD",UP:"KeyE",RIGHT:"KeyA",BOTTOM:"KeyQ"},n.listenToKeyEvents(document.body),n.update()),n&&(e?(this.orthoCameraConrols=n,n.minZoom=3):(this.perspectiveCameraControls=n,this.bbox&&(n.minDistance=.1,n.maxDistance=this.bbox.getSize(new A).length()*3)),this.controls=n,this.addEvent(n,"update",this.onControlsChange(this)),this.addEvent(window,"keydown",this.onKeyDown(this)))}initRotateToCursor(){var e,i,n;this.anchor=this.createAnchor(),(e=this.renderer)==null||e.domElement.addEventListener("pointerdown",this.onPointerDown),(i=this.renderer)==null||i.domElement.addEventListener("pointerup",this.onAnchorPointerUp),(n=this.controls)==null||n.addEventListener("update",this.updateOrbPoint)}onControlsChange(e){return()=>{e.enableRender()}}onKeyDown(e){return i=>{let n=e.camera,s=e.controls;if(!n||!s)return;let a=this.settings.keyboard.sensitivity||3,o=s.position,l=s.target,c=l.clone();if(i.code==="ArrowLeft"||i.code==="ArrowRight"){let h=Math.PI*a/180;i.code==="ArrowLeft"&&(h=-h),c.x=(l.x-o.x)*Math.cos(h)-(l.z-o.z)*Math.sin(h)+o.x,c.z=(l.z-o.z)*Math.cos(h)+(l.x-o.x)*Math.sin(h)+o.z,s.target=c,s.update()}else if(i.code==="ArrowUp"||i.code==="ArrowDown"){let h=Math.PI*a/180,d=new A(l.x-o.x,l.y-o.y,l.z-o.z).length(),f=l.y-o.y;i.code==="ArrowDown"&&(h=-h);let m=Math.asin(f/d)+h;if(m<-Math.PI/2||m>Math.PI/2)return;let g=Math.sin(m)*d;c.y=l.y+(g-f),s.target=c,s.update()}else if(i.code==="KeyW"){let u=a*.01,h=o.distanceTo(l);h0){let h=u.find(p=>{let d=p.object;return d.visible&&d instanceof Je});if(h&&h.point&&this.camera&&this.controls){let p=this.camera.position,d=h.point,f=this.controls.target,m=p.distanceTo(d);if(m>n.near&&m{if(!e.mouseDoubleClicked){switch(i.button){case bi.LEFT:{e.handleMouseClick(i);break}case bi.MIDDLE:break;case bi.RIGHT:{e.handleRightClick(i);break}default:}e.enableRender()}}}initLights(){if(!this.scene)return;let e=16777215,i=1.5,n=new $s(e,i);n.name="sun",n.castShadow=!0,n.position.set(-2,2,4),n.shadow.autoUpdate=!1,n.shadow.mapSize.width=1024,n.shadow.mapSize.height=1024,this.directionalLight=n,this.scene.add(n),this.scene.add(n.target),this.directionalLightHelper=new Ex(this.directionalLight),this.directionalLightHelper.traverse(s=>{s.layers.set(11)}),this.directionalLightHelper.visible=!1,this.scene.add(this.directionalLightHelper),this.shadowCameraHelper=new bx(this.directionalLight.shadow.camera),this.shadowCameraHelper.layers.set(11),this.shadowCameraHelper.visible=!1,this.scene.add(this.shadowCameraHelper),this.ambientLight=new Ol(3158064),this.hemisphereLight=new pf(e,14540253,2),this.hemisphereLight.position.set(0,300,0),this.scene.add(this.ambientLight),this.scene.add(this.hemisphereLight)}initPointerEvents(){if(!this.renderer||!this.camera||!this.controls)return;let e=-1,i=-1;this.renderer.domElement.addEventListener("pointerdown",n=>{e=n.x,i=n.y,this.mouseMoved=!1,setTimeout(()=>{this.dynamicallyUpdateControllerTarget()},10),this.enableRender()}),this.renderer.domElement.addEventListener("pointermove",n=>{this.section&&this.enableRender(),e>=0&&i>=0&&(Math.abs(n.x-e)>5||Math.abs(n.y-i)>5)&&(this.mouseMoved=!0)}),this.renderer.domElement.addEventListener("pointerup",n=>{var s;!this.mouseMoved&&!this.mouseDoubleClicked&&!this.section&&!((s=this.measurementManager)!=null&&s.isMeasurementActive())&&setTimeout(this.onPointerUp(this,n),200),this.mouseDoubleClicked&&setTimeout(()=>{this.mouseDoubleClicked=!1},200),e=-1,i=-1}),this.renderer.domElement.addEventListener("dblclick",n=>{var s;this.mouseDoubleClicked=!0,!this.mouseMoved&&!this.section&&!((s=this.measurementManager)!=null&&s.isMeasurementActive())&&(this.handleMouseClick(n),this.flyToSelectedObject(),this.enableRender())}),this.initRotateToCursor(),this.raycaster=new Oc}initDatGui(){this.datGui=new S3(this),this.datGui.close()}initSpinner(){var s;if(!this.viewerCfg.enableSpinner)return;let i=document.createElement("div");i.classList.add("bim-viewer-spinner");let n=document.createElement("div");n.classList.add(ho,"icon-loading"),i.append(n),(s=this.widgetContainer)==null||s.appendChild(i),this.spinner=i,this.setSpinnerVisibility(this.jobCount>0)}initOthers(){if(!this.scene||!this.renderer||!this.camera)return;let e=this.datGui&&this.datGui.controls;e&&(e.showGroundGrid&&(this.groundGrid=Ks.createGroundGrid(),this.scene.add(this.groundGrid)),e.showGrassGround&&ot(this,null,function*(){this.grassGround=yield Ks.createGrassGround(),this.scene&&this.scene.add(this.grassGround),this.enableRender()}),e.webcam&&this.enableWebCam(),this.composerEnabled=e.composerEnabled,this.composerEnabled&&(this.enableComposer(!0),this.enableRenderPass(e.renderPassEnabled),this.enableFxaaPass(e.fxaaEnabled),this.enableSaoPass(e.saoEnabled),this.enableSsaoPass(e.ssaoEnabled),this.enableOutlinePass(e.outlineEnabled),this.enableSsaaPass(e.ssaaEnabled),this.enableBloomPass(e.bloomEnabled),this.enableUnrealBloomPass(e.unrealBloomEnabled))),this.renderer.domElement.style.outlineWidth="0"}initNavCube(){var n;let e=document.createElement("div");e.id="navCube";let i=new BO;return i.renderer&&(e.appendChild(i.renderer.domElement),i.setHostViewer(this)),(n=this.widgetContainer)==null||n.appendChild(e),i}initAxes(){var n,s;let e=document.createElement("div");e.classList.add("axesRenderer");let i=new If(e,this.camera);return(n=this.widgetContainer)==null||n.append(e),this.axesInScene=new iT(!1),(s=this.scene)==null||s.add(this.axesInScene),i}initStats(){var n;let e=u3();e.setMode(0);let i=document.createElement("div");return i.classList.add("statsOutput"),i.appendChild(e.domElement),(n=this.widgetContainer)==null||n.append(i),e}initContextMenu(){let e=new v3({items:VDe,context:{bimViewer:this,toolbar:this.toolbar,section:this.section},container:this.widgetContainer});return window.oncontextmenu=i=>i.preventDefault(),e}initToolbar(){let e=this.viewerCfg;return new vh(this,(0,lm.merge)(fDe,e.toolbarMenuConfig))}initBottomBar(){return new nm(this)}get has2dModel(){return this.twoDModelCount>0}showContextMenu(e){if(!this.contextMenu||!this.widgetContainer)return;let i=this.getAllIntersections(e);ne.debug("[BimViewer] showContextMenu intersections = ",i);let n=(0,lm.find)(i,h=>{let p=h.object;return p instanceof Je&&p.visible}),s=this.contextMenu.context,a=n==null?void 0:n.instanceId,o=n==null?void 0:n.faceIndex,l;o&&(l=ji.getBatchIdByFaceIndex(n==null?void 0:n.object,o)),this.contextMenu.context=Mn(Ur({},s),{hit:n==null?void 0:n.object,instanceId:a,batchId:l});let{x:c,y:u}=Mr.getScreenPointByEvent(e,this.widgetContainer);this.contextMenu.show(c,u)}handleRightClick(e){this.showContextMenu(e)}sycnCameraPosition(e,i){let n=e.position;if(i.position.set(n.x,n.y,n.z),this.scene){let s=this.scene.position;i.lookAt(s)}}sycnControls(e,i,n){let s=n,a=e.target;i.center?i.center.set(s.x,s.y,s.z):i.center=s.clone(),i.position=e.position,i.target=a,i.update()}setToOrthographicCamera(e=!1){var o;if(!this.scene||!this.controls)return;let i=this.perspectiveCamera,n=this.perspectiveCameraControls,s=this.orthoCamera,a=this.orthoCameraConrols;e?(s||(s=new Zi(-this.width/2,this.width/2,this.height/2,-this.height/2,this.settings.camera.near,this.settings.camera.far),s.layers.enable(11),s.position.set(0,100,0),s.zoom=10,s.updateProjectionMatrix(),this.scene&&this.scene.add(s),this.orthoCamera=s),a||(this.initControls(!0),a=this.orthoCameraConrols),i&&(this.sycnCameraPosition(i,s),s.zoom=10,s.updateProjectionMatrix()),n&&a&&i&&this.sycnControls(n,a,i.position),this.camera=s,this.controls=a):(i&&s&&this.sycnCameraPosition(s,i),n&&a&&s&&this.sycnControls(a,n,s.position),this.camera=i,this.controls=n),(o=this.axes)==null||o.setHostCamera(this.camera),this.resize(this.width,this.height),this.dispatchEvent("CameraChanged")}animate(){var e,i;if(requestAnimationFrame(this.animate.bind(this)),this.maxFps>0){if(Date.now()-this.lastFrameExecuteTime<1e3/this.maxFps)return;this.lastFrameExecuteTime=Date.now()}this.webcam&&this.webcam.animate(),this.controls&&this.controls.update(),this.scene&&this.camera&&this.renderEnabled&&(this.update3dTiles(),this.renderer&&this.renderer.render(this.scene,this.camera),this.dispatchEvent("RenderAfter")),this.composerRenderEnabled&&this.composer&&this.composerEnabled&&(this.composer.render(),this.composerRenderEnabled=!1),this.frustrumCullingByModelBBox(),(e=this.stats)==null||e.update(),(i=this.bottomBar)==null||i.update()}update3dTiles(){if(!this.camera)return;let e=Object.values(this.loaded3dTiles);e.length!==0&&(this.camera.updateMatrixWorld(),e.forEach(i=>{i.renderer.update()}))}frustrumCullingByModelBBox(){let e=new eo,i=new Ue;this.isFrustumInsectChecking=!0,this.camera&&(i.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),e.setFromProjectionMatrix(i),Object.values(this.loadedModels).forEach(n=>{let s=this.scene&&this.scene.getObjectById(n.id),a=n.bbox;s&&a&&this.scene&&(typeof s.userData._visible=="undefined"&&(s.userData._visible=!0,Object.defineProperties(s,{visible:{set:o=>{s.userData._visible=o,this.isFrustumInsectChecking||(s.userData.userConfigVisibility=!0)},get:()=>s.userData._visible}})),typeof s.userData.userConfigVisibility=="undefined"&&(a.geometry.computeBoundingBox(),a.geometry.boundingBox&&(s.visible=e.intersectsBox(a.geometry.boundingBox))))}),Object.values(this.loaded3dTiles).forEach(n=>{let s=n.renderer.group;s&&!n.bbox.isEmpty()&&this.scene&&(typeof s.userData._visible=="undefined"&&(s.userData._visible=!0,Object.defineProperties(s,{visible:{set:a=>{s.userData._visible=a,this.isFrustumInsectChecking||(s.userData.userConfigVisibility=!0)},get:()=>s.userData._visible}})),typeof s.userData.userConfigVisibility=="undefined"&&(s.visible=e.intersectsBox(n.bbox)))})),this.isFrustumInsectChecking=!1}destroy(){var i,n,s;this.events.forEach(a=>a.node.removeEventListener(a.type,a.func)),this.events=[],this.datGui&&this.datGui.gui&&(this.datGui.beforeDestroy(),this.datGui=void 0);let e=this.webcamPlane;this.scene&&e&&(this.scene.remove(e),e.geometry.dispose(),e.material.dispose(),this.webcamPlane=void 0),this.webcam=void 0,this.composer=void 0,this.renderPass=void 0,this.effectFxaaPass=void 0,this.saoPass=void 0,this.ssaoPass=void 0,this.outlinePass=void 0,this.ambientLight=void 0,this.directionalLight=void 0,this.hemisphereLight=void 0,this.directionalLightHelper&&(this.directionalLightHelper.dispose(),this.directionalLightHelper=void 0),this.controls&&(this.disposeRotateToCursor(),this.controls.dispose(),this.controls=void 0),this.perspectiveCameraControls&&(this.perspectiveCameraControls.dispose(),this.perspectiveCameraControls=void 0),this.shadowCameraHelper&&(this.shadowCameraHelper.dispose(),this.shadowCameraHelper=void 0),this.stats=void 0,this.raycaster=void 0,this.selectedObject=void 0,this.groundGrid&&(this.groundGrid.geometry.dispose(),this.groundGrid.material.dispose(),this.groundGrid.clear(),this.groundGrid=void 0),this.grassGround&&(this.grassGround.geometry.dispose(),this.grassGround.material.dispose(),this.grassGround.clear(),this.grassGround=void 0),this.skyOfGradientRamp&&(this.skyOfGradientRamp.geometry.dispose(),this.skyOfGradientRamp.material.dispose(),this.skyOfGradientRamp.clear(),this.skyOfGradientRamp=void 0),this.savedMaterialsForOpacity=void 0,this.section=void 0,this.sectionType=void 0,Object.keys(this.loadedModels).forEach(a=>{delete this.loadedModels[a]}),Object.values(this.loaded3dTiles).forEach(a=>{a.renderer.dispose()}),this.loaded3dTiles={},this.perspectiveCamera=void 0,this.perspectiveCameraControls=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),this.contextMenu&&(this.contextMenu.destroy(),this.contextMenu=void 0),this.navCube&&(this.navCube.dispose(),this.navCube=void 0),this.axes&&(this.axes.dispose(),this.axes=void 0),this.axesInScene&&(this.axesInScene.clear(),this.axesInScene=void 0),this.toolbar&&(this.toolbar.destroy(),this.toolbar=void 0),this.spinner&&(this.spinner.remove(),this.spinner=void 0),this.bottomBar=void 0,this.pmremGenerator&&(this.pmremGenerator.dispose(),this.pmremGenerator=void 0),(i=this.measurementManager)==null||i.destroy(),this.measurementManager=void 0,(n=this.zoomToRect)==null||n.destroy(),this.zoomToRect=void 0,(s=this.sectionManager)==null||s.destroy(),this.sectionManager=void 0,window.removeEventListener("resize",this.onResize),super.destroy()}loadLocalModel(e,i,n,s){return ot(this,null,function*(){this.timer=Date.now(),this.increaseJobCount();let a;try{a=yield new Zc(n).loadLocalModel(e,i.src,s)}catch(o){let l=`Error loading ${i.src}`;return ne.error(l,o),Promise.reject(l)}finally{this.decreaseJobCount()}return a?(this.applyOptionsAndAddToScene(e,a,i),Promise.resolve()):Promise.reject()})}loadModel(e,i){return ot(this,null,function*(){this.timer=Date.now(),this.increaseJobCount();let n;try{n=yield new Zc().loadModel(e.src,e.fileFormat,i)}catch(s){let a=`Error loading ${e.src}`;return ne.error(a,s),Promise.reject(a)}finally{this.decreaseJobCount()}return n?(this.applyOptionsAndAddToScene(e.src,n,e),Promise.resolve()):Promise.reject()})}load3dTiles(e){return ot(this,null,function*(){var a;this.timer=Date.now(),this.increaseJobCount();let i=new LS(e.src),n=new Ot,s=yield new Promise((o,l)=>{i.onLoadTileSet=()=>{i.getBounds(n)||(i.getBoundingSphere(pCe)?pCe.getBoundingBox(n):(ne.warn(`[BimViewer] Can't get the correct bounding box of 3dTiles '${e.src}'!`),l())),ne.debug(n),i.onLoadTileSet=null;let u=i.group;ne.debug(u),o(u)},i.onLoadModel=c=>{c.traverse(u=>{!!1&&u.matrixAutoUpdate&&(u.matrixAutoUpdate=!1,u.updateMatrix()),u.isMesh&&(u.castShadow=!0,u.receiveShadow=!0)}),c.updateWorldMatrix(!1,!0),this.updateDirectionalLightShadow(),this.enableRender()},i.setCamera(this.camera),i.setResolutionFromRenderer(this.camera,this.renderer),i.update()});if(s){let o=Date.now(),l=e.modelId||e.src;if(this.loaded3dTiles[l]){let h=1;for(;this.loaded3dTiles[`${l}_${h}`];)h++;l=`${l}_${h}`,ne.warn(`[BimViewer] 3dTiles '${l}' is loaded more than once!`)}if(this.loaded3dTiles[l]={id:s.id,bbox:n,renderer:i},e.matrix&&e.matrix.length===16){let h=new Ue;h.elements=e.matrix,s.applyMatrix4(h)}else{let h=e.position||[0,0,0],p=e.rotation||[0,0,0],d=e.scale||[1,1,1];s.position.set(h[0],h[1],h[2]),s.rotation.set(p[0]*Math.PI/180,p[1]*Math.PI/180,p[2]*Math.PI/180),s.scale.set(d[0],d[1],d[2])}if(s.matrixAutoUpdate=!1,s.updateMatrix(),s.updateMatrixWorld(!0),(a=this.scene)==null||a.add(s),n.applyMatrix4(s.matrix),this.computeBoundingBox(),this.tryAdjustDirectionalLight(),Object.keys(this.loadedModels).length===0&&Object.keys(this.loaded3dTiles).length===1){let h=this.datGui&&this.datGui.controls;this.regenSkyOfGradientRamp(),h&&h.showGroundGrid&&this.regenGroundGrid(),this.tryAdjustCameraNearAndFar(),this.goToHomeView()}return ne.info(`[BimViewer] Added 3dTiles '${e.src}' to scene in ${(Date.now()-o)/1e3}s`),this.enableRender(),this.decreaseJobCount(),Promise.resolve()}return this.decreaseJobCount(),Promise.reject()})}addLoadedModelToScene(e,i){if(!this.scene)return;if(i.merge){let l=Date.now();JT.createMeshBvhAsync([e],{saveOriginalIndex:!0}),ne.info(`[BimViewer] Creates mesh bvh cost ${(Date.now()-l)/1e3}s`)}e.traverse(l=>{l.isMesh&&(l.castShadow=!0,l.receiveShadow=!0)}),this.scene.add(e);let n=new Lg(e);n.name="BIM_VIEWER_BOX_HELPER",n.visible=!1,n.matrixAutoUpdate=!1,n.material&&(n.material=void 0,n.layers.set(11));let s=i.modelId||i.src;if(this.loadedModels[s]){let l=1;for(;this.loadedModels[`${s}_${l}`];)l++;s=`${s}_${l}`,ne.warn(`[BimViewer] Model '${s}' is loaded more than once!`)}this.loadedModels[s]={id:e.id,bbox:n},this.computeBoundingBox(),this.tryAdjustDirectionalLight();let a=Object.values(this.loadedModels).map(l=>l.id);if(Object.values(this.loaded3dTiles).forEach(l=>a.push(l.id)),!a||a.length<=1){if(this.has2dModel)this.setToOrthographicCamera(!0),this.skyOfGradientRamp&&this.scene.remove(this.skyOfGradientRamp);else{let l=this.datGui&&this.datGui.controls;this.regenSkyOfGradientRamp(),l&&l.showGroundGrid&&this.regenGroundGrid()}this.tryAdjustCameraNearAndFar(),this.goToHomeView()}this.scene.add(n),i.edges&&Qr.addOutlines(e),ne.info(`[BimViewer] Added '${i.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),this.enableRender(),this.decreaseJobCount()}addOrRemoveObjectOpacity(e=!0,i=.3,n,s){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let a=this.scene,o=[],l=Object.values(this.loadedModels).map(c=>c.id);Object.values(this.loaded3dTiles).forEach(c=>l.push(c.id)),l.forEach(c=>{if(e){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Qr.revertObjectOpacityById(a,c,this.savedMaterialsForOpacity);let u=Qr.setObjectOpacityById(a,c,i,n,s);o.push(...u)}else this.savedMaterialsForOpacity&&Qr.revertObjectOpacityById(a,c,this.savedMaterialsForOpacity)}),e?this.savedMaterialsForOpacity=o:this.savedMaterialsForOpacity=[],this.enableRender()}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}showVertexNormals(e,i=.1){var n,s,a;e?(this.vertexNormalsHelpers||(this.vertexNormalsHelpers=new hr),(n=this.scene)==null||n.traverseVisible(o=>{var c;let l=["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"];if(o instanceof Je&&!l.includes(o.name)){if(!o.geometry.attributes.normal)return;let h=new c3(o,i,16711680);(c=this.vertexNormalsHelpers)==null||c.add(h)}}),(s=this.scene)==null||s.add(this.vertexNormalsHelpers)):this.vertexNormalsHelpers&&((a=this.scene)==null||a.remove(this.vertexNormalsHelpers),this.vertexNormalsHelpers=void 0)}resize(e,i){let n=this.camera;n&&(this.width=e||window.innerWidth,this.height=i||window.innerHeight,n instanceof qr?n.aspect=this.width/this.height:n instanceof Zi&&(n.left=-this.width/2,n.right=this.width/2,n.top=this.height/2,n.bottom=-this.height/2),n.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(this.width,this.height),this.composer&&this.composer.setSize(this.width,this.height),this.effectFxaaPass&&this.effectFxaaPass.uniforms.resolution.value.set(1/this.width,1/this.height),this.overlayRender&&this.overlayRender.setSize(this.width,this.height)),this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjectsByMouse(e){let i=[];if(!this.raycaster||!this.camera||!this.scene||!e||!this.viewerContainer)return i;let n;e instanceof MouseEvent?n=Mr.getScreenPointByEvent(e,this.viewerContainer):n=Mr.getScreenPointByTouchEvent(e,this.viewerContainer);let s=Mr.screenPoint2NdcPoint(n,this.camera,this.viewerContainer);return this.raycaster.setFromCamera(s,this.camera),i=this.getRaycastableObjects(),i}getRaycastableObjects(){let e=[];return Object.values(this.loadedModels).forEach(i=>{let n=this.scene&&this.scene.getObjectById(i.id);n&&n.visible&&e.push(n)}),Object.values(this.loaded3dTiles).forEach(i=>{let n=this.scene&&this.scene.getObjectById(i.id);n&&n.visible&&e.push(n)}),e}getIntersections(e){let i=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(i,!0)||[]}getAllIntersections(e){if(!this.raycaster||!this.camera||!this.scene||!this.viewerContainer)return[];let i=new le;e&&(e instanceof MouseEvent?i=Mr.getScreenPointByEvent(e,this.viewerContainer):i=Mr.getScreenPointByTouchEvent(e,this.viewerContainer));let n=Mr.screenPoint2NdcPoint(i,this.camera,this.viewerContainer);this.raycaster.setFromCamera(n,this.camera);let s=this.scene.children;return this.raycaster.intersectObjects(s,!0)||[]}handleMouseClick(e){var c,u,h;if((c=this.measurementManager)!=null&&c.isMeasurementActive()||(u=this.sectionManager)!=null&&u.isSectionActive())return;let i=Date.now(),n=this.getIntersections(e);ne.debug(`[BimViewer] getIntersections costs ${(Date.now()-i)/1e3}s`);let s=n.find(p=>{let d=p.object;return d.visible&&(d.userData.selectable!==!1||d instanceof Je)}),a=s&&s.object||void 0,o,l;if(a)if(a instanceof tn)o=s.instanceId,this.selectedObject&&this.selectedObject.id===a.id&&this.selectedObject.userData.instanceId===o&&(a=void 0);else if(ji.isMergedMesh(a)){let p=s&&s.faceIndex||-1;p>=0?(l=ji.getBatchIdByFaceIndex(a,p),this.selectedObject&&this.selectedObject.id===a.id&&this.selectedObject.userData.batchId===l&&(a=void 0)):a=void 0}else this.selectedObject&&this.selectedObject.id===a.id&&(a=void 0);if(n.length>0&&n[0].point){let p=(h=this.overlayRender)==null?void 0:h.getDrawablesByPosition(n[0].point,this.raycaster);if(p&&p.length>0){this.clearSelection(),p[0].selected=!0,this.selectedObject=p[0];return}}this.selectedObject&&this.clearSelection(),a?this.selectObject(a,o,l):this.clearSelection()}selectObject(e,i,n,s=void 0){if(this.selectedObject){let a=this.selectedObject.userData;if(a.instanceId!=null&&a.originalMatrix&&a.clonedMesh){this.scene&&this.scene.remove(a.clonedMesh);let o=this.selectedObject;if(o.setMatrixAt(a.instanceId,a.originalMatrix),o.instanceMatrix.needsUpdate=!0,o.updateMatrix(),delete a.instanceId,delete a.originalMatrix,e===a.clonedMesh){a.clonedMesh.geometry.dispose(),delete a.clonedMesh,this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[]);return}a.clonedMesh.geometry.dispose(),delete a.clonedMesh}else if(a.batchId!=null&&a.clonedMesh){if(this.scene&&this.scene.remove(a.clonedMesh),delete a.batchId,e===a.clonedMesh){a.clonedMesh.geometry.dispose(),delete a.clonedMesh,this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[]);return}a.clonedMesh.geometry.dispose(),delete a.clonedMesh}else if(a.originalMaterial){if(this.selectedObject.material){let o=this.selectedObject.material;Array.isArray(o)?o.forEach(l=>l.dispose()):o instanceof Gr&&o.dispose()}this.selectedObject.material=a.originalMaterial,delete a.originalMaterial}this.selectedObject=void 0,this.outlinePass&&(this.outlinePass.selectedObjects=[])}if(!this.scene||!e){this.enableRender();return}if(e instanceof tn&&i!=null){let a=e,o=new Ue,l=new Ue;l.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),a.getMatrixAt(i,o),this.selectedObject=e,this.outlinePass&&(this.outlinePass.selectedObjects=[e]);let c=Cs.clonedHighlightMaterials(e,{depthTest:s});if(c){let u=new Je(a.geometry.clone(),c);u.applyMatrix4(e.matrixWorld.multiply(o)),u.matrixWorldNeedsUpdate=!0,u.name="Cloned mesh for highlighting";let h=o.clone();h.multiplyMatrices(o,l),a.setMatrixAt(i,h),a.instanceMatrix.needsUpdate=!0,a.updateMatrix(),this.selectedObject.userData.instanceId=i,this.selectedObject.userData.originalMatrix=o,this.selectedObject.userData.clonedMesh=u,this.scene.add(u)}}else if(ji.isMergedMesh(e)&&n!=null){let a=ji.getBatchByBatchId(e,n),o=`[BimViewer] Clicked on merged mesh(id: ${e.id}).`;o+=` Original mesh batchId: ${n}, name: ${a==null?void 0:a.name}`,ne.info(o);let l=Cs.clonedHighlightMaterials(e,{depthTest:s}),c=ji.cloneGeometryForBatch(e,a);if(l&&c){let u=new Je(c,l);u.applyMatrix4(e.matrixWorld),u.matrixWorldNeedsUpdate=!0,u.name="Cloned mesh for highlighting",this.selectedObject=e,this.selectedObject.userData.batchId=n,this.selectedObject.userData.clonedMesh=u,this.scene.add(u)}}else{let a=Cs.clonedHighlightMaterials(e,{depthTest:s});a&&(this.selectedObject=e,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=a,this.outlinePass&&(this.outlinePass.selectedObjects=[e]))}this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof po?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}getBBox(){return this.bbox}flyToObjects(e){if(!e||e.length===0||!this.camera)return;let i=new A,n=new A,s=new Ot;e.forEach(o=>{let l=vn.getBoundingBox(o);s.union(l)});let a=new A;this.camera.getWorldDirection(a),bs.getCameraPositionByBboxAndDirection(s,i,n,this.camera.projectionMatrix,a),this.flyTo(i,n)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof tn&&e.userData.clonedMesh||ji.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var u,h,p;let e=Object.values(this.loadedModels).map(d=>d.id);Object.values(this.loaded3dTiles).forEach(d=>e.push(d.id));let i=e.length;if(i<=0)return;let n=Math.floor(Math.random()*i),s=e[n];if(!((u=this.scene)==null?void 0:u.getObjectById(s)))return;let o=[];if((h=this.scene)==null||h.traverseVisible(d=>{let f=["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"];(d instanceof Je||d instanceof _r)&&!f.includes(d.name)&&o.push(d.id)}),o.length<1)return;let l=Math.floor(Math.random()*o.length),c=(p=this.scene)==null?void 0:p.getObjectById(o[l]);c&&(ne.info(`[BimViewer] Flying to random object: ${c.name}, type: ${c.type}`),this.selectObject(c,void 0,void 0,!0),this.flyToObject(c))}flyTo(e,i){let n=this.camera,s=this.controls;if(!n||!s)return;if(e.equals(i)){ne.error("[BimViewer] camera position and lookAt cannot be the same!");return}else if(!St.isVectorValid(e)||!St.isVectorValid(i)){ne.error("[BimViewer] invalid position or lookAt!");return}let a=e.distanceTo(i);an.far&&(e=e.clone().sub(i).normalize().multiplyScalar(n.far*.9),ne.warn("[BimViewer] camera could be too far to see the object!"));let o=(f,m)=>{s.setLookAt(f,m),s.update(),this.enableRender()},l=n.position.clone(),c=new A;n.getWorldDirection(c);let u=s.target.distanceTo(l),h=l.clone().addScaledVector(c,u),p=500,d=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval(()=>{let f=Date.now()-d;f>p&&(f=p);let m=(E,b,x)=>{let S=E.x+(b.x-E.x)*x,D=E.y+(b.y-E.y)*x,P=E.z+(b.z-E.z)*x;return new A(S,D,P)},g=m(l,e,f/p),y=m(h,i,f/p);o(g,y),f>=p&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)},10)}viewFitAll(){var a;if(!this.scene||!this.camera)return;let e=new A,i=new A,n=vn.getVisibleObjectBoundingBox(this.scene),s=new A;(a=this.camera)==null||a.getWorldDirection(s),bs.getCameraPositionByBboxAndDirection(n,e,i,this.camera.projectionMatrix,s),this.flyTo(e,i)}goToHomeView(){let e=this.camera,i=this.cameraCfg,n=i&&St.arrayToVector3(i.eye),s=i&&St.arrayToVector3(i.look);if(n&&s)this.flyTo(n,s);else if(this.scene){let a=new A,o=new A,l=new A(-1,-.5,-1);if(this.has2dModel){let c=this.bbox.max.x-this.bbox.min.x,u=this.bbox.max.y-this.bbox.min.y,h=this.bbox.max.z-this.bbox.min.z,p=Math.min(c,u,h);c-p<=0?l.set(1,0,0):u-p<=0?l.set(0,-1,0):h-p<=0&&l.set(0,0,-1)}if(bs.getCameraPositionByBboxAndDirection(this.bbox,a,o,e==null?void 0:e.projectionMatrix,l),(!this.cameraCfg||this.cameraCfg&&(!this.cameraCfg.eye||!this.cameraCfg.look))&&(this.cameraCfg={eye:a.toArray(),look:o.toArray()}),e instanceof Zi){let c=this.bbox,u=c.max.x-c.min.x,h=c.max.z-c.min.z,p=e.right-e.left,d=e.top-e.bottom;e.zoom=Math.max(p,d)/Math.max(u,h),e.zoom/=2,e.updateProjectionMatrix()}a.equals(o)||this.flyTo(a,o)}}zoomToBBox(e){var a,o;let i=new A,n=new A,s=new A;(a=this.camera)==null||a.getWorldDirection(s),bs.getCameraPositionByBboxAndDirection(e,i,n,(o=this.camera)==null?void 0:o.projectionMatrix,s),i.equals(n)||this.flyTo(i,n)}tryAdjustCameraNearAndFar(){let e=this.camera;if(!this.scene||!e)return;let i=this.bbox,n=e.near,s=e.far,a=i.max.x-i.min.x,o=i.max.y-i.min.y,l=i.max.z-i.min.z,c=Math.max(a,o,l),u=5,h=c/u,p=c*u;if(n>h||sSt.numberToString(f);ne.info(`[BimViewer] BBox's longest side is: ${d(c)}`),n>h&&(ne.warn(`[BimViewer] camera.near(${d(n)}) shouldn't bigger than ${d(h)}, will change it!`),e.near=h),si.id);if(Object.values(this.loaded3dTiles).forEach(i=>e.push(i.id)),e){let i=this.cameraCfg,n=i&&St.arrayToVector3(i.eye),s=i&&St.arrayToVector3(i.look),a=new Ot;if(n&&s){let o=n,l=s;a.expandByPoint(new A(o.x,o.y,o.z)),a.expandByPoint(new A(l.x,l.y,l.z))}else a=vn.getObjectsBoundingBox(this.scene,e);this.skyOfGradientRamp=Xo.createSkyOfGradientRampByBoundingBox(a),this.scene.add(this.skyOfGradientRamp)}}regenGroundGrid(){if(!this.scene)return;this.groundGrid&&(this.groundGrid.geometry.dispose(),this.groundGrid.material.dispose(),this.scene.remove(this.groundGrid));let e=Object.values(this.loadedModels).map(i=>i.id);if(Object.values(this.loaded3dTiles).forEach(i=>e.push(i.id)),e){let i=this.cameraCfg,n=i&&St.arrayToVector3(i.look);n&&(n.y=0),this.groundGrid=Ks.createGroundGrid(void 0,void 0,n),this.scene.add(this.groundGrid)}}setOrbitPoint(e){let i=this.controls;if(!this.camera||!this.renderer||!this.controls||!this.scene||!this.raycaster||!this.viewerContainer)return;let n=this.getIntersections(e),s=Mr.getScreenPointByEvent(e,this.viewerContainer);if(n&&n.length!==0)i.setOrbitPoint(n[0].point),this.setAnchorPosition(s),this.lastOrbPoint=n[0].point;else{let a=this.bbox.getCenter(new A),o=Mr.worldPosition2ScreenPoint(a,this.camera,this.renderer.domElement);this.setAnchorPosition(o),i.setOrbitPoint(a),this.lastOrbPoint=a}}setAnchorPosition(e){this.anchor&&(this.anchor.className="anchor active",this.anchor.style.left=`${e.x}px`,this.anchor.style.top=`${e.y}px`)}createAnchor(){var i;let e=document.createElement("div");return e.className="anchor",(i=this.viewerContainer)==null||i.appendChild(e),e}disposeAnchor(){var e;this.anchor&&((e=this.viewerContainer)==null||e.removeChild(this.anchor),this.anchor=void 0)}disposeRotateToCursor(){var e,i,n;this.disposeAnchor(),(e=this.renderer)==null||e.domElement.removeEventListener("pointerdown",this.onPointerDown),(i=this.renderer)==null||i.domElement.removeEventListener("pointerup",this.onAnchorPointerUp),(n=this.controls)==null||n.removeEventListener("update",this.updateOrbPoint)}enableComposer(e){!this.scene||!this.camera||!this.renderer||(this.composerEnabled=e,e&&!this.composer&&(this.composer=new p3(this.renderer)),this.enableRender())}enableRenderPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.renderPass){let i=new d3(this.scene,this.camera);i.setSize(this.width,this.height),this.composer.addPass(i),this.renderPass=i}this.renderPass&&(this.renderPass.enabled=e),this.enableRender()}}enableFxaaPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.effectFxaaPass){let i=new EE(UDe);i.uniforms.resolution.value.set(1/this.width,1/this.height),i.setSize(this.width,this.height),i.renderToScreen=!0,this.composer.addPass(i),this.effectFxaaPass=i}this.effectFxaaPass&&(this.effectFxaaPass.enabled=e),this.enableRender()}}enableSaoPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.saoPass){let i=new VS(this.scene,this.camera,!1,!0,new le(1/this.width,1/this.height));i.setSize(this.width,this.height),i.params.output=0,i.params.saoBias=.5,i.params.saoIntensity=5e-5,i.params.saoScale=5,i.params.saoKernelRadius=40,i.params.saoMinResolution=0,this.composer.addPass(i),this.saoPass=i}this.saoPass&&(this.saoPass.enabled=e),this.enableRender()}}enableSsaoPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.ssaoPass){let i=new rc(this.scene,this.camera,this.width,this.height);i.kernelRadius=16,i.minDistance=.005,i.maxDistance=.1,this.composer.addPass(i),this.ssaoPass=i}this.ssaoPass&&(this.ssaoPass.enabled=e),this.enableRender()}}enableOutlinePass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.outlinePass){let i=new au(new le(this.width,this.height),this.scene,this.camera);i.edgeStrength=3,i.edgeGlow=0,i.edgeThickness=2,i.pulsePeriod=0,i.visibleEdgeColor.set(16711680),i.hiddenEdgeColor.set(16752768),this.composer.addPass(i),this.outlinePass=i}this.outlinePass&&(this.outlinePass.enabled=e),this.enableRender()}}enableSsaaPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.ssaaRenderPass){let i=new m3(this.scene,this.camera,16777215,0);this.composer.addPass(i),this.ssaaRenderPass=i}this.ssaaRenderPass&&(this.ssaaRenderPass.enabled=e),this.enableRender()}}enableBloomPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.bloomPass){let i=new Th(1,25,4);i.renderToScreen=!0,this.composer.addPass(i),this.bloomPass=i}this.bloomPass&&(this.bloomPass.enabled=e),this.enableRender()}}enableUnrealBloomPass(e){if(!(!this.scene||!this.camera||!this.renderer||!this.composer)){if(e&&!this.unrealBloomPass){let i=new pd(new le(this.width,this.height),1,0,0);i.threshold=0,i.strength=.5,i.radius=0,this.composer.addPass(i),this.unrealBloomPass=i}this.unrealBloomPass&&(this.unrealBloomPass.enabled=e),this.enableRender()}}activateSection(e="ObjectsBoxSection"){this.sectionType=e,this.clearSelection(),this.sectionManager||(this.sectionManager=new VO(this)),this.sectionManager.activateSection(e),this.enableRender()}deactivateSection(){var e;(e=this.sectionManager)==null||e.deactivateSection(),this.enableRender()}getActiveSection(){var e;return(e=this.sectionManager)==null?void 0:e.getActiveSection()}activateMeasurement(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.activateMeasurement(e),this.clearSelection()}deactivateMeasurement(){var e;(e=this.measurementManager)==null||e.deactivateMeasurement()}setMeasurementsVisibility(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.setMeasurementsVisibility(e)}clearMeasurements(){var e;(e=this.measurementManager)==null||e.clearMeasurements()}activateZoomToRect(){this.zoomToRect||(this.zoomToRect=new oE(this)),this.zoomToRect.activate()}deactivateZoomToRect(){var e;(e=this.zoomToRect)==null||e.activate()}enableWebCam(){this.scene&&(this.webcam||(this.webcam=new _3),this.webcamPlane||(this.webcamPlane=this.webcam.createWebCamPlane(),this.webcamPlane.position.set(10,2,0)),this.scene.add(this.webcamPlane))}disableWebCam(){this.scene&&this.webcamPlane&&(this.webcamPlane.geometry.dispose(),this.webcamPlane.material.dispose(),this.scene.remove(this.webcamPlane))}setEnvironment(e){Lc.createEnvTexture(this.pmremGenerator,e).then(i=>{this.scene&&(this.scene.environment=i)})}setEnvironmentFromDataArray(e){Lc.createEnvTextureFromDataArray(this.pmremGenerator,e).then(i=>{this.scene&&(this.scene.environment=i)})}takeObjectsScreenshot(e){return ot(this,null,function*(){return new Promise((i,n)=>{var s;this.renderer||n("renderer is undefined"),(s=this.scene)==null||s.traverse(a=>{a instanceof Je&&((0,lm.includes)(e,(0,lm.get)(a.userData,"UniqueId"))?a.visible=!0:a.visible=!1)}),this.enableRender(),setTimeout(()=>{var a;i((a=this.renderer)==null?void 0:a.domElement.toDataURL("image/png"))},1e3)})})}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let i=12/e.zoom,n=this.raycaster.params;n.Line?n.Line.threshold=i:n.Line={threshold:i},n.Points?n.Points.threshold=i:n.Points={threshold:i}}instantiate(e){new qC(e).instantiate()}merge(e){this.increaseJobCount();try{let i=[];e.traverse(n=>{n.geometry&&n.material&&i.push(n)}),ji.deepMerge(i,e)}finally{this.decreaseJobCount()}}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}addEvent(e,i,n){e.addEventListener(i,n),this.events.push({node:e,type:i,func:n})}updateProjectSettings(e){this.settings=e;let i=(n,s)=>{n&&s&&(n.near=s.near,n.far=s.far,n.updateProjectionMatrix())};i(this.perspectiveCamera,this.settings.camera),i(this.orthoCamera,this.settings.camera),this.enableRender(10)}dynamicallyUpdateControllerTarget(e){let i=this.getIntersections(e);if(i.length<0)return;let n=this.camera,s=this.controls;if(!n||!s)return;let a=i.find(o=>{if(o.distancen.far)return!1;let l=o.object;return l.visible&&l instanceof Je});if(a!=null&&a.point&&s){let o=n.position,l=s.target,c=a.distance,u=o.distanceTo(l),h=o.clone().lerp(l,c/u);s.target=h}}computeBoundingBox(){let e=new Ot;return Object.values(this.loadedModels).forEach(i=>{if(i.bbox){i.bbox.geometry.computeBoundingBox();let n=i.bbox.geometry.boundingBox;n&&!n.isEmpty()&&e.union(n)}}),Object.values(this.loaded3dTiles).forEach(i=>{i.bbox.isEmpty()||e.union(i.bbox)}),this.bbox=e,this.controls&&(this.controls.minDistance=.1,this.controls.maxDistance=this.bbox.getSize(new A).length()*3),e}};var mCe=Un(Yl(),1);var w3=class{constructor(r){this.viewer=r;this.itemList={};this.handleMouseWheel=r=>{r.preventDefault(),this.element&&(this.element.scrollLeft+=r.deltaY)};this.init()}init(){var i;let r=document.createElement("div");r.classList.add("model-layout-switch-bar");let e=document.createElement("div");e.classList.add("model-layout-switch-bar-content"),e.addEventListener("wheel",this.handleMouseWheel),this.viewer.getLayoutNames().forEach((n,s)=>{let a=this.createItem(n,s);this.itemList[n]=a,a.resetActivate=()=>{for(let o in this.itemList)this.itemList[o].resetActive()},e==null||e.appendChild(a.element)}),this.element=r,this.content=e,this.element.appendChild(this.content),(i=this.viewer.widgetContainer)==null||i.appendChild(this.element)}createItem(r,e){let i=new kG(this.viewer,r);return e===0&&i.setActive(!0),i}destroy(){var r,e;for(let i in this.itemList){let n=this.itemList[i];n.destroy(),(r=this.content)==null||r.removeChild(n.element)}this.itemList={},this.element&&this.content&&(this.element.removeChild(this.content),this.element.removeEventListener("wheel",this.handleMouseWheel),(e=this.viewer.widgetContainer)==null||e.removeChild(this.element),this.element=void 0)}show(){this.element&&(this.element.style.display="block")}hide(){this.element&&(this.element.style.display="none")}},kG=class{constructor(r,e){this.viewer=r;this.eventBus=lE();this.active=!1;this.element=this.createItem(e),this.eventBus.on("activechange",i=>{this.resetActivate&&this.resetActivate(),i?(this.element.classList.add("activate"),this.viewer.activateLayout(e)):this.element.classList.remove("activate")})}createItem(r){let e=document.createElement("div"),i=document.createElement("span");return e.classList.add("model-layout-switch-item"),e.onclick=()=>{this.active=!this.active,this.eventBus.emit("activechange",this.active)},i.innerText=r,e.appendChild(i),e}setActive(r){this.active!==r&&(this.active=r,this.eventBus.emit("activechange",r))}resetActive(){this.active=!1,this.element.classList.remove("activate")}destroy(){this.eventBus.off("activechange")}};var R3=class{constructor(r){this.progresseItems=[];this.element=document.createElement("div"),this.element.classList.add("progress-bar"),r.appendChild(this.element)}setVisibility(r){this.element&&(r?this.element.classList.remove("hidden"):this.element.classList.add("hidden"))}addProgressItem(r,e){let i=this.progresseItems.find(n=>n.id===r);if(!i){let n=document.createElement("div");n.classList.add("progress-bar-item"),n.innerHTML=e||"",this.element.append(n),i={id:r,div:n},this.progresseItems.push(i)}this.setVisibility(!0)}updateProgress(r,e,i){let n=this.progresseItems.find(a=>a.id===r);if(!n)return;let s=e?`${e}`:"";e&&i&&(s+=": "),i&&(s+=`${i.toFixed(2)}%`),n.div.innerHTML=s}removeProgressItem(r){let e=this.progresseItems.find(i=>i.id===r);e&&e.div.remove(),this.progresseItems.length===0&&this.setVisibility(!1)}delayRemoveProgressItem(r,e=3e3){setTimeout(()=>{this.removeProgressItem(r)},e)}};var QS=new Ue,dCe=new Ue,fCe=new eo,M3=new A,GG=class extends Jf{constructor(e){super(e);this.name="DxfViewer";this.CAMERA_Z_POSITION=100;this.CAMERA_MIN_ZOOM=1e-6;this.timer=Date.now();this.loadedModels={};this.masterModelId="";this.raycaster=new Oc;this.mouseMoved=!1;this.mouseDoubleClicked=!1;this.selected=!0;this.raf=new uT;this.renderEnabled=!1;this.jobCount=0;this.enableHideVisuallySmallObjects=!0;this.sortedHidableObjects={};this.lastCameraZoom=1/0;this.activeLayoutName="";this.layoutInfos={};this.units=void 0;this.fpsUtils=new _C;this.onResize=()=>{var i;let e=(i=this.renderer)==null?void 0:i.domElement;e&&e.parentElement&&this.resize(e.parentElement.clientWidth,e.parentElement.clientHeight)};this.enableRender=(e=1e3)=>{this.renderEnabled=!0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.timeoutSymbol=this.raf.setTimeout(()=>{this.renderEnabled=!1},e))};this.loadingDxfCount=0;this.compareMode=!1;this.viewerCfg=e,this.increaseJobCount(),this.init(),this.animate(),this.enableRender(),this.decreaseJobCount(),ne.info(`[DxfViewer] Initialized in ${(Date.now()-this.timer)/1e3}s`)}init(){let e=this.viewerCfg;this.initSpinner(),this.initScene(),this.initRenderer(),this.initCSS2DRenderer(),this.initCamera(),this.initControls(),this.initEvents(),this.initMouseWheel(),this.initOthers(),e.enableAxisGizmo===!0&&(this.axes=this.initAxes()),e.enableStats===!0&&(this.stats=this.initStats()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar()),e.enableProgressBar&&(this.loadingProgressBar=this.initLoadingProgressBar()),this.enableSelection=e.enableSelection}initScene(){let e=new On;e.background=new Ve(2172976),e.matrixAutoUpdate=!1,e.matrixWorldAutoUpdate=!1,this.scene=e}initRenderer(){var e;this.renderer=new Pl({antialias:!0,preserveDrawingBuffer:!0,alpha:!1,stencil:!1}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.renderer.setClearColor(11119017,1),this.renderer.localClippingEnabled=!0,this.renderer.domElement.classList.add("webgl-renderer"),(e=this.viewerContainer)==null||e.appendChild(this.renderer.domElement),St.printGpuInfo(this.renderer.getContext()),xr.maxFragmentUniforms=this.renderer.capabilities.maxFragmentUniforms-20,this.enableOverlayRenderer&&(this.overlayRender=new Dr(this))}initCSS2DRenderer(){var i;let e=new xf;e.setSize(this.width,this.height),e.domElement.style.height="0",e.domElement.style.width="0",e.domElement.style.position="absolute",e.domElement.style.top="0",e.domElement.style.left="0",e.domElement.style.overflow="visible",e.domElement.classList.add("css2d-renderer"),(i=this.viewerContainer)==null||i.appendChild(e.domElement),this.css2dRenderer=e}initCamera(){if(!this.scene)return;let e=new Zi(-this.width/2,this.width/2,this.height/2,-this.height/2,.1,1e5);e.layers.enable(10),e.position.set(0,0,this.CAMERA_Z_POSITION),e.zoom=10,e.updateProjectionMatrix(),this.scene.add(e),this.camera=e}initControls(){let e=this.camera;if(!this.renderer||!e)return;let i=new cT(e,this.renderer.domElement);i.enableDamping=!1,i.enableRotate=!1,i.dampingFactor=.5,i.enabled=!0,i.keyPanSpeed=10,i.mouseButtons={LEFT:bi.PAN,MIDDLE:bi.PAN,RIGHT:bi.PAN},i.zoomSpeed=1,i.enableZoom=!0,i.touches={ONE:ao.PAN,TWO:ao.DOLLY_PAN},i.listenToKeyEvents(document.body),i.update(),this.controls=i,i.addEventListener("change",this.onControlsChange(this)),i.addEventListener("end",this.onControlsEnd(this))}onControlsChange(e){return()=>{e.enableRender()}}onControlsEnd(e){return()=>{e.enableRender()}}initSpinner(){var s;if(!this.viewerCfg.enableSpinner)return;let i=document.createElement("div");i.classList.add("bim-viewer-spinner");let n=document.createElement("div");n.classList.add(ho,"icon-loading"),i.append(n),(s=this.widgetContainer)==null||s.appendChild(i),this.spinner=i,this.setSpinnerVisibility(this.jobCount>0)}initEvents(){let e=this.renderer;if(!e||!this.camera||!this.controls)return;let i=-1,n=-1;e.domElement.addEventListener("pointerdown",s=>{i=s.x,n=s.y,this.mouseMoved=!1,s.button===bi.MIDDLE&&(e.domElement.style.cursor="move")}),e.domElement.addEventListener("pointermove",s=>{i>=0&&n>=0&&(Math.abs(s.x-i)>5||Math.abs(s.y-n)>5)&&(this.mouseMoved=!0,e.domElement.style.cursor="move")}),e.domElement.addEventListener("pointerup",s=>{!this.mouseMoved&&!this.mouseDoubleClicked&&s.button===bi.LEFT&&setTimeout(()=>{this.handleMouseClick(s)},200),this.mouseDoubleClicked&&setTimeout(()=>{this.mouseDoubleClicked=!1},200),i=-1,n=-1,e.domElement.style.cursor="auto"}),e.domElement.addEventListener("dblclick",()=>{this.mouseDoubleClicked=!0,this.mouseMoved}),window.addEventListener("keydown",s=>{s.altKey&&s.code==="KeyR"&&this.flyToRandomObject()}),window.addEventListener("resize",()=>{var a;let s=(a=this.renderer)==null?void 0:a.domElement;s&&s.parentElement&&this.resize(s.parentElement.clientWidth,s.parentElement.clientHeight)})}initMouseWheel(){let e=this.renderer;if(!e)return;let i=Date.now();e.domElement.addEventListener("wheel",n=>{let s=this.camera,a=this.viewerContainer;if(!s||!this.controls)return;n.preventDefault(),n.stopPropagation();let o=this.controls.zoomSpeed,l=Date.now(),c=l-i,u=10,h=30;if(c0?d*p:d/p,m=Mr.getScreenPointByEvent(n,a),g=Mr.screenPoint2NdcPoint(m,s,a),y=new A(g.x,g.y,0),E=y.clone().unproject(s);f=this.checkAndGetLimitedCameraZoom(f),s.zoom=Math.max(this.controls.minZoom,Math.min(this.controls.maxZoom,f)),s.updateProjectionMatrix();let b=y.clone().unproject(s),x=M3.set(0,0,0);x.subVectors(b,E),x.z=0,this.updateHidableObjectsVisibility(),s.position.sub(x),this.controls.target.sub(x),this.controls.update()})}initOthers(){!this.scene||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initAxes(){var n;let e=document.createElement("div");e.classList.add("axesRenderer");let i=new If(e,this.camera,!0);return(n=this.widgetContainer)==null||n.append(e),i}initStats(){var n;let e=u3();e.setMode(0);let i=document.createElement("div");return i.classList.add("statsOutput"),i.appendChild(e.domElement),e.domElement.style.position="absolute",(n=this.widgetContainer)==null||n.append(i),e}showStats(){this.stats||(this.stats=this.initStats()),this.stats.showPanel(0)}hideStats(){this.stats&&this.stats.showPanel(-1)}initToolbar(){let e=this.viewerCfg;return new vh(this,(0,mCe.merge)(gDe,e.toolbarMenuConfig))}initBottomBar(){return new nm(this)}initLoadingProgressBar(){return new R3(this.widgetContainer)}showLayoutBar(){var e;(e=this.dxfLayoutBar)==null||e.show()}hideLayoutBar(){var e;(e=this.dxfLayoutBar)==null||e.hide()}animate(){var e,i,n,s,a;requestAnimationFrame(this.animate.bind(this)),this.scene&&this.camera&&this.renderEnabled&&(xr.resolutionUniform.value.set(this.width,this.height),(e=this.renderer)==null||e.render(this.scene,this.camera),this.hotpointRoot&&this.hotpointRoot.children.length>0&&((i=this.css2dRenderer)==null||i.render(this.scene,this.camera)),this.dispatchEvent("RenderAfter")),(n=this.controls)==null||n.update(),(s=this.stats)==null||s.update(),this.fpsUtils.update(),(a=this.bottomBar)==null||a.update()}getFps(){return this.fpsUtils.fps}is3d(){return!1}destroy(){var e,i,n,s,a;xr.abortJobs=!0,this.dxfLayoutBar&&(this.dxfLayoutBar.destroy(),this.dxfLayoutBar=void 0),(e=this.measurementManager)==null||e.destroy(),this.measurementManager=void 0,(i=this.markupManager)==null||i.destroy(),this.markupManager=void 0,(n=this.zoomToRectHelper)==null||n.destroy(),this.zoomToRectHelper=void 0,(s=this.boxSelectHelper)==null||s.destroy(),this.boxSelectHelper=void 0,this.sortedHidableObjects={},this.layoutInfos={},this.raycastableObjects=void 0,this.changes={},Object.keys(this.loadedModels).forEach(o=>{delete this.loadedModels[o]}),this.loadedModels={},this.css2dRenderer&&((a=this.viewerContainer)==null||a.removeChild(this.css2dRenderer.domElement),this.css2dRenderer=void 0),this.stats=void 0,this.raycaster=void 0,this.selectedObject=void 0,this.raf&&(this.timeoutSymbol&&this.raf.clearTimeout(this.timeoutSymbol),this.raf=void 0),this.contextMenu&&(this.contextMenu.destroy(),this.contextMenu=void 0),this.axes&&(this.axes.dispose(),this.axes=void 0),this.toolbar&&(this.toolbar.destroy(),this.toolbar=void 0),this.spinner&&(this.spinner.remove(),this.spinner=void 0),this.bottomBar=void 0,this.font=void 0,window.removeEventListener("resize",this.onResize),super.destroy()}loadModelAsync(e,i){return ot(this,null,function*(){var g,y;this.loadingDxfCount++,this.timer=Date.now(),this.increaseJobCount();let n=e.modelId||e.src;this.masterModelId||(this.masterModelId=n);let s=e.ignorePaperSpace||this.masterModelId!==n;e.ignorePaperSpace===!1&&s&&ne.warn(`[DxfViewer] Paper space will be ignored for '${n}' although 'ignorePaperSpace' is false!`),St.printMemory("Before loadModelAsync");let a=new Zc;a.setFont(this.font);let o=n,l=this.translate("ProgressBar.Loading"),c=E=>{var b;(b=this.loadingProgressBar)==null||b.updateProgress(o,l,E),i&&i(new ProgressEvent("LoadProgress",{loaded:E,total:100}))},u=(E,b,x)=>{var D;let S=E.loaded*100/E.total;S=S*(x-b)/100+b,(D=this.loadingProgressBar)==null||D.updateProgress(o,l,S),i&&i(new ProgressEvent("LoadProgress",{loaded:S,total:100}))},h=E=>u(E,0,90);(g=this.loadingProgressBar)==null||g.addProgressItem(o),c(0);let p=this.viewerCfg,d=yield a.loadDxfDataAsync(e.src,e.modelId,h,void 0,s,p.enableLocalCache).finally(()=>{this.loadingDxfCount--,this.loadingDxfCount===0&&this.font.releaseFontData&&this.font.releaseFontData()});if(ne.info(`[DxfViewer] Loaded '${e.src}' in ${(Date.now()-this.timer)/1e3}s, adding to scene...`),xr.abortJobs&&Promise.reject("[DxfViewer] abort load dxf"),d.threejsObject.children.length===0){let E=`[DxfViewer] Nothing was loaded from ${e.src}`;return ne.warn(E),this.decreaseJobCount(),Promise.reject(E)}let f=d.threejsObject;f.name=n;let m=this.getDxfUnits(d);if(this.masterModelId===e.modelId&&(this.units=m),ne.info(`[DxfViewer] Units of '${e.src}' is '${m}'`),m){let E=1;this.units&&m!==this.units&&(E=w8(m,this.units)),e.scale?e.scale=[e.scale[0]*E,e.scale[0]*E,e.scale[0]*E]:e.scale=[E,E,E]}if(e.matrix&&e.matrix.length===16){let E=new Ue;E.elements=e.matrix,f.applyMatrix4(E)}else{let E=e.position||[0,0,0],b=e.rotation||[0,0,0],x=e.scale||[1,1,1];f.position.set(E[0],E[1],E[2]),f.rotation.set(b[0]*Math.PI/180,b[1]*Math.PI/180,b[2]*Math.PI/180),f.scale.set(x[0],x[1],x[2])}return this.addLoadedModelToScene(f,e,d),St.printMemory("After addLoadedModelToScene"),ne.info(`[DxfViewer] Added '${e.src}' to scene in ${(Date.now()-this.timer)/1e3}s`),p.enableLayoutBar&&!this.dxfLayoutBar&&this.masterModelId===n&&(this.dxfLayoutBar=new w3(this)),this.decreaseJobCount(),c(100),(y=this.loadingProgressBar)==null||y.delayRemoveProgressItem(o),Promise.resolve()})}unloadDxf(){throw new Error("Not implemented yet!")}isCompareMode(){return this.compareMode}compare(e,i,n){return ot(this,null,function*(){var he,C,N,k,G;let{src:s,modelId:a}=e,{src:o}=i;if(this.compareMode)return Promise.reject("[DxfViewer] It is already under comparing mode!");if(this.masterModelId||Object.keys(this.loadedModels).length>0)return Promise.reject("[DxfViewer] Shouldn't load anything else before compare!");if(this.compareMode=!0,this.timer=Date.now(),this.increaseJobCount(),!this.font)return Promise.reject("[DxfViewer] Should set font first!");let l=new xr(!0);l.setFont(this.font),this.font instanceof Xc&&this.font.getFontData&&(yield this.font.getFontData());let c=s+o,u=this.translate("ProgressBar.Comparing"),h=U=>{var j;(j=this.loadingProgressBar)==null||j.updateProgress(c,u,U),n&&n(new ProgressEvent("CompareProgress",{loaded:U,total:100}))},p=(U,j,ee)=>{var se;let ae=U.loaded*100/U.total;ae=ae*(ee-j)/100+j,(se=this.loadingProgressBar)==null||se.updateProgress(c,u,ae),n&&n(new ProgressEvent("CompareProgress",{loaded:ae,total:100}))},d=U=>p(U,0,15),f=U=>p(U,15,30),m=U=>p(U,30,60),g=U=>p(U,60,95);St.printMemory("Before comparing"),this.masterModelId=a||s,this.loadingDxfCount+=2,(he=this.loadingProgressBar)==null||he.addProgressItem(c),h(0);let y=Date.now(),E=yield l.parse(s,d),b=yield l.parse(o,f),[x,S]=yield Promise.allSettled([E,b]);if(x.status==="rejected")return Promise.reject(`[DxfViewer] Failed to parse ${s}`);if(S.status==="rejected")return Promise.reject(`[DxfViewer] Failed to parse ${o}`);if(ne.info(`[DxfViewer] loadFiles in ${(Date.now()-y)/1e3}s`),xr.abortJobs)return Promise.reject("[DxfViewer] compare loadFile aborted");let D=x.value,P=S.value;y=Date.now();let _=yield new Wn(D,P).compare(m);if(ne.info(`[DxfViewer] Compared in ${(Date.now()-y)/1e3}s`),ne.debug("Compared results:",_),xr.abortJobs)return Promise.reject("[DxfViewer] compare change aborted");St.printMemory("After getting the comparison results"),y=Date.now(),yield l.loadEntitiesForCompare(D,P,_,g),St.printMemory("After Creating threejs objects based on comparison result"),(C=this.font)==null||C.releaseFontData(),this.changes=_,ne.info(`[DxfViewer] Creates threejs objects based on comparison result in ${(Date.now()-y)/1e3}s`);let w=D,F=P;if(this.loadingDxfCount-=2,this.decreaseJobCount(),Object.keys(_).length||ne.info("[DxfViewer] No change found"),((N=w.threejsObject)==null?void 0:N.children.length)===0&&((k=F.threejsObject)==null?void 0:k.children.length)===0){let U=`[DxfViewer] Nothing was loaded from ${s} and ${o}`;return ne.warn(U),Promise.reject(U)}let X=w.threejsObject,H=F.threejsObject;return X.name=s,H.name=o,y=Date.now(),this.addLoadedModelToScene(X,Ur({},e),w),St.printMemory("After adding first loaded Model to scene"),h(95),this.addLoadedModelToScene(H,Ur({},i),F),St.printMemory("After adding second loaded Model to scene"),ne.info(`[DxfViewer] Added compared objects to scene in ${(Date.now()-y)/1e3}s`),ne.info(`[DxfViewer] The comparison between ${s}' and '${o}' is completed in ${(Date.now()-this.timer)/1e3}s !`),h(100),(G=this.loadingProgressBar)==null||G.delayRemoveProgressItem(c),Promise.resolve()})}getEntitiesCount(){let e=0;return Object.values(this.loadedModels).forEach(i=>{var n;e+=((n=i.dxfData)==null?void 0:n.loadedEntityCount)||0}),e}getLoadedDxfModelIds(){return Object.keys(this.loadedModels)}getLayoutNames(){let e=[];return this.getLayouts().forEach(n=>{e.push(n.layoutName)}),e}getLayouts(){let e=[],i=this.loadedModels[this.masterModelId];if(i){let n=i.dxfData,s=n==null?void 0:n.objects.LAYOUT;s==null||s.forEach(a=>{e.push(a)})}return e}handleOverlayDxf(e){var a;let i=this.loadedModels[e];if(!i){ne.warn(`[DxfViewer] Can't find model for modelId '${e}'!`);return}this.increaseJobCount(),this.switchTransformMs(xr.MODEL_LAYOUT_NAME,e);let n=(a=i.dxfData)==null?void 0:a.threejsObject,s=n==null?void 0:n.children.find(o=>o.name===xr.MODEL_LAYOUT_NAME);s&&(s.traverse(o=>{this.addSpatialFilterSection(o,i.dxfData)}),this.calBoundingBoxOfLayoutChild(s)),this.showLayoutObjects(this.activeLayoutName),this.decreaseJobCount()}activateLayout(e){var p,d,f;if(this.increaseJobCount(),e.length==0){ne.warn("[DxfViewer] layout name is empty !"),this.decreaseJobCount();return}if(e===this.activeLayoutName){this.decreaseJobCount();return}let i=Date.now(),n=this.camera,s=this.getLayoutByName(e);if(!s){ne.warn(`[DxfViewer] Can't find layout of ${e} !`),this.decreaseJobCount();return}let a=this.loadedModels[this.masterModelId];if(!a){ne.warn(`[DxfViewer] Can't find master model for modelId '${this.masterModelId}'!`),this.decreaseJobCount();return}if(this.raycastableObjects=void 0,this.activeLayoutName){let m=this.getActiveLayoutInfo();m.lastCameraPosition||(m.lastCameraPosition=new A),(p=this.camera)==null||p.getWorldPosition(m.lastCameraPosition),m.lastCameraZoom=n.zoom}if(!(m=>{let g=this.layoutInfos[m];return!!(g!=null&&g.lastCameraZoom)})(e)){this.switchTransformMs(e,this.masterModelId);let m=this.getLayoutViewports(s),g=[];m.length>0&&(g=m[0].frozenLayerHandles);let y=e!==xr.MODEL_LAYOUT_NAME,E=(d=a.dxfData)==null?void 0:d.threejsObject,b=E==null?void 0:E.children.find(S=>S.name===e);if(b){let S=[],D=(f=a.dxfData)==null?void 0:f.layersAndThreejsObjects;b.traverse(P=>{this.addSpatialFilterSection(P,a.dxfData);let _=P;if(y&&_.material&&_.geometry){let w=_.userData.layerName;if(!this.isLayerFrozenForViewport(a.dxfData,w,g))return;S.push(_);let F=-1;D&&D[w]&&(F=D[w].indexOf(_),F>=0&&D[w].splice(F,1)),F<0&&ne.warn(`[DxfViewer] Failed to find object for modelId '${this.masterModelId}', layer '${w}', layout '${e}'`)}}),S.forEach(P=>{P.removeFromParent()})}let x=this.getFilteredViewports(s);ne.debug("[DxfViewer] Active layout:",e,", viewports:",x),console.time("[DxfViewer] generateObjectsByViewport"),x.forEach(S=>{this.generateObjectsByViewport(e,S,a.dxfData)}),console.timeEnd("[DxfViewer] generateObjectsByViewport"),e!==xr.MODEL_LAYOUT_NAME&&this.switchTransformMs(xr.MODEL_LAYOUT_NAME,this.masterModelId),e!==xr.MODEL_LAYOUT_NAME&&b&&this.setLayoutHidableObjectArray(b),b&&this.calBoundingBoxOfLayoutChild(b)}let c=this.getActiveLayoutInfo();this.measurementManager&&(c.measurementData=this.measurementManager.getMeasurementsData()||[],c.measurementData.forEach(m=>m.layoutName=this.activeLayoutName),this.setMeasurementsVisibility(!1),this.measurementManager.clearUndoRedo()),this.markupManager&&(c.markupData=this.markupManager.getMarkupData()||[],c.markupData.forEach(m=>m.layoutName=this.activeLayoutName),this.setMarkupsVisibility(!1),this.markupManager.clearUndoRedo()),this.showLayoutObjects(e),this.activeLayoutName=e,c=this.getActiveLayoutInfo();let u=c.measurementData;this.measurementManager&&(this.measurementManager.setMeasurementsData(u||[]),this.setMeasurementsVisibility(!0));let h=c.markupData;if(this.markupManager&&(this.markupManager.setMarkupData(h||[]),this.setMarkupsVisibility(!0)),c.lastCameraPosition)this.goTo(c.lastCameraPosition,c.lastCameraZoom,!1);else{let m=this.getLayoutExtentEx(s);if(m){let E=m.max.x-m.min.x,b=m.max.y-m.min.y;(E<1e-16||b<1e-16||E>1e16||b>1e16)&&(ne.warn(`[BimViewer] Got wired bbox, max: ${m.max.toArray()}, min: ${m.min.toArray()}, going to calculate one...`),m=this.computeBoundingBox()),c.bbox=m,this.activeLayoutName!==xr.MODEL_LAYOUT_NAME&&this.updateGroundPlane(),this.zoomToBBox(m)}}this.dispatchEvent("LayoutChanged"),St.printMemory(`After activated layout '${this.activeLayoutName}'`),this.enableRender(),this.decreaseJobCount(),ne.info(`[DxfViewer] Activated layout '${e}' in ${(Date.now()-i)/1e3}s`)}calBoundingBoxOfLayoutChild(e){let i=e.children.length;for(let n=0;n0?s.userData.boundingBox=vn.getBoundingBox(s):s.userData.boundingBox&&delete s.userData.boundingBox}}getActiveLayoutName(){return this.activeLayoutName}getLayers(){var i,n;let e=[];if(this.masterModelId){let s=this.loadedModels[this.masterModelId],a=(i=s==null?void 0:s.dxfData)==null?void 0:i.tables.layer.layers;a&&e.push({modelId:this.masterModelId,layers:a})}for(let[s,a]of Object.entries(this.loadedModels)){if(s===this.masterModelId)continue;let o=(n=a==null?void 0:a.dxfData)==null?void 0:n.tables.layer.layers;o&&e.push({modelId:s,layers:o})}return e}setModelVisibility(e,i){let n=this.loadedModels[e];if(!n||!n.dxfData)throw new Error(`Failed to find model by modelId '${e}'!`);n.dxfData.threejsObject.visible=i,this.enableRender()}setLayerVisibility(e,i,n){let s=this.camera;n=n||this.masterModelId;let a=this.loadedModels[n];if(!a)throw new Error(`Failed to find layer by modelId '${n}'!`);let o=a.dxfData,l=o==null?void 0:o.tables.layer.layers[e];l?l.visible=i:ne.warn(`[DxfViewer] Layer '${e}' not found from dxfData!`);let c=o==null?void 0:o.layersAndThreejsObjects[e];if(c){let u=s.zoom;c.forEach(h=>{this.enableHideVisuallySmallObjects&&i&&u&&h.userData.visibleMinZoom&&u{let u=c;u.material&&Cs.setMaterialColor(u.material,new Ve(i))}):ne.warn(`[DxfViewer] No object found for layer '${e}'`),this.enableRender()}setFont(e){return ot(this,null,function*(){console.time("[DxfViewer] Font file(s) load time"),S0.isShxFile(e[0])?this.font=yield new S0().loadAsync(e):(e.length>1&&ne.warn("[DxfViewer] Only support 1 typeface font file for now, others will be ignored!"),this.font=yield new pT().loadAsync(e[0])),console.timeEnd("[DxfViewer] Font file(s) load time")})}setDisplayLengthUnits(){throw new Error("Not implemented yet!")}setDisplayAreaUnits(){throw new Error("Not implemented yet!")}setDisplayPrecision(){throw new Error("Not implemented yet!")}getScreenshot(){return ot(this,null,function*(){var h;let n={type:"image/png",quality:.8},s=(h=this.renderer)==null?void 0:h.domElement;if(!s)return;let a;this.boxSelectHelper||(this.boxSelectHelper=new $f(this)),a=yield this.boxSelectHelper.select();let o=yield St.canvasToImage(s),l=document.createElement("canvas");l.width=s.width,l.height=s.height;let c=window.devicePixelRatio,u=l.getContext("2d");if(u.drawImage(o,0,0,o.width/c,o.height/c),this.overlayRender){let p=this.overlayRender.getCanvas(),d=yield St.canvasToImage(p);u.drawImage(d,0,0,d.width/c,d.height/c)}return St.renderingContextToImage(u,a,n.type,n.quality)})}activateMeasurement(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.activateMeasurement(e),this.clearSelection()}deactivateMeasurement(){var e;(e=this.measurementManager)==null||e.deactivateMeasurement()}getActiveMeasurementType(){var e;return(e=this.measurementManager)==null?void 0:e.getActiveMeasurementType()}getMeasurements(){var n,s;let e=this.getActiveLayoutInfo();e.measurementData=((n=this.measurementManager)==null?void 0:n.getMeasurementsData())||[],e.measurementData.forEach(a=>{a.layoutName||(a.layoutName=this.activeLayoutName)});let i=[];for(let a of Object.values(this.layoutInfos))(s=a.measurementData)==null||s.forEach(o=>i.push(o));return i}setMeasurements(e){e.forEach(s=>{var l;let a=s.layoutName||xr.MODEL_LAYOUT_NAME;(l=this.getLayoutInfo(a).measurementData)==null||l.push(s)});let i=this.getActiveLayoutInfo();this.measurementManager||(this.measurementManager=new Ql(this));let n=this.measurementManager;i.measurementData&&n.setMeasurementsData(i.measurementData)}selectMeasurement(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.selectMeasurementById(e)}unselectMeasurement(){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.unselectMeasurement()}removeMeasurement(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.removeMeasurementById(e)}setMeasurementsVisibility(e){this.measurementManager||(this.measurementManager=new Ql(this)),this.measurementManager.setMeasurementsVisibility(e)}clearMeasurements(){var e;(e=this.measurementManager)==null||e.clearMeasurements();for(let i of Object.values(this.layoutInfos))i.measurementData=[]}activateMarkup(e){this.markupManager||(this.markupManager=new D0(this)),this.markupManager.isMarkupActive()||this.markupManager.activate(),this.markupManager.setDrawType(e),this.clearSelection()}deactivateMarkup(){this.markupManager&&this.markupManager.deactivate()}getActiveMarkupType(){var e;return(e=this.markupManager)==null?void 0:e.getActiveMarkupType()}setMarkupLineColor(e){var i;(i=this.markupManager)==null||i.setLineColor(e)}getMarkupLineColor(){var e;return(e=this.markupManager)==null?void 0:e.getLineColor()}setMarkupFillColor(e){var i;(i=this.markupManager)==null||i.setFillColor(e)}getMarkupFillColor(){var e;return(e=this.markupManager)==null?void 0:e.getFillColor()}setMarkupLineWidth(e){var i;(i=this.markupManager)==null||i.setLineWidth(e)}getMarkupLineWidth(){var e;return(e=this.markupManager)==null?void 0:e.getLineWidth()}setMarkupFontSize(e){var i;(i=this.markupManager)==null||i.setFontSize(e)}getMarkupFontSize(){var e;return(e=this.markupManager)==null?void 0:e.getFontSize()}getMarkups(){var n,s;let e=this.getActiveLayoutInfo();e.markupData=((n=this.markupManager)==null?void 0:n.getMarkupData())||[],e.markupData.forEach(a=>{a.layoutName||(a.layoutName=this.activeLayoutName)});let i=[];for(let a of Object.values(this.layoutInfos))(s=a.markupData)==null||s.forEach(o=>i.push(o));return i}setMarkups(e){this.clearMarkups(),e.forEach(s=>{var l;let a=s.layoutName||xr.MODEL_LAYOUT_NAME;(l=this.getLayoutInfo(a).markupData)==null||l.push(s)});let i=this.getActiveLayoutInfo();this.markupManager||(this.markupManager=new D0(this));let n=this.markupManager;i.markupData&&n.setMarkupData(i.markupData),this.enableRender()}setMarkupsVisibility(e){this.markupManager||(this.markupManager=new D0(this)),this.markupManager.setMarkupsVisibility(e)}removeMarkup(e){this.markupManager||(this.markupManager=new D0(this)),this.markupManager.removeMarkupById(e)}clearMarkups(){var e;(e=this.markupManager)==null||e.clearAll();for(let i of Object.values(this.layoutInfos))i.markupData=[]}addHotpoint(e){var a;if(this.hasHotpoint(e.hotpointId)){ne.warn(`[DxfViewer] Hotpoint with id '${e.hotpointId}' already exist!`);return}let n=e.anchorPosition,s=Sf.createHotpoint(e.html);s.position.set(n[0]||0,n[1]||0,n[2]||0),s.visible=e.visible!==!1,s.userData.hotpoint=e,s.updateWorldMatrix(!1,!1),this.hotpointRoot||(this.hotpointRoot=new hr,this.hotpointRoot.matrixAutoUpdate=!1,this.hotpointRoot.matrixWorldAutoUpdate=!1,this.hotpointRoot.name="HotpointRoot",(a=this.scene)==null||a.add(this.hotpointRoot)),this.hotpointRoot.add(s),this.enableRender()}removeHotpoint(e){var n,s;let i=((n=this.hotpointRoot)==null?void 0:n.children)||[];for(let a=0;a{var a;return((a=s.userData.hotpoint)==null?void 0:a.hotpointId)===e})!==-1}getHitResult(e){let i=this.viewerContainer;if(!this.camera||!this.raycaster||!this.groundPlane)return;let n=Mr.getScreenPointByEvent(e,i),s=Mr.screenPoint2NdcPoint(n,this.camera,i);this.raycaster.setFromCamera(s,this.camera),this.raycaster.layers.enable(10);let a=this.raycaster.intersectObject(this.groundPlane,!0);if(a&&a.length>0){let o=a[0].point;return{location:[o.x,o.y]}}}zoomToRect(){this.zoomToRectHelper||(this.zoomToRectHelper=new oE(this)),this.zoomToRectHelper.activate()}getLayoutByName(e){let i,n=this.getLayouts();for(let s of n)if(s.layoutName===e){i=s;break}return i}getActiveLayoutInfo(){return this.getLayoutInfo(this.activeLayoutName)}getMsTransformMatrix(e){var p,d;let i=this.loadedModels[e],n=(p=i.dxfData)==null?void 0:p.header;if(!n)return;let s=n.$ANGDIR,a=this.getDxfUnits(i.dxfData),o=(d=i.dxfData)==null?void 0:d.tables.viewPort.viewPorts.filter(f=>f.name.toLocaleUpperCase()==="*ACTIVE");if(!o)return;let l=new Ue,c=xr.getDcs2WcsMatrix(o[0],s),u=new A(o[0].center.x,o[0].center.y,0).applyMatrix4(c),h=1;this.units&&a!==this.units&&(h=w8(a,this.units)),u.multiplyScalar(h),l.makeTranslation(u.x,u.y,0),l.multiply(new Ue().makeRotationZ(wr.degToRad(o[0].viewTwistAngle))),l.multiply(new Ue().makeTranslation(-u.x,-u.y,0)),this.loadedModels[e].msTransformMatrix=l}switchTransformMs(e,i){var l;let n=this.loadedModels[i];if(!n){ne.warn(`[DxfViewer] Can't find model whose modelId is ${i}`);return}let s=n.msTransformMatrix;if(QS.identity(),!s||s.equals(QS))return;let a=(l=n.dxfData)==null?void 0:l.threejsObject,o=a==null?void 0:a.children.find(c=>c.name===xr.MODEL_LAYOUT_NAME);o&&(e===xr.MODEL_LAYOUT_NAME?o.applyMatrix4(s):o.applyMatrix4(s.clone().invert()),o.updateMatrixWorld(!0))}getLayoutExtentEx(e){return e.layoutName===xr.MODEL_LAYOUT_NAME?this.getModelSpaceExtent():this.getLayoutExtent(e)}getModelSpaceExtent(){var u,h;let e=this.loadedModels[this.masterModelId],i=(u=e.dxfData)==null?void 0:u.header,n=new A,s=new A;if(!i)throw new Error(`Header is undefined in ${this.masterModelId}!`);let a=(h=e.dxfData)==null?void 0:h.tables.viewPort.viewPorts,o=i.$EXTMIN,l=i.$EXTMAX,c=i.$ANGDIR;if(a&&a.length>0){for(let p=0;p0){let p=o.filter(b=>parseInt(b.viewportId)===1),d;p.length>0?d=p[0]:d=o[0];let{centerPoint:f,width_paperSpace:m,height_paperSpace:g}=d,y=xr.getDcs2WcsMatrix(d,u),E=new A(f.x,f.y,0);return E.applyMatrix4(y),l={x:E.x-m/2,y:E.y-g/2,z:0},c={x:E.x+m/2,y:E.y+g/2,z:0},s.set(l.x,l.y,l.z),a.set(c.x,c.y,c.z),new Ot(s,a)}}showLayoutObjects(e){Object.values(this.loadedModels).forEach(n=>{var l;let s=0,a=0,o=(l=n.dxfData)==null?void 0:l.threejsObject;o==null||o.children.forEach(c=>{let u=c.name===e;c.visible=u,u?s++:a++}),ne.debug(`[DxfViewer] showLayoutObjects('${e}') sets ${s} layout level object(s) to visible and ${a} to hidden for model '${o==null?void 0:o.name}'`)})}getLayoutViewports(e){var a;let i=this.loadedModels[this.masterModelId],n=e.ownerHandle,s=(a=i.dxfData)==null?void 0:a.layoutViewportsMap[n];return s||[]}setMaterialUniforms(e,i){e instanceof Yt&&(e.uniforms.u_cameraZoom&&(e.uniforms.u_cameraZoom=xr.cameraZoomUniform),e.uniforms.u_viewportScale&&(i==null?void 0:i.header.$PSLTSCALE)===1&&(e.uniforms.u_viewportScale=xr.viewportScaleUniform))}isLayerFrozenForViewport(e,i,n){if(!e||!i)return!1;let s=e.tables.layer.layers[i];return s&&(s.flag&1)>0?!0:!n||n.length<=0?!1:s&&n.indexOf(s.handle)>=0}getFilteredViewports(e){let i=this.getLayoutViewports(e),n=i.filter(s=>s.viewportId!=="1");return n.length===i.length&&(n=i.filter((s,a)=>a!==0)),n}generateObjectsByViewport(e,i,n,s=[]){let a=i;if(i.viewportId=="1")return;if(!a.psBBox||!a.msToPsMatrix)throw new Error("The bbox or matrix is invalid in the viewport!");xr.transformMatrixUniform={value:a.msToPsMatrix},xr.viewportScaleUniform={value:i.viewHeight/i.height_paperSpace};let o=a.psBBox.clone();o.applyMatrix4(a.msToPsMatrix.clone().invert()),o.min.setZ(-1),o.max.setZ(1);let l=this.getObjectsByBoundingBox(o);if(l.length===0)return;let c=a.psBBox.min,u=a.psBBox.max,h=new Ds(new le(c.x,c.y),new le(u.x,u.y)),p=qu.generateSectionPlanesByBox(h),d=[],f=P=>(d[P.id]||(d[P.id]=P.clone(),this.setMaterialUniforms(d[P.id],n),qu.setMaterialSection(d[P.id],p)),d[P.id]),m=P=>{if(Array.isArray(P)){let _=[];return P.forEach(w=>{let F=f(w);_.push(F)}),_}else return f(P)},g=[...s,...i.frozenLayerHandles||[]],y;if(e!==xr.MODEL_LAYOUT_NAME){let P=i;P.associatedLeafObjectSet||(P.associatedLeafObjectSet=new Set),y=P.associatedLeafObjectSet}let E=new hr;E.name=i.viewportId;let b=n==null?void 0:n.layersAndThreejsObjects,x=[];if(l.forEach(P=>{let _=P.clone();_.traverse(w=>{if(w.material&&w.geometry){let F=w.userData.layerName;if(this.isLayerFrozenForViewport(n,F,g)){x.push(w);return}w.userData.layerVisible!==!1&&(w.visible=!0),w.material=m(w.material),y==null||y.add(w),b&&b[F]?b[F].push(w):ne.warn(`[DxfViewer] Failed to find object for modelId '${this.masterModelId}', layer '${F}', layout '${e}'`)}}),_.userData.boundingBox&&(_.visible=!0,delete _.userData.boundingBox),E.add(_)}),y&&y.size===0)return;Qr.removeEmptyObjectsFromRemovingObjects(x,E);let S=n==null?void 0:n.threejsObject,D=S==null?void 0:S.children.find(P=>P.name===e);D||(D=new hr,Qr.setSharedVariablesOfObject(D),D.name=e,S==null||S.add(D)),D.add(E),E.applyMatrix4(a.msToPsMatrix),E.updateMatrixWorld(!0),E.traverse(P=>{Qr.setSharedVariablesOfObject(P),this.addSpatialFilterSection(P,n,!0)})}findSpatialFilter(e,i){let n=i.objects.SPATIAL_FILTER;if(!n)return;let s;for(let a of n)if(a.handle===e){s=a;break}return s}getAnyMaterial(e){let i=e;if(i.material)return Array.isArray(i.material)?i.material[0]:i.material;let n;for(let s=0;s0),o=l.clipIntersection),a&&o!==s.clipPolylines[0].bReversed){ne.warn("[DxfViewer] Material cannot set clipIntersection to different values at the same time. clipIntersection needs to be set to true here!");return}o=s.clipPolylines[0].bReversed;let c=this.generateSectionsBySpatialFilter(s,e.matrixWorld);if(c){let u=d=>{let f=0;return d.clippingPlanes&&(f=d.clippingPlanes.length),f+c.length>xr.maxFragmentUniforms},h=new Set,p=d=>{h.has(d.id)||(h.add(d.id),u(d)||qu.setMaterialSection(d,c,a,o))};e.traverse(d=>{let f=d.material;Array.isArray(f)?f.forEach(m=>{p(m)}):f&&p(f)})}}}getObjectsByBoundingBox(e){var l;let i=[];if(e.isEmpty())return ne.warn("[DxfViewer] bbox is empty !"),i;let n=c=>{let u=vn.getBoundingBox(c,!1);e.intersectsBox(u)&&i.push(c)},a=(l=this.loadedModels[this.masterModelId].dxfData)==null?void 0:l.threejsObject,o=a==null?void 0:a.children.find(c=>c.name===xr.MODEL_LAYOUT_NAME);return o&&o.children.forEach(c=>{n(c)}),i}getDxfUnits(e){if(e||Object.keys(this.loadedModels).length>0&&(e=this.loadedModels[this.masterModelId].dxfData),!e)return"Unitless";let i=e==null?void 0:e.header;if(!i)return ne.warn("DxfData or its header is undefined!"),"Unitless";let n=i.$INSUNITS;return xr.getDxfUnits(n)}generateSectionsBySpatialFilter(e,i){let n=e.clipPolylines[0];if(n.bConcave){ne.warn("[DxfViewer] clipPolyline.bConcave = true is not supported yet in spatialFilter !");return}QS.copy(i),e.localMatrix&&QS.multiply(e.localMatrix);let s=n.polyline,a=[];s.forEach(c=>{let u=c.clone().applyMatrix4(QS);a.push(new le(u.x,u.y))});let o=es.isClockWise(a),l=!o&&!n.bReversed||o&&n.bReversed;return qu.generateSectionPlanesByPoints(a,l)}addLoadedModelToScene(e,i,n){if(!this.scene)return;let s=i.modelId||i.src;if(this.loadedModels[s]){let o=1;for(;this.loadedModels[`${s}_${o}`];)o++;s=`${s}_${o}`,ne.warn(`[DxfViewer] Model '${s}' is loaded more than once!`)}this.loadedModels[s]={dxfData:n},e.matrixAutoUpdate=!1,e.updateMatrix(),St.printMemory("Before merge"),i.merge&&(xr.merge(n),St.printMemory("After merged")),e.updateMatrixWorld(!0),xr.computeLineDistances(e),this.getMsTransformMatrix(s),this.masterModelId===s?this.activateLayout(xr.MODEL_LAYOUT_NAME):this.handleOverlayDxf(s),ne.debug(n),this.scene.add(e);let a=n==null?void 0:n.threejsObject.children.find(o=>o.name===xr.MODEL_LAYOUT_NAME);a&&this.setLayoutHidableObjectArray(a),this.updateGroundPlane(),this.raycastableObjects=void 0,this.masterModelId===s?this.goToHomeView():this.enableRender()}resize(e,i){let n=this.camera;if(n){let s=e||window.innerWidth,a=i||window.innerHeight,o=s/a;n.left=-this.height*o/2,n.right=this.height*o/2,n.top=this.height/2,n.bottom=-this.height/2,n.updateProjectionMatrix(),this.renderer&&this.renderer.setSize(s,a),this.css2dRenderer&&(this.css2dRenderer.setSize(s,a),this.css2dRenderer.domElement.style.width="0",this.css2dRenderer.domElement.style.height="0"),this.overlayRender&&this.overlayRender.setSize(s,a)}this.enableRender()}getRaycaster(){return this.raycaster}getRaycastableObjects(){var n;if(this.raycastableObjects)return this.raycastableObjects;let e=Date.now(),i=[];for(let s of Object.values(this.loadedModels)){let a=(n=s.dxfData)==null?void 0:n.threejsObject,o=a&&a.children.find(l=>l.name===this.activeLayoutName);o&&o.traverseVisible(l=>{Qr.isLeafObject(l)&&i.push(l)})}return this.groundPlane&&i.push(this.groundPlane),this.raycastableObjects=i,ne.debug(`[DxfViewer] getRaycastableObjects() finds ${i.length} objects`),ne.debug(`[DxfViewer] getRaycastableObjects() costs ${(Date.now()-e)/1e3} s`),i}getViewportByPoint(e){if(this.activeLayoutName.length===0||this.activeLayoutName===xr.MODEL_LAYOUT_NAME)return;let i=this.getLayoutByName(this.activeLayoutName);if(!i)return;let n=a=>e.xa.max.x||e.ya.max.y,s=this.getFilteredViewports(i);for(let a=0,o=s.length;a{d.visible&&(i.push(d),l.add(d))})}let u=this.getViewportByPoint(this.raycaster.ray.origin);u&&u.associatedLeafObjectSet?(this.getRaycastableObjects().forEach(p=>{var d;(d=u.associatedLeafObjectSet)!=null&&d.has(p)&&!l.has(p)&&p.visible&&(i.push(p),l.add(p))}),ne.debug("[DxfViewer] getRaycastableObjectsByMouse() from inside of viewport:",u.viewportId)):ne.debug("[DxfViewer] getRaycastableObjectsByMouse() from out of viewport"),this.groundPlane&&i.push(this.groundPlane)}return ne.debug(`[DxfViewer] getRaycastableObjectsByMouse() costs ${(Date.now()-s)/1e3} s`),i}getIntersections(e){this.raycaster&&this.raycaster.layers.enable(10);let i=this.getRaycastableObjectsByMouse(e);return this.raycaster&&this.raycaster.intersectObjects(i,!0)||[]}handleMouseClick(e){var a;if(!this.enableSelection||this.measurementManager&&this.measurementManager.isMeasurementActive()||this.markupManager&&this.markupManager.isMarkupActive())return;let i=this.getIntersections(e);if(i.length>0){let o=l=>St.vectorToString(l);ne.debug(`[DxfViewer] Clicked at: ${o(i[0].point)}`)}let n=i.find(o=>{let l=o.object;return l.visible&&l.userData.selectable!==!1}),s=n&&n.object||void 0;if(i.length>0&&i[0].point){let o=(a=this.overlayRender)==null?void 0:a.getDrawablesByPosition(i[0].point,this.raycaster);if(o&&o.length>0){this.clearSelection(),o[0].selected=!0,this.selectedObject=o[0];return}}this.selectedObject&&this.clearSelection(),s&&this.selectedObject&&this.selectedObject.id===s.id&&(s=void 0),s?this.selectObject(s):this.clearSelection()}selectObject(e,i){if(!this.enableSelection)return;let n=a=>{if(a.children.length>0&&a.children.forEach(o=>n(o)),a instanceof Je||a instanceof _r){let o=Cs.clonedHighlightMaterials(a,{depthTest:i});o&&(a.userData.originalMaterial=a.material,a.material=o)}},s=a=>{if(a.children.length>0&&a.children.forEach(o=>s(o)),(a instanceof Je||a instanceof _r)&&a.userData.originalMaterial){let o=a.material;a.material=a.userData.originalMaterial,delete a.userData.originalMaterial,Array.isArray(o)?o.forEach(l=>l.dispose()):o instanceof Gr&&o.dispose()}};this.selectedObject&&(s(this.selectedObject),this.selectedObject=void 0),e&&(n(e),this.selectedObject=e,e.userData.dxfEntity?ne.info("[DxfViewer] Selected entity:",e.userData.dxfEntity):ne.info("[DxfViewer] Selected object:",e)),this.enableRender()}clearSelection(){this.selectedObject&&this.selectedObject instanceof po?this.selectedObject.selected=!1:this.selectObject(),this.selectedObject=void 0}flyToObjects(e){if(!e||e.length===0||!this.camera)return;let i=new Ot;e.forEach(n=>{let s=vn.getBoundingBox(n);s.isEmpty()||i.union(s)}),this.zoomToBBox(i)}flyToObject(e){this.flyToObjects([e])}flyToSelectedObject(){if(!this.selectedObject)return;let e=this.selectedObject;(e instanceof tn&&e.userData.clonedMesh||e instanceof Je&&ji.isMergedMesh(e)&&e.userData.clonedMesh)&&(e=e.userData.clonedMesh),this.flyToObject(e)}flyToRandomObject(){var h;let e=this.scene,i=[];for(let p of Object.values(this.loadedModels)){let d=(h=p.dxfData)==null?void 0:h.threejsObject;d&&i.push(d.id)}let n=i.length;if(n<=0)return;let s=Math.floor(Math.random()*n),a=i[s];if(!e.getObjectByProperty("id",a.toString()))return;let l=[];if(e.traverseVisible(p=>{let d=["SKYBOX","GROUND_GRID","GRASS_GROUND","BIM_VIEWER_BOX_HELPER"];(p instanceof Je||p instanceof _r)&&!d.includes(p.name)&&l.push(p.id)}),l.length<1)return;let c=Math.floor(Math.random()*l.length),u=e.getObjectById(l[c]);u&&(ne.info(`[DxfViewer] Flying to random object: ${u.name}, type: ${u.type}`),this.selectObject(u,void 0),this.flyToObject(u))}flyTo(e,i,n,s){let a=this.camera,o=this.controls;if(!a||!o)return;if(n&&(n=this.checkAndGetLimitedCameraZoom(n)),e.equals(i)){ne.error("[DxfViewer] Camera position and lookAt cannot be the same!");return}else if(!St.isVectorValid(e)||!St.isVectorValid(i)){ne.error("[DxfViewer] Invalid position or lookAt!",e,i);return}let l=e.distanceTo(i);la.far&&(e=e.clone().sub(i).normalize().multiplyScalar(a.far*.9),ne.warn("[DxfViewer] Camera could be too far to see the object!"));let c=(m,g,y)=>{a.lookAt(g),a.position.set(m.x,m.y,m.z),y&&Number.isFinite(y)&&(a.zoom=y,a.updateProjectionMatrix(),this.updateHidableObjectsVisibility()),o.target.set(g.x,g.y,g.z),o.update()};if(s===!1){this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),c(e,i,n);return}let u=a.position.clone(),h=o.target.clone(),p=a.zoom,d=300,f=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval(()=>{let m=Date.now()-f;m>d&&(m=d);let g=(x,S,D)=>{let P=x.x+(S.x-x.x)*D,_=x.y+(S.y-x.y)*D,w=x.z+(S.z-x.z)*D;return new A(P,_,w)},y=g(u,e,m/d),E=g(h,i,m/d),b;n&&(b=p+(n-p)*m/d),c(y,E,b),m>=d&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)},10)}goTo(e,i,n){let s=this.camera,a=this.controls;if(!s||!a)return;let o=new A(e.x,e.y,s.position.z),l=new A(e.x,e.y,a.target.z);this.flyTo(o,l,i,n)}goToHomeView(){let e=this.getActiveLayoutInfo();e.bbox?this.zoomToBBox(e.bbox):ne.error(`[DxfViewer] Failed to find extent for ${this.activeLayoutName}`)}zoomToBBox(e){let i=this.camera;if(!i)return;let n=e.max.x-e.min.x,s=e.max.y-e.min.y,a=i.right-i.left,o=i.top-i.bottom,l=Math.min(a/n,o/s);l/=1.1;let c=new A;e.getCenter(c),c.z=0;let u=c.clone().setZ(this.CAMERA_Z_POSITION);u.equals(c)||this.flyTo(u,c,l,!1)}zoomToCompareChange(e){if(this.changes){let i=this.changes[e];if(!i)return;let n=i.box;n&&this.zoomToBBox(n.clone().expandByScalar(1.2))}}getCompareChanges(){return this.changes}setBackgroundColor(e,i,n){this.scene&&(this.scene.background=new Ve(e,i,n),this.enableRender())}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}increaseJobCount(){this.setSpinnerVisibility(++this.jobCount>0)}decreaseJobCount(){this.setSpinnerVisibility(--this.jobCount>0)}getLayoutInfo(e){return this.layoutInfos[e]||(this.layoutInfos[e]={measurementData:[],markupData:[]}),this.layoutInfos[e]}updateGroundPlane(){if(!this.scene)return;let e=this.getActiveLayoutInfo();if(!e.bbox)return;let i=e.bbox.clone();St.expandBoxByScale(i,3);let n=i.min,s=i.max,a=s.x-n.x+s.y-n.y+s.z-n.z;St.expandBoxByMinSize(i,a);let o=[],l=(h,p,d)=>{o.push(new A(h,p,d))},c=i.getSize(new A),u=i.getCenter(new A);if(l(-c.x/2,-c.y/2,0),l(c.x/2,-c.y/2,0),l(c.x/2,c.y/2,0),l(-c.x/2,c.y/2,0),this.groundPlane)this.groundPlane.geometry.setFromPoints(o),this.groundPlane.geometry.computeBoundingSphere(),this.groundPlane.geometry.computeBoundingBox(),this.groundPlane.geometry.computeVertexNormals();else{let h=new it;h.setFromPoints(o),h.setIndex([0,3,2,0,2,1]),h.computeVertexNormals();let p=0,d=new or({color:"#888",transparent:!0,opacity:p,side:wi});this.groundPlane=new Je(h,d),this.groundPlane.frustumCulled=!1,this.groundPlane.position.copy(u),this.groundPlane.scale.set(1e5,1e5,1),this.groundPlane.name="groundPlane",this.groundPlane.userData.selectable=!1,this.groundPlane.renderOrder=-1e3,this.scene.add(this.groundPlane)}this.groundPlane.updateMatrixWorld()}computeBoundingBox(){var i;let e=new Ot;for(let n of Object.values(this.loadedModels)){let s=(i=n.dxfData)==null?void 0:i.threejsObject;if(s){let a=vn.getBoundingBox(s,!1);a.isEmpty()||e.union(a)}}return e.min.z=0,e.max.z=0,ne.info(`[BimViewer] computeBoundingBox(), BBox's max: ${e.max.toArray()}, min: ${e.min.toArray()}`),e}checkAndGetLimitedCameraZoom(e){if(!e)return 1;let i=e;return e{a.visible&&a.children.forEach(o=>{o.userData.boundingBox&&(fCe.intersectsBox(o.userData.boundingBox)?o.visible=!0:o.visible=!1)})})}ne.debug(`[DxfViewer] setVisibilityByCameraFrustum cost: ${(Date.now()-e)/1e3}s`)}getVisiblePixelSize(e){let i=wr.smoothstep(e,1e4,3e4)*6.5+.5;return ne.debug("[DxfViewer] visiblePixelSize:",i),i}setLayoutHidableObjectArray(e){let i=this.camera;if(!this.enableHideVisuallySmallObjects||!i)return;let n=Date.now(),s=e.name;this.sortedHidableObjects[s]||(this.sortedHidableObjects[s]=[]);let a=this.sortedHidableObjects[s],o=i.zoom;this.lastCameraZoom=o;let l=h=>{if(!this.isCompareMode()||!h.material)return!1;let p;return h.material instanceof Yt?p=h.material.uniforms.u_color.value:p=h.material.color,p.equals(new Ve(Wn.ENTITY_COLOR_ADDED))||p.equals(new Ve(Wn.ENTITY_COLOR_REMOVED))},c=1;e.traverse(h=>{if(this.isCompareMode()&&l(h)||!Qr.isLeafObject(h))return;let p=h.geometry;p.boundingBox||p.computeBoundingBox();let d=p.boundingBox.clone();if(!d||!St.isBoxValid(d))return;d.applyMatrix4(h.matrixWorld),d.getSize(M3);let f=Math.max(M3.x,M3.y),m=c/f;m<1/0?a.push({visibleMinZoom:m,object:h}):h instanceof rn?a.push({visibleMinZoom:c,object:h}):ne.warn("[DxfViewer] The size of bbox is 0 ! ",h)}),c=this.getVisiblePixelSize(a.length);let u=0;a.forEach(h=>{let p=h.visibleMinZoom*c;h.visibleMinZoom=p,h.object.userData.visibleMinZoom=p,p>o&&(h.object.visible=!1,u++)}),a.sort((h,p)=>h.visibleMinZoom-p.visibleMinZoom),ne.debug(`[DxfViewer] setLayoutHidableObjectArray cost: ${(Date.now()-n)/1e3}s, ${u} objects changed to hidden`)}statObjects(e){let i=this.sortedHidableObjects[this.activeLayoutName],n=c=>{let u=0,h=c;for(;h&&(u++,h!==e);)h=h.parent;return u},s=i.length,a={},o=0;i.forEach(c=>{let u=c.object;if(u.geometry&&u.material){o++;let h=n(c.object);a[h]||(a[h]=0),a[h]++}});let l=0;e.traverse(c=>{let u=c;u.geometry&&u.material&&l++}),ne.info(`[DxfViewer] hidableObjects count:${s}, real count:${o}, layout count: ${l}, level:`,a),ne.info("[DxfViewer] scene:",this.scene)}updateHidableObjectsVisibility(){let e=this.camera;if(!e)return;let i=Date.now(),n=e.zoom;if(Math.abs(n-this.lastCameraZoom)<1e-5||(this.updateRaycasterThreshold(),this.updateCameraZoomUniform(n),this.raycastableObjects=void 0,!this.sortedHidableObjects[this.activeLayoutName]))return;let s=this.sortedHidableObjects[this.activeLayoutName];if(s.length===0)return;let a=n>this.lastCameraZoom,o=Math.min(n,this.lastCameraZoom),l=Math.max(n,this.lastCameraZoom),c=[],u=0;for(let h=0;hl)break;s[h].object.visible=a,a&&c.push(s[h].object),u++}this.lastCameraZoom=n,ne.debug(`[DxfViewer] updateHidableObjectsVisibility cost: ${(Date.now()-i)/1e3}s, ${u}(out of ${s.length}) objects changed to ${a?"visible":"hidden"}`),this.groundPlane&&c.push(this.groundPlane),this.raycastableObjects=c}updateRaycasterThreshold(){let e=this.camera;if(!e||!this.raycaster)return;let i=12/e.zoom,n=this.raycaster.params;n.Line?n.Line.threshold=i:n.Line={threshold:i},n.Points?n.Points.threshold=i:n.Points={threshold:i}}updateCameraZoomUniform(e){xr.cameraZoomUniform.value=e}};var D3=Un(Yl(),1);var VG=class{constructor(r,e,i){this.scene=this.initScene();this.selectedObject=void 0;this.loadedModels={};this.viewerMode=0;this.raycaster=new Oc;this.savedMaterialsForOpacity=[];this.jobCount=0;this.bbox=new Ot;this.outlineMaterial=new Tr({color:1118481});this.outlineRoot=new hr;this.transparentObjectIds=[];this.applyOptionsAndAddToScene=(r,e,i)=>{if(ne.info(`[SimplifiedBimViewer] '${r}' is loaded, adding to scene...`),i.matrix&&i.matrix.length===16){let n=new Ue;n.elements=i.matrix,e.applyMatrix4(n)}else{let n=i.position||[0,0,0],s=i.rotation||[0,0,0],a=i.scale||[1,1,1];e.position.set(n[0],n[1],n[2]),e.rotation.set(s[0]*Math.PI/180,s[1]*Math.PI/180,s[2]*Math.PI/180),e.scale.set(a[0],a[1],a[2])}this.addLoadedModelToScene(e,i)};this.getMeshes=r=>{let e=[];return r instanceof Je?e.push(r):r.traverseVisible(i=>{i instanceof Je&&e.push(i)}),e};if(this.containerOrCanvas=r,e&&(this.viewerMode=e),this.glContext=i,this.viewerMode===1&&!(!(r instanceof HTMLDivElement)&&i))throw new Error("[SimplifiedBimViewer] Parameters don't match Browserless viewerMode !");this.increaseJobCount(),this.init(),this.decreaseJobCount(),ne.info("[SimplifiedBimViewer] Initialized"),this.animate()}init(){this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initPointerEvents(),this.scene.add(this.outlineRoot)}initScene(){let r=new On;return r.background=new Ve(7112861),r.matrixAutoUpdate=!0,r}isBrowserlessMode(){return this.viewerMode===1}isBrowserMode(){return this.viewerMode===0}initRenderer(){let r={antialias:!0,preserveDrawingBuffer:!0},e=this.isBrowserlessMode();e&&Object.assign(r,{canvas:this.containerOrCanvas,context:this.glContext});let i=new Pl(r);if(e){let n=this.containerOrCanvas.width,s=this.containerOrCanvas.height;ne.info(`[SimplifiedBimViewer] Render target size: ${n} x ${s}`),this.renderTarget=new kr(n,s,{minFilter:ai,magFilter:Di,format:Bs,type:Fu}),i.setRenderTarget(this.renderTarget)}else{let n=this.containerOrCanvas.clientWidth,s=this.containerOrCanvas.clientHeight;this.containerOrCanvas.append(i.domElement),i.setPixelRatio(window.devicePixelRatio),i.setSize(n,s)}i.outputEncoding=yr,i.toneMappingExposure=1,i.physicallyCorrectLights=!0,i.setClearColor(11119017,1),i.shadowMap.enabled=!0,i.shadowMap.type=Ly,this.renderer=i,e||(this.pmremGenerator=new yp(i),this.pmremGenerator.compileEquirectangularShader(),this.setEnvironmentFromDataArray())}initCamera(){if(!this.scene)return;let r=this.containerOrCanvas.clientWidth||this.containerOrCanvas.width||0,e=this.containerOrCanvas.clientHeight||this.containerOrCanvas.height||0,i=1;r&&e&&(i=r/e),this.camera=new qr(68,i,.05,1e4),this.camera.position.set(10,10,10),this.camera.lookAt(0,0,0),this.scene.add(this.camera)}initControls(){if(!this.renderer)return;let r=this.camera;if(!r)return;let e=new cT(r,this.renderer.domElement);e.enableDamping=!0,e.dampingFactor=.5,e.enabled=!0,e.keyPanSpeed=10,e.keys={LEFT:"KeyD",UP:"KeyE",RIGHT:"KeyA",BOTTOM:"KeyQ"},e.update(),this.controls=e,e.addEventListener("change",()=>{!this.isBrowserMode()&&this.renderer&&this.renderer.render(this.scene,r)})}initLights(){if(!this.scene)return;let r=16777215,e=.3,i=new $s(r,e);i.position.set(-2,2,4);let n=new Ol(3158064),s=new pf(r,14540253,3);s.position.set(0,300,0),this.scene.add(i),this.scene.add(n),this.scene.add(s)}initPointerEvents(){if(!this.renderer||!this.camera||!this.controls)return;let r=!1,e=!1,i=-1,n=-1;this.renderer.domElement.addEventListener("pointerdown",s=>{i=s.x,n=s.y,r=!1}),this.renderer.domElement.addEventListener("pointermove",s=>{i>=0&&n>=0&&(Math.abs(s.x-i)>5||Math.abs(s.y-n)>5)&&(r=!0)}),this.renderer.domElement.addEventListener("pointerup",()=>{e&&setTimeout(()=>{e=!1},200),i=-1,n=-1}),this.renderer.domElement.addEventListener("dblclick",s=>{e=!0,r||(this.handleMouseClick(s),this.flyToSelectedObject())})}animate(){var r;this.isBrowserMode()&&requestAnimationFrame(this.animate.bind(this)),this.controls&&this.controls.update(),this.scene&&this.camera&&((r=this.renderer)==null||r.render(this.scene,this.camera))}destroy(){this.camera=void 0,this.scene&&this.scene.clear(),this.renderer&&(this.containerOrCanvas.removeChild(this.renderer.domElement),this.renderer.clear(),this.renderer.dispose(),this.renderer=void 0),this.controls&&(this.controls.dispose(),this.controls=void 0),this.renderTarget&&(this.renderTarget.dispose(),this.renderTarget=void 0),this.raycaster=void 0,this.selectedObject=void 0,this.savedMaterialsForOpacity=void 0,Object.keys(this.loadedModels).forEach(r=>{delete this.loadedModels[r]})}loadLocalModel(r,e,i){return ot(this,null,function*(){let s=yield new Zc().loadLocalModel(r,e.src,i);return s?(this.applyOptionsAndAddToScene(r,s,e),Promise.resolve()):Promise.reject()})}loadModel(r,e){return ot(this,null,function*(){this.increaseJobCount();let n=yield new Zc().loadModel(r.src,r.fileFormat,e);return n?(this.applyOptionsAndAddToScene(r.src,n,r),Promise.resolve()):Promise.reject()})}parseGltf(r,e,i,n){this.increaseJobCount(),new Zc().parseGltf(r,e.src,s=>{this.applyOptionsAndAddToScene(e.src,s,e),i&&i(s)},s=>{n&&n(s)})}addLoadedModelToScene(r,e){if(!this.scene)return;r.updateMatrix(),this.scene.add(r);let i=new Lg(r);i.name="BIM_VIEWER_BOX_HELPER",i.visible=!1,i.material&&(i.material=void 0,i.layers.set(11));let n=e.modelId||e.src;if(this.loadedModels[n]){let o=1;for(;this.loadedModels[`${n}_${o}`];)o++;n=`${n}_${o}`,ne.warn(`[BimViewer] Model '${n}' is loaded more than once!`)}this.loadedModels[n]={id:r.id,bbox:i},this.computeBoundingBox();let s=Object.values(this.loadedModels).map(o=>o.id);(!s||s.length<=1)&&(this.tryAdjustCameraNearAndFar(),this.goToHomeView()),this.scene.add(i),e.edges&&Qr.addOutlines(r),this.decreaseJobCount(),ne.info(`[SimplifiedBimViewer] Added '${e.src}' to scene`)}addOrRemoveObjectOpacity(r=!0,e=.3,i,n){if(this.savedMaterialsForOpacity||(this.savedMaterialsForOpacity=[]),!this.scene)return;let s=this.scene,a=[];Object.keys(this.loadedModels).forEach(o=>{let l=this.loadedModels[o];if(r){this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0&&Qr.revertObjectOpacityById(s,l.id,this.savedMaterialsForOpacity);let c=Qr.setObjectOpacityById(s,l.id,e,i,n);a.push(...c)}else this.savedMaterialsForOpacity&&Qr.revertObjectOpacityById(s,l.id,this.savedMaterialsForOpacity)}),r?this.savedMaterialsForOpacity=a:this.savedMaterialsForOpacity=[]}hasTransparentObject(){return!!(this.savedMaterialsForOpacity&&this.savedMaterialsForOpacity.length>0)}getIntersections(r){if(!this.raycaster||!this.camera||!this.scene)return[];let e=new le;r&&(e=Mr.getScreenPointByEvent(r,this.containerOrCanvas));let i=Mr.screenPoint2NdcPoint(e,this.camera,this.containerOrCanvas);this.raycaster.setFromCamera(i,this.camera);let n=[];return Object.values(this.loadedModels).forEach(s=>{let a=this.scene&&this.scene.getObjectById(s.id);a&&a.visible&&n.push(a)}),this.raycaster.intersectObjects(n,!0)||[]}handleMouseClick(r){let i=this.getIntersections(r).find(s=>{let a=s.object;return a.visible&&(a.userData.selectable!==!1||a instanceof Je)}),n=i&&i.object||void 0;n&&this.selectedObject&&this.selectedObject.id===n.id&&(n=void 0),n?this.selectObject(n):this.clearSelection()}selectObject(r){if(this.selectedObject){let i=this.selectedObject.userData;if(i.originalMaterial){if(this.selectedObject.material){let n=this.selectedObject.material;Array.isArray(n)?n.forEach(s=>s.dispose()):n instanceof Gr&&n.dispose()}this.selectedObject.material=i.originalMaterial,delete i.originalMaterial}this.selectedObject=void 0}if(!this.scene||!r)return;let e=Cs.clonedHighlightMaterials(r);e&&(this.selectedObject=r,this.selectedObject.userData.originalMaterial=this.selectedObject.material,this.selectedObject.material=e)}clearSelection(){this.selectObject()}flyToObjects(r){if(!r||r.length===0||!this.camera)return;let e=new A,i=new A,n=new Ot;r.forEach(a=>{let o=vn.getBoundingBox(a);n.union(o)});let s=new A;this.camera.getWorldDirection(s),bs.getCameraPositionByBboxAndDirection(n,e,i,this.camera.projectionMatrix,s),this.flyTo(e,i)}flyToObject(r){this.flyToObjects([r])}flyToSelectedObject(){this.selectedObject&&this.flyToObject(this.selectedObject)}flyTo(r,e,i){var l;let n=this.camera,s=this.controls;if(!n||!s)return;r=Array.isArray(r)?new A(r[0],r[1],r[2]):r,e=Array.isArray(e)?new A(e[0],e[1],e[2]):e;let a=r,o=e;ne.info("[SimplifiedBimViewer] flyTo: ",St.vectorToString(a)),n.lookAt(o.x,o.y,o.z),n.position.set(a.x,a.y,a.z),s.target.set(o.x,o.y,o.z),s.update(),this.isBrowserMode()||(l=this.renderer)==null||l.render(this.scene,n),i&&i()}goToHomeView(){var l;let r=new A,e=new A,i=new A,n=new A;this.bbox.getSize(n),this.bbox.getCenter(i);let s=(n.x+n.y+n.z)/3*1.5,a=new A(i.x+s,i.y+s/1.5,i.z+s),o=i.clone().sub(a);bs.getCameraPositionByBboxAndDirection(this.bbox,r,e,(l=this.camera)==null?void 0:l.projectionMatrix,o),r.equals(e)||this.flyTo(r,e)}setEnvironmentFromDataArray(r){Lc.createEnvTextureFromDataArray(this.pmremGenerator,r).then(e=>{this.scene.environment=e,this.isBrowserMode()||this.animate()})}tryAdjustCameraNearAndFar(){let r=this.camera;if(!this.scene||!r)return;let e=this.bbox,i=r.near,n=r.far,s=e.max.x-e.min.x,a=e.max.y-e.min.y,o=e.max.z-e.min.z,l=Math.max(s,a,o),c=5,u=l/c,h=l*c;if(i>u||nSt.numberToString(d);ne.info(`[SimplifiedBimViewer] BBox's longest side is: ${p(l)}`),i>u&&(ne.warn(`[SimplifiedBimViewer] camera.near(${p(i)}) shouldn't bigger than ${p(u)}, will change it!`),r.near=u),n0?void 0:this.transparentObjectIds,i=this.transparentObjectIds.length>0?this.transparentObjectIds:void 0,n=new or({color:16777215,transparent:!0,opacity:.1});Object.keys(this.loadedModels).forEach(a=>{let o=this.loadedModels[a];Qr.applyMaterialToObjectById(this.scene,o.id,n,i,e)}),this.outlineRoot.clear();let s=[];if(r.forEach(a=>{let o=a.modelId,l=o?this.scene.getObjectById(this.loadedModels[o].id):this.scene;l||(ne.warn(`[BimViewer] The ModelId of ${o} has no corresponding model.`),l=this.scene),l.traverse(c=>{if((0,D3.includes)(a.id,(0,D3.get)(c.userData,"UniqueId"))){let u=this.getMeshes(c);s=s.concat(u)}})}),s.length>0){s.forEach(o=>{var c;let l=Qr.createOutline(o.geometry,o.matrix,this.outlineMaterial);(c=o.parent)!=null&&c.matrixWorld&&l.applyMatrix4(o.parent.matrixWorld),this.outlineRoot.add(l)});let a=s.map(o=>o.id);Object.keys(this.loadedModels).forEach(o=>{let l=this.loadedModels[o];Qr.revertAppliedMaterialToObjectById(this.scene,l.id,a)}),this.transparentObjectIds=a,this.flyToObjects(s)}else ne.warn(`[BimViewer] No object found with uniqueIds: ${r.map(a=>a.id)}`);this.isBrowserMode()||this.animate()}increaseJobCount(){++this.jobCount}decreaseJobCount(){--this.jobCount}computeBoundingBox(){let r=new Ot;return Object.values(this.loadedModels).forEach(e=>{if(e.bbox){e.bbox.geometry.computeBoundingBox();let i=e.bbox.geometry.boundingBox;i&&!i.isEmpty()&&r.union(i)}}),this.bbox=r,r}getContext(){var r;return(r=this.renderer)==null?void 0:r.getContext()}getCameraDirection(){var e;let r=new A;return(e=this.camera)==null||e.getWorldDirection(r),{x:r.x,y:r.y,z:r.z}}setFov(r){this.camera&&(this.camera.fov=r,this.camera.updateProjectionMatrix())}};var gCe=Un(Yl(),1);var cm=class extends hr{constructor(e,i,n=10){super();this.images=e,this.thumbnailImages=i,this.size=n,this.textureLoader=new Es,this.mesh=new Je}fadeIn(e=1e3){let n=this.getMaterials();if(Array.isArray(n)&&n.length>0)n.forEach(a=>a.opacity=0);else{this.visible=!0;return}let s=1/(e/10);this.visible=!0,this.clearFading(),this.renderOrder+=1,this.fadingInInterval=setInterval(()=>{let a=1,o=this.getMaterials();this.materialEquals(n,o)||(n=o),n.length>0&&(a=Math.min(n[0].opacity+s,1),n.forEach(l=>l.opacity=a)),a>=1&&this.clearFading()},10)}materialEquals(e,i){return gCe.default.isEqualWith(e,i,(n,s)=>{if(!(Array.isArray(n)&&Array.isArray(s)))return n.id===s.id})}fadeOut(e=1e3){let n=this.getMaterials(),s=1/(e/10),a=2,o=3,l=(o-a)/(e/10);this.clearFading(),this.scale.set(a,a,a),this.fadingOutInterval=setInterval(()=>{let c=this.scale.x+l;this.scale.set(c,c,c);let u=0;n.length>0&&(u=Math.max(n[0].opacity-s,0),n.forEach(h=>h.opacity=u)),(u<=0||c>=o)&&this.clearFading()},10)}clearFading(){let e=this.getMaterials();this.fadingInInterval&&(clearInterval(this.fadingInInterval),this.fadingInInterval=void 0,this.visible=!0,e.forEach(i=>i.opacity=1),this.renderOrder-=1),this.fadingOutInterval&&(clearInterval(this.fadingOutInterval),this.fadingOutInterval=void 0,this.visible=!1,e.forEach(i=>i.opacity=1),this.scale.set(1,1,1))}getMaterials(){let e=this.thumbnailMesh;e||(e=this.mesh);let i=[];return Array.isArray(e.material)?i.push(...e.material):e.material&&i.push(e.material),i}create(){}createThumbnailMesh(e){return ot(this,null,function*(){if(!this.thumbnailImages||this.thumbnailImages.length!=6)return;this.thumbnailMesh=new Je(new Qa(e,e,e)),this.thumbnailMesh.geometry.scale(1,1,-1);let n=(yield this.loadTexturesAsync(this.thumbnailImages)).map(s=>new or({map:s,side:en,transparent:!0}));this.thumbnailMesh&&(this.thumbnailMesh.material=n,this.add(this.thumbnailMesh))})}loadTextures(e){return e.map(i=>this.textureLoader.load(i))}loadTexturesAsync(e){return ot(this,null,function*(){let i=e.map(n=>this.textureLoader.loadAsync(n));return yield Promise.all(i)})}destroyMesh(e){var i;this.remove(e),e.clear(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach(n=>{var s;(s=n.map)==null||s.dispose(),n.dispose()}):((i=e.material.map)==null||i.dispose(),e.material.dispose())}destroy(){this.clearFading(),this.images=[],this.mesh&&(this.mesh instanceof Je?this.destroyMesh(this.mesh):this.mesh.traverse(e=>{e instanceof Je&&this.destroyMesh(e)}),this.mesh=void 0)}};var C3=class extends cm{constructor(r,e,i=20){if(super(r,e,i),r.length!==6)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${r.length}`)}create(){return ot(this,null,function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()})}createMesh(){return ot(this,null,function*(){let r=this.mesh;r.geometry=new Qa(this.size,this.size,this.size),r.geometry.scale(1,1,-1);let i=(yield this.loadTexturesAsync(this.images)).map(n=>new or({map:n,side:en,transparent:!0}));r.material=i,this.add(r),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.thumbnailMesh=void 0,this.thumbnailImages=void 0)})}};var A3=class extends cm{constructor(e,i,n=20){super(e,i,n);if(e.length!==24)throw new Error(`[VRCube24Faces] Wrong number of images! Expected 24, got ${e.length}`);this.ratio=1/1,this.subPlaneWidth0=this.size*(this.ratio/(this.ratio+1)),this.subPlaneWidth1=this.size-this.subPlaneWidth0}create(){return ot(this,null,function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()})}createMesh(){return ot(this,null,function*(){var h;this.mesh=new hr,this.mesh.scale.set(1,1,-1);let i=(yield this.loadTexturesAsync(this.images)).map(p=>new or({map:p,side:Gn,transparent:!0}));if(i.length!==24)throw new Error(`[VRCube24Faces] Wrong number of materials! Expected 24, got ${i.length}`);let n=4,s=this.createPlaneOfAFace(i.slice(0,n));s.rotateOnAxis(new A(0,1,0),-Math.PI/2),s.position.set(this.size/2,0,0);let a=this.createPlaneOfAFace(i.slice(n,n*2));a.rotateOnAxis(new A(0,1,0),Math.PI/2),a.position.set(-this.size/2,0,0);let o=this.createPlaneOfAFace(i.slice(n*2,n*3));o.rotateOnAxis(new A(1,0,0),-Math.PI/2),o.rotateOnAxis(new A(0,0,1),Math.PI),o.rotateOnAxis(new A(1,0,0),Math.PI),o.position.set(0,this.size/2,0);let l=this.createPlaneOfAFace(i.slice(n*3,n*4));l.rotateOnAxis(new A(1,0,0),Math.PI/2),l.rotateOnAxis(new A(0,0,1),Math.PI),l.rotateOnAxis(new A(1,0,0),Math.PI),l.position.set(0,-this.size/2,0);let c=this.createPlaneOfAFace(i.slice(n*4,n*5));c.rotateOnAxis(new A(0,1,0),Math.PI),c.position.set(0,0,this.size/2),this.createPlaneOfAFace(i.slice(n*5,n*6)).position.set(0,0,-this.size/2),this.add(this.mesh),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),(h=this.thumbnailMesh)==null||h.clear(),this.thumbnailMesh=void 0)})}createPlaneOfAFace(e){var p;let i=new hr,n=new ts(this.subPlaneWidth0,this.subPlaneWidth0),s=new ts(this.subPlaneWidth1,this.subPlaneWidth0),a=new ts(this.subPlaneWidth0,this.subPlaneWidth1),o=new ts(this.subPlaneWidth1,this.subPlaneWidth1),l=new Je(n,e[0]),c=new Je(s,e[1]),u=new Je(a,e[2]),h=new Je(o,e[3]);return l.position.set(this.subPlaneWidth1/2,this.subPlaneWidth1/2,0),c.position.set(-this.subPlaneWidth0/2,this.subPlaneWidth1/2,0),u.position.set(this.subPlaneWidth1/2,-this.subPlaneWidth0/2,0),h.position.set(-this.subPlaneWidth0/2,-this.subPlaneWidth0/2,0),l.geometry.scale(-1,1,1),c.geometry.scale(-1,1,1),u.geometry.scale(-1,1,1),h.geometry.scale(-1,1,1),i.add(l,c,u,h),(p=this.mesh)==null||p.add(i),i}};var O3=class extends cm{constructor(r,e,i=10){if(super(r,e,i),r.length!==1)throw new Error(`[VRSphere] Wrong number of images! Expected 1, got ${r.length}`)}create(){return ot(this,null,function*(){yield this.createThumbnailMesh(this.size+.1),this.thumbnailMesh?this.createMesh():yield this.createMesh()})}createMesh(){return ot(this,null,function*(){var s;let r=this.mesh,e=100;r.geometry=new ro(this.size,e,e),r.geometry.scale(-1,1,1);let n=(yield this.loadTexturesAsync(this.images)).map(a=>new or({map:a,side:en,transparent:!0}));r.material=n[0],this.add(r),this.thumbnailMesh&&(this.destroyMesh(this.thumbnailMesh),this.remove(this.thumbnailMesh),(s=this.thumbnailMesh)==null||s.clear(),this.thumbnailMesh=void 0)})}};var zG=class extends Jf{constructor(e,i){super(e);this.name="BaseViewer";this.minFov=50;this.maxFov=95;this.raycaster=new Oc;this.autoRotate=!0;this.events=[];this.lastFrameExecuteTime=Date.now();this.maxFps=60;this.isMousePressing=!1;this.settings=sT;this.jobCount=0;this.viewpoints=[];this.previousViewpointId="";this.previousPanoramaId="";this.activeViewpointId="";this.activePanoramaId="";this.viewpointAssetsMap=new Map;this.loadingPanos=[];this.onResize=()=>{var i;let e=(i=this.renderer)==null?void 0:i.domElement;e&&e.parentElement&&this.resize(e.parentElement.clientWidth,e.parentElement.clientHeight)};this.onMouseWheel=e=>{let n=e.wheelDelta>0?-5:5;this.updateFov(n)};this.viewerCfg=e,this.cameraCfg=i||{eye:[0,0,0],look:[0,0,0]},this.settings=sT,this.cameraCfg.near&&(this.settings.camera.near=this.cameraCfg.near),this.cameraCfg.far&&(this.settings.camera.far=this.cameraCfg.far),this.setSpinnerVisibility(++this.jobCount>0),this.init(),this.animate(),this.setSpinnerVisibility(--this.jobCount>0)}init(){let e=this.viewerCfg;this.initSpinner(),this.initScene(),this.initRenderer(),this.initCamera(),this.initControls(),this.initLights(),this.initEvents(),this.initOthers(),e.enableAxisGizmo===!0&&(this.axes=this.initAxes()),e.enableToolbar&&(this.toolbar=this.initToolbar()),e.enableBottomBar&&(this.bottomBar=this.initBottomBar())}initScene(){let e=new On;e.background=new Ve(16777215),e.matrixAutoUpdate=!0,this.scene=e}initRenderer(){var e,i;this.renderer=new Pl({antialias:!1,preserveDrawingBuffer:!1}),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(this.width,this.height),this.css2dRenderer=new xf,this.css2dRenderer.setSize(this.width,this.height),this.css2dRenderer.domElement.style.height="0",this.css2dRenderer.domElement.style.width="0",(e=this.viewerContainer)==null||e.appendChild(this.renderer.domElement),(i=this.viewerContainer)==null||i.appendChild(this.css2dRenderer.domElement)}initCamera(){this.scene&&(this.camera=new qr(75,this.width/this.height,this.settings.camera.near,this.settings.camera.far),this.scene.add(this.camera))}initControls(){if(!this.renderer||!this.camera)return;let e=this.camera,i=this.viewerCfg,n=new uO(e,this.renderer.domElement,!0);n.enabled=!0,n.autoRotate=this.autoRotate,n.autoRotateSpeed=i.autoRotateSpeed||-2,n.enablePan=!1,n.enableZoom=!1,n.enableRotate=!0,n.rotateSpeed=.3,n.minPolarAngle=Math.PI*.05,n.maxPolarAngle=Math.PI*.95,n.listenToKeyEvents(document.body),n.update(),this.controls=n,this.controlsHelper=new WC(e,n),this.controls.controlsHelper=this.controlsHelper,this.autoRotate&&this.controlsHelper.delayAutoRotate(),this.controlsHelper.automaticallyAdjustCameraPosition=!1,this.controls.addEventListener("end",()=>{this.handleDragEnd&&this.handleDragEnd()});let s=new A(0,0,0),a=new A(10,0,0);this.setCameraPositionAndDirection(s,a)}onKeyDown(e){return i=>{var a,o;let n=e.camera,s=e.controls;!n||!s||((i.code==="ArrowLeft"||i.code==="ArrowRight"||i.code==="ArrowUp"||i.code==="ArrowDown")&&((a=this.controlsHelper)==null||a.startToRotate(i)),(o=this.controlsHelper)==null||o.delayAutoRotate())}}initLights(){if(!this.scene)return;let e=new $s(16777215,.3);e.position.set(-2,2,4),this.scene.add(e)}initEvents(){let e=this.renderer,i=this.camera;if(!e||!i)return;let n=!1,s=-1,a=-1;this.addEvent(window,"keydown",this.onKeyDown(this)),this.addEvent(window,"resize",this.onResize),this.addEvent(window,"mousewheel",this.onMouseWheel),this.addEvent(window,"pointerdown",o=>{var l;s=o.x,a=o.y,n=!1,this.isMousePressing=!0,this.autoRotate&&((l=this.controlsHelper)==null||l.delayAutoRotate()),o.button===bi.LEFT&&o.target instanceof HTMLCanvasElement&&(e.domElement.style.cursor="move")}),this.addEvent(window,"pointermove",o=>{s>=0&&a>=0&&(Math.abs(o.x-s)>5||Math.abs(o.y-a)>5)&&(n=!0)}),this.addEvent(window,"pointerup",o=>{var l,c;if(this.isMousePressing=!1,this.autoRotate&&((l=this.controlsHelper)==null||l.delayAutoRotate()),e.domElement.style.cursor="auto",!(n||o.button!==bi.LEFT))if(o.target&&o.target instanceof HTMLDivElement){let u=Sf.tryFindObjectId(o.target);if(u){let h=(c=this.scene)==null?void 0:c.getObjectById(u);if(h){let p=h.userData.hotpoint;p&&(ne.info("[VRViewer] Clicked on hotpoint: ",p.hotpointId||p),this.onHotpointClicked&&this.onHotpointClicked(p))}}}else{let u=this.getIntersection(o);if(u){let h=f=>St.vectorToString(f),p=u.point,d=p.clone().sub(i.position).normalize();ne.info(`[VRViewer] Clicked at: ${h(p)}, + Camera position: ${h(i.position)}, + Target direction: ${h(d)}`)}}})}initSpinner(){var n;let e=document.createElement("div");e.classList.add("spinner");let i=document.createElement("div");i.classList.add(ho,"icon-loading"),e.append(i),(n=this.widgetContainer)==null||n.appendChild(e),this.spinner=e,this.setSpinnerVisibility(this.jobCount>0)}initOthers(){!this.controls||!this.renderer||!this.camera||(this.renderer.domElement.style.outlineWidth="0")}initAxes(){var n;let e=document.createElement("div");e.classList.add("axesRenderer");let i=new If(e,this.camera);return(n=this.widgetContainer)==null||n.append(e),i}initToolbar(){let e=this.viewerCfg;return new vh(this,Ur(Ur({},mDe),e.toolbarMenuConfig),[["SceneClear"]])}initBottomBar(){return new nm(this)}animate(){var e,i,n,s;if(requestAnimationFrame(this.animate.bind(this)),this.maxFps>0){let a=Date.now()-this.lastFrameExecuteTime;if(a<1e3/this.maxFps)return;if(this.lastFrameExecuteTime=Date.now(),this.autoRotate){let o=this.controlsHelper;o&&o.autoRotateRemainingTime>0&&!this.isMousePressing&&(o.autoRotateRemainingTime-=a,o.autoRotateRemainingTime<=0&&this.controls&&o.startAutoRotate())}}(e=this.controls)==null||e.update(),this.scene&&this.camera&&((i=this.renderer)==null||i.render(this.scene,this.camera),(n=this.css2dRenderer)==null||n.render(this.scene,this.camera),(s=this.css3dRenderer)==null||s.render(this.scene,this.camera))}clearAllCachedPanoramas(){this.handleCameraUpdateInterval(),this.loadingPanos.forEach(e=>{e.creationPromise&&(e.creationPromise.cancel(),e.creationPromise=void 0)}),this.viewpointAssetsMap.forEach(e=>{var n;let i=e.panoramas;for(let s=i.length-1;s>=0;--s){let a=i[s];a.box.destroy(),(n=this.scene)==null||n.remove(a.box)}}),this.loadingPanos=[],this.viewpointAssetsMap.clear(),this.activePanoramaId="",this.activePanoramaId="",this.previousViewpointId="",this.previousPanoramaId=""}destroy(){var e,i,n,s;this.events.forEach(a=>a.node.removeEventListener(a.type,a.func)),this.events=[],this.clearAllCachedPanoramas(),this.css2dRenderer&&((e=this.viewerContainer)==null||e.removeChild(this.css2dRenderer.domElement)),(i=this.spinner)==null||i.remove(),(n=this.axes)==null||n.dispose(),(s=this.toolbar)==null||s.destroy(),super.destroy()}updateFov(e){var u;let i=this.camera;if(!i)return;let n=this.minFov,s=this.maxFov,a=h=>{let p=i.fov+h;p=Math.min(p,s),p=Math.max(p,n),i.fov!==p&&(i.fov=p,i.updateProjectionMatrix())},o=20,l=5,c=e/o;for(let h=0;ha(c),h*l);this.autoRotate&&((u=this.controlsHelper)==null||u.delayAutoRotate())}setMinAndMaxFov(e,i){let n=this.controls;n&&(this.minFov=e,this.maxFov=i,n.minFov=e,n.maxFov=i)}resize(e,i){var s,a,o;let n=this.camera;n&&(this.width=e||window.innerWidth,this.height=i||window.innerHeight,n.aspect=this.width/this.height,n.updateProjectionMatrix(),(s=this.renderer)==null||s.setSize(this.width,this.height),(a=this.css2dRenderer)==null||a.setSize(this.width,this.height),(o=this.css3dRenderer)==null||o.setSize(this.width,this.height))}enableAutoRotate(e){this.controls&&(this.autoRotate=e,this.controls.autoRotate=e)}setAutoRotateSpeed(e=1){this.controls&&(this.controls.autoRotateSpeed=e)}setCameraFov(e=75){let i=this.camera;i&&(i.fov=e,i.updateProjectionMatrix())}setSpinnerVisibility(e){this.spinner&&(e?this.spinner.classList.remove("hidden"):this.spinner.classList.add("hidden"))}addEvent(e,i,n){e.addEventListener(i,n),this.events.push({node:e,type:i,func:n})}setCameraPositionAndDirection(e,i,n){let s=this.camera,a=this.controls;if(!s||!a)return;let o,l;i?Array.isArray(i)?o=new A(i[0],i[1],i[2]):o=new A(i.x,i.y,i.z):o=a.target.clone().sub(s.position),o.normalize(),Array.isArray(e)?l=new A(e[0],e[1],e[2]):l=new A(e.x,e.y,e.z);let c=l.clone().addScaledVector(o,.01);this.fianlCameraPosition=l,this.finalCameraTarget=c;let u=(m,g)=>{s.lookAt(g),s.position.set(m.x,m.y,m.z),a.target.set(g.x,g.y,g.z),a.update()};if(n===!1){this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),u(l,c);return}let h=s.position.clone(),p=a.target.clone(),d=500,f=Date.now();this.cameraUpdateInterval&&clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=setInterval(()=>{let m=Date.now()-f;m>d&&(m=d);let g=(b,x,S)=>{let D=b.x+(x.x-b.x)*S,P=b.y+(x.y-b.y)*S,_=b.z+(x.z-b.z)*S;return new A(D,P,_)},y=g(h,l,m/d),E=g(p,c,m/d);u(y,E),m>=d&&(clearInterval(this.cameraUpdateInterval),this.cameraUpdateInterval=void 0)},10)}getCameraPositionAndDirection(){let e=this.camera;if(!e)return;let i=e.position,n=new A;return e.getWorldDirection(n),{position:{x:i.x,y:i.y,z:i.z},direction:{x:n.x,y:n.y,z:n.z}}}getCameraFov(){let e=this.camera;if(e)return e.fov}setViewpoints(e){this.handleCameraUpdateInterval(),this.viewpointAssetsMap.size>0&&(this.viewpointAssetsMap.forEach(i=>{let n=i.panoramas,s=i.css2dObjects;n.forEach(a=>{var o;a.box.destroy(),(o=this.scene)==null||o.remove(a.box)}),s.forEach(a=>{var o;(o=this.scene)==null||o.remove(a)})}),this.viewpointAssetsMap.clear()),this.loadingPanos.forEach(i=>{i.creationPromise&&(i.creationPromise.cancel(),i.creationPromise=void 0)}),this.loadingPanos=[],this.previousViewpointId="",this.previousPanoramaId="",this.activeViewpointId="",this.activePanoramaId="",this.viewpoints=e}addPanorama(e,i){let n=this.viewpoints.find(s=>s.id===e);if(!n)throw new Error(`[VRViewer] Failed to find viewpoint by id '${e}'`);n.panoramas||(n.panoramas=[]),n.panoramas.push(i)}findPanorama(e,i){let n=this.viewpoints.find(s=>s.id===e);if(n&&n.panoramas)return n.panoramas.find(s=>s.id===i)}setHotpointsVisibility(e,i="",n=[]){if(!this.viewpoints)return;let s=a=>{var c;let o=this.viewpointAssetsMap.get(a.id),l=(o==null?void 0:o.css2dObjects)||[];(c=a.hotpoints)==null||c.forEach(u=>{if(n&&n.length>0){if(n.findIndex(h=>h===u.hotpointId)===-1)return;if(u.visible=e,this.activeViewpointId===a.id){let h=l.find(p=>p.userData.hotpoint.hotpointId===u.hotpointId);h&&(h.visible=e)}}else u.visible=e,this.activeViewpointId===a.id&&l.forEach(h=>h.visible=e)})};if(i){let a=this.viewpoints.find(o=>o.id===i);a&&s(a)}else this.viewpoints.forEach(a=>s(a))}addHotpoints(e){if(!this.activeViewpointId||!e)return;let i=this.viewpoints.find(s=>s.id===this.activeViewpointId),n=this.viewpointAssetsMap.get(this.activeViewpointId);!i||!n||(i.hotpoints||(i.hotpoints=[]),e.forEach(s=>{var h,p;if(((h=i.hotpoints)==null?void 0:h.findIndex(d=>d.hotpointId===s.hotpointId))!==-1){ne.warn(`[VRViewer] Duplicated hotpointId: ${s.hotpointId}`);return}let a=i.position||[0,0,0],o=s.anchorPosition,l=Sf.createHotpoint(s.html),c=new A(o[0],o[1],o[2]),u=new A(a[0],a[1],a[2]);this.relocateAnchorIfTooCloseToCamera(l,c,u),l.visible=s.visible!==!1,l.userData.hotpoint=s,n.css2dObjects.push(l),(p=this.scene)==null||p.add(l),i.hotpoints.push(s)}))}removeHotpoints(e){if(!this.activeViewpointId||!e)return;let i=this.viewpoints.find(s=>s.id===this.activeViewpointId),n=this.viewpointAssetsMap.get(this.activeViewpointId);!i||!n||e.forEach(s=>{var a,o;if(i.hotpoints)for(let l=i.hotpoints.length-1;l>=0;--l)s===i.hotpoints[l].hotpointId&&i.hotpoints.splice(l,1);for(let l=n.css2dObjects.length-1;l>=0;--l){let c=n.css2dObjects[l];s===((a=c.userData.hotpoint)==null?void 0:a.hotpointId)&&(n.css2dObjects.splice(l,1),(o=this.scene)==null||o.remove(c))}})}activeViewpointById(e,i,n,s){this.activatePanoramaById(e,"",!0,i,n,s)}activatePanoramaById(e,i,n=!0,s,a,o){if(e===this.activeViewpointId&&i===this.activePanoramaId)return;let l=this.viewpoints.find(c=>c.id===e);l&&this.activatePanorama(l,i,n,s,a,o)}removeCachedPanoramas(){this.viewpointAssetsMap.forEach((e,i)=>{var s;let n=e.panoramas;for(let a=n.length-1;a>=0;--a){let o=n[a];if(i===this.activeViewpointId&&o.id===this.activePanoramaId||i===this.previousViewpointId&&o.id===this.previousPanoramaId)return;o.box.destroy(),(s=this.scene)==null||s.remove(o.box),n.splice(a,1)}})}unlimitControlsAndShowAssets(e=!1){this.controls&&(this.controls.enablePan=!0,this.controls.enableZoom=!0),this.viewpointAssetsMap.forEach(i=>{i.panoramas.forEach(n=>{n.box.visible=!0}),e&&i.css2dObjects.forEach(n=>{n.visible=!0})})}relocateAnchorIfTooCloseToCamera(e,i,n){let s=this.camera;if(!s){ne.error("[VRViewer] Camera is not initialized"),e.position.set(i.x,i.y,i.z);return}let a,o=Math.abs(i.distanceTo(n));if(o{let b=g.panoramas.find(S=>S.id===y),x=b==null?void 0:b.box;x&&(E?this.fadeIn(x):this.fadeOut(x))},c=(g,y)=>{g.css2dObjects.forEach(E=>{y?E.userData.hotpoint.visible!==!1&&(E.visible=y):E.visible=y})},u=()=>{var x;let g=new A(0,0,0),y=new A(1,0,0),E=(x=this.getCameraPositionAndDirection())==null?void 0:x.direction;E&&y.set(E.x,E.y,E.z);let b=e.position;if(b&&b.length===3&&g.set(b[0],b[1],b[2]),n){let S=e.initialDirection;S&&S.length===3&&y.set(S[0],S[1],S[2])}this.setCameraPositionAndDirection(g,y,s)};!i&&((d=e.panoramas)==null?void 0:d.length)>0&&(i=e.panoramas[0].id||""),this.handleCameraUpdateInterval();let h=this.viewpointAssetsMap.get(this.activeViewpointId),p=this.viewpointAssetsMap.get(e.id);if(this.activeViewpointId&&h&&(this.activeViewpointId!==e.id&&c(h,!1),l(h,this.activePanoramaId,!1)),p&&p.panoramas.find(y=>y.id===i)){l(p,i,!0),this.activeViewpointId!==e.id&&c(p,!0),this.activeViewpointId!==e.id&&u(),this.activeViewpointId=e.id,this.activePanoramaId=i,a&&a(e);return}this.previousViewpointId=this.activeViewpointId,this.previousPanoramaId=this.activePanoramaId,this.activeViewpointId=e.id,this.activePanoramaId=i;try{if(this.loadingPanos.some(S=>S.viewpointId===e.id&&S.panoramaId===i)){ne.warn(`[VRViewer] Panorama with viewpointId=${e.id} and panoramaId=${i} is being created`);return}let g=new EC(this.createBoxByImageOrImages(e,i));this.loadingPanos.push({viewpointId:e.id,panoramaId:i,creationPromise:g});let y=yield g.promise;this.loadingPanos=this.loadingPanos.filter(S=>S.viewpointId!==e.id||S.panoramaId!==i);let E=e.position;E&&E.length===3&&y.position.set(E[0],E[1],E[2]),this.activeViewpointId===e.id&&this.activePanoramaId===i?(this.fadeIn(y),(f=this.scene)==null||f.add(y),u()):(y.visible=!1,(m=this.scene)==null||m.add(y));let b={id:i,box:y},x=this.viewpointAssetsMap.get(e.id);if(x)x.panoramas.push(b),c(x,!0);else{let S=[];e.hotpoints&&e.hotpoints.forEach(P=>{let _=P.anchorPosition,w=Sf.createHotpoint(P.html);w.visible=P.visible!==!1,w.userData.hotpoint=P;let F=new A(_[0],_[1],_[2]);this.relocateAnchorIfTooCloseToCamera(w,F,y.position),(this.activeViewpointId!==e.id||this.activePanoramaId!==i)&&(w.visible=!1),S.push(w)});let D={panoramas:[b],css2dObjects:S};this.viewpointAssetsMap.set(e.id,D),S.forEach(P=>{var _;return(_=this.scene)==null?void 0:_.add(P)})}a&&a(e)}catch(g){g.type!=="cancel"&&o&&o(g)}})}createBoxByImageOrImages(e,i){var a;let n=e.imageOrImages,s=e.thumbnailImages;if(((a=e.panoramas)==null?void 0:a.length)>0){let o=this.findPanorama(e.id,i);o||(o=e.panoramas[0],ne.warn(`[VRViewer] Failed to find panorama by id '${i}', will use the first one`)),n=o.images,s=o.thumbnails}if(!n)throw new Error("[VRViewer] Invalid images!");if(Array.isArray(n)||(n=[n]),n.length===1)return this.createBoxByImage(n,s);if(n.length===6)return this.createBoxBy6Images(n,s);if(n.length===24)return this.createBoxBy24Images(n,s);throw new Error(`[VRViewer] Wrong number of images! Expected 1/6/24, got ${n.length}`)}createBoxByImage(e,i){return ot(this,null,function*(){let n=new O3(e,i);return yield n.create(),n})}createBoxBy6Images(e,i){return ot(this,null,function*(){if(e.length!==6)throw new Error(`[VRCube] Wrong number of images! Expected 6, got ${e.length}`);let n=new C3(e,i);return yield n.create(),n})}createBoxBy24Images(e,i){return ot(this,null,function*(){if(e.length!==24)throw new Error(`[VRCube] Wrong number of images! Expected 24, got ${e.length}`);let n=new A3(e,i);return yield n.create(),n})}getIntersection(e){if(!this.camera||!this.scene)return;let i=this.viewpointAssetsMap.get(this.activeViewpointId);if(!i)return;let n=i.panoramas.find(h=>h.id===this.activePanoramaId);if(!n)return;let s=n.box,a=this.viewerContainer,o=new le;e&&(o=Mr.getScreenPointByEvent(e,a));let l=Mr.screenPoint2NdcPoint(o,this.camera,a);this.raycaster.setFromCamera(l,this.camera);let c=[s],u=this.raycaster.intersectObjects(c,!0)||[];if(u.length>0)return u.find(p=>{let d=p.object;return d.visible&&d instanceof Je})}fadeIn(e,i=500){e.fadeIn(i)}fadeOut(e,i=1e3){e.fadeOut(i)}handleCameraUpdateInterval(){if(this.cameraUpdateInterval){clearInterval(this.cameraUpdateInterval);let e=this.fianlCameraPosition,i=this.finalCameraTarget;e&&i&&this.controls&&this.camera&&(this.camera.lookAt(i),this.camera.position.set(e.x,e.y,e.z),this.controls.target.set(i.x,i.y,i.z),this.controls.update()),this.cameraUpdateInterval=void 0}this.fianlCameraPosition=void 0,this.finalCameraTarget=void 0}getHitResult(e){let i={location:null};if(!this.camera)return i;let n=this.getIntersection(e);return i.location=n?{x:n.point.x,y:n.point.y,z:n.point.z}:null,i}lookToPosition(e){var s;if(!this.camera)return;this.handleCameraUpdateInterval();let n=new A(e[0],e[1],e[2]).clone().sub(this.camera.position);(s=this.controlsHelper)==null||s.lookTo(n)}};export{BG as BimViewer,ZA as DxfChangeType,GG as DxfViewer,iG as LocalDxfUploader,nG as LocalImageUploader,CS as LocalModelUploader,fo as MarkupType,nl as MeasurementType,zg as SectionType,VG as SimplifiedBimViewer,cE as ToolbarMenuId,zG as VRViewer,$g as ViewerEvent};