!function(t) { function e(e) { for (var n, r, o = e[0], a = e[1], s = 0, l = []; s < o.length; s++) r = o[s], Object.prototype.hasOwnProperty.call(i, r) && i[r] && l.push(i[r][0]), i[r] = 0; for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (t[n] = a[n]); for (c && c(e); l.length; ) l.shift()() } var n = {} , i = { 9: 0 }; function r(e) { if (n[e]) return n[e].exports; var i = n[e] = { i: e, l: !1, exports: {} }; return t[e].call(i.exports, i, i.exports, r), i.l = !0, i.exports } r.e = function(t) { var e = [] , n = i[t]; if (0 !== n) if (n) e.push(n[2]); else { var o = new Promise((function(e, r) { n = i[t] = [e, r] } )); e.push(n[2] = o); var a, s = document.createElement("script"); s.charset = "utf-8", s.timeout = 120, r.nc && s.setAttribute("nonce", r.nc), s.src = function(t) { //return r.p + "" + ({ return ossPrefixDep + ({ 4: "NotoSansCJKjp-Regular", 5: "", 6: "NotoSansCJKtc-Regular", 7: "PTSans-Regular", 8: "", 10: "", 11: "openlayers", 12: "", 13: "vendors~openlayers" }[t] || t) + { 0: "", 1: "", 2: "", 3: "", 4: "c180b1217acb50b16596", 5: "", 6: "64b7b547b4e6a67626a7", 7: "dbde102023883b514726", 8: "", 10: "", 11: "9e59effec83cc3693b5d", 12: "", 13: "bda930fc91df500ed80d", 14: "4331acc2c778ecc64c4a", 15: "", 16: "", 17: "", 18: "", 19: "", 20: "", 21: "", 22: "", 23: "", 24: "", 25: "" }[t] + ".js" }(t); var c = new Error; a = function(e) { s.onerror = s.onload = null, clearTimeout(l); var n = i[t]; if (0 !== n) { if (n) { var r = e && ("load" === e.type ? "missing" : e.type) , o = e && e.target && e.target.src; c.message = "Loading chunk " + t + " failed.\n(" + r + ": " + o + ")", c.name = "ChunkLoadError", c.type = r, c.request = o, n[1](c) } i[t] = void 0 } } ; var l = setTimeout((function() { a({ type: "timeout", target: s }) } ), 12e4); s.onerror = s.onload = a, document.head.appendChild(s) } return Promise.all(e) } , r.m = t, r.c = n, r.d = function(t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) } , r.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) } , r.t = function(t, e) { if (1 & e && (t = r(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) r.d(n, i, function(e) { return t[e] } .bind(null, i)); return n } , r.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t } ; return r.d(e, "a", e), e } , r.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } , r.p = "", r.oe = function(t) { throw console.error(t), t } ; var o = window.webpackJsonpNVIV = window.webpackJsonpNVIV || [] , a = o.push.bind(o); o.push = e, o = o.slice(); for (var s = 0; s < o.length; s++) e(o[s]); var c = a; r(r.s = 651) }([function(t, e, n) { "use strict"; n.r(e), function(t) { n.d(e, "ANALYZE_FOR_ENTRY_COMPONENTS", (function() { return ol } )), n.d(e, "APP_BOOTSTRAP_LISTENER", (function() { return Gy } )), n.d(e, "APP_ID", (function() { return Ny } )), n.d(e, "APP_INITIALIZER", (function() { return Ry } )), n.d(e, "ApplicationInitStatus", (function() { return Ly } )), n.d(e, "ApplicationModule", (function() { return _w } )), n.d(e, "ApplicationRef", (function() { return Fb } )), n.d(e, "Attribute", (function() { return C } )), n.d(e, "COMPILER_OPTIONS", (function() { return cb } )), n.d(e, "CUSTOM_ELEMENTS_SCHEMA", (function() { return Li } )), n.d(e, "ChangeDetectionStrategy", (function() { return At } )), n.d(e, "ChangeDetectorRef", (function() { return Ws } )), n.d(e, "Compiler", (function() { return sb } )), n.d(e, "CompilerFactory", (function() { return lb } )), n.d(e, "Component", (function() { return by } )), n.d(e, "ComponentFactory", (function() { return Hp } )), n.d(e, "ComponentFactoryResolver", (function() { return Yp } )), n.d(e, "ComponentRef", (function() { return Gp } )), n.d(e, "ContentChild", (function() { return cl } )), n.d(e, "ContentChildren", (function() { return sl } )), n.d(e, "DEFAULT_CURRENCY_CODE", (function() { return Xy } )), n.d(e, "DebugElement", (function() { return ww } )), n.d(e, "DebugEventListener", (function() { return $b } )), n.d(e, "DebugNode", (function() { return bw } )), n.d(e, "DefaultIterableDiffer", (function() { return uh } )), n.d(e, "Directive", (function() { return yy } )), n.d(e, "ElementRef", (function() { return Qp } )), n.d(e, "EmbeddedViewRef", (function() { return Qb } )), n.d(e, "ErrorHandler", (function() { return Ri } )), n.d(e, "EventEmitter", (function() { return uv } )), n.d(e, "Host", (function() { return M } )), n.d(e, "HostBinding", (function() { return My } )), n.d(e, "HostListener", (function() { return Ey } )), n.d(e, "INJECTOR", (function() { return lt } )), n.d(e, "Inject", (function() { return b } )), n.d(e, "InjectFlags", (function() { return v } )), n.d(e, "Injectable", (function() { return dc } )), n.d(e, "InjectionToken", (function() { return ct } )), n.d(e, "Injector", (function() { return Pc } )), n.d(e, "Input", (function() { return Sy } )), n.d(e, "IterableDiffers", (function() { return yh } )), n.d(e, "KeyValueDiffers", (function() { return bh } )), n.d(e, "LOCALE_ID", (function() { return qy } )), n.d(e, "MissingTranslationStrategy", (function() { return Uy } )), n.d(e, "ModuleWithComponentFactories", (function() { return Qy } )), n.d(e, "NO_ERRORS_SCHEMA", (function() { return Ni } )), n.d(e, "NgModule", (function() { return Iy } )), n.d(e, "NgModuleFactory", (function() { return Pt } )), n.d(e, "NgModuleFactoryLoader", (function() { return zb } )), n.d(e, "NgModuleRef", (function() { return _t } )), n.d(e, "NgProbeToken", (function() { return Ib } )), n.d(e, "NgZone", (function() { return pb } )), n.d(e, "Optional", (function() { return w } )), n.d(e, "Output", (function() { return xy } )), n.d(e, "PACKAGE_ROOT_URL", (function() { return Hy } )), n.d(e, "PLATFORM_ID", (function() { return zy } )), n.d(e, "PLATFORM_INITIALIZER", (function() { return By } )), n.d(e, "Pipe", (function() { return wy } )), n.d(e, "PlatformRef", (function() { return jb } )), n.d(e, "Query", (function() { return al } )), n.d(e, "QueryList", (function() { return pv } )), n.d(e, "ReflectiveInjector", (function() { return il } )), n.d(e, "ReflectiveKey", (function() { return Gc } )), n.d(e, "Renderer2", (function() { return nh } )), n.d(e, "RendererFactory2", (function() { return eh } )), n.d(e, "RendererStyleFlags2", (function() { return Jp } )), n.d(e, "ResolvedReflectiveFactory", (function() { return Kc } )), n.d(e, "Sanitizer", (function() { return oh } )), n.d(e, "SecurityContext", (function() { return lr } )), n.d(e, "Self", (function() { return S } )), n.d(e, "SimpleChange", (function() { return Ip } )), n.d(e, "SkipSelf", (function() { return x } )), n.d(e, "SystemJsNgModuleLoader", (function() { return Kb } )), n.d(e, "SystemJsNgModuleLoaderConfig", (function() { return Xb } )), n.d(e, "TRANSLATIONS", (function() { return Yy } )), n.d(e, "TRANSLATIONS_FORMAT", (function() { return Ky } )), n.d(e, "TemplateRef", (function() { return Eh } )), n.d(e, "Testability", (function() { return wb } )), n.d(e, "TestabilityRegistry", (function() { return Sb } )), n.d(e, "Type", (function() { return Ys } )), n.d(e, "VERSION", (function() { return sh } )), n.d(e, "Version", (function() { return ah } )), n.d(e, "ViewChild", (function() { return ul } )), n.d(e, "ViewChildren", (function() { return ll } )), n.d(e, "ViewContainerRef", (function() { return Th } )), n.d(e, "ViewEncapsulation", (function() { return Ot } )), n.d(e, "ViewRef", (function() { return Jb } )), n.d(e, "WrappedValue", (function() { return xl } )), n.d(e, "asNativeElements", (function() { return nw } )), n.d(e, "assertPlatform", (function() { return Rb } )), n.d(e, "createPlatform", (function() { return kb } )), n.d(e, "createPlatformFactory", (function() { return Db } )), n.d(e, "defineInjectable", (function() { return _ } )), n.d(e, "destroyPlatform", (function() { return Lb } )), n.d(e, "enableProdMode", (function() { return tr } )), n.d(e, "forwardRef", (function() { return z } )), n.d(e, "getDebugNode", (function() { return mw } )), n.d(e, "getModuleFactory", (function() { return Wb } )), n.d(e, "getPlatform", (function() { return Nb } )), n.d(e, "inject", (function() { return bt } )), n.d(e, "isDevMode", (function() { return $i } )), n.d(e, "platformCore", (function() { return Sw } )), n.d(e, "resolveForwardRef", (function() { return G } )), n.d(e, "setTestabilityGetter", (function() { return xb } )), n.d(e, "ɵ0", (function() { return y } )), n.d(e, "ɵ1", (function() { return E } )), n.d(e, "ɵALLOW_MULTIPLE_PLATFORMS", (function() { return Pb } )), n.d(e, "ɵAPP_ID_RANDOM_PROVIDER", (function() { return Vy } )), n.d(e, "ɵChangeDetectorStatus", (function() { return Tt } )), n.d(e, "ɵCodegenComponentFactoryResolver", (function() { return Kp } )), n.d(e, "ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__", (function() { return ob } )), n.d(e, "ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__", (function() { return ib } )), n.d(e, "ɵCompiler_compileModuleAsync__POST_R3__", (function() { return eb } )), n.d(e, "ɵCompiler_compileModuleSync__POST_R3__", (function() { return $y } )), n.d(e, "ɵComponentFactory", (function() { return Hp } )), n.d(e, "ɵConsole", (function() { return Wy } )), n.d(e, "ɵDEFAULT_LOCALE_ID", (function() { return Um } )), n.d(e, "ɵEMPTY_ARRAY", (function() { return Ef } )), n.d(e, "ɵEMPTY_MAP", (function() { return Cf } )), n.d(e, "ɵINJECTOR_IMPL__POST_R3__", (function() { return Oc } )), n.d(e, "ɵINJECTOR_SCOPE", (function() { return fc } )), n.d(e, "ɵLifecycleHooksFeature", (function() { return wp } )), n.d(e, "ɵLocaleDataIndex", (function() { return Pm } )), n.d(e, "ɵNG_COMP_DEF", (function() { return $ } )), n.d(e, "ɵNG_DIR_DEF", (function() { return tt } )), n.d(e, "ɵNG_ELEMENT_ID", (function() { return ot } )), n.d(e, "ɵNG_INJ_DEF", (function() { return L } )), n.d(e, "ɵNG_MOD_DEF", (function() { return nt } )), n.d(e, "ɵNG_PIPE_DEF", (function() { return et } )), n.d(e, "ɵNG_PROV_DEF", (function() { return R } )), n.d(e, "ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR", (function() { return vm } )), n.d(e, "ɵNO_CHANGE", (function() { return mo } )), n.d(e, "ɵNgModuleFactory", (function() { return Fg } )), n.d(e, "ɵNoopNgZone", (function() { return bb } )), n.d(e, "ɵReflectionCapabilities", (function() { return tc } )), n.d(e, "ɵRender3ComponentFactory", (function() { return Tm } )), n.d(e, "ɵRender3ComponentRef", (function() { return Om } )), n.d(e, "ɵRender3NgModuleRef", (function() { return Vg } )), n.d(e, "ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__", (function() { return qs } )), n.d(e, "ɵSWITCH_COMPILE_COMPONENT__POST_R3__", (function() { return Cy } )), n.d(e, "ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__", (function() { return Ay } )), n.d(e, "ɵSWITCH_COMPILE_INJECTABLE__POST_R3__", (function() { return pc } )), n.d(e, "ɵSWITCH_COMPILE_NGMODULE__POST_R3__", (function() { return ky } )), n.d(e, "ɵSWITCH_COMPILE_PIPE__POST_R3__", (function() { return Ty } )), n.d(e, "ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__", (function() { return $p } )), n.d(e, "ɵSWITCH_IVY_ENABLED__POST_R3__", (function() { return Zy } )), n.d(e, "ɵSWITCH_RENDERER2_FACTORY__POST_R3__", (function() { return ih } )), n.d(e, "ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__", (function() { return Ch } )), n.d(e, "ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__", (function() { return Oh } )), n.d(e, "ɵ_sanitizeHtml", (function() { return Tr } )), n.d(e, "ɵ_sanitizeStyle", (function() { return Ir } )), n.d(e, "ɵ_sanitizeUrl", (function() { return rr } )), n.d(e, "ɵallowSanitizationBypassAndThrow", (function() { return Hi } )), n.d(e, "ɵand", (function() { return Pw } )), n.d(e, "ɵangular_packages_core_core_a", (function() { return H } )), n.d(e, "ɵangular_packages_core_core_b", (function() { return gt } )), n.d(e, "ɵangular_packages_core_core_ba", (function() { return an } )), n.d(e, "ɵangular_packages_core_core_bb", (function() { return ln } )), n.d(e, "ɵangular_packages_core_core_bc", (function() { return mn } )), n.d(e, "ɵangular_packages_core_core_bd", (function() { return kn } )), n.d(e, "ɵangular_packages_core_core_bf", (function() { return Jg } )), n.d(e, "ɵangular_packages_core_core_bg", (function() { return Qg } )), n.d(e, "ɵangular_packages_core_core_bh", (function() { return $g } )), n.d(e, "ɵangular_packages_core_core_bi", (function() { return tv } )), n.d(e, "ɵangular_packages_core_core_bj", (function() { return ev } )), n.d(e, "ɵangular_packages_core_core_bk", (function() { return jr } )), n.d(e, "ɵangular_packages_core_core_bl", (function() { return m } )), n.d(e, "ɵangular_packages_core_core_bm", (function() { return g } )), n.d(e, "ɵangular_packages_core_core_bn", (function() { return A } )), n.d(e, "ɵangular_packages_core_core_bp", (function() { return l } )), n.d(e, "ɵangular_packages_core_core_bq", (function() { return yo } )), n.d(e, "ɵangular_packages_core_core_c", (function() { return xt } )), n.d(e, "ɵangular_packages_core_core_d", (function() { return rl } )), n.d(e, "ɵangular_packages_core_core_e", (function() { return qc } )), n.d(e, "ɵangular_packages_core_core_f", (function() { return Qc } )), n.d(e, "ɵangular_packages_core_core_g", (function() { return jy } )), n.d(e, "ɵangular_packages_core_core_h", (function() { return Bs } )), n.d(e, "ɵangular_packages_core_core_i", (function() { return zs } )), n.d(e, "ɵangular_packages_core_core_j", (function() { return Gb } )), n.d(e, "ɵangular_packages_core_core_k", (function() { return tw } )), n.d(e, "ɵangular_packages_core_core_l", (function() { return ew } )), n.d(e, "ɵangular_packages_core_core_m", (function() { return gw } )), n.d(e, "ɵangular_packages_core_core_n", (function() { return ch } )), n.d(e, "ɵangular_packages_core_core_o", (function() { return mh } )), n.d(e, "ɵangular_packages_core_core_p", (function() { return xw } )), n.d(e, "ɵangular_packages_core_core_q", (function() { return Mw } )), n.d(e, "ɵangular_packages_core_core_r", (function() { return Ew } )), n.d(e, "ɵangular_packages_core_core_s", (function() { return Aw } )), n.d(e, "ɵangular_packages_core_core_t", (function() { return Tw } )), n.d(e, "ɵangular_packages_core_core_u", (function() { return Bm } )), n.d(e, "ɵangular_packages_core_core_v", (function() { return um } )), n.d(e, "ɵangular_packages_core_core_w", (function() { return Uh } )), n.d(e, "ɵangular_packages_core_core_x", (function() { return Am } )), n.d(e, "ɵangular_packages_core_core_y", (function() { return wi } )), n.d(e, "ɵangular_packages_core_core_z", (function() { return en } )), n.d(e, "ɵbypassSanitizationTrustHtml", (function() { return qi } )), n.d(e, "ɵbypassSanitizationTrustResourceUrl", (function() { return Zi } )), n.d(e, "ɵbypassSanitizationTrustScript", (function() { return Yi } )), n.d(e, "ɵbypassSanitizationTrustStyle", (function() { return Xi } )), n.d(e, "ɵbypassSanitizationTrustUrl", (function() { return Ki } )), n.d(e, "ɵccf", (function() { return Ff } )), n.d(e, "ɵclearOverrides", (function() { return rx } )), n.d(e, "ɵclearResolutionOfComponentResourcesQueue", (function() { return ml } )), n.d(e, "ɵcmf", (function() { return ox } )), n.d(e, "ɵcompileComponent", (function() { return ny } )), n.d(e, "ɵcompileDirective", (function() { return iy } )), n.d(e, "ɵcompileNgModule", (function() { return zv } )), n.d(e, "ɵcompileNgModuleDefs", (function() { return Gv } )), n.d(e, "ɵcompileNgModuleFactory__POST_R3__", (function() { return Ab } )), n.d(e, "ɵcompilePipe", (function() { return gy } )), n.d(e, "ɵcreateInjector", (function() { return wc } )), n.d(e, "ɵcrt", (function() { return qh } )), n.d(e, "ɵdefaultIterableDiffers", (function() { return xh } )), n.d(e, "ɵdefaultKeyValueDiffers", (function() { return Mh } )), n.d(e, "ɵdetectChanges", (function() { return Zl } )), n.d(e, "ɵdevModeEqual", (function() { return Sl } )), n.d(e, "ɵdid", (function() { return sm } )), n.d(e, "ɵeld", (function() { return Iw } )), n.d(e, "ɵfindLocaleData", (function() { return Rm } )), n.d(e, "ɵflushModuleScopingQueueAsMuchAsPossible", (function() { return Uv } )), n.d(e, "ɵgetComponentViewDefinitionFactory", (function() { return Uf } )), n.d(e, "ɵgetDebugNodeR2", (function() { return vw } )), n.d(e, "ɵgetDebugNode__POST_R3__", (function() { return fw } )), n.d(e, "ɵgetDirectives", (function() { return ap } )), n.d(e, "ɵgetHostElement", (function() { return cp } )), n.d(e, "ɵgetInjectableDef", (function() { return I } )), n.d(e, "ɵgetLContext", (function() { return qr } )), n.d(e, "ɵgetLocaleCurrencyCode", (function() { return Lm } )), n.d(e, "ɵgetLocalePluralCase", (function() { return Nm } )), n.d(e, "ɵgetModuleFactory__POST_R3__", (function() { return Hb } )), n.d(e, "ɵgetSanitizationBypassType", (function() { return Wi } )), n.d(e, "ɵglobal", (function() { return J } )), n.d(e, "ɵinitServicesIfNeeded", (function() { return yS } )), n.d(e, "ɵinlineInterpolate", (function() { return xf } )), n.d(e, "ɵinterpolate", (function() { return Sf } )), n.d(e, "ɵisBoundToModule__POST_R3__", (function() { return _b } )), n.d(e, "ɵisDefaultChangeDetectionStrategy", (function() { return ee } )), n.d(e, "ɵisListLikeIterable", (function() { return Ml } )), n.d(e, "ɵisObservable", (function() { return mu } )), n.d(e, "ɵisPromise", (function() { return fu } )), n.d(e, "ɵivyEnabled", (function() { return Jy } )), n.d(e, "ɵlooseIdentical", (function() { return wl } )), n.d(e, "ɵmakeDecorator", (function() { return h } )), n.d(e, "ɵmarkDirty", (function() { return Jl } )), n.d(e, "ɵmod", (function() { return If } )), n.d(e, "ɵmpd", (function() { return Pf } )), n.d(e, "ɵncd", (function() { return Bw } )), n.d(e, "ɵnov", (function() { return Jf } )), n.d(e, "ɵoverrideComponentView", (function() { return ix } )), n.d(e, "ɵoverrideProvider", (function() { return nx } )), n.d(e, "ɵpad", (function() { return Hw } )), n.d(e, "ɵpatchComponentDefWithScope", (function() { return Qv } )), n.d(e, "ɵpid", (function() { return cm } )), n.d(e, "ɵpod", (function() { return Ww } )), n.d(e, "ɵppd", (function() { return Gw } )), n.d(e, "ɵprd", (function() { return lm } )), n.d(e, "ɵpublishDefaultGlobalUtils", (function() { return fp } )), n.d(e, "ɵpublishGlobalUtil", (function() { return mp } )), n.d(e, "ɵqud", (function() { return Nw } )), n.d(e, "ɵregisterLocaleData", (function() { return Dm } )), n.d(e, "ɵregisterModuleFactory", (function() { return Rg } )), n.d(e, "ɵregisterNgModuleType", (function() { return Ng } )), n.d(e, "ɵrenderComponent", (function() { return gp } )), n.d(e, "ɵresetCompiledComponents", (function() { return Kv } )), n.d(e, "ɵresetJitOptions", (function() { return Nv } )), n.d(e, "ɵresolveComponentResources", (function() { return dl } )), n.d(e, "ɵsetClassMetadata", (function() { return kg } )), n.d(e, "ɵsetCurrentInjector", (function() { return ft } )), n.d(e, "ɵsetDocument", (function() { return je } )), n.d(e, "ɵsetLocaleId", (function() { return Ig } )), n.d(e, "ɵstore", (function() { return $l } )), n.d(e, "ɵstringify", (function() { return F } )), n.d(e, "ɵted", (function() { return Xw } )), n.d(e, "ɵtransitiveScopesFor", (function() { return $v } )), n.d(e, "ɵunregisterLocaleData", (function() { return Vm } )), n.d(e, "ɵunv", (function() { return Wh } )), n.d(e, "ɵunwrapSafeValue", (function() { return Gi } )), n.d(e, "ɵvid", (function() { return Zw } )), n.d(e, "ɵwhenRendered", (function() { return Sp } )), n.d(e, "ɵɵCopyDefinitionFeature", (function() { return Pp } )), n.d(e, "ɵɵInheritDefinitionFeature", (function() { return Mp } )), n.d(e, "ɵɵNgOnChangesFeature", (function() { return kp } )), n.d(e, "ɵɵProvidersFeature", (function() { return zp } )), n.d(e, "ɵɵadvance", (function() { return xo } )), n.d(e, "ɵɵattribute", (function() { return Il } )), n.d(e, "ɵɵattributeInterpolate1", (function() { return Bl } )), n.d(e, "ɵɵattributeInterpolate2", (function() { return zl } )), n.d(e, "ɵɵattributeInterpolate3", (function() { return Gl } )), n.d(e, "ɵɵattributeInterpolate4", (function() { return Hl } )), n.d(e, "ɵɵattributeInterpolate5", (function() { return Wl } )), n.d(e, "ɵɵattributeInterpolate6", (function() { return ql } )), n.d(e, "ɵɵattributeInterpolate7", (function() { return Xl } )), n.d(e, "ɵɵattributeInterpolate8", (function() { return Yl } )), n.d(e, "ɵɵattributeInterpolateV", (function() { return Kl } )), n.d(e, "ɵɵclassMap", (function() { return nd } )), n.d(e, "ɵɵclassMapInterpolate1", (function() { return Ad } )), n.d(e, "ɵɵclassMapInterpolate2", (function() { return Td } )), n.d(e, "ɵɵclassMapInterpolate3", (function() { return Od } )), n.d(e, "ɵɵclassMapInterpolate4", (function() { return _d } )), n.d(e, "ɵɵclassMapInterpolate5", (function() { return Pd } )), n.d(e, "ɵɵclassMapInterpolate6", (function() { return Id } )), n.d(e, "ɵɵclassMapInterpolate7", (function() { return kd } )), n.d(e, "ɵɵclassMapInterpolate8", (function() { return Dd } )), n.d(e, "ɵɵclassMapInterpolateV", (function() { return Rd } )), n.d(e, "ɵɵclassProp", (function() { return $u } )), n.d(e, "ɵɵcomponentHostSyntheticListener", (function() { return vu } )), n.d(e, "ɵɵcontentQuery", (function() { return Cv } )), n.d(e, "ɵɵdefaultStyleSanitizer", (function() { return Fr } )), n.d(e, "ɵɵdefineComponent", (function() { return oe } )), n.d(e, "ɵɵdefineDirective", (function() { return he } )), n.d(e, "ɵɵdefineInjectable", (function() { return O } )), n.d(e, "ɵɵdefineInjector", (function() { return P } )), n.d(e, "ɵɵdefineNgModule", (function() { return ue } )), n.d(e, "ɵɵdefinePipe", (function() { return fe } )), n.d(e, "ɵɵdirectiveInject", (function() { return eu } )), n.d(e, "ɵɵdisableBindings", (function() { return on } )), n.d(e, "ɵɵelement", (function() { return lu } )), n.d(e, "ɵɵelementContainer", (function() { return pu } )), n.d(e, "ɵɵelementContainerEnd", (function() { return du } )), n.d(e, "ɵɵelementContainerStart", (function() { return uu } )), n.d(e, "ɵɵelementEnd", (function() { return cu } )), n.d(e, "ɵɵelementStart", (function() { return su } )), n.d(e, "ɵɵenableBindings", (function() { return rn } )), n.d(e, "ɵɵgetCurrentView", (function() { return hu } )), n.d(e, "ɵɵgetFactoryOf", (function() { return _i } )), n.d(e, "ɵɵgetInheritedFactory", (function() { return Pi } )), n.d(e, "ɵɵhostProperty", (function() { return $d } )), n.d(e, "ɵɵi18n", (function() { return bg } )), n.d(e, "ɵɵi18nApply", (function() { return Eg } )), n.d(e, "ɵɵi18nAttributes", (function() { return wg } )), n.d(e, "ɵɵi18nEnd", (function() { return mg } )), n.d(e, "ɵɵi18nExp", (function() { return Mg } )), n.d(e, "ɵɵi18nPostprocess", (function() { return fg } )), n.d(e, "ɵɵi18nStart", (function() { return ug } )), n.d(e, "ɵɵinject", (function() { return vt } )), n.d(e, "ɵɵinjectAttribute", (function() { return nu } )), n.d(e, "ɵɵinjectPipeChangeDetectorRef", (function() { return Dv } )), n.d(e, "ɵɵinvalidFactory", (function() { return iu } )), n.d(e, "ɵɵinvalidFactoryDep", (function() { return yt } )), n.d(e, "ɵɵlistener", (function() { return gu } )), n.d(e, "ɵɵloadQuery", (function() { return Ov } )), n.d(e, "ɵɵnamespaceHTML", (function() { return Vn } )), n.d(e, "ɵɵnamespaceMathML", (function() { return jn } )), n.d(e, "ɵɵnamespaceSVG", (function() { return Nn } )), n.d(e, "ɵɵnextContext", (function() { return Su } )), n.d(e, "ɵɵpipe", (function() { return nv } )), n.d(e, "ɵɵpipeBind1", (function() { return iv } )), n.d(e, "ɵɵpipeBind2", (function() { return rv } )), n.d(e, "ɵɵpipeBind3", (function() { return ov } )), n.d(e, "ɵɵpipeBind4", (function() { return av } )), n.d(e, "ɵɵpipeBindV", (function() { return sv } )), n.d(e, "ɵɵprojection", (function() { return Au } )), n.d(e, "ɵɵprojectionDef", (function() { return Mu } )), n.d(e, "ɵɵproperty", (function() { return ru } )), n.d(e, "ɵɵpropertyInterpolate", (function() { return Tu } )), n.d(e, "ɵɵpropertyInterpolate1", (function() { return Ou } )), n.d(e, "ɵɵpropertyInterpolate2", (function() { return _u } )), n.d(e, "ɵɵpropertyInterpolate3", (function() { return Pu } )), n.d(e, "ɵɵpropertyInterpolate4", (function() { return Iu } )), n.d(e, "ɵɵpropertyInterpolate5", (function() { return ku } )), n.d(e, "ɵɵpropertyInterpolate6", (function() { return Du } )), n.d(e, "ɵɵpropertyInterpolate7", (function() { return Ru } )), n.d(e, "ɵɵpropertyInterpolate8", (function() { return Lu } )), n.d(e, "ɵɵpropertyInterpolateV", (function() { return Nu } )), n.d(e, "ɵɵpureFunction0", (function() { return Ug } )), n.d(e, "ɵɵpureFunction1", (function() { return Bg } )), n.d(e, "ɵɵpureFunction2", (function() { return zg } )), n.d(e, "ɵɵpureFunction3", (function() { return Gg } )), n.d(e, "ɵɵpureFunction4", (function() { return Hg } )), n.d(e, "ɵɵpureFunction5", (function() { return Wg } )), n.d(e, "ɵɵpureFunction6", (function() { return qg } )), n.d(e, "ɵɵpureFunction7", (function() { return Xg } )), n.d(e, "ɵɵpureFunction8", (function() { return Yg } )), n.d(e, "ɵɵpureFunctionV", (function() { return Kg } )), n.d(e, "ɵɵqueryRefresh", (function() { return Sv } )), n.d(e, "ɵɵreference", (function() { return tu } )), n.d(e, "ɵɵresolveBody", (function() { return ui } )), n.d(e, "ɵɵresolveDocument", (function() { return li } )), n.d(e, "ɵɵresolveWindow", (function() { return ci } )), n.d(e, "ɵɵrestoreView", (function() { return cn } )), n.d(e, "ɵɵsanitizeHtml", (function() { return kr } )), n.d(e, "ɵɵsanitizeResourceUrl", (function() { return Lr } )), n.d(e, "ɵɵsanitizeScript", (function() { return Nr } )), n.d(e, "ɵɵsanitizeStyle", (function() { return Dr } )), n.d(e, "ɵɵsanitizeUrl", (function() { return Rr } )), n.d(e, "ɵɵsanitizeUrlOrResourceUrl", (function() { return Vr } )), n.d(e, "ɵɵselect", (function() { return Mo } )), n.d(e, "ɵɵsetComponentScope", (function() { return ae } )), n.d(e, "ɵɵsetNgModuleScope", (function() { return de } )), n.d(e, "ɵɵstaticContentQuery", (function() { return Av } )), n.d(e, "ɵɵstaticViewQuery", (function() { return xv } )), n.d(e, "ɵɵstyleMap", (function() { return td } )), n.d(e, "ɵɵstyleMapInterpolate1", (function() { return Ld } )), n.d(e, "ɵɵstyleMapInterpolate2", (function() { return Nd } )), n.d(e, "ɵɵstyleMapInterpolate3", (function() { return jd } )), n.d(e, "ɵɵstyleMapInterpolate4", (function() { return Vd } )), n.d(e, "ɵɵstyleMapInterpolate5", (function() { return Fd } )), n.d(e, "ɵɵstyleMapInterpolate6", (function() { return Ud } )), n.d(e, "ɵɵstyleMapInterpolate7", (function() { return Bd } )), n.d(e, "ɵɵstyleMapInterpolate8", (function() { return zd } )), n.d(e, "ɵɵstyleMapInterpolateV", (function() { return Gd } )), n.d(e, "ɵɵstyleProp", (function() { return Qu } )), n.d(e, "ɵɵstylePropInterpolate1", (function() { return Hd } )), n.d(e, "ɵɵstylePropInterpolate2", (function() { return Wd } )), n.d(e, "ɵɵstylePropInterpolate3", (function() { return qd } )), n.d(e, "ɵɵstylePropInterpolate4", (function() { return Xd } )), n.d(e, "ɵɵstylePropInterpolate5", (function() { return Yd } )), n.d(e, "ɵɵstylePropInterpolate6", (function() { return Kd } )), n.d(e, "ɵɵstylePropInterpolate7", (function() { return Zd } )), n.d(e, "ɵɵstylePropInterpolate8", (function() { return Jd } )), n.d(e, "ɵɵstylePropInterpolateV", (function() { return Qd } )), n.d(e, "ɵɵstyleSanitizer", (function() { return Ju } )), n.d(e, "ɵɵtemplate", (function() { return Ql } )), n.d(e, "ɵɵtemplateRefExtractor", (function() { return kv } )), n.d(e, "ɵɵtext", (function() { return md } )), n.d(e, "ɵɵtextInterpolate", (function() { return gd } )), n.d(e, "ɵɵtextInterpolate1", (function() { return vd } )), n.d(e, "ɵɵtextInterpolate2", (function() { return yd } )), n.d(e, "ɵɵtextInterpolate3", (function() { return bd } )), n.d(e, "ɵɵtextInterpolate4", (function() { return wd } )), n.d(e, "ɵɵtextInterpolate5", (function() { return Sd } )), n.d(e, "ɵɵtextInterpolate6", (function() { return xd } )), n.d(e, "ɵɵtextInterpolate7", (function() { return Md } )), n.d(e, "ɵɵtextInterpolate8", (function() { return Ed } )), n.d(e, "ɵɵtextInterpolateV", (function() { return Cd } )), n.d(e, "ɵɵupdateSyntheticHostBinding", (function() { return tp } )), n.d(e, "ɵɵviewQuery", (function() { return Mv } )); var i = n(1) , r = n(33) , o = n(32) , a = n(12) , s = n(279) , c = n(632); /** * @license Angular v9.1.9 * (c) 2010-2020 Google LLC. https://angular.io/ * License: MIT */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function l(t) { return { toString: t }.toString() } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var u = "__annotations__" , d = "__parameters__" , p = "__prop__metadata__"; function h(t, e, n, r, o) { return l((function() { var a = f(e); function s() { for (var t, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; if (this instanceof s) return a.call.apply(a, Object(i.h)([this], e)), this; var c = new ((t = s).bind.apply(t, Object(i.h)([void 0], e))); return function(t) { return o && o.apply(void 0, Object(i.h)([t], e)), (t.hasOwnProperty(u) ? t[u] : Object.defineProperty(t, u, { value: [] })[u]).push(c), r && r(t), t } } return n && (s.prototype = Object.create(n.prototype)), s.prototype.ngMetadataName = t, s.annotationCls = s, s } )) } function f(t) { return function() { for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; if (t) { var r = t.apply(void 0, Object(i.h)(e)); for (var o in r) this[o] = r[o] } } } function m(t, e, n) { return l((function() { var r = f(e); function o() { for (var t, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; if (this instanceof o) return r.apply(this, e), this; var a = new ((t = o).bind.apply(t, Object(i.h)([void 0], e))); return s.annotation = a, s; function s(t, e, n) { for (var i = t.hasOwnProperty(d) ? t[d] : Object.defineProperty(t, d, { value: [] })[d]; i.length <= n; ) i.push(null); return (i[n] = i[n] || []).push(a), t } } return n && (o.prototype = Object.create(n.prototype)), o.prototype.ngMetadataName = t, o.annotationCls = o, o } )) } function g(t, e, n, r) { return l((function() { var o = f(e); function a() { for (var t, e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; if (this instanceof a) return o.apply(this, e), this; var s = new ((t = a).bind.apply(t, Object(i.h)([void 0], e))); function c(t, n) { var o = t.constructor , a = o.hasOwnProperty(p) ? o[p] : Object.defineProperty(o, p, { value: {} })[p]; a[n] = a.hasOwnProperty(n) && a[n] || [], a[n].unshift(s), r && r.apply(void 0, Object(i.h)([t, n], e)) } return c } return n && (a.prototype = Object.create(n.prototype)), a.prototype.ngMetadataName = t, a.annotationCls = a, a } )) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var v, y = function(t) { return { token: t } }, b = m("Inject", y), w = m("Optional"), S = m("Self"), x = m("SkipSelf"), M = m("Host"), E = function(t) { return { attributeName: t } }, C = m("Attribute", E); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function A(t) { for (var e in t) if (t[e] === A) return e; throw Error("Could not find renamed property on target object.") } function T(t, e) { for (var n in e) e.hasOwnProperty(n) && !t.hasOwnProperty(n) && (t[n] = e[n]) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function O(t) { return { token: t.token, providedIn: t.providedIn || null, factory: t.factory, value: void 0 } } !function(t) { t[t.Default = 0] = "Default", t[t.Host = 1] = "Host", t[t.Self = 2] = "Self", t[t.SkipSelf = 4] = "SkipSelf", t[t.Optional = 8] = "Optional" }(v || (v = {})); var _ = O; function P(t) { return { factory: t.factory, providers: t.providers || [], imports: t.imports || [] } } function I(t) { return k(t, t[R]) || k(t, t[j]) } function k(t, e) { return e && e.token === t ? e : null } function D(t) { return t && (t.hasOwnProperty(L) || t.hasOwnProperty(V)) ? t[L] : null } var R = A({ "ɵprov": A }) , L = A({ "ɵinj": A }) , N = A({ "ɵprovFallback": A }) , j = A({ ngInjectableDef: A }) , V = A({ ngInjectorDef: A }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function F(t) { if ("string" == typeof t) return t; if (Array.isArray(t)) return "[" + t.map(F).join(", ") + "]"; if (null == t) return "" + t; if (t.overriddenName) return "" + t.overriddenName; if (t.name) return "" + t.name; var e = t.toString(); if (null == e) return "" + e; var n = e.indexOf("\n"); return -1 === n ? e : e.substring(0, n) } function U(t, e) { return null == t || "" === t ? null === e ? "" : e : null == e || "" === e ? t : t + " " + e } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var B = A({ __forward_ref__: A }); function z(t) { return t.__forward_ref__ = z, t.toString = function() { return F(this()) } , t } function G(t) { return H(t) ? t() : t } function H(t) { return "function" == typeof t && t.hasOwnProperty(B) && t.__forward_ref__ === z } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var W, q, X, Y = "undefined" != typeof globalThis && globalThis, K = "undefined" != typeof window && window, Z = "undefined" != typeof self && "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope && self, J = Y || void 0 !== t && t || K || Z; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Q() { var t = J.ng; if (!t || !t.ɵcompilerFacade) throw new Error("Angular JIT compilation failed: '@angular/compiler' not loaded!\n - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\n - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\n - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping."); return t.ɵcompilerFacade } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ !function(t) { t[t.Token = 0] = "Token", t[t.Attribute = 1] = "Attribute", t[t.ChangeDetectorRef = 2] = "ChangeDetectorRef", t[t.Invalid = 3] = "Invalid" }(W || (W = {})), function(t) { t[t.Directive = 0] = "Directive", t[t.Component = 1] = "Component", t[t.Injectable = 2] = "Injectable", t[t.Pipe = 3] = "Pipe", t[t.NgModule = 4] = "NgModule" }(q || (q = {})), function(t) { t[t.Emulated = 0] = "Emulated", t[t.Native = 1] = "Native", t[t.None = 2] = "None", t[t.ShadowDom = 3] = "ShadowDom" }(X || (X = {})); var $ = A({ "ɵcmp": A }) , tt = A({ "ɵdir": A }) , et = A({ "ɵpipe": A }) , nt = A({ "ɵmod": A }) , it = A({ "ɵloc": A }) , rt = A({ "ɵfac": A }) , ot = A({ __NG_ELEMENT_ID__: A }); function at() { return !("undefined" != typeof ngDevMode && !ngDevMode) && ("object" != typeof ngDevMode && (t = "undefined" != typeof location ? location.toString() : "", e = { namedConstructors: -1 != t.indexOf("ngDevMode=namedConstructors"), firstCreatePass: 0, tNode: 0, tView: 0, rendererCreateTextNode: 0, rendererSetText: 0, rendererCreateElement: 0, rendererAddEventListener: 0, rendererSetAttribute: 0, rendererRemoveAttribute: 0, rendererSetProperty: 0, rendererSetClassName: 0, rendererAddClass: 0, rendererRemoveClass: 0, rendererSetStyle: 0, rendererRemoveStyle: 0, rendererDestroy: 0, rendererDestroyNode: 0, rendererMoveNode: 0, rendererRemoveNode: 0, rendererAppendChild: 0, rendererInsertBefore: 0, rendererCreateComment: 0 }, n = -1 === t.indexOf("ngDevMode=false"), J.ngDevMode = n && e), !!ngDevMode); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var t, e, n } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var st, ct = function() { function t(t, e) { this._desc = t, this.ngMetadataName = "InjectionToken", this.ɵprov = void 0, "number" == typeof e ? this.__NG_ELEMENT_ID__ = e : void 0 !== e && (this.ɵprov = O({ token: this, providedIn: e.providedIn || "root", factory: e.factory })) } return t.prototype.toString = function() { return "InjectionToken " + this._desc } , t }(), lt = new ct("INJECTOR",-1), ut = {}, dt = /\n/gm, pt = A({ provide: String, useValue: A }), ht = void 0; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ft(t) { var e = ht; return ht = t, e } function mt(t) { var e = st; return st = t, e } function gt(t, e) { if (void 0 === e && (e = v.Default), void 0 === ht) throw new Error("inject() must be called from an injection context"); return null === ht ? wt(t, void 0, e) : ht.get(t, e & v.Optional ? null : void 0, e) } function vt(t, e) { return void 0 === e && (e = v.Default), (st || gt)(G(t), e) } function yt(t) { var e = ngDevMode ? "This constructor is not compatible with Angular Dependency Injection because its dependency at index " + t + " of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index " + t + " is correct and 2) the correct Angular decorators are defined for this class and its ancestors." : "invalid"; throw new Error(e) } var bt = vt; function wt(t, e, n) { var i = I(t); if (i && "root" == i.providedIn) return void 0 === i.value ? i.value = i.factory() : i.value; if (n & v.Optional) return null; if (void 0 !== e) return e; throw new Error("Injector: NOT_FOUND [" + F(t) + "]") } function St(t) { for (var e = [], n = 0; n < t.length; n++) { var i = G(t[n]); if (Array.isArray(i)) { if (0 === i.length) throw new Error("Arguments array must have arguments."); for (var r = void 0, o = v.Default, a = 0; a < i.length; a++) { var s = i[a]; s instanceof w || "Optional" === s.ngMetadataName || s === w ? o |= v.Optional : s instanceof x || "SkipSelf" === s.ngMetadataName || s === x ? o |= v.SkipSelf : s instanceof S || "Self" === s.ngMetadataName || s === S ? o |= v.Self : r = s instanceof b || s === b ? s.token : s } e.push(vt(r, o)) } else e.push(vt(i)) } return e } var xt = function() { function t() {} return t.prototype.get = function(t, e) { if (void 0 === e && (e = ut), e === ut) { var n = new Error("NullInjectorError: No provider for " + F(t) + "!"); throw n.name = "NullInjectorError", n } return e } , t }(); function Mt(t, e, n, i) { var r = t.ngTempTokenPath; throw e.__source && r.unshift(e.__source), t.message = Et("\n" + t.message, r, n, i), t.ngTokenPath = r, t.ngTempTokenPath = null, t } function Et(t, e, n, i) { void 0 === i && (i = null), t = t && "\n" === t.charAt(0) && "ɵ" == t.charAt(1) ? t.substr(2) : t; var r = F(e); if (Array.isArray(e)) r = e.map(F).join(" -> "); else if ("object" == typeof e) { var o = []; for (var a in e) if (e.hasOwnProperty(a)) { var s = e[a]; o.push(a + ":" + ("string" == typeof s ? JSON.stringify(s) : F(s))) } r = "{" + o.join(", ") + "}" } return n + (i ? "(" + i + ")" : "") + "[" + r + "]: " + t.replace(dt, "\n ") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ct = { "ɵɵdefineInjectable": O, "ɵɵdefineInjector": P, "ɵɵinject": vt, "ɵɵgetFactoryOf": function t(e) { var n = e; if (H(e)) return function() { var e = t(G(n)); return e ? e() : null } ; var i = I(n) || D(n); if (!i || void 0 === i.factory) return null; return i.factory }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ , "ɵɵinvalidFactoryDep": yt }; var At, Tt, Ot, _t = function() {}, Pt = function() {}; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function It(t, e) { "number" != typeof t && zt(e, typeof t, "number", "===") } function kt(t, e, n) { It(t, "Expected a number"), Ft(t, n, "Expected number to be less than or equal to"), function(t, e, n) { t >= e || zt(n, t, e, ">=") }(t, e, "Expected number to be greater than or equal to") } function Dt(t, e) { "string" != typeof t && zt(e, null === t ? "null" : typeof t, "string", "===") } function Rt(t, e, n) { t != e && zt(n, t, e, "==") } function Lt(t, e, n) { t == e && zt(n, t, e, "!=") } function Nt(t, e, n) { t !== e && zt(n, t, e, "===") } function jt(t, e, n) { t === e && zt(n, t, e, "!==") } function Vt(t, e, n) { t < e || zt(n, t, e, "<") } function Ft(t, e, n) { t <= e || zt(n, t, e, "<=") } function Ut(t, e, n) { t > e || zt(n, t, e, ">") } function Bt(t, e) { null == t && zt(e, t, null, "!=") } function zt(t, e, n, i) { throw new Error("ASSERTION ERROR: " + t + (null == i ? "" : " [Expected=> " + n + " " + i + " " + e + " <=Actual]")) } function Gt(t) { Rt("undefined" != typeof Node && t instanceof Node || "object" == typeof t && null != t && "WebWorkerRenderNode" === t.constructor.name, !0, "The provided value must be an instance of a DOM Node but got " + F(t)) } function Ht(t, e) { var n = t ? t.length : 0; Vt(e, n, "Index expected to be less than " + n + " but got " + e) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Wt(t, e) { for (var n = 0; n < t.length; n++) e.push(t[n]) } function qt(t, e) { void 0 === e && (e = t); for (var n = 0; n < t.length; n++) { var i = t[n]; Array.isArray(i) ? (e === t && (e = t.slice(0, n)), qt(i, e)) : e !== t && e.push(i) } return e } function Xt(t, e) { t.forEach((function(t) { return Array.isArray(t) ? Xt(t, e) : e(t) } )) } function Yt(t, e, n) { e >= t.length ? t.push(n) : t.splice(e, 0, n) } function Kt(t, e) { return e >= t.length - 1 ? t.pop() : t.splice(e, 1)[0] } function Zt(t, e) { for (var n = [], i = 0; i < t; i++) n.push(e); return n } function Jt(t, e, n) { var i = $t(t, e); return i >= 0 ? t[1 | i] = n : function(t, e, n, i) { ngDevMode && Ft(e, t.length, "Can't insert past array end."); var r = t.length; if (r == e) t.push(n, i); else if (1 === r) t.push(i, t[0]), t[0] = n; else { for (r--, t.push(t[r - 1], t[r]); r > e; ) { var o = r - 2; t[r] = t[o], r-- } t[e] = n, t[e + 1] = i } }(t, i = ~i, e, n), i } function Qt(t, e) { var n = $t(t, e); if (n >= 0) return t[1 | n] } function $t(t, e) { return te(t, e, 1) } function te(t, e, n) { ngDevMode && Rt(Array.isArray(t), !0, "Expecting an array"); for (var i = 0, r = t.length >> n; r !== i; ) { var o = i + (r - i >> 1) , a = t[o << n]; if (e === a) return o << n; a > e ? r = o : i = o + 1 } return ~(r << n) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ee(t) { return null == t || t === At.Default } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ !function(t) { t[t.OnPush = 0] = "OnPush", t[t.Default = 1] = "Default" }(At || (At = {})), function(t) { t[t.CheckOnce = 0] = "CheckOnce", t[t.Checked = 1] = "Checked", t[t.CheckAlways = 2] = "CheckAlways", t[t.Detached = 3] = "Detached", t[t.Errored = 4] = "Errored", t[t.Destroyed = 5] = "Destroyed" }(Tt || (Tt = {})), function(t) { t[t.Emulated = 0] = "Emulated", t[t.Native = 1] = "Native", t[t.None = 2] = "None", t[t.ShadowDom = 3] = "ShadowDom" }(Ot || (Ot = {})); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ne = {} , ie = []; ("undefined" == typeof ngDevMode || ngDevMode) && at() && (Object.freeze(ne), Object.freeze(ie))/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ ; var re = 0; function oe(t) { return l((function() { ("undefined" == typeof ngDevMode || ngDevMode) && at(); var e = t.type , n = e.prototype , i = {} , r = { type: e, providersResolver: null, decls: t.decls, vars: t.vars, factory: null, template: t.template || null, consts: t.consts || null, ngContentSelectors: t.ngContentSelectors, hostBindings: t.hostBindings || null, hostVars: t.hostVars || 0, hostAttrs: t.hostAttrs || null, contentQueries: t.contentQueries || null, declaredInputs: i, inputs: null, outputs: null, exportAs: t.exportAs || null, onChanges: null, onInit: n.ngOnInit || null, doCheck: n.ngDoCheck || null, afterContentInit: n.ngAfterContentInit || null, afterContentChecked: n.ngAfterContentChecked || null, afterViewInit: n.ngAfterViewInit || null, afterViewChecked: n.ngAfterViewChecked || null, onDestroy: n.ngOnDestroy || null, onPush: t.changeDetection === At.OnPush, directiveDefs: null, pipeDefs: null, selectors: t.selectors || ie, viewQuery: t.viewQuery || null, features: t.features || null, data: t.data || {}, encapsulation: t.encapsulation || Ot.Emulated, id: "c", styles: t.styles || ie, _: null, setInput: null, schemas: t.schemas || null, tView: null } , o = t.directives , a = t.features , s = t.pipes; return r.id += re++, r.inputs = pe(t.inputs, i), r.outputs = pe(t.outputs), a && a.forEach((function(t) { return t(r) } )), r.directiveDefs = o ? function() { return ("function" == typeof o ? o() : o).map(se) } : null, r.pipeDefs = s ? function() { return ("function" == typeof s ? s() : s).map(ce) } : null, r } )) } function ae(t, e, n) { var i = t.ɵcmp; i.directiveDefs = function() { return e.map(se) } , i.pipeDefs = function() { return n.map(ce) } } function se(t) { var e = me(t) || ge(t); if (ngDevMode && !e) throw new Error("'" + t.name + "' is neither 'ComponentType' or 'DirectiveType'."); return e } function ce(t) { var e = ve(t); if (ngDevMode && !e) throw new Error("'" + t.name + "' is not a 'PipeType'."); return e } var le = {}; function ue(t) { var e = { type: t.type, bootstrap: t.bootstrap || ie, declarations: t.declarations || ie, imports: t.imports || ie, exports: t.exports || ie, transitiveCompileScopes: null, schemas: t.schemas || null, id: t.id || null }; return null != t.id && l((function() { le[t.id] = t.type } )), e } function de(t, e) { return l((function() { var n = be(t, !0); n.declarations = e.declarations || ie, n.imports = e.imports || ie, n.exports = e.exports || ie } )) } function pe(t, e) { if (null == t) return ne; var n = {}; for (var i in t) if (t.hasOwnProperty(i)) { var r = t[i] , o = r; Array.isArray(r) && (o = r[1], r = r[0]), n[r] = i, e && (e[r] = o) } return n } var he = oe; function fe(t) { return { type: t.type, name: t.name, factory: null, pure: !1 !== t.pure, onDestroy: t.type.prototype.ngOnDestroy || null } } function me(t) { return t[$] || null } function ge(t) { return t[tt] || null } function ve(t) { return t[et] || null } function ye(t, e) { var n = t.hasOwnProperty(rt); if (!n && !0 === e && ngDevMode) throw new Error("Type " + F(t) + " does not have 'ɵfac' property."); return n ? t[rt] : null } function be(t, e) { var n = t[nt] || null; if (!n && !0 === e) throw new Error("Type " + F(t) + " does not have 'ɵmod' property."); return n } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function we(t) { return Array.isArray(t) && "object" == typeof t[1] } function Se(t) { return Array.isArray(t) && !0 === t[1] } function xe(t) { return 0 != (8 & t.flags) } function Me(t) { return 2 == (2 & t.flags) } function Ee(t) { return 1 == (1 & t.flags) } function Ce(t) { return null !== t.template } function Ae(t) { return 0 != (512 & t[2]) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Te(t, e) { t.hasOwnProperty("tView_") && Rt(t.tView_, e[1], "This TNode does not belong to this LView.") } function Oe(t, e) { void 0 === e && (e = "Type passed in is not ComponentType, it does not have 'ɵcmp' property."), me(t) || zt(e) } function _e(t) { Bt(t, "previousOrParentTNode should exist!"), Bt(t.parent, "previousOrParentTNode should have a parent") } function Pe(t) { Bt(t, "LContainer must be defined"), Rt(Se(t), !0, "Expecting LContainer") } function Ie(t) { t && Rt(we(t), !0, "Expecting LView or undefined or null") } function ke(t) { Bt(t, "LView must be defined"), Rt(we(t), !0, "Expecting LView") } function De(t, e) { Rt(t.firstCreatePass, !0, e || "Should only be called in first create pass.") } function Re(t, e) { Rt(t.firstUpdatePass, !0, e || "Should only be called in first update pass.") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Le, Ne = void 0; function je(t) { Ne = t } function Ve() { return void 0 !== Ne ? Ne : "undefined" != typeof document ? document : void 0 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Fe(t) { return !!t.listen } !function(t) { t[t.Important = 1] = "Important", t[t.DashCase = 2] = "DashCase" }(Le || (Le = {})); var Ue = { createRenderer: function(t, e) { return Ve() } }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Be(t) { for (; Array.isArray(t); ) t = t[0]; return t } function ze(t, e) { return Be(e[t + 20]) } function Ge(t, e) { ngDevMode && Te(t, e), ngDevMode && Ht(e, t.index); var n = Be(e[t.index]); return ngDevMode && !Fe(e[11]) && Gt(n), n } function He(t, e) { var n = t.index; if (-1 !== n) { ngDevMode && Te(t, e); var i = Be(e[n]); return ngDevMode && null !== i && !Fe(e[11]) && Gt(i), i } return null } function We(t, e) { return ngDevMode && Ut(e, -1, "wrong index for TNode"), ngDevMode && Vt(e, t.data.length, "wrong index for TNode"), t.data[e + 20] } function qe(t, e) { return ngDevMode && Ht(t, e + 20), t[e + 20] } function Xe(t, e) { ngDevMode && Ht(e, t); var n = e[t]; return we(n) ? n : n[0] } function Ye(t) { return ngDevMode && Bt(t, "Target expected"), t.__ngContext__ || null } function Ke(t) { var e = Ye(t); return e ? Array.isArray(e) ? e : e.lView : null } function Ze(t) { return 4 == (4 & t[2]) } function Je(t) { return 128 == (128 & t[2]) } function Qe(t, e) { return null === t || null == e ? null : t[e] } function $e(t) { t[18] = 0 } function tn(t, e) { t[5] += e; for (var n = t, i = t[3]; null !== i && (1 === e && 1 === n[5] || -1 === e && 0 === n[5]); ) i[5] += e, n = i, i = i[3] } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var en = { lFrame: On(null), bindingsEnabled: !0, checkNoChangesMode: !1 }; function nn() { return en.bindingsEnabled } function rn() { en.bindingsEnabled = !0 } function on() { en.bindingsEnabled = !1 } function an() { return en.lFrame.lView } function sn() { return en.lFrame.tView } function cn(t) { en.lFrame.contextLView = t } function ln() { return en.lFrame.previousOrParentTNode } function un(t, e) { en.lFrame.previousOrParentTNode = t, en.lFrame.isParent = e } function dn() { return en.lFrame.isParent } function pn() { en.lFrame.isParent = !1 } function hn() { return en.checkNoChangesMode } function fn(t) { en.checkNoChangesMode = t } function mn() { var t = en.lFrame , e = t.bindingRootIndex; return -1 === e && (e = t.bindingRootIndex = t.tView.bindingStartIndex), e } function gn() { return en.lFrame.bindingIndex } function vn(t) { return en.lFrame.bindingIndex = t } function yn() { return en.lFrame.bindingIndex++ } function bn(t) { var e = en.lFrame , n = e.bindingIndex; return e.bindingIndex = e.bindingIndex + t, n } function wn(t, e) { var n = en.lFrame; n.bindingIndex = n.bindingRootIndex = t, Sn(e) } function Sn(t) { en.lFrame.currentDirectiveIndex = t } function xn(t) { var e = en.lFrame.currentDirectiveIndex; return -1 === e ? null : t[e] } function Mn() { return en.lFrame.currentQueryIndex } function En(t) { en.lFrame.currentQueryIndex = t } function Cn(t, e) { ngDevMode && Ie(t); var n = Tn(); en.lFrame = n, n.previousOrParentTNode = e, n.lView = t } function An(t, e) { ngDevMode && Ie(t); var n = Tn(); ngDevMode && (Rt(n.isParent, !0, "Expected clean LFrame"), Rt(n.lView, null, "Expected clean LFrame"), Rt(n.tView, null, "Expected clean LFrame"), Rt(n.selectedIndex, 0, "Expected clean LFrame"), Rt(n.elementDepthCount, 0, "Expected clean LFrame"), Rt(n.currentDirectiveIndex, -1, "Expected clean LFrame"), Rt(n.currentNamespace, null, "Expected clean LFrame"), Rt(n.currentSanitizer, null, "Expected clean LFrame"), Rt(n.bindingRootIndex, -1, "Expected clean LFrame"), Rt(n.currentQueryIndex, 0, "Expected clean LFrame")); var i = t[1]; en.lFrame = n, n.previousOrParentTNode = e, n.lView = t, n.tView = i, n.contextLView = t, n.bindingIndex = i.bindingStartIndex } function Tn() { var t = en.lFrame , e = null === t ? null : t.child; return null === e ? On(t) : e } function On(t) { var e = { previousOrParentTNode: null, isParent: !0, lView: null, tView: null, selectedIndex: 0, contextLView: null, elementDepthCount: 0, currentNamespace: null, currentSanitizer: null, currentDirectiveIndex: -1, bindingRootIndex: -1, bindingIndex: -1, currentQueryIndex: 0, parent: t, child: null }; return null !== t && (t.child = e), e } function _n() { var t = en.lFrame; return en.lFrame = t.parent, t.previousOrParentTNode = null, t.lView = null, t } var Pn = _n; function In() { var t = _n(); t.isParent = !0, t.tView = null, t.selectedIndex = 0, t.contextLView = null, t.elementDepthCount = 0, t.currentDirectiveIndex = -1, t.currentNamespace = null, t.currentSanitizer = null, t.bindingRootIndex = -1, t.bindingIndex = -1, t.currentQueryIndex = 0 } function kn(t) { return (en.lFrame.contextLView = function(t, e) { for (; t > 0; ) ngDevMode && Bt(e[15], "Declaration view should be defined if nesting level is greater than 0."), e = e[15], t--; return e }(t, en.lFrame.contextLView))[8] } function Dn() { return en.lFrame.selectedIndex } function Rn(t) { en.lFrame.selectedIndex = t } function Ln() { var t = en.lFrame; return We(t.tView, t.selectedIndex) } function Nn() { en.lFrame.currentNamespace = "http://www.w3.org/2000/svg" } function jn() { en.lFrame.currentNamespace = "http://www.w3.org/1998/MathML/" } function Vn() { en.lFrame.currentNamespace = null } function Fn(t) { en.lFrame.currentSanitizer = t } function Un(t, e) { ngDevMode && De(t); for (var n = e.directiveStart, i = e.directiveEnd; n < i; n++) { var r = t.data[n]; r.afterContentInit && (t.contentHooks || (t.contentHooks = [])).push(-n, r.afterContentInit), r.afterContentChecked && ((t.contentHooks || (t.contentHooks = [])).push(n, r.afterContentChecked), (t.contentCheckHooks || (t.contentCheckHooks = [])).push(n, r.afterContentChecked)), r.afterViewInit && (t.viewHooks || (t.viewHooks = [])).push(-n, r.afterViewInit), r.afterViewChecked && ((t.viewHooks || (t.viewHooks = [])).push(n, r.afterViewChecked), (t.viewCheckHooks || (t.viewCheckHooks = [])).push(n, r.afterViewChecked)), null != r.onDestroy && (t.destroyHooks || (t.destroyHooks = [])).push(n, r.onDestroy) } } function Bn(t, e, n) { Hn(t, e, 3, n) } function zn(t, e, n, i) { ngDevMode && Lt(n, 3, "Init pre-order hooks should not be called more than once"), (3 & t[2]) === n && Hn(t, e, n, i) } function Gn(t, e) { ngDevMode && Lt(e, 3, "Init hooks phase should not be incremented after all init hooks have been run."); var n = t[2]; (3 & n) === e && (n &= 2047, n += 1, t[2] = n) } function Hn(t, e, n, i) { ngDevMode && Rt(hn(), !1, "Hooks should never be run in the check no changes mode."); for (var r = null != i ? i : -1, o = 0, a = void 0 !== i ? 65535 & t[18] : 0; a < e.length; a++) { if ("number" == typeof e[a + 1]) { if (o = e[a], null != i && o >= i) break } else e[a] < 0 && (t[18] += 65536), (o < r || -1 == r) && (Wn(t, n, e, a), t[18] = (4294901760 & t[18]) + a + 2), a++ } } function Wn(t, e, n, i) { var r = n[i] < 0 , o = n[i + 1] , a = t[r ? -n[i] : n[i]]; r ? t[2] >> 11 < t[18] >> 16 && (3 & t[2]) === e && (t[2] += 2048, o.call(a)) : o.call(a) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var qn = function(t, e, n) { this.factory = t, this.resolving = !1, this.canSeeViewProviders = e, this.injectImpl = n }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Xn(t, e) { Bt(t, "should be called with a TNode"), Rt(t.type, e, "should be a " + Kn(e)) } function Yn(t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; Bt(t, "should be called with a TNode"); var i = e.some((function(e) { return t.type === e } )); Rt(i, !0, "Should be one of " + e.map(Kn).join(", ") + " but got " + Kn(t.type)) } function Kn(t) { return 1 == t ? "Projection" : 0 == t ? "Container" : 5 == t ? "IcuContainer" : 2 == t ? "View" : 3 == t ? "Element" : 4 == t ? "ElementContainer" : "" } function Zn(t, e, n) { for (var i = Fe(t), r = 0; r < n.length; ) { var o = n[r]; if ("number" == typeof o) { if (0 !== o) break; r++; var a = n[r++] , s = n[r++] , c = n[r++]; ngDevMode && ngDevMode.rendererSetAttribute++, i ? t.setAttribute(e, s, c, a) : e.setAttributeNS(a, s, c) } else { s = o, c = n[++r]; ngDevMode && ngDevMode.rendererSetAttribute++, Qn(s) ? i && t.setProperty(e, s, c) : i ? t.setAttribute(e, s, c) : e.setAttribute(s, c), r++ } } return r } function Jn(t) { return 3 === t || 4 === t || 6 === t } function Qn(t) { return 64 === t.charCodeAt(0) } function $n(t, e) { if (null === e || 0 === e.length) ; else if (null === t || 0 === t.length) t = e.slice(); else for (var n = -1, i = 0; i < e.length; i++) { var r = e[i]; "number" == typeof r ? n = r : 0 === n || ti(t, n, r, null, -1 === n || 2 === n ? e[++i] : null) } return t } function ti(t, e, n, i, r) { var o = 0 , a = t.length; if (-1 === e) a = -1; else for (; o < t.length; ) { var s = t[o++]; if ("number" == typeof s) { if (s === e) { a = -1; break } if (s > e) { a = o - 1; break } } } for (; o < t.length; ) { var c = t[o]; if ("number" == typeof c) break; if (c === n) { if (null === i) return void (null !== r && (t[o + 1] = r)); if (i === t[o + 1]) return void (t[o + 2] = r) } o++, null !== i && o++, null !== r && o++ } -1 !== a && (t.splice(a, 0, e), o = a + 1), t.splice(o++, 0, n), null !== i && t.splice(o++, 0, i), null !== r && t.splice(o++, 0, r) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ei(t) { return -1 !== t } function ni(t) { return 32767 & t } function ii(t) { return t >> 16 } function ri(t, e) { for (var n = ii(t), i = e; n > 0; ) i = i[15], n--; return i } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function oi(t) { return "string" == typeof t ? t : null == t ? "" : "" + t } function ai(t) { return "function" == typeof t ? t.name || t.toString() : "object" == typeof t && null != t && "function" == typeof t.type ? t.type.name || t.type.toString() : oi(t) } var si = ("undefined" != typeof requestAnimationFrame && requestAnimationFrame || setTimeout).bind(J); function ci(t) { return { name: "window", target: t.ownerDocument.defaultView } } function li(t) { return { name: "document", target: t.ownerDocument } } function ui(t) { return { name: "body", target: t.ownerDocument.body } } function di(t) { return t instanceof Function ? t() : t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var pi = !0; function hi(t) { var e = pi; return pi = t, e } var fi = 0; function mi(t, e) { var n = vi(t, e); if (-1 !== n) return n; var i = e[1]; i.firstCreatePass && (t.injectorIndex = e.length, gi(i.data, t), gi(e, null), gi(i.blueprint, null)); var r = yi(t, e) , o = t.injectorIndex; if (ei(r)) for (var a = ni(r), s = ri(r, e), c = s[1].data, l = 0; l < 8; l++) e[o + l] = s[a + l] | c[a + l]; return e[o + 8] = r, o } function gi(t, e) { t.push(0, 0, 0, 0, 0, 0, 0, 0, e) } function vi(t, e) { return -1 === t.injectorIndex || t.parent && t.parent.injectorIndex === t.injectorIndex || null == e[t.injectorIndex + 8] ? -1 : t.injectorIndex } function yi(t, e) { if (t.parent && -1 !== t.parent.injectorIndex) return t.parent.injectorIndex; for (var n = e[6], i = 1; n && -1 === n.injectorIndex; ) n = (e = e[15]) ? e[6] : null, i++; return n ? n.injectorIndex | i << 16 : -1 } function bi(t, e, n) { !function(t, e, n) { ngDevMode && Rt(e.firstCreatePass, !0, "expected firstCreatePass to be true"); var i = "string" != typeof n ? n[ot] : n.charCodeAt(0) || 0; null == i && (i = n[ot] = fi++); var r = 255 & i , o = 1 << r , a = 128 & r , s = 64 & r , c = 32 & r , l = e.data; a ? s ? c ? l[t + 7] |= o : l[t + 6] |= o : c ? l[t + 5] |= o : l[t + 4] |= o : s ? c ? l[t + 3] |= o : l[t + 2] |= o : c ? l[t + 1] |= o : l[t] |= o }(t, e, n) } function wi(t, e) { if (ngDevMode && Yn(t, 0, 3, 4), ngDevMode && Bt(t, "expecting tNode"), "class" === e) return t.classes; if ("style" === e) return t.styles; var n = t.attrs; if (n) for (var i = n.length, r = 0; r < i; ) { var o = n[r]; if (Jn(o)) break; if (0 === o) r += 2; else if ("number" == typeof o) for (r++; r < i && "string" == typeof n[r]; ) r++; else { if (o === e) return n[r + 1]; r += 2 } } return null } function Si(t, e, n, i, r) { if (void 0 === i && (i = v.Default), null !== t) { var o = function(t) { if (ngDevMode && Bt(t, "token must be defined"), "string" == typeof t) return t.charCodeAt(0) || 0; var e = t[ot]; return "number" == typeof e && e > 0 ? 255 & e : e }(n); if ("function" == typeof o) { Cn(e, t); try { var a = o(); if (null != a || i & v.Optional) return a; throw new Error("No provider for " + ai(n) + "!") } finally { Pn() } } else if ("number" == typeof o) { if (-1 === o) return new Oi(t,e); var s = null , c = vi(t, e) , l = -1 , u = i & v.Host ? e[16][6] : null; for ((-1 === c || i & v.SkipSelf) && (l = -1 === c ? yi(t, e) : e[c + 8], Ti(i, !1) ? (s = e[1], c = ni(l), e = ri(l, e)) : c = -1); -1 !== c; ) { l = e[c + 8]; var d = e[1]; if (Ai(o, c, d.data)) { var p = Mi(c, e, n, s, i, u); if (p !== xi) return p } Ti(i, e[1].data[c + 8] === u) && Ai(o, c, e) ? (s = d, c = ni(l), e = ri(l, e)) : c = -1 } } } if (i & v.Optional && void 0 === r && (r = null), 0 == (i & (v.Self | v.Host))) { var h = e[9] , f = mt(void 0); try { return h ? h.get(n, r, i & v.Optional) : wt(n, r, i & v.Optional) } finally { mt(f) } } if (i & v.Optional) return r; throw new Error("NodeInjector: NOT_FOUND [" + ai(n) + "]") } var xi = {}; function Mi(t, e, n, i, r, o) { var a = e[1] , s = a.data[t + 8] , c = Ei(s, a, n, null == i ? Me(s) && pi : i != a && 3 === s.type, r & v.Host && o === s); return null !== c ? Ci(e, a, c, s) : xi } function Ei(t, e, n, i, r) { for (var o = t.providerIndexes, a = e.data, s = 65535 & o, c = t.directiveStart, l = t.directiveEnd, u = o >> 16, d = r ? s + u : l, p = i ? s : s + u; p < d; p++) { var h = a[p]; if (p < c && n === h || p >= c && h.type === n) return p } if (r) { var f = a[c]; if (f && Ce(f) && f.type === n) return c } return null } function Ci(t, e, n, i) { var r = t[n] , o = e.data; if (r instanceof qn) { var a = r; if (a.resolving) throw new Error("Circular dep for " + ai(o[n])); var s = hi(a.canSeeViewProviders); a.resolving = !0; var c = void 0; a.injectImpl && (c = mt(a.injectImpl)), Cn(t, i); try { r = t[n] = a.factory(void 0, o, t, i), e.firstCreatePass && n >= i.directiveStart && (ngDevMode && function(t) { void 0 !== t.type && null != t.selectors && void 0 !== t.inputs || zt("Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.") }(o[n]), /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function(t, e, n) { ngDevMode && De(n); var i = e.onChanges , r = e.onInit , o = e.doCheck; i && ((n.preOrderHooks || (n.preOrderHooks = [])).push(t, i), (n.preOrderCheckHooks || (n.preOrderCheckHooks = [])).push(t, i)), r && (n.preOrderHooks || (n.preOrderHooks = [])).push(-t, r), o && ((n.preOrderHooks || (n.preOrderHooks = [])).push(t, o), (n.preOrderCheckHooks || (n.preOrderCheckHooks = [])).push(t, o)) }(n, o[n], e)) } finally { a.injectImpl && mt(c), hi(s), a.resolving = !1, Pn() } } return r } function Ai(t, e, n) { var i = 1 << t , r = 64 & t , o = 32 & t; return !!((128 & t ? r ? o ? n[e + 7] : n[e + 6] : o ? n[e + 5] : n[e + 4] : r ? o ? n[e + 3] : n[e + 2] : o ? n[e + 1] : n[e]) & i) } function Ti(t, e) { return !(t & v.Self || t & v.Host && e) } var Oi = function() { function t(t, e) { this._tNode = t, this._lView = e } return t.prototype.get = function(t, e) { return Si(this._tNode, this._lView, t, void 0, e) } , t }(); function _i(t) { var e = t; if (H(t)) return function() { var t = _i(G(e)); return t ? t() : null } ; var n = ye(e); if (null === n) { var i = D(e); n = i && i.factory } return n || null } function Pi(t) { return l((function() { var e = Object.getPrototypeOf(t.prototype).constructor , n = e[rt] || _i(e); return null !== n ? n : function(t) { return new t } } )) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ii(t) { return t.ngDebugContext } function ki(t) { return t.ngOriginalError } function Di(t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; t.error.apply(t, Object(i.h)(e)) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ri = function() { function t() { this._console = console } return t.prototype.handleError = function(t) { var e = this._findOriginalError(t) , n = this._findContext(t) , i = function(t) { return t.ngErrorLogger || Di }(t); i(this._console, "ERROR", t), e && i(this._console, "ORIGINAL ERROR", e), n && i(this._console, "ERROR CONTEXT", n) } , t.prototype._findContext = function(t) { return t ? Ii(t) ? Ii(t) : this._findContext(ki(t)) : null } , t.prototype._findOriginalError = function(t) { for (var e = ki(t); e && ki(e); ) e = ki(e); return e } , t }() , Li = { name: "custom-elements" } , Ni = { name: "no-errors-schema" } , ji = function() { function t(t) { this.changingThisBreaksApplicationSecurity = t } return t.prototype.toString = function() { return "SafeValue must use [property]=binding: " + this.changingThisBreaksApplicationSecurity + " (see http://g.co/ng/security#xss)" } , t }() , Vi = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e.prototype.getTypeName = function() { return "HTML" } , e }(ji) , Fi = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e.prototype.getTypeName = function() { return "Style" } , e }(ji) , Ui = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e.prototype.getTypeName = function() { return "Script" } , e }(ji) , Bi = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e.prototype.getTypeName = function() { return "URL" } , e }(ji) , zi = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e.prototype.getTypeName = function() { return "ResourceURL" } , e }(ji); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Gi(t) { return t instanceof ji ? t.changingThisBreaksApplicationSecurity : t } function Hi(t, e) { var n = Wi(t); if (null != n && n !== e) { if ("ResourceURL" === n && "URL" === e) return !0; throw new Error("Required a safe " + e + ", got a " + n + " (see http://g.co/ng/security#xss)") } return n === e } function Wi(t) { return t instanceof ji && t.getTypeName() || null } function qi(t) { return new Vi(t) } function Xi(t) { return new Fi(t) } function Yi(t) { return new Ui(t) } function Ki(t) { return new Bi(t) } function Zi(t) { return new zi(t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ji = !0 , Qi = !1; function $i() { return Qi = !0, Ji } function tr() { if (Qi) throw new Error("Cannot enable prod mode after platform setup."); Ji = !1 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var er = function() { function t(t) { this.defaultDoc = t, this.inertDocument = this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"); var e = this.inertDocument.body; if (null == e) { var n = this.inertDocument.createElement("html"); this.inertDocument.appendChild(n), e = this.inertDocument.createElement("body"), n.appendChild(e) } e.innerHTML = '', !e.querySelector || e.querySelector("svg") ? (e.innerHTML = '

', e.querySelector && e.querySelector("svg img") && function() { try { return !!window.DOMParser } catch (t) { return !1 } }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ () ? this.getInertBodyElement = this.getInertBodyElement_DOMParser : this.getInertBodyElement = this.getInertBodyElement_InertDocument) : this.getInertBodyElement = this.getInertBodyElement_XHR } return t.prototype.getInertBodyElement_XHR = function(t) { t = "" + t + ""; try { t = encodeURI(t) } catch (t) { return null } var e = new XMLHttpRequest; e.responseType = "document", e.open("GET", "data:text/html;charset=utf-8," + t, !1), e.send(void 0); var n = e.response.body; return n.removeChild(n.firstChild), n } , t.prototype.getInertBodyElement_DOMParser = function(t) { t = "" + t + ""; try { var e = (new window.DOMParser).parseFromString(t, "text/html").body; return e.removeChild(e.firstChild), e } catch (t) { return null } } , t.prototype.getInertBodyElement_InertDocument = function(t) { var e = this.inertDocument.createElement("template"); if ("content"in e) return e.innerHTML = t, e; var n = this.inertDocument.createElement("body"); return n.innerHTML = t, this.defaultDoc.documentMode && this.stripCustomNsAttrs(n), n } , t.prototype.stripCustomNsAttrs = function(t) { for (var e = t.attributes, n = e.length - 1; 0 < n; n--) { var i = e.item(n).name; "xmlns:ns1" !== i && 0 !== i.indexOf("ns1:") || t.removeAttribute(i) } for (var r = t.firstChild; r; ) r.nodeType === Node.ELEMENT_NODE && this.stripCustomNsAttrs(r), r = r.nextSibling } , t }(); var nr = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi , ir = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i; function rr(t) { return (t = String(t)).match(nr) || t.match(ir) ? t : ($i() && console.warn("WARNING: sanitizing unsafe URL value " + t + " (see http://g.co/ng/security#xss)"), "unsafe:" + t) } function or(t) { return (t = String(t)).split(",").map((function(t) { return rr(t.trim()) } )).join(", ") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ar(t) { var e, n, r = {}; try { for (var o = Object(i.j)(t.split(",")), a = o.next(); !a.done; a = o.next()) { r[a.value] = !0 } } catch (t) { e = { error: t } } finally { try { a && !a.done && (n = o.return) && n.call(o) } finally { if (e) throw e.error } } return r } function sr() { for (var t, e, n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r]; var o = {}; try { for (var a = Object(i.j)(n), s = a.next(); !s.done; s = a.next()) { var c = s.value; for (var l in c) c.hasOwnProperty(l) && (o[l] = !0) } } catch (e) { t = { error: e } } finally { try { s && !s.done && (e = a.return) && e.call(a) } finally { if (t) throw t.error } } return o } var cr, lr, ur = ar("area,br,col,hr,img,wbr"), dr = ar("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"), pr = ar("rp,rt"), hr = sr(pr, dr), fr = sr(dr, ar("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")), mr = sr(pr, ar("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")), gr = sr(ur, fr, mr, hr), vr = ar("background,cite,href,itemtype,longdesc,poster,src,xlink:href"), yr = ar("srcset"), br = ar("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"), wr = ar("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"), Sr = sr(vr, yr, br, wr), xr = ar("script,style,template"), Mr = function() { function t() { this.sanitizedSomething = !1, this.buf = [] } return t.prototype.sanitizeChildren = function(t) { for (var e = t.firstChild, n = !0; e; ) if (e.nodeType === Node.ELEMENT_NODE ? n = this.startElement(e) : e.nodeType === Node.TEXT_NODE ? this.chars(e.nodeValue) : this.sanitizedSomething = !0, n && e.firstChild) e = e.firstChild; else for (; e; ) { e.nodeType === Node.ELEMENT_NODE && this.endElement(e); var i = this.checkClobberedElement(e, e.nextSibling); if (i) { e = i; break } e = this.checkClobberedElement(e, e.parentNode) } return this.buf.join("") } , t.prototype.startElement = function(t) { var e = t.nodeName.toLowerCase(); if (!gr.hasOwnProperty(e)) return this.sanitizedSomething = !0, !xr.hasOwnProperty(e); this.buf.push("<"), this.buf.push(e); for (var n = t.attributes, i = 0; i < n.length; i++) { var r = n.item(i) , o = r.name , a = o.toLowerCase(); if (Sr.hasOwnProperty(a)) { var s = r.value; vr[a] && (s = rr(s)), yr[a] && (s = or(s)), this.buf.push(" ", o, '="', Ar(s), '"') } else this.sanitizedSomething = !0 } return this.buf.push(">"), !0 } , t.prototype.endElement = function(t) { var e = t.nodeName.toLowerCase(); gr.hasOwnProperty(e) && !ur.hasOwnProperty(e) && (this.buf.push("")) } , t.prototype.chars = function(t) { this.buf.push(Ar(t)) } , t.prototype.checkClobberedElement = function(t, e) { if (e && (t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_CONTAINED_BY) === Node.DOCUMENT_POSITION_CONTAINED_BY) throw new Error("Failed to sanitize html because the element is clobbered: " + t.outerHTML); return e } , t }(), Er = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, Cr = /([^\#-~ |!])/g; function Ar(t) { return t.replace(/&/g, "&").replace(Er, (function(t) { return "&#" + (1024 * (t.charCodeAt(0) - 55296) + (t.charCodeAt(1) - 56320) + 65536) + ";" } )).replace(Cr, (function(t) { return "&#" + t.charCodeAt(0) + ";" } )).replace(//g, ">") } function Tr(t, e) { var n = null; try { cr = cr || new er(t); var i = e ? String(e) : ""; n = cr.getInertBodyElement(i); var r = 5 , o = i; do { if (0 === r) throw new Error("Failed to sanitize html because the input is unstable"); r--, i = o, o = n.innerHTML, n = cr.getInertBodyElement(i) } while (i !== o); var a = new Mr , s = a.sanitizeChildren(Or(n) || n); return $i() && a.sanitizedSomething && console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"), s } finally { if (n) for (var c = Or(n) || n; c.firstChild; ) c.removeChild(c.firstChild) } } function Or(t) { return "content"in t && function(t) { return t.nodeType === Node.ELEMENT_NODE && "TEMPLATE" === t.nodeName }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (t) ? t.content : null } !function(t) { t[t.NONE = 0] = "NONE", t[t.HTML = 1] = "HTML", t[t.STYLE = 2] = "STYLE", t[t.SCRIPT = 3] = "SCRIPT", t[t.URL = 4] = "URL", t[t.RESOURCE_URL = 5] = "RESOURCE_URL" }(lr || (lr = {})); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var _r = new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:attr|calc|var))\\([-0-9.%, #a-zA-Z]+\\))$","g") , Pr = /^url\(([^)]+)\)$/; function Ir(t) { if (!(t = String(t).trim())) return ""; var e = t.match(Pr); return e && rr(e[1]) === e[1] || t.match(_r) && function(t) { for (var e = !0, n = !0, i = 0; i < t.length; i++) { var r = t.charAt(i); "'" === r && n ? e = !e : '"' === r && e && (n = !n) } return e && n }(t) ? t : ($i() && console.warn("WARNING: sanitizing unsafe style value " + t + " (see http://g.co/ng/security#xss)."), "unsafe") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kr(t) { var e = Br(); return e ? e.sanitize(lr.HTML, t) || "" : Hi(t, "HTML") ? Gi(t) : Tr(Ve(), oi(t)) } function Dr(t) { var e = Br(); return e ? e.sanitize(lr.STYLE, t) || "" : Hi(t, "Style") ? Gi(t) : Ir(oi(t)) } function Rr(t) { var e = Br(); return e ? e.sanitize(lr.URL, t) || "" : Hi(t, "URL") ? Gi(t) : rr(oi(t)) } function Lr(t) { var e = Br(); if (e) return e.sanitize(lr.RESOURCE_URL, t) || ""; if (Hi(t, "ResourceURL")) return Gi(t); throw new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)") } function Nr(t) { var e = Br(); if (e) return e.sanitize(lr.SCRIPT, t) || ""; if (Hi(t, "Script")) return Gi(t); throw new Error("unsafe value used in a script context") } function jr(t, e) { return "src" === e && ("embed" === t || "frame" === t || "iframe" === t || "media" === t || "script" === t) || "href" === e && ("base" === t || "link" === t) ? Lr : Rr } function Vr(t, e, n) { return jr(e, n)(t) } var Fr = function(t, e, n) { if (void 0 === e && void 0 === n) return Dr(t); var i = !0; return 1 & (n = n || 3) && (i = Ur(t)), 2 & n ? i ? Dr(e) : Gi(e) : i }; function Ur(t) { return "background-image" === t || "backgroundImage" === t || "background" === t || "border-image" === t || "borderImage" === t || "border-image-source" === t || "borderImageSource" === t || "filter" === t || "list-style" === t || "listStyle" === t || "list-style-image" === t || "listStyleImage" === t || "clip-path" === t || "clipPath" === t } function Br() { var t = an(); return t && t[12] } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function zr(t) { if (!ngDevMode) throw new Error("Looks like we are in 'prod mode', but we are creating a named Array type, which is wrong! Check your code"); try { return new (0, zr.constructor)("Array","return class " + t + " extends Array{}")(Array) } catch (t) { return Array } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Gr(t) { var e; return e = t.replace(/[$@]/g, "_"), "ng-reflect-" + (t = e.replace(Hr, (function() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; return "-" + t[1].toLowerCase() } ))) } var Hr = /([A-Z])/g; function Wr(t) { try { return null != t ? t.toString().slice(0, 30) : t } catch (t) { return "[ERROR] Exception while trying to serialize the value" } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function qr(t) { var e, n = Ye(t); if (n) { if (Array.isArray(n)) { var i = n , r = void 0 , o = void 0 , a = void 0; if ((e = t) && e.constructor && e.constructor.ɵcmp) { if (-1 == (r = Qr(i, t))) throw new Error("The provided component was not found in the application"); o = t } else if (function(t) { return t && t.constructor && t.constructor.ɵdir }(t)) { if (-1 == (r = function(t, e) { var n = t[1].firstChild; for (; n; ) { for (var i = n.directiveStart, r = n.directiveEnd, o = i; o < r; o++) if (t[o] === e) return n.index; n = Jr(n) } return -1 }(i, t))) throw new Error("The provided directive was not found in the application"); a = $r(r, i, !1) } else if (-1 == (r = Zr(i, t))) return null; var s = Ye(f = Be(i[r])) , c = s && !Array.isArray(s) ? s : Xr(i, r, f); if (o && void 0 === c.component && (c.component = o, Kr(c.component, c)), a && void 0 === c.directives) { c.directives = a; for (var l = 0; l < a.length; l++) Kr(a[l], c) } Kr(c.native, c), n = c } } else { var u = t; ngDevMode && Gt(u); for (var d = u; d = d.parentNode; ) { var p = Ye(d); if (p) { i = void 0; if (!(i = Array.isArray(p) ? p : p.lView)) return null; var h = Zr(i, u); if (h >= 0) { var f; Kr(f = Be(i[h]), c = Xr(i, h, f)), n = c; break } } } } return n || null } function Xr(t, e, n) { return { lView: t, nodeIndex: e, native: n, component: void 0, directives: void 0, localRefs: void 0 } } function Yr(t) { var e, n = Ye(t); if (Array.isArray(n)) { var i = Qr(n, t); (r = Xr(n, i, (e = Xe(i, n))[0])).component = t, Kr(t, r), Kr(r.native, r) } else { var r; e = Xe((r = n).nodeIndex, r.lView) } return e } function Kr(t, e) { t.__ngContext__ = e } function Zr(t, e) { for (var n = t[1].firstChild; n; ) { if (He(n, t) === e) return n.index; n = Jr(n) } return -1 } function Jr(t) { if (t.child) return t.child; if (t.next) return t.next; for (; t.parent && !t.parent.next; ) t = t.parent; return t.parent && t.parent.next } function Qr(t, e) { var n = t[1].components; if (n) for (var i = 0; i < n.length; i++) { var r = n[i]; if (Xe(r, t)[8] === e) return r } else if (Xe(20, t)[8] === e) return 20; return -1 } function $r(t, e, n) { var i = e[1].data[t] , r = i.directiveStart; if (0 == r) return ie; var o = i.directiveEnd; return !n && 2 & i.flags && r++, e.slice(r, o) } function to(t) { throw new Error("Multiple components match node with tagname " + t.tagName) } function eo() { throw new Error("Cannot mix multi providers and regular providers") } function no(t, e, n, r, o) { for (var a = Object(i.f)(r.split("�")), s = a[0], c = a[1], l = a.slice(2), u = c, d = c, p = 0; p < l.length; p++) { var h = e + p; u += "" + t[h] + l[p], d += "" + (h === n ? o : t[h]) + l[p] } return { propName: s, oldValue: u, newValue: d } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function io(t, e, n) { ngDevMode && Lt(e, "", 'can not look for "" string.'); for (var i = t.length; ; ) { var r = t.indexOf(e, n); if (-1 === r) return r; if (0 === r || t.charCodeAt(r - 1) <= 32) { var o = e.length; if (r + o === i || t.charCodeAt(r + o) <= 32) return r } n = r + 1 } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ro(t, e, n) { ngDevMode && Rt(e, e.toLowerCase(), "Class name expected to be lowercase."); for (var i = 0; i < t.length; ) { var r = t[i++]; if (n && "class" === r) { if (-1 !== io((r = t[i]).toLowerCase(), e, 0)) return !0 } else if (1 === r) { for (; i < t.length && "string" == typeof (r = t[i++]); ) if (r.toLowerCase() === e) return !0; return !1 } } return !1 } function oo(t) { return 0 === t.type && "ng-template" !== t.tagName } function ao(t, e, n) { return e === (0 !== t.type || n ? t.tagName : "ng-template") } function so(t, e, n) { ngDevMode && Bt(e[0], "Selector should have a tag name"); for (var i = 4, r = t.attrs || [], o = function(t) { for (var e = 0; e < t.length; e++) { if (Jn(t[e])) return e } return t.length }(r), a = !1, s = 0; s < e.length; s++) { var c = e[s]; if ("number" != typeof c) { if (!a) if (4 & i) { if (i = 2 | 1 & i, "" !== c && !ao(t, c, n) || "" === c && 1 === e.length) { if (co(i)) return !1; a = !0 } } else { var l = 8 & i ? c : e[++s]; if (8 & i && null !== t.attrs) { if (!ro(t.attrs, l, n)) { if (co(i)) return !1; a = !0 } continue } var u = lo(8 & i ? "class" : c, r, oo(t), n); if (-1 === u) { if (co(i)) return !1; a = !0; continue } if ("" !== l) { var d = void 0; u > o ? d = "" : (ngDevMode && Lt(r[u], 0, "We do not match directives on namespaced attributes"), d = r[u + 1].toLowerCase()); var p = 8 & i ? d : null; if (p && -1 !== io(p, l, 0) || 2 & i && l !== d) { if (co(i)) return !1; a = !0 } } } } else { if (!a && !co(i) && !co(c)) return !1; if (a && co(c)) continue; a = !1, i = c | 1 & i } } return co(i) || a } function co(t) { return 0 == (1 & t) } function lo(t, e, n, i) { if (null === e) return -1; var r = 0; if (i || !n) { for (var o = !1; r < e.length; ) { var a = e[r]; if (a === t) return r; if (3 === a || 6 === a) o = !0; else { if (1 === a || 2 === a) { for (var s = e[++r]; "string" == typeof s; ) s = e[++r]; continue } if (4 === a) break; if (0 === a) { r += 4; continue } } r += o ? 1 : 2 } return -1 } return function(t, e) { var n = t.indexOf(4); if (n > -1) for (n++; n < t.length; ) { var i = t[n]; if ("number" == typeof i) return -1; if (i === e) return n; n++ } return -1 }(e, t) } function uo(t, e, n) { void 0 === n && (n = !1); for (var i = 0; i < e.length; i++) if (so(t, e[i], n)) return !0; return !1 } function po(t, e) { t: for (var n = 0; n < e.length; n++) { var i = e[n]; if (t.length === i.length) { for (var r = 0; r < t.length; r++) if (t[r] !== i[r]) continue t; return !0 } } return !1 } function ho(t, e) { return t ? ":not(" + e.trim() + ")" : e } function fo(t) { for (var e = t[0], n = 1, i = 2, r = "", o = !1; n < t.length; ) { var a = t[n]; if ("string" == typeof a) if (2 & i) { var s = t[++n]; r += "[" + a + (s.length > 0 ? '="' + s + '"' : "") + "]" } else 8 & i ? r += "." + a : 4 & i && (r += " " + a); else "" === r || co(a) || (e += ho(o, r), r = ""), i = a, o = o || !co(i); n++ } return "" !== r && (e += ho(o, r)), e } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var mo = "undefined" == typeof ngDevMode || ngDevMode ? { __brand__: "NO_CHANGE" } : {}; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function go(t) { ngDevMode && ke(t); var e = t[3]; return Se(e) ? e[3] : e } function vo(t) { ngDevMode && Bt(t, "component"); for (var e = we(t) ? t : Ke(t); e && !(512 & e[2]); ) e = go(e); return ngDevMode && ke(e), e } function yo(t) { var e = vo(t); return ngDevMode && Bt(e[8], "RootView has no context. Perhaps it is disconnected?"), e[8] } function bo(t) { return So(t[13]) } function wo(t) { return So(t[4]) } function So(t) { for (; null !== t && !Se(t); ) t = t[4]; return t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function xo(t) { ngDevMode && Ut(t, 0, "Can only advance forward"), Eo(sn(), an(), Dn() + t, hn()) } function Mo(t) { Eo(sn(), an(), t, hn()) } function Eo(t, e, n, i) { if (ngDevMode && Ut(n, -1, "Invalid index"), ngDevMode && Ht(e, n + 20), !i) if (3 == (3 & e[2])) { var r = t.preOrderCheckHooks; null !== r && Bn(e, r, n) } else { var o = t.preOrderHooks; null !== o && zn(e, o, 0, n) } Rn(n) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Co = { marker: "element" } , Ao = { marker: "comment" }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function To(t, e) { return ngDevMode && kt(t, 0, 32767), ngDevMode && kt(e, 0, 32767), t << 17 | e << 2 } function Oo(t) { return ngDevMode && It(t, "expected number"), t >> 17 & 32767 } function _o(t) { return ngDevMode && It(t, "expected number"), 2 == (2 & t) } function Po(t) { return ngDevMode && It(t, "expected number"), 2 | t } function Io(t) { return ngDevMode && It(t, "expected number"), (131068 & t) >> 2 } function ko(t, e) { return ngDevMode && It(t, "expected number"), ngDevMode && kt(e, 0, 32767), -131069 & t | e << 2 } function Do(t) { return ngDevMode && It(t, "expected number"), 1 == (1 & t) } function Ro(t) { return ngDevMode && It(t, "expected number"), 1 | t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Lo(t, e) { Object.defineProperty(t, "debug", { value: e, enumerable: !1 }) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var No, jo, Vo, Fo = ("undefined" == typeof ngDevMode || !!ngDevMode) && at(); function Uo(t) { return function(t, e) { switch (t) { case 0: return void 0 === Vo && (Vo = new (zr("LRootView"))), Vo; case 1: void 0 === No && (No = new Map); var n = No.get(e); return void 0 === n && (n = new (zr("LComponentView" + Bo(e))), No.set(e, n)), n; case 2: void 0 === jo && (jo = new Map); var i = jo.get(e); return void 0 === i && (i = new (zr("LEmbeddedView" + Bo(e))), jo.set(e, i)), i } throw new Error("unreachable code") }(t.type, t.template && t.template.name).concat(t.blueprint) } function Bo(t) { if (null == t) return ""; var e = t.lastIndexOf("_Template"); return "_" + (-1 === e ? t : t.substr(0, e)) } var zo = function() { function t(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b, w, S, x, M, E, C, A, T, O, _, P) { this.type = t, this.id = e, this.blueprint = n, this.template = i, this.queries = r, this.viewQuery = o, this.node = a, this.data = s, this.bindingStartIndex = c, this.expandoStartIndex = l, this.expandoInstructions = u, this.firstCreatePass = d, this.firstUpdatePass = p, this.staticViewQueries = h, this.staticContentQueries = f, this.preOrderHooks = m, this.preOrderCheckHooks = g, this.contentHooks = v, this.contentCheckHooks = y, this.viewHooks = b, this.viewCheckHooks = w, this.destroyHooks = S, this.cleanup = x, this.contentQueries = M, this.components = E, this.directiveRegistry = C, this.pipeRegistry = A, this.firstChild = T, this.schemas = O, this.consts = _, this.incompleteFirstPass = P } return Object.defineProperty(t.prototype, "template_", { get: function() { var t = []; return Wo(this.firstChild, t), t.join("") }, enumerable: !0, configurable: !0 }), t }() , Go = function() { function t(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b, w, S, x, M, E, C, A, T, O, _, P) { this.tView_ = t, this.type = e, this.index = n, this.injectorIndex = i, this.directiveStart = r, this.directiveEnd = o, this.directiveStylingLast = a, this.propertyBindings = s, this.flags = c, this.providerIndexes = l, this.tagName = u, this.attrs = d, this.mergedAttrs = p, this.localNames = h, this.initialInputs = f, this.inputs = m, this.outputs = g, this.tViews = v, this.next = y, this.projectionNext = b, this.child = w, this.parent = S, this.projection = x, this.styles = M, this.stylesWithoutHost = E, this.residualStyles = C, this.classes = A, this.classesWithoutHost = T, this.residualClasses = O, this.classBindings = _, this.styleBindings = P } return Object.defineProperty(t.prototype, "type_", { get: function() { switch (this.type) { case 0: return "TNodeType.Container"; case 3: return "TNodeType.Element"; case 4: return "TNodeType.ElementContainer"; case 5: return "TNodeType.IcuContainer"; case 1: return "TNodeType.Projection"; case 2: return "TNodeType.View"; default: return "TNodeType.???" } }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "flags_", { get: function() { var t = []; return 16 & this.flags && t.push("TNodeFlags.hasClassInput"), 8 & this.flags && t.push("TNodeFlags.hasContentQuery"), 32 & this.flags && t.push("TNodeFlags.hasStyleInput"), 128 & this.flags && t.push("TNodeFlags.hasHostBindings"), 2 & this.flags && t.push("TNodeFlags.isComponentHost"), 1 & this.flags && t.push("TNodeFlags.isDirectiveHost"), 64 & this.flags && t.push("TNodeFlags.isDetached"), 4 & this.flags && t.push("TNodeFlags.isProjected"), t.join("|") }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "template_", { get: function() { var t = []; if (t.push("<", this.tagName || this.type_), this.attrs) for (var e = 0; e < this.attrs.length; ) { var n = this.attrs[e++]; if ("number" == typeof n) break; var i = this.attrs[e++]; t.push(" ", n, '="', i, '"') } return t.push(">"), Wo(this.child, t), t.push(""), t.join("") }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "styleBindings_", { get: function() { return Ho(this, !1) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "classBindings_", { get: function() { return Ho(this, !0) }, enumerable: !0, configurable: !0 }), t }(); function Ho(t, e) { for (var n = t.tView_.data, i = [], r = e ? t.classBindings : t.styleBindings, o = Oo(r), a = Io(r), s = 0 !== a, c = s ? a : o; 0 !== c; ) { var l = n[c] , u = n[c + 1]; i.unshift({ key: l, index: c, isTemplate: s, prevDuplicate: _o(u), nextDuplicate: Do(u), nextIndex: Io(u), prevIndex: Oo(u) }), c === o && (s = !1), c = Oo(u) } return i.push((e ? t.residualClasses : t.residualStyles) || null), i } function Wo(t, e) { for (; t; ) e.push(t.template_), t = t.next } var qo, Xo = Fo && zr("TViewData") || null; var Yo = Fo && zr("LViewBlueprint") || null , Ko = Fo && zr("MatchesArray") || null , Zo = Fo && zr("TViewComponents") || null , Jo = Fo && zr("TNodeLocalNames") || null , Qo = Fo && zr("TNodeInitialInputs") || null , $o = (Fo && zr("TNodeInitialData"), Fo && zr("LCleanup") || null) , ta = Fo && zr("TCleanup") || null; function ea(t) { if (t) { var e = t.debug; return Bt(e, "Object does not have a debug representation."), e } return t } function na(t, e) { void 0 === e && (e = !1); var n = Be(t); if (n) { var i = n.nodeType === Node.TEXT_NODE , r = (i ? n.textContent : n.outerHTML) || ""; if (e || i) return r; var o = ">" + n.innerHTML + "<"; return r.split(o)[0] + ">" } return null } var ia = function() { function t(t) { this._raw_lView = t } return Object.defineProperty(t.prototype, "flags", { get: function() { var t = this._raw_lView[2]; return { __raw__flags__: t, initPhaseState: 3 & t, creationMode: !!(4 & t), firstViewPass: !!(8 & t), checkAlways: !!(16 & t), dirty: !!(64 & t), attached: !!(128 & t), destroyed: !!(256 & t), isRoot: !!(512 & t), indexWithinInitPhase: t >> 11 } }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "parent", { get: function() { return ea(this._raw_lView[3]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "host", { get: function() { return na(this._raw_lView[0], !0) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "html", { get: function() { return (this.nodes || []).map((function(t) { return na(t.native, !0) } )).join("") }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return this._raw_lView[8] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "nodes", { get: function() { var t = this._raw_lView; return ra(t[1].firstChild, t) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "tView", { get: function() { return this._raw_lView[1] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "cleanup", { get: function() { return this._raw_lView[7] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "injector", { get: function() { return this._raw_lView[9] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "rendererFactory", { get: function() { return this._raw_lView[10] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "renderer", { get: function() { return this._raw_lView[11] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "sanitizer", { get: function() { return this._raw_lView[12] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "childHead", { get: function() { return ea(this._raw_lView[13]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "next", { get: function() { return ea(this._raw_lView[4]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "childTail", { get: function() { return ea(this._raw_lView[14]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "declarationView", { get: function() { return ea(this._raw_lView[15]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "queries", { get: function() { return this._raw_lView[19] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "tHost", { get: function() { return this._raw_lView[6] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "childViews", { get: function() { for (var t = [], e = this.childHead; e; ) t.push(e), e = e.next; return t }, enumerable: !0, configurable: !0 }), t }(); function ra(t, e) { if (t) { for (var n = [], i = t; i; ) n.push(oa(i, e, i.index)), i = i.next; return n } return null } function oa(t, e, n) { var i = e[n] , r = Be(i) , o = ea(function(t) { for (; Array.isArray(t); ) { if (t.length >= 19) return t; t = t[0] } return null }(i)); return { html: na(r), native: r, nodes: ra(t.child, e), component: o } } var aa = function() { function t(t) { this._raw_lContainer = t } return Object.defineProperty(t.prototype, "hasTransplantedViews", { get: function() { return this._raw_lContainer[2] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "views", { get: function() { return this._raw_lContainer.slice(10).map(ea) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "parent", { get: function() { return ea(this._raw_lContainer[3]) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "movedViews", { get: function() { return this._raw_lContainer[9] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "host", { get: function() { return this._raw_lContainer[0] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "native", { get: function() { return this._raw_lContainer[7] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "next", { get: function() { return ea(this._raw_lContainer[4]) }, enumerable: !0, configurable: !0 }), t }(); var sa = function() { function t(t, e, n, i) { this.__raw_opCode = t, this._lView = e, this.nodeIndex = n, this.type = i } return Object.defineProperty(t.prototype, "tNode", { get: function() { return We(this._lView[1], this.nodeIndex) }, enumerable: !0, configurable: !0 }), t }(); var ca = function() { function t(t, e) { this.__raw_opCodes = t, this.__lView = e } return Object.defineProperty(t.prototype, "operations", { get: function() { for (var t = this.__lView, e = this.__raw_opCodes, n = [], i = 0; i < e.length; i++) { var r = e[i] , o = void 0; if ("string" == typeof r && (o = { __raw_opCode: r, type: "Create Text Node", nodeIndex: e[++i], text: r }), "number" == typeof r) switch (7 & r) { case 1: o = new sa(r,t,r >>> 17,"AppendChild"); break; case 0: o = new sa(r,t,r >>> 3,"Select"); break; case 5: var a = r >>> 3; o = new sa(r,t,a,"ElementEnd"); break; case 4: (o = new sa(r,t,a = r >>> 3,"Attr")).attrName = e[++i], o.attrValue = e[++i] } if (!o) switch (r) { case Ao: o = { __raw_opCode: r, type: "COMMENT_MARKER", commentValue: e[++i], nodeIndex: e[++i] }; break; case Co: o = { __raw_opCode: r, type: "ELEMENT_MARKER" } } o || (o = { __raw_opCode: r, type: "Unknown Op Code", code: r }), n.push(o) } return n }, enumerable: !0, configurable: !0 }), t }() , la = function() { function t(t, e, n) { this.__raw_opCodes = t, this.icus = e, this.__lView = n } return Object.defineProperty(t.prototype, "operations", { get: function() { for (var t = this.__lView, e = this.__raw_opCodes, n = this.icus, i = [], r = 0; r < e.length; r++) { for (var o = e[r], a = e[++r], s = "", c = r + 1; c <= r + a; c++) { var l = e[c]; if ("string" == typeof l) s += l; else if ("number" == typeof l) if (l < 0) s += "�" + (-l - 1) + "�"; else { var u = l >>> 2 , d = void 0 , p = void 0; switch (3 & l) { case 1: var h = e[++c] , f = e[++c]; i.push({ __raw_opCode: l, checkBit: o, type: "Attr", attrValue: s, attrName: h, sanitizeFn: f }); break; case 0: i.push({ __raw_opCode: l, checkBit: o, type: "Text", nodeIndex: u, text: s }); break; case 2: p = n[d = e[++c]]; var m = new sa(l,t,u,"IcuSwitch"); m.tIcuIndex = d, m.checkBit = o, m.mainBinding = s, m.tIcu = p, i.push(m); break; case 3: p = n[d = e[++c]], (m = new sa(l,t,u,"IcuUpdate")).tIcuIndex = d, m.checkBit = o, m.tIcu = p, i.push(m) } } } r += a } return i }, enumerable: !0, configurable: !0 }), t }() , ua = Promise.resolve(null); function da(t, e) { var n = t.contentQueries; if (null !== n) for (var i = 0; i < n.length; i += 2) { var r = n[i] , o = n[i + 1]; if (-1 !== o) { var a = t.data[o]; ngDevMode && Bt(a.contentQueries, "contentQueries function should be defined"), En(r), a.contentQueries(2, e[o], o) } } } function pa(t, e, n) { return Fe(e) ? e.createElement(t, n) : null === n ? e.createElement(t) : e.createElementNS(n, t) } function ha(t, e, n, i, r, o, a, s, c, l) { var u = ngDevMode ? Uo(e) : e.blueprint.slice(); return u[0] = r, u[2] = 140 | i, $e(u), u[3] = u[15] = t, u[8] = n, u[10] = a || t && t[10], ngDevMode && Bt(u[10], "RendererFactory is required"), u[11] = s || t && t[11], ngDevMode && Bt(u[11], "Renderer is required"), u[12] = c || t && t[12] || null, u[9] = l || t && t[9] || null, u[6] = o, ngDevMode && Rt(2 != e.type || null !== t, !0, "Embedded views must have parentLView"), u[16] = 2 == e.type ? t[16] : u, ngDevMode && function(t) { Lo(t, new ia(t)) }(u), u } function fa(t, e, n, i, r, o) { var a = n + 20 , s = t.data[a] || function(t, e, n, i, r, o) { var a = ln() , s = dn() , c = s ? a : a && a.parent , l = c && c !== e ? c : null , u = t.data[n] = Aa(t, l, i, n, r, o); null === t.firstChild && (t.firstChild = u); a && (!s || null != a.child || null === u.parent && 2 !== a.type ? s || (a.next = u) : a.child = u); return u }(t, e, a, i, r, o); return un(s, !0), s } function ma(t, e, n) { ngDevMode && Rt(Ze(e), !0, "Should be run in creation mode"), An(e, e[6]); try { var i = t.viewQuery; null !== i && es(1, i, n); var r = t.template; null !== r && ya(t, e, r, 1, n), t.firstCreatePass && (t.firstCreatePass = !1), t.staticContentQueries && da(t, e), t.staticViewQueries && es(2, t.viewQuery, n); var o = t.components; null !== o && function(t, e) { for (var n = 0; n < e.length; n++) Ka(t, e[n]) }(e, o) } catch (e) { throw t.firstCreatePass && (t.incompleteFirstPass = !0), e } finally { e[2] &= -5, In() } } function ga(t, e, n, i) { ngDevMode && Rt(Ze(e), !1, "Should be run in update mode"); var r = e[2]; if (256 != (256 & r)) { An(e, e[6]); var o = hn(); try { $e(e), vn(t.bindingStartIndex), null !== n && ya(t, e, n, 2, i); var a = 3 == (3 & r); if (!o) if (a) { var s = t.preOrderCheckHooks; null !== s && Bn(e, s, null) } else { var c = t.preOrderHooks; null !== c && zn(e, c, 0, null), Gn(e, 0) } if (function(t) { for (var e = bo(t); null !== e; e = wo(e)) if (e[2]) { var n = e[9]; ngDevMode && Bt(n, "Transplanted View flags set but missing MOVED_VIEWS"); for (var i = 0; i < n.length; i++) { var r = n[i] , o = r[3]; ngDevMode && Pe(o), 0 == (1024 & r[2]) && tn(o, 1), r[2] |= 1024 } } }(e), function(t) { for (var e = bo(t); null !== e; e = wo(e)) for (var n = 10; n < e.length; n++) { var i = e[n] , r = i[1]; ngDevMode && Bt(r, "TView must be allocated"), Je(i) && ga(r, i, r.template, i[8]) } }(e), null !== t.contentQueries && da(t, e), !o) if (a) { var l = t.contentCheckHooks; null !== l && Bn(e, l) } else { var u = t.contentHooks; null !== u && zn(e, u, 1), Gn(e, 1) } !function(t, e) { ngDevMode && Nt(t, e[1], "`LView` is not associated with the `TView`!"); try { var n = t.expandoInstructions; if (null !== n) for (var i = t.expandoStartIndex, r = -1, o = 0; o < n.length; o++) { var a = n[o]; if ("number" == typeof a) { if (a <= 0) Rn(0 - a), r = i += 9 + n[++o]; else i += a } else { if (null !== a) wn(i, r), a(2, e[r]); r++ } } } finally { Rn(-1) } }(t, e); var d = t.components; null !== d && function(t, e) { for (var n = 0; n < e.length; n++) Ya(t, e[n]) }(e, d); var p = t.viewQuery; if (null !== p && es(2, p, i), !o) if (a) { var h = t.viewCheckHooks; null !== h && Bn(e, h) } else { var f = t.viewHooks; null !== f && zn(e, f, 2), Gn(e, 2) } !0 === t.firstUpdatePass && (t.firstUpdatePass = !1), o || (e[2] &= -73), 1024 & e[2] && (e[2] &= -1025, tn(e[3], -1)) } finally { In() } } } function va(t, e, n, i) { var r = e[10] , o = !hn() , a = Ze(e); try { o && !a && r.begin && r.begin(), a && ma(t, e, i), ga(t, e, n, i) } finally { o && !a && r.end && r.end() } } function ya(t, e, n, i, r) { var o = Dn(); try { Rn(-1), 2 & i && e.length > 20 && Eo(t, e, 0, hn()), n(i, r) } finally { Rn(o) } } function ba(t, e, n) { if (xe(e)) for (var i = e.directiveStart, r = e.directiveEnd, o = i; o < r; o++) { var a = t.data[o]; a.contentQueries && a.contentQueries(1, n[o], o) } } function wa(t, e, n) { nn() && (function(t, e, n, i) { var r = n.directiveStart , o = n.directiveEnd; t.firstCreatePass || mi(n, e); Kr(i, e); for (var a = n.initialInputs, s = r; s < o; s++) { var c = t.data[s] , l = Ce(c); l && (ngDevMode && Yn(n, 3), za(e, n, c)); var u = Ci(e, t, s, n); if (Kr(u, e), null !== a && Ha(e, s - r, u, c, n, a), l) Xe(n.index, e)[8] = u } }(t, e, n, Ge(n, e)), 128 == (128 & n.flags) && function(t, e, n) { var i = n.directiveStart , r = n.directiveEnd , o = t.expandoInstructions , a = t.firstCreatePass , s = n.index - 20 , c = en.lFrame.currentDirectiveIndex; try { Rn(s); for (var l = i; l < r; l++) { var u = t.data[l] , d = e[l]; Sn(l), null !== u.hostBindings || 0 !== u.hostVars || null !== u.hostAttrs ? Na(u, d) : a && o.push(null) } } finally { Rn(-1), Sn(c) } }(t, e, n)) } function Sa(t, e, n) { void 0 === n && (n = Ge); var i = e.localNames; if (null !== i) for (var r = e.index + 1, o = 0; o < i.length; o += 2) { var a = i[o + 1] , s = -1 === a ? n(e, t) : t[a]; t[r++] = s } } function xa(t) { var e = t.tView; return null === e || e.incompleteFirstPass ? t.tView = Ma(1, -1, t.template, t.decls, t.vars, t.directiveDefs, t.pipeDefs, t.viewQuery, t.schemas, t.consts) : e } function Ma(t, e, n, i, r, o, a, s, c, l) { ngDevMode && ngDevMode.tView++; var u, d = 20 + i, p = d + r, h = function(t, e) { for (var n = ngDevMode ? new Yo : [], i = 0; i < e; i++) n.push(i < t ? null : mo); return n }(d, p); return h[1] = ngDevMode ? new zo(t,e,h,n,null,s,null,(u = h, void 0 === qo && (qo = new Xo), qo.concat(u)).fill(null, d),d,p,null,!0,!0,!1,!1,null,null,null,null,null,null,null,null,null,null,"function" == typeof o ? o() : o,"function" == typeof a ? a() : a,null,c,l,!1) : { type: t, id: e, blueprint: h, template: n, queries: null, viewQuery: s, node: null, data: h.slice().fill(null, d), bindingStartIndex: d, expandoStartIndex: p, expandoInstructions: null, firstCreatePass: !0, firstUpdatePass: !0, staticViewQueries: !1, staticContentQueries: !1, preOrderHooks: null, preOrderCheckHooks: null, contentHooks: null, contentCheckHooks: null, viewHooks: null, viewCheckHooks: null, destroyHooks: null, cleanup: null, contentQueries: null, components: null, directiveRegistry: "function" == typeof o ? o() : o, pipeRegistry: "function" == typeof a ? a() : a, firstChild: null, schemas: c, consts: l, incompleteFirstPass: !1 } } function Ea(t, e) { return new Error("Renderer: " + t + " [" + ai(e) + "]") } function Ca(t, e, n) { if (Fe(t)) { var i = n === Ot.ShadowDom; return t.selectRootElement(e, i) } var r = "string" == typeof e ? t.querySelector(e) : e; return ngDevMode && function(t, e) { if (!t) throw Ea("string" == typeof e ? "Host node with selector not found:" : "Host node is required:", e) }(r, e), r.textContent = "", r } function Aa(t, e, n, i, r, o) { ngDevMode && ngDevMode.tNode++; var a = e ? e.injectorIndex : -1; return ngDevMode ? new Go(t,n,i,a,-1,-1,-1,null,0,0,r,o,null,null,void 0,null,null,null,null,null,null,e,null,null,null,void 0,null,null,void 0,0,0) : { type: n, index: i, injectorIndex: a, directiveStart: -1, directiveEnd: -1, directiveStylingLast: -1, propertyBindings: null, flags: 0, providerIndexes: 0, tagName: r, attrs: o, mergedAttrs: null, localNames: null, initialInputs: void 0, inputs: null, outputs: null, tViews: null, next: null, projectionNext: null, child: null, parent: e, projection: null, styles: null, stylesWithoutHost: null, residualStyles: void 0, classes: null, classesWithoutHost: null, residualClasses: void 0, classBindings: 0, styleBindings: 0 } } function Ta(t, e, n) { for (var i in t) if (t.hasOwnProperty(i)) { n = null === n ? {} : n; var r = t[i]; n.hasOwnProperty(i) ? n[i].push(e, r) : n[i] = [e, r] } return n } function Oa(t, e, n, i, r, o, a, s) { ngDevMode && jt(r, mo, "Incoming value should never be NO_CHANGE."); var c, l = Ge(e, n), u = e.inputs; if (!s && null != u && (c = u[i])) cs(t, n, c, i, r), Me(e) && function(t, e) { ngDevMode && ke(t); var n = Xe(e, t); 16 & n[2] || (n[2] |= 64) }(n, e.index), ngDevMode && Pa(n, l, e.type, c, r); else if (3 === e.type) { if (i = function(t) { return "class" === t ? "className" : "for" === t ? "htmlFor" : "formaction" === t ? "formAction" : "innerHtml" === t ? "innerHTML" : "readonly" === t ? "readOnly" : "tabindex" === t ? "tabIndex" : t }(i), ngDevMode) { if (function(t) { if (t.toLowerCase().startsWith("on")) { var e = "Binding to event property '" + t + "' is disallowed for security reasons, please use (" + t.slice(2) + ")=...\nIf '" + t + "' is a directive input, make sure the directive is imported by the current module."; throw new Error(e) } }(i), !function(t, e, n, i, r) { if (null === t.schemas) return !0; if (Ia(t, e, r.tagName) || i in n || Qn(i)) return !0; return "undefined" == typeof Node || null === Node || !(n instanceof Node) }(t, n, l, i, e)) return void ka(i, e); ngDevMode.rendererSetProperty++ } r = null != a ? a(r, e.tagName || "", i) : r, Fe(o) ? o.setProperty(l, i, r) : Qn(i) || (l.setProperty ? l.setProperty(i, r) : l[i] = r) } else 0 === e.type && ngDevMode && !Ia(t, n, e.tagName) && ka(i, e) } function _a(t, e, n, i, r) { var o, a = t[11]; i = Gr(i); var s = Wr(r); if (3 === n) null == r ? Fe(a) ? a.removeAttribute(e, i) : e.removeAttribute(i) : Fe(a) ? a.setAttribute(e, i, s) : e.setAttribute(i, s); else { var c = "bindings=" + JSON.stringify(((o = {})[i] = s, o), null, 2); Fe(a) ? a.setValue(e, c) : e.textContent = c } } function Pa(t, e, n, i, r) { if (3 === n || 0 === n) for (var o = 0; o < i.length; o += 2) _a(t, e, n, i[o + 1], r) } function Ia(t, e, n) { var i = t.schemas; if (null !== i) for (var r = 0; r < i.length; r++) { var o = i[r]; if (o === Ni || o === Li && n && n.indexOf("-") > -1) return !0 } return !1 } function ka(t, e) { console.warn("Can't bind to '" + t + "' since it isn't a known property of '" + e.tagName + "'.") } function Da(t, e, n, i) { ngDevMode && De(t); var r = !1; if (nn()) { var o = function(t, e, n) { ngDevMode && De(t), ngDevMode && Yn(n, 3, 4, 0); var i = t.directiveRegistry , r = null; if (i) for (var o = 0; o < i.length; o++) { var a = i[o]; uo(n, a.selectors, !1) && (r || (r = ngDevMode ? new Ko : []), bi(mi(n, e), t, a.type), Ce(a) ? (2 & n.flags && to(n), Va(t, n), r.unshift(a)) : r.push(a)) } return r }(t, e, n) , a = null === i ? null : { "": -1 }; if (null !== o) { var s = 0; r = !0, Ua(n, t.data.length, o.length); for (var c = 0; c < o.length; c++) { (d = o[c]).providersResolver && d.providersResolver(d) } ja(t, n, o.length); var l = !1 , u = !1; for (c = 0; c < o.length; c++) { var d = o[c]; n.mergedAttrs = $n(n.mergedAttrs, d.hostAttrs), Ba(t, e, d), Fa(t.data.length - 1, d, a), null !== d.contentQueries && (n.flags |= 8), null === d.hostBindings && null === d.hostAttrs && 0 === d.hostVars || (n.flags |= 128), !l && (d.onChanges || d.onInit || d.doCheck) && ((t.preOrderHooks || (t.preOrderHooks = [])).push(n.index - 20), l = !0), u || !d.onChanges && !d.doCheck || ((t.preOrderCheckHooks || (t.preOrderCheckHooks = [])).push(n.index - 20), u = !0), Ra(t, d), s += d.hostVars } !function(t, e) { ngDevMode && De(t); for (var n = e.directiveStart, i = e.directiveEnd, r = t.data, o = e.attrs, a = ngDevMode ? new Qo : [], s = null, c = null, l = n; l < i; l++) { var u = r[l] , d = u.inputs , p = null === o || oo(e) ? null : Wa(d, o); a.push(p), s = Ta(d, l, s), c = Ta(u.outputs, l, c) } null !== s && (s.hasOwnProperty("class") && (e.flags |= 16), s.hasOwnProperty("style") && (e.flags |= 32)), e.initialInputs = a, e.inputs = s, e.outputs = c }(t, n), La(t, e, s) } a && function(t, e, n) { if (e) for (var i = t.localNames = ngDevMode ? new Jo : [], r = 0; r < e.length; r += 2) { var o = n[e[r + 1]]; if (null == o) throw new Error("Export of name '" + e[r + 1] + "' not found!"); i.push(e[r], o) } }(n, i, a) } return n.mergedAttrs = $n(n.mergedAttrs, n.attrs), r } function Ra(t, e) { ngDevMode && De(t); var n = t.expandoInstructions; n.push(e.hostBindings), 0 !== e.hostVars && n.push(e.hostVars) } function La(t, e, n) { ngDevMode && De(t), ngDevMode && Nt(t, e[1], "`LView` must be associated with `TView`!"); for (var i = 0; i < n; i++) e.push(mo), t.blueprint.push(mo), t.data.push(null) } function Na(t, e) { null !== t.hostBindings && t.hostBindings(1, e) } function ja(t, e, n) { ngDevMode && Rt(t.firstCreatePass, !0, "Expando block should only be generated on first create pass."); var i = 20 - e.index , r = 65535 & e.providerIndexes , o = t.data.length - r; (t.expandoInstructions || (t.expandoInstructions = [])).push(i, o, n) } function Va(t, e) { ngDevMode && De(t), e.flags |= 2, (t.components || (t.components = ngDevMode ? new Zo : [])).push(e.index) } function Fa(t, e, n) { if (n) { if (e.exportAs) for (var i = 0; i < e.exportAs.length; i++) n[e.exportAs[i]] = t; Ce(e) && (n[""] = t) } } function Ua(t, e, n) { ngDevMode && Lt(n, t.directiveEnd - t.directiveStart, "Reached the max number of directives"), t.flags |= 1, t.directiveStart = e, t.directiveEnd = e + n, t.providerIndexes = e } function Ba(t, e, n) { t.data.push(n); var i = n.factory || (n.factory = ye(n.type, !0)) , r = new qn(i,Ce(n),null); t.blueprint.push(r), e.push(r) } function za(t, e, n) { var i = Ge(e, t) , r = xa(n) , o = t[10] , a = Za(t, ha(t, r, null, n.onPush ? 64 : 16, i, e, o, o.createRenderer(i, n))); t[e.index] = a } function Ga(t, e, n, i, r, o) { ngDevMode && jt(i, mo, "Incoming value should never be NO_CHANGE."), ngDevMode && function(t) { if (t.toLowerCase().startsWith("on")) { var e = "Binding to event attribute '" + t + "' is disallowed for security reasons, please use (" + t.slice(2) + ")=..."; throw new Error(e) } }(n); var a = Ge(t, e) , s = e[11]; if (null == i) ngDevMode && ngDevMode.rendererRemoveAttribute++, Fe(s) ? s.removeAttribute(a, n, o) : a.removeAttribute(n); else { ngDevMode && ngDevMode.rendererSetAttribute++; var c = null == r ? oi(i) : r(i, t.tagName || "", n); Fe(s) ? s.setAttribute(a, n, c, o) : o ? a.setAttributeNS(o, n, c) : a.setAttribute(n, c) } } function Ha(t, e, n, i, r, o) { var a = o[e]; if (null !== a) for (var s = i.setInput, c = 0; c < a.length; ) { var l = a[c++] , u = a[c++] , d = a[c++]; if (null !== s ? i.setInput(n, d, l, u) : n[u] = d, ngDevMode) _a(t, Ge(r, t), r.type, u, d) } } function Wa(t, e) { for (var n = null, i = 0; i < e.length; ) { var r = e[i]; if (0 !== r) if (5 !== r) { if ("number" == typeof r) break; t.hasOwnProperty(r) && (null === n && (n = []), n.push(r, t[r], e[i + 1])), i += 2 } else i += 2; else i += 4 } return n } var qa = ("undefined" == typeof ngDevMode || ngDevMode) && at() && zr("LContainer"); function Xa(t, e, n, i) { ngDevMode && ke(e), ngDevMode && !Fe(e[11]) && Gt(n); var r = new (ngDevMode ? qa : Array)(t,!0,!1,e,null,0,i,n,null,null); return ngDevMode && Rt(r.length, 10, "Should allocate correct number of slots for LContainer header."), ngDevMode && function(t) { Lo(t, new aa(t)) }(r), r } function Ya(t, e) { ngDevMode && Rt(Ze(t), !1, "Should be run in update mode"); var n = Xe(e, t); if (Je(n)) { var i = n[1]; 80 & n[2] ? ga(i, n, i.template, n[8]) : n[5] > 0 && function t(e) { for (var n = bo(e); null !== n; n = wo(n)) for (var i = 10; i < n.length; i++) { var r = n[i]; if (1024 & r[2]) { var o = r[1]; ngDevMode && Bt(o, "TView must be allocated"), ga(o, r, o.template, r[8]) } else r[5] > 0 && t(r) } var a = e[1].components; if (null !== a) for (i = 0; i < a.length; i++) { var s = Xe(a[i], e); Je(s) && s[5] > 0 && t(s) } }(n) } } function Ka(t, e) { ngDevMode && Rt(Ze(t), !0, "Should be run in creation mode"); var n = Xe(e, t) , i = n[1]; !function(t, e) { for (var n = e.length; n < t.blueprint.length; n++) e.push(t.blueprint[n]) }(i, n), ma(i, n, n[8]) } function Za(t, e) { return t[13] ? t[14][4] = e : t[13] = e, t[14] = e, e } function Ja(t) { for (; t; ) { t[2] |= 64; var e = go(t); if (Ae(t) && !e) return t; t = e } return null } function Qa(t) { for (var e = 0; e < t.components.length; e++) { var n = t.components[e] , i = Ke(n) , r = i[1]; va(r, i, r.template, n) } } function $a(t, e, n) { var i = e[10]; i.begin && i.begin(); try { ga(t, e, t.template, n) } catch (t) { throw ss(e, t), t } finally { i.end && i.end() } } function ts(t) { Qa(t[8]) } function es(t, e, n) { ngDevMode && Bt(e, "View queries function to execute must be defined."), En(0), e(t, n) } function ns(t, e, n, i) { for (var r = [], o = 4; o < arguments.length; o++) r[o - 4] = arguments[o]; if (null === t[i] && (null == e.inputs || !e.inputs[n])) { var a = e.propertyBindings || (e.propertyBindings = []); a.push(i); var s = n; r.length > 0 && (s += "�" + r.join("�")), t[i] = s } } var is = ua; function rs(t) { return t[7] || (t[7] = ngDevMode ? new $o : []) } function os(t) { return t.cleanup || (t.cleanup = ngDevMode ? new ta : []) } function as(t, e, n) { return (null === t || Ce(t)) && (n = function(t) { for (; Array.isArray(t); ) { if ("object" == typeof t[1]) return t; t = t[0] } return null }(n[e.index])), n[11] } function ss(t, e) { var n = t[9] , i = n ? n.get(Ri, null) : null; i && i.handleError(e) } function cs(t, e, n, i, r) { for (var o = 0; o < n.length; ) { var a = n[o++] , s = n[o++] , c = e[a]; ngDevMode && Ht(e, a); var l = t.data[a]; null !== l.setInput ? l.setInput(c, r, i, s) : c[s] = r } } function ls(t, e, n) { ngDevMode && jt(n, mo, "value should not be NO_CHANGE"), ngDevMode && Ht(t, e + 20); var i = ze(e, t); ngDevMode && Bt(i, "native element should exist"), ngDevMode && ngDevMode.rendererSetText++; var r = t[11]; Fe(r) ? r.setValue(i, n) : i.textContent = n } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function us(t, e) { ngDevMode && ke(e); var n = e[3]; return -1 === t.index ? Se(n) ? n : null : (ngDevMode && Pe(n), n) } function ds(t, e) { var n = us(t, e); return n ? Cs(e[11], n[7]) : null } function ps(t, e, n, i, r) { if (null != i) { var o = void 0 , a = !1; Se(i) ? o = i : we(i) && (a = !0, ngDevMode && Bt(i[0], "HOST must be defined for a component LView"), i = i[0]); var s = Be(i); ngDevMode && !Fe(e) && Gt(s), 0 === t && null !== n ? null == r ? Ms(e, n, s) : xs(e, n, s, r || null) : 1 === t && null !== n ? xs(e, n, s, r || null) : 2 === t ? _s(e, s, a) : 3 === t && (ngDevMode && ngDevMode.rendererDestroyNode++, e.destroyNode(s)), null != o && function(t, e, n, i, r) { ngDevMode && Pe(n); var o = n[7] , a = Be(n); o !== a && ps(e, t, i, o, r); for (var s = 10; s < n.length; s++) { var c = n[s]; Is(c[1], c, t, e, i, o) } }(e, t, o, n, r) } } function hs(t, e) { return ngDevMode && ngDevMode.rendererCreateTextNode++, ngDevMode && ngDevMode.rendererSetText++, Fe(e) ? e.createText(t) : e.createTextNode(t) } function fs(t, e, n, i) { var r = ds(t.node, e); (ngDevMode && Xn(t.node, 2), r) && Is(t, e, e[11], n ? 1 : 2, r, i) } function ms(t, e, n, i) { ngDevMode && ke(e), ngDevMode && Pe(n); var r = 10 + i , o = n.length; i > 0 && (n[r - 1][4] = e), i < o - 10 ? (e[4] = n[r], Yt(n, 10 + i, e)) : (n.push(e), e[4] = null), e[3] = n; var a = e[17]; null !== a && n !== a && function(t, e) { ngDevMode && Bt(e, "LView required"), ngDevMode && Pe(t); var n = t[9] , i = e[3]; ngDevMode && Pe(i); var r = i[3][16]; ngDevMode && Bt(r, "Missing insertedComponentLView"); var o = e[16]; ngDevMode && Bt(o, "Missing declaredComponentLView"), o !== r && (t[2] = !0); null === n ? t[9] = [e] : n.push(e) }(a, e); var s = e[19]; null !== s && s.insertView(t), e[2] |= 128 } function gs(t, e) { ngDevMode && Pe(t), ngDevMode && Bt(t[9], "A projected view should belong to a non-empty projected views collection"); var n = t[9] , i = n.indexOf(e) , r = e[3]; ngDevMode && Pe(r), 1024 & e[2] && tn(r, -1), n.splice(i, 1) } function vs(t, e) { if (!(t.length <= 10)) { var n = 10 + e , i = t[n]; if (i) { var r = i[17]; null !== r && r !== t && gs(r, i), e > 0 && (t[n - 1][4] = i[4]); var o = Kt(t, 10 + e); fs(i[1], i, !1, null); var a = o[19]; null !== a && a.detachView(o[1]), i[3] = null, i[4] = null, i[2] &= -129 } return i } } function ys(t, e) { if (!(256 & e[2])) { var n = e[11]; Fe(n) && n.destroyNode && Is(t, e, n, 3, null, null), function(t) { var e = t[13]; if (!e) return ws(t[1], t); for (; e; ) { var n = null; if (we(e)) n = e[13]; else { ngDevMode && Pe(e); var i = e[10]; i && (n = i) } if (!n) { for (; e && !e[4] && e !== t; ) we(e) && ws(e[1], e), e = bs(e, t); null === e && (e = t), we(e) && ws(e[1], e), n = e && e[4] } e = n } }(e) } } function bs(t, e) { var n; return we(t) && (n = t[6]) && 2 === n.type ? us(n, t) : t[3] === e ? null : t[3] } function ws(t, e) { if (!(256 & e[2])) { e[2] &= -129, e[2] |= 256, function(t, e) { var n; if (null != t && null != (n = t.destroyHooks)) for (var i = 0; i < n.length; i += 2) { var r = e[n[i]]; if (!(r instanceof qn)) { var o = n[i + 1]; if (Array.isArray(o)) for (var a = 0; a < o.length; a += 2) o[a + 1].call(r[o[a]]); else o.call(r) } } }(t, e), function(t, e) { var n = t.cleanup; if (null !== n) { for (var i = e[7], r = 0; r < n.length - 1; r += 2) if ("string" == typeof n[r]) { var o = n[r + 1] , a = "function" == typeof o ? o(e) : Be(e[o]) , s = i[n[r + 2]] , c = n[r + 3]; "boolean" == typeof c ? a.removeEventListener(n[r], s, c) : c >= 0 ? i[c]() : i[-c].unsubscribe(), r += 2 } else { var l = i[n[r + 1]]; n[r].call(l) } e[7] = null } }(t, e); var n = e[6]; n && 3 === n.type && Fe(e[11]) && (ngDevMode && ngDevMode.rendererDestroy++, e[11].destroy()); var i = e[17]; if (null !== i && Se(e[3])) { i !== e[3] && gs(i, e); var r = e[19]; null !== r && r.detachView(t) } } } function Ss(t, e, n) { for (var i = e.parent; null != i && (4 === i.type || 5 === i.type); ) i = (e = i).parent; if (null == i) { var r = n[6]; return 2 === r.type ? ds(r, n) : (ngDevMode && Yn(r, 3), n[0]) } if (e && 5 === e.type && 4 & e.flags) return Ge(e, n).parentNode; if (ngDevMode && Xn(i, 3), 2 & i.flags) { var o = t.data , a = o[o[i.index].directiveStart].encapsulation; if (a !== Ot.ShadowDom && a !== Ot.Native) return null } return Ge(i, n) } function xs(t, e, n, i) { ngDevMode && ngDevMode.rendererInsertBefore++, Fe(t) ? t.insertBefore(e, n, i) : e.insertBefore(n, i, !0) } function Ms(t, e, n) { ngDevMode && ngDevMode.rendererAppendChild++, ngDevMode && Bt(e, "parent node must be defined"), Fe(t) ? t.appendChild(e, n) : e.appendChild(n) } function Es(t, e, n, i) { null !== i ? xs(t, e, n, i) : Ms(t, e, n) } function Cs(t, e) { return Fe(t) ? t.parentNode(e) : e.parentNode } function As(t, e) { if (2 === t.type) { var n = us(t, e); return null === n ? null : Os(n.indexOf(e, 10) - 10, n) } return 4 === t.type || 5 === t.type ? Ge(t, e) : null } function Ts(t, e, n, i) { var r = Ss(t, i, e); if (null != r) { var o = e[11] , a = As(i.parent || e[6], e); if (Array.isArray(n)) for (var s = 0; s < n.length; s++) Es(o, r, n[s], a); else Es(o, r, n, a) } } function Os(t, e) { var n = 10 + t + 1; if (n < e.length) { var i = e[n] , r = i[1].firstChild; if (null !== r) return function t(e, n) { if (null !== n) { ngDevMode && Yn(n, 3, 0, 4, 5, 1); var i = n.type; if (3 === i) return Ge(n, e); if (0 === i) return Os(-1, e[n.index]); if (4 === i || 5 === i) { var r = n.child; if (null !== r) return t(e, r); var o = e[n.index]; return Se(o) ? Os(-1, o) : Be(o) } var a = e[16] , s = a[6] , c = go(a) , l = s.projection[n.projection]; return null != l ? t(c, l) : t(e, n.next) } return null }(i, r) } return e[7] } function _s(t, e, n) { var i = Cs(t, e); i && function(t, e, n, i) { Fe(t) ? t.removeChild(e, n, i) : e.removeChild(n) }(t, i, e, n) } function Ps(t, e, n, i, r, o, a) { for (; null != n; ) { ngDevMode && Te(n, i), ngDevMode && Yn(n, 0, 3, 4, 1, 1, 5); var s = i[n.index] , c = n.type; a && 0 === e && (s && Kr(Be(s), i), n.flags |= 4), 64 != (64 & n.flags) && (4 === c || 5 === c ? (Ps(t, e, n.child, i, r, o, !1), ps(e, t, r, s, o)) : 1 === c ? Ds(t, e, i, n, r, o) : (ngDevMode && Yn(n, 3, 0), ps(e, t, r, s, o))), n = a ? n.projectionNext : n.next } } function Is(t, e, n, i, r, o) { ngDevMode && Xn(t.node, 2), Ps(n, i, t.node.child, e, r, o, !1) } function ks(t, e, n) { Ds(e[11], 0, e, n, Ss(t, n, e), As(n.parent || e[6], e)) } function Ds(t, e, n, i, r, o) { var a = n[16] , s = a[6]; ngDevMode && Rt(typeof i.projection, "number", "expecting projection index"); var c = s.projection[i.projection]; if (Array.isArray(c)) for (var l = 0; l < c.length; l++) { ps(e, t, r, c[l], o) } else Ps(t, e, c, a[3], r, o, !0) } function Rs(t, e, n) { ngDevMode && Dt(n, "'newValue' should be a string"), Fe(t) ? t.setAttribute(e, "style", n) : e.style.cssText = n, ngDevMode && ngDevMode.rendererSetStyle++ } function Ls(t, e, n) { ngDevMode && Dt(n, "'newValue' should be a string"), Fe(t) ? "" === n ? t.removeAttribute(e, "class") : t.setAttribute(e, "class", n) : e.className = n, ngDevMode && ngDevMode.rendererSetClassName++ } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ns, js, Vs, Fs = function() { function t(t, e) { this._lView = t, this._cdRefInjectingView = e, this._appRef = null, this._viewContainerRef = null } return Object.defineProperty(t.prototype, "rootNodes", { get: function() { var t = this._lView; if (null == t[0]) { var e = t[6]; return function t(e, n, r, o, a) { void 0 === a && (a = !1); for (; null !== r; ) { ngDevMode && Yn(r, 3, 0, 1, 4, 5); var s = n[r.index]; if (null !== s && o.push(Be(s)), Se(s)) for (var c = 10; c < s.length; c++) { var l = s[c] , u = l[1].firstChild; null !== u && t(l[1], l, u, o) } var d = r.type; if (4 === d || 5 === d) t(e, n, r.child, o); else if (1 === d) { var p = n[16] , h = p[6] , f = r.projection; ngDevMode && Bt(h.projection, "Components with projection nodes () must have projection slots defined."); var m = h.projection[f]; if (Array.isArray(m)) o.push.apply(o, Object(i.h)(m)); else { var g = go(p); ngDevMode && Bt(g, "Component views should always have a parent view (component's host view)"), t(g[1], g, m, o, !0) } } r = a ? r.projectionNext : r.next } return o }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (t[1], t, e.child, []) } return [] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return this._lView[8] }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "destroyed", { get: function() { return 256 == (256 & this._lView[2]) }, enumerable: !0, configurable: !0 }), t.prototype.destroy = function() { if (this._appRef) this._appRef.detachView(this); else if (this._viewContainerRef) { var t = this._viewContainerRef.indexOf(this); t > -1 && this._viewContainerRef.detach(t), this._viewContainerRef = null } ys(this._lView[1], this._lView) } , t.prototype.onDestroy = function(t) { var e, n, i; e = this._lView[1], n = this._lView, i = t, rs(n).push(i), e.firstCreatePass && os(e).push(n[7].length - 1, null) } , t.prototype.markForCheck = function() { Ja(this._cdRefInjectingView || this._lView) } , t.prototype.detach = function() { this._lView[2] &= -129 } , t.prototype.reattach = function() { this._lView[2] |= 128 } , t.prototype.detectChanges = function() { $a(this._lView[1], this._lView, this.context) } , t.prototype.checkNoChanges = function() { !function(t, e, n) { fn(!0); try { $a(t, e, n) } finally { fn(!1) } }(this._lView[1], this._lView, this.context) } , t.prototype.attachToViewContainerRef = function(t) { if (this._appRef) throw new Error("This view is already attached directly to the ApplicationRef!"); this._viewContainerRef = t } , t.prototype.detachFromAppRef = function() { var t, e; this._appRef = null, t = this._lView[1], e = this._lView, Is(t, e, e[11], 2, null, null) } , t.prototype.attachToAppRef = function(t) { if (this._viewContainerRef) throw new Error("This view is already attached to a ViewContainer!"); this._appRef = t } , t }(), Us = function(t) { function e(e) { var n = t.call(this, e) || this; return n._view = e, n } return Object(i.c)(e, t), e.prototype.detectChanges = function() { ts(this._view) } , e.prototype.checkNoChanges = function() { !function(t) { fn(!0); try { ts(t) } finally { fn(!1) } }(this._view) } , Object.defineProperty(e.prototype, "context", { get: function() { return null }, enumerable: !0, configurable: !0 }), e }(Fs); function Bs(t, e, n) { return Ns || (Ns = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e }(t)), new Ns(Ge(e, n)) } function zs(t, e, n, r) { return js || (js = function(t) { function e(e, n, i) { var r = t.call(this) || this; return r._declarationView = e, r._declarationTContainer = n, r.elementRef = i, r } return Object(i.c)(e, t), e.prototype.createEmbeddedView = function(t) { var e = this._declarationTContainer.tViews , n = ha(this._declarationView, e, t, 16, null, e.node) , i = this._declarationView[this._declarationTContainer.index]; ngDevMode && Pe(i), n[17] = i; var r = this._declarationView[19]; return null !== r && (n[19] = r.createEmbeddedView(e)), ma(e, n, t), new Fs(n) } , e }(t)), 0 === n.type ? (ngDevMode && Bt(n.tViews, "TView must be allocated"), new js(r,n,Bs(e, n, r))) : null } function Gs(t, e, n, r) { var o; Vs || (Vs = function(t) { function n(e, n, i) { var r = t.call(this) || this; return r._lContainer = e, r._hostTNode = n, r._hostView = i, r } return Object(i.c)(n, t), Object.defineProperty(n.prototype, "element", { get: function() { return Bs(e, this._hostTNode, this._hostView) }, enumerable: !0, configurable: !0 }), Object.defineProperty(n.prototype, "injector", { get: function() { return new Oi(this._hostTNode,this._hostView) }, enumerable: !0, configurable: !0 }), Object.defineProperty(n.prototype, "parentInjector", { get: function() { var t = yi(this._hostTNode, this._hostView) , e = ri(t, this._hostView) , n = function(t, e, n) { if (n.parent && -1 !== n.parent.injectorIndex) { for (var i = n.parent.injectorIndex, r = n.parent; null != r.parent && i == r.parent.injectorIndex; ) r = r.parent; return r } for (var o = ii(t), a = e, s = e[6]; o > 1; ) s = (a = a[15])[6], o--; return s }(t, this._hostView, this._hostTNode); return ei(t) && null != n ? new Oi(n,e) : new Oi(null,this._hostView) }, enumerable: !0, configurable: !0 }), n.prototype.clear = function() { for (; this.length > 0; ) this.remove(this.length - 1) } , n.prototype.get = function(t) { return null !== this._lContainer[8] && this._lContainer[8][t] || null } , Object.defineProperty(n.prototype, "length", { get: function() { return this._lContainer.length - 10 }, enumerable: !0, configurable: !0 }), n.prototype.createEmbeddedView = function(t, e, n) { var i = t.createEmbeddedView(e || {}); return this.insert(i, n), i } , n.prototype.createComponent = function(t, e, n, i, r) { var o = n || this.parentInjector; if (!r && null == t.ngModule && o) { var a = o.get(_t, null); a && (r = a) } var s = t.create(o, i, void 0, r); return this.insert(s.hostView, e), s } , n.prototype.insert = function(t, e) { var n = t._lView , i = n[1]; if (t.destroyed) throw new Error("Cannot insert a destroyed View in a ViewContainer!"); if (this.allocateContainerIfNeeded(), Se(n[3])) { var r = this.indexOf(t); if (-1 !== r) this.detach(r); else { var o = n[3]; ngDevMode && Rt(Se(o), !0, "An attached view should have its PARENT point to a container."); var a = new Vs(o,o[6],o[3]); a.detach(a.indexOf(t)) } } var s = this._adjustIndex(e); return ms(i, n, this._lContainer, s), fs(i, n, !0, Os(s, this._lContainer)), t.attachToViewContainerRef(this), Yt(this._lContainer[8], s, t), t } , n.prototype.move = function(t, e) { if (t.destroyed) throw new Error("Cannot move a destroyed View in a ViewContainer!"); return this.insert(t, e) } , n.prototype.indexOf = function(t) { var e = this._lContainer[8]; return null !== e ? e.indexOf(t) : -1 } , n.prototype.remove = function(t) { this.allocateContainerIfNeeded(); var e = this._adjustIndex(t, -1); !function(t, e) { var n = vs(t, e); n && ys(n[1], n) }(this._lContainer, e), Kt(this._lContainer[8], e) } , n.prototype.detach = function(t) { this.allocateContainerIfNeeded(); var e = this._adjustIndex(t, -1) , n = vs(this._lContainer, e); return n && null != Kt(this._lContainer[8], e) ? new Fs(n) : null } , n.prototype._adjustIndex = function(t, e) { return void 0 === e && (e = 0), null == t ? this.length + e : (ngDevMode && (Ut(t, -1, "ViewRef index must be positive, got " + t), Vt(t, this.length + 1 + e, "index")), t) } , n.prototype.allocateContainerIfNeeded = function() { null === this._lContainer[8] && (this._lContainer[8] = []) } , n }(t)), ngDevMode && Yn(n, 0, 3, 4); var a = r[n.index]; if (Se(a)) o = a; else { var s = void 0; if (4 === n.type) s = Be(a); else if (ngDevMode && ngDevMode.rendererCreateComment++, s = r[11].createComment(ngDevMode ? "container" : ""), Ae(r)) { var c = r[11] , l = Ge(n, r); xs(c, Cs(c, l), s, function(t, e) { return Fe(t) ? t.nextSibling(e) : e.nextSibling }(c, l)) } else Ts(r[1], r, s, n); r[n.index] = o = Xa(a, r, s, n), Za(r, o) } return new Vs(o,n,r) } function Hs(t) { return void 0 === t && (t = !1), function(t, e, n) { if (!n && Me(t)) { var i = Xe(t.index, e); return new Fs(i,i) } if (3 === t.type || 0 === t.type || 4 === t.type || 5 === t.type) { var r = e[16]; return new Fs(r,e) } return null }(ln(), an(), t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ws = function() { function t() {} return t.__NG_ELEMENT_ID__ = function() { return Xs() } , t }() , qs = Hs , Xs = qs , Ys = Function; function Ks(t) { return "function" == typeof t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Zs = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/ , Js = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/ , Qs = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/ , $s = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/; var tc = function() { function t(t) { this._reflect = t || J.Reflect } return t.prototype.isReflectionEnabled = function() { return !0 } , t.prototype.factory = function(t) { return function() { for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return new (t.bind.apply(t, Object(i.h)([void 0], e))) } } , t.prototype._zipTypesAndAnnotations = function(t, e) { var n; n = Zt(void 0 === t ? e.length : t.length); for (var i = 0; i < n.length; i++) void 0 === t ? n[i] = [] : t[i] && t[i] != Object ? n[i] = [t[i]] : n[i] = [], e && null != e[i] && (n[i] = n[i].concat(e[i])); return n } , t.prototype._ownParameters = function(t, e) { if (function(t) { return Zs.test(t) || $s.test(t) || Js.test(t) && !Qs.test(t) }(t.toString())) return null; if (t.parameters && t.parameters !== e.parameters) return t.parameters; var n = t.ctorParameters; if (n && n !== e.ctorParameters) { var i = "function" == typeof n ? n() : n , r = i.map((function(t) { return t && t.type } )) , o = i.map((function(t) { return t && ec(t.decorators) } )); return this._zipTypesAndAnnotations(r, o) } var a = t.hasOwnProperty(d) && t[d] , s = this._reflect && this._reflect.getOwnMetadata && this._reflect.getOwnMetadata("design:paramtypes", t); return s || a ? this._zipTypesAndAnnotations(s, a) : Zt(t.length) } , t.prototype.parameters = function(t) { if (!Ks(t)) return []; var e = nc(t) , n = this._ownParameters(t, e); return n || e === Object || (n = this.parameters(e)), n || [] } , t.prototype._ownAnnotations = function(t, e) { if (t.annotations && t.annotations !== e.annotations) { var n = t.annotations; return "function" == typeof n && n.annotations && (n = n.annotations), n } return t.decorators && t.decorators !== e.decorators ? ec(t.decorators) : t.hasOwnProperty(u) ? t[u] : null } , t.prototype.annotations = function(t) { if (!Ks(t)) return []; var e = nc(t) , n = this._ownAnnotations(t, e) || []; return (e !== Object ? this.annotations(e) : []).concat(n) } , t.prototype._ownPropMetadata = function(t, e) { if (t.propMetadata && t.propMetadata !== e.propMetadata) { var n = t.propMetadata; return "function" == typeof n && n.propMetadata && (n = n.propMetadata), n } if (t.propDecorators && t.propDecorators !== e.propDecorators) { var i = t.propDecorators , r = {}; return Object.keys(i).forEach((function(t) { r[t] = ec(i[t]) } )), r } return t.hasOwnProperty(p) ? t[p] : null } , t.prototype.propMetadata = function(t) { if (!Ks(t)) return {}; var e = nc(t) , n = {}; if (e !== Object) { var r = this.propMetadata(e); Object.keys(r).forEach((function(t) { n[t] = r[t] } )) } var o = this._ownPropMetadata(t, e); return o && Object.keys(o).forEach((function(t) { var e = []; n.hasOwnProperty(t) && e.push.apply(e, Object(i.h)(n[t])), e.push.apply(e, Object(i.h)(o[t])), n[t] = e } )), n } , t.prototype.ownPropMetadata = function(t) { return Ks(t) && this._ownPropMetadata(t, nc(t)) || {} } , t.prototype.hasLifecycleHook = function(t, e) { return t instanceof Ys && e in t.prototype } , t.prototype.guards = function(t) { return {} } , t.prototype.getter = function(t) { return new Function("o","return o." + t + ";") } , t.prototype.setter = function(t) { return new Function("o","v","return o." + t + " = v;") } , t.prototype.method = function(t) { return new Function("o","args","if (!o." + t + ") throw new Error('\"" + t + "\" is undefined');\n return o." + t + ".apply(o, args);") } , t.prototype.importUri = function(t) { return "object" == typeof t && t.filePath ? t.filePath : "./" + F(t) } , t.prototype.resourceUri = function(t) { return "./" + F(t) } , t.prototype.resolveIdentifier = function(t, e, n, i) { return i } , t.prototype.resolveEnum = function(t, e) { return t[e] } , t }(); function ec(t) { return t ? t.map((function(t) { var e = t.type.annotationCls , n = t.args ? t.args : []; return new (e.bind.apply(e, Object(i.h)([void 0], n))) } )) : [] } function nc(t) { var e = t.prototype ? Object.getPrototypeOf(t.prototype) : null; return (e ? e.constructor : null) || Object } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ic = null; function rc() { return ic = ic || new tc } function oc(t) { return ac(rc().parameters(t)) } function ac(t) { var e = Q(); return t.map((function(t) { return function(t, e) { var n = { token: null, host: !1, optional: !1, resolved: t.R3ResolvedDependencyType.Token, self: !1, skipSelf: !1 }; function i(e) { n.resolved = t.R3ResolvedDependencyType.Token, n.token = e } if (Array.isArray(e) && e.length > 0) for (var r = 0; r < e.length; r++) { var o = e[r]; if (void 0 !== o) { var a = Object.getPrototypeOf(o); if (o instanceof w || "Optional" === a.ngMetadataName) n.optional = !0; else if (o instanceof x || "SkipSelf" === a.ngMetadataName) n.skipSelf = !0; else if (o instanceof S || "Self" === a.ngMetadataName) n.self = !0; else if (o instanceof M || "Host" === a.ngMetadataName) n.host = !0; else if (o instanceof b) n.token = o.token; else if (o instanceof C) { if (void 0 === o.attributeName) throw new Error("Attribute name must be defined."); n.token = o.attributeName, n.resolved = t.R3ResolvedDependencyType.Attribute } else o === Ws ? (n.token = o, n.resolved = t.R3ResolvedDependencyType.ChangeDetectorRef) : i(o) } } else void 0 === e || Array.isArray(e) && 0 === e.length ? (n.token = void 0, n.resolved = W.Invalid) : i(e); return n }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (e, t) } )) } var sc = A({ provide: String, useValue: A }); function cc(t) { return void 0 !== t.useClass } function lc(t) { return void 0 !== t.useFactory } function uc(t, e) { var n = e || { providedIn: null } , i = { name: t.name, type: t, typeArgumentCount: 0, providedIn: n.providedIn, userDeps: void 0 }; return (cc(n) || lc(n)) && void 0 !== n.deps && (i.userDeps = ac(n.deps)), cc(n) ? i.useClass = G(n.useClass) : !function(t) { return sc in t }(n) ? lc(n) ? i.useFactory = n.useFactory : function(t) { return void 0 !== t.useExisting }(n) && (i.useExisting = G(n.useExisting)) : i.useValue = G(n.useValue), i } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ A({ provide: String, useValue: A }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var dc = h("Injectable", void 0, void 0, void 0, (function(t, e) { return hc(t, e) } )); var pc = function(t, e) { var n = null , i = null; t.hasOwnProperty(R) || (Object.defineProperty(t, R, { get: function() { return null === n && (n = Q().compileInjectable(Ct, "ng:///" + t.name + "/ɵprov.js", uc(t, e))), n } }), t.hasOwnProperty(N) || (t[N] = function() { return t[R] } )), t.hasOwnProperty(rt) || Object.defineProperty(t, rt, { get: function() { if (null === i) { var n = uc(t, e) , r = Q(); i = r.compileFactory(Ct, "ng:///" + t.name + "/ɵfac.js", { name: n.name, type: n.type, typeArgumentCount: n.typeArgumentCount, deps: oc(t), injectFn: "inject", target: r.R3FactoryTarget.Injectable }) } return i }, configurable: !0 }) } , hc = pc , fc = new ct("Set Injector scope.") , mc = {} , gc = {} , vc = [] , yc = void 0; function bc() { return void 0 === yc && (yc = new xt), yc } function wc(t, e, n, i) { void 0 === e && (e = null), void 0 === n && (n = null); var r = Sc(t, e, n, i); return r._resolveInjectorDefTypes(), r } function Sc(t, e, n, i) { return void 0 === e && (e = null), void 0 === n && (n = null), new xc(t,n,e || bc(),i) } var xc = function() { function t(t, e, n, i) { var r = this; void 0 === i && (i = null), this.parent = n, this.records = new Map, this.injectorDefTypes = new Set, this.onDestroy = new Set, this._destroyed = !1; var o = []; e && Xt(e, (function(n) { return r.processProvider(n, t, e) } )), Xt([t], (function(t) { return r.processInjectorType(t, [], o) } )), this.records.set(lt, Cc(void 0, this)); var a = this.records.get(fc); this.scope = null != a ? a.value : null, this.source = i || ("object" == typeof t ? null : F(t)) } return Object.defineProperty(t.prototype, "destroyed", { get: function() { return this._destroyed }, enumerable: !0, configurable: !0 }), t.prototype.destroy = function() { this.assertNotDestroyed(), this._destroyed = !0; try { this.onDestroy.forEach((function(t) { return t.ngOnDestroy() } )) } finally { this.records.clear(), this.onDestroy.clear(), this.injectorDefTypes.clear() } } , t.prototype.get = function(t, e, n) { void 0 === e && (e = ut), void 0 === n && (n = v.Default), this.assertNotDestroyed(); var i, r = ft(this); try { if (!(n & v.SkipSelf)) { var o = this.records.get(t); if (void 0 === o) { var a = ("function" == typeof (i = t) || "object" == typeof i && i instanceof ct) && I(t); o = a && this.injectableDefInScope(a) ? Cc(Mc(t), mc) : null, this.records.set(t, o) } if (null != o) return this.hydrate(t, o) } var s = n & v.Self ? bc() : this.parent; return e = n & v.Optional && e === ut ? null : e, s.get(t, e) } catch (e) { if ("NullInjectorError" === e.name) { if ((e.ngTempTokenPath = e.ngTempTokenPath || []).unshift(F(t)), r) throw e; return Mt(e, t, "R3InjectorError", this.source) } throw e } finally { ft(r) } } , t.prototype._resolveInjectorDefTypes = function() { var t = this; this.injectorDefTypes.forEach((function(e) { return t.get(e) } )) } , t.prototype.toString = function() { var t = []; return this.records.forEach((function(e, n) { return t.push(F(n)) } )), "R3Injector[" + t.join(", ") + "]" } , t.prototype.assertNotDestroyed = function() { if (this._destroyed) throw new Error("Injector has already been destroyed.") } , t.prototype.processInjectorType = function(t, e, n) { var i = this; if (!(t = G(t))) return !1; var r = D(t) , o = null == r && t.ngModule || void 0 , a = void 0 === o ? t : o; if (ngDevMode && -1 !== e.indexOf(a)) { var s = F(a); throw new Error("Circular dependency in DI detected for type " + s + ". Dependency path: " + e.map((function(t) { return F(t) } )).join(" > ") + " > " + s + ".") } var c = -1 !== n.indexOf(a); if (void 0 !== o && (r = D(o)), null == r) return !1; if (null != r.imports && !c) { var l; ngDevMode && e.push(a), n.push(a); try { Xt(r.imports, (function(t) { i.processInjectorType(t, e, n) && (void 0 === l && (l = []), l.push(t)) } )) } finally { ngDevMode && e.pop() } if (void 0 !== l) for (var u = function(t) { var e = l[t] , n = e.ngModule , r = e.providers; Xt(r, (function(t) { return i.processProvider(t, n, r || vc) } )) }, d = 0; d < l.length; d++) u(d) } this.injectorDefTypes.add(a), this.records.set(a, Cc(r.factory, mc)); var p = r.providers; if (null != p && !c) { var h = t; Xt(p, (function(t) { return i.processProvider(t, h, p) } )) } return void 0 !== o && void 0 !== t.providers } , t.prototype.processProvider = function(t, e, n) { var i = Tc(t = G(t)) ? t : G(t && t.provide) , r = function(t, e, n) { return Ac(t) ? Cc(void 0, t.useValue) : Cc(Ec(t, e, n), mc) }(t, e, n); if (Tc(t) || !0 !== t.multi) { var o = this.records.get(i); o && void 0 !== o.multi && eo() } else { var a = this.records.get(i); a ? void 0 === a.multi && eo() : ((a = Cc(void 0, mc, !0)).factory = function() { return St(a.multi) } , this.records.set(i, a)), i = t, a.multi.push(t) } this.records.set(i, r) } , t.prototype.hydrate = function(t, e) { var n; return e.value === gc ? function(t) { throw new Error("Cannot instantiate cyclic dependency! " + t) }(F(t)) : e.value === mc && (e.value = gc, e.value = e.factory()), "object" == typeof e.value && e.value && (null !== (n = e.value) && "object" == typeof n && "function" == typeof n.ngOnDestroy) && this.onDestroy.add(e.value), e.value } , t.prototype.injectableDefInScope = function(t) { return !!t.providedIn && ("string" == typeof t.providedIn ? "any" === t.providedIn || t.providedIn === this.scope : this.injectorDefTypes.has(t.providedIn)) } , t }(); function Mc(t) { var e = I(t) , n = null !== e ? e.factory : ye(t); if (null !== n) return n; var i = D(t); if (null !== i) return i.factory; if (t instanceof ct) throw new Error("Token " + F(t) + " is missing a ɵprov definition."); if (t instanceof Function) return function(t) { var e = t.length; if (e > 0) { var n = Zt(e, "?"); throw new Error("Can't resolve all parameters for " + F(t) + ": (" + n.join(", ") + ").") } var i = function(t) { var e = t && (t[R] || t[j] || t[N] && t[N]()); if (e) { var n = function(t) { if (t.hasOwnProperty("name")) return t.name; var e = ("" + t).match(/^function\s*([^\s(]+)/); return null === e ? "" : e[1] }(t); return console.warn('DEPRECATED: DI is instantiating a token "' + n + '" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in v10. Please add @Injectable() to the "' + n + '" class.'), e } return null }(t); return null !== i ? function() { return i.factory(t) } : function() { return new t } }(t); throw new Error("unreachable") } function Ec(t, e, n) { var r, o = void 0; if (Tc(t)) { var a = G(t); return ye(a) || Mc(a) } if (Ac(t)) o = function() { return G(t.useValue) } ; else if ((r = t) && r.useFactory) o = function() { return t.useFactory.apply(t, Object(i.h)(St(t.deps || []))) } ; else if (function(t) { return !(!t || !t.useExisting) }(t)) o = function() { return vt(G(t.useExisting)) } ; else { var s = G(t && (t.useClass || t.provide)); if (s || function(t, e, n) { var i = ""; throw t && e && (i = " - only instances of Provider and Type are allowed, got: [" + e.map((function(t) { return t == n ? "?" + n + "?" : "..." } )).join(", ") + "]"), new Error("Invalid provider for the NgModule '" + F(t) + "'" + i) }(e, n, t), !function(t) { return !!t.deps }(t)) return ye(s) || Mc(s); o = function() { return new (s.bind.apply(s, Object(i.h)([void 0], St(t.deps)))) } } return o } function Cc(t, e, n) { return void 0 === n && (n = !1), { factory: t, value: e, multi: n ? [] : void 0 } } function Ac(t) { return null !== t && "object" == typeof t && pt in t } function Tc(t) { return "function" == typeof t } function Oc(t, e, n) { return wc({ name: n }, e, t, n) } var _c = Oc , Pc = function() { function t() {} return t.create = function(t, e) { return Array.isArray(t) ? _c(t, e, "") : _c(t.providers, t.parent, t.name || "") } , t.THROW_IF_NOT_FOUND = ut, t.NULL = new xt, t.ɵprov = O({ token: t, providedIn: "any", factory: function() { return vt(lt) } }), t.__NG_ELEMENT_ID__ = -1, t }() , Ic = function(t) { return t } , kc = [] , Dc = Ic , Rc = function() { return Array.prototype.slice.call(arguments) }; !function() { function t(t, e, n) { void 0 === e && (e = Pc.NULL), void 0 === n && (n = null), this.parent = e, this.source = n; var i = this._records = new Map; i.set(Pc, { token: Pc, fn: Ic, deps: kc, value: this, useNew: !1 }), i.set(lt, { token: lt, fn: Ic, deps: kc, value: this, useNew: !1 }), this.scope = function t(e, n) { var i = null; if (n) if (n = G(n), Array.isArray(n)) for (var r = 0; r < n.length; r++) i = t(e, n[r]) || i; else { if ("function" == typeof n) throw Vc("Function/Class not supported", n); if (!n || "object" != typeof n || !n.provide) throw Vc("Unexpected provider", n); var o = G(n.provide) , a = Lc(n); if (!0 === n.multi) { var s = e.get(o); if (s) { if (s.fn !== Rc) throw Nc(o) } else e.set(o, s = { token: n.provide, deps: [], useNew: !1, fn: Rc, value: kc }); o = n, s.deps.push({ token: o, options: 6 }) } var c = e.get(o); if (c && c.fn == Rc) throw Nc(o); o === fc && (i = a.value), e.set(o, a) } return i }(i, t) } t.prototype.get = function(t, e, n) { void 0 === n && (n = v.Default); var i = this._records , r = i.get(t); if (void 0 === r) { var o = I(t); if (o) { var a = o && o.providedIn; ("any" === a || null != a && a === this.scope) && i.set(t, r = Lc({ provide: t, useFactory: o.factory, deps: kc })) } void 0 === r && i.set(t, null) } var s = ft(this); try { return jc(t, r, i, this.parent, e, n) } catch (e) { return Mt(e, t, "StaticInjectorError", this.source) } finally { ft(s) } } , t.prototype.toString = function() { var t = []; return this._records.forEach((function(e, n) { return t.push(F(n)) } )), "StaticInjector[" + t.join(", ") + "]" } }(); function Lc(t) { var e = function(t) { var e = kc , n = t.deps; if (n && n.length) { e = []; for (var i = 0; i < n.length; i++) { var r = 6 , o = G(n[i]); if (Array.isArray(o)) for (var a = 0, s = o; a < s.length; a++) { var c = s[a]; c instanceof w || c == w ? r |= 1 : c instanceof x || c == x ? r &= -3 : c instanceof S || c == S ? r &= -5 : o = c instanceof b ? c.token : G(c) } e.push({ token: o, options: r }) } } else if (t.useExisting) { o = G(t.useExisting); e = [{ token: o, options: 6 }] } else if (!n && !(pt in t)) throw Vc("'deps' required", t); return e }(t) , n = Ic , i = kc , r = !1 , o = G(t.provide); if (pt in t) i = t.useValue; else if (t.useFactory) n = t.useFactory; else if (t.useExisting) ; else if (t.useClass) r = !0, n = G(t.useClass); else { if ("function" != typeof o) throw Vc("StaticProvider does not have [useValue|useFactory|useExisting|useClass] or [provide] is not newable", t); r = !0, n = o } return { deps: e, fn: n, useNew: r, value: i } } function Nc(t) { return Vc("Cannot mix multi providers and regular providers", t) } function jc(t, e, n, r, o, a) { try { return function(t, e, n, r, o, a) { var s, c; if (!e || a & v.SkipSelf) c = a & v.Self ? a & v.Optional ? Pc.NULL.get(t, void 0 !== o ? o : null) : Pc.NULL.get(t, o) : r.get(t, o, v.Default); else { if ((c = e.value) == Dc) throw Error("ɵCircular dependency"); if (c === kc) { e.value = Dc; var l = e.useNew , u = e.fn , d = e.deps , p = kc; if (d.length) { p = []; for (var h = 0; h < d.length; h++) { var f = d[h] , m = f.options , g = 2 & m ? n.get(f.token) : void 0; p.push(jc(f.token, g, n, g || 4 & m ? r : Pc.NULL, 1 & m ? null : Pc.THROW_IF_NOT_FOUND, v.Default)) } } e.value = c = l ? new ((s = u).bind.apply(s, Object(i.h)([void 0], p))) : u.apply(void 0, p) } } return c }(t, e, n, r, o, a) } catch (n) { throw n instanceof Error || (n = new Error(n)), (n.ngTempTokenPath = n.ngTempTokenPath || []).unshift(t), e && e.value == Dc && (e.value = kc), n } } function Vc(t, e) { return new Error(Et(t, e, "StaticInjectorError")) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Fc(t) { return t.length > 1 ? " (" + function(t) { for (var e = [], n = 0; n < t.length; ++n) { if (e.indexOf(t[n]) > -1) return e.push(t[n]), e; e.push(t[n]) } return e }(t.slice().reverse()).map((function(t) { return F(t.token) } )).join(" -> ") + ")" : "" } function Uc(t, e, n, i) { var r = [e] , o = n(r) , a = i ? function(t, e) { var n = t + " caused by: " + (e instanceof Error ? e.message : e) , i = Error(n); return i.ngOriginalError = e, i }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (o, i) : Error(o); return a.addKey = Bc, a.keys = r, a.injectors = [t], a.constructResolvingMessage = n, a.ngOriginalError = i, a } function Bc(t, e) { this.injectors.push(t), this.keys.push(e), this.message = this.constructResolvingMessage(this.keys) } function zc(t, e) { for (var n = [], i = 0, r = e.length; i < r; i++) { var o = e[i]; o && 0 != o.length ? n.push(o.map(F).join(" ")) : n.push("?") } return Error("Cannot resolve all parameters for '" + F(t) + "'(" + n.join(", ") + "). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '" + F(t) + "' is decorated with Injectable.") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Gc = function() { function t(t, e) { if (this.token = t, this.id = e, !t) throw new Error("Token must be defined!"); this.displayName = F(this.token) } return t.get = function(t) { return Hc.get(G(t)) } , Object.defineProperty(t, "numberOfKeys", { get: function() { return Hc.numberOfKeys }, enumerable: !0, configurable: !0 }), t }() , Hc = new (function() { function t() { this._allKeys = new Map } return t.prototype.get = function(t) { if (t instanceof Gc) return t; if (this._allKeys.has(t)) return this._allKeys.get(t); var e = new Gc(t,Gc.numberOfKeys); return this._allKeys.set(t, e), e } , Object.defineProperty(t.prototype, "numberOfKeys", { get: function() { return this._allKeys.size }, enumerable: !0, configurable: !0 }), t }()) , Wc = new (function() { function t(t) { this.reflectionCapabilities = t } return t.prototype.updateCapabilities = function(t) { this.reflectionCapabilities = t } , t.prototype.factory = function(t) { return this.reflectionCapabilities.factory(t) } , t.prototype.parameters = function(t) { return this.reflectionCapabilities.parameters(t) } , t.prototype.annotations = function(t) { return this.reflectionCapabilities.annotations(t) } , t.prototype.propMetadata = function(t) { return this.reflectionCapabilities.propMetadata(t) } , t.prototype.hasLifecycleHook = function(t, e) { return this.reflectionCapabilities.hasLifecycleHook(t, e) } , t.prototype.getter = function(t) { return this.reflectionCapabilities.getter(t) } , t.prototype.setter = function(t) { return this.reflectionCapabilities.setter(t) } , t.prototype.method = function(t) { return this.reflectionCapabilities.method(t) } , t.prototype.importUri = function(t) { return this.reflectionCapabilities.importUri(t) } , t.prototype.resourceUri = function(t) { return this.reflectionCapabilities.resourceUri(t) } , t.prototype.resolveIdentifier = function(t, e, n, i) { return this.reflectionCapabilities.resolveIdentifier(t, e, n, i) } , t.prototype.resolveEnum = function(t, e) { return this.reflectionCapabilities.resolveEnum(t, e) } , t }())(new tc) , qc = function() { function t(t, e, n) { this.key = t, this.optional = e, this.visibility = n } return t.fromKey = function(e) { return new t(e,!1,null) } , t }() , Xc = [] , Yc = function(t, e, n) { this.key = t, this.resolvedFactories = e, this.multiProvider = n, this.resolvedFactory = this.resolvedFactories[0] } , Kc = function(t, e) { this.factory = t, this.dependencies = e }; function Zc(t) { var e, n; if (t.useClass) { var i = G(t.useClass); e = Wc.factory(i), n = $c(i) } else t.useExisting ? (e = function(t) { return t } , n = [qc.fromKey(Gc.get(t.useExisting))]) : t.useFactory ? (e = t.useFactory, n = function(t, e) { if (e) { var n = e.map((function(t) { return [t] } )); return e.map((function(e) { return tl(t, e, n) } )) } return $c(t) }(t.useFactory, t.deps)) : (e = function() { return t.useValue } , n = Xc); return new Kc(e,n) } function Jc(t) { return new Yc(Gc.get(t.provide),[Zc(t)],t.multi || !1) } function Qc(t) { var e = function(t, e) { for (var n = 0; n < t.length; n++) { var i = t[n] , r = e.get(i.key.id); if (r) { if (i.multiProvider !== r.multiProvider) throw Error("Cannot mix multi providers and regular providers, got: " + r + " " + i); if (i.multiProvider) for (var o = 0; o < i.resolvedFactories.length; o++) r.resolvedFactories.push(i.resolvedFactories[o]); else e.set(i.key.id, i) } else { var a = void 0; a = i.multiProvider ? new Yc(i.key,i.resolvedFactories.slice(),i.multiProvider) : i, e.set(i.key.id, a) } } return e }(function t(e, n) { return e.forEach((function(e) { if (e instanceof Ys) n.push({ provide: e, useClass: e }); else if (e && "object" == typeof e && void 0 !== e.provide) n.push(e); else { if (!Array.isArray(e)) throw Error("Invalid provider - only instances of Provider and Type are allowed, got: " + e); t(e, n) } } )), n }(t, []).map(Jc), new Map); return Array.from(e.values()) } function $c(t) { var e = Wc.parameters(t); if (!e) return []; if (e.some((function(t) { return null == t } ))) throw zc(t, e); return e.map((function(n) { return tl(t, n, e) } )) } function tl(t, e, n) { var i = null , r = !1; if (!Array.isArray(e)) return el(e instanceof b ? e.token : e, r, null); for (var o = null, a = 0; a < e.length; ++a) { var s = e[a]; s instanceof Ys ? i = s : s instanceof b ? i = s.token : s instanceof w ? r = !0 : s instanceof S || s instanceof x ? o = s : s instanceof ct && (i = s) } if (null != (i = G(i))) return el(i, r, o); throw zc(t, n) } function el(t, e, n) { return new qc(Gc.get(t),e,n) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var nl = {} , il = function() { function t() {} return t.resolve = function(t) { return Qc(t) } , t.resolveAndCreate = function(e, n) { var i = t.resolve(e); return t.fromResolvedProviders(i, n) } , t.fromResolvedProviders = function(t, e) { return new rl(t,e) } , t }() , rl = function() { function t(t, e) { this._constructionCounter = 0, this._providers = t, this.parent = e || null; var n = t.length; this.keyIds = [], this.objs = []; for (var i = 0; i < n; i++) this.keyIds[i] = t[i].key.id, this.objs[i] = nl } return t.prototype.get = function(t, e) { return void 0 === e && (e = ut), this._getByKey(Gc.get(t), null, e) } , t.prototype.resolveAndCreateChild = function(t) { var e = il.resolve(t); return this.createChildFromResolved(e) } , t.prototype.createChildFromResolved = function(e) { var n = new t(e); return n.parent = this, n } , t.prototype.resolveAndInstantiate = function(t) { return this.instantiateResolved(il.resolve([t])[0]) } , t.prototype.instantiateResolved = function(t) { return this._instantiateProvider(t) } , t.prototype.getProviderAtIndex = function(t) { if (t < 0 || t >= this._providers.length) throw function(t) { return Error("Index " + t + " is out-of-bounds.") }(t); return this._providers[t] } , t.prototype._new = function(t) { if (this._constructionCounter++ > this._getMaxNumberOfObjects()) throw e = this, n = t.key, Uc(e, n, (function(t) { return "Cannot instantiate cyclic dependency!" + Fc(t) } )); var e, n; return this._instantiateProvider(t) } , t.prototype._getMaxNumberOfObjects = function() { return this.objs.length } , t.prototype._instantiateProvider = function(t) { if (t.multiProvider) { for (var e = [], n = 0; n < t.resolvedFactories.length; ++n) e[n] = this._instantiate(t, t.resolvedFactories[n]); return e } return this._instantiate(t, t.resolvedFactories[0]) } , t.prototype._instantiate = function(t, e) { var n, r, o, a, s, c = this, l = e.factory; try { n = e.dependencies.map((function(t) { return c._getByReflectiveDependency(t) } )) } catch (e) { throw e.addKey && e.addKey(this, t.key), e } try { r = l.apply(void 0, Object(i.h)(n)) } catch (e) { throw o = this, a = e, e.stack, s = t.key, Uc(o, s, (function(t) { var e = F(t[0].token); return a.message + ": Error during instantiation of " + e + "!" + Fc(t) + "." } ), a) } return r } , t.prototype._getByReflectiveDependency = function(t) { return this._getByKey(t.key, t.visibility, t.optional ? null : ut) } , t.prototype._getByKey = function(e, n, i) { return e === t.INJECTOR_KEY ? this : n instanceof S ? this._getByKeySelf(e, i) : this._getByKeyDefault(e, i, n) } , t.prototype._getObjByKeyId = function(t) { for (var e = 0; e < this.keyIds.length; e++) if (this.keyIds[e] === t) return this.objs[e] === nl && (this.objs[e] = this._new(this._providers[e])), this.objs[e]; return nl } , t.prototype._throwOrNull = function(t, e) { if (e !== ut) return e; throw function(t, e) { return Uc(t, e, (function(t) { return "No provider for " + F(t[0].token) + "!" + Fc(t) } )) }(this, t) } , t.prototype._getByKeySelf = function(t, e) { var n = this._getObjByKeyId(t.id); return n !== nl ? n : this._throwOrNull(t, e) } , t.prototype._getByKeyDefault = function(e, n, i) { var r; for (r = i instanceof x ? this.parent : this; r instanceof t; ) { var o = r , a = o._getObjByKeyId(e.id); if (a !== nl) return a; r = o.parent } return null !== r ? r.get(e.token, n) : this._throwOrNull(e, n) } , Object.defineProperty(t.prototype, "displayName", { get: function() { return "ReflectiveInjector(providers: [" + function(t, e) { for (var n = [], i = 0; i < t._providers.length; ++i) n[i] = e(t.getProviderAtIndex(i)); return n }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (this, (function(t) { return ' "' + t.key.displayName + '" ' } )).join(", ") + "])" }, enumerable: !0, configurable: !0 }), t.prototype.toString = function() { return this.displayName } , t.INJECTOR_KEY = Gc.get(Pc), t }(); var ol = new ct("AnalyzeForEntryComponents") , al = function() {} , sl = g("ContentChildren", (function(t, e) { return void 0 === e && (e = {}), Object(i.a)({ selector: t, first: !1, isViewQuery: !1, descendants: !1 }, e) } ), al) , cl = g("ContentChild", (function(t, e) { return void 0 === e && (e = {}), Object(i.a)({ selector: t, first: !0, isViewQuery: !1, descendants: !0 }, e) } ), al) , ll = g("ViewChildren", (function(t, e) { return void 0 === e && (e = {}), Object(i.a)({ selector: t, first: !1, isViewQuery: !0, descendants: !0 }, e) } ), al) , ul = g("ViewChild", (function(t, e) { return Object(i.a)({ selector: t, first: !0, isViewQuery: !0, descendants: !0 }, e) } ), al); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function dl(t) { var e = [] , n = new Map; function i(e) { var i = n.get(e); if (!i) { var r = t(e); n.set(e, i = r.then(gl)) } return i } return pl.forEach((function(t, n) { var r = []; t.templateUrl && r.push(i(t.templateUrl).then((function(e) { t.template = e } ))); var o = t.styleUrls , a = t.styles || (t.styles = []) , s = t.styles.length; o && o.forEach((function(e, n) { a.push(""), r.push(i(e).then((function(i) { a[s + n] = i, o.splice(o.indexOf(e), 1), 0 == o.length && (t.styleUrls = void 0) } ))) } )); var c = Promise.all(r).then((function() { return function(t) { hl.delete(t) }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (n) } )); e.push(c) } )), ml(), Promise.all(e).then((function() {} )) } var pl = new Map , hl = new Set; function fl(t) { return !!(t.templateUrl && !t.hasOwnProperty("template") || t.styleUrls && t.styleUrls.length) } function ml() { var t = pl; return pl = new Map, t } function gl(t) { return "string" == typeof t ? t : t.text() } function vl(t, e, n) { ngDevMode && De(sn(), "Expecting to be called in first template pass only"); var i = n ? t.styles : null , r = n ? t.classes : null , o = 0; if (null !== e) for (var a = 0; a < e.length; a++) { var s = e[a]; if ("number" == typeof s) o = s; else if (1 == o) r = U(r, s); else if (2 == o) { i = U(i, s + ": " + e[++a] + ";") } } n ? t.styles = i : t.stylesWithoutHost = i, n ? t.classes = r : t.classesWithoutHost = r } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var yl = null; function bl() { if (!yl) { var t = J.Symbol; if (t && t.iterator) yl = t.iterator; else for (var e = Object.getOwnPropertyNames(Map.prototype), n = 0; n < e.length; ++n) { var i = e[n]; "entries" !== i && "size" !== i && Map.prototype[i] === Map.prototype.entries && (yl = i) } } return yl } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function wl(t, e) { return t === e || "number" == typeof t && "number" == typeof e && isNaN(t) && isNaN(e) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Sl(t, e) { var n = Ml(t) , i = Ml(e); return n && i ? function(t, e, n) { var i = t[bl()]() , r = e[bl()](); for (; ; ) { var o = i.next() , a = r.next(); if (o.done && a.done) return !0; if (o.done || a.done) return !1; if (!n(o.value, a.value)) return !1 } }(t, e, Sl) : !(n || !(t && ("object" == typeof t || "function" == typeof t)) || i || !(e && ("object" == typeof e || "function" == typeof e))) || wl(t, e) } var xl = function() { function t(t) { this.wrapped = t } return t.wrap = function(e) { return new t(e) } , t.unwrap = function(e) { return t.isWrapped(e) ? e.wrapped : e } , t.isWrapped = function(e) { return e instanceof t } , t }(); function Ml(t) { return !!El(t) && (Array.isArray(t) || !(t instanceof Map) && bl()in t) } function El(t) { return null !== t && ("function" == typeof t || "object" == typeof t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Cl(t, e, n) { return t[e] = n } function Al(t, e) { return ngDevMode && Ht(t, e), ngDevMode && jt(t[e], mo, "Stored value should never be NO_CHANGE."), t[e] } function Tl(t, e, n) { ngDevMode && jt(n, mo, "Incoming value should never be NO_CHANGE."), ngDevMode && Vt(e, t.length, "Slot should have been initialized to NO_CHANGE"); var i = t[e]; if (Object.is(i, n)) return !1; if (ngDevMode && hn()) { var r = i !== mo ? i : void 0; if (!Sl(r, n)) { var o = function(t, e, n, i) { var r = t[1].data , o = r[e]; if ("string" == typeof o) return o.indexOf("�") > -1 ? no(t, e, e, o, i) : { propName: o, oldValue: n, newValue: i }; if (null === o) { for (var a = e - 1; "string" != typeof r[a] && null === r[a + 1]; ) a--; var s = r[a]; if ("string" == typeof s) { var c = s.match(new RegExp("�","g")); if (c && c.length - 1 > e - a) return no(t, a, e, s, i) } } return { propName: void 0, oldValue: n, newValue: i } }(t, e, r, n); !function(t, e, n, i) { var r = "ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value" + (i ? " for '" + i + "'" : "") + ": '" + e + "'. Current value: '" + n + "'."; throw t && (r += " It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook?"), new Error(r) }(i === mo, o.oldValue, o.newValue, o.propName) } return !1 } return t[e] = n, !0 } function Ol(t, e, n, i) { var r = Tl(t, e, n); return Tl(t, e + 1, i) || r } function _l(t, e, n, i, r) { var o = Ol(t, e, n, i); return Tl(t, e + 2, r) || o } function Pl(t, e, n, i, r, o) { var a = Ol(t, e, n, i); return Ol(t, e + 2, r, o) || a } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Il(t, e, n, i) { var r = an() , o = yn(); if (Tl(r, o, e)) { var a = sn() , s = Ln(); Ga(s, r, t, e, n, i), ngDevMode && ns(a.data, s, "attr." + t, o) } return Il } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kl(t, e) { ngDevMode && Vt(2, e.length, "should have at least 3 values"), ngDevMode && Rt(e.length % 2, 1, "should have an odd number of values"); for (var n = !1, i = gn(), r = 1; r < e.length; r += 2) n = Tl(t, i++, e[r]) || n; if (vn(i), !n) return mo; var o = e[0]; for (r = 1; r < e.length; r += 2) o += oi(e[r]) + e[r + 1]; return o } function Dl(t, e, n, i) { return Tl(t, yn(), n) ? e + oi(n) + i : mo } function Rl(t, e, n, i, r, o) { var a = Ol(t, gn(), n, r); return bn(2), a ? e + oi(n) + i + oi(r) + o : mo } function Ll(t, e, n, i, r, o, a, s) { var c = _l(t, gn(), n, r, a); return bn(3), c ? e + oi(n) + i + oi(r) + o + oi(a) + s : mo } function Nl(t, e, n, i, r, o, a, s, c, l) { var u = Pl(t, gn(), n, r, a, c); return bn(4), u ? e + oi(n) + i + oi(r) + o + oi(a) + s + oi(c) + l : mo } function jl(t, e, n, i, r, o, a, s, c, l, u, d) { var p = gn() , h = Pl(t, p, n, r, a, c); return h = Tl(t, p + 4, u) || h, bn(5), h ? e + oi(n) + i + oi(r) + o + oi(a) + s + oi(c) + l + oi(u) + d : mo } function Vl(t, e, n, i, r, o, a, s, c, l, u, d, p, h) { var f = gn() , m = Pl(t, f, n, r, a, c); return m = Ol(t, f + 4, u, p) || m, bn(6), m ? e + oi(n) + i + oi(r) + o + oi(a) + s + oi(c) + l + oi(u) + d + oi(p) + h : mo } function Fl(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m) { var g = gn() , v = Pl(t, g, n, r, a, c); return v = _l(t, g + 4, u, p, f) || v, bn(7), v ? e + oi(n) + i + oi(r) + o + oi(a) + s + oi(c) + l + oi(u) + d + oi(p) + h + oi(f) + m : mo } function Ul(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v) { var y = gn() , b = Pl(t, y, n, r, a, c); return b = Pl(t, y + 4, u, p, f, g) || b, bn(8), b ? e + oi(n) + i + oi(r) + o + oi(a) + s + oi(c) + l + oi(u) + d + oi(p) + h + oi(f) + m + oi(g) + v : mo } function Bl(t, e, n, i, r, o) { var a = an() , s = Dl(a, e, n, i); if (s !== mo) { var c = Ln(); Ga(c, a, t, s, r, o), ngDevMode && ns(sn().data, c, "attr." + t, gn() - 1, e, i) } return Bl } function zl(t, e, n, i, r, o, a, s) { var c = an() , l = Rl(c, e, n, i, r, o); if (l !== mo) { var u = Ln(); Ga(u, c, t, l, a, s), ngDevMode && ns(sn().data, u, "attr." + t, gn() - 2, e, i, o) } return zl } function Gl(t, e, n, i, r, o, a, s, c, l) { var u = an() , d = Ll(u, e, n, i, r, o, a, s); if (d !== mo) { var p = Ln(); Ga(p, u, t, d, c, l), ngDevMode && ns(sn().data, p, "attr." + t, gn() - 3, e, i, o, s) } return Gl } function Hl(t, e, n, i, r, o, a, s, c, l, u, d) { var p = an() , h = Nl(p, e, n, i, r, o, a, s, c, l); if (h !== mo) { var f = Ln(); Ga(f, p, t, h, u, d), ngDevMode && ns(sn().data, f, "attr." + t, gn() - 4, e, i, o, s, l) } return Hl } function Wl(t, e, n, i, r, o, a, s, c, l, u, d, p, h) { var f = an() , m = jl(f, e, n, i, r, o, a, s, c, l, u, d); if (m !== mo) { var g = Ln(); Ga(g, f, t, m, p, h), ngDevMode && ns(sn().data, g, "attr." + t, gn() - 5, e, i, o, s, l, d) } return Wl } function ql(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m) { var g = an() , v = Vl(g, e, n, i, r, o, a, s, c, l, u, d, p, h); if (v !== mo) { var y = Ln(); Ga(y, g, t, v, f, m), ngDevMode && ns(sn().data, y, "attr." + t, gn() - 6, e, i, o, s, l, d, h) } return ql } function Xl(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v) { var y = an() , b = Fl(y, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m); if (b !== mo) { var w = Ln(); Ga(w, y, t, b, g, v), ngDevMode && ns(sn().data, w, "attr." + t, gn() - 7, e, i, o, s, l, d, h, m) } return Xl } function Yl(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b) { var w = an() , S = Ul(w, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v); if (S !== mo) { var x = Ln(); Ga(x, w, t, S, y, b), ngDevMode && ns(sn().data, x, "attr." + t, gn() - 8, e, i, o, s, l, d, h, m, v) } return Yl } function Kl(t, e, n, r) { var o = an() , a = kl(o, e); if (a !== mo) { var s = Ln(); if (Ga(s, o, t, a, n, r), ngDevMode) { for (var c = [e[0]], l = 2; l < e.length; l += 2) c.push(e[l]); ns.apply(void 0, Object(i.h)([sn().data, s, "attr." + t, gn() - c.length + 1], c)) } } return Kl } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Zl(t) { var e = Yr(t); $a(e[1], e, t) } function Jl(t) { ngDevMode && Bt(t, "component"); var e, n, i, r, o = Ja(Yr(t)); ngDevMode && Bt(o[8], "rootContext should be defined"), e = o[8], n = 1, r = 0 === e.flags, e.flags |= n, r && e.clean == ua && (e.clean = new Promise((function(t) { return i = t } )), e.scheduler((function() { if (1 & e.flags && (e.flags &= -2, Qa(e)), 2 & e.flags) { e.flags &= -3; var t = e.playerHandler; t && t.flushPlayers() } e.clean = ua, i(null) } ))) } function Ql(t, e, n, i, r, o, a, s) { var c = an() , l = sn() , u = t + 20 , d = l.firstCreatePass ? /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function(t, e, n, i, r, o, a, s, c) { ngDevMode && De(e), ngDevMode && ngDevMode.firstCreatePass++; var l = e.consts , u = fa(e, n[6], t, 0, a || null, Qe(l, s)); Da(e, n, u, Qe(l, c)), Un(e, u); var d = u.tViews = Ma(2, -1, i, r, o, e.directiveRegistry, e.pipeRegistry, null, e.schemas, l) , p = Aa(e, null, 2, -1, null, null); return p.injectorIndex = u.injectorIndex, d.node = p, null !== e.queries && (e.queries.template(e, u), d.queries = e.queries.embeddedTView(u)), u }(t, l, c, e, n, i, r, o, a) : l.data[u]; un(d, !1); var p = c[11].createComment(ngDevMode ? "container" : ""); Ts(l, c, p, d), Kr(p, c), Za(c, c[u] = Xa(p, c, p, d)), Ee(d) && wa(l, c, d), null != a && Sa(c, d, s) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function $l(t, e, n, i) { var r = n + 20; r >= t.data.length && (t.data[r] = null, t.blueprint[r] = null), e[r] = i } function tu(t) { return qe(en.lFrame.contextLView, t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function eu(t, e) { void 0 === e && (e = v.Default); var n = an(); return null == n ? vt(t, e) : Si(ln(), n, G(t), e) } function nu(t) { return wi(ln(), t) } function iu() { var t = ngDevMode ? "This constructor was not compatible with Dependency Injection." : "invalid"; throw new Error(t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ru(t, e, n) { var i = an() , r = yn(); if (Tl(i, r, e)) { var o = sn() , a = Ln(); Oa(o, a, i, t, e, i[11], n, !1), ngDevMode && ns(o.data, a, t, r) } return ru } function ou(t, e, n, i, r) { var o = r ? "class" : "style"; cs(t, n, e.inputs[o], o, i) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function au(t, e, n, i, r, o, a) { ngDevMode && De(e), ngDevMode && ngDevMode.firstCreatePass++; var s = e.consts , c = Qe(s, o) , l = fa(e, n[6], t, 3, r, c) , u = Da(e, n, l, Qe(s, a)); return ngDevMode && function(t, e, n, i, r) { if (null === t.schemas) return; var o = i.tagName; if (!r && null !== o) { if (("undefined" != typeof HTMLUnknownElement && HTMLUnknownElement && n instanceof HTMLUnknownElement || "undefined" != typeof customElements && o.indexOf("-") > -1 && !customElements.get(o)) && !Ia(t, 0, o)) { var a = "'" + o + "' is not a known element:\n"; a += "1. If '" + o + "' is an Angular component, then verify that it is part of this module.\n", o && o.indexOf("-") > -1 ? a += "2. If '" + o + "' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message." : a += "2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.", console.warn(a) } } }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (e, 0, i, l, u), null !== l.attrs && vl(l, l.attrs, !1), null !== l.mergedAttrs && vl(l, l.mergedAttrs, !0), null !== e.queries && e.queries.elementStart(e, l), l } function su(t, e, n, i) { var r = an() , o = sn() , a = 20 + t; ngDevMode && Rt(gn(), o.bindingStartIndex, "elements should be created before any bindings"), ngDevMode && ngDevMode.rendererCreateElement++, ngDevMode && Ht(r, a); var s = r[11] , c = r[a] = pa(e, s, en.lFrame.currentNamespace) , l = o.firstCreatePass ? au(t, o, r, c, e, n, i) : o.data[a]; un(l, !0); var u = l.mergedAttrs; null !== u && Zn(s, c, u); var d = l.classes; null !== d && Ls(s, c, d); var p = l.styles; null !== p && Rs(s, c, p), Ts(o, r, c, l), 0 === en.lFrame.elementDepthCount && Kr(c, r), en.lFrame.elementDepthCount++, Ee(l) && (wa(o, r, l), ba(o, l, r)), null !== i && Sa(r, l) } function cu() { var t = ln(); ngDevMode && Bt(t, "No parent node to close."), dn() ? pn() : (ngDevMode && _e(ln()), un(t = t.parent, !1)); var e = t; ngDevMode && Xn(e, 3), en.lFrame.elementDepthCount--; var n = sn(); n.firstCreatePass && (Un(n, t), xe(t) && n.queries.elementEnd(t)), null != e.classesWithoutHost && function(t) { return 0 != (16 & t.flags) }(e) && ou(n, e, an(), e.classesWithoutHost, !0), null != e.stylesWithoutHost && function(t) { return 0 != (32 & t.flags) }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (e) && ou(n, e, an(), e.stylesWithoutHost, !1) } function lu(t, e, n, i) { su(t, e, n, i), cu() } function uu(t, e, n) { var i = an() , r = sn() , o = t + 20; ngDevMode && Ht(i, o), ngDevMode && Rt(gn(), r.bindingStartIndex, "element containers should be created before any bindings"); var a = r.firstCreatePass ? function(t, e, n, i, r) { ngDevMode && ngDevMode.firstCreatePass++; var o = e.consts , a = Qe(o, i) , s = fa(e, n[6], t, 4, "ng-container", a); return null !== a && vl(s, a, !0), Da(e, n, s, Qe(o, r)), null !== e.queries && e.queries.elementStart(e, s), s }(t, r, i, e, n) : r.data[o]; un(a, !0), ngDevMode && ngDevMode.rendererCreateComment++; var s = i[o] = i[11].createComment(ngDevMode ? "ng-container" : ""); Ts(r, i, s, a), Kr(s, i), Ee(a) && (wa(r, i, a), ba(r, a, i)), null != n && Sa(i, a) } function du() { var t = ln() , e = sn(); dn() ? pn() : (ngDevMode && _e(t), un(t = t.parent, !1)), ngDevMode && Xn(t, 4), e.firstCreatePass && (Un(e, t), xe(t) && e.queries.elementEnd(t)) } function pu(t, e, n) { uu(t, e, n), du() } function hu() { return an() } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function fu(t) { return !!t && "function" == typeof t.then } function mu(t) { return !!t && "function" == typeof t.subscribe } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function gu(t, e, n, i) { void 0 === n && (n = !1); var r = an() , o = sn() , a = ln(); return yu(o, r, r[11], a, t, e, n, i), gu } function vu(t, e, n, i) { void 0 === n && (n = !1); var r = ln() , o = an() , a = sn(); return yu(a, o, as(xn(a.data), r, o), r, t, e, n, i), vu } function yu(t, e, n, i, r, o, a, s) { void 0 === a && (a = !1); var c = Ee(i) , l = t.firstCreatePass && (t.cleanup || (t.cleanup = [])) , u = rs(e); ngDevMode && Yn(i, 3, 0, 4); var d = !0; if (3 === i.type) { var p = Ge(i, e) , h = s ? s(p) : ne , f = h.target || p , m = u.length , g = s ? function(t) { return s(Be(t[i.index])).target } : i.index; if (Fe(n)) { var v = null; if (!s && c && (v = function(t, e, n, i) { var r = t.cleanup; if (null != r) for (var o = 0; o < r.length - 1; o += 2) { var a = r[o]; if (a === n && r[o + 1] === i) { var s = e[7] , c = r[o + 2]; return s.length > c ? s[c] : null } "string" == typeof a && (o += 2) } return null }(t, e, r, i.index)), null !== v) { (v.__ngLastListenerFn__ || v).__ngNextListenerFn__ = o, v.__ngLastListenerFn__ = o, d = !1 } else { o = wu(i, e, o, !1); var y = n.listen(h.name || f, r, o); ngDevMode && ngDevMode.rendererAddEventListener++, u.push(o, y), l && l.push(r, g, m, m + 1) } } else o = wu(i, e, o, !0), f.addEventListener(r, o, a), ngDevMode && ngDevMode.rendererAddEventListener++, u.push(o), l && l.push(r, g, m, a) } var b, w = i.outputs; if (d && null !== w && (b = w[r])) { var S = b.length; if (S) for (var x = 0; x < S; x += 2) { var M = b[x]; ngDevMode && Ht(e, M); var E = b[x + 1] , C = e[M] , A = C[E]; if (ngDevMode && !mu(A)) throw new Error("@Output " + E + " not initialized in '" + C.constructor.name + "'."); var T = A.subscribe(o) , O = u.length; u.push(o, T), l && l.push(r, i.index, O, -(O + 1)) } } } function bu(t, e, n) { try { return !1 !== e(n) } catch (e) { return ss(t, e), !1 } } function wu(t, e, n, i) { return function r(o) { if (o === Function) return n; var a = 2 & t.flags ? Xe(t.index, e) : e; 0 == (32 & e[2]) && Ja(a); for (var s = bu(e, n, o), c = r.__ngNextListenerFn__; c; ) s = bu(e, c, o) && s, c = c.__ngNextListenerFn__; return i && !1 === s && (o.preventDefault(), o.returnValue = !1), s } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Su(t) { return void 0 === t && (t = 1), kn(t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function xu(t, e) { for (var n = null, i = function(t) { var e = t.attrs; if (null != e) { var n = e.indexOf(5); if (0 == (1 & n)) return e[n + 1] } return null }(t), r = 0; r < e.length; r++) { var o = e[r]; if ("*" !== o) { if (null === i ? uo(t, o, !0) : po(i, o)) return r } else n = r } return n } function Mu(t) { var e = an()[16][6]; if (!e.projection) for (var n = t ? t.length : 1, i = e.projection = Zt(n, null), r = i.slice(), o = e.child; null !== o; ) { var a = t ? xu(o, t) : 0; null !== a && (r[a] ? r[a].projectionNext = o : i[a] = o, r[a] = o), o = o.next } } var Eu = !1; function Cu(t) { Eu = t } function Au(t, e, n) { void 0 === e && (e = 0); var i = an() , r = sn() , o = fa(r, i[6], t, 1, null, n || null); null === o.projection && (o.projection = e), pn(), Eu || ks(r, i, o) } function Tu(t, e, n) { return Ou(t, "", e, "", n), Tu } function Ou(t, e, n, i, r) { var o = an() , a = Dl(o, e, n, i); if (a !== mo) { var s = sn() , c = Ln(); Oa(s, c, o, t, a, o[11], r, !1), ngDevMode && ns(s.data, c, t, gn() - 1, e, i) } return Ou } function _u(t, e, n, i, r, o, a) { var s = an() , c = Rl(s, e, n, i, r, o); if (c !== mo) { var l = sn() , u = Ln(); Oa(l, u, s, t, c, s[11], a, !1), ngDevMode && ns(l.data, u, t, gn() - 2, e, i, o) } return _u } function Pu(t, e, n, i, r, o, a, s, c) { var l = an() , u = Ll(l, e, n, i, r, o, a, s); if (u !== mo) { var d = sn() , p = Ln(); Oa(d, p, l, t, u, l[11], c, !1), ngDevMode && ns(d.data, p, t, gn() - 3, e, i, o, s) } return Pu } function Iu(t, e, n, i, r, o, a, s, c, l, u) { var d = an() , p = Nl(d, e, n, i, r, o, a, s, c, l); if (p !== mo) { var h = sn() , f = Ln(); Oa(h, f, d, t, p, d[11], u, !1), ngDevMode && ns(h.data, f, t, gn() - 4, e, i, o, s, l) } return Iu } function ku(t, e, n, i, r, o, a, s, c, l, u, d, p) { var h = an() , f = jl(h, e, n, i, r, o, a, s, c, l, u, d); if (f !== mo) { var m = sn() , g = Ln(); Oa(m, g, h, t, f, h[11], p, !1), ngDevMode && ns(m.data, g, t, gn() - 5, e, i, o, s, l, d) } return ku } function Du(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f) { var m = an() , g = Vl(m, e, n, i, r, o, a, s, c, l, u, d, p, h); if (g !== mo) { var v = sn() , y = Ln(); Oa(v, y, m, t, g, m[11], f, !1), ngDevMode && ns(v.data, y, t, gn() - 6, e, i, o, s, l, d, h) } return Du } function Ru(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g) { var v = an() , y = Fl(v, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m); if (y !== mo) { var b = sn() , w = Ln(); Oa(b, w, v, t, y, v[11], g, !1), ngDevMode && ns(b.data, w, t, gn() - 7, e, i, o, s, l, d, h, m) } return Ru } function Lu(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y) { var b = an() , w = Ul(b, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v); if (w !== mo) { var S = sn() , x = Ln(); Oa(S, x, b, t, w, b[11], y, !1), ngDevMode && ns(S.data, x, t, gn() - 8, e, i, o, s, l, d, h, m, v) } return Lu } function Nu(t, e, n) { var r = an() , o = kl(r, e); if (o !== mo) { var a = sn() , s = Ln(); if (Oa(a, s, r, t, o, r[11], n, !1), ngDevMode) { for (var c = [e[0]], l = 2; l < e.length; l += 2) c.push(e[l]); ns.apply(void 0, Object(i.h)([a.data, s, t, gn() - c.length + 1], c)) } } return Nu } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ju = []; function Vu(t, e, n, i, r, o) { ngDevMode && Re(sn()); var a = o ? e.classBindings : e.styleBindings , s = Oo(a) , c = Io(a); t[i] = n; var l, u, d, p = !1; if (Array.isArray(n)) { var h = n; (null === (l = h[1]) || $t(h, l) > 0) && (p = !0) } else l = n; if (r) if (0 !== c) { var f = Oo(t[s + 1]); t[i + 1] = To(f, s), 0 !== f && (t[f + 1] = ko(t[f + 1], i)), t[s + 1] = (u = t[s + 1], d = i, ngDevMode && It(u, "expected number"), ngDevMode && kt(d, 0, 32767), 131071 & u | d << 17) } else t[i + 1] = To(s, 0), 0 !== s && (t[s + 1] = ko(t[s + 1], i)), s = i; else t[i + 1] = To(c, 0), ngDevMode && Rt(0 !== s && 0 === c, !1, "Adding template bindings after hostBindings is not allowed."), 0 === s ? s = i : t[c + 1] = ko(t[c + 1], i), c = i; p && (t[i + 1] = Po(t[i + 1])), Fu(t, l, i, !0, o), Fu(t, l, i, !1, o), function(t, e, n, i, r) { var o = r ? t.residualClasses : t.residualStyles; null != o && "string" == typeof e && $t(o, e) >= 0 && (n[i + 1] = Ro(n[i + 1])) }(e, l, t, i, o), a = To(s, c), o ? e.classBindings = a : e.styleBindings = a } function Fu(t, e, n, i, r) { for (var o = t[n + 1], a = null === e, s = i ? Oo(o) : Io(o), c = !1; 0 !== s && (!1 === c || a); ) { ngDevMode && Ht(t, s); var l = t[s] , u = t[s + 1]; Uu(l, e) && (c = !0, t[s + 1] = i ? Ro(u) : Po(u)), s = i ? Oo(u) : Io(u) } c && (t[n + 1] = i ? Po(o) : Ro(o)) } function Uu(t, e) { return ngDevMode && Lt(Array.isArray(e), !0, "Expected that 'tStylingKey' has been unwrapped"), null === t || null == e || (Array.isArray(t) ? t[1] : t) === e || !(!Array.isArray(t) || "string" != typeof e) && $t(t, e) >= 0 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ ("undefined" == typeof ngDevMode || ngDevMode) && at() && (Object.freeze({}), Object.freeze(ju))/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ ; var Bu = { textEnd: 0, key: 0, keyEnd: 0, value: 0, valueEnd: 0 }; function zu(t) { return t.substring(Bu.key, Bu.keyEnd) } function Gu(t) { return t.substring(Bu.value, Bu.valueEnd) } function Hu(t, e) { var n = Bu.textEnd; return n === e ? -1 : (e = Bu.keyEnd = function(t, e, n) { for (; e < n && t.charCodeAt(e) > 32; ) e++; return e }(t, Bu.key = e, n), Xu(t, e, n)) } function Wu(t, e) { var n = Bu.textEnd , i = Bu.key = Xu(t, e, n); return n === i ? -1 : (i = Bu.keyEnd = function(t, e, n) { var i; for (; e < n && (45 === (i = t.charCodeAt(e)) || 95 === i || (-33 & i) >= 65 && (-33 & i) <= 90); ) e++; return e }(t, i, n), i = Yu(t, i, n, 58), i = Bu.value = Xu(t, i, n), i = Bu.valueEnd = function(t, e, n) { var i = -1 , r = -1 , o = -1 , a = e , s = a; for (; a < n; ) { var c = t.charCodeAt(a++); if (59 === c) return s; 34 === c || 39 === c ? s = a = Ku(t, c, a, n) : e === a - 4 && 85 === o && 82 === r && 76 === i && 40 === c ? s = a = Ku(t, 41, a, n) : c > 32 && (s = a), o = r, r = i, i = -33 & c } return s }(t, i, n), Yu(t, i, n, 59)) } function qu(t) { Bu.key = 0, Bu.keyEnd = 0, Bu.value = 0, Bu.valueEnd = 0, Bu.textEnd = t.length } function Xu(t, e, n) { for (; e < n && t.charCodeAt(e) <= 32; ) e++; return e } function Yu(t, e, n, i) { return (e = Xu(t, e, n)) < n && (ngDevMode && t.charCodeAt(e) !== i && Zu(t, String.fromCharCode(i), e), e++), e } function Ku(t, e, n, i) { for (var r = -1, o = n; o < i; ) { var a = t.charCodeAt(o++); if (a == e && 92 !== r) return o; r = 92 == a && 92 === r ? 0 : a } throw ngDevMode ? Zu(t, String.fromCharCode(e), i) : new Error } function Zu(t, e, n) { throw ngDevMode && Rt("string" == typeof t, !0, "String expected here"), zt("Malformed style at location " + n + " in string '" + t.substring(0, n) + "[>>" + t.substring(n, n + 1) + "<<]" + t.substr(n + 1) + "'. Expecting '" + e + "'.") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ju(t) { Fn(t) } function Qu(t, e, n) { return rd(t, e, n, !1), Qu } function $u(t, e) { return rd(t, e, null, !0), $u } function td(t) { od(ud, ed, t, !1) } function ed(t, e) { for (var n = function(t) { return qu(t), Wu(t, Xu(t, 0, Bu.textEnd)) }(e); n >= 0; n = Wu(e, n)) ud(t, zu(e), Gu(e)) } function nd(t) { od(Jt, id, t, !0) } function id(t, e) { for (var n = function(t) { return qu(t), Hu(t, Xu(t, 0, Bu.textEnd)) }(e); n >= 0; n = Hu(e, n)) Jt(t, zu(e), !0) } function rd(t, e, n, i) { var r, o = an(), a = sn(), s = bn(2); if (a.firstUpdatePass && sd(a, t, s, i), e !== mo && Tl(o, s, e)) { var c = void 0; null == n && (c = null === (r = en.lFrame) ? null : r.currentSanitizer) && (n = c), dd(a, a.data[Dn() + 20], o, o[11], t, o[s + 1] = function(t, e) { null == t || ("function" == typeof e ? t = e(t) : "string" == typeof e ? t += e : "object" == typeof t && (t = F(Gi(t)))); return t }(e, n), i, s) } } function od(t, e, n, i) { var r = sn() , o = bn(2); r.firstUpdatePass && sd(r, null, o, i); var a = an(); if (n !== mo && Tl(a, o, n)) { var s = r.data[Dn() + 20]; if (fd(s, i) && !ad(r, o)) { if (ngDevMode) { var c = r.data[o]; Rt(Array.isArray(c) ? c[1] : c, !1, "Styling linked list shadow input should be marked as 'false'") } var l = i ? s.classesWithoutHost : s.stylesWithoutHost; ngDevMode && !1 === i && null !== l && Rt(l.endsWith(";"), !0, "Expecting static portion to end with ';'"), null !== l && (n = U(l, n || "")), ou(r, s, a, n, i) } else !function(t, e, n, i, r, o, a, s) { r === mo && (r = ju); var c = 0 , l = 0 , u = 0 < r.length ? r[0] : null , d = 0 < o.length ? o[0] : null; for (; null !== u || null !== d; ) { ngDevMode && Vt(c, 999, "Are we stuck in infinite loop?"), ngDevMode && Vt(l, 999, "Are we stuck in infinite loop?"); var p = c < r.length ? r[c + 1] : void 0 , h = l < o.length ? o[l + 1] : void 0 , f = null , m = void 0; u === d ? (c += 2, l += 2, p !== h && (f = d, m = h)) : null === d || null !== u && u < d ? (c += 2, f = u) : (ngDevMode && Bt(d, "Expecting to have a valid key"), l += 2, f = d, m = h), null !== f && dd(t, e, n, i, f, m, a, s), u = c < r.length ? r[c] : null, d = l < o.length ? o[l] : null } }(r, s, a, a[11], a[o + 1], a[o + 1] = function(t, e, n) { if (null == n || "" === n) return ju; var i = [] , r = Gi(n); if (Array.isArray(r)) for (var o = 0; o < r.length; o++) t(i, r[o], !0); else if ("object" == typeof r) for (var a in r) r.hasOwnProperty(a) && t(i, a, r[a]); else "string" == typeof r ? e(i, r) : ngDevMode && zt("Unsupported styling type " + typeof r + ": " + r); return i }(t, e, n), i, o) } } function ad(t, e) { return e >= t.expandoStartIndex } function sd(t, e, n, i) { ngDevMode && Re(t); var r = t.data; if (null === r[n + 1]) { var o = r[Dn() + 20] , a = ad(t, n); fd(o, i) && null === e && !a && (e = !1), e = function(t, e, n, i) { var r = xn(t) , o = i ? e.residualClasses : e.residualStyles; if (null === r) { 0 === (i ? e.classBindings : e.styleBindings) && (n = ld(n = cd(null, t, e, n, i), e.attrs, i), o = null) } else { var a = e.directiveStylingLast; if (-1 === a || t[a] !== r) if (n = cd(r, t, e, n, i), null === o) { var s = function(t, e, n) { var i = n ? e.classBindings : e.styleBindings; if (0 === Io(i)) return; return t[Oo(i)] }(t, e, i); void 0 !== s && Array.isArray(s) && (s = ld(s = cd(null, t, e, s[1], i), e.attrs, i), function(t, e, n, i) { var r = n ? e.classBindings : e.styleBindings; ngDevMode && Lt(Io(r), 0, "Expecting to have at least one template styling binding."), t[Oo(r)] = i }(t, e, i, s)) } else o = function(t, e, n) { var i = void 0 , r = e.directiveEnd; ngDevMode && Lt(e.directiveStylingLast, -1, "By the time this function gets called at least one hostBindings-node styling instruction must have executed."); for (var o = 1 + e.directiveStylingLast; o < r; o++) { var a = t[o].hostAttrs; i = ld(i, a, n) } return ld(i, e.attrs, n) }(t, e, i) } void 0 !== o && (i ? e.residualClasses = o : e.residualStyles = o); return n }(r, o, e, i), Vu(r, o, e, n, a, i) } } function cd(t, e, n, i, r) { var o = null , a = n.directiveEnd , s = n.directiveStylingLast; for (-1 === s ? s = n.directiveStart : s++; s < a && (o = e[s], ngDevMode && Bt(o, "expected to be defined"), i = ld(i, o.hostAttrs, r), o !== t); ) s++; return null !== t && (n.directiveStylingLast = s), i } function ld(t, e, n) { var i = n ? 1 : 2 , r = -1; if (null !== e) for (var o = 0; o < e.length; o++) { var a = e[o]; "number" == typeof a ? r = a : r === i && (Array.isArray(t) || (t = void 0 === t ? [] : ["", t]), Jt(t, a, !!n || e[++o])) } return void 0 === t ? null : t } function ud(t, e, n) { Ur(e) && (n = Dr(n)), Jt(t, e, n) } function dd(t, e, n, i, r, o, a, s) { if (3 === e.type) { var c = t.data , l = c[s + 1]; if (!hd(Do(l) ? pd(c, e, n, r, Io(l), a) : void 0)) hd(o) || _o(l) && (o = pd(c, null, n, r, s, a)), function(t, e, n, i, r) { var o = Fe(t); if (e) r ? (ngDevMode && ngDevMode.rendererAddClass++, o ? t.addClass(n, i) : (ngDevMode && Bt(n.classList, "HTMLElement expected"), n.classList.add(i))) : (ngDevMode && ngDevMode.rendererRemoveClass++, o ? t.removeClass(n, i) : n.classList.remove(i)); else { var a = -1 == i.indexOf("-") ? void 0 : 2; null == r ? (ngDevMode && ngDevMode.rendererRemoveStyle++, o ? t.removeStyle(n, i, a) : n.style.removeProperty(i)) : (ngDevMode && ngDevMode.rendererSetStyle++, o ? t.setStyle(n, i, r, a) : (ngDevMode && Bt(n.style, "HTMLElement expected"), n.style.setProperty(i, r))) } }(i, a, ze(Dn(), n), r, o) } } function pd(t, e, n, i, r, o) { for (var a = null === e, s = void 0; r > 0; ) { var c = t[r] , l = Array.isArray(c) , u = l ? c[1] : c , d = null === u , p = n[r + 1]; p === mo && (p = d ? ju : void 0); var h = d ? Qt(p, i) : u === i ? p : void 0; if (l && !hd(h) && (h = Qt(c, i)), hd(h) && (s = h, a)) return s; var f = t[r + 1]; r = a ? Oo(f) : Io(f) } if (null !== e) { var m = o ? e.residualClasses : e.residualStyles; null != m && (s = Qt(m, i)) } return s } function hd(t) { return void 0 !== t } function fd(t, e) { return 0 != (t.flags & (e ? 16 : 32)) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function md(t, e) { void 0 === e && (e = ""); var n = an() , i = sn() , r = t + 20; ngDevMode && Rt(gn(), i.bindingStartIndex, "text nodes should be created before any bindings"), ngDevMode && Ht(n, r); var o = i.firstCreatePass ? fa(i, n[6], t, 3, null, null) : i.data[r] , a = n[r] = hs(e, n[11]); Ts(i, n, a, o), un(o, !1) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function gd(t) { return vd("", t, ""), gd } function vd(t, e, n) { var i = an() , r = Dl(i, t, e, n); return r !== mo && ls(i, Dn(), r), vd } function yd(t, e, n, i, r) { var o = an() , a = Rl(o, t, e, n, i, r); return a !== mo && ls(o, Dn(), a), yd } function bd(t, e, n, i, r, o, a) { var s = an() , c = Ll(s, t, e, n, i, r, o, a); return c !== mo && ls(s, Dn(), c), bd } function wd(t, e, n, i, r, o, a, s, c) { var l = an() , u = Nl(l, t, e, n, i, r, o, a, s, c); return u !== mo && ls(l, Dn(), u), wd } function Sd(t, e, n, i, r, o, a, s, c, l, u) { var d = an() , p = jl(d, t, e, n, i, r, o, a, s, c, l, u); return p !== mo && ls(d, Dn(), p), Sd } function xd(t, e, n, i, r, o, a, s, c, l, u, d, p) { var h = an() , f = Vl(h, t, e, n, i, r, o, a, s, c, l, u, d, p); return f !== mo && ls(h, Dn(), f), xd } function Md(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f) { var m = an() , g = Fl(m, t, e, n, i, r, o, a, s, c, l, u, d, p, h, f); return g !== mo && ls(m, Dn(), g), Md } function Ed(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g) { var v = an() , y = Ul(v, t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g); return y !== mo && ls(v, Dn(), y), Ed } function Cd(t) { var e = an() , n = kl(e, t); return n !== mo && ls(e, Dn(), n), Cd } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ad(t, e, n) { od(Jt, id, Dl(an(), t, e, n), !0) } function Td(t, e, n, i, r) { od(Jt, id, Rl(an(), t, e, n, i, r), !0) } function Od(t, e, n, i, r, o, a) { od(Jt, id, Ll(an(), t, e, n, i, r, o, a), !0) } function _d(t, e, n, i, r, o, a, s, c) { od(Jt, id, Nl(an(), t, e, n, i, r, o, a, s, c), !0) } function Pd(t, e, n, i, r, o, a, s, c, l, u) { od(Jt, id, jl(an(), t, e, n, i, r, o, a, s, c, l, u), !0) } function Id(t, e, n, i, r, o, a, s, c, l, u, d, p) { od(Jt, id, Vl(an(), t, e, n, i, r, o, a, s, c, l, u, d, p), !0) } function kd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f) { od(Jt, id, Fl(an(), t, e, n, i, r, o, a, s, c, l, u, d, p, h, f), !0) } function Dd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g) { od(Jt, id, Ul(an(), t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g), !0) } function Rd(t) { od(Jt, id, kl(an(), t), !0) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ld(t, e, n) { td(Dl(an(), t, e, n)) } function Nd(t, e, n, i, r) { td(Rl(an(), t, e, n, i, r)) } function jd(t, e, n, i, r, o, a) { td(Ll(an(), t, e, n, i, r, o, a)) } function Vd(t, e, n, i, r, o, a, s, c) { td(Nl(an(), t, e, n, i, r, o, a, s, c)) } function Fd(t, e, n, i, r, o, a, s, c, l, u) { td(jl(an(), t, e, n, i, r, o, a, s, c, l, u)) } function Ud(t, e, n, i, r, o, a, s, c, l, u, d, p) { td(Vl(an(), t, e, n, i, r, o, a, s, c, l, u, d, p)) } function Bd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f) { td(Fl(an(), t, e, n, i, r, o, a, s, c, l, u, d, p, h, f)) } function zd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g) { td(Ul(an(), t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g)) } function Gd(t) { td(kl(an(), t)) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Hd(t, e, n, i, r) { return rd(t, Dl(an(), e, n, i), r, !1), Hd } function Wd(t, e, n, i, r, o, a) { return rd(t, Rl(an(), e, n, i, r, o), a, !1), Wd } function qd(t, e, n, i, r, o, a, s, c) { return rd(t, Ll(an(), e, n, i, r, o, a, s), c, !1), qd } function Xd(t, e, n, i, r, o, a, s, c, l, u) { return rd(t, Nl(an(), e, n, i, r, o, a, s, c, l), u, !1), Xd } function Yd(t, e, n, i, r, o, a, s, c, l, u, d, p) { return rd(t, jl(an(), e, n, i, r, o, a, s, c, l, u, d), p, !1), Yd } function Kd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f) { return rd(t, Vl(an(), e, n, i, r, o, a, s, c, l, u, d, p, h), f, !1), Kd } function Zd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g) { return rd(t, Fl(an(), e, n, i, r, o, a, s, c, l, u, d, p, h, f, m), g, !1), Zd } function Jd(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y) { return rd(t, Ul(an(), e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v), y, !1), Jd } function Qd(t, e, n) { return rd(t, kl(an(), e), n, !1), Qd } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function $d(t, e, n) { var i = an() , r = yn(); if (Tl(i, r, e)) { var o = sn() , a = Ln(); Oa(o, a, i, t, e, i[11], n, !0), ngDevMode && ns(o.data, a, t, r) } return $d } function tp(t, e, n) { var i = an() , r = yn(); if (Tl(i, r, e)) { var o = sn() , a = Ln(); Oa(o, a, i, t, e, as(xn(o.data), a, i), n, !0), ngDevMode && ns(o.data, a, t, r) } return tp } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ep(t) { dp(t); var e, n, i, r, o = sp(t, !1); return null === o ? null : (void 0 === o.component && (o.component = (e = o.nodeIndex, n = o.lView, i = n[1].data[e], r = i.directiveStart, 2 & i.flags ? n[r] : null)), o.component) } function np(t) { dp(t); var e = sp(t, !1); return null === e ? null : e.lView[8] } function ip(t) { var e = sp(t, !1); if (null === e) return null; var n, i = e.lView; for (ngDevMode && ke(i); null === i[0] && (n = go(i)); ) i = n; return 512 & i[2] ? null : i[8] } function rp(t) { return Object(i.h)(yo(t).components) } function op(t) { var e = sp(t, !1); if (null === e) return Pc.NULL; var n = e.lView[1].data[e.nodeIndex]; return new Oi(n,e.lView) } function ap(t) { var e = sp(t); return void 0 === e.directives && (e.directives = $r(e.nodeIndex, e.lView, !1)), null === e.directives ? [] : Object(i.h)(e.directives) } function sp(t, e) { void 0 === e && (e = !0); var n = qr(t); if (!n && e) throw new Error(ngDevMode ? "Unable to find context associated with " + ai(t) : "Invalid ng target"); return n } function cp(t) { return qr(t).native } function lp(t) { dp(t); var e = sp(t, !1); if (null === e) return []; var n = e.lView , i = n[1] , r = n[7] , o = i.cleanup , a = []; if (o && r) for (var s = 0; s < o.length; ) { var c = o[s++] , l = o[s++]; if ("string" == typeof c) { var u = c , d = Be(n[l]) , p = r[o[s++]] , h = o[s++] , f = "boolean" == typeof h || h >= 0 ? "dom" : "output" , m = "boolean" == typeof h && h; t == d && a.push({ element: t, name: u, callback: p, useCapture: m, type: f }) } } return a.sort(up), a } function up(t, e) { return t.name == e.name ? 0 : t.name < e.name ? -1 : 1 } function dp(t) { if ("undefined" != typeof Element && !(t instanceof Element)) throw new Error("Expecting instance of DOM Element") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function pp(t) { Jl(t), rp(t).forEach((function(t) { return Zl(t) } )) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var hp = !1; function fp() { hp || (hp = !0, mp("getComponent", ep), mp("getContext", np), mp("getListeners", lp), mp("getOwningComponent", ip), mp("getHostElement", cp), mp("getInjector", op), mp("getRootComponents", rp), mp("getDirectives", ap), mp("applyChanges", pp)) } function mp(t, e) { if ("undefined" == typeof COMPILED || !COMPILED) { var n = J; if (ngDevMode && Bt(e, "function not defined"), n) { var i = n.ng; i || (i = n.ng = {}), i[t] = e } } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function gp(t, e) { void 0 === e && (e = {}), ngDevMode && fp(), ngDevMode && Oe(t); var n = e.rendererFactory || Ue , i = e.sanitizer || null , r = me(t); r.type != t && (r.type = t); var o, a = r.selectors[0][0], s = Ca(n.createRenderer(null, null), e.host || a, r.encapsulation), c = r.onPush ? 576 : 528, l = bp(e.scheduler, e.playerHandler), u = n.createRenderer(s, r), d = Ma(0, -1, null, 1, 0, null, null, null, null, null), p = ha(null, d, l, c, null, null, n, u, void 0, e.injector || null); An(p, null); try { n.begin && n.begin(), o = yp(vp(s, r, p, n, u, i), r, p, l, e.hostFeatures || null), ma(d, p, null), ga(d, p, null, null) } finally { In(), n.end && n.end() } return o } function vp(t, e, n, i, r, o) { var a = n[1]; ngDevMode && Ht(n, 20), n[20] = t; var s = fa(a, null, 0, 3, null, null) , c = s.mergedAttrs = e.hostAttrs; null !== c && (vl(s, c, !0), null !== t && (Zn(r, t, c), null !== s.classes && Ls(r, t, s.classes), null !== s.styles && Rs(r, t, s.styles))); var l = i.createRenderer(t, e) , u = ha(n, xa(e), null, e.onPush ? 64 : 16, n[20], s, i, l, o); return a.firstCreatePass && (bi(mi(s, n), a, e.type), Va(a, s), Ua(s, n.length, 1)), Za(n, u), n[20] = u } function yp(t, e, n, i, r) { var o = n[1] , a = function(t, e, n) { var i = ln(); t.firstCreatePass && (n.providersResolver && n.providersResolver(n), ja(t, i, 1), Ba(t, e, n)); var r = Ci(e, t, e.length - 1, i); Kr(r, e); var o = Ge(i, e); return o && Kr(o, e), r }(o, n, e); i.components.push(a), t[8] = a, r && r.forEach((function(t) { return t(a, e) } )), e.contentQueries && e.contentQueries(1, a, n.length - 1); var s = ln(); if (o.firstCreatePass && (null !== e.hostBindings || null !== e.hostAttrs)) { Rn(s.index - 20); var c = n[1]; Ra(c, e), La(c, n, e.hostVars), Na(e, a) } return a } function bp(t, e) { return { components: [], scheduler: t || si, clean: is, playerHandler: e || null, flags: 0 } } function wp(t, e) { var n = Ke(t)[1] , i = n.data.length - 1; Un(n, { directiveStart: i, directiveEnd: i + 1 }) } function Sp(t) { return yo(t).clean } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function xp(t) { return Object.getPrototypeOf(t.prototype).constructor } function Mp(t) { for (var e = xp(t.type), n = !0, i = [t]; e; ) { var r = void 0; if (Ce(t)) r = e.ɵcmp || e.ɵdir; else { if (e.ɵcmp) throw new Error("Directives cannot inherit Components"); r = e.ɵdir } if (r) { if (n) { i.push(r); var o = t; o.inputs = Ep(t.inputs), o.declaredInputs = Ep(t.declaredInputs), o.outputs = Ep(t.outputs); var a = r.hostBindings; a && Tp(t, a); var s = r.viewQuery , c = r.contentQueries; if (s && Cp(t, s), c && Ap(t, c), T(t.inputs, r.inputs), T(t.declaredInputs, r.declaredInputs), T(t.outputs, r.outputs), Ce(r) && r.data.animation) { var l = t.data; l.animation = (l.animation || []).concat(r.data.animation) } o.afterContentChecked = o.afterContentChecked || r.afterContentChecked, o.afterContentInit = t.afterContentInit || r.afterContentInit, o.afterViewChecked = t.afterViewChecked || r.afterViewChecked, o.afterViewInit = t.afterViewInit || r.afterViewInit, o.doCheck = t.doCheck || r.doCheck, o.onDestroy = t.onDestroy || r.onDestroy, o.onInit = t.onInit || r.onInit } var u = r.features; if (u) for (var d = 0; d < u.length; d++) { var p = u[d]; p && p.ngInherit && p(t), p === Mp && (n = !1) } } e = Object.getPrototypeOf(e) } !function(t) { for (var e = 0, n = null, i = t.length - 1; i >= 0; i--) { var r = t[i]; r.hostVars = e += r.hostVars, r.hostAttrs = $n(r.hostAttrs, n = $n(n, r.hostAttrs)) } }(i) } function Ep(t) { return t === ne ? {} : t === ie ? [] : t } function Cp(t, e) { var n = t.viewQuery; t.viewQuery = n ? function(t, i) { e(t, i), n(t, i) } : e } function Ap(t, e) { var n = t.contentQueries; t.contentQueries = n ? function(t, i, r) { e(t, i, r), n(t, i, r) } : e } function Tp(t, e) { var n = t.hostBindings; t.hostBindings = n ? function(t, i) { e(t, i), n(t, i) } : e } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Op = ["providersResolver"] , _p = ["template", "decls", "consts", "vars", "onPush", "ngContentSelectors", "styles", "encapsulation", "schemas"]; function Pp(t) { var e, n, r, o, a = xp(t.type), s = void 0; s = Ce(t) ? a.ɵcmp : a.ɵdir; var c = t; try { for (var l = Object(i.j)(Op), u = l.next(); !u.done; u = l.next()) { c[h = u.value] = s[h] } } catch (t) { e = { error: t } } finally { try { u && !u.done && (n = l.return) && n.call(l) } finally { if (e) throw e.error } } if (Ce(s)) try { for (var d = Object(i.j)(_p), p = d.next(); !p.done; p = d.next()) { var h; c[h = p.value] = s[h] } } catch (t) { r = { error: t } } finally { try { p && !p.done && (o = d.return) && o.call(d) } finally { if (r) throw r.error } } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ip = function() { function t(t, e, n) { this.previousValue = t, this.currentValue = e, this.firstChange = n } return t.prototype.isFirstChange = function() { return this.firstChange } , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kp(t) { t.type.prototype.ngOnChanges && (t.setInput = Dp, t.onChanges = function() { var t = Rp(this) , e = t && t.current; if (e) { var n = t.previous; if (n === ne) t.previous = e; else for (var i in e) n[i] = e[i]; t.current = null, this.ngOnChanges(e) } } ) } function Dp(t, e, n, i) { var r = Rp(t) || function(t, e) { return t.__ngSimpleChanges__ = e }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (t, { previous: ne, current: null }) , o = r.current || (r.current = {}) , a = r.previous , s = this.declaredInputs[n] , c = a[s]; o[s] = new Ip(c && c.currentValue,e,a === ne), t[i] = e } kp.ngInherit = !0; function Rp(t) { return t.__ngSimpleChanges__ || null } function Lp(t, e, n, i, r) { if (t = G(t), Array.isArray(t)) for (var o = 0; o < t.length; o++) Lp(t[o], e, n, i, r); else { var a = sn() , s = an() , c = Tc(t) ? t : G(t.provide) , l = Ec(t) , u = ln() , d = 65535 & u.providerIndexes , p = u.directiveStart , h = u.providerIndexes >> 16; if (Tc(t) || !t.multi) { var f = new qn(l,r,eu) , m = Vp(c, e, r ? d : d + h, p); -1 === m ? (bi(mi(u, s), a, c), Np(a, t, e.length), e.push(c), u.directiveStart++, u.directiveEnd++, r && (u.providerIndexes += 65536), n.push(f), s.push(f)) : (n[m] = f, s[m] = f) } else { var g = Vp(c, e, d + h, p) , v = Vp(c, e, d, d + h) , y = g >= 0 && n[g] , b = v >= 0 && n[v]; if (r && !b || !r && !y) { bi(mi(u, s), a, c); f = function(t, e, n, i, r) { var o = new qn(t,n,eu); return o.multi = [], o.index = e, o.componentProviders = 0, jp(o, r, i && !n), o }(r ? Up : Fp, n.length, r, i, l); !r && b && (n[v].providerFactory = f), Np(a, t, e.length, 0), e.push(c), u.directiveStart++, u.directiveEnd++, r && (u.providerIndexes += 65536), n.push(f), s.push(f) } else { Np(a, t, g > -1 ? g : v, jp(n[r ? v : g], l, !r && i)) } !r && i && b && n[v].componentProviders++ } } } function Np(t, e, n, i) { var r = Tc(e); if (r || e.useClass) { var o = (e.useClass || e).prototype.ngOnDestroy; if (o) { var a = t.destroyHooks || (t.destroyHooks = []); if (!r && e.multi) { ngDevMode && Bt(i, "indexInFactory when registering multi factory destroy hook"); var s = a.indexOf(n); -1 === s ? a.push(n, [i, o]) : a[s + 1].push(i, o) } else a.push(n, o) } } } function jp(t, e, n) { return n && t.componentProviders++, t.multi.push(e) - 1 } function Vp(t, e, n, i) { for (var r = n; r < i; r++) if (e[r] === t) return r; return -1 } function Fp(t, e, n, i) { return Bp(this.multi, []) } function Up(t, e, n, i) { var r, o = this.multi; if (this.providerFactory) { var a = this.providerFactory.componentProviders , s = Ci(n, n[1], this.providerFactory.index, i); Bp(o, r = s.slice(0, a)); for (var c = a; c < s.length; c++) r.push(s[c]) } else Bp(o, r = []); return r } function Bp(t, e) { for (var n = 0; n < t.length; n++) { var i = t[n]; e.push(i()) } return e } function zp(t, e) { return void 0 === e && (e = []), function(n) { n.providersResolver = function(n, i) { return function(t, e, n) { var i = sn(); if (i.firstCreatePass) { var r = Ce(t); Lp(n, i.data, i.blueprint, r, !0), Lp(e, i.data, i.blueprint, r, !1) } }(n, i ? i(t) : t, e) } } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Gp = function() {} , Hp = function() {}; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Wp(t) { var e = Error("No component factory found for " + F(t) + ". Did you add it to @NgModule.entryComponents?"); return e[qp] = t, e } var qp = "ngComponent"; var Xp = function() { function t() {} return t.prototype.resolveComponentFactory = function(t) { throw Wp(t) } , t }() , Yp = function() { function t() {} return t.NULL = new Xp, t }() , Kp = function() { function t(t, e, n) { this._parent = e, this._ngModule = n, this._factories = new Map; for (var i = 0; i < t.length; i++) { var r = t[i]; this._factories.set(r.componentType, r) } } return t.prototype.resolveComponentFactory = function(t) { var e = this._factories.get(t); if (!e && this._parent && (e = this._parent.resolveComponentFactory(t)), !e) throw Wp(t); return new Zp(e,this._ngModule) } , t }() , Zp = function(t) { function e(e, n) { var i = t.call(this) || this; return i.factory = e, i.ngModule = n, i.selector = e.selector, i.componentType = e.componentType, i.ngContentSelectors = e.ngContentSelectors, i.inputs = e.inputs, i.outputs = e.outputs, i } return Object(i.c)(e, t), e.prototype.create = function(t, e, n, i) { return this.factory.create(t, e, n, i || this.ngModule) } , e }(Hp); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Jp, Qp = function() { function t(t) { this.nativeElement = t } return t.__NG_ELEMENT_ID__ = function() { return th(t) } , t }(), $p = function(t) { return Bs(t, ln(), an()) }, th = $p, eh = (new ct("Renderer2Interceptor"), function() {} ); !function(t) { t[t.Important = 1] = "Important", t[t.DashCase = 2] = "DashCase" }(Jp || (Jp = {})); var nh = function() { function t() {} return t.__NG_ELEMENT_ID__ = function() { return rh() } , t }() , ih = function() { var t = an() , e = Xe(ln().index, t); return function(t) { var e = t[11]; if (Fe(e)) return e; throw new Error("Cannot inject Renderer2 when the application uses Renderer3!") }(we(e) ? e : t) } , rh = ih , oh = function() { function t() {} return t.ɵprov = O({ token: t, providedIn: "root", factory: function() { return null } }), t }() , ah = function(t) { this.full = t, this.major = t.split(".")[0], this.minor = t.split(".")[1], this.patch = t.split(".").slice(2).join(".") } , sh = new ah("9.1.9") , ch = function() { function t() {} return t.prototype.supports = function(t) { return Ml(t) } , t.prototype.create = function(t) { return new uh(t) } , t }() , lh = function(t, e) { return e } , uh = function() { function t(t) { this.length = 0, this._linkedRecords = null, this._unlinkedRecords = null, this._previousItHead = null, this._itHead = null, this._itTail = null, this._additionsHead = null, this._additionsTail = null, this._movesHead = null, this._movesTail = null, this._removalsHead = null, this._removalsTail = null, this._identityChangesHead = null, this._identityChangesTail = null, this._trackByFn = t || lh } return t.prototype.forEachItem = function(t) { var e; for (e = this._itHead; null !== e; e = e._next) t(e) } , t.prototype.forEachOperation = function(t) { for (var e = this._itHead, n = this._removalsHead, i = 0, r = null; e || n; ) { var o = !n || e && e.currentIndex < fh(n, i, r) ? e : n , a = fh(o, i, r) , s = o.currentIndex; if (o === n) i--, n = n._nextRemoved; else if (e = e._next, null == o.previousIndex) i++; else { r || (r = []); var c = a - i , l = s - i; if (c != l) { for (var u = 0; u < c; u++) { var d = u < r.length ? r[u] : r[u] = 0 , p = d + u; l <= p && p < c && (r[u] = d + 1) } r[o.previousIndex] = l - c } } a !== s && t(o, a, s) } } , t.prototype.forEachPreviousItem = function(t) { var e; for (e = this._previousItHead; null !== e; e = e._nextPrevious) t(e) } , t.prototype.forEachAddedItem = function(t) { var e; for (e = this._additionsHead; null !== e; e = e._nextAdded) t(e) } , t.prototype.forEachMovedItem = function(t) { var e; for (e = this._movesHead; null !== e; e = e._nextMoved) t(e) } , t.prototype.forEachRemovedItem = function(t) { var e; for (e = this._removalsHead; null !== e; e = e._nextRemoved) t(e) } , t.prototype.forEachIdentityChange = function(t) { var e; for (e = this._identityChangesHead; null !== e; e = e._nextIdentityChange) t(e) } , t.prototype.diff = function(t) { if (null == t && (t = []), !Ml(t)) throw new Error("Error trying to diff '" + F(t) + "'. Only arrays and iterables are allowed"); return this.check(t) ? this : null } , t.prototype.onDestroy = function() {} , t.prototype.check = function(t) { var e = this; this._reset(); var n, i, r, o = this._itHead, a = !1; if (Array.isArray(t)) { this.length = t.length; for (var s = 0; s < this.length; s++) i = t[s], r = this._trackByFn(s, i), null !== o && wl(o.trackById, r) ? (a && (o = this._verifyReinsertion(o, i, r, s)), wl(o.item, i) || this._addIdentityChange(o, i)) : (o = this._mismatch(o, i, r, s), a = !0), o = o._next } else n = 0, function(t, e) { if (Array.isArray(t)) for (var n = 0; n < t.length; n++) e(t[n]); else for (var i = t[bl()](), r = void 0; !(r = i.next()).done; ) e(r.value) }(t, (function(t) { r = e._trackByFn(n, t), null !== o && wl(o.trackById, r) ? (a && (o = e._verifyReinsertion(o, t, r, n)), wl(o.item, t) || e._addIdentityChange(o, t)) : (o = e._mismatch(o, t, r, n), a = !0), o = o._next, n++ } )), this.length = n; return this._truncate(o), this.collection = t, this.isDirty } , Object.defineProperty(t.prototype, "isDirty", { get: function() { return null !== this._additionsHead || null !== this._movesHead || null !== this._removalsHead || null !== this._identityChangesHead }, enumerable: !0, configurable: !0 }), t.prototype._reset = function() { if (this.isDirty) { var t = void 0 , e = void 0; for (t = this._previousItHead = this._itHead; null !== t; t = t._next) t._nextPrevious = t._next; for (t = this._additionsHead; null !== t; t = t._nextAdded) t.previousIndex = t.currentIndex; for (this._additionsHead = this._additionsTail = null, t = this._movesHead; null !== t; t = e) t.previousIndex = t.currentIndex, e = t._nextMoved; this._movesHead = this._movesTail = null, this._removalsHead = this._removalsTail = null, this._identityChangesHead = this._identityChangesTail = null } } , t.prototype._mismatch = function(t, e, n, i) { var r; return null === t ? r = this._itTail : (r = t._prev, this._remove(t)), null !== (t = null === this._linkedRecords ? null : this._linkedRecords.get(n, i)) ? (wl(t.item, e) || this._addIdentityChange(t, e), this._moveAfter(t, r, i)) : null !== (t = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(n, null)) ? (wl(t.item, e) || this._addIdentityChange(t, e), this._reinsertAfter(t, r, i)) : t = this._addAfter(new dh(e,n), r, i), t } , t.prototype._verifyReinsertion = function(t, e, n, i) { var r = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(n, null); return null !== r ? t = this._reinsertAfter(r, t._prev, i) : t.currentIndex != i && (t.currentIndex = i, this._addToMoves(t, i)), t } , t.prototype._truncate = function(t) { for (; null !== t; ) { var e = t._next; this._addToRemovals(this._unlink(t)), t = e } null !== this._unlinkedRecords && this._unlinkedRecords.clear(), null !== this._additionsTail && (this._additionsTail._nextAdded = null), null !== this._movesTail && (this._movesTail._nextMoved = null), null !== this._itTail && (this._itTail._next = null), null !== this._removalsTail && (this._removalsTail._nextRemoved = null), null !== this._identityChangesTail && (this._identityChangesTail._nextIdentityChange = null) } , t.prototype._reinsertAfter = function(t, e, n) { null !== this._unlinkedRecords && this._unlinkedRecords.remove(t); var i = t._prevRemoved , r = t._nextRemoved; return null === i ? this._removalsHead = r : i._nextRemoved = r, null === r ? this._removalsTail = i : r._prevRemoved = i, this._insertAfter(t, e, n), this._addToMoves(t, n), t } , t.prototype._moveAfter = function(t, e, n) { return this._unlink(t), this._insertAfter(t, e, n), this._addToMoves(t, n), t } , t.prototype._addAfter = function(t, e, n) { return this._insertAfter(t, e, n), null === this._additionsTail ? this._additionsTail = this._additionsHead = t : this._additionsTail = this._additionsTail._nextAdded = t, t } , t.prototype._insertAfter = function(t, e, n) { var i = null === e ? this._itHead : e._next; return t._next = i, t._prev = e, null === i ? this._itTail = t : i._prev = t, null === e ? this._itHead = t : e._next = t, null === this._linkedRecords && (this._linkedRecords = new hh), this._linkedRecords.put(t), t.currentIndex = n, t } , t.prototype._remove = function(t) { return this._addToRemovals(this._unlink(t)) } , t.prototype._unlink = function(t) { null !== this._linkedRecords && this._linkedRecords.remove(t); var e = t._prev , n = t._next; return null === e ? this._itHead = n : e._next = n, null === n ? this._itTail = e : n._prev = e, t } , t.prototype._addToMoves = function(t, e) { return t.previousIndex === e || (null === this._movesTail ? this._movesTail = this._movesHead = t : this._movesTail = this._movesTail._nextMoved = t), t } , t.prototype._addToRemovals = function(t) { return null === this._unlinkedRecords && (this._unlinkedRecords = new hh), this._unlinkedRecords.put(t), t.currentIndex = null, t._nextRemoved = null, null === this._removalsTail ? (this._removalsTail = this._removalsHead = t, t._prevRemoved = null) : (t._prevRemoved = this._removalsTail, this._removalsTail = this._removalsTail._nextRemoved = t), t } , t.prototype._addIdentityChange = function(t, e) { return t.item = e, null === this._identityChangesTail ? this._identityChangesTail = this._identityChangesHead = t : this._identityChangesTail = this._identityChangesTail._nextIdentityChange = t, t } , t }() , dh = function(t, e) { this.item = t, this.trackById = e, this.currentIndex = null, this.previousIndex = null, this._nextPrevious = null, this._prev = null, this._next = null, this._prevDup = null, this._nextDup = null, this._prevRemoved = null, this._nextRemoved = null, this._nextAdded = null, this._nextMoved = null, this._nextIdentityChange = null } , ph = function() { function t() { this._head = null, this._tail = null } return t.prototype.add = function(t) { null === this._head ? (this._head = this._tail = t, t._nextDup = null, t._prevDup = null) : (this._tail._nextDup = t, t._prevDup = this._tail, t._nextDup = null, this._tail = t) } , t.prototype.get = function(t, e) { var n; for (n = this._head; null !== n; n = n._nextDup) if ((null === e || e <= n.currentIndex) && wl(n.trackById, t)) return n; return null } , t.prototype.remove = function(t) { var e = t._prevDup , n = t._nextDup; return null === e ? this._head = n : e._nextDup = n, null === n ? this._tail = e : n._prevDup = e, null === this._head } , t }() , hh = function() { function t() { this.map = new Map } return t.prototype.put = function(t) { var e = t.trackById , n = this.map.get(e); n || (n = new ph, this.map.set(e, n)), n.add(t) } , t.prototype.get = function(t, e) { var n = t , i = this.map.get(n); return i ? i.get(t, e) : null } , t.prototype.remove = function(t) { var e = t.trackById; return this.map.get(e).remove(t) && this.map.delete(e), t } , Object.defineProperty(t.prototype, "isEmpty", { get: function() { return 0 === this.map.size }, enumerable: !0, configurable: !0 }), t.prototype.clear = function() { this.map.clear() } , t }(); function fh(t, e, n) { var i = t.previousIndex; if (null === i) return i; var r = 0; return n && i < n.length && (r = n[i]), i + e + r } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var mh = function() { function t() {} return t.prototype.supports = function(t) { return t instanceof Map || El(t) } , t.prototype.create = function() { return new gh } , t }() , gh = function() { function t() { this._records = new Map, this._mapHead = null, this._appendAfter = null, this._previousMapHead = null, this._changesHead = null, this._changesTail = null, this._additionsHead = null, this._additionsTail = null, this._removalsHead = null, this._removalsTail = null } return Object.defineProperty(t.prototype, "isDirty", { get: function() { return null !== this._additionsHead || null !== this._changesHead || null !== this._removalsHead }, enumerable: !0, configurable: !0 }), t.prototype.forEachItem = function(t) { var e; for (e = this._mapHead; null !== e; e = e._next) t(e) } , t.prototype.forEachPreviousItem = function(t) { var e; for (e = this._previousMapHead; null !== e; e = e._nextPrevious) t(e) } , t.prototype.forEachChangedItem = function(t) { var e; for (e = this._changesHead; null !== e; e = e._nextChanged) t(e) } , t.prototype.forEachAddedItem = function(t) { var e; for (e = this._additionsHead; null !== e; e = e._nextAdded) t(e) } , t.prototype.forEachRemovedItem = function(t) { var e; for (e = this._removalsHead; null !== e; e = e._nextRemoved) t(e) } , t.prototype.diff = function(t) { if (t) { if (!(t instanceof Map || El(t))) throw new Error("Error trying to diff '" + F(t) + "'. Only maps and objects are allowed") } else t = new Map; return this.check(t) ? this : null } , t.prototype.onDestroy = function() {} , t.prototype.check = function(t) { var e = this; this._reset(); var n = this._mapHead; if (this._appendAfter = null, this._forEach(t, (function(t, i) { if (n && n.key === i) e._maybeAddToChanges(n, t), e._appendAfter = n, n = n._next; else { var r = e._getOrCreateRecordForKey(i, t); n = e._insertBeforeOrAppend(n, r) } } )), n) { n._prev && (n._prev._next = null), this._removalsHead = n; for (var i = n; null !== i; i = i._nextRemoved) i === this._mapHead && (this._mapHead = null), this._records.delete(i.key), i._nextRemoved = i._next, i.previousValue = i.currentValue, i.currentValue = null, i._prev = null, i._next = null } return this._changesTail && (this._changesTail._nextChanged = null), this._additionsTail && (this._additionsTail._nextAdded = null), this.isDirty } , t.prototype._insertBeforeOrAppend = function(t, e) { if (t) { var n = t._prev; return e._next = t, e._prev = n, t._prev = e, n && (n._next = e), t === this._mapHead && (this._mapHead = e), this._appendAfter = t, t } return this._appendAfter ? (this._appendAfter._next = e, e._prev = this._appendAfter) : this._mapHead = e, this._appendAfter = e, null } , t.prototype._getOrCreateRecordForKey = function(t, e) { if (this._records.has(t)) { var n = this._records.get(t); this._maybeAddToChanges(n, e); var i = n._prev , r = n._next; return i && (i._next = r), r && (r._prev = i), n._next = null, n._prev = null, n } var o = new vh(t); return this._records.set(t, o), o.currentValue = e, this._addToAdditions(o), o } , t.prototype._reset = function() { if (this.isDirty) { var t = void 0; for (this._previousMapHead = this._mapHead, t = this._previousMapHead; null !== t; t = t._next) t._nextPrevious = t._next; for (t = this._changesHead; null !== t; t = t._nextChanged) t.previousValue = t.currentValue; for (t = this._additionsHead; null != t; t = t._nextAdded) t.previousValue = t.currentValue; this._changesHead = this._changesTail = null, this._additionsHead = this._additionsTail = null, this._removalsHead = null } } , t.prototype._maybeAddToChanges = function(t, e) { wl(e, t.currentValue) || (t.previousValue = t.currentValue, t.currentValue = e, this._addToChanges(t)) } , t.prototype._addToAdditions = function(t) { null === this._additionsHead ? this._additionsHead = this._additionsTail = t : (this._additionsTail._nextAdded = t, this._additionsTail = t) } , t.prototype._addToChanges = function(t) { null === this._changesHead ? this._changesHead = this._changesTail = t : (this._changesTail._nextChanged = t, this._changesTail = t) } , t.prototype._forEach = function(t, e) { t instanceof Map ? t.forEach(e) : Object.keys(t).forEach((function(n) { return e(t[n], n) } )) } , t }() , vh = function(t) { this.key = t, this.previousValue = null, this.currentValue = null, this._nextPrevious = null, this._next = null, this._prev = null, this._nextAdded = null, this._nextRemoved = null, this._nextChanged = null } , yh = function() { function t(t) { this.factories = t } return t.create = function(e, n) { if (null != n) { var i = n.factories.slice(); e = e.concat(i) } return new t(e) } , t.extend = function(e) { return { provide: t, useFactory: function(n) { if (!n) throw new Error("Cannot extend IterableDiffers without a parent injector"); return t.create(e, n) }, deps: [[t, new x, new w]] } } , t.prototype.find = function(t) { var e, n = this.factories.find((function(e) { return e.supports(t) } )); if (null != n) return n; throw new Error("Cannot find a differ supporting object '" + t + "' of type '" + ((e = t).name || typeof e) + "'") } , t.ɵprov = O({ token: t, providedIn: "root", factory: function() { return new t([new ch]) } }), t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var bh = function() { function t(t) { this.factories = t } return t.create = function(e, n) { if (n) { var i = n.factories.slice(); e = e.concat(i) } return new t(e) } , t.extend = function(e) { return { provide: t, useFactory: function(n) { if (!n) throw new Error("Cannot extend KeyValueDiffers without a parent injector"); return t.create(e, n) }, deps: [[t, new x, new w]] } } , t.prototype.find = function(t) { var e = this.factories.find((function(e) { return e.supports(t) } )); if (e) return e; throw new Error("Cannot find a differ supporting object '" + t + "'") } , t.ɵprov = O({ token: t, providedIn: "root", factory: function() { return new t([new mh]) } }), t }() , wh = [new mh] , Sh = [new ch] , xh = new yh(Sh) , Mh = new bh(wh) , Eh = function() { function t() {} return t.__NG_ELEMENT_ID__ = function() { return Ah(t, Qp) } , t }() , Ch = function(t, e) { return zs(t, e, ln(), an()) } , Ah = Ch , Th = function() { function t() {} return t.__NG_ELEMENT_ID__ = function() { return _h(t, Qp) } , t }() , Oh = function(t, e) { return Gs(t, e, ln(), an()) } , _h = Oh; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ph(t, e, n, i) { var r = "ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '" + e + "'. Current value: '" + n + "'."; return i && (r += " It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"), function(t, e) { var n = new Error(t); return Ih(n, e), n }(r, t) } function Ih(t, e) { t.ngDebugContext = e, t.ngErrorLogger = e.logError.bind(e) } function kh(t) { return new Error("ViewDestroyedError: Attempt to use a destroyed view: " + t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Dh(t, e, n) { var i = t.state , r = 1792 & i; return r === e ? (t.state = -1793 & i | n, t.initIndex = -1, !0) : r === n } function Rh(t, e, n) { return (1792 & t.state) === e && t.initIndex <= n && (t.initIndex = n + 1, !0) } function Lh(t, e) { return t.nodes[e] } function Nh(t, e) { return t.nodes[e] } function jh(t, e) { return t.nodes[e] } function Vh(t, e) { return t.nodes[e] } function Fh(t, e) { return t.nodes[e] } var Uh = function() {} , Bh = { setCurrentNode: void 0, createRootView: void 0, createEmbeddedView: void 0, createComponentView: void 0, createNgModuleRef: void 0, overrideProvider: void 0, overrideComponentView: void 0, clearOverrides: void 0, checkAndUpdateView: void 0, checkNoChangesView: void 0, destroyView: void 0, resolveDep: void 0, createDebugContext: void 0, handleEvent: void 0, updateDirectives: void 0, updateRenderer: void 0, dirtyParentQueries: void 0 } , zh = function() {} , Gh = new Map; function Hh(t) { var e = Gh.get(t); return e || (e = F(t) + "_" + Gh.size, Gh.set(t, e)), e } function Wh(t, e, n, i) { if (xl.isWrapped(i)) { i = xl.unwrap(i); var r = t.def.nodes[e].bindingIndex + n , o = xl.unwrap(t.oldValues[r]); t.oldValues[r] = new xl(o) } return i } function qh(t) { return { id: "$$undefined", styles: t.styles, encapsulation: t.encapsulation, data: t.data } } var Xh = 0; function Yh(t, e, n, i) { var r = t.oldValues; return !(!(2 & t.state) && wl(r[e.bindingIndex + n], i)) } function Kh(t, e, n, i) { return !!Yh(t, e, n, i) && (t.oldValues[e.bindingIndex + n] = i, !0) } function Zh(t, e, n, i) { var r = t.oldValues[e.bindingIndex + n]; if (1 & t.state || !Sl(r, i)) { var o = e.bindings[n].name; throw Ph(Bh.createDebugContext(t, e.nodeIndex), o + ": " + r, o + ": " + i, 0 != (1 & t.state)) } } function Jh(t) { for (var e = t; e; ) 2 & e.def.flags && (e.state |= 8), e = e.viewContainerParent || e.parent } function Qh(t, e) { for (var n = t; n && n !== e; ) n.state |= 64, n = n.viewContainerParent || n.parent } function $h(t, e, n, i) { try { return Jh(33554432 & t.def.nodes[e].flags ? Nh(t, e).componentView : t), Bh.handleEvent(t, e, n, i) } catch (e) { t.root.errorHandler.handleError(e) } } function tf(t) { return t.parent ? Nh(t.parent, t.parentNodeDef.nodeIndex) : null } function ef(t) { return t.parent ? t.parentNodeDef.parent : null } function nf(t, e) { switch (201347067 & e.flags) { case 1: return Nh(t, e.nodeIndex).renderElement; case 2: return Lh(t, e.nodeIndex).renderText } } function rf(t, e) { return t ? t + ":" + e : e } function of(t) { return !!t.parent && !!(32768 & t.parentNodeDef.flags) } function af(t) { return !(!t.parent || 32768 & t.parentNodeDef.flags) } function sf(t) { return 1 << t % 32 } function cf(t) { var e = {} , n = 0 , r = {}; return t && t.forEach((function(t) { var o = Object(i.f)(t, 2) , a = o[0] , s = o[1]; "number" == typeof a ? (e[a] = s, n |= sf(a)) : r[a] = s } )), { matchedQueries: e, references: r, matchedQueryIds: n } } function lf(t, e) { return t.map((function(t) { var n, r, o; return Array.isArray(t) ? (o = (n = Object(i.f)(t, 2))[0], r = n[1]) : (o = 0, r = t), r && ("function" == typeof r || "object" == typeof r) && e && Object.defineProperty(r, "__source", { value: e, configurable: !0 }), { flags: o, token: r, tokenKey: Hh(r) } } )) } function uf(t, e, n) { var i = n.renderParent; return i ? 0 == (1 & i.flags) || 0 == (33554432 & i.flags) || i.element.componentRendererType && i.element.componentRendererType.encapsulation === Ot.Native ? Nh(t, n.renderParent.nodeIndex).renderElement : void 0 : e } var df = new WeakMap; function pf(t) { var e = df.get(t); return e || ((e = t((function() { return zh } ))).factory = t, df.set(t, e)), e } function hf(t, e, n, i, r) { 3 === e && (n = t.renderer.parentNode(nf(t, t.def.lastRenderRootNode))), ff(t, e, 0, t.def.nodes.length - 1, n, i, r) } function ff(t, e, n, i, r, o, a) { for (var s = n; s <= i; s++) { var c = t.def.nodes[s]; 11 & c.flags && gf(t, c, e, r, o, a), s += c.childCount } } function mf(t, e, n, i, r, o) { for (var a = t; a && !of(a); ) a = a.parent; for (var s = a.parent, c = ef(a), l = c.nodeIndex + 1, u = c.nodeIndex + c.childCount, d = l; d <= u; d++) { var p = s.def.nodes[d]; p.ngContentIndex === e && gf(s, p, n, i, r, o), d += p.childCount } if (!s.parent) { var h = t.root.projectableNodes[e]; if (h) for (d = 0; d < h.length; d++) vf(t, h[d], n, i, r, o) } } function gf(t, e, n, i, r, o) { if (8 & e.flags) mf(t, e.ngContent.index, n, i, r, o); else { var a = nf(t, e); if (3 === n && 33554432 & e.flags && 48 & e.bindingFlags) { if (16 & e.bindingFlags && vf(t, a, n, i, r, o), 32 & e.bindingFlags) vf(Nh(t, e.nodeIndex).componentView, a, n, i, r, o) } else vf(t, a, n, i, r, o); if (16777216 & e.flags) for (var s = Nh(t, e.nodeIndex).viewContainer._embeddedViews, c = 0; c < s.length; c++) hf(s[c], n, i, r, o); 1 & e.flags && !e.element.name && ff(t, n, e.nodeIndex + 1, e.nodeIndex + e.childCount, i, r, o) } } function vf(t, e, n, i, r, o) { var a = t.renderer; switch (n) { case 1: a.appendChild(i, e); break; case 2: a.insertBefore(i, e, r); break; case 3: a.removeChild(i, e); break; case 0: o.push(e) } } var yf = /^:([^:]+):(.+)$/; function bf(t) { if (":" === t[0]) { var e = t.match(yf); return [e[1], e[2]] } return ["", t] } function wf(t) { for (var e = 0, n = 0; n < t.length; n++) e |= t[n].flags; return e } function Sf(t, e) { for (var n = "", i = 0; i < 2 * t; i += 2) n = n + e[i] + Mf(e[i + 1]); return n + e[2 * t] } function xf(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b) { switch (t) { case 1: return e + Mf(n) + i; case 2: return e + Mf(n) + i + Mf(r) + o; case 3: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s; case 4: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l; case 5: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l + Mf(u) + d; case 6: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l + Mf(u) + d + Mf(p) + h; case 7: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l + Mf(u) + d + Mf(p) + h + Mf(f) + m; case 8: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l + Mf(u) + d + Mf(p) + h + Mf(f) + m + Mf(g) + v; case 9: return e + Mf(n) + i + Mf(r) + o + Mf(a) + s + Mf(c) + l + Mf(u) + d + Mf(p) + h + Mf(f) + m + Mf(g) + v + Mf(y) + b; default: throw new Error("Does not support more than 9 expressions") } } function Mf(t) { return null != t ? t.toString() : "" } var Ef = [] , Cf = {} , Af = {} , Tf = Hh(Pc) , Of = Hh(lt) , _f = Hh(_t); function Pf(t, e, n, i) { return n = G(n), { index: -1, deps: lf(i, F(e)), flags: t, token: e, value: n } } function If(t) { for (var e = {}, n = [], i = null, r = 0; r < t.length; r++) { var o = t[r]; o.token === fc && (i = o.value), 1073741824 & o.flags && n.push(o.token), o.index = r, e[Hh(o.token)] = o } return { factory: null, providersByKey: e, providers: t, modules: n, scope: i } } function kf(t, e, n) { void 0 === n && (n = Pc.THROW_IF_NOT_FOUND); var i, r, o = ft(t); try { if (8 & e.flags) return e.token; if (2 & e.flags && (n = null), 1 & e.flags) return t._parent.get(e.token, n); var a = e.tokenKey; switch (a) { case Tf: case Of: case _f: return t } var s = t._def.providersByKey[a] , c = void 0; if (s) { var l = t._providers[s.index]; return void 0 === l && (l = t._providers[s.index] = Df(t, s)), l === Af ? void 0 : l } if ((c = I(e.token)) && (i = t, null != (r = c.providedIn) && ("any" === r || r === i._def.scope || function(t, e) { return t._def.modules.indexOf(e) > -1 }(i, r)))) { var u = t._providers.length; return t._def.providers[u] = t._def.providersByKey[e.tokenKey] = { flags: 5120, value: c.factory, deps: [], index: u, token: e.token }, t._providers[u] = Af, t._providers[u] = Df(t, t._def.providersByKey[e.tokenKey]) } return 4 & e.flags ? n : t._parent.get(e.token, n) } finally { ft(o) } } function Df(t, e) { var n; switch (201347067 & e.flags) { case 512: n = function(t, e, n) { var r = n.length; switch (r) { case 0: return new e; case 1: return new e(kf(t, n[0])); case 2: return new e(kf(t, n[0]),kf(t, n[1])); case 3: return new e(kf(t, n[0]),kf(t, n[1]),kf(t, n[2])); default: for (var o = [], a = 0; a < r; a++) o[a] = kf(t, n[a]); return new (e.bind.apply(e, Object(i.h)([void 0], o))) } }(t, e.value, e.deps); break; case 1024: n = function(t, e, n) { var r = n.length; switch (r) { case 0: return e(); case 1: return e(kf(t, n[0])); case 2: return e(kf(t, n[0]), kf(t, n[1])); case 3: return e(kf(t, n[0]), kf(t, n[1]), kf(t, n[2])); default: for (var o = [], a = 0; a < r; a++) o[a] = kf(t, n[a]); return e.apply(void 0, Object(i.h)(o)) } }(t, e.value, e.deps); break; case 2048: n = kf(t, e.deps[0]); break; case 256: n = e.value } return n === Af || null === n || "object" != typeof n || 131072 & e.flags || "function" != typeof n.ngOnDestroy || (e.flags |= 131072), void 0 === n ? Af : n } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Rf(t, e, n, i) { var r = e.viewContainer._embeddedViews; null == n && (n = r.length), i.viewContainerParent = t, Yt(r, n, i), function(t, e) { var n = tf(e); if (!n || n === t || 16 & e.state) return; e.state |= 16; var i = n.template._projectedViews; i || (i = n.template._projectedViews = []); i.push(e), function(t, e) { if (4 & e.flags) return; t.nodeFlags |= 4, e.flags |= 4; var n = e.parent; for (; n; ) n.childFlags |= 4, n = n.parent }(e.parent.def, e.parentNodeDef) }(e, i), Bh.dirtyParentQueries(i), Nf(e, n > 0 ? r[n - 1] : null, i) } function Lf(t, e) { var n = t.viewContainer._embeddedViews; if ((null == e || e >= n.length) && (e = n.length - 1), e < 0) return null; var i = n[e]; return i.viewContainerParent = null, Kt(n, e), Bh.dirtyParentQueries(i), jf(i), i } function Nf(t, e, n) { var i = e ? nf(e, e.def.lastRenderRootNode) : t.renderElement , r = n.renderer.parentNode(i) , o = n.renderer.nextSibling(i); hf(n, 2, r, o, void 0) } function jf(t) { hf(t, 3, null, null, void 0) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Vf = {}; function Ff(t, e, n, i, r, o) { return new Bf(t,e,n,i,r,o) } function Uf(t) { return t.viewDefFactory } var Bf = function(t) { function e(e, n, i, r, o, a) { var s = t.call(this) || this; return s.selector = e, s.componentType = n, s._inputs = r, s._outputs = o, s.ngContentSelectors = a, s.viewDefFactory = i, s } return Object(i.c)(e, t), Object.defineProperty(e.prototype, "inputs", { get: function() { var t = [] , e = this._inputs; for (var n in e) { var i = e[n]; t.push({ propName: n, templateName: i }) } return t }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outputs", { get: function() { var t = []; for (var e in this._outputs) { var n = this._outputs[e]; t.push({ propName: e, templateName: n }) } return t }, enumerable: !0, configurable: !0 }), e.prototype.create = function(t, e, n, i) { if (!i) throw new Error("ngModule should be provided"); var r = pf(this.viewDefFactory) , o = r.nodes[0].element.componentProvider.nodeIndex , a = Bh.createRootView(t, e || [], n, r, i, Vf) , s = jh(a, o).instance; return n && a.renderer.setAttribute(Nh(a, 0).renderElement, "ng-version", sh.full), new zf(a,new qf(a),s) } , e }(Hp) , zf = function(t) { function e(e, n, i) { var r = t.call(this) || this; return r._view = e, r._viewRef = n, r._component = i, r._elDef = r._view.def.nodes[0], r.hostView = n, r.changeDetectorRef = n, r.instance = i, r } return Object(i.c)(e, t), Object.defineProperty(e.prototype, "location", { get: function() { return new Qp(Nh(this._view, this._elDef.nodeIndex).renderElement) }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "injector", { get: function() { return new Zf(this._view,this._elDef) }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "componentType", { get: function() { return this._component.constructor }, enumerable: !0, configurable: !0 }), e.prototype.destroy = function() { this._viewRef.destroy() } , e.prototype.onDestroy = function(t) { this._viewRef.onDestroy(t) } , e }(Gp); function Gf(t, e, n) { return new Hf(t,e,n) } var Hf = function() { function t(t, e, n) { this._view = t, this._elDef = e, this._data = n, this._embeddedViews = [] } return Object.defineProperty(t.prototype, "element", { get: function() { return new Qp(this._data.renderElement) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "injector", { get: function() { return new Zf(this._view,this._elDef) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "parentInjector", { get: function() { for (var t = this._view, e = this._elDef.parent; !e && t; ) e = ef(t), t = t.parent; return t ? new Zf(t,e) : new Zf(this._view,null) }, enumerable: !0, configurable: !0 }), t.prototype.clear = function() { for (var t = this._embeddedViews.length - 1; t >= 0; t--) { var e = Lf(this._data, t); Bh.destroyView(e) } } , t.prototype.get = function(t) { var e = this._embeddedViews[t]; if (e) { var n = new qf(e); return n.attachToViewContainerRef(this), n } return null } , Object.defineProperty(t.prototype, "length", { get: function() { return this._embeddedViews.length }, enumerable: !0, configurable: !0 }), t.prototype.createEmbeddedView = function(t, e, n) { var i = t.createEmbeddedView(e || {}); return this.insert(i, n), i } , t.prototype.createComponent = function(t, e, n, i, r) { var o = n || this.parentInjector; r || t instanceof Zp || (r = o.get(_t)); var a = t.create(o, i, void 0, r); return this.insert(a.hostView, e), a } , t.prototype.insert = function(t, e) { if (t.destroyed) throw new Error("Cannot insert a destroyed View in a ViewContainer!"); var n = t , i = n._view; return Rf(this._view, this._data, e, i), n.attachToViewContainerRef(this), t } , t.prototype.move = function(t, e) { if (t.destroyed) throw new Error("Cannot move a destroyed View in a ViewContainer!"); var n, i, r, o, a, s = this._embeddedViews.indexOf(t._view); return n = this._data, i = s, r = e, o = n.viewContainer._embeddedViews, a = o[i], Kt(o, i), null == r && (r = o.length), Yt(o, r, a), Bh.dirtyParentQueries(a), jf(a), Nf(n, r > 0 ? o[r - 1] : null, a), t } , t.prototype.indexOf = function(t) { return this._embeddedViews.indexOf(t._view) } , t.prototype.remove = function(t) { var e = Lf(this._data, t); e && Bh.destroyView(e) } , t.prototype.detach = function(t) { var e = Lf(this._data, t); return e ? new qf(e) : null } , t }(); function Wf(t) { return new qf(t) } var qf = function() { function t(t) { this._view = t, this._viewContainerRef = null, this._appRef = null } return Object.defineProperty(t.prototype, "rootNodes", { get: function() { return hf(this._view, 0, void 0, void 0, t = []), t; var t }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return this._view.context }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "destroyed", { get: function() { return 0 != (128 & this._view.state) }, enumerable: !0, configurable: !0 }), t.prototype.markForCheck = function() { Jh(this._view) } , t.prototype.detach = function() { this._view.state &= -5 } , t.prototype.detectChanges = function() { var t = this._view.root.rendererFactory; t.begin && t.begin(); try { Bh.checkAndUpdateView(this._view) } finally { t.end && t.end() } } , t.prototype.checkNoChanges = function() { Bh.checkNoChangesView(this._view) } , t.prototype.reattach = function() { this._view.state |= 4 } , t.prototype.onDestroy = function(t) { this._view.disposables || (this._view.disposables = []), this._view.disposables.push(t) } , t.prototype.destroy = function() { this._appRef ? this._appRef.detachView(this) : this._viewContainerRef && this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)), Bh.destroyView(this._view) } , t.prototype.detachFromAppRef = function() { this._appRef = null, jf(this._view), Bh.dirtyParentQueries(this._view) } , t.prototype.attachToAppRef = function(t) { if (this._viewContainerRef) throw new Error("This view is already attached to a ViewContainer!"); this._appRef = t } , t.prototype.attachToViewContainerRef = function(t) { if (this._appRef) throw new Error("This view is already attached directly to the ApplicationRef!"); this._viewContainerRef = t } , t }(); function Xf(t, e) { return new Yf(t,e) } var Yf = function(t) { function e(e, n) { var i = t.call(this) || this; return i._parentView = e, i._def = n, i } return Object(i.c)(e, t), e.prototype.createEmbeddedView = function(t) { return new qf(Bh.createEmbeddedView(this._parentView, this._def, this._def.element.template, t)) } , Object.defineProperty(e.prototype, "elementRef", { get: function() { return new Qp(Nh(this._parentView, this._def.nodeIndex).renderElement) }, enumerable: !0, configurable: !0 }), e }(Eh); function Kf(t, e) { return new Zf(t,e) } var Zf = function() { function t(t, e) { this.view = t, this.elDef = e } return t.prototype.get = function(t, e) { void 0 === e && (e = Pc.THROW_IF_NOT_FOUND); var n = !!this.elDef && 0 != (33554432 & this.elDef.flags); return Bh.resolveDep(this.view, this.elDef, n, { flags: 0, token: t, tokenKey: Hh(t) }, e) } , t }(); function Jf(t, e) { var n = t.def.nodes[e]; if (1 & n.flags) { var i = Nh(t, n.nodeIndex); return n.element.template ? i.template : i.renderElement } if (2 & n.flags) return Lh(t, n.nodeIndex).renderText; if (20240 & n.flags) return jh(t, n.nodeIndex).instance; throw new Error("Illegal state: read nodeValue for node index " + e) } function Qf(t, e, n, i) { return new $f(t,e,n,i) } var $f = function() { function t(t, e, n, i) { this._moduleType = t, this._parent = e, this._bootstrapComponents = n, this._def = i, this._destroyListeners = [], this._destroyed = !1, this.injector = this, function(t) { for (var e = t._def, n = t._providers = Zt(e.providers.length), i = 0; i < e.providers.length; i++) { var r = e.providers[i]; 4096 & r.flags || void 0 === n[i] && (n[i] = Df(t, r)) } }(this) } return t.prototype.get = function(t, e, n) { void 0 === e && (e = Pc.THROW_IF_NOT_FOUND), void 0 === n && (n = v.Default); var i = 0; return n & v.SkipSelf ? i |= 1 : n & v.Self && (i |= 4), kf(this, { token: t, tokenKey: Hh(t), flags: i }, e) } , Object.defineProperty(t.prototype, "instance", { get: function() { return this.get(this._moduleType) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "componentFactoryResolver", { get: function() { return this.get(Yp) }, enumerable: !0, configurable: !0 }), t.prototype.destroy = function() { if (this._destroyed) throw new Error("The ng module " + F(this.instance.constructor) + " has already been destroyed."); this._destroyed = !0, function(t, e) { for (var n = t._def, i = new Set, r = 0; r < n.providers.length; r++) { if (131072 & n.providers[r].flags) { var o = t._providers[r]; if (o && o !== Af) { var a = o.ngOnDestroy; "function" != typeof a || i.has(o) || (a.apply(o), i.add(o)) } } } }(this), this._destroyListeners.forEach((function(t) { return t() } )) } , t.prototype.onDestroy = function(t) { this._destroyListeners.push(t) } , t }() , tm = Hh(nh) , em = Hh(Qp) , nm = Hh(Th) , im = Hh(Eh) , rm = Hh(Ws) , om = Hh(Pc) , am = Hh(lt); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function sm(t, e, n, r, o, a, s, c) { var l = []; if (s) for (var u in s) { var d = Object(i.f)(s[u], 2) , p = d[0] , h = d[1]; l[p] = { flags: 8, name: u, nonMinifiedName: h, ns: null, securityContext: null, suffix: null } } var f = []; if (c) for (var m in c) f.push({ type: 1, propName: m, target: null, eventName: c[m] }); return um(t, e |= 16384, n, r, o, o, a, l, f) } function cm(t, e, n) { return um(-1, t |= 16, null, 0, e, e, n) } function lm(t, e, n, i, r) { return um(-1, t, e, 0, n, i, r) } function um(t, e, n, i, r, o, a, s, c) { var l = cf(n) , u = l.matchedQueries , d = l.references , p = l.matchedQueryIds; c || (c = []), s || (s = []), o = G(o); var h = lf(a, F(r)); return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: t, flags: e, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: u, matchedQueryIds: p, references: d, ngContentIndex: -1, childCount: i, bindings: s, bindingFlags: wf(s), outputs: c, element: null, provider: { token: r, value: o, deps: h }, text: null, query: null, ngContent: null } } function dm(t, e) { return mm(t, e) } function pm(t, e) { for (var n = t; n.parent && !of(n); ) n = n.parent; return gm(n.parent, ef(n), !0, e.provider.value, e.provider.deps) } function hm(t, e) { var n = (32768 & e.flags) > 0 , i = gm(t, e.parent, n, e.provider.value, e.provider.deps); if (e.outputs.length) for (var r = 0; r < e.outputs.length; r++) { var o = e.outputs[r] , a = i[o.propName]; if (!mu(a)) throw new Error("@Output " + o.propName + " not initialized in '" + i.constructor.name + "'."); var s = a.subscribe(fm(t, e.parent.nodeIndex, o.eventName)); t.disposables[e.outputIndex + r] = s.unsubscribe.bind(s) } return i } function fm(t, e, n) { return function(i) { return $h(t, e, n, i) } } function mm(t, e) { var n = (8192 & e.flags) > 0 , r = e.provider; switch (201347067 & e.flags) { case 512: return gm(t, e.parent, n, r.value, r.deps); case 1024: return function(t, e, n, r, o) { var a = o.length; switch (a) { case 0: return r(); case 1: return r(ym(t, e, n, o[0])); case 2: return r(ym(t, e, n, o[0]), ym(t, e, n, o[1])); case 3: return r(ym(t, e, n, o[0]), ym(t, e, n, o[1]), ym(t, e, n, o[2])); default: for (var s = [], c = 0; c < a; c++) s.push(ym(t, e, n, o[c])); return r.apply(void 0, Object(i.h)(s)) } }(t, e.parent, n, r.value, r.deps); case 2048: return ym(t, e.parent, n, r.deps[0]); case 256: return r.value } } function gm(t, e, n, r, o) { var a = o.length; switch (a) { case 0: return new r; case 1: return new r(ym(t, e, n, o[0])); case 2: return new r(ym(t, e, n, o[0]),ym(t, e, n, o[1])); case 3: return new r(ym(t, e, n, o[0]),ym(t, e, n, o[1]),ym(t, e, n, o[2])); default: for (var s = [], c = 0; c < a; c++) s.push(ym(t, e, n, o[c])); return new (r.bind.apply(r, Object(i.h)([void 0], s))) } } var vm = {}; function ym(t, e, n, i, r) { if (void 0 === r && (r = Pc.THROW_IF_NOT_FOUND), 8 & i.flags) return i.token; var o = t; 2 & i.flags && (r = null); var a = i.tokenKey; a === rm && (n = !(!e || !e.element.componentView)), e && 1 & i.flags && (n = !1, e = e.parent); for (var s = t; s; ) { if (e) switch (a) { case tm: return bm(s, e, n).renderer; case em: return new Qp(Nh(s, e.nodeIndex).renderElement); case nm: return Nh(s, e.nodeIndex).viewContainer; case im: if (e.element.template) return Nh(s, e.nodeIndex).template; break; case rm: return Wf(bm(s, e, n)); case om: case am: return Kf(s, e); default: var c = (n ? e.element.allProviders : e.element.publicProviders)[a]; if (c) { var l = jh(s, c.nodeIndex); return l || (l = { instance: mm(s, c) }, s.nodes[c.nodeIndex] = l), l.instance } } n = of(s), e = ef(s), s = s.parent, 4 & i.flags && (s = null) } var u = o.root.injector.get(i.token, vm); return u !== vm || r === vm ? u : o.root.ngModule.injector.get(i.token, r) } function bm(t, e, n) { var i; if (n) i = Nh(t, e.nodeIndex).componentView; else for (i = t; i.parent && !of(i); ) i = i.parent; return i } function wm(t, e, n, i, r, o) { if (32768 & n.flags) { var a = Nh(t, n.parent.nodeIndex).componentView; 2 & a.def.flags && (a.state |= 8) } var s = n.bindings[i].name; if (e.instance[s] = r, 524288 & n.flags) { o = o || {}; var c = xl.unwrap(t.oldValues[n.bindingIndex + i]); o[n.bindings[i].nonMinifiedName] = new Ip(c,r,0 != (2 & t.state)) } return t.oldValues[n.bindingIndex + i] = r, o } function Sm(t, e) { if (t.def.nodeFlags & e) for (var n = t.def.nodes, i = 0, r = 0; r < n.length; r++) { var o = n[r] , a = o.parent; for (!a && o.flags & e && Mm(t, r, o.flags & e, i++), 0 == (o.childFlags & e) && (r += o.childCount); a && 1 & a.flags && r === a.nodeIndex + a.childCount; ) a.directChildFlags & e && (i = xm(t, a, e, i)), a = a.parent } } function xm(t, e, n, i) { for (var r = e.nodeIndex + 1; r <= e.nodeIndex + e.childCount; r++) { var o = t.def.nodes[r]; o.flags & n && Mm(t, r, o.flags & n, i++), r += o.childCount } return i } function Mm(t, e, n, i) { var r = jh(t, e); if (r) { var o = r.instance; o && (Bh.setCurrentNode(t, e), 1048576 & n && Rh(t, 512, i) && o.ngAfterContentInit(), 2097152 & n && o.ngAfterContentChecked(), 4194304 & n && Rh(t, 768, i) && o.ngAfterViewInit(), 8388608 & n && o.ngAfterViewChecked(), 131072 & n && o.ngOnDestroy()) } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Em = function(t) { function e(e) { var n = t.call(this) || this; return n.ngModule = e, n } return Object(i.c)(e, t), e.prototype.resolveComponentFactory = function(t) { ngDevMode && Oe(t); var e = me(t); return new Tm(e,this.ngModule) } , e }(Yp); function Cm(t) { var e = []; for (var n in t) if (t.hasOwnProperty(n)) { var i = t[n]; e.push({ propName: i, templateName: n }) } return e } var Am = new ct("SCHEDULER_TOKEN",{ providedIn: "root", factory: function() { return si } }); var Tm = function(t) { function e(e, n) { var i = t.call(this) || this; return i.componentDef = e, i.ngModule = n, i.componentType = e.type, i.selector = e.selectors.map(fo).join(","), i.ngContentSelectors = e.ngContentSelectors ? e.ngContentSelectors : [], i.isBoundToModule = !!n, i } return Object(i.c)(e, t), Object.defineProperty(e.prototype, "inputs", { get: function() { return Cm(this.componentDef.inputs) }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outputs", { get: function() { return Cm(this.componentDef.outputs) }, enumerable: !0, configurable: !0 }), e.prototype.create = function(t, e, n, i) { var r, o, a = (i = i || this.ngModule) ? function(t, e) { return { get: function(n, i, r) { var o = t.get(n, vm, r); return o !== vm || i === vm ? o : e.get(n, i, r) } } }(t, i.injector) : t, s = a.get(eh, Ue), c = a.get(oh, null), l = s.createRenderer(null, this.componentDef), u = this.componentDef.selectors[0][0] || "div", d = n ? Ca(l, n, this.componentDef.encapsulation) : pa(u, s.createRenderer(null, this.componentDef), function(t) { var e = t.toLowerCase(); return "svg" === e ? "http://www.w3.org/2000/svg" : "math" === e ? "http://www.w3.org/1998/MathML/" : null }(u)), p = this.componentDef.onPush ? 576 : 528, h = "string" == typeof n && /^#root-ng-internal-isolated-\d+/.test(n), f = bp(), m = Ma(0, -1, null, 1, 0, null, null, null, null, null), g = ha(null, m, f, p, null, null, s, l, c, a); An(g, null); try { var v = vp(d, this.componentDef, g, s, l); if (d) if (n) Zn(l, d, ["ng-version", sh.full]); else { var y = function(t) { for (var e = [], n = [], i = 1, r = 2; i < t.length; ) { var o = t[i]; if ("string" == typeof o) 2 === r ? "" !== o && e.push(o, t[++i]) : 8 === r && n.push(o); else { if (!co(r)) break; r = o } i++ } return { attrs: e, classes: n } }(this.componentDef.selectors[0]) , b = y.attrs , w = y.classes; b && Zn(l, d, b), w && w.length > 0 && Ls(l, d, w.join(" ")) } if (o = We(m, 0), void 0 !== e) for (var S = o.projection = [], x = 0; x < this.ngContentSelectors.length; x++) { var M = e[x]; S.push(null != M ? Array.from(M) : null) } r = yp(v, this.componentDef, g, f, [wp]), ma(m, g, null) } finally { In() } var E = new Om(this.componentType,r,Bs(Qp, o, g),g,o); return n && !h || (ngDevMode && Yn(m.node, 2), m.node.child = o), E } , e }(Hp); new Em; var Om = function(t) { function e(e, n, i, r, o) { var a, s, c, l, u, d = t.call(this) || this; return d.location = i, d._rootLView = r, d._tNode = o, d.destroyCbs = [], d.instance = n, d.hostView = d.changeDetectorRef = new Us(r), a = r[1], s = null, c = -1, l = r, null == (u = a.node) && (ngDevMode && s && Yn(s, 3, 0), a.node = u = Aa(a, s, 2, c, null, null)), l[6] = u, d.componentType = e, d } return Object(i.c)(e, t), Object.defineProperty(e.prototype, "injector", { get: function() { return new Oi(this._tNode,this._rootLView) }, enumerable: !0, configurable: !0 }), e.prototype.destroy = function() { this.destroyCbs && (this.destroyCbs.forEach((function(t) { return t() } )), this.destroyCbs = null, !this.hostView.destroyed && this.hostView.destroy()) } , e.prototype.onDestroy = function(t) { this.destroyCbs && this.destroyCbs.push(t) } , e }(Gp); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ "undefined" == typeof ngI18nClosureMode && (J.ngI18nClosureMode = "undefined" != typeof goog && "function" == typeof goog.getMsg); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var _m = void 0; var Pm, Im = ["en", [["a", "p"], ["AM", "PM"], _m], [["AM", "PM"], _m, _m], [["S", "M", "T", "W", "T", "F", "S"], ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]], _m, [["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]], _m, [["B", "A"], ["BC", "AD"], ["Before Christ", "Anno Domini"]], 0, [6, 0], ["M/d/yy", "MMM d, y", "MMMM d, y", "EEEE, MMMM d, y"], ["h:mm a", "h:mm:ss a", "h:mm:ss a z", "h:mm:ss a zzzz"], ["{1}, {0}", _m, "{1} 'at' {0}", _m], [".", ",", ";", "%", "+", "-", "E", "×", "‰", "∞", "NaN", ":"], ["#,##0.###", "#,##0%", "¤#,##0.00", "#E0"], "USD", "$", "US Dollar", {}, "ltr", function(t) { var e = Math.floor(Math.abs(t)) , n = t.toString().replace(/^[^.]*\.?/, "").length; return 1 === e && 0 === n ? 1 : 5 } ], km = {}; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Dm(t, e, n) { "string" != typeof e && (n = e, e = t[Pm.LocaleId]), e = e.toLowerCase().replace(/_/g, "-"), km[e] = t, n && (km[e][Pm.ExtraData] = n) } function Rm(t) { var e = function(t) { return t.toLowerCase().replace(/_/g, "-") }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (t) , n = jm(e); if (n) return n; var i = e.split("-")[0]; if (n = jm(i)) return n; if ("en" === i) return Im; throw new Error('Missing locale data for the locale "' + t + '".') } function Lm(t) { return Rm(t)[Pm.CurrencyCode] || null } function Nm(t) { return Rm(t)[Pm.PluralCase] } function jm(t) { return t in km || (km[t] = J.ng && J.ng.common && J.ng.common.locales && J.ng.common.locales[t]), km[t] } function Vm() { km = {} } !function(t) { t[t.LocaleId = 0] = "LocaleId", t[t.DayPeriodsFormat = 1] = "DayPeriodsFormat", t[t.DayPeriodsStandalone = 2] = "DayPeriodsStandalone", t[t.DaysFormat = 3] = "DaysFormat", t[t.DaysStandalone = 4] = "DaysStandalone", t[t.MonthsFormat = 5] = "MonthsFormat", t[t.MonthsStandalone = 6] = "MonthsStandalone", t[t.Eras = 7] = "Eras", t[t.FirstDayOfWeek = 8] = "FirstDayOfWeek", t[t.WeekendRange = 9] = "WeekendRange", t[t.DateFormat = 10] = "DateFormat", t[t.TimeFormat = 11] = "TimeFormat", t[t.DateTimeFormat = 12] = "DateTimeFormat", t[t.NumberSymbols = 13] = "NumberSymbols", t[t.NumberFormats = 14] = "NumberFormats", t[t.CurrencyCode = 15] = "CurrencyCode", t[t.CurrencySymbol = 16] = "CurrencySymbol", t[t.CurrencyName = 17] = "CurrencyName", t[t.Currencies = 18] = "Currencies", t[t.Directionality = 19] = "Directionality", t[t.PluralCase = 20] = "PluralCase", t[t.ExtraData = 21] = "ExtraData" }(Pm || (Pm = {})); var Fm = ["zero", "one", "two", "few", "many"]; var Um = "en-US" , Bm = "USD" , zm = /^\s*(�\d+:?\d*�)\s*,\s*(select|plural)\s*,/ , Gm = /�\/?\*(\d+:\d+)�/gi , Hm = /�(\/?[#*!]\d+):?\d*�/gi , Wm = /�(\d+):?\d*�/gi , qm = /({\s*�\d+:?\d*�\s*,\s*\S{6}\s*,[\s\S]*})/gi , Xm = /\[(�.+?�?)\]/ , Ym = /\[(�.+?�?)\]|(�\/?\*\d+:\d+�)/g , Km = /({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g , Zm = /{([A-Z0-9_]+)}/g , Jm = /�I18N_EXP_(ICU(_\d+)?)�/g , Qm = /\/\*/ , $m = /\d+\:(\d+)/; function tg(t) { if (!t) return []; var e, n = 0, i = [], r = [], o = /[{}]/g; for (o.lastIndex = 0; e = o.exec(t); ) { var a = e.index; if ("}" == e[0]) { if (i.pop(), 0 == i.length) { var s = t.substring(n, a); zm.test(s) ? r.push(eg(s)) : r.push(s), n = a + 1 } } else { if (0 == i.length) { var c = t.substring(n, a); r.push(c), n = a + 1 } i.push("{") } } var l = t.substring(n); return r.push(l), r } function eg(t) { for (var e = [], n = [], i = 1, r = 0, o = tg(t = t.replace(zm, (function(t, e, n) { return i = "select" === n ? 0 : 1, r = parseInt(e.substr(1), 10), "" } ))), a = 0; a < o.length; ) { var s = o[a++].trim(); 1 === i && (s = s.replace(/\s*(?:=)?(\w+)\s*/, "$1")), s.length && e.push(s); var c = tg(o[a++]); e.length > n.length && n.push(c) } return { type: i, mainBinding: r, cases: e, values: n } } function ng(t) { for (var e, n, i = "", r = 0, o = !1; null !== (e = Gm.exec(t)); ) o ? e[0] === "�/*" + n + "�" && (r = e.index, o = !1) : (i += t.substring(r, e.index + e[0].length), n = e[1], o = !0); return ngDevMode && Rt(o, !1, 'Tag mismatch: unable to find the end of the sub-template in the translation "' + t + '"'), i += t.substr(r) } function ig(t, e, n, i) { void 0 === i && (i = null); for (var r = [null, null], o = t.split(Wm), a = 0, s = 0; s < o.length; s++) { var c = o[s]; if (1 & s) { var l = parseInt(c, 10); r.push(-1 - l), a |= sg(l) } else "" !== c && r.push(c) } return r.push(e << 2 | (n ? 1 : 0)), n && r.push(n, i), r[0] = a, r[1] = r.length - 2, r } function rg(t, e) { var n; void 0 === e && (e = 0), e |= sg(t.mainBinding); for (var i = 0; i < t.values.length; i++) for (var r = t.values[i], o = 0; o < r.length; o++) { var a = r[o]; if ("string" == typeof a) for (; n = Wm.exec(a); ) e |= sg(parseInt(n[1], 10)); else e = rg(a, e) } return e } var og = [] , ag = -1; function sg(t) { return 1 << Math.min(t, 31) } var cg, lg = []; function ug(t, e, n) { var i = sn(); ngDevMode && Bt(i, "tView should be defined"), og[++ag] = t, Cu(!0), i.firstCreatePass && null === i.data[t + 20] && function(t, e, n, i, r) { var o = e.blueprint.length - 20; cg = 0; var a = ln() , s = dn() ? a : a && a.parent , c = s && s !== t[6] ? s.index - 20 : n , l = 0; lg[l] = c; var u = []; if (n > 0 && a !== s) { var d = a.index - 20; dn() || (d = ~d), u.push(d << 3 | 0) } var p = [] , h = []; if ("" === i && hg(r)) u.push(i, dg(o), c << 17 | 1); else for (var f = function(t, e) { if (hg(e)) return ng(t); var n = t.indexOf(":" + e + "�") + 2 + e.toString().length , i = t.search(new RegExp("�\\/\\*\\d+:" + e + "�")); return ng(t.substring(n, i)) }(i, r), m = function(t) { return t.replace(_g, " ") }(f).split(Hm), g = 0; g < m.length; g++) { var v = m[g]; if (1 & g) if ("/" === v.charAt(0)) { if ("#" === v.charAt(1)) { var y = parseInt(v.substr(2), 10); c = lg[--l], u.push(y << 3 | 5) } } else { y = parseInt(v.substr(1), 10); var b = "#" === v.charAt(0); u.push((b ? y : ~y) << 3 | 0, c << 17 | 1), b && (lg[++l] = c = y) } else for (var w = tg(v), S = 0; S < w.length; S++) if (1 & S) { var x = w[S]; if ("object" != typeof x) throw new Error('Unable to parse ICU expression in "' + f + '" message.'); var M = dg(o); u.push(Ao, ngDevMode ? "ICU " + M : "", M, c << 17 | 1); var E = rg(x); Ag(h, x, M, M); var C = h.length - 1; p.push(sg(x.mainBinding), 3, -1 - x.mainBinding, M << 2 | 2, C, E, 2, M << 2 | 3, C) } else if ("" !== w[S]) { var A = w[S] , T = A.match(Wm) , O = dg(o); u.push(T ? "" : A, O, c << 17 | 1), T && Wt(ig(A, O), p) } } cg > 0 && function(t, e, n) { if (ngDevMode && Ut(n, 0, "The number of slots to alloc should be greater than 0"), n > 0 && t.firstCreatePass) { for (var i = 0; i < n; i++) t.blueprint.push(null), t.data.push(null), e.push(null); t.expandoInstructions ? t.expandoInstructions.push(n) : t.expandoStartIndex += n } }(e, t, cg); ngDevMode && function(t, e, n, i) { Lo(t, new ca(t,i)), Lo(e, new la(e,n,i)), n && n.forEach((function(t) { t.create.forEach((function(t) { Lo(t, new ca(t,i)) } )), t.update.forEach((function(t) { Lo(t, new la(t,n,i)) } )) } )) }(u, p, h.length ? h : null, t); var _ = { vars: cg, create: u, update: p, icus: h.length ? h : null }; e.data[n + 20] = _ }(an(), i, t, e, n) } function dg(t) { return t + cg++ } function pg(t, e, n, i, r) { ngDevMode && ngDevMode.rendererMoveNode++; var o = e.next; i || (i = n), i === n && e !== n.child ? (e.next = n.child, n.child = e) : i !== n && e !== i.next ? (e.next = i.next, i.next = e) : e.next = null, n !== r[6] && (e.parent = n); for (var a = e.next; a; ) a.next === e && (a.next = o), a = a.next; if (1 === e.type) return ks(t, r, e), e; Ts(t, r, Ge(e, r), e); var s = r[e.index]; return 0 !== e.type && Se(s) && Ts(t, r, s[7], e), e } function hg(t) { return void 0 === t } function fg(t, e) { void 0 === e && (e = {}); var n = t; if (Xm.test(t)) { var r = {} , o = [0]; n = n.replace(Ym, (function(t, e, n) { var a = e || n , s = r[a] || []; if (s.length || (a.split("|").forEach((function(t) { var e = t.match($m) , n = e ? parseInt(e[1], 10) : 0 , i = Qm.test(t); s.push([n, i, t]) } )), r[a] = s), !s.length) throw new Error("i18n postprocess: unmatched placeholder - " + a); for (var c = o[o.length - 1], l = 0, u = 0; u < s.length; u++) if (s[u][0] === c) { l = u; break } var d = Object(i.f)(s[l], 3) , p = d[0] , h = d[1] , f = d[2]; return h ? o.pop() : c !== p && o.push(p), s.splice(l, 1), f } )) } return Object.keys(e).length ? n = (n = (n = n.replace(Km, (function(t, n, i, r, o, a) { return e.hasOwnProperty(i) ? "" + n + e[i] + a : t } ))).replace(Zm, (function(t, n) { return e.hasOwnProperty(n) ? e[n] : t } ))).replace(Jm, (function(t, n) { if (e.hasOwnProperty(n)) { var i = e[n]; if (!i.length) throw new Error("i18n postprocess: unmatched ICU - " + t + " with key: " + n); return i.shift() } return t } )) : n } function mg() { var t = an() , e = sn(); ngDevMode && Bt(e, "tView should be defined"), function(t, e) { ngDevMode && Rt(gn(), t.bindingStartIndex, "i18nEnd should be called before any binding"); var n = og[ag--] , i = t.data[n + 20]; ngDevMode && Bt(i, "You should call i18nStart before i18nEnd"); var r = ln() , o = vg(n, i.create, t, e) , a = n + 1; for (; a <= r.index - 20; ) { -1 === o.indexOf(a) && yg(t, e, a, !0); var s = We(t, a); !s || 0 !== s.type && 3 !== s.type && 4 !== s.type || null === s.localNames || (a += s.localNames.length >> 1), a++ } }(e, t), Cu(!1) } function gg(t, e, n, i, r, o) { var a = ln(); ngDevMode && Ht(e, n + 20), e[n + 20] = r; var s = fa(t, e[6], n, i, o, null); return a && a.next === s && (a.next = null), s } function vg(t, e, n, i) { for (var r = i[11], o = null, a = null, s = [], c = 0; c < e.length; c++) { var l = e[c]; if ("string" == typeof l) { var u = hs(l, r) , d = e[++c]; ngDevMode && ngDevMode.rendererCreateTextNode++, a = o, o = gg(n, i, d, 3, u, null), s.push(d), pn() } else if ("number" == typeof l) switch (7 & l) { case 1: var p = l >>> 17 , h = void 0; h = p === t ? i[6] : We(n, p), ngDevMode && Bt(o, "You need to create or select a node before you can insert it into the DOM"), a = pg(n, o, h, a, i); break; case 0: var f = l >= 0 , m = (f ? l : ~l) >>> 3; s.push(m), a = o, (o = We(n, m)) && un(o, f); break; case 5: a = o = We(n, l >>> 3), un(o, !1); break; case 4: var g = l >>> 3 , v = e[++c] , y = e[++c]; Ga(We(n, g), i, v, y, null, null); break; default: throw new Error('Unable to determine the type of mutate operation for "' + l + '"') } else switch (l) { case Ao: var b = e[++c] , w = e[++c]; ngDevMode && Rt(typeof b, "string", 'Expected "' + b + '" to be a comment node value'); var S = r.createComment(b); ngDevMode && ngDevMode.rendererCreateComment++, a = o, o = gg(n, i, w, 5, S, null), s.push(w), Kr(S, i), o.activeCaseIndex = null, pn(); break; case Co: var x = e[++c]; g = e[++c]; ngDevMode && Rt(typeof x, "string", 'Expected "' + x + '" to be an element node tag name'); var M = r.createElement(x); ngDevMode && ngDevMode.rendererCreateElement++, a = o, o = gg(n, i, g, 3, M, x), s.push(g); break; default: throw new Error('Unable to determine the type of mutate operation for "' + l + '"') } } return pn(), s } function yg(t, e, n, i) { var r = We(t, n) , o = ze(n, e); o && _s(e[11], o); var a = qe(e, n); if (Se(a)) { var s = a; 0 !== r.type && _s(e[11], s[7]) } i && (r.flags |= 64), ngDevMode && ngDevMode.rendererRemoveNode++ } function bg(t, e, n) { ug(t, e, n), mg() } function wg(t, e) { var n = an() , i = sn(); ngDevMode && Bt(i, "tView should be defined"), function(t, e, n, i) { for (var r = ln().index - 20, o = [], a = 0; a < i.length; a += 2) for (var s = i[a], c = i[a + 1].split(qm), l = 0; l < c.length; l++) { var u = c[l]; if (1 & l) throw new Error("ICU expressions are not yet supported in attributes"); if ("" !== u) if (!!u.match(Wm)) e.firstCreatePass && null === e.data[n + 20] && Wt(ig(u, r, s), o); else { var d = We(e, r); 3 === d.type && Ga(d, t, s, u, null, null); var p = null !== d.inputs && d.inputs[s]; if (p && (cs(e, t, p, s, u), ngDevMode)) { var h = ze(r, t); Pa(t, h, d.type, p, u) } } } e.firstCreatePass && null === e.data[n + 20] && (e.data[n + 20] = o) }(n, i, t, e) } var Sg = 0 , xg = 0; function Mg(t) { return Tl(an(), yn(), t) && (Sg |= 1 << xg), xg++, Mg } function Eg(t) { if (xg) { var e = sn(); ngDevMode && Bt(e, "tView should be defined"); var n = e.data[t + 20] , i = void 0 , r = null; Array.isArray(n) ? i = n : (i = n.update, r = n.icus); var o = gn() - xg - 1 , a = an(); !function t(e, n, i, r, o, a, s) { void 0 === s && (s = !1); for (var c = !1, l = 0; l < e.length; l++) { var u = e[l] , d = e[++l]; if (s || u & r) for (var p = "", h = l + 1; h <= l + d; h++) { var f = e[h]; if ("string" == typeof f) p += f; else if ("number" == typeof f) if (f < 0) p += oi(a[i - f]); else { var m = f >>> 2 , g = void 0 , v = void 0; switch (3 & f) { case 1: var y = e[++h] , b = e[++h]; Oa(o, We(o, m), a, y, p, a[11], b, !1); break; case 0: ls(a, m, p); break; case 2: if (g = n[e[++h]], null !== (v = We(o, m)).activeCaseIndex) for (var w = g.remove[v.activeCaseIndex], S = 0; S < w.length; S++) { var x = w[S]; switch (7 & x) { case 3: yg(o, a, x >>> 3, !1); break; case 6: var M = We(o, w[S + 1] >>> 3).activeCaseIndex; if (null !== M) Wt(n[x >>> 3].remove[M], w) } } var E = Cg(g, p); v.activeCaseIndex = -1 !== E ? E : null, E > -1 && (vg(-1, g.create[E], o, a), c = !0); break; case 3: g = n[e[++h]], null !== (v = We(o, m)).activeCaseIndex && t(g.update[v.activeCaseIndex], n, i, r, o, a, c) } } } l += d } }(i, r, o, Sg, e, a), Sg = 0, xg = 0 } } function Cg(t, e) { var n = t.cases.indexOf(e); if (-1 === n) switch (t.type) { case 1: var i = function(t, e) { var n = Nm(e)(parseInt(t, 10)) , i = Fm[n]; return void 0 !== i ? i : "other" }(e, Pg); -1 === (n = t.cases.indexOf(i)) && "other" !== i && (n = t.cases.indexOf("other")); break; case 0: n = t.cases.indexOf("other") } return n } function Ag(t, e, n, r) { for (var o = [], a = [], s = [], c = [], l = [], u = 0; u < e.values.length; u++) { for (var d = e.values[u], p = [], h = 0; h < d.length; h++) { var f = d[h]; if ("string" != typeof f) { var m = p.push(f) - 1; d[h] = "\x3c!--�" + m + "�--\x3e" } } var g = Tg(d.join(""), n, p, t, r); o.push(g.create), a.push(g.remove), s.push(g.update), c.push(g.vars), l.push(g.childIcus) } var v = { type: e.type, vars: c, childIcus: l, cases: e.cases, create: o, remove: a, update: s }; t.push(v), cg += Math.max.apply(Math, Object(i.h)(c)) } function Tg(t, e, n, r, o) { var a = new er(Ve()).getInertBodyElement(t); if (!a) throw new Error("Unable to generate inert body element"); var s = { vars: 0, childIcus: [], create: [], remove: [], update: [] }; return function t(e, n, r, o, a, s) { if (e) { for (var c = []; e; ) { var l = e.nextSibling , u = s + ++n.vars; switch (e.nodeType) { case Node.ELEMENT_NODE: var d = e , p = d.tagName.toLowerCase(); if (gr.hasOwnProperty(p)) { n.create.push(Co, p, u, r << 17 | 1); for (var h = d.attributes, f = 0; f < h.length; f++) { var m = h.item(f) , g = m.name.toLowerCase(); !!m.value.match(Wm) ? Sr.hasOwnProperty(g) ? vr[g] ? Wt(ig(m.value, u, m.name, rr), n.update) : yr[g] ? Wt(ig(m.value, u, m.name, or), n.update) : Wt(ig(m.value, u, m.name), n.update) : ngDevMode && console.warn("WARNING: ignoring unsafe attribute value " + g + " on element " + p + " (see http://g.co/ng/security#xss)") : n.create.push(u << 3 | 4, m.name, m.value) } t(e.firstChild, n, u, o, a, s), n.remove.push(u << 3 | 3) } else n.vars--; break; case Node.TEXT_NODE: var v = e.textContent || "" , y = v.match(Wm); n.create.push(y ? "" : v, u, r << 17 | 1), n.remove.push(u << 3 | 3), y && Wt(ig(v, u), n.update); break; case Node.COMMENT_NODE: var b = Og.exec(e.textContent || ""); if (b) { var w = parseInt(b[1], 10) , S = ngDevMode ? "nested ICU " + w : ""; n.create.push(Ao, S, u, r << 17 | 1); var x = o[w]; c.push([x, u]) } else n.vars--; break; default: n.vars-- } e = l } for (f = 0; f < c.length; f++) { x = c[f][0]; var M = c[f][1]; Ag(a, x, M, s + n.vars); var E = a.length - 1; n.vars += Math.max.apply(Math, Object(i.h)(a[E].vars)), n.childIcus.push(E); var C = rg(x); n.update.push(sg(x.mainBinding), 3, -1 - x.mainBinding, M << 2 | 2, E, C, 2, M << 2 | 3, E), n.remove.push(E << 3 | 6, M << 3 | 3) } } }((Or(a) || a).firstChild, s, e, n, r, o), s } var Og = /�(\d+)�/; var _g = /\uE500/g; var Pg = Um; function Ig(t) { Bt(t, "Expected localeId to be defined"), "string" == typeof t && (Pg = t.toLowerCase().replace(/_/g, "-")) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kg(t, e, n, r) { return l((function() { var o, a = t, s = a.prototype ? Object.getPrototypeOf(a.prototype) : null, c = s && s.constructor; null !== e && (void 0 === a.decorators || c && c.decorators === a.decorators ? a.decorators = e : (o = a.decorators).push.apply(o, Object(i.h)(e))), null !== n && (a.ctorParameters = n), null !== r && (void 0 === a.propDecorators || c && c.propDecorators === a.propDecorators ? a.propDecorators = r : a.propDecorators = Object(i.a)(Object(i.a)({}, a.propDecorators), r)) } )) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Dg = new Map; function Rg(t, e) { var n = Dg.get(t); Lg(t, n && n.moduleType, e.moduleType), Dg.set(t, e) } function Lg(t, e, n) { if (e && e !== n) throw new Error("Duplicate module registered for " + t + " - " + F(e) + " vs " + F(e.name)) } function Ng(t) { if (null !== t.ɵmod.id) { var e = t.ɵmod.id; Lg(e, Dg.get(e), t), Dg.set(e, t) } var n = t.ɵmod.imports; n instanceof Function && (n = n()), n && n.forEach((function(t) { return Ng(t) } )) } function jg(t) { return Dg.get(t) || le[t] } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Vg = function(t) { function e(e, n) { var i = t.call(this) || this; i._parent = n, i._bootstrapComponents = [], i.injector = i, i.destroyCbs = [], i.componentFactoryResolver = new Em(i); var r = be(e); ngDevMode && Bt(r, "NgModule '" + F(e) + "' is not a subtype of 'NgModuleType'."); var o = e[it] || null; return o && Ig(o), i._bootstrapComponents = di(r.bootstrap), i._r3Injector = Sc(e, n, [{ provide: _t, useValue: i }, { provide: Yp, useValue: i.componentFactoryResolver }], F(e)), i._r3Injector._resolveInjectorDefTypes(), i.instance = i.get(e), i } return Object(i.c)(e, t), e.prototype.get = function(t, e, n) { return void 0 === e && (e = Pc.THROW_IF_NOT_FOUND), void 0 === n && (n = v.Default), t === Pc || t === _t || t === lt ? this : this._r3Injector.get(t, e, n) } , e.prototype.destroy = function() { ngDevMode && Bt(this.destroyCbs, "NgModule already destroyed"); var t = this._r3Injector; !t.destroyed && t.destroy(), this.destroyCbs.forEach((function(t) { return t() } )), this.destroyCbs = null } , e.prototype.onDestroy = function(t) { ngDevMode && Bt(this.destroyCbs, "NgModule already destroyed"), this.destroyCbs.push(t) } , e }(_t) , Fg = function(t) { function e(e) { var n = t.call(this) || this; return n.moduleType = e, null !== be(e) && Ng(e), n } return Object(i.c)(e, t), e.prototype.create = function(t) { return new Vg(this.moduleType,t) } , e }(Pt); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ug(t, e, n) { var i = mn() + t , r = an(); return r[i] === mo ? Cl(r, i, n ? e.call(n) : e()) : Al(r, i) } function Bg(t, e, n, i) { return Jg(an(), mn(), t, e, n, i) } function zg(t, e, n, i, r) { return Qg(an(), mn(), t, e, n, i, r) } function Gg(t, e, n, i, r, o) { return $g(an(), mn(), t, e, n, i, r, o) } function Hg(t, e, n, i, r, o, a) { return tv(an(), mn(), t, e, n, i, r, o, a) } function Wg(t, e, n, i, r, o, a, s) { var c = mn() + t , l = an() , u = Pl(l, c, n, i, r, o); return Tl(l, c + 4, a) || u ? Cl(l, c + 5, s ? e.call(s, n, i, r, o, a) : e(n, i, r, o, a)) : Al(l, c + 5) } function qg(t, e, n, i, r, o, a, s, c) { var l = mn() + t , u = an() , d = Pl(u, l, n, i, r, o); return Ol(u, l + 4, a, s) || d ? Cl(u, l + 6, c ? e.call(c, n, i, r, o, a, s) : e(n, i, r, o, a, s)) : Al(u, l + 6) } function Xg(t, e, n, i, r, o, a, s, c, l) { var u = mn() + t , d = an() , p = Pl(d, u, n, i, r, o); return _l(d, u + 4, a, s, c) || p ? Cl(d, u + 7, l ? e.call(l, n, i, r, o, a, s, c) : e(n, i, r, o, a, s, c)) : Al(d, u + 7) } function Yg(t, e, n, i, r, o, a, s, c, l, u) { var d = mn() + t , p = an() , h = Pl(p, d, n, i, r, o); return Pl(p, d + 4, a, s, c, l) || h ? Cl(p, d + 8, u ? e.call(u, n, i, r, o, a, s, c, l) : e(n, i, r, o, a, s, c, l)) : Al(p, d + 8) } function Kg(t, e, n, i) { return ev(an(), mn(), t, e, n, i) } function Zg(t, e) { ngDevMode && Ht(t, e); var n = t[e]; return n === mo ? void 0 : n } function Jg(t, e, n, i, r, o) { var a = e + n; return Tl(t, a, r) ? Cl(t, a + 1, o ? i.call(o, r) : i(r)) : Zg(t, a + 1) } function Qg(t, e, n, i, r, o, a) { var s = e + n; return Ol(t, s, r, o) ? Cl(t, s + 2, a ? i.call(a, r, o) : i(r, o)) : Zg(t, s + 2) } function $g(t, e, n, i, r, o, a, s) { var c = e + n; return _l(t, c, r, o, a) ? Cl(t, c + 3, s ? i.call(s, r, o, a) : i(r, o, a)) : Zg(t, c + 3) } function tv(t, e, n, i, r, o, a, s, c) { var l = e + n; return Pl(t, l, r, o, a, s) ? Cl(t, l + 4, c ? i.call(c, r, o, a, s) : i(r, o, a, s)) : Zg(t, l + 4) } function ev(t, e, n, i, r, o) { for (var a = e + n, s = !1, c = 0; c < r.length; c++) Tl(t, a++, r[c]) && (s = !0); return s ? Cl(t, a, i.apply(o, r)) : Zg(t, a) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function nv(t, e) { var n, i = sn(), r = t + 20; i.firstCreatePass ? (n = function(t, e) { if (e) for (var n = e.length - 1; n >= 0; n--) { var i = e[n]; if (t === i.name) return i } throw new Error("The pipe '" + t + "' could not be found!") }(e, i.pipeRegistry), i.data[r] = n, n.onDestroy && (i.destroyHooks || (i.destroyHooks = [])).push(r, n.onDestroy)) : n = i.data[r]; var o = n.factory || (n.factory = ye(n.type, !0)) , a = mt(eu) , s = hi(!1) , c = o(); return hi(s), mt(a), $l(i, an(), t, c), c } function iv(t, e, n) { var i = an() , r = qe(i, t); return lv(i, cv(i, t) ? Jg(i, mn(), e, r.transform, n, r) : r.transform(n)) } function rv(t, e, n, i) { var r = an() , o = qe(r, t); return lv(r, cv(r, t) ? Qg(r, mn(), e, o.transform, n, i, o) : o.transform(n, i)) } function ov(t, e, n, i, r) { var o = an() , a = qe(o, t); return lv(o, cv(o, t) ? $g(o, mn(), e, a.transform, n, i, r, a) : a.transform(n, i, r)) } function av(t, e, n, i, r, o) { var a = an() , s = qe(a, t); return lv(a, cv(a, t) ? tv(a, mn(), e, s.transform, n, i, r, o, s) : s.transform(n, i, r, o)) } function sv(t, e, n) { var i = an() , r = qe(i, t); return lv(i, cv(i, t) ? ev(i, mn(), e, r.transform, n, r) : r.transform.apply(r, n)) } function cv(t, e) { return t[1].data[e + 20].pure } function lv(t, e) { xl.isWrapped(e) && (e = xl.unwrap(e), t[gn()] = mo); return e } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var uv = function(t) { function e(e) { void 0 === e && (e = !1); var n = t.call(this) || this; return n.__isAsync = e, n } return Object(i.c)(e, t), e.prototype.emit = function(e) { t.prototype.next.call(this, e) } , e.prototype.subscribe = function(e, n, i) { var o, a = function(t) { return null }, s = function() { return null }; e && "object" == typeof e ? (o = this.__isAsync ? function(t) { setTimeout((function() { return e.next(t) } )) } : function(t) { e.next(t) } , e.error && (a = this.__isAsync ? function(t) { setTimeout((function() { return e.error(t) } )) } : function(t) { e.error(t) } ), e.complete && (s = this.__isAsync ? function() { setTimeout((function() { return e.complete() } )) } : function() { e.complete() } )) : (o = this.__isAsync ? function(t) { setTimeout((function() { return e(t) } )) } : function(t) { e(t) } , n && (a = this.__isAsync ? function(t) { setTimeout((function() { return n(t) } )) } : function(t) { n(t) } ), i && (s = this.__isAsync ? function() { setTimeout((function() { return i() } )) } : function() { i() } )); var c = t.prototype.subscribe.call(this, o, a, s); return e instanceof r.a && e.add(c), c } , e }(o.a); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function dv() { return this._results[bl()]() } var pv = function() { function t() { this.dirty = !0, this._results = [], this.changes = new uv, this.length = 0; var e = bl() , n = t.prototype; n[e] || (n[e] = dv) } return t.prototype.map = function(t) { return this._results.map(t) } , t.prototype.filter = function(t) { return this._results.filter(t) } , t.prototype.find = function(t) { return this._results.find(t) } , t.prototype.reduce = function(t, e) { return this._results.reduce(t, e) } , t.prototype.forEach = function(t) { this._results.forEach(t) } , t.prototype.some = function(t) { return this._results.some(t) } , t.prototype.toArray = function() { return this._results.slice() } , t.prototype.toString = function() { return this._results.toString() } , t.prototype.reset = function(t) { this._results = qt(t), this.dirty = !1, this.length = this._results.length, this.last = this._results[this.length - 1], this.first = this._results[0] } , t.prototype.notifyOnChanges = function() { this.changes.emit(this) } , t.prototype.setDirty = function() { this.dirty = !0 } , t.prototype.destroy = function() { this.changes.complete(), this.changes.unsubscribe() } , t }() , hv = function() { function t(t) { this.queryList = t, this.matches = null } return t.prototype.clone = function() { return new t(this.queryList) } , t.prototype.setDirty = function() { this.queryList.setDirty() } , t }() , fv = function() { function t(t) { void 0 === t && (t = []), this.queries = t } return t.prototype.createEmbeddedView = function(e) { var n = e.queries; if (null !== n) { for (var i = null !== e.contentQueries ? e.contentQueries[0] : n.length, r = [], o = 0; o < i; o++) { var a = n.getByIndex(o) , s = this.queries[a.indexInDeclarationView]; r.push(s.clone()) } return new t(r) } return null } , t.prototype.insertView = function(t) { this.dirtyQueriesWithMatches(t) } , t.prototype.detachView = function(t) { this.dirtyQueriesWithMatches(t) } , t.prototype.dirtyQueriesWithMatches = function(t) { for (var e = 0; e < this.queries.length; e++) null !== Iv(t, e).matches && this.queries[e].setDirty() } , t }() , mv = function(t, e, n, i) { void 0 === i && (i = null), this.predicate = t, this.descendants = e, this.isStatic = n, this.read = i } , gv = function() { function t(t) { void 0 === t && (t = []), this.queries = t } return t.prototype.elementStart = function(t, e) { ngDevMode && De(t, "Queries should collect results on the first template pass only"); for (var n = 0; n < this.queries.length; n++) this.queries[n].elementStart(t, e) } , t.prototype.elementEnd = function(t) { for (var e = 0; e < this.queries.length; e++) this.queries[e].elementEnd(t) } , t.prototype.embeddedTView = function(e) { for (var n = null, i = 0; i < this.length; i++) { var r = null !== n ? n.length : 0 , o = this.getByIndex(i).embeddedTView(e, r); o && (o.indexInDeclarationView = i, null !== n ? n.push(o) : n = [o]) } return null !== n ? new t(n) : null } , t.prototype.template = function(t, e) { ngDevMode && De(t, "Queries should collect results on the first template pass only"); for (var n = 0; n < this.queries.length; n++) this.queries[n].template(t, e) } , t.prototype.getByIndex = function(t) { return ngDevMode && Ht(this.queries, t), this.queries[t] } , Object.defineProperty(t.prototype, "length", { get: function() { return this.queries.length }, enumerable: !0, configurable: !0 }), t.prototype.track = function(t) { this.queries.push(t) } , t }() , vv = function() { function t(t, e) { void 0 === e && (e = -1), this.metadata = t, this.matches = null, this.indexInDeclarationView = -1, this.crossesNgTemplate = !1, this._appliesToNextNode = !0, this._declarationNodeIndex = e } return t.prototype.elementStart = function(t, e) { this.isApplyingToNode(e) && this.matchTNode(t, e) } , t.prototype.elementEnd = function(t) { this._declarationNodeIndex === t.index && (this._appliesToNextNode = !1) } , t.prototype.template = function(t, e) { this.elementStart(t, e) } , t.prototype.embeddedTView = function(e, n) { return this.isApplyingToNode(e) ? (this.crossesNgTemplate = !0, this.addMatch(-e.index, n), new t(this.metadata)) : null } , t.prototype.isApplyingToNode = function(t) { if (this._appliesToNextNode && !1 === this.metadata.descendants) { for (var e = this._declarationNodeIndex, n = t.parent; null !== n && 4 === n.type && n.index !== e; ) n = n.parent; return e === (null !== n ? n.index : -1) } return this._appliesToNextNode } , t.prototype.matchTNode = function(t, e) { if (Array.isArray(this.metadata.predicate)) for (var n = this.metadata.predicate, i = 0; i < n.length; i++) this.matchTNodeWithReadOption(t, e, yv(e, n[i])); else { var r = this.metadata.predicate; r === Eh ? 0 === e.type && this.matchTNodeWithReadOption(t, e, -1) : this.matchTNodeWithReadOption(t, e, Ei(e, t, r, !1, !1)) } } , t.prototype.matchTNodeWithReadOption = function(t, e, n) { if (null !== n) { var i = this.metadata.read; if (null !== i) if (i === Qp || i === Th || i === Eh && 0 === e.type) this.addMatch(e.index, -2); else { var r = Ei(e, t, i, !1, !1); null !== r && this.addMatch(e.index, r) } else this.addMatch(e.index, n) } } , t.prototype.addMatch = function(t, e) { null === this.matches ? this.matches = [t, e] : this.matches.push(t, e) } , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function yv(t, e) { var n = t.localNames; if (null !== n) for (var i = 0; i < n.length; i += 2) if (n[i] === e) return n[i + 1]; return null } function bv(t, e, n, i) { return -1 === n ? function(t, e) { return 3 === t.type || 4 === t.type ? Bs(Qp, t, e) : 0 === t.type ? zs(Eh, Qp, t, e) : null }(e, t) : -2 === n ? function(t, e, n) { if (n === Qp) return Bs(Qp, e, t); if (n === Eh) return zs(Eh, Qp, e, t); if (n === Th) return ngDevMode && Yn(e, 3, 0, 4), Gs(Th, Qp, e, t); ngDevMode && zt("Special token to read should be one of ElementRef, TemplateRef or ViewContainerRef but got " + F(n) + ".") }(t, e, i) : Ci(t, t[1], n, e) } function wv(t, e, n, i) { var r = e[19].queries[i]; if (null === r.matches) { for (var o = t.data, a = n.matches, s = [], c = 0; c < a.length; c += 2) { var l = a[c]; if (l < 0) s.push(null); else { ngDevMode && Ht(o, l); var u = o[l]; s.push(bv(e, u, a[c + 1], n.metadata.read)) } } r.matches = s } return r.matches } function Sv(t) { var e = an() , n = sn() , i = Mn(); En(i + 1); var r = Iv(n, i); if (t.dirty && Ze(e) === r.metadata.isStatic) { if (null === r.matches) t.reset([]); else { var o = r.crossesNgTemplate ? function t(e, n, i, r) { var o = e.queries.getByIndex(i) , a = o.matches; if (null !== a) for (var s = wv(e, n, o, i), c = 0; c < a.length; c += 2) { var l = a[c]; if (l > 0) r.push(s[c / 2]); else { var u = a[c + 1] , d = n[-l]; ngDevMode && Pe(d); for (var p = 10; p < d.length; p++) { (m = d[p])[17] === m[3] && t(m[1], m, u, r) } if (null !== d[9]) for (var h = d[9], f = 0; f < h.length; f++) { var m; t((m = h[f])[1], m, u, r) } } } return r }(n, e, i, []) : wv(n, e, r, i); t.reset(o), t.notifyOnChanges() } return !0 } return !1 } function xv(t, e, n) { Ev(sn(), an(), t, e, n, !0) } function Mv(t, e, n) { Ev(sn(), an(), t, e, n, !1) } function Ev(t, e, n, i, r, o) { t.firstCreatePass && (Pv(t, new mv(n,i,o,r), -1), o && (t.staticViewQueries = !0)), _v(t, e) } function Cv(t, e, n, i) { Tv(sn(), an(), e, n, i, !1, ln(), t) } function Av(t, e, n, i) { Tv(sn(), an(), e, n, i, !0, ln(), t) } function Tv(t, e, n, i, r, o, a, s) { t.firstCreatePass && (Pv(t, new mv(n,i,o,r), a.index), function(t, e) { var n = t.contentQueries || (t.contentQueries = []) , i = t.contentQueries.length ? n[n.length - 1] : -1; e !== i && n.push(t.queries.length - 1, e) }(t, s), o && (t.staticContentQueries = !0)), _v(t, e) } function Ov() { return t = an(), e = Mn(), ngDevMode && Bt(t[19], "LQueries should be defined when trying to load a query"), ngDevMode && Ht(t[19].queries, e), t[19].queries[e].queryList; var t, e } function _v(t, e) { var n = new pv; !function(t, e, n, i) { var r = rs(e); r.push(n), t.firstCreatePass && os(t).push(i, r.length - 1) }(t, e, n, n.destroy), null === e[19] && (e[19] = new fv), e[19].queries.push(new hv(n)) } function Pv(t, e, n) { null === t.queries && (t.queries = new gv), t.queries.track(new vv(e,n)) } function Iv(t, e) { return ngDevMode && Bt(t.queries, "TQueries must be defined to retrieve a TQuery"), t.queries.getByIndex(e) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kv(t, e) { return zs(Eh, Qp, t, e) } function Dv(t) { void 0 === t && (t = v.Default); var e = Hs(!0); if (null != e || t & v.Optional) return e; throw new Error("No provider for ChangeDetectorRef!") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Rv = { "ɵɵattribute": Il, "ɵɵattributeInterpolate1": Bl, "ɵɵattributeInterpolate2": zl, "ɵɵattributeInterpolate3": Gl, "ɵɵattributeInterpolate4": Hl, "ɵɵattributeInterpolate5": Wl, "ɵɵattributeInterpolate6": ql, "ɵɵattributeInterpolate7": Xl, "ɵɵattributeInterpolate8": Yl, "ɵɵattributeInterpolateV": Kl, "ɵɵdefineComponent": oe, "ɵɵdefineDirective": he, "ɵɵdefineInjectable": O, "ɵɵdefineInjector": P, "ɵɵdefineNgModule": ue, "ɵɵdefinePipe": fe, "ɵɵdirectiveInject": eu, "ɵɵgetFactoryOf": _i, "ɵɵgetInheritedFactory": Pi, "ɵɵinject": vt, "ɵɵinjectAttribute": nu, "ɵɵinvalidFactory": iu, "ɵɵinvalidFactoryDep": yt, "ɵɵinjectPipeChangeDetectorRef": Dv, "ɵɵtemplateRefExtractor": kv, "ɵɵNgOnChangesFeature": kp, "ɵɵProvidersFeature": zp, "ɵɵCopyDefinitionFeature": Pp, "ɵɵInheritDefinitionFeature": Mp, "ɵɵnextContext": Su, "ɵɵnamespaceHTML": Vn, "ɵɵnamespaceMathML": jn, "ɵɵnamespaceSVG": Nn, "ɵɵenableBindings": rn, "ɵɵdisableBindings": on, "ɵɵelementStart": su, "ɵɵelementEnd": cu, "ɵɵelement": lu, "ɵɵelementContainerStart": uu, "ɵɵelementContainerEnd": du, "ɵɵelementContainer": pu, "ɵɵpureFunction0": Ug, "ɵɵpureFunction1": Bg, "ɵɵpureFunction2": zg, "ɵɵpureFunction3": Gg, "ɵɵpureFunction4": Hg, "ɵɵpureFunction5": Wg, "ɵɵpureFunction6": qg, "ɵɵpureFunction7": Xg, "ɵɵpureFunction8": Yg, "ɵɵpureFunctionV": Kg, "ɵɵgetCurrentView": hu, "ɵɵrestoreView": cn, "ɵɵlistener": gu, "ɵɵprojection": Au, "ɵɵupdateSyntheticHostBinding": tp, "ɵɵcomponentHostSyntheticListener": vu, "ɵɵpipeBind1": iv, "ɵɵpipeBind2": rv, "ɵɵpipeBind3": ov, "ɵɵpipeBind4": av, "ɵɵpipeBindV": sv, "ɵɵprojectionDef": Mu, "ɵɵhostProperty": $d, "ɵɵproperty": ru, "ɵɵpropertyInterpolate": Tu, "ɵɵpropertyInterpolate1": Ou, "ɵɵpropertyInterpolate2": _u, "ɵɵpropertyInterpolate3": Pu, "ɵɵpropertyInterpolate4": Iu, "ɵɵpropertyInterpolate5": ku, "ɵɵpropertyInterpolate6": Du, "ɵɵpropertyInterpolate7": Ru, "ɵɵpropertyInterpolate8": Lu, "ɵɵpropertyInterpolateV": Nu, "ɵɵpipe": nv, "ɵɵqueryRefresh": Sv, "ɵɵviewQuery": Mv, "ɵɵstaticViewQuery": xv, "ɵɵstaticContentQuery": Av, "ɵɵloadQuery": Ov, "ɵɵcontentQuery": Cv, "ɵɵreference": tu, "ɵɵclassMap": nd, "ɵɵclassMapInterpolate1": Ad, "ɵɵclassMapInterpolate2": Td, "ɵɵclassMapInterpolate3": Od, "ɵɵclassMapInterpolate4": _d, "ɵɵclassMapInterpolate5": Pd, "ɵɵclassMapInterpolate6": Id, "ɵɵclassMapInterpolate7": kd, "ɵɵclassMapInterpolate8": Dd, "ɵɵclassMapInterpolateV": Rd, "ɵɵstyleMap": td, "ɵɵstyleMapInterpolate1": Ld, "ɵɵstyleMapInterpolate2": Nd, "ɵɵstyleMapInterpolate3": jd, "ɵɵstyleMapInterpolate4": Vd, "ɵɵstyleMapInterpolate5": Fd, "ɵɵstyleMapInterpolate6": Ud, "ɵɵstyleMapInterpolate7": Bd, "ɵɵstyleMapInterpolate8": zd, "ɵɵstyleMapInterpolateV": Gd, "ɵɵstyleProp": Qu, "ɵɵstylePropInterpolate1": Hd, "ɵɵstylePropInterpolate2": Wd, "ɵɵstylePropInterpolate3": qd, "ɵɵstylePropInterpolate4": Xd, "ɵɵstylePropInterpolate5": Yd, "ɵɵstylePropInterpolate6": Kd, "ɵɵstylePropInterpolate7": Zd, "ɵɵstylePropInterpolate8": Jd, "ɵɵstylePropInterpolateV": Qd, "ɵɵstyleSanitizer": Ju, "ɵɵclassProp": $u, "ɵɵselect": Mo, "ɵɵadvance": xo, "ɵɵtemplate": Ql, "ɵɵtext": md, "ɵɵtextInterpolate": gd, "ɵɵtextInterpolate1": vd, "ɵɵtextInterpolate2": yd, "ɵɵtextInterpolate3": bd, "ɵɵtextInterpolate4": wd, "ɵɵtextInterpolate5": Sd, "ɵɵtextInterpolate6": xd, "ɵɵtextInterpolate7": Md, "ɵɵtextInterpolate8": Ed, "ɵɵtextInterpolateV": Cd, "ɵɵi18n": bg, "ɵɵi18nAttributes": wg, "ɵɵi18nExp": Mg, "ɵɵi18nStart": ug, "ɵɵi18nEnd": mg, "ɵɵi18nApply": Eg, "ɵɵi18nPostprocess": fg, "ɵɵresolveWindow": ci, "ɵɵresolveDocument": li, "ɵɵresolveBody": ui, "ɵɵsetComponentScope": ae, "ɵɵsetNgModuleScope": de, "ɵɵsanitizeHtml": kr, "ɵɵsanitizeStyle": Dr, "ɵɵdefaultStyleSanitizer": Fr, "ɵɵsanitizeResourceUrl": Lr, "ɵɵsanitizeScript": Nr, "ɵɵsanitizeUrl": Rr, "ɵɵsanitizeUrlOrResourceUrl": Vr } , Lv = null; function Nv() { Lv = null } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var jv = [] , Vv = []; var Fv = !1; function Uv() { if (!Fv) { Fv = !0; try { for (var t = Vv.length - 1; t >= 0; t--) { var e = Vv[t] , n = e.moduleType , i = e.ngModule; i.declarations && i.declarations.every(Bv) && (Vv.splice(t, 1), Jv(n, i)) } } finally { Fv = !1 } } } function Bv(t) { return Array.isArray(t) ? t.every(Bv) : !!G(t) } function zv(t, e) { void 0 === e && (e = {}), Gv(t, e), function(t, e) { Vv.push({ moduleType: t, ngModule: e }) }(t, e) } function Gv(t, e, n) { void 0 === n && (n = !1), ngDevMode && Bt(t, "Required value moduleType"), ngDevMode && Bt(e, "Required value ngModule"); var i = qt(e.declarations || jv) , r = null; Object.defineProperty(t, nt, { configurable: !0, get: function() { if (null === r) { if (ngDevMode && e.imports && e.imports.indexOf(t) > -1) throw new Error("'" + ai(t) + "' module can't import itself"); (r = Q().compileNgModule(Rv, "ng:///" + t.name + "/ɵmod.js", { type: t, bootstrap: qt(e.bootstrap || jv).map(G), declarations: i.map(G), imports: qt(e.imports || jv).map(G).map(ty), exports: qt(e.exports || jv).map(G).map(ty), schemas: e.schemas ? qt(e.schemas) : null, id: e.id || null })).schemas || (r.schemas = []) } return r } }); var o = null; Object.defineProperty(t, L, { get: function() { if (null === o) { ngDevMode && Hv(t, n); var i = { name: t.name, type: t, deps: oc(t), providers: e.providers || jv, imports: [(e.imports || jv).map(G), (e.exports || jv).map(G)] }; o = Q().compileInjector(Rv, "ng:///" + t.name + "/ɵinj.js", i) } return o }, configurable: !!ngDevMode }) } function Hv(t, e, n) { if (!Yv.get(t)) { var r; if (Yv.set(t, !0), t = G(t), n) { if (!(r = be(t))) throw new Error("Unexpected value '" + t.name + "' imported by the module '" + n.name + "'. Please add an @NgModule annotation.") } else r = be(t, !0); var o = [] , a = di(r.declarations) , s = di(r.imports); qt(s).map(Wv).forEach((function(e) { p(e, t), Hv(e, !1, t) } )); var c = di(r.exports); a.forEach((function(e) { me(e = G(e)) || ge(e) || ve(e) || o.push("Unexpected value '" + ai(e) + "' declared by the module '" + ai(t) + "'. Please add a @Pipe/@Directive/@Component annotation.") } )), a.forEach((function(t) { var e = ge(t = G(t)); !me(t) && e && 0 == e.selectors.length && o.push("Directive " + ai(t) + " has no selector, please add it!") } )); var l = Object(i.h)(a.map(G), qt(s.map(Zv)).map(G)); c.forEach((function(e) { var n = (me(e = G(e)) ? "component" : ge(e) && "directive") || ve(e) && "pipe"; n && -1 === l.lastIndexOf(e) && o.push("Can't export " + n + " " + ai(e) + " from " + ai(t) + " as it was neither declared nor imported!") } )), a.forEach((function(n) { return function(e, n) { e = G(e); var i = Xv.get(e); if (i && i !== t) { if (!n) { var r = [i, t].map(ai).sort(); o.push("Type " + ai(e) + " is part of the declarations of 2 modules: " + r[0] + " and " + r[1] + "! Please consider moving " + ai(e) + " to a higher module that imports " + r[0] + " and " + r[1] + ". You can also create a new NgModule that exports and includes " + ai(e) + " then import that NgModule in " + r[0] + " and " + r[1] + ".") } } else Xv.set(e, t) }(n, e) } )), a.forEach((function(t) { if (me(t = G(t))) { var e = qv(t, "Component"); e && e.entryComponents && Xt(e.entryComponents, d) } } )); var u = qv(t, "NgModule"); if (u && (u.imports && qt(u.imports).map(Wv).forEach((function(e) { p(e, t), Hv(e, !1, t) } )), u.bootstrap && Xt(u.bootstrap, (function(t) { me(t = G(t)) || o.push(ai(t) + " cannot be used as an entry component.") } )), u.bootstrap && Xt(u.bootstrap, d), u.entryComponents && Xt(u.entryComponents, d)), o.length) throw new Error(o.join("\n")) } function d(t) { t = G(t), Xv.get(t) || o.push("Component " + ai(t) + " is not part of any NgModule or the module has not been imported into your module.") } function p(t, e) { if (me(t = G(t)) || ge(t)) throw new Error("Unexpected directive '" + t.name + "' imported by the module '" + e.name + "'. Please add an @NgModule annotation."); if (ve(t)) throw new Error("Unexpected pipe '" + t.name + "' imported by the module '" + e.name + "'. Please add an @NgModule annotation.") } } function Wv(t) { return (t = G(t)).ngModule || t } function qv(t, e) { var n = null; return i(t.__annotations__), i(t.decorators), n; function i(t) { t && t.forEach(r) } function r(t) { if (!n) if (Object.getPrototypeOf(t).ngMetadataName == e) n = t; else if (t.type) { Object.getPrototypeOf(t.type).ngMetadataName == e && (n = t.args[0]) } } } var Xv = new Map , Yv = new Map; function Kv() { Xv = new Map, Yv = new Map, Vv.length = 0 } function Zv(t) { var e = be(t = G(t), !0); return Object(i.h)(qt(di(e.exports).map((function(t) { return be(t) ? (Hv(t, !1), Zv(t)) : t } )))) } function Jv(t, e) { var n = qt(e.declarations || jv) , i = $v(t); n.forEach((function(e) { e.hasOwnProperty($) ? Qv(me(e), i) : e.hasOwnProperty(tt) || e.hasOwnProperty(et) || (e.ngSelectorScope = t) } )) } function Qv(t, e) { t.directiveDefs = function() { return Array.from(e.compilation.directives).map((function(t) { return t.hasOwnProperty($) ? me(t) : ge(t) } )).filter((function(t) { return !!t } )) } , t.pipeDefs = function() { return Array.from(e.compilation.pipes).map((function(t) { return ve(t) } )) } , t.schemas = e.schemas, t.tView = null } function $v(t) { if (!ey(t)) throw new Error(t.name + " does not have a module def (ɵmod property)"); var e = be(t); if (null !== e.transitiveCompileScopes) return e.transitiveCompileScopes; var n = { schemas: e.schemas || null, compilation: { directives: new Set, pipes: new Set }, exported: { directives: new Set, pipes: new Set } }; return di(e.imports).forEach((function(t) { var e = t; if (!ey(e)) throw new Error("Importing " + e.name + " which does not have a ɵmod property"); var i = $v(e); i.exported.directives.forEach((function(t) { return n.compilation.directives.add(t) } )), i.exported.pipes.forEach((function(t) { return n.compilation.pipes.add(t) } )) } )), di(e.declarations).forEach((function(t) { ve(t) ? n.compilation.pipes.add(t) : n.compilation.directives.add(t) } )), di(e.exports).forEach((function(t) { var e = t; if (ey(e)) { var i = $v(e); i.exported.directives.forEach((function(t) { n.compilation.directives.add(t), n.exported.directives.add(t) } )), i.exported.pipes.forEach((function(t) { n.compilation.pipes.add(t), n.exported.pipes.add(t) } )) } else ve(e) ? n.exported.pipes.add(e) : n.exported.directives.add(e) } )), e.transitiveCompileScopes = n, n } function ty(t) { return function(t) { return void 0 !== t.ngModule }(t) ? t.ngModule : t } function ey(t) { return !!be(t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function ny(t, e) { ("undefined" == typeof ngDevMode || ngDevMode) && at(); var n = null; !function(t, e) { fl(e) && (pl.set(t, e), hl.add(t)) }(t, e), oy(t, e), Object.defineProperty(t, $, { get: function() { if (null === n) { var r = Q(); if (fl(e)) { var o = ["Component '" + t.name + "' is not resolved:"]; throw e.templateUrl && o.push(" - templateUrl: " + e.templateUrl), e.styleUrls && e.styleUrls.length && o.push(" - styleUrls: " + JSON.stringify(e.styleUrls)), o.push("Did you run and wait for 'resolveComponentResources()'?"), new Error(o.join("\n")) } var a = Lv , s = e.preserveWhitespaces; void 0 === s && (s = null !== a && void 0 !== a.preserveWhitespaces && a.preserveWhitespaces); var c = e.encapsulation; void 0 === c && (c = null !== a && void 0 !== a.defaultEncapsulation ? a.defaultEncapsulation : Ot.Emulated); var l = e.templateUrl || "ng:///" + t.name + "/template.html" , u = Object(i.a)(Object(i.a)({}, sy(t, e)), { typeSourceSpan: r.createParseSourceSpan("Component", t.name, l), template: e.template || "", preserveWhitespaces: s, styles: e.styles || ie, animations: e.animations, directives: [], changeDetection: e.changeDetection, pipes: new Map, encapsulation: c, interpolation: e.interpolation, viewProviders: e.viewProviders || null }); if (u.usesInheritance && cy(t), n = r.compileComponent(Rv, l, u), Uv(), void 0 !== t.ngSelectorScope) { var d = $v(t.ngSelectorScope); Qv(n, d) } } return n }, configurable: !!ngDevMode }) } function iy(t, e) { var n = null; oy(t, e || {}), Object.defineProperty(t, tt, { get: function() { if (null === n) { var i = ry(t, e || {}); n = Q().compileDirective(Rv, i.sourceMapUrl, i.metadata) } return n }, configurable: !!ngDevMode }) } function ry(t, e) { var n = t && t.name , i = "ng:///" + n + "/ɵdir.js" , r = Q() , o = sy(t, e); return o.typeSourceSpan = r.createParseSourceSpan("Directive", n, i), o.usesInheritance && cy(t), { metadata: o, sourceMapUrl: i } } function oy(t, e) { var n = null; Object.defineProperty(t, rt, { get: function() { if (null === n) { var r = ry(t, e) , o = Q(); n = o.compileFactory(Rv, "ng:///" + t.name + "/ɵfac.js", Object(i.a)(Object(i.a)({}, r.metadata), { injectFn: "directiveInject", target: o.R3FactoryTarget.Directive })) } return n }, configurable: !!ngDevMode }) } function ay(t) { return Object.getPrototypeOf(t.prototype) === Object.prototype } function sy(t, e) { var n, i = rc(), r = i.ownPropMetadata(t); return { name: t.name, type: t, typeArgumentCount: 0, selector: void 0 !== e.selector ? e.selector : null, deps: oc(t), host: e.host || ne, propMetadata: r, inputs: e.inputs || ie, outputs: e.outputs || ie, queries: ly(t, r, uy), lifecycle: { usesOnChanges: i.hasLifecycleHook(t, "ngOnChanges") }, typeSourceSpan: null, usesInheritance: !ay(t), exportAs: (n = e.exportAs, void 0 === n ? null : hy(n)), providers: e.providers || null, viewQueries: ly(t, r, dy) } } function cy(t) { for (var e = Object.prototype, n = Object.getPrototypeOf(t.prototype).constructor; n && n !== e; ) ge(n) || me(n) || !my(n) || iy(n, null), n = Object.getPrototypeOf(n) } function ly(t, e, n) { var i = [] , r = function(r) { if (e.hasOwnProperty(r)) { var o = e[r]; o.forEach((function(e) { if (n(e)) { if (!e.selector) throw new Error("Can't construct a query for the property \"" + r + '" of "' + ai(t) + "\" since the query selector wasn't defined."); if (o.some(py)) throw new Error("Cannot combine @Input decorators with query decorators"); i.push(function(t, e) { return { propertyName: t, predicate: (n = e.selector, "string" == typeof n ? hy(n) : G(n)), descendants: e.descendants, first: e.first, read: e.read ? e.read : null, static: !!e.static }; var n }(r, e)) } } )) } }; for (var o in e) r(o); return i } function uy(t) { var e = t.ngMetadataName; return "ContentChild" === e || "ContentChildren" === e } function dy(t) { var e = t.ngMetadataName; return "ViewChild" === e || "ViewChildren" === e } function py(t) { return "Input" === t.ngMetadataName } function hy(t) { return t.split(",").map((function(t) { return t.trim() } )) } var fy = ["ngOnChanges", "ngOnInit", "ngOnDestroy", "ngDoCheck", "ngAfterViewInit", "ngAfterViewChecked", "ngAfterContentInit", "ngAfterContentChecked"]; function my(t) { var e = rc(); if (fy.some((function(n) { return e.hasLifecycleHook(t, n) } ))) return !0; var n = e.propMetadata(t); for (var i in n) for (var r = n[i], o = 0; o < r.length; o++) { var a = r[o] , s = a.ngMetadataName; if (py(a) || uy(a) || dy(a) || "Output" === s || "HostBinding" === s || "HostListener" === s) return !0 } return !1 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function gy(t, e) { var n = null , r = null; Object.defineProperty(t, rt, { get: function() { if (null === r) { var n = vy(t, e) , o = Q(); r = o.compileFactory(Rv, "ng:///" + n.name + "/ɵfac.js", Object(i.a)(Object(i.a)({}, n), { injectFn: "directiveInject", target: o.R3FactoryTarget.Pipe })) } return r }, configurable: !!ngDevMode }), Object.defineProperty(t, et, { get: function() { if (null === n) { var i = vy(t, e); n = Q().compilePipe(Rv, "ng:///" + i.name + "/ɵpipe.js", i) } return n }, configurable: !!ngDevMode }) } function vy(t, e) { return { type: t, typeArgumentCount: 0, name: t.name, deps: oc(t), pipeName: e.name, pure: void 0 === e.pure || e.pure } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var yy = h("Directive", (function(t) { return void 0 === t && (t = {}), t } ), void 0, void 0, (function(t, e) { return _y(t, e) } )) , by = h("Component", (function(t) { return void 0 === t && (t = {}), Object(i.a)({ changeDetection: At.Default }, t) } ), yy, void 0, (function(t, e) { return Oy(t, e) } )) , wy = h("Pipe", (function(t) { return Object(i.a)({ pure: !0 }, t) } ), void 0, void 0, (function(t, e) { return Py(t, e) } )) , Sy = g("Input", (function(t) { return { bindingPropertyName: t } } )) , xy = g("Output", (function(t) { return { bindingPropertyName: t } } )) , My = g("HostBinding", (function(t) { return { hostPropertyName: t } } )) , Ey = g("HostListener", (function(t, e) { return { eventName: t, args: e } } )) , Cy = ny , Ay = iy , Ty = gy , Oy = Cy , _y = Ay , Py = Ty , Iy = h("NgModule", (function(t) { return t } ), void 0, void 0, (function(t, e) { return Dy(t, e) } )); var ky = zv , Dy = ky , Ry = new ct("Application Initializer") , Ly = function() { function t(t) { var e = this; this.appInits = t, this.initialized = !1, this.done = !1, this.donePromise = new Promise((function(t, n) { e.resolve = t, e.reject = n } )) } return t.prototype.runInitializers = function() { var t = this; if (!this.initialized) { var e = [] , n = function() { t.done = !0, t.resolve() }; if (this.appInits) for (var i = 0; i < this.appInits.length; i++) { var r = this.appInits[i](); fu(r) && e.push(r) } Promise.all(e).then((function() { n() } )).catch((function(e) { t.reject(e) } )), 0 === e.length && n(), this.initialized = !0 } } , (t = Object(i.b)([Object(i.e)(0, b(Ry)), Object(i.e)(0, w()), Object(i.d)("design:paramtypes", [Array])], t)).ɵfac = function(e) { return new (e || t)(vt(Ry, 8)) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }() , Ny = new ct("AppId"); function jy() { return "" + Fy() + Fy() + Fy() } var Vy = { provide: Ny, useFactory: jy, deps: [] }; function Fy() { return String.fromCharCode(97 + Math.floor(25 * Math.random())) } var Uy, By = new ct("Platform Initializer"), zy = new ct("Platform ID"), Gy = new ct("appBootstrapListener"), Hy = new ct("Application Packages Root URL"), Wy = function() { function t() {} return t.prototype.log = function(t) { console.log(t) } , t.prototype.warn = function(t) { console.warn(t) } , t.ɵfac = function(e) { return new (e || t) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }(), qy = new ct("LocaleId"), Xy = new ct("DefaultCurrencyCode"), Yy = new ct("Translations"), Ky = new ct("TranslationsFormat"); !function(t) { t[t.Error = 0] = "Error", t[t.Warning = 1] = "Warning", t[t.Ignore = 2] = "Ignore" }(Uy || (Uy = {})); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Zy = !0 , Jy = Zy , Qy = function(t, e) { this.ngModuleFactory = t, this.componentFactories = e }; var $y = function(t) { return new Fg(t) } , tb = $y , eb = function(t) { return Promise.resolve($y(t)) } , nb = eb , ib = function(t) { var e = $y(t) , n = di(be(t).declarations).reduce((function(t, e) { var n = me(e); return n && t.push(new Tm(n)), t } ), []); return new Qy(e,n) } , rb = ib , ob = function(t) { return Promise.resolve(ib(t)) } , ab = ob , sb = function() { function t() { this.compileModuleSync = tb, this.compileModuleAsync = nb, this.compileModuleAndAllComponentsSync = rb, this.compileModuleAndAllComponentsAsync = ab } return t.prototype.clearCache = function() {} , t.prototype.clearCacheFor = function(t) {} , t.prototype.getModuleId = function(t) {} , t.ɵfac = function(e) { return new (e || t) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }() , cb = new ct("compilerOptions") , lb = function() {} , ub = Promise.resolve(0); function db(t) { "undefined" == typeof Zone ? ub.then((function() { t && t.apply(null, null) } )) : Zone.current.scheduleMicroTask("scheduleMicrotask", t) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var pb = function() { function t(t) { var e = t.enableLongStackTrace , n = void 0 !== e && e , i = t.shouldCoalesceEventChangeDetection , r = void 0 !== i && i; if (this.hasPendingMacrotasks = !1, this.hasPendingMicrotasks = !1, this.isStable = !0, this.onUnstable = new uv(!1), this.onMicrotaskEmpty = new uv(!1), this.onStable = new uv(!1), this.onError = new uv(!1), "undefined" == typeof Zone) throw new Error("In this configuration Angular requires Zone.js"); Zone.assertZonePatched(); var o, a; this._nesting = 0, this._outer = this._inner = Zone.current, Zone.wtfZoneSpec && (this._inner = this._inner.fork(Zone.wtfZoneSpec)), Zone.TaskTrackingZoneSpec && (this._inner = this._inner.fork(new Zone.TaskTrackingZoneSpec)), n && Zone.longStackTraceZoneSpec && (this._inner = this._inner.fork(Zone.longStackTraceZoneSpec)), this.shouldCoalesceEventChangeDetection = r, this.lastRequestAnimationFrameId = -1, this.nativeRequestAnimationFrame = function() { var t = J.requestAnimationFrame , e = J.cancelAnimationFrame; if ("undefined" != typeof Zone && t && e) { var n = t[Zone.__symbol__("OriginalDelegate")]; n && (t = n); var i = e[Zone.__symbol__("OriginalDelegate")]; i && (e = i) } return { nativeRequestAnimationFrame: t, nativeCancelAnimationFrame: e } }().nativeRequestAnimationFrame, a = !!(o = this).shouldCoalesceEventChangeDetection && o.nativeRequestAnimationFrame && function() { !function(t) { -1 === t.lastRequestAnimationFrameId && (t.lastRequestAnimationFrameId = t.nativeRequestAnimationFrame.call(J, (function() { t.lastRequestAnimationFrameId = -1, gb(t), mb(t) } )), gb(t)) }(o) } , o._inner = o._inner.fork({ name: "angular", properties: { isAngularZone: !0, maybeDelayChangeDetection: a }, onInvokeTask: function(t, e, n, i, r, s) { try { return vb(o), t.invokeTask(n, i, r, s) } finally { a && "eventTask" === i.type && a(), yb(o) } }, onInvoke: function(t, e, n, i, r, a, s) { try { return vb(o), t.invoke(n, i, r, a, s) } finally { yb(o) } }, onHasTask: function(t, e, n, i) { t.hasTask(n, i), e === n && ("microTask" == i.change ? (o._hasPendingMicrotasks = i.microTask, gb(o), mb(o)) : "macroTask" == i.change && (o.hasPendingMacrotasks = i.macroTask)) }, onHandleError: function(t, e, n, i) { return t.handleError(n, i), o.runOutsideAngular((function() { return o.onError.emit(i) } )), !1 } }) } return t.isInAngularZone = function() { return !0 === Zone.current.get("isAngularZone") } , t.assertInAngularZone = function() { if (!t.isInAngularZone()) throw new Error("Expected to be in Angular Zone, but it is not!") } , t.assertNotInAngularZone = function() { if (t.isInAngularZone()) throw new Error("Expected to not be in Angular Zone, but it is!") } , t.prototype.run = function(t, e, n) { return this._inner.run(t, e, n) } , t.prototype.runTask = function(t, e, n, i) { var r = this._inner , o = r.scheduleEventTask("NgZoneEvent: " + i, t, fb, hb, hb); try { return r.runTask(o, e, n) } finally { r.cancelTask(o) } } , t.prototype.runGuarded = function(t, e, n) { return this._inner.runGuarded(t, e, n) } , t.prototype.runOutsideAngular = function(t) { return this._outer.run(t) } , t }(); function hb() {} var fb = {}; function mb(t) { if (0 == t._nesting && !t.hasPendingMicrotasks && !t.isStable) try { t._nesting++, t.onMicrotaskEmpty.emit(null) } finally { if (t._nesting--, !t.hasPendingMicrotasks) try { t.runOutsideAngular((function() { return t.onStable.emit(null) } )) } finally { t.isStable = !0 } } } function gb(t) { t._hasPendingMicrotasks || t.shouldCoalesceEventChangeDetection && -1 !== t.lastRequestAnimationFrameId ? t.hasPendingMicrotasks = !0 : t.hasPendingMicrotasks = !1 } function vb(t) { t._nesting++, t.isStable && (t.isStable = !1, t.onUnstable.emit(null)) } function yb(t) { t._nesting--, mb(t) } var bb = function() { function t() { this.hasPendingMicrotasks = !1, this.hasPendingMacrotasks = !1, this.isStable = !0, this.onUnstable = new uv, this.onMicrotaskEmpty = new uv, this.onStable = new uv, this.onError = new uv } return t.prototype.run = function(t, e, n) { return t.apply(e, n) } , t.prototype.runGuarded = function(t, e, n) { return t.apply(e, n) } , t.prototype.runOutsideAngular = function(t) { return t() } , t.prototype.runTask = function(t, e, n, i) { return t.apply(e, n) } , t }() , wb = function() { function t(t) { var e = this; this._ngZone = t, this._pendingCount = 0, this._isZoneStable = !0, this._didWork = !1, this._callbacks = [], this.taskTrackingZone = null, this._watchAngularEvents(), t.run((function() { e.taskTrackingZone = "undefined" == typeof Zone ? null : Zone.current.get("TaskTrackingZone") } )) } return t.prototype._watchAngularEvents = function() { var t = this; this._ngZone.onUnstable.subscribe({ next: function() { t._didWork = !0, t._isZoneStable = !1 } }), this._ngZone.runOutsideAngular((function() { t._ngZone.onStable.subscribe({ next: function() { pb.assertNotInAngularZone(), db((function() { t._isZoneStable = !0, t._runCallbacksIfReady() } )) } }) } )) } , t.prototype.increasePendingRequestCount = function() { return this._pendingCount += 1, this._didWork = !0, this._pendingCount } , t.prototype.decreasePendingRequestCount = function() { if (this._pendingCount -= 1, this._pendingCount < 0) throw new Error("pending async requests below zero"); return this._runCallbacksIfReady(), this._pendingCount } , t.prototype.isStable = function() { return this._isZoneStable && 0 === this._pendingCount && !this._ngZone.hasPendingMacrotasks } , t.prototype._runCallbacksIfReady = function() { var t = this; if (this.isStable()) db((function() { for (; 0 !== t._callbacks.length; ) { var e = t._callbacks.pop(); clearTimeout(e.timeoutId), e.doneCb(t._didWork) } t._didWork = !1 } )); else { var e = this.getPendingTasks(); this._callbacks = this._callbacks.filter((function(t) { return !t.updateCb || !t.updateCb(e) || (clearTimeout(t.timeoutId), !1) } )), this._didWork = !0 } } , t.prototype.getPendingTasks = function() { return this.taskTrackingZone ? this.taskTrackingZone.macroTasks.map((function(t) { return { source: t.source, creationLocation: t.creationLocation, data: t.data } } )) : [] } , t.prototype.addCallback = function(t, e, n) { var i = this , r = -1; e && e > 0 && (r = setTimeout((function() { i._callbacks = i._callbacks.filter((function(t) { return t.timeoutId !== r } )), t(i._didWork, i.getPendingTasks()) } ), e)), this._callbacks.push({ doneCb: t, timeoutId: r, updateCb: n }) } , t.prototype.whenStable = function(t, e, n) { if (n && !this.taskTrackingZone) throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?'); this.addCallback(t, e, n), this._runCallbacksIfReady() } , t.prototype.getPendingRequestCount = function() { return this._pendingCount } , t.prototype.findProviders = function(t, e, n) { return [] } , (t = Object(i.b)([Object(i.d)("design:paramtypes", [pb])], t)).ɵfac = function(e) { return new (e || t)(vt(pb)) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }() , Sb = function() { function t() { this._applications = new Map, Eb.addToWindow(this) } return t.prototype.registerApplication = function(t, e) { this._applications.set(t, e) } , t.prototype.unregisterApplication = function(t) { this._applications.delete(t) } , t.prototype.unregisterAllApplications = function() { this._applications.clear() } , t.prototype.getTestability = function(t) { return this._applications.get(t) || null } , t.prototype.getAllTestabilities = function() { return Array.from(this._applications.values()) } , t.prototype.getAllRootElements = function() { return Array.from(this._applications.keys()) } , t.prototype.findTestabilityInTree = function(t, e) { return void 0 === e && (e = !0), Eb.findTestabilityInTree(this, t, e) } , (t = Object(i.b)([Object(i.d)("design:paramtypes", [])], t)).ɵfac = function(e) { return new (e || t) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function xb(t) { Eb = t } var Mb, Eb = new (function() { function t() {} return t.prototype.addToWindow = function(t) {} , t.prototype.findTestabilityInTree = function(t, e, n) { return null } , t }()), Cb = Ab; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ab(t, e, n) { var r; ngDevMode && (void 0 === r && (r = "Type passed in is not NgModuleType, it does not have 'ɵmod' property."), be(n) || zt(r)); var o = t.get(cb, []).concat(e); ("undefined" == typeof ngJitMode || ngJitMode) && function(t) { if (null !== Lv) { if (t.defaultEncapsulation !== Lv.defaultEncapsulation) return void (ngDevMode && console.error("Provided value for `defaultEncapsulation` can not be changed once it has been set.")); if (t.preserveWhitespaces !== Lv.preserveWhitespaces) return void (ngDevMode && console.error("Provided value for `preserveWhitespaces` can not be changed once it has been set.")) } Lv = t }({ defaultEncapsulation: Bb(o.map((function(t) { return t.defaultEncapsulation } ))), preserveWhitespaces: Bb(o.map((function(t) { return t.preserveWhitespaces } ))) }); var a = new Fg(n); if (0 === pl.size) return Promise.resolve(a); var s, c, l = (s = o.map((function(t) { return t.providers } )), c = [], s.forEach((function(t) { return t && c.push.apply(c, Object(i.h)(t)) } )), c); if (0 === l.length) return Promise.resolve(a); var u = Q() , d = Pc.create({ providers: l }).get(u.ResourceLoader); return dl((function(t) { return Promise.resolve(d.get(t)) } )).then((function() { return a } )) } var Tb = function() { ngDevMode && fp() } , Ob = _b; function _b(t) { return t.isBoundToModule } var Pb = new ct("AllowMultipleToken") , Ib = function(t, e) { this.name = t, this.token = e }; function kb(t) { if (Mb && !Mb.destroyed && !Mb.injector.get(Pb, !1)) throw new Error("There can be only one platform. Destroy the previous one to create a new one."); Tb(), Mb = t.get(jb); var e = t.get(By, null); return e && e.forEach((function(t) { return t() } )), Mb } function Db(t, e, n) { void 0 === n && (n = []); var i = "Platform: " + e , r = new ct(i); return function(e) { void 0 === e && (e = []); var o = Nb(); if (!o || o.injector.get(Pb, !1)) if (t) t(n.concat(e).concat({ provide: r, useValue: !0 })); else { var a = n.concat(e).concat({ provide: r, useValue: !0 }, { provide: fc, useValue: "platform" }); kb(Pc.create({ providers: a, name: i })) } return Rb(r) } } function Rb(t) { var e = Nb(); if (!e) throw new Error("No platform exists!"); if (!e.injector.get(t, null)) throw new Error("A platform with a different configuration has been created. Please destroy it first."); return e } function Lb() { Mb && !Mb.destroyed && Mb.destroy() } function Nb() { return Mb && !Mb.destroyed ? Mb : null } var jb = function() { function t(t) { this._injector = t, this._modules = [], this._destroyListeners = [], this._destroyed = !1 } return t.prototype.bootstrapModuleFactory = function(t, e) { var n = this , i = function(t, e) { var n; n = "noop" === t ? new bb : ("zone.js" === t ? void 0 : t) || new pb({ enableLongStackTrace: $i(), shouldCoalesceEventChangeDetection: e }); return n }(e ? e.ngZone : void 0, e && e.ngZoneEventCoalescing || !1) , r = [{ provide: pb, useValue: i }]; return i.run((function() { var e = Pc.create({ providers: r, parent: n.injector, name: t.moduleType.name }) , o = t.create(e) , a = o.injector.get(Ri, null); if (!a) throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?"); return o.onDestroy((function() { return Ub(n._modules, o) } )), i.runOutsideAngular((function() { return i.onError.subscribe({ next: function(t) { a.handleError(t) } }) } )), function(t, e, n) { try { var i = n(); return fu(i) ? i.catch((function(n) { throw e.runOutsideAngular((function() { return t.handleError(n) } )), n } )) : i } catch (n) { throw e.runOutsideAngular((function() { return t.handleError(n) } )), n } }(a, i, (function() { var t = o.injector.get(Ly); return t.runInitializers(), t.donePromise.then((function() { Jy && Ig(o.injector.get(qy, Um) || Um); return n._moduleDoBootstrap(o), o } )) } )) } )) } , t.prototype.bootstrapModule = function(t, e) { var n = this; void 0 === e && (e = []); var i = Vb({}, e); return Cb(this.injector, i, t).then((function(t) { return n.bootstrapModuleFactory(t, i) } )) } , t.prototype._moduleDoBootstrap = function(t) { var e = t.injector.get(Fb); if (t._bootstrapComponents.length > 0) t._bootstrapComponents.forEach((function(t) { return e.bootstrap(t) } )); else { if (!t.instance.ngDoBootstrap) throw new Error("The module " + F(t.instance.constructor) + ' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.'); t.instance.ngDoBootstrap(e) } this._modules.push(t) } , t.prototype.onDestroy = function(t) { this._destroyListeners.push(t) } , Object.defineProperty(t.prototype, "injector", { get: function() { return this._injector }, enumerable: !0, configurable: !0 }), t.prototype.destroy = function() { if (this._destroyed) throw new Error("The platform has already been destroyed!"); this._modules.slice().forEach((function(t) { return t.destroy() } )), this._destroyListeners.forEach((function(t) { return t() } )), this._destroyed = !0 } , Object.defineProperty(t.prototype, "destroyed", { get: function() { return this._destroyed }, enumerable: !0, configurable: !0 }), (t = Object(i.b)([Object(i.d)("design:paramtypes", [Pc])], t)).ɵfac = function(e) { return new (e || t)(vt(Pc)) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }(); function Vb(t, e) { return t = Array.isArray(e) ? e.reduce(Vb, t) : Object(i.a)(Object(i.a)({}, t), e) } var Fb = function() { function t(t, e, n, i, r, o) { var l = this; this._zone = t, this._console = e, this._injector = n, this._exceptionHandler = i, this._componentFactoryResolver = r, this._initStatus = o, this._bootstrapListeners = [], this._views = [], this._runningTick = !1, this._enforceNoNewChanges = !1, this._stable = !0, this.componentTypes = [], this.components = [], this._enforceNoNewChanges = $i(), this._zone.onMicrotaskEmpty.subscribe({ next: function() { l._zone.run((function() { l.tick() } )) } }); var u = new a.a((function(t) { l._stable = l._zone.isStable && !l._zone.hasPendingMacrotasks && !l._zone.hasPendingMicrotasks, l._zone.runOutsideAngular((function() { t.next(l._stable), t.complete() } )) } )) , d = new a.a((function(t) { var e; l._zone.runOutsideAngular((function() { e = l._zone.onStable.subscribe((function() { pb.assertNotInAngularZone(), db((function() { l._stable || l._zone.hasPendingMacrotasks || l._zone.hasPendingMicrotasks || (l._stable = !0, t.next(!0)) } )) } )) } )); var n = l._zone.onUnstable.subscribe((function() { pb.assertInAngularZone(), l._stable && (l._stable = !1, l._zone.runOutsideAngular((function() { t.next(!1) } ))) } )); return function() { e.unsubscribe(), n.unsubscribe() } } )); this.isStable = Object(s.a)(u, d.pipe(Object(c.a)())) } return t.prototype.bootstrap = function(t, e) { var n, i = this; if (!this._initStatus.done) throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module."); n = t instanceof Hp ? t : this._componentFactoryResolver.resolveComponentFactory(t), this.componentTypes.push(n.componentType); var r = Ob(n) ? void 0 : this._injector.get(_t) , o = e || n.selector , a = n.create(Pc.NULL, [], o, r); a.onDestroy((function() { i._unloadComponent(a) } )); var s = a.injector.get(wb, null); return s && a.injector.get(Sb).registerApplication(a.location.nativeElement, s), this._loadComponent(a), $i() && this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."), a } , t.prototype.tick = function() { var t, e, n, r, o = this; if (this._runningTick) throw new Error("ApplicationRef.tick is called recursively"); try { this._runningTick = !0; try { for (var a = Object(i.j)(this._views), s = a.next(); !s.done; s = a.next()) { s.value.detectChanges() } } catch (e) { t = { error: e } } finally { try { s && !s.done && (e = a.return) && e.call(a) } finally { if (t) throw t.error } } if (this._enforceNoNewChanges) try { for (var c = Object(i.j)(this._views), l = c.next(); !l.done; l = c.next()) { l.value.checkNoChanges() } } catch (t) { n = { error: t } } finally { try { l && !l.done && (r = c.return) && r.call(c) } finally { if (n) throw n.error } } } catch (t) { this._zone.runOutsideAngular((function() { return o._exceptionHandler.handleError(t) } )) } finally { this._runningTick = !1 } } , t.prototype.attachView = function(t) { var e = t; this._views.push(e), e.attachToAppRef(this) } , t.prototype.detachView = function(t) { var e = t; Ub(this._views, e), e.detachFromAppRef() } , t.prototype._loadComponent = function(t) { this.attachView(t.hostView), this.tick(), this.components.push(t), this._injector.get(Gy, []).concat(this._bootstrapListeners).forEach((function(e) { return e(t) } )) } , t.prototype._unloadComponent = function(t) { this.detachView(t.hostView), Ub(this.components, t) } , t.prototype.ngOnDestroy = function() { this._views.slice().forEach((function(t) { return t.destroy() } )) } , Object.defineProperty(t.prototype, "viewCount", { get: function() { return this._views.length }, enumerable: !0, configurable: !0 }), (t = Object(i.b)([Object(i.d)("design:paramtypes", [pb, Wy, Pc, Ri, Yp, Ly])], t)).ɵfac = function(e) { return new (e || t)(vt(pb),vt(Wy),vt(Pc),vt(Ri),vt(Yp),vt(Ly)) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }(); function Ub(t, e) { var n = t.indexOf(e); n > -1 && t.splice(n, 1) } function Bb(t) { for (var e = t.length - 1; e >= 0; e--) if (void 0 !== t[e]) return t[e] } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var zb = function() {}; function Gb(t) { var e = jg(t); if (!e) throw qb(t); return e } function Hb(t) { var e = jg(t); if (!e) throw qb(t); return new Fg(e) } var Wb = Hb; function qb(t) { return new Error("No module with ID " + t + " loaded") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Xb = function() {} , Yb = { factoryPathPrefix: "", factoryPathSuffix: ".ngfactory" } , Kb = function() { function t(t, e) { this._compiler = t, this._config = e || Yb } return t.prototype.load = function(t) { return !Jy && this._compiler instanceof sb ? this.loadFactory(t) : this.loadAndCompile(t) } , t.prototype.loadAndCompile = function(t) { var e = this , r = Object(i.f)(t.split("#"), 2) , o = r[0] , a = r[1]; return void 0 === a && (a = "default"), n(519)(o).then((function(t) { return t[a] } )).then((function(t) { return Zb(t, o, a) } )).then((function(t) { return e._compiler.compileModuleAsync(t) } )) } , t.prototype.loadFactory = function(t) { var e = Object(i.f)(t.split("#"), 2) , r = e[0] , o = e[1] , a = "NgFactory"; return void 0 === o && (o = "default", a = ""), n(519)(this._config.factoryPathPrefix + r + this._config.factoryPathSuffix).then((function(t) { return t[o + a] } )).then((function(t) { return Zb(t, r, o) } )) } , (t = Object(i.b)([Object(i.e)(1, w()), Object(i.d)("design:paramtypes", [sb, Xb])], t)).ɵfac = function(e) { return new (e || t)(vt(sb),vt(Xb, 8)) } , t.ɵprov = O({ token: t, factory: function(e) { return t.ɵfac(e) } }), t }(); function Zb(t, e, n) { if (!t) throw new Error("Cannot find '" + n + "' in '" + e + "'"); return t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Jb = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e }(Ws) , Qb = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return Object(i.c)(e, t), e }(Jb) , $b = function(t, e) { this.name = t, this.callback = e } , tw = function() { function t(t, e, n) { this.listeners = [], this.parent = null, this._debugContext = n, this.nativeNode = t, e && e instanceof ew && e.addChild(this) } return Object.defineProperty(t.prototype, "injector", { get: function() { return this._debugContext.injector }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "componentInstance", { get: function() { return this._debugContext.component }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return this._debugContext.context }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "references", { get: function() { return this._debugContext.references }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "providerTokens", { get: function() { return this._debugContext.providerTokens }, enumerable: !0, configurable: !0 }), t }() , ew = function(t) { function e(e, n, i) { var r = t.call(this, e, n, i) || this; return r.properties = {}, r.attributes = {}, r.classes = {}, r.styles = {}, r.childNodes = [], r.nativeElement = e, r } return Object(i.c)(e, t), e.prototype.addChild = function(t) { t && (this.childNodes.push(t), t.parent = this) } , e.prototype.removeChild = function(t) { var e = this.childNodes.indexOf(t); -1 !== e && (t.parent = null, this.childNodes.splice(e, 1)) } , e.prototype.insertChildrenAfter = function(t, e) { var n, r = this, o = this.childNodes.indexOf(t); -1 !== o && ((n = this.childNodes).splice.apply(n, Object(i.h)([o + 1, 0], e)), e.forEach((function(e) { e.parent && e.parent.removeChild(e), t.parent = r } ))) } , e.prototype.insertBefore = function(t, e) { var n = this.childNodes.indexOf(t); -1 === n ? this.addChild(e) : (e.parent && e.parent.removeChild(e), e.parent = this, this.childNodes.splice(n, 0, e)) } , e.prototype.query = function(t) { return this.queryAll(t)[0] || null } , e.prototype.queryAll = function(t) { var e = []; return iw(this, t, e), e } , e.prototype.queryAllNodes = function(t) { var e = []; return rw(this, t, e), e } , Object.defineProperty(e.prototype, "children", { get: function() { return this.childNodes.filter((function(t) { return t instanceof e } )) }, enumerable: !0, configurable: !0 }), e.prototype.triggerEventHandler = function(t, e) { this.listeners.forEach((function(n) { n.name == t && n.callback(e) } )) } , e }(tw); function nw(t) { return t.map((function(t) { return t.nativeElement } )) } function iw(t, e, n) { t.childNodes.forEach((function(t) { t instanceof ew && (e(t) && n.push(t), iw(t, e, n)) } )) } function rw(t, e, n) { t instanceof ew && t.childNodes.forEach((function(t) { e(t) && n.push(t), t instanceof ew && rw(t, e, n) } )) } var ow = function() { function t(t) { this.nativeNode = t } return Object.defineProperty(t.prototype, "parent", { get: function() { var t = this.nativeNode.parentNode; return t ? new aw(t) : null }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "injector", { get: function() { return op(this.nativeNode) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "componentInstance", { get: function() { var t = this.nativeNode; return t && (ep(t) || ip(t)) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return ep(this.nativeNode) || np(this.nativeNode) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "listeners", { get: function() { return lp(this.nativeNode).filter((function(t) { return "dom" === t.type } )) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "references", { get: function() { return t = this.nativeNode, null === (e = sp(t, !1)) ? {} : (void 0 === e.localRefs && (e.localRefs = function(t, e) { var n = t[1].data[e]; if (n && n.localNames) { for (var i = {}, r = n.index + 1, o = 0; o < n.localNames.length; o += 2) i[n.localNames[o]] = t[r], r++; return i } return null }(e.lView, e.nodeIndex)), e.localRefs || {}); var t, e }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "providerTokens", { get: function() { return function(t) { var e = sp(t, !1); if (null === e) return []; for (var n, i = e.lView[1], r = i.data[e.nodeIndex], o = [], a = 65535 & r.providerIndexes, s = r.directiveEnd, c = a; c < s; c++) { var l = i.data[c]; void 0 !== (n = l).type && void 0 !== n.template && void 0 !== n.declaredInputs && (l = l.type), o.push(l) } return o }(this.nativeNode) }, enumerable: !0, configurable: !0 }), t }() , aw = function(t) { function e(e) { return ngDevMode && Gt(e), t.call(this, e) || this } return Object(i.c)(e, t), Object.defineProperty(e.prototype, "nativeElement", { get: function() { return this.nativeNode.nodeType == Node.ELEMENT_NODE ? this.nativeNode : null }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "name", { get: function() { try { var t = sp(this.nativeNode); return t.lView[1].data[t.nodeIndex].tagName } catch (t) { return this.nativeNode.nodeName } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "properties", { get: function() { var t = sp(this.nativeNode, !1); if (null == t) return {}; var e = t.lView , n = e[1].data , i = n[t.nodeIndex] , r = {}; return function(t, e) { if (t) for (var n = Object.getPrototypeOf(t), i = Node.prototype; null !== n && n !== i; ) { var r = Object.getOwnPropertyDescriptors(n); for (var o in r) if (!o.startsWith("__") && !o.startsWith("on")) { var a = t[o]; sw(a) && (e[o] = a) } n = Object.getPrototypeOf(n) } }(this.nativeElement, r), function(t, e, n, i) { var r = e.propertyBindings; if (null !== r) for (var o = 0; o < r.length; o++) { var a = r[o] , s = i[a].split("�") , c = s[0]; if (s.length > 1) { for (var l = s[1], u = 1; u < s.length - 1; u++) l += oi(n[a + u - 1]) + s[u + 1]; t[c] = l } else t[c] = n[a] } }(r, i, e, n), r }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "attributes", { get: function() { var t = {} , e = this.nativeElement; if (!e) return t; var n = sp(e, !1); if (null == n) return {}; var i = n.lView[1].data[n.nodeIndex].attrs , r = []; if (i) for (var o = 0; o < i.length; ) { var a = i[o]; if ("string" != typeof a) break; var s = i[o + 1]; t[a] = s, r.push(a.toLowerCase()), o += 2 } var c = e.attributes; for (o = 0; o < c.length; o++) { var l = c[o] , u = l.name.toLowerCase(); -1 === r.indexOf(u) && (t[u] = l.value) } return t }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "styles", { get: function() { return this.nativeElement && this.nativeElement.style ? this.nativeElement.style : {} }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "classes", { get: function() { var t = {} , e = this.nativeElement.className; return (e && "string" != typeof e ? e.baseVal.split(" ") : e.split(" ")).forEach((function(e) { return t[e] = !0 } )), t }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "childNodes", { get: function() { for (var t = this.nativeNode.childNodes, e = [], n = 0; n < t.length; n++) { var i = t[n]; e.push(fw(i)) } return e }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "children", { get: function() { var t = this.nativeElement; if (!t) return []; for (var e = t.children, n = [], i = 0; i < e.length; i++) { var r = e[i]; n.push(fw(r)) } return n }, enumerable: !0, configurable: !0 }), e.prototype.query = function(t) { return this.queryAll(t)[0] || null } , e.prototype.queryAll = function(t) { var e = []; return cw(this, t, e, !0), e } , e.prototype.queryAllNodes = function(t) { var e = []; return cw(this, t, e, !1), e } , e.prototype.triggerEventHandler = function(t, e) { var n = this.nativeNode , i = []; this.listeners.forEach((function(r) { if (r.name === t) { var o = r.callback; o.call(n, e), i.push(o) } } )), "function" == typeof n.eventListeners && n.eventListeners(t).forEach((function(t) { if (-1 !== t.toString().indexOf("__ngUnwrap__")) { var r = t("__ngUnwrap__"); return -1 === i.indexOf(r) && r.call(n, e) } } )) } , e }(ow); function sw(t) { return "string" == typeof t || "boolean" == typeof t || "number" == typeof t || null === t } function cw(t, e, n, i) { var r = sp(t.nativeNode, !1); null !== r ? lw(r.lView[1].data[r.nodeIndex], r.lView, e, n, i, t.nativeNode) : pw(t.nativeNode, e, n, i) } function lw(t, e, n, r, o, a) { var s, c, l = He(t, e); if (3 === t.type || 4 === t.type) { if (dw(l, n, r, o, a), Me(t)) (p = Xe(t.index, e)) && p[1].firstChild && lw(p[1].firstChild, p, n, r, o, a); else t.child && lw(t.child, e, n, r, o, a), l && pw(l, n, r, o); var u = e[t.index]; Se(u) && uw(u, n, r, o, a) } else if (0 === t.type) { var d = e[t.index]; dw(d[7], n, r, o, a), uw(d, n, r, o, a) } else if (1 === t.type) { var p, h = (p = e[16])[6].projection[t.projection]; if (Array.isArray(h)) try { for (var f = Object(i.j)(h), m = f.next(); !m.done; m = f.next()) { dw(m.value, n, r, o, a) } } catch (t) { s = { error: t } } finally { try { m && !m.done && (c = f.return) && c.call(f) } finally { if (s) throw s.error } } else if (h) { var g, v = p[3]; lw(g = v[1].data[h.index], v, n, r, o, a) } } else t.child && lw(t.child, e, n, r, o, a); a !== l && ((g = 4 & t.flags ? t.projectionNext : t.next) && lw(g, e, n, r, o, a)) } function uw(t, e, n, i, r) { for (var o = 10; o < t.length; o++) { var a = t[o]; lw(a[1].node, a, e, n, i, r) } } function dw(t, e, n, i, r) { if (r !== t) { var o = mw(t); if (!o) return; (i && o instanceof aw && e(o) && -1 === n.indexOf(o) || !i && e(o) && -1 === n.indexOf(o)) && n.push(o) } } function pw(t, e, n, i) { for (var r = t.childNodes, o = r.length, a = 0; a < o; a++) { var s = r[a] , c = mw(s); c && ((i && c instanceof aw && e(c) && -1 === n.indexOf(c) || !i && e(c) && -1 === n.indexOf(c)) && n.push(c), pw(s, e, n, i)) } } var hw = new Map; function fw(t) { return t instanceof Node ? (t.hasOwnProperty("__ng_debug__") || (t.__ng_debug__ = t.nodeType == Node.ELEMENT_NODE ? new aw(t) : new ow(t)), t.__ng_debug__) : null } var mw = fw; function gw(t) { return function(t) { return hw.get(t) || null }(t) } var vw = function(t) { return null }; function yw(t) { hw.set(t.nativeNode, t) } var bw = ow , ww = aw , Sw = Db(null, "core", [{ provide: zy, useValue: "unknown" }, { provide: jb, deps: [Pc] }, { provide: Sb, deps: [] }, { provide: Wy, deps: [] }]); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function xw() { return xh } function Mw() { return Mh } function Ew(t) { return t = t || ("undefined" != typeof ngI18nClosureMode && ngI18nClosureMode && "undefined" != typeof goog && "en" !== goog.LOCALE ? goog.LOCALE : Jy && "undefined" != typeof $localize && $localize.locale || Um), Jy && Ig(t), t } var Cw = Bm , Aw = [{ provide: Fb, useClass: Fb, deps: [pb, Wy, Pc, Ri, Yp, Ly] }, { provide: Am, deps: [pb], useFactory: Tw }, { provide: Ly, useClass: Ly, deps: [[new w, Ry]] }, { provide: sb, useClass: sb, deps: [] }, Vy, { provide: yh, useFactory: xw, deps: [] }, { provide: bh, useFactory: Mw, deps: [] }, { provide: qy, useFactory: Ew, deps: [[new b(qy), new w, new x]] }, { provide: Xy, useValue: Cw }]; function Tw(t) { var e = []; return t.onStable.subscribe((function() { for (; e.length; ) e.pop()() } )), function(t) { e.push(t) } } var Ow, _w = function() { function t(t) {} return (t = Object(i.b)([Object(i.d)("design:paramtypes", [Fb])], t)).ɵmod = ue({ type: t }), t.ɵinj = P({ factory: function(e) { return new (e || t)(vt(Fb)) }, providers: Aw }), t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Pw(t, e, n, i, r, o) { t |= 1; var a = cf(e) , s = a.matchedQueries , c = a.references; return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, flags: t, checkIndex: -1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: s, matchedQueryIds: a.matchedQueryIds, references: c, ngContentIndex: n, childCount: i, bindings: [], bindingFlags: 0, outputs: [], element: { ns: null, name: null, attrs: null, template: o ? pf(o) : null, componentProvider: null, componentView: null, componentRendererType: null, publicProviders: null, allProviders: null, handleEvent: r || zh }, provider: null, text: null, query: null, ngContent: null } } function Iw(t, e, n, r, o, a, s, c, l, u, d, p) { var h; void 0 === s && (s = []), u || (u = zh); var f = cf(n) , m = f.matchedQueries , g = f.references , v = f.matchedQueryIds , y = null , b = null; a && (y = (h = Object(i.f)(bf(a), 2))[0], b = h[1]), c = c || []; for (var w = [], S = 0; S < c.length; S++) { var x = Object(i.f)(c[S], 3) , M = x[0] , E = x[1] , C = x[2] , A = Object(i.f)(bf(E), 2) , T = A[0] , O = A[1] , _ = void 0 , P = void 0; switch (15 & M) { case 4: P = C; break; case 1: case 8: _ = C } w[S] = { flags: M, ns: T, name: O, nonMinifiedName: O, securityContext: _, suffix: P } } l = l || []; var I = []; for (S = 0; S < l.length; S++) { var k = Object(i.f)(l[S], 2) , D = k[0] , R = k[1]; I[S] = { type: 0, target: D, eventName: R, propName: null } } var L = (s = s || []).map((function(t) { var e = Object(i.f)(t, 2) , n = e[0] , r = e[1] , o = Object(i.f)(bf(n), 2); return [o[0], o[1], r] } )); return p = function(t) { if (t && "$$undefined" === t.id) { var e = null != t.encapsulation && t.encapsulation !== Ot.None || t.styles.length || Object.keys(t.data).length; t.id = e ? "c" + Xh++ : "$$empty" } return t && "$$empty" === t.id && (t = null), t || null }(p), d && (e |= 33554432), { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: t, flags: e |= 1, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: m, matchedQueryIds: v, references: g, ngContentIndex: r, childCount: o, bindings: w, bindingFlags: wf(w), outputs: I, element: { ns: y, name: b, attrs: L, template: null, componentProvider: null, componentView: d || null, componentRendererType: p, publicProviders: null, allProviders: null, handleEvent: u || zh }, provider: null, text: null, query: null, ngContent: null } } function kw(t, e, n) { var r, o = n.element, a = t.root.selectorOrNode, s = t.renderer; if (t.parent || !a) { r = o.name ? s.createElement(o.name, o.ns) : s.createComment(""); var c = uf(t, e, n); c && s.appendChild(c, r) } else { var l = !!o.componentRendererType && o.componentRendererType.encapsulation === Ot.ShadowDom; r = s.selectRootElement(a, l) } if (o.attrs) for (var u = 0; u < o.attrs.length; u++) { var d = Object(i.f)(o.attrs[u], 3) , p = d[0] , h = d[1] , f = d[2]; s.setAttribute(r, h, f, p) } return r } function Dw(t, e, n, i) { for (var r = 0; r < n.outputs.length; r++) { var o = n.outputs[r] , a = Rw(t, n.nodeIndex, rf(o.target, o.eventName)) , s = o.target , c = t; "component" === o.target && (s = null, c = e); var l = c.renderer.listen(s || i, o.eventName, a); t.disposables[n.outputIndex + r] = l } } function Rw(t, e, n) { return function(i) { return $h(t, e, n, i) } } function Lw(t, e, n, i) { if (!Kh(t, e, n, i)) return !1; var r = e.bindings[n] , o = Nh(t, e.nodeIndex) , a = o.renderElement , s = r.name; switch (15 & r.flags) { case 1: !function(t, e, n, i, r, o) { var a = e.securityContext , s = a ? t.root.sanitizer.sanitize(a, o) : o; s = null != s ? s.toString() : null; var c = t.renderer; null != o ? c.setAttribute(n, r, s, i) : c.removeAttribute(n, r, i) }(t, r, a, r.ns, s, i); break; case 2: !function(t, e, n, i) { var r = t.renderer; i ? r.addClass(e, n) : r.removeClass(e, n) }(t, a, s, i); break; case 4: !function(t, e, n, i, r) { var o = t.root.sanitizer.sanitize(lr.STYLE, r); if (null != o) { o = o.toString(); var a = e.suffix; null != a && (o += a) } else o = null; var s = t.renderer; null != o ? s.setStyle(n, i, o) : s.removeStyle(n, i) }(t, r, a, s, i); break; case 8: !function(t, e, n, i, r) { var o = e.securityContext , a = o ? t.root.sanitizer.sanitize(o, r) : r; t.renderer.setProperty(n, i, a) }/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (33554432 & e.flags && 32 & r.flags ? o.componentView : t, r, a, s, i) } return !0 } function Nw(t, e, n) { var i = []; for (var r in n) { var o = n[r]; i.push({ propName: r, bindingType: o }) } return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: -1, flags: t, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, ngContentIndex: -1, matchedQueries: {}, matchedQueryIds: 0, references: {}, childCount: 0, bindings: [], bindingFlags: 0, outputs: [], element: null, provider: null, text: null, query: { id: e, filterId: sf(e), bindings: i }, ngContent: null } } function jw(t) { for (var e = t.def.nodeMatchedQueries; t.parent && af(t); ) { var n = t.parentNodeDef; t = t.parent; for (var i = n.nodeIndex + n.childCount, r = 0; r <= i; r++) { 67108864 & (o = t.def.nodes[r]).flags && 536870912 & o.flags && (o.query.filterId & e) === o.query.filterId && Fh(t, r).setDirty(), !(1 & o.flags && r + o.childCount < n.nodeIndex) && 67108864 & o.childFlags && 536870912 & o.childFlags || (r += o.childCount) } } if (134217728 & t.def.nodeFlags) for (r = 0; r < t.def.nodes.length; r++) { var o; 134217728 & (o = t.def.nodes[r]).flags && 536870912 & o.flags && Fh(t, r).setDirty(), r += o.childCount } } function Vw(t, e) { var n = Fh(t, e.nodeIndex); if (n.dirty) { var i, r = void 0; if (67108864 & e.flags) { var o = e.parent.parent; r = Fw(t, o.nodeIndex, o.nodeIndex + o.childCount, e.query, []), i = jh(t, e.parent.nodeIndex).instance } else 134217728 & e.flags && (r = Fw(t, 0, t.def.nodes.length - 1, e.query, []), i = t.component); n.reset(r); for (var a = e.query.bindings, s = !1, c = 0; c < a.length; c++) { var l = a[c] , u = void 0; switch (l.bindingType) { case 0: u = n.first; break; case 1: u = n, s = !0 } i[l.propName] = u } s && n.notifyOnChanges() } } function Fw(t, e, n, i, r) { for (var o = e; o <= n; o++) { var a = t.def.nodes[o] , s = a.matchedQueries[i.id]; if (null != s && r.push(Uw(t, a, s)), 1 & a.flags && a.element.template && (a.element.template.nodeMatchedQueries & i.filterId) === i.filterId) { var c = Nh(t, o); if ((a.childMatchedQueries & i.filterId) === i.filterId && (Fw(t, o + 1, o + a.childCount, i, r), o += a.childCount), 16777216 & a.flags) for (var l = c.viewContainer._embeddedViews, u = 0; u < l.length; u++) { var d = l[u] , p = tf(d); p && p === c && Fw(d, 0, d.def.nodes.length - 1, i, r) } var h = c.template._projectedViews; if (h) for (u = 0; u < h.length; u++) { var f = h[u]; Fw(f, 0, f.def.nodes.length - 1, i, r) } } (a.childMatchedQueries & i.filterId) !== i.filterId && (o += a.childCount) } return r } function Uw(t, e, n) { if (null != n) switch (n) { case 1: return Nh(t, e.nodeIndex).renderElement; case 0: return new Qp(Nh(t, e.nodeIndex).renderElement); case 2: return Nh(t, e.nodeIndex).template; case 3: return Nh(t, e.nodeIndex).viewContainer; case 4: return jh(t, e.nodeIndex).instance } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Bw(t, e) { return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: -1, flags: 8, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: {}, matchedQueryIds: 0, references: {}, ngContentIndex: t, childCount: 0, bindings: [], bindingFlags: 0, outputs: [], element: null, provider: null, text: null, query: null, ngContent: { index: e } } } function zw(t, e, n) { var i = uf(t, e, n); i && mf(t, n.ngContent.index, 1, i, null, void 0) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Gw(t, e) { return qw(128, t, Zt(e + 1)) } function Hw(t, e) { return qw(32, t, Zt(e)) } function Ww(t, e) { for (var n = Object.keys(e), i = n.length, r = [], o = 0; o < i; o++) { var a = n[o]; e[a]; r.push(a) } return qw(64, t, r) } function qw(t, e, n) { for (var i = [], r = 0; r < n.length; r++) { var o = n[r]; i.push({ flags: 8, name: o, ns: null, nonMinifiedName: o, securityContext: null, suffix: null }) } return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: e, flags: t, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: {}, matchedQueryIds: 0, references: {}, ngContentIndex: -1, childCount: 0, bindings: i, bindingFlags: wf(i), outputs: [], element: null, provider: null, text: null, query: null, ngContent: null } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Xw(t, e, n) { for (var i = [], r = 1; r < n.length; r++) i[r - 1] = { flags: 8, name: null, ns: null, nonMinifiedName: null, securityContext: null, suffix: n[r] }; return { nodeIndex: -1, parent: null, renderParent: null, bindingIndex: -1, outputIndex: -1, checkIndex: t, flags: 2, childFlags: 0, directChildFlags: 0, childMatchedQueries: 0, matchedQueries: {}, matchedQueryIds: 0, references: {}, ngContentIndex: e, childCount: 0, bindings: i, bindingFlags: 8, outputs: [], element: null, provider: null, text: { prefix: n[0] }, query: null, ngContent: null } } function Yw(t, e, n) { var i, r = t.renderer; i = r.createText(n.text.prefix); var o = uf(t, e, n); return o && r.appendChild(o, i), { renderText: i } } function Kw(t, e) { return (null != t ? t.toString() : "") + e.suffix } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Zw(t, e, n, i) { for (var r = 0, o = 0, a = 0, s = 0, c = 0, l = null, u = null, d = !1, p = !1, h = null, f = 0; f < e.length; f++) { var m = e[f]; if (m.nodeIndex = f, m.parent = l, m.bindingIndex = r, m.outputIndex = o, m.renderParent = u, a |= m.flags, c |= m.matchedQueryIds, m.element) { var g = m.element; g.publicProviders = l ? l.element.publicProviders : Object.create(null), g.allProviders = g.publicProviders, d = !1, p = !1, m.element.template && (c |= m.element.template.nodeMatchedQueries) } if (Qw(l, m, e.length), r += m.bindings.length, o += m.outputs.length, !u && 3 & m.flags && (h = m), 20224 & m.flags) { d || (d = !0, l.element.publicProviders = Object.create(l.element.publicProviders), l.element.allProviders = l.element.publicProviders); var v = 0 != (8192 & m.flags) , y = 0 != (32768 & m.flags); !v || y ? l.element.publicProviders[Hh(m.provider.token)] = m : (p || (p = !0, l.element.allProviders = Object.create(l.element.publicProviders)), l.element.allProviders[Hh(m.provider.token)] = m), y && (l.element.componentProvider = m) } if (l ? (l.childFlags |= m.flags, l.directChildFlags |= m.flags, l.childMatchedQueries |= m.matchedQueryIds, m.element && m.element.template && (l.childMatchedQueries |= m.element.template.nodeMatchedQueries)) : s |= m.flags, m.childCount > 0) l = m, Jw(m) || (u = m); else for (; l && f === l.nodeIndex + l.childCount; ) { var b = l.parent; b && (b.childFlags |= l.childFlags, b.childMatchedQueries |= l.childMatchedQueries), u = (l = b) && Jw(l) ? l.renderParent : l } } return { factory: null, nodeFlags: a, rootNodeFlags: s, nodeMatchedQueries: c, flags: t, nodes: e, updateDirectives: n || zh, updateRenderer: i || zh, handleEvent: function(t, n, i, r) { return e[n].element.handleEvent(t, i, r) }, bindingCount: r, outputCount: o, lastRenderRootNode: h } } function Jw(t) { return 0 != (1 & t.flags) && null === t.element.name } function Qw(t, e, n) { var i = e.element && e.element.template; if (i) { if (!i.lastRenderRootNode) throw new Error("Illegal State: Embedded templates without nodes are not allowed!"); if (i.lastRenderRootNode && 16777216 & i.lastRenderRootNode.flags) throw new Error("Illegal State: Last root node of a template can't have embedded views, at index " + e.nodeIndex + "!") } if (20224 & e.flags && 0 == (1 & (t ? t.flags : 0))) throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index " + e.nodeIndex + "!"); if (e.query) { if (67108864 & e.flags && (!t || 0 == (16384 & t.flags))) throw new Error("Illegal State: Content Query nodes need to be children of directives, at index " + e.nodeIndex + "!"); if (134217728 & e.flags && t) throw new Error("Illegal State: View Query nodes have to be top level nodes, at index " + e.nodeIndex + "!") } if (e.childCount) { var r = t ? t.nodeIndex + t.childCount : n - 1; if (e.nodeIndex <= r && e.nodeIndex + e.childCount > r) throw new Error("Illegal State: childCount of node leads outside of parent, at index " + e.nodeIndex + "!") } } function $w(t, e, n, i) { var r = nS(t.root, t.renderer, t, e, n); return iS(r, t.component, i), rS(r), r } function tS(t, e, n) { var i = nS(t, t.renderer, null, null, e); return iS(i, n, n), rS(i), i } function eS(t, e, n, i) { var r, o = e.element.componentRendererType; return r = o ? t.root.rendererFactory.createRenderer(i, o) : t.root.renderer, nS(t.root, r, t, e.element.componentProvider, n) } function nS(t, e, n, i, r) { var o = new Array(r.nodes.length) , a = r.outputCount ? new Array(r.outputCount) : null; return { def: r, parent: n, viewContainerParent: null, parentNodeDef: i, context: null, component: null, nodes: o, state: 13, root: t, renderer: e, oldValues: new Array(r.bindingCount), disposables: a, initIndex: -1 } } function iS(t, e, n) { t.component = e, t.context = n } function rS(t) { var e; if (of(t)) { var n = t.parentNodeDef; e = Nh(t.parent, n.parent.nodeIndex).renderElement } for (var i = t.def, r = t.nodes, o = 0; o < i.nodes.length; o++) { var a = i.nodes[o]; Bh.setCurrentNode(t, o); var s = void 0; switch (201347067 & a.flags) { case 1: var c = kw(t, e, a) , l = void 0; if (33554432 & a.flags) { var u = pf(a.element.componentView); l = Bh.createComponentView(t, a, u, c) } Dw(t, l, a, c), s = { renderElement: c, componentView: l, viewContainer: null, template: a.element.template ? Xf(t, a) : void 0 }, 16777216 & a.flags && (s.viewContainer = Gf(t, a, s)); break; case 2: s = Yw(t, e, a); break; case 512: case 1024: case 2048: case 256: if (!((s = r[o]) || 4096 & a.flags)) s = { instance: dm(t, a) }; break; case 16: s = { instance: pm(t, a) }; break; case 16384: if (!(s = r[o])) s = { instance: hm(t, a) }; if (32768 & a.flags) iS(Nh(t, a.parent.nodeIndex).componentView, s.instance, s.instance); break; case 32: case 64: case 128: s = { value: void 0 }; break; case 67108864: case 134217728: s = new pv; break; case 8: zw(t, e, a), s = void 0 } r[o] = s } pS(t, Ow.CreateViewNodes), gS(t, 201326592, 268435456, 0) } function oS(t) { cS(t), Bh.updateDirectives(t, 1), hS(t, Ow.CheckNoChanges), Bh.updateRenderer(t, 1), pS(t, Ow.CheckNoChanges), t.state &= -97 } function aS(t) { 1 & t.state ? (t.state &= -2, t.state |= 2) : t.state &= -3, Dh(t, 0, 256), cS(t), Bh.updateDirectives(t, 0), hS(t, Ow.CheckAndUpdate), gS(t, 67108864, 536870912, 0); var e = Dh(t, 256, 512); Sm(t, 2097152 | (e ? 1048576 : 0)), Bh.updateRenderer(t, 0), pS(t, Ow.CheckAndUpdate), gS(t, 134217728, 536870912, 0), Sm(t, 8388608 | ((e = Dh(t, 512, 768)) ? 4194304 : 0)), 2 & t.def.flags && (t.state &= -9), t.state &= -97, Dh(t, 768, 1024) } function sS(t, e, n, r, o, a, s, c, l, u, d, p, h) { return 0 === n ? function(t, e, n, i, r, o, a, s, c, l, u, d) { switch (201347067 & e.flags) { case 1: return function(t, e, n, i, r, o, a, s, c, l, u, d) { var p = e.bindings.length , h = !1; return p > 0 && Lw(t, e, 0, n) && (h = !0), p > 1 && Lw(t, e, 1, i) && (h = !0), p > 2 && Lw(t, e, 2, r) && (h = !0), p > 3 && Lw(t, e, 3, o) && (h = !0), p > 4 && Lw(t, e, 4, a) && (h = !0), p > 5 && Lw(t, e, 5, s) && (h = !0), p > 6 && Lw(t, e, 6, c) && (h = !0), p > 7 && Lw(t, e, 7, l) && (h = !0), p > 8 && Lw(t, e, 8, u) && (h = !0), p > 9 && Lw(t, e, 9, d) && (h = !0), h }(t, e, n, i, r, o, a, s, c, l, u, d); case 2: return function(t, e, n, i, r, o, a, s, c, l, u, d) { var p = !1 , h = e.bindings , f = h.length; if (f > 0 && Kh(t, e, 0, n) && (p = !0), f > 1 && Kh(t, e, 1, i) && (p = !0), f > 2 && Kh(t, e, 2, r) && (p = !0), f > 3 && Kh(t, e, 3, o) && (p = !0), f > 4 && Kh(t, e, 4, a) && (p = !0), f > 5 && Kh(t, e, 5, s) && (p = !0), f > 6 && Kh(t, e, 6, c) && (p = !0), f > 7 && Kh(t, e, 7, l) && (p = !0), f > 8 && Kh(t, e, 8, u) && (p = !0), f > 9 && Kh(t, e, 9, d) && (p = !0), p) { var m = e.text.prefix; f > 0 && (m += Kw(n, h[0])), f > 1 && (m += Kw(i, h[1])), f > 2 && (m += Kw(r, h[2])), f > 3 && (m += Kw(o, h[3])), f > 4 && (m += Kw(a, h[4])), f > 5 && (m += Kw(s, h[5])), f > 6 && (m += Kw(c, h[6])), f > 7 && (m += Kw(l, h[7])), f > 8 && (m += Kw(u, h[8])), f > 9 && (m += Kw(d, h[9])); var g = Lh(t, e.nodeIndex).renderText; t.renderer.setValue(g, m) } return p }(t, e, n, i, r, o, a, s, c, l, u, d); case 16384: return function(t, e, n, i, r, o, a, s, c, l, u, d) { var p = jh(t, e.nodeIndex) , h = p.instance , f = !1 , m = void 0 , g = e.bindings.length; return g > 0 && Yh(t, e, 0, n) && (f = !0, m = wm(t, p, e, 0, n, m)), g > 1 && Yh(t, e, 1, i) && (f = !0, m = wm(t, p, e, 1, i, m)), g > 2 && Yh(t, e, 2, r) && (f = !0, m = wm(t, p, e, 2, r, m)), g > 3 && Yh(t, e, 3, o) && (f = !0, m = wm(t, p, e, 3, o, m)), g > 4 && Yh(t, e, 4, a) && (f = !0, m = wm(t, p, e, 4, a, m)), g > 5 && Yh(t, e, 5, s) && (f = !0, m = wm(t, p, e, 5, s, m)), g > 6 && Yh(t, e, 6, c) && (f = !0, m = wm(t, p, e, 6, c, m)), g > 7 && Yh(t, e, 7, l) && (f = !0, m = wm(t, p, e, 7, l, m)), g > 8 && Yh(t, e, 8, u) && (f = !0, m = wm(t, p, e, 8, u, m)), g > 9 && Yh(t, e, 9, d) && (f = !0, m = wm(t, p, e, 9, d, m)), m && h.ngOnChanges(m), 65536 & e.flags && Rh(t, 256, e.nodeIndex) && h.ngOnInit(), 262144 & e.flags && h.ngDoCheck(), f }(t, e, n, i, r, o, a, s, c, l, u, d); case 32: case 64: case 128: return function(t, e, n, i, r, o, a, s, c, l, u, d) { var p = e.bindings , h = !1 , f = p.length; if (f > 0 && Kh(t, e, 0, n) && (h = !0), f > 1 && Kh(t, e, 1, i) && (h = !0), f > 2 && Kh(t, e, 2, r) && (h = !0), f > 3 && Kh(t, e, 3, o) && (h = !0), f > 4 && Kh(t, e, 4, a) && (h = !0), f > 5 && Kh(t, e, 5, s) && (h = !0), f > 6 && Kh(t, e, 6, c) && (h = !0), f > 7 && Kh(t, e, 7, l) && (h = !0), f > 8 && Kh(t, e, 8, u) && (h = !0), f > 9 && Kh(t, e, 9, d) && (h = !0), h) { var m = Vh(t, e.nodeIndex) , g = void 0; switch (201347067 & e.flags) { case 32: g = [], f > 0 && g.push(n), f > 1 && g.push(i), f > 2 && g.push(r), f > 3 && g.push(o), f > 4 && g.push(a), f > 5 && g.push(s), f > 6 && g.push(c), f > 7 && g.push(l), f > 8 && g.push(u), f > 9 && g.push(d); break; case 64: g = {}, f > 0 && (g[p[0].name] = n), f > 1 && (g[p[1].name] = i), f > 2 && (g[p[2].name] = r), f > 3 && (g[p[3].name] = o), f > 4 && (g[p[4].name] = a), f > 5 && (g[p[5].name] = s), f > 6 && (g[p[6].name] = c), f > 7 && (g[p[7].name] = l), f > 8 && (g[p[8].name] = u), f > 9 && (g[p[9].name] = d); break; case 128: var v = n; switch (f) { case 1: g = v.transform(n); break; case 2: g = v.transform(i); break; case 3: g = v.transform(i, r); break; case 4: g = v.transform(i, r, o); break; case 5: g = v.transform(i, r, o, a); break; case 6: g = v.transform(i, r, o, a, s); break; case 7: g = v.transform(i, r, o, a, s, c); break; case 8: g = v.transform(i, r, o, a, s, c, l); break; case 9: g = v.transform(i, r, o, a, s, c, l, u); break; case 10: g = v.transform(i, r, o, a, s, c, l, u, d) } } m.value = g } return h }(t, e, n, i, r, o, a, s, c, l, u, d); default: throw "unreachable" } }(t, e, r, o, a, s, c, l, u, d, p, h) : function(t, e, n) { switch (201347067 & e.flags) { case 1: return function(t, e, n) { for (var i = !1, r = 0; r < n.length; r++) Lw(t, e, r, n[r]) && (i = !0); return i }(t, e, n); case 2: return function(t, e, n) { for (var i = e.bindings, r = !1, o = 0; o < n.length; o++) Kh(t, e, o, n[o]) && (r = !0); if (r) { var a = ""; for (o = 0; o < n.length; o++) a += Kw(n[o], i[o]); a = e.text.prefix + a; var s = Lh(t, e.nodeIndex).renderText; t.renderer.setValue(s, a) } return r }(t, e, n); case 16384: return function(t, e, n) { for (var i = jh(t, e.nodeIndex), r = i.instance, o = !1, a = void 0, s = 0; s < n.length; s++) Yh(t, e, s, n[s]) && (o = !0, a = wm(t, i, e, s, n[s], a)); return a && r.ngOnChanges(a), 65536 & e.flags && Rh(t, 256, e.nodeIndex) && r.ngOnInit(), 262144 & e.flags && r.ngDoCheck(), o }(t, e, n); case 32: case 64: case 128: return function(t, e, n) { for (var r = e.bindings, o = !1, a = 0; a < n.length; a++) Kh(t, e, a, n[a]) && (o = !0); if (o) { var s = Vh(t, e.nodeIndex) , c = void 0; switch (201347067 & e.flags) { case 32: c = n; break; case 64: c = {}; for (a = 0; a < n.length; a++) c[r[a].name] = n[a]; break; case 128: var l = n[0] , u = n.slice(1); c = l.transform.apply(l, Object(i.h)(u)) } s.value = c } return o }(t, e, n); default: throw "unreachable" } }(t, e, r) } function cS(t) { var e = t.def; if (4 & e.nodeFlags) for (var n = 0; n < e.nodes.length; n++) { var i = e.nodes[n]; if (4 & i.flags) { var r = Nh(t, n).template._projectedViews; if (r) for (var o = 0; o < r.length; o++) { var a = r[o]; a.state |= 32, Qh(a, t) } } else 0 == (4 & i.childFlags) && (n += i.childCount) } } function lS(t, e, n, i, r, o, a, s, c, l, u, d, p) { return 0 === n ? function(t, e, n, i, r, o, a, s, c, l, u, d) { var p = e.bindings.length; p > 0 && Zh(t, e, 0, n); p > 1 && Zh(t, e, 1, i); p > 2 && Zh(t, e, 2, r); p > 3 && Zh(t, e, 3, o); p > 4 && Zh(t, e, 4, a); p > 5 && Zh(t, e, 5, s); p > 6 && Zh(t, e, 6, c); p > 7 && Zh(t, e, 7, l); p > 8 && Zh(t, e, 8, u); p > 9 && Zh(t, e, 9, d) }(t, e, i, r, o, a, s, c, l, u, d, p) : function(t, e, n) { for (var i = 0; i < n.length; i++) Zh(t, e, i, n[i]) }(t, e, i), !1 } function uS(t, e) { if (Fh(t, e.nodeIndex).dirty) throw Ph(Bh.createDebugContext(t, e.nodeIndex), "Query " + e.query.id + " not dirty", "Query " + e.query.id + " dirty", 0 != (1 & t.state)) } function dS(t) { if (!(128 & t.state)) { if (hS(t, Ow.Destroy), pS(t, Ow.Destroy), Sm(t, 131072), t.disposables) for (var e = 0; e < t.disposables.length; e++) t.disposables[e](); !function(t) { if (16 & t.state) { var e = tf(t); if (e) { var n = e.template._projectedViews; n && (Kt(n, n.indexOf(t)), Bh.dirtyParentQueries(t)) } } }(t), t.renderer.destroyNode && function(t) { for (var e = t.def.nodes.length, n = 0; n < e; n++) { var i = t.def.nodes[n]; 1 & i.flags ? t.renderer.destroyNode(Nh(t, n).renderElement) : 2 & i.flags ? t.renderer.destroyNode(Lh(t, n).renderText) : (67108864 & i.flags || 134217728 & i.flags) && Fh(t, n).destroy() } }(t), of(t) && t.renderer.destroy(), t.state |= 128 } } function pS(t, e) { var n = t.def; if (33554432 & n.nodeFlags) for (var i = 0; i < n.nodes.length; i++) { var r = n.nodes[i]; 33554432 & r.flags ? fS(Nh(t, i).componentView, e) : 0 == (33554432 & r.childFlags) && (i += r.childCount) } } function hS(t, e) { var n = t.def; if (16777216 & n.nodeFlags) for (var i = 0; i < n.nodes.length; i++) { var r = n.nodes[i]; if (16777216 & r.flags) for (var o = Nh(t, i).viewContainer._embeddedViews, a = 0; a < o.length; a++) fS(o[a], e); else 0 == (16777216 & r.childFlags) && (i += r.childCount) } } function fS(t, e) { var n = t.state; switch (e) { case Ow.CheckNoChanges: 0 == (128 & n) && (12 == (12 & n) ? oS(t) : 64 & n && mS(t, Ow.CheckNoChangesProjectedViews)); break; case Ow.CheckNoChangesProjectedViews: 0 == (128 & n) && (32 & n ? oS(t) : 64 & n && mS(t, e)); break; case Ow.CheckAndUpdate: 0 == (128 & n) && (12 == (12 & n) ? aS(t) : 64 & n && mS(t, Ow.CheckAndUpdateProjectedViews)); break; case Ow.CheckAndUpdateProjectedViews: 0 == (128 & n) && (32 & n ? aS(t) : 64 & n && mS(t, e)); break; case Ow.Destroy: dS(t); break; case Ow.CreateViewNodes: rS(t) } } function mS(t, e) { hS(t, e), pS(t, e) } function gS(t, e, n, i) { if (t.def.nodeFlags & e && t.def.nodeFlags & n) for (var r = t.def.nodes.length, o = 0; o < r; o++) { var a = t.def.nodes[o]; if (a.flags & e && a.flags & n) switch (Bh.setCurrentNode(t, a.nodeIndex), i) { case 0: Vw(t, a); break; case 1: uS(t, a) } a.childFlags & e && a.childFlags & n || (o += a.childCount) } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ !function(t) { t[t.CreateViewNodes = 0] = "CreateViewNodes", t[t.CheckNoChanges = 1] = "CheckNoChanges", t[t.CheckNoChangesProjectedViews = 2] = "CheckNoChangesProjectedViews", t[t.CheckAndUpdate = 3] = "CheckAndUpdate", t[t.CheckAndUpdateProjectedViews = 4] = "CheckAndUpdateProjectedViews", t[t.Destroy = 5] = "Destroy" }(Ow || (Ow = {})); var vS = !1; function yS() { if (!vS) { vS = !0; var t = $i() ? { setCurrentNode: BS, createRootView: wS, createEmbeddedView: xS, createComponentView: MS, createNgModuleRef: ES, overrideProvider: kS, overrideComponentView: DS, clearOverrides: RS, checkAndUpdateView: VS, checkNoChangesView: FS, destroyView: US, createDebugContext: function(t, e) { return new KS(t,e) }, handleEvent: zS, updateDirectives: GS, updateRenderer: HS } : { setCurrentNode: function() {}, createRootView: bS, createEmbeddedView: $w, createComponentView: eS, createNgModuleRef: Qf, overrideProvider: zh, overrideComponentView: zh, clearOverrides: zh, checkAndUpdateView: aS, checkNoChangesView: oS, destroyView: dS, createDebugContext: function(t, e) { return new KS(t,e) }, handleEvent: function(t, e, n, i) { return t.def.handleEvent(t, e, n, i) }, updateDirectives: function(t, e) { return t.def.updateDirectives(0 === e ? NS : jS, t) }, updateRenderer: function(t, e) { return t.def.updateRenderer(0 === e ? NS : jS, t) } }; Bh.setCurrentNode = t.setCurrentNode, Bh.createRootView = t.createRootView, Bh.createEmbeddedView = t.createEmbeddedView, Bh.createComponentView = t.createComponentView, Bh.createNgModuleRef = t.createNgModuleRef, Bh.overrideProvider = t.overrideProvider, Bh.overrideComponentView = t.overrideComponentView, Bh.clearOverrides = t.clearOverrides, Bh.checkAndUpdateView = t.checkAndUpdateView, Bh.checkNoChangesView = t.checkNoChangesView, Bh.destroyView = t.destroyView, Bh.resolveDep = ym, Bh.createDebugContext = t.createDebugContext, Bh.handleEvent = t.handleEvent, Bh.updateDirectives = t.updateDirectives, Bh.updateRenderer = t.updateRenderer, Bh.dirtyParentQueries = jw } } function bS(t, e, n, i, r, o) { var a = r.injector.get(eh); return tS(SS(t, r, a, e, n), i, o) } function wS(t, e, n, i, r, o) { var a = r.injector.get(eh) , s = SS(t, r, new tx(a), e, n) , c = LS(i); return QS(CS.create, tS, null, [s, c, o]) } function SS(t, e, n, i, r) { var o = e.injector.get(oh) , a = e.injector.get(Ri) , s = n.createRenderer(null, null); return { ngModule: e, injector: t, projectableNodes: i, selectorOrNode: r, sanitizer: o, rendererFactory: n, renderer: s, errorHandler: a } } function xS(t, e, n, i) { var r = LS(n); return QS(CS.create, $w, null, [t, e, r, i]) } function MS(t, e, n, i) { var r = IS.get(e.element.componentProvider.provider.token); return n = r || LS(n), QS(CS.create, eS, null, [t, e, n, i]) } function ES(t, e, n, i) { return Qf(t, e, n, function(t) { var e = function(t) { var e = !1 , n = !1; if (0 === _S.size) return { hasOverrides: e, hasDeprecatedOverrides: n }; return t.providers.forEach((function(t) { var i = _S.get(t.token); 3840 & t.flags && i && (e = !0, n = n || i.deprecatedBehavior) } )), t.modules.forEach((function(t) { PS.forEach((function(i, r) { I(r).providedIn === t && (e = !0, n = n || i.deprecatedBehavior) } )) } )), { hasOverrides: e, hasDeprecatedOverrides: n } }(t) , n = e.hasOverrides , i = e.hasDeprecatedOverrides; if (!n) return t; return function(t) { for (var e = 0; e < t.providers.length; e++) { var n = t.providers[e]; i && (n.flags |= 4096); var r = _S.get(n.token); r && (n.flags = -3841 & n.flags | r.flags, n.deps = lf(r.deps), n.value = r.value) } if (PS.size > 0) { var o = new Set(t.modules); PS.forEach((function(e, n) { if (o.has(I(n).providedIn)) { var r = { token: n, flags: e.flags | (i ? 4096 : 0), deps: lf(e.deps), value: e.value, index: t.providers.length }; t.providers.push(r), t.providersByKey[Hh(n)] = r } } )) } }(t = t.factory((function() { return zh } ))), t }(i)) } var CS, AS, TS, OS, _S = new Map, PS = new Map, IS = new Map; function kS(t) { var e; _S.set(t.token, t), "function" == typeof t.token && (e = I(t.token)) && "function" == typeof e.providedIn && PS.set(t.token, t) } function DS(t, e) { var n = pf(Uf(e)) , i = pf(n.nodes[0].element.componentView); IS.set(t, i) } function RS() { _S.clear(), PS.clear(), IS.clear() } function LS(t) { if (0 === _S.size) return t; var e = function(t) { for (var e = [], n = null, i = 0; i < t.nodes.length; i++) { var r = t.nodes[i]; 1 & r.flags && (n = r), n && 3840 & r.flags && _S.has(r.provider.token) && (e.push(n.nodeIndex), n = null) } return e }(t); if (0 === e.length) return t; t = t.factory((function() { return zh } )); for (var n = 0; n < e.length; n++) i(t, e[n]); return t; function i(t, e) { for (var n = e + 1; n < t.nodes.length; n++) { var i = t.nodes[n]; if (1 & i.flags) return; if (3840 & i.flags) { var r = i.provider , o = _S.get(r.token); o && (i.flags = -3841 & i.flags | o.flags, r.deps = lf(o.deps), r.value = o.value) } } } } function NS(t, e, n, i, r, o, a, s, c, l, u, d, p) { var h = t.def.nodes[e]; return sS(t, h, n, i, r, o, a, s, c, l, u, d, p), 224 & h.flags ? Vh(t, e).value : void 0 } function jS(t, e, n, i, r, o, a, s, c, l, u, d, p) { var h = t.def.nodes[e]; return lS(t, h, n, i, r, o, a, s, c, l, u, d, p), 224 & h.flags ? Vh(t, e).value : void 0 } function VS(t) { return QS(CS.detectChanges, aS, null, [t]) } function FS(t) { return QS(CS.checkNoChanges, oS, null, [t]) } function US(t) { return QS(CS.destroy, dS, null, [t]) } function BS(t, e) { TS = t, OS = e } function zS(t, e, n, i) { return BS(t, e), QS(CS.handleEvent, t.def.handleEvent, null, [t, e, n, i]) } function GS(t, e) { if (128 & t.state) throw kh(CS[AS]); return BS(t, XS(t, 0)), t.def.updateDirectives((function(t, n, i) { for (var r = [], o = 3; o < arguments.length; o++) r[o - 3] = arguments[o]; var a = t.def.nodes[n]; 0 === e ? WS(t, a, i, r) : qS(t, a, i, r); 16384 & a.flags && BS(t, XS(t, n)); return 224 & a.flags ? Vh(t, a.nodeIndex).value : void 0 } ), t) } function HS(t, e) { if (128 & t.state) throw kh(CS[AS]); return BS(t, YS(t, 0)), t.def.updateRenderer((function(t, n, i) { for (var r = [], o = 3; o < arguments.length; o++) r[o - 3] = arguments[o]; var a = t.def.nodes[n]; 0 === e ? WS(t, a, i, r) : qS(t, a, i, r); 3 & a.flags && BS(t, YS(t, n)); return 224 & a.flags ? Vh(t, a.nodeIndex).value : void 0 } ), t) } function WS(t, e, n, r) { if (sS.apply(void 0, Object(i.h)([t, e, n], r))) { var o = 1 === n ? r[0] : r; if (16384 & e.flags) { for (var a = {}, s = 0; s < e.bindings.length; s++) { var c = e.bindings[s] , l = o[s]; 8 & c.flags && (a[Gr(c.nonMinifiedName)] = Wr(l)) } var u = e.parent , d = Nh(t, u.nodeIndex).renderElement; if (u.element.name) for (var p in a) { null != (l = a[p]) ? t.renderer.setAttribute(d, p, l) : t.renderer.removeAttribute(d, p) } else t.renderer.setValue(d, "bindings=" + JSON.stringify(a, null, 2)) } } } function qS(t, e, n, r) { lS.apply(void 0, Object(i.h)([t, e, n], r)) } function XS(t, e) { for (var n = e; n < t.def.nodes.length; n++) { var i = t.def.nodes[n]; if (16384 & i.flags && i.bindings && i.bindings.length) return n } return null } function YS(t, e) { for (var n = e; n < t.def.nodes.length; n++) { var i = t.def.nodes[n]; if (3 & i.flags && i.bindings && i.bindings.length) return n } return null } !function(t) { t[t.create = 0] = "create", t[t.detectChanges = 1] = "detectChanges", t[t.checkNoChanges = 2] = "checkNoChanges", t[t.destroy = 3] = "destroy", t[t.handleEvent = 4] = "handleEvent" }(CS || (CS = {})); var KS = function() { function t(t, e) { this.view = t, this.nodeIndex = e, null == e && (this.nodeIndex = e = 0), this.nodeDef = t.def.nodes[e]; for (var n = this.nodeDef, i = t; n && 0 == (1 & n.flags); ) n = n.parent; if (!n) for (; !n && i; ) n = ef(i), i = i.parent; this.elDef = n, this.elView = i } return Object.defineProperty(t.prototype, "elOrCompView", { get: function() { return Nh(this.elView, this.elDef.nodeIndex).componentView || this.view }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "injector", { get: function() { return Kf(this.elView, this.elDef) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "component", { get: function() { return this.elOrCompView.component }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "context", { get: function() { return this.elOrCompView.context }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "providerTokens", { get: function() { var t = []; if (this.elDef) for (var e = this.elDef.nodeIndex + 1; e <= this.elDef.nodeIndex + this.elDef.childCount; e++) { var n = this.elView.def.nodes[e]; 20224 & n.flags && t.push(n.provider.token), e += n.childCount } return t }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "references", { get: function() { var t = {}; if (this.elDef) { JS(this.elView, this.elDef, t); for (var e = this.elDef.nodeIndex + 1; e <= this.elDef.nodeIndex + this.elDef.childCount; e++) { var n = this.elView.def.nodes[e]; 20224 & n.flags && JS(this.elView, n, t), e += n.childCount } } return t }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "componentRenderElement", { get: function() { var t = function(t) { for (; t && !of(t); ) t = t.parent; if (t.parent) return Nh(t.parent, ef(t).nodeIndex); return null }(this.elOrCompView); return t ? t.renderElement : void 0 }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "renderNode", { get: function() { return 2 & this.nodeDef.flags ? nf(this.view, this.nodeDef) : nf(this.elView, this.elDef) }, enumerable: !0, configurable: !0 }), t.prototype.logError = function(t) { for (var e, n, r = [], o = 1; o < arguments.length; o++) r[o - 1] = arguments[o]; 2 & this.nodeDef.flags ? (e = this.view.def, n = this.nodeDef.nodeIndex) : (e = this.elView.def, n = this.elDef.nodeIndex); var a = ZS(e, n) , s = -1 , c = function() { var e; return ++s === a ? (e = t.error).bind.apply(e, Object(i.h)([t], r)) : zh }; e.factory(c), s < a && (t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"), t.error.apply(t, Object(i.h)(r))) } , t }(); function ZS(t, e) { for (var n = -1, i = 0; i <= e; i++) { 3 & t.nodes[i].flags && n++ } return n } function JS(t, e, n) { for (var i in e.references) n[i] = Uw(t, e, e.references[i]) } function QS(t, e, n, i) { var r = AS , o = TS , a = OS; try { AS = t; var s = e.apply(n, i); return TS = o, OS = a, AS = r, s } catch (t) { if (Ii(t) || !TS) throw t; throw function(t, e) { return t instanceof Error || (t = new Error(t.toString())), Ih(t, e), t }(t, $S()) } } function $S() { return TS ? new KS(TS,OS) : null } var tx = function() { function t(t) { this.delegate = t } return t.prototype.createRenderer = function(t, e) { return new ex(this.delegate.createRenderer(t, e)) } , t.prototype.begin = function() { this.delegate.begin && this.delegate.begin() } , t.prototype.end = function() { this.delegate.end && this.delegate.end() } , t.prototype.whenRenderingDone = function() { return this.delegate.whenRenderingDone ? this.delegate.whenRenderingDone() : Promise.resolve(null) } , t }() , ex = function() { function t(t) { this.delegate = t, this.debugContextFactory = $S, this.data = this.delegate.data } return t.prototype.createDebugContext = function(t) { return this.debugContextFactory(t) } , t.prototype.destroyNode = function(t) { var e = mw(t); !function(t) { hw.delete(t.nativeNode) }(e), e instanceof tw && (e.listeners.length = 0), this.delegate.destroyNode && this.delegate.destroyNode(t) } , t.prototype.destroy = function() { this.delegate.destroy() } , t.prototype.createElement = function(t, e) { var n = this.delegate.createElement(t, e) , i = this.createDebugContext(n); if (i) { var r = new ew(n,null,i); r.name = t, yw(r) } return n } , t.prototype.createComment = function(t) { var e = this.delegate.createComment(t) , n = this.createDebugContext(e); return n && yw(new tw(e,null,n)), e } , t.prototype.createText = function(t) { var e = this.delegate.createText(t) , n = this.createDebugContext(e); return n && yw(new tw(e,null,n)), e } , t.prototype.appendChild = function(t, e) { var n = mw(t) , i = mw(e); n && i && n instanceof ew && n.addChild(i), this.delegate.appendChild(t, e) } , t.prototype.insertBefore = function(t, e, n) { var i = mw(t) , r = mw(e) , o = mw(n); i && r && i instanceof ew && i.insertBefore(o, r), this.delegate.insertBefore(t, e, n) } , t.prototype.removeChild = function(t, e) { var n = mw(t) , i = mw(e); n && i && n instanceof ew && n.removeChild(i), this.delegate.removeChild(t, e) } , t.prototype.selectRootElement = function(t, e) { var n = this.delegate.selectRootElement(t, e) , i = $S(); return i && yw(new ew(n,null,i)), n } , t.prototype.setAttribute = function(t, e, n, i) { var r = mw(t); if (r && r instanceof ew) { var o = i ? i + ":" + e : e; r.attributes[o] = n } this.delegate.setAttribute(t, e, n, i) } , t.prototype.removeAttribute = function(t, e, n) { var i = mw(t); if (i && i instanceof ew) { var r = n ? n + ":" + e : e; i.attributes[r] = null } this.delegate.removeAttribute(t, e, n) } , t.prototype.addClass = function(t, e) { var n = mw(t); n && n instanceof ew && (n.classes[e] = !0), this.delegate.addClass(t, e) } , t.prototype.removeClass = function(t, e) { var n = mw(t); n && n instanceof ew && (n.classes[e] = !1), this.delegate.removeClass(t, e) } , t.prototype.setStyle = function(t, e, n, i) { var r = mw(t); r && r instanceof ew && (r.styles[e] = n), this.delegate.setStyle(t, e, n, i) } , t.prototype.removeStyle = function(t, e, n) { var i = mw(t); i && i instanceof ew && (i.styles[e] = null), this.delegate.removeStyle(t, e, n) } , t.prototype.setProperty = function(t, e, n) { var i = mw(t); i && i instanceof ew && (i.properties[e] = n), this.delegate.setProperty(t, e, n) } , t.prototype.listen = function(t, e, n) { if ("string" != typeof t) { var i = mw(t); i && i.listeners.push(new $b(e,n)) } return this.delegate.listen(t, e, n) } , t.prototype.parentNode = function(t) { return this.delegate.parentNode(t) } , t.prototype.nextSibling = function(t) { return this.delegate.nextSibling(t) } , t.prototype.setValue = function(t, e) { return this.delegate.setValue(t, e) } , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function nx(t) { return yS(), Bh.overrideProvider(t) } function ix(t, e) { return yS(), Bh.overrideComponentView(t, e) } function rx() { return yS(), Bh.clearOverrides() } function ox(t, e, n) { return new ax(t,e,n) } var ax = function(t) { function e(e, n, i) { var r = t.call(this) || this; return r.moduleType = e, r._bootstrapComponents = n, r._ngModuleDefFactory = i, r } return Object(i.c)(e, t), e.prototype.create = function(t) { yS(); var e = function(t) { var e = Array.from(t.providers) , n = Array.from(t.modules) , i = {}; for (var r in t.providersByKey) i[r] = t.providersByKey[r]; return { factory: t.factory, scope: t.scope, providers: e, modules: n, providersByKey: i } }(pf(this._ngModuleDefFactory)); return Bh.createNgModuleRef(this.moduleType, t || Pc.NULL, this._bootstrapComponents, e) } , e }(Pt); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ ngDevMode && (J.$localize = J.$localize || function() { throw new Error("It looks like your application or one of its dependencies is using i18n.\nAngular 9 introduced a global `$localize()` function that needs to be loaded.\nPlease run `ng add @angular/localize` from the Angular CLI.\n(For non-CLI projects, add `import '@angular/localize/init';` to your `polyfills.ts` file.\nFor server-side rendering applications add the import to your `main.server.ts` file.)") } ); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ } .call(this, n(213)) } , function(t, e, n) { "use strict"; n.d(e, "c", (function() { return r } )), n.d(e, "a", (function() { return o } )), n.d(e, "g", (function() { return a } )), n.d(e, "b", (function() { return s } )), n.d(e, "e", (function() { return c } )), n.d(e, "d", (function() { return l } )), n.d(e, "j", (function() { return u } )), n.d(e, "f", (function() { return d } )), n.d(e, "h", (function() { return p } )), n.d(e, "i", (function() { return h } )); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ var i = function(t, e) { return (i = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(t, e) { t.__proto__ = e } || function(t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) } )(t, e) }; function r(t, e) { function n() { this.constructor = t } i(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) } var o = function() { return (o = Object.assign || function(t) { for (var e, n = 1, i = arguments.length; n < i; n++) for (var r in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); return t } ).apply(this, arguments) }; function a(t, e) { var n = {}; for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && e.indexOf(i) < 0 && (n[i] = t[i]); if (null != t && "function" == typeof Object.getOwnPropertySymbols) { var r = 0; for (i = Object.getOwnPropertySymbols(t); r < i.length; r++) e.indexOf(i[r]) < 0 && Object.prototype.propertyIsEnumerable.call(t, i[r]) && (n[i[r]] = t[i[r]]) } return n } function s(t, e, n, i) { var r, o = arguments.length, a = o < 3 ? e : null === i ? i = Object.getOwnPropertyDescriptor(e, n) : i; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(t, e, n, i); else for (var s = t.length - 1; s >= 0; s--) (r = t[s]) && (a = (o < 3 ? r(a) : o > 3 ? r(e, n, a) : r(e, n)) || a); return o > 3 && a && Object.defineProperty(e, n, a), a } function c(t, e) { return function(n, i) { e(n, i, t) } } function l(t, e) { if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(t, e) } function u(t) { var e = "function" == typeof Symbol && t[Symbol.iterator] , n = 0; return e ? e.call(t) : { next: function() { return t && n >= t.length && (t = void 0), { value: t && t[n++], done: !t } } } } function d(t, e) { var n = "function" == typeof Symbol && t[Symbol.iterator]; if (!n) return t; var i, r, o = n.call(t), a = []; try { for (; (void 0 === e || e-- > 0) && !(i = o.next()).done; ) a.push(i.value) } catch (t) { r = { error: t } } finally { try { i && !i.done && (n = o.return) && n.call(o) } finally { if (r) throw r.error } } return a } function p() { for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(d(arguments[e])); return t } function h() { for (var t = 0, e = 0, n = arguments.length; e < n; e++) t += arguments[e].length; var i = Array(t) , r = 0; for (e = 0; e < n; e++) for (var o = arguments[e], a = 0, s = o.length; a < s; a++, r++) i[r] = o[a]; return i } } , function(t, e, n) { n(924), t.exports = angular } , function(t, e, n) { "use strict"; n.r(e), n.d(e, "APP_BASE_HREF", (function() { return S } )), n.d(e, "AsyncPipe", (function() { return te } )), n.d(e, "CommonModule", (function() { return be } )), n.d(e, "CurrencyPipe", (function() { return fe } )), n.d(e, "DOCUMENT", (function() { return l } )), n.d(e, "DatePipe", (function() { return oe } )), n.d(e, "DecimalPipe", (function() { return pe } )), n.d(e, "FormStyle", (function() { return _ } )), n.d(e, "FormatWidth", (function() { return I } )), n.d(e, "HashLocationStrategy", (function() { return M } )), n.d(e, "I18nPluralPipe", (function() { return se } )), n.d(e, "I18nSelectPipe", (function() { return ce } )), n.d(e, "JsonPipe", (function() { return le } )), n.d(e, "KeyValuePipe", (function() { return ue } )), n.d(e, "LOCATION_INITIALIZED", (function() { return p } )), n.d(e, "Location", (function() { return E } )), n.d(e, "LocationStrategy", (function() { return b } )), n.d(e, "LowerCasePipe", (function() { return ee } )), n.d(e, "NgClass", (function() { return Dt } )), n.d(e, "NgComponentOutlet", (function() { return Rt } )), n.d(e, "NgForOf", (function() { return Nt } )), n.d(e, "NgForOfContext", (function() { return Lt } )), n.d(e, "NgIf", (function() { return Vt } )), n.d(e, "NgIfContext", (function() { return Ft } )), n.d(e, "NgLocaleLocalization", (function() { return Pt } )), n.d(e, "NgLocalization", (function() { return Ot } )), n.d(e, "NgPlural", (function() { return Wt } )), n.d(e, "NgPluralCase", (function() { return qt } )), n.d(e, "NgStyle", (function() { return Xt } )), n.d(e, "NgSwitch", (function() { return zt } )), n.d(e, "NgSwitchCase", (function() { return Gt } )), n.d(e, "NgSwitchDefault", (function() { return Ht } )), n.d(e, "NgTemplateOutlet", (function() { return Yt } )), n.d(e, "NumberFormatStyle", (function() { return T } )), n.d(e, "NumberSymbol", (function() { return k } )), n.d(e, "PathLocationStrategy", (function() { return x } )), n.d(e, "PercentPipe", (function() { return he } )), n.d(e, "PlatformLocation", (function() { return u } )), n.d(e, "Plural", (function() { return O } )), n.d(e, "SlicePipe", (function() { return ve } )), n.d(e, "TitleCasePipe", (function() { return ie } )), n.d(e, "TranslationWidth", (function() { return P } )), n.d(e, "UpperCasePipe", (function() { return re } )), n.d(e, "VERSION", (function() { return Oe } )), n.d(e, "ViewportScroller", (function() { return _e } )), n.d(e, "WeekDay", (function() { return D } )), n.d(e, "formatCurrency", (function() { return Mt } )), n.d(e, "formatDate", (function() { return dt } )), n.d(e, "formatNumber", (function() { return Ct } )), n.d(e, "formatPercent", (function() { return Et } )), n.d(e, "getCurrencySymbol", (function() { return it } )), n.d(e, "getLocaleCurrencyCode", (function() { return K } )), n.d(e, "getLocaleCurrencyName", (function() { return Y } )), n.d(e, "getLocaleCurrencySymbol", (function() { return X } )), n.d(e, "getLocaleDateFormat", (function() { return z } )), n.d(e, "getLocaleDateTimeFormat", (function() { return H } )), n.d(e, "getLocaleDayNames", (function() { return j } )), n.d(e, "getLocaleDayPeriods", (function() { return N } )), n.d(e, "getLocaleDirection", (function() { return tt } )), n.d(e, "getLocaleEraNames", (function() { return F } )), n.d(e, "getLocaleExtraDayPeriodRules", (function() { return Q } )), n.d(e, "getLocaleExtraDayPeriods", (function() { return $ } )), n.d(e, "getLocaleFirstDayOfWeek", (function() { return U } )), n.d(e, "getLocaleId", (function() { return L } )), n.d(e, "getLocaleMonthNames", (function() { return V } )), n.d(e, "getLocaleNumberFormat", (function() { return q } )), n.d(e, "getLocaleNumberSymbol", (function() { return W } )), n.d(e, "getLocalePluralCase", (function() { return Z } )), n.d(e, "getLocaleTimeFormat", (function() { return G } )), n.d(e, "getLocaleWeekEndRange", (function() { return B } )), n.d(e, "getNumberOfCurrencyDigits", (function() { return rt } )), n.d(e, "isPlatformBrowser", (function() { return Ee } )), n.d(e, "isPlatformServer", (function() { return Ce } )), n.d(e, "isPlatformWorkerApp", (function() { return Ae } )), n.d(e, "isPlatformWorkerUi", (function() { return Te } )), n.d(e, "registerLocaleData", (function() { return It } )), n.d(e, "ɵBrowserPlatformLocation", (function() { return h } )), n.d(e, "ɵDomAdapter", (function() { return c } )), n.d(e, "ɵNullViewportScroller", (function() { return Ie } )), n.d(e, "ɵPLATFORM_BROWSER_ID", (function() { return we } )), n.d(e, "ɵPLATFORM_SERVER_ID", (function() { return Se } )), n.d(e, "ɵPLATFORM_WORKER_APP_ID", (function() { return xe } )), n.d(e, "ɵPLATFORM_WORKER_UI_ID", (function() { return Me } )), n.d(e, "ɵangular_packages_common_common_a", (function() { return d } )), n.d(e, "ɵangular_packages_common_common_b", (function() { return m } )), n.d(e, "ɵangular_packages_common_common_c", (function() { return C } )), n.d(e, "ɵangular_packages_common_common_d", (function() { return w } )), n.d(e, "ɵangular_packages_common_common_e", (function() { return Kt } )), n.d(e, "ɵangular_packages_common_common_f", (function() { return ye } )), n.d(e, "ɵgetDOM", (function() { return a } )), n.d(e, "ɵparseCookieValue", (function() { return kt } )), n.d(e, "ɵsetRootDomAdapter", (function() { return s } )); var i = n(1) , r = n(0) , o = null; function a() { return o } function s(t) { o || (o = t) } var c = function() {} , l = new r.InjectionToken("DocumentToken") , u = function() { function t() {} return t.ɵprov = Object(r["ɵɵdefineInjectable"])({ factory: d, token: t, providedIn: "platform" }), t.ɵfac = function(e) { return new (e || t) } , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function d() { return Object(r["ɵɵinject"])(h) } var p = new r.InjectionToken("Location Initialized") , h = function(t) { function e(e) { var n = t.call(this) || this; return n._doc = e, n._init(), n } return Object(i.c)(e, t), e.prototype._init = function() { this.location = a().getLocation(), this._history = a().getHistory() } , e.prototype.getBaseHrefFromDOM = function() { return a().getBaseHref(this._doc) } , e.prototype.onPopState = function(t) { a().getGlobalEventTarget(this._doc, "window").addEventListener("popstate", t, !1) } , e.prototype.onHashChange = function(t) { a().getGlobalEventTarget(this._doc, "window").addEventListener("hashchange", t, !1) } , Object.defineProperty(e.prototype, "href", { get: function() { return this.location.href }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "protocol", { get: function() { return this.location.protocol }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hostname", { get: function() { return this.location.hostname }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "port", { get: function() { return this.location.port }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pathname", { get: function() { return this.location.pathname }, set: function(t) { this.location.pathname = t }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "search", { get: function() { return this.location.search }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hash", { get: function() { return this.location.hash }, enumerable: !0, configurable: !0 }), e.prototype.pushState = function(t, e, n) { f() ? this._history.pushState(t, e, n) : this.location.hash = n } , e.prototype.replaceState = function(t, e, n) { f() ? this._history.replaceState(t, e, n) : this.location.hash = n } , e.prototype.forward = function() { this._history.forward() } , e.prototype.back = function() { this._history.back() } , e.prototype.getState = function() { return this._history.state } , e.ɵprov = Object(r["ɵɵdefineInjectable"])({ factory: m, token: e, providedIn: "platform" }), (e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(l)), Object(i.d)("design:paramtypes", [Object])], e)).ɵfac = function(t) { return new (t || e)(r["ɵɵinject"](l)) } , e }(u); function f() { return !!window.history.pushState } function m() { return new h(Object(r["ɵɵinject"])(l)) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function g(t, e) { if (0 == t.length) return e; if (0 == e.length) return t; var n = 0; return t.endsWith("/") && n++, e.startsWith("/") && n++, 2 == n ? t + e.substring(1) : 1 == n ? t + e : t + "/" + e } function v(t) { var e = t.match(/#|\?|$/) , n = e && e.index || t.length , i = n - ("/" === t[n - 1] ? 1 : 0); return t.slice(0, i) + t.slice(n) } function y(t) { return t && "?" !== t[0] ? "?" + t : t } var b = function() { function t() {} return t.ɵprov = Object(r["ɵɵdefineInjectable"])({ factory: w, token: t, providedIn: "root" }), t.ɵfac = function(e) { return new (e || t) } , t }(); function w(t) { var e = Object(r["ɵɵinject"])(l).location; return new x(Object(r["ɵɵinject"])(u),e && e.origin || "") } var S = new r.InjectionToken("appBaseHref") , x = function(t) { function e(e, n) { var i = t.call(this) || this; if (i._platformLocation = e, null == n && (n = i._platformLocation.getBaseHrefFromDOM()), null == n) throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document."); return i._baseHref = n, i } return Object(i.c)(e, t), e.prototype.onPopState = function(t) { this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t) } , e.prototype.getBaseHref = function() { return this._baseHref } , e.prototype.prepareExternalUrl = function(t) { return g(this._baseHref, t) } , e.prototype.path = function(t) { void 0 === t && (t = !1); var e = this._platformLocation.pathname + y(this._platformLocation.search) , n = this._platformLocation.hash; return n && t ? "" + e + n : e } , e.prototype.pushState = function(t, e, n, i) { var r = this.prepareExternalUrl(n + y(i)); this._platformLocation.pushState(t, e, r) } , e.prototype.replaceState = function(t, e, n, i) { var r = this.prepareExternalUrl(n + y(i)); this._platformLocation.replaceState(t, e, r) } , e.prototype.forward = function() { this._platformLocation.forward() } , e.prototype.back = function() { this._platformLocation.back() } , (e = Object(i.b)([Object(i.e)(1, Object(r.Optional)()), Object(i.e)(1, Object(r.Inject)(S)), Object(i.d)("design:paramtypes", [u, String])], e)).ɵfac = function(t) { return new (t || e)(r["ɵɵinject"](u),r["ɵɵinject"](S, 8)) } , e.ɵprov = r["ɵɵdefineInjectable"]({ token: e, factory: function(t) { return e.ɵfac(t) } }), e }(b) , M = function(t) { function e(e, n) { var i = t.call(this) || this; return i._platformLocation = e, i._baseHref = "", null != n && (i._baseHref = n), i } return Object(i.c)(e, t), e.prototype.onPopState = function(t) { this._platformLocation.onPopState(t), this._platformLocation.onHashChange(t) } , e.prototype.getBaseHref = function() { return this._baseHref } , e.prototype.path = function(t) { void 0 === t && (t = !1); var e = this._platformLocation.hash; return null == e && (e = "#"), e.length > 0 ? e.substring(1) : e } , e.prototype.prepareExternalUrl = function(t) { var e = g(this._baseHref, t); return e.length > 0 ? "#" + e : e } , e.prototype.pushState = function(t, e, n, i) { var r = this.prepareExternalUrl(n + y(i)); 0 == r.length && (r = this._platformLocation.pathname), this._platformLocation.pushState(t, e, r) } , e.prototype.replaceState = function(t, e, n, i) { var r = this.prepareExternalUrl(n + y(i)); 0 == r.length && (r = this._platformLocation.pathname), this._platformLocation.replaceState(t, e, r) } , e.prototype.forward = function() { this._platformLocation.forward() } , e.prototype.back = function() { this._platformLocation.back() } , (e = Object(i.b)([Object(i.e)(1, Object(r.Optional)()), Object(i.e)(1, Object(r.Inject)(S)), Object(i.d)("design:paramtypes", [u, String])], e)).ɵfac = function(t) { return new (t || e)(r["ɵɵinject"](u),r["ɵɵinject"](S, 8)) } , e.ɵprov = r["ɵɵdefineInjectable"]({ token: e, factory: function(t) { return e.ɵfac(t) } }), e }(b) , E = function() { function t(t, e) { var n = this; this._subject = new r.EventEmitter, this._urlChangeListeners = [], this._platformStrategy = t; var i = this._platformStrategy.getBaseHref(); this._platformLocation = e, this._baseHref = v(A(i)), this._platformStrategy.onPopState((function(t) { n._subject.emit({ url: n.path(!0), pop: !0, state: t.state, type: t.type }) } )) } var e; return e = t, t.prototype.path = function(t) { return void 0 === t && (t = !1), this.normalize(this._platformStrategy.path(t)) } , t.prototype.getState = function() { return this._platformLocation.getState() } , t.prototype.isCurrentPathEqualTo = function(t, e) { return void 0 === e && (e = ""), this.path() == this.normalize(t + y(e)) } , t.prototype.normalize = function(t) { return e.stripTrailingSlash(function(t, e) { return t && e.startsWith(t) ? e.substring(t.length) : e }(this._baseHref, A(t))) } , t.prototype.prepareExternalUrl = function(t) { return t && "/" !== t[0] && (t = "/" + t), this._platformStrategy.prepareExternalUrl(t) } , t.prototype.go = function(t, e, n) { void 0 === e && (e = ""), void 0 === n && (n = null), this._platformStrategy.pushState(n, "", t, e), this._notifyUrlChangeListeners(this.prepareExternalUrl(t + y(e)), n) } , t.prototype.replaceState = function(t, e, n) { void 0 === e && (e = ""), void 0 === n && (n = null), this._platformStrategy.replaceState(n, "", t, e), this._notifyUrlChangeListeners(this.prepareExternalUrl(t + y(e)), n) } , t.prototype.forward = function() { this._platformStrategy.forward() } , t.prototype.back = function() { this._platformStrategy.back() } , t.prototype.onUrlChange = function(t) { var e = this; this._urlChangeListeners.push(t), this.subscribe((function(t) { e._notifyUrlChangeListeners(t.url, t.state) } )) } , t.prototype._notifyUrlChangeListeners = function(t, e) { void 0 === t && (t = ""), this._urlChangeListeners.forEach((function(n) { return n(t, e) } )) } , t.prototype.subscribe = function(t, e, n) { return this._subject.subscribe({ next: t, error: e, complete: n }) } , t.normalizeQueryParams = y, t.joinWithSlash = g, t.stripTrailingSlash = v, t.ɵprov = Object(r["ɵɵdefineInjectable"])({ factory: C, token: t, providedIn: "root" }), (t = e = Object(i.b)([Object(i.d)("design:paramtypes", [b, u])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵinject"](b),r["ɵɵinject"](u)) } , t }(); function C() { return new E(Object(r["ɵɵinject"])(b),Object(r["ɵɵinject"])(u)) } function A(t) { return t.replace(/\/index.html$/, "") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var T, O, _, P, I, k, D, R = { ADP: [void 0, void 0, 0], AFN: [void 0, void 0, 0], ALL: [void 0, void 0, 0], AMD: [void 0, void 0, 2], AOA: [void 0, "Kz"], ARS: [void 0, "$"], AUD: ["A$", "$"], BAM: [void 0, "KM"], BBD: [void 0, "$"], BDT: [void 0, "৳"], BHD: [void 0, void 0, 3], BIF: [void 0, void 0, 0], BMD: [void 0, "$"], BND: [void 0, "$"], BOB: [void 0, "Bs"], BRL: ["R$"], BSD: [void 0, "$"], BWP: [void 0, "P"], BYN: [void 0, "р.", 2], BYR: [void 0, void 0, 0], BZD: [void 0, "$"], CAD: ["CA$", "$", 2], CHF: [void 0, void 0, 2], CLF: [void 0, void 0, 4], CLP: [void 0, "$", 0], CNY: ["CN¥", "¥"], COP: [void 0, "$", 2], CRC: [void 0, "₡", 2], CUC: [void 0, "$"], CUP: [void 0, "$"], CZK: [void 0, "Kč", 2], DJF: [void 0, void 0, 0], DKK: [void 0, "kr", 2], DOP: [void 0, "$"], EGP: [void 0, "E£"], ESP: [void 0, "₧", 0], EUR: ["€"], FJD: [void 0, "$"], FKP: [void 0, "£"], GBP: ["£"], GEL: [void 0, "₾"], GIP: [void 0, "£"], GNF: [void 0, "FG", 0], GTQ: [void 0, "Q"], GYD: [void 0, "$", 2], HKD: ["HK$", "$"], HNL: [void 0, "L"], HRK: [void 0, "kn"], HUF: [void 0, "Ft", 2], IDR: [void 0, "Rp", 2], ILS: ["₪"], INR: ["₹"], IQD: [void 0, void 0, 0], IRR: [void 0, void 0, 0], ISK: [void 0, "kr", 0], ITL: [void 0, void 0, 0], JMD: [void 0, "$"], JOD: [void 0, void 0, 3], JPY: ["¥", void 0, 0], KHR: [void 0, "៛"], KMF: [void 0, "CF", 0], KPW: [void 0, "₩", 0], KRW: ["₩", void 0, 0], KWD: [void 0, void 0, 3], KYD: [void 0, "$"], KZT: [void 0, "₸"], LAK: [void 0, "₭", 0], LBP: [void 0, "L£", 0], LKR: [void 0, "Rs"], LRD: [void 0, "$"], LTL: [void 0, "Lt"], LUF: [void 0, void 0, 0], LVL: [void 0, "Ls"], LYD: [void 0, void 0, 3], MGA: [void 0, "Ar", 0], MGF: [void 0, void 0, 0], MMK: [void 0, "K", 0], MNT: [void 0, "₮", 2], MRO: [void 0, void 0, 0], MUR: [void 0, "Rs", 2], MXN: ["MX$", "$"], MYR: [void 0, "RM"], NAD: [void 0, "$"], NGN: [void 0, "₦"], NIO: [void 0, "C$"], NOK: [void 0, "kr", 2], NPR: [void 0, "Rs"], NZD: ["NZ$", "$"], OMR: [void 0, void 0, 3], PHP: [void 0, "₱"], PKR: [void 0, "Rs", 2], PLN: [void 0, "zł"], PYG: [void 0, "₲", 0], RON: [void 0, "lei"], RSD: [void 0, void 0, 0], RUB: [void 0, "₽"], RUR: [void 0, "р."], RWF: [void 0, "RF", 0], SBD: [void 0, "$"], SEK: [void 0, "kr", 2], SGD: [void 0, "$"], SHP: [void 0, "£"], SLL: [void 0, void 0, 0], SOS: [void 0, void 0, 0], SRD: [void 0, "$"], SSP: [void 0, "£"], STD: [void 0, void 0, 0], STN: [void 0, "Db"], SYP: [void 0, "£", 0], THB: [void 0, "฿"], TMM: [void 0, void 0, 0], TND: [void 0, void 0, 3], TOP: [void 0, "T$"], TRL: [void 0, void 0, 0], TRY: [void 0, "₺"], TTD: [void 0, "$"], TWD: ["NT$", "$", 2], TZS: [void 0, void 0, 2], UAH: [void 0, "₴"], UGX: [void 0, void 0, 0], USD: ["$"], UYI: [void 0, void 0, 0], UYU: [void 0, "$"], UYW: [void 0, void 0, 4], UZS: [void 0, void 0, 2], VEF: [void 0, "Bs", 2], VND: ["₫", void 0, 0], VUV: [void 0, void 0, 0], XAF: ["FCFA", void 0, 0], XCD: ["EC$", "$"], XOF: ["CFA", void 0, 0], XPF: ["CFPF", void 0, 0], XXX: ["¤"], YER: [void 0, void 0, 0], ZAR: [void 0, "R"], ZMK: [void 0, void 0, 0], ZMW: [void 0, "ZK"], ZWD: [void 0, void 0, 0] }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function L(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].LocaleId] } function N(t, e, n) { var i = Object(r["ɵfindLocaleData"])(t) , o = et([i[r["ɵLocaleDataIndex"].DayPeriodsFormat], i[r["ɵLocaleDataIndex"].DayPeriodsStandalone]], e); return et(o, n) } function j(t, e, n) { var i = Object(r["ɵfindLocaleData"])(t) , o = et([i[r["ɵLocaleDataIndex"].DaysFormat], i[r["ɵLocaleDataIndex"].DaysStandalone]], e); return et(o, n) } function V(t, e, n) { var i = Object(r["ɵfindLocaleData"])(t) , o = et([i[r["ɵLocaleDataIndex"].MonthsFormat], i[r["ɵLocaleDataIndex"].MonthsStandalone]], e); return et(o, n) } function F(t, e) { return et(Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].Eras], e) } function U(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].FirstDayOfWeek] } function B(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].WeekendRange] } function z(t, e) { return et(Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].DateFormat], e) } function G(t, e) { return et(Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].TimeFormat], e) } function H(t, e) { return et(Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].DateTimeFormat], e) } function W(t, e) { var n = Object(r["ɵfindLocaleData"])(t) , i = n[r["ɵLocaleDataIndex"].NumberSymbols][e]; if (void 0 === i) { if (e === k.CurrencyDecimal) return n[r["ɵLocaleDataIndex"].NumberSymbols][k.Decimal]; if (e === k.CurrencyGroup) return n[r["ɵLocaleDataIndex"].NumberSymbols][k.Group] } return i } function q(t, e) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].NumberFormats][e] } function X(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].CurrencySymbol] || null } function Y(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].CurrencyName] || null } function K(t) { return Object(r["ɵgetLocaleCurrencyCode"])(t) } !function(t) { t[t.Decimal = 0] = "Decimal", t[t.Percent = 1] = "Percent", t[t.Currency = 2] = "Currency", t[t.Scientific = 3] = "Scientific" }(T || (T = {})), function(t) { t[t.Zero = 0] = "Zero", t[t.One = 1] = "One", t[t.Two = 2] = "Two", t[t.Few = 3] = "Few", t[t.Many = 4] = "Many", t[t.Other = 5] = "Other" }(O || (O = {})), function(t) { t[t.Format = 0] = "Format", t[t.Standalone = 1] = "Standalone" }(_ || (_ = {})), function(t) { t[t.Narrow = 0] = "Narrow", t[t.Abbreviated = 1] = "Abbreviated", t[t.Wide = 2] = "Wide", t[t.Short = 3] = "Short" }(P || (P = {})), function(t) { t[t.Short = 0] = "Short", t[t.Medium = 1] = "Medium", t[t.Long = 2] = "Long", t[t.Full = 3] = "Full" }(I || (I = {})), function(t) { t[t.Decimal = 0] = "Decimal", t[t.Group = 1] = "Group", t[t.List = 2] = "List", t[t.PercentSign = 3] = "PercentSign", t[t.PlusSign = 4] = "PlusSign", t[t.MinusSign = 5] = "MinusSign", t[t.Exponential = 6] = "Exponential", t[t.SuperscriptingExponent = 7] = "SuperscriptingExponent", t[t.PerMille = 8] = "PerMille", t[t[1 / 0] = 9] = "Infinity", t[t.NaN = 10] = "NaN", t[t.TimeSeparator = 11] = "TimeSeparator", t[t.CurrencyDecimal = 12] = "CurrencyDecimal", t[t.CurrencyGroup = 13] = "CurrencyGroup" }(k || (k = {})), function(t) { t[t.Sunday = 0] = "Sunday", t[t.Monday = 1] = "Monday", t[t.Tuesday = 2] = "Tuesday", t[t.Wednesday = 3] = "Wednesday", t[t.Thursday = 4] = "Thursday", t[t.Friday = 5] = "Friday", t[t.Saturday = 6] = "Saturday" }(D || (D = {})); var Z = r["ɵgetLocalePluralCase"]; function J(t) { if (!t[r["ɵLocaleDataIndex"].ExtraData]) throw new Error('Missing extra locale data for the locale "' + t[r["ɵLocaleDataIndex"].LocaleId] + '". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.') } function Q(t) { var e = Object(r["ɵfindLocaleData"])(t); return J(e), (e[r["ɵLocaleDataIndex"].ExtraData][2] || []).map((function(t) { return "string" == typeof t ? nt(t) : [nt(t[0]), nt(t[1])] } )) } function $(t, e, n) { var i = Object(r["ɵfindLocaleData"])(t); J(i); var o = et([i[r["ɵLocaleDataIndex"].ExtraData][0], i[r["ɵLocaleDataIndex"].ExtraData][1]], e) || []; return et(o, n) || [] } function tt(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].Directionality] } function et(t, e) { for (var n = e; n > -1; n--) if (void 0 !== t[n]) return t[n]; throw new Error("Locale data API: locale data undefined") } function nt(t) { var e = Object(i.f)(t.split(":"), 2); return { hours: +e[0], minutes: +e[1] } } function it(t, e, n) { void 0 === n && (n = "en"); var i = function(t) { return Object(r["ɵfindLocaleData"])(t)[r["ɵLocaleDataIndex"].Currencies] }(n)[t] || R[t] || [] , o = i[1]; return "narrow" === e && "string" == typeof o ? o : i[0] || t } function rt(t) { var e, n = R[t]; return n && (e = n[2]), "number" == typeof e ? e : 2 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ot, at, st, ct = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/, lt = {}, ut = /((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/; function dt(t, e, n, r) { var o = function(t) { if (wt(t)) return t; if ("number" == typeof t && !isNaN(t)) return new Date(t); if ("string" == typeof t) { t = t.trim(); var e = parseFloat(t); if (!isNaN(t - e)) return new Date(e); if (/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)) { var n = Object(i.f)(t.split("-").map((function(t) { return +t } )), 3) , r = n[0] , o = n[1] , a = n[2]; return new Date(r,o - 1,a) } var s; if (s = t.match(ct)) return function(t) { var e = new Date(0) , n = 0 , i = 0 , r = t[8] ? e.setUTCFullYear : e.setFullYear , o = t[8] ? e.setUTCHours : e.setHours; t[9] && (n = Number(t[9] + t[10]), i = Number(t[9] + t[11])); r.call(e, Number(t[1]), Number(t[2]) - 1, Number(t[3])); var a = Number(t[4] || 0) - n , s = Number(t[5] || 0) - i , c = Number(t[6] || 0) , l = Math.round(1e3 * parseFloat("0." + (t[7] || 0))); return o.call(e, a, s, c, l), e }(s) } var c = new Date(t); if (!wt(c)) throw new Error('Unable to convert "' + t + '" into a date'); return c }(t); e = function t(e, n) { var i = L(e); if (lt[i] = lt[i] || {}, lt[i][n]) return lt[i][n]; var r = ""; switch (n) { case "shortDate": r = z(e, I.Short); break; case "mediumDate": r = z(e, I.Medium); break; case "longDate": r = z(e, I.Long); break; case "fullDate": r = z(e, I.Full); break; case "shortTime": r = G(e, I.Short); break; case "mediumTime": r = G(e, I.Medium); break; case "longTime": r = G(e, I.Long); break; case "fullTime": r = G(e, I.Full); break; case "short": var o = t(e, "shortTime") , a = t(e, "shortDate"); r = pt(H(e, I.Short), [o, a]); break; case "medium": var s = t(e, "mediumTime") , c = t(e, "mediumDate"); r = pt(H(e, I.Medium), [s, c]); break; case "long": var l = t(e, "longTime") , u = t(e, "longDate"); r = pt(H(e, I.Long), [l, u]); break; case "full": var d = t(e, "fullTime") , p = t(e, "fullDate"); r = pt(H(e, I.Full), [d, p]) } r && (lt[i][n] = r); return r }(n, e) || e; for (var a, s = []; e; ) { if (!(a = ut.exec(e))) { s.push(e); break } var c = (s = s.concat(a.slice(1))).pop(); if (!c) break; e = c } var l = o.getTimezoneOffset(); r && (l = bt(r, l), o = function(t, e, n) { var i = n ? -1 : 1 , r = t.getTimezoneOffset() , o = bt(e, r); return function(t, e) { return (t = new Date(t.getTime())).setMinutes(t.getMinutes() + e), t }(t, i * (o - r)) }(o, r, !0)); var u = ""; return s.forEach((function(t) { var e = function(t) { if (yt[t]) return yt[t]; var e; switch (t) { case "G": case "GG": case "GGG": e = mt(st.Eras, P.Abbreviated); break; case "GGGG": e = mt(st.Eras, P.Wide); break; case "GGGGG": e = mt(st.Eras, P.Narrow); break; case "y": e = ft(at.FullYear, 1, 0, !1, !0); break; case "yy": e = ft(at.FullYear, 2, 0, !0, !0); break; case "yyy": e = ft(at.FullYear, 3, 0, !1, !0); break; case "yyyy": e = ft(at.FullYear, 4, 0, !1, !0); break; case "M": case "L": e = ft(at.Month, 1, 1); break; case "MM": case "LL": e = ft(at.Month, 2, 1); break; case "MMM": e = mt(st.Months, P.Abbreviated); break; case "MMMM": e = mt(st.Months, P.Wide); break; case "MMMMM": e = mt(st.Months, P.Narrow); break; case "LLL": e = mt(st.Months, P.Abbreviated, _.Standalone); break; case "LLLL": e = mt(st.Months, P.Wide, _.Standalone); break; case "LLLLL": e = mt(st.Months, P.Narrow, _.Standalone); break; case "w": e = vt(1); break; case "ww": e = vt(2); break; case "W": e = vt(1, !0); break; case "d": e = ft(at.Date, 1); break; case "dd": e = ft(at.Date, 2); break; case "E": case "EE": case "EEE": e = mt(st.Days, P.Abbreviated); break; case "EEEE": e = mt(st.Days, P.Wide); break; case "EEEEE": e = mt(st.Days, P.Narrow); break; case "EEEEEE": e = mt(st.Days, P.Short); break; case "a": case "aa": case "aaa": e = mt(st.DayPeriods, P.Abbreviated); break; case "aaaa": e = mt(st.DayPeriods, P.Wide); break; case "aaaaa": e = mt(st.DayPeriods, P.Narrow); break; case "b": case "bb": case "bbb": e = mt(st.DayPeriods, P.Abbreviated, _.Standalone, !0); break; case "bbbb": e = mt(st.DayPeriods, P.Wide, _.Standalone, !0); break; case "bbbbb": e = mt(st.DayPeriods, P.Narrow, _.Standalone, !0); break; case "B": case "BB": case "BBB": e = mt(st.DayPeriods, P.Abbreviated, _.Format, !0); break; case "BBBB": e = mt(st.DayPeriods, P.Wide, _.Format, !0); break; case "BBBBB": e = mt(st.DayPeriods, P.Narrow, _.Format, !0); break; case "h": e = ft(at.Hours, 1, -12); break; case "hh": e = ft(at.Hours, 2, -12); break; case "H": e = ft(at.Hours, 1); break; case "HH": e = ft(at.Hours, 2); break; case "m": e = ft(at.Minutes, 1); break; case "mm": e = ft(at.Minutes, 2); break; case "s": e = ft(at.Seconds, 1); break; case "ss": e = ft(at.Seconds, 2); break; case "S": e = ft(at.FractionalSeconds, 1); break; case "SS": e = ft(at.FractionalSeconds, 2); break; case "SSS": e = ft(at.FractionalSeconds, 3); break; case "Z": case "ZZ": case "ZZZ": e = gt(ot.Short); break; case "ZZZZZ": e = gt(ot.Extended); break; case "O": case "OO": case "OOO": case "z": case "zz": case "zzz": e = gt(ot.ShortGMT); break; case "OOOO": case "ZZZZ": case "zzzz": e = gt(ot.Long); break; default: return null } return yt[t] = e, e }(t); u += e ? e(o, n, l) : "''" === t ? "'" : t.replace(/(^'|'$)/g, "").replace(/''/g, "'") } )), u } function pt(t, e) { return e && (t = t.replace(/\{([^}]+)}/g, (function(t, n) { return null != e && n in e ? e[n] : t } ))), t } function ht(t, e, n, i, r) { void 0 === n && (n = "-"); var o = ""; (t < 0 || r && t <= 0) && (r ? t = 1 - t : (t = -t, o = n)); for (var a = String(t); a.length < e; ) a = "0" + a; return i && (a = a.substr(a.length - e)), o + a } function ft(t, e, n, i, r) { return void 0 === n && (n = 0), void 0 === i && (i = !1), void 0 === r && (r = !1), function(o, a) { var s, c = function(t, e) { switch (t) { case at.FullYear: return e.getFullYear(); case at.Month: return e.getMonth(); case at.Date: return e.getDate(); case at.Hours: return e.getHours(); case at.Minutes: return e.getMinutes(); case at.Seconds: return e.getSeconds(); case at.FractionalSeconds: return e.getMilliseconds(); case at.Day: return e.getDay(); default: throw new Error('Unknown DateType value "' + t + '".') } }(t, o); if ((n > 0 || c > -n) && (c += n), t === at.Hours) 0 === c && -12 === n && (c = 12); else if (t === at.FractionalSeconds) return s = e, ht(c, 3).substr(0, s); var l = W(a, k.MinusSign); return ht(c, e, l, i, r) } } function mt(t, e, n, i) { return void 0 === n && (n = _.Format), void 0 === i && (i = !1), function(r, o) { return function(t, e, n, i, r, o) { switch (n) { case st.Months: return V(e, r, i)[t.getMonth()]; case st.Days: return j(e, r, i)[t.getDay()]; case st.DayPeriods: var a = t.getHours() , s = t.getMinutes(); if (o) { var c, l = Q(e), u = $(e, r, i); if (l.forEach((function(t, e) { if (Array.isArray(t)) { var n = t[0] , i = n.hours , r = n.minutes , o = t[1] , l = o.hours , d = o.minutes; a >= i && s >= r && (a < l || a === l && s < d) && (c = u[e]) } else { var p = t.hours , h = t.minutes; p === a && h === s && (c = u[e]) } } )), c) return c } return N(e, r, i)[a < 12 ? 0 : 1]; case st.Eras: return F(e, i)[t.getFullYear() <= 0 ? 0 : 1]; default: throw new Error("unexpected translation type " + n) } }(r, o, t, e, n, i) } } function gt(t) { return function(e, n, i) { var r = -1 * i , o = W(n, k.MinusSign) , a = r > 0 ? Math.floor(r / 60) : Math.ceil(r / 60); switch (t) { case ot.Short: return (r >= 0 ? "+" : "") + ht(a, 2, o) + ht(Math.abs(r % 60), 2, o); case ot.ShortGMT: return "GMT" + (r >= 0 ? "+" : "") + ht(a, 1, o); case ot.Long: return "GMT" + (r >= 0 ? "+" : "") + ht(a, 2, o) + ":" + ht(Math.abs(r % 60), 2, o); case ot.Extended: return 0 === i ? "Z" : (r >= 0 ? "+" : "") + ht(a, 2, o) + ":" + ht(Math.abs(r % 60), 2, o); default: throw new Error('Unknown zone width "' + t + '"') } } } !function(t) { t[t.Short = 0] = "Short", t[t.ShortGMT = 1] = "ShortGMT", t[t.Long = 2] = "Long", t[t.Extended = 3] = "Extended" }(ot || (ot = {})), function(t) { t[t.FullYear = 0] = "FullYear", t[t.Month = 1] = "Month", t[t.Date = 2] = "Date", t[t.Hours = 3] = "Hours", t[t.Minutes = 4] = "Minutes", t[t.Seconds = 5] = "Seconds", t[t.FractionalSeconds = 6] = "FractionalSeconds", t[t.Day = 7] = "Day" }(at || (at = {})), function(t) { t[t.DayPeriods = 0] = "DayPeriods", t[t.Days = 1] = "Days", t[t.Months = 2] = "Months", t[t.Eras = 3] = "Eras" }(st || (st = {})); function vt(t, e) { return void 0 === e && (e = !1), function(n, i) { var r, o, a, s; if (e) { var c = new Date(n.getFullYear(),n.getMonth(),1).getDay() - 1 , l = n.getDate(); r = 1 + Math.floor((l + c) / 7) } else { var u = (a = n.getFullYear(), s = new Date(a,0,1).getDay(), new Date(a,0,1 + (s <= 4 ? 4 : 11) - s)) , d = (o = n, new Date(o.getFullYear(),o.getMonth(),o.getDate() + (4 - o.getDay()))).getTime() - u.getTime(); r = 1 + Math.round(d / 6048e5) } return ht(r, t, W(i, k.MinusSign)) } } var yt = {}; function bt(t, e) { t = t.replace(/:/g, ""); var n = Date.parse("Jan 01, 1970 00:00:00 " + t) / 6e4; return isNaN(n) ? e : n } function wt(t) { return t instanceof Date && !isNaN(t.valueOf()) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var St = /^(\d+)?\.((\d+)(-(\d+))?)?$/; function xt(t, e, n, i, r, o, a) { void 0 === a && (a = !1); var s = "" , c = !1; if (isFinite(t)) { var l = function(t) { var e, n, i, r, o, a = Math.abs(t) + "", s = 0; (n = a.indexOf(".")) > -1 && (a = a.replace(".", "")); (i = a.search(/e/i)) > 0 ? (n < 0 && (n = i), n += +a.slice(i + 1), a = a.substring(0, i)) : n < 0 && (n = a.length); for (i = 0; "0" === a.charAt(i); i++) ; if (i === (o = a.length)) e = [0], n = 1; else { for (o--; "0" === a.charAt(o); ) o--; for (n -= i, e = [], r = 0; i <= o; i++, r++) e[r] = Number(a.charAt(i)) } n > 22 && (e = e.splice(0, 21), s = n - 1, n = 1); return { digits: e, exponent: s, integerLen: n } }(t); a && (l = function(t) { if (0 === t.digits[0]) return t; var e = t.digits.length - t.integerLen; t.exponent ? t.exponent += 2 : (0 === e ? t.digits.push(0, 0) : 1 === e && t.digits.push(0), t.integerLen += 2); return t }(l)); var u = e.minInt , d = e.minFrac , p = e.maxFrac; if (o) { var h = o.match(St); if (null === h) throw new Error(o + " is not a valid digit info"); var f = h[1] , m = h[3] , g = h[5]; null != f && (u = Tt(f)), null != m && (d = Tt(m)), null != g ? p = Tt(g) : null != m && d > p && (p = d) } !function(t, e, n) { if (e > n) throw new Error("The minimum number of digits after fraction (" + e + ") is higher than the maximum (" + n + ")."); var i = t.digits , r = i.length - t.integerLen , o = Math.min(Math.max(e, r), n) , a = o + t.integerLen , s = i[a]; if (a > 0) { i.splice(Math.max(t.integerLen, a)); for (var c = a; c < i.length; c++) i[c] = 0 } else { r = Math.max(0, r), t.integerLen = 1, i.length = Math.max(1, a = o + 1), i[0] = 0; for (var l = 1; l < a; l++) i[l] = 0 } if (s >= 5) if (a - 1 < 0) { for (var u = 0; u > a; u--) i.unshift(0), t.integerLen++; i.unshift(1), t.integerLen++ } else i[a - 1]++; for (; r < Math.max(0, o); r++) i.push(0); var d = 0 !== o , p = e + t.integerLen , h = i.reduceRight((function(t, e, n, i) { return e += t, i[n] = e < 10 ? e : e - 10, d && (0 === i[n] && n >= p ? i.pop() : d = !1), e >= 10 ? 1 : 0 } ), 0); h && (i.unshift(h), t.integerLen++) }(l, d, p); var v = l.digits , y = l.integerLen , b = l.exponent , w = []; for (c = v.every((function(t) { return !t } )); y < u; y++) v.unshift(0); for (; y < 0; y++) v.unshift(0); y > 0 ? w = v.splice(y, v.length) : (w = v, v = [0]); var S = []; for (v.length >= e.lgSize && S.unshift(v.splice(-e.lgSize, v.length).join("")); v.length > e.gSize; ) S.unshift(v.splice(-e.gSize, v.length).join("")); v.length && S.unshift(v.join("")), s = S.join(W(n, i)), w.length && (s += W(n, r) + w.join("")), b && (s += W(n, k.Exponential) + "+" + b) } else s = W(n, k.Infinity); return s = t < 0 && !c ? e.negPre + s + e.negSuf : e.posPre + s + e.posSuf } function Mt(t, e, n, i, r) { var o = At(q(e, T.Currency), W(e, k.MinusSign)); return o.minFrac = rt(i), o.maxFrac = o.minFrac, xt(t, o, e, k.CurrencyGroup, k.CurrencyDecimal, r).replace("¤", n).replace("¤", "").trim() } function Et(t, e, n) { return xt(t, At(q(e, T.Percent), W(e, k.MinusSign)), e, k.Group, k.Decimal, n, !0).replace(new RegExp("%","g"), W(e, k.PercentSign)) } function Ct(t, e, n) { return xt(t, At(q(e, T.Decimal), W(e, k.MinusSign)), e, k.Group, k.Decimal, n) } function At(t, e) { void 0 === e && (e = "-"); var n = { minInt: 1, minFrac: 0, maxFrac: 0, posPre: "", posSuf: "", negPre: "", negSuf: "", gSize: 0, lgSize: 0 } , i = t.split(";") , r = i[0] , o = i[1] , a = -1 !== r.indexOf(".") ? r.split(".") : [r.substring(0, r.lastIndexOf("0") + 1), r.substring(r.lastIndexOf("0") + 1)] , s = a[0] , c = a[1] || ""; n.posPre = s.substr(0, s.indexOf("#")); for (var l = 0; l < c.length; l++) { var u = c.charAt(l); "0" === u ? n.minFrac = n.maxFrac = l + 1 : "#" === u ? n.maxFrac = l + 1 : n.posSuf += u } var d = s.split(","); if (n.gSize = d[1] ? d[1].length : 0, n.lgSize = d[2] || d[1] ? (d[2] || d[1]).length : 0, o) { var p = r.length - n.posPre.length - n.posSuf.length , h = o.indexOf("#"); n.negPre = o.substr(0, h).replace(/'/g, ""), n.negSuf = o.substr(h + p).replace(/'/g, "") } else n.negPre = e + n.posPre, n.negSuf = n.posSuf; return n } function Tt(t) { var e = parseInt(t); if (isNaN(e)) throw new Error("Invalid integer literal when parsing " + t); return e } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Ot = function() {}; function _t(t, e, n, i) { var r = "=" + t; if (e.indexOf(r) > -1) return r; if (r = n.getPluralCategory(t, i), e.indexOf(r) > -1) return r; if (e.indexOf("other") > -1) return "other"; throw new Error('No plural message found for value "' + t + '"') } var Pt = function(t) { function e(e) { var n = t.call(this) || this; return n.locale = e, n } return Object(i.c)(e, t), e.prototype.getPluralCategory = function(t, e) { switch (Z(e || this.locale)(t)) { case O.Zero: return "zero"; case O.One: return "one"; case O.Two: return "two"; case O.Few: return "few"; case O.Many: return "many"; default: return "other" } } , (e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(r.LOCALE_ID)), Object(i.d)("design:paramtypes", [String])], e)).ɵfac = function(t) { return new (t || e)(r["ɵɵinject"](r.LOCALE_ID)) } , e.ɵprov = r["ɵɵdefineInjectable"]({ token: e, factory: function(t) { return e.ɵfac(t) } }), e }(Ot); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function It(t, e, n) { return Object(r["ɵregisterLocaleData"])(t, e, n) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function kt(t, e) { var n, r; e = encodeURIComponent(e); try { for (var o = Object(i.j)(t.split(";")), a = o.next(); !a.done; a = o.next()) { var s = a.value , c = s.indexOf("=") , l = Object(i.f)(-1 == c ? [s, ""] : [s.slice(0, c), s.slice(c + 1)], 2) , u = l[0] , d = l[1]; if (u.trim() === e) return decodeURIComponent(d) } } catch (t) { n = { error: t } } finally { try { a && !a.done && (r = o.return) && r.call(o) } finally { if (n) throw n.error } } return null } var Dt = function() { function t(t, e, n, i) { this._iterableDiffers = t, this._keyValueDiffers = e, this._ngEl = n, this._renderer = i, this._iterableDiffer = null, this._keyValueDiffer = null, this._initialClasses = [], this._rawClass = null } return Object.defineProperty(t.prototype, "klass", { set: function(t) { this._removeClasses(this._initialClasses), this._initialClasses = "string" == typeof t ? t.split(/\s+/) : [], this._applyClasses(this._initialClasses), this._applyClasses(this._rawClass) }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "ngClass", { set: function(t) { this._removeClasses(this._rawClass), this._applyClasses(this._initialClasses), this._iterableDiffer = null, this._keyValueDiffer = null, this._rawClass = "string" == typeof t ? t.split(/\s+/) : t, this._rawClass && (Object(r["ɵisListLikeIterable"])(this._rawClass) ? this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create() : this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create()) }, enumerable: !0, configurable: !0 }), t.prototype.ngDoCheck = function() { if (this._iterableDiffer) { var t = this._iterableDiffer.diff(this._rawClass); t && this._applyIterableChanges(t) } else if (this._keyValueDiffer) { var e = this._keyValueDiffer.diff(this._rawClass); e && this._applyKeyValueChanges(e) } } , t.prototype._applyKeyValueChanges = function(t) { var e = this; t.forEachAddedItem((function(t) { return e._toggleClass(t.key, t.currentValue) } )), t.forEachChangedItem((function(t) { return e._toggleClass(t.key, t.currentValue) } )), t.forEachRemovedItem((function(t) { t.previousValue && e._toggleClass(t.key, !1) } )) } , t.prototype._applyIterableChanges = function(t) { var e = this; t.forEachAddedItem((function(t) { if ("string" != typeof t.item) throw new Error("NgClass can only toggle CSS classes expressed as strings, got " + Object(r["ɵstringify"])(t.item)); e._toggleClass(t.item, !0) } )), t.forEachRemovedItem((function(t) { return e._toggleClass(t.item, !1) } )) } , t.prototype._applyClasses = function(t) { var e = this; t && (Array.isArray(t) || t instanceof Set ? t.forEach((function(t) { return e._toggleClass(t, !0) } )) : Object.keys(t).forEach((function(n) { return e._toggleClass(n, !!t[n]) } ))) } , t.prototype._removeClasses = function(t) { var e = this; t && (Array.isArray(t) || t instanceof Set ? t.forEach((function(t) { return e._toggleClass(t, !1) } )) : Object.keys(t).forEach((function(t) { return e._toggleClass(t, !1) } ))) } , t.prototype._toggleClass = function(t, e) { var n = this; (t = t.trim()) && t.split(/\s+/g).forEach((function(t) { e ? n._renderer.addClass(n._ngEl.nativeElement, t) : n._renderer.removeClass(n._ngEl.nativeElement, t) } )) } , Object(i.b)([Object(r.Input)("class"), Object(i.d)("design:type", String), Object(i.d)("design:paramtypes", [String])], t.prototype, "klass", null), Object(i.b)([Object(r.Input)("ngClass"), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngClass", null), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.IterableDiffers, r.KeyValueDiffers, r.ElementRef, r.Renderer2])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.IterableDiffers),r["ɵɵdirectiveInject"](r.KeyValueDiffers),r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](r.Renderer2)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngClass", ""]], inputs: { klass: ["class", "klass"], ngClass: "ngClass" } }), t }() , Rt = function() { function t(t) { this._viewContainerRef = t, this._componentRef = null, this._moduleRef = null } return t.prototype.ngOnChanges = function(t) { if (this._viewContainerRef.clear(), this._componentRef = null, this.ngComponentOutlet) { var e = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector; if (t.ngComponentOutletNgModuleFactory) if (this._moduleRef && this._moduleRef.destroy(), this.ngComponentOutletNgModuleFactory) { var n = e.get(r.NgModuleRef); this._moduleRef = this.ngComponentOutletNgModuleFactory.create(n.injector) } else this._moduleRef = null; var i = (this._moduleRef ? this._moduleRef.componentFactoryResolver : e.get(r.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet); this._componentRef = this._viewContainerRef.createComponent(i, this._viewContainerRef.length, e, this.ngComponentOutletContent) } } , t.prototype.ngOnDestroy = function() { this._moduleRef && this._moduleRef.destroy() } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", r.Type)], t.prototype, "ngComponentOutlet", void 0), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", r.Injector)], t.prototype, "ngComponentOutletInjector", void 0), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Array)], t.prototype, "ngComponentOutletContent", void 0), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", r.NgModuleFactory)], t.prototype, "ngComponentOutletNgModuleFactory", void 0), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.ViewContainerRef])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngComponentOutlet", ""]], inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, features: [r["ɵɵNgOnChangesFeature"]] }), t }() , Lt = function() { function t(t, e, n, i) { this.$implicit = t, this.ngForOf = e, this.index = n, this.count = i } return Object.defineProperty(t.prototype, "first", { get: function() { return 0 === this.index }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "last", { get: function() { return this.index === this.count - 1 }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "even", { get: function() { return this.index % 2 == 0 }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "odd", { get: function() { return !this.even }, enumerable: !0, configurable: !0 }), t }() , Nt = function() { function t(t, e, n) { this._viewContainer = t, this._template = e, this._differs = n, this._ngForOf = null, this._ngForOfDirty = !0, this._differ = null } return Object.defineProperty(t.prototype, "ngForOf", { set: function(t) { this._ngForOf = t, this._ngForOfDirty = !0 }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "ngForTrackBy", { get: function() { return this._trackByFn }, set: function(t) { Object(r.isDevMode)() && null != t && "function" != typeof t && console && console.warn && console.warn("trackBy must be a function, but received " + JSON.stringify(t) + ". See https://angular.io/api/common/NgForOf#change-propagation for more information."), this._trackByFn = t }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "ngForTemplate", { set: function(t) { t && (this._template = t) }, enumerable: !0, configurable: !0 }), t.prototype.ngDoCheck = function() { if (this._ngForOfDirty) { this._ngForOfDirty = !1; var t = this._ngForOf; if (!this._differ && t) try { this._differ = this._differs.find(t).create(this.ngForTrackBy) } catch (n) { throw new Error("Cannot find a differ supporting object '" + t + "' of type '" + ((e = t).name || typeof e) + "'. NgFor only supports binding to Iterables such as Arrays.") } } var e; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ if (this._differ) { var n = this._differ.diff(this._ngForOf); n && this._applyChanges(n) } } , t.prototype._applyChanges = function(t) { var e = this , n = []; t.forEachOperation((function(t, i, r) { if (null == t.previousIndex) { var o = e._viewContainer.createEmbeddedView(e._template, new Lt(null,e._ngForOf,-1,-1), null === r ? void 0 : r) , a = new jt(t,o); n.push(a) } else if (null == r) e._viewContainer.remove(null === i ? void 0 : i); else if (null !== i) { o = e._viewContainer.get(i); e._viewContainer.move(o, r); a = new jt(t,o); n.push(a) } } )); for (var i = 0; i < n.length; i++) this._perViewChange(n[i].view, n[i].record); i = 0; for (var r = this._viewContainer.length; i < r; i++) { var o = this._viewContainer.get(i); o.context.index = i, o.context.count = r, o.context.ngForOf = this._ngForOf } t.forEachIdentityChange((function(t) { e._viewContainer.get(t.currentIndex).context.$implicit = t.item } )) } , t.prototype._perViewChange = function(t, e) { t.context.$implicit = e.item } , t.ngTemplateContextGuard = function(t, e) { return !0 } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngForOf", null), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Function), Object(i.d)("design:paramtypes", [Function])], t.prototype, "ngForTrackBy", null), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", r.TemplateRef), Object(i.d)("design:paramtypes", [r.TemplateRef])], t.prototype, "ngForTemplate", null), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.ViewContainerRef, r.TemplateRef, r.IterableDiffers])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](r.TemplateRef),r["ɵɵdirectiveInject"](r.IterableDiffers)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngFor", "", "ngForOf", ""]], inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" } }), t }() , jt = function(t, e) { this.record = t, this.view = e }; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Vt = function() { function t(t, e) { this._viewContainer = t, this._context = new Ft, this._thenTemplateRef = null, this._elseTemplateRef = null, this._thenViewRef = null, this._elseViewRef = null, this._thenTemplateRef = e } return Object.defineProperty(t.prototype, "ngIf", { set: function(t) { this._context.$implicit = this._context.ngIf = t, this._updateView() }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "ngIfThen", { set: function(t) { Ut("ngIfThen", t), this._thenTemplateRef = t, this._thenViewRef = null, this._updateView() }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "ngIfElse", { set: function(t) { Ut("ngIfElse", t), this._elseTemplateRef = t, this._elseViewRef = null, this._updateView() }, enumerable: !0, configurable: !0 }), t.prototype._updateView = function() { this._context.$implicit ? this._thenViewRef || (this._viewContainer.clear(), this._elseViewRef = null, this._thenTemplateRef && (this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context))) : this._elseViewRef || (this._viewContainer.clear(), this._thenViewRef = null, this._elseTemplateRef && (this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context))) } , t.ngTemplateContextGuard = function(t, e) { return !0 } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngIf", null), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngIfThen", null), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngIfElse", null), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.ViewContainerRef, r.TemplateRef])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](r.TemplateRef)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngIf", ""]], inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" } }), t }() , Ft = function() { this.$implicit = null, this.ngIf = null }; function Ut(t, e) { if (!!(e && !e.createEmbeddedView)) throw new Error(t + " must be a TemplateRef, but received '" + Object(r["ɵstringify"])(e) + "'.") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Bt = function() { function t(t, e) { this._viewContainerRef = t, this._templateRef = e, this._created = !1 } return t.prototype.create = function() { this._created = !0, this._viewContainerRef.createEmbeddedView(this._templateRef) } , t.prototype.destroy = function() { this._created = !1, this._viewContainerRef.clear() } , t.prototype.enforceState = function(t) { t && !this._created ? this.create() : !t && this._created && this.destroy() } , t }() , zt = function() { function t() { this._defaultUsed = !1, this._caseCount = 0, this._lastCaseCheckIndex = 0, this._lastCasesMatched = !1 } return Object.defineProperty(t.prototype, "ngSwitch", { set: function(t) { this._ngSwitch = t, 0 === this._caseCount && this._updateDefaultCases(!0) }, enumerable: !0, configurable: !0 }), t.prototype._addCase = function() { return this._caseCount++ } , t.prototype._addDefault = function(t) { this._defaultViews || (this._defaultViews = []), this._defaultViews.push(t) } , t.prototype._matchCase = function(t) { var e = t == this._ngSwitch; return this._lastCasesMatched = this._lastCasesMatched || e, this._lastCaseCheckIndex++, this._lastCaseCheckIndex === this._caseCount && (this._updateDefaultCases(!this._lastCasesMatched), this._lastCaseCheckIndex = 0, this._lastCasesMatched = !1), e } , t.prototype._updateDefaultCases = function(t) { if (this._defaultViews && t !== this._defaultUsed) { this._defaultUsed = t; for (var e = 0; e < this._defaultViews.length; e++) { this._defaultViews[e].enforceState(t) } } } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngSwitch", null), t.ɵfac = function(e) { return new (e || t) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngSwitch", ""]], inputs: { ngSwitch: "ngSwitch" } }), t }() , Gt = function() { function t(t, e, n) { this.ngSwitch = n, n._addCase(), this._view = new Bt(t,e) } return t.prototype.ngDoCheck = function() { this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase)) } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object)], t.prototype, "ngSwitchCase", void 0), (t = Object(i.b)([Object(i.e)(2, Object(r.Host)()), Object(i.d)("design:paramtypes", [r.ViewContainerRef, r.TemplateRef, zt])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](r.TemplateRef),r["ɵɵdirectiveInject"](zt, 1)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngSwitchCase", ""]], inputs: { ngSwitchCase: "ngSwitchCase" } }), t }() , Ht = function() { function t(t, e, n) { n._addDefault(new Bt(t,e)) } return (t = Object(i.b)([Object(i.e)(2, Object(r.Host)()), Object(i.d)("design:paramtypes", [r.ViewContainerRef, r.TemplateRef, zt])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](r.TemplateRef),r["ɵɵdirectiveInject"](zt, 1)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngSwitchDefault", ""]] }), t }() , Wt = function() { function t(t) { this._localization = t, this._caseViews = {} } return Object.defineProperty(t.prototype, "ngPlural", { set: function(t) { this._switchValue = t, this._updateView() }, enumerable: !0, configurable: !0 }), t.prototype.addCase = function(t, e) { this._caseViews[t] = e } , t.prototype._updateView = function() { this._clearViews(); var t = Object.keys(this._caseViews) , e = _t(this._switchValue, t, this._localization); this._activateView(this._caseViews[e]) } , t.prototype._clearViews = function() { this._activeView && this._activeView.destroy() } , t.prototype._activateView = function(t) { t && (this._activeView = t, this._activeView.create()) } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Number), Object(i.d)("design:paramtypes", [Number])], t.prototype, "ngPlural", null), (t = Object(i.b)([Object(i.d)("design:paramtypes", [Ot])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](Ot)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngPlural", ""]], inputs: { ngPlural: "ngPlural" } }), t }() , qt = function() { function t(t, e, n, i) { this.value = t; var r = !isNaN(Number(t)); i.addCase(r ? "=" + t : t, new Bt(n,e)) } return (t = Object(i.b)([Object(i.e)(0, Object(r.Attribute)("ngPluralCase")), Object(i.e)(3, Object(r.Host)()), Object(i.d)("design:paramtypes", [String, r.TemplateRef, r.ViewContainerRef, Wt])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵinjectAttribute"]("ngPluralCase"),r["ɵɵdirectiveInject"](r.TemplateRef),r["ɵɵdirectiveInject"](r.ViewContainerRef),r["ɵɵdirectiveInject"](Wt, 1)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngPluralCase", ""]] }), t }() , Xt = function() { function t(t, e, n) { this._ngEl = t, this._differs = e, this._renderer = n, this._ngStyle = null, this._differ = null } return Object.defineProperty(t.prototype, "ngStyle", { set: function(t) { this._ngStyle = t, !this._differ && t && (this._differ = this._differs.find(t).create()) }, enumerable: !0, configurable: !0 }), t.prototype.ngDoCheck = function() { if (this._differ) { var t = this._differ.diff(this._ngStyle); t && this._applyChanges(t) } } , t.prototype._setStyle = function(t, e) { var n = Object(i.f)(t.split("."), 2) , r = n[0] , o = n[1]; null != (e = null != e && o ? "" + e + o : e) ? this._renderer.setStyle(this._ngEl.nativeElement, r, e) : this._renderer.removeStyle(this._ngEl.nativeElement, r) } , t.prototype._applyChanges = function(t) { var e = this; t.forEachRemovedItem((function(t) { return e._setStyle(t.key, null) } )), t.forEachAddedItem((function(t) { return e._setStyle(t.key, t.currentValue) } )), t.forEachChangedItem((function(t) { return e._setStyle(t.key, t.currentValue) } )) } , Object(i.b)([Object(r.Input)("ngStyle"), Object(i.d)("design:type", Object), Object(i.d)("design:paramtypes", [Object])], t.prototype, "ngStyle", null), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.ElementRef, r.KeyValueDiffers, r.Renderer2])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ElementRef),r["ɵɵdirectiveInject"](r.KeyValueDiffers),r["ɵɵdirectiveInject"](r.Renderer2)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngStyle", ""]], inputs: { ngStyle: "ngStyle" } }), t }() , Yt = function() { function t(t) { this._viewContainerRef = t, this._viewRef = null, this.ngTemplateOutletContext = null, this.ngTemplateOutlet = null } return t.prototype.ngOnChanges = function(t) { if (this._shouldRecreateView(t)) { var e = this._viewContainerRef; this._viewRef && e.remove(e.indexOf(this._viewRef)), this._viewRef = this.ngTemplateOutlet ? e.createEmbeddedView(this.ngTemplateOutlet, this.ngTemplateOutletContext) : null } else this._viewRef && this.ngTemplateOutletContext && this._updateExistingContext(this.ngTemplateOutletContext) } , t.prototype._shouldRecreateView = function(t) { var e = t.ngTemplateOutletContext; return !!t.ngTemplateOutlet || e && this._hasContextShapeChanged(e) } , t.prototype._hasContextShapeChanged = function(t) { var e, n, r = Object.keys(t.previousValue || {}), o = Object.keys(t.currentValue || {}); if (r.length === o.length) { try { for (var a = Object(i.j)(o), s = a.next(); !s.done; s = a.next()) { var c = s.value; if (-1 === r.indexOf(c)) return !0 } } catch (t) { e = { error: t } } finally { try { s && !s.done && (n = a.return) && n.call(a) } finally { if (e) throw e.error } } return !1 } return !0 } , t.prototype._updateExistingContext = function(t) { var e, n; try { for (var r = Object(i.j)(Object.keys(t)), o = r.next(); !o.done; o = r.next()) { var a = o.value; this._viewRef.context[a] = this.ngTemplateOutletContext[a] } } catch (t) { e = { error: t } } finally { try { o && !o.done && (n = r.return) && n.call(r) } finally { if (e) throw e.error } } } , Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object)], t.prototype, "ngTemplateOutletContext", void 0), Object(i.b)([Object(r.Input)(), Object(i.d)("design:type", Object)], t.prototype, "ngTemplateOutlet", void 0), (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.ViewContainerRef])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.ViewContainerRef)) } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, selectors: [["", "ngTemplateOutlet", ""]], inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet" }, features: [r["ɵɵNgOnChangesFeature"]] }), t }() , Kt = [Dt, Rt, Nt, Vt, Yt, Xt, zt, Gt, Ht, Wt, qt]; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Zt(t, e) { return Error("InvalidPipeArgument: '" + e + "' for pipe '" + Object(r["ɵstringify"])(t) + "'") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Jt = function() { function t() {} return t.prototype.createSubscription = function(t, e) { return t.subscribe({ next: e, error: function(t) { throw t } }) } , t.prototype.dispose = function(t) { t.unsubscribe() } , t.prototype.onDestroy = function(t) { t.unsubscribe() } , t }() , Qt = new (function() { function t() {} return t.prototype.createSubscription = function(t, e) { return t.then(e, (function(t) { throw t } )) } , t.prototype.dispose = function(t) {} , t.prototype.onDestroy = function(t) {} , t }()) , $t = new Jt , te = function() { function t(t) { this._ref = t, this._latestValue = null, this._latestReturnedValue = null, this._subscription = null, this._obj = null, this._strategy = null } var e; return e = t, t.prototype.ngOnDestroy = function() { this._subscription && this._dispose() } , t.prototype.transform = function(t) { return this._obj ? t !== this._obj ? (this._dispose(), this.transform(t)) : Object(r["ɵlooseIdentical"])(this._latestValue, this._latestReturnedValue) ? this._latestReturnedValue : (this._latestReturnedValue = this._latestValue, r.WrappedValue.wrap(this._latestValue)) : (t && this._subscribe(t), this._latestReturnedValue = this._latestValue, this._latestValue) } , t.prototype._subscribe = function(t) { var e = this; this._obj = t, this._strategy = this._selectStrategy(t), this._subscription = this._strategy.createSubscription(t, (function(n) { return e._updateLatestValue(t, n) } )) } , t.prototype._selectStrategy = function(t) { if (Object(r["ɵisPromise"])(t)) return Qt; if (Object(r["ɵisObservable"])(t)) return $t; throw Zt(e, t) } , t.prototype._dispose = function() { this._strategy.dispose(this._subscription), this._latestValue = null, this._latestReturnedValue = null, this._subscription = null, this._obj = null } , t.prototype._updateLatestValue = function(t, e) { t === this._obj && (this._latestValue = e, this._ref.markForCheck()) } , (t = e = Object(i.b)([Object(i.d)("design:paramtypes", [r.ChangeDetectorRef])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵinjectPipeChangeDetectorRef"]()) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "async", type: t, pure: !1 }), t }() , ee = function() { function t() {} var e; return e = t, t.prototype.transform = function(t) { if (!t) return t; if ("string" != typeof t) throw Zt(e, t); return t.toLowerCase() } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "lowercase", type: t, pure: !0 }), t }() , ne = /(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g , ie = function() { function t() {} var e; return e = t, t.prototype.transform = function(t) { if (!t) return t; if ("string" != typeof t) throw Zt(e, t); return t.replace(ne, (function(t) { return t[0].toUpperCase() + t.substr(1).toLowerCase() } )) } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "titlecase", type: t, pure: !0 }), t }() , re = function() { function t() {} var e; return e = t, t.prototype.transform = function(t) { if (!t) return t; if ("string" != typeof t) throw Zt(e, t); return t.toUpperCase() } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "uppercase", type: t, pure: !0 }), t }() , oe = function() { function t(t) { this.locale = t } var e; return e = t, t.prototype.transform = function(t, n, i, r) { if (void 0 === n && (n = "mediumDate"), null == t || "" === t || t != t) return null; try { return dt(t, n, r || this.locale, i) } catch (t) { throw Zt(e, t.message) } } , (t = e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(r.LOCALE_ID)), Object(i.d)("design:paramtypes", [String])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.LOCALE_ID)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "date", type: t, pure: !0 }), t }() , ae = /#/g , se = function() { function t(t) { this._localization = t } var e; return e = t, t.prototype.transform = function(t, n, i) { if (null == t) return ""; if ("object" != typeof n || null === n) throw Zt(e, n); return n[_t(t, Object.keys(n), this._localization, i)].replace(ae, t.toString()) } , (t = e = Object(i.b)([Object(i.d)("design:paramtypes", [Ot])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](Ot)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "i18nPlural", type: t, pure: !0 }), t }() , ce = function() { function t() {} var e; return e = t, t.prototype.transform = function(t, n) { if (null == t) return ""; if ("object" != typeof n || "string" != typeof t) throw Zt(e, n); return n.hasOwnProperty(t) ? n[t] : n.hasOwnProperty("other") ? n.other : "" } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "i18nSelect", type: t, pure: !0 }), t }() , le = function() { function t() {} return t.prototype.transform = function(t) { return JSON.stringify(t, null, 2) } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "json", type: t, pure: !1 }), t }(); var ue = function() { function t(t) { this.differs = t, this.keyValues = [] } return t.prototype.transform = function(t, e) { var n = this; if (void 0 === e && (e = de), !t || !(t instanceof Map) && "object" != typeof t) return null; this.differ || (this.differ = this.differs.find(t).create()); var i = this.differ.diff(t); return i && (this.keyValues = [], i.forEachItem((function(t) { /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var e, i; n.keyValues.push((e = t.key, i = t.currentValue, { key: e, value: i })) } )), this.keyValues.sort(e)), this.keyValues } , (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.KeyValueDiffers])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.KeyValueDiffers)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "keyvalue", type: t, pure: !1 }), t }(); function de(t, e) { var n = t.key , i = e.key; if (n === i) return 0; if (void 0 === n) return 1; if (void 0 === i) return -1; if (null === n) return 1; if (null === i) return -1; if ("string" == typeof n && "string" == typeof i) return n < i ? -1 : 1; if ("number" == typeof n && "number" == typeof i) return n - i; if ("boolean" == typeof n && "boolean" == typeof i) return n < i ? -1 : 1; var r = String(n) , o = String(i); return r == o ? 0 : r < o ? -1 : 1 } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var pe = function() { function t(t) { this._locale = t } var e; return e = t, t.prototype.transform = function(t, n, i) { if (me(t)) return null; i = i || this._locale; try { return Ct(ge(t), i, n) } catch (t) { throw Zt(e, t.message) } } , (t = e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(r.LOCALE_ID)), Object(i.d)("design:paramtypes", [String])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.LOCALE_ID)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "number", type: t, pure: !0 }), t }() , he = function() { function t(t) { this._locale = t } var e; return e = t, t.prototype.transform = function(t, n, i) { if (me(t)) return null; i = i || this._locale; try { return Et(ge(t), i, n) } catch (t) { throw Zt(e, t.message) } } , (t = e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(r.LOCALE_ID)), Object(i.d)("design:paramtypes", [String])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.LOCALE_ID)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "percent", type: t, pure: !0 }), t }() , fe = function() { function t(t, e) { void 0 === e && (e = "USD"), this._locale = t, this._defaultCurrencyCode = e } var e; return e = t, t.prototype.transform = function(t, n, i, r, o) { if (void 0 === i && (i = "symbol"), me(t)) return null; o = o || this._locale, "boolean" == typeof i && (console && console.warn && console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'), i = i ? "symbol" : "code"); var a = n || this._defaultCurrencyCode; "code" !== i && (a = "symbol" === i || "symbol-narrow" === i ? it(a, "symbol" === i ? "wide" : "narrow", o) : i); try { return Mt(ge(t), o, a, n, r) } catch (t) { throw Zt(e, t.message) } } , (t = e = Object(i.b)([Object(i.e)(0, Object(r.Inject)(r.LOCALE_ID)), Object(i.e)(1, Object(r.Inject)(r.DEFAULT_CURRENCY_CODE)), Object(i.d)("design:paramtypes", [String, String])], t)).ɵfac = function(e) { return new (e || t)(r["ɵɵdirectiveInject"](r.LOCALE_ID),r["ɵɵdirectiveInject"](r.DEFAULT_CURRENCY_CODE)) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "currency", type: t, pure: !0 }), t }(); function me(t) { return null == t || "" === t || t != t } function ge(t) { if ("string" == typeof t && !isNaN(Number(t) - parseFloat(t))) return Number(t); if ("number" != typeof t) throw new Error(t + " is not a number"); return t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var ve = function() { function t() {} var e; return e = t, t.prototype.transform = function(t, n, i) { if (null == t) return t; if (!this.supports(t)) throw Zt(e, t); return t.slice(n, i) } , t.prototype.supports = function(t) { return "string" == typeof t || Array.isArray(t) } , t.ɵfac = function(e) { return new (e || t) } , t.ɵpipe = r["ɵɵdefinePipe"]({ name: "slice", type: t, pure: !1 }), t }() , ye = [te, re, ee, le, ve, pe, he, ie, fe, oe, se, ce, ue] , be = function() { function t() {} return t.ɵmod = r["ɵɵdefineNgModule"]({ type: t }), t.ɵinj = r["ɵɵdefineInjector"]({ factory: function(e) { return new (e || t) }, providers: [{ provide: Ot, useClass: Pt }] }), ("undefined" == typeof ngJitMode || ngJitMode) && r["ɵɵsetNgModuleScope"](t, { declarations: [Dt, Rt, Nt, Vt, Yt, Xt, zt, Gt, Ht, Wt, qt, te, re, ee, le, ve, pe, he, ie, fe, oe, se, ce, ue], exports: [Dt, Rt, Nt, Vt, Yt, Xt, zt, Gt, Ht, Wt, qt, te, re, ee, le, ve, pe, he, ie, fe, oe, se, ce, ue] }), t }() , we = "browser" , Se = "server" , xe = "browserWorkerApp" , Me = "browserWorkerUi"; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function Ee(t) { return t === we } function Ce(t) { return t === Se } function Ae(t) { return t === xe } function Te(t) { return t === Me } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Oe = new r.Version("9.1.9") , _e = function() { function t() {} return t.ɵprov = Object(r["ɵɵdefineInjectable"])({ token: t, providedIn: "root", factory: function() { return new Pe(Object(r["ɵɵinject"])(l),window,Object(r["ɵɵinject"])(r.ErrorHandler)) } }), t }() , Pe = function() { function t(t, e, n) { this.document = t, this.window = e, this.errorHandler = n, this.offset = function() { return [0, 0] } } return t.prototype.setOffset = function(t) { Array.isArray(t) ? this.offset = function() { return t } : this.offset = t } , t.prototype.getScrollPosition = function() { return this.supportScrollRestoration() ? [this.window.scrollX, this.window.scrollY] : [0, 0] } , t.prototype.scrollToPosition = function(t) { this.supportScrollRestoration() && this.window.scrollTo(t[0], t[1]) } , t.prototype.scrollToAnchor = function(t) { if (this.supportScrollRestoration()) { t = this.window.CSS && this.window.CSS.escape ? this.window.CSS.escape(t) : t.replace(/(\"|\'\ |:|\.|\[|\]|,|=)/g, "\\$1"); try { var e = this.document.querySelector("#" + t); if (e) return void this.scrollToElement(e); var n = this.document.querySelector("[name='" + t + "']"); if (n) return void this.scrollToElement(n) } catch (t) { this.errorHandler.handleError(t) } } } , t.prototype.setHistoryScrollRestoration = function(t) { if (this.supportScrollRestoration()) { var e = this.window.history; e && e.scrollRestoration && (e.scrollRestoration = t) } } , t.prototype.scrollToElement = function(t) { var e = t.getBoundingClientRect() , n = e.left + this.window.pageXOffset , i = e.top + this.window.pageYOffset , r = this.offset(); this.window.scrollTo(n - r[0], i - r[1]) } , t.prototype.supportScrollRestoration = function() { try { return !!this.window && !!this.window.scrollTo } catch (t) { return !1 } } , t }() , Ie = function() { function t() {} return t.prototype.setOffset = function(t) {} , t.prototype.getScrollPosition = function() { return [0, 0] } , t.prototype.scrollToPosition = function(t) {} , t.prototype.scrollToAnchor = function(t) {} , t.prototype.setHistoryScrollRestoration = function(t) {} , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ } , function(t, e, n) { "use strict"; var i; function r(t, e, n) { return e in t ? Object.defineProperty(t, e, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = n, t } function o(t) { return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t } )(t) } function a(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } function s(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), e && c(t, e) } function c(t, e) { return (c = Object.setPrototypeOf || function(t, e) { return t.__proto__ = e, t } )(t, e) } function l(t) { var e = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {} ))), !0 } catch (t) { return !1 } }(); return function() { var n, i = p(t); if (e) { var r = p(this).constructor; n = Reflect.construct(i, arguments, r) } else n = i.apply(this, arguments); return u(this, n) } } function u(t, e) { return !e || "object" !== o(e) && "function" != typeof e ? d(t) : e } function d(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t } function p(t) { return (p = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) { return t.__proto__ || Object.getPrototypeOf(t) } )(t) } n.r(e), n.d(e, "ACESFilmicToneMapping", (function() { return mt } )), n.d(e, "AddEquation", (function() { return j } )), n.d(e, "AddOperation", (function() { return lt } )), n.d(e, "AdditiveBlending", (function() { return D } )), n.d(e, "AlphaFormat", (function() { return Kt } )), n.d(e, "AlwaysDepth", (function() { return tt } )), n.d(e, "AlwaysStencilFunc", (function() { return Ln } )), n.d(e, "AmbientLight", (function() { return wd } )), n.d(e, "AmbientLightProbe", (function() { return Gd } )), n.d(e, "AnimationClip", (function() { return Tu } )), n.d(e, "AnimationLoader", (function() { return Lu } )), n.d(e, "AnimationMixer", (function() { return bp } )), n.d(e, "AnimationObjectGroup", (function() { return vp } )), n.d(e, "AnimationUtils", (function() { return fu } )), n.d(e, "ArcCurve", (function() { return Gu } )), n.d(e, "ArrayCamera", (function() { return Vs } )), n.d(e, "ArrowHelper", (function() { return sh } )), n.d(e, "Audio", (function() { return $d } )), n.d(e, "AudioAnalyser", (function() { return op } )), n.d(e, "AudioContext", (function() { return Vd } )), n.d(e, "AudioListener", (function() { return Qd } )), n.d(e, "AudioLoader", (function() { return Fd } )), n.d(e, "AxesHelper", (function() { return ch } )), n.d(e, "AxisHelper", (function() { return yf } )), n.d(e, "BackSide", (function() { return T } )), n.d(e, "BasicDepthPacking", (function() { return gn } )), n.d(e, "BasicShadowMap", (function() { return x } )), n.d(e, "BinaryTextureLoader", (function() { return Mf } )), n.d(e, "Bone", (function() { return gc } )), n.d(e, "BooleanKeyframeTrack", (function() { return wu } )), n.d(e, "BoundingBoxHelper", (function() { return bf } )), n.d(e, "Box2", (function() { return Op } )), n.d(e, "Box3", (function() { return Yi } )), n.d(e, "Box3Helper", (function() { return nh } )), n.d(e, "BoxBufferGeometry", (function() { return Ao } )), n.d(e, "BoxGeometry", (function() { return Co } )), n.d(e, "BoxHelper", (function() { return eh } )), n.d(e, "BufferAttribute", (function() { return Dr } )), n.d(e, "BufferGeometry", (function() { return Qr } )), n.d(e, "BufferGeometryLoader", (function() { return Ad } )), n.d(e, "ByteType", (function() { return Vt } )), n.d(e, "Cache", (function() { return _u } )), n.d(e, "Camera", (function() { return Io } )), n.d(e, "CameraHelper", (function() { return Qp } )), n.d(e, "CanvasRenderer", (function() { return Af } )), n.d(e, "CanvasTexture", (function() { return zc } )), n.d(e, "CatmullRomCurve3", (function() { return Ku } )), n.d(e, "CineonToneMapping", (function() { return ft } )), n.d(e, "CircleBufferGeometry", (function() { return eu } )), n.d(e, "CircleGeometry", (function() { return tu } )), n.d(e, "ClampToEdgeWrapping", (function() { return Ct } )), n.d(e, "Clock", (function() { return Xd } )), n.d(e, "ClosedSplineCurve3", (function() { return mf } )), n.d(e, "Color", (function() { return Er } )), n.d(e, "ColorKeyframeTrack", (function() { return Su } )), n.d(e, "CompressedTexture", (function() { return Bc } )), n.d(e, "CompressedTextureLoader", (function() { return Nu } )), n.d(e, "ConeBufferGeometry", (function() { return $l } )), n.d(e, "ConeGeometry", (function() { return Ql } )), n.d(e, "CubeCamera", (function() { return Do } )), n.d(e, "CubeGeometry", (function() { return Co } )), n.d(e, "CubeReflectionMapping", (function() { return vt } )), n.d(e, "CubeRefractionMapping", (function() { return yt } )), n.d(e, "CubeTexture", (function() { return ia } )), n.d(e, "CubeTextureLoader", (function() { return Fu } )), n.d(e, "CubeUVReflectionMapping", (function() { return xt } )), n.d(e, "CubeUVRefractionMapping", (function() { return Mt } )), n.d(e, "CubicBezierCurve", (function() { return $u } )), n.d(e, "CubicBezierCurve3", (function() { return td } )), n.d(e, "CubicInterpolant", (function() { return gu } )), n.d(e, "CullFaceBack", (function() { return v } )), n.d(e, "CullFaceFront", (function() { return y } )), n.d(e, "CullFaceFrontBack", (function() { return b } )), n.d(e, "CullFaceNone", (function() { return g } )), n.d(e, "Curve", (function() { return Bu } )), n.d(e, "CurvePath", (function() { return sd } )), n.d(e, "CustomBlending", (function() { return N } )), n.d(e, "CylinderBufferGeometry", (function() { return Jl } )), n.d(e, "CylinderGeometry", (function() { return Zl } )), n.d(e, "Cylindrical", (function() { return Ap } )), n.d(e, "DataTexture", (function() { return Lo } )), n.d(e, "DataTexture2DArray", (function() { return ra } )), n.d(e, "DataTexture3D", (function() { return oa } )), n.d(e, "DataTextureLoader", (function() { return ju } )), n.d(e, "DecrementStencilOp", (function() { return En } )), n.d(e, "DecrementWrapStencilOp", (function() { return An } )), n.d(e, "DefaultLoadingManager", (function() { return Iu } )), n.d(e, "DepthFormat", (function() { return ee } )), n.d(e, "DepthStencilFormat", (function() { return ne } )), n.d(e, "DepthTexture", (function() { return Gc } )), n.d(e, "DirectionalLight", (function() { return bd } )), n.d(e, "DirectionalLightHelper", (function() { return Kp } )), n.d(e, "DirectionalLightShadow", (function() { return yd } )), n.d(e, "DiscreteInterpolant", (function() { return yu } )), n.d(e, "DodecahedronBufferGeometry", (function() { return nl } )), n.d(e, "DodecahedronGeometry", (function() { return el } )), n.d(e, "DoubleSide", (function() { return O } )), n.d(e, "DstAlphaFactor", (function() { return Y } )), n.d(e, "DstColorFactor", (function() { return Z } )), n.d(e, "DynamicBufferAttribute", (function() { return of } )), n.d(e, "DynamicCopyUsage", (function() { return Gn } )), n.d(e, "DynamicDrawUsage", (function() { return jn } )), n.d(e, "DynamicReadUsage", (function() { return Un } )), n.d(e, "EdgesGeometry", (function() { return Kl } )), n.d(e, "EdgesHelper", (function() { return wf } )), n.d(e, "EllipseCurve", (function() { return zu } )), n.d(e, "EqualDepth", (function() { return it } )), n.d(e, "EqualStencilFunc", (function() { return Pn } )), n.d(e, "EquirectangularReflectionMapping", (function() { return bt } )), n.d(e, "EquirectangularRefractionMapping", (function() { return wt } )), n.d(e, "Euler", (function() { return yi } )), n.d(e, "EventDispatcher", (function() { return Wn } )), n.d(e, "ExtrudeBufferGeometry", (function() { return Ll } )), n.d(e, "ExtrudeGeometry", (function() { return Rl } )), n.d(e, "Face3", (function() { return Or } )), n.d(e, "Face4", (function() { return Gh } )), n.d(e, "FaceColors", (function() { return Xh } )), n.d(e, "FileLoader", (function() { return Ru } )), n.d(e, "FlatShading", (function() { return _ } )), n.d(e, "Float32Attribute", (function() { return hf } )), n.d(e, "Float32BufferAttribute", (function() { return Br } )), n.d(e, "Float64Attribute", (function() { return ff } )), n.d(e, "Float64BufferAttribute", (function() { return zr } )), n.d(e, "FloatType", (function() { return Gt } )), n.d(e, "Fog", (function() { return Gs } )), n.d(e, "FogExp2", (function() { return zs } )), n.d(e, "Font", (function() { return Ld } )), n.d(e, "FontLoader", (function() { return jd } )), n.d(e, "FrontFaceDirectionCCW", (function() { return S } )), n.d(e, "FrontFaceDirectionCW", (function() { return w } )), n.d(e, "FrontSide", (function() { return A } )), n.d(e, "Frustum", (function() { return Vo } )), n.d(e, "GammaEncoding", (function() { return un } )), n.d(e, "Geometry", (function() { return Eo } )), n.d(e, "GeometryUtils", (function() { return Cf } )), n.d(e, "GreaterDepth", (function() { return ot } )), n.d(e, "GreaterEqualDepth", (function() { return rt } )), n.d(e, "GreaterEqualStencilFunc", (function() { return Rn } )), n.d(e, "GreaterStencilFunc", (function() { return kn } )), n.d(e, "GridHelper", (function() { return Hp } )), n.d(e, "Group", (function() { return Fs } )), n.d(e, "HalfFloatType", (function() { return Ht } )), n.d(e, "HemisphereLight", (function() { return dd } )), n.d(e, "HemisphereLightHelper", (function() { return Gp } )), n.d(e, "HemisphereLightProbe", (function() { return zd } )), n.d(e, "IcosahedronBufferGeometry", (function() { return tl } )), n.d(e, "IcosahedronGeometry", (function() { return $c } )), n.d(e, "ImageBitmapLoader", (function() { return Dd } )), n.d(e, "ImageLoader", (function() { return Vu } )), n.d(e, "ImageUtils", (function() { return Qn } )), n.d(e, "ImmediateRenderObject", (function() { return kp } )), n.d(e, "IncrementStencilOp", (function() { return Mn } )), n.d(e, "IncrementWrapStencilOp", (function() { return Cn } )), n.d(e, "InstancedBufferAttribute", (function() { return Cd } )), n.d(e, "InstancedBufferGeometry", (function() { return Ed } )), n.d(e, "InstancedInterleavedBuffer", (function() { return Sp } )), n.d(e, "InstancedMesh", (function() { return Sc } )), n.d(e, "Int16Attribute", (function() { return lf } )), n.d(e, "Int16BufferAttribute", (function() { return jr } )), n.d(e, "Int32Attribute", (function() { return df } )), n.d(e, "Int32BufferAttribute", (function() { return Fr } )), n.d(e, "Int8Attribute", (function() { return af } )), n.d(e, "Int8BufferAttribute", (function() { return Rr } )), n.d(e, "IntType", (function() { return Bt } )), n.d(e, "InterleavedBuffer", (function() { return Hs } )), n.d(e, "InterleavedBufferAttribute", (function() { return Xs } )), n.d(e, "Interpolant", (function() { return mu } )), n.d(e, "InterpolateDiscrete", (function() { return Qe } )), n.d(e, "InterpolateLinear", (function() { return $e } )), n.d(e, "InterpolateSmooth", (function() { return tn } )), n.d(e, "InvertStencilOp", (function() { return Tn } )), n.d(e, "JSONLoader", (function() { return Tf } )), n.d(e, "KeepStencilOp", (function() { return Sn } )), n.d(e, "KeyframeTrack", (function() { return bu } )), n.d(e, "LOD", (function() { return dc } )), n.d(e, "LatheBufferGeometry", (function() { return Wl } )), n.d(e, "LatheGeometry", (function() { return Hl } )), n.d(e, "Layers", (function() { return bi } )), n.d(e, "LensFlare", (function() { return _f } )), n.d(e, "LessDepth", (function() { return et } )), n.d(e, "LessEqualDepth", (function() { return nt } )), n.d(e, "LessEqualStencilFunc", (function() { return In } )), n.d(e, "LessStencilFunc", (function() { return _n } )), n.d(e, "Light", (function() { return ud } )), n.d(e, "LightProbe", (function() { return Bd } )), n.d(e, "LightShadow", (function() { return pd } )), n.d(e, "Line", (function() { return Oc } )), n.d(e, "Line3", (function() { return Ip } )), n.d(e, "LineBasicMaterial", (function() { return xc } )), n.d(e, "LineCurve", (function() { return ed } )), n.d(e, "LineCurve3", (function() { return nd } )), n.d(e, "LineDashedMaterial", (function() { return pu } )), n.d(e, "LineLoop", (function() { return kc } )), n.d(e, "LinePieces", (function() { return Wh } )), n.d(e, "LineSegments", (function() { return Ic } )), n.d(e, "LineStrip", (function() { return Hh } )), n.d(e, "LinearEncoding", (function() { return cn } )), n.d(e, "LinearFilter", (function() { return kt } )), n.d(e, "LinearInterpolant", (function() { return vu } )), n.d(e, "LinearMipMapLinearFilter", (function() { return Nt } )), n.d(e, "LinearMipMapNearestFilter", (function() { return Rt } )), n.d(e, "LinearMipmapLinearFilter", (function() { return Lt } )), n.d(e, "LinearMipmapNearestFilter", (function() { return Dt } )), n.d(e, "LinearToneMapping", (function() { return dt } )), n.d(e, "Loader", (function() { return ku } )), n.d(e, "LoaderUtils", (function() { return Md } )), n.d(e, "LoadingManager", (function() { return Pu } )), n.d(e, "LogLuvEncoding", (function() { return pn } )), n.d(e, "LoopOnce", (function() { return Ke } )), n.d(e, "LoopPingPong", (function() { return Je } )), n.d(e, "LoopRepeat", (function() { return Ze } )), n.d(e, "LuminanceAlphaFormat", (function() { return $t } )), n.d(e, "LuminanceFormat", (function() { return Qt } )), n.d(e, "MOUSE", (function() { return f } )), n.d(e, "Material", (function() { return Pr } )), n.d(e, "MaterialLoader", (function() { return xd } )), n.d(e, "Math", (function() { return Kn } )), n.d(e, "MathUtils", (function() { return Kn } )), n.d(e, "Matrix3", (function() { return Jn } )), n.d(e, "Matrix4", (function() { return mi } )), n.d(e, "MaxEquation", (function() { return B } )), n.d(e, "Mesh", (function() { return vo } )), n.d(e, "MeshBasicMaterial", (function() { return Ir } )), n.d(e, "MeshDepthMaterial", (function() { return ks } )), n.d(e, "MeshDistanceMaterial", (function() { return Ds } )), n.d(e, "MeshFaceMaterial", (function() { return Kh } )), n.d(e, "MeshLambertMaterial", (function() { return uu } )), n.d(e, "MeshMatcapMaterial", (function() { return du } )), n.d(e, "MeshNormalMaterial", (function() { return lu } )), n.d(e, "MeshPhongMaterial", (function() { return su } )), n.d(e, "MeshPhysicalMaterial", (function() { return au } )), n.d(e, "MeshStandardMaterial", (function() { return ou } )), n.d(e, "MeshToonMaterial", (function() { return cu } )), n.d(e, "MinEquation", (function() { return U } )), n.d(e, "MirroredRepeatWrapping", (function() { return At } )), n.d(e, "MixOperation", (function() { return ct } )), n.d(e, "MultiMaterial", (function() { return Zh } )), n.d(e, "MultiplyBlending", (function() { return L } )), n.d(e, "MultiplyOperation", (function() { return st } )), n.d(e, "NearestFilter", (function() { return Tt } )), n.d(e, "NearestMipMapLinearFilter", (function() { return It } )), n.d(e, "NearestMipMapNearestFilter", (function() { return _t } )), n.d(e, "NearestMipmapLinearFilter", (function() { return Pt } )), n.d(e, "NearestMipmapNearestFilter", (function() { return Ot } )), n.d(e, "NeverDepth", (function() { return $ } )), n.d(e, "NeverStencilFunc", (function() { return On } )), n.d(e, "NoBlending", (function() { return I } )), n.d(e, "NoColors", (function() { return qh } )), n.d(e, "NoToneMapping", (function() { return ut } )), n.d(e, "NormalBlending", (function() { return k } )), n.d(e, "NotEqualDepth", (function() { return at } )), n.d(e, "NotEqualStencilFunc", (function() { return Dn } )), n.d(e, "NumberKeyframeTrack", (function() { return xu } )), n.d(e, "Object3D", (function() { return Di } )), n.d(e, "ObjectLoader", (function() { return Od } )), n.d(e, "ObjectSpaceNormalMap", (function() { return bn } )), n.d(e, "OctahedronBufferGeometry", (function() { return Qc } )), n.d(e, "OctahedronGeometry", (function() { return Jc } )), n.d(e, "OneFactor", (function() { return G } )), n.d(e, "OneMinusDstAlphaFactor", (function() { return K } )), n.d(e, "OneMinusDstColorFactor", (function() { return J } )), n.d(e, "OneMinusSrcAlphaFactor", (function() { return X } )), n.d(e, "OneMinusSrcColorFactor", (function() { return W } )), n.d(e, "OrthographicCamera", (function() { return vd } )), n.d(e, "PCFShadowMap", (function() { return M } )), n.d(e, "PCFSoftShadowMap", (function() { return E } )), n.d(e, "PMREMGenerator", (function() { return Ih } )), n.d(e, "ParametricBufferGeometry", (function() { return qc } )), n.d(e, "ParametricGeometry", (function() { return Wc } )), n.d(e, "Particle", (function() { return Qh } )), n.d(e, "ParticleBasicMaterial", (function() { return ef } )), n.d(e, "ParticleSystem", (function() { return $h } )), n.d(e, "ParticleSystemMaterial", (function() { return nf } )), n.d(e, "Path", (function() { return cd } )), n.d(e, "PerspectiveCamera", (function() { return ko } )), n.d(e, "Plane", (function() { return lr } )), n.d(e, "PlaneBufferGeometry", (function() { return Go } )), n.d(e, "PlaneGeometry", (function() { return zo } )), n.d(e, "PlaneHelper", (function() { return ih } )), n.d(e, "PointCloud", (function() { return Jh } )), n.d(e, "PointCloudMaterial", (function() { return tf } )), n.d(e, "PointLight", (function() { return gd } )), n.d(e, "PointLightHelper", (function() { return Fp } )), n.d(e, "Points", (function() { return Vc } )), n.d(e, "PointsMaterial", (function() { return Dc } )), n.d(e, "PolarGridHelper", (function() { return Wp } )), n.d(e, "PolyhedronBufferGeometry", (function() { return Yc } )), n.d(e, "PolyhedronGeometry", (function() { return Xc } )), n.d(e, "PositionalAudio", (function() { return rp } )), n.d(e, "PropertyBinding", (function() { return gp } )), n.d(e, "PropertyMixer", (function() { return ap } )), n.d(e, "QuadraticBezierCurve", (function() { return id } )), n.d(e, "QuadraticBezierCurve3", (function() { return rd } )), n.d(e, "Quaternion", (function() { return ri } )), n.d(e, "QuaternionKeyframeTrack", (function() { return Eu } )), n.d(e, "QuaternionLinearInterpolant", (function() { return Mu } )), n.d(e, "REVISION", (function() { return h } )), n.d(e, "RGBADepthPacking", (function() { return vn } )), n.d(e, "RGBAFormat", (function() { return Jt } )), n.d(e, "RGBAIntegerFormat", (function() { return ce } )), n.d(e, "RGBA_ASTC_10x10_Format", (function() { return Ie } )), n.d(e, "RGBA_ASTC_10x5_Format", (function() { return Oe } )), n.d(e, "RGBA_ASTC_10x6_Format", (function() { return _e } )), n.d(e, "RGBA_ASTC_10x8_Format", (function() { return Pe } )), n.d(e, "RGBA_ASTC_12x10_Format", (function() { return ke } )), n.d(e, "RGBA_ASTC_12x12_Format", (function() { return De } )), n.d(e, "RGBA_ASTC_4x4_Format", (function() { return we } )), n.d(e, "RGBA_ASTC_5x4_Format", (function() { return Se } )), n.d(e, "RGBA_ASTC_5x5_Format", (function() { return xe } )), n.d(e, "RGBA_ASTC_6x5_Format", (function() { return Me } )), n.d(e, "RGBA_ASTC_6x6_Format", (function() { return Ee } )), n.d(e, "RGBA_ASTC_8x5_Format", (function() { return Ce } )), n.d(e, "RGBA_ASTC_8x6_Format", (function() { return Ae } )), n.d(e, "RGBA_ASTC_8x8_Format", (function() { return Te } )), n.d(e, "RGBA_BPTC_Format", (function() { return Re } )), n.d(e, "RGBA_ETC2_EAC_Format", (function() { return be } )), n.d(e, "RGBA_PVRTC_2BPPV1_Format", (function() { return ge } )), n.d(e, "RGBA_PVRTC_4BPPV1_Format", (function() { return me } )), n.d(e, "RGBA_S3TC_DXT1_Format", (function() { return ue } )), n.d(e, "RGBA_S3TC_DXT3_Format", (function() { return de } )), n.d(e, "RGBA_S3TC_DXT5_Format", (function() { return pe } )), n.d(e, "RGBDEncoding", (function() { return mn } )), n.d(e, "RGBEEncoding", (function() { return dn } )), n.d(e, "RGBEFormat", (function() { return te } )), n.d(e, "RGBFormat", (function() { return Zt } )), n.d(e, "RGBIntegerFormat", (function() { return se } )), n.d(e, "RGBM16Encoding", (function() { return fn } )), n.d(e, "RGBM7Encoding", (function() { return hn } )), n.d(e, "RGB_ETC1_Format", (function() { return ve } )), n.d(e, "RGB_ETC2_Format", (function() { return ye } )), n.d(e, "RGB_PVRTC_2BPPV1_Format", (function() { return fe } )), n.d(e, "RGB_PVRTC_4BPPV1_Format", (function() { return he } )), n.d(e, "RGB_S3TC_DXT1_Format", (function() { return le } )), n.d(e, "RGFormat", (function() { return oe } )), n.d(e, "RGIntegerFormat", (function() { return ae } )), n.d(e, "RawShaderMaterial", (function() { return ru } )), n.d(e, "Ray", (function() { return or } )), n.d(e, "Raycaster", (function() { return xp } )), n.d(e, "RectAreaLight", (function() { return Sd } )), n.d(e, "RedFormat", (function() { return ie } )), n.d(e, "RedIntegerFormat", (function() { return re } )), n.d(e, "ReinhardToneMapping", (function() { return pt } )), n.d(e, "RepeatWrapping", (function() { return Et } )), n.d(e, "ReplaceStencilOp", (function() { return xn } )), n.d(e, "ReverseSubtractEquation", (function() { return F } )), n.d(e, "RingBufferGeometry", (function() { return Gl } )), n.d(e, "RingGeometry", (function() { return zl } )), n.d(e, "SRGB8_ALPHA8_ASTC_10x10_Format", (function() { return qe } )), n.d(e, "SRGB8_ALPHA8_ASTC_10x5_Format", (function() { return Ge } )), n.d(e, "SRGB8_ALPHA8_ASTC_10x6_Format", (function() { return He } )), n.d(e, "SRGB8_ALPHA8_ASTC_10x8_Format", (function() { return We } )), n.d(e, "SRGB8_ALPHA8_ASTC_12x10_Format", (function() { return Xe } )), n.d(e, "SRGB8_ALPHA8_ASTC_12x12_Format", (function() { return Ye } )), n.d(e, "SRGB8_ALPHA8_ASTC_4x4_Format", (function() { return Le } )), n.d(e, "SRGB8_ALPHA8_ASTC_5x4_Format", (function() { return Ne } )), n.d(e, "SRGB8_ALPHA8_ASTC_5x5_Format", (function() { return je } )), n.d(e, "SRGB8_ALPHA8_ASTC_6x5_Format", (function() { return Ve } )), n.d(e, "SRGB8_ALPHA8_ASTC_6x6_Format", (function() { return Fe } )), n.d(e, "SRGB8_ALPHA8_ASTC_8x5_Format", (function() { return Ue } )), n.d(e, "SRGB8_ALPHA8_ASTC_8x6_Format", (function() { return Be } )), n.d(e, "SRGB8_ALPHA8_ASTC_8x8_Format", (function() { return ze } )), n.d(e, "Scene", (function() { return Ri } )), n.d(e, "SceneUtils", (function() { return Of } )), n.d(e, "ShaderChunk", (function() { return Ho } )), n.d(e, "ShaderLib", (function() { return Wo } )), n.d(e, "ShaderMaterial", (function() { return Po } )), n.d(e, "ShadowMaterial", (function() { return iu } )), n.d(e, "Shape", (function() { return ld } )), n.d(e, "ShapeBufferGeometry", (function() { return Xl } )), n.d(e, "ShapeGeometry", (function() { return ql } )), n.d(e, "ShapePath", (function() { return Rd } )), n.d(e, "ShapeUtils", (function() { return Il } )), n.d(e, "ShortType", (function() { return Ft } )), n.d(e, "Skeleton", (function() { return mc } )), n.d(e, "SkeletonHelper", (function() { return Vp } )), n.d(e, "SkinnedMesh", (function() { return pc } )), n.d(e, "SmoothShading", (function() { return P } )), n.d(e, "Sphere", (function() { return Ji } )), n.d(e, "SphereBufferGeometry", (function() { return Bl } )), n.d(e, "SphereGeometry", (function() { return Ul } )), n.d(e, "Spherical", (function() { return Cp } )), n.d(e, "SphericalHarmonics3", (function() { return Ud } )), n.d(e, "SphericalReflectionMapping", (function() { return St } )), n.d(e, "Spline", (function() { return vf } )), n.d(e, "SplineCurve", (function() { return od } )), n.d(e, "SplineCurve3", (function() { return gf } )), n.d(e, "SpotLight", (function() { return fd } )), n.d(e, "SpotLightHelper", (function() { return Rp } )), n.d(e, "SpotLightShadow", (function() { return hd } )), n.d(e, "Sprite", (function() { return sc } )), n.d(e, "SpriteMaterial", (function() { return Ys } )), n.d(e, "SrcAlphaFactor", (function() { return q } )), n.d(e, "SrcAlphaSaturateFactor", (function() { return Q } )), n.d(e, "SrcColorFactor", (function() { return H } )), n.d(e, "StaticCopyUsage", (function() { return zn } )), n.d(e, "StaticDrawUsage", (function() { return Nn } )), n.d(e, "StaticReadUsage", (function() { return Fn } )), n.d(e, "StereoCamera", (function() { return qd } )), n.d(e, "StreamCopyUsage", (function() { return Hn } )), n.d(e, "StreamDrawUsage", (function() { return Vn } )), n.d(e, "StreamReadUsage", (function() { return Bn } )), n.d(e, "StringKeyframeTrack", (function() { return Cu } )), n.d(e, "SubtractEquation", (function() { return V } )), n.d(e, "SubtractiveBlending", (function() { return R } )), n.d(e, "TOUCH", (function() { return m } )), n.d(e, "TangentSpaceNormalMap", (function() { return yn } )), n.d(e, "TetrahedronBufferGeometry", (function() { return Zc } )), n.d(e, "TetrahedronGeometry", (function() { return Kc } )), n.d(e, "TextBufferGeometry", (function() { return Fl } )), n.d(e, "TextGeometry", (function() { return Vl } )), n.d(e, "Texture", (function() { return ti } )), n.d(e, "TextureLoader", (function() { return Uu } )), n.d(e, "TorusBufferGeometry", (function() { return cl } )), n.d(e, "TorusGeometry", (function() { return sl } )), n.d(e, "TorusKnotBufferGeometry", (function() { return al } )), n.d(e, "TorusKnotGeometry", (function() { return ol } )), n.d(e, "Triangle", (function() { return wr } )), n.d(e, "TriangleFanDrawMode", (function() { return sn } )), n.d(e, "TriangleStripDrawMode", (function() { return an } )), n.d(e, "TrianglesDrawMode", (function() { return on } )), n.d(e, "TubeBufferGeometry", (function() { return rl } )), n.d(e, "TubeGeometry", (function() { return il } )), n.d(e, "UVMapping", (function() { return gt } )), n.d(e, "Uint16Attribute", (function() { return uf } )), n.d(e, "Uint16BufferAttribute", (function() { return Vr } )), n.d(e, "Uint32Attribute", (function() { return pf } )), n.d(e, "Uint32BufferAttribute", (function() { return Ur } )), n.d(e, "Uint8Attribute", (function() { return sf } )), n.d(e, "Uint8BufferAttribute", (function() { return Lr } )), n.d(e, "Uint8ClampedAttribute", (function() { return cf } )), n.d(e, "Uint8ClampedBufferAttribute", (function() { return Nr } )), n.d(e, "Uncharted2ToneMapping", (function() { return ht } )), n.d(e, "Uniform", (function() { return wp } )), n.d(e, "UniformsLib", (function() { return Fo } )), n.d(e, "UniformsUtils", (function() { return _o } )), n.d(e, "UnsignedByteType", (function() { return jt } )), n.d(e, "UnsignedInt248Type", (function() { return Yt } )), n.d(e, "UnsignedIntType", (function() { return zt } )), n.d(e, "UnsignedShort4444Type", (function() { return Wt } )), n.d(e, "UnsignedShort5551Type", (function() { return qt } )), n.d(e, "UnsignedShort565Type", (function() { return Xt } )), n.d(e, "UnsignedShortType", (function() { return Ut } )), n.d(e, "VSMShadowMap", (function() { return C } )), n.d(e, "Vector2", (function() { return Zn } )), n.d(e, "Vector3", (function() { return si } )), n.d(e, "Vector4", (function() { return ei } )), n.d(e, "VectorKeyframeTrack", (function() { return Au } )), n.d(e, "Vertex", (function() { return rf } )), n.d(e, "VertexColors", (function() { return Yh } )), n.d(e, "VideoTexture", (function() { return Uc } )), n.d(e, "WebGLCubeRenderTarget", (function() { return Ro } )), n.d(e, "WebGLMultisampleRenderTarget", (function() { return ii } )), n.d(e, "WebGLRenderTarget", (function() { return ni } )), n.d(e, "WebGLRenderTargetCube", (function() { return Ef } )), n.d(e, "WebGLRenderer", (function() { return Bs } )), n.d(e, "WebGLUtils", (function() { return js } )), n.d(e, "WireframeGeometry", (function() { return Hc } )), n.d(e, "WireframeHelper", (function() { return Sf } )), n.d(e, "WrapAroundEnding", (function() { return rn } )), n.d(e, "XHRLoader", (function() { return xf } )), n.d(e, "ZeroCurvatureEnding", (function() { return en } )), n.d(e, "ZeroFactor", (function() { return z } )), n.d(e, "ZeroSlopeEnding", (function() { return nn } )), n.d(e, "ZeroStencilOp", (function() { return wn } )), n.d(e, "sRGBEncoding", (function() { return ln } )), void 0 === Number.EPSILON && (Number.EPSILON = Math.pow(2, -52)), void 0 === Number.isInteger && (Number.isInteger = function(t) { return "number" == typeof t && isFinite(t) && Math.floor(t) === t } ), void 0 === Math.sign && (Math.sign = function(t) { return t < 0 ? -1 : t > 0 ? 1 : +t } ), "name"in Function.prototype == !1 && Object.defineProperty(Function.prototype, "name", { get: function() { return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1] } }), void 0 === Object.assign && (Object.assign = function(t) { if (null == t) throw new TypeError("Cannot convert undefined or null to object"); for (var e = Object(t), n = 1; n < arguments.length; n++) { var i = arguments[n]; if (null != i) for (var r in i) Object.prototype.hasOwnProperty.call(i, r) && (e[r] = i[r]) } return e } ); var h = "115" , f = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 } , m = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 } , g = 0 , v = 1 , y = 2 , b = 3 , w = 0 , S = 1 , x = 0 , M = 1 , E = 2 , C = 3 , A = 0 , T = 1 , O = 2 , _ = 1 , P = 2 , I = 0 , k = 1 , D = 2 , R = 3 , L = 4 , N = 5 , j = 100 , V = 101 , F = 102 , U = 103 , B = 104 , z = 200 , G = 201 , H = 202 , W = 203 , q = 204 , X = 205 , Y = 206 , K = 207 , Z = 208 , J = 209 , Q = 210 , $ = 0 , tt = 1 , et = 2 , nt = 3 , it = 4 , rt = 5 , ot = 6 , at = 7 , st = 0 , ct = 1 , lt = 2 , ut = 0 , dt = 1 , pt = 2 , ht = 3 , ft = 4 , mt = 5 , gt = 300 , vt = 301 , yt = 302 , bt = 303 , wt = 304 , St = 305 , xt = 306 , Mt = 307 , Et = 1e3 , Ct = 1001 , At = 1002 , Tt = 1003 , Ot = 1004 , _t = 1004 , Pt = 1005 , It = 1005 , kt = 1006 , Dt = 1007 , Rt = 1007 , Lt = 1008 , Nt = 1008 , jt = 1009 , Vt = 1010 , Ft = 1011 , Ut = 1012 , Bt = 1013 , zt = 1014 , Gt = 1015 , Ht = 1016 , Wt = 1017 , qt = 1018 , Xt = 1019 , Yt = 1020 , Kt = 1021 , Zt = 1022 , Jt = 1023 , Qt = 1024 , $t = 1025 , te = Jt , ee = 1026 , ne = 1027 , ie = 1028 , re = 1029 , oe = 1030 , ae = 1031 , se = 1032 , ce = 1033 , le = 33776 , ue = 33777 , de = 33778 , pe = 33779 , he = 35840 , fe = 35841 , me = 35842 , ge = 35843 , ve = 36196 , ye = 37492 , be = 37496 , we = 37808 , Se = 37809 , xe = 37810 , Me = 37811 , Ee = 37812 , Ce = 37813 , Ae = 37814 , Te = 37815 , Oe = 37816 , _e = 37817 , Pe = 37818 , Ie = 37819 , ke = 37820 , De = 37821 , Re = 36492 , Le = 37840 , Ne = 37841 , je = 37842 , Ve = 37843 , Fe = 37844 , Ue = 37845 , Be = 37846 , ze = 37847 , Ge = 37848 , He = 37849 , We = 37850 , qe = 37851 , Xe = 37852 , Ye = 37853 , Ke = 2200 , Ze = 2201 , Je = 2202 , Qe = 2300 , $e = 2301 , tn = 2302 , en = 2400 , nn = 2401 , rn = 2402 , on = 0 , an = 1 , sn = 2 , cn = 3e3 , ln = 3001 , un = 3007 , dn = 3002 , pn = 3003 , hn = 3004 , fn = 3005 , mn = 3006 , gn = 3200 , vn = 3201 , yn = 0 , bn = 1 , wn = 0 , Sn = 7680 , xn = 7681 , Mn = 7682 , En = 7683 , Cn = 34055 , An = 34056 , Tn = 5386 , On = 512 , _n = 513 , Pn = 514 , In = 515 , kn = 516 , Dn = 517 , Rn = 518 , Ln = 519 , Nn = 35044 , jn = 35048 , Vn = 35040 , Fn = 35045 , Un = 35049 , Bn = 35041 , zn = 35046 , Gn = 35050 , Hn = 35042; function Wn() {} Object.assign(Wn.prototype, { addEventListener: function(t, e) { void 0 === this._listeners && (this._listeners = {}); var n = this._listeners; void 0 === n[t] && (n[t] = []), -1 === n[t].indexOf(e) && n[t].push(e) }, hasEventListener: function(t, e) { if (void 0 === this._listeners) return !1; var n = this._listeners; return void 0 !== n[t] && -1 !== n[t].indexOf(e) }, removeEventListener: function(t, e) { if (void 0 !== this._listeners) { var n = this._listeners[t]; if (void 0 !== n) { var i = n.indexOf(e); -1 !== i && n.splice(i, 1) } } }, dispatchEvent: function(t) { if (void 0 !== this._listeners) { var e = this._listeners[t.type]; if (void 0 !== e) { t.target = this; for (var n = e.slice(0), i = 0, r = n.length; i < r; i++) n[i].call(this, t) } } } }); for (var qn = [], Xn = 0; Xn < 256; Xn++) qn[Xn] = (Xn < 16 ? "0" : "") + Xn.toString(16); var Yn, Kn = { DEG2RAD: Math.PI / 180, RAD2DEG: 180 / Math.PI, generateUUID: function() { var t = 4294967295 * Math.random() | 0 , e = 4294967295 * Math.random() | 0 , n = 4294967295 * Math.random() | 0 , i = 4294967295 * Math.random() | 0; return (qn[255 & t] + qn[t >> 8 & 255] + qn[t >> 16 & 255] + qn[t >> 24 & 255] + "-" + qn[255 & e] + qn[e >> 8 & 255] + "-" + qn[e >> 16 & 15 | 64] + qn[e >> 24 & 255] + "-" + qn[63 & n | 128] + qn[n >> 8 & 255] + "-" + qn[n >> 16 & 255] + qn[n >> 24 & 255] + qn[255 & i] + qn[i >> 8 & 255] + qn[i >> 16 & 255] + qn[i >> 24 & 255]).toUpperCase() }, clamp: function(t, e, n) { return Math.max(e, Math.min(n, t)) }, euclideanModulo: function(t, e) { return (t % e + e) % e }, mapLinear: function(t, e, n, i, r) { return i + (t - e) * (r - i) / (n - e) }, lerp: function(t, e, n) { return (1 - n) * t + n * e }, smoothstep: function(t, e, n) { return t <= e ? 0 : t >= n ? 1 : (t = (t - e) / (n - e)) * t * (3 - 2 * t) }, smootherstep: function(t, e, n) { return t <= e ? 0 : t >= n ? 1 : (t = (t - e) / (n - e)) * t * t * (t * (6 * t - 15) + 10) }, randInt: function(t, e) { return t + Math.floor(Math.random() * (e - t + 1)) }, randFloat: function(t, e) { return t + Math.random() * (e - t) }, randFloatSpread: function(t) { return t * (.5 - Math.random()) }, degToRad: function(t) { return t * Kn.DEG2RAD }, radToDeg: function(t) { return t * Kn.RAD2DEG }, isPowerOfTwo: function(t) { return 0 == (t & t - 1) && 0 !== t }, ceilPowerOfTwo: function(t) { return Math.pow(2, Math.ceil(Math.log(t) / Math.LN2)) }, floorPowerOfTwo: function(t) { return Math.pow(2, Math.floor(Math.log(t) / Math.LN2)) }, setQuaternionFromProperEuler: function(t, e, n, i, r) { var o = Math.cos , a = Math.sin , s = o(n / 2) , c = a(n / 2) , l = o((e + i) / 2) , u = a((e + i) / 2) , d = o((e - i) / 2) , p = a((e - i) / 2) , h = o((i - e) / 2) , f = a((i - e) / 2); "XYX" === r ? t.set(s * u, c * d, c * p, s * l) : "YZY" === r ? t.set(c * p, s * u, c * d, s * l) : "ZXZ" === r ? t.set(c * d, c * p, s * u, s * l) : "XZX" === r ? t.set(s * u, c * f, c * h, s * l) : "YXY" === r ? t.set(c * h, s * u, c * f, s * l) : "ZYZ" === r ? t.set(c * f, c * h, s * u, s * l) : console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order.") } }; function Zn(t, e) { this.x = t || 0, this.y = e || 0 } function Jn() { this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1], arguments.length > 0 && console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.") } Object.defineProperties(Zn.prototype, { width: { get: function() { return this.x }, set: function(t) { this.x = t } }, height: { get: function() { return this.y }, set: function(t) { this.y = t } } }), Object.assign(Zn.prototype, { isVector2: !0, set: function(t, e) { return this.x = t, this.y = e, this }, setScalar: function(t) { return this.x = t, this.y = t, this }, setX: function(t) { return this.x = t, this }, setY: function(t) { return this.y = t, this }, setComponent: function(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: function(t) { switch (t) { case 0: return this.x; case 1: return this.y; default: throw new Error("index is out of range: " + t) } }, clone: function() { return new this.constructor(this.x,this.y) }, copy: function(t) { return this.x = t.x, this.y = t.y, this }, add: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this) }, addScalar: function(t) { return this.x += t, this.y += t, this }, addVectors: function(t, e) { return this.x = t.x + e.x, this.y = t.y + e.y, this }, addScaledVector: function(t, e) { return this.x += t.x * e, this.y += t.y * e, this }, sub: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this) }, subScalar: function(t) { return this.x -= t, this.y -= t, this }, subVectors: function(t, e) { return this.x = t.x - e.x, this.y = t.y - e.y, this }, multiply: function(t) { return this.x *= t.x, this.y *= t.y, this }, multiplyScalar: function(t) { return this.x *= t, this.y *= t, this }, divide: function(t) { return this.x /= t.x, this.y /= t.y, this }, divideScalar: function(t) { return this.multiplyScalar(1 / t) }, applyMatrix3: function(t) { var 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: function(t) { return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this }, max: function(t) { return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this }, clamp: function(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: function(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: function(t, e) { var n = this.length(); return this.divideScalar(n || 1).multiplyScalar(Math.max(t, Math.min(e, n))) }, floor: function() { return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this }, ceil: function() { return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this }, round: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this }, roundToZero: function() { 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: function() { return this.x = -this.x, this.y = -this.y, this }, dot: function(t) { return this.x * t.x + this.y * t.y }, cross: function(t) { return this.x * t.y - this.y * t.x }, lengthSq: function() { return this.x * this.x + this.y * this.y }, length: function() { return Math.sqrt(this.x * this.x + this.y * this.y) }, manhattanLength: function() { return Math.abs(this.x) + Math.abs(this.y) }, normalize: function() { return this.divideScalar(this.length() || 1) }, angle: function() { var t = Math.atan2(-this.y, -this.x) + Math.PI; return t }, distanceTo: function(t) { return Math.sqrt(this.distanceToSquared(t)) }, distanceToSquared: function(t) { var e = this.x - t.x , n = this.y - t.y; return e * e + n * n }, manhattanDistanceTo: function(t) { return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) }, setLength: function(t) { return this.normalize().multiplyScalar(t) }, lerp: function(t, e) { return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this }, lerpVectors: function(t, e, n) { return this.subVectors(e, t).multiplyScalar(n).add(t) }, equals: function(t) { return t.x === this.x && t.y === this.y }, fromArray: function(t, e) { return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t }, fromBufferAttribute: function(t, e, n) { return void 0 !== n && console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."), this.x = t.getX(e), this.y = t.getY(e), this }, rotateAround: function(t, e) { var n = Math.cos(e) , i = Math.sin(e) , r = this.x - t.x , o = this.y - t.y; return this.x = r * n - o * i + t.x, this.y = r * i + o * n + t.y, this } }), Object.assign(Jn.prototype, { isMatrix3: !0, set: function(t, e, n, i, r, o, a, s, c) { var l = this.elements; return l[0] = t, l[1] = i, l[2] = a, l[3] = e, l[4] = r, l[5] = s, l[6] = n, l[7] = o, l[8] = c, this }, identity: function() { return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this }, clone: function() { return (new this.constructor).fromArray(this.elements) }, copy: function(t) { var 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: function(t, e, n) { return t.setFromMatrix3Column(this, 0), e.setFromMatrix3Column(this, 1), n.setFromMatrix3Column(this, 2), this }, setFromMatrix4: function(t) { var 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: function(t) { return this.multiplyMatrices(this, t) }, premultiply: function(t) { return this.multiplyMatrices(t, this) }, multiplyMatrices: function(t, e) { var n = t.elements , i = e.elements , r = this.elements , o = n[0] , a = n[3] , s = n[6] , c = n[1] , l = n[4] , u = n[7] , d = n[2] , p = n[5] , h = n[8] , f = i[0] , m = i[3] , g = i[6] , v = i[1] , y = i[4] , b = i[7] , w = i[2] , S = i[5] , x = i[8]; return r[0] = o * f + a * v + s * w, r[3] = o * m + a * y + s * S, r[6] = o * g + a * b + s * x, r[1] = c * f + l * v + u * w, r[4] = c * m + l * y + u * S, r[7] = c * g + l * b + u * x, r[2] = d * f + p * v + h * w, r[5] = d * m + p * y + h * S, r[8] = d * g + p * b + h * x, this }, multiplyScalar: function(t) { var 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: function() { var t = this.elements , e = t[0] , n = t[1] , i = t[2] , r = t[3] , o = t[4] , a = t[5] , s = t[6] , c = t[7] , l = t[8]; return e * o * l - e * a * c - n * r * l + n * a * s + i * r * c - i * o * s }, getInverse: function(t, e) { void 0 !== e && console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate."); var n = t.elements , i = this.elements , r = n[0] , o = n[1] , a = n[2] , s = n[3] , c = n[4] , l = n[5] , u = n[6] , d = n[7] , p = n[8] , h = p * c - l * d , f = l * u - p * s , m = d * s - c * u , g = r * h + o * f + a * m; if (0 === g) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0); var v = 1 / g; return i[0] = h * v, i[1] = (a * d - p * o) * v, i[2] = (l * o - a * c) * v, i[3] = f * v, i[4] = (p * r - a * u) * v, i[5] = (a * s - l * r) * v, i[6] = m * v, i[7] = (o * u - d * r) * v, i[8] = (c * r - o * s) * v, this }, transpose: function() { var 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: function(t) { return this.setFromMatrix4(t).getInverse(this).transpose() }, transposeIntoArray: function(t) { var 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: function(t, e, n, i, r, o, a) { var s = Math.cos(r) , c = Math.sin(r); this.set(n * s, n * c, -n * (s * o + c * a) + o + t, -i * c, i * s, -i * (-c * o + s * a) + a + e, 0, 0, 1) }, scale: function(t, e) { var n = this.elements; return n[0] *= t, n[3] *= t, n[6] *= t, n[1] *= e, n[4] *= e, n[7] *= e, this }, rotate: function(t) { var e = Math.cos(t) , n = Math.sin(t) , i = this.elements , r = i[0] , o = i[3] , a = i[6] , s = i[1] , c = i[4] , l = i[7]; return i[0] = e * r + n * s, i[3] = e * o + n * c, i[6] = e * a + n * l, i[1] = -n * r + e * s, i[4] = -n * o + e * c, i[7] = -n * a + e * l, this }, translate: function(t, e) { var 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: function(t) { for (var e = this.elements, n = t.elements, i = 0; i < 9; i++) if (e[i] !== n[i]) return !1; return !0 }, fromArray: function(t, e) { void 0 === e && (e = 0); for (var n = 0; n < 9; n++) this.elements[n] = t[n + e]; return this }, toArray: function(t, e) { void 0 === t && (t = []), void 0 === e && (e = 0); var 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 } }); var Qn = { getDataURL: function(t) { var e; if ("undefined" == typeof HTMLCanvasElement) return t.src; if (t instanceof HTMLCanvasElement) e = t; else { void 0 === Yn && (Yn = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas")), Yn.width = t.width, Yn.height = t.height; var n = Yn.getContext("2d"); t instanceof ImageData ? n.putImageData(t, 0, 0) : n.drawImage(t, 0, 0, t.width, t.height), e = Yn } return e.width > 2048 || e.height > 2048 ? e.toDataURL("image/jpeg", .6) : e.toDataURL("image/png") } } , $n = 0; function ti(t, e, n, i, r, o, a, s, c, l) { Object.defineProperty(this, "id", { value: $n++ }), this.uuid = Kn.generateUUID(), this.name = "", this.image = void 0 !== t ? t : ti.DEFAULT_IMAGE, this.mipmaps = [], this.mapping = void 0 !== e ? e : ti.DEFAULT_MAPPING, this.wrapS = void 0 !== n ? n : Ct, this.wrapT = void 0 !== i ? i : Ct, this.magFilter = void 0 !== r ? r : kt, this.minFilter = void 0 !== o ? o : Lt, this.anisotropy = void 0 !== c ? c : 1, this.format = void 0 !== a ? a : Jt, this.internalFormat = null, this.type = void 0 !== s ? s : jt, this.offset = new Zn(0,0), this.repeat = new Zn(1,1), this.center = new Zn(0,0), this.rotation = 0, this.matrixAutoUpdate = !0, this.matrix = new Jn, this.generateMipmaps = !0, this.premultiplyAlpha = !1, this.flipY = !0, this.unpackAlignment = 4, this.encoding = void 0 !== l ? l : cn, this.version = 0, this.onUpdate = null } function ei(t, e, n, i) { this.x = t || 0, this.y = e || 0, this.z = n || 0, this.w = void 0 !== i ? i : 1 } function ni(t, e, n) { this.width = t, this.height = e, this.scissor = new ei(0,0,t,e), this.scissorTest = !1, this.viewport = new ei(0,0,t,e), n = n || {}, this.texture = new ti(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding), this.texture.image = {}, this.texture.image.width = t, this.texture.image.height = e, this.texture.generateMipmaps = void 0 !== n.generateMipmaps && n.generateMipmaps, this.texture.minFilter = void 0 !== n.minFilter ? n.minFilter : kt, this.depthBuffer = void 0 === n.depthBuffer || n.depthBuffer, this.stencilBuffer = void 0 === n.stencilBuffer || n.stencilBuffer, this.depthTexture = void 0 !== n.depthTexture ? n.depthTexture : null } function ii(t, e, n) { ni.call(this, t, e, n), this.samples = 4 } function ri(t, e, n, i) { this._x = t || 0, this._y = e || 0, this._z = n || 0, this._w = void 0 !== i ? i : 1 } ti.DEFAULT_IMAGE = void 0, ti.DEFAULT_MAPPING = gt, ti.prototype = Object.assign(Object.create(Wn.prototype), { constructor: ti, isTexture: !0, updateMatrix: function() { this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y) }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.name = t.name, this.image = t.image, this.mipmaps = t.mipmaps.slice(0), this.mapping = t.mapping, this.wrapS = t.wrapS, this.wrapT = t.wrapT, this.magFilter = t.magFilter, this.minFilter = t.minFilter, this.anisotropy = t.anisotropy, this.format = t.format, this.internalFormat = t.internalFormat, this.type = t.type, this.offset.copy(t.offset), this.repeat.copy(t.repeat), this.center.copy(t.center), this.rotation = t.rotation, this.matrixAutoUpdate = t.matrixAutoUpdate, this.matrix.copy(t.matrix), this.generateMipmaps = t.generateMipmaps, this.premultiplyAlpha = t.premultiplyAlpha, this.flipY = t.flipY, this.unpackAlignment = t.unpackAlignment, this.encoding = t.encoding, this }, toJSON: function(t) { var e = void 0 === t || "string" == typeof t; if (!e && void 0 !== t.textures[this.uuid]) return t.textures[this.uuid]; var n = { metadata: { version: 4.5, type: "Texture", generator: "Texture.toJSON" }, uuid: this.uuid, name: this.name, mapping: this.mapping, repeat: [this.repeat.x, this.repeat.y], offset: [this.offset.x, this.offset.y], center: [this.center.x, this.center.y], rotation: this.rotation, wrap: [this.wrapS, this.wrapT], format: this.format, type: this.type, encoding: this.encoding, minFilter: this.minFilter, magFilter: this.magFilter, anisotropy: this.anisotropy, flipY: this.flipY, premultiplyAlpha: this.premultiplyAlpha, unpackAlignment: this.unpackAlignment }; if (void 0 !== this.image) { var i = this.image; if (void 0 === i.uuid && (i.uuid = Kn.generateUUID()), !e && void 0 === t.images[i.uuid]) { var r; if (Array.isArray(i)) { r = []; for (var o = 0, a = i.length; o < a; o++) r.push(Qn.getDataURL(i[o])) } else r = Qn.getDataURL(i); t.images[i.uuid] = { uuid: i.uuid, url: r } } n.image = i.uuid } return e || (t.textures[this.uuid] = n), n }, dispose: function() { this.dispatchEvent({ type: "dispose" }) }, transformUv: function(t) { if (this.mapping !== gt) return t; if (t.applyMatrix3(this.matrix), t.x < 0 || t.x > 1) switch (this.wrapS) { case Et: t.x = t.x - Math.floor(t.x); break; case Ct: t.x = t.x < 0 ? 0 : 1; break; case At: 1 === Math.abs(Math.floor(t.x) % 2) ? t.x = Math.ceil(t.x) - t.x : t.x = t.x - Math.floor(t.x) } if (t.y < 0 || t.y > 1) switch (this.wrapT) { case Et: t.y = t.y - Math.floor(t.y); break; case Ct: t.y = t.y < 0 ? 0 : 1; break; case At: 1 === Math.abs(Math.floor(t.y) % 2) ? t.y = Math.ceil(t.y) - t.y : t.y = t.y - Math.floor(t.y) } return this.flipY && (t.y = 1 - t.y), t } }), Object.defineProperty(ti.prototype, "needsUpdate", { set: function(t) { !0 === t && this.version++ } }), Object.defineProperties(ei.prototype, { width: { get: function() { return this.z }, set: function(t) { this.z = t } }, height: { get: function() { return this.w }, set: function(t) { this.w = t } } }), Object.assign(ei.prototype, { isVector4: !0, set: function(t, e, n, i) { return this.x = t, this.y = e, this.z = n, this.w = i, this }, setScalar: function(t) { return this.x = t, this.y = t, this.z = t, this.w = t, this }, setX: function(t) { return this.x = t, this }, setY: function(t) { return this.y = t, this }, setZ: function(t) { return this.z = t, this }, setW: function(t) { return this.w = t, this }, setComponent: function(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: function(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: function() { return new this.constructor(this.x,this.y,this.z,this.w) }, copy: function(t) { return this.x = t.x, this.y = t.y, this.z = t.z, this.w = void 0 !== t.w ? t.w : 1, this }, add: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this.z += t.z, this.w += t.w, this) }, addScalar: function(t) { return this.x += t, this.y += t, this.z += t, this.w += t, this }, addVectors: function(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: function(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: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this.w -= t.w, this) }, subScalar: function(t) { return this.x -= t, this.y -= t, this.z -= t, this.w -= t, this }, subVectors: function(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 }, multiplyScalar: function(t) { return this.x *= t, this.y *= t, this.z *= t, this.w *= t, this }, applyMatrix4: function(t) { var e = this.x , n = this.y , i = this.z , r = this.w , o = t.elements; return this.x = o[0] * e + o[4] * n + o[8] * i + o[12] * r, this.y = o[1] * e + o[5] * n + o[9] * i + o[13] * r, this.z = o[2] * e + o[6] * n + o[10] * i + o[14] * r, this.w = o[3] * e + o[7] * n + o[11] * i + o[15] * r, this }, divideScalar: function(t) { return this.multiplyScalar(1 / t) }, setAxisAngleFromQuaternion: function(t) { this.w = 2 * Math.acos(t.w); var 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: function(t) { var e, n, i, r, o = t.elements, a = o[0], s = o[4], c = o[8], l = o[1], u = o[5], d = o[9], p = o[2], h = o[6], f = o[10]; if (Math.abs(s - l) < .01 && Math.abs(c - p) < .01 && Math.abs(d - h) < .01) { if (Math.abs(s + l) < .1 && Math.abs(c + p) < .1 && Math.abs(d + h) < .1 && Math.abs(a + u + f - 3) < .1) return this.set(1, 0, 0, 0), this; e = Math.PI; var m = (a + 1) / 2 , g = (u + 1) / 2 , v = (f + 1) / 2 , y = (s + l) / 4 , b = (c + p) / 4 , w = (d + h) / 4; return m > g && m > v ? m < .01 ? (n = 0, i = .707106781, r = .707106781) : (i = y / (n = Math.sqrt(m)), r = b / n) : g > v ? g < .01 ? (n = .707106781, i = 0, r = .707106781) : (n = y / (i = Math.sqrt(g)), r = w / i) : v < .01 ? (n = .707106781, i = .707106781, r = 0) : (n = b / (r = Math.sqrt(v)), i = w / r), this.set(n, i, r, e), this } var S = Math.sqrt((h - d) * (h - d) + (c - p) * (c - p) + (l - s) * (l - s)); return Math.abs(S) < .001 && (S = 1), this.x = (h - d) / S, this.y = (c - p) / S, this.z = (l - s) / S, this.w = Math.acos((a + u + f - 1) / 2), this }, min: function(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: function(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: function(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: function(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: function(t, e) { var n = this.length(); return this.divideScalar(n || 1).multiplyScalar(Math.max(t, Math.min(e, n))) }, floor: function() { 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: function() { 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: function() { 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: function() { 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: function() { return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this }, dot: function(t) { return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w }, lengthSq: function() { return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w }, length: function() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w) }, manhattanLength: function() { return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w) }, normalize: function() { return this.divideScalar(this.length() || 1) }, setLength: function(t) { return this.normalize().multiplyScalar(t) }, lerp: function(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: function(t, e, n) { return this.subVectors(e, t).multiplyScalar(n).add(t) }, equals: function(t) { return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w }, fromArray: function(t, e) { return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this.w = t[e + 3], this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t[e + 3] = this.w, t }, fromBufferAttribute: function(t, e, n) { return void 0 !== n && console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."), this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this.w = t.getW(e), this } }), ni.prototype = Object.assign(Object.create(Wn.prototype), { constructor: ni, isWebGLRenderTarget: !0, setSize: function(t, e) { this.width === t && this.height === e || (this.width = t, this.height = e, this.texture.image.width = t, this.texture.image.height = e, this.dispose()), this.viewport.set(0, 0, t, e), this.scissor.set(0, 0, t, e) }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.width = t.width, this.height = t.height, this.viewport.copy(t.viewport), this.texture = t.texture.clone(), this.depthBuffer = t.depthBuffer, this.stencilBuffer = t.stencilBuffer, this.depthTexture = t.depthTexture, this }, dispose: function() { this.dispatchEvent({ type: "dispose" }) } }), ii.prototype = Object.assign(Object.create(ni.prototype), { constructor: ii, isWebGLMultisampleRenderTarget: !0, copy: function(t) { return ni.prototype.copy.call(this, t), this.samples = t.samples, this } }), Object.assign(ri, { slerp: function(t, e, n, i) { return n.copy(t).slerp(e, i) }, slerpFlat: function(t, e, n, i, r, o, a) { var s = n[i + 0] , c = n[i + 1] , l = n[i + 2] , u = n[i + 3] , d = r[o + 0] , p = r[o + 1] , h = r[o + 2] , f = r[o + 3]; if (u !== f || s !== d || c !== p || l !== h) { var m = 1 - a , g = s * d + c * p + l * h + u * f , v = g >= 0 ? 1 : -1 , y = 1 - g * g; if (y > Number.EPSILON) { var b = Math.sqrt(y) , w = Math.atan2(b, g * v); m = Math.sin(m * w) / b, a = Math.sin(a * w) / b } var S = a * v; if (s = s * m + d * S, c = c * m + p * S, l = l * m + h * S, u = u * m + f * S, m === 1 - a) { var x = 1 / Math.sqrt(s * s + c * c + l * l + u * u); s *= x, c *= x, l *= x, u *= x } } t[e] = s, t[e + 1] = c, t[e + 2] = l, t[e + 3] = u } }), Object.defineProperties(ri.prototype, { x: { get: function() { return this._x }, set: function(t) { this._x = t, this._onChangeCallback() } }, y: { get: function() { return this._y }, set: function(t) { this._y = t, this._onChangeCallback() } }, z: { get: function() { return this._z }, set: function(t) { this._z = t, this._onChangeCallback() } }, w: { get: function() { return this._w }, set: function(t) { this._w = t, this._onChangeCallback() } } }), Object.assign(ri.prototype, { isQuaternion: !0, set: function(t, e, n, i) { return this._x = t, this._y = e, this._z = n, this._w = i, this._onChangeCallback(), this }, clone: function() { return new this.constructor(this._x,this._y,this._z,this._w) }, copy: function(t) { return this._x = t.x, this._y = t.y, this._z = t.z, this._w = t.w, this._onChangeCallback(), this }, setFromEuler: function(t, e) { if (!t || !t.isEuler) throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order."); var n = t._x , i = t._y , r = t._z , o = t.order , a = Math.cos , s = Math.sin , c = a(n / 2) , l = a(i / 2) , u = a(r / 2) , d = s(n / 2) , p = s(i / 2) , h = s(r / 2); return "XYZ" === o ? (this._x = d * l * u + c * p * h, this._y = c * p * u - d * l * h, this._z = c * l * h + d * p * u, this._w = c * l * u - d * p * h) : "YXZ" === o ? (this._x = d * l * u + c * p * h, this._y = c * p * u - d * l * h, this._z = c * l * h - d * p * u, this._w = c * l * u + d * p * h) : "ZXY" === o ? (this._x = d * l * u - c * p * h, this._y = c * p * u + d * l * h, this._z = c * l * h + d * p * u, this._w = c * l * u - d * p * h) : "ZYX" === o ? (this._x = d * l * u - c * p * h, this._y = c * p * u + d * l * h, this._z = c * l * h - d * p * u, this._w = c * l * u + d * p * h) : "YZX" === o ? (this._x = d * l * u + c * p * h, this._y = c * p * u + d * l * h, this._z = c * l * h - d * p * u, this._w = c * l * u - d * p * h) : "XZY" === o && (this._x = d * l * u - c * p * h, this._y = c * p * u - d * l * h, this._z = c * l * h + d * p * u, this._w = c * l * u + d * p * h), !1 !== e && this._onChangeCallback(), this }, setFromAxisAngle: function(t, e) { var 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: function(t) { var e, n = t.elements, i = n[0], r = n[4], o = n[8], a = n[1], s = n[5], c = n[9], l = n[2], u = n[6], d = n[10], p = i + s + d; return p > 0 ? (e = .5 / Math.sqrt(p + 1), this._w = .25 / e, this._x = (u - c) * e, this._y = (o - l) * e, this._z = (a - r) * e) : i > s && i > d ? (e = 2 * Math.sqrt(1 + i - s - d), this._w = (u - c) / e, this._x = .25 * e, this._y = (r + a) / e, this._z = (o + l) / e) : s > d ? (e = 2 * Math.sqrt(1 + s - i - d), this._w = (o - l) / e, this._x = (r + a) / e, this._y = .25 * e, this._z = (c + u) / e) : (e = 2 * Math.sqrt(1 + d - i - s), this._w = (a - r) / e, this._x = (o + l) / e, this._y = (c + u) / e, this._z = .25 * e), this._onChangeCallback(), this }, setFromUnitVectors: function(t, e) { var n = t.dot(e) + 1; return n < 1e-6 ? (n = 0, Math.abs(t.x) > Math.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: function(t) { return 2 * Math.acos(Math.abs(Kn.clamp(this.dot(t), -1, 1))) }, rotateTowards: function(t, e) { var n = this.angleTo(t); if (0 === n) return this; var i = Math.min(1, e / n); return this.slerp(t, i), this }, inverse: function() { return this.conjugate() }, conjugate: function() { return this._x *= -1, this._y *= -1, this._z *= -1, this._onChangeCallback(), this }, dot: function(t) { return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w }, lengthSq: function() { return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w }, length: function() { return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w) }, normalize: function() { var t = this.length(); return 0 === t ? (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: function(t, e) { return void 0 !== e ? (console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."), this.multiplyQuaternions(t, e)) : this.multiplyQuaternions(this, t) }, premultiply: function(t) { return this.multiplyQuaternions(t, this) }, multiplyQuaternions: function(t, e) { var n = t._x , i = t._y , r = t._z , o = t._w , a = e._x , s = e._y , c = e._z , l = e._w; return this._x = n * l + o * a + i * c - r * s, this._y = i * l + o * s + r * a - n * c, this._z = r * l + o * c + n * s - i * a, this._w = o * l - n * a - i * s - r * c, this._onChangeCallback(), this }, slerp: function(t, e) { if (0 === e) return this; if (1 === e) return this.copy(t); var n = this._x , i = this._y , r = this._z , o = this._w , a = o * t._w + n * t._x + i * t._y + r * 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 = r, this; var s = 1 - a * a; if (s <= Number.EPSILON) { var c = 1 - e; return this._w = c * o + e * this._w, this._x = c * n + e * this._x, this._y = c * i + e * this._y, this._z = c * r + e * this._z, this.normalize(), this._onChangeCallback(), this } var l = Math.sqrt(s) , u = Math.atan2(l, a) , d = Math.sin((1 - e) * u) / l , p = Math.sin(e * u) / l; return this._w = o * d + this._w * p, this._x = n * d + this._x * p, this._y = i * d + this._y * p, this._z = r * d + this._z * p, this._onChangeCallback(), this }, equals: function(t) { return t._x === this._x && t._y === this._y && t._z === this._z && t._w === this._w }, fromArray: function(t, e) { return void 0 === e && (e = 0), this._x = t[e], this._y = t[e + 1], this._z = t[e + 2], this._w = t[e + 3], this._onChangeCallback(), this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._w, t }, fromBufferAttribute: function(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: function(t) { return this._onChangeCallback = t, this }, _onChangeCallback: function() {} }); var oi = new si , ai = new ri; function si(t, e, n) { this.x = t || 0, this.y = e || 0, this.z = n || 0 } Object.assign(si.prototype, { isVector3: !0, set: function(t, e, n) { return this.x = t, this.y = e, this.z = n, this }, setScalar: function(t) { return this.x = t, this.y = t, this.z = t, this }, setX: function(t) { return this.x = t, this }, setY: function(t) { return this.y = t, this }, setZ: function(t) { return this.z = t, this }, setComponent: function(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: function(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: function() { return new this.constructor(this.x,this.y,this.z) }, copy: function(t) { return this.x = t.x, this.y = t.y, this.z = t.z, this }, add: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this.z += t.z, this) }, addScalar: function(t) { return this.x += t, this.y += t, this.z += t, this }, addVectors: function(t, e) { return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this }, addScaledVector: function(t, e) { return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this }, sub: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this) }, subScalar: function(t) { return this.x -= t, this.y -= t, this.z -= t, this }, subVectors: function(t, e) { return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this }, multiply: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."), this.multiplyVectors(t, e)) : (this.x *= t.x, this.y *= t.y, this.z *= t.z, this) }, multiplyScalar: function(t) { return this.x *= t, this.y *= t, this.z *= t, this }, multiplyVectors: function(t, e) { return this.x = t.x * e.x, this.y = t.y * e.y, this.z = t.z * e.z, this }, applyEuler: function(t) { return t && t.isEuler || console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."), this.applyQuaternion(ai.setFromEuler(t)) }, applyAxisAngle: function(t, e) { return this.applyQuaternion(ai.setFromAxisAngle(t, e)) }, applyMatrix3: function(t) { var e = this.x , n = this.y , i = this.z , r = t.elements; return this.x = r[0] * e + r[3] * n + r[6] * i, this.y = r[1] * e + r[4] * n + r[7] * i, this.z = r[2] * e + r[5] * n + r[8] * i, this }, applyNormalMatrix: function(t) { return this.applyMatrix3(t).normalize() }, applyMatrix4: function(t) { var e = this.x , n = this.y , i = this.z , r = t.elements , o = 1 / (r[3] * e + r[7] * n + r[11] * i + r[15]); return this.x = (r[0] * e + r[4] * n + r[8] * i + r[12]) * o, this.y = (r[1] * e + r[5] * n + r[9] * i + r[13]) * o, this.z = (r[2] * e + r[6] * n + r[10] * i + r[14]) * o, this }, applyQuaternion: function(t) { var e = this.x , n = this.y , i = this.z , r = t.x , o = t.y , a = t.z , s = t.w , c = s * e + o * i - a * n , l = s * n + a * e - r * i , u = s * i + r * n - o * e , d = -r * e - o * n - a * i; return this.x = c * s + d * -r + l * -a - u * -o, this.y = l * s + d * -o + u * -r - c * -a, this.z = u * s + d * -a + c * -o - l * -r, this }, project: function(t) { return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix) }, unproject: function(t) { return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld) }, transformDirection: function(t) { var e = this.x , n = this.y , i = this.z , r = t.elements; return this.x = r[0] * e + r[4] * n + r[8] * i, this.y = r[1] * e + r[5] * n + r[9] * i, this.z = r[2] * e + r[6] * n + r[10] * i, this.normalize() }, divide: function(t) { return this.x /= t.x, this.y /= t.y, this.z /= t.z, this }, divideScalar: function(t) { return this.multiplyScalar(1 / t) }, min: function(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: function(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: function(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: function(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: function(t, e) { var n = this.length(); return this.divideScalar(n || 1).multiplyScalar(Math.max(t, Math.min(e, n))) }, floor: function() { return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this }, ceil: function() { return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this }, round: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this }, roundToZero: function() { 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: function() { return this.x = -this.x, this.y = -this.y, this.z = -this.z, this }, dot: function(t) { return this.x * t.x + this.y * t.y + this.z * t.z }, lengthSq: function() { return this.x * this.x + this.y * this.y + this.z * this.z }, length: function() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z) }, manhattanLength: function() { return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) }, normalize: function() { return this.divideScalar(this.length() || 1) }, setLength: function(t) { return this.normalize().multiplyScalar(t) }, lerp: function(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: function(t, e, n) { return this.subVectors(e, t).multiplyScalar(n).add(t) }, cross: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."), this.crossVectors(t, e)) : this.crossVectors(this, t) }, crossVectors: function(t, e) { var n = t.x , i = t.y , r = t.z , o = e.x , a = e.y , s = e.z; return this.x = i * s - r * a, this.y = r * o - n * s, this.z = n * a - i * o, this }, projectOnVector: function(t) { var e = t.lengthSq(); if (0 === e) return this.set(0, 0, 0); var n = t.dot(this) / e; return this.copy(t).multiplyScalar(n) }, projectOnPlane: function(t) { return oi.copy(this).projectOnVector(t), this.sub(oi) }, reflect: function(t) { return this.sub(oi.copy(t).multiplyScalar(2 * this.dot(t))) }, angleTo: function(t) { var e = Math.sqrt(this.lengthSq() * t.lengthSq()); if (0 === e) return Math.PI / 2; var n = this.dot(t) / e; return Math.acos(Kn.clamp(n, -1, 1)) }, distanceTo: function(t) { return Math.sqrt(this.distanceToSquared(t)) }, distanceToSquared: function(t) { var e = this.x - t.x , n = this.y - t.y , i = this.z - t.z; return e * e + n * n + i * i }, manhattanDistanceTo: function(t) { return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) + Math.abs(this.z - t.z) }, setFromSpherical: function(t) { return this.setFromSphericalCoords(t.radius, t.phi, t.theta) }, setFromSphericalCoords: function(t, e, n) { var 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: function(t) { return this.setFromCylindricalCoords(t.radius, t.theta, t.y) }, setFromCylindricalCoords: function(t, e, n) { return this.x = t * Math.sin(e), this.y = n, this.z = t * Math.cos(e), this }, setFromMatrixPosition: function(t) { var e = t.elements; return this.x = e[12], this.y = e[13], this.z = e[14], this }, setFromMatrixScale: function(t) { var 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: function(t, e) { return this.fromArray(t.elements, 4 * e) }, setFromMatrix3Column: function(t, e) { return this.fromArray(t.elements, 3 * e) }, equals: function(t) { return t.x === this.x && t.y === this.y && t.z === this.z }, fromArray: function(t, e) { return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t }, fromBufferAttribute: function(t, e, n) { return void 0 !== n && console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."), this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this } }); var ci = new si , li = new mi , ui = new si(0,0,0) , di = new si(1,1,1) , pi = new si , hi = new si , fi = new si; function mi() { this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], arguments.length > 0 && console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.") } Object.assign(mi.prototype, { isMatrix4: !0, set: function(t, e, n, i, r, o, a, s, c, l, u, d, p, h, f, m) { var g = this.elements; return g[0] = t, g[4] = e, g[8] = n, g[12] = i, g[1] = r, g[5] = o, g[9] = a, g[13] = s, g[2] = c, g[6] = l, g[10] = u, g[14] = d, g[3] = p, g[7] = h, g[11] = f, g[15] = m, this }, identity: function() { return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this }, clone: function() { return (new mi).fromArray(this.elements) }, copy: function(t) { var 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: function(t) { var e = this.elements , n = t.elements; return e[12] = n[12], e[13] = n[13], e[14] = n[14], this }, extractBasis: function(t, e, n) { return t.setFromMatrixColumn(this, 0), e.setFromMatrixColumn(this, 1), n.setFromMatrixColumn(this, 2), this }, makeBasis: function(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: function(t) { var e = this.elements , n = t.elements , i = 1 / ci.setFromMatrixColumn(t, 0).length() , r = 1 / ci.setFromMatrixColumn(t, 1).length() , o = 1 / ci.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] * r, e[5] = n[5] * r, e[6] = n[6] * r, 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: function(t) { t && t.isEuler || console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order."); var e = this.elements , n = t.x , i = t.y , r = t.z , o = Math.cos(n) , a = Math.sin(n) , s = Math.cos(i) , c = Math.sin(i) , l = Math.cos(r) , u = Math.sin(r); if ("XYZ" === t.order) { var d = o * l , p = o * u , h = a * l , f = a * u; e[0] = s * l, e[4] = -s * u, e[8] = c, e[1] = p + h * c, e[5] = d - f * c, e[9] = -a * s, e[2] = f - d * c, e[6] = h + p * c, e[10] = o * s } else if ("YXZ" === t.order) { var m = s * l , g = s * u , v = c * l , y = c * u; e[0] = m + y * a, e[4] = v * a - g, e[8] = o * c, e[1] = o * u, e[5] = o * l, e[9] = -a, e[2] = g * a - v, e[6] = y + m * a, e[10] = o * s } else if ("ZXY" === t.order) { m = s * l, g = s * u, v = c * l, y = c * u; e[0] = m - y * a, e[4] = -o * u, e[8] = v + g * a, e[1] = g + v * a, e[5] = o * l, e[9] = y - m * a, e[2] = -o * c, e[6] = a, e[10] = o * s } else if ("ZYX" === t.order) { d = o * l, p = o * u, h = a * l, f = a * u; e[0] = s * l, e[4] = h * c - p, e[8] = d * c + f, e[1] = s * u, e[5] = f * c + d, e[9] = p * c - h, e[2] = -c, e[6] = a * s, e[10] = o * s } else if ("YZX" === t.order) { var b = o * s , w = o * c , S = a * s , x = a * c; e[0] = s * l, e[4] = x - b * u, e[8] = S * u + w, e[1] = u, e[5] = o * l, e[9] = -a * l, e[2] = -c * l, e[6] = w * u + S, e[10] = b - x * u } else if ("XZY" === t.order) { b = o * s, w = o * c, S = a * s, x = a * c; e[0] = s * l, e[4] = -u, e[8] = c * l, e[1] = b * u + x, e[5] = o * l, e[9] = w * u - S, e[2] = S * u - w, e[6] = a * l, e[10] = x * u + b } return e[3] = 0, e[7] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this }, makeRotationFromQuaternion: function(t) { return this.compose(ui, t, di) }, lookAt: function(t, e, n) { var i = this.elements; return fi.subVectors(t, e), 0 === fi.lengthSq() && (fi.z = 1), fi.normalize(), pi.crossVectors(n, fi), 0 === pi.lengthSq() && (1 === Math.abs(n.z) ? fi.x += 1e-4 : fi.z += 1e-4, fi.normalize(), pi.crossVectors(n, fi)), pi.normalize(), hi.crossVectors(fi, pi), i[0] = pi.x, i[4] = hi.x, i[8] = fi.x, i[1] = pi.y, i[5] = hi.y, i[9] = fi.y, i[2] = pi.z, i[6] = hi.z, i[10] = fi.z, this }, multiply: function(t, e) { return void 0 !== e ? (console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."), this.multiplyMatrices(t, e)) : this.multiplyMatrices(this, t) }, premultiply: function(t) { return this.multiplyMatrices(t, this) }, multiplyMatrices: function(t, e) { var n = t.elements , i = e.elements , r = this.elements , o = n[0] , a = n[4] , s = n[8] , c = n[12] , l = n[1] , u = n[5] , d = n[9] , p = n[13] , h = n[2] , f = n[6] , m = n[10] , g = n[14] , v = n[3] , y = n[7] , b = n[11] , w = n[15] , S = i[0] , x = i[4] , M = i[8] , E = i[12] , C = i[1] , A = i[5] , T = i[9] , O = i[13] , _ = i[2] , P = i[6] , I = i[10] , k = i[14] , D = i[3] , R = i[7] , L = i[11] , N = i[15]; return r[0] = o * S + a * C + s * _ + c * D, r[4] = o * x + a * A + s * P + c * R, r[8] = o * M + a * T + s * I + c * L, r[12] = o * E + a * O + s * k + c * N, r[1] = l * S + u * C + d * _ + p * D, r[5] = l * x + u * A + d * P + p * R, r[9] = l * M + u * T + d * I + p * L, r[13] = l * E + u * O + d * k + p * N, r[2] = h * S + f * C + m * _ + g * D, r[6] = h * x + f * A + m * P + g * R, r[10] = h * M + f * T + m * I + g * L, r[14] = h * E + f * O + m * k + g * N, r[3] = v * S + y * C + b * _ + w * D, r[7] = v * x + y * A + b * P + w * R, r[11] = v * M + y * T + b * I + w * L, r[15] = v * E + y * O + b * k + w * N, this }, multiplyScalar: function(t) { var 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: function() { var t = this.elements , e = t[0] , n = t[4] , i = t[8] , r = t[12] , o = t[1] , a = t[5] , s = t[9] , c = t[13] , l = t[2] , u = t[6] , d = t[10] , p = t[14]; return t[3] * (+r * s * u - i * c * u - r * a * d + n * c * d + i * a * p - n * s * p) + t[7] * (+e * s * p - e * c * d + r * o * d - i * o * p + i * c * l - r * s * l) + t[11] * (+e * c * u - e * a * p - r * o * u + n * o * p + r * a * l - n * c * l) + t[15] * (-i * a * l - e * s * u + e * a * d + i * o * u - n * o * d + n * s * l) }, transpose: function() { var t, e = this.elements; 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: function(t, e, n) { var 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 }, getInverse: function(t, e) { void 0 !== e && console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate."); var n = this.elements , i = t.elements , r = i[0] , o = i[1] , a = i[2] , s = i[3] , c = i[4] , l = i[5] , u = i[6] , d = i[7] , p = i[8] , h = i[9] , f = i[10] , m = i[11] , g = i[12] , v = i[13] , y = i[14] , b = i[15] , w = h * y * d - v * f * d + v * u * m - l * y * m - h * u * b + l * f * b , S = g * f * d - p * y * d - g * u * m + c * y * m + p * u * b - c * f * b , x = p * v * d - g * h * d + g * l * m - c * v * m - p * l * b + c * h * b , M = g * h * u - p * v * u - g * l * f + c * v * f + p * l * y - c * h * y , E = r * w + o * S + a * x + s * M; if (0 === E) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); var C = 1 / E; return n[0] = w * C, n[1] = (v * f * s - h * y * s - v * a * m + o * y * m + h * a * b - o * f * b) * C, n[2] = (l * y * s - v * u * s + v * a * d - o * y * d - l * a * b + o * u * b) * C, n[3] = (h * u * s - l * f * s - h * a * d + o * f * d + l * a * m - o * u * m) * C, n[4] = S * C, n[5] = (p * y * s - g * f * s + g * a * m - r * y * m - p * a * b + r * f * b) * C, n[6] = (g * u * s - c * y * s - g * a * d + r * y * d + c * a * b - r * u * b) * C, n[7] = (c * f * s - p * u * s + p * a * d - r * f * d - c * a * m + r * u * m) * C, n[8] = x * C, n[9] = (g * h * s - p * v * s - g * o * m + r * v * m + p * o * b - r * h * b) * C, n[10] = (c * v * s - g * l * s + g * o * d - r * v * d - c * o * b + r * l * b) * C, n[11] = (p * l * s - c * h * s - p * o * d + r * h * d + c * o * m - r * l * m) * C, n[12] = M * C, n[13] = (p * v * a - g * h * a + g * o * f - r * v * f - p * o * y + r * h * y) * C, n[14] = (g * l * a - c * v * a - g * o * u + r * v * u + c * o * y - r * l * y) * C, n[15] = (c * h * a - p * l * a + p * o * u - r * h * u - c * o * f + r * l * f) * C, this }, scale: function(t) { var e = this.elements , n = t.x , i = t.y , r = t.z; return e[0] *= n, e[4] *= i, e[8] *= r, e[1] *= n, e[5] *= i, e[9] *= r, e[2] *= n, e[6] *= i, e[10] *= r, e[3] *= n, e[7] *= i, e[11] *= r, this }, getMaxScaleOnAxis: function() { var 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: function(t, e, n) { return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, n, 0, 0, 0, 1), this }, makeRotationX: function(t) { var 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: function(t) { var 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: function(t) { var 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: function(t, e) { var n = Math.cos(e) , i = Math.sin(e) , r = 1 - n , o = t.x , a = t.y , s = t.z , c = r * o , l = r * a; return this.set(c * o + n, c * a - i * s, c * s + i * a, 0, c * a + i * s, l * a + n, l * s - i * o, 0, c * s - i * a, l * s + i * o, r * s * s + n, 0, 0, 0, 0, 1), this }, makeScale: function(t, e, n) { return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, n, 0, 0, 0, 0, 1), this }, makeShear: function(t, e, n) { return this.set(1, e, n, 0, t, 1, n, 0, t, e, 1, 0, 0, 0, 0, 1), this }, compose: function(t, e, n) { var i = this.elements , r = e._x , o = e._y , a = e._z , s = e._w , c = r + r , l = o + o , u = a + a , d = r * c , p = r * l , h = r * u , f = o * l , m = o * u , g = a * u , v = s * c , y = s * l , b = s * u , w = n.x , S = n.y , x = n.z; return i[0] = (1 - (f + g)) * w, i[1] = (p + b) * w, i[2] = (h - y) * w, i[3] = 0, i[4] = (p - b) * S, i[5] = (1 - (d + g)) * S, i[6] = (m + v) * S, i[7] = 0, i[8] = (h + y) * x, i[9] = (m - v) * x, i[10] = (1 - (d + f)) * x, i[11] = 0, i[12] = t.x, i[13] = t.y, i[14] = t.z, i[15] = 1, this }, decompose: function(t, e, n) { var i = this.elements , r = ci.set(i[0], i[1], i[2]).length() , o = ci.set(i[4], i[5], i[6]).length() , a = ci.set(i[8], i[9], i[10]).length(); this.determinant() < 0 && (r = -r), t.x = i[12], t.y = i[13], t.z = i[14], li.copy(this); var s = 1 / r , c = 1 / o , l = 1 / a; return li.elements[0] *= s, li.elements[1] *= s, li.elements[2] *= s, li.elements[4] *= c, li.elements[5] *= c, li.elements[6] *= c, li.elements[8] *= l, li.elements[9] *= l, li.elements[10] *= l, e.setFromRotationMatrix(li), n.x = r, n.y = o, n.z = a, this }, makePerspective: function(t, e, n, i, r, o) { void 0 === o && console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs."); var a = this.elements , s = 2 * r / (e - t) , c = 2 * r / (n - i) , l = (e + t) / (e - t) , u = (n + i) / (n - i) , d = -(o + r) / (o - r) , p = -2 * o * r / (o - r); return a[0] = s, a[4] = 0, a[8] = l, a[12] = 0, a[1] = 0, a[5] = c, a[9] = u, a[13] = 0, a[2] = 0, a[6] = 0, a[10] = d, a[14] = p, a[3] = 0, a[7] = 0, a[11] = -1, a[15] = 0, this }, makeOrthographic: function(t, e, n, i, r, o) { var a = this.elements , s = 1 / (e - t) , c = 1 / (n - i) , l = 1 / (o - r) , u = (e + t) * s , d = (n + i) * c , p = (o + r) * l; return a[0] = 2 * s, a[4] = 0, a[8] = 0, a[12] = -u, a[1] = 0, a[5] = 2 * c, a[9] = 0, a[13] = -d, a[2] = 0, a[6] = 0, a[10] = -2 * l, a[14] = -p, a[3] = 0, a[7] = 0, a[11] = 0, a[15] = 1, this }, equals: function(t) { for (var e = this.elements, n = t.elements, i = 0; i < 16; i++) if (e[i] !== n[i]) return !1; return !0 }, fromArray: function(t, e) { void 0 === e && (e = 0); for (var n = 0; n < 16; n++) this.elements[n] = t[n + e]; return this }, toArray: function(t, e) { void 0 === t && (t = []), void 0 === e && (e = 0); var 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 } }); var gi = new mi , vi = new ri; function yi(t, e, n, i) { this._x = t || 0, this._y = e || 0, this._z = n || 0, this._order = i || yi.DefaultOrder } function bi() { this.mask = 1 } yi.RotationOrders = ["XYZ", "YZX", "ZXY", "XZY", "YXZ", "ZYX"], yi.DefaultOrder = "XYZ", Object.defineProperties(yi.prototype, { x: { get: function() { return this._x }, set: function(t) { this._x = t, this._onChangeCallback() } }, y: { get: function() { return this._y }, set: function(t) { this._y = t, this._onChangeCallback() } }, z: { get: function() { return this._z }, set: function(t) { this._z = t, this._onChangeCallback() } }, order: { get: function() { return this._order }, set: function(t) { this._order = t, this._onChangeCallback() } } }), Object.assign(yi.prototype, { isEuler: !0, set: function(t, e, n, i) { return this._x = t, this._y = e, this._z = n, this._order = i || this._order, this._onChangeCallback(), this }, clone: function() { return new this.constructor(this._x,this._y,this._z,this._order) }, copy: function(t) { return this._x = t._x, this._y = t._y, this._z = t._z, this._order = t._order, this._onChangeCallback(), this }, setFromRotationMatrix: function(t, e, n) { var i = Kn.clamp , r = t.elements , o = r[0] , a = r[4] , s = r[8] , c = r[1] , l = r[5] , u = r[9] , d = r[2] , p = r[6] , h = r[10]; return "XYZ" === (e = e || this._order) ? (this._y = Math.asin(i(s, -1, 1)), Math.abs(s) < .9999999 ? (this._x = Math.atan2(-u, h), this._z = Math.atan2(-a, o)) : (this._x = Math.atan2(p, l), this._z = 0)) : "YXZ" === e ? (this._x = Math.asin(-i(u, -1, 1)), Math.abs(u) < .9999999 ? (this._y = Math.atan2(s, h), this._z = Math.atan2(c, l)) : (this._y = Math.atan2(-d, o), this._z = 0)) : "ZXY" === e ? (this._x = Math.asin(i(p, -1, 1)), Math.abs(p) < .9999999 ? (this._y = Math.atan2(-d, h), this._z = Math.atan2(-a, l)) : (this._y = 0, this._z = Math.atan2(c, o))) : "ZYX" === e ? (this._y = Math.asin(-i(d, -1, 1)), Math.abs(d) < .9999999 ? (this._x = Math.atan2(p, h), this._z = Math.atan2(c, o)) : (this._x = 0, this._z = Math.atan2(-a, l))) : "YZX" === e ? (this._z = Math.asin(i(c, -1, 1)), Math.abs(c) < .9999999 ? (this._x = Math.atan2(-u, l), this._y = Math.atan2(-d, o)) : (this._x = 0, this._y = Math.atan2(s, h))) : "XZY" === e ? (this._z = Math.asin(-i(a, -1, 1)), Math.abs(a) < .9999999 ? (this._x = Math.atan2(p, l), this._y = Math.atan2(s, o)) : (this._x = Math.atan2(-u, h), this._y = 0)) : console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: " + e), this._order = e, !1 !== n && this._onChangeCallback(), this }, setFromQuaternion: function(t, e, n) { return gi.makeRotationFromQuaternion(t), this.setFromRotationMatrix(gi, e, n) }, setFromVector3: function(t, e) { return this.set(t.x, t.y, t.z, e || this._order) }, reorder: function(t) { return vi.setFromEuler(this), this.setFromQuaternion(vi, t) }, equals: function(t) { return t._x === this._x && t._y === this._y && t._z === this._z && t._order === this._order }, fromArray: function(t) { return this._x = t[0], this._y = t[1], this._z = t[2], void 0 !== t[3] && (this._order = t[3]), this._onChangeCallback(), this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._order, t }, toVector3: function(t) { return t ? t.set(this._x, this._y, this._z) : new si(this._x,this._y,this._z) }, _onChange: function(t) { return this._onChangeCallback = t, this }, _onChangeCallback: function() {} }), Object.assign(bi.prototype, { set: function(t) { this.mask = 1 << t | 0 }, enable: function(t) { this.mask |= 1 << t | 0 }, enableAll: function() { this.mask = -1 }, toggle: function(t) { this.mask ^= 1 << t | 0 }, disable: function(t) { this.mask &= ~(1 << t | 0) }, disableAll: function() { this.mask = 0 }, test: function(t) { return 0 != (this.mask & t.mask) } }); var wi = 0 , Si = new si , xi = new ri , Mi = new mi , Ei = new si , Ci = new si , Ai = new si , Ti = new ri , Oi = new si(1,0,0) , _i = new si(0,1,0) , Pi = new si(0,0,1) , Ii = { type: "added" } , ki = { type: "removed" }; function Di() { Object.defineProperty(this, "id", { value: wi++ }), this.uuid = Kn.generateUUID(), this.name = "", this.type = "Object3D", this.parent = null, this.children = [], this.up = Di.DefaultUp.clone(); var t = new si , e = new yi , n = new ri , i = new si(1,1,1); e._onChange((function() { n.setFromEuler(e, !1) } )), n._onChange((function() { e.setFromQuaternion(n, void 0, !1) } )), Object.defineProperties(this, { position: { configurable: !0, enumerable: !0, value: t }, rotation: { configurable: !0, enumerable: !0, value: e }, quaternion: { configurable: !0, enumerable: !0, value: n }, scale: { configurable: !0, enumerable: !0, value: i }, modelViewMatrix: { value: new mi }, normalMatrix: { value: new Jn } }), this.matrix = new mi, this.matrixWorld = new mi, this.matrixAutoUpdate = Di.DefaultMatrixAutoUpdate, this.matrixWorldNeedsUpdate = !1, this.layers = new bi, this.visible = !0, this.castShadow = !1, this.receiveShadow = !1, this.frustumCulled = !0, this.renderOrder = 0, this.userData = {} } function Ri() { Di.call(this), this.type = "Scene", this.background = null, this.environment = null, this.fog = null, this.overrideMaterial = null, this.autoUpdate = !0, "undefined" != typeof __THREE_DEVTOOLS__ && __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{ detail: this })) } Di.DefaultUp = new si(0,1,0), Di.DefaultMatrixAutoUpdate = !0, Di.prototype = Object.assign(Object.create(Wn.prototype), { constructor: Di, isObject3D: !0, onBeforeRender: function() {}, onAfterRender: function() {}, applyMatrix4: function(t) { this.matrixAutoUpdate && this.updateMatrix(), this.matrix.premultiply(t), this.matrix.decompose(this.position, this.quaternion, this.scale) }, applyQuaternion: function(t) { return this.quaternion.premultiply(t), this }, setRotationFromAxisAngle: function(t, e) { this.quaternion.setFromAxisAngle(t, e) }, setRotationFromEuler: function(t) { this.quaternion.setFromEuler(t, !0) }, setRotationFromMatrix: function(t) { this.quaternion.setFromRotationMatrix(t) }, setRotationFromQuaternion: function(t) { this.quaternion.copy(t) }, rotateOnAxis: function(t, e) { return xi.setFromAxisAngle(t, e), this.quaternion.multiply(xi), this }, rotateOnWorldAxis: function(t, e) { return xi.setFromAxisAngle(t, e), this.quaternion.premultiply(xi), this }, rotateX: function(t) { return this.rotateOnAxis(Oi, t) }, rotateY: function(t) { return this.rotateOnAxis(_i, t) }, rotateZ: function(t) { return this.rotateOnAxis(Pi, t) }, translateOnAxis: function(t, e) { return Si.copy(t).applyQuaternion(this.quaternion), this.position.add(Si.multiplyScalar(e)), this }, translateX: function(t) { return this.translateOnAxis(Oi, t) }, translateY: function(t) { return this.translateOnAxis(_i, t) }, translateZ: function(t) { return this.translateOnAxis(Pi, t) }, localToWorld: function(t) { return t.applyMatrix4(this.matrixWorld) }, worldToLocal: function(t) { return t.applyMatrix4(Mi.getInverse(this.matrixWorld)) }, lookAt: function(t, e, n) { t.isVector3 ? Ei.copy(t) : Ei.set(t, e, n); var i = this.parent; this.updateWorldMatrix(!0, !1), Ci.setFromMatrixPosition(this.matrixWorld), this.isCamera || this.isLight ? Mi.lookAt(Ci, Ei, this.up) : Mi.lookAt(Ei, Ci, this.up), this.quaternion.setFromRotationMatrix(Mi), i && (Mi.extractRotation(i.matrixWorld), xi.setFromRotationMatrix(Mi), this.quaternion.premultiply(xi.inverse())) }, add: function(t) { if (arguments.length > 1) { for (var e = 0; e < arguments.length; e++) this.add(arguments[e]); return this } return t === this ? (console.error("THREE.Object3D.add: object can't be added as a child of itself.", t), this) : (t && t.isObject3D ? (null !== t.parent && t.parent.remove(t), t.parent = this, this.children.push(t), t.dispatchEvent(Ii)) : console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.", t), this) }, remove: function(t) { if (arguments.length > 1) { for (var e = 0; e < arguments.length; e++) this.remove(arguments[e]); return this } var n = this.children.indexOf(t); return -1 !== n && (t.parent = null, this.children.splice(n, 1), t.dispatchEvent(ki)), this }, attach: function(t) { return this.updateWorldMatrix(!0, !1), Mi.getInverse(this.matrixWorld), null !== t.parent && (t.parent.updateWorldMatrix(!0, !1), Mi.multiply(t.parent.matrixWorld)), t.applyMatrix4(Mi), t.updateWorldMatrix(!1, !1), this.add(t), this }, getObjectById: function(t) { return this.getObjectByProperty("id", t) }, getObjectByName: function(t) { return this.getObjectByProperty("name", t) }, getObjectByProperty: function(t, e) { if (this[t] === e) return this; for (var n = 0, i = this.children.length; n < i; n++) { var r = this.children[n].getObjectByProperty(t, e); if (void 0 !== r) return r } }, getWorldPosition: function(t) { return void 0 === t && (console.warn("THREE.Object3D: .getWorldPosition() target is now required"), t = new si), this.updateMatrixWorld(!0), t.setFromMatrixPosition(this.matrixWorld) }, getWorldQuaternion: function(t) { return void 0 === t && (console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"), t = new ri), this.updateMatrixWorld(!0), this.matrixWorld.decompose(Ci, t, Ai), t }, getWorldScale: function(t) { return void 0 === t && (console.warn("THREE.Object3D: .getWorldScale() target is now required"), t = new si), this.updateMatrixWorld(!0), this.matrixWorld.decompose(Ci, Ti, t), t }, getWorldDirection: function(t) { void 0 === t && (console.warn("THREE.Object3D: .getWorldDirection() target is now required"), t = new si), this.updateMatrixWorld(!0); var e = this.matrixWorld.elements; return t.set(e[8], e[9], e[10]).normalize() }, raycast: function() {}, traverse: function(t) { t(this); for (var e = this.children, n = 0, i = e.length; n < i; n++) e[n].traverse(t) }, traverseVisible: function(t) { if (!1 !== this.visible) { t(this); for (var e = this.children, n = 0, i = e.length; n < i; n++) e[n].traverseVisible(t) } }, traverseAncestors: function(t) { var e = this.parent; null !== e && (t(e), e.traverseAncestors(t)) }, updateMatrix: function() { this.matrix.compose(this.position, this.quaternion, this.scale), this.matrixWorldNeedsUpdate = !0 }, updateMatrixWorld: function(t) { this.matrixAutoUpdate && this.updateMatrix(), (this.matrixWorldNeedsUpdate || t) && (null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), this.matrixWorldNeedsUpdate = !1, t = !0); for (var e = this.children, n = 0, i = e.length; n < i; n++) e[n].updateMatrixWorld(t) }, updateWorldMatrix: function(t, e) { var n = this.parent; if (!0 === t && null !== n && n.updateWorldMatrix(!0, !1), this.matrixAutoUpdate && this.updateMatrix(), null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), !0 === e) for (var i = this.children, r = 0, o = i.length; r < o; r++) i[r].updateWorldMatrix(!1, !0) }, toJSON: function(t) { var e = void 0 === t || "string" == typeof t , n = {}; e && (t = { geometries: {}, materials: {}, textures: {}, images: {}, shapes: {} }, n.metadata = { version: 4.5, type: "Object", generator: "Object3D.toJSON" }); var i = {}; function r(e, n) { return void 0 === e[n.uuid] && (e[n.uuid] = n.toJSON(t)), n.uuid } if (i.uuid = this.uuid, i.type = this.type, "" !== this.name && (i.name = this.name), !0 === this.castShadow && (i.castShadow = !0), !0 === this.receiveShadow && (i.receiveShadow = !0), !1 === this.visible && (i.visible = !1), !1 === this.frustumCulled && (i.frustumCulled = !1), 0 !== this.renderOrder && (i.renderOrder = this.renderOrder), "{}" !== JSON.stringify(this.userData) && (i.userData = this.userData), i.layers = this.layers.mask, i.matrix = this.matrix.toArray(), !1 === this.matrixAutoUpdate && (i.matrixAutoUpdate = !1), this.isInstancedMesh && (i.type = "InstancedMesh", i.count = this.count, i.instanceMatrix = this.instanceMatrix.toJSON()), this.isMesh || this.isLine || this.isPoints) { i.geometry = r(t.geometries, this.geometry); var o = this.geometry.parameters; if (void 0 !== o && void 0 !== o.shapes) { var a = o.shapes; if (Array.isArray(a)) for (var s = 0, c = a.length; s < c; s++) { var l = a[s]; r(t.shapes, l) } else r(t.shapes, a) } } if (void 0 !== this.material) if (Array.isArray(this.material)) { var u = []; for (s = 0, c = this.material.length; s < c; s++) u.push(r(t.materials, this.material[s])); i.material = u } else i.material = r(t.materials, this.material); if (this.children.length > 0) { i.children = []; for (s = 0; s < this.children.length; s++) i.children.push(this.children[s].toJSON(t).object) } if (e) { var d = m(t.geometries) , p = m(t.materials) , h = m(t.textures) , f = m(t.images); a = m(t.shapes); d.length > 0 && (n.geometries = d), p.length > 0 && (n.materials = p), h.length > 0 && (n.textures = h), f.length > 0 && (n.images = f), a.length > 0 && (n.shapes = a) } return n.object = i, n; function m(t) { var e = []; for (var n in t) { var i = t[n]; delete i.metadata, e.push(i) } return e } }, clone: function(t) { return (new this.constructor).copy(this, t) }, copy: function(t, e) { if (void 0 === e && (e = !0), this.name = t.name, this.up.copy(t.up), this.position.copy(t.position), 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.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)), !0 === e) for (var n = 0; n < t.children.length; n++) { var i = t.children[n]; this.add(i.clone()) } return this } }), Ri.prototype = Object.assign(Object.create(Di.prototype), { constructor: Ri, isScene: !0, copy: function(t, e) { return Di.prototype.copy.call(this, t, e), null !== t.background && (this.background = t.background.clone()), null !== t.environment && (this.environment = t.environment.clone()), null !== t.fog && (this.fog = t.fog.clone()), null !== t.overrideMaterial && (this.overrideMaterial = t.overrideMaterial.clone()), this.autoUpdate = t.autoUpdate, this.matrixAutoUpdate = t.matrixAutoUpdate, this }, toJSON: function(t) { var e = Di.prototype.toJSON.call(this, t); return null !== this.background && (e.object.background = this.background.toJSON(t)), null !== this.environment && (e.object.environment = this.environment.toJSON(t)), null !== this.fog && (e.object.fog = this.fog.toJSON()), e }, dispose: function() { this.dispatchEvent({ type: "dispose" }) } }); var Li = [new si, new si, new si, new si, new si, new si, new si, new si] , Ni = new si , ji = new Yi , Vi = new si , Fi = new si , Ui = new si , Bi = new si , zi = new si , Gi = new si , Hi = new si , Wi = new si , qi = new si , Xi = new si; function Yi(t, e) { this.min = void 0 !== t ? t : new si(1 / 0,1 / 0,1 / 0), this.max = void 0 !== e ? e : new si(-1 / 0,-1 / 0,-1 / 0) } function Ki(t, e, n, i, r) { var o, a; for (o = 0, a = t.length - 3; o <= a; o += 3) { Xi.fromArray(t, o); var s = r.x * Math.abs(Xi.x) + r.y * Math.abs(Xi.y) + r.z * Math.abs(Xi.z) , c = e.dot(Xi) , l = n.dot(Xi) , u = i.dot(Xi); if (Math.max(-Math.max(c, l, u), Math.min(c, l, u)) > s) return !1 } return !0 } Object.assign(Yi.prototype, { isBox3: !0, set: function(t, e) { return this.min.copy(t), this.max.copy(e), this }, setFromArray: function(t) { for (var e = 1 / 0, n = 1 / 0, i = 1 / 0, r = -1 / 0, o = -1 / 0, a = -1 / 0, s = 0, c = t.length; s < c; s += 3) { var l = t[s] , u = t[s + 1] , d = t[s + 2]; l < e && (e = l), u < n && (n = u), d < i && (i = d), l > r && (r = l), u > o && (o = u), d > a && (a = d) } return this.min.set(e, n, i), this.max.set(r, o, a), this }, setFromBufferAttribute: function(t) { for (var e = 1 / 0, n = 1 / 0, i = 1 / 0, r = -1 / 0, o = -1 / 0, a = -1 / 0, s = 0, c = t.count; s < c; s++) { var l = t.getX(s) , u = t.getY(s) , d = t.getZ(s); l < e && (e = l), u < n && (n = u), d < i && (i = d), l > r && (r = l), u > o && (o = u), d > a && (a = d) } return this.min.set(e, n, i), this.max.set(r, o, a), this }, setFromPoints: function(t) { this.makeEmpty(); for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); return this }, setFromCenterAndSize: function(t, e) { var n = Ni.copy(e).multiplyScalar(.5); return this.min.copy(t).sub(n), this.max.copy(t).add(n), this }, setFromObject: function(t) { return this.makeEmpty(), this.expandByObject(t) }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.min.copy(t.min), this.max.copy(t.max), this }, makeEmpty: function() { return this.min.x = this.min.y = this.min.z = 1 / 0, this.max.x = this.max.y = this.max.z = -1 / 0, this }, isEmpty: function() { return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z }, getCenter: function(t) { return void 0 === t && (console.warn("THREE.Box3: .getCenter() target is now required"), t = new si), this.isEmpty() ? t.set(0, 0, 0) : t.addVectors(this.min, this.max).multiplyScalar(.5) }, getSize: function(t) { return void 0 === t && (console.warn("THREE.Box3: .getSize() target is now required"), t = new si), this.isEmpty() ? t.set(0, 0, 0) : t.subVectors(this.max, this.min) }, expandByPoint: function(t) { return this.min.min(t), this.max.max(t), this }, expandByVector: function(t) { return this.min.sub(t), this.max.add(t), this }, expandByScalar: function(t) { return this.min.addScalar(-t), this.max.addScalar(t), this }, expandByObject: function(t) { t.updateWorldMatrix(!1, !1); var e = t.geometry; void 0 !== e && (null === e.boundingBox && e.computeBoundingBox(), ji.copy(e.boundingBox), ji.applyMatrix4(t.matrixWorld), this.union(ji)); for (var n = t.children, i = 0, r = n.length; i < r; i++) this.expandByObject(n[i]); return this }, containsPoint: function(t) { return !(t.x < this.min.x || t.x > this.max.x || t.y < this.min.y || t.y > this.max.y || t.z < this.min.z || t.z > this.max.z) }, containsBox: function(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: function(t, e) { return void 0 === e && (console.warn("THREE.Box3: .getParameter() target is now required"), e = new si), 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: function(t) { return !(t.max.x < this.min.x || t.min.x > this.max.x || t.max.y < this.min.y || t.min.y > this.max.y || t.max.z < this.min.z || t.min.z > this.max.z) }, intersectsSphere: function(t) { return this.clampPoint(t.center, Ni), Ni.distanceToSquared(t.center) <= t.radius * t.radius }, intersectsPlane: function(t) { var 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: function(t) { if (this.isEmpty()) return !1; this.getCenter(Hi), Wi.subVectors(this.max, Hi), Vi.subVectors(t.a, Hi), Fi.subVectors(t.b, Hi), Ui.subVectors(t.c, Hi), Bi.subVectors(Fi, Vi), zi.subVectors(Ui, Fi), Gi.subVectors(Vi, Ui); var e = [0, -Bi.z, Bi.y, 0, -zi.z, zi.y, 0, -Gi.z, Gi.y, Bi.z, 0, -Bi.x, zi.z, 0, -zi.x, Gi.z, 0, -Gi.x, -Bi.y, Bi.x, 0, -zi.y, zi.x, 0, -Gi.y, Gi.x, 0]; return !!Ki(e, Vi, Fi, Ui, Wi) && (!!Ki(e = [1, 0, 0, 0, 1, 0, 0, 0, 1], Vi, Fi, Ui, Wi) && (qi.crossVectors(Bi, zi), Ki(e = [qi.x, qi.y, qi.z], Vi, Fi, Ui, Wi))) }, clampPoint: function(t, e) { return void 0 === e && (console.warn("THREE.Box3: .clampPoint() target is now required"), e = new si), e.copy(t).clamp(this.min, this.max) }, distanceToPoint: function(t) { return Ni.copy(t).clamp(this.min, this.max).sub(t).length() }, getBoundingSphere: function(t) { return void 0 === t && console.error("THREE.Box3: .getBoundingSphere() target is now required"), this.getCenter(t.center), t.radius = .5 * this.getSize(Ni).length(), t }, intersect: function(t) { return this.min.max(t.min), this.max.min(t.max), this.isEmpty() && this.makeEmpty(), this }, union: function(t) { return this.min.min(t.min), this.max.max(t.max), this }, applyMatrix4: function(t) { return this.isEmpty() || (Li[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(t), Li[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(t), Li[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(t), Li[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(t), Li[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(t), Li[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(t), Li[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(t), Li[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(t), this.setFromPoints(Li)), this }, translate: function(t) { return this.min.add(t), this.max.add(t), this }, equals: function(t) { return t.min.equals(this.min) && t.max.equals(this.max) } }); var Zi = new Yi; function Ji(t, e) { this.center = void 0 !== t ? t : new si, this.radius = void 0 !== e ? e : 0 } Object.assign(Ji.prototype, { set: function(t, e) { return this.center.copy(t), this.radius = e, this }, setFromPoints: function(t, e) { var n = this.center; void 0 !== e ? n.copy(e) : Zi.setFromPoints(t).getCenter(n); for (var i = 0, r = 0, o = t.length; r < o; r++) i = Math.max(i, n.distanceToSquared(t[r])); return this.radius = Math.sqrt(i), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.center.copy(t.center), this.radius = t.radius, this }, empty: function() { return this.radius <= 0 }, containsPoint: function(t) { return t.distanceToSquared(this.center) <= this.radius * this.radius }, distanceToPoint: function(t) { return t.distanceTo(this.center) - this.radius }, intersectsSphere: function(t) { var e = this.radius + t.radius; return t.center.distanceToSquared(this.center) <= e * e }, intersectsBox: function(t) { return t.intersectsSphere(this) }, intersectsPlane: function(t) { return Math.abs(t.distanceToPoint(this.center)) <= this.radius }, clampPoint: function(t, e) { var n = this.center.distanceToSquared(t); return void 0 === e && (console.warn("THREE.Sphere: .clampPoint() target is now required"), e = new si), e.copy(t), n > this.radius * this.radius && (e.sub(this.center).normalize(), e.multiplyScalar(this.radius).add(this.center)), e }, getBoundingBox: function(t) { return void 0 === t && (console.warn("THREE.Sphere: .getBoundingBox() target is now required"), t = new Yi), t.set(this.center, this.center), t.expandByScalar(this.radius), t }, applyMatrix4: function(t) { return this.center.applyMatrix4(t), this.radius = this.radius * t.getMaxScaleOnAxis(), this }, translate: function(t) { return this.center.add(t), this }, equals: function(t) { return t.center.equals(this.center) && t.radius === this.radius } }); var Qi = new si , $i = new si , tr = new si , er = new si , nr = new si , ir = new si , rr = new si; function or(t, e) { this.origin = void 0 !== t ? t : new si, this.direction = void 0 !== e ? e : new si(0,0,-1) } Object.assign(or.prototype, { set: function(t, e) { return this.origin.copy(t), this.direction.copy(e), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.origin.copy(t.origin), this.direction.copy(t.direction), this }, at: function(t, e) { return void 0 === e && (console.warn("THREE.Ray: .at() target is now required"), e = new si), e.copy(this.direction).multiplyScalar(t).add(this.origin) }, lookAt: function(t) { return this.direction.copy(t).sub(this.origin).normalize(), this }, recast: function(t) { return this.origin.copy(this.at(t, Qi)), this }, closestPointToPoint: function(t, e) { void 0 === e && (console.warn("THREE.Ray: .closestPointToPoint() target is now required"), e = new si), e.subVectors(t, this.origin); var n = e.dot(this.direction); return n < 0 ? e.copy(this.origin) : e.copy(this.direction).multiplyScalar(n).add(this.origin) }, distanceToPoint: function(t) { return Math.sqrt(this.distanceSqToPoint(t)) }, distanceSqToPoint: function(t) { var e = Qi.subVectors(t, this.origin).dot(this.direction); return e < 0 ? this.origin.distanceToSquared(t) : (Qi.copy(this.direction).multiplyScalar(e).add(this.origin), Qi.distanceToSquared(t)) }, distanceSqToSegment: function(t, e, n, i) { $i.copy(t).add(e).multiplyScalar(.5), tr.copy(e).sub(t).normalize(), er.copy(this.origin).sub($i); var r, o, a, s, c = .5 * t.distanceTo(e), l = -this.direction.dot(tr), u = er.dot(this.direction), d = -er.dot(tr), p = er.lengthSq(), h = Math.abs(1 - l * l); if (h > 0) if (o = l * u - d, s = c * h, (r = l * d - u) >= 0) if (o >= -s) if (o <= s) { var f = 1 / h; a = (r *= f) * (r + l * (o *= f) + 2 * u) + o * (l * r + o + 2 * d) + p } else o = c, a = -(r = Math.max(0, -(l * o + u))) * r + o * (o + 2 * d) + p; else o = -c, a = -(r = Math.max(0, -(l * o + u))) * r + o * (o + 2 * d) + p; else o <= -s ? a = -(r = Math.max(0, -(-l * c + u))) * r + (o = r > 0 ? -c : Math.min(Math.max(-c, -d), c)) * (o + 2 * d) + p : o <= s ? (r = 0, a = (o = Math.min(Math.max(-c, -d), c)) * (o + 2 * d) + p) : a = -(r = Math.max(0, -(l * c + u))) * r + (o = r > 0 ? c : Math.min(Math.max(-c, -d), c)) * (o + 2 * d) + p; else o = l > 0 ? -c : c, a = -(r = Math.max(0, -(l * o + u))) * r + o * (o + 2 * d) + p; return n && n.copy(this.direction).multiplyScalar(r).add(this.origin), i && i.copy(tr).multiplyScalar(o).add($i), a }, intersectSphere: function(t, e) { Qi.subVectors(t.center, this.origin); var n = Qi.dot(this.direction) , i = Qi.dot(Qi) - n * n , r = t.radius * t.radius; if (i > r) return null; var o = Math.sqrt(r - i) , a = n - o , s = n + o; return a < 0 && s < 0 ? null : a < 0 ? this.at(s, e) : this.at(a, e) }, intersectsSphere: function(t) { return this.distanceSqToPoint(t.center) <= t.radius * t.radius }, distanceToPlane: function(t) { var e = t.normal.dot(this.direction); if (0 === e) return 0 === t.distanceToPoint(this.origin) ? 0 : null; var n = -(this.origin.dot(t.normal) + t.constant) / e; return n >= 0 ? n : null }, intersectPlane: function(t, e) { var n = this.distanceToPlane(t); return null === n ? null : this.at(n, e) }, intersectsPlane: function(t) { var e = t.distanceToPoint(this.origin); return 0 === e || t.normal.dot(this.direction) * e < 0 }, intersectBox: function(t, e) { var n, i, r, o, a, s, c = 1 / this.direction.x, l = 1 / this.direction.y, u = 1 / this.direction.z, d = this.origin; return c >= 0 ? (n = (t.min.x - d.x) * c, i = (t.max.x - d.x) * c) : (n = (t.max.x - d.x) * c, i = (t.min.x - d.x) * c), l >= 0 ? (r = (t.min.y - d.y) * l, o = (t.max.y - d.y) * l) : (r = (t.max.y - d.y) * l, o = (t.min.y - d.y) * l), n > o || r > i ? null : ((r > n || n != n) && (n = r), (o < i || i != i) && (i = o), u >= 0 ? (a = (t.min.z - d.z) * u, s = (t.max.z - d.z) * u) : (a = (t.max.z - d.z) * u, s = (t.min.z - d.z) * u), n > s || a > i ? null : ((a > n || n != n) && (n = a), (s < i || i != i) && (i = s), i < 0 ? null : this.at(n >= 0 ? n : i, e))) }, intersectsBox: function(t) { return null !== this.intersectBox(t, Qi) }, intersectTriangle: function(t, e, n, i, r) { nr.subVectors(e, t), ir.subVectors(n, t), rr.crossVectors(nr, ir); var o, a = this.direction.dot(rr); if (a > 0) { if (i) return null; o = 1 } else { if (!(a < 0)) return null; o = -1, a = -a } er.subVectors(this.origin, t); var s = o * this.direction.dot(ir.crossVectors(er, ir)); if (s < 0) return null; var c = o * this.direction.dot(nr.cross(er)); if (c < 0) return null; if (s + c > a) return null; var l = -o * er.dot(rr); return l < 0 ? null : this.at(l / a, r) }, applyMatrix4: function(t) { return this.origin.applyMatrix4(t), this.direction.transformDirection(t), this }, equals: function(t) { return t.origin.equals(this.origin) && t.direction.equals(this.direction) } }); var ar = new si , sr = new si , cr = new Jn; function lr(t, e) { this.normal = void 0 !== t ? t : new si(1,0,0), this.constant = void 0 !== e ? e : 0 } Object.assign(lr.prototype, { isPlane: !0, set: function(t, e) { return this.normal.copy(t), this.constant = e, this }, setComponents: function(t, e, n, i) { return this.normal.set(t, e, n), this.constant = i, this }, setFromNormalAndCoplanarPoint: function(t, e) { return this.normal.copy(t), this.constant = -e.dot(this.normal), this }, setFromCoplanarPoints: function(t, e, n) { var i = ar.subVectors(n, e).cross(sr.subVectors(t, e)).normalize(); return this.setFromNormalAndCoplanarPoint(i, t), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.normal.copy(t.normal), this.constant = t.constant, this }, normalize: function() { var t = 1 / this.normal.length(); return this.normal.multiplyScalar(t), this.constant *= t, this }, negate: function() { return this.constant *= -1, this.normal.negate(), this }, distanceToPoint: function(t) { return this.normal.dot(t) + this.constant }, distanceToSphere: function(t) { return this.distanceToPoint(t.center) - t.radius }, projectPoint: function(t, e) { return void 0 === e && (console.warn("THREE.Plane: .projectPoint() target is now required"), e = new si), e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t) }, intersectLine: function(t, e) { void 0 === e && (console.warn("THREE.Plane: .intersectLine() target is now required"), e = new si); var n = t.delta(ar) , i = this.normal.dot(n); if (0 === i) return 0 === this.distanceToPoint(t.start) ? e.copy(t.start) : void 0; var r = -(t.start.dot(this.normal) + this.constant) / i; return r < 0 || r > 1 ? void 0 : e.copy(n).multiplyScalar(r).add(t.start) }, intersectsLine: function(t) { var e = this.distanceToPoint(t.start) , n = this.distanceToPoint(t.end); return e < 0 && n > 0 || n < 0 && e > 0 }, intersectsBox: function(t) { return t.intersectsPlane(this) }, intersectsSphere: function(t) { return t.intersectsPlane(this) }, coplanarPoint: function(t) { return void 0 === t && (console.warn("THREE.Plane: .coplanarPoint() target is now required"), t = new si), t.copy(this.normal).multiplyScalar(-this.constant) }, applyMatrix4: function(t, e) { var n = e || cr.getNormalMatrix(t) , i = this.coplanarPoint(ar).applyMatrix4(t) , r = this.normal.applyMatrix3(n).normalize(); return this.constant = -i.dot(r), this }, translate: function(t) { return this.constant -= t.dot(this.normal), this }, equals: function(t) { return t.normal.equals(this.normal) && t.constant === this.constant } }); var ur = new si , dr = new si , pr = new si , hr = new si , fr = new si , mr = new si , gr = new si , vr = new si , yr = new si , br = new si; function wr(t, e, n) { this.a = void 0 !== t ? t : new si, this.b = void 0 !== e ? e : new si, this.c = void 0 !== n ? n : new si } Object.assign(wr, { getNormal: function(t, e, n, i) { void 0 === i && (console.warn("THREE.Triangle: .getNormal() target is now required"), i = new si), i.subVectors(n, e), ur.subVectors(t, e), i.cross(ur); var r = i.lengthSq(); return r > 0 ? i.multiplyScalar(1 / Math.sqrt(r)) : i.set(0, 0, 0) }, getBarycoord: function(t, e, n, i, r) { ur.subVectors(i, e), dr.subVectors(n, e), pr.subVectors(t, e); var o = ur.dot(ur) , a = ur.dot(dr) , s = ur.dot(pr) , c = dr.dot(dr) , l = dr.dot(pr) , u = o * c - a * a; if (void 0 === r && (console.warn("THREE.Triangle: .getBarycoord() target is now required"), r = new si), 0 === u) return r.set(-2, -1, -1); var d = 1 / u , p = (c * s - a * l) * d , h = (o * l - a * s) * d; return r.set(1 - p - h, h, p) }, containsPoint: function(t, e, n, i) { return wr.getBarycoord(t, e, n, i, hr), hr.x >= 0 && hr.y >= 0 && hr.x + hr.y <= 1 }, getUV: function(t, e, n, i, r, o, a, s) { return this.getBarycoord(t, e, n, i, hr), s.set(0, 0), s.addScaledVector(r, hr.x), s.addScaledVector(o, hr.y), s.addScaledVector(a, hr.z), s }, isFrontFacing: function(t, e, n, i) { return ur.subVectors(n, e), dr.subVectors(t, e), ur.cross(dr).dot(i) < 0 } }), Object.assign(wr.prototype, { set: function(t, e, n) { return this.a.copy(t), this.b.copy(e), this.c.copy(n), this }, setFromPointsAndIndices: function(t, e, n, i) { return this.a.copy(t[e]), this.b.copy(t[n]), this.c.copy(t[i]), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.a.copy(t.a), this.b.copy(t.b), this.c.copy(t.c), this }, getArea: function() { return ur.subVectors(this.c, this.b), dr.subVectors(this.a, this.b), .5 * ur.cross(dr).length() }, getMidpoint: function(t) { return void 0 === t && (console.warn("THREE.Triangle: .getMidpoint() target is now required"), t = new si), t.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3) }, getNormal: function(t) { return wr.getNormal(this.a, this.b, this.c, t) }, getPlane: function(t) { return void 0 === t && (console.warn("THREE.Triangle: .getPlane() target is now required"), t = new lr), t.setFromCoplanarPoints(this.a, this.b, this.c) }, getBarycoord: function(t, e) { return wr.getBarycoord(t, this.a, this.b, this.c, e) }, getUV: function(t, e, n, i, r) { return wr.getUV(t, this.a, this.b, this.c, e, n, i, r) }, containsPoint: function(t) { return wr.containsPoint(t, this.a, this.b, this.c) }, isFrontFacing: function(t) { return wr.isFrontFacing(this.a, this.b, this.c, t) }, intersectsBox: function(t) { return t.intersectsTriangle(this) }, closestPointToPoint: function(t, e) { void 0 === e && (console.warn("THREE.Triangle: .closestPointToPoint() target is now required"), e = new si); var n, i, r = this.a, o = this.b, a = this.c; fr.subVectors(o, r), mr.subVectors(a, r), vr.subVectors(t, r); var s = fr.dot(vr) , c = mr.dot(vr); if (s <= 0 && c <= 0) return e.copy(r); yr.subVectors(t, o); var l = fr.dot(yr) , u = mr.dot(yr); if (l >= 0 && u <= l) return e.copy(o); var d = s * u - l * c; if (d <= 0 && s >= 0 && l <= 0) return n = s / (s - l), e.copy(r).addScaledVector(fr, n); br.subVectors(t, a); var p = fr.dot(br) , h = mr.dot(br); if (h >= 0 && p <= h) return e.copy(a); var f = p * c - s * h; if (f <= 0 && c >= 0 && h <= 0) return i = c / (c - h), e.copy(r).addScaledVector(mr, i); var m = l * h - p * u; if (m <= 0 && u - l >= 0 && p - h >= 0) return gr.subVectors(a, o), i = (u - l) / (u - l + (p - h)), e.copy(o).addScaledVector(gr, i); var g = 1 / (m + f + d); return n = f * g, i = d * g, e.copy(r).addScaledVector(fr, n).addScaledVector(mr, i) }, equals: function(t) { return t.a.equals(this.a) && t.b.equals(this.b) && t.c.equals(this.c) } }); var Sr = { 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 } , xr = { h: 0, s: 0, l: 0 } , Mr = { h: 0, s: 0, l: 0 }; function Er(t, e, n) { return void 0 === e && void 0 === n ? this.set(t) : this.setRGB(t, e, n) } function Cr(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 Ar(t) { return t < .04045 ? .0773993808 * t : Math.pow(.9478672986 * t + .0521327014, 2.4) } function Tr(t) { return t < .0031308 ? 12.92 * t : 1.055 * Math.pow(t, .41666) - .055 } function Or(t, e, n, i, r, o) { this.a = t, this.b = e, this.c = n, this.normal = i && i.isVector3 ? i : new si, this.vertexNormals = Array.isArray(i) ? i : [], this.color = r && r.isColor ? r : new Er, this.vertexColors = Array.isArray(r) ? r : [], this.materialIndex = void 0 !== o ? o : 0 } Object.assign(Er.prototype, { isColor: !0, r: 1, g: 1, b: 1, set: function(t) { return t && t.isColor ? this.copy(t) : "number" == typeof t ? this.setHex(t) : "string" == typeof t && this.setStyle(t), this }, setScalar: function(t) { return this.r = t, this.g = t, this.b = t, this }, setHex: function(t) { return t = Math.floor(t), this.r = (t >> 16 & 255) / 255, this.g = (t >> 8 & 255) / 255, this.b = (255 & t) / 255, this }, setRGB: function(t, e, n) { return this.r = t, this.g = e, this.b = n, this }, setHSL: function(t, e, n) { if (t = Kn.euclideanModulo(t, 1), e = Kn.clamp(e, 0, 1), n = Kn.clamp(n, 0, 1), 0 === e) this.r = this.g = this.b = n; else { var i = n <= .5 ? n * (1 + e) : n + e - n * e , r = 2 * n - i; this.r = Cr(r, i, t + 1 / 3), this.g = Cr(r, i, t), this.b = Cr(r, i, t - 1 / 3) } return this }, setStyle: function(t) { function e(e) { void 0 !== e && parseFloat(e) < 1 && console.warn("THREE.Color: Alpha component of " + t + " will be ignored.") } var n; if (n = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)) { var i, r = n[1], o = n[2]; switch (r) { case "rgb": case "rgba": if (i = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o)) return this.r = Math.min(255, parseInt(i[1], 10)) / 255, this.g = Math.min(255, parseInt(i[2], 10)) / 255, this.b = Math.min(255, parseInt(i[3], 10)) / 255, e(i[5]), this; if (i = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o)) return this.r = Math.min(100, parseInt(i[1], 10)) / 100, this.g = Math.min(100, parseInt(i[2], 10)) / 100, this.b = Math.min(100, parseInt(i[3], 10)) / 100, e(i[5]), this; break; case "hsl": case "hsla": if (i = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(o)) { var a = parseFloat(i[1]) / 360 , s = parseInt(i[2], 10) / 100 , c = parseInt(i[3], 10) / 100; return e(i[5]), this.setHSL(a, s, c) } } } else if (n = /^\#([A-Fa-f0-9]+)$/.exec(t)) { var l = n[1] , u = l.length; if (3 === u) return this.r = parseInt(l.charAt(0) + l.charAt(0), 16) / 255, this.g = parseInt(l.charAt(1) + l.charAt(1), 16) / 255, this.b = parseInt(l.charAt(2) + l.charAt(2), 16) / 255, this; if (6 === u) return this.r = parseInt(l.charAt(0) + l.charAt(1), 16) / 255, this.g = parseInt(l.charAt(2) + l.charAt(3), 16) / 255, this.b = parseInt(l.charAt(4) + l.charAt(5), 16) / 255, this } return t && t.length > 0 ? this.setColorName(t) : this }, setColorName: function(t) { var e = Sr[t]; return void 0 !== e ? this.setHex(e) : console.warn("THREE.Color: Unknown color " + t), this }, clone: function() { return new this.constructor(this.r,this.g,this.b) }, copy: function(t) { return this.r = t.r, this.g = t.g, this.b = t.b, this }, copyGammaToLinear: function(t, e) { return void 0 === e && (e = 2), this.r = Math.pow(t.r, e), this.g = Math.pow(t.g, e), this.b = Math.pow(t.b, e), this }, copyLinearToGamma: function(t, e) { void 0 === e && (e = 2); var n = e > 0 ? 1 / e : 1; return this.r = Math.pow(t.r, n), this.g = Math.pow(t.g, n), this.b = Math.pow(t.b, n), this }, convertGammaToLinear: function(t) { return this.copyGammaToLinear(this, t), this }, convertLinearToGamma: function(t) { return this.copyLinearToGamma(this, t), this }, copySRGBToLinear: function(t) { return this.r = Ar(t.r), this.g = Ar(t.g), this.b = Ar(t.b), this }, copyLinearToSRGB: function(t) { return this.r = Tr(t.r), this.g = Tr(t.g), this.b = Tr(t.b), this }, convertSRGBToLinear: function() { return this.copySRGBToLinear(this), this }, convertLinearToSRGB: function() { return this.copyLinearToSRGB(this), this }, getHex: function() { return 255 * this.r << 16 ^ 255 * this.g << 8 ^ 255 * this.b << 0 }, getHexString: function() { return ("000000" + this.getHex().toString(16)).slice(-6) }, getHSL: function(t) { void 0 === t && (console.warn("THREE.Color: .getHSL() target is now required"), t = { h: 0, s: 0, l: 0 }); var e, n, i = this.r, r = this.g, o = this.b, a = Math.max(i, r, o), s = Math.min(i, r, o), c = (s + a) / 2; if (s === a) e = 0, n = 0; else { var l = a - s; switch (n = c <= .5 ? l / (a + s) : l / (2 - a - s), a) { case i: e = (r - o) / l + (r < o ? 6 : 0); break; case r: e = (o - i) / l + 2; break; case o: e = (i - r) / l + 4 } e /= 6 } return t.h = e, t.s = n, t.l = c, t }, getStyle: function() { return "rgb(" + (255 * this.r | 0) + "," + (255 * this.g | 0) + "," + (255 * this.b | 0) + ")" }, offsetHSL: function(t, e, n) { return this.getHSL(xr), xr.h += t, xr.s += e, xr.l += n, this.setHSL(xr.h, xr.s, xr.l), this }, add: function(t) { return this.r += t.r, this.g += t.g, this.b += t.b, this }, addColors: function(t, e) { return this.r = t.r + e.r, this.g = t.g + e.g, this.b = t.b + e.b, this }, addScalar: function(t) { return this.r += t, this.g += t, this.b += t, this }, sub: function(t) { return this.r = Math.max(0, this.r - t.r), this.g = Math.max(0, this.g - t.g), this.b = Math.max(0, this.b - t.b), this }, multiply: function(t) { return this.r *= t.r, this.g *= t.g, this.b *= t.b, this }, multiplyScalar: function(t) { return this.r *= t, this.g *= t, this.b *= t, this }, lerp: function(t, e) { return this.r += (t.r - this.r) * e, this.g += (t.g - this.g) * e, this.b += (t.b - this.b) * e, this }, lerpHSL: function(t, e) { this.getHSL(xr), t.getHSL(Mr); var n = Kn.lerp(xr.h, Mr.h, e) , i = Kn.lerp(xr.s, Mr.s, e) , r = Kn.lerp(xr.l, Mr.l, e); return this.setHSL(n, i, r), this }, equals: function(t) { return t.r === this.r && t.g === this.g && t.b === this.b }, fromArray: function(t, e) { return void 0 === e && (e = 0), this.r = t[e], this.g = t[e + 1], this.b = t[e + 2], this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.r, t[e + 1] = this.g, t[e + 2] = this.b, t }, toJSON: function() { return this.getHex() } }), Er.NAMES = Sr, Object.assign(Or.prototype, { clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { this.a = t.a, this.b = t.b, this.c = t.c, this.normal.copy(t.normal), this.color.copy(t.color), this.materialIndex = t.materialIndex; for (var e = 0, n = t.vertexNormals.length; e < n; e++) this.vertexNormals[e] = t.vertexNormals[e].clone(); for (e = 0, n = t.vertexColors.length; e < n; e++) this.vertexColors[e] = t.vertexColors[e].clone(); return this } }); var _r = 0; function Pr() { Object.defineProperty(this, "id", { value: _r++ }), this.uuid = Kn.generateUUID(), this.name = "", this.type = "Material", this.fog = !0, this.blending = k, this.side = A, this.flatShading = !1, this.vertexColors = !1, this.opacity = 1, this.transparent = !1, this.blendSrc = q, this.blendDst = X, this.blendEquation = j, this.blendSrcAlpha = null, this.blendDstAlpha = null, this.blendEquationAlpha = null, this.depthFunc = nt, this.depthTest = !0, this.depthWrite = !0, this.stencilWriteMask = 255, this.stencilFunc = Ln, this.stencilRef = 0, this.stencilFuncMask = 255, this.stencilFail = Sn, this.stencilZFail = Sn, this.stencilZPass = Sn, 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.alphaTest = 0, this.premultipliedAlpha = !1, this.visible = !0, this.toneMapped = !0, this.userData = {}, this.version = 0 } function Ir(t) { Pr.call(this), this.type = "MeshBasicMaterial", this.color = new Er(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 = st, this.reflectivity = 1, this.refractionRatio = .98, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.skinning = !1, this.morphTargets = !1, this.setValues(t) } Pr.prototype = Object.assign(Object.create(Wn.prototype), { constructor: Pr, isMaterial: !0, onBeforeCompile: function() {}, setValues: function(t) { if (void 0 !== t) for (var e in t) { var n = t[e]; if (void 0 !== n) if ("shading" !== e) { var i = this[e]; void 0 !== i ? i && i.isColor ? i.set(n) : i && i.isVector3 && n && n.isVector3 ? i.copy(n) : this[e] = n : console.warn("THREE." + this.type + ": '" + e + "' is not a property of this material.") } else console.warn("THREE." + this.type + ": .shading has been removed. Use the boolean .flatShading instead."), this.flatShading = n === _; else console.warn("THREE.Material: '" + e + "' parameter is undefined.") } }, toJSON: function(t) { var e = void 0 === t || "string" == typeof t; e && (t = { textures: {}, images: {} }); var n = { metadata: { version: 4.5, type: "Material", generator: "Material.toJSON" } }; function i(t) { var e = []; for (var n in t) { var i = t[n]; delete i.metadata, e.push(i) } return e } if (n.uuid = this.uuid, n.type = this.type, "" !== this.name && (n.name = this.name), this.color && this.color.isColor && (n.color = this.color.getHex()), void 0 !== this.roughness && (n.roughness = this.roughness), void 0 !== this.metalness && (n.metalness = this.metalness), this.sheen && this.sheen.isColor && (n.sheen = this.sheen.getHex()), this.emissive && this.emissive.isColor && (n.emissive = this.emissive.getHex()), this.emissiveIntensity && 1 !== this.emissiveIntensity && (n.emissiveIntensity = this.emissiveIntensity), this.specular && this.specular.isColor && (n.specular = this.specular.getHex()), void 0 !== this.shininess && (n.shininess = this.shininess), void 0 !== this.clearcoat && (n.clearcoat = this.clearcoat), void 0 !== this.clearcoatRoughness && (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.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), 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.envMap && this.envMap.isTexture && (n.envMap = this.envMap.toJSON(t).uuid, n.reflectivity = this.reflectivity, n.refractionRatio = this.refractionRatio, void 0 !== this.combine && (n.combine = this.combine), void 0 !== this.envMapIntensity && (n.envMapIntensity = this.envMapIntensity)), this.gradientMap && this.gradientMap.isTexture && (n.gradientMap = this.gradientMap.toJSON(t).uuid), void 0 !== this.size && (n.size = this.size), void 0 !== this.sizeAttenuation && (n.sizeAttenuation = this.sizeAttenuation), this.blending !== k && (n.blending = this.blending), !0 === this.flatShading && (n.flatShading = this.flatShading), this.side !== A && (n.side = this.side), this.vertexColors && (n.vertexColors = !0), this.opacity < 1 && (n.opacity = this.opacity), !0 === this.transparent && (n.transparent = this.transparent), n.depthFunc = this.depthFunc, n.depthTest = this.depthTest, n.depthWrite = this.depthWrite, 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 && 0 !== this.rotation && (n.rotation = this.rotation), !0 === this.polygonOffset && (n.polygonOffset = !0), 0 !== this.polygonOffsetFactor && (n.polygonOffsetFactor = this.polygonOffsetFactor), 0 !== this.polygonOffsetUnits && (n.polygonOffsetUnits = this.polygonOffsetUnits), this.linewidth && 1 !== this.linewidth && (n.linewidth = this.linewidth), void 0 !== this.dashSize && (n.dashSize = this.dashSize), void 0 !== this.gapSize && (n.gapSize = this.gapSize), void 0 !== this.scale && (n.scale = this.scale), !0 === this.dithering && (n.dithering = !0), this.alphaTest > 0 && (n.alphaTest = this.alphaTest), !0 === this.premultipliedAlpha && (n.premultipliedAlpha = this.premultipliedAlpha), !0 === this.wireframe && (n.wireframe = this.wireframe), this.wireframeLinewidth > 1 && (n.wireframeLinewidth = this.wireframeLinewidth), "round" !== this.wireframeLinecap && (n.wireframeLinecap = this.wireframeLinecap), "round" !== this.wireframeLinejoin && (n.wireframeLinejoin = this.wireframeLinejoin), !0 === this.morphTargets && (n.morphTargets = !0), !0 === this.morphNormals && (n.morphNormals = !0), !0 === this.skinning && (n.skinning = !0), !1 === this.visible && (n.visible = !1), !1 === this.toneMapped && (n.toneMapped = !1), "{}" !== JSON.stringify(this.userData) && (n.userData = this.userData), e) { var r = i(t.textures) , o = i(t.images); r.length > 0 && (n.textures = r), o.length > 0 && (n.images = o) } return n }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { this.name = t.name, this.fog = t.fog, this.blending = t.blending, this.side = t.side, this.flatShading = t.flatShading, 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; var e = t.clippingPlanes , n = null; if (null !== e) { var i = e.length; n = new Array(i); for (var r = 0; r !== i; ++r) n[r] = e[r].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.premultipliedAlpha = t.premultipliedAlpha, this.visible = t.visible, this.toneMapped = t.toneMapped, this.userData = JSON.parse(JSON.stringify(t.userData)), this }, dispose: function() { this.dispatchEvent({ type: "dispose" }) } }), Object.defineProperty(Pr.prototype, "needsUpdate", { set: function(t) { !0 === t && this.version++ } }), Ir.prototype = Object.create(Pr.prototype), Ir.prototype.constructor = Ir, Ir.prototype.isMeshBasicMaterial = !0, Ir.prototype.copy = function(t) { return Pr.prototype.copy.call(this, 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.skinning = t.skinning, this.morphTargets = t.morphTargets, this } ; var kr = new si; function Dr(t, e, n) { if (Array.isArray(t)) throw new TypeError("THREE.BufferAttribute: array should be a Typed Array."); this.name = "", this.array = t, this.itemSize = e, this.count = void 0 !== t ? t.length / e : 0, this.normalized = !0 === n, this.usage = Nn, this.updateRange = { offset: 0, count: -1 }, this.version = 0 } function Rr(t, e, n) { Dr.call(this, new Int8Array(t), e, n) } function Lr(t, e, n) { Dr.call(this, new Uint8Array(t), e, n) } function Nr(t, e, n) { Dr.call(this, new Uint8ClampedArray(t), e, n) } function jr(t, e, n) { Dr.call(this, new Int16Array(t), e, n) } function Vr(t, e, n) { Dr.call(this, new Uint16Array(t), e, n) } function Fr(t, e, n) { Dr.call(this, new Int32Array(t), e, n) } function Ur(t, e, n) { Dr.call(this, new Uint32Array(t), e, n) } function Br(t, e, n) { Dr.call(this, new Float32Array(t), e, n) } function zr(t, e, n) { Dr.call(this, new Float64Array(t), e, n) } function Gr() { this.vertices = [], this.normals = [], this.colors = [], this.uvs = [], this.uvs2 = [], this.groups = [], this.morphTargets = {}, this.skinWeights = [], this.skinIndices = [], this.boundingBox = null, this.boundingSphere = null, this.verticesNeedUpdate = !1, this.normalsNeedUpdate = !1, this.colorsNeedUpdate = !1, this.uvsNeedUpdate = !1, this.groupsNeedUpdate = !1 } function Hr(t) { if (0 === t.length) return -1 / 0; for (var e = t[0], n = 1, i = t.length; n < i; ++n) t[n] > e && (e = t[n]); return e } Object.defineProperty(Dr.prototype, "needsUpdate", { set: function(t) { !0 === t && this.version++ } }), Object.assign(Dr.prototype, { isBufferAttribute: !0, onUploadCallback: function() {}, setUsage: function(t) { return this.usage = t, this }, copy: function(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: function(t, e, n) { t *= this.itemSize, n *= e.itemSize; for (var i = 0, r = this.itemSize; i < r; i++) this.array[t + i] = e.array[n + i]; return this }, copyArray: function(t) { return this.array.set(t), this }, copyColorsArray: function(t) { for (var e = this.array, n = 0, i = 0, r = t.length; i < r; i++) { var o = t[i]; void 0 === o && (console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined", i), o = new Er), e[n++] = o.r, e[n++] = o.g, e[n++] = o.b } return this }, copyVector2sArray: function(t) { for (var e = this.array, n = 0, i = 0, r = t.length; i < r; i++) { var o = t[i]; void 0 === o && (console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined", i), o = new Zn), e[n++] = o.x, e[n++] = o.y } return this }, copyVector3sArray: function(t) { for (var e = this.array, n = 0, i = 0, r = t.length; i < r; i++) { var o = t[i]; void 0 === o && (console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined", i), o = new si), e[n++] = o.x, e[n++] = o.y, e[n++] = o.z } return this }, copyVector4sArray: function(t) { for (var e = this.array, n = 0, i = 0, r = t.length; i < r; i++) { var o = t[i]; void 0 === o && (console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined", i), o = new ei), e[n++] = o.x, e[n++] = o.y, e[n++] = o.z, e[n++] = o.w } return this }, applyMatrix3: function(t) { for (var e = 0, n = this.count; e < n; e++) kr.x = this.getX(e), kr.y = this.getY(e), kr.z = this.getZ(e), kr.applyMatrix3(t), this.setXYZ(e, kr.x, kr.y, kr.z); return this }, applyMatrix4: function(t) { for (var e = 0, n = this.count; e < n; e++) kr.x = this.getX(e), kr.y = this.getY(e), kr.z = this.getZ(e), kr.applyMatrix4(t), this.setXYZ(e, kr.x, kr.y, kr.z); return this }, applyNormalMatrix: function(t) { for (var e = 0, n = this.count; e < n; e++) kr.x = this.getX(e), kr.y = this.getY(e), kr.z = this.getZ(e), kr.applyNormalMatrix(t), this.setXYZ(e, kr.x, kr.y, kr.z); return this }, transformDirection: function(t) { for (var e = 0, n = this.count; e < n; e++) kr.x = this.getX(e), kr.y = this.getY(e), kr.z = this.getZ(e), kr.transformDirection(t), this.setXYZ(e, kr.x, kr.y, kr.z); return this }, set: function(t, e) { return void 0 === e && (e = 0), this.array.set(t, e), this }, getX: function(t) { return this.array[t * this.itemSize] }, setX: function(t, e) { return this.array[t * this.itemSize] = e, this }, getY: function(t) { return this.array[t * this.itemSize + 1] }, setY: function(t, e) { return this.array[t * this.itemSize + 1] = e, this }, getZ: function(t) { return this.array[t * this.itemSize + 2] }, setZ: function(t, e) { return this.array[t * this.itemSize + 2] = e, this }, getW: function(t) { return this.array[t * this.itemSize + 3] }, setW: function(t, e) { return this.array[t * this.itemSize + 3] = e, this }, setXY: function(t, e, n) { return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = n, this }, setXYZ: function(t, e, n, i) { return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = n, this.array[t + 2] = i, this }, setXYZW: function(t, e, n, i, r) { return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = n, this.array[t + 2] = i, this.array[t + 3] = r, this }, onUpload: function(t) { return this.onUploadCallback = t, this }, clone: function() { return new this.constructor(this.array,this.itemSize).copy(this) }, toJSON: function() { return { itemSize: this.itemSize, type: this.array.constructor.name, array: Array.prototype.slice.call(this.array), normalized: this.normalized } } }), Rr.prototype = Object.create(Dr.prototype), Rr.prototype.constructor = Rr, Lr.prototype = Object.create(Dr.prototype), Lr.prototype.constructor = Lr, Nr.prototype = Object.create(Dr.prototype), Nr.prototype.constructor = Nr, jr.prototype = Object.create(Dr.prototype), jr.prototype.constructor = jr, Vr.prototype = Object.create(Dr.prototype), Vr.prototype.constructor = Vr, Fr.prototype = Object.create(Dr.prototype), Fr.prototype.constructor = Fr, Ur.prototype = Object.create(Dr.prototype), Ur.prototype.constructor = Ur, Br.prototype = Object.create(Dr.prototype), Br.prototype.constructor = Br, zr.prototype = Object.create(Dr.prototype), zr.prototype.constructor = zr, Object.assign(Gr.prototype, { computeGroups: function(t) { for (var e, n = [], i = void 0, r = t.faces, o = 0; o < r.length; o++) { var a = r[o]; a.materialIndex !== i && (i = a.materialIndex, void 0 !== e && (e.count = 3 * o - e.start, n.push(e)), e = { start: 3 * o, materialIndex: i }) } void 0 !== e && (e.count = 3 * o - e.start, n.push(e)), this.groups = n }, fromGeometry: function(t) { var e, n = t.faces, i = t.vertices, r = t.faceVertexUvs, o = r[0] && r[0].length > 0, a = r[1] && r[1].length > 0, s = t.morphTargets, c = s.length; if (c > 0) { e = []; for (var l = 0; l < c; l++) e[l] = { name: s[l].name, data: [] }; this.morphTargets.position = e } var u, d = t.morphNormals, p = d.length; if (p > 0) { u = []; for (l = 0; l < p; l++) u[l] = { name: d[l].name, data: [] }; this.morphTargets.normal = u } var h = t.skinIndices , f = t.skinWeights , m = h.length === i.length , g = f.length === i.length; i.length > 0 && 0 === n.length && console.error("THREE.DirectGeometry: Faceless geometries are not supported."); for (l = 0; l < n.length; l++) { var v = n[l]; this.vertices.push(i[v.a], i[v.b], i[v.c]); var y = v.vertexNormals; if (3 === y.length) this.normals.push(y[0], y[1], y[2]); else { var b = v.normal; this.normals.push(b, b, b) } var w, S = v.vertexColors; if (3 === S.length) this.colors.push(S[0], S[1], S[2]); else { var x = v.color; this.colors.push(x, x, x) } if (!0 === o) void 0 !== (w = r[0][l]) ? this.uvs.push(w[0], w[1], w[2]) : (console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ", l), this.uvs.push(new Zn, new Zn, new Zn)); if (!0 === a) void 0 !== (w = r[1][l]) ? this.uvs2.push(w[0], w[1], w[2]) : (console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ", l), this.uvs2.push(new Zn, new Zn, new Zn)); for (var M = 0; M < c; M++) { var E = s[M].vertices; e[M].data.push(E[v.a], E[v.b], E[v.c]) } for (M = 0; M < p; M++) { var C = d[M].vertexNormals[l]; u[M].data.push(C.a, C.b, C.c) } m && this.skinIndices.push(h[v.a], h[v.b], h[v.c]), g && this.skinWeights.push(f[v.a], f[v.b], f[v.c]) } return this.computeGroups(t), this.verticesNeedUpdate = t.verticesNeedUpdate, this.normalsNeedUpdate = t.normalsNeedUpdate, this.colorsNeedUpdate = t.colorsNeedUpdate, this.uvsNeedUpdate = t.uvsNeedUpdate, this.groupsNeedUpdate = t.groupsNeedUpdate, null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), this } }); var Wr = 1 , qr = new mi , Xr = new Di , Yr = new si , Kr = new Yi , Zr = new Yi , Jr = new si; function Qr() { Object.defineProperty(this, "id", { value: Wr += 2 }), this.uuid = Kn.generateUUID(), this.name = "", this.type = "BufferGeometry", this.index = null, this.attributes = {}, this.morphAttributes = {}, this.morphTargetsRelative = !1, this.groups = [], this.boundingBox = null, this.boundingSphere = null, this.drawRange = { start: 0, count: 1 / 0 }, this.userData = {} } Qr.prototype = Object.assign(Object.create(Wn.prototype), { constructor: Qr, isBufferGeometry: !0, getIndex: function() { return this.index }, setIndex: function(t) { Array.isArray(t) ? this.index = new (Hr(t) > 65535 ? Ur : Vr)(t,1) : this.index = t }, getAttribute: function(t) { return this.attributes[t] }, setAttribute: function(t, e) { return this.attributes[t] = e, this }, deleteAttribute: function(t) { return delete this.attributes[t], this }, addGroup: function(t, e, n) { this.groups.push({ start: t, count: e, materialIndex: void 0 !== n ? n : 0 }) }, clearGroups: function() { this.groups = [] }, setDrawRange: function(t, e) { this.drawRange.start = t, this.drawRange.count = e }, applyMatrix4: function(t) { var e = this.attributes.position; void 0 !== e && (e.applyMatrix4(t), e.needsUpdate = !0); var n = this.attributes.normal; if (void 0 !== n) { var i = (new Jn).getNormalMatrix(t); n.applyNormalMatrix(i), n.needsUpdate = !0 } var r = this.attributes.tangent; return void 0 !== r && (r.transformDirection(t), r.needsUpdate = !0), null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), this }, rotateX: function(t) { return qr.makeRotationX(t), this.applyMatrix4(qr), this }, rotateY: function(t) { return qr.makeRotationY(t), this.applyMatrix4(qr), this }, rotateZ: function(t) { return qr.makeRotationZ(t), this.applyMatrix4(qr), this }, translate: function(t, e, n) { return qr.makeTranslation(t, e, n), this.applyMatrix4(qr), this }, scale: function(t, e, n) { return qr.makeScale(t, e, n), this.applyMatrix4(qr), this }, lookAt: function(t) { return Xr.lookAt(t), Xr.updateMatrix(), this.applyMatrix4(Xr.matrix), this }, center: function() { return this.computeBoundingBox(), this.boundingBox.getCenter(Yr).negate(), this.translate(Yr.x, Yr.y, Yr.z), this }, setFromObject: function(t) { var e = t.geometry; if (t.isPoints || t.isLine) { var n = new Br(3 * e.vertices.length,3) , i = new Br(3 * e.colors.length,3); if (this.setAttribute("position", n.copyVector3sArray(e.vertices)), this.setAttribute("color", i.copyColorsArray(e.colors)), e.lineDistances && e.lineDistances.length === e.vertices.length) { var r = new Br(e.lineDistances.length,1); this.setAttribute("lineDistance", r.copyArray(e.lineDistances)) } null !== e.boundingSphere && (this.boundingSphere = e.boundingSphere.clone()), null !== e.boundingBox && (this.boundingBox = e.boundingBox.clone()) } else t.isMesh && e && e.isGeometry && this.fromGeometry(e); return this }, setFromPoints: function(t) { for (var e = [], n = 0, i = t.length; n < i; n++) { var r = t[n]; e.push(r.x, r.y, r.z || 0) } return this.setAttribute("position", new Br(e,3)), this }, updateFromObject: function(t) { var e, n = t.geometry; if (t.isMesh) { var i = n.__directGeometry; if (!0 === n.elementsNeedUpdate && (i = void 0, n.elementsNeedUpdate = !1), void 0 === i) return this.fromGeometry(n); i.verticesNeedUpdate = n.verticesNeedUpdate, i.normalsNeedUpdate = n.normalsNeedUpdate, i.colorsNeedUpdate = n.colorsNeedUpdate, i.uvsNeedUpdate = n.uvsNeedUpdate, i.groupsNeedUpdate = n.groupsNeedUpdate, n.verticesNeedUpdate = !1, n.normalsNeedUpdate = !1, n.colorsNeedUpdate = !1, n.uvsNeedUpdate = !1, n.groupsNeedUpdate = !1, n = i } return !0 === n.verticesNeedUpdate && (void 0 !== (e = this.attributes.position) && (e.copyVector3sArray(n.vertices), e.needsUpdate = !0), n.verticesNeedUpdate = !1), !0 === n.normalsNeedUpdate && (void 0 !== (e = this.attributes.normal) && (e.copyVector3sArray(n.normals), e.needsUpdate = !0), n.normalsNeedUpdate = !1), !0 === n.colorsNeedUpdate && (void 0 !== (e = this.attributes.color) && (e.copyColorsArray(n.colors), e.needsUpdate = !0), n.colorsNeedUpdate = !1), n.uvsNeedUpdate && (void 0 !== (e = this.attributes.uv) && (e.copyVector2sArray(n.uvs), e.needsUpdate = !0), n.uvsNeedUpdate = !1), n.lineDistancesNeedUpdate && (void 0 !== (e = this.attributes.lineDistance) && (e.copyArray(n.lineDistances), e.needsUpdate = !0), n.lineDistancesNeedUpdate = !1), n.groupsNeedUpdate && (n.computeGroups(t.geometry), this.groups = n.groups, n.groupsNeedUpdate = !1), this }, fromGeometry: function(t) { return t.__directGeometry = (new Gr).fromGeometry(t), this.fromDirectGeometry(t.__directGeometry) }, fromDirectGeometry: function(t) { var e = new Float32Array(3 * t.vertices.length); if (this.setAttribute("position", new Dr(e,3).copyVector3sArray(t.vertices)), t.normals.length > 0) { var n = new Float32Array(3 * t.normals.length); this.setAttribute("normal", new Dr(n,3).copyVector3sArray(t.normals)) } if (t.colors.length > 0) { var i = new Float32Array(3 * t.colors.length); this.setAttribute("color", new Dr(i,3).copyColorsArray(t.colors)) } if (t.uvs.length > 0) { var r = new Float32Array(2 * t.uvs.length); this.setAttribute("uv", new Dr(r,2).copyVector2sArray(t.uvs)) } if (t.uvs2.length > 0) { var o = new Float32Array(2 * t.uvs2.length); this.setAttribute("uv2", new Dr(o,2).copyVector2sArray(t.uvs2)) } for (var a in this.groups = t.groups, t.morphTargets) { for (var s = [], c = t.morphTargets[a], l = 0, u = c.length; l < u; l++) { var d = c[l] , p = new Br(3 * d.data.length,3); p.name = d.name, s.push(p.copyVector3sArray(d.data)) } this.morphAttributes[a] = s } if (t.skinIndices.length > 0) { var h = new Br(4 * t.skinIndices.length,4); this.setAttribute("skinIndex", h.copyVector4sArray(t.skinIndices)) } if (t.skinWeights.length > 0) { var f = new Br(4 * t.skinWeights.length,4); this.setAttribute("skinWeight", f.copyVector4sArray(t.skinWeights)) } return null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), this }, computeBoundingBox: function() { null === this.boundingBox && (this.boundingBox = new Yi); var t = this.attributes.position , e = this.morphAttributes.position; if (void 0 !== t) { if (this.boundingBox.setFromBufferAttribute(t), e) for (var n = 0, i = e.length; n < i; n++) { var r = e[n]; Kr.setFromBufferAttribute(r), this.morphTargetsRelative ? (Jr.addVectors(this.boundingBox.min, Kr.min), this.boundingBox.expandByPoint(Jr), Jr.addVectors(this.boundingBox.max, Kr.max), this.boundingBox.expandByPoint(Jr)) : (this.boundingBox.expandByPoint(Kr.min), this.boundingBox.expandByPoint(Kr.max)) } } else this.boundingBox.makeEmpty(); (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) && console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this) }, computeBoundingSphere: function() { null === this.boundingSphere && (this.boundingSphere = new Ji); var t = this.attributes.position , e = this.morphAttributes.position; if (t) { var n = this.boundingSphere.center; if (Kr.setFromBufferAttribute(t), e) for (var i = 0, r = e.length; i < r; i++) { var o = e[i]; Zr.setFromBufferAttribute(o), this.morphTargetsRelative ? (Jr.addVectors(Kr.min, Zr.min), Kr.expandByPoint(Jr), Jr.addVectors(Kr.max, Zr.max), Kr.expandByPoint(Jr)) : (Kr.expandByPoint(Zr.min), Kr.expandByPoint(Zr.max)) } Kr.getCenter(n); var a = 0; for (i = 0, r = t.count; i < r; i++) Jr.fromBufferAttribute(t, i), a = Math.max(a, n.distanceToSquared(Jr)); if (e) for (i = 0, r = e.length; i < r; i++) { o = e[i]; for (var s = this.morphTargetsRelative, c = 0, l = o.count; c < l; c++) Jr.fromBufferAttribute(o, c), s && (Yr.fromBufferAttribute(t, c), Jr.add(Yr)), a = Math.max(a, n.distanceToSquared(Jr)) } this.boundingSphere.radius = Math.sqrt(a), isNaN(this.boundingSphere.radius) && console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this) } }, computeFaceNormals: function() {}, computeVertexNormals: function() { var t = this.index , e = this.attributes; if (e.position) { var n = e.position.array; if (void 0 === e.normal) this.setAttribute("normal", new Dr(new Float32Array(n.length),3)); else for (var i = e.normal.array, r = 0, o = i.length; r < o; r++) i[r] = 0; var a, s, c, l = e.normal.array, u = new si, d = new si, p = new si, h = new si, f = new si; if (t) { var m = t.array; for (r = 0, o = t.count; r < o; r += 3) a = 3 * m[r + 0], s = 3 * m[r + 1], c = 3 * m[r + 2], u.fromArray(n, a), d.fromArray(n, s), p.fromArray(n, c), h.subVectors(p, d), f.subVectors(u, d), h.cross(f), l[a] += h.x, l[a + 1] += h.y, l[a + 2] += h.z, l[s] += h.x, l[s + 1] += h.y, l[s + 2] += h.z, l[c] += h.x, l[c + 1] += h.y, l[c + 2] += h.z } else for (r = 0, o = n.length; r < o; r += 9) u.fromArray(n, r), d.fromArray(n, r + 3), p.fromArray(n, r + 6), h.subVectors(p, d), f.subVectors(u, d), h.cross(f), l[r] = h.x, l[r + 1] = h.y, l[r + 2] = h.z, l[r + 3] = h.x, l[r + 4] = h.y, l[r + 5] = h.z, l[r + 6] = h.x, l[r + 7] = h.y, l[r + 8] = h.z; this.normalizeNormals(), e.normal.needsUpdate = !0 } }, merge: function(t, e) { if (t && t.isBufferGeometry) { void 0 === e && (e = 0, console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.")); var n = this.attributes; for (var i in n) if (void 0 !== t.attributes[i]) for (var r = n[i].array, o = t.attributes[i], a = o.array, s = o.itemSize * e, c = Math.min(a.length, r.length - s), l = 0, u = s; l < c; l++, u++) r[u] = a[l]; return this } console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.", t) }, normalizeNormals: function() { for (var t = this.attributes.normal, e = 0, n = t.count; e < n; e++) Jr.x = t.getX(e), Jr.y = t.getY(e), Jr.z = t.getZ(e), Jr.normalize(), t.setXYZ(e, Jr.x, Jr.y, Jr.z) }, toNonIndexed: function() { function t(t, e) { for (var n = t.array, i = t.itemSize, r = new n.constructor(e.length * i), o = 0, a = 0, s = 0, c = e.length; s < c; s++) { o = e[s] * i; for (var l = 0; l < i; l++) r[a++] = n[o++] } return new Dr(r,i) } if (null === this.index) return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."), this; var e = new Qr , n = this.index.array , i = this.attributes; for (var r in i) { var o = t(i[r], n); e.setAttribute(r, o) } var a = this.morphAttributes; for (r in a) { for (var s = [], c = a[r], l = 0, u = c.length; l < u; l++) { o = t(c[l], n); s.push(o) } e.morphAttributes[r] = s } e.morphTargetsRelative = this.morphTargetsRelative; for (var d = this.groups, p = (l = 0, d.length); l < p; l++) { var h = d[l]; e.addGroup(h.start, h.count, h.materialIndex) } return e }, toJSON: function() { var t = { metadata: { version: 4.5, type: "BufferGeometry", generator: "BufferGeometry.toJSON" } }; if (t.uuid = this.uuid, t.type = this.type, "" !== this.name && (t.name = this.name), Object.keys(this.userData).length > 0 && (t.userData = this.userData), void 0 !== this.parameters) { var e = this.parameters; for (var n in e) void 0 !== e[n] && (t[n] = e[n]); return t } t.data = { attributes: {} }; var i = this.index; null !== i && (t.data.index = { type: i.array.constructor.name, array: Array.prototype.slice.call(i.array) }); var r = this.attributes; for (var n in r) { var o = (p = r[n]).toJSON(); "" !== p.name && (o.name = p.name), t.data.attributes[n] = o } var a = {} , s = !1; for (var n in this.morphAttributes) { for (var c = this.morphAttributes[n], l = [], u = 0, d = c.length; u < d; u++) { var p; o = (p = c[u]).toJSON(); "" !== p.name && (o.name = p.name), l.push(o) } l.length > 0 && (a[n] = l, s = !0) } s && (t.data.morphAttributes = a, t.data.morphTargetsRelative = this.morphTargetsRelative); var h = this.groups; h.length > 0 && (t.data.groups = JSON.parse(JSON.stringify(h))); var f = this.boundingSphere; return null !== f && (t.data.boundingSphere = { center: f.center.toArray(), radius: f.radius }), t }, clone: function() { return (new Qr).copy(this) }, copy: function(t) { var e, n, i; this.index = null, this.attributes = {}, this.morphAttributes = {}, this.groups = [], this.boundingBox = null, this.boundingSphere = null, this.name = t.name; var r = t.index; null !== r && this.setIndex(r.clone()); var o = t.attributes; for (e in o) { var a = o[e]; this.setAttribute(e, a.clone()) } var s = t.morphAttributes; for (e in s) { var c = [] , l = s[e]; for (n = 0, i = l.length; n < i; n++) c.push(l[n].clone()); this.morphAttributes[e] = c } this.morphTargetsRelative = t.morphTargetsRelative; var u = t.groups; for (n = 0, i = u.length; n < i; n++) { var d = u[n]; this.addGroup(d.start, d.count, d.materialIndex) } var p = t.boundingBox; null !== p && (this.boundingBox = p.clone()); var h = t.boundingSphere; return null !== h && (this.boundingSphere = h.clone()), this.drawRange.start = t.drawRange.start, this.drawRange.count = t.drawRange.count, this.userData = t.userData, this }, dispose: function() { this.dispatchEvent({ type: "dispose" }) } }); var $r = new mi , to = new or , eo = new Ji , no = new si , io = new si , ro = new si , oo = new si , ao = new si , so = new si , co = new si , lo = new si , uo = new si , po = new Zn , ho = new Zn , fo = new Zn , mo = new si , go = new si; function vo(t, e) { Di.call(this), this.type = "Mesh", this.geometry = void 0 !== t ? t : new Qr, this.material = void 0 !== e ? e : new Ir, this.updateMorphTargets() } function yo(t, e, n, i, r, o, a, s) { if (null === (e.side === T ? i.intersectTriangle(a, o, r, !0, s) : i.intersectTriangle(r, o, a, e.side !== O, s))) return null; go.copy(s), go.applyMatrix4(t.matrixWorld); var c = n.ray.origin.distanceTo(go); return c < n.near || c > n.far ? null : { distance: c, point: go.clone(), object: t } } function bo(t, e, n, i, r, o, a, s, c, l, u, d) { no.fromBufferAttribute(r, l), io.fromBufferAttribute(r, u), ro.fromBufferAttribute(r, d); var p = t.morphTargetInfluences; if (e.morphTargets && o && p) { co.set(0, 0, 0), lo.set(0, 0, 0), uo.set(0, 0, 0); for (var h = 0, f = o.length; h < f; h++) { var m = p[h] , g = o[h]; 0 !== m && (oo.fromBufferAttribute(g, l), ao.fromBufferAttribute(g, u), so.fromBufferAttribute(g, d), a ? (co.addScaledVector(oo, m), lo.addScaledVector(ao, m), uo.addScaledVector(so, m)) : (co.addScaledVector(oo.sub(no), m), lo.addScaledVector(ao.sub(io), m), uo.addScaledVector(so.sub(ro), m))) } no.add(co), io.add(lo), ro.add(uo) } var v = yo(t, e, n, i, no, io, ro, mo); if (v) { s && (po.fromBufferAttribute(s, l), ho.fromBufferAttribute(s, u), fo.fromBufferAttribute(s, d), v.uv = wr.getUV(mo, no, io, ro, po, ho, fo, new Zn)), c && (po.fromBufferAttribute(c, l), ho.fromBufferAttribute(c, u), fo.fromBufferAttribute(c, d), v.uv2 = wr.getUV(mo, no, io, ro, po, ho, fo, new Zn)); var y = new Or(l,u,d); wr.getNormal(no, io, ro, y.normal), v.face = y } return v } vo.prototype = Object.assign(Object.create(Di.prototype), { constructor: vo, isMesh: !0, copy: function(t) { return Di.prototype.copy.call(this, t), void 0 !== t.morphTargetInfluences && (this.morphTargetInfluences = t.morphTargetInfluences.slice()), void 0 !== t.morphTargetDictionary && (this.morphTargetDictionary = Object.assign({}, t.morphTargetDictionary)), this }, updateMorphTargets: function() { var t, e, n, i = this.geometry; if (i.isBufferGeometry) { var r = i.morphAttributes , o = Object.keys(r); if (o.length > 0) { var a = r[o[0]]; if (void 0 !== a) for (this.morphTargetInfluences = [], this.morphTargetDictionary = {}, t = 0, e = a.length; t < e; t++) n = a[t].name || String(t), this.morphTargetInfluences.push(0), this.morphTargetDictionary[n] = t } } else { var s = i.morphTargets; void 0 !== s && s.length > 0 && console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.") } }, raycast: function(t, e) { var n, i = this.geometry, r = this.material, o = this.matrixWorld; if (void 0 !== r && (null === i.boundingSphere && i.computeBoundingSphere(), eo.copy(i.boundingSphere), eo.applyMatrix4(o), !1 !== t.ray.intersectsSphere(eo) && ($r.getInverse(o), to.copy(t.ray).applyMatrix4($r), null === i.boundingBox || !1 !== to.intersectsBox(i.boundingBox)))) if (i.isBufferGeometry) { var a, s, c, l, u, d, p, h, f, m = i.index, g = i.attributes.position, v = i.morphAttributes.position, y = i.morphTargetsRelative, b = i.attributes.uv, w = i.attributes.uv2, S = i.groups, x = i.drawRange; if (null !== m) if (Array.isArray(r)) for (l = 0, d = S.length; l < d; l++) for (f = r[(h = S[l]).materialIndex], u = Math.max(h.start, x.start), p = Math.min(h.start + h.count, x.start + x.count); u < p; u += 3) a = m.getX(u), s = m.getX(u + 1), c = m.getX(u + 2), (n = bo(this, f, t, to, g, v, y, b, w, a, s, c)) && (n.faceIndex = Math.floor(u / 3), n.face.materialIndex = h.materialIndex, e.push(n)); else for (l = Math.max(0, x.start), d = Math.min(m.count, x.start + x.count); l < d; l += 3) a = m.getX(l), s = m.getX(l + 1), c = m.getX(l + 2), (n = bo(this, r, t, to, g, v, y, b, w, a, s, c)) && (n.faceIndex = Math.floor(l / 3), e.push(n)); else if (void 0 !== g) if (Array.isArray(r)) for (l = 0, d = S.length; l < d; l++) for (f = r[(h = S[l]).materialIndex], u = Math.max(h.start, x.start), p = Math.min(h.start + h.count, x.start + x.count); u < p; u += 3) (n = bo(this, f, t, to, g, v, y, b, w, a = u, s = u + 1, c = u + 2)) && (n.faceIndex = Math.floor(u / 3), n.face.materialIndex = h.materialIndex, e.push(n)); else for (l = Math.max(0, x.start), d = Math.min(g.count, x.start + x.count); l < d; l += 3) (n = bo(this, r, t, to, g, v, y, b, w, a = l, s = l + 1, c = l + 2)) && (n.faceIndex = Math.floor(l / 3), e.push(n)) } else if (i.isGeometry) { var M, E, C, A, T = Array.isArray(r), O = i.vertices, _ = i.faces, P = i.faceVertexUvs[0]; P.length > 0 && (A = P); for (var I = 0, k = _.length; I < k; I++) { var D = _[I] , R = T ? r[D.materialIndex] : r; if (void 0 !== R && (M = O[D.a], E = O[D.b], C = O[D.c], n = yo(this, R, t, to, M, E, C, mo))) { if (A && A[I]) { var L = A[I]; po.copy(L[0]), ho.copy(L[1]), fo.copy(L[2]), n.uv = wr.getUV(mo, M, E, C, po, ho, fo, new Zn) } n.face = D, n.faceIndex = I, e.push(n) } } } }, clone: function() { return new this.constructor(this.geometry,this.material).copy(this) } }); var wo = 0 , So = new mi , xo = new Di , Mo = new si; function Eo() { Object.defineProperty(this, "id", { value: wo += 2 }), this.uuid = Kn.generateUUID(), this.name = "", this.type = "Geometry", this.vertices = [], this.colors = [], this.faces = [], this.faceVertexUvs = [[]], this.morphTargets = [], this.morphNormals = [], this.skinWeights = [], this.skinIndices = [], this.lineDistances = [], this.boundingBox = null, this.boundingSphere = null, this.elementsNeedUpdate = !1, this.verticesNeedUpdate = !1, this.uvsNeedUpdate = !1, this.normalsNeedUpdate = !1, this.colorsNeedUpdate = !1, this.lineDistancesNeedUpdate = !1, this.groupsNeedUpdate = !1 } Eo.prototype = Object.assign(Object.create(Wn.prototype), { constructor: Eo, isGeometry: !0, applyMatrix4: function(t) { for (var e = (new Jn).getNormalMatrix(t), n = 0, i = this.vertices.length; n < i; n++) { this.vertices[n].applyMatrix4(t) } for (n = 0, i = this.faces.length; n < i; n++) { var r = this.faces[n]; r.normal.applyMatrix3(e).normalize(); for (var o = 0, a = r.vertexNormals.length; o < a; o++) r.vertexNormals[o].applyMatrix3(e).normalize() } return null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), this.verticesNeedUpdate = !0, this.normalsNeedUpdate = !0, this }, rotateX: function(t) { return So.makeRotationX(t), this.applyMatrix4(So), this }, rotateY: function(t) { return So.makeRotationY(t), this.applyMatrix4(So), this }, rotateZ: function(t) { return So.makeRotationZ(t), this.applyMatrix4(So), this }, translate: function(t, e, n) { return So.makeTranslation(t, e, n), this.applyMatrix4(So), this }, scale: function(t, e, n) { return So.makeScale(t, e, n), this.applyMatrix4(So), this }, lookAt: function(t) { return xo.lookAt(t), xo.updateMatrix(), this.applyMatrix4(xo.matrix), this }, fromBufferGeometry: function(t) { var e = this , n = null !== t.index ? t.index.array : void 0 , i = t.attributes; if (void 0 === i.position) return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."), this; var r = i.position.array , o = void 0 !== i.normal ? i.normal.array : void 0 , a = void 0 !== i.color ? i.color.array : void 0 , s = void 0 !== i.uv ? i.uv.array : void 0 , c = void 0 !== i.uv2 ? i.uv2.array : void 0; void 0 !== c && (this.faceVertexUvs[1] = []); for (var l = 0; l < r.length; l += 3) e.vertices.push((new si).fromArray(r, l)), void 0 !== a && e.colors.push((new Er).fromArray(a, l)); function u(t, n, i, r) { var l = void 0 === a ? [] : [e.colors[t].clone(), e.colors[n].clone(), e.colors[i].clone()] , u = new Or(t,n,i,void 0 === o ? [] : [(new si).fromArray(o, 3 * t), (new si).fromArray(o, 3 * n), (new si).fromArray(o, 3 * i)],l,r); e.faces.push(u), void 0 !== s && e.faceVertexUvs[0].push([(new Zn).fromArray(s, 2 * t), (new Zn).fromArray(s, 2 * n), (new Zn).fromArray(s, 2 * i)]), void 0 !== c && e.faceVertexUvs[1].push([(new Zn).fromArray(c, 2 * t), (new Zn).fromArray(c, 2 * n), (new Zn).fromArray(c, 2 * i)]) } var d = t.groups; if (d.length > 0) for (l = 0; l < d.length; l++) for (var p = d[l], h = p.start, f = h, m = h + p.count; f < m; f += 3) void 0 !== n ? u(n[f], n[f + 1], n[f + 2], p.materialIndex) : u(f, f + 1, f + 2, p.materialIndex); else if (void 0 !== n) for (l = 0; l < n.length; l += 3) u(n[l], n[l + 1], n[l + 2]); else for (l = 0; l < r.length / 3; l += 3) u(l, l + 1, l + 2); return this.computeFaceNormals(), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), this }, center: function() { return this.computeBoundingBox(), this.boundingBox.getCenter(Mo).negate(), this.translate(Mo.x, Mo.y, Mo.z), this }, normalize: function() { this.computeBoundingSphere(); var t = this.boundingSphere.center , e = this.boundingSphere.radius , n = 0 === e ? 1 : 1 / e , i = new mi; return i.set(n, 0, 0, -n * t.x, 0, n, 0, -n * t.y, 0, 0, n, -n * t.z, 0, 0, 0, 1), this.applyMatrix4(i), this }, computeFaceNormals: function() { for (var t = new si, e = new si, n = 0, i = this.faces.length; n < i; n++) { var r = this.faces[n] , o = this.vertices[r.a] , a = this.vertices[r.b] , s = this.vertices[r.c]; t.subVectors(s, a), e.subVectors(o, a), t.cross(e), t.normalize(), r.normal.copy(t) } }, computeVertexNormals: function(t) { var e, n, i, r, o, a; for (void 0 === t && (t = !0), a = new Array(this.vertices.length), e = 0, n = this.vertices.length; e < n; e++) a[e] = new si; if (t) { var s, c, l, u = new si, d = new si; for (i = 0, r = this.faces.length; i < r; i++) o = this.faces[i], s = this.vertices[o.a], c = this.vertices[o.b], l = this.vertices[o.c], u.subVectors(l, c), d.subVectors(s, c), u.cross(d), a[o.a].add(u), a[o.b].add(u), a[o.c].add(u) } else for (this.computeFaceNormals(), i = 0, r = this.faces.length; i < r; i++) a[(o = this.faces[i]).a].add(o.normal), a[o.b].add(o.normal), a[o.c].add(o.normal); for (e = 0, n = this.vertices.length; e < n; e++) a[e].normalize(); for (i = 0, r = this.faces.length; i < r; i++) { var p = (o = this.faces[i]).vertexNormals; 3 === p.length ? (p[0].copy(a[o.a]), p[1].copy(a[o.b]), p[2].copy(a[o.c])) : (p[0] = a[o.a].clone(), p[1] = a[o.b].clone(), p[2] = a[o.c].clone()) } this.faces.length > 0 && (this.normalsNeedUpdate = !0) }, computeFlatVertexNormals: function() { var t, e, n; for (this.computeFaceNormals(), t = 0, e = this.faces.length; t < e; t++) { var i = (n = this.faces[t]).vertexNormals; 3 === i.length ? (i[0].copy(n.normal), i[1].copy(n.normal), i[2].copy(n.normal)) : (i[0] = n.normal.clone(), i[1] = n.normal.clone(), i[2] = n.normal.clone()) } this.faces.length > 0 && (this.normalsNeedUpdate = !0) }, computeMorphNormals: function() { var t, e, n, i, r; for (n = 0, i = this.faces.length; n < i; n++) for ((r = this.faces[n]).__originalFaceNormal ? r.__originalFaceNormal.copy(r.normal) : r.__originalFaceNormal = r.normal.clone(), r.__originalVertexNormals || (r.__originalVertexNormals = []), t = 0, e = r.vertexNormals.length; t < e; t++) r.__originalVertexNormals[t] ? r.__originalVertexNormals[t].copy(r.vertexNormals[t]) : r.__originalVertexNormals[t] = r.vertexNormals[t].clone(); var o = new Eo; for (o.faces = this.faces, t = 0, e = this.morphTargets.length; t < e; t++) { if (!this.morphNormals[t]) { this.morphNormals[t] = {}, this.morphNormals[t].faceNormals = [], this.morphNormals[t].vertexNormals = []; var a = this.morphNormals[t].faceNormals , s = this.morphNormals[t].vertexNormals; for (n = 0, i = this.faces.length; n < i; n++) c = new si, l = { a: new si, b: new si, c: new si }, a.push(c), s.push(l) } var c, l, u = this.morphNormals[t]; for (o.vertices = this.morphTargets[t].vertices, o.computeFaceNormals(), o.computeVertexNormals(), n = 0, i = this.faces.length; n < i; n++) r = this.faces[n], c = u.faceNormals[n], l = u.vertexNormals[n], c.copy(r.normal), l.a.copy(r.vertexNormals[0]), l.b.copy(r.vertexNormals[1]), l.c.copy(r.vertexNormals[2]) } for (n = 0, i = this.faces.length; n < i; n++) (r = this.faces[n]).normal = r.__originalFaceNormal, r.vertexNormals = r.__originalVertexNormals }, computeBoundingBox: function() { null === this.boundingBox && (this.boundingBox = new Yi), this.boundingBox.setFromPoints(this.vertices) }, computeBoundingSphere: function() { null === this.boundingSphere && (this.boundingSphere = new Ji), this.boundingSphere.setFromPoints(this.vertices) }, merge: function(t, e, n) { if (t && t.isGeometry) { var i, r = this.vertices.length, o = this.vertices, a = t.vertices, s = this.faces, c = t.faces, l = this.colors, u = t.colors; void 0 === n && (n = 0), void 0 !== e && (i = (new Jn).getNormalMatrix(e)); for (var d = 0, p = a.length; d < p; d++) { var h = a[d].clone(); void 0 !== e && h.applyMatrix4(e), o.push(h) } for (d = 0, p = u.length; d < p; d++) l.push(u[d].clone()); for (d = 0, p = c.length; d < p; d++) { var f, m, g, v = c[d], y = v.vertexNormals, b = v.vertexColors; (f = new Or(v.a + r,v.b + r,v.c + r)).normal.copy(v.normal), void 0 !== i && f.normal.applyMatrix3(i).normalize(); for (var w = 0, S = y.length; w < S; w++) m = y[w].clone(), void 0 !== i && m.applyMatrix3(i).normalize(), f.vertexNormals.push(m); f.color.copy(v.color); for (w = 0, S = b.length; w < S; w++) g = b[w], f.vertexColors.push(g.clone()); f.materialIndex = v.materialIndex + n, s.push(f) } for (d = 0, p = t.faceVertexUvs.length; d < p; d++) { var x = t.faceVertexUvs[d]; void 0 === this.faceVertexUvs[d] && (this.faceVertexUvs[d] = []); for (w = 0, S = x.length; w < S; w++) { for (var M = x[w], E = [], C = 0, A = M.length; C < A; C++) E.push(M[C].clone()); this.faceVertexUvs[d].push(E) } } } else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.", t) }, mergeMesh: function(t) { t && t.isMesh ? (t.matrixAutoUpdate && t.updateMatrix(), this.merge(t.geometry, t.matrix)) : console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.", t) }, mergeVertices: function() { var t, e, n, i, r, o, a, s, c = {}, l = [], u = [], d = Math.pow(10, 4); for (n = 0, i = this.vertices.length; n < i; n++) t = this.vertices[n], void 0 === c[e = Math.round(t.x * d) + "_" + Math.round(t.y * d) + "_" + Math.round(t.z * d)] ? (c[e] = n, l.push(this.vertices[n]), u[n] = l.length - 1) : u[n] = u[c[e]]; var p = []; for (n = 0, i = this.faces.length; n < i; n++) { (r = this.faces[n]).a = u[r.a], r.b = u[r.b], r.c = u[r.c], o = [r.a, r.b, r.c]; for (var h = 0; h < 3; h++) if (o[h] === o[(h + 1) % 3]) { p.push(n); break } } for (n = p.length - 1; n >= 0; n--) { var f = p[n]; for (this.faces.splice(f, 1), a = 0, s = this.faceVertexUvs.length; a < s; a++) this.faceVertexUvs[a].splice(f, 1) } var m = this.vertices.length - l.length; return this.vertices = l, m }, setFromPoints: function(t) { this.vertices = []; for (var e = 0, n = t.length; e < n; e++) { var i = t[e]; this.vertices.push(new si(i.x,i.y,i.z || 0)) } return this }, sortFacesByMaterialIndex: function() { for (var t = this.faces, e = t.length, n = 0; n < e; n++) t[n]._id = n; t.sort((function(t, e) { return t.materialIndex - e.materialIndex } )); var i, r, o = this.faceVertexUvs[0], a = this.faceVertexUvs[1]; o && o.length === e && (i = []), a && a.length === e && (r = []); for (n = 0; n < e; n++) { var s = t[n]._id; i && i.push(o[s]), r && r.push(a[s]) } i && (this.faceVertexUvs[0] = i), r && (this.faceVertexUvs[1] = r) }, toJSON: function() { var t = { metadata: { version: 4.5, type: "Geometry", generator: "Geometry.toJSON" } }; if (t.uuid = this.uuid, t.type = this.type, "" !== this.name && (t.name = this.name), void 0 !== this.parameters) { var e = this.parameters; for (var n in e) void 0 !== e[n] && (t[n] = e[n]); return t } for (var i = [], r = 0; r < this.vertices.length; r++) { var o = this.vertices[r]; i.push(o.x, o.y, o.z) } var a = [] , s = [] , c = {} , l = [] , u = {} , d = [] , p = {}; for (r = 0; r < this.faces.length; r++) { var h = this.faces[r] , f = void 0 !== this.faceVertexUvs[0][r] , m = h.normal.length() > 0 , g = h.vertexNormals.length > 0 , v = 1 !== h.color.r || 1 !== h.color.g || 1 !== h.color.b , y = h.vertexColors.length > 0 , b = 0; if (b = M(b, 0, 0), b = M(b, 1, !0), b = M(b, 2, !1), b = M(b, 3, f), b = M(b, 4, m), b = M(b, 5, g), b = M(b, 6, v), b = M(b, 7, y), a.push(b), a.push(h.a, h.b, h.c), a.push(h.materialIndex), f) { var w = this.faceVertexUvs[0][r]; a.push(A(w[0]), A(w[1]), A(w[2])) } if (m && a.push(E(h.normal)), g) { var S = h.vertexNormals; a.push(E(S[0]), E(S[1]), E(S[2])) } if (v && a.push(C(h.color)), y) { var x = h.vertexColors; a.push(C(x[0]), C(x[1]), C(x[2])) } } function M(t, e, n) { return n ? t | 1 << e : t & ~(1 << e) } function E(t) { var e = t.x.toString() + t.y.toString() + t.z.toString(); return void 0 !== c[e] || (c[e] = s.length / 3, s.push(t.x, t.y, t.z)), c[e] } function C(t) { var e = t.r.toString() + t.g.toString() + t.b.toString(); return void 0 !== u[e] || (u[e] = l.length, l.push(t.getHex())), u[e] } function A(t) { var e = t.x.toString() + t.y.toString(); return void 0 !== p[e] || (p[e] = d.length / 2, d.push(t.x, t.y)), p[e] } return t.data = {}, t.data.vertices = i, t.data.normals = s, l.length > 0 && (t.data.colors = l), d.length > 0 && (t.data.uvs = [d]), t.data.faces = a, t }, clone: function() { return (new Eo).copy(this) }, copy: function(t) { var e, n, i, r, o, a; this.vertices = [], this.colors = [], this.faces = [], this.faceVertexUvs = [[]], this.morphTargets = [], this.morphNormals = [], this.skinWeights = [], this.skinIndices = [], this.lineDistances = [], this.boundingBox = null, this.boundingSphere = null, this.name = t.name; var s = t.vertices; for (e = 0, n = s.length; e < n; e++) this.vertices.push(s[e].clone()); var c = t.colors; for (e = 0, n = c.length; e < n; e++) this.colors.push(c[e].clone()); var l = t.faces; for (e = 0, n = l.length; e < n; e++) this.faces.push(l[e].clone()); for (e = 0, n = t.faceVertexUvs.length; e < n; e++) { var u = t.faceVertexUvs[e]; for (void 0 === this.faceVertexUvs[e] && (this.faceVertexUvs[e] = []), i = 0, r = u.length; i < r; i++) { var d = u[i] , p = []; for (o = 0, a = d.length; o < a; o++) { var h = d[o]; p.push(h.clone()) } this.faceVertexUvs[e].push(p) } } var f = t.morphTargets; for (e = 0, n = f.length; e < n; e++) { var m = {}; if (m.name = f[e].name, void 0 !== f[e].vertices) for (m.vertices = [], i = 0, r = f[e].vertices.length; i < r; i++) m.vertices.push(f[e].vertices[i].clone()); if (void 0 !== f[e].normals) for (m.normals = [], i = 0, r = f[e].normals.length; i < r; i++) m.normals.push(f[e].normals[i].clone()); this.morphTargets.push(m) } var g = t.morphNormals; for (e = 0, n = g.length; e < n; e++) { var v = {}; if (void 0 !== g[e].vertexNormals) for (v.vertexNormals = [], i = 0, r = g[e].vertexNormals.length; i < r; i++) { var y = g[e].vertexNormals[i] , b = {}; b.a = y.a.clone(), b.b = y.b.clone(), b.c = y.c.clone(), v.vertexNormals.push(b) } if (void 0 !== g[e].faceNormals) for (v.faceNormals = [], i = 0, r = g[e].faceNormals.length; i < r; i++) v.faceNormals.push(g[e].faceNormals[i].clone()); this.morphNormals.push(v) } var w = t.skinWeights; for (e = 0, n = w.length; e < n; e++) this.skinWeights.push(w[e].clone()); var S = t.skinIndices; for (e = 0, n = S.length; e < n; e++) this.skinIndices.push(S[e].clone()); var x = t.lineDistances; for (e = 0, n = x.length; e < n; e++) this.lineDistances.push(x[e]); var M = t.boundingBox; null !== M && (this.boundingBox = M.clone()); var E = t.boundingSphere; return null !== E && (this.boundingSphere = E.clone()), this.elementsNeedUpdate = t.elementsNeedUpdate, this.verticesNeedUpdate = t.verticesNeedUpdate, this.uvsNeedUpdate = t.uvsNeedUpdate, this.normalsNeedUpdate = t.normalsNeedUpdate, this.colorsNeedUpdate = t.colorsNeedUpdate, this.lineDistancesNeedUpdate = t.lineDistancesNeedUpdate, this.groupsNeedUpdate = t.groupsNeedUpdate, this }, dispose: function() { this.dispatchEvent({ type: "dispose" }) } }); var Co = function(t) { s(n, t); var e = l(n); function n(t, i, r, o, s, c) { var l; return a(this, n), (l = e.call(this)).type = "BoxGeometry", l.parameters = { width: t, height: i, depth: r, widthSegments: o, heightSegments: s, depthSegments: c }, l.fromBufferGeometry(new Ao(t,i,r,o,s,c)), l.mergeVertices(), l } return n }(Eo) , Ao = function(t) { s(n, t); var e = l(n); function n(t, i, r, o, s, c) { var l; a(this, n), (l = e.call(this)).type = "BoxBufferGeometry", l.parameters = { width: t, height: i, depth: r, widthSegments: o, heightSegments: s, depthSegments: c }; var u = d(l); t = t || 1, i = i || 1, r = r || 1, o = Math.floor(o) || 1, s = Math.floor(s) || 1, c = Math.floor(c) || 1; var p = [] , h = [] , f = [] , m = [] , g = 0 , v = 0; function y(t, e, n, i, r, o, a, s, c, l, d) { var y, b, w = o / c, S = a / l, x = o / 2, M = a / 2, E = s / 2, C = c + 1, A = l + 1, T = 0, O = 0, _ = new si; for (b = 0; b < A; b++) { var P = b * S - M; for (y = 0; y < C; y++) { var I = y * w - x; _[t] = I * i, _[e] = P * r, _[n] = E, h.push(_.x, _.y, _.z), _[t] = 0, _[e] = 0, _[n] = s > 0 ? 1 : -1, f.push(_.x, _.y, _.z), m.push(y / c), m.push(1 - b / l), T += 1 } } for (b = 0; b < l; b++) for (y = 0; y < c; y++) { var k = g + y + C * b , D = g + y + C * (b + 1) , R = g + (y + 1) + C * (b + 1) , L = g + (y + 1) + C * b; p.push(k, D, L), p.push(D, R, L), O += 6 } u.addGroup(v, O, d), v += O, g += T } return y("z", "y", "x", -1, -1, r, i, t, c, s, 0), y("z", "y", "x", 1, -1, r, i, -t, c, s, 1), y("x", "z", "y", 1, 1, t, r, i, o, c, 2), y("x", "z", "y", 1, -1, t, r, -i, o, c, 3), y("x", "y", "z", 1, -1, t, i, r, o, s, 4), y("x", "y", "z", -1, -1, t, i, -r, o, s, 5), l.setIndex(p), l.setAttribute("position", new Br(h,3)), l.setAttribute("normal", new Br(f,3)), l.setAttribute("uv", new Br(m,2)), l } return n }(Qr); function To(t) { var e = {}; for (var n in t) for (var i in e[n] = {}, t[n]) { var r = t[n][i]; r && (r.isColor || r.isMatrix3 || r.isMatrix4 || r.isVector2 || r.isVector3 || r.isVector4 || r.isTexture) ? e[n][i] = r.clone() : Array.isArray(r) ? e[n][i] = r.slice() : e[n][i] = r } return e } function Oo(t) { for (var e = {}, n = 0; n < t.length; n++) { var i = To(t[n]); for (var r in i) e[r] = i[r] } return e } var _o = { clone: To, merge: Oo }; function Po(t) { Pr.call(this), this.type = "ShaderMaterial", this.defines = {}, this.uniforms = {}, this.vertexShader = "void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}", this.fragmentShader = "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}", this.linewidth = 1, this.wireframe = !1, this.wireframeLinewidth = 1, this.fog = !1, this.lights = !1, this.clipping = !1, this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.extensions = { derivatives: !1, fragDepth: !1, drawBuffers: !1, shaderTextureLOD: !1 }, this.defaultAttributeValues = { color: [1, 1, 1], uv: [0, 0], uv2: [0, 0] }, this.index0AttributeName = void 0, this.uniformsNeedUpdate = !1, void 0 !== t && (void 0 !== t.attributes && console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."), this.setValues(t)) } function Io() { Di.call(this), this.type = "Camera", this.matrixWorldInverse = new mi, this.projectionMatrix = new mi, this.projectionMatrixInverse = new mi } function ko(t, e, n, i) { Io.call(this), this.type = "PerspectiveCamera", this.fov = void 0 !== t ? t : 50, this.zoom = 1, this.near = void 0 !== n ? n : .1, this.far = void 0 !== i ? i : 2e3, this.focus = 10, this.aspect = void 0 !== e ? e : 1, this.view = null, this.filmGauge = 35, this.filmOffset = 0, this.updateProjectionMatrix() } Po.prototype = Object.create(Pr.prototype), Po.prototype.constructor = Po, Po.prototype.isShaderMaterial = !0, Po.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.fragmentShader = t.fragmentShader, this.vertexShader = t.vertexShader, this.uniforms = To(t.uniforms), this.defines = Object.assign({}, t.defines), this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.lights = t.lights, this.clipping = t.clipping, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this.extensions = t.extensions, this } , Po.prototype.toJSON = function(t) { var e = Pr.prototype.toJSON.call(this, t); for (var n in e.uniforms = {}, this.uniforms) { var i = this.uniforms[n].value; i && i.isTexture ? e.uniforms[n] = { type: "t", value: i.toJSON(t).uuid } : i && i.isColor ? e.uniforms[n] = { type: "c", value: i.getHex() } : i && i.isVector2 ? e.uniforms[n] = { type: "v2", value: i.toArray() } : i && i.isVector3 ? e.uniforms[n] = { type: "v3", value: i.toArray() } : i && i.isVector4 ? e.uniforms[n] = { type: "v4", value: i.toArray() } : i && i.isMatrix3 ? e.uniforms[n] = { type: "m3", value: i.toArray() } : i && i.isMatrix4 ? e.uniforms[n] = { type: "m4", value: i.toArray() } : e.uniforms[n] = { value: i } } Object.keys(this.defines).length > 0 && (e.defines = this.defines), e.vertexShader = this.vertexShader, e.fragmentShader = this.fragmentShader; var r = {}; for (var o in this.extensions) !0 === this.extensions[o] && (r[o] = !0); return Object.keys(r).length > 0 && (e.extensions = r), e } , Io.prototype = Object.assign(Object.create(Di.prototype), { constructor: Io, isCamera: !0, copy: function(t, e) { return Di.prototype.copy.call(this, t, e), this.matrixWorldInverse.copy(t.matrixWorldInverse), this.projectionMatrix.copy(t.projectionMatrix), this.projectionMatrixInverse.copy(t.projectionMatrixInverse), this }, getWorldDirection: function(t) { void 0 === t && (console.warn("THREE.Camera: .getWorldDirection() target is now required"), t = new si), this.updateMatrixWorld(!0); var e = this.matrixWorld.elements; return t.set(-e[8], -e[9], -e[10]).normalize() }, updateMatrixWorld: function(t) { Di.prototype.updateMatrixWorld.call(this, t), this.matrixWorldInverse.getInverse(this.matrixWorld) }, updateWorldMatrix: function(t, e) { Di.prototype.updateWorldMatrix.call(this, t, e), this.matrixWorldInverse.getInverse(this.matrixWorld) }, clone: function() { return (new this.constructor).copy(this) } }), ko.prototype = Object.assign(Object.create(Io.prototype), { constructor: ko, isPerspectiveCamera: !0, copy: function(t, e) { return Io.prototype.copy.call(this, 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 = null === t.view ? null : Object.assign({}, t.view), this.filmGauge = t.filmGauge, this.filmOffset = t.filmOffset, this }, setFocalLength: function(t) { var e = .5 * this.getFilmHeight() / t; this.fov = 2 * Kn.RAD2DEG * Math.atan(e), this.updateProjectionMatrix() }, getFocalLength: function() { var t = Math.tan(.5 * Kn.DEG2RAD * this.fov); return .5 * this.getFilmHeight() / t }, getEffectiveFOV: function() { return 2 * Kn.RAD2DEG * Math.atan(Math.tan(.5 * Kn.DEG2RAD * this.fov) / this.zoom) }, getFilmWidth: function() { return this.filmGauge * Math.min(this.aspect, 1) }, getFilmHeight: function() { return this.filmGauge / Math.max(this.aspect, 1) }, setViewOffset: function(t, e, n, i, r, o) { this.aspect = t / e, null === this.view && (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 = r, this.view.height = o, this.updateProjectionMatrix() }, clearViewOffset: function() { null !== this.view && (this.view.enabled = !1), this.updateProjectionMatrix() }, updateProjectionMatrix: function() { var t = this.near , e = t * Math.tan(.5 * Kn.DEG2RAD * this.fov) / this.zoom , n = 2 * e , i = this.aspect * n , r = -.5 * i , o = this.view; if (null !== this.view && this.view.enabled) { var a = o.fullWidth , s = o.fullHeight; r += o.offsetX * i / a, e -= o.offsetY * n / s, i *= o.width / a, n *= o.height / s } var c = this.filmOffset; 0 !== c && (r += t * c / this.getFilmWidth()), this.projectionMatrix.makePerspective(r, r + i, e, e - n, t, this.far), this.projectionMatrixInverse.getInverse(this.projectionMatrix) }, toJSON: function(t) { var e = Di.prototype.toJSON.call(this, 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, null !== this.view && (e.object.view = Object.assign({}, this.view)), e.object.filmGauge = this.filmGauge, e.object.filmOffset = this.filmOffset, e } }); function Do(t, e, n, i) { Di.call(this), this.type = "CubeCamera"; var r = new ko(90,1,t,e); r.up.set(0, -1, 0), r.lookAt(new si(1,0,0)), this.add(r); var o = new ko(90,1,t,e); o.up.set(0, -1, 0), o.lookAt(new si(-1,0,0)), this.add(o); var a = new ko(90,1,t,e); a.up.set(0, 0, 1), a.lookAt(new si(0,1,0)), this.add(a); var s = new ko(90,1,t,e); s.up.set(0, 0, -1), s.lookAt(new si(0,-1,0)), this.add(s); var c = new ko(90,1,t,e); c.up.set(0, -1, 0), c.lookAt(new si(0,0,1)), this.add(c); var l = new ko(90,1,t,e); l.up.set(0, -1, 0), l.lookAt(new si(0,0,-1)), this.add(l), i = i || { format: Zt, magFilter: kt, minFilter: kt }, this.renderTarget = new Ro(n,i), this.renderTarget.texture.name = "CubeCamera", this.update = function(t, e) { null === this.parent && this.updateMatrixWorld(); var n = t.getRenderTarget() , i = this.renderTarget , u = i.texture.generateMipmaps; i.texture.generateMipmaps = !1, t.setRenderTarget(i, 0), t.render(e, r), t.setRenderTarget(i, 1), t.render(e, o), t.setRenderTarget(i, 2), t.render(e, a), t.setRenderTarget(i, 3), t.render(e, s), t.setRenderTarget(i, 4), t.render(e, c), i.texture.generateMipmaps = u, t.setRenderTarget(i, 5), t.render(e, l), t.setRenderTarget(n) } , this.clear = function(t, e, n, i) { for (var r = t.getRenderTarget(), o = this.renderTarget, a = 0; a < 6; a++) t.setRenderTarget(o, a), t.clear(e, n, i); t.setRenderTarget(r) } } function Ro(t, e, n) { Number.isInteger(e) && (console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"), e = n), ni.call(this, t, t, e) } function Lo(t, e, n, i, r, o, a, s, c, l, u, d) { ti.call(this, null, o, a, s, c, l, i, r, u, d), this.image = { data: t || null, width: e || 1, height: n || 1 }, this.magFilter = void 0 !== c ? c : Tt, this.minFilter = void 0 !== l ? l : Tt, this.generateMipmaps = !1, this.flipY = !1, this.unpackAlignment = 1, this.needsUpdate = !0 } Do.prototype = Object.create(Di.prototype), Do.prototype.constructor = Do, Ro.prototype = Object.create(ni.prototype), Ro.prototype.constructor = Ro, Ro.prototype.isWebGLCubeRenderTarget = !0, Ro.prototype.fromEquirectangularTexture = function(t, e) { this.texture.type = e.type, this.texture.format = e.format, this.texture.encoding = e.encoding; var n = new Ri , i = { uniforms: { tEquirect: { value: null } }, vertexShader: ["varying vec3 vWorldDirection;", "vec3 transformDirection( in vec3 dir, in mat4 matrix ) {", "\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );", "}", "void main() {", "\tvWorldDirection = transformDirection( position, modelMatrix );", "\t#include ", "\t#include ", "}"].join("\n"), fragmentShader: ["uniform sampler2D tEquirect;", "varying vec3 vWorldDirection;", "#define RECIPROCAL_PI 0.31830988618", "#define RECIPROCAL_PI2 0.15915494", "void main() {", "\tvec3 direction = normalize( vWorldDirection );", "\tvec2 sampleUV;", "\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;", "\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;", "\tgl_FragColor = texture2D( tEquirect, sampleUV );", "}"].join("\n") } , r = new Po({ type: "CubemapFromEquirect", uniforms: To(i.uniforms), vertexShader: i.vertexShader, fragmentShader: i.fragmentShader, side: T, blending: I }); r.uniforms.tEquirect.value = e; var o = new vo(new Ao(5,5,5),r); n.add(o); var a = new Do(1,10,1); return a.renderTarget = this, a.renderTarget.texture.name = "CubeCameraTexture", a.update(t, n), o.geometry.dispose(), o.material.dispose(), this } , Lo.prototype = Object.create(ti.prototype), Lo.prototype.constructor = Lo, Lo.prototype.isDataTexture = !0; var No = new Ji , jo = new si; function Vo(t, e, n, i, r, o) { this.planes = [void 0 !== t ? t : new lr, void 0 !== e ? e : new lr, void 0 !== n ? n : new lr, void 0 !== i ? i : new lr, void 0 !== r ? r : new lr, void 0 !== o ? o : new lr] } Object.assign(Vo.prototype, { set: function(t, e, n, i, r, o) { var a = this.planes; return a[0].copy(t), a[1].copy(e), a[2].copy(n), a[3].copy(i), a[4].copy(r), a[5].copy(o), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { for (var e = this.planes, n = 0; n < 6; n++) e[n].copy(t.planes[n]); return this }, setFromProjectionMatrix: function(t) { var e = this.planes , n = t.elements , i = n[0] , r = n[1] , o = n[2] , a = n[3] , s = n[4] , c = n[5] , l = n[6] , u = n[7] , d = n[8] , p = n[9] , h = n[10] , f = n[11] , m = n[12] , g = n[13] , v = n[14] , y = n[15]; return e[0].setComponents(a - i, u - s, f - d, y - m).normalize(), e[1].setComponents(a + i, u + s, f + d, y + m).normalize(), e[2].setComponents(a + r, u + c, f + p, y + g).normalize(), e[3].setComponents(a - r, u - c, f - p, y - g).normalize(), e[4].setComponents(a - o, u - l, f - h, y - v).normalize(), e[5].setComponents(a + o, u + l, f + h, y + v).normalize(), this }, intersectsObject: function(t) { var e = t.geometry; return null === e.boundingSphere && e.computeBoundingSphere(), No.copy(e.boundingSphere).applyMatrix4(t.matrixWorld), this.intersectsSphere(No) }, intersectsSprite: function(t) { return No.center.set(0, 0, 0), No.radius = .7071067811865476, No.applyMatrix4(t.matrixWorld), this.intersectsSphere(No) }, intersectsSphere: function(t) { for (var e = this.planes, n = t.center, i = -t.radius, r = 0; r < 6; r++) { if (e[r].distanceToPoint(n) < i) return !1 } return !0 }, intersectsBox: function(t) { for (var e = this.planes, n = 0; n < 6; n++) { var i = e[n]; if (jo.x = i.normal.x > 0 ? t.max.x : t.min.x, jo.y = i.normal.y > 0 ? t.max.y : t.min.y, jo.z = i.normal.z > 0 ? t.max.z : t.min.z, i.distanceToPoint(jo) < 0) return !1 } return !0 }, containsPoint: function(t) { for (var e = this.planes, n = 0; n < 6; n++) if (e[n].distanceToPoint(t) < 0) return !1; return !0 } }); var Fo = { common: { diffuse: { value: new Er(15658734) }, opacity: { value: 1 }, map: { value: null }, uvTransform: { value: new Jn }, uv2Transform: { value: new Jn }, alphaMap: { value: null } }, specularmap: { specularMap: { value: null } }, envmap: { envMap: { value: null }, flipEnvMap: { value: -1 }, reflectivity: { value: 1 }, refractionRatio: { value: .98 }, maxMipLevel: { value: 0 } }, 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 Zn(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 Er(16777215) } }, lights: { ambientLightColor: { value: [] }, lightProbe: { value: [] }, directionalLights: { value: [], properties: { direction: {}, color: {} } }, directionalLightShadows: { value: [], properties: { shadowBias: {}, shadowRadius: {}, shadowMapSize: {} } }, directionalShadowMap: { value: [] }, directionalShadowMatrix: { value: [] }, spotLights: { value: [], properties: { color: {}, position: {}, direction: {}, distance: {}, coneCos: {}, penumbraCos: {}, decay: {} } }, spotLightShadows: { value: [], properties: { shadowBias: {}, shadowRadius: {}, shadowMapSize: {} } }, spotShadowMap: { value: [] }, spotShadowMatrix: { value: [] }, pointLights: { value: [], properties: { color: {}, position: {}, decay: {}, distance: {} } }, pointLightShadows: { value: [], properties: { shadowBias: {}, shadowRadius: {}, shadowMapSize: {}, shadowCameraNear: {}, shadowCameraFar: {} } }, pointShadowMap: { value: [] }, pointShadowMatrix: { value: [] }, hemisphereLights: { value: [], properties: { direction: {}, skyColor: {}, groundColor: {} } }, rectAreaLights: { value: [], properties: { color: {}, position: {}, width: {}, height: {} } } }, points: { diffuse: { value: new Er(15658734) }, opacity: { value: 1 }, size: { value: 1 }, scale: { value: 1 }, map: { value: null }, alphaMap: { value: null }, uvTransform: { value: new Jn } }, sprite: { diffuse: { value: new Er(15658734) }, opacity: { value: 1 }, center: { value: new Zn(.5,.5) }, rotation: { value: 0 }, map: { value: null }, alphaMap: { value: null }, uvTransform: { value: new Jn } } }; function Uo() { var t = null , e = !1 , n = null; function i(r, o) { !1 !== e && (n(r, o), t.requestAnimationFrame(i)) } return { start: function() { !0 !== e && null !== n && (t.requestAnimationFrame(i), e = !0) }, stop: function() { e = !1 }, setAnimationLoop: function(t) { n = t }, setContext: function(e) { t = e } } } function Bo(t, e) { var n = e.isWebGL2 , i = new WeakMap; return { get: function(t) { return t.isInterleavedBufferAttribute && (t = t.data), i.get(t) }, remove: function(e) { e.isInterleavedBufferAttribute && (e = e.data); var n = i.get(e); n && (t.deleteBuffer(n.buffer), i.delete(e)) }, update: function(e, r) { e.isInterleavedBufferAttribute && (e = e.data); var o = i.get(e); void 0 === o ? i.set(e, function(e, n) { var i = e.array , r = e.usage , o = t.createBuffer(); t.bindBuffer(n, o), t.bufferData(n, i, r), e.onUploadCallback(); var a = 5126; return i instanceof Float32Array ? a = 5126 : i instanceof Float64Array ? console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.") : i instanceof Uint16Array ? a = 5123 : i instanceof Int16Array ? a = 5122 : i instanceof Uint32Array ? a = 5125 : i instanceof Int32Array ? a = 5124 : i instanceof Int8Array ? a = 5120 : i instanceof Uint8Array && (a = 5121), { buffer: o, type: a, bytesPerElement: i.BYTES_PER_ELEMENT, version: e.version } }(e, r)) : o.version < e.version && (!function(e, i, r) { var o = i.array , a = i.updateRange; t.bindBuffer(r, e), -1 === a.count ? t.bufferSubData(r, 0, o) : (n ? t.bufferSubData(r, a.offset * o.BYTES_PER_ELEMENT, o, a.offset, a.count) : t.bufferSubData(r, a.offset * o.BYTES_PER_ELEMENT, o.subarray(a.offset, a.offset + a.count)), a.count = -1) }(o.buffer, e, r), o.version = e.version) } } } function zo(t, e, n, i) { Eo.call(this), this.type = "PlaneGeometry", this.parameters = { width: t, height: e, widthSegments: n, heightSegments: i }, this.fromBufferGeometry(new Go(t,e,n,i)), this.mergeVertices() } function Go(t, e, n, i) { Qr.call(this), this.type = "PlaneBufferGeometry", this.parameters = { width: t, height: e, widthSegments: n, heightSegments: i }; var r, o, a = (t = t || 1) / 2, s = (e = e || 1) / 2, c = Math.floor(n) || 1, l = Math.floor(i) || 1, u = c + 1, d = l + 1, p = t / c, h = e / l, f = [], m = [], g = [], v = []; for (o = 0; o < d; o++) { var y = o * h - s; for (r = 0; r < u; r++) { var b = r * p - a; m.push(b, -y, 0), g.push(0, 0, 1), v.push(r / c), v.push(1 - o / l) } } for (o = 0; o < l; o++) for (r = 0; r < c; r++) { var w = r + u * o , S = r + u * (o + 1) , x = r + 1 + u * (o + 1) , M = r + 1 + u * o; f.push(w, S, M), f.push(S, x, M) } this.setIndex(f), this.setAttribute("position", new Br(m,3)), this.setAttribute("normal", new Br(g,3)), this.setAttribute("uv", new Br(v,2)) } zo.prototype = Object.create(Eo.prototype), zo.prototype.constructor = zo, Go.prototype = Object.create(Qr.prototype), Go.prototype.constructor = Go; var Ho = { alphamap_fragment: "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif", alphamap_pars_fragment: "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif", alphatest_fragment: "#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif", aomap_fragment: "#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.specularRoughness );\n\t#endif\n#endif", aomap_pars_fragment: "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif", begin_vertex: "vec3 transformed = vec3( position );", beginnormal_vertex: "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif", bsdfs: "vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\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\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 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}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\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_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif", bumpmap_pars_fragment: "#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 ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\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 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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", clipping_planes_fragment: "#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", 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: "#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif", color_fragment: "#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif", color_pars_fragment: "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif", color_pars_vertex: "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif", color_vertex: "#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif", common: "#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\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; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\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 max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\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 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}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\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 linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}", cube_uv_reflection_fragment: "#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_maxMipLevel 8.0\n#define cubeUV_minMipLevel 4.0\n#define cubeUV_maxTileSize 256.0\n#define cubeUV_minTileSize 16.0\nfloat getFace(vec3 direction) {\n vec3 absDirection = abs(direction);\n float face = -1.0;\n if (absDirection.x > absDirection.z) {\n if (absDirection.x > absDirection.y)\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if (absDirection.z > absDirection.y)\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n}\nvec2 getUV(vec3 direction, float face) {\n vec2 uv;\n if (face == 0.0) {\n uv = vec2(-direction.z, direction.y) / abs(direction.x);\n } else if (face == 1.0) {\n uv = vec2(direction.x, -direction.z) / abs(direction.y);\n } else if (face == 2.0) {\n uv = direction.xy / abs(direction.z);\n } else if (face == 3.0) {\n uv = vec2(direction.z, direction.y) / abs(direction.x);\n } else if (face == 4.0) {\n uv = direction.xz / abs(direction.y);\n } else {\n uv = vec2(-direction.x, direction.y) / abs(direction.z);\n }\n return 0.5 * (uv + 1.0);\n}\nvec3 bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {\n float face = getFace(direction);\n float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);\n mipInt = max(mipInt, cubeUV_minMipLevel);\n float faceSize = exp2(mipInt);\n float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize);\n vec2 uv = getUV(direction, face) * (faceSize - 1.0);\n vec2 f = fract(uv);\n uv += 0.5 - f;\n if (face > 2.0) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n if(mipInt < cubeUV_maxMipLevel){\n uv.y += 2.0 * cubeUV_maxTileSize;\n }\n uv.y += filterInt * 2.0 * cubeUV_minTileSize;\n uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize);\n uv *= texelSize;\n vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.x += texelSize;\n vec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.y += texelSize;\n vec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.x -= texelSize;\n vec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n vec3 tm = mix(tl, tr, f.x);\n vec3 bm = mix(bl, br, f.x);\n return mix(tm, bm, f.y);\n}\n#define r0 1.0\n#define v0 0.339\n#define m0 -2.0\n#define r1 0.8\n#define v1 0.276\n#define m1 -1.0\n#define r4 0.4\n#define v4 0.046\n#define m4 2.0\n#define r5 0.305\n#define v5 0.016\n#define m5 3.0\n#define r6 0.21\n#define v6 0.0038\n#define m6 4.0\nfloat roughnessToMip(float roughness) {\n float mip = 0.0;\n if (roughness >= r1) {\n mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;\n } else if (roughness >= r4) {\n mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1;\n } else if (roughness >= r5) {\n mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4;\n } else if (roughness >= r6) {\n mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5;\n } else {\n mip = -2.0 * log2(1.16 * roughness); }\n return mip;\n}\nvec4 textureCubeUV(sampler2D envMap, vec3 sampleDir, float roughness) {\n float mip = clamp(roughnessToMip(roughness), m0, cubeUV_maxMipLevel);\n float mipF = fract(mip);\n float mipInt = floor(mip);\n vec3 color0 = bilinearCubeUV(envMap, sampleDir, mipInt);\n if (mipF == 0.0) {\n return vec4(color0, 1.0);\n } else {\n vec3 color1 = bilinearCubeUV(envMap, sampleDir, mipInt + 1.0);\n return vec4(mix(color0, color1, mipF), 1.0);\n }\n}\n#endif", 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: "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif", displacementmap_vertex: "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif", emissivemap_fragment: "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif", emissivemap_pars_fragment: "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif", encodings_fragment: "gl_FragColor = linearToOutputTexel( gl_FragColor );", encodings_pars_fragment: "\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\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}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}", envmap_fragment: "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\t\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#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\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: "#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\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", envmap_pars_fragment: "#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\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 )\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_physical_pars_fragment: "#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t vec3 reflectVec = reflect( -viewDir, normal );\n\t\t reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t vec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif", envmap_vertex: "#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", fog_vertex: "#ifdef USE_FOG\n\tfogDepth = -mvPosition.z;\n#endif", fog_pars_vertex: "#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif", fog_fragment: "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\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 fogDepth;\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: "#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 texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}", lightmap_fragment: "#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif", lightmap_pars_fragment: "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif", lights_lambert_vertex: "vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif", lights_pars_begin: "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 GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\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\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\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\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.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\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\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\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.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\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\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\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.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 GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif", lights_toon_fragment: "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;", lights_toon_pars_fragment: "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\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_Diffuse_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)", lights_phong_fragment: "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;", lights_phong_pars_fragment: "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, 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_Diffuse_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)", 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.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\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_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif", lights_physical_pars_fragment: "struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\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.specularRoughness;\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#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_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_Diffuse_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 CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * 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}", lights_fragment_begin: "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\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\tgetPointDirectLightIrradiance( 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\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\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\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, vSpotShadowCoord[ 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\tgetDirectionalDirectLightIrradiance( 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 );\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 );\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", lights_fragment_maps: "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif", lights_fragment_end: "#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", logdepthbuf_fragment: "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif", 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: "#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", logdepthbuf_vertex: "#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", map_fragment: "#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif", map_pars_fragment: "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif", map_particle_fragment: "#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\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif", 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: "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif", metalnessmap_pars_fragment: "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif", morphnormal_vertex: "#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif", morphtarget_pars_vertex: "#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif", morphtarget_vertex: "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif", normal_fragment_begin: "#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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 * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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 * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\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 );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif", normalmap_pars_fragment: "#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 ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif", clearcoat_normal_fragment_begin: "#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif", clearcoat_normal_fragment_maps: "#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 );\n\t#endif\n#endif", clearcoat_pars_fragment: "#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", packing: "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}\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}", premultiplied_alpha_fragment: "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif", 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: "#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif", 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: "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif", roughnessmap_pars_fragment: "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif", shadowmap_pars_fragment: "#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#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ 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#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", shadowmap_pars_vertex: "#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#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ 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#endif\n#endif", shadowmap_vertex: "#ifdef USE_SHADOWMAP\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\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\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\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif", 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, vSpotShadowCoord[ 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: "#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", skinning_pars_vertex: "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif", skinning_vertex: "#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", 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: "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif", specularmap_pars_fragment: "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif", tonemapping_fragment: "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif", tonemapping_pars_fragment: "#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\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}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\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 ACESFilmicToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n}", uv_pars_fragment: "#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif", uv_pars_vertex: "#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", uv_vertex: "#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif", uv2_pars_fragment: "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif", uv2_pars_vertex: "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif", uv2_vertex: "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif", worldpos_vertex: "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\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", background_frag: "uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}", background_vert: "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}", cube_frag: "#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}", cube_vert: "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}", depth_frag: "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\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}", depth_vert: "#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}", distanceRGBA_frag: "#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 \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}", distanceRGBA_vert: "#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}", equirect_frag: "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}", equirect_vert: "varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}", linedashed_frag: "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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}", linedashed_vert: "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\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}", meshbasic_frag: "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 \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\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}", meshbasic_vert: "#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#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\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}", meshlambert_frag: "uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\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 \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\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}", meshlambert_vert: "#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\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 \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\t#include \n\t#include \n}", meshmatcap_frag: "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\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 \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\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}", meshmatcap_vert: "#define MATCAP\nvarying vec3 vViewPosition;\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 \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#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\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\tvViewPosition = - mvPosition.xyz;\n}", meshtoon_frag: "#define TOON\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 \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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}", meshtoon_vert: "#define TOON\nvarying vec3 vViewPosition;\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 \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#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\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}", meshphong_frag: "#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 \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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}", meshphong_vert: "#define PHONG\nvarying vec3 vViewPosition;\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 \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#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\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}", meshphysical_frag: "#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSPARENCY\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSPARENCY\n\tuniform float transparency;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#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\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 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSPARENCY\n\t\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}", meshphysical_vert: "#define STANDARD\nvarying vec3 vViewPosition;\n#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\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#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\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}", normal_frag: "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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\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}", normal_vert: "#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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\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#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\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}", points_frag: "uniform vec3 diffuse;\nuniform float opacity;\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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}", points_vert: "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\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}", shadow_frag: "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}", shadow_vert: "#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}", sprite_frag: "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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}", sprite_vert: "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}" } , Wo = { basic: { uniforms: Oo([Fo.common, Fo.specularmap, Fo.envmap, Fo.aomap, Fo.lightmap, Fo.fog]), vertexShader: Ho.meshbasic_vert, fragmentShader: Ho.meshbasic_frag }, lambert: { uniforms: Oo([Fo.common, Fo.specularmap, Fo.envmap, Fo.aomap, Fo.lightmap, Fo.emissivemap, Fo.fog, Fo.lights, { emissive: { value: new Er(0) } }]), vertexShader: Ho.meshlambert_vert, fragmentShader: Ho.meshlambert_frag }, phong: { uniforms: Oo([Fo.common, Fo.specularmap, Fo.envmap, Fo.aomap, Fo.lightmap, Fo.emissivemap, Fo.bumpmap, Fo.normalmap, Fo.displacementmap, Fo.fog, Fo.lights, { emissive: { value: new Er(0) }, specular: { value: new Er(1118481) }, shininess: { value: 30 } }]), vertexShader: Ho.meshphong_vert, fragmentShader: Ho.meshphong_frag }, standard: { uniforms: Oo([Fo.common, Fo.envmap, Fo.aomap, Fo.lightmap, Fo.emissivemap, Fo.bumpmap, Fo.normalmap, Fo.displacementmap, Fo.roughnessmap, Fo.metalnessmap, Fo.fog, Fo.lights, { emissive: { value: new Er(0) }, roughness: { value: .5 }, metalness: { value: .5 }, envMapIntensity: { value: 1 } }]), vertexShader: Ho.meshphysical_vert, fragmentShader: Ho.meshphysical_frag }, toon: { uniforms: Oo([Fo.common, Fo.specularmap, Fo.aomap, Fo.lightmap, Fo.emissivemap, Fo.bumpmap, Fo.normalmap, Fo.displacementmap, Fo.gradientmap, Fo.fog, Fo.lights, { emissive: { value: new Er(0) }, specular: { value: new Er(1118481) }, shininess: { value: 30 } }]), vertexShader: Ho.meshtoon_vert, fragmentShader: Ho.meshtoon_frag }, matcap: { uniforms: Oo([Fo.common, Fo.bumpmap, Fo.normalmap, Fo.displacementmap, Fo.fog, { matcap: { value: null } }]), vertexShader: Ho.meshmatcap_vert, fragmentShader: Ho.meshmatcap_frag }, points: { uniforms: Oo([Fo.points, Fo.fog]), vertexShader: Ho.points_vert, fragmentShader: Ho.points_frag }, dashed: { uniforms: Oo([Fo.common, Fo.fog, { scale: { value: 1 }, dashSize: { value: 1 }, totalSize: { value: 2 } }]), vertexShader: Ho.linedashed_vert, fragmentShader: Ho.linedashed_frag }, depth: { uniforms: Oo([Fo.common, Fo.displacementmap]), vertexShader: Ho.depth_vert, fragmentShader: Ho.depth_frag }, normal: { uniforms: Oo([Fo.common, Fo.bumpmap, Fo.normalmap, Fo.displacementmap, { opacity: { value: 1 } }]), vertexShader: Ho.normal_vert, fragmentShader: Ho.normal_frag }, sprite: { uniforms: Oo([Fo.sprite, Fo.fog]), vertexShader: Ho.sprite_vert, fragmentShader: Ho.sprite_frag }, background: { uniforms: { uvTransform: { value: new Jn }, t2D: { value: null } }, vertexShader: Ho.background_vert, fragmentShader: Ho.background_frag }, cube: { uniforms: Oo([Fo.envmap, { opacity: { value: 1 } }]), vertexShader: Ho.cube_vert, fragmentShader: Ho.cube_frag }, equirect: { uniforms: { tEquirect: { value: null } }, vertexShader: Ho.equirect_vert, fragmentShader: Ho.equirect_frag }, distanceRGBA: { uniforms: Oo([Fo.common, Fo.displacementmap, { referencePosition: { value: new si }, nearDistance: { value: 1 }, farDistance: { value: 1e3 } }]), vertexShader: Ho.distanceRGBA_vert, fragmentShader: Ho.distanceRGBA_frag }, shadow: { uniforms: Oo([Fo.lights, Fo.fog, { color: { value: new Er(0) }, opacity: { value: 1 } }]), vertexShader: Ho.shadow_vert, fragmentShader: Ho.shadow_frag } }; function qo(t, e, n, i) { var r, o, a = new Er(0), s = 0, c = null, l = 0, u = null; function d(t, n) { e.buffers.color.setClear(t.r, t.g, t.b, n, i) } return { getClearColor: function() { return a }, setClearColor: function(t, e) { a.set(t), d(a, s = void 0 !== e ? e : 1) }, getClearAlpha: function() { return s }, setClearAlpha: function(t) { d(a, s = t) }, render: function(e, i, p, h) { var f = i.background , m = t.xr , g = m.getSession && m.getSession(); if (g && "additive" === g.environmentBlendMode && (f = null), null === f ? d(a, s) : f && f.isColor && (d(f, 1), h = !0), (t.autoClear || h) && t.clear(t.autoClearColor, t.autoClearDepth, t.autoClearStencil), f && (f.isCubeTexture || f.isWebGLCubeRenderTarget || f.mapping === xt)) { void 0 === o && ((o = new vo(new Ao(1,1,1),new Po({ type: "BackgroundCubeMaterial", uniforms: To(Wo.cube.uniforms), vertexShader: Wo.cube.vertexShader, fragmentShader: Wo.cube.fragmentShader, side: T, depthTest: !1, depthWrite: !1, fog: !1 }))).geometry.deleteAttribute("normal"), o.geometry.deleteAttribute("uv"), o.onBeforeRender = function(t, e, n) { this.matrixWorld.copyPosition(n.matrixWorld) } , Object.defineProperty(o.material, "envMap", { get: function() { return this.uniforms.envMap.value } }), n.update(o)); var v = f.isWebGLCubeRenderTarget ? f.texture : f; o.material.uniforms.envMap.value = v, o.material.uniforms.flipEnvMap.value = v.isCubeTexture ? -1 : 1, c === f && l === v.version && u === t.toneMapping || (o.material.needsUpdate = !0, c = f, l = v.version, u = t.toneMapping), e.unshift(o, o.geometry, o.material, 0, 0, null) } else f && f.isTexture && (void 0 === r && ((r = new vo(new Go(2,2),new Po({ type: "BackgroundMaterial", uniforms: To(Wo.background.uniforms), vertexShader: Wo.background.vertexShader, fragmentShader: Wo.background.fragmentShader, side: A, depthTest: !1, depthWrite: !1, fog: !1 }))).geometry.deleteAttribute("normal"), Object.defineProperty(r.material, "map", { get: function() { return this.uniforms.t2D.value } }), n.update(r)), r.material.uniforms.t2D.value = f, !0 === f.matrixAutoUpdate && f.updateMatrix(), r.material.uniforms.uvTransform.value.copy(f.matrix), c === f && l === f.version && u === t.toneMapping || (r.material.needsUpdate = !0, c = f, l = f.version, u = t.toneMapping), e.unshift(r, r.geometry, r.material, 0, 0, null)) } } } function Xo(t, e, n, i) { var r, o = i.isWebGL2; this.setMode = function(t) { r = t } , this.render = function(e, i) { t.drawArrays(r, e, i), n.update(i, r) } , this.renderInstances = function(i, a, s, c) { if (0 !== c) { var l, u; if (o) l = t, u = "drawArraysInstanced"; else if (u = "drawArraysInstancedANGLE", null === (l = e.get("ANGLE_instanced_arrays"))) return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."); l[u](r, a, s, c), n.update(s, r, c) } } } function Yo(t, e, n) { var i; function r(e) { if ("highp" === e) { if (t.getShaderPrecisionFormat(35633, 36338).precision > 0 && t.getShaderPrecisionFormat(35632, 36338).precision > 0) return "highp"; e = "mediump" } return "mediump" === e && t.getShaderPrecisionFormat(35633, 36337).precision > 0 && t.getShaderPrecisionFormat(35632, 36337).precision > 0 ? "mediump" : "lowp" } var o = "undefined" != typeof WebGL2RenderingContext && t instanceof WebGL2RenderingContext || "undefined" != typeof WebGL2ComputeRenderingContext && t instanceof WebGL2ComputeRenderingContext , a = void 0 !== n.precision ? n.precision : "highp" , s = r(a); s !== a && (console.warn("THREE.WebGLRenderer:", a, "not supported, using", s, "instead."), a = s); var c = !0 === n.logarithmicDepthBuffer , l = t.getParameter(34930) , u = t.getParameter(35660) , d = t.getParameter(3379) , p = t.getParameter(34076) , h = t.getParameter(34921) , f = t.getParameter(36347) , m = t.getParameter(36348) , g = t.getParameter(36349) , v = u > 0 , y = o || !!e.get("OES_texture_float"); return { isWebGL2: o, getMaxAnisotropy: function() { if (void 0 !== i) return i; var n = e.get("EXT_texture_filter_anisotropic"); return i = null !== n ? t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0 }, getMaxPrecision: r, precision: a, logarithmicDepthBuffer: c, maxTextures: l, maxVertexTextures: u, maxTextureSize: d, maxCubemapSize: p, maxAttributes: h, maxVertexUniforms: f, maxVaryings: m, maxFragmentUniforms: g, vertexTextures: v, floatFragmentTextures: y, floatVertexTextures: v && y, maxSamples: o ? t.getParameter(36183) : 0 } } function Ko() { var t = this , e = null , n = 0 , i = !1 , r = !1 , o = new lr , a = new Jn , s = { value: null, needsUpdate: !1 }; function c() { s.value !== e && (s.value = e, s.needsUpdate = n > 0), t.numPlanes = n, t.numIntersection = 0 } function l(e, n, i, r) { var c = null !== e ? e.length : 0 , l = null; if (0 !== c) { if (l = s.value, !0 !== r || null === l) { var u = i + 4 * c , d = n.matrixWorldInverse; a.getNormalMatrix(d), (null === l || l.length < u) && (l = new Float32Array(u)); for (var p = 0, h = i; p !== c; ++p, h += 4) o.copy(e[p]).applyMatrix4(d, a), o.normal.toArray(l, h), l[h + 3] = o.constant } s.value = l, s.needsUpdate = !0 } return t.numPlanes = c, t.numIntersection = 0, l } this.uniform = s, this.numPlanes = 0, this.numIntersection = 0, this.init = function(t, r, o) { var a = 0 !== t.length || r || 0 !== n || i; return i = r, e = l(t, o, 0), n = t.length, a } , this.beginShadows = function() { r = !0, l(null) } , this.endShadows = function() { r = !1, c() } , this.setState = function(t, o, a, u, d, p) { if (!i || null === t || 0 === t.length || r && !a) r ? l(null) : c(); else { var h = r ? 0 : n , f = 4 * h , m = d.clippingState || null; s.value = m, m = l(t, u, f, p); for (var g = 0; g !== f; ++g) m[g] = e[g]; d.clippingState = m, this.numIntersection = o ? this.numPlanes : 0, this.numPlanes += h } } } function Zo(t) { var e = {}; return { get: function(n) { if (void 0 !== e[n]) return e[n]; var i; switch (n) { case "WEBGL_depth_texture": i = t.getExtension("WEBGL_depth_texture") || t.getExtension("MOZ_WEBGL_depth_texture") || t.getExtension("WEBKIT_WEBGL_depth_texture"); break; case "EXT_texture_filter_anisotropic": i = t.getExtension("EXT_texture_filter_anisotropic") || t.getExtension("MOZ_EXT_texture_filter_anisotropic") || t.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); break; case "WEBGL_compressed_texture_s3tc": i = t.getExtension("WEBGL_compressed_texture_s3tc") || t.getExtension("MOZ_WEBGL_compressed_texture_s3tc") || t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"); break; case "WEBGL_compressed_texture_pvrtc": i = t.getExtension("WEBGL_compressed_texture_pvrtc") || t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"); break; default: i = t.getExtension(n) } return null === i && console.warn("THREE.WebGLRenderer: " + n + " extension not supported."), e[n] = i, i } } } function Jo(t, e, n) { var i = new WeakMap , r = new WeakMap; function o(t) { var a = t.target , s = i.get(a); for (var c in null !== s.index && e.remove(s.index), s.attributes) e.remove(s.attributes[c]); a.removeEventListener("dispose", o), i.delete(a); var l = r.get(s); l && (e.remove(l), r.delete(s)), n.memory.geometries-- } function a(t) { var n = [] , i = t.index , o = t.attributes.position , a = 0; if (null !== i) { var s = i.array; a = i.version; for (var c = 0, l = s.length; c < l; c += 3) { var u = s[c + 0] , d = s[c + 1] , p = s[c + 2]; n.push(u, d, d, p, p, u) } } else { s = o.array; a = o.version; for (c = 0, l = s.length / 3 - 1; c < l; c += 3) { u = c + 0, d = c + 1, p = c + 2; n.push(u, d, d, p, p, u) } } var h = new (Hr(n) > 65535 ? Ur : Vr)(n,1); h.version = a, e.update(h, 34963); var f = r.get(t); f && e.remove(f), r.set(t, h) } return { get: function(t, e) { var r = i.get(e); return r || (e.addEventListener("dispose", o), e.isBufferGeometry ? r = e : e.isGeometry && (void 0 === e._bufferGeometry && (e._bufferGeometry = (new Qr).setFromObject(t)), r = e._bufferGeometry), i.set(e, r), n.memory.geometries++, r) }, update: function(t) { var n = t.index , i = t.attributes; for (var r in null !== n && e.update(n, 34963), i) e.update(i[r], 34962); var o = t.morphAttributes; for (var r in o) for (var a = o[r], s = 0, c = a.length; s < c; s++) e.update(a[s], 34962) }, getWireframeAttribute: function(t) { var e = r.get(t); if (e) { var n = t.index; null !== n && e.version < n.version && a(t) } else a(t); return r.get(t) } } } function Qo(t, e, n, i) { var r, o, a, s = i.isWebGL2; this.setMode = function(t) { r = t } , this.setIndex = function(t) { o = t.type, a = t.bytesPerElement } , this.render = function(e, i) { t.drawElements(r, i, o, e * a), n.update(i, r) } , this.renderInstances = function(i, c, l, u) { if (0 !== u) { var d, p; if (s) d = t, p = "drawElementsInstanced"; else if (p = "drawElementsInstancedANGLE", null === (d = e.get("ANGLE_instanced_arrays"))) return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."); d[p](r, l, o, c * a, u), n.update(l, r, u) } } } function $o(t) { var e = { frame: 0, calls: 0, triangles: 0, points: 0, lines: 0 }; return { memory: { geometries: 0, textures: 0 }, render: e, programs: null, autoReset: !0, reset: function() { e.frame++, e.calls = 0, e.triangles = 0, e.points = 0, e.lines = 0 }, update: function(t, n, i) { switch (i = i || 1, e.calls++, n) { case 4: e.triangles += i * (t / 3); break; case 1: e.lines += i * (t / 2); break; case 3: e.lines += i * (t - 1); break; case 2: e.lines += i * t; break; case 0: e.points += i * t; break; default: console.error("THREE.WebGLInfo: Unknown draw mode:", n) } } } } function ta(t, e) { return Math.abs(e[1]) - Math.abs(t[1]) } function ea(t) { var e = {} , n = new Float32Array(8); return { update: function(i, r, o, a) { var s = i.morphTargetInfluences , c = void 0 === s ? 0 : s.length , l = e[r.id]; if (void 0 === l) { l = []; for (var u = 0; u < c; u++) l[u] = [u, 0]; e[r.id] = l } var d = o.morphTargets && r.morphAttributes.position , p = o.morphNormals && r.morphAttributes.normal; for (u = 0; u < c; u++) { 0 !== (f = l[u])[1] && (d && r.deleteAttribute("morphTarget" + u), p && r.deleteAttribute("morphNormal" + u)) } for (u = 0; u < c; u++) { (f = l[u])[0] = u, f[1] = s[u] } l.sort(ta); var h = 0; for (u = 0; u < 8; u++) { var f; if (f = l[u]) { var m = f[0] , g = f[1]; if (g) { d && r.setAttribute("morphTarget" + u, d[m]), p && r.setAttribute("morphNormal" + u, p[m]), n[u] = g, h += g; continue } } n[u] = 0 } var v = r.morphTargetsRelative ? 1 : 1 - h; a.getUniforms().setValue(t, "morphTargetBaseInfluence", v), a.getUniforms().setValue(t, "morphTargetInfluences", n) } } } function na(t, e, n, i) { var r = new WeakMap; return { update: function(t) { var o = i.render.frame , a = t.geometry , s = e.get(t, a); return r.get(s) !== o && (a.isGeometry && s.updateFromObject(t), e.update(s), r.set(s, o)), t.isInstancedMesh && n.update(t.instanceMatrix, 34962), s }, dispose: function() { r = new WeakMap } } } function ia(t, e, n, i, r, o, a, s, c, l) { t = void 0 !== t ? t : [], e = void 0 !== e ? e : vt, a = void 0 !== a ? a : Zt, ti.call(this, t, e, n, i, r, o, a, s, c, l), this.flipY = !1 } function ra(t, e, n, i) { ti.call(this, null), this.image = { data: t || null, width: e || 1, height: n || 1, depth: i || 1 }, this.magFilter = Tt, this.minFilter = Tt, this.wrapR = Ct, this.generateMipmaps = !1, this.flipY = !1, this.needsUpdate = !0 } function oa(t, e, n, i) { ti.call(this, null), this.image = { data: t || null, width: e || 1, height: n || 1, depth: i || 1 }, this.magFilter = Tt, this.minFilter = Tt, this.wrapR = Ct, this.generateMipmaps = !1, this.flipY = !1, this.needsUpdate = !0 } Wo.physical = { uniforms: Oo([Wo.standard.uniforms, { clearcoat: { value: 0 }, clearcoatMap: { value: null }, clearcoatRoughness: { value: 0 }, clearcoatRoughnessMap: { value: null }, clearcoatNormalScale: { value: new Zn(1,1) }, clearcoatNormalMap: { value: null }, sheen: { value: new Er(0) }, transparency: { value: 0 } }]), vertexShader: Ho.meshphysical_vert, fragmentShader: Ho.meshphysical_frag }, ia.prototype = Object.create(ti.prototype), ia.prototype.constructor = ia, ia.prototype.isCubeTexture = !0, Object.defineProperty(ia.prototype, "images", { get: function() { return this.image }, set: function(t) { this.image = t } }), ra.prototype = Object.create(ti.prototype), ra.prototype.constructor = ra, ra.prototype.isDataTexture2DArray = !0, oa.prototype = Object.create(ti.prototype), oa.prototype.constructor = oa, oa.prototype.isDataTexture3D = !0; var aa = new ti , sa = new ra , ca = new oa , la = new ia , ua = [] , da = [] , pa = new Float32Array(16) , ha = new Float32Array(9) , fa = new Float32Array(4); function ma(t, e, n) { var i = t[0]; if (i <= 0 || i > 0) return t; var r = e * n , o = ua[r]; if (void 0 === o && (o = new Float32Array(r), ua[r] = o), 0 !== e) { i.toArray(o, 0); for (var a = 1, s = 0; a !== e; ++a) s += n, t[a].toArray(o, s) } return o } function ga(t, e) { if (t.length !== e.length) return !1; for (var n = 0, i = t.length; n < i; n++) if (t[n] !== e[n]) return !1; return !0 } function va(t, e) { for (var n = 0, i = e.length; n < i; n++) t[n] = e[n] } function ya(t, e) { var n = da[e]; void 0 === n && (n = new Int32Array(e), da[e] = n); for (var i = 0; i !== e; ++i) n[i] = t.allocateTextureUnit(); return n } function ba(t, e) { var n = this.cache; n[0] !== e && (t.uniform1f(this.addr, e), n[0] = e) } function wa(t, e) { var n = this.cache; if (void 0 !== e.x) n[0] === e.x && n[1] === e.y || (t.uniform2f(this.addr, e.x, e.y), n[0] = e.x, n[1] = e.y); else { if (ga(n, e)) return; t.uniform2fv(this.addr, e), va(n, e) } } function Sa(t, e) { var n = this.cache; if (void 0 !== e.x) n[0] === e.x && n[1] === e.y && n[2] === e.z || (t.uniform3f(this.addr, e.x, e.y, e.z), n[0] = e.x, n[1] = e.y, n[2] = e.z); else if (void 0 !== e.r) n[0] === e.r && n[1] === e.g && n[2] === e.b || (t.uniform3f(this.addr, e.r, e.g, e.b), n[0] = e.r, n[1] = e.g, n[2] = e.b); else { if (ga(n, e)) return; t.uniform3fv(this.addr, e), va(n, e) } } function xa(t, e) { var n = this.cache; if (void 0 !== e.x) n[0] === e.x && n[1] === e.y && n[2] === e.z && n[3] === e.w || (t.uniform4f(this.addr, e.x, e.y, e.z, e.w), n[0] = e.x, n[1] = e.y, n[2] = e.z, n[3] = e.w); else { if (ga(n, e)) return; t.uniform4fv(this.addr, e), va(n, e) } } function Ma(t, e) { var n = this.cache , i = e.elements; if (void 0 === i) { if (ga(n, e)) return; t.uniformMatrix2fv(this.addr, !1, e), va(n, e) } else { if (ga(n, i)) return; fa.set(i), t.uniformMatrix2fv(this.addr, !1, fa), va(n, i) } } function Ea(t, e) { var n = this.cache , i = e.elements; if (void 0 === i) { if (ga(n, e)) return; t.uniformMatrix3fv(this.addr, !1, e), va(n, e) } else { if (ga(n, i)) return; ha.set(i), t.uniformMatrix3fv(this.addr, !1, ha), va(n, i) } } function Ca(t, e) { var n = this.cache , i = e.elements; if (void 0 === i) { if (ga(n, e)) return; t.uniformMatrix4fv(this.addr, !1, e), va(n, e) } else { if (ga(n, i)) return; pa.set(i), t.uniformMatrix4fv(this.addr, !1, pa), va(n, i) } } function Aa(t, e, n) { var i = this.cache , r = n.allocateTextureUnit(); i[0] !== r && (t.uniform1i(this.addr, r), i[0] = r), n.safeSetTexture2D(e || aa, r) } function Ta(t, e, n) { var i = this.cache , r = n.allocateTextureUnit(); i[0] !== r && (t.uniform1i(this.addr, r), i[0] = r), n.setTexture2DArray(e || sa, r) } function Oa(t, e, n) { var i = this.cache , r = n.allocateTextureUnit(); i[0] !== r && (t.uniform1i(this.addr, r), i[0] = r), n.setTexture3D(e || ca, r) } function _a(t, e, n) { var i = this.cache , r = n.allocateTextureUnit(); i[0] !== r && (t.uniform1i(this.addr, r), i[0] = r), n.safeSetTextureCube(e || la, r) } function Pa(t, e) { var n = this.cache; n[0] !== e && (t.uniform1i(this.addr, e), n[0] = e) } function Ia(t, e) { var n = this.cache; ga(n, e) || (t.uniform2iv(this.addr, e), va(n, e)) } function ka(t, e) { var n = this.cache; ga(n, e) || (t.uniform3iv(this.addr, e), va(n, e)) } function Da(t, e) { var n = this.cache; ga(n, e) || (t.uniform4iv(this.addr, e), va(n, e)) } function Ra(t, e) { var n = this.cache; n[0] !== e && (t.uniform1ui(this.addr, e), n[0] = e) } function La(t, e) { t.uniform1fv(this.addr, e) } function Na(t, e) { t.uniform1iv(this.addr, e) } function ja(t, e) { t.uniform2iv(this.addr, e) } function Va(t, e) { t.uniform3iv(this.addr, e) } function Fa(t, e) { t.uniform4iv(this.addr, e) } function Ua(t, e) { var n = ma(e, this.size, 2); t.uniform2fv(this.addr, n) } function Ba(t, e) { var n = ma(e, this.size, 3); t.uniform3fv(this.addr, n) } function za(t, e) { var n = ma(e, this.size, 4); t.uniform4fv(this.addr, n) } function Ga(t, e) { var n = ma(e, this.size, 4); t.uniformMatrix2fv(this.addr, !1, n) } function Ha(t, e) { var n = ma(e, this.size, 9); t.uniformMatrix3fv(this.addr, !1, n) } function Wa(t, e) { var n = ma(e, this.size, 16); t.uniformMatrix4fv(this.addr, !1, n) } function qa(t, e, n) { var i = e.length , r = ya(n, i); t.uniform1iv(this.addr, r); for (var o = 0; o !== i; ++o) n.safeSetTexture2D(e[o] || aa, r[o]) } function Xa(t, e, n) { var i = e.length , r = ya(n, i); t.uniform1iv(this.addr, r); for (var o = 0; o !== i; ++o) n.safeSetTextureCube(e[o] || la, r[o]) } function Ya(t, e, n) { this.id = t, this.addr = n, this.cache = [], this.setValue = function(t) { switch (t) { case 5126: return ba; case 35664: return wa; case 35665: return Sa; case 35666: return xa; case 35674: return Ma; case 35675: return Ea; case 35676: return Ca; case 5124: case 35670: return Pa; case 35667: case 35671: return Ia; case 35668: case 35672: return ka; case 35669: case 35673: return Da; case 5125: return Ra; case 35678: case 36198: case 36298: case 36306: case 35682: return Aa; case 35679: case 36299: case 36307: return Oa; case 35680: case 36300: case 36308: case 36293: return _a; case 36289: case 36303: case 36311: case 36292: return Ta } }(e.type) } function Ka(t, e, n) { this.id = t, this.addr = n, this.cache = [], this.size = e.size, this.setValue = function(t) { switch (t) { case 5126: return La; case 35664: return Ua; case 35665: return Ba; case 35666: return za; case 35674: return Ga; case 35675: return Ha; case 35676: return Wa; case 5124: case 35670: return Na; case 35667: case 35671: return ja; case 35668: case 35672: return Va; case 35669: case 35673: return Fa; case 35678: case 36198: case 36298: case 36306: case 35682: return qa; case 35680: case 36300: case 36308: case 36293: return Xa } }(e.type) } function Za(t) { this.id = t, this.seq = [], this.map = {} } Ka.prototype.updateCache = function(t) { var e = this.cache; t instanceof Float32Array && e.length !== t.length && (this.cache = new Float32Array(t.length)), va(e, t) } , Za.prototype.setValue = function(t, e, n) { for (var i = this.seq, r = 0, o = i.length; r !== o; ++r) { var a = i[r]; a.setValue(t, e[a.id], n) } } ; var Ja = /([\w\d_]+)(\])?(\[|\.)?/g; function Qa(t, e) { t.seq.push(e), t.map[e.id] = e } function $a(t, e, n) { var i = t.name , r = i.length; for (Ja.lastIndex = 0; ; ) { var o = Ja.exec(i) , a = Ja.lastIndex , s = o[1] , c = "]" === o[2] , l = o[3]; if (c && (s |= 0), void 0 === l || "[" === l && a + 2 === r) { Qa(n, void 0 === l ? new Ya(s,t,e) : new Ka(s,t,e)); break } var u = n.map[s]; void 0 === u && Qa(n, u = new Za(s)), n = u } } function ts(t, e) { this.seq = [], this.map = {}; for (var n = t.getProgramParameter(e, 35718), i = 0; i < n; ++i) { var r = t.getActiveUniform(e, i); $a(r, t.getUniformLocation(e, r.name), this) } } function es(t, e, n) { var i = t.createShader(e); return t.shaderSource(i, n), t.compileShader(i), i } ts.prototype.setValue = function(t, e, n, i) { var r = this.map[e]; void 0 !== r && r.setValue(t, n, i) } , ts.prototype.setOptional = function(t, e, n) { var i = e[n]; void 0 !== i && this.setValue(t, n, i) } , ts.upload = function(t, e, n, i) { for (var r = 0, o = e.length; r !== o; ++r) { var a = e[r] , s = n[a.id]; !1 !== s.needsUpdate && a.setValue(t, s.value, i) } } , ts.seqWithValue = function(t, e) { for (var n = [], i = 0, r = t.length; i !== r; ++i) { var o = t[i]; o.id in e && n.push(o) } return n } ; var ns = 0; function is(t) { switch (t) { case cn: return ["Linear", "( value )"]; case ln: return ["sRGB", "( value )"]; case dn: return ["RGBE", "( value )"]; case hn: return ["RGBM", "( value, 7.0 )"]; case fn: return ["RGBM", "( value, 16.0 )"]; case mn: return ["RGBD", "( value, 256.0 )"]; case un: return ["Gamma", "( value, float( GAMMA_FACTOR ) )"]; case pn: return ["LogLuv", "( value )"]; default: throw new Error("unsupported encoding: " + t) } } function rs(t, e, n) { var i = t.getShaderParameter(e, 35713) , r = t.getShaderInfoLog(e).trim(); return i && "" === r ? "" : "THREE.WebGLShader: gl.getShaderInfoLog() " + n + "\n" + r + function(t) { for (var e = t.split("\n"), n = 0; n < e.length; n++) e[n] = n + 1 + ": " + e[n]; return e.join("\n") }(t.getShaderSource(e)) } function os(t, e) { var n = is(e); return "vec4 " + t + "( vec4 value ) { return " + n[0] + "ToLinear" + n[1] + "; }" } function as(t, e) { var n; switch (e) { case dt: n = "Linear"; break; case pt: n = "Reinhard"; break; case ht: n = "Uncharted2"; break; case ft: n = "OptimizedCineon"; break; case mt: n = "ACESFilmic"; break; default: throw new Error("unsupported toneMapping: " + e) } return "vec3 " + t + "( vec3 color ) { return " + n + "ToneMapping( color ); }" } function ss(t) { return "" !== t } function cs(t, e) { return t.replace(/NUM_DIR_LIGHTS/g, e.numDirLights).replace(/NUM_SPOT_LIGHTS/g, e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, e.numPointLights).replace(/NUM_HEMI_LIGHTS/g, e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g, e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, e.numPointLightShadows) } function ls(t, e) { return t.replace(/NUM_CLIPPING_PLANES/g, e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, e.numClippingPlanes - e.numClipIntersection) } var us = /^[ \t]*#include +<([\w\d./]+)>/gm; function ds(t) { return t.replace(us, ps) } function ps(t, e) { var n = Ho[e]; if (void 0 === n) throw new Error("Can not resolve #include <" + e + ">"); return ds(n) } var hs = /#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g , fs = /#pragma unroll_loop_start[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}[\s]+?#pragma unroll_loop_end/g; function ms(t) { return t.replace(fs, vs).replace(hs, gs) } function gs(t, e, n, i) { return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."), vs(t, e, n, i) } function vs(t, e, n, i) { for (var r = "", o = parseInt(e); o < parseInt(n); o++) r += i.replace(/\[ i \]/g, "[ " + o + " ]").replace(/UNROLLED_LOOP_INDEX/g, o); return r } function ys(t) { var e = "precision " + t.precision + " float;\nprecision " + t.precision + " int;"; return "highp" === t.precision ? e += "\n#define HIGH_PRECISION" : "mediump" === t.precision ? e += "\n#define MEDIUM_PRECISION" : "lowp" === t.precision && (e += "\n#define LOW_PRECISION"), e } function bs(t, e, n) { var i, r, o, a, s, c = t.getContext(), l = n.defines, u = n.vertexShader, d = n.fragmentShader, p = function(t) { var e = "SHADOWMAP_TYPE_BASIC"; return t.shadowMapType === M ? e = "SHADOWMAP_TYPE_PCF" : t.shadowMapType === E ? e = "SHADOWMAP_TYPE_PCF_SOFT" : t.shadowMapType === C && (e = "SHADOWMAP_TYPE_VSM"), e }(n), h = function(t) { var e = "ENVMAP_TYPE_CUBE"; if (t.envMap) switch (t.envMapMode) { case vt: case yt: e = "ENVMAP_TYPE_CUBE"; break; case xt: case Mt: e = "ENVMAP_TYPE_CUBE_UV"; break; case bt: case wt: e = "ENVMAP_TYPE_EQUIREC"; break; case St: e = "ENVMAP_TYPE_SPHERE" } return e }(n), f = function(t) { var e = "ENVMAP_MODE_REFLECTION"; if (t.envMap) switch (t.envMapMode) { case yt: case wt: e = "ENVMAP_MODE_REFRACTION" } return e }(n), m = function(t) { var e = "ENVMAP_BLENDING_NONE"; if (t.envMap) switch (t.combine) { case st: e = "ENVMAP_BLENDING_MULTIPLY"; break; case ct: e = "ENVMAP_BLENDING_MIX"; break; case lt: e = "ENVMAP_BLENDING_ADD" } return e }(n), g = t.gammaFactor > 0 ? t.gammaFactor : 1, v = n.isWebGL2 ? "" : function(t) { return [t.extensionDerivatives || t.envMapCubeUV || t.bumpMap || t.tangentSpaceNormalMap || t.clearcoatNormalMap || t.flatShading || "physical" === t.shaderID ? "#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.rendererExtensionShaderTextureLod ? "#extension GL_EXT_shader_texture_lod : enable" : ""].filter(ss).join("\n") }(n), y = function(t) { var e = []; for (var n in t) { var i = t[n]; !1 !== i && e.push("#define " + n + " " + i) } return e.join("\n") }(l), b = c.createProgram(); if (n.isRawShaderMaterial ? ((i = [y].filter(ss).join("\n")).length > 0 && (i += "\n"), (r = [v, y].filter(ss).join("\n")).length > 0 && (r += "\n")) : (i = [ys(n), "#define SHADER_NAME " + n.shaderName, y, n.instancing ? "#define USE_INSTANCING" : "", n.supportsVertexTextures ? "#define VERTEX_TEXTURES" : "", "#define GAMMA_FACTOR " + g, "#define MAX_BONES " + n.maxBones, n.useFog && n.fog ? "#define USE_FOG" : "", n.useFog && n.fogExp2 ? "#define FOG_EXP2" : "", n.map ? "#define USE_MAP" : "", n.envMap ? "#define USE_ENVMAP" : "", n.envMap ? "#define " + f : "", n.lightMap ? "#define USE_LIGHTMAP" : "", n.aoMap ? "#define USE_AOMAP" : "", n.emissiveMap ? "#define USE_EMISSIVEMAP" : "", n.bumpMap ? "#define USE_BUMPMAP" : "", n.normalMap ? "#define USE_NORMALMAP" : "", n.normalMap && n.objectSpaceNormalMap ? "#define OBJECTSPACE_NORMALMAP" : "", n.normalMap && n.tangentSpaceNormalMap ? "#define TANGENTSPACE_NORMALMAP" : "", n.clearcoatMap ? "#define USE_CLEARCOATMAP" : "", n.clearcoatRoughnessMap ? "#define USE_CLEARCOAT_ROUGHNESSMAP" : "", n.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "", n.displacementMap && n.supportsVertexTextures ? "#define USE_DISPLACEMENTMAP" : "", n.specularMap ? "#define USE_SPECULARMAP" : "", n.roughnessMap ? "#define USE_ROUGHNESSMAP" : "", n.metalnessMap ? "#define USE_METALNESSMAP" : "", n.alphaMap ? "#define USE_ALPHAMAP" : "", n.vertexTangents ? "#define USE_TANGENT" : "", n.vertexColors ? "#define USE_COLOR" : "", n.vertexUvs ? "#define USE_UV" : "", n.uvsVertexOnly ? "#define UVS_VERTEX_ONLY" : "", n.flatShading ? "#define FLAT_SHADED" : "", n.skinning ? "#define USE_SKINNING" : "", n.useVertexTexture ? "#define BONE_TEXTURE" : "", n.morphTargets ? "#define USE_MORPHTARGETS" : "", n.morphNormals && !1 === n.flatShading ? "#define USE_MORPHNORMALS" : "", n.doubleSided ? "#define DOUBLE_SIDED" : "", n.flipSided ? "#define FLIP_SIDED" : "", n.shadowMapEnabled ? "#define USE_SHADOWMAP" : "", n.shadowMapEnabled ? "#define " + p : "", n.sizeAttenuation ? "#define USE_SIZEATTENUATION" : "", n.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "", n.logarithmicDepthBuffer && n.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", "attribute vec3 position;", "attribute vec3 normal;", "attribute vec2 uv;", "#ifdef USE_TANGENT", "\tattribute vec4 tangent;", "#endif", "#ifdef USE_COLOR", "\tattribute vec3 color;", "#endif", "#ifdef USE_MORPHTARGETS", "\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(ss).join("\n"), r = [v, ys(n), "#define SHADER_NAME " + n.shaderName, y, n.alphaTest ? "#define ALPHATEST " + n.alphaTest + (n.alphaTest % 1 ? "" : ".0") : "", "#define GAMMA_FACTOR " + g, n.useFog && n.fog ? "#define USE_FOG" : "", n.useFog && n.fogExp2 ? "#define FOG_EXP2" : "", n.map ? "#define USE_MAP" : "", n.matcap ? "#define USE_MATCAP" : "", n.envMap ? "#define USE_ENVMAP" : "", n.envMap ? "#define " + h : "", n.envMap ? "#define " + f : "", n.envMap ? "#define " + m : "", n.lightMap ? "#define USE_LIGHTMAP" : "", n.aoMap ? "#define USE_AOMAP" : "", n.emissiveMap ? "#define USE_EMISSIVEMAP" : "", n.bumpMap ? "#define USE_BUMPMAP" : "", n.normalMap ? "#define USE_NORMALMAP" : "", n.normalMap && n.objectSpaceNormalMap ? "#define OBJECTSPACE_NORMALMAP" : "", n.normalMap && n.tangentSpaceNormalMap ? "#define TANGENTSPACE_NORMALMAP" : "", n.clearcoatMap ? "#define USE_CLEARCOATMAP" : "", n.clearcoatRoughnessMap ? "#define USE_CLEARCOAT_ROUGHNESSMAP" : "", n.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "", n.specularMap ? "#define USE_SPECULARMAP" : "", n.roughnessMap ? "#define USE_ROUGHNESSMAP" : "", n.metalnessMap ? "#define USE_METALNESSMAP" : "", n.alphaMap ? "#define USE_ALPHAMAP" : "", n.sheen ? "#define USE_SHEEN" : "", n.vertexTangents ? "#define USE_TANGENT" : "", n.vertexColors ? "#define USE_COLOR" : "", n.vertexUvs ? "#define USE_UV" : "", n.uvsVertexOnly ? "#define UVS_VERTEX_ONLY" : "", n.gradientMap ? "#define USE_GRADIENTMAP" : "", n.flatShading ? "#define FLAT_SHADED" : "", n.doubleSided ? "#define DOUBLE_SIDED" : "", n.flipSided ? "#define FLIP_SIDED" : "", n.shadowMapEnabled ? "#define USE_SHADOWMAP" : "", n.shadowMapEnabled ? "#define " + p : "", n.premultipliedAlpha ? "#define PREMULTIPLIED_ALPHA" : "", n.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : "", n.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "", n.logarithmicDepthBuffer && n.rendererExtensionFragDepth ? "#define USE_LOGDEPTHBUF_EXT" : "", (n.extensionShaderTextureLOD || n.envMap) && n.rendererExtensionShaderTextureLod ? "#define TEXTURE_LOD_EXT" : "", "uniform mat4 viewMatrix;", "uniform vec3 cameraPosition;", "uniform bool isOrthographic;", n.toneMapping !== ut ? "#define TONE_MAPPING" : "", n.toneMapping !== ut ? Ho.tonemapping_pars_fragment : "", n.toneMapping !== ut ? as("toneMapping", n.toneMapping) : "", n.dithering ? "#define DITHERING" : "", n.outputEncoding || n.mapEncoding || n.matcapEncoding || n.envMapEncoding || n.emissiveMapEncoding || n.lightMapEncoding ? Ho.encodings_pars_fragment : "", n.mapEncoding ? os("mapTexelToLinear", n.mapEncoding) : "", n.matcapEncoding ? os("matcapTexelToLinear", n.matcapEncoding) : "", n.envMapEncoding ? os("envMapTexelToLinear", n.envMapEncoding) : "", n.emissiveMapEncoding ? os("emissiveMapTexelToLinear", n.emissiveMapEncoding) : "", n.lightMapEncoding ? os("lightMapTexelToLinear", n.lightMapEncoding) : "", n.outputEncoding ? (o = "linearToOutputTexel", a = n.outputEncoding, s = is(a), "vec4 " + o + "( vec4 value ) { return LinearTo" + s[0] + s[1] + "; }") : "", n.depthPacking ? "#define DEPTH_PACKING " + n.depthPacking : "", "\n"].filter(ss).join("\n")), u = ls(u = cs(u = ds(u), n), n), d = ls(d = cs(d = ds(d), n), n), u = ms(u), d = ms(d), n.isWebGL2 && !n.isRawShaderMaterial) { var w = !1 , S = /^\s*#version\s+300\s+es\s*\n/; n.isShaderMaterial && null !== u.match(S) && null !== d.match(S) && (w = !0, u = u.replace(S, ""), d = d.replace(S, "")), i = ["#version 300 es\n", "#define attribute in", "#define varying out", "#define texture2D texture"].join("\n") + "\n" + i, r = ["#version 300 es\n", "#define varying in", w ? "" : "out highp vec4 pc_fragColor;", w ? "" : "#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" + r } var x, A, T = r + d, O = es(c, 35633, i + u), _ = es(c, 35632, T); if (c.attachShader(b, O), c.attachShader(b, _), void 0 !== n.index0AttributeName ? c.bindAttribLocation(b, 0, n.index0AttributeName) : !0 === n.morphTargets && c.bindAttribLocation(b, 0, "position"), c.linkProgram(b), t.debug.checkShaderErrors) { var P = c.getProgramInfoLog(b).trim() , I = c.getShaderInfoLog(O).trim() , k = c.getShaderInfoLog(_).trim() , D = !0 , R = !0; if (!1 === c.getProgramParameter(b, 35714)) { D = !1; var L = rs(c, O, "vertex") , N = rs(c, _, "fragment"); console.error("THREE.WebGLProgram: shader error: ", c.getError(), "35715", c.getProgramParameter(b, 35715), "gl.getProgramInfoLog", P, L, N) } else "" !== P ? console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()", P) : "" !== I && "" !== k || (R = !1); R && (this.diagnostics = { runnable: D, programLog: P, vertexShader: { log: I, prefix: i }, fragmentShader: { log: k, prefix: r } }) } return c.detachShader(b, O), c.detachShader(b, _), c.deleteShader(O), c.deleteShader(_), this.getUniforms = function() { return void 0 === x && (x = new ts(c,b)), x } , this.getAttributes = function() { return void 0 === A && (A = function(t, e) { for (var n = {}, i = t.getProgramParameter(e, 35721), r = 0; r < i; r++) { var o = t.getActiveAttrib(e, r).name; n[o] = t.getAttribLocation(e, o) } return n }(c, b)), A } , this.destroy = function() { c.deleteProgram(b), this.program = void 0 } , this.name = n.shaderName, this.id = ns++, this.cacheKey = e, this.usedTimes = 1, this.program = b, this.vertexShader = O, this.fragmentShader = _, this } function ws(t, e, n) { var i = [] , r = n.isWebGL2 , o = n.logarithmicDepthBuffer , a = n.floatVertexTextures , s = n.precision , c = n.maxVertexUniforms , l = n.vertexTextures , u = { 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" } , d = ["precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing", "map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV", "lightMap", "lightMapEncoding", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatMap", "clearcoatRoughnessMap", "clearcoatNormalMap", "displacementMap", "specularMap", "roughnessMap", "metalnessMap", "gradientMap", "alphaMap", "combine", "vertexColors", "vertexTangents", "vertexUvs", "uvsVertexOnly", "fog", "useFog", "fogExp2", "flatShading", "sizeAttenuation", "logarithmicDepthBuffer", "skinning", "maxBones", "useVertexTexture", "morphTargets", "morphNormals", "maxMorphTargets", "maxMorphNormals", "premultipliedAlpha", "numDirLights", "numPointLights", "numSpotLights", "numHemiLights", "numRectAreaLights", "numDirLightShadows", "numPointLightShadows", "numSpotLightShadows", "shadowMapEnabled", "shadowMapType", "toneMapping", "physicallyCorrectLights", "alphaTest", "doubleSided", "flipSided", "numClippingPlanes", "numClipIntersection", "depthPacking", "dithering", "sheen"]; function p(t) { var e; return t ? t.isTexture ? e = t.encoding : t.isWebGLRenderTarget && (console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."), e = t.texture.encoding) : e = cn, e } this.getParameters = function(i, d, h, f, m, g, v) { var y = f.fog , b = i.isMeshStandardMaterial ? f.environment : null , w = i.envMap || b , S = u[i.type] , x = v.isSkinnedMesh ? function(t) { var e = t.skeleton.bones; if (a) return 1024; var n = c , i = Math.floor((n - 20) / 4) , r = Math.min(i, e.length); return r < e.length ? (console.warn("THREE.WebGLRenderer: Skeleton has " + e.length + " bones. This GPU supports " + r + "."), 0) : r }(v) : 0; null !== i.precision && (s = n.getMaxPrecision(i.precision)) !== i.precision && console.warn("THREE.WebGLProgram.getParameters:", i.precision, "not supported, using", s, "instead."); var M = function(t, e) { var n; if (e) { var i = Wo[e]; n = { name: t.type, uniforms: _o.clone(i.uniforms), vertexShader: i.vertexShader, fragmentShader: i.fragmentShader } } else n = { name: t.type, uniforms: t.uniforms, vertexShader: t.vertexShader, fragmentShader: t.fragmentShader }; return n }(i, S); i.onBeforeCompile(M, t); var E = t.getRenderTarget(); return { isWebGL2: r, shaderID: S, shaderName: M.name, uniforms: M.uniforms, vertexShader: M.vertexShader, fragmentShader: M.fragmentShader, defines: i.defines, isRawShaderMaterial: i.isRawShaderMaterial, isShaderMaterial: i.isShaderMaterial, precision: s, instancing: !0 === v.isInstancedMesh, supportsVertexTextures: l, outputEncoding: null !== E ? p(E.texture) : t.outputEncoding, map: !!i.map, mapEncoding: p(i.map), matcap: !!i.matcap, matcapEncoding: p(i.matcap), envMap: !!w, envMapMode: w && w.mapping, envMapEncoding: p(w), envMapCubeUV: !!w && (w.mapping === xt || w.mapping === Mt), lightMap: !!i.lightMap, lightMapEncoding: p(i.lightMap), aoMap: !!i.aoMap, emissiveMap: !!i.emissiveMap, emissiveMapEncoding: p(i.emissiveMap), bumpMap: !!i.bumpMap, normalMap: !!i.normalMap, objectSpaceNormalMap: i.normalMapType === bn, tangentSpaceNormalMap: i.normalMapType === yn, clearcoatMap: !!i.clearcoatMap, clearcoatRoughnessMap: !!i.clearcoatRoughnessMap, clearcoatNormalMap: !!i.clearcoatNormalMap, displacementMap: !!i.displacementMap, roughnessMap: !!i.roughnessMap, metalnessMap: !!i.metalnessMap, specularMap: !!i.specularMap, alphaMap: !!i.alphaMap, gradientMap: !!i.gradientMap, sheen: !!i.sheen, combine: i.combine, vertexTangents: i.normalMap && i.vertexTangents, vertexColors: i.vertexColors, vertexUvs: !!(i.map || i.bumpMap || i.normalMap || i.specularMap || i.alphaMap || i.emissiveMap || i.roughnessMap || i.metalnessMap || i.clearcoatMap || i.clearcoatRoughnessMap || i.clearcoatNormalMap || i.displacementMap), uvsVertexOnly: !(i.map || i.bumpMap || i.normalMap || i.specularMap || i.alphaMap || i.emissiveMap || i.roughnessMap || i.metalnessMap || i.clearcoatNormalMap || !i.displacementMap), fog: !!y, useFog: i.fog, fogExp2: y && y.isFogExp2, flatShading: i.flatShading, sizeAttenuation: i.sizeAttenuation, logarithmicDepthBuffer: o, skinning: i.skinning && x > 0, maxBones: x, useVertexTexture: a, morphTargets: i.morphTargets, morphNormals: i.morphNormals, maxMorphTargets: t.maxMorphTargets, maxMorphNormals: t.maxMorphNormals, numDirLights: d.directional.length, numPointLights: d.point.length, numSpotLights: d.spot.length, numRectAreaLights: d.rectArea.length, numHemiLights: d.hemi.length, numDirLightShadows: d.directionalShadowMap.length, numPointLightShadows: d.pointShadowMap.length, numSpotLightShadows: d.spotShadowMap.length, numClippingPlanes: m, numClipIntersection: g, dithering: i.dithering, shadowMapEnabled: t.shadowMap.enabled && h.length > 0, shadowMapType: t.shadowMap.type, toneMapping: i.toneMapped ? t.toneMapping : ut, physicallyCorrectLights: t.physicallyCorrectLights, premultipliedAlpha: i.premultipliedAlpha, alphaTest: i.alphaTest, doubleSided: i.side === O, flipSided: i.side === T, depthPacking: void 0 !== i.depthPacking && i.depthPacking, index0AttributeName: i.index0AttributeName, extensionDerivatives: i.extensions && i.extensions.derivatives, extensionFragDepth: i.extensions && i.extensions.fragDepth, extensionDrawBuffers: i.extensions && i.extensions.drawBuffers, extensionShaderTextureLOD: i.extensions && i.extensions.shaderTextureLOD, rendererExtensionFragDepth: r || null !== e.get("EXT_frag_depth"), rendererExtensionDrawBuffers: r || null !== e.get("WEBGL_draw_buffers"), rendererExtensionShaderTextureLod: r || null !== e.get("EXT_shader_texture_lod"), onBeforeCompile: i.onBeforeCompile } } , this.getProgramCacheKey = function(e) { var n = []; if (e.shaderID ? n.push(e.shaderID) : (n.push(e.fragmentShader), n.push(e.vertexShader)), void 0 !== e.defines) for (var i in e.defines) n.push(i), n.push(e.defines[i]); if (void 0 === e.isRawShaderMaterial) { for (var r = 0; r < d.length; r++) n.push(e[d[r]]); n.push(t.outputEncoding), n.push(t.gammaFactor) } return n.push(e.onBeforeCompile.toString()), n.join() } , this.acquireProgram = function(e, n) { for (var r, o = 0, a = i.length; o < a; o++) { var s = i[o]; if (s.cacheKey === n) { ++(r = s).usedTimes; break } } return void 0 === r && (r = new bs(t,n,e), i.push(r)), r } , this.releaseProgram = function(t) { if (0 == --t.usedTimes) { var e = i.indexOf(t); i[e] = i[i.length - 1], i.pop(), t.destroy() } } , this.programs = i } function Ss() { var t = new WeakMap; return { get: function(e) { var n = t.get(e); return void 0 === n && (n = {}, t.set(e, n)), n }, remove: function(e) { t.delete(e) }, update: function(e, n, i) { t.get(e)[n] = i }, dispose: function() { t = new WeakMap } } } function xs(t, e) { return t.groupOrder !== e.groupOrder ? t.groupOrder - e.groupOrder : t.renderOrder !== e.renderOrder ? t.renderOrder - e.renderOrder : t.program !== e.program ? t.program.id - e.program.id : t.material.id !== e.material.id ? t.material.id - e.material.id : t.z !== e.z ? t.z - e.z : t.id - e.id } function Ms(t, e) { return t.groupOrder !== e.groupOrder ? t.groupOrder - e.groupOrder : t.renderOrder !== e.renderOrder ? t.renderOrder - e.renderOrder : t.z !== e.z ? e.z - t.z : t.id - e.id } function Es() { var t = [] , e = 0 , n = [] , i = [] , r = { id: -1 }; function o(n, i, o, a, s, c) { var l = t[e]; return void 0 === l ? (l = { id: n.id, object: n, geometry: i, material: o, program: o.program || r, groupOrder: a, renderOrder: n.renderOrder, z: s, group: c }, t[e] = l) : (l.id = n.id, l.object = n, l.geometry = i, l.material = o, l.program = o.program || r, l.groupOrder = a, l.renderOrder = n.renderOrder, l.z = s, l.group = c), e++, l } return { opaque: n, transparent: i, init: function() { e = 0, n.length = 0, i.length = 0 }, push: function(t, e, r, a, s, c) { var l = o(t, e, r, a, s, c); (!0 === r.transparent ? i : n).push(l) }, unshift: function(t, e, r, a, s, c) { var l = o(t, e, r, a, s, c); (!0 === r.transparent ? i : n).unshift(l) }, finish: function() { for (var n = e, i = t.length; n < i; n++) { var r = t[n]; if (null === r.id) break; r.id = null, r.object = null, r.geometry = null, r.material = null, r.program = null, r.group = null } }, sort: function(t, e) { n.length > 1 && n.sort(t || xs), i.length > 1 && i.sort(e || Ms) } } } function Cs() { var t = new WeakMap; function e(n) { var i = n.target; i.removeEventListener("dispose", e), t.delete(i) } return { get: function(n, i) { var r, o = t.get(n); return void 0 === o ? (r = new Es, t.set(n, new WeakMap), t.get(n).set(i, r), n.addEventListener("dispose", e)) : void 0 === (r = o.get(i)) && (r = new Es, o.set(i, r)), r }, dispose: function() { t = new WeakMap } } } function As() { var t = {}; return { get: function(e) { if (void 0 !== t[e.id]) return t[e.id]; var n; switch (e.type) { case "DirectionalLight": n = { direction: new si, color: new Er }; break; case "SpotLight": n = { position: new si, direction: new si, color: new Er, distance: 0, coneCos: 0, penumbraCos: 0, decay: 0 }; break; case "PointLight": n = { position: new si, color: new Er, distance: 0, decay: 0 }; break; case "HemisphereLight": n = { direction: new si, skyColor: new Er, groundColor: new Er }; break; case "RectAreaLight": n = { color: new Er, position: new si, halfWidth: new si, halfHeight: new si } } return t[e.id] = n, n } } } var Ts = 0; function Os(t, e) { return (e.castShadow ? 1 : 0) - (t.castShadow ? 1 : 0) } function _s() { for (var t, e = new As, n = (t = {}, { get: function(e) { if (void 0 !== t[e.id]) return t[e.id]; var n; switch (e.type) { case "DirectionalLight": case "SpotLight": n = { shadowBias: 0, shadowRadius: 1, shadowMapSize: new Zn }; break; case "PointLight": n = { shadowBias: 0, shadowRadius: 1, shadowMapSize: new Zn, shadowCameraNear: 1, shadowCameraFar: 1e3 } } return t[e.id] = n, n } }), i = { version: 0, hash: { directionalLength: -1, pointLength: -1, spotLength: -1, rectAreaLength: -1, hemiLength: -1, numDirectionalShadows: -1, numPointShadows: -1, numSpotShadows: -1 }, ambient: [0, 0, 0], probe: [], directional: [], directionalShadow: [], directionalShadowMap: [], directionalShadowMatrix: [], spot: [], spotShadow: [], spotShadowMap: [], spotShadowMatrix: [], rectArea: [], point: [], pointShadow: [], pointShadowMap: [], pointShadowMatrix: [], hemi: [] }, r = 0; r < 9; r++) i.probe.push(new si); var o = new si , a = new mi , s = new mi; return { setup: function(t, r, c) { for (var l = 0, u = 0, d = 0, p = 0; p < 9; p++) i.probe[p].set(0, 0, 0); var h = 0 , f = 0 , m = 0 , g = 0 , v = 0 , y = 0 , b = 0 , w = 0 , S = c.matrixWorldInverse; t.sort(Os), p = 0; for (var x = t.length; p < x; p++) { var M = t[p] , E = M.color , C = M.intensity , A = M.distance , T = M.shadow && M.shadow.map ? M.shadow.map.texture : null; if (M.isAmbientLight) l += E.r * C, u += E.g * C, d += E.b * C; else if (M.isLightProbe) for (var O = 0; O < 9; O++) i.probe[O].addScaledVector(M.sh.coefficients[O], C); else if (M.isDirectionalLight) { if ((I = e.get(M)).color.copy(M.color).multiplyScalar(M.intensity), I.direction.setFromMatrixPosition(M.matrixWorld), o.setFromMatrixPosition(M.target.matrixWorld), I.direction.sub(o), I.direction.transformDirection(S), M.castShadow) { var _ = M.shadow; (P = n.get(M)).shadowBias = _.bias, P.shadowRadius = _.radius, P.shadowMapSize = _.mapSize, i.directionalShadow[h] = P, i.directionalShadowMap[h] = T, i.directionalShadowMatrix[h] = M.shadow.matrix, y++ } i.directional[h] = I, h++ } else if (M.isSpotLight) { if ((I = e.get(M)).position.setFromMatrixPosition(M.matrixWorld), I.position.applyMatrix4(S), I.color.copy(E).multiplyScalar(C), I.distance = A, I.direction.setFromMatrixPosition(M.matrixWorld), o.setFromMatrixPosition(M.target.matrixWorld), I.direction.sub(o), I.direction.transformDirection(S), I.coneCos = Math.cos(M.angle), I.penumbraCos = Math.cos(M.angle * (1 - M.penumbra)), I.decay = M.decay, M.castShadow) { _ = M.shadow; (P = n.get(M)).shadowBias = _.bias, P.shadowRadius = _.radius, P.shadowMapSize = _.mapSize, i.spotShadow[m] = P, i.spotShadowMap[m] = T, i.spotShadowMatrix[m] = M.shadow.matrix, w++ } i.spot[m] = I, m++ } else if (M.isRectAreaLight) { (I = e.get(M)).color.copy(E).multiplyScalar(C), I.position.setFromMatrixPosition(M.matrixWorld), I.position.applyMatrix4(S), s.identity(), a.copy(M.matrixWorld), a.premultiply(S), s.extractRotation(a), I.halfWidth.set(.5 * M.width, 0, 0), I.halfHeight.set(0, .5 * M.height, 0), I.halfWidth.applyMatrix4(s), I.halfHeight.applyMatrix4(s), i.rectArea[g] = I, g++ } else if (M.isPointLight) { if ((I = e.get(M)).position.setFromMatrixPosition(M.matrixWorld), I.position.applyMatrix4(S), I.color.copy(M.color).multiplyScalar(M.intensity), I.distance = M.distance, I.decay = M.decay, M.castShadow) { var P; _ = M.shadow; (P = n.get(M)).shadowBias = _.bias, P.shadowRadius = _.radius, P.shadowMapSize = _.mapSize, P.shadowCameraNear = _.camera.near, P.shadowCameraFar = _.camera.far, i.pointShadow[f] = P, i.pointShadowMap[f] = T, i.pointShadowMatrix[f] = M.shadow.matrix, b++ } i.point[f] = I, f++ } else if (M.isHemisphereLight) { var I; (I = e.get(M)).direction.setFromMatrixPosition(M.matrixWorld), I.direction.transformDirection(S), I.direction.normalize(), I.skyColor.copy(M.color).multiplyScalar(C), I.groundColor.copy(M.groundColor).multiplyScalar(C), i.hemi[v] = I, v++ } } i.ambient[0] = l, i.ambient[1] = u, i.ambient[2] = d; var k = i.hash; k.directionalLength === h && k.pointLength === f && k.spotLength === m && k.rectAreaLength === g && k.hemiLength === v && k.numDirectionalShadows === y && k.numPointShadows === b && k.numSpotShadows === w || (i.directional.length = h, i.spot.length = m, i.rectArea.length = g, i.point.length = f, i.hemi.length = v, i.directionalShadow.length = y, i.directionalShadowMap.length = y, i.pointShadow.length = b, i.pointShadowMap.length = b, i.spotShadow.length = w, i.spotShadowMap.length = w, i.directionalShadowMatrix.length = y, i.pointShadowMatrix.length = b, i.spotShadowMatrix.length = w, k.directionalLength = h, k.pointLength = f, k.spotLength = m, k.rectAreaLength = g, k.hemiLength = v, k.numDirectionalShadows = y, k.numPointShadows = b, k.numSpotShadows = w, i.version = Ts++) }, state: i } } function Ps() { var t = new _s , e = [] , n = []; return { init: function() { e.length = 0, n.length = 0 }, state: { lightsArray: e, shadowsArray: n, lights: t }, setupLights: function(i) { t.setup(e, n, i) }, pushLight: function(t) { e.push(t) }, pushShadow: function(t) { n.push(t) } } } function Is() { var t = new WeakMap; function e(n) { var i = n.target; i.removeEventListener("dispose", e), t.delete(i) } return { get: function(n, i) { var r; return !1 === t.has(n) ? (r = new Ps, t.set(n, new WeakMap), t.get(n).set(i, r), n.addEventListener("dispose", e)) : !1 === t.get(n).has(i) ? (r = new Ps, t.get(n).set(i, r)) : r = t.get(n).get(i), r }, dispose: function() { t = new WeakMap } } } function ks(t) { Pr.call(this), this.type = "MeshDepthMaterial", this.depthPacking = gn, this.skinning = !1, this.morphTargets = !1, this.map = null, this.alphaMap = null, this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.wireframe = !1, this.wireframeLinewidth = 1, this.fog = !1, this.setValues(t) } function Ds(t) { Pr.call(this), this.type = "MeshDistanceMaterial", this.referencePosition = new si, this.nearDistance = 1, this.farDistance = 1e3, this.skinning = !1, this.morphTargets = !1, this.map = null, this.alphaMap = null, this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.fog = !1, this.setValues(t) } ks.prototype = Object.create(Pr.prototype), ks.prototype.constructor = ks, ks.prototype.isMeshDepthMaterial = !0, ks.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.depthPacking = t.depthPacking, this.skinning = t.skinning, this.morphTargets = t.morphTargets, 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 } , Ds.prototype = Object.create(Pr.prototype), Ds.prototype.constructor = Ds, Ds.prototype.isMeshDistanceMaterial = !0, Ds.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.referencePosition.copy(t.referencePosition), this.nearDistance = t.nearDistance, this.farDistance = t.farDistance, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.map = t.map, this.alphaMap = t.alphaMap, this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this } ; function Rs(t, e, n) { var i = new Vo , r = new Zn , o = new Zn , a = new ei , s = [] , c = [] , l = {} , u = { 0: T, 1: A, 2: O } , d = new Po({ defines: { SAMPLE_RATE: 2 / 8, HALF_SAMPLE_RATE: 1 / 8 }, uniforms: { shadow_pass: { value: null }, resolution: { value: new Zn }, radius: { value: 4 } }, vertexShader: "void main() {\n\tgl_Position = vec4( position, 1.0 );\n}", fragmentShader: "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n float mean = 0.0;\n float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n #ifdef HORIZONAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean * HALF_SAMPLE_RATE;\n squared_mean = squared_mean * HALF_SAMPLE_RATE;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}" }) , p = d.clone(); p.defines.HORIZONAL_PASS = 1; var h = new Qr; h.setAttribute("position", new Dr(new Float32Array([-1, -1, .5, 3, -1, .5, -1, 3, .5]),3)); var f = new vo(h,d) , m = this; function g(n, i) { var r = e.update(f); d.uniforms.shadow_pass.value = n.map.texture, d.uniforms.resolution.value = n.mapSize, d.uniforms.radius.value = n.radius, t.setRenderTarget(n.mapPass), t.clear(), t.renderBufferDirect(i, null, r, d, f, null), p.uniforms.shadow_pass.value = n.mapPass.texture, p.uniforms.resolution.value = n.mapSize, p.uniforms.radius.value = n.radius, t.setRenderTarget(n.map), t.clear(), t.renderBufferDirect(i, null, r, p, f, null) } function v(t, e, n) { var i = t << 0 | e << 1 | n << 2 , r = s[i]; return void 0 === r && (r = new ks({ depthPacking: vn, morphTargets: t, skinning: e }), s[i] = r), r } function y(t, e, n) { var i = t << 0 | e << 1 | n << 2 , r = c[i]; return void 0 === r && (r = new Ds({ morphTargets: t, skinning: e }), c[i] = r), r } function b(e, n, i, r, o, a) { var s = e.geometry , c = null , d = v , p = e.customDepthMaterial; if (!0 === i.isPointLight && (d = y, p = e.customDistanceMaterial), void 0 === p) { var h = !1; !0 === n.morphTargets && (!0 === s.isBufferGeometry ? h = s.morphAttributes && s.morphAttributes.position && s.morphAttributes.position.length > 0 : !0 === s.isGeometry && (h = s.morphTargets && s.morphTargets.length > 0)); var f = !1; !0 === e.isSkinnedMesh && (!0 === n.skinning ? f = !0 : console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:", e)), c = d(h, f, !0 === e.isInstancedMesh) } else c = p; if (t.localClippingEnabled && !0 === n.clipShadows && 0 !== n.clippingPlanes.length) { var m = c.uuid , g = n.uuid , b = l[m]; void 0 === b && (b = {}, l[m] = b); var w = b[g]; void 0 === w && (w = c.clone(), b[g] = w), c = w } return c.visible = n.visible, c.wireframe = n.wireframe, c.side = a === C ? null !== n.shadowSide ? n.shadowSide : n.side : null !== n.shadowSide ? n.shadowSide : u[n.side], c.clipShadows = n.clipShadows, c.clippingPlanes = n.clippingPlanes, c.clipIntersection = n.clipIntersection, c.wireframeLinewidth = n.wireframeLinewidth, c.linewidth = n.linewidth, !0 === i.isPointLight && !0 === c.isMeshDistanceMaterial && (c.referencePosition.setFromMatrixPosition(i.matrixWorld), c.nearDistance = r, c.farDistance = o), c } function w(n, r, o, a, s) { if (!1 !== n.visible) { if (n.layers.test(r.layers) && (n.isMesh || n.isLine || n.isPoints) && (n.castShadow || n.receiveShadow && s === C) && (!n.frustumCulled || i.intersectsObject(n))) { n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse, n.matrixWorld); var c = e.update(n) , l = n.material; if (Array.isArray(l)) for (var u = c.groups, d = 0, p = u.length; d < p; d++) { var h = u[d] , f = l[h.materialIndex]; if (f && f.visible) { var m = b(n, f, a, o.near, o.far, s); t.renderBufferDirect(o, null, c, m, n, h) } } else if (l.visible) { m = b(n, l, a, o.near, o.far, s); t.renderBufferDirect(o, null, c, m, n, null) } } for (var g = n.children, v = 0, y = g.length; v < y; v++) w(g[v], r, o, a, s) } } this.enabled = !1, this.autoUpdate = !0, this.needsUpdate = !1, this.type = M, this.render = function(e, s, c) { if (!1 !== m.enabled && (!1 !== m.autoUpdate || !1 !== m.needsUpdate) && 0 !== e.length) { var l = t.getRenderTarget() , u = t.getActiveCubeFace() , d = t.getActiveMipmapLevel() , p = t.state; p.setBlending(I), p.buffers.color.setClear(1, 1, 1, 1), p.buffers.depth.setTest(!0), p.setScissorTest(!1); for (var h = 0, f = e.length; h < f; h++) { var v = e[h] , y = v.shadow; if (void 0 !== y) { r.copy(y.mapSize); var b = y.getFrameExtents(); if (r.multiply(b), o.copy(y.mapSize), (r.x > n || r.y > n) && (console.warn("THREE.WebGLShadowMap:", v, "has shadow exceeding max texture size, reducing"), r.x > n && (o.x = Math.floor(n / b.x), r.x = o.x * b.x, y.mapSize.x = o.x), r.y > n && (o.y = Math.floor(n / b.y), r.y = o.y * b.y, y.mapSize.y = o.y)), null === y.map && !y.isPointLightShadow && this.type === C) { var S = { minFilter: kt, magFilter: kt, format: Jt }; y.map = new ni(r.x,r.y,S), y.map.texture.name = v.name + ".shadowMap", y.mapPass = new ni(r.x,r.y,S), y.camera.updateProjectionMatrix() } if (null === y.map) { S = { minFilter: Tt, magFilter: Tt, format: Jt }; y.map = new ni(r.x,r.y,S), y.map.texture.name = v.name + ".shadowMap", y.camera.updateProjectionMatrix() } t.setRenderTarget(y.map), t.clear(); for (var x = y.getViewportCount(), M = 0; M < x; M++) { var E = y.getViewport(M); a.set(o.x * E.x, o.y * E.y, o.x * E.z, o.y * E.w), p.viewport(a), y.updateMatrices(v, M), i = y.getFrustum(), w(s, c, y.camera, v, this.type) } y.isPointLightShadow || this.type !== C || g(y, c) } else console.warn("THREE.WebGLShadowMap:", v, "has no shadow.") } m.needsUpdate = !1, t.setRenderTarget(l, u, d) } } } function Ls(t, e, n) { var i, o, a = n.isWebGL2; var s = new function() { var e = !1 , n = new ei , i = null , r = new ei(0,0,0,0); return { setMask: function(n) { i === n || e || (t.colorMask(n, n, n, n), i = n) }, setLocked: function(t) { e = t }, setClear: function(e, i, o, a, s) { !0 === s && (e *= a, i *= a, o *= a), n.set(e, i, o, a), !1 === r.equals(n) && (t.clearColor(e, i, o, a), r.copy(n)) }, reset: function() { e = !1, i = null, r.set(-1, 0, 0, 0) } } } , c = new function() { var e = !1 , n = null , i = null , r = null; return { setTest: function(t) { t ? xt(2929) : Mt(2929) }, setMask: function(i) { n === i || e || (t.depthMask(i), n = i) }, setFunc: function(e) { if (i !== e) { if (e) switch (e) { case $: t.depthFunc(512); break; case tt: t.depthFunc(519); break; case et: t.depthFunc(513); break; case nt: t.depthFunc(515); break; case it: t.depthFunc(514); break; case rt: t.depthFunc(518); break; case ot: t.depthFunc(516); break; case at: t.depthFunc(517); break; default: t.depthFunc(515) } else t.depthFunc(515); i = e } }, setLocked: function(t) { e = t }, setClear: function(e) { r !== e && (t.clearDepth(e), r = e) }, reset: function() { e = !1, n = null, i = null, r = null } } } , l = new function() { var e = !1 , n = null , i = null , r = null , o = null , a = null , s = null , c = null , l = null; return { setTest: function(t) { e || (t ? xt(2960) : Mt(2960)) }, setMask: function(i) { n === i || e || (t.stencilMask(i), n = i) }, setFunc: function(e, n, a) { i === e && r === n && o === a || (t.stencilFunc(e, n, a), i = e, r = n, o = a) }, setOp: function(e, n, i) { a === e && s === n && c === i || (t.stencilOp(e, n, i), a = e, s = n, c = i) }, setLocked: function(t) { e = t }, setClear: function(e) { l !== e && (t.clearStencil(e), l = e) }, reset: function() { e = !1, n = null, i = null, r = null, o = null, a = null, s = null, c = null, l = null } } } , u = t.getParameter(34921) , d = new Uint8Array(u) , p = new Uint8Array(u) , h = new Uint8Array(u) , f = {} , m = null , b = null , w = null , S = null , x = null , M = null , E = null , C = null , A = null , _ = !1 , P = null , st = null , ct = null , lt = null , ut = null , dt = t.getParameter(35661) , pt = !1 , ht = 0 , ft = t.getParameter(7938); -1 !== ft.indexOf("WebGL") ? (ht = parseFloat(/^WebGL\ ([0-9])/.exec(ft)[1]), pt = ht >= 1) : -1 !== ft.indexOf("OpenGL ES") && (ht = parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(ft)[1]), pt = ht >= 2); var mt = null , gt = {} , vt = new ei , yt = new ei; function bt(e, n, i) { var r = new Uint8Array(4) , o = t.createTexture(); t.bindTexture(e, o), t.texParameteri(e, 10241, 9728), t.texParameteri(e, 10240, 9728); for (var a = 0; a < i; a++) t.texImage2D(n + a, 0, 6408, 1, 1, 0, 6408, 5121, r); return o } var wt = {}; function St(n, i) { (d[n] = 1, 0 === p[n] && (t.enableVertexAttribArray(n), p[n] = 1), h[n] !== i) && ((a ? t : e.get("ANGLE_instanced_arrays"))[a ? "vertexAttribDivisor" : "vertexAttribDivisorANGLE"](n, i), h[n] = i) } function xt(e) { !0 !== f[e] && (t.enable(e), f[e] = !0) } function Mt(e) { !1 !== f[e] && (t.disable(e), f[e] = !1) } wt[3553] = bt(3553, 3553, 1), wt[34067] = bt(34067, 34069, 6), s.setClear(0, 0, 0, 1), c.setClear(1), l.setClear(0), xt(2929), c.setFunc(nt), Ot(!1), _t(v), xt(2884), Tt(I); var Et = (r(i = {}, j, 32774), r(i, V, 32778), r(i, F, 32779), i); if (a) Et[U] = 32775, Et[B] = 32776; else { var Ct = e.get("EXT_blend_minmax"); null !== Ct && (Et[U] = Ct.MIN_EXT, Et[B] = Ct.MAX_EXT) } var At = (r(o = {}, z, 0), r(o, G, 1), r(o, H, 768), r(o, q, 770), r(o, Q, 776), r(o, Z, 774), r(o, Y, 772), r(o, W, 769), r(o, X, 771), r(o, J, 775), r(o, K, 773), o); function Tt(e, n, i, r, o, a, s, c) { if (e !== I) { if (b || (xt(3042), b = !0), e === N) o = o || n, a = a || i, s = s || r, n === S && o === E || (t.blendEquationSeparate(Et[n], Et[o]), S = n, E = o), i === x && r === M && a === C && s === A || (t.blendFuncSeparate(At[i], At[r], At[a], At[s]), x = i, M = r, C = a, A = s), w = e, _ = null; else if (e !== w || c !== _) { if (S === j && E === j || (t.blendEquation(32774), S = j, E = j), c) switch (e) { case k: t.blendFuncSeparate(1, 771, 1, 771); break; case D: t.blendFunc(1, 1); break; case R: t.blendFuncSeparate(0, 0, 769, 771); break; case L: t.blendFuncSeparate(0, 768, 0, 770); break; default: console.error("THREE.WebGLState: Invalid blending: ", e) } else switch (e) { case k: t.blendFuncSeparate(770, 771, 1, 771); break; case D: t.blendFunc(770, 1); break; case R: t.blendFunc(0, 769); break; case L: t.blendFunc(0, 768); break; default: console.error("THREE.WebGLState: Invalid blending: ", e) } x = null, M = null, C = null, A = null, w = e, _ = c } } else b && (Mt(3042), b = !1) } function Ot(e) { P !== e && (e ? t.frontFace(2304) : t.frontFace(2305), P = e) } function _t(e) { e !== g ? (xt(2884), e !== st && (e === v ? t.cullFace(1029) : e === y ? t.cullFace(1028) : t.cullFace(1032))) : Mt(2884), st = e } function Pt(e, n, i) { e ? (xt(32823), lt === n && ut === i || (t.polygonOffset(n, i), lt = n, ut = i)) : Mt(32823) } function It(e) { void 0 === e && (e = 33984 + dt - 1), mt !== e && (t.activeTexture(e), mt = e) } return { buffers: { color: s, depth: c, stencil: l }, initAttributes: function() { for (var t = 0, e = d.length; t < e; t++) d[t] = 0 }, enableAttribute: function(t) { St(t, 0) }, enableAttributeAndDivisor: St, disableUnusedAttributes: function() { for (var e = 0, n = p.length; e !== n; ++e) p[e] !== d[e] && (t.disableVertexAttribArray(e), p[e] = 0) }, enable: xt, disable: Mt, useProgram: function(e) { return m !== e && (t.useProgram(e), m = e, !0) }, setBlending: Tt, setMaterial: function(t, e) { t.side === O ? Mt(2884) : xt(2884); var n = t.side === T; e && (n = !n), Ot(n), t.blending === k && !1 === t.transparent ? Tt(I) : Tt(t.blending, t.blendEquation, t.blendSrc, t.blendDst, t.blendEquationAlpha, t.blendSrcAlpha, t.blendDstAlpha, t.premultipliedAlpha), c.setFunc(t.depthFunc), c.setTest(t.depthTest), c.setMask(t.depthWrite), s.setMask(t.colorWrite); var i = t.stencilWrite; l.setTest(i), i && (l.setMask(t.stencilWriteMask), l.setFunc(t.stencilFunc, t.stencilRef, t.stencilFuncMask), l.setOp(t.stencilFail, t.stencilZFail, t.stencilZPass)), Pt(t.polygonOffset, t.polygonOffsetFactor, t.polygonOffsetUnits) }, setFlipSided: Ot, setCullFace: _t, setLineWidth: function(e) { e !== ct && (pt && t.lineWidth(e), ct = e) }, setPolygonOffset: Pt, setScissorTest: function(t) { t ? xt(3089) : Mt(3089) }, activeTexture: It, bindTexture: function(e, n) { null === mt && It(); var i = gt[mt]; void 0 === i && (i = { type: void 0, texture: void 0 }, gt[mt] = i), i.type === e && i.texture === n || (t.bindTexture(e, n || wt[e]), i.type = e, i.texture = n) }, unbindTexture: function() { var e = gt[mt]; void 0 !== e && void 0 !== e.type && (t.bindTexture(e.type, null), e.type = void 0, e.texture = void 0) }, compressedTexImage2D: function() { try { t.compressedTexImage2D.apply(t, arguments) } catch (t) { console.error("THREE.WebGLState:", t) } }, texImage2D: function() { try { t.texImage2D.apply(t, arguments) } catch (t) { console.error("THREE.WebGLState:", t) } }, texImage3D: function() { try { t.texImage3D.apply(t, arguments) } catch (t) { console.error("THREE.WebGLState:", t) } }, scissor: function(e) { !1 === vt.equals(e) && (t.scissor(e.x, e.y, e.z, e.w), vt.copy(e)) }, viewport: function(e) { !1 === yt.equals(e) && (t.viewport(e.x, e.y, e.z, e.w), yt.copy(e)) }, reset: function() { for (var e = 0; e < p.length; e++) 1 === p[e] && (t.disableVertexAttribArray(e), p[e] = 0); f = {}, mt = null, gt = {}, m = null, w = null, P = null, st = null, s.reset(), c.reset(), l.reset() } } } function Ns(t, e, n, i, o, a, s) { var c, l, u, d = o.isWebGL2, p = o.maxTextures, h = o.maxCubemapSize, f = o.maxTextureSize, m = o.maxSamples, g = new WeakMap, v = !1; try { v = "undefined" != typeof OffscreenCanvas && null !== new OffscreenCanvas(1,1).getContext("2d") } catch (t) {} function y(t, e) { return v ? new OffscreenCanvas(t,e) : document.createElementNS("http://www.w3.org/1999/xhtml", "canvas") } function b(t, e, n, i) { var r = 1; if ((t.width > i || t.height > i) && (r = i / Math.max(t.width, t.height)), r < 1 || !0 === e) { if ("undefined" != typeof HTMLImageElement && t instanceof HTMLImageElement || "undefined" != typeof HTMLCanvasElement && t instanceof HTMLCanvasElement || "undefined" != typeof ImageBitmap && t instanceof ImageBitmap) { var o = e ? Kn.floorPowerOfTwo : Math.floor , a = o(r * t.width) , s = o(r * t.height); void 0 === u && (u = y(a, s)); var c = n ? y(a, s) : u; return c.width = a, c.height = s, c.getContext("2d").drawImage(t, 0, 0, a, s), console.warn("THREE.WebGLRenderer: Texture has been resized from (" + t.width + "x" + t.height + ") to (" + a + "x" + s + ")."), c } return "data"in t && console.warn("THREE.WebGLRenderer: Image in DataTexture is too big (" + t.width + "x" + t.height + ")."), t } return t } function w(t) { return Kn.isPowerOfTwo(t.width) && Kn.isPowerOfTwo(t.height) } function S(t, e) { return t.generateMipmaps && e && t.minFilter !== Tt && t.minFilter !== kt } function x(e, n, r, o) { t.generateMipmap(e), i.get(n).__maxMipLevel = Math.log(Math.max(r, o)) * Math.LOG2E } function M(n, i, r) { if (!1 === d) return i; if (null !== n) { if (void 0 !== t[n]) return t[n]; console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '" + n + "'") } var o = i; return 6403 === i && (5126 === r && (o = 33326), 5131 === r && (o = 33325), 5121 === r && (o = 33321)), 6407 === i && (5126 === r && (o = 34837), 5131 === r && (o = 34843), 5121 === r && (o = 32849)), 6408 === i && (5126 === r && (o = 34836), 5131 === r && (o = 34842), 5121 === r && (o = 32856)), 33325 !== o && 33326 !== o && 34842 !== o && 34836 !== o || e.get("EXT_color_buffer_float"), o } function E(t) { return t === Tt || t === Ot || t === Pt ? 9728 : 9729 } function C(e) { var n = e.target; n.removeEventListener("dispose", C), function(e) { var n = i.get(e); if (void 0 === n.__webglInit) return; t.deleteTexture(n.__webglTexture), i.remove(e) }(n), n.isVideoTexture && g.delete(n), s.memory.textures-- } function A(e) { var n = e.target; n.removeEventListener("dispose", A), function(e) { var n = i.get(e) , r = i.get(e.texture); if (!e) return; void 0 !== r.__webglTexture && t.deleteTexture(r.__webglTexture); e.depthTexture && e.depthTexture.dispose(); if (e.isWebGLCubeRenderTarget) for (var o = 0; o < 6; o++) t.deleteFramebuffer(n.__webglFramebuffer[o]), n.__webglDepthbuffer && t.deleteRenderbuffer(n.__webglDepthbuffer[o]); else t.deleteFramebuffer(n.__webglFramebuffer), n.__webglDepthbuffer && t.deleteRenderbuffer(n.__webglDepthbuffer), n.__webglMultisampledFramebuffer && t.deleteFramebuffer(n.__webglMultisampledFramebuffer), n.__webglColorRenderbuffer && t.deleteRenderbuffer(n.__webglColorRenderbuffer), n.__webglDepthRenderbuffer && t.deleteRenderbuffer(n.__webglDepthRenderbuffer); i.remove(e.texture), i.remove(e) }(n), s.memory.textures-- } var T = 0; function O(t, e) { var r = i.get(t); if (t.isVideoTexture && function(t) { var e = s.render.frame; g.get(t) !== e && (g.set(t, e), t.update()) }(t), t.version > 0 && r.__version !== t.version) { var o = t.image; if (void 0 === o) console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined"); else { if (!1 !== o.complete) return void L(r, t, e); console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete") } } n.activeTexture(33984 + e), n.bindTexture(3553, r.__webglTexture) } function _(e, r) { if (6 === e.image.length) { var o = i.get(e); if (e.version > 0 && o.__version !== e.version) { R(o, e), n.activeTexture(33984 + r), n.bindTexture(34067, o.__webglTexture), t.pixelStorei(37440, e.flipY); for (var s = e && (e.isCompressedTexture || e.image[0].isCompressedTexture), c = e.image[0] && e.image[0].isDataTexture, l = [], u = 0; u < 6; u++) l[u] = s || c ? c ? e.image[u].image : e.image[u] : b(e.image[u], !1, !0, h); var p, f = l[0], m = w(f) || d, g = a.convert(e.format), v = a.convert(e.type), y = M(e.internalFormat, g, v); if (D(34067, e, m), s) { for (u = 0; u < 6; u++) { p = l[u].mipmaps; for (var E = 0; E < p.length; E++) { var C = p[E]; e.format !== Jt && e.format !== Zt ? null !== g ? n.compressedTexImage2D(34069 + u, E, y, C.width, C.height, 0, C.data) : console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()") : n.texImage2D(34069 + u, E, y, C.width, C.height, 0, g, v, C.data) } } o.__maxMipLevel = p.length - 1 } else { p = e.mipmaps; for (u = 0; u < 6; u++) if (c) { n.texImage2D(34069 + u, 0, y, l[u].width, l[u].height, 0, g, v, l[u].data); for (E = 0; E < p.length; E++) { var A = (C = p[E]).image[u].image; n.texImage2D(34069 + u, E + 1, y, A.width, A.height, 0, g, v, A.data) } } else { n.texImage2D(34069 + u, 0, y, g, v, l[u]); for (E = 0; E < p.length; E++) { C = p[E]; n.texImage2D(34069 + u, E + 1, y, g, v, C.image[u]) } } o.__maxMipLevel = p.length } S(e, m) && x(34067, e, f.width, f.height), o.__version = e.version, e.onUpdate && e.onUpdate(e) } else n.activeTexture(33984 + r), n.bindTexture(34067, o.__webglTexture) } } function P(t, e) { n.activeTexture(33984 + e), n.bindTexture(34067, i.get(t).__webglTexture) } var I = (r(c = {}, Et, 10497), r(c, Ct, 33071), r(c, At, 33648), c) , k = (r(l = {}, Tt, 9728), r(l, Ot, 9984), r(l, Pt, 9986), r(l, kt, 9729), r(l, Dt, 9985), r(l, Lt, 9987), l); function D(n, r, a) { a ? (t.texParameteri(n, 10242, I[r.wrapS]), t.texParameteri(n, 10243, I[r.wrapT]), 32879 !== n && 35866 !== n || t.texParameteri(n, 32882, I[r.wrapR]), t.texParameteri(n, 10240, k[r.magFilter]), t.texParameteri(n, 10241, k[r.minFilter])) : (t.texParameteri(n, 10242, 33071), t.texParameteri(n, 10243, 33071), 32879 !== n && 35866 !== n || t.texParameteri(n, 32882, 33071), r.wrapS === Ct && r.wrapT === Ct || console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."), t.texParameteri(n, 10240, E(r.magFilter)), t.texParameteri(n, 10241, E(r.minFilter)), r.minFilter !== Tt && r.minFilter !== kt && console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")); var s = e.get("EXT_texture_filter_anisotropic"); if (s) { if (r.type === Gt && null === e.get("OES_texture_float_linear")) return; if (r.type === Ht && null === (d || e.get("OES_texture_half_float_linear"))) return; (r.anisotropy > 1 || i.get(r).__currentAnisotropy) && (t.texParameterf(n, s.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(r.anisotropy, o.getMaxAnisotropy())), i.get(r).__currentAnisotropy = r.anisotropy) } } function R(e, n) { void 0 === e.__webglInit && (e.__webglInit = !0, n.addEventListener("dispose", C), e.__webglTexture = t.createTexture(), s.memory.textures++) } function L(e, i, r) { var o = 3553; i.isDataTexture2DArray && (o = 35866), i.isDataTexture3D && (o = 32879), R(e, i), n.activeTexture(33984 + r), n.bindTexture(o, e.__webglTexture), t.pixelStorei(37440, i.flipY), t.pixelStorei(37441, i.premultiplyAlpha), t.pixelStorei(3317, i.unpackAlignment); var s = function(t) { return !d && (t.wrapS !== Ct || t.wrapT !== Ct || t.minFilter !== Tt && t.minFilter !== kt) }(i) && !1 === w(i.image) , c = b(i.image, s, !1, f) , l = w(c) || d , u = a.convert(i.format) , p = a.convert(i.type) , h = M(i.internalFormat, u, p); D(o, i, l); var m, g = i.mipmaps; if (i.isDepthTexture) h = 6402, d ? h = i.type === Gt ? 36012 : i.type === zt ? 33190 : i.type === Yt ? 35056 : 33189 : i.type === Gt && console.error("WebGLRenderer: Floating point depth texture requires WebGL2."), i.format === ee && 6402 === h && i.type !== Ut && i.type !== zt && (console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."), i.type = Ut, p = a.convert(i.type)), i.format === ne && 6402 === h && (h = 34041, i.type !== Yt && (console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."), i.type = Yt, p = a.convert(i.type))), n.texImage2D(3553, 0, h, c.width, c.height, 0, u, p, null); else if (i.isDataTexture) if (g.length > 0 && l) { for (var v = 0, y = g.length; v < y; v++) m = g[v], n.texImage2D(3553, v, h, m.width, m.height, 0, u, p, m.data); i.generateMipmaps = !1, e.__maxMipLevel = g.length - 1 } else n.texImage2D(3553, 0, h, c.width, c.height, 0, u, p, c.data), e.__maxMipLevel = 0; else if (i.isCompressedTexture) { for (v = 0, y = g.length; v < y; v++) m = g[v], i.format !== Jt && i.format !== Zt ? null !== u ? n.compressedTexImage2D(3553, v, h, m.width, m.height, 0, m.data) : console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()") : n.texImage2D(3553, v, h, m.width, m.height, 0, u, p, m.data); e.__maxMipLevel = g.length - 1 } else if (i.isDataTexture2DArray) n.texImage3D(35866, 0, h, c.width, c.height, c.depth, 0, u, p, c.data), e.__maxMipLevel = 0; else if (i.isDataTexture3D) n.texImage3D(32879, 0, h, c.width, c.height, c.depth, 0, u, p, c.data), e.__maxMipLevel = 0; else if (g.length > 0 && l) { for (v = 0, y = g.length; v < y; v++) m = g[v], n.texImage2D(3553, v, h, u, p, m); i.generateMipmaps = !1, e.__maxMipLevel = g.length - 1 } else n.texImage2D(3553, 0, h, u, p, c), e.__maxMipLevel = 0; S(i, l) && x(o, i, c.width, c.height), e.__version = i.version, i.onUpdate && i.onUpdate(i) } function N(e, r, o, s) { var c = a.convert(r.texture.format) , l = a.convert(r.texture.type) , u = M(r.texture.internalFormat, c, l); n.texImage2D(s, 0, u, r.width, r.height, 0, c, l, null), t.bindFramebuffer(36160, e), t.framebufferTexture2D(36160, o, s, i.get(r.texture).__webglTexture, 0), t.bindFramebuffer(36160, null) } function j(e, n, i) { if (t.bindRenderbuffer(36161, e), n.depthBuffer && !n.stencilBuffer) { var r = 33189; if (i) { var o = n.depthTexture; o && o.isDepthTexture && (o.type === Gt ? r = 36012 : o.type === zt && (r = 33190)); var s = F(n); t.renderbufferStorageMultisample(36161, s, r, n.width, n.height) } else t.renderbufferStorage(36161, r, n.width, n.height); t.framebufferRenderbuffer(36160, 36096, 36161, e) } else if (n.depthBuffer && n.stencilBuffer) { if (i) { s = F(n); t.renderbufferStorageMultisample(36161, s, 35056, n.width, n.height) } else t.renderbufferStorage(36161, 34041, n.width, n.height); t.framebufferRenderbuffer(36160, 33306, 36161, e) } else { var c = a.convert(n.texture.format) , l = a.convert(n.texture.type); r = M(n.texture.internalFormat, c, l); if (i) { s = F(n); t.renderbufferStorageMultisample(36161, s, r, n.width, n.height) } else t.renderbufferStorage(36161, r, n.width, n.height) } t.bindRenderbuffer(36161, null) } function V(e) { var n = i.get(e) , r = !0 === e.isWebGLCubeRenderTarget; if (e.depthTexture) { if (r) throw new Error("target.depthTexture not supported in Cube render targets"); !function(e, n) { if (n && n.isWebGLCubeRenderTarget) throw new Error("Depth Texture with cube render targets is not supported"); if (t.bindFramebuffer(36160, e), !n.depthTexture || !n.depthTexture.isDepthTexture) throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture"); i.get(n.depthTexture).__webglTexture && n.depthTexture.image.width === n.width && n.depthTexture.image.height === n.height || (n.depthTexture.image.width = n.width, n.depthTexture.image.height = n.height, n.depthTexture.needsUpdate = !0), O(n.depthTexture, 0); var r = i.get(n.depthTexture).__webglTexture; if (n.depthTexture.format === ee) t.framebufferTexture2D(36160, 36096, 3553, r, 0); else { if (n.depthTexture.format !== ne) throw new Error("Unknown depthTexture format"); t.framebufferTexture2D(36160, 33306, 3553, r, 0) } }(n.__webglFramebuffer, e) } else if (r) { n.__webglDepthbuffer = []; for (var o = 0; o < 6; o++) t.bindFramebuffer(36160, n.__webglFramebuffer[o]), n.__webglDepthbuffer[o] = t.createRenderbuffer(), j(n.__webglDepthbuffer[o], e, !1) } else t.bindFramebuffer(36160, n.__webglFramebuffer), n.__webglDepthbuffer = t.createRenderbuffer(), j(n.__webglDepthbuffer, e, !1); t.bindFramebuffer(36160, null) } function F(t) { return d && t.isWebGLMultisampleRenderTarget ? Math.min(m, t.samples) : 0 } var U = !1 , B = !1; this.allocateTextureUnit = function() { var t = T; return t >= p && console.warn("THREE.WebGLTextures: Trying to use " + t + " texture units while this GPU supports only " + p), T += 1, t } , this.resetTextureUnits = function() { T = 0 } , this.setTexture2D = O, this.setTexture2DArray = function(t, e) { var r = i.get(t); t.version > 0 && r.__version !== t.version ? L(r, t, e) : (n.activeTexture(33984 + e), n.bindTexture(35866, r.__webglTexture)) } , this.setTexture3D = function(t, e) { var r = i.get(t); t.version > 0 && r.__version !== t.version ? L(r, t, e) : (n.activeTexture(33984 + e), n.bindTexture(32879, r.__webglTexture)) } , this.setTextureCube = _, this.setTextureCubeDynamic = P, this.setupRenderTarget = function(e) { var r = i.get(e) , o = i.get(e.texture); e.addEventListener("dispose", A), o.__webglTexture = t.createTexture(), s.memory.textures++; var c = !0 === e.isWebGLCubeRenderTarget , l = !0 === e.isWebGLMultisampleRenderTarget , u = w(e) || d; if (!d || e.texture.format !== Zt || e.texture.type !== Gt && e.texture.type !== Ht || (e.texture.format = Jt, console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")), c) { r.__webglFramebuffer = []; for (var p = 0; p < 6; p++) r.__webglFramebuffer[p] = t.createFramebuffer() } else if (r.__webglFramebuffer = t.createFramebuffer(), l) if (d) { r.__webglMultisampledFramebuffer = t.createFramebuffer(), r.__webglColorRenderbuffer = t.createRenderbuffer(), t.bindRenderbuffer(36161, r.__webglColorRenderbuffer); var h = a.convert(e.texture.format) , f = a.convert(e.texture.type) , m = M(e.texture.internalFormat, h, f) , g = F(e); t.renderbufferStorageMultisample(36161, g, m, e.width, e.height), t.bindFramebuffer(36160, r.__webglMultisampledFramebuffer), t.framebufferRenderbuffer(36160, 36064, 36161, r.__webglColorRenderbuffer), t.bindRenderbuffer(36161, null), e.depthBuffer && (r.__webglDepthRenderbuffer = t.createRenderbuffer(), j(r.__webglDepthRenderbuffer, e, !0)), t.bindFramebuffer(36160, null) } else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2."); if (c) { n.bindTexture(34067, o.__webglTexture), D(34067, e.texture, u); for (p = 0; p < 6; p++) N(r.__webglFramebuffer[p], e, 36064, 34069 + p); S(e.texture, u) && x(34067, e.texture, e.width, e.height), n.bindTexture(34067, null) } else n.bindTexture(3553, o.__webglTexture), D(3553, e.texture, u), N(r.__webglFramebuffer, e, 36064, 3553), S(e.texture, u) && x(3553, e.texture, e.width, e.height), n.bindTexture(3553, null); e.depthBuffer && V(e) } , this.updateRenderTargetMipmap = function(t) { var e = t.texture; if (S(e, w(t) || d)) { var r = t.isWebGLCubeRenderTarget ? 34067 : 3553 , o = i.get(e).__webglTexture; n.bindTexture(r, o), x(r, e, t.width, t.height), n.bindTexture(r, null) } } , this.updateMultisampleRenderTarget = function(e) { if (e.isWebGLMultisampleRenderTarget) if (d) { var n = i.get(e); t.bindFramebuffer(36008, n.__webglMultisampledFramebuffer), t.bindFramebuffer(36009, n.__webglFramebuffer); var r = e.width , o = e.height , a = 16384; e.depthBuffer && (a |= 256), e.stencilBuffer && (a |= 1024), t.blitFramebuffer(0, 0, r, o, 0, 0, r, o, a, 9728), t.bindFramebuffer(36160, n.__webglMultisampledFramebuffer) } else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.") } , this.safeSetTexture2D = function(t, e) { t && t.isWebGLRenderTarget && (!1 === U && (console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."), U = !0), t = t.texture), O(t, e) } , this.safeSetTextureCube = function(t, e) { t && t.isWebGLCubeRenderTarget && (!1 === B && (console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."), B = !0), t = t.texture), t && t.isCubeTexture || Array.isArray(t.image) && 6 === t.image.length ? _(t, e) : P(t, e) } } function js(t, e, n) { var i = n.isWebGL2; return { convert: function(t) { var n; if (t === jt) return 5121; if (t === Wt) return 32819; if (t === qt) return 32820; if (t === Xt) return 33635; if (t === Vt) return 5120; if (t === Ft) return 5122; if (t === Ut) return 5123; if (t === Bt) return 5124; if (t === zt) return 5125; if (t === Gt) return 5126; if (t === Ht) return i ? 5131 : null !== (n = e.get("OES_texture_half_float")) ? n.HALF_FLOAT_OES : null; if (t === Kt) return 6406; if (t === Zt) return 6407; if (t === Jt) return 6408; if (t === Qt) return 6409; if (t === $t) return 6410; if (t === ee) return 6402; if (t === ne) return 34041; if (t === ie) return 6403; if (t === re) return 36244; if (t === oe) return 33319; if (t === ae) return 33320; if (t === se) return 36248; if (t === ce) return 36249; if (t === le || t === ue || t === de || t === pe) { if (null === (n = e.get("WEBGL_compressed_texture_s3tc"))) return null; if (t === le) return n.COMPRESSED_RGB_S3TC_DXT1_EXT; if (t === ue) return n.COMPRESSED_RGBA_S3TC_DXT1_EXT; if (t === de) return n.COMPRESSED_RGBA_S3TC_DXT3_EXT; if (t === pe) return n.COMPRESSED_RGBA_S3TC_DXT5_EXT } if (t === he || t === fe || t === me || t === ge) { if (null === (n = e.get("WEBGL_compressed_texture_pvrtc"))) return null; if (t === he) return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; if (t === fe) return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; if (t === me) return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; if (t === ge) return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG } if (t === ve) return null !== (n = e.get("WEBGL_compressed_texture_etc1")) ? n.COMPRESSED_RGB_ETC1_WEBGL : null; if ((t === ye || t === be) && null !== (n = e.get("WEBGL_compressed_texture_etc"))) { if (t === ye) return n.COMPRESSED_RGB8_ETC2; if (t === be) return n.COMPRESSED_RGBA8_ETC2_EAC } return t === we || t === Se || t === xe || t === Me || t === Ee || t === Ce || t === Ae || t === Te || t === Oe || t === _e || t === Pe || t === Ie || t === ke || t === De || t === Le || t === Ne || t === je || t === Ve || t === Fe || t === Ue || t === Be || t === ze || t === Ge || t === He || t === We || t === qe || t === Xe || t === Ye ? null !== (n = e.get("WEBGL_compressed_texture_astc")) ? t : null : t === Re ? null !== (n = e.get("EXT_texture_compression_bptc")) ? t : null : t === Yt ? i ? 34042 : null !== (n = e.get("WEBGL_depth_texture")) ? n.UNSIGNED_INT_24_8_WEBGL : null : void 0 } } } function Vs(t) { ko.call(this), this.cameras = t || [] } function Fs() { Di.call(this), this.type = "Group" } function Us(t, e) { var n = this , i = null , r = 1 , o = null , a = "local-floor" , s = null , c = [] , l = new Map , u = new ko; u.layers.enable(1), u.viewport = new ei; var d = new ko; d.layers.enable(2), d.viewport = new ei; var p = new Vs([u, d]); p.layers.enable(1), p.layers.enable(2); var h = null , f = null; function m(t) { var e = l.get(t.inputSource); e && (e.targetRay && e.targetRay.dispatchEvent({ type: t.type }), e.grip && e.grip.dispatchEvent({ type: t.type })) } function g() { l.forEach((function(t, e) { t.targetRay && (t.targetRay.dispatchEvent({ type: "disconnected", data: e }), t.targetRay.visible = !1), t.grip && (t.grip.dispatchEvent({ type: "disconnected", data: e }), t.grip.visible = !1) } )), l.clear(), t.setFramebuffer(null), t.setRenderTarget(t.getRenderTarget()), M.stop(), n.isPresenting = !1, n.dispatchEvent({ type: "sessionend" }) } function v(t) { o = t, M.setContext(i), M.start(), n.isPresenting = !0, n.dispatchEvent({ type: "sessionstart" }) } function y(t) { for (var e = i.inputSources, n = 0; n < c.length; n++) l.set(e[n], c[n]); for (n = 0; n < t.removed.length; n++) { var r = t.removed[n]; (o = l.get(r)) && (o.targetRay && o.targetRay.dispatchEvent({ type: "disconnected", data: r }), o.grip && o.grip.dispatchEvent({ type: "disconnected", data: r }), l.delete(r)) } for (n = 0; n < t.added.length; n++) { var o; r = t.added[n]; (o = l.get(r)) && (o.targetRay && o.targetRay.dispatchEvent({ type: "connected", data: r }), o.grip && o.grip.dispatchEvent({ type: "connected", data: r })) } } this.enabled = !1, this.isPresenting = !1, this.getController = function(t) { var e = c[t]; return void 0 === e && (e = {}, c[t] = e), void 0 === e.targetRay && (e.targetRay = new Fs, e.targetRay.matrixAutoUpdate = !1, e.targetRay.visible = !1), e.targetRay } , this.getControllerGrip = function(t) { var e = c[t]; return void 0 === e && (e = {}, c[t] = e), void 0 === e.grip && (e.grip = new Fs, e.grip.matrixAutoUpdate = !1, e.grip.visible = !1), e.grip } , this.setFramebufferScaleFactor = function(t) { r = t, 1 == n.isPresenting && console.warn("WebXRManager: Cannot change framebuffer scale while presenting VR content") } , this.setReferenceSpaceType = function(t) { a = t } , this.getReferenceSpace = function() { return o } , this.getSession = function() { return i } , this.setSession = function(t) { if (null !== (i = t)) { i.addEventListener("select", m), i.addEventListener("selectstart", m), i.addEventListener("selectend", m), i.addEventListener("squeeze", m), i.addEventListener("squeezestart", m), i.addEventListener("squeezeend", m), i.addEventListener("end", g); var n = e.getContextAttributes() , o = { antialias: n.antialias, alpha: n.alpha, depth: n.depth, stencil: n.stencil, framebufferScaleFactor: r } , s = new XRWebGLLayer(i,e,o); i.updateRenderState({ baseLayer: s }), i.requestReferenceSpace(a).then(v), i.addEventListener("inputsourceschange", y) } } ; var b = new si , w = new si; function S(t, e) { null === e ? t.matrixWorld.copy(t.matrix) : t.matrixWorld.multiplyMatrices(e.matrixWorld, t.matrix), t.matrixWorldInverse.getInverse(t.matrixWorld) } this.getCamera = function(t) { p.near = d.near = u.near = t.near, p.far = d.far = u.far = t.far, h === p.near && f === p.far || (i.updateRenderState({ depthNear: p.near, depthFar: p.far }), h = p.near, f = p.far); var e = t.parent , n = p.cameras; S(p, e); for (var r = 0; r < n.length; r++) S(n[r], e); t.matrixWorld.copy(p.matrixWorld); for (var o = t.children, a = (r = 0, o.length); r < a; r++) o[r].updateMatrixWorld(!0); return function(t, e, n) { b.setFromMatrixPosition(e.matrixWorld), w.setFromMatrixPosition(n.matrixWorld); var i = b.distanceTo(w) , r = e.projectionMatrix.elements , o = n.projectionMatrix.elements , a = r[14] / (r[10] - 1) , s = r[14] / (r[10] + 1) , c = (r[9] + 1) / r[5] , l = (r[9] - 1) / r[5] , u = (r[8] - 1) / r[0] , d = (o[8] + 1) / o[0] , p = a * u , h = a * d , f = i / (-u + d) , m = f * -u; e.matrixWorld.decompose(t.position, t.quaternion, t.scale), t.translateX(m), t.translateZ(f), t.matrixWorld.compose(t.position, t.quaternion, t.scale), t.matrixWorldInverse.getInverse(t.matrixWorld); var g = a + f , v = s + f , y = p - m , S = h + (i - m) , x = c * s / v * g , M = l * s / v * g; t.projectionMatrix.makePerspective(y, S, x, M, g, v) }(p, u, d), p } ; var x = null; var M = new Uo; M.setAnimationLoop((function(e, n) { if (null !== (s = n.getViewerPose(o))) { var r = s.views , a = i.renderState.baseLayer; t.setFramebuffer(a.framebuffer); for (var l = 0; l < r.length; l++) { var u = r[l] , d = a.getViewport(u) , h = p.cameras[l]; h.matrix.fromArray(u.transform.matrix), h.projectionMatrix.fromArray(u.projectionMatrix), h.viewport.set(d.x, d.y, d.width, d.height), 0 === l && p.matrix.copy(h.matrix) } } var f = i.inputSources; for (l = 0; l < c.length; l++) { var m = c[l] , g = f[l] , v = null , y = null; g && (m.targetRay && null !== (v = n.getPose(g.targetRaySpace, o)) && (m.targetRay.matrix.fromArray(v.transform.matrix), m.targetRay.matrix.decompose(m.targetRay.position, m.targetRay.rotation, m.targetRay.scale)), m.grip && g.gripSpace && null !== (y = n.getPose(g.gripSpace, o)) && (m.grip.matrix.fromArray(y.transform.matrix), m.grip.matrix.decompose(m.grip.position, m.grip.rotation, m.grip.scale))), m.targetRay && (m.targetRay.visible = null !== v), m.grip && (m.grip.visible = null !== y) } x && x(e, n) } )), this.setAnimationLoop = function(t) { x = t } , this.dispose = function() {} } function Bs(t) { var e = void 0 !== (t = t || {}).canvas ? t.canvas : document.createElementNS("http://www.w3.org/1999/xhtml", "canvas") , n = void 0 !== t.context ? t.context : null , i = void 0 !== t.alpha && t.alpha , r = void 0 === t.depth || t.depth , o = void 0 === t.stencil || t.stencil , a = void 0 !== t.antialias && t.antialias , s = void 0 === t.premultipliedAlpha || t.premultipliedAlpha , c = void 0 !== t.preserveDrawingBuffer && t.preserveDrawingBuffer , l = void 0 !== t.powerPreference ? t.powerPreference : "default" , u = void 0 !== t.failIfMajorPerformanceCaveat && t.failIfMajorPerformanceCaveat , d = null , p = null; 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.gammaFactor = 2, this.outputEncoding = cn, this.physicallyCorrectLights = !1, this.toneMapping = dt, this.toneMappingExposure = 1, this.toneMappingWhitePoint = 1, this.maxMorphTargets = 8, this.maxMorphNormals = 4; var h, f, m, g, v, y, b, w, S, x, M, E, C, A, O, _, P, I, k = this, D = !1, R = null, L = 0, N = 0, j = null, V = null, F = -1, U = { geometry: null, program: null, wireframe: !1 }, B = null, z = null, G = new ei, H = new ei, W = null, q = e.width, X = e.height, Y = 1, K = null, Z = null, J = new ei(0,0,q,X), Q = new ei(0,0,q,X), $ = !1, tt = new Vo, et = new Ko, nt = !1, it = !1, rt = new mi, ot = new si; function at() { return null === j ? Y : 1 } try { var st = { alpha: i, depth: r, stencil: o, antialias: a, premultipliedAlpha: s, preserveDrawingBuffer: c, powerPreference: l, failIfMajorPerformanceCaveat: u, xrCompatible: !0 }; if (e.addEventListener("webglcontextlost", pt, !1), e.addEventListener("webglcontextrestored", ht, !1), null === (h = n || e.getContext("webgl", st) || e.getContext("experimental-webgl", st))) throw null !== e.getContext("webgl") ? new Error("Error creating WebGL context with your selected attributes.") : new Error("Error creating WebGL context."); void 0 === h.getShaderPrecisionFormat && (h.getShaderPrecisionFormat = function() { return { rangeMin: 1, rangeMax: 1, precision: 1 } } ) } catch (t) { throw console.error("THREE.WebGLRenderer: " + t.message), t } function ct() { f = new Zo(h), !1 === (m = new Yo(h,f,t)).isWebGL2 && (f.get("WEBGL_depth_texture"), f.get("OES_texture_float"), f.get("OES_texture_half_float"), f.get("OES_texture_half_float_linear"), f.get("OES_standard_derivatives"), f.get("OES_element_index_uint"), f.get("ANGLE_instanced_arrays")), f.get("OES_texture_float_linear"), I = new js(h,f,m), (g = new Ls(h,f,m)).scissor(H.copy(Q).multiplyScalar(Y).floor()), g.viewport(G.copy(J).multiplyScalar(Y).floor()), v = new $o(h), y = new Ss, b = new Ns(h,f,g,y,m,I,v), w = new Bo(h,m), S = new Jo(h,w,v), x = new na(h,S,w,v), O = new ea(h), M = new ws(k,f,m), E = new Cs, C = new Is, A = new qo(k,g,x,s), _ = new Xo(h,f,v,m), P = new Qo(h,f,v,m), v.programs = M.programs, k.capabilities = m, k.extensions = f, k.properties = y, k.renderLists = E, k.state = g, k.info = v } ct(); var lt = new Us(k,h); this.xr = lt; var ut = new Rs(k,x,m.maxTextureSize); function pt(t) { t.preventDefault(), console.log("THREE.WebGLRenderer: Context Lost."), D = !0 } function ht() { console.log("THREE.WebGLRenderer: Context Restored."), D = !1, ct() } function ft(t) { var e = t.target; e.removeEventListener("dispose", ft), function(t) { mt(t), y.remove(t) }(e) } function mt(t) { var e = y.get(t).program; t.program = void 0, void 0 !== e && M.releaseProgram(e) } this.shadowMap = ut, this.getContext = function() { return h } , this.getContextAttributes = function() { return h.getContextAttributes() } , this.forceContextLoss = function() { var t = f.get("WEBGL_lose_context"); t && t.loseContext() } , this.forceContextRestore = function() { var t = f.get("WEBGL_lose_context"); t && t.restoreContext() } , this.getPixelRatio = function() { return Y } , this.setPixelRatio = function(t) { void 0 !== t && (Y = t, this.setSize(q, X, !1)) } , this.getSize = function(t) { return void 0 === t && (console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"), t = new Zn), t.set(q, X) } , this.setSize = function(t, n, i) { lt.isPresenting ? console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.") : (q = t, X = n, e.width = Math.floor(t * Y), e.height = Math.floor(n * Y), !1 !== i && (e.style.width = t + "px", e.style.height = n + "px"), this.setViewport(0, 0, t, n)) } , this.getDrawingBufferSize = function(t) { return void 0 === t && (console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"), t = new Zn), t.set(q * Y, X * Y).floor() } , this.setDrawingBufferSize = function(t, n, i) { q = t, X = n, Y = i, e.width = Math.floor(t * i), e.height = Math.floor(n * i), this.setViewport(0, 0, t, n) } , this.getCurrentViewport = function(t) { return void 0 === t && (console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"), t = new ei), t.copy(G) } , this.getViewport = function(t) { return t.copy(J) } , this.setViewport = function(t, e, n, i) { t.isVector4 ? J.set(t.x, t.y, t.z, t.w) : J.set(t, e, n, i), g.viewport(G.copy(J).multiplyScalar(Y).floor()) } , this.getScissor = function(t) { return t.copy(Q) } , this.setScissor = function(t, e, n, i) { t.isVector4 ? Q.set(t.x, t.y, t.z, t.w) : Q.set(t, e, n, i), g.scissor(H.copy(Q).multiplyScalar(Y).floor()) } , this.getScissorTest = function() { return $ } , this.setScissorTest = function(t) { g.setScissorTest($ = t) } , this.setOpaqueSort = function(t) { K = t } , this.setTransparentSort = function(t) { Z = t } , this.getClearColor = function() { return A.getClearColor() } , this.setClearColor = function() { A.setClearColor.apply(A, arguments) } , this.getClearAlpha = function() { return A.getClearAlpha() } , this.setClearAlpha = function() { A.setClearAlpha.apply(A, arguments) } , this.clear = function(t, e, n) { var i = 0; (void 0 === t || t) && (i |= 16384), (void 0 === e || e) && (i |= 256), (void 0 === n || n) && (i |= 1024), h.clear(i) } , this.clearColor = function() { this.clear(!0, !1, !1) } , this.clearDepth = function() { this.clear(!1, !0, !1) } , this.clearStencil = function() { this.clear(!1, !1, !0) } , this.dispose = function() { e.removeEventListener("webglcontextlost", pt, !1), e.removeEventListener("webglcontextrestored", ht, !1), E.dispose(), C.dispose(), y.dispose(), x.dispose(), lt.dispose(), yt.stop(), this.forceContextLoss() } , this.renderBufferImmediate = function(t, e) { g.initAttributes(); var n = y.get(t); t.hasPositions && !n.position && (n.position = h.createBuffer()), t.hasNormals && !n.normal && (n.normal = h.createBuffer()), t.hasUvs && !n.uv && (n.uv = h.createBuffer()), t.hasColors && !n.color && (n.color = h.createBuffer()); var i = e.getAttributes(); t.hasPositions && (h.bindBuffer(34962, n.position), h.bufferData(34962, t.positionArray, 35048), g.enableAttribute(i.position), h.vertexAttribPointer(i.position, 3, 5126, !1, 0, 0)), t.hasNormals && (h.bindBuffer(34962, n.normal), h.bufferData(34962, t.normalArray, 35048), g.enableAttribute(i.normal), h.vertexAttribPointer(i.normal, 3, 5126, !1, 0, 0)), t.hasUvs && (h.bindBuffer(34962, n.uv), h.bufferData(34962, t.uvArray, 35048), g.enableAttribute(i.uv), h.vertexAttribPointer(i.uv, 2, 5126, !1, 0, 0)), t.hasColors && (h.bindBuffer(34962, n.color), h.bufferData(34962, t.colorArray, 35048), g.enableAttribute(i.color), h.vertexAttribPointer(i.color, 3, 5126, !1, 0, 0)), g.disableUnusedAttributes(), h.drawArrays(4, 0, t.count), t.count = 0 } ; var gt = new Ri; this.renderBufferDirect = function(t, e, n, i, r, o) { null === e && (e = gt); var a = r.isMesh && r.matrixWorld.determinant() < 0 , s = Mt(t, e, i, r); g.setMaterial(i, a); var c = !1; U.geometry === n.id && U.program === s.id && U.wireframe === (!0 === i.wireframe) || (U.geometry = n.id, U.program = s.id, U.wireframe = !0 === i.wireframe, c = !0), (i.morphTargets || i.morphNormals) && (O.update(r, n, i, s), c = !0); var l = n.index , u = n.attributes.position; if (null === l) { if (void 0 === u || 0 === u.count) return } else if (0 === l.count) return; var d, p = 1; !0 === i.wireframe && (l = S.getWireframeAttribute(n), p = 2); var v = _; null !== l && (d = w.get(l), (v = P).setIndex(d)), c && (!function(t, e, n, i) { if (!1 === m.isWebGL2 && (t.isInstancedMesh || e.isInstancedBufferGeometry) && null === f.get("ANGLE_instanced_arrays")) return; g.initAttributes(); var r = e.attributes , o = i.getAttributes() , a = n.defaultAttributeValues; for (var s in o) { var c = o[s]; if (c >= 0) { var l = r[s]; if (void 0 !== l) { var u = l.normalized , d = l.itemSize; if (void 0 === (M = w.get(l))) continue; var p = M.buffer , v = M.type , y = M.bytesPerElement; if (l.isInterleavedBufferAttribute) { var b = l.data , S = b.stride , x = l.offset; b && b.isInstancedInterleavedBuffer ? (g.enableAttributeAndDivisor(c, b.meshPerAttribute), void 0 === e.maxInstancedCount && (e.maxInstancedCount = b.meshPerAttribute * b.count)) : g.enableAttribute(c), h.bindBuffer(34962, p), h.vertexAttribPointer(c, d, v, u, S * y, x * y) } else l.isInstancedBufferAttribute ? (g.enableAttributeAndDivisor(c, l.meshPerAttribute), void 0 === e.maxInstancedCount && (e.maxInstancedCount = l.meshPerAttribute * l.count)) : g.enableAttribute(c), h.bindBuffer(34962, p), h.vertexAttribPointer(c, d, v, u, 0, 0) } else if ("instanceMatrix" === s) { var M; if (void 0 === (M = w.get(t.instanceMatrix))) continue; p = M.buffer, v = M.type; g.enableAttributeAndDivisor(c + 0, 1), g.enableAttributeAndDivisor(c + 1, 1), g.enableAttributeAndDivisor(c + 2, 1), g.enableAttributeAndDivisor(c + 3, 1), h.bindBuffer(34962, p), h.vertexAttribPointer(c + 0, 4, v, !1, 64, 0), h.vertexAttribPointer(c + 1, 4, v, !1, 64, 16), h.vertexAttribPointer(c + 2, 4, v, !1, 64, 32), h.vertexAttribPointer(c + 3, 4, v, !1, 64, 48) } else if (void 0 !== a) { var E = a[s]; if (void 0 !== E) switch (E.length) { case 2: h.vertexAttrib2fv(c, E); break; case 3: h.vertexAttrib3fv(c, E); break; case 4: h.vertexAttrib4fv(c, E); break; default: h.vertexAttrib1fv(c, E) } } } } g.disableUnusedAttributes() }(r, n, i, s), null !== l && h.bindBuffer(34963, d.buffer)); var y = null !== l ? l.count : u.count , b = n.drawRange.start * p , x = n.drawRange.count * p , M = null !== o ? o.start * p : 0 , E = null !== o ? o.count * p : 1 / 0 , C = Math.max(b, M) , A = Math.min(y, b + x, M + E) - 1 , T = Math.max(0, A - C + 1); if (0 !== T) { if (r.isMesh) !0 === i.wireframe ? (g.setLineWidth(i.wireframeLinewidth * at()), v.setMode(1)) : v.setMode(4); else if (r.isLine) { var I = i.linewidth; void 0 === I && (I = 1), g.setLineWidth(I * at()), r.isLineSegments ? v.setMode(1) : r.isLineLoop ? v.setMode(2) : v.setMode(3) } else r.isPoints ? v.setMode(0) : r.isSprite && v.setMode(4); r.isInstancedMesh ? v.renderInstances(n, C, T, r.count) : n.isInstancedBufferGeometry ? v.renderInstances(n, C, T, n.maxInstancedCount) : v.render(C, T) } } , this.compile = function(t, e) { (p = C.get(t, e)).init(), t.traverse((function(t) { t.isLight && (p.pushLight(t), t.castShadow && p.pushShadow(t)) } )), p.setupLights(e); var n = {}; t.traverse((function(e) { if (e.material) if (Array.isArray(e.material)) for (var i = 0; i < e.material.length; i++) e.material[i].uuid in n == !1 && (xt(e.material[i], t, e), n[e.material[i].uuid] = !0); else e.material.uuid in n == !1 && (xt(e.material, t, e), n[e.material.uuid] = !0) } )) } ; var vt = null; var yt = new Uo; function bt(t, e, n, i) { if (!1 !== t.visible) { if (t.layers.test(e.layers)) if (t.isGroup) n = t.renderOrder; else if (t.isLOD) !0 === t.autoUpdate && t.update(e); else if (t.isLight) p.pushLight(t), t.castShadow && p.pushShadow(t); else if (t.isSprite) { if (!t.frustumCulled || tt.intersectsSprite(t)) { i && ot.setFromMatrixPosition(t.matrixWorld).applyMatrix4(rt); var r = x.update(t); (o = t.material).visible && d.push(t, r, o, n, ot.z, null) } } else if (t.isImmediateRenderObject) i && ot.setFromMatrixPosition(t.matrixWorld).applyMatrix4(rt), d.push(t, null, t.material, n, ot.z, null); else if ((t.isMesh || t.isLine || t.isPoints) && (t.isSkinnedMesh && t.skeleton.frame !== v.render.frame && (t.skeleton.update(), t.skeleton.frame = v.render.frame), !t.frustumCulled || tt.intersectsObject(t))) { i && ot.setFromMatrixPosition(t.matrixWorld).applyMatrix4(rt); r = x.update(t); var o = t.material; if (Array.isArray(o)) for (var a = r.groups, s = 0, c = a.length; s < c; s++) { var l = a[s] , u = o[l.materialIndex]; u && u.visible && d.push(t, r, u, n, ot.z, l) } else o.visible && d.push(t, r, o, n, ot.z, null) } var h = t.children; for (s = 0, c = h.length; s < c; s++) bt(h[s], e, n, i) } } function wt(t, e, n, i) { for (var r = 0, o = t.length; r < o; r++) { var a = t[r] , s = a.object , c = a.geometry , l = void 0 === i ? a.material : i , u = a.group; if (n.isArrayCamera) { z = n; for (var d = n.cameras, h = 0, f = d.length; h < f; h++) { var m = d[h]; s.layers.test(m.layers) && (g.viewport(G.copy(m.viewport)), p.setupLights(m), St(s, e, m, c, l, u)) } } else z = null, St(s, e, n, c, l, u) } } function St(t, e, n, i, r, o) { if (t.onBeforeRender(k, e, n, i, r, o), p = C.get(e, z || n), t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse, t.matrixWorld), t.normalMatrix.getNormalMatrix(t.modelViewMatrix), t.isImmediateRenderObject) { var a = Mt(n, e, r, t); g.setMaterial(r), U.geometry = null, U.program = null, U.wireframe = !1, function(t, e) { t.render((function(t) { k.renderBufferImmediate(t, e) } )) }(t, a) } else k.renderBufferDirect(n, e, i, r, t, o); t.onAfterRender(k, e, n, i, r, o), p = C.get(e, z || n) } function xt(t, e, n) { var i = y.get(t) , r = p.state.lights , o = p.state.shadowsArray , a = r.state.version , s = M.getParameters(t, r.state, o, e, et.numPlanes, et.numIntersection, n) , c = M.getProgramCacheKey(s) , l = i.program , u = !0; if (void 0 === l) t.addEventListener("dispose", ft); else if (l.cacheKey !== c) mt(t); else if (i.lightsStateVersion !== a) i.lightsStateVersion = a, u = !1; else { if (void 0 !== s.shaderID) return; u = !1 } u && (l = M.acquireProgram(s, c), i.program = l, i.uniforms = s.uniforms, i.environment = t.isMeshStandardMaterial ? e.environment : null, i.outputEncoding = k.outputEncoding, t.program = l); var d = l.getAttributes(); if (t.morphTargets) { t.numSupportedMorphTargets = 0; for (var h = 0; h < k.maxMorphTargets; h++) d["morphTarget" + h] >= 0 && t.numSupportedMorphTargets++ } if (t.morphNormals) { t.numSupportedMorphNormals = 0; for (h = 0; h < k.maxMorphNormals; h++) d["morphNormal" + h] >= 0 && t.numSupportedMorphNormals++ } var f = i.uniforms; (t.isShaderMaterial || t.isRawShaderMaterial) && !0 !== t.clipping || (i.numClippingPlanes = et.numPlanes, i.numIntersection = et.numIntersection, f.clippingPlanes = et.uniform), i.fog = e.fog, i.needsLights = function(t) { return t.isMeshLambertMaterial || t.isMeshToonMaterial || t.isMeshPhongMaterial || t.isMeshStandardMaterial || t.isShadowMaterial || t.isShaderMaterial && !0 === t.lights }(t), i.lightsStateVersion = a, i.needsLights && (f.ambientLightColor.value = r.state.ambient, f.lightProbe.value = r.state.probe, f.directionalLights.value = r.state.directional, f.directionalLightShadows.value = r.state.directionalShadow, f.spotLights.value = r.state.spot, f.spotLightShadows.value = r.state.spotShadow, f.rectAreaLights.value = r.state.rectArea, f.pointLights.value = r.state.point, f.pointLightShadows.value = r.state.pointShadow, f.hemisphereLights.value = r.state.hemi, f.directionalShadowMap.value = r.state.directionalShadowMap, f.directionalShadowMatrix.value = r.state.directionalShadowMatrix, f.spotShadowMap.value = r.state.spotShadowMap, f.spotShadowMatrix.value = r.state.spotShadowMatrix, f.pointShadowMap.value = r.state.pointShadowMap, f.pointShadowMatrix.value = r.state.pointShadowMatrix); var m = i.program.getUniforms() , g = ts.seqWithValue(m.seq, f); i.uniformsList = g } function Mt(t, e, n, i) { b.resetTextureUnits(); var r = e.fog , o = n.isMeshStandardMaterial ? e.environment : null , a = y.get(n) , s = p.state.lights; if (nt && (it || t !== B)) { var c = t === B && n.id === F; et.setState(n.clippingPlanes, n.clipIntersection, n.clipShadows, t, a, c) } n.version === a.__version ? void 0 === a.program || n.fog && a.fog !== r || a.environment !== o || a.needsLights && a.lightsStateVersion !== s.state.version ? xt(n, e, i) : void 0 === a.numClippingPlanes || a.numClippingPlanes === et.numPlanes && a.numIntersection === et.numIntersection ? a.outputEncoding !== k.outputEncoding && xt(n, e, i) : xt(n, e, i) : (xt(n, e, i), a.__version = n.version); var l, u, d = !1, f = !1, v = !1, w = a.program, S = w.getUniforms(), x = a.uniforms; if (g.useProgram(w.program) && (d = !0, f = !0, v = !0), n.id !== F && (F = n.id, f = !0), d || B !== t) { if (S.setValue(h, "projectionMatrix", t.projectionMatrix), m.logarithmicDepthBuffer && S.setValue(h, "logDepthBufFC", 2 / (Math.log(t.far + 1) / Math.LN2)), B !== t && (B = t, f = !0, v = !0), n.isShaderMaterial || n.isMeshPhongMaterial || n.isMeshToonMaterial || n.isMeshStandardMaterial || n.envMap) { var M = S.map.cameraPosition; void 0 !== M && M.setValue(h, ot.setFromMatrixPosition(t.matrixWorld)) } (n.isMeshPhongMaterial || n.isMeshToonMaterial || n.isMeshLambertMaterial || n.isMeshBasicMaterial || n.isMeshStandardMaterial || n.isShaderMaterial) && S.setValue(h, "isOrthographic", !0 === t.isOrthographicCamera), (n.isMeshPhongMaterial || n.isMeshToonMaterial || n.isMeshLambertMaterial || n.isMeshBasicMaterial || n.isMeshStandardMaterial || n.isShaderMaterial || n.skinning) && S.setValue(h, "viewMatrix", t.matrixWorldInverse) } if (n.skinning) { S.setOptional(h, i, "bindMatrix"), S.setOptional(h, i, "bindMatrixInverse"); var E = i.skeleton; if (E) { var C = E.bones; if (m.floatVertexTextures) { if (void 0 === E.boneTexture) { var A = Math.sqrt(4 * C.length); A = Kn.ceilPowerOfTwo(A), A = Math.max(A, 4); var O = new Float32Array(A * A * 4); O.set(E.boneMatrices); var _ = new Lo(O,A,A,Jt,Gt); E.boneMatrices = O, E.boneTexture = _, E.boneTextureSize = A } S.setValue(h, "boneTexture", E.boneTexture, b), S.setValue(h, "boneTextureSize", E.boneTextureSize) } else S.setOptional(h, E, "boneMatrices") } } return (f || a.receiveShadow !== i.receiveShadow) && (a.receiveShadow = i.receiveShadow, S.setValue(h, "receiveShadow", i.receiveShadow)), f && (S.setValue(h, "toneMappingExposure", k.toneMappingExposure), S.setValue(h, "toneMappingWhitePoint", k.toneMappingWhitePoint), a.needsLights && (u = v, (l = x).ambientLightColor.needsUpdate = u, l.lightProbe.needsUpdate = u, l.directionalLights.needsUpdate = u, l.directionalLightShadows.needsUpdate = u, l.pointLights.needsUpdate = u, l.pointLightShadows.needsUpdate = u, l.spotLights.needsUpdate = u, l.spotLightShadows.needsUpdate = u, l.rectAreaLights.needsUpdate = u, l.hemisphereLights.needsUpdate = u), r && n.fog && function(t, e) { t.fogColor.value.copy(e.color), e.isFog ? (t.fogNear.value = e.near, t.fogFar.value = e.far) : e.isFogExp2 && (t.fogDensity.value = e.density) }(x, r), n.isMeshBasicMaterial ? Et(x, n) : n.isMeshLambertMaterial ? (Et(x, n), function(t, e) { e.emissiveMap && (t.emissiveMap.value = e.emissiveMap) }(x, n)) : n.isMeshToonMaterial ? (Et(x, n), function(t, e) { t.specular.value.copy(e.specular), t.shininess.value = Math.max(e.shininess, 1e-4), e.gradientMap && (t.gradientMap.value = e.gradientMap); e.emissiveMap && (t.emissiveMap.value = e.emissiveMap); e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale, e.side === T && (t.bumpScale.value *= -1)); e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale), e.side === T && t.normalScale.value.negate()); e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias) }(x, n)) : n.isMeshPhongMaterial ? (Et(x, n), function(t, e) { t.specular.value.copy(e.specular), t.shininess.value = Math.max(e.shininess, 1e-4), e.emissiveMap && (t.emissiveMap.value = e.emissiveMap); e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale, e.side === T && (t.bumpScale.value *= -1)); e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale), e.side === T && t.normalScale.value.negate()); e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias) }(x, n)) : n.isMeshStandardMaterial ? (Et(x, n, o), n.isMeshPhysicalMaterial ? function(t, e, n) { Ct(t, e, n), t.reflectivity.value = e.reflectivity, t.clearcoat.value = e.clearcoat, t.clearcoatRoughness.value = e.clearcoatRoughness, e.sheen && t.sheen.value.copy(e.sheen); e.clearcoatMap && (t.clearcoatMap.value = e.clearcoatMap); e.clearcoatRoughnessMap && (t.clearcoatRoughnessMap.value = e.clearcoatRoughnessMap); e.clearcoatNormalMap && (t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale), t.clearcoatNormalMap.value = e.clearcoatNormalMap, e.side === T && t.clearcoatNormalScale.value.negate()); t.transparency.value = e.transparency }(x, n, o) : Ct(x, n, o)) : n.isMeshMatcapMaterial ? (Et(x, n), function(t, e) { e.matcap && (t.matcap.value = e.matcap); e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale, e.side === T && (t.bumpScale.value *= -1)); e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale), e.side === T && t.normalScale.value.negate()); e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias) }(x, n)) : n.isMeshDepthMaterial ? (Et(x, n), function(t, e) { e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias) }(x, n)) : n.isMeshDistanceMaterial ? (Et(x, n), function(t, e) { e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias); t.referencePosition.value.copy(e.referencePosition), t.nearDistance.value = e.nearDistance, t.farDistance.value = e.farDistance }(x, n)) : n.isMeshNormalMaterial ? (Et(x, n), function(t, e) { e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale, e.side === T && (t.bumpScale.value *= -1)); e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale), e.side === T && t.normalScale.value.negate()); e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias) }(x, n)) : n.isLineBasicMaterial ? (function(t, e) { t.diffuse.value.copy(e.color), t.opacity.value = e.opacity }(x, n), n.isLineDashedMaterial && function(t, e) { t.dashSize.value = e.dashSize, t.totalSize.value = e.dashSize + e.gapSize, t.scale.value = e.scale }(x, n)) : n.isPointsMaterial ? function(t, e) { t.diffuse.value.copy(e.color), t.opacity.value = e.opacity, t.size.value = e.size * Y, t.scale.value = .5 * X, e.map && (t.map.value = e.map); e.alphaMap && (t.alphaMap.value = e.alphaMap); var n; e.map ? n = e.map : e.alphaMap && (n = e.alphaMap); void 0 !== n && (!0 === n.matrixAutoUpdate && n.updateMatrix(), t.uvTransform.value.copy(n.matrix)) }(x, n) : n.isSpriteMaterial ? function(t, e) { t.diffuse.value.copy(e.color), t.opacity.value = e.opacity, t.rotation.value = e.rotation, e.map && (t.map.value = e.map); e.alphaMap && (t.alphaMap.value = e.alphaMap); var n; e.map ? n = e.map : e.alphaMap && (n = e.alphaMap); void 0 !== n && (!0 === n.matrixAutoUpdate && n.updateMatrix(), t.uvTransform.value.copy(n.matrix)) }(x, n) : n.isShadowMaterial && (x.color.value.copy(n.color), x.opacity.value = n.opacity), void 0 !== x.ltc_1 && (x.ltc_1.value = Fo.LTC_1), void 0 !== x.ltc_2 && (x.ltc_2.value = Fo.LTC_2), ts.upload(h, a.uniformsList, x, b), n.isShaderMaterial && (n.uniformsNeedUpdate = !1)), n.isShaderMaterial && !0 === n.uniformsNeedUpdate && (ts.upload(h, a.uniformsList, x, b), n.uniformsNeedUpdate = !1), n.isSpriteMaterial && S.setValue(h, "center", i.center), S.setValue(h, "modelViewMatrix", i.modelViewMatrix), S.setValue(h, "normalMatrix", i.normalMatrix), S.setValue(h, "modelMatrix", i.matrixWorld), w } function Et(t, e, n) { t.opacity.value = e.opacity, e.color && t.diffuse.value.copy(e.color), e.emissive && t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity), e.map && (t.map.value = e.map), e.alphaMap && (t.alphaMap.value = e.alphaMap), e.specularMap && (t.specularMap.value = e.specularMap); var i, r, o = e.envMap || n; o && (t.envMap.value = o, t.flipEnvMap.value = o.isCubeTexture ? -1 : 1, t.reflectivity.value = e.reflectivity, t.refractionRatio.value = e.refractionRatio, t.maxMipLevel.value = y.get(o).__maxMipLevel), e.lightMap && (t.lightMap.value = e.lightMap, t.lightMapIntensity.value = e.lightMapIntensity), e.aoMap && (t.aoMap.value = e.aoMap, t.aoMapIntensity.value = e.aoMapIntensity), e.map ? i = e.map : e.specularMap ? i = e.specularMap : e.displacementMap ? i = e.displacementMap : e.normalMap ? i = e.normalMap : e.bumpMap ? i = e.bumpMap : e.roughnessMap ? i = e.roughnessMap : e.metalnessMap ? i = e.metalnessMap : e.alphaMap ? i = e.alphaMap : e.emissiveMap && (i = e.emissiveMap), void 0 !== i && (i.isWebGLRenderTarget && (i = i.texture), !0 === i.matrixAutoUpdate && i.updateMatrix(), t.uvTransform.value.copy(i.matrix)), e.aoMap ? r = e.aoMap : e.lightMap && (r = e.lightMap), void 0 !== r && (r.isWebGLRenderTarget && (r = r.texture), !0 === r.matrixAutoUpdate && r.updateMatrix(), t.uv2Transform.value.copy(r.matrix)) } function Ct(t, e, n) { t.roughness.value = e.roughness, t.metalness.value = e.metalness, e.roughnessMap && (t.roughnessMap.value = e.roughnessMap), e.metalnessMap && (t.metalnessMap.value = e.metalnessMap), e.emissiveMap && (t.emissiveMap.value = e.emissiveMap), e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale, e.side === T && (t.bumpScale.value *= -1)), e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale), e.side === T && t.normalScale.value.negate()), e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias), (e.envMap || n) && (t.envMapIntensity.value = e.envMapIntensity) } yt.setAnimationLoop((function(t) { lt.isPresenting || vt && vt(t) } )), "undefined" != typeof window && yt.setContext(window), this.setAnimationLoop = function(t) { vt = t, lt.setAnimationLoop(t), yt.start() } , this.render = function(t, e) { var n, i; if (void 0 !== arguments[2] && (console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."), n = arguments[2]), void 0 !== arguments[3] && (console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."), i = arguments[3]), e && e.isCamera) { if (!D) { U.geometry = null, U.program = null, U.wireframe = !1, F = -1, B = null, !0 === t.autoUpdate && t.updateMatrixWorld(), null === e.parent && e.updateMatrixWorld(), lt.enabled && lt.isPresenting && (e = lt.getCamera(e)), (p = C.get(t, e)).init(), t.onBeforeRender(k, t, e, n || j), rt.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), tt.setFromProjectionMatrix(rt), it = this.localClippingEnabled, nt = et.init(this.clippingPlanes, it, e), (d = E.get(t, e)).init(), bt(t, e, 0, k.sortObjects), d.finish(), !0 === k.sortObjects && d.sort(K, Z), nt && et.beginShadows(); var r = p.state.shadowsArray; ut.render(r, t, e), p.setupLights(e), nt && et.endShadows(), this.info.autoReset && this.info.reset(), void 0 !== n && this.setRenderTarget(n), A.render(d, t, e, i); var o = d.opaque , a = d.transparent; if (t.overrideMaterial) { var s = t.overrideMaterial; o.length && wt(o, t, e, s), a.length && wt(a, t, e, s) } else o.length && wt(o, t, e), a.length && wt(a, t, e); t.onAfterRender(k, t, e), null !== j && (b.updateRenderTargetMipmap(j), b.updateMultisampleRenderTarget(j)), g.buffers.depth.setTest(!0), g.buffers.depth.setMask(!0), g.buffers.color.setMask(!0), g.setPolygonOffset(!1), d = null, p = null } } else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.") } , this.setFramebuffer = function(t) { R !== t && null === j && h.bindFramebuffer(36160, t), R = t } , this.getActiveCubeFace = function() { return L } , this.getActiveMipmapLevel = function() { return N } , this.getRenderTarget = function() { return j } , this.setRenderTarget = function(t, e, n) { j = t, L = e, N = n, t && void 0 === y.get(t).__webglFramebuffer && b.setupRenderTarget(t); var i = R , r = !1; if (t) { var o = y.get(t).__webglFramebuffer; t.isWebGLCubeRenderTarget ? (i = o[e || 0], r = !0) : i = t.isWebGLMultisampleRenderTarget ? y.get(t).__webglMultisampledFramebuffer : o, G.copy(t.viewport), H.copy(t.scissor), W = t.scissorTest } else G.copy(J).multiplyScalar(Y).floor(), H.copy(Q).multiplyScalar(Y).floor(), W = $; if (V !== i && (h.bindFramebuffer(36160, i), V = i), g.viewport(G), g.scissor(H), g.setScissorTest(W), r) { var a = y.get(t.texture); h.framebufferTexture2D(36160, 36064, 34069 + (e || 0), a.__webglTexture, n || 0) } } , this.readRenderTargetPixels = function(t, e, n, i, r, o, a) { if (t && t.isWebGLRenderTarget) { var s = y.get(t).__webglFramebuffer; if (t.isWebGLCubeRenderTarget && void 0 !== a && (s = s[a]), s) { var c = !1; s !== V && (h.bindFramebuffer(36160, s), c = !0); try { var l = t.texture , u = l.format , d = l.type; if (u !== Jt && I.convert(u) !== h.getParameter(35739)) return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."); if (!(d === jt || I.convert(d) === h.getParameter(35738) || d === Gt && (m.isWebGL2 || f.get("OES_texture_float") || f.get("WEBGL_color_buffer_float")) || d === Ht && (m.isWebGL2 ? f.get("EXT_color_buffer_float") : f.get("EXT_color_buffer_half_float")))) return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type."); 36053 === h.checkFramebufferStatus(36160) ? e >= 0 && e <= t.width - i && n >= 0 && n <= t.height - r && h.readPixels(e, n, i, r, I.convert(u), I.convert(d), o) : console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.") } finally { c && h.bindFramebuffer(36160, V) } } } else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.") } , this.copyFramebufferToTexture = function(t, e, n) { void 0 === n && (n = 0); var i = Math.pow(2, -n) , r = Math.floor(e.image.width * i) , o = Math.floor(e.image.height * i) , a = I.convert(e.format); b.setTexture2D(e, 0), h.copyTexImage2D(3553, n, a, t.x, t.y, r, o, 0), g.unbindTexture() } , this.copyTextureToTexture = function(t, e, n, i) { var r = e.image.width , o = e.image.height , a = I.convert(n.format) , s = I.convert(n.type); b.setTexture2D(n, 0), e.isDataTexture ? h.texSubImage2D(3553, i || 0, t.x, t.y, r, o, a, s, e.image.data) : h.texSubImage2D(3553, i || 0, t.x, t.y, a, s, e.image), g.unbindTexture() } , this.initTexture = function(t) { b.setTexture2D(t, 0), g.unbindTexture() } , "undefined" != typeof __THREE_DEVTOOLS__ && __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{ detail: this })) } function zs(t, e) { this.name = "", this.color = new Er(t), this.density = void 0 !== e ? e : 25e-5 } function Gs(t, e, n) { this.name = "", this.color = new Er(t), this.near = void 0 !== e ? e : 1, this.far = void 0 !== n ? n : 1e3 } function Hs(t, e) { this.array = t, this.stride = e, this.count = void 0 !== t ? t.length / e : 0, this.usage = Nn, this.updateRange = { offset: 0, count: -1 }, this.version = 0 } Vs.prototype = Object.assign(Object.create(ko.prototype), { constructor: Vs, isArrayCamera: !0 }), Fs.prototype = Object.assign(Object.create(Di.prototype), { constructor: Fs, isGroup: !0 }), Object.assign(Us.prototype, Wn.prototype), Object.assign(zs.prototype, { isFogExp2: !0, clone: function() { return new zs(this.color,this.density) }, toJSON: function() { return { type: "FogExp2", color: this.color.getHex(), density: this.density } } }), Object.assign(Gs.prototype, { isFog: !0, clone: function() { return new Gs(this.color,this.near,this.far) }, toJSON: function() { return { type: "Fog", color: this.color.getHex(), near: this.near, far: this.far } } }), Object.defineProperty(Hs.prototype, "needsUpdate", { set: function(t) { !0 === t && this.version++ } }), Object.assign(Hs.prototype, { isInterleavedBuffer: !0, onUploadCallback: function() {}, setUsage: function(t) { return this.usage = t, this }, copy: function(t) { return this.array = new t.array.constructor(t.array), this.count = t.count, this.stride = t.stride, this.usage = t.usage, this }, copyAt: function(t, e, n) { t *= this.stride, n *= e.stride; for (var i = 0, r = this.stride; i < r; i++) this.array[t + i] = e.array[n + i]; return this }, set: function(t, e) { return void 0 === e && (e = 0), this.array.set(t, e), this }, clone: function() { return (new this.constructor).copy(this) }, onUpload: function(t) { return this.onUploadCallback = t, this } }); var Ws, qs = new si; function Xs(t, e, n, i) { this.data = t, this.itemSize = e, this.offset = n, this.normalized = !0 === i } function Ys(t) { Pr.call(this), this.type = "SpriteMaterial", this.color = new Er(16777215), this.map = null, this.alphaMap = null, this.rotation = 0, this.sizeAttenuation = !0, this.transparent = !0, this.setValues(t) } Object.defineProperties(Xs.prototype, { count: { get: function() { return this.data.count } }, array: { get: function() { return this.data.array } } }), Object.assign(Xs.prototype, { isInterleavedBufferAttribute: !0, applyMatrix4: function(t) { for (var e = 0, n = this.data.count; e < n; e++) qs.x = this.getX(e), qs.y = this.getY(e), qs.z = this.getZ(e), qs.applyMatrix4(t), this.setXYZ(e, qs.x, qs.y, qs.z); return this }, setX: function(t, e) { return this.data.array[t * this.data.stride + this.offset] = e, this }, setY: function(t, e) { return this.data.array[t * this.data.stride + this.offset + 1] = e, this }, setZ: function(t, e) { return this.data.array[t * this.data.stride + this.offset + 2] = e, this }, setW: function(t, e) { return this.data.array[t * this.data.stride + this.offset + 3] = e, this }, getX: function(t) { return this.data.array[t * this.data.stride + this.offset] }, getY: function(t) { return this.data.array[t * this.data.stride + this.offset + 1] }, getZ: function(t) { return this.data.array[t * this.data.stride + this.offset + 2] }, getW: function(t) { return this.data.array[t * this.data.stride + this.offset + 3] }, setXY: function(t, e, n) { return t = t * this.data.stride + this.offset, this.data.array[t + 0] = e, this.data.array[t + 1] = n, this }, setXYZ: function(t, e, n, i) { return t = t * this.data.stride + this.offset, this.data.array[t + 0] = e, this.data.array[t + 1] = n, this.data.array[t + 2] = i, this }, setXYZW: function(t, e, n, i, r) { return t = t * this.data.stride + this.offset, this.data.array[t + 0] = e, this.data.array[t + 1] = n, this.data.array[t + 2] = i, this.data.array[t + 3] = r, this } }), Ys.prototype = Object.create(Pr.prototype), Ys.prototype.constructor = Ys, Ys.prototype.isSpriteMaterial = !0, Ys.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this.map = t.map, this.alphaMap = t.alphaMap, this.rotation = t.rotation, this.sizeAttenuation = t.sizeAttenuation, this } ; var Ks = new si , Zs = new si , Js = new si , Qs = new Zn , $s = new Zn , tc = new mi , ec = new si , nc = new si , ic = new si , rc = new Zn , oc = new Zn , ac = new Zn; function sc(t) { if (Di.call(this), this.type = "Sprite", void 0 === Ws) { Ws = new Qr; var e = new Hs(new Float32Array([-.5, -.5, 0, 0, 0, .5, -.5, 0, 1, 0, .5, .5, 0, 1, 1, -.5, .5, 0, 0, 1]),5); Ws.setIndex([0, 1, 2, 0, 2, 3]), Ws.setAttribute("position", new Xs(e,3,0,!1)), Ws.setAttribute("uv", new Xs(e,2,3,!1)) } this.geometry = Ws, this.material = void 0 !== t ? t : new Ys, this.center = new Zn(.5,.5) } function cc(t, e, n, i, r, o) { Qs.subVectors(t, n).addScalar(.5).multiply(i), void 0 !== r ? ($s.x = o * Qs.x - r * Qs.y, $s.y = r * Qs.x + o * Qs.y) : $s.copy(Qs), t.copy(e), t.x += $s.x, t.y += $s.y, t.applyMatrix4(tc) } sc.prototype = Object.assign(Object.create(Di.prototype), { constructor: sc, isSprite: !0, raycast: function(t, e) { null === t.camera && console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'), Zs.setFromMatrixScale(this.matrixWorld), tc.copy(t.camera.matrixWorld), this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse, this.matrixWorld), Js.setFromMatrixPosition(this.modelViewMatrix), t.camera.isPerspectiveCamera && !1 === this.material.sizeAttenuation && Zs.multiplyScalar(-Js.z); var n, i, r = this.material.rotation; 0 !== r && (i = Math.cos(r), n = Math.sin(r)); var o = this.center; cc(ec.set(-.5, -.5, 0), Js, o, Zs, n, i), cc(nc.set(.5, -.5, 0), Js, o, Zs, n, i), cc(ic.set(.5, .5, 0), Js, o, Zs, n, i), rc.set(0, 0), oc.set(1, 0), ac.set(1, 1); var a = t.ray.intersectTriangle(ec, nc, ic, !1, Ks); if (null !== a || (cc(nc.set(-.5, .5, 0), Js, o, Zs, n, i), oc.set(0, 1), null !== (a = t.ray.intersectTriangle(ec, ic, nc, !1, Ks)))) { var s = t.ray.origin.distanceTo(Ks); s < t.near || s > t.far || e.push({ distance: s, point: Ks.clone(), uv: wr.getUV(Ks, ec, nc, ic, rc, oc, ac, new Zn), face: null, object: this }) } }, clone: function() { return new this.constructor(this.material).copy(this) }, copy: function(t) { return Di.prototype.copy.call(this, t), void 0 !== t.center && this.center.copy(t.center), this } }); var lc = new si , uc = new si; function dc() { Di.call(this), this._currentLevel = 0, this.type = "LOD", Object.defineProperties(this, { levels: { enumerable: !0, value: [] } }), this.autoUpdate = !0 } function pc(t, e) { t && t.isGeometry && console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."), vo.call(this, t, e), this.type = "SkinnedMesh", this.bindMode = "attached", this.bindMatrix = new mi, this.bindMatrixInverse = new mi } dc.prototype = Object.assign(Object.create(Di.prototype), { constructor: dc, isLOD: !0, copy: function(t) { Di.prototype.copy.call(this, t, !1); for (var e = t.levels, n = 0, i = e.length; n < i; n++) { var r = e[n]; this.addLevel(r.object.clone(), r.distance) } return this.autoUpdate = t.autoUpdate, this }, addLevel: function(t, e) { void 0 === e && (e = 0), e = Math.abs(e); for (var n = this.levels, i = 0; i < n.length && !(e < n[i].distance); i++) ; return n.splice(i, 0, { distance: e, object: t }), this.add(t), this }, getCurrentLevel: function() { return this._currentLevel }, getObjectForDistance: function(t) { var e = this.levels; if (e.length > 0) { for (var n = 1, i = e.length; n < i && !(t < e[n].distance); n++) ; return e[n - 1].object } return null }, raycast: function(t, e) { if (this.levels.length > 0) { lc.setFromMatrixPosition(this.matrixWorld); var n = t.ray.origin.distanceTo(lc); this.getObjectForDistance(n).raycast(t, e) } }, update: function(t) { var e = this.levels; if (e.length > 1) { lc.setFromMatrixPosition(t.matrixWorld), uc.setFromMatrixPosition(this.matrixWorld); var n = lc.distanceTo(uc) / t.zoom; e[0].object.visible = !0; for (var i = 1, r = e.length; i < r && n >= e[i].distance; i++) e[i - 1].object.visible = !1, e[i].object.visible = !0; for (this._currentLevel = i - 1; i < r; i++) e[i].object.visible = !1 } }, toJSON: function(t) { var e = Di.prototype.toJSON.call(this, t); !1 === this.autoUpdate && (e.object.autoUpdate = !1), e.object.levels = []; for (var n = this.levels, i = 0, r = n.length; i < r; i++) { var o = n[i]; e.object.levels.push({ object: o.object.uuid, distance: o.distance }) } return e } }), pc.prototype = Object.assign(Object.create(vo.prototype), { constructor: pc, isSkinnedMesh: !0, bind: function(t, e) { this.skeleton = t, void 0 === e && (this.updateMatrixWorld(!0), this.skeleton.calculateInverses(), e = this.matrixWorld), this.bindMatrix.copy(e), this.bindMatrixInverse.getInverse(e) }, pose: function() { this.skeleton.pose() }, normalizeSkinWeights: function() { for (var t = new ei, e = this.geometry.attributes.skinWeight, n = 0, i = e.count; n < i; n++) { t.x = e.getX(n), t.y = e.getY(n), t.z = e.getZ(n), t.w = e.getW(n); var r = 1 / t.manhattanLength(); r !== 1 / 0 ? t.multiplyScalar(r) : t.set(1, 0, 0, 0), e.setXYZW(n, t.x, t.y, t.z, t.w) } }, updateMatrixWorld: function(t) { vo.prototype.updateMatrixWorld.call(this, t), "attached" === this.bindMode ? this.bindMatrixInverse.getInverse(this.matrixWorld) : "detached" === this.bindMode ? this.bindMatrixInverse.getInverse(this.bindMatrix) : console.warn("THREE.SkinnedMesh: Unrecognized bindMode: " + this.bindMode) }, clone: function() { return new this.constructor(this.geometry,this.material).copy(this) } }); var hc = new mi , fc = new mi; function mc(t, e) { if (t = t || [], this.bones = t.slice(0), this.boneMatrices = new Float32Array(16 * this.bones.length), this.frame = -1, void 0 === e) this.calculateInverses(); else if (this.bones.length === e.length) this.boneInverses = e.slice(0); else { console.warn("THREE.Skeleton boneInverses is the wrong length."), this.boneInverses = []; for (var n = 0, i = this.bones.length; n < i; n++) this.boneInverses.push(new mi) } } function gc() { Di.call(this), this.type = "Bone" } Object.assign(mc.prototype, { calculateInverses: function() { this.boneInverses = []; for (var t = 0, e = this.bones.length; t < e; t++) { var n = new mi; this.bones[t] && n.getInverse(this.bones[t].matrixWorld), this.boneInverses.push(n) } }, pose: function() { var t, e, n; for (e = 0, n = this.bones.length; e < n; e++) (t = this.bones[e]) && t.matrixWorld.getInverse(this.boneInverses[e]); for (e = 0, n = this.bones.length; e < n; e++) (t = this.bones[e]) && (t.parent && t.parent.isBone ? (t.matrix.getInverse(t.parent.matrixWorld), t.matrix.multiply(t.matrixWorld)) : t.matrix.copy(t.matrixWorld), t.matrix.decompose(t.position, t.quaternion, t.scale)) }, update: function() { for (var t = this.bones, e = this.boneInverses, n = this.boneMatrices, i = this.boneTexture, r = 0, o = t.length; r < o; r++) { var a = t[r] ? t[r].matrixWorld : fc; hc.multiplyMatrices(a, e[r]), hc.toArray(n, 16 * r) } void 0 !== i && (i.needsUpdate = !0) }, clone: function() { return new mc(this.bones,this.boneInverses) }, getBoneByName: function(t) { for (var e = 0, n = this.bones.length; e < n; e++) { var i = this.bones[e]; if (i.name === t) return i } }, dispose: function() { this.boneTexture && (this.boneTexture.dispose(), this.boneTexture = void 0) } }), gc.prototype = Object.assign(Object.create(Di.prototype), { constructor: gc, isBone: !0 }); var vc = new mi , yc = new mi , bc = [] , wc = new vo; function Sc(t, e, n) { vo.call(this, t, e), this.instanceMatrix = new Dr(new Float32Array(16 * n),16), this.count = n, this.frustumCulled = !1 } function xc(t) { Pr.call(this), this.type = "LineBasicMaterial", this.color = new Er(16777215), this.linewidth = 1, this.linecap = "round", this.linejoin = "round", this.setValues(t) } Sc.prototype = Object.assign(Object.create(vo.prototype), { constructor: Sc, isInstancedMesh: !0, getMatrixAt: function(t, e) { e.fromArray(this.instanceMatrix.array, 16 * t) }, raycast: function(t, e) { var n = this.matrixWorld , i = this.count; if (wc.geometry = this.geometry, wc.material = this.material, void 0 !== wc.material) for (var r = 0; r < i; r++) this.getMatrixAt(r, vc), yc.multiplyMatrices(n, vc), wc.matrixWorld = yc, wc.raycast(t, bc), bc.length > 0 && (bc[0].instanceId = r, bc[0].object = this, e.push(bc[0]), bc.length = 0) }, setMatrixAt: function(t, e) { e.toArray(this.instanceMatrix.array, 16 * t) }, updateMorphTargets: function() {} }), xc.prototype = Object.create(Pr.prototype), xc.prototype.constructor = xc, xc.prototype.isLineBasicMaterial = !0, xc.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this.linewidth = t.linewidth, this.linecap = t.linecap, this.linejoin = t.linejoin, this } ; var Mc = new si , Ec = new si , Cc = new mi , Ac = new or , Tc = new Ji; function Oc(t, e, n) { 1 === n && console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead."), Di.call(this), this.type = "Line", this.geometry = void 0 !== t ? t : new Qr, this.material = void 0 !== e ? e : new xc } Oc.prototype = Object.assign(Object.create(Di.prototype), { constructor: Oc, isLine: !0, computeLineDistances: function() { var t = this.geometry; if (t.isBufferGeometry) if (null === t.index) { for (var e = t.attributes.position, n = [0], i = 1, r = e.count; i < r; i++) Mc.fromBufferAttribute(e, i - 1), Ec.fromBufferAttribute(e, i), n[i] = n[i - 1], n[i] += Mc.distanceTo(Ec); t.setAttribute("lineDistance", new Br(n,1)) } else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry."); else if (t.isGeometry) { var o = t.vertices; (n = t.lineDistances)[0] = 0; for (i = 1, r = o.length; i < r; i++) n[i] = n[i - 1], n[i] += o[i - 1].distanceTo(o[i]) } return this }, raycast: function(t, e) { var n = this.geometry , i = this.matrixWorld , r = t.params.Line.threshold; if (null === n.boundingSphere && n.computeBoundingSphere(), Tc.copy(n.boundingSphere), Tc.applyMatrix4(i), Tc.radius += r, !1 !== t.ray.intersectsSphere(Tc)) { Cc.getInverse(i), Ac.copy(t.ray).applyMatrix4(Cc); var o = r / ((this.scale.x + this.scale.y + this.scale.z) / 3) , a = o * o , s = new si , c = new si , l = new si , u = new si , d = this && this.isLineSegments ? 2 : 1; if (n.isBufferGeometry) { var p = n.index , h = n.attributes.position.array; if (null !== p) for (var f = p.array, m = 0, g = f.length - 1; m < g; m += d) { var v = f[m] , y = f[m + 1]; if (s.fromArray(h, 3 * v), c.fromArray(h, 3 * y), !(Ac.distanceSqToSegment(s, c, u, l) > a)) u.applyMatrix4(this.matrixWorld), (S = t.ray.origin.distanceTo(u)) < t.near || S > t.far || e.push({ distance: S, point: l.clone().applyMatrix4(this.matrixWorld), index: m, face: null, faceIndex: null, object: this }) } else for (m = 0, g = h.length / 3 - 1; m < g; m += d) { if (s.fromArray(h, 3 * m), c.fromArray(h, 3 * m + 3), !(Ac.distanceSqToSegment(s, c, u, l) > a)) u.applyMatrix4(this.matrixWorld), (S = t.ray.origin.distanceTo(u)) < t.near || S > t.far || e.push({ distance: S, point: l.clone().applyMatrix4(this.matrixWorld), index: m, face: null, faceIndex: null, object: this }) } } else if (n.isGeometry) { var b = n.vertices , w = b.length; for (m = 0; m < w - 1; m += d) { var S; if (!(Ac.distanceSqToSegment(b[m], b[m + 1], u, l) > a)) u.applyMatrix4(this.matrixWorld), (S = t.ray.origin.distanceTo(u)) < t.near || S > t.far || e.push({ distance: S, point: l.clone().applyMatrix4(this.matrixWorld), index: m, face: null, faceIndex: null, object: this }) } } } }, clone: function() { return new this.constructor(this.geometry,this.material).copy(this) } }); var _c = new si , Pc = new si; function Ic(t, e) { Oc.call(this, t, e), this.type = "LineSegments" } function kc(t, e) { Oc.call(this, t, e), this.type = "LineLoop" } function Dc(t) { Pr.call(this), this.type = "PointsMaterial", this.color = new Er(16777215), this.map = null, this.alphaMap = null, this.size = 1, this.sizeAttenuation = !0, this.morphTargets = !1, this.setValues(t) } Ic.prototype = Object.assign(Object.create(Oc.prototype), { constructor: Ic, isLineSegments: !0, computeLineDistances: function() { var t = this.geometry; if (t.isBufferGeometry) if (null === t.index) { for (var e = t.attributes.position, n = [], i = 0, r = e.count; i < r; i += 2) _c.fromBufferAttribute(e, i), Pc.fromBufferAttribute(e, i + 1), n[i] = 0 === i ? 0 : n[i - 1], n[i + 1] = n[i] + _c.distanceTo(Pc); t.setAttribute("lineDistance", new Br(n,1)) } else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry."); else if (t.isGeometry) { var o = t.vertices; for (n = t.lineDistances, i = 0, r = o.length; i < r; i += 2) _c.copy(o[i]), Pc.copy(o[i + 1]), n[i] = 0 === i ? 0 : n[i - 1], n[i + 1] = n[i] + _c.distanceTo(Pc) } return this } }), kc.prototype = Object.assign(Object.create(Oc.prototype), { constructor: kc, isLineLoop: !0 }), Dc.prototype = Object.create(Pr.prototype), Dc.prototype.constructor = Dc, Dc.prototype.isPointsMaterial = !0, Dc.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this.map = t.map, this.alphaMap = t.alphaMap, this.size = t.size, this.sizeAttenuation = t.sizeAttenuation, this.morphTargets = t.morphTargets, this } ; var Rc = new mi , Lc = new or , Nc = new Ji , jc = new si; function Vc(t, e) { Di.call(this), this.type = "Points", this.geometry = void 0 !== t ? t : new Qr, this.material = void 0 !== e ? e : new Dc, this.updateMorphTargets() } function Fc(t, e, n, i, r, o, a) { var s = Lc.distanceSqToPoint(t); if (s < n) { var c = new si; Lc.closestPointToPoint(t, c), c.applyMatrix4(i); var l = r.ray.origin.distanceTo(c); if (l < r.near || l > r.far) return; o.push({ distance: l, distanceToRay: Math.sqrt(s), point: c, index: e, face: null, object: a }) } } function Uc(t, e, n, i, r, o, a, s, c) { ti.call(this, t, e, n, i, r, o, a, s, c), this.format = void 0 !== a ? a : Zt, this.minFilter = void 0 !== o ? o : kt, this.magFilter = void 0 !== r ? r : kt, this.generateMipmaps = !1 } function Bc(t, e, n, i, r, o, a, s, c, l, u, d) { ti.call(this, null, o, a, s, c, l, i, r, u, d), this.image = { width: e, height: n }, this.mipmaps = t, this.flipY = !1, this.generateMipmaps = !1 } function zc(t, e, n, i, r, o, a, s, c) { ti.call(this, t, e, n, i, r, o, a, s, c), this.needsUpdate = !0 } function Gc(t, e, n, i, r, o, a, s, c, l) { if ((l = void 0 !== l ? l : ee) !== ee && l !== ne) throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat"); void 0 === n && l === ee && (n = Ut), void 0 === n && l === ne && (n = Yt), ti.call(this, null, i, r, o, a, s, l, n, c), this.image = { width: t, height: e }, this.magFilter = void 0 !== a ? a : Tt, this.minFilter = void 0 !== s ? s : Tt, this.flipY = !1, this.generateMipmaps = !1 } function Hc(t) { Qr.call(this), this.type = "WireframeGeometry"; var e, n, i, r, o, a, s, c, l, u, d = [], p = [0, 0], h = {}, f = ["a", "b", "c"]; if (t && t.isGeometry) { var m = t.faces; for (e = 0, i = m.length; e < i; e++) { var g = m[e]; for (n = 0; n < 3; n++) s = g[f[n]], c = g[f[(n + 1) % 3]], p[0] = Math.min(s, c), p[1] = Math.max(s, c), void 0 === h[l = p[0] + "," + p[1]] && (h[l] = { index1: p[0], index2: p[1] }) } for (l in h) a = h[l], u = t.vertices[a.index1], d.push(u.x, u.y, u.z), u = t.vertices[a.index2], d.push(u.x, u.y, u.z) } else if (t && t.isBufferGeometry) { var v, y, b, w, S, x, M; if (u = new si, null !== t.index) { for (v = t.attributes.position, y = t.index, 0 === (b = t.groups).length && (b = [{ start: 0, count: y.count, materialIndex: 0 }]), r = 0, o = b.length; r < o; ++r) for (e = S = (w = b[r]).start, i = S + w.count; e < i; e += 3) for (n = 0; n < 3; n++) s = y.getX(e + n), c = y.getX(e + (n + 1) % 3), p[0] = Math.min(s, c), p[1] = Math.max(s, c), void 0 === h[l = p[0] + "," + p[1]] && (h[l] = { index1: p[0], index2: p[1] }); for (l in h) a = h[l], u.fromBufferAttribute(v, a.index1), d.push(u.x, u.y, u.z), u.fromBufferAttribute(v, a.index2), d.push(u.x, u.y, u.z) } else for (e = 0, i = (v = t.attributes.position).count / 3; e < i; e++) for (n = 0; n < 3; n++) x = 3 * e + n, u.fromBufferAttribute(v, x), d.push(u.x, u.y, u.z), M = 3 * e + (n + 1) % 3, u.fromBufferAttribute(v, M), d.push(u.x, u.y, u.z) } this.setAttribute("position", new Br(d,3)) } function Wc(t, e, n) { Eo.call(this), this.type = "ParametricGeometry", this.parameters = { func: t, slices: e, stacks: n }, this.fromBufferGeometry(new qc(t,e,n)), this.mergeVertices() } function qc(t, e, n) { Qr.call(this), this.type = "ParametricBufferGeometry", this.parameters = { func: t, slices: e, stacks: n }; var i, r, o = [], a = [], s = [], c = [], l = 1e-5, u = new si, d = new si, p = new si, h = new si, f = new si; t.length < 3 && console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter."); var m = e + 1; for (i = 0; i <= n; i++) { var g = i / n; for (r = 0; r <= e; r++) { var v = r / e; t(v, g, d), a.push(d.x, d.y, d.z), v - l >= 0 ? (t(v - l, g, p), h.subVectors(d, p)) : (t(v + l, g, p), h.subVectors(p, d)), g - l >= 0 ? (t(v, g - l, p), f.subVectors(d, p)) : (t(v, g + l, p), f.subVectors(p, d)), u.crossVectors(h, f).normalize(), s.push(u.x, u.y, u.z), c.push(v, g) } } for (i = 0; i < n; i++) for (r = 0; r < e; r++) { var y = i * m + r , b = i * m + r + 1 , w = (i + 1) * m + r + 1 , S = (i + 1) * m + r; o.push(y, b, S), o.push(b, w, S) } this.setIndex(o), this.setAttribute("position", new Br(a,3)), this.setAttribute("normal", new Br(s,3)), this.setAttribute("uv", new Br(c,2)) } function Xc(t, e, n, i) { Eo.call(this), this.type = "PolyhedronGeometry", this.parameters = { vertices: t, indices: e, radius: n, detail: i }, this.fromBufferGeometry(new Yc(t,e,n,i)), this.mergeVertices() } function Yc(t, e, n, i) { Qr.call(this), this.type = "PolyhedronBufferGeometry", this.parameters = { vertices: t, indices: e, radius: n, detail: i }, n = n || 1; var r = [] , o = []; function a(t, e, n, i) { var r, o, a = Math.pow(2, i), c = []; for (r = 0; r <= a; r++) { c[r] = []; var l = t.clone().lerp(n, r / a) , u = e.clone().lerp(n, r / a) , d = a - r; for (o = 0; o <= d; o++) c[r][o] = 0 === o && r === a ? l : l.clone().lerp(u, o / d) } for (r = 0; r < a; r++) for (o = 0; o < 2 * (a - r) - 1; o++) { var p = Math.floor(o / 2); o % 2 == 0 ? (s(c[r][p + 1]), s(c[r + 1][p]), s(c[r][p])) : (s(c[r][p + 1]), s(c[r + 1][p + 1]), s(c[r + 1][p])) } } function s(t) { r.push(t.x, t.y, t.z) } function c(e, n) { var i = 3 * e; n.x = t[i + 0], n.y = t[i + 1], n.z = t[i + 2] } function l(t, e, n, i) { i < 0 && 1 === t.x && (o[e] = t.x - 1), 0 === n.x && 0 === n.z && (o[e] = i / 2 / Math.PI + .5) } function u(t) { return Math.atan2(t.z, -t.x) } !function(t) { for (var n = new si, i = new si, r = new si, o = 0; o < e.length; o += 3) c(e[o + 0], n), c(e[o + 1], i), c(e[o + 2], r), a(n, i, r, t) }(i = i || 0), function(t) { for (var e = new si, n = 0; n < r.length; n += 3) e.x = r[n + 0], e.y = r[n + 1], e.z = r[n + 2], e.normalize().multiplyScalar(t), r[n + 0] = e.x, r[n + 1] = e.y, r[n + 2] = e.z }(n), function() { for (var t = new si, e = 0; e < r.length; e += 3) { t.x = r[e + 0], t.y = r[e + 1], t.z = r[e + 2]; var n = u(t) / 2 / Math.PI + .5 , i = (a = t, Math.atan2(-a.y, Math.sqrt(a.x * a.x + a.z * a.z)) / Math.PI + .5); o.push(n, 1 - i) } var a; (function() { for (var t = new si, e = new si, n = new si, i = new si, a = new Zn, s = new Zn, c = new Zn, d = 0, p = 0; d < r.length; d += 9, p += 6) { t.set(r[d + 0], r[d + 1], r[d + 2]), e.set(r[d + 3], r[d + 4], r[d + 5]), n.set(r[d + 6], r[d + 7], r[d + 8]), a.set(o[p + 0], o[p + 1]), s.set(o[p + 2], o[p + 3]), c.set(o[p + 4], o[p + 5]), i.copy(t).add(e).add(n).divideScalar(3); var h = u(i); l(a, p + 0, t, h), l(s, p + 2, e, h), l(c, p + 4, n, h) } } )(), function() { for (var t = 0; t < o.length; t += 6) { var e = o[t + 0] , n = o[t + 2] , i = o[t + 4] , r = Math.max(e, n, i) , a = Math.min(e, n, i); r > .9 && a < .1 && (e < .2 && (o[t + 0] += 1), n < .2 && (o[t + 2] += 1), i < .2 && (o[t + 4] += 1)) } }() }(), this.setAttribute("position", new Br(r,3)), this.setAttribute("normal", new Br(r.slice(),3)), this.setAttribute("uv", new Br(o,2)), 0 === i ? this.computeVertexNormals() : this.normalizeNormals() } function Kc(t, e) { Eo.call(this), this.type = "TetrahedronGeometry", this.parameters = { radius: t, detail: e }, this.fromBufferGeometry(new Zc(t,e)), this.mergeVertices() } function Zc(t, e) { Yc.call(this, [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1], [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1], t, e), this.type = "TetrahedronBufferGeometry", this.parameters = { radius: t, detail: e } } function Jc(t, e) { Eo.call(this), this.type = "OctahedronGeometry", this.parameters = { radius: t, detail: e }, this.fromBufferGeometry(new Qc(t,e)), this.mergeVertices() } function Qc(t, e) { Yc.call(this, [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1], [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2], t, e), this.type = "OctahedronBufferGeometry", this.parameters = { radius: t, detail: e } } function $c(t, e) { Eo.call(this), this.type = "IcosahedronGeometry", this.parameters = { radius: t, detail: e }, this.fromBufferGeometry(new tl(t,e)), this.mergeVertices() } function tl(t, e) { var n = (1 + Math.sqrt(5)) / 2 , i = [-1, n, 0, 1, n, 0, -1, -n, 0, 1, -n, 0, 0, -1, n, 0, 1, n, 0, -1, -n, 0, 1, -n, n, 0, -1, n, 0, 1, -n, 0, -1, -n, 0, 1]; Yc.call(this, i, [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1], t, e), this.type = "IcosahedronBufferGeometry", this.parameters = { radius: t, detail: e } } function el(t, e) { Eo.call(this), this.type = "DodecahedronGeometry", this.parameters = { radius: t, detail: e }, this.fromBufferGeometry(new nl(t,e)), this.mergeVertices() } function nl(t, e) { var n = (1 + Math.sqrt(5)) / 2 , i = 1 / n , r = [-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, -n, 0, -i, n, 0, i, -n, 0, i, n, -i, -n, 0, -i, n, 0, i, -n, 0, i, n, 0, -n, 0, -i, n, 0, -i, -n, 0, i, n, 0, i]; Yc.call(this, r, [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.type = "DodecahedronBufferGeometry", this.parameters = { radius: t, detail: e } } function il(t, e, n, i, r, o) { Eo.call(this), this.type = "TubeGeometry", this.parameters = { path: t, tubularSegments: e, radius: n, radialSegments: i, closed: r }, void 0 !== o && console.warn("THREE.TubeGeometry: taper has been removed."); var a = new rl(t,e,n,i,r); this.tangents = a.tangents, this.normals = a.normals, this.binormals = a.binormals, this.fromBufferGeometry(a), this.mergeVertices() } function rl(t, e, n, i, r) { Qr.call(this), this.type = "TubeBufferGeometry", this.parameters = { path: t, tubularSegments: e, radius: n, radialSegments: i, closed: r }, e = e || 64, n = n || 1, i = i || 8, r = r || !1; var o = t.computeFrenetFrames(e, r); this.tangents = o.tangents, this.normals = o.normals, this.binormals = o.binormals; var a, s, c = new si, l = new si, u = new Zn, d = new si, p = [], h = [], f = [], m = []; function g(r) { d = t.getPointAt(r / e, d); var a = o.normals[r] , u = o.binormals[r]; for (s = 0; s <= i; s++) { var f = s / i * Math.PI * 2 , m = Math.sin(f) , g = -Math.cos(f); l.x = g * a.x + m * u.x, l.y = g * a.y + m * u.y, l.z = g * a.z + m * u.z, l.normalize(), h.push(l.x, l.y, l.z), c.x = d.x + n * l.x, c.y = d.y + n * l.y, c.z = d.z + n * l.z, p.push(c.x, c.y, c.z) } } !function() { for (a = 0; a < e; a++) g(a); g(!1 === r ? e : 0), function() { for (a = 0; a <= e; a++) for (s = 0; s <= i; s++) u.x = a / e, u.y = s / i, f.push(u.x, u.y) }(), function() { for (s = 1; s <= e; s++) for (a = 1; a <= i; a++) { var t = (i + 1) * (s - 1) + (a - 1) , n = (i + 1) * s + (a - 1) , r = (i + 1) * s + a , o = (i + 1) * (s - 1) + a; m.push(t, n, o), m.push(n, r, o) } }() }(), this.setIndex(m), this.setAttribute("position", new Br(p,3)), this.setAttribute("normal", new Br(h,3)), this.setAttribute("uv", new Br(f,2)) } function ol(t, e, n, i, r, o, a) { Eo.call(this), this.type = "TorusKnotGeometry", this.parameters = { radius: t, tube: e, tubularSegments: n, radialSegments: i, p: r, q: o }, void 0 !== a && console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."), this.fromBufferGeometry(new al(t,e,n,i,r,o)), this.mergeVertices() } function al(t, e, n, i, r, o) { Qr.call(this), this.type = "TorusKnotBufferGeometry", this.parameters = { radius: t, tube: e, tubularSegments: n, radialSegments: i, p: r, q: o }, t = t || 1, e = e || .4, n = Math.floor(n) || 64, i = Math.floor(i) || 8, r = r || 2, o = o || 3; var a, s, c = [], l = [], u = [], d = [], p = new si, h = new si, f = new si, m = new si, g = new si, v = new si, y = new si; for (a = 0; a <= n; ++a) { var b = a / n * r * Math.PI * 2; for (T(b, r, o, t, f), T(b + .01, r, o, t, m), v.subVectors(m, f), y.addVectors(m, f), g.crossVectors(v, y), y.crossVectors(g, v), g.normalize(), y.normalize(), s = 0; s <= i; ++s) { var w = s / i * Math.PI * 2 , S = -e * Math.cos(w) , x = e * Math.sin(w); p.x = f.x + (S * y.x + x * g.x), p.y = f.y + (S * y.y + x * g.y), p.z = f.z + (S * y.z + x * g.z), l.push(p.x, p.y, p.z), h.subVectors(p, f).normalize(), u.push(h.x, h.y, h.z), d.push(a / n), d.push(s / i) } } for (s = 1; s <= n; s++) for (a = 1; a <= i; a++) { var M = (i + 1) * (s - 1) + (a - 1) , E = (i + 1) * s + (a - 1) , C = (i + 1) * s + a , A = (i + 1) * (s - 1) + a; c.push(M, E, A), c.push(E, C, A) } function T(t, e, n, i, r) { var o = Math.cos(t) , a = Math.sin(t) , s = n / e * t , c = Math.cos(s); r.x = i * (2 + c) * .5 * o, r.y = i * (2 + c) * a * .5, r.z = i * Math.sin(s) * .5 } this.setIndex(c), this.setAttribute("position", new Br(l,3)), this.setAttribute("normal", new Br(u,3)), this.setAttribute("uv", new Br(d,2)) } function sl(t, e, n, i, r) { Eo.call(this), this.type = "TorusGeometry", this.parameters = { radius: t, tube: e, radialSegments: n, tubularSegments: i, arc: r }, this.fromBufferGeometry(new cl(t,e,n,i,r)), this.mergeVertices() } function cl(t, e, n, i, r) { Qr.call(this), this.type = "TorusBufferGeometry", this.parameters = { radius: t, tube: e, radialSegments: n, tubularSegments: i, arc: r }, t = t || 1, e = e || .4, n = Math.floor(n) || 8, i = Math.floor(i) || 6, r = r || 2 * Math.PI; var o, a, s = [], c = [], l = [], u = [], d = new si, p = new si, h = new si; for (o = 0; o <= n; o++) for (a = 0; a <= i; a++) { var f = a / i * r , m = o / n * Math.PI * 2; p.x = (t + e * Math.cos(m)) * Math.cos(f), p.y = (t + e * Math.cos(m)) * Math.sin(f), p.z = e * Math.sin(m), c.push(p.x, p.y, p.z), d.x = t * Math.cos(f), d.y = t * Math.sin(f), h.subVectors(p, d).normalize(), l.push(h.x, h.y, h.z), u.push(a / i), u.push(o / n) } for (o = 1; o <= n; o++) for (a = 1; a <= i; a++) { var g = (i + 1) * o + a - 1 , v = (i + 1) * (o - 1) + a - 1 , y = (i + 1) * (o - 1) + a , b = (i + 1) * o + a; s.push(g, v, b), s.push(v, y, b) } this.setIndex(s), this.setAttribute("position", new Br(c,3)), this.setAttribute("normal", new Br(l,3)), this.setAttribute("uv", new Br(u,2)) } Vc.prototype = Object.assign(Object.create(Di.prototype), { constructor: Vc, isPoints: !0, raycast: function(t, e) { var n = this.geometry , i = this.matrixWorld , r = t.params.Points.threshold; if (null === n.boundingSphere && n.computeBoundingSphere(), Nc.copy(n.boundingSphere), Nc.applyMatrix4(i), Nc.radius += r, !1 !== t.ray.intersectsSphere(Nc)) { Rc.getInverse(i), Lc.copy(t.ray).applyMatrix4(Rc); var o = r / ((this.scale.x + this.scale.y + this.scale.z) / 3) , a = o * o; if (n.isBufferGeometry) { var s = n.index , c = n.attributes.position.array; if (null !== s) for (var l = s.array, u = 0, d = l.length; u < d; u++) { var p = l[u]; jc.fromArray(c, 3 * p), Fc(jc, p, a, i, t, e, this) } else { u = 0; for (var h = c.length / 3; u < h; u++) jc.fromArray(c, 3 * u), Fc(jc, u, a, i, t, e, this) } } else { var f = n.vertices; for (u = 0, h = f.length; u < h; u++) Fc(f[u], u, a, i, t, e, this) } } }, updateMorphTargets: function() { var t, e, n, i = this.geometry; if (i.isBufferGeometry) { var r = i.morphAttributes , o = Object.keys(r); if (o.length > 0) { var a = r[o[0]]; if (void 0 !== a) for (this.morphTargetInfluences = [], this.morphTargetDictionary = {}, t = 0, e = a.length; t < e; t++) n = a[t].name || String(t), this.morphTargetInfluences.push(0), this.morphTargetDictionary[n] = t } } else { var s = i.morphTargets; void 0 !== s && s.length > 0 && console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.") } }, clone: function() { return new this.constructor(this.geometry,this.material).copy(this) } }), Uc.prototype = Object.assign(Object.create(ti.prototype), { constructor: Uc, isVideoTexture: !0, update: function() { var t = this.image; t.readyState >= t.HAVE_CURRENT_DATA && (this.needsUpdate = !0) } }), Bc.prototype = Object.create(ti.prototype), Bc.prototype.constructor = Bc, Bc.prototype.isCompressedTexture = !0, zc.prototype = Object.create(ti.prototype), zc.prototype.constructor = zc, zc.prototype.isCanvasTexture = !0, Gc.prototype = Object.create(ti.prototype), Gc.prototype.constructor = Gc, Gc.prototype.isDepthTexture = !0, Hc.prototype = Object.create(Qr.prototype), Hc.prototype.constructor = Hc, Wc.prototype = Object.create(Eo.prototype), Wc.prototype.constructor = Wc, qc.prototype = Object.create(Qr.prototype), qc.prototype.constructor = qc, Xc.prototype = Object.create(Eo.prototype), Xc.prototype.constructor = Xc, Yc.prototype = Object.create(Qr.prototype), Yc.prototype.constructor = Yc, Kc.prototype = Object.create(Eo.prototype), Kc.prototype.constructor = Kc, Zc.prototype = Object.create(Yc.prototype), Zc.prototype.constructor = Zc, Jc.prototype = Object.create(Eo.prototype), Jc.prototype.constructor = Jc, Qc.prototype = Object.create(Yc.prototype), Qc.prototype.constructor = Qc, $c.prototype = Object.create(Eo.prototype), $c.prototype.constructor = $c, tl.prototype = Object.create(Yc.prototype), tl.prototype.constructor = tl, el.prototype = Object.create(Eo.prototype), el.prototype.constructor = el, nl.prototype = Object.create(Yc.prototype), nl.prototype.constructor = nl, il.prototype = Object.create(Eo.prototype), il.prototype.constructor = il, rl.prototype = Object.create(Qr.prototype), rl.prototype.constructor = rl, rl.prototype.toJSON = function() { var t = Qr.prototype.toJSON.call(this); return t.path = this.parameters.path.toJSON(), t } , ol.prototype = Object.create(Eo.prototype), ol.prototype.constructor = ol, al.prototype = Object.create(Qr.prototype), al.prototype.constructor = al, sl.prototype = Object.create(Eo.prototype), sl.prototype.constructor = sl, cl.prototype = Object.create(Qr.prototype), cl.prototype.constructor = cl; var ll = function(t, e, n) { n = n || 2; var i, r, o, a, s, c, l, u = e && e.length, d = u ? e[0] * n : t.length, p = ul(t, 0, d, n, !0), h = []; if (!p || p.next === p.prev) return h; if (u && (p = function(t, e, n, i) { var r, o, a, s, c, l = []; for (r = 0, o = e.length; r < o; r++) a = e[r] * i, s = r < o - 1 ? e[r + 1] * i : t.length, (c = ul(t, a, s, i, !1)) === c.next && (c.steiner = !0), l.push(wl(c)); for (l.sort(vl), r = 0; r < l.length; r++) yl(l[r], n), n = dl(n, n.next); return n }(t, e, p, n)), t.length > 80 * n) { i = o = t[0], r = a = t[1]; for (var f = n; f < d; f += n) (s = t[f]) < i && (i = s), (c = t[f + 1]) < r && (r = c), s > o && (o = s), c > a && (a = c); l = 0 !== (l = Math.max(o - i, a - r)) ? 1 / l : 0 } return pl(p, h, n, i, r, l), h }; function ul(t, e, n, i, r) { var o, a; if (r === function(t, e, n, i) { for (var r = 0, o = e, a = n - i; o < n; o += i) r += (t[a] - t[o]) * (t[o + 1] + t[a + 1]), a = o; return r }(t, e, n, i) > 0) for (o = e; o < n; o += i) a = Ol(o, t[o], t[o + 1], a); else for (o = n - i; o >= e; o -= i) a = Ol(o, t[o], t[o + 1], a); return a && El(a, a.next) && (_l(a), a = a.next), a } function dl(t, e) { if (!t) return t; e || (e = t); var n, i = t; do { if (n = !1, i.steiner || !El(i, i.next) && 0 !== Ml(i.prev, i, i.next)) i = i.next; else { if (_l(i), (i = e = i.prev) === i.next) break; n = !0 } } while (n || i !== e); return e } function pl(t, e, n, i, r, o, a) { if (t) { !a && o && function(t, e, n, i) { var r = t; do { null === r.z && (r.z = bl(r.x, r.y, e, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next } while (r !== t); r.prevZ.nextZ = null, r.prevZ = null, function(t) { var e, n, i, r, o, a, s, c, l = 1; do { for (n = t, t = null, o = null, a = 0; n; ) { for (a++, i = n, s = 0, e = 0; e < l && (s++, i = i.nextZ); e++) ; for (c = l; s > 0 || c > 0 && i; ) 0 !== s && (0 === c || !i || n.z <= i.z) ? (r = n, n = n.nextZ, s--) : (r = i, i = i.nextZ, c--), o ? o.nextZ = r : t = r, r.prevZ = o, o = r; n = i } o.nextZ = null, l *= 2 } while (a > 1) }(r) }(t, i, r, o); for (var s, c, l = t; t.prev !== t.next; ) if (s = t.prev, c = t.next, o ? fl(t, i, r, o) : hl(t)) e.push(s.i / n), e.push(t.i / n), e.push(c.i / n), _l(t), t = c.next, l = c.next; else if ((t = c) === l) { a ? 1 === a ? pl(t = ml(t, e, n), e, n, i, r, o, 2) : 2 === a && gl(t, e, n, i, r, o) : pl(dl(t), e, n, i, r, o, 1); break } } } function hl(t) { var e = t.prev , n = t , i = t.next; if (Ml(e, n, i) >= 0) return !1; for (var r = t.next.next; r !== t.prev; ) { if (Sl(e.x, e.y, n.x, n.y, i.x, i.y, r.x, r.y) && Ml(r.prev, r, r.next) >= 0) return !1; r = r.next } return !0 } function fl(t, e, n, i) { var r = t.prev , o = t , a = t.next; if (Ml(r, o, a) >= 0) return !1; for (var s = r.x < o.x ? r.x < a.x ? r.x : a.x : o.x < a.x ? o.x : a.x, c = r.y < o.y ? r.y < a.y ? r.y : a.y : o.y < a.y ? o.y : a.y, l = r.x > o.x ? r.x > a.x ? r.x : a.x : o.x > a.x ? o.x : a.x, u = r.y > o.y ? r.y > a.y ? r.y : a.y : o.y > a.y ? o.y : a.y, d = bl(s, c, e, n, i), p = bl(l, u, e, n, i), h = t.prevZ, f = t.nextZ; h && h.z >= d && f && f.z <= p; ) { if (h !== t.prev && h !== t.next && Sl(r.x, r.y, o.x, o.y, a.x, a.y, h.x, h.y) && Ml(h.prev, h, h.next) >= 0) return !1; if (h = h.prevZ, f !== t.prev && f !== t.next && Sl(r.x, r.y, o.x, o.y, a.x, a.y, f.x, f.y) && Ml(f.prev, f, f.next) >= 0) return !1; f = f.nextZ } for (; h && h.z >= d; ) { if (h !== t.prev && h !== t.next && Sl(r.x, r.y, o.x, o.y, a.x, a.y, h.x, h.y) && Ml(h.prev, h, h.next) >= 0) return !1; h = h.prevZ } for (; f && f.z <= p; ) { if (f !== t.prev && f !== t.next && Sl(r.x, r.y, o.x, o.y, a.x, a.y, f.x, f.y) && Ml(f.prev, f, f.next) >= 0) return !1; f = f.nextZ } return !0 } function ml(t, e, n) { var i = t; do { var r = i.prev , o = i.next.next; !El(r, o) && Cl(r, i, i.next, o) && Al(r, o) && Al(o, r) && (e.push(r.i / n), e.push(i.i / n), e.push(o.i / n), _l(i), _l(i.next), i = t = o), i = i.next } while (i !== t); return i } function gl(t, e, n, i, r, o) { var a = t; do { for (var s = a.next.next; s !== a.prev; ) { if (a.i !== s.i && xl(a, s)) { var c = Tl(a, s); return a = dl(a, a.next), c = dl(c, c.next), pl(a, e, n, i, r, o), void pl(c, e, n, i, r, o) } s = s.next } a = a.next } while (a !== t) } function vl(t, e) { return t.x - e.x } function yl(t, e) { if (e = function(t, e) { var n, i = e, r = t.x, o = t.y, a = -1 / 0; do { if (o <= i.y && o >= i.next.y && i.next.y !== i.y) { var s = i.x + (o - i.y) * (i.next.x - i.x) / (i.next.y - i.y); if (s <= r && s > a) { if (a = s, s === r) { if (o === i.y) return i; if (o === i.next.y) return i.next } n = i.x < i.next.x ? i : i.next } } i = i.next } while (i !== e); if (!n) return null; if (r === a) return n.prev; var c, l = n, u = n.x, d = n.y, p = 1 / 0; i = n.next; for (; i !== l; ) r >= i.x && i.x >= u && r !== i.x && Sl(o < d ? r : a, o, u, d, o < d ? a : r, o, i.x, i.y) && ((c = Math.abs(o - i.y) / (r - i.x)) < p || c === p && i.x > n.x) && Al(i, t) && (n = i, p = c), i = i.next; return n }(t, e)) { var n = Tl(e, t); dl(n, n.next) } } function bl(t, e, n, i, r) { return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - n) * r) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - i) * r) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1 } function wl(t) { var e = t , n = t; do { (e.x < n.x || e.x === n.x && e.y < n.y) && (n = e), e = e.next } while (e !== t); return n } function Sl(t, e, n, i, r, o, a, s) { return (r - a) * (e - s) - (t - a) * (o - s) >= 0 && (t - a) * (i - s) - (n - a) * (e - s) >= 0 && (n - a) * (o - s) - (r - a) * (i - s) >= 0 } function xl(t, e) { return t.next.i !== e.i && t.prev.i !== e.i && !function(t, e) { var n = t; do { if (n.i !== t.i && n.next.i !== t.i && n.i !== e.i && n.next.i !== e.i && Cl(n, n.next, t, e)) return !0; n = n.next } while (n !== t); return !1 }(t, e) && Al(t, e) && Al(e, t) && function(t, e) { var n = t , i = !1 , r = (t.x + e.x) / 2 , o = (t.y + e.y) / 2; do { n.y > o != n.next.y > o && n.next.y !== n.y && r < (n.next.x - n.x) * (o - n.y) / (n.next.y - n.y) + n.x && (i = !i), n = n.next } while (n !== t); return i }(t, e) } function Ml(t, e, n) { return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y) } function El(t, e) { return t.x === e.x && t.y === e.y } function Cl(t, e, n, i) { return !!(El(t, n) && El(e, i) || El(t, i) && El(n, e)) || Ml(t, e, n) > 0 != Ml(t, e, i) > 0 && Ml(n, i, t) > 0 != Ml(n, i, e) > 0 } function Al(t, e) { return Ml(t.prev, t, t.next) < 0 ? Ml(t, e, t.next) >= 0 && Ml(t, t.prev, e) >= 0 : Ml(t, e, t.prev) < 0 || Ml(t, t.next, e) < 0 } function Tl(t, e) { var n = new Pl(t.i,t.x,t.y) , i = new Pl(e.i,e.x,e.y) , r = t.next , o = e.prev; return t.next = e, e.prev = t, n.next = r, r.prev = n, i.next = n, n.prev = i, o.next = i, i.prev = o, i } function Ol(t, e, n, i) { var r = new Pl(t,e,n); return i ? (r.next = i.next, r.prev = i, i.next.prev = r, i.next = r) : (r.prev = r, r.next = r), r } function _l(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 Pl(t, e, n) { this.i = t, this.x = e, this.y = n, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1 } var Il = { area: function(t) { for (var e = t.length, n = 0, i = e - 1, r = 0; r < e; i = r++) n += t[i].x * t[r].y - t[r].x * t[i].y; return .5 * n }, isClockWise: function(t) { return Il.area(t) < 0 }, triangulateShape: function(t, e) { var n = [] , i = [] , r = []; kl(t), Dl(n, t); var o = t.length; e.forEach(kl); for (var a = 0; a < e.length; a++) i.push(o), o += e[a].length, Dl(n, e[a]); var s = ll(n, i); for (a = 0; a < s.length; a += 3) r.push(s.slice(a, a + 3)); return r } }; function kl(t) { var e = t.length; e > 2 && t[e - 1].equals(t[0]) && t.pop() } function Dl(t, e) { for (var n = 0; n < e.length; n++) t.push(e[n].x), t.push(e[n].y) } function Rl(t, e) { Eo.call(this), this.type = "ExtrudeGeometry", this.parameters = { shapes: t, options: e }, this.fromBufferGeometry(new Ll(t,e)), this.mergeVertices() } function Ll(t, e) { Qr.call(this), this.type = "ExtrudeBufferGeometry", this.parameters = { shapes: t, options: e }, t = Array.isArray(t) ? t : [t]; for (var n = this, i = [], r = [], o = 0, a = t.length; o < a; o++) { s(t[o]) } function s(t) { var o = [] , a = void 0 !== e.curveSegments ? e.curveSegments : 12 , s = void 0 !== e.steps ? e.steps : 1 , c = void 0 !== e.depth ? e.depth : 100 , l = void 0 === e.bevelEnabled || e.bevelEnabled , u = void 0 !== e.bevelThickness ? e.bevelThickness : 6 , d = void 0 !== e.bevelSize ? e.bevelSize : u - 2 , p = void 0 !== e.bevelOffset ? e.bevelOffset : 0 , h = void 0 !== e.bevelSegments ? e.bevelSegments : 3 , f = e.extrudePath , m = void 0 !== e.UVGenerator ? e.UVGenerator : Nl; void 0 !== e.amount && (console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."), c = e.amount); var g, v, y, b, w, S, x, M, E = !1; f && (g = f.getSpacedPoints(s), E = !0, l = !1, v = f.computeFrenetFrames(s, !1), y = new si, b = new si, w = new si), l || (h = 0, u = 0, d = 0, p = 0); var C = t.extractPoints(a) , A = C.shape , T = C.holes; if (!Il.isClockWise(A)) for (A = A.reverse(), x = 0, M = T.length; x < M; x++) S = T[x], Il.isClockWise(S) && (T[x] = S.reverse()); var O = Il.triangulateShape(A, T) , _ = A; for (x = 0, M = T.length; x < M; x++) S = T[x], A = A.concat(S); function P(t, e, n) { return e || console.error("THREE.ExtrudeGeometry: vec does not exist"), e.clone().multiplyScalar(n).add(t) } var I, k, D, R, L, N, j = A.length, V = O.length; function F(t, e, n) { var i, r, o, a = t.x - e.x, s = t.y - e.y, c = n.x - t.x, l = n.y - t.y, u = a * a + s * s, d = a * l - s * c; if (Math.abs(d) > Number.EPSILON) { var p = Math.sqrt(u) , h = Math.sqrt(c * c + l * l) , f = e.x - s / p , m = e.y + a / p , g = ((n.x - l / h - f) * l - (n.y + c / h - m) * c) / (a * l - s * c) , v = (i = f + a * g - t.x) * i + (r = m + s * g - t.y) * r; if (v <= 2) return new Zn(i,r); o = Math.sqrt(v / 2) } else { var y = !1; a > Number.EPSILON ? c > Number.EPSILON && (y = !0) : a < -Number.EPSILON ? c < -Number.EPSILON && (y = !0) : Math.sign(s) === Math.sign(l) && (y = !0), y ? (i = -s, r = a, o = Math.sqrt(u)) : (i = a, r = s, o = Math.sqrt(u / 2)) } return new Zn(i / o,r / o) } for (var U = [], B = 0, z = _.length, G = z - 1, H = B + 1; B < z; B++, G++, H++) G === z && (G = 0), H === z && (H = 0), U[B] = F(_[B], _[G], _[H]); var W, q, X = [], Y = U.concat(); for (x = 0, M = T.length; x < M; x++) { for (S = T[x], W = [], B = 0, G = (z = S.length) - 1, H = B + 1; B < z; B++, G++, H++) G === z && (G = 0), H === z && (H = 0), W[B] = F(S[B], S[G], S[H]); X.push(W), Y = Y.concat(W) } for (I = 0; I < h; I++) { for (D = I / h, R = u * Math.cos(D * Math.PI / 2), k = d * Math.sin(D * Math.PI / 2) + p, B = 0, z = _.length; B < z; B++) Z((L = P(_[B], U[B], k)).x, L.y, -R); for (x = 0, M = T.length; x < M; x++) for (S = T[x], W = X[x], B = 0, z = S.length; B < z; B++) Z((L = P(S[B], W[B], k)).x, L.y, -R) } for (k = d + p, B = 0; B < j; B++) L = l ? P(A[B], Y[B], k) : A[B], E ? (b.copy(v.normals[0]).multiplyScalar(L.x), y.copy(v.binormals[0]).multiplyScalar(L.y), w.copy(g[0]).add(b).add(y), Z(w.x, w.y, w.z)) : Z(L.x, L.y, 0); for (q = 1; q <= s; q++) for (B = 0; B < j; B++) L = l ? P(A[B], Y[B], k) : A[B], E ? (b.copy(v.normals[q]).multiplyScalar(L.x), y.copy(v.binormals[q]).multiplyScalar(L.y), w.copy(g[q]).add(b).add(y), Z(w.x, w.y, w.z)) : Z(L.x, L.y, c / s * q); for (I = h - 1; I >= 0; I--) { for (D = I / h, R = u * Math.cos(D * Math.PI / 2), k = d * Math.sin(D * Math.PI / 2) + p, B = 0, z = _.length; B < z; B++) Z((L = P(_[B], U[B], k)).x, L.y, c + R); for (x = 0, M = T.length; x < M; x++) for (S = T[x], W = X[x], B = 0, z = S.length; B < z; B++) L = P(S[B], W[B], k), E ? Z(L.x, L.y + g[s - 1].y, g[s - 1].x + R) : Z(L.x, L.y, c + R) } function K(t, e) { var n, i; for (B = t.length; --B >= 0; ) { n = B, (i = B - 1) < 0 && (i = t.length - 1); var r = 0 , o = s + 2 * h; for (r = 0; r < o; r++) { var a = j * r , c = j * (r + 1); Q(e + n + a, e + i + a, e + i + c, e + n + c) } } } function Z(t, e, n) { o.push(t), o.push(e), o.push(n) } function J(t, e, r) { $(t), $(e), $(r); var o = i.length / 3 , a = m.generateTopUV(n, i, o - 3, o - 2, o - 1); tt(a[0]), tt(a[1]), tt(a[2]) } function Q(t, e, r, o) { $(t), $(e), $(o), $(e), $(r), $(o); var a = i.length / 3 , s = m.generateSideWallUV(n, i, a - 6, a - 3, a - 2, a - 1); tt(s[0]), tt(s[1]), tt(s[3]), tt(s[1]), tt(s[2]), tt(s[3]) } function $(t) { i.push(o[3 * t + 0]), i.push(o[3 * t + 1]), i.push(o[3 * t + 2]) } function tt(t) { r.push(t.x), r.push(t.y) } !function() { var t = i.length / 3; if (l) { var e = 0 , r = j * e; for (B = 0; B < V; B++) J((N = O[B])[2] + r, N[1] + r, N[0] + r); for (r = j * (e = s + 2 * h), B = 0; B < V; B++) J((N = O[B])[0] + r, N[1] + r, N[2] + r) } else { for (B = 0; B < V; B++) J((N = O[B])[2], N[1], N[0]); for (B = 0; B < V; B++) J((N = O[B])[0] + j * s, N[1] + j * s, N[2] + j * s) } n.addGroup(t, i.length / 3 - t, 0) }(), function() { var t = i.length / 3 , e = 0; for (K(_, e), e += _.length, x = 0, M = T.length; x < M; x++) K(S = T[x], e), e += S.length; n.addGroup(t, i.length / 3 - t, 1) }() } this.setAttribute("position", new Br(i,3)), this.setAttribute("uv", new Br(r,2)), this.computeVertexNormals() } Rl.prototype = Object.create(Eo.prototype), Rl.prototype.constructor = Rl, Rl.prototype.toJSON = function() { var t = Eo.prototype.toJSON.call(this); return jl(this.parameters.shapes, this.parameters.options, t) } , Ll.prototype = Object.create(Qr.prototype), Ll.prototype.constructor = Ll, Ll.prototype.toJSON = function() { var t = Qr.prototype.toJSON.call(this); return jl(this.parameters.shapes, this.parameters.options, t) } ; var Nl = { generateTopUV: function(t, e, n, i, r) { var o = e[3 * n] , a = e[3 * n + 1] , s = e[3 * i] , c = e[3 * i + 1] , l = e[3 * r] , u = e[3 * r + 1]; return [new Zn(o,a), new Zn(s,c), new Zn(l,u)] }, generateSideWallUV: function(t, e, n, i, r, o) { var a = e[3 * n] , s = e[3 * n + 1] , c = e[3 * n + 2] , l = e[3 * i] , u = e[3 * i + 1] , d = e[3 * i + 2] , p = e[3 * r] , h = e[3 * r + 1] , f = e[3 * r + 2] , m = e[3 * o] , g = e[3 * o + 1] , v = e[3 * o + 2]; return Math.abs(s - u) < .01 ? [new Zn(a,1 - c), new Zn(l,1 - d), new Zn(p,1 - f), new Zn(m,1 - v)] : [new Zn(s,1 - c), new Zn(u,1 - d), new Zn(h,1 - f), new Zn(g,1 - v)] } }; function jl(t, e, n) { if (n.shapes = [], Array.isArray(t)) for (var i = 0, r = t.length; i < r; i++) { var o = t[i]; n.shapes.push(o.uuid) } else n.shapes.push(t.uuid); return void 0 !== e.extrudePath && (n.options.extrudePath = e.extrudePath.toJSON()), n } function Vl(t, e) { Eo.call(this), this.type = "TextGeometry", this.parameters = { text: t, parameters: e }, this.fromBufferGeometry(new Fl(t,e)), this.mergeVertices() } function Fl(t, e) { var n = (e = e || {}).font; if (!n || !n.isFont) return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."), new Eo; var i = n.generateShapes(t, e.size); e.depth = void 0 !== e.height ? e.height : 50, void 0 === e.bevelThickness && (e.bevelThickness = 10), void 0 === e.bevelSize && (e.bevelSize = 8), void 0 === e.bevelEnabled && (e.bevelEnabled = !1), Ll.call(this, i, e), this.type = "TextBufferGeometry" } function Ul(t, e, n, i, r, o, a) { Eo.call(this), this.type = "SphereGeometry", this.parameters = { radius: t, widthSegments: e, heightSegments: n, phiStart: i, phiLength: r, thetaStart: o, thetaLength: a }, this.fromBufferGeometry(new Bl(t,e,n,i,r,o,a)), this.mergeVertices() } function Bl(t, e, n, i, r, o, a) { Qr.call(this), this.type = "SphereBufferGeometry", this.parameters = { radius: t, widthSegments: e, heightSegments: n, phiStart: i, phiLength: r, thetaStart: o, thetaLength: a }, t = t || 1, e = Math.max(3, Math.floor(e) || 8), n = Math.max(2, Math.floor(n) || 6), i = void 0 !== i ? i : 0, r = void 0 !== r ? r : 2 * Math.PI, o = void 0 !== o ? o : 0, a = void 0 !== a ? a : Math.PI; var s, c, l = Math.min(o + a, Math.PI), u = 0, d = [], p = new si, h = new si, f = [], m = [], g = [], v = []; for (c = 0; c <= n; c++) { var y = [] , b = c / n , w = 0; for (0 == c && 0 == o ? w = .5 / e : c == n && l == Math.PI && (w = -.5 / e), s = 0; s <= e; s++) { var S = s / e; p.x = -t * Math.cos(i + S * r) * Math.sin(o + b * a), p.y = t * Math.cos(o + b * a), p.z = t * Math.sin(i + S * r) * Math.sin(o + b * a), m.push(p.x, p.y, p.z), h.copy(p).normalize(), g.push(h.x, h.y, h.z), v.push(S + w, 1 - b), y.push(u++) } d.push(y) } for (c = 0; c < n; c++) for (s = 0; s < e; s++) { var x = d[c][s + 1] , M = d[c][s] , E = d[c + 1][s] , C = d[c + 1][s + 1]; (0 !== c || o > 0) && f.push(x, M, C), (c !== n - 1 || l < Math.PI) && f.push(M, E, C) } this.setIndex(f), this.setAttribute("position", new Br(m,3)), this.setAttribute("normal", new Br(g,3)), this.setAttribute("uv", new Br(v,2)) } function zl(t, e, n, i, r, o) { Eo.call(this), this.type = "RingGeometry", this.parameters = { innerRadius: t, outerRadius: e, thetaSegments: n, phiSegments: i, thetaStart: r, thetaLength: o }, this.fromBufferGeometry(new Gl(t,e,n,i,r,o)), this.mergeVertices() } function Gl(t, e, n, i, r, o) { Qr.call(this), this.type = "RingBufferGeometry", this.parameters = { innerRadius: t, outerRadius: e, thetaSegments: n, phiSegments: i, thetaStart: r, thetaLength: o }, t = t || .5, e = e || 1, r = void 0 !== r ? r : 0, o = void 0 !== o ? o : 2 * Math.PI, n = void 0 !== n ? Math.max(3, n) : 8; var a, s, c, l = [], u = [], d = [], p = [], h = t, f = (e - t) / (i = void 0 !== i ? Math.max(1, i) : 1), m = new si, g = new Zn; for (s = 0; s <= i; s++) { for (c = 0; c <= n; c++) a = r + c / n * o, m.x = h * Math.cos(a), m.y = h * Math.sin(a), u.push(m.x, m.y, m.z), d.push(0, 0, 1), g.x = (m.x / e + 1) / 2, g.y = (m.y / e + 1) / 2, p.push(g.x, g.y); h += f } for (s = 0; s < i; s++) { var v = s * (n + 1); for (c = 0; c < n; c++) { var y = a = c + v , b = a + n + 1 , w = a + n + 2 , S = a + 1; l.push(y, b, S), l.push(b, w, S) } } this.setIndex(l), this.setAttribute("position", new Br(u,3)), this.setAttribute("normal", new Br(d,3)), this.setAttribute("uv", new Br(p,2)) } function Hl(t, e, n, i) { Eo.call(this), this.type = "LatheGeometry", this.parameters = { points: t, segments: e, phiStart: n, phiLength: i }, this.fromBufferGeometry(new Wl(t,e,n,i)), this.mergeVertices() } function Wl(t, e, n, i) { Qr.call(this), this.type = "LatheBufferGeometry", this.parameters = { points: t, segments: e, phiStart: n, phiLength: i }, e = Math.floor(e) || 12, n = n || 0, i = i || 2 * Math.PI, i = Kn.clamp(i, 0, 2 * Math.PI); var r, o, a, s = [], c = [], l = [], u = 1 / e, d = new si, p = new Zn; for (o = 0; o <= e; o++) { var h = n + o * u * i , f = Math.sin(h) , m = Math.cos(h); for (a = 0; a <= t.length - 1; a++) d.x = t[a].x * f, d.y = t[a].y, d.z = t[a].x * m, c.push(d.x, d.y, d.z), p.x = o / e, p.y = a / (t.length - 1), l.push(p.x, p.y) } for (o = 0; o < e; o++) for (a = 0; a < t.length - 1; a++) { var g = r = a + o * t.length , v = r + t.length , y = r + t.length + 1 , b = r + 1; s.push(g, v, b), s.push(v, y, b) } if (this.setIndex(s), this.setAttribute("position", new Br(c,3)), this.setAttribute("uv", new Br(l,2)), this.computeVertexNormals(), i === 2 * Math.PI) { var w = this.attributes.normal.array , S = new si , x = new si , M = new si; for (r = e * t.length * 3, o = 0, a = 0; o < t.length; o++, a += 3) S.x = w[a + 0], S.y = w[a + 1], S.z = w[a + 2], x.x = w[r + a + 0], x.y = w[r + a + 1], x.z = w[r + a + 2], M.addVectors(S, x).normalize(), w[a + 0] = w[r + a + 0] = M.x, w[a + 1] = w[r + a + 1] = M.y, w[a + 2] = w[r + a + 2] = M.z } } function ql(t, e) { Eo.call(this), this.type = "ShapeGeometry", "object" === o(e) && (console.warn("THREE.ShapeGeometry: Options parameter has been removed."), e = e.curveSegments), this.parameters = { shapes: t, curveSegments: e }, this.fromBufferGeometry(new Xl(t,e)), this.mergeVertices() } function Xl(t, e) { Qr.call(this), this.type = "ShapeBufferGeometry", this.parameters = { shapes: t, curveSegments: e }, e = e || 12; var n = [] , i = [] , r = [] , o = [] , a = 0 , s = 0; if (!1 === Array.isArray(t)) l(t); else for (var c = 0; c < t.length; c++) l(t[c]), this.addGroup(a, s, c), a += s, s = 0; function l(t) { var a, c, l, u = i.length / 3, d = t.extractPoints(e), p = d.shape, h = d.holes; for (!1 === Il.isClockWise(p) && (p = p.reverse()), a = 0, c = h.length; a < c; a++) l = h[a], !0 === Il.isClockWise(l) && (h[a] = l.reverse()); var f = Il.triangulateShape(p, h); for (a = 0, c = h.length; a < c; a++) l = h[a], p = p.concat(l); for (a = 0, c = p.length; a < c; a++) { var m = p[a]; i.push(m.x, m.y, 0), r.push(0, 0, 1), o.push(m.x, m.y) } for (a = 0, c = f.length; a < c; a++) { var g = f[a] , v = g[0] + u , y = g[1] + u , b = g[2] + u; n.push(v, y, b), s += 3 } } this.setIndex(n), this.setAttribute("position", new Br(i,3)), this.setAttribute("normal", new Br(r,3)), this.setAttribute("uv", new Br(o,2)) } function Yl(t, e) { if (e.shapes = [], Array.isArray(t)) for (var n = 0, i = t.length; n < i; n++) { var r = t[n]; e.shapes.push(r.uuid) } else e.shapes.push(t.uuid); return e } function Kl(t, e) { Qr.call(this), this.type = "EdgesGeometry", this.parameters = { thresholdAngle: e }, e = void 0 !== e ? e : 1; var n, i, r, o, a = [], s = Math.cos(Kn.DEG2RAD * e), c = [0, 0], l = {}, u = ["a", "b", "c"]; t.isBufferGeometry ? (o = new Eo).fromBufferGeometry(t) : o = t.clone(), o.mergeVertices(), o.computeFaceNormals(); for (var d = o.vertices, p = o.faces, h = 0, f = p.length; h < f; h++) for (var m = p[h], g = 0; g < 3; g++) n = m[u[g]], i = m[u[(g + 1) % 3]], c[0] = Math.min(n, i), c[1] = Math.max(n, i), void 0 === l[r = c[0] + "," + c[1]] ? l[r] = { index1: c[0], index2: c[1], face1: h, face2: void 0 } : l[r].face2 = h; for (r in l) { var v = l[r]; if (void 0 === v.face2 || p[v.face1].normal.dot(p[v.face2].normal) <= s) { var y = d[v.index1]; a.push(y.x, y.y, y.z), y = d[v.index2], a.push(y.x, y.y, y.z) } } this.setAttribute("position", new Br(a,3)) } function Zl(t, e, n, i, r, o, a, s) { Eo.call(this), this.type = "CylinderGeometry", this.parameters = { radiusTop: t, radiusBottom: e, height: n, radialSegments: i, heightSegments: r, openEnded: o, thetaStart: a, thetaLength: s }, this.fromBufferGeometry(new Jl(t,e,n,i,r,o,a,s)), this.mergeVertices() } function Jl(t, e, n, i, r, o, a, s) { Qr.call(this), this.type = "CylinderBufferGeometry", this.parameters = { radiusTop: t, radiusBottom: e, height: n, radialSegments: i, heightSegments: r, openEnded: o, thetaStart: a, thetaLength: s }; var c = this; t = void 0 !== t ? t : 1, e = void 0 !== e ? e : 1, n = n || 1, i = Math.floor(i) || 8, r = Math.floor(r) || 1, o = void 0 !== o && o, a = void 0 !== a ? a : 0, s = void 0 !== s ? s : 2 * Math.PI; var l = [] , u = [] , d = [] , p = [] , h = 0 , f = [] , m = n / 2 , g = 0; function v(n) { var r, o, f, v = new Zn, y = new si, b = 0, w = !0 === n ? t : e, S = !0 === n ? 1 : -1; for (o = h, r = 1; r <= i; r++) u.push(0, m * S, 0), d.push(0, S, 0), p.push(.5, .5), h++; for (f = h, r = 0; r <= i; r++) { var x = r / i * s + a , M = Math.cos(x) , E = Math.sin(x); y.x = w * E, y.y = m * S, y.z = w * M, u.push(y.x, y.y, y.z), d.push(0, S, 0), v.x = .5 * M + .5, v.y = .5 * E * S + .5, p.push(v.x, v.y), h++ } for (r = 0; r < i; r++) { var C = o + r , A = f + r; !0 === n ? l.push(A, A + 1, C) : l.push(A + 1, A, C), b += 3 } c.addGroup(g, b, !0 === n ? 1 : 2), g += b } !function() { var o, v, y = new si, b = new si, w = 0, S = (e - t) / n; for (v = 0; v <= r; v++) { var x = [] , M = v / r , E = M * (e - t) + t; for (o = 0; o <= i; o++) { var C = o / i , A = C * s + a , T = Math.sin(A) , O = Math.cos(A); b.x = E * T, b.y = -M * n + m, b.z = E * O, u.push(b.x, b.y, b.z), y.set(T, S, O).normalize(), d.push(y.x, y.y, y.z), p.push(C, 1 - M), x.push(h++) } f.push(x) } for (o = 0; o < i; o++) for (v = 0; v < r; v++) { var _ = f[v][o] , P = f[v + 1][o] , I = f[v + 1][o + 1] , k = f[v][o + 1]; l.push(_, P, k), l.push(P, I, k), w += 6 } c.addGroup(g, w, 0), g += w }(), !1 === o && (t > 0 && v(!0), e > 0 && v(!1)), this.setIndex(l), this.setAttribute("position", new Br(u,3)), this.setAttribute("normal", new Br(d,3)), this.setAttribute("uv", new Br(p,2)) } function Ql(t, e, n, i, r, o, a) { Zl.call(this, 0, t, e, n, i, r, o, a), this.type = "ConeGeometry", this.parameters = { radius: t, height: e, radialSegments: n, heightSegments: i, openEnded: r, thetaStart: o, thetaLength: a } } function $l(t, e, n, i, r, o, a) { Jl.call(this, 0, t, e, n, i, r, o, a), this.type = "ConeBufferGeometry", this.parameters = { radius: t, height: e, radialSegments: n, heightSegments: i, openEnded: r, thetaStart: o, thetaLength: a } } function tu(t, e, n, i) { Eo.call(this), this.type = "CircleGeometry", this.parameters = { radius: t, segments: e, thetaStart: n, thetaLength: i }, this.fromBufferGeometry(new eu(t,e,n,i)), this.mergeVertices() } function eu(t, e, n, i) { Qr.call(this), this.type = "CircleBufferGeometry", this.parameters = { radius: t, segments: e, thetaStart: n, thetaLength: i }, t = t || 1, e = void 0 !== e ? Math.max(3, e) : 8, n = void 0 !== n ? n : 0, i = void 0 !== i ? i : 2 * Math.PI; var r, o, a = [], s = [], c = [], l = [], u = new si, d = new Zn; for (s.push(0, 0, 0), c.push(0, 0, 1), l.push(.5, .5), o = 0, r = 3; o <= e; o++, r += 3) { var p = n + o / e * i; u.x = t * Math.cos(p), u.y = t * Math.sin(p), s.push(u.x, u.y, u.z), c.push(0, 0, 1), d.x = (s[r] / t + 1) / 2, d.y = (s[r + 1] / t + 1) / 2, l.push(d.x, d.y) } for (r = 1; r <= e; r++) a.push(r, r + 1, 0); this.setIndex(a), this.setAttribute("position", new Br(s,3)), this.setAttribute("normal", new Br(c,3)), this.setAttribute("uv", new Br(l,2)) } Vl.prototype = Object.create(Eo.prototype), Vl.prototype.constructor = Vl, Fl.prototype = Object.create(Ll.prototype), Fl.prototype.constructor = Fl, Ul.prototype = Object.create(Eo.prototype), Ul.prototype.constructor = Ul, Bl.prototype = Object.create(Qr.prototype), Bl.prototype.constructor = Bl, zl.prototype = Object.create(Eo.prototype), zl.prototype.constructor = zl, Gl.prototype = Object.create(Qr.prototype), Gl.prototype.constructor = Gl, Hl.prototype = Object.create(Eo.prototype), Hl.prototype.constructor = Hl, Wl.prototype = Object.create(Qr.prototype), Wl.prototype.constructor = Wl, ql.prototype = Object.create(Eo.prototype), ql.prototype.constructor = ql, ql.prototype.toJSON = function() { var t = Eo.prototype.toJSON.call(this); return Yl(this.parameters.shapes, t) } , Xl.prototype = Object.create(Qr.prototype), Xl.prototype.constructor = Xl, Xl.prototype.toJSON = function() { var t = Qr.prototype.toJSON.call(this); return Yl(this.parameters.shapes, t) } , Kl.prototype = Object.create(Qr.prototype), Kl.prototype.constructor = Kl, Zl.prototype = Object.create(Eo.prototype), Zl.prototype.constructor = Zl, Jl.prototype = Object.create(Qr.prototype), Jl.prototype.constructor = Jl, Ql.prototype = Object.create(Zl.prototype), Ql.prototype.constructor = Ql, $l.prototype = Object.create(Jl.prototype), $l.prototype.constructor = $l, tu.prototype = Object.create(Eo.prototype), tu.prototype.constructor = tu, eu.prototype = Object.create(Qr.prototype), eu.prototype.constructor = eu; var nu = Object.freeze({ __proto__: null, WireframeGeometry: Hc, ParametricGeometry: Wc, ParametricBufferGeometry: qc, TetrahedronGeometry: Kc, TetrahedronBufferGeometry: Zc, OctahedronGeometry: Jc, OctahedronBufferGeometry: Qc, IcosahedronGeometry: $c, IcosahedronBufferGeometry: tl, DodecahedronGeometry: el, DodecahedronBufferGeometry: nl, PolyhedronGeometry: Xc, PolyhedronBufferGeometry: Yc, TubeGeometry: il, TubeBufferGeometry: rl, TorusKnotGeometry: ol, TorusKnotBufferGeometry: al, TorusGeometry: sl, TorusBufferGeometry: cl, TextGeometry: Vl, TextBufferGeometry: Fl, SphereGeometry: Ul, SphereBufferGeometry: Bl, RingGeometry: zl, RingBufferGeometry: Gl, PlaneGeometry: zo, PlaneBufferGeometry: Go, LatheGeometry: Hl, LatheBufferGeometry: Wl, ShapeGeometry: ql, ShapeBufferGeometry: Xl, ExtrudeGeometry: Rl, ExtrudeBufferGeometry: Ll, EdgesGeometry: Kl, ConeGeometry: Ql, ConeBufferGeometry: $l, CylinderGeometry: Zl, CylinderBufferGeometry: Jl, CircleGeometry: tu, CircleBufferGeometry: eu, BoxGeometry: Co, BoxBufferGeometry: Ao }); function iu(t) { Pr.call(this), this.type = "ShadowMaterial", this.color = new Er(0), this.transparent = !0, this.setValues(t) } function ru(t) { Po.call(this, t), this.type = "RawShaderMaterial" } function ou(t) { Pr.call(this), this.defines = { STANDARD: "" }, this.type = "MeshStandardMaterial", this.color = new Er(16777215), this.roughness = 1, this.metalness = 0, this.map = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.emissive = new Er(0), this.emissiveIntensity = 1, this.emissiveMap = null, this.bumpMap = null, this.bumpScale = 1, this.normalMap = null, this.normalMapType = yn, this.normalScale = new Zn(1,1), this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.roughnessMap = null, this.metalnessMap = null, this.alphaMap = null, this.envMap = null, this.envMapIntensity = 1, this.refractionRatio = .98, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.vertexTangents = !1, this.setValues(t) } function au(t) { ou.call(this), this.defines = { STANDARD: "", PHYSICAL: "" }, this.type = "MeshPhysicalMaterial", this.clearcoat = 0, this.clearcoatMap = null, this.clearcoatRoughness = 0, this.clearcoatRoughnessMap = null, this.clearcoatNormalScale = new Zn(1,1), this.clearcoatNormalMap = null, this.reflectivity = .5, this.sheen = null, this.transparency = 0, this.setValues(t) } function su(t) { Pr.call(this), this.type = "MeshPhongMaterial", this.color = new Er(16777215), this.specular = new Er(1118481), this.shininess = 30, this.map = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.emissive = new Er(0), this.emissiveIntensity = 1, this.emissiveMap = null, this.bumpMap = null, this.bumpScale = 1, this.normalMap = null, this.normalMapType = yn, this.normalScale = new Zn(1,1), this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.specularMap = null, this.alphaMap = null, this.envMap = null, this.combine = st, this.reflectivity = 1, this.refractionRatio = .98, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.setValues(t) } function cu(t) { Pr.call(this), this.defines = { TOON: "" }, this.type = "MeshToonMaterial", this.color = new Er(16777215), this.specular = new Er(1118481), this.shininess = 30, this.map = null, this.gradientMap = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.emissive = new Er(0), this.emissiveIntensity = 1, this.emissiveMap = null, this.bumpMap = null, this.bumpScale = 1, this.normalMap = null, this.normalMapType = yn, this.normalScale = new Zn(1,1), this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.specularMap = null, this.alphaMap = null, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.setValues(t) } function lu(t) { Pr.call(this), this.type = "MeshNormalMaterial", this.bumpMap = null, this.bumpScale = 1, this.normalMap = null, this.normalMapType = yn, this.normalScale = new Zn(1,1), this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.wireframe = !1, this.wireframeLinewidth = 1, this.fog = !1, this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.setValues(t) } function uu(t) { Pr.call(this), this.type = "MeshLambertMaterial", this.color = new Er(16777215), this.map = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.emissive = new Er(0), this.emissiveIntensity = 1, this.emissiveMap = null, this.specularMap = null, this.alphaMap = null, this.envMap = null, this.combine = st, this.reflectivity = 1, this.refractionRatio = .98, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = "round", this.wireframeLinejoin = "round", this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.setValues(t) } function du(t) { Pr.call(this), this.defines = { MATCAP: "" }, this.type = "MeshMatcapMaterial", this.color = new Er(16777215), this.matcap = null, this.map = null, this.bumpMap = null, this.bumpScale = 1, this.normalMap = null, this.normalMapType = yn, this.normalScale = new Zn(1,1), this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.alphaMap = null, this.skinning = !1, this.morphTargets = !1, this.morphNormals = !1, this.setValues(t) } function pu(t) { xc.call(this), this.type = "LineDashedMaterial", this.scale = 1, this.dashSize = 3, this.gapSize = 1, this.setValues(t) } iu.prototype = Object.create(Pr.prototype), iu.prototype.constructor = iu, iu.prototype.isShadowMaterial = !0, iu.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this } , ru.prototype = Object.create(Po.prototype), ru.prototype.constructor = ru, ru.prototype.isRawShaderMaterial = !0, ou.prototype = Object.create(Pr.prototype), ou.prototype.constructor = ou, ou.prototype.isMeshStandardMaterial = !0, ou.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.defines = { STANDARD: "" }, this.color.copy(t.color), this.roughness = t.roughness, this.metalness = t.metalness, this.map = t.map, this.lightMap = t.lightMap, this.lightMapIntensity = t.lightMapIntensity, this.aoMap = t.aoMap, this.aoMapIntensity = t.aoMapIntensity, this.emissive.copy(t.emissive), this.emissiveMap = t.emissiveMap, this.emissiveIntensity = t.emissiveIntensity, this.bumpMap = t.bumpMap, this.bumpScale = t.bumpScale, this.normalMap = t.normalMap, this.normalMapType = t.normalMapType, this.normalScale.copy(t.normalScale), this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this.roughnessMap = t.roughnessMap, this.metalnessMap = t.metalnessMap, this.alphaMap = t.alphaMap, this.envMap = t.envMap, this.envMapIntensity = t.envMapIntensity, this.refractionRatio = t.refractionRatio, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.wireframeLinecap = t.wireframeLinecap, this.wireframeLinejoin = t.wireframeLinejoin, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this.vertexTangents = t.vertexTangents, this } , au.prototype = Object.create(ou.prototype), au.prototype.constructor = au, au.prototype.isMeshPhysicalMaterial = !0, au.prototype.copy = function(t) { return ou.prototype.copy.call(this, t), this.defines = { STANDARD: "", PHYSICAL: "" }, this.clearcoat = t.clearcoat, this.clearcoatMap = t.clearcoatMap, this.clearcoatRoughness = t.clearcoatRoughness, this.clearcoatRoughnessMap = t.clearcoatRoughnessMap, this.clearcoatNormalMap = t.clearcoatNormalMap, this.clearcoatNormalScale.copy(t.clearcoatNormalScale), this.reflectivity = t.reflectivity, t.sheen ? this.sheen = (this.sheen || new Er).copy(t.sheen) : this.sheen = null, this.transparency = t.transparency, this } , su.prototype = Object.create(Pr.prototype), su.prototype.constructor = su, su.prototype.isMeshPhongMaterial = !0, su.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this.specular.copy(t.specular), this.shininess = t.shininess, this.map = t.map, this.lightMap = t.lightMap, this.lightMapIntensity = t.lightMapIntensity, this.aoMap = t.aoMap, this.aoMapIntensity = t.aoMapIntensity, this.emissive.copy(t.emissive), this.emissiveMap = t.emissiveMap, this.emissiveIntensity = t.emissiveIntensity, this.bumpMap = t.bumpMap, this.bumpScale = t.bumpScale, this.normalMap = t.normalMap, this.normalMapType = t.normalMapType, this.normalScale.copy(t.normalScale), this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, 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.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this } , cu.prototype = Object.create(Pr.prototype), cu.prototype.constructor = cu, cu.prototype.isMeshToonMaterial = !0, cu.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.color.copy(t.color), this.specular.copy(t.specular), this.shininess = t.shininess, this.map = t.map, this.gradientMap = t.gradientMap, this.lightMap = t.lightMap, this.lightMapIntensity = t.lightMapIntensity, this.aoMap = t.aoMap, this.aoMapIntensity = t.aoMapIntensity, this.emissive.copy(t.emissive), this.emissiveMap = t.emissiveMap, this.emissiveIntensity = t.emissiveIntensity, this.bumpMap = t.bumpMap, this.bumpScale = t.bumpScale, this.normalMap = t.normalMap, this.normalMapType = t.normalMapType, this.normalScale.copy(t.normalScale), this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this.specularMap = t.specularMap, this.alphaMap = t.alphaMap, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.wireframeLinecap = t.wireframeLinecap, this.wireframeLinejoin = t.wireframeLinejoin, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this } , lu.prototype = Object.create(Pr.prototype), lu.prototype.constructor = lu, lu.prototype.isMeshNormalMaterial = !0, lu.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.bumpMap = t.bumpMap, this.bumpScale = t.bumpScale, this.normalMap = t.normalMap, this.normalMapType = t.normalMapType, this.normalScale.copy(t.normalScale), this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this } , uu.prototype = Object.create(Pr.prototype), uu.prototype.constructor = uu, uu.prototype.isMeshLambertMaterial = !0, uu.prototype.copy = function(t) { return Pr.prototype.copy.call(this, 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.emissive.copy(t.emissive), this.emissiveMap = t.emissiveMap, this.emissiveIntensity = t.emissiveIntensity, 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.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this } , du.prototype = Object.create(Pr.prototype), du.prototype.constructor = du, du.prototype.isMeshMatcapMaterial = !0, du.prototype.copy = function(t) { return Pr.prototype.copy.call(this, t), this.defines = { MATCAP: "" }, this.color.copy(t.color), this.matcap = t.matcap, this.map = t.map, this.bumpMap = t.bumpMap, this.bumpScale = t.bumpScale, this.normalMap = t.normalMap, this.normalMapType = t.normalMapType, this.normalScale.copy(t.normalScale), this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this.alphaMap = t.alphaMap, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this } , pu.prototype = Object.create(xc.prototype), pu.prototype.constructor = pu, pu.prototype.isLineDashedMaterial = !0, pu.prototype.copy = function(t) { return xc.prototype.copy.call(this, t), this.scale = t.scale, this.dashSize = t.dashSize, this.gapSize = t.gapSize, this } ; var hu = Object.freeze({ __proto__: null, ShadowMaterial: iu, SpriteMaterial: Ys, RawShaderMaterial: ru, ShaderMaterial: Po, PointsMaterial: Dc, MeshPhysicalMaterial: au, MeshStandardMaterial: ou, MeshPhongMaterial: su, MeshToonMaterial: cu, MeshNormalMaterial: lu, MeshLambertMaterial: uu, MeshDepthMaterial: ks, MeshDistanceMaterial: Ds, MeshBasicMaterial: Ir, MeshMatcapMaterial: du, LineDashedMaterial: pu, LineBasicMaterial: xc, Material: Pr }) , fu = { arraySlice: function(t, e, n) { return fu.isTypedArray(t) ? new t.constructor(t.subarray(e, void 0 !== n ? n : t.length)) : t.slice(e, n) }, convertArray: function(t, e, n) { return !t || !n && t.constructor === e ? t : "number" == typeof e.BYTES_PER_ELEMENT ? new e(t) : Array.prototype.slice.call(t) }, isTypedArray: function(t) { return ArrayBuffer.isView(t) && !(t instanceof DataView) }, getKeyframeOrder: function(t) { for (var e = t.length, n = new Array(e), i = 0; i !== e; ++i) n[i] = i; return n.sort((function(e, n) { return t[e] - t[n] } )), n }, sortedArray: function(t, e, n) { for (var i = t.length, r = new t.constructor(i), o = 0, a = 0; a !== i; ++o) for (var s = n[o] * e, c = 0; c !== e; ++c) r[a++] = t[s + c]; return r }, flattenJSON: function(t, e, n, i) { for (var r = 1, o = t[0]; void 0 !== o && void 0 === o[i]; ) o = t[r++]; if (void 0 !== o) { var a = o[i]; if (void 0 !== a) if (Array.isArray(a)) do { void 0 !== (a = o[i]) && (e.push(o.time), n.push.apply(n, a)), o = t[r++] } while (void 0 !== o); else if (void 0 !== a.toArray) do { void 0 !== (a = o[i]) && (e.push(o.time), a.toArray(n, n.length)), o = t[r++] } while (void 0 !== o); else do { void 0 !== (a = o[i]) && (e.push(o.time), n.push(a)), o = t[r++] } while (void 0 !== o) } }, subclip: function(t, e, n, i, r) { r = r || 30; var o = t.clone(); o.name = e; for (var a = [], s = 0; s < o.tracks.length; ++s) { for (var c = o.tracks[s], l = c.getValueSize(), u = [], d = [], p = 0; p < c.times.length; ++p) { var h = c.times[p] * r; if (!(h < n || h >= i)) { u.push(c.times[p]); for (var f = 0; f < l; ++f) d.push(c.values[p * l + f]) } } 0 !== u.length && (c.times = fu.convertArray(u, c.times.constructor), c.values = fu.convertArray(d, c.values.constructor), a.push(c)) } o.tracks = a; var m = 1 / 0; for (s = 0; s < o.tracks.length; ++s) m > o.tracks[s].times[0] && (m = o.tracks[s].times[0]); for (s = 0; s < o.tracks.length; ++s) o.tracks[s].shift(-1 * m); return o.resetDuration(), o } }; function mu(t, e, n, i) { this.parameterPositions = t, this._cachedIndex = 0, this.resultBuffer = void 0 !== i ? i : new e.constructor(n), this.sampleValues = e, this.valueSize = n } function gu(t, e, n, i) { mu.call(this, t, e, n, i), this._weightPrev = -0, this._offsetPrev = -0, this._weightNext = -0, this._offsetNext = -0 } function vu(t, e, n, i) { mu.call(this, t, e, n, i) } function yu(t, e, n, i) { mu.call(this, t, e, n, i) } function bu(t, e, n, i) { if (void 0 === t) throw new Error("THREE.KeyframeTrack: track name is undefined"); if (void 0 === e || 0 === e.length) throw new Error("THREE.KeyframeTrack: no keyframes in track named " + t); this.name = t, this.times = fu.convertArray(e, this.TimeBufferType), this.values = fu.convertArray(n, this.ValueBufferType), this.setInterpolation(i || this.DefaultInterpolation) } function wu(t, e, n) { bu.call(this, t, e, n) } function Su(t, e, n, i) { bu.call(this, t, e, n, i) } function xu(t, e, n, i) { bu.call(this, t, e, n, i) } function Mu(t, e, n, i) { mu.call(this, t, e, n, i) } function Eu(t, e, n, i) { bu.call(this, t, e, n, i) } function Cu(t, e, n, i) { bu.call(this, t, e, n, i) } function Au(t, e, n, i) { bu.call(this, t, e, n, i) } function Tu(t, e, n) { this.name = t, this.tracks = n, this.duration = void 0 !== e ? e : -1, this.uuid = Kn.generateUUID(), this.duration < 0 && this.resetDuration() } function Ou(t) { if (void 0 === t.type) throw new Error("THREE.KeyframeTrack: track type undefined, can not parse"); var e = function(t) { switch (t.toLowerCase()) { case "scalar": case "double": case "float": case "number": case "integer": return xu; case "vector": case "vector2": case "vector3": case "vector4": return Au; case "color": return Su; case "quaternion": return Eu; case "bool": case "boolean": return wu; case "string": return Cu } throw new Error("THREE.KeyframeTrack: Unsupported typeName: " + t) }(t.type); if (void 0 === t.times) { var n = [] , i = []; fu.flattenJSON(t.keys, n, i, "value"), t.times = n, t.values = i } return void 0 !== e.parse ? e.parse(t) : new e(t.name,t.times,t.values,t.interpolation) } Object.assign(mu.prototype, { evaluate: function(t) { var e = this.parameterPositions , n = this._cachedIndex , i = e[n] , r = e[n - 1]; t: { e: { var o; n: { i: if (!(t < i)) { for (var a = n + 2; ; ) { if (void 0 === i) { if (t < r) break i; return n = e.length, this._cachedIndex = n, this.afterEnd_(n - 1, t, r) } if (n === a) break; if (r = i, t < (i = e[++n])) break e } o = e.length; break n } if (t >= r) break t; var s = e[1]; t < s && (n = 2, r = s); for (a = n - 2; ; ) { if (void 0 === r) return this._cachedIndex = 0, this.beforeStart_(0, t, i); if (n === a) break; if (i = r, t >= (r = e[--n - 1])) break e } o = n, n = 0 } for (; n < o; ) { var c = n + o >>> 1; t < e[c] ? o = c : n = c + 1 } if (i = e[n], void 0 === (r = e[n - 1])) return this._cachedIndex = 0, this.beforeStart_(0, t, i); if (void 0 === i) return n = e.length, this._cachedIndex = n, this.afterEnd_(n - 1, r, t) } this._cachedIndex = n, this.intervalChanged_(n, r, i) } return this.interpolate_(n, r, t, i) }, settings: null, DefaultSettings_: {}, getSettings_: function() { return this.settings || this.DefaultSettings_ }, copySampleValue_: function(t) { for (var e = this.resultBuffer, n = this.sampleValues, i = this.valueSize, r = t * i, o = 0; o !== i; ++o) e[o] = n[r + o]; return e }, interpolate_: function() { throw new Error("call to abstract method") }, intervalChanged_: function() {} }), Object.assign(mu.prototype, { beforeStart_: mu.prototype.copySampleValue_, afterEnd_: mu.prototype.copySampleValue_ }), gu.prototype = Object.assign(Object.create(mu.prototype), { constructor: gu, DefaultSettings_: { endingStart: en, endingEnd: en }, intervalChanged_: function(t, e, n) { var i = this.parameterPositions , r = t - 2 , o = t + 1 , a = i[r] , s = i[o]; if (void 0 === a) switch (this.getSettings_().endingStart) { case nn: r = t, a = 2 * e - n; break; case rn: a = e + i[r = i.length - 2] - i[r + 1]; break; default: r = t, a = n } if (void 0 === s) switch (this.getSettings_().endingEnd) { case nn: o = t, s = 2 * n - e; break; case rn: o = 1, s = n + i[1] - i[0]; break; default: o = t - 1, s = e } var c = .5 * (n - e) , l = this.valueSize; this._weightPrev = c / (e - a), this._weightNext = c / (s - n), this._offsetPrev = r * l, this._offsetNext = o * l }, interpolate_: function(t, e, n, i) { for (var r = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, c = s - a, l = this._offsetPrev, u = this._offsetNext, d = this._weightPrev, p = this._weightNext, h = (n - e) / (i - e), f = h * h, m = f * h, g = -d * m + 2 * d * f - d * h, v = (1 + d) * m + (-1.5 - 2 * d) * f + (-.5 + d) * h + 1, y = (-1 - p) * m + (1.5 + p) * f + .5 * h, b = p * m - p * f, w = 0; w !== a; ++w) r[w] = g * o[l + w] + v * o[c + w] + y * o[s + w] + b * o[u + w]; return r } }), vu.prototype = Object.assign(Object.create(mu.prototype), { constructor: vu, interpolate_: function(t, e, n, i) { for (var r = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, c = s - a, l = (n - e) / (i - e), u = 1 - l, d = 0; d !== a; ++d) r[d] = o[c + d] * u + o[s + d] * l; return r } }), yu.prototype = Object.assign(Object.create(mu.prototype), { constructor: yu, interpolate_: function(t) { return this.copySampleValue_(t - 1) } }), Object.assign(bu, { toJSON: function(t) { var e, n = t.constructor; if (void 0 !== n.toJSON) e = n.toJSON(t); else { e = { name: t.name, times: fu.convertArray(t.times, Array), values: fu.convertArray(t.values, Array) }; var i = t.getInterpolation(); i !== t.DefaultInterpolation && (e.interpolation = i) } return e.type = t.ValueTypeName, e } }), Object.assign(bu.prototype, { constructor: bu, TimeBufferType: Float32Array, ValueBufferType: Float32Array, DefaultInterpolation: $e, InterpolantFactoryMethodDiscrete: function(t) { return new yu(this.times,this.values,this.getValueSize(),t) }, InterpolantFactoryMethodLinear: function(t) { return new vu(this.times,this.values,this.getValueSize(),t) }, InterpolantFactoryMethodSmooth: function(t) { return new gu(this.times,this.values,this.getValueSize(),t) }, setInterpolation: function(t) { var e; switch (t) { case Qe: e = this.InterpolantFactoryMethodDiscrete; break; case $e: e = this.InterpolantFactoryMethodLinear; break; case tn: e = this.InterpolantFactoryMethodSmooth } if (void 0 === e) { var n = "unsupported interpolation for " + this.ValueTypeName + " keyframe track named " + this.name; if (void 0 === this.createInterpolant) { if (t === this.DefaultInterpolation) throw new Error(n); this.setInterpolation(this.DefaultInterpolation) } return console.warn("THREE.KeyframeTrack:", n), this } return this.createInterpolant = e, this }, getInterpolation: function() { switch (this.createInterpolant) { case this.InterpolantFactoryMethodDiscrete: return Qe; case this.InterpolantFactoryMethodLinear: return $e; case this.InterpolantFactoryMethodSmooth: return tn } }, getValueSize: function() { return this.values.length / this.times.length }, shift: function(t) { if (0 !== t) for (var e = this.times, n = 0, i = e.length; n !== i; ++n) e[n] += t; return this }, scale: function(t) { if (1 !== t) for (var e = this.times, n = 0, i = e.length; n !== i; ++n) e[n] *= t; return this }, trim: function(t, e) { for (var n = this.times, i = n.length, r = 0, o = i - 1; r !== i && n[r] < t; ) ++r; for (; -1 !== o && n[o] > e; ) --o; if (++o, 0 !== r || o !== i) { r >= o && (r = (o = Math.max(o, 1)) - 1); var a = this.getValueSize(); this.times = fu.arraySlice(n, r, o), this.values = fu.arraySlice(this.values, r * a, o * a) } return this }, validate: function() { var t = !0 , e = this.getValueSize(); e - Math.floor(e) != 0 && (console.error("THREE.KeyframeTrack: Invalid value size in track.", this), t = !1); var n = this.times , i = this.values , r = n.length; 0 === r && (console.error("THREE.KeyframeTrack: Track is empty.", this), t = !1); for (var o = null, a = 0; a !== r; a++) { var s = n[a]; if ("number" == typeof s && isNaN(s)) { console.error("THREE.KeyframeTrack: Time is not a valid number.", this, a, s), t = !1; break } if (null !== o && o > s) { console.error("THREE.KeyframeTrack: Out of order keys.", this, a, s, o), t = !1; break } o = s } if (void 0 !== i && fu.isTypedArray(i)) { a = 0; for (var c = i.length; a !== c; ++a) { var 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: function() { for (var t = fu.arraySlice(this.times), e = fu.arraySlice(this.values), n = this.getValueSize(), i = this.getInterpolation() === tn, r = 1, o = t.length - 1, a = 1; a < o; ++a) { var s = !1 , c = t[a]; if (c !== t[a + 1] && (1 !== a || c !== c[0])) if (i) s = !0; else for (var l = a * n, u = l - n, d = l + n, p = 0; p !== n; ++p) { var h = e[l + p]; if (h !== e[u + p] || h !== e[d + p]) { s = !0; break } } if (s) { if (a !== r) { t[r] = t[a]; var f = a * n , m = r * n; for (p = 0; p !== n; ++p) e[m + p] = e[f + p] } ++r } } if (o > 0) { t[r] = t[o]; for (f = o * n, m = r * n, p = 0; p !== n; ++p) e[m + p] = e[f + p]; ++r } return r !== t.length ? (this.times = fu.arraySlice(t, 0, r), this.values = fu.arraySlice(e, 0, r * n)) : (this.times = t, this.values = e), this }, clone: function() { var t = fu.arraySlice(this.times, 0) , e = fu.arraySlice(this.values, 0) , n = new (0, this.constructor)(this.name,t,e); return n.createInterpolant = this.createInterpolant, n } }), wu.prototype = Object.assign(Object.create(bu.prototype), { constructor: wu, ValueTypeName: "bool", ValueBufferType: Array, DefaultInterpolation: Qe, InterpolantFactoryMethodLinear: void 0, InterpolantFactoryMethodSmooth: void 0 }), Su.prototype = Object.assign(Object.create(bu.prototype), { constructor: Su, ValueTypeName: "color" }), xu.prototype = Object.assign(Object.create(bu.prototype), { constructor: xu, ValueTypeName: "number" }), Mu.prototype = Object.assign(Object.create(mu.prototype), { constructor: Mu, interpolate_: function(t, e, n, i) { for (var r = this.resultBuffer, o = this.sampleValues, a = this.valueSize, s = t * a, c = (n - e) / (i - e), l = s + a; s !== l; s += 4) ri.slerpFlat(r, 0, o, s - a, o, s, c); return r } }), Eu.prototype = Object.assign(Object.create(bu.prototype), { constructor: Eu, ValueTypeName: "quaternion", DefaultInterpolation: $e, InterpolantFactoryMethodLinear: function(t) { return new Mu(this.times,this.values,this.getValueSize(),t) }, InterpolantFactoryMethodSmooth: void 0 }), Cu.prototype = Object.assign(Object.create(bu.prototype), { constructor: Cu, ValueTypeName: "string", ValueBufferType: Array, DefaultInterpolation: Qe, InterpolantFactoryMethodLinear: void 0, InterpolantFactoryMethodSmooth: void 0 }), Au.prototype = Object.assign(Object.create(bu.prototype), { constructor: Au, ValueTypeName: "vector" }), Object.assign(Tu, { parse: function(t) { for (var e = [], n = t.tracks, i = 1 / (t.fps || 1), r = 0, o = n.length; r !== o; ++r) e.push(Ou(n[r]).scale(i)); return new Tu(t.name,t.duration,e) }, toJSON: function(t) { for (var e = [], n = t.tracks, i = { name: t.name, duration: t.duration, tracks: e, uuid: t.uuid }, r = 0, o = n.length; r !== o; ++r) e.push(bu.toJSON(n[r])); return i }, CreateFromMorphTargetSequence: function(t, e, n, i) { for (var r = e.length, o = [], a = 0; a < r; a++) { var s = [] , c = []; s.push((a + r - 1) % r, a, (a + 1) % r), c.push(0, 1, 0); var l = fu.getKeyframeOrder(s); s = fu.sortedArray(s, 1, l), c = fu.sortedArray(c, 1, l), i || 0 !== s[0] || (s.push(r), c.push(c[0])), o.push(new xu(".morphTargetInfluences[" + e[a].name + "]",s,c).scale(1 / n)) } return new Tu(t,-1,o) }, findByName: function(t, e) { var n = t; if (!Array.isArray(t)) { var i = t; n = i.geometry && i.geometry.animations || i.animations } for (var r = 0; r < n.length; r++) if (n[r].name === e) return n[r]; return null }, CreateClipsFromMorphTargetSequences: function(t, e, n) { for (var i = {}, r = /^([\w-]*?)([\d]+)$/, o = 0, a = t.length; o < a; o++) { var s = t[o] , c = s.name.match(r); if (c && c.length > 1) { var l = i[d = c[1]]; l || (i[d] = l = []), l.push(s) } } var u = []; for (var d in i) u.push(Tu.CreateFromMorphTargetSequence(d, i[d], e, n)); return u }, parseAnimation: function(t, e) { if (!t) return console.error("THREE.AnimationClip: No animation in JSONLoader data."), null; for (var n = function(t, e, n, i, r) { if (0 !== n.length) { var o = [] , a = []; fu.flattenJSON(n, o, a, i), 0 !== o.length && r.push(new t(e,o,a)) } }, i = [], r = t.name || "default", o = t.length || -1, a = t.fps || 30, s = t.hierarchy || [], c = 0; c < s.length; c++) { var l = s[c].keys; if (l && 0 !== l.length) if (l[0].morphTargets) { for (var u = {}, d = 0; d < l.length; d++) if (l[d].morphTargets) for (var p = 0; p < l[d].morphTargets.length; p++) u[l[d].morphTargets[p]] = -1; for (var h in u) { var f = [] , m = []; for (p = 0; p !== l[d].morphTargets.length; ++p) { var g = l[d]; f.push(g.time), m.push(g.morphTarget === h ? 1 : 0) } i.push(new xu(".morphTargetInfluence[" + h + "]",f,m)) } o = u.length * (a || 1) } else { var v = ".bones[" + e[c].name + "]"; n(Au, v + ".position", l, "pos", i), n(Eu, v + ".quaternion", l, "rot", i), n(Au, v + ".scale", l, "scl", i) } } return 0 === i.length ? null : new Tu(r,o,i) } }), Object.assign(Tu.prototype, { resetDuration: function() { for (var t = 0, e = 0, n = this.tracks.length; e !== n; ++e) { var i = this.tracks[e]; t = Math.max(t, i.times[i.times.length - 1]) } return this.duration = t, this }, trim: function() { for (var t = 0; t < this.tracks.length; t++) this.tracks[t].trim(0, this.duration); return this }, validate: function() { for (var t = !0, e = 0; e < this.tracks.length; e++) t = t && this.tracks[e].validate(); return t }, optimize: function() { for (var t = 0; t < this.tracks.length; t++) this.tracks[t].optimize(); return this }, clone: function() { for (var t = [], e = 0; e < this.tracks.length; e++) t.push(this.tracks[e].clone()); return new Tu(this.name,this.duration,t) } }); var _u = { enabled: !1, files: {}, add: function(t, e) { !1 !== this.enabled && (this.files[t] = e) }, get: function(t) { if (!1 !== this.enabled) return this.files[t] }, remove: function(t) { delete this.files[t] }, clear: function() { this.files = {} } }; function Pu(t, e, n) { var i = this , r = !1 , o = 0 , a = 0 , s = void 0 , c = []; this.onStart = void 0, this.onLoad = t, this.onProgress = e, this.onError = n, this.itemStart = function(t) { a++, !1 === r && void 0 !== i.onStart && i.onStart(t, o, a), r = !0 } , this.itemEnd = function(t) { o++, void 0 !== i.onProgress && i.onProgress(t, o, a), o === a && (r = !1, void 0 !== i.onLoad && i.onLoad()) } , this.itemError = function(t) { void 0 !== i.onError && i.onError(t) } , this.resolveURL = function(t) { return s ? s(t) : t } , this.setURLModifier = function(t) { return s = t, this } , this.addHandler = function(t, e) { return c.push(t, e), this } , this.removeHandler = function(t) { var e = c.indexOf(t); return -1 !== e && c.splice(e, 2), this } , this.getHandler = function(t) { for (var e = 0, n = c.length; e < n; e += 2) { var i = c[e] , r = c[e + 1]; if (i.global && (i.lastIndex = 0), i.test(t)) return r } return null } } var Iu = new Pu; function ku(t) { this.manager = void 0 !== t ? t : Iu, this.crossOrigin = "anonymous", this.path = "", this.resourcePath = "" } Object.assign(ku.prototype, { load: function() {}, parse: function() {}, setCrossOrigin: function(t) { return this.crossOrigin = t, this }, setPath: function(t) { return this.path = t, this }, setResourcePath: function(t) { return this.resourcePath = t, this } }); var Du = {}; function Ru(t) { ku.call(this, t) } function Lu(t) { ku.call(this, t) } function Nu(t) { ku.call(this, t) } function ju(t) { ku.call(this, t) } function Vu(t) { ku.call(this, t) } function Fu(t) { ku.call(this, t) } function Uu(t) { ku.call(this, t) } function Bu() { this.type = "Curve", this.arcLengthDivisions = 200 } function zu(t, e, n, i, r, o, a, s) { Bu.call(this), this.type = "EllipseCurve", this.aX = t || 0, this.aY = e || 0, this.xRadius = n || 1, this.yRadius = i || 1, this.aStartAngle = r || 0, this.aEndAngle = o || 2 * Math.PI, this.aClockwise = a || !1, this.aRotation = s || 0 } function Gu(t, e, n, i, r, o) { zu.call(this, t, e, n, n, i, r, o), this.type = "ArcCurve" } function Hu() { var t = 0 , e = 0 , n = 0 , i = 0; function r(r, o, a, s) { t = r, e = a, n = -3 * r + 3 * o - 2 * a - s, i = 2 * r - 2 * o + a + s } return { initCatmullRom: function(t, e, n, i, o) { r(e, n, o * (n - t), o * (i - e)) }, initNonuniformCatmullRom: function(t, e, n, i, o, a, s) { var c = (e - t) / o - (n - t) / (o + a) + (n - e) / a , l = (n - e) / a - (i - e) / (a + s) + (i - n) / s; r(e, n, c *= a, l *= a) }, calc: function(r) { var o = r * r; return t + e * r + n * o + i * (o * r) } } } Ru.prototype = Object.assign(Object.create(ku.prototype), { constructor: Ru, load: function(t, e, n, i) { void 0 === t && (t = ""), void 0 !== this.path && (t = this.path + t), t = this.manager.resolveURL(t); var r = this , o = _u.get(t); if (void 0 !== o) return r.manager.itemStart(t), setTimeout((function() { e && e(o), r.manager.itemEnd(t) } ), 0), o; if (void 0 === Du[t]) { var a = t.match(/^data:(.*?)(;base64)?,(.*)$/); if (a) { var s = a[1] , c = !!a[2] , l = a[3]; l = decodeURIComponent(l), c && (l = atob(l)); try { var u, d = (this.responseType || "").toLowerCase(); switch (d) { case "arraybuffer": case "blob": for (var p = new Uint8Array(l.length), h = 0; h < l.length; h++) p[h] = l.charCodeAt(h); u = "blob" === d ? new Blob([p.buffer],{ type: s }) : p.buffer; break; case "document": var f = new DOMParser; u = f.parseFromString(l, s); break; case "json": u = JSON.parse(l); break; default: u = l } setTimeout((function() { e && e(u), r.manager.itemEnd(t) } ), 0) } catch (e) { setTimeout((function() { i && i(e), r.manager.itemError(t), r.manager.itemEnd(t) } ), 0) } } else { Du[t] = [], Du[t].push({ onLoad: e, onProgress: n, onError: i }); var m = new XMLHttpRequest; for (var g in m.open("GET", t, !0), m.addEventListener("load", (function(e) { var n = this.response , i = Du[t]; if (delete Du[t], 200 === this.status || 0 === this.status) { 0 === this.status && console.warn("THREE.FileLoader: HTTP Status 0 received."), _u.add(t, n); for (var o = 0, a = i.length; o < a; o++) { (s = i[o]).onLoad && s.onLoad(n) } r.manager.itemEnd(t) } else { for (o = 0, a = i.length; o < a; o++) { var s; (s = i[o]).onError && s.onError(e) } r.manager.itemError(t), r.manager.itemEnd(t) } } ), !1), m.addEventListener("progress", (function(e) { for (var n = Du[t], i = 0, r = n.length; i < r; i++) { var o = n[i]; o.onProgress && o.onProgress(e) } } ), !1), m.addEventListener("error", (function(e) { var n = Du[t]; delete Du[t]; for (var i = 0, o = n.length; i < o; i++) { var a = n[i]; a.onError && a.onError(e) } r.manager.itemError(t), r.manager.itemEnd(t) } ), !1), m.addEventListener("abort", (function(e) { var n = Du[t]; delete Du[t]; for (var i = 0, o = n.length; i < o; i++) { var a = n[i]; a.onError && a.onError(e) } r.manager.itemError(t), r.manager.itemEnd(t) } ), !1), void 0 !== this.responseType && (m.responseType = this.responseType), void 0 !== this.withCredentials && (m.withCredentials = this.withCredentials), m.overrideMimeType && m.overrideMimeType(void 0 !== this.mimeType ? this.mimeType : "text/plain"), this.requestHeader) m.setRequestHeader(g, this.requestHeader[g]); m.send(null) } return r.manager.itemStart(t), m } Du[t].push({ onLoad: e, onProgress: n, onError: i }) }, setResponseType: function(t) { return this.responseType = t, this }, setWithCredentials: function(t) { return this.withCredentials = t, this }, setMimeType: function(t) { return this.mimeType = t, this }, setRequestHeader: function(t) { return this.requestHeader = t, this } }), Lu.prototype = Object.assign(Object.create(ku.prototype), { constructor: Lu, load: function(t, e, n, i) { var r = this , o = new Ru(r.manager); o.setPath(r.path), o.load(t, (function(t) { e(r.parse(JSON.parse(t))) } ), n, i) }, parse: function(t) { for (var e = [], n = 0; n < t.length; n++) { var i = Tu.parse(t[n]); e.push(i) } return e } }), Nu.prototype = Object.assign(Object.create(ku.prototype), { constructor: Nu, load: function(t, e, n, i) { var r = this , o = [] , a = new Bc; a.image = o; var s = new Ru(this.manager); function c(c) { s.load(t[c], (function(t) { var n = r.parse(t, !0); o[c] = { width: n.width, height: n.height, format: n.format, mipmaps: n.mipmaps }, 6 === (l += 1) && (1 === n.mipmapCount && (a.minFilter = kt), a.format = n.format, a.needsUpdate = !0, e && e(a)) } ), n, i) } if (s.setPath(this.path), s.setResponseType("arraybuffer"), Array.isArray(t)) for (var l = 0, u = 0, d = t.length; u < d; ++u) c(u); else s.load(t, (function(t) { var n = r.parse(t, !0); if (n.isCubemap) for (var i = n.mipmaps.length / n.mipmapCount, s = 0; s < i; s++) { o[s] = { mipmaps: [] }; for (var c = 0; c < n.mipmapCount; c++) o[s].mipmaps.push(n.mipmaps[s * n.mipmapCount + c]), o[s].format = n.format, o[s].width = n.width, o[s].height = n.height } else a.image.width = n.width, a.image.height = n.height, a.mipmaps = n.mipmaps; 1 === n.mipmapCount && (a.minFilter = kt), a.format = n.format, a.needsUpdate = !0, e && e(a) } ), n, i); return a } }), ju.prototype = Object.assign(Object.create(ku.prototype), { constructor: ju, load: function(t, e, n, i) { var r = this , o = new Lo , a = new Ru(this.manager); return a.setResponseType("arraybuffer"), a.setPath(this.path), a.load(t, (function(t) { var n = r.parse(t); n && (void 0 !== n.image ? o.image = n.image : void 0 !== n.data && (o.image.width = n.width, o.image.height = n.height, o.image.data = n.data), o.wrapS = void 0 !== n.wrapS ? n.wrapS : Ct, o.wrapT = void 0 !== n.wrapT ? n.wrapT : Ct, o.magFilter = void 0 !== n.magFilter ? n.magFilter : kt, o.minFilter = void 0 !== n.minFilter ? n.minFilter : kt, o.anisotropy = void 0 !== n.anisotropy ? n.anisotropy : 1, void 0 !== n.format && (o.format = n.format), void 0 !== n.type && (o.type = n.type), void 0 !== n.mipmaps && (o.mipmaps = n.mipmaps, o.minFilter = Lt), 1 === n.mipmapCount && (o.minFilter = kt), o.needsUpdate = !0, e && e(o, n)) } ), n, i), o } }), Vu.prototype = Object.assign(Object.create(ku.prototype), { constructor: Vu, load: function(t, e, n, i) { void 0 !== this.path && (t = this.path + t), t = this.manager.resolveURL(t); var r = this , o = _u.get(t); if (void 0 !== o) return r.manager.itemStart(t), setTimeout((function() { e && e(o), r.manager.itemEnd(t) } ), 0), o; var a = document.createElementNS("http://www.w3.org/1999/xhtml", "img"); function s() { a.removeEventListener("load", s, !1), a.removeEventListener("error", c, !1), _u.add(t, this), e && e(this), r.manager.itemEnd(t) } function c(e) { a.removeEventListener("load", s, !1), a.removeEventListener("error", c, !1), i && i(e), r.manager.itemError(t), r.manager.itemEnd(t) } return a.addEventListener("load", s, !1), a.addEventListener("error", c, !1), "data:" !== t.substr(0, 5) && void 0 !== this.crossOrigin && (a.crossOrigin = this.crossOrigin), r.manager.itemStart(t), a.src = t, a } }), Fu.prototype = Object.assign(Object.create(ku.prototype), { constructor: Fu, load: function(t, e, n, i) { var r = new ia , o = new Vu(this.manager); o.setCrossOrigin(this.crossOrigin), o.setPath(this.path); var a = 0; function s(n) { o.load(t[n], (function(t) { r.images[n] = t, 6 === ++a && (r.needsUpdate = !0, e && e(r)) } ), void 0, i) } for (var c = 0; c < t.length; ++c) s(c); return r } }), Uu.prototype = Object.assign(Object.create(ku.prototype), { constructor: Uu, load: function(t, e, n, i) { var r = new ti , o = new Vu(this.manager); return o.setCrossOrigin(this.crossOrigin), o.setPath(this.path), o.load(t, (function(n) { r.image = n; var i = t.search(/\.jpe?g($|\?)/i) > 0 || 0 === t.search(/^data\:image\/jpeg/); r.format = i ? Zt : Jt, r.needsUpdate = !0, void 0 !== e && e(r) } ), n, i), r } }), Object.assign(Bu.prototype, { getPoint: function() { return console.warn("THREE.Curve: .getPoint() not implemented."), null }, getPointAt: function(t, e) { var n = this.getUtoTmapping(t); return this.getPoint(n, e) }, getPoints: function(t) { void 0 === t && (t = 5); for (var e = [], n = 0; n <= t; n++) e.push(this.getPoint(n / t)); return e }, getSpacedPoints: function(t) { void 0 === t && (t = 5); for (var e = [], n = 0; n <= t; n++) e.push(this.getPointAt(n / t)); return e }, getLength: function() { var t = this.getLengths(); return t[t.length - 1] }, getLengths: function(t) { if (void 0 === t && (t = this.arcLengthDivisions), this.cacheArcLengths && this.cacheArcLengths.length === t + 1 && !this.needsUpdate) return this.cacheArcLengths; this.needsUpdate = !1; var e, n, i = [], r = this.getPoint(0), o = 0; for (i.push(0), n = 1; n <= t; n++) o += (e = this.getPoint(n / t)).distanceTo(r), i.push(o), r = e; return this.cacheArcLengths = i, i }, updateArcLengths: function() { this.needsUpdate = !0, this.getLengths() }, getUtoTmapping: function(t, e) { var n, i = this.getLengths(), r = 0, o = i.length; n = e || t * i[o - 1]; for (var a, s = 0, c = o - 1; s <= c; ) if ((a = i[r = Math.floor(s + (c - s) / 2)] - n) < 0) s = r + 1; else { if (!(a > 0)) { c = r; break } c = r - 1 } if (i[r = c] === n) return r / (o - 1); var l = i[r]; return (r + (n - l) / (i[r + 1] - l)) / (o - 1) }, getTangent: function(t) { var e = t - 1e-4 , n = t + 1e-4; e < 0 && (e = 0), n > 1 && (n = 1); var i = this.getPoint(e); return this.getPoint(n).clone().sub(i).normalize() }, getTangentAt: function(t) { var e = this.getUtoTmapping(t); return this.getTangent(e) }, computeFrenetFrames: function(t, e) { var n, i, r, o = new si, a = [], s = [], c = [], l = new si, u = new mi; for (n = 0; n <= t; n++) i = n / t, a[n] = this.getTangentAt(i), a[n].normalize(); s[0] = new si, c[0] = new si; var d = Number.MAX_VALUE , p = Math.abs(a[0].x) , h = Math.abs(a[0].y) , f = Math.abs(a[0].z); for (p <= d && (d = p, o.set(1, 0, 0)), h <= d && (d = h, o.set(0, 1, 0)), f <= d && o.set(0, 0, 1), l.crossVectors(a[0], o).normalize(), s[0].crossVectors(a[0], l), c[0].crossVectors(a[0], s[0]), n = 1; n <= t; n++) s[n] = s[n - 1].clone(), c[n] = c[n - 1].clone(), l.crossVectors(a[n - 1], a[n]), l.length() > Number.EPSILON && (l.normalize(), r = Math.acos(Kn.clamp(a[n - 1].dot(a[n]), -1, 1)), s[n].applyMatrix4(u.makeRotationAxis(l, r))), c[n].crossVectors(a[n], s[n]); if (!0 === e) for (r = Math.acos(Kn.clamp(s[0].dot(s[t]), -1, 1)), r /= t, a[0].dot(l.crossVectors(s[0], s[t])) > 0 && (r = -r), n = 1; n <= t; n++) s[n].applyMatrix4(u.makeRotationAxis(a[n], r * n)), c[n].crossVectors(a[n], s[n]); return { tangents: a, normals: s, binormals: c } }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.arcLengthDivisions = t.arcLengthDivisions, this }, toJSON: function() { var t = { metadata: { version: 4.5, type: "Curve", generator: "Curve.toJSON" } }; return t.arcLengthDivisions = this.arcLengthDivisions, t.type = this.type, t }, fromJSON: function(t) { return this.arcLengthDivisions = t.arcLengthDivisions, this } }), zu.prototype = Object.create(Bu.prototype), zu.prototype.constructor = zu, zu.prototype.isEllipseCurve = !0, zu.prototype.getPoint = function(t, e) { for (var n = e || new Zn, i = 2 * Math.PI, r = this.aEndAngle - this.aStartAngle, o = Math.abs(r) < Number.EPSILON; r < 0; ) r += i; for (; r > i; ) r -= i; r < Number.EPSILON && (r = o ? 0 : i), !0 !== this.aClockwise || o || (r === i ? r = -i : r -= i); var a = this.aStartAngle + t * r , s = this.aX + this.xRadius * Math.cos(a) , c = this.aY + this.yRadius * Math.sin(a); if (0 !== this.aRotation) { var l = Math.cos(this.aRotation) , u = Math.sin(this.aRotation) , d = s - this.aX , p = c - this.aY; s = d * l - p * u + this.aX, c = d * u + p * l + this.aY } return n.set(s, c) } , zu.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.aX = t.aX, this.aY = t.aY, this.xRadius = t.xRadius, this.yRadius = t.yRadius, this.aStartAngle = t.aStartAngle, this.aEndAngle = t.aEndAngle, this.aClockwise = t.aClockwise, this.aRotation = t.aRotation, this } , zu.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.aX = this.aX, t.aY = this.aY, t.xRadius = this.xRadius, t.yRadius = this.yRadius, t.aStartAngle = this.aStartAngle, t.aEndAngle = this.aEndAngle, t.aClockwise = this.aClockwise, t.aRotation = this.aRotation, t } , zu.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.aX = t.aX, this.aY = t.aY, this.xRadius = t.xRadius, this.yRadius = t.yRadius, this.aStartAngle = t.aStartAngle, this.aEndAngle = t.aEndAngle, this.aClockwise = t.aClockwise, this.aRotation = t.aRotation, this } , Gu.prototype = Object.create(zu.prototype), Gu.prototype.constructor = Gu, Gu.prototype.isArcCurve = !0; var Wu = new si , qu = new Hu , Xu = new Hu , Yu = new Hu; function Ku(t, e, n, i) { Bu.call(this), this.type = "CatmullRomCurve3", this.points = t || [], this.closed = e || !1, this.curveType = n || "centripetal", this.tension = i || .5 } function Zu(t, e, n, i, r) { var o = .5 * (i - e) , a = .5 * (r - n) , s = t * t; return (2 * n - 2 * i + o + a) * (t * s) + (-3 * n + 3 * i - 2 * o - a) * s + o * t + n } function Ju(t, e, n, i) { return function(t, e) { var n = 1 - t; return n * n * e }(t, e) + function(t, e) { return 2 * (1 - t) * t * e }(t, n) + function(t, e) { return t * t * e }(t, i) } function Qu(t, e, n, i, r) { return function(t, e) { var n = 1 - t; return n * n * n * e }(t, e) + function(t, e) { var n = 1 - t; return 3 * n * n * t * e }(t, n) + function(t, e) { return 3 * (1 - t) * t * t * e }(t, i) + function(t, e) { return t * t * t * e }(t, r) } function $u(t, e, n, i) { Bu.call(this), this.type = "CubicBezierCurve", this.v0 = t || new Zn, this.v1 = e || new Zn, this.v2 = n || new Zn, this.v3 = i || new Zn } function td(t, e, n, i) { Bu.call(this), this.type = "CubicBezierCurve3", this.v0 = t || new si, this.v1 = e || new si, this.v2 = n || new si, this.v3 = i || new si } function ed(t, e) { Bu.call(this), this.type = "LineCurve", this.v1 = t || new Zn, this.v2 = e || new Zn } function nd(t, e) { Bu.call(this), this.type = "LineCurve3", this.v1 = t || new si, this.v2 = e || new si } function id(t, e, n) { Bu.call(this), this.type = "QuadraticBezierCurve", this.v0 = t || new Zn, this.v1 = e || new Zn, this.v2 = n || new Zn } function rd(t, e, n) { Bu.call(this), this.type = "QuadraticBezierCurve3", this.v0 = t || new si, this.v1 = e || new si, this.v2 = n || new si } function od(t) { Bu.call(this), this.type = "SplineCurve", this.points = t || [] } Ku.prototype = Object.create(Bu.prototype), Ku.prototype.constructor = Ku, Ku.prototype.isCatmullRomCurve3 = !0, Ku.prototype.getPoint = function(t, e) { var n, i, r, o, a = e || new si, s = this.points, c = s.length, l = (c - (this.closed ? 0 : 1)) * t, u = Math.floor(l), d = l - u; if (this.closed ? u += u > 0 ? 0 : (Math.floor(Math.abs(u) / c) + 1) * c : 0 === d && u === c - 1 && (u = c - 2, d = 1), this.closed || u > 0 ? n = s[(u - 1) % c] : (Wu.subVectors(s[0], s[1]).add(s[0]), n = Wu), i = s[u % c], r = s[(u + 1) % c], this.closed || u + 2 < c ? o = s[(u + 2) % c] : (Wu.subVectors(s[c - 1], s[c - 2]).add(s[c - 1]), o = Wu), "centripetal" === this.curveType || "chordal" === this.curveType) { var p = "chordal" === this.curveType ? .5 : .25 , h = Math.pow(n.distanceToSquared(i), p) , f = Math.pow(i.distanceToSquared(r), p) , m = Math.pow(r.distanceToSquared(o), p); f < 1e-4 && (f = 1), h < 1e-4 && (h = f), m < 1e-4 && (m = f), qu.initNonuniformCatmullRom(n.x, i.x, r.x, o.x, h, f, m), Xu.initNonuniformCatmullRom(n.y, i.y, r.y, o.y, h, f, m), Yu.initNonuniformCatmullRom(n.z, i.z, r.z, o.z, h, f, m) } else "catmullrom" === this.curveType && (qu.initCatmullRom(n.x, i.x, r.x, o.x, this.tension), Xu.initCatmullRom(n.y, i.y, r.y, o.y, this.tension), Yu.initCatmullRom(n.z, i.z, r.z, o.z, this.tension)); return a.set(qu.calc(d), Xu.calc(d), Yu.calc(d)), a } , Ku.prototype.copy = function(t) { Bu.prototype.copy.call(this, t), this.points = []; for (var e = 0, n = t.points.length; e < n; e++) { var i = t.points[e]; this.points.push(i.clone()) } return this.closed = t.closed, this.curveType = t.curveType, this.tension = t.tension, this } , Ku.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); t.points = []; for (var e = 0, n = this.points.length; e < n; e++) { var i = this.points[e]; t.points.push(i.toArray()) } return t.closed = this.closed, t.curveType = this.curveType, t.tension = this.tension, t } , Ku.prototype.fromJSON = function(t) { Bu.prototype.fromJSON.call(this, t), this.points = []; for (var e = 0, n = t.points.length; e < n; e++) { var i = t.points[e]; this.points.push((new si).fromArray(i)) } return this.closed = t.closed, this.curveType = t.curveType, this.tension = t.tension, this } , $u.prototype = Object.create(Bu.prototype), $u.prototype.constructor = $u, $u.prototype.isCubicBezierCurve = !0, $u.prototype.getPoint = function(t, e) { var n = e || new Zn , i = this.v0 , r = this.v1 , o = this.v2 , a = this.v3; return n.set(Qu(t, i.x, r.x, o.x, a.x), Qu(t, i.y, r.y, o.y, a.y)), n } , $u.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v0.copy(t.v0), this.v1.copy(t.v1), this.v2.copy(t.v2), this.v3.copy(t.v3), this } , $u.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v0 = this.v0.toArray(), t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t.v3 = this.v3.toArray(), t } , $u.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v0.fromArray(t.v0), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this.v3.fromArray(t.v3), this } , td.prototype = Object.create(Bu.prototype), td.prototype.constructor = td, td.prototype.isCubicBezierCurve3 = !0, td.prototype.getPoint = function(t, e) { var n = e || new si , i = this.v0 , r = this.v1 , o = this.v2 , a = this.v3; return n.set(Qu(t, i.x, r.x, o.x, a.x), Qu(t, i.y, r.y, o.y, a.y), Qu(t, i.z, r.z, o.z, a.z)), n } , td.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v0.copy(t.v0), this.v1.copy(t.v1), this.v2.copy(t.v2), this.v3.copy(t.v3), this } , td.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v0 = this.v0.toArray(), t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t.v3 = this.v3.toArray(), t } , td.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v0.fromArray(t.v0), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this.v3.fromArray(t.v3), this } , ed.prototype = Object.create(Bu.prototype), ed.prototype.constructor = ed, ed.prototype.isLineCurve = !0, ed.prototype.getPoint = function(t, e) { var n = e || new Zn; return 1 === t ? n.copy(this.v2) : (n.copy(this.v2).sub(this.v1), n.multiplyScalar(t).add(this.v1)), n } , ed.prototype.getPointAt = function(t, e) { return this.getPoint(t, e) } , ed.prototype.getTangent = function() { return this.v2.clone().sub(this.v1).normalize() } , ed.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v1.copy(t.v1), this.v2.copy(t.v2), this } , ed.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t } , ed.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this } , nd.prototype = Object.create(Bu.prototype), nd.prototype.constructor = nd, nd.prototype.isLineCurve3 = !0, nd.prototype.getPoint = function(t, e) { var n = e || new si; return 1 === t ? n.copy(this.v2) : (n.copy(this.v2).sub(this.v1), n.multiplyScalar(t).add(this.v1)), n } , nd.prototype.getPointAt = function(t, e) { return this.getPoint(t, e) } , nd.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v1.copy(t.v1), this.v2.copy(t.v2), this } , nd.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t } , nd.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this } , id.prototype = Object.create(Bu.prototype), id.prototype.constructor = id, id.prototype.isQuadraticBezierCurve = !0, id.prototype.getPoint = function(t, e) { var n = e || new Zn , i = this.v0 , r = this.v1 , o = this.v2; return n.set(Ju(t, i.x, r.x, o.x), Ju(t, i.y, r.y, o.y)), n } , id.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v0.copy(t.v0), this.v1.copy(t.v1), this.v2.copy(t.v2), this } , id.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v0 = this.v0.toArray(), t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t } , id.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v0.fromArray(t.v0), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this } , rd.prototype = Object.create(Bu.prototype), rd.prototype.constructor = rd, rd.prototype.isQuadraticBezierCurve3 = !0, rd.prototype.getPoint = function(t, e) { var n = e || new si , i = this.v0 , r = this.v1 , o = this.v2; return n.set(Ju(t, i.x, r.x, o.x), Ju(t, i.y, r.y, o.y), Ju(t, i.z, r.z, o.z)), n } , rd.prototype.copy = function(t) { return Bu.prototype.copy.call(this, t), this.v0.copy(t.v0), this.v1.copy(t.v1), this.v2.copy(t.v2), this } , rd.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); return t.v0 = this.v0.toArray(), t.v1 = this.v1.toArray(), t.v2 = this.v2.toArray(), t } , rd.prototype.fromJSON = function(t) { return Bu.prototype.fromJSON.call(this, t), this.v0.fromArray(t.v0), this.v1.fromArray(t.v1), this.v2.fromArray(t.v2), this } , od.prototype = Object.create(Bu.prototype), od.prototype.constructor = od, od.prototype.isSplineCurve = !0, od.prototype.getPoint = function(t, e) { var n = e || new Zn , i = this.points , r = (i.length - 1) * t , o = Math.floor(r) , a = r - o , s = i[0 === o ? o : o - 1] , c = i[o] , l = i[o > i.length - 2 ? i.length - 1 : o + 1] , u = i[o > i.length - 3 ? i.length - 1 : o + 2]; return n.set(Zu(a, s.x, c.x, l.x, u.x), Zu(a, s.y, c.y, l.y, u.y)), n } , od.prototype.copy = function(t) { Bu.prototype.copy.call(this, t), this.points = []; for (var e = 0, n = t.points.length; e < n; e++) { var i = t.points[e]; this.points.push(i.clone()) } return this } , od.prototype.toJSON = function() { var t = Bu.prototype.toJSON.call(this); t.points = []; for (var e = 0, n = this.points.length; e < n; e++) { var i = this.points[e]; t.points.push(i.toArray()) } return t } , od.prototype.fromJSON = function(t) { Bu.prototype.fromJSON.call(this, t), this.points = []; for (var e = 0, n = t.points.length; e < n; e++) { var i = t.points[e]; this.points.push((new Zn).fromArray(i)) } return this } ; var ad = Object.freeze({ __proto__: null, ArcCurve: Gu, CatmullRomCurve3: Ku, CubicBezierCurve: $u, CubicBezierCurve3: td, EllipseCurve: zu, LineCurve: ed, LineCurve3: nd, QuadraticBezierCurve: id, QuadraticBezierCurve3: rd, SplineCurve: od }); function sd() { Bu.call(this), this.type = "CurvePath", this.curves = [], this.autoClose = !1 } function cd(t) { sd.call(this), this.type = "Path", this.currentPoint = new Zn, t && this.setFromPoints(t) } function ld(t) { cd.call(this, t), this.uuid = Kn.generateUUID(), this.type = "Shape", this.holes = [] } function ud(t, e) { Di.call(this), this.type = "Light", this.color = new Er(t), this.intensity = void 0 !== e ? e : 1, this.receiveShadow = void 0 } function dd(t, e, n) { ud.call(this, t, n), this.type = "HemisphereLight", this.castShadow = void 0, this.position.copy(Di.DefaultUp), this.updateMatrix(), this.groundColor = new Er(e) } function pd(t) { this.camera = t, this.bias = 0, this.radius = 1, this.mapSize = new Zn(512,512), this.map = null, this.mapPass = null, this.matrix = new mi, this._frustum = new Vo, this._frameExtents = new Zn(1,1), this._viewportCount = 1, this._viewports = [new ei(0,0,1,1)] } function hd() { pd.call(this, new ko(50,1,.5,500)) } function fd(t, e, n, i, r, o) { ud.call(this, t, e), this.type = "SpotLight", this.position.copy(Di.DefaultUp), this.updateMatrix(), this.target = new Di, Object.defineProperty(this, "power", { get: function() { return this.intensity * Math.PI }, set: function(t) { this.intensity = t / Math.PI } }), this.distance = void 0 !== n ? n : 0, this.angle = void 0 !== i ? i : Math.PI / 3, this.penumbra = void 0 !== r ? r : 0, this.decay = void 0 !== o ? o : 1, this.shadow = new hd } function md() { pd.call(this, new ko(90,1,.5,500)), this._frameExtents = new Zn(4,2), this._viewportCount = 6, this._viewports = [new ei(2,1,1,1), new ei(0,1,1,1), new ei(3,1,1,1), new ei(1,1,1,1), new ei(3,0,1,1), new ei(1,0,1,1)], this._cubeDirections = [new si(1,0,0), new si(-1,0,0), new si(0,0,1), new si(0,0,-1), new si(0,1,0), new si(0,-1,0)], this._cubeUps = [new si(0,1,0), new si(0,1,0), new si(0,1,0), new si(0,1,0), new si(0,0,1), new si(0,0,-1)] } function gd(t, e, n, i) { ud.call(this, t, e), this.type = "PointLight", Object.defineProperty(this, "power", { get: function() { return 4 * this.intensity * Math.PI }, set: function(t) { this.intensity = t / (4 * Math.PI) } }), this.distance = void 0 !== n ? n : 0, this.decay = void 0 !== i ? i : 1, this.shadow = new md } function vd(t, e, n, i, r, o) { Io.call(this), this.type = "OrthographicCamera", this.zoom = 1, this.view = null, this.left = void 0 !== t ? t : -1, this.right = void 0 !== e ? e : 1, this.top = void 0 !== n ? n : 1, this.bottom = void 0 !== i ? i : -1, this.near = void 0 !== r ? r : .1, this.far = void 0 !== o ? o : 2e3, this.updateProjectionMatrix() } function yd() { pd.call(this, new vd(-5,5,5,-5,.5,500)) } function bd(t, e) { ud.call(this, t, e), this.type = "DirectionalLight", this.position.copy(Di.DefaultUp), this.updateMatrix(), this.target = new Di, this.shadow = new yd } function wd(t, e) { ud.call(this, t, e), this.type = "AmbientLight", this.castShadow = void 0 } function Sd(t, e, n, i) { ud.call(this, t, e), this.type = "RectAreaLight", this.width = void 0 !== n ? n : 10, this.height = void 0 !== i ? i : 10 } function xd(t) { ku.call(this, t), this.textures = {} } sd.prototype = Object.assign(Object.create(Bu.prototype), { constructor: sd, add: function(t) { this.curves.push(t) }, closePath: function() { var t = this.curves[0].getPoint(0) , e = this.curves[this.curves.length - 1].getPoint(1); t.equals(e) || this.curves.push(new ed(e,t)) }, getPoint: function(t) { for (var e = t * this.getLength(), n = this.getCurveLengths(), i = 0; i < n.length; ) { if (n[i] >= e) { var r = n[i] - e , o = this.curves[i] , a = o.getLength() , s = 0 === a ? 0 : 1 - r / a; return o.getPointAt(s) } i++ } return null }, getLength: function() { var t = this.getCurveLengths(); return t[t.length - 1] }, updateArcLengths: function() { this.needsUpdate = !0, this.cacheLengths = null, this.getCurveLengths() }, getCurveLengths: function() { if (this.cacheLengths && this.cacheLengths.length === this.curves.length) return this.cacheLengths; for (var t = [], e = 0, n = 0, i = this.curves.length; n < i; n++) e += this.curves[n].getLength(), t.push(e); return this.cacheLengths = t, t }, getSpacedPoints: function(t) { void 0 === t && (t = 40); for (var e = [], n = 0; n <= t; n++) e.push(this.getPoint(n / t)); return this.autoClose && e.push(e[0]), e }, getPoints: function(t) { t = t || 12; for (var e, n = [], i = 0, r = this.curves; i < r.length; i++) for (var o = r[i], a = o && o.isEllipseCurve ? 2 * t : o && (o.isLineCurve || o.isLineCurve3) ? 1 : o && o.isSplineCurve ? t * o.points.length : t, s = o.getPoints(a), c = 0; c < s.length; c++) { var l = s[c]; e && e.equals(l) || (n.push(l), e = l) } return this.autoClose && n.length > 1 && !n[n.length - 1].equals(n[0]) && n.push(n[0]), n }, copy: function(t) { Bu.prototype.copy.call(this, t), this.curves = []; for (var e = 0, n = t.curves.length; e < n; e++) { var i = t.curves[e]; this.curves.push(i.clone()) } return this.autoClose = t.autoClose, this }, toJSON: function() { var t = Bu.prototype.toJSON.call(this); t.autoClose = this.autoClose, t.curves = []; for (var e = 0, n = this.curves.length; e < n; e++) { var i = this.curves[e]; t.curves.push(i.toJSON()) } return t }, fromJSON: function(t) { Bu.prototype.fromJSON.call(this, t), this.autoClose = t.autoClose, this.curves = []; for (var e = 0, n = t.curves.length; e < n; e++) { var i = t.curves[e]; this.curves.push((new ad[i.type]).fromJSON(i)) } return this } }), cd.prototype = Object.assign(Object.create(sd.prototype), { constructor: cd, setFromPoints: function(t) { this.moveTo(t[0].x, t[0].y); for (var e = 1, n = t.length; e < n; e++) this.lineTo(t[e].x, t[e].y); return this }, moveTo: function(t, e) { return this.currentPoint.set(t, e), this }, lineTo: function(t, e) { var n = new ed(this.currentPoint.clone(),new Zn(t,e)); return this.curves.push(n), this.currentPoint.set(t, e), this }, quadraticCurveTo: function(t, e, n, i) { var r = new id(this.currentPoint.clone(),new Zn(t,e),new Zn(n,i)); return this.curves.push(r), this.currentPoint.set(n, i), this }, bezierCurveTo: function(t, e, n, i, r, o) { var a = new $u(this.currentPoint.clone(),new Zn(t,e),new Zn(n,i),new Zn(r,o)); return this.curves.push(a), this.currentPoint.set(r, o), this }, splineThru: function(t) { var e = new od([this.currentPoint.clone()].concat(t)); return this.curves.push(e), this.currentPoint.copy(t[t.length - 1]), this }, arc: function(t, e, n, i, r, o) { var a = this.currentPoint.x , s = this.currentPoint.y; return this.absarc(t + a, e + s, n, i, r, o), this }, absarc: function(t, e, n, i, r, o) { return this.absellipse(t, e, n, n, i, r, o), this }, ellipse: function(t, e, n, i, r, o, a, s) { var c = this.currentPoint.x , l = this.currentPoint.y; return this.absellipse(t + c, e + l, n, i, r, o, a, s), this }, absellipse: function(t, e, n, i, r, o, a, s) { var c = new zu(t,e,n,i,r,o,a,s); if (this.curves.length > 0) { var l = c.getPoint(0); l.equals(this.currentPoint) || this.lineTo(l.x, l.y) } this.curves.push(c); var u = c.getPoint(1); return this.currentPoint.copy(u), this }, copy: function(t) { return sd.prototype.copy.call(this, t), this.currentPoint.copy(t.currentPoint), this }, toJSON: function() { var t = sd.prototype.toJSON.call(this); return t.currentPoint = this.currentPoint.toArray(), t }, fromJSON: function(t) { return sd.prototype.fromJSON.call(this, t), this.currentPoint.fromArray(t.currentPoint), this } }), ld.prototype = Object.assign(Object.create(cd.prototype), { constructor: ld, getPointsHoles: function(t) { for (var e = [], n = 0, i = this.holes.length; n < i; n++) e[n] = this.holes[n].getPoints(t); return e }, extractPoints: function(t) { return { shape: this.getPoints(t), holes: this.getPointsHoles(t) } }, copy: function(t) { cd.prototype.copy.call(this, t), this.holes = []; for (var e = 0, n = t.holes.length; e < n; e++) { var i = t.holes[e]; this.holes.push(i.clone()) } return this }, toJSON: function() { var t = cd.prototype.toJSON.call(this); t.uuid = this.uuid, t.holes = []; for (var e = 0, n = this.holes.length; e < n; e++) { var i = this.holes[e]; t.holes.push(i.toJSON()) } return t }, fromJSON: function(t) { cd.prototype.fromJSON.call(this, t), this.uuid = t.uuid, this.holes = []; for (var e = 0, n = t.holes.length; e < n; e++) { var i = t.holes[e]; this.holes.push((new cd).fromJSON(i)) } return this } }), ud.prototype = Object.assign(Object.create(Di.prototype), { constructor: ud, isLight: !0, copy: function(t) { return Di.prototype.copy.call(this, t), this.color.copy(t.color), this.intensity = t.intensity, this }, toJSON: function(t) { var e = Di.prototype.toJSON.call(this, t); return e.object.color = this.color.getHex(), e.object.intensity = this.intensity, void 0 !== this.groundColor && (e.object.groundColor = this.groundColor.getHex()), void 0 !== this.distance && (e.object.distance = this.distance), void 0 !== this.angle && (e.object.angle = this.angle), void 0 !== this.decay && (e.object.decay = this.decay), void 0 !== this.penumbra && (e.object.penumbra = this.penumbra), void 0 !== this.shadow && (e.object.shadow = this.shadow.toJSON()), e } }), dd.prototype = Object.assign(Object.create(ud.prototype), { constructor: dd, isHemisphereLight: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.groundColor.copy(t.groundColor), this } }), Object.assign(pd.prototype, { _projScreenMatrix: new mi, _lightPositionWorld: new si, _lookTarget: new si, getViewportCount: function() { return this._viewportCount }, getFrustum: function() { return this._frustum }, updateMatrices: function(t) { var e = this.camera , n = this.matrix , i = this._projScreenMatrix , r = this._lookTarget , o = this._lightPositionWorld; o.setFromMatrixPosition(t.matrixWorld), e.position.copy(o), r.setFromMatrixPosition(t.target.matrixWorld), e.lookAt(r), e.updateMatrixWorld(), i.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), this._frustum.setFromProjectionMatrix(i), n.set(.5, 0, 0, .5, 0, .5, 0, .5, 0, 0, .5, .5, 0, 0, 0, 1), n.multiply(e.projectionMatrix), n.multiply(e.matrixWorldInverse) }, getViewport: function(t) { return this._viewports[t] }, getFrameExtents: function() { return this._frameExtents }, copy: function(t) { return this.camera = t.camera.clone(), this.bias = t.bias, this.radius = t.radius, this.mapSize.copy(t.mapSize), this }, clone: function() { return (new this.constructor).copy(this) }, toJSON: function() { var t = {}; return 0 !== this.bias && (t.bias = this.bias), 1 !== this.radius && (t.radius = this.radius), 512 === this.mapSize.x && 512 === this.mapSize.y || (t.mapSize = this.mapSize.toArray()), t.camera = this.camera.toJSON(!1).object, delete t.camera.matrix, t } }), hd.prototype = Object.assign(Object.create(pd.prototype), { constructor: hd, isSpotLightShadow: !0, updateMatrices: function(t) { var e = this.camera , n = 2 * Kn.RAD2DEG * t.angle , i = this.mapSize.width / this.mapSize.height , r = t.distance || e.far; n === e.fov && i === e.aspect && r === e.far || (e.fov = n, e.aspect = i, e.far = r, e.updateProjectionMatrix()), pd.prototype.updateMatrices.call(this, t) } }), fd.prototype = Object.assign(Object.create(ud.prototype), { constructor: fd, isSpotLight: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.distance = t.distance, this.angle = t.angle, this.penumbra = t.penumbra, this.decay = t.decay, this.target = t.target.clone(), this.shadow = t.shadow.clone(), this } }), md.prototype = Object.assign(Object.create(pd.prototype), { constructor: md, isPointLightShadow: !0, updateMatrices: function(t, e) { void 0 === e && (e = 0); var n = this.camera , i = this.matrix , r = this._lightPositionWorld , o = this._lookTarget , a = this._projScreenMatrix; r.setFromMatrixPosition(t.matrixWorld), n.position.copy(r), o.copy(n.position), o.add(this._cubeDirections[e]), n.up.copy(this._cubeUps[e]), n.lookAt(o), n.updateMatrixWorld(), i.makeTranslation(-r.x, -r.y, -r.z), a.multiplyMatrices(n.projectionMatrix, n.matrixWorldInverse), this._frustum.setFromProjectionMatrix(a) } }), gd.prototype = Object.assign(Object.create(ud.prototype), { constructor: gd, isPointLight: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.distance = t.distance, this.decay = t.decay, this.shadow = t.shadow.clone(), this } }), vd.prototype = Object.assign(Object.create(Io.prototype), { constructor: vd, isOrthographicCamera: !0, copy: function(t, e) { return Io.prototype.copy.call(this, 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 = null === t.view ? null : Object.assign({}, t.view), this }, setViewOffset: function(t, e, n, i, r, o) { null === this.view && (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 = r, this.view.height = o, this.updateProjectionMatrix() }, clearViewOffset: function() { null !== this.view && (this.view.enabled = !1), this.updateProjectionMatrix() }, updateProjectionMatrix: function() { var 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 , r = n - t , o = n + t , a = i + e , s = i - e; if (null !== this.view && this.view.enabled) { var c = (this.right - this.left) / this.view.fullWidth / this.zoom , l = (this.top - this.bottom) / this.view.fullHeight / this.zoom; o = (r += c * this.view.offsetX) + c * this.view.width, s = (a -= l * this.view.offsetY) - l * this.view.height } this.projectionMatrix.makeOrthographic(r, o, a, s, this.near, this.far), this.projectionMatrixInverse.getInverse(this.projectionMatrix) }, toJSON: function(t) { var e = Di.prototype.toJSON.call(this, 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, null !== this.view && (e.object.view = Object.assign({}, this.view)), e } }), yd.prototype = Object.assign(Object.create(pd.prototype), { constructor: yd, isDirectionalLightShadow: !0, updateMatrices: function(t) { pd.prototype.updateMatrices.call(this, t) } }), bd.prototype = Object.assign(Object.create(ud.prototype), { constructor: bd, isDirectionalLight: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.target = t.target.clone(), this.shadow = t.shadow.clone(), this } }), wd.prototype = Object.assign(Object.create(ud.prototype), { constructor: wd, isAmbientLight: !0 }), Sd.prototype = Object.assign(Object.create(ud.prototype), { constructor: Sd, isRectAreaLight: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.width = t.width, this.height = t.height, this }, toJSON: function(t) { var e = ud.prototype.toJSON.call(this, t); return e.object.width = this.width, e.object.height = this.height, e } }), xd.prototype = Object.assign(Object.create(ku.prototype), { constructor: xd, load: function(t, e, n, i) { var r = this , o = new Ru(r.manager); o.setPath(r.path), o.load(t, (function(t) { e(r.parse(JSON.parse(t))) } ), n, i) }, parse: function(t) { var e = this.textures; function n(t) { return void 0 === e[t] && console.warn("THREE.MaterialLoader: Undefined texture", t), e[t] } var i = new hu[t.type]; if (void 0 !== t.uuid && (i.uuid = t.uuid), void 0 !== t.name && (i.name = t.name), void 0 !== t.color && i.color.setHex(t.color), void 0 !== t.roughness && (i.roughness = t.roughness), void 0 !== t.metalness && (i.metalness = t.metalness), void 0 !== t.sheen && (i.sheen = (new Er).setHex(t.sheen)), void 0 !== t.emissive && i.emissive.setHex(t.emissive), void 0 !== t.specular && i.specular.setHex(t.specular), void 0 !== t.shininess && (i.shininess = t.shininess), void 0 !== t.clearcoat && (i.clearcoat = t.clearcoat), void 0 !== t.clearcoatRoughness && (i.clearcoatRoughness = t.clearcoatRoughness), void 0 !== t.fog && (i.fog = t.fog), void 0 !== t.flatShading && (i.flatShading = t.flatShading), void 0 !== t.blending && (i.blending = t.blending), void 0 !== t.combine && (i.combine = t.combine), void 0 !== t.side && (i.side = t.side), void 0 !== t.opacity && (i.opacity = t.opacity), void 0 !== t.transparent && (i.transparent = t.transparent), void 0 !== t.alphaTest && (i.alphaTest = t.alphaTest), void 0 !== t.depthTest && (i.depthTest = t.depthTest), void 0 !== t.depthWrite && (i.depthWrite = t.depthWrite), void 0 !== t.colorWrite && (i.colorWrite = t.colorWrite), void 0 !== t.stencilWrite && (i.stencilWrite = t.stencilWrite), void 0 !== t.stencilWriteMask && (i.stencilWriteMask = t.stencilWriteMask), void 0 !== t.stencilFunc && (i.stencilFunc = t.stencilFunc), void 0 !== t.stencilRef && (i.stencilRef = t.stencilRef), void 0 !== t.stencilFuncMask && (i.stencilFuncMask = t.stencilFuncMask), void 0 !== t.stencilFail && (i.stencilFail = t.stencilFail), void 0 !== t.stencilZFail && (i.stencilZFail = t.stencilZFail), void 0 !== t.stencilZPass && (i.stencilZPass = t.stencilZPass), void 0 !== t.wireframe && (i.wireframe = t.wireframe), void 0 !== t.wireframeLinewidth && (i.wireframeLinewidth = t.wireframeLinewidth), void 0 !== t.wireframeLinecap && (i.wireframeLinecap = t.wireframeLinecap), void 0 !== t.wireframeLinejoin && (i.wireframeLinejoin = t.wireframeLinejoin), void 0 !== t.rotation && (i.rotation = t.rotation), 1 !== t.linewidth && (i.linewidth = t.linewidth), void 0 !== t.dashSize && (i.dashSize = t.dashSize), void 0 !== t.gapSize && (i.gapSize = t.gapSize), void 0 !== t.scale && (i.scale = t.scale), void 0 !== t.polygonOffset && (i.polygonOffset = t.polygonOffset), void 0 !== t.polygonOffsetFactor && (i.polygonOffsetFactor = t.polygonOffsetFactor), void 0 !== t.polygonOffsetUnits && (i.polygonOffsetUnits = t.polygonOffsetUnits), void 0 !== t.skinning && (i.skinning = t.skinning), void 0 !== t.morphTargets && (i.morphTargets = t.morphTargets), void 0 !== t.morphNormals && (i.morphNormals = t.morphNormals), void 0 !== t.dithering && (i.dithering = t.dithering), void 0 !== t.vertexTangents && (i.vertexTangents = t.vertexTangents), void 0 !== t.visible && (i.visible = t.visible), void 0 !== t.toneMapped && (i.toneMapped = t.toneMapped), void 0 !== t.userData && (i.userData = t.userData), void 0 !== t.vertexColors && ("number" == typeof t.vertexColors ? i.vertexColors = t.vertexColors > 0 : i.vertexColors = t.vertexColors), void 0 !== t.uniforms) for (var r in t.uniforms) { var o = t.uniforms[r]; switch (i.uniforms[r] = {}, o.type) { case "t": i.uniforms[r].value = n(o.value); break; case "c": i.uniforms[r].value = (new Er).setHex(o.value); break; case "v2": i.uniforms[r].value = (new Zn).fromArray(o.value); break; case "v3": i.uniforms[r].value = (new si).fromArray(o.value); break; case "v4": i.uniforms[r].value = (new ei).fromArray(o.value); break; case "m3": i.uniforms[r].value = (new Jn).fromArray(o.value); case "m4": i.uniforms[r].value = (new mi).fromArray(o.value); break; default: i.uniforms[r].value = o.value } } if (void 0 !== t.defines && (i.defines = t.defines), void 0 !== t.vertexShader && (i.vertexShader = t.vertexShader), void 0 !== t.fragmentShader && (i.fragmentShader = t.fragmentShader), void 0 !== t.extensions) for (var a in t.extensions) i.extensions[a] = t.extensions[a]; if (void 0 !== t.shading && (i.flatShading = 1 === t.shading), void 0 !== t.size && (i.size = t.size), void 0 !== t.sizeAttenuation && (i.sizeAttenuation = t.sizeAttenuation), void 0 !== t.map && (i.map = n(t.map)), void 0 !== t.matcap && (i.matcap = n(t.matcap)), void 0 !== t.alphaMap && (i.alphaMap = n(t.alphaMap)), void 0 !== t.bumpMap && (i.bumpMap = n(t.bumpMap)), void 0 !== t.bumpScale && (i.bumpScale = t.bumpScale), void 0 !== t.normalMap && (i.normalMap = n(t.normalMap)), void 0 !== t.normalMapType && (i.normalMapType = t.normalMapType), void 0 !== t.normalScale) { var s = t.normalScale; !1 === Array.isArray(s) && (s = [s, s]), i.normalScale = (new Zn).fromArray(s) } return void 0 !== t.displacementMap && (i.displacementMap = n(t.displacementMap)), void 0 !== t.displacementScale && (i.displacementScale = t.displacementScale), void 0 !== t.displacementBias && (i.displacementBias = t.displacementBias), void 0 !== t.roughnessMap && (i.roughnessMap = n(t.roughnessMap)), void 0 !== t.metalnessMap && (i.metalnessMap = n(t.metalnessMap)), void 0 !== t.emissiveMap && (i.emissiveMap = n(t.emissiveMap)), void 0 !== t.emissiveIntensity && (i.emissiveIntensity = t.emissiveIntensity), void 0 !== t.specularMap && (i.specularMap = n(t.specularMap)), void 0 !== t.envMap && (i.envMap = n(t.envMap)), void 0 !== t.envMapIntensity && (i.envMapIntensity = t.envMapIntensity), void 0 !== t.reflectivity && (i.reflectivity = t.reflectivity), void 0 !== t.refractionRatio && (i.refractionRatio = t.refractionRatio), void 0 !== t.lightMap && (i.lightMap = n(t.lightMap)), void 0 !== t.lightMapIntensity && (i.lightMapIntensity = t.lightMapIntensity), void 0 !== t.aoMap && (i.aoMap = n(t.aoMap)), void 0 !== t.aoMapIntensity && (i.aoMapIntensity = t.aoMapIntensity), void 0 !== t.gradientMap && (i.gradientMap = n(t.gradientMap)), void 0 !== t.clearcoatMap && (i.clearcoatMap = n(t.clearcoatMap)), void 0 !== t.clearcoatRoughnessMap && (i.clearcoatRoughnessMap = n(t.clearcoatRoughnessMap)), void 0 !== t.clearcoatNormalMap && (i.clearcoatNormalMap = n(t.clearcoatNormalMap)), void 0 !== t.clearcoatNormalScale && (i.clearcoatNormalScale = (new Zn).fromArray(t.clearcoatNormalScale)), i }, setTextures: function(t) { return this.textures = t, this } }); var Md = { decodeText: function(t) { if ("undefined" != typeof TextDecoder) return (new TextDecoder).decode(t); for (var e = "", n = 0, i = t.length; n < i; n++) e += String.fromCharCode(t[n]); try { return decodeURIComponent(escape(e)) } catch (t) { return e } }, extractUrlBase: function(t) { var e = t.lastIndexOf("/"); return -1 === e ? "./" : t.substr(0, e + 1) } }; function Ed() { Qr.call(this), this.type = "InstancedBufferGeometry", this.maxInstancedCount = void 0 } function Cd(t, e, n, i) { "number" == typeof n && (i = n, n = !1, console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")), Dr.call(this, t, e, n), this.meshPerAttribute = i || 1 } function Ad(t) { ku.call(this, t) } Ed.prototype = Object.assign(Object.create(Qr.prototype), { constructor: Ed, isInstancedBufferGeometry: !0, copy: function(t) { return Qr.prototype.copy.call(this, t), this.maxInstancedCount = t.maxInstancedCount, this }, clone: function() { return (new this.constructor).copy(this) }, toJSON: function() { var t = Qr.prototype.toJSON.call(this); return t.maxInstancedCount = this.maxInstancedCount, t.isInstancedBufferGeometry = !0, t } }), Cd.prototype = Object.assign(Object.create(Dr.prototype), { constructor: Cd, isInstancedBufferAttribute: !0, copy: function(t) { return Dr.prototype.copy.call(this, t), this.meshPerAttribute = t.meshPerAttribute, this }, toJSON: function() { var t = Dr.prototype.toJSON.call(this); return t.meshPerAttribute = this.meshPerAttribute, t.isInstancedBufferAttribute = !0, t } }), Ad.prototype = Object.assign(Object.create(ku.prototype), { constructor: Ad, load: function(t, e, n, i) { var r = this , o = new Ru(r.manager); o.setPath(r.path), o.load(t, (function(t) { e(r.parse(JSON.parse(t))) } ), n, i) }, parse: function(t) { var e = t.isInstancedBufferGeometry ? new Ed : new Qr , n = t.data.index; if (void 0 !== n) { var i = new Td[n.type](n.array); e.setIndex(new Dr(i,1)) } var r = t.data.attributes; for (var o in r) { var a = r[o] , s = (i = new Td[a.type](a.array), new (a.isInstancedBufferAttribute ? Cd : Dr)(i,a.itemSize,a.normalized)); void 0 !== a.name && (s.name = a.name), e.setAttribute(o, s) } var c = t.data.morphAttributes; if (c) for (var o in c) { for (var l = c[o], u = [], d = 0, p = l.length; d < p; d++) { a = l[d], s = new Dr(i = new Td[a.type](a.array),a.itemSize,a.normalized); void 0 !== a.name && (s.name = a.name), u.push(s) } e.morphAttributes[o] = u } t.data.morphTargetsRelative && (e.morphTargetsRelative = !0); var h = t.data.groups || t.data.drawcalls || t.data.offsets; if (void 0 !== h) { d = 0; for (var f = h.length; d !== f; ++d) { var m = h[d]; e.addGroup(m.start, m.count, m.materialIndex) } } var g = t.data.boundingSphere; if (void 0 !== g) { var v = new si; void 0 !== g.center && v.fromArray(g.center), e.boundingSphere = new Ji(v,g.radius) } return t.name && (e.name = t.name), t.userData && (e.userData = t.userData), e } }); var Td = { Int8Array: Int8Array, Uint8Array: Uint8Array, Uint8ClampedArray: "undefined" != typeof Uint8ClampedArray ? Uint8ClampedArray : Uint8Array, Int16Array: Int16Array, Uint16Array: Uint16Array, Int32Array: Int32Array, Uint32Array: Uint32Array, Float32Array: Float32Array, Float64Array: Float64Array }; function Od(t) { ku.call(this, t) } Od.prototype = Object.assign(Object.create(ku.prototype), { constructor: Od, load: function(t, e, n, i) { var r = this , o = "" === this.path ? Md.extractUrlBase(t) : this.path; this.resourcePath = this.resourcePath || o; var a = new Ru(r.manager); a.setPath(this.path), a.load(t, (function(n) { var o = null; try { o = JSON.parse(n) } catch (e) { return void 0 !== i && i(e), void console.error("THREE:ObjectLoader: Can't parse " + t + ".", e.message) } var a = o.metadata; void 0 !== a && void 0 !== a.type && "geometry" !== a.type.toLowerCase() ? r.parse(o, e) : console.error("THREE.ObjectLoader: Can't load " + t) } ), n, i) }, parse: function(t, e) { var n = this.parseShape(t.shapes) , i = this.parseGeometries(t.geometries, n) , r = this.parseImages(t.images, (function() { void 0 !== e && e(s) } )) , o = this.parseTextures(t.textures, r) , a = this.parseMaterials(t.materials, o) , s = this.parseObject(t.object, i, a); return t.animations && (s.animations = this.parseAnimations(t.animations)), void 0 !== t.images && 0 !== t.images.length || void 0 !== e && e(s), s }, parseShape: function(t) { var e = {}; if (void 0 !== t) for (var n = 0, i = t.length; n < i; n++) { var r = (new ld).fromJSON(t[n]); e[r.uuid] = r } return e }, parseGeometries: function(t, e) { var n = {}; if (void 0 !== t) for (var i = new Ad, r = 0, o = t.length; r < o; r++) { var a, s = t[r]; switch (s.type) { case "PlaneGeometry": case "PlaneBufferGeometry": a = new nu[s.type](s.width,s.height,s.widthSegments,s.heightSegments); break; case "BoxGeometry": case "BoxBufferGeometry": case "CubeGeometry": a = new nu[s.type](s.width,s.height,s.depth,s.widthSegments,s.heightSegments,s.depthSegments); break; case "CircleGeometry": case "CircleBufferGeometry": a = new nu[s.type](s.radius,s.segments,s.thetaStart,s.thetaLength); break; case "CylinderGeometry": case "CylinderBufferGeometry": a = new nu[s.type](s.radiusTop,s.radiusBottom,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength); break; case "ConeGeometry": case "ConeBufferGeometry": a = new nu[s.type](s.radius,s.height,s.radialSegments,s.heightSegments,s.openEnded,s.thetaStart,s.thetaLength); break; case "SphereGeometry": case "SphereBufferGeometry": a = new nu[s.type](s.radius,s.widthSegments,s.heightSegments,s.phiStart,s.phiLength,s.thetaStart,s.thetaLength); break; case "DodecahedronGeometry": case "DodecahedronBufferGeometry": case "IcosahedronGeometry": case "IcosahedronBufferGeometry": case "OctahedronGeometry": case "OctahedronBufferGeometry": case "TetrahedronGeometry": case "TetrahedronBufferGeometry": a = new nu[s.type](s.radius,s.detail); break; case "RingGeometry": case "RingBufferGeometry": a = new nu[s.type](s.innerRadius,s.outerRadius,s.thetaSegments,s.phiSegments,s.thetaStart,s.thetaLength); break; case "TorusGeometry": case "TorusBufferGeometry": a = new nu[s.type](s.radius,s.tube,s.radialSegments,s.tubularSegments,s.arc); break; case "TorusKnotGeometry": case "TorusKnotBufferGeometry": a = new nu[s.type](s.radius,s.tube,s.tubularSegments,s.radialSegments,s.p,s.q); break; case "TubeGeometry": case "TubeBufferGeometry": a = new nu[s.type]((new ad[s.path.type]).fromJSON(s.path),s.tubularSegments,s.radius,s.radialSegments,s.closed); break; case "LatheGeometry": case "LatheBufferGeometry": a = new nu[s.type](s.points,s.segments,s.phiStart,s.phiLength); break; case "PolyhedronGeometry": case "PolyhedronBufferGeometry": a = new nu[s.type](s.vertices,s.indices,s.radius,s.details); break; case "ShapeGeometry": case "ShapeBufferGeometry": for (var c = [], l = 0, u = s.shapes.length; l < u; l++) { var d = e[s.shapes[l]]; c.push(d) } a = new nu[s.type](c,s.curveSegments); break; case "ExtrudeGeometry": case "ExtrudeBufferGeometry": for (c = [], l = 0, u = s.shapes.length; l < u; l++) { d = e[s.shapes[l]]; c.push(d) } var p = s.options.extrudePath; void 0 !== p && (s.options.extrudePath = (new ad[p.type]).fromJSON(p)), a = new nu[s.type](c,s.options); break; case "BufferGeometry": case "InstancedBufferGeometry": a = i.parse(s); break; case "Geometry": console.error('THREE.ObjectLoader: Loading "Geometry" is not supported anymore.'); break; default: console.warn('THREE.ObjectLoader: Unsupported geometry type "' + s.type + '"'); continue } a.uuid = s.uuid, void 0 !== s.name && (a.name = s.name), !0 === a.isBufferGeometry && void 0 !== s.userData && (a.userData = s.userData), n[s.uuid] = a } return n }, parseMaterials: function(t, e) { var n = {} , i = {}; if (void 0 !== t) { var r = new xd; r.setTextures(e); for (var o = 0, a = t.length; o < a; o++) { var s = t[o]; if ("MultiMaterial" === s.type) { for (var c = [], l = 0; l < s.materials.length; l++) { var u = s.materials[l]; void 0 === n[u.uuid] && (n[u.uuid] = r.parse(u)), c.push(n[u.uuid]) } i[s.uuid] = c } else void 0 === n[s.uuid] && (n[s.uuid] = r.parse(s)), i[s.uuid] = n[s.uuid] } } return i }, parseAnimations: function(t) { for (var e = [], n = 0; n < t.length; n++) { var i = t[n] , r = Tu.parse(i); void 0 !== i.uuid && (r.uuid = i.uuid), e.push(r) } return e }, parseImages: function(t, e) { var n = this , i = {}; function r(t) { return n.manager.itemStart(t), o.load(t, (function() { n.manager.itemEnd(t) } ), void 0, (function() { n.manager.itemError(t), n.manager.itemEnd(t) } )) } if (void 0 !== t && t.length > 0) { var o = new Vu(new Pu(e)); o.setCrossOrigin(this.crossOrigin); for (var a = 0, s = t.length; a < s; a++) { var c = t[a] , l = c.url; if (Array.isArray(l)) { i[c.uuid] = []; for (var u = 0, d = l.length; u < d; u++) { var p = l[u] , h = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(p) ? p : n.resourcePath + p; i[c.uuid].push(r(h)) } } else { h = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(c.url) ? c.url : n.resourcePath + c.url; i[c.uuid] = r(h) } } } return i }, parseTextures: function(t, e) { function n(t, e) { return "number" == typeof t ? t : (console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.", t), e[t]) } var i = {}; if (void 0 !== t) for (var r = 0, o = t.length; r < o; r++) { var a, s = t[r]; void 0 === s.image && console.warn('THREE.ObjectLoader: No "image" specified for', s.uuid), void 0 === e[s.image] && console.warn("THREE.ObjectLoader: Undefined image", s.image), (a = Array.isArray(e[s.image]) ? new ia(e[s.image]) : new ti(e[s.image])).needsUpdate = !0, a.uuid = s.uuid, void 0 !== s.name && (a.name = s.name), void 0 !== s.mapping && (a.mapping = n(s.mapping, Pd)), void 0 !== s.offset && a.offset.fromArray(s.offset), void 0 !== s.repeat && a.repeat.fromArray(s.repeat), void 0 !== s.center && a.center.fromArray(s.center), void 0 !== s.rotation && (a.rotation = s.rotation), void 0 !== s.wrap && (a.wrapS = n(s.wrap[0], Id), a.wrapT = n(s.wrap[1], Id)), void 0 !== s.format && (a.format = s.format), void 0 !== s.type && (a.type = s.type), void 0 !== s.encoding && (a.encoding = s.encoding), void 0 !== s.minFilter && (a.minFilter = n(s.minFilter, kd)), void 0 !== s.magFilter && (a.magFilter = n(s.magFilter, kd)), void 0 !== s.anisotropy && (a.anisotropy = s.anisotropy), void 0 !== s.flipY && (a.flipY = s.flipY), void 0 !== s.premultiplyAlpha && (a.premultiplyAlpha = s.premultiplyAlpha), void 0 !== s.unpackAlignment && (a.unpackAlignment = s.unpackAlignment), i[s.uuid] = a } return i }, parseObject: function(t, e, n) { var i; function r(t) { return void 0 === e[t] && console.warn("THREE.ObjectLoader: Undefined geometry", t), e[t] } function o(t) { if (void 0 !== t) { if (Array.isArray(t)) { for (var e = [], i = 0, r = t.length; i < r; i++) { var o = t[i]; void 0 === n[o] && console.warn("THREE.ObjectLoader: Undefined material", o), e.push(n[o]) } return e } return void 0 === n[t] && console.warn("THREE.ObjectLoader: Undefined material", t), n[t] } } switch (t.type) { case "Scene": i = new Ri, void 0 !== t.background && Number.isInteger(t.background) && (i.background = new Er(t.background)), void 0 !== t.fog && ("Fog" === t.fog.type ? i.fog = new Gs(t.fog.color,t.fog.near,t.fog.far) : "FogExp2" === t.fog.type && (i.fog = new zs(t.fog.color,t.fog.density))); break; case "PerspectiveCamera": i = new ko(t.fov,t.aspect,t.near,t.far), void 0 !== t.focus && (i.focus = t.focus), void 0 !== t.zoom && (i.zoom = t.zoom), void 0 !== t.filmGauge && (i.filmGauge = t.filmGauge), void 0 !== t.filmOffset && (i.filmOffset = t.filmOffset), void 0 !== t.view && (i.view = Object.assign({}, t.view)); break; case "OrthographicCamera": i = new vd(t.left,t.right,t.top,t.bottom,t.near,t.far), void 0 !== t.zoom && (i.zoom = t.zoom), void 0 !== t.view && (i.view = Object.assign({}, t.view)); break; case "AmbientLight": i = new wd(t.color,t.intensity); break; case "DirectionalLight": i = new bd(t.color,t.intensity); break; case "PointLight": i = new gd(t.color,t.intensity,t.distance,t.decay); break; case "RectAreaLight": i = new Sd(t.color,t.intensity,t.width,t.height); break; case "SpotLight": i = new fd(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay); break; case "HemisphereLight": i = new dd(t.color,t.groundColor,t.intensity); break; case "SkinnedMesh": console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet."); case "Mesh": i = new vo(a = r(t.geometry),s = o(t.material)); break; case "InstancedMesh": var a = r(t.geometry) , s = o(t.material) , c = t.count , l = t.instanceMatrix; (i = new Sc(a,s,c)).instanceMatrix = new Dr(new Float32Array(l.array),16); break; case "LOD": i = new dc; break; case "Line": i = new Oc(r(t.geometry),o(t.material),t.mode); break; case "LineLoop": i = new kc(r(t.geometry),o(t.material)); break; case "LineSegments": i = new Ic(r(t.geometry),o(t.material)); break; case "PointCloud": case "Points": i = new Vc(r(t.geometry),o(t.material)); break; case "Sprite": i = new sc(o(t.material)); break; case "Group": i = new Fs; break; default: i = new Di } if (i.uuid = t.uuid, void 0 !== t.name && (i.name = t.name), void 0 !== t.matrix ? (i.matrix.fromArray(t.matrix), void 0 !== t.matrixAutoUpdate && (i.matrixAutoUpdate = t.matrixAutoUpdate), i.matrixAutoUpdate && i.matrix.decompose(i.position, i.quaternion, i.scale)) : (void 0 !== t.position && i.position.fromArray(t.position), void 0 !== t.rotation && i.rotation.fromArray(t.rotation), void 0 !== t.quaternion && i.quaternion.fromArray(t.quaternion), void 0 !== t.scale && i.scale.fromArray(t.scale)), void 0 !== t.castShadow && (i.castShadow = t.castShadow), void 0 !== t.receiveShadow && (i.receiveShadow = t.receiveShadow), t.shadow && (void 0 !== t.shadow.bias && (i.shadow.bias = t.shadow.bias), void 0 !== t.shadow.radius && (i.shadow.radius = t.shadow.radius), void 0 !== t.shadow.mapSize && i.shadow.mapSize.fromArray(t.shadow.mapSize), void 0 !== t.shadow.camera && (i.shadow.camera = this.parseObject(t.shadow.camera))), void 0 !== t.visible && (i.visible = t.visible), void 0 !== t.frustumCulled && (i.frustumCulled = t.frustumCulled), void 0 !== t.renderOrder && (i.renderOrder = t.renderOrder), void 0 !== t.userData && (i.userData = t.userData), void 0 !== t.layers && (i.layers.mask = t.layers), void 0 !== t.children) for (var u = t.children, d = 0; d < u.length; d++) i.add(this.parseObject(u[d], e, n)); if ("LOD" === t.type) { void 0 !== t.autoUpdate && (i.autoUpdate = t.autoUpdate); for (var p = t.levels, h = 0; h < p.length; h++) { var f = p[h] , m = i.getObjectByProperty("uuid", f.object); void 0 !== m && i.addLevel(m, f.distance) } } return i } }); var _d, Pd = { UVMapping: gt, CubeReflectionMapping: vt, CubeRefractionMapping: yt, EquirectangularReflectionMapping: bt, EquirectangularRefractionMapping: wt, SphericalReflectionMapping: St, CubeUVReflectionMapping: xt, CubeUVRefractionMapping: Mt }, Id = { RepeatWrapping: Et, ClampToEdgeWrapping: Ct, MirroredRepeatWrapping: At }, kd = { NearestFilter: Tt, NearestMipmapNearestFilter: Ot, NearestMipmapLinearFilter: Pt, LinearFilter: kt, LinearMipmapNearestFilter: Dt, LinearMipmapLinearFilter: Lt }; function Dd(t) { "undefined" == typeof createImageBitmap && console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."), "undefined" == typeof fetch && console.warn("THREE.ImageBitmapLoader: fetch() not supported."), ku.call(this, t), this.options = void 0 } function Rd() { this.type = "ShapePath", this.color = new Er, this.subPaths = [], this.currentPath = null } function Ld(t) { this.type = "Font", this.data = t } function Nd(t, e, n, i, r) { var o = r.glyphs[t] || r.glyphs["?"]; if (o) { var a, s, c, l, u, d, p, h, f = new Rd; if (o.o) for (var m = o._cachedOutline || (o._cachedOutline = o.o.split(" ")), g = 0, v = m.length; g < v; ) { switch (m[g++]) { case "m": a = m[g++] * e + n, s = m[g++] * e + i, f.moveTo(a, s); break; case "l": a = m[g++] * e + n, s = m[g++] * e + i, f.lineTo(a, s); break; case "q": c = m[g++] * e + n, l = m[g++] * e + i, u = m[g++] * e + n, d = m[g++] * e + i, f.quadraticCurveTo(u, d, c, l); break; case "b": c = m[g++] * e + n, l = m[g++] * e + i, u = m[g++] * e + n, d = m[g++] * e + i, p = m[g++] * e + n, h = m[g++] * e + i, f.bezierCurveTo(u, d, p, h, c, l) } } return { offsetX: o.ha * e, path: f } } console.error('THREE.Font: character "' + t + '" does not exists in font family ' + r.familyName + ".") } function jd(t) { ku.call(this, t) } Dd.prototype = Object.assign(Object.create(ku.prototype), { constructor: Dd, setOptions: function(t) { return this.options = t, this }, load: function(t, e, n, i) { void 0 === t && (t = ""), void 0 !== this.path && (t = this.path + t), t = this.manager.resolveURL(t); var r = this , o = _u.get(t); if (void 0 !== o) return r.manager.itemStart(t), setTimeout((function() { e && e(o), r.manager.itemEnd(t) } ), 0), o; fetch(t).then((function(t) { return t.blob() } )).then((function(t) { return void 0 === r.options ? createImageBitmap(t) : createImageBitmap(t, r.options) } )).then((function(n) { _u.add(t, n), e && e(n), r.manager.itemEnd(t) } )).catch((function(e) { i && i(e), r.manager.itemError(t), r.manager.itemEnd(t) } )), r.manager.itemStart(t) } }), Object.assign(Rd.prototype, { moveTo: function(t, e) { return this.currentPath = new cd, this.subPaths.push(this.currentPath), this.currentPath.moveTo(t, e), this }, lineTo: function(t, e) { return this.currentPath.lineTo(t, e), this }, quadraticCurveTo: function(t, e, n, i) { return this.currentPath.quadraticCurveTo(t, e, n, i), this }, bezierCurveTo: function(t, e, n, i, r, o) { return this.currentPath.bezierCurveTo(t, e, n, i, r, o), this }, splineThru: function(t) { return this.currentPath.splineThru(t), this }, toShapes: function(t, e) { function n(t) { for (var e = [], n = 0, i = t.length; n < i; n++) { var r = t[n] , o = new ld; o.curves = r.curves, e.push(o) } return e } function i(t, e) { for (var n = e.length, i = !1, r = n - 1, o = 0; o < n; r = o++) { var a = e[r] , s = e[o] , c = s.x - a.x , l = s.y - a.y; if (Math.abs(l) > Number.EPSILON) { if (l < 0 && (a = e[o], c = -c, s = e[r], l = -l), t.y < a.y || t.y > s.y) continue; if (t.y === a.y) { if (t.x === a.x) return !0 } else { var u = l * (t.x - a.x) - c * (t.y - a.y); if (0 === u) return !0; if (u < 0) continue; i = !i } } else { if (t.y !== a.y) continue; if (s.x <= t.x && t.x <= a.x || a.x <= t.x && t.x <= s.x) return !0 } } return i } var r = Il.isClockWise , o = this.subPaths; if (0 === o.length) return []; if (!0 === e) return n(o); var a, s, c, l = []; if (1 === o.length) return s = o[0], (c = new ld).curves = s.curves, l.push(c), l; var u = !r(o[0].getPoints()); u = t ? !u : u; var d, p, h = [], f = [], m = [], g = 0; f[g] = void 0, m[g] = []; for (var v = 0, y = o.length; v < y; v++) a = r(d = (s = o[v]).getPoints()), (a = t ? !a : a) ? (!u && f[g] && g++, f[g] = { s: new ld, p: d }, f[g].s.curves = s.curves, u && g++, m[g] = []) : m[g].push({ h: s, p: d[0] }); if (!f[0]) return n(o); if (f.length > 1) { for (var b = !1, w = [], S = 0, x = f.length; S < x; S++) h[S] = []; for (S = 0, x = f.length; S < x; S++) for (var M = m[S], E = 0; E < M.length; E++) { for (var C = M[E], A = !0, T = 0; T < f.length; T++) i(C.p, f[T].p) && (S !== T && w.push({ froms: S, tos: T, hole: E }), A ? (A = !1, h[T].push(C)) : b = !0); A && h[S].push(C) } w.length > 0 && (b || (m = h)) } v = 0; for (var O = f.length; v < O; v++) { c = f[v].s, l.push(c); for (var _ = 0, P = (p = m[v]).length; _ < P; _++) c.holes.push(p[_].h) } return l } }), Object.assign(Ld.prototype, { isFont: !0, generateShapes: function(t, e) { void 0 === e && (e = 100); for (var n = [], i = function(t, e, n) { for (var i = Array.from ? Array.from(t) : String(t).split(""), r = e / n.resolution, o = (n.boundingBox.yMax - n.boundingBox.yMin + n.underlineThickness) * r, a = [], s = 0, c = 0, l = 0; l < i.length; l++) { var u = i[l]; if ("\n" === u) s = 0, c -= o; else { var d = Nd(u, r, s, c, n); s += d.offsetX, a.push(d.path) } } return a }(t, e, this.data), r = 0, o = i.length; r < o; r++) Array.prototype.push.apply(n, i[r].toShapes()); return n } }), jd.prototype = Object.assign(Object.create(ku.prototype), { constructor: jd, load: function(t, e, n, i) { var r = this , o = new Ru(this.manager); o.setPath(this.path), o.load(t, (function(t) { var n; try { n = JSON.parse(t) } catch (e) { console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."), n = JSON.parse(t.substring(65, t.length - 2)) } var i = r.parse(n); e && e(i) } ), n, i) }, parse: function(t) { return new Ld(t) } }); var Vd = { getContext: function() { return void 0 === _d && (_d = new (window.AudioContext || window.webkitAudioContext)), _d }, setContext: function(t) { _d = t } }; function Fd(t) { ku.call(this, t) } function Ud() { this.coefficients = []; for (var t = 0; t < 9; t++) this.coefficients.push(new si) } function Bd(t, e) { ud.call(this, void 0, e), this.sh = void 0 !== t ? t : new Ud } function zd(t, e, n) { Bd.call(this, void 0, n); var i = (new Er).set(t) , r = (new Er).set(e) , o = new si(i.r,i.g,i.b) , a = new si(r.r,r.g,r.b) , s = Math.sqrt(Math.PI) , c = s * Math.sqrt(.75); this.sh.coefficients[0].copy(o).add(a).multiplyScalar(s), this.sh.coefficients[1].copy(o).sub(a).multiplyScalar(c) } function Gd(t, e) { Bd.call(this, void 0, e); var n = (new Er).set(t); this.sh.coefficients[0].set(n.r, n.g, n.b).multiplyScalar(2 * Math.sqrt(Math.PI)) } Fd.prototype = Object.assign(Object.create(ku.prototype), { constructor: Fd, load: function(t, e, n, i) { var r = new Ru(this.manager); r.setResponseType("arraybuffer"), r.setPath(this.path), r.load(t, (function(t) { var n = t.slice(0); Vd.getContext().decodeAudioData(n, (function(t) { e(t) } )) } ), n, i) } }), Object.assign(Ud.prototype, { isSphericalHarmonics3: !0, set: function(t) { for (var e = 0; e < 9; e++) this.coefficients[e].copy(t[e]); return this }, zero: function() { for (var t = 0; t < 9; t++) this.coefficients[t].set(0, 0, 0); return this }, getAt: function(t, e) { var n = t.x , i = t.y , r = t.z , o = this.coefficients; return e.copy(o[0]).multiplyScalar(.282095), e.addScaledVector(o[1], .488603 * i), e.addScaledVector(o[2], .488603 * r), e.addScaledVector(o[3], .488603 * n), e.addScaledVector(o[4], n * i * 1.092548), e.addScaledVector(o[5], i * r * 1.092548), e.addScaledVector(o[6], .315392 * (3 * r * r - 1)), e.addScaledVector(o[7], n * r * 1.092548), e.addScaledVector(o[8], .546274 * (n * n - i * i)), e }, getIrradianceAt: function(t, e) { var n = t.x , i = t.y , r = t.z , o = this.coefficients; return e.copy(o[0]).multiplyScalar(.886227), e.addScaledVector(o[1], 1.023328 * i), e.addScaledVector(o[2], 1.023328 * r), e.addScaledVector(o[3], 1.023328 * n), e.addScaledVector(o[4], .858086 * n * i), e.addScaledVector(o[5], .858086 * i * r), e.addScaledVector(o[6], .743125 * r * r - .247708), e.addScaledVector(o[7], .858086 * n * r), e.addScaledVector(o[8], .429043 * (n * n - i * i)), e }, add: function(t) { for (var e = 0; e < 9; e++) this.coefficients[e].add(t.coefficients[e]); return this }, addScaledSH: function(t, e) { for (var n = 0; n < 9; n++) this.coefficients[n].addScaledVector(t.coefficients[n], e); return this }, scale: function(t) { for (var e = 0; e < 9; e++) this.coefficients[e].multiplyScalar(t); return this }, lerp: function(t, e) { for (var n = 0; n < 9; n++) this.coefficients[n].lerp(t.coefficients[n], e); return this }, equals: function(t) { for (var e = 0; e < 9; e++) if (!this.coefficients[e].equals(t.coefficients[e])) return !1; return !0 }, copy: function(t) { return this.set(t.coefficients) }, clone: function() { return (new this.constructor).copy(this) }, fromArray: function(t, e) { void 0 === e && (e = 0); for (var n = this.coefficients, i = 0; i < 9; i++) n[i].fromArray(t, e + 3 * i); return this }, toArray: function(t, e) { void 0 === t && (t = []), void 0 === e && (e = 0); for (var n = this.coefficients, i = 0; i < 9; i++) n[i].toArray(t, e + 3 * i); return t } }), Object.assign(Ud, { getBasisAt: function(t, e) { var n = t.x , i = t.y , r = t.z; e[0] = .282095, e[1] = .488603 * i, e[2] = .488603 * r, e[3] = .488603 * n, e[4] = 1.092548 * n * i, e[5] = 1.092548 * i * r, e[6] = .315392 * (3 * r * r - 1), e[7] = 1.092548 * n * r, e[8] = .546274 * (n * n - i * i) } }), Bd.prototype = Object.assign(Object.create(ud.prototype), { constructor: Bd, isLightProbe: !0, copy: function(t) { return ud.prototype.copy.call(this, t), this.sh.copy(t.sh), this.intensity = t.intensity, this }, toJSON: function(t) { return ud.prototype.toJSON.call(this, t) } }), zd.prototype = Object.assign(Object.create(Bd.prototype), { constructor: zd, isHemisphereLightProbe: !0, copy: function(t) { return Bd.prototype.copy.call(this, t), this }, toJSON: function(t) { return Bd.prototype.toJSON.call(this, t) } }), Gd.prototype = Object.assign(Object.create(Bd.prototype), { constructor: Gd, isAmbientLightProbe: !0, copy: function(t) { return Bd.prototype.copy.call(this, t), this }, toJSON: function(t) { return Bd.prototype.toJSON.call(this, t) } }); var Hd = new mi , Wd = new mi; function qd() { this.type = "StereoCamera", this.aspect = 1, this.eyeSep = .064, this.cameraL = new ko, this.cameraL.layers.enable(1), this.cameraL.matrixAutoUpdate = !1, this.cameraR = new ko, this.cameraR.layers.enable(2), this.cameraR.matrixAutoUpdate = !1, this._cache = { focus: null, fov: null, aspect: null, near: null, far: null, zoom: null, eyeSep: null } } function Xd(t) { this.autoStart = void 0 === t || t, this.startTime = 0, this.oldTime = 0, this.elapsedTime = 0, this.running = !1 } Object.assign(qd.prototype, { update: function(t) { var e = this._cache; if (e.focus !== t.focus || e.fov !== t.fov || e.aspect !== t.aspect * this.aspect || e.near !== t.near || e.far !== t.far || e.zoom !== t.zoom || e.eyeSep !== this.eyeSep) { e.focus = t.focus, e.fov = t.fov, e.aspect = t.aspect * this.aspect, e.near = t.near, e.far = t.far, e.zoom = t.zoom, e.eyeSep = this.eyeSep; var n, i, r = t.projectionMatrix.clone(), o = e.eyeSep / 2, a = o * e.near / e.focus, s = e.near * Math.tan(Kn.DEG2RAD * e.fov * .5) / e.zoom; Wd.elements[12] = -o, Hd.elements[12] = o, n = -s * e.aspect + a, i = s * e.aspect + a, r.elements[0] = 2 * e.near / (i - n), r.elements[8] = (i + n) / (i - n), this.cameraL.projectionMatrix.copy(r), n = -s * e.aspect - a, i = s * e.aspect - a, r.elements[0] = 2 * e.near / (i - n), r.elements[8] = (i + n) / (i - n), this.cameraR.projectionMatrix.copy(r) } this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(Wd), this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(Hd) } }), Object.assign(Xd.prototype, { start: function() { this.startTime = ("undefined" == typeof performance ? Date : performance).now(), this.oldTime = this.startTime, this.elapsedTime = 0, this.running = !0 }, stop: function() { this.getElapsedTime(), this.running = !1, this.autoStart = !1 }, getElapsedTime: function() { return this.getDelta(), this.elapsedTime }, getDelta: function() { var t = 0; if (this.autoStart && !this.running) return this.start(), 0; if (this.running) { var e = ("undefined" == typeof performance ? Date : performance).now(); t = (e - this.oldTime) / 1e3, this.oldTime = e, this.elapsedTime += t } return t } }); var Yd = new si , Kd = new ri , Zd = new si , Jd = new si; function Qd() { Di.call(this), this.type = "AudioListener", this.context = Vd.getContext(), this.gain = this.context.createGain(), this.gain.connect(this.context.destination), this.filter = null, this.timeDelta = 0, this._clock = new Xd } function $d(t) { Di.call(this), this.type = "Audio", this.listener = t, this.context = t.context, this.gain = this.context.createGain(), this.gain.connect(t.getInput()), this.autoplay = !1, this.buffer = null, this.detune = 0, this.loop = !1, this.loopStart = 0, this.loopEnd = 0, this.offset = 0, this.duration = void 0, this.playbackRate = 1, this.isPlaying = !1, this.hasPlaybackControl = !0, this.sourceType = "empty", this._startedAt = 0, this._pausedAt = 0, this.filters = [] } Qd.prototype = Object.assign(Object.create(Di.prototype), { constructor: Qd, getInput: function() { return this.gain }, removeFilter: function() { return null !== this.filter && (this.gain.disconnect(this.filter), this.filter.disconnect(this.context.destination), this.gain.connect(this.context.destination), this.filter = null), this }, getFilter: function() { return this.filter }, setFilter: function(t) { return null !== this.filter ? (this.gain.disconnect(this.filter), this.filter.disconnect(this.context.destination)) : this.gain.disconnect(this.context.destination), this.filter = t, this.gain.connect(this.filter), this.filter.connect(this.context.destination), this }, getMasterVolume: function() { return this.gain.gain.value }, setMasterVolume: function(t) { return this.gain.gain.setTargetAtTime(t, this.context.currentTime, .01), this }, updateMatrixWorld: function(t) { Di.prototype.updateMatrixWorld.call(this, t); var e = this.context.listener , n = this.up; if (this.timeDelta = this._clock.getDelta(), this.matrixWorld.decompose(Yd, Kd, Zd), Jd.set(0, 0, -1).applyQuaternion(Kd), e.positionX) { var i = this.context.currentTime + this.timeDelta; e.positionX.linearRampToValueAtTime(Yd.x, i), e.positionY.linearRampToValueAtTime(Yd.y, i), e.positionZ.linearRampToValueAtTime(Yd.z, i), e.forwardX.linearRampToValueAtTime(Jd.x, i), e.forwardY.linearRampToValueAtTime(Jd.y, i), e.forwardZ.linearRampToValueAtTime(Jd.z, i), e.upX.linearRampToValueAtTime(n.x, i), e.upY.linearRampToValueAtTime(n.y, i), e.upZ.linearRampToValueAtTime(n.z, i) } else e.setPosition(Yd.x, Yd.y, Yd.z), e.setOrientation(Jd.x, Jd.y, Jd.z, n.x, n.y, n.z) } }), $d.prototype = Object.assign(Object.create(Di.prototype), { constructor: $d, getOutput: function() { return this.gain }, setNodeSource: function(t) { return this.hasPlaybackControl = !1, this.sourceType = "audioNode", this.source = t, this.connect(), this }, setMediaElementSource: function(t) { return this.hasPlaybackControl = !1, this.sourceType = "mediaNode", this.source = this.context.createMediaElementSource(t), this.connect(), this }, setMediaStreamSource: function(t) { return this.hasPlaybackControl = !1, this.sourceType = "mediaStreamNode", this.source = this.context.createMediaStreamSource(t), this.connect(), this }, setBuffer: function(t) { return this.buffer = t, this.sourceType = "buffer", this.autoplay && this.play(), this }, play: function(t) { if (void 0 === t && (t = 0), !0 !== this.isPlaying) { if (!1 !== this.hasPlaybackControl) { this._startedAt = this.context.currentTime + t; var e = this.context.createBufferSource(); return e.buffer = this.buffer, e.loop = this.loop, e.loopStart = this.loopStart, e.loopEnd = this.loopEnd, e.onended = this.onEnded.bind(this), e.start(this._startedAt, this._pausedAt + this.offset, this.duration), this.isPlaying = !0, this.source = e, this.setDetune(this.detune), this.setPlaybackRate(this.playbackRate), this.connect() } console.warn("THREE.Audio: this Audio has no playback control.") } else console.warn("THREE.Audio: Audio is already playing.") }, pause: function() { if (!1 !== this.hasPlaybackControl) return !0 === this.isPlaying && (this._pausedAt += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate, this.source.stop(), this.source.onended = null, this.isPlaying = !1), this; console.warn("THREE.Audio: this Audio has no playback control.") }, stop: function() { if (!1 !== this.hasPlaybackControl) return this._pausedAt = 0, this.source.stop(), this.source.onended = null, this.isPlaying = !1, this; console.warn("THREE.Audio: this Audio has no playback control.") }, connect: function() { if (this.filters.length > 0) { this.source.connect(this.filters[0]); for (var t = 1, e = this.filters.length; t < e; t++) this.filters[t - 1].connect(this.filters[t]); this.filters[this.filters.length - 1].connect(this.getOutput()) } else this.source.connect(this.getOutput()); return this }, disconnect: function() { if (this.filters.length > 0) { this.source.disconnect(this.filters[0]); for (var t = 1, e = this.filters.length; t < e; t++) this.filters[t - 1].disconnect(this.filters[t]); this.filters[this.filters.length - 1].disconnect(this.getOutput()) } else this.source.disconnect(this.getOutput()); return this }, getFilters: function() { return this.filters }, setFilters: function(t) { return t || (t = []), !0 === this.isPlaying ? (this.disconnect(), this.filters = t, this.connect()) : this.filters = t, this }, setDetune: function(t) { if (this.detune = t, void 0 !== this.source.detune) return !0 === this.isPlaying && this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, .01), this }, getDetune: function() { return this.detune }, getFilter: function() { return this.getFilters()[0] }, setFilter: function(t) { return this.setFilters(t ? [t] : []) }, setPlaybackRate: function(t) { if (!1 !== this.hasPlaybackControl) return this.playbackRate = t, !0 === this.isPlaying && this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, .01), this; console.warn("THREE.Audio: this Audio has no playback control.") }, getPlaybackRate: function() { return this.playbackRate }, onEnded: function() { this.isPlaying = !1 }, getLoop: function() { return !1 === this.hasPlaybackControl ? (console.warn("THREE.Audio: this Audio has no playback control."), !1) : this.loop }, setLoop: function(t) { if (!1 !== this.hasPlaybackControl) return this.loop = t, !0 === this.isPlaying && (this.source.loop = this.loop), this; console.warn("THREE.Audio: this Audio has no playback control.") }, setLoopStart: function(t) { return this.loopStart = t, this }, setLoopEnd: function(t) { return this.loopEnd = t, this }, getVolume: function() { return this.gain.gain.value }, setVolume: function(t) { return this.gain.gain.setTargetAtTime(t, this.context.currentTime, .01), this } }); var tp = new si , ep = new ri , np = new si , ip = new si; function rp(t) { $d.call(this, t), this.panner = this.context.createPanner(), this.panner.panningModel = "HRTF", this.panner.connect(this.gain) } function op(t, e) { this.analyser = t.context.createAnalyser(), this.analyser.fftSize = void 0 !== e ? e : 2048, this.data = new Uint8Array(this.analyser.frequencyBinCount), t.getOutput().connect(this.analyser) } function ap(t, e, n) { this.binding = t, this.valueSize = n; var i, r = Float64Array; switch (e) { case "quaternion": i = this._slerp; break; case "string": case "bool": r = Array, i = this._select; break; default: i = this._lerp } this.buffer = new r(4 * n), this._mixBufferRegion = i, this.cumulativeWeight = 0, this.useCount = 0, this.referenceCount = 0 } rp.prototype = Object.assign(Object.create($d.prototype), { constructor: rp, getOutput: function() { return this.panner }, getRefDistance: function() { return this.panner.refDistance }, setRefDistance: function(t) { return this.panner.refDistance = t, this }, getRolloffFactor: function() { return this.panner.rolloffFactor }, setRolloffFactor: function(t) { return this.panner.rolloffFactor = t, this }, getDistanceModel: function() { return this.panner.distanceModel }, setDistanceModel: function(t) { return this.panner.distanceModel = t, this }, getMaxDistance: function() { return this.panner.maxDistance }, setMaxDistance: function(t) { return this.panner.maxDistance = t, this }, setDirectionalCone: function(t, e, n) { return this.panner.coneInnerAngle = t, this.panner.coneOuterAngle = e, this.panner.coneOuterGain = n, this }, updateMatrixWorld: function(t) { if (Di.prototype.updateMatrixWorld.call(this, t), !0 !== this.hasPlaybackControl || !1 !== this.isPlaying) { this.matrixWorld.decompose(tp, ep, np), ip.set(0, 0, 1).applyQuaternion(ep); var e = this.panner; if (e.positionX) { var n = this.context.currentTime + this.listener.timeDelta; e.positionX.linearRampToValueAtTime(tp.x, n), e.positionY.linearRampToValueAtTime(tp.y, n), e.positionZ.linearRampToValueAtTime(tp.z, n), e.orientationX.linearRampToValueAtTime(ip.x, n), e.orientationY.linearRampToValueAtTime(ip.y, n), e.orientationZ.linearRampToValueAtTime(ip.z, n) } else e.setPosition(tp.x, tp.y, tp.z), e.setOrientation(ip.x, ip.y, ip.z) } } }), Object.assign(op.prototype, { getFrequencyData: function() { return this.analyser.getByteFrequencyData(this.data), this.data }, getAverageFrequency: function() { for (var t = 0, e = this.getFrequencyData(), n = 0; n < e.length; n++) t += e[n]; return t / e.length } }), Object.assign(ap.prototype, { accumulate: function(t, e) { var n = this.buffer , i = this.valueSize , r = t * i + i , o = this.cumulativeWeight; if (0 === o) { for (var a = 0; a !== i; ++a) n[r + a] = n[a]; o = e } else { var s = e / (o += e); this._mixBufferRegion(n, r, 0, s, i) } this.cumulativeWeight = o }, apply: function(t) { var e = this.valueSize , n = this.buffer , i = t * e + e , r = this.cumulativeWeight , o = this.binding; if (this.cumulativeWeight = 0, r < 1) { var a = 3 * e; this._mixBufferRegion(n, i, a, 1 - r, e) } for (var s = e, c = e + e; s !== c; ++s) if (n[s] !== n[s + e]) { o.setValue(n, i); break } }, saveOriginalState: function() { var t = this.binding , e = this.buffer , n = this.valueSize , i = 3 * n; t.getValue(e, i); for (var r = n, o = i; r !== o; ++r) e[r] = e[i + r % n]; this.cumulativeWeight = 0 }, restoreOriginalState: function() { var t = 3 * this.valueSize; this.binding.setValue(this.buffer, t) }, _select: function(t, e, n, i, r) { if (i >= .5) for (var o = 0; o !== r; ++o) t[e + o] = t[n + o] }, _slerp: function(t, e, n, i) { ri.slerpFlat(t, e, t, e, t, n, i) }, _lerp: function(t, e, n, i, r) { for (var o = 1 - i, a = 0; a !== r; ++a) { var s = e + a; t[s] = t[s] * o + t[n + a] * i } } }); var sp = new RegExp("[\\[\\]\\.:\\/]","g") , cp = "[^" + "\\[\\]\\.:\\/".replace("\\.", "") + "]" , lp = /((?:WC+[\/:])*)/.source.replace("WC", "[^\\[\\]\\.:\\/]") , up = /(WCOD+)?/.source.replace("WCOD", cp) , dp = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC", "[^\\[\\]\\.:\\/]") , pp = /\.(WC+)(?:\[(.+)\])?/.source.replace("WC", "[^\\[\\]\\.:\\/]") , hp = new RegExp("^" + lp + up + dp + pp + "$") , fp = ["material", "materials", "bones"]; function mp(t, e, n) { var i = n || gp.parseTrackName(e); this._targetGroup = t, this._bindings = t.subscribe_(e, i) } function gp(t, e, n) { this.path = e, this.parsedPath = n || gp.parseTrackName(e), this.node = gp.findNode(t, this.parsedPath.nodeName) || t, this.rootNode = t } function vp() { this.uuid = Kn.generateUUID(), this._objects = Array.prototype.slice.call(arguments), this.nCachedObjects_ = 0; var t = {}; this._indicesByUUID = t; for (var e = 0, n = arguments.length; e !== n; ++e) t[arguments[e].uuid] = e; this._paths = [], this._parsedPaths = [], this._bindings = [], this._bindingsIndicesByPath = {}; var i = this; this.stats = { objects: { get total() { return i._objects.length }, get inUse() { return this.total - i.nCachedObjects_ } }, get bindingsPerObject() { return i._bindings.length } } } function yp(t, e, n) { this._mixer = t, this._clip = e, this._localRoot = n || null; for (var i = e.tracks, r = i.length, o = new Array(r), a = { endingStart: en, endingEnd: en }, s = 0; s !== r; ++s) { var c = i[s].createInterpolant(null); o[s] = c, c.settings = a } this._interpolantSettings = a, this._interpolants = o, this._propertyBindings = new Array(r), this._cacheIndex = null, this._byClipCacheIndex = null, this._timeScaleInterpolant = null, this._weightInterpolant = null, this.loop = Ze, 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 } function bp(t) { this._root = t, this._initMemoryManager(), this._accuIndex = 0, this.time = 0, this.timeScale = 1 } function wp(t) { "string" == typeof t && (console.warn("THREE.Uniform: Type parameter is no longer needed."), t = arguments[1]), this.value = t } function Sp(t, e, n) { Hs.call(this, t, e), this.meshPerAttribute = n || 1 } function xp(t, e, n, i) { this.ray = new or(t,e), this.near = n || 0, this.far = i || 1 / 0, this.camera = null, this.layers = new bi, this.params = { Mesh: {}, Line: { threshold: 1 }, LOD: {}, Points: { threshold: 1 }, Sprite: {} }, Object.defineProperties(this.params, { PointCloud: { get: function() { return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."), this.Points } } }) } function Mp(t, e) { return t.distance - e.distance } function Ep(t, e, n, i) { if (t.layers.test(e.layers) && t.raycast(e, n), !0 === i) for (var r = t.children, o = 0, a = r.length; o < a; o++) Ep(r[o], e, n, !0) } function Cp(t, e, n) { return this.radius = void 0 !== t ? t : 1, this.phi = void 0 !== e ? e : 0, this.theta = void 0 !== n ? n : 0, this } function Ap(t, e, n) { return this.radius = void 0 !== t ? t : 1, this.theta = void 0 !== e ? e : 0, this.y = void 0 !== n ? n : 0, this } Object.assign(mp.prototype, { getValue: function(t, e) { this.bind(); var n = this._targetGroup.nCachedObjects_ , i = this._bindings[n]; void 0 !== i && i.getValue(t, e) }, setValue: function(t, e) { for (var n = this._bindings, i = this._targetGroup.nCachedObjects_, r = n.length; i !== r; ++i) n[i].setValue(t, e) }, bind: function() { for (var t = this._bindings, e = this._targetGroup.nCachedObjects_, n = t.length; e !== n; ++e) t[e].bind() }, unbind: function() { for (var t = this._bindings, e = this._targetGroup.nCachedObjects_, n = t.length; e !== n; ++e) t[e].unbind() } }), Object.assign(gp, { Composite: mp, create: function(t, e, n) { return t && t.isAnimationObjectGroup ? new gp.Composite(t,e,n) : new gp(t,e,n) }, sanitizeNodeName: function(t) { return t.replace(/\s/g, "_").replace(sp, "") }, parseTrackName: function(t) { var e = hp.exec(t); if (!e) throw new Error("PropertyBinding: Cannot parse trackName: " + t); var n = { nodeName: e[2], objectName: e[3], objectIndex: e[4], propertyName: e[5], propertyIndex: e[6] } , i = n.nodeName && n.nodeName.lastIndexOf("."); if (void 0 !== i && -1 !== i) { var r = n.nodeName.substring(i + 1); -1 !== fp.indexOf(r) && (n.nodeName = n.nodeName.substring(0, i), n.objectName = r) } if (null === n.propertyName || 0 === n.propertyName.length) throw new Error("PropertyBinding: can not parse propertyName from trackName: " + t); return n }, findNode: function(t, e) { if (!e || "" === e || "." === e || -1 === e || e === t.name || e === t.uuid) return t; if (t.skeleton) { var n = t.skeleton.getBoneByName(e); if (void 0 !== n) return n } if (t.children) { var i = function t(n) { for (var i = 0; i < n.length; i++) { var r = n[i]; if (r.name === e || r.uuid === e) return r; var o = t(r.children); if (o) return o } return null }(t.children); if (i) return i } return null } }), Object.assign(gp.prototype, { _getValue_unavailable: function() {}, _setValue_unavailable: function() {}, BindingType: { Direct: 0, EntireArray: 1, ArrayElement: 2, HasFromToArray: 3 }, Versioning: { None: 0, NeedsUpdate: 1, MatrixWorldNeedsUpdate: 2 }, GetterByBindingType: [function(t, e) { t[e] = this.node[this.propertyName] } , function(t, e) { for (var n = this.resolvedProperty, i = 0, r = n.length; i !== r; ++i) t[e++] = n[i] } , function(t, e) { t[e] = this.resolvedProperty[this.propertyIndex] } , function(t, e) { this.resolvedProperty.toArray(t, e) } ], SetterByBindingTypeAndVersioning: [[function(t, e) { this.targetObject[this.propertyName] = t[e] } , function(t, e) { this.targetObject[this.propertyName] = t[e], this.targetObject.needsUpdate = !0 } , function(t, e) { this.targetObject[this.propertyName] = t[e], this.targetObject.matrixWorldNeedsUpdate = !0 } ], [function(t, e) { for (var n = this.resolvedProperty, i = 0, r = n.length; i !== r; ++i) n[i] = t[e++] } , function(t, e) { for (var n = this.resolvedProperty, i = 0, r = n.length; i !== r; ++i) n[i] = t[e++]; this.targetObject.needsUpdate = !0 } , function(t, e) { for (var n = this.resolvedProperty, i = 0, r = n.length; i !== r; ++i) n[i] = t[e++]; this.targetObject.matrixWorldNeedsUpdate = !0 } ], [function(t, e) { this.resolvedProperty[this.propertyIndex] = t[e] } , function(t, e) { this.resolvedProperty[this.propertyIndex] = t[e], this.targetObject.needsUpdate = !0 } , function(t, e) { this.resolvedProperty[this.propertyIndex] = t[e], this.targetObject.matrixWorldNeedsUpdate = !0 } ], [function(t, e) { this.resolvedProperty.fromArray(t, e) } , function(t, e) { this.resolvedProperty.fromArray(t, e), this.targetObject.needsUpdate = !0 } , function(t, e) { this.resolvedProperty.fromArray(t, e), this.targetObject.matrixWorldNeedsUpdate = !0 } ]], getValue: function(t, e) { this.bind(), this.getValue(t, e) }, setValue: function(t, e) { this.bind(), this.setValue(t, e) }, bind: function() { var t = this.node , e = this.parsedPath , n = e.objectName , i = e.propertyName , r = e.propertyIndex; if (t || (t = gp.findNode(this.rootNode, e.nodeName) || this.rootNode, this.node = t), this.getValue = this._getValue_unavailable, this.setValue = this._setValue_unavailable, t) { if (n) { var o = e.objectIndex; switch (n) { case "materials": if (!t.material) return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.", this); if (!t.material.materials) return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.", this); t = t.material.materials; break; case "bones": if (!t.skeleton) return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.", this); t = t.skeleton.bones; for (var a = 0; a < t.length; a++) if (t[a].name === o) { o = a; break } break; default: if (void 0 === t[n]) return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.", this); t = t[n] } if (void 0 !== o) { if (void 0 === t[o]) return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.", this, t); t = t[o] } } var s = t[i]; if (void 0 !== s) { var c = this.Versioning.None; this.targetObject = t, void 0 !== t.needsUpdate ? c = this.Versioning.NeedsUpdate : void 0 !== t.matrixWorldNeedsUpdate && (c = this.Versioning.MatrixWorldNeedsUpdate); var l = this.BindingType.Direct; if (void 0 !== r) { if ("morphTargetInfluences" === i) { if (!t.geometry) return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.", this); if (t.geometry.isBufferGeometry) { if (!t.geometry.morphAttributes) return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.", this); for (a = 0; a < this.node.geometry.morphAttributes.position.length; a++) if (t.geometry.morphAttributes.position[a].name === r) { r = a; break } } else { if (!t.geometry.morphTargets) return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.", this); for (a = 0; a < this.node.geometry.morphTargets.length; a++) if (t.geometry.morphTargets[a].name === r) { r = a; break } } } l = this.BindingType.ArrayElement, this.resolvedProperty = s, this.propertyIndex = r } else void 0 !== s.fromArray && void 0 !== s.toArray ? (l = this.BindingType.HasFromToArray, this.resolvedProperty = s) : Array.isArray(s) ? (l = this.BindingType.EntireArray, this.resolvedProperty = s) : this.propertyName = i; this.getValue = this.GetterByBindingType[l], this.setValue = this.SetterByBindingTypeAndVersioning[l][c] } else { var u = e.nodeName; console.error("THREE.PropertyBinding: Trying to update property for track: " + u + "." + i + " but it wasn't found.", t) } } else console.error("THREE.PropertyBinding: Trying to update node for track: " + this.path + " but it wasn't found.") }, unbind: function() { this.node = null, this.getValue = this._getValue_unbound, this.setValue = this._setValue_unbound } }), Object.assign(gp.prototype, { _getValue_unbound: gp.prototype.getValue, _setValue_unbound: gp.prototype.setValue }), Object.assign(vp.prototype, { isAnimationObjectGroup: !0, add: function() { for (var t = this._objects, e = t.length, n = this.nCachedObjects_, i = this._indicesByUUID, r = this._paths, o = this._parsedPaths, a = this._bindings, s = a.length, c = void 0, l = 0, u = arguments.length; l !== u; ++l) { var d = arguments[l] , p = d.uuid , h = i[p]; if (void 0 === h) { h = e++, i[p] = h, t.push(d); for (var f = 0, m = s; f !== m; ++f) a[f].push(new gp(d,r[f],o[f])) } else if (h < n) { c = t[h]; var g = --n , v = t[g]; i[v.uuid] = h, t[h] = v, i[p] = g, t[g] = d; for (f = 0, m = s; f !== m; ++f) { var y = a[f] , b = y[g] , w = y[h]; y[h] = b, void 0 === w && (w = new gp(d,r[f],o[f])), y[g] = w } } else t[h] !== c && console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.") } this.nCachedObjects_ = n }, remove: function() { for (var t = this._objects, e = this.nCachedObjects_, n = this._indicesByUUID, i = this._bindings, r = i.length, o = 0, a = arguments.length; o !== a; ++o) { var s = arguments[o] , c = s.uuid , l = n[c]; if (void 0 !== l && l >= e) { var u = e++ , d = t[u]; n[d.uuid] = l, t[l] = d, n[c] = u, t[u] = s; for (var p = 0, h = r; p !== h; ++p) { var f = i[p] , m = f[u] , g = f[l]; f[l] = m, f[u] = g } } } this.nCachedObjects_ = e }, uncache: function() { for (var t = this._objects, e = t.length, n = this.nCachedObjects_, i = this._indicesByUUID, r = this._bindings, o = r.length, a = 0, s = arguments.length; a !== s; ++a) { var c = arguments[a] , l = c.uuid , u = i[l]; if (void 0 !== u) if (delete i[l], u < n) { var d = --n , p = t[d] , h = t[y = --e]; i[p.uuid] = u, t[u] = p, i[h.uuid] = d, t[d] = h, t.pop(); for (var f = 0, m = o; f !== m; ++f) { var g = (b = r[f])[d] , v = b[y]; b[u] = g, b[d] = v, b.pop() } } else { var y; i[(h = t[y = --e]).uuid] = u, t[u] = h, t.pop(); for (f = 0, m = o; f !== m; ++f) { var b; (b = r[f])[u] = b[y], b.pop() } } } this.nCachedObjects_ = n }, subscribe_: function(t, e) { var n = this._bindingsIndicesByPath , i = n[t] , r = this._bindings; if (void 0 !== i) return r[i]; var o = this._paths , a = this._parsedPaths , s = this._objects , c = s.length , l = this.nCachedObjects_ , u = new Array(c); i = r.length, n[t] = i, o.push(t), a.push(e), r.push(u); for (var d = l, p = s.length; d !== p; ++d) { var h = s[d]; u[d] = new gp(h,t,e) } return u }, unsubscribe_: function(t) { var e = this._bindingsIndicesByPath , n = e[t]; if (void 0 !== n) { var i = this._paths , r = this._parsedPaths , o = this._bindings , a = o.length - 1 , s = o[a]; e[t[a]] = n, o[n] = s, o.pop(), r[n] = r[a], r.pop(), i[n] = i[a], i.pop() } } }), Object.assign(yp.prototype, { play: function() { return this._mixer._activateAction(this), this }, stop: function() { return this._mixer._deactivateAction(this), this.reset() }, reset: function() { return this.paused = !1, this.enabled = !0, this.time = 0, this._loopCount = -1, this._startTime = null, this.stopFading().stopWarping() }, isRunning: function() { return this.enabled && !this.paused && 0 !== this.timeScale && null === this._startTime && this._mixer._isActiveAction(this) }, isScheduled: function() { return this._mixer._isActiveAction(this) }, startAt: function(t) { return this._startTime = t, this }, setLoop: function(t, e) { return this.loop = t, this.repetitions = e, this }, setEffectiveWeight: function(t) { return this.weight = t, this._effectiveWeight = this.enabled ? t : 0, this.stopFading() }, getEffectiveWeight: function() { return this._effectiveWeight }, fadeIn: function(t) { return this._scheduleFading(t, 0, 1) }, fadeOut: function(t) { return this._scheduleFading(t, 1, 0) }, crossFadeFrom: function(t, e, n) { if (t.fadeOut(e), this.fadeIn(e), n) { var i = this._clip.duration , r = t._clip.duration , o = r / i , a = i / r; t.warp(1, o, e), this.warp(a, 1, e) } return this }, crossFadeTo: function(t, e, n) { return t.crossFadeFrom(this, e, n) }, stopFading: function() { var t = this._weightInterpolant; return null !== t && (this._weightInterpolant = null, this._mixer._takeBackControlInterpolant(t)), this }, setEffectiveTimeScale: function(t) { return this.timeScale = t, this._effectiveTimeScale = this.paused ? 0 : t, this.stopWarping() }, getEffectiveTimeScale: function() { return this._effectiveTimeScale }, setDuration: function(t) { return this.timeScale = this._clip.duration / t, this.stopWarping() }, syncWith: function(t) { return this.time = t.time, this.timeScale = t.timeScale, this.stopWarping() }, halt: function(t) { return this.warp(this._effectiveTimeScale, 0, t) }, warp: function(t, e, n) { var i = this._mixer , r = i.time , o = this._timeScaleInterpolant , a = this.timeScale; null === o && (o = i._lendControlInterpolant(), this._timeScaleInterpolant = o); var s = o.parameterPositions , c = o.sampleValues; return s[0] = r, s[1] = r + n, c[0] = t / a, c[1] = e / a, this }, stopWarping: function() { var t = this._timeScaleInterpolant; return null !== t && (this._timeScaleInterpolant = null, this._mixer._takeBackControlInterpolant(t)), this }, getMixer: function() { return this._mixer }, getClip: function() { return this._clip }, getRoot: function() { return this._localRoot || this._mixer._root }, _update: function(t, e, n, i) { if (this.enabled) { var r = this._startTime; if (null !== r) { var o = (t - r) * n; if (o < 0 || 0 === n) return; this._startTime = null, e = n * o } e *= this._updateTimeScale(t); var a = this._updateTime(e) , s = this._updateWeight(t); if (s > 0) for (var c = this._interpolants, l = this._propertyBindings, u = 0, d = c.length; u !== d; ++u) c[u].evaluate(a), l[u].accumulate(i, s) } else this._updateWeight(t) }, _updateWeight: function(t) { var e = 0; if (this.enabled) { e = this.weight; var n = this._weightInterpolant; if (null !== n) { var i = n.evaluate(t)[0]; e *= i, t > n.parameterPositions[1] && (this.stopFading(), 0 === i && (this.enabled = !1)) } } return this._effectiveWeight = e, e }, _updateTimeScale: function(t) { var e = 0; if (!this.paused) { e = this.timeScale; var n = this._timeScaleInterpolant; if (null !== n) e *= n.evaluate(t)[0], t > n.parameterPositions[1] && (this.stopWarping(), 0 === e ? this.paused = !0 : this.timeScale = e) } return this._effectiveTimeScale = e, e }, _updateTime: function(t) { var e = this.time + t , n = this._clip.duration , i = this.loop , r = this._loopCount , o = i === Je; if (0 === t) return -1 === r ? e : o && 1 == (1 & r) ? n - e : e; if (i === Ke) { -1 === r && (this._loopCount = 0, this._setEndings(!0, !0, !1)); t: { if (e >= n) e = n; else { if (!(e < 0)) { this.time = e; break t } e = 0 } this.clampWhenFinished ? this.paused = !0 : this.enabled = !1, this.time = e, this._mixer.dispatchEvent({ type: "finished", action: this, direction: t < 0 ? -1 : 1 }) } } else { if (-1 === r && (t >= 0 ? (r = 0, this._setEndings(!0, 0 === this.repetitions, o)) : this._setEndings(0 === this.repetitions, !0, o)), e >= n || e < 0) { var a = Math.floor(e / n); e -= n * a, r += Math.abs(a); var s = this.repetitions - r; if (s <= 0) this.clampWhenFinished ? this.paused = !0 : this.enabled = !1, e = t > 0 ? n : 0, this.time = e, this._mixer.dispatchEvent({ type: "finished", action: this, direction: t > 0 ? 1 : -1 }); else { if (1 === s) { var c = t < 0; this._setEndings(c, !c, o) } else this._setEndings(!1, !1, o); this._loopCount = r, this.time = e, this._mixer.dispatchEvent({ type: "loop", action: this, loopDelta: a }) } } else this.time = e; if (o && 1 == (1 & r)) return n - e } return e }, _setEndings: function(t, e, n) { var i = this._interpolantSettings; n ? (i.endingStart = nn, i.endingEnd = nn) : (i.endingStart = t ? this.zeroSlopeAtStart ? nn : en : rn, i.endingEnd = e ? this.zeroSlopeAtEnd ? nn : en : rn) }, _scheduleFading: function(t, e, n) { var i = this._mixer , r = i.time , o = this._weightInterpolant; null === o && (o = i._lendControlInterpolant(), this._weightInterpolant = o); var a = o.parameterPositions , s = o.sampleValues; return a[0] = r, s[0] = e, a[1] = r + t, s[1] = n, this } }), bp.prototype = Object.assign(Object.create(Wn.prototype), { constructor: bp, _bindAction: function(t, e) { var n = t._localRoot || this._root , i = t._clip.tracks , r = i.length , o = t._propertyBindings , a = t._interpolants , s = n.uuid , c = this._bindingsByRootAndName , l = c[s]; void 0 === l && (l = {}, c[s] = l); for (var u = 0; u !== r; ++u) { var d = i[u] , p = d.name , h = l[p]; if (void 0 !== h) o[u] = h; else { if (void 0 !== (h = o[u])) { null === h._cacheIndex && (++h.referenceCount, this._addInactiveBinding(h, s, p)); continue } var f = e && e._propertyBindings[u].binding.parsedPath; ++(h = new ap(gp.create(n, p, f),d.ValueTypeName,d.getValueSize())).referenceCount, this._addInactiveBinding(h, s, p), o[u] = h } a[u].resultBuffer = h.buffer } }, _activateAction: function(t) { if (!this._isActiveAction(t)) { if (null === t._cacheIndex) { var e = (t._localRoot || this._root).uuid , n = t._clip.uuid , i = this._actionsByClip[n]; this._bindAction(t, i && i.knownActions[0]), this._addInactiveAction(t, n, e) } for (var r = t._propertyBindings, o = 0, a = r.length; o !== a; ++o) { var s = r[o]; 0 == s.useCount++ && (this._lendBinding(s), s.saveOriginalState()) } this._lendAction(t) } }, _deactivateAction: function(t) { if (this._isActiveAction(t)) { for (var e = t._propertyBindings, n = 0, i = e.length; n !== i; ++n) { var r = e[n]; 0 == --r.useCount && (r.restoreOriginalState(), this._takeBackBinding(r)) } this._takeBackAction(t) } }, _initMemoryManager: function() { this._actions = [], this._nActiveActions = 0, this._actionsByClip = {}, this._bindings = [], this._nActiveBindings = 0, this._bindingsByRootAndName = {}, this._controlInterpolants = [], this._nActiveControlInterpolants = 0; var t = this; this.stats = { actions: { get total() { return t._actions.length }, get inUse() { return t._nActiveActions } }, bindings: { get total() { return t._bindings.length }, get inUse() { return t._nActiveBindings } }, controlInterpolants: { get total() { return t._controlInterpolants.length }, get inUse() { return t._nActiveControlInterpolants } } } }, _isActiveAction: function(t) { var e = t._cacheIndex; return null !== e && e < this._nActiveActions }, _addInactiveAction: function(t, e, n) { var i = this._actions , r = this._actionsByClip , o = r[e]; if (void 0 === o) o = { knownActions: [t], actionByRoot: {} }, t._byClipCacheIndex = 0, r[e] = o; else { var a = o.knownActions; t._byClipCacheIndex = a.length, a.push(t) } t._cacheIndex = i.length, i.push(t), o.actionByRoot[n] = t }, _removeInactiveAction: function(t) { var e = this._actions , n = e[e.length - 1] , i = t._cacheIndex; n._cacheIndex = i, e[i] = n, e.pop(), t._cacheIndex = null; var r = t._clip.uuid , o = this._actionsByClip , a = o[r] , s = a.knownActions , c = s[s.length - 1] , l = t._byClipCacheIndex; c._byClipCacheIndex = l, s[l] = c, s.pop(), t._byClipCacheIndex = null, delete a.actionByRoot[(t._localRoot || this._root).uuid], 0 === s.length && delete o[r], this._removeInactiveBindingsForAction(t) }, _removeInactiveBindingsForAction: function(t) { for (var e = t._propertyBindings, n = 0, i = e.length; n !== i; ++n) { var r = e[n]; 0 == --r.referenceCount && this._removeInactiveBinding(r) } }, _lendAction: function(t) { var e = this._actions , n = t._cacheIndex , i = this._nActiveActions++ , r = e[i]; t._cacheIndex = i, e[i] = t, r._cacheIndex = n, e[n] = r }, _takeBackAction: function(t) { var e = this._actions , n = t._cacheIndex , i = --this._nActiveActions , r = e[i]; t._cacheIndex = i, e[i] = t, r._cacheIndex = n, e[n] = r }, _addInactiveBinding: function(t, e, n) { var i = this._bindingsByRootAndName , r = i[e] , o = this._bindings; void 0 === r && (r = {}, i[e] = r), r[n] = t, t._cacheIndex = o.length, o.push(t) }, _removeInactiveBinding: function(t) { var e = this._bindings , n = t.binding , i = n.rootNode.uuid , r = n.path , o = this._bindingsByRootAndName , a = o[i] , s = e[e.length - 1] , c = t._cacheIndex; s._cacheIndex = c, e[c] = s, e.pop(), delete a[r], 0 === Object.keys(a).length && delete o[i] }, _lendBinding: function(t) { var e = this._bindings , n = t._cacheIndex , i = this._nActiveBindings++ , r = e[i]; t._cacheIndex = i, e[i] = t, r._cacheIndex = n, e[n] = r }, _takeBackBinding: function(t) { var e = this._bindings , n = t._cacheIndex , i = --this._nActiveBindings , r = e[i]; t._cacheIndex = i, e[i] = t, r._cacheIndex = n, e[n] = r }, _lendControlInterpolant: function() { var t = this._controlInterpolants , e = this._nActiveControlInterpolants++ , n = t[e]; return void 0 === n && ((n = new vu(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer)).__cacheIndex = e, t[e] = n), n }, _takeBackControlInterpolant: function(t) { var e = this._controlInterpolants , n = t.__cacheIndex , i = --this._nActiveControlInterpolants , r = e[i]; t.__cacheIndex = i, e[i] = t, r.__cacheIndex = n, e[n] = r }, _controlInterpolantsResultBuffer: new Float32Array(1), clipAction: function(t, e) { var n = e || this._root , i = n.uuid , r = "string" == typeof t ? Tu.findByName(n, t) : t , o = null !== r ? r.uuid : t , a = this._actionsByClip[o] , s = null; if (void 0 !== a) { var c = a.actionByRoot[i]; if (void 0 !== c) return c; s = a.knownActions[0], null === r && (r = s._clip) } if (null === r) return null; var l = new yp(this,r,e); return this._bindAction(l, s), this._addInactiveAction(l, o, i), l }, existingAction: function(t, e) { var n = e || this._root , i = n.uuid , r = "string" == typeof t ? Tu.findByName(n, t) : t , o = r ? r.uuid : t , a = this._actionsByClip[o]; return void 0 !== a && a.actionByRoot[i] || null }, stopAllAction: function() { var t = this._actions , e = this._nActiveActions , n = this._bindings , i = this._nActiveBindings; this._nActiveActions = 0, this._nActiveBindings = 0; for (var r = 0; r !== e; ++r) t[r].reset(); for (r = 0; r !== i; ++r) n[r].useCount = 0; return this }, update: function(t) { t *= this.timeScale; for (var e = this._actions, n = this._nActiveActions, i = this.time += t, r = Math.sign(t), o = this._accuIndex ^= 1, a = 0; a !== n; ++a) { e[a]._update(i, t, r, o) } var s = this._bindings , c = this._nActiveBindings; for (a = 0; a !== c; ++a) s[a].apply(o); return this }, setTime: function(t) { this.time = 0; for (var e = 0; e < this._actions.length; e++) this._actions[e].time = 0; return this.update(t) }, getRoot: function() { return this._root }, uncacheClip: function(t) { var e = this._actions , n = t.uuid , i = this._actionsByClip , r = i[n]; if (void 0 !== r) { for (var o = r.knownActions, a = 0, s = o.length; a !== s; ++a) { var c = o[a]; this._deactivateAction(c); var l = c._cacheIndex , u = e[e.length - 1]; c._cacheIndex = null, c._byClipCacheIndex = null, u._cacheIndex = l, e[l] = u, e.pop(), this._removeInactiveBindingsForAction(c) } delete i[n] } }, uncacheRoot: function(t) { var e = t.uuid , n = this._actionsByClip; for (var i in n) { var r = n[i].actionByRoot[e]; void 0 !== r && (this._deactivateAction(r), this._removeInactiveAction(r)) } var o = this._bindingsByRootAndName[e]; if (void 0 !== o) for (var a in o) { var s = o[a]; s.restoreOriginalState(), this._removeInactiveBinding(s) } }, uncacheAction: function(t, e) { var n = this.existingAction(t, e); null !== n && (this._deactivateAction(n), this._removeInactiveAction(n)) } }), wp.prototype.clone = function() { return new wp(void 0 === this.value.clone ? this.value : this.value.clone()) } , Sp.prototype = Object.assign(Object.create(Hs.prototype), { constructor: Sp, isInstancedInterleavedBuffer: !0, copy: function(t) { return Hs.prototype.copy.call(this, t), this.meshPerAttribute = t.meshPerAttribute, this } }), Object.assign(xp.prototype, { set: function(t, e) { this.ray.set(t, e) }, setFromCamera: function(t, e) { e && e.isPerspectiveCamera ? (this.ray.origin.setFromMatrixPosition(e.matrixWorld), this.ray.direction.set(t.x, t.y, .5).unproject(e).sub(this.ray.origin).normalize(), this.camera = e) : e && e.isOrthographicCamera ? (this.ray.origin.set(t.x, t.y, (e.near + e.far) / (e.near - e.far)).unproject(e), this.ray.direction.set(0, 0, -1).transformDirection(e.matrixWorld), this.camera = e) : console.error("THREE.Raycaster: Unsupported camera type.") }, intersectObject: function(t, e, n) { var i = n || []; return Ep(t, this, i, e), i.sort(Mp), i }, intersectObjects: function(t, e, n) { var i = n || []; if (!1 === Array.isArray(t)) return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."), i; for (var r = 0, o = t.length; r < o; r++) Ep(t[r], this, i, e); return i.sort(Mp), i } }), Object.assign(Cp.prototype, { set: function(t, e, n) { return this.radius = t, this.phi = e, this.theta = n, this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.radius = t.radius, this.phi = t.phi, this.theta = t.theta, this }, makeSafe: function() { return this.phi = Math.max(1e-6, Math.min(Math.PI - 1e-6, this.phi)), this }, setFromVector3: function(t) { return this.setFromCartesianCoords(t.x, t.y, t.z) }, setFromCartesianCoords: function(t, e, n) { return this.radius = Math.sqrt(t * t + e * e + n * n), 0 === this.radius ? (this.theta = 0, this.phi = 0) : (this.theta = Math.atan2(t, n), this.phi = Math.acos(Kn.clamp(e / this.radius, -1, 1))), this } }), Object.assign(Ap.prototype, { set: function(t, e, n) { return this.radius = t, this.theta = e, this.y = n, this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.radius = t.radius, this.theta = t.theta, this.y = t.y, this }, setFromVector3: function(t) { return this.setFromCartesianCoords(t.x, t.y, t.z) }, setFromCartesianCoords: function(t, e, n) { return this.radius = Math.sqrt(t * t + n * n), this.theta = Math.atan2(t, n), this.y = e, this } }); var Tp = new Zn; function Op(t, e) { this.min = void 0 !== t ? t : new Zn(1 / 0,1 / 0), this.max = void 0 !== e ? e : new Zn(-1 / 0,-1 / 0) } Object.assign(Op.prototype, { set: function(t, e) { return this.min.copy(t), this.max.copy(e), this }, setFromPoints: function(t) { this.makeEmpty(); for (var e = 0, n = t.length; e < n; e++) this.expandByPoint(t[e]); return this }, setFromCenterAndSize: function(t, e) { var n = Tp.copy(e).multiplyScalar(.5); return this.min.copy(t).sub(n), this.max.copy(t).add(n), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.min.copy(t.min), this.max.copy(t.max), this }, makeEmpty: function() { return this.min.x = this.min.y = 1 / 0, this.max.x = this.max.y = -1 / 0, this }, isEmpty: function() { return this.max.x < this.min.x || this.max.y < this.min.y }, getCenter: function(t) { return void 0 === t && (console.warn("THREE.Box2: .getCenter() target is now required"), t = new Zn), this.isEmpty() ? t.set(0, 0) : t.addVectors(this.min, this.max).multiplyScalar(.5) }, getSize: function(t) { return void 0 === t && (console.warn("THREE.Box2: .getSize() target is now required"), t = new Zn), this.isEmpty() ? t.set(0, 0) : t.subVectors(this.max, this.min) }, expandByPoint: function(t) { return this.min.min(t), this.max.max(t), this }, expandByVector: function(t) { return this.min.sub(t), this.max.add(t), this }, expandByScalar: function(t) { return this.min.addScalar(-t), this.max.addScalar(t), this }, containsPoint: function(t) { return !(t.x < this.min.x || t.x > this.max.x || t.y < this.min.y || t.y > this.max.y) }, containsBox: function(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 }, getParameter: function(t, e) { return void 0 === e && (console.warn("THREE.Box2: .getParameter() target is now required"), e = new Zn), e.set((t.x - this.min.x) / (this.max.x - this.min.x), (t.y - this.min.y) / (this.max.y - this.min.y)) }, intersectsBox: function(t) { return !(t.max.x < this.min.x || t.min.x > this.max.x || t.max.y < this.min.y || t.min.y > this.max.y) }, clampPoint: function(t, e) { return void 0 === e && (console.warn("THREE.Box2: .clampPoint() target is now required"), e = new Zn), e.copy(t).clamp(this.min, this.max) }, distanceToPoint: function(t) { return Tp.copy(t).clamp(this.min, this.max).sub(t).length() }, intersect: function(t) { return this.min.max(t.min), this.max.min(t.max), this }, union: function(t) { return this.min.min(t.min), this.max.max(t.max), this }, translate: function(t) { return this.min.add(t), this.max.add(t), this }, equals: function(t) { return t.min.equals(this.min) && t.max.equals(this.max) } }); var _p = new si , Pp = new si; function Ip(t, e) { this.start = void 0 !== t ? t : new si, this.end = void 0 !== e ? e : new si } function kp(t) { Di.call(this), this.material = t, this.render = function() {} } Object.assign(Ip.prototype, { set: function(t, e) { return this.start.copy(t), this.end.copy(e), this }, clone: function() { return (new this.constructor).copy(this) }, copy: function(t) { return this.start.copy(t.start), this.end.copy(t.end), this }, getCenter: function(t) { return void 0 === t && (console.warn("THREE.Line3: .getCenter() target is now required"), t = new si), t.addVectors(this.start, this.end).multiplyScalar(.5) }, delta: function(t) { return void 0 === t && (console.warn("THREE.Line3: .delta() target is now required"), t = new si), t.subVectors(this.end, this.start) }, distanceSq: function() { return this.start.distanceToSquared(this.end) }, distance: function() { return this.start.distanceTo(this.end) }, at: function(t, e) { return void 0 === e && (console.warn("THREE.Line3: .at() target is now required"), e = new si), this.delta(e).multiplyScalar(t).add(this.start) }, closestPointToPointParameter: function(t, e) { _p.subVectors(t, this.start), Pp.subVectors(this.end, this.start); var n = Pp.dot(Pp) , i = Pp.dot(_p) / n; return e && (i = Kn.clamp(i, 0, 1)), i }, closestPointToPoint: function(t, e, n) { var i = this.closestPointToPointParameter(t, e); return void 0 === n && (console.warn("THREE.Line3: .closestPointToPoint() target is now required"), n = new si), this.delta(n).multiplyScalar(i).add(this.start) }, applyMatrix4: function(t) { return this.start.applyMatrix4(t), this.end.applyMatrix4(t), this }, equals: function(t) { return t.start.equals(this.start) && t.end.equals(this.end) } }), kp.prototype = Object.create(Di.prototype), kp.prototype.constructor = kp, kp.prototype.isImmediateRenderObject = !0; var Dp = new si; function Rp(t, e) { Di.call(this), this.light = t, this.light.updateMatrixWorld(), this.matrix = t.matrixWorld, this.matrixAutoUpdate = !1, this.color = e; for (var n = new Qr, 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], r = 0, o = 1; r < 32; r++, o++) { var a = r / 32 * Math.PI * 2 , s = o / 32 * Math.PI * 2; i.push(Math.cos(a), Math.sin(a), 1, Math.cos(s), Math.sin(s), 1) } n.setAttribute("position", new Br(i,3)); var c = new xc({ fog: !1, toneMapped: !1 }); this.cone = new Ic(n,c), this.add(this.cone), this.update() } Rp.prototype = Object.create(Di.prototype), Rp.prototype.constructor = Rp, Rp.prototype.dispose = function() { this.cone.geometry.dispose(), this.cone.material.dispose() } , Rp.prototype.update = function() { this.light.updateMatrixWorld(); var t = this.light.distance ? this.light.distance : 1e3 , e = t * Math.tan(this.light.angle); this.cone.scale.set(e, e, t), Dp.setFromMatrixPosition(this.light.target.matrixWorld), this.cone.lookAt(Dp), void 0 !== this.color ? this.cone.material.color.set(this.color) : this.cone.material.color.copy(this.light.color) } ; var Lp = new si , Np = new mi , jp = new mi; function Vp(t) { for (var e = function t(e) { var n = []; e && e.isBone && n.push(e); for (var i = 0; i < e.children.length; i++) n.push.apply(n, t(e.children[i])); return n }(t), n = new Qr, i = [], r = [], o = new Er(0,0,1), a = new Er(0,1,0), s = 0; s < e.length; s++) { var c = e[s]; c.parent && c.parent.isBone && (i.push(0, 0, 0), i.push(0, 0, 0), r.push(o.r, o.g, o.b), r.push(a.r, a.g, a.b)) } n.setAttribute("position", new Br(i,3)), n.setAttribute("color", new Br(r,3)); var l = new xc({ vertexColors: !0, depthTest: !1, depthWrite: !1, toneMapped: !1, transparent: !0 }); Ic.call(this, n, l), this.root = t, this.bones = e, this.matrix = t.matrixWorld, this.matrixAutoUpdate = !1 } function Fp(t, e, n) { this.light = t, this.light.updateMatrixWorld(), this.color = n; var i = new Bl(e,4,2) , r = new Ir({ wireframe: !0, fog: !1, toneMapped: !1 }); vo.call(this, i, r), this.matrix = this.light.matrixWorld, this.matrixAutoUpdate = !1, this.update() } Vp.prototype = Object.create(Ic.prototype), Vp.prototype.constructor = Vp, Vp.prototype.isSkeletonHelper = !0, Vp.prototype.updateMatrixWorld = function(t) { var e = this.bones , n = this.geometry , i = n.getAttribute("position"); jp.getInverse(this.root.matrixWorld); for (var r = 0, o = 0; r < e.length; r++) { var a = e[r]; a.parent && a.parent.isBone && (Np.multiplyMatrices(jp, a.matrixWorld), Lp.setFromMatrixPosition(Np), i.setXYZ(o, Lp.x, Lp.y, Lp.z), Np.multiplyMatrices(jp, a.parent.matrixWorld), Lp.setFromMatrixPosition(Np), i.setXYZ(o + 1, Lp.x, Lp.y, Lp.z), o += 2) } n.getAttribute("position").needsUpdate = !0, Di.prototype.updateMatrixWorld.call(this, t) } , Fp.prototype = Object.create(vo.prototype), Fp.prototype.constructor = Fp, Fp.prototype.dispose = function() { this.geometry.dispose(), this.material.dispose() } , Fp.prototype.update = function() { void 0 !== this.color ? this.material.color.set(this.color) : this.material.color.copy(this.light.color) } ; var Up = new si , Bp = new Er , zp = new Er; function Gp(t, e, n) { Di.call(this), this.light = t, this.light.updateMatrixWorld(), this.matrix = t.matrixWorld, this.matrixAutoUpdate = !1, this.color = n; var i = new Qc(e); i.rotateY(.5 * Math.PI), this.material = new Ir({ wireframe: !0, fog: !1, toneMapped: !1 }), void 0 === this.color && (this.material.vertexColors = !0); var r = i.getAttribute("position") , o = new Float32Array(3 * r.count); i.setAttribute("color", new Dr(o,3)), this.add(new vo(i,this.material)), this.update() } function Hp(t, e, n, i) { t = t || 10, e = e || 10, n = new Er(void 0 !== n ? n : 4473924), i = new Er(void 0 !== i ? i : 8947848); for (var r = e / 2, o = t / e, a = t / 2, s = [], c = [], l = 0, u = 0, d = -a; l <= e; l++, d += o) { s.push(-a, 0, d, a, 0, d), s.push(d, 0, -a, d, 0, a); var p = l === r ? n : i; p.toArray(c, u), u += 3, p.toArray(c, u), u += 3, p.toArray(c, u), u += 3, p.toArray(c, u), u += 3 } var h = new Qr; h.setAttribute("position", new Br(s,3)), h.setAttribute("color", new Br(c,3)); var f = new xc({ vertexColors: !0, toneMapped: !1 }); Ic.call(this, h, f) } function Wp(t, e, n, i, r, o) { t = t || 10, e = e || 16, n = n || 8, i = i || 64, r = new Er(void 0 !== r ? r : 4473924), o = new Er(void 0 !== o ? o : 8947848); var a, s, c, l, u, d, p, h = [], f = []; for (l = 0; l <= e; l++) c = l / e * (2 * Math.PI), a = Math.sin(c) * t, s = Math.cos(c) * t, h.push(0, 0, 0), h.push(a, 0, s), p = 1 & l ? r : o, f.push(p.r, p.g, p.b), f.push(p.r, p.g, p.b); for (l = 0; l <= n; l++) for (p = 1 & l ? r : o, d = t - t / n * l, u = 0; u < i; u++) c = u / i * (2 * Math.PI), a = Math.sin(c) * d, s = Math.cos(c) * d, h.push(a, 0, s), f.push(p.r, p.g, p.b), c = (u + 1) / i * (2 * Math.PI), a = Math.sin(c) * d, s = Math.cos(c) * d, h.push(a, 0, s), f.push(p.r, p.g, p.b); var m = new Qr; m.setAttribute("position", new Br(h,3)), m.setAttribute("color", new Br(f,3)); var g = new xc({ vertexColors: !0, toneMapped: !1 }); Ic.call(this, m, g) } Gp.prototype = Object.create(Di.prototype), Gp.prototype.constructor = Gp, Gp.prototype.dispose = function() { this.children[0].geometry.dispose(), this.children[0].material.dispose() } , Gp.prototype.update = function() { var t = this.children[0]; if (void 0 !== this.color) this.material.color.set(this.color); else { var e = t.geometry.getAttribute("color"); Bp.copy(this.light.color), zp.copy(this.light.groundColor); for (var n = 0, i = e.count; n < i; n++) { var r = n < i / 2 ? Bp : zp; e.setXYZ(n, r.r, r.g, r.b) } e.needsUpdate = !0 } t.lookAt(Up.setFromMatrixPosition(this.light.matrixWorld).negate()) } , Hp.prototype = Object.assign(Object.create(Ic.prototype), { constructor: Hp, copy: function(t) { return Ic.prototype.copy.call(this, t), this.geometry.copy(t.geometry), this.material.copy(t.material), this }, clone: function() { return (new this.constructor).copy(this) } }), Wp.prototype = Object.create(Ic.prototype), Wp.prototype.constructor = Wp; var qp = new si , Xp = new si , Yp = new si; function Kp(t, e, n) { Di.call(this), this.light = t, this.light.updateMatrixWorld(), this.matrix = t.matrixWorld, this.matrixAutoUpdate = !1, this.color = n, void 0 === e && (e = 1); var i = new Qr; i.setAttribute("position", new Br([-e, e, 0, e, e, 0, e, -e, 0, -e, -e, 0, -e, e, 0],3)); var r = new xc({ fog: !1, toneMapped: !1 }); this.lightPlane = new Oc(i,r), this.add(this.lightPlane), (i = new Qr).setAttribute("position", new Br([0, 0, 0, 0, 0, 1],3)), this.targetLine = new Oc(i,r), this.add(this.targetLine), this.update() } Kp.prototype = Object.create(Di.prototype), Kp.prototype.constructor = Kp, Kp.prototype.dispose = function() { this.lightPlane.geometry.dispose(), this.lightPlane.material.dispose(), this.targetLine.geometry.dispose(), this.targetLine.material.dispose() } , Kp.prototype.update = function() { qp.setFromMatrixPosition(this.light.matrixWorld), Xp.setFromMatrixPosition(this.light.target.matrixWorld), Yp.subVectors(Xp, qp), this.lightPlane.lookAt(Xp), void 0 !== this.color ? (this.lightPlane.material.color.set(this.color), this.targetLine.material.color.set(this.color)) : (this.lightPlane.material.color.copy(this.light.color), this.targetLine.material.color.copy(this.light.color)), this.targetLine.lookAt(Xp), this.targetLine.scale.z = Yp.length() } ; var Zp = new si , Jp = new Io; function Qp(t) { var e = new Qr , n = new xc({ color: 16777215, vertexColors: !0, toneMapped: !1 }) , i = [] , r = [] , o = {} , a = new Er(16755200) , s = new Er(16711680) , c = new Er(43775) , l = new Er(16777215) , u = new Er(3355443); function d(t, e, n) { p(t, n), p(e, n) } function p(t, e) { i.push(0, 0, 0), r.push(e.r, e.g, e.b), void 0 === o[t] && (o[t] = []), o[t].push(i.length / 3 - 1) } d("n1", "n2", a), d("n2", "n4", a), d("n4", "n3", a), d("n3", "n1", a), d("f1", "f2", a), d("f2", "f4", a), d("f4", "f3", a), d("f3", "f1", a), d("n1", "f1", a), d("n2", "f2", a), d("n3", "f3", a), d("n4", "f4", a), d("p", "n1", s), d("p", "n2", s), d("p", "n3", s), d("p", "n4", s), d("u1", "u2", c), d("u2", "u3", c), d("u3", "u1", c), d("c", "t", l), d("p", "c", u), d("cn1", "cn2", u), d("cn3", "cn4", u), d("cf1", "cf2", u), d("cf3", "cf4", u), e.setAttribute("position", new Br(i,3)), e.setAttribute("color", new Br(r,3)), Ic.call(this, e, n), this.camera = t, this.camera.updateProjectionMatrix && this.camera.updateProjectionMatrix(), this.matrix = t.matrixWorld, this.matrixAutoUpdate = !1, this.pointMap = o, this.update() } function $p(t, e, n, i, r, o, a) { Zp.set(r, o, a).unproject(i); var s = e[t]; if (void 0 !== s) for (var c = n.getAttribute("position"), l = 0, u = s.length; l < u; l++) c.setXYZ(s[l], Zp.x, Zp.y, Zp.z) } Qp.prototype = Object.create(Ic.prototype), Qp.prototype.constructor = Qp, Qp.prototype.update = function() { var t = this.geometry , e = this.pointMap; Jp.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse), $p("c", e, t, Jp, 0, 0, -1), $p("t", e, t, Jp, 0, 0, 1), $p("n1", e, t, Jp, -1, -1, -1), $p("n2", e, t, Jp, 1, -1, -1), $p("n3", e, t, Jp, -1, 1, -1), $p("n4", e, t, Jp, 1, 1, -1), $p("f1", e, t, Jp, -1, -1, 1), $p("f2", e, t, Jp, 1, -1, 1), $p("f3", e, t, Jp, -1, 1, 1), $p("f4", e, t, Jp, 1, 1, 1), $p("u1", e, t, Jp, .7, 1.1, -1), $p("u2", e, t, Jp, -.7, 1.1, -1), $p("u3", e, t, Jp, 0, 2, -1), $p("cf1", e, t, Jp, -1, 0, 1), $p("cf2", e, t, Jp, 1, 0, 1), $p("cf3", e, t, Jp, 0, -1, 1), $p("cf4", e, t, Jp, 0, 1, 1), $p("cn1", e, t, Jp, -1, 0, -1), $p("cn2", e, t, Jp, 1, 0, -1), $p("cn3", e, t, Jp, 0, -1, -1), $p("cn4", e, t, Jp, 0, 1, -1), t.getAttribute("position").needsUpdate = !0 } ; var th = new Yi; function eh(t, e) { this.object = t, void 0 === e && (e = 16776960); var n = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]) , i = new Float32Array(24) , r = new Qr; r.setIndex(new Dr(n,1)), r.setAttribute("position", new Dr(i,3)), Ic.call(this, r, new xc({ color: e, toneMapped: !1 })), this.matrixAutoUpdate = !1, this.update() } function nh(t, e) { this.type = "Box3Helper", this.box = t, e = e || 16776960; var n = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]) , i = new Qr; i.setIndex(new Dr(n,1)), i.setAttribute("position", new Br([1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1],3)), Ic.call(this, i, new xc({ color: e, toneMapped: !1 })), this.geometry.computeBoundingSphere() } function ih(t, e, n) { this.type = "PlaneHelper", this.plane = t, this.size = void 0 === e ? 1 : e; var i = void 0 !== n ? n : 16776960 , r = new Qr; r.setAttribute("position", new Br([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, 0, 1, 0, 0, 0],3)), r.computeBoundingSphere(), Oc.call(this, r, new xc({ color: i, toneMapped: !1 })); var o = new Qr; o.setAttribute("position", new Br([1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1],3)), o.computeBoundingSphere(), this.add(new vo(o,new Ir({ color: i, opacity: .2, transparent: !0, depthWrite: !1, toneMapped: !1 }))) } eh.prototype = Object.create(Ic.prototype), eh.prototype.constructor = eh, eh.prototype.update = function(t) { if (void 0 !== t && console.warn("THREE.BoxHelper: .update() has no longer arguments."), void 0 !== this.object && th.setFromObject(this.object), !th.isEmpty()) { var e = th.min , n = th.max , i = this.geometry.attributes.position , r = i.array; r[0] = n.x, r[1] = n.y, r[2] = n.z, r[3] = e.x, r[4] = n.y, r[5] = n.z, r[6] = e.x, r[7] = e.y, r[8] = n.z, r[9] = n.x, r[10] = e.y, r[11] = n.z, r[12] = n.x, r[13] = n.y, r[14] = e.z, r[15] = e.x, r[16] = n.y, r[17] = e.z, r[18] = e.x, r[19] = e.y, r[20] = e.z, r[21] = n.x, r[22] = e.y, r[23] = e.z, i.needsUpdate = !0, this.geometry.computeBoundingSphere() } } , eh.prototype.setFromObject = function(t) { return this.object = t, this.update(), this } , eh.prototype.copy = function(t) { return Ic.prototype.copy.call(this, t), this.object = t.object, this } , eh.prototype.clone = function() { return (new this.constructor).copy(this) } , nh.prototype = Object.create(Ic.prototype), nh.prototype.constructor = nh, nh.prototype.updateMatrixWorld = function(t) { var e = this.box; e.isEmpty() || (e.getCenter(this.position), e.getSize(this.scale), this.scale.multiplyScalar(.5), Di.prototype.updateMatrixWorld.call(this, t)) } , ih.prototype = Object.create(Oc.prototype), ih.prototype.constructor = ih, ih.prototype.updateMatrixWorld = function(t) { var e = -this.plane.constant; Math.abs(e) < 1e-8 && (e = 1e-8), this.scale.set(.5 * this.size, .5 * this.size, e), this.children[0].material.side = e < 0 ? T : A, this.lookAt(this.plane.normal), Di.prototype.updateMatrixWorld.call(this, t) } ; var rh, oh, ah = new si; function sh(t, e, n, i, r, o) { Di.call(this), void 0 === t && (t = new si(0,0,1)), void 0 === e && (e = new si(0,0,0)), void 0 === n && (n = 1), void 0 === i && (i = 16776960), void 0 === r && (r = .2 * n), void 0 === o && (o = .2 * r), void 0 === rh && ((rh = new Qr).setAttribute("position", new Br([0, 0, 0, 0, 1, 0],3)), (oh = new Jl(0,.5,1,5,1)).translate(0, -.5, 0)), this.position.copy(e), this.line = new Oc(rh,new xc({ color: i, toneMapped: !1 })), this.line.matrixAutoUpdate = !1, this.add(this.line), this.cone = new vo(oh,new Ir({ color: i, toneMapped: !1 })), this.cone.matrixAutoUpdate = !1, this.add(this.cone), this.setDirection(t), this.setLength(n, r, o) } function ch(t) { var e = [0, 0, 0, t = t || 1, 0, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 0, t] , n = new Qr; n.setAttribute("position", new Br(e,3)), n.setAttribute("color", new Br([1, 0, 0, 1, .6, 0, 0, 1, 0, .6, 1, 0, 0, 0, 1, 0, .6, 1],3)); var i = new xc({ vertexColors: !0, toneMapped: !1 }); Ic.call(this, n, i) } sh.prototype = Object.create(Di.prototype), sh.prototype.constructor = sh, sh.prototype.setDirection = function(t) { if (t.y > .99999) this.quaternion.set(0, 0, 0, 1); else if (t.y < -.99999) this.quaternion.set(1, 0, 0, 0); else { ah.set(t.z, 0, -t.x).normalize(); var e = Math.acos(t.y); this.quaternion.setFromAxisAngle(ah, e) } } , sh.prototype.setLength = function(t, e, n) { void 0 === e && (e = .2 * t), void 0 === n && (n = .2 * e), this.line.scale.set(1, Math.max(1e-4, t - e), 1), this.line.updateMatrix(), this.cone.scale.set(n, e, n), this.cone.position.y = t, this.cone.updateMatrix() } , sh.prototype.setColor = function(t) { this.line.material.color.set(t), this.cone.material.color.set(t) } , sh.prototype.copy = function(t) { return Di.prototype.copy.call(this, t, !1), this.line.copy(t.line), this.cone.copy(t.cone), this } , sh.prototype.clone = function() { return (new this.constructor).copy(this) } , ch.prototype = Object.create(Ic.prototype), ch.prototype.constructor = ch; var lh, uh, dh, ph, hh = Math.pow(2, 8), fh = [.125, .215, .35, .446, .526, .582], mh = 5 + fh.length, gh = (r(i = {}, cn, 0), r(i, ln, 1), r(i, dn, 2), r(i, hn, 3), r(i, fn, 4), r(i, mn, 5), r(i, un, 6), i), vh = new vd, yh = (lh = 20, uh = new Float32Array(lh), dh = new si(0,1,0), (ph = new ru({ defines: { n: lh }, uniforms: { envMap: { value: null }, samples: { value: 1 }, weights: { value: uh }, latitudinal: { value: !1 }, dTheta: { value: 0 }, mipInt: { value: 0 }, poleAxis: { value: dh }, inputEncoding: { value: gh[cn] }, outputEncoding: { value: gh[cn] } }, vertexShader: "\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t", fragmentShader: "\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform int samples;\nuniform float weights[n];\nuniform bool latitudinal;\nuniform float dTheta;\nuniform float mipInt;\nuniform vec3 poleAxis;\n\n".concat("\nuniform int inputEncoding;\nuniform int outputEncoding;\n\n#include \n\nvec4 inputTexelToLinear(vec4 value){\n\tif(inputEncoding == 0){\n\t\treturn value;\n\t}else if(inputEncoding == 1){\n\t\treturn sRGBToLinear(value);\n\t}else if(inputEncoding == 2){\n\t\treturn RGBEToLinear(value);\n\t}else if(inputEncoding == 3){\n\t\treturn RGBMToLinear(value, 7.0);\n\t}else if(inputEncoding == 4){\n\t\treturn RGBMToLinear(value, 16.0);\n\t}else if(inputEncoding == 5){\n\t\treturn RGBDToLinear(value, 256.0);\n\t}else{\n\t\treturn GammaToLinear(value, 2.2);\n\t}\n}\n\nvec4 linearToOutputTexel(vec4 value){\n\tif(outputEncoding == 0){\n\t\treturn value;\n\t}else if(outputEncoding == 1){\n\t\treturn LinearTosRGB(value);\n\t}else if(outputEncoding == 2){\n\t\treturn LinearToRGBE(value);\n\t}else if(outputEncoding == 3){\n\t\treturn LinearToRGBM(value, 7.0);\n\t}else if(outputEncoding == 4){\n\t\treturn LinearToRGBM(value, 16.0);\n\t}else if(outputEncoding == 5){\n\t\treturn LinearToRGBD(value, 256.0);\n\t}else{\n\t\treturn LinearToGamma(value, 2.2);\n\t}\n}\n\nvec4 envMapTexelToLinear(vec4 color) {\n\treturn inputTexelToLinear(color);\n}\n\t", "\n\n#define ENVMAP_TYPE_CUBE_UV\n#include \n\nvec3 getSample(float theta, vec3 axis) {\n\tfloat cosTheta = cos(theta);\n\t// Rodrigues' axis-angle rotation\n\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\treturn bilinearCubeUV(envMap, sampleDirection, mipInt);\n}\n\nvoid main() {\n\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\tif (all(equal(axis, vec3(0.0))))\n\t\taxis = vec3(vOutputDirection.z, 0.0, - vOutputDirection.x);\n\taxis = normalize(axis);\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb += weights[0] * getSample(0.0, axis);\n\tfor (int i = 1; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfloat theta = dTheta * float(i);\n\t\tgl_FragColor.rgb += weights[i] * getSample(-1.0 * theta, axis);\n\t\tgl_FragColor.rgb += weights[i] * getSample(theta, axis);\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t"), blending: I, depthTest: !1, depthWrite: !1 })).type = "SphericalGaussianBlur", ph), bh = null, wh = null, Sh = function() { for (var t = [], e = [], n = [], i = 8, r = 0; r < mh; r++) { var o = Math.pow(2, i); e.push(o); var a = 1 / o; r > 4 ? a = fh[r - 8 + 4 - 1] : 0 == r && (a = 0), n.push(a); for (var s = 1 / (o - 1), c = -s / 2, l = 1 + s / 2, u = [c, c, l, c, l, l, c, c, l, l, c, l], d = new Float32Array(108), p = new Float32Array(72), h = new Float32Array(36), f = 0; f < 6; f++) { var m = f % 3 * 2 / 3 - 1 , g = f > 2 ? 0 : -1 , v = [m, g, 0, m + 2 / 3, g, 0, m + 2 / 3, g + 1, 0, m, g, 0, m + 2 / 3, g + 1, 0, m, g + 1, 0]; d.set(v, 18 * f), p.set(u, 12 * f); var y = [f, f, f, f, f, f]; h.set(y, 6 * f) } var b = new Qr; b.setAttribute("position", new Dr(d,3)), b.setAttribute("uv", new Dr(p,2)), b.setAttribute("faceIndex", new Dr(h,1)), t.push(b), i > 4 && i-- } return { _lodPlanes: t, _sizeLods: e, _sigmas: n } }(), xh = Sh._lodPlanes, Mh = Sh._sizeLods, Eh = Sh._sigmas, Ch = null, Ah = null, Th = null, Oh = (1 + Math.sqrt(5)) / 2, _h = 1 / Oh, Ph = [new si(1,1,1), new si(-1,1,1), new si(1,1,-1), new si(-1,1,-1), new si(0,Oh,_h), new si(0,Oh,-_h), new si(_h,0,Oh), new si(-_h,0,Oh), new si(Oh,_h,0), new si(-Oh,_h,0)]; function Ih(t) { Ah = t, Lh(yh) } function kh(t) { var e = { magFilter: Tt, minFilter: Tt, generateMipmaps: !1, type: t ? t.type : jt, format: t ? t.format : te, encoding: t ? t.encoding : dn, depthBuffer: !1, stencilBuffer: !1 } , n = Nh(e); return n.depthBuffer = !t, Ch = Nh(e), n } function Dh(t) { Ch.dispose(), Ah.setRenderTarget(Th), t.scissorTest = !1, t.setSize(t.width, t.height) } function Rh(t, e, n, i) { var r = new ko(90,1,e,n) , o = [1, 1, 1, 1, -1, 1] , a = [1, 1, -1, -1, -1, 1] , s = Ah.outputEncoding , c = Ah.toneMapping , l = Ah.toneMappingExposure , u = Ah.getClearColor() , d = Ah.getClearAlpha(); Ah.toneMapping = dt, Ah.toneMappingExposure = 1, Ah.outputEncoding = cn, t.scale.z *= -1; var p = t.background; if (p && p.isColor) { p.convertSRGBToLinear(); var h = Math.max(p.r, p.g, p.b) , f = Math.min(Math.max(Math.ceil(Math.log2(h)), -128), 127); p = p.multiplyScalar(Math.pow(2, -f)); var m = (f + 128) / 255; Ah.setClearColor(p, m), t.background = null } for (var g = 0; g < 6; g++) { var v = g % 3; 0 == v ? (r.up.set(0, o[g], 0), r.lookAt(a[g], 0, 0)) : 1 == v ? (r.up.set(0, 0, o[g]), r.lookAt(0, a[g], 0)) : (r.up.set(0, o[g], 0), r.lookAt(0, 0, a[g])), jh(i, v * hh, g > 2 ? hh : 0, hh, hh), Ah.setRenderTarget(i), Ah.render(t, r) } Ah.toneMapping = c, Ah.toneMappingExposure = l, Ah.outputEncoding = s, Ah.setClearColor(u, d), t.scale.z *= -1 } function Lh(t) { var e = new Ri; e.add(new vo(xh[0],t)), Ah.compile(e, vh) } function Nh(t) { var e = new ni(3 * hh,3 * hh,t); return e.texture.mapping = xt, e.texture.name = "PMREM.cubeUv", e.scissorTest = !0, e } function jh(t, e, n, i, r) { t.viewport.set(e, n, i, r), t.scissor.set(e, n, i, r) } function Vh(t) { var e = Ah.autoClear; Ah.autoClear = !1; for (var n = 1; n < mh; n++) { Fh(t, n - 1, n, Math.sqrt(Eh[n] * Eh[n] - Eh[n - 1] * Eh[n - 1]), Ph[(n - 1) % Ph.length]) } Ah.autoClear = e } function Fh(t, e, n, i, r) { Uh(t, Ch, e, n, i, "latitudinal", r), Uh(Ch, t, n, n, i, "longitudinal", r) } function Uh(t, e, n, i, r, o, a) { "latitudinal" !== o && "longitudinal" !== o && console.error("blur direction must be either latitudinal or longitudinal!"); var s = new Ri; s.add(new vo(xh[i],yh)); var c = yh.uniforms , l = Mh[n] - 1 , u = isFinite(r) ? Math.PI / (2 * l) : 2 * Math.PI / 39 , d = r / u , p = isFinite(r) ? 1 + Math.floor(3 * d) : 20; p > 20 && console.warn("sigmaRadians, ".concat(r, ", is too large and will clip, as it requested ").concat(p, " samples when the maximum is set to ").concat(20)); for (var h = [], f = 0, m = 0; m < 20; ++m) { var g = m / d , v = Math.exp(-g * g / 2); h.push(v), 0 == m ? f += v : m < p && (f += 2 * v) } for (m = 0; m < h.length; m++) h[m] = h[m] / f; c.envMap.value = t.texture, c.samples.value = p, c.weights.value = h, c.latitudinal.value = "latitudinal" === o, a && (c.poleAxis.value = a), c.dTheta.value = u, c.mipInt.value = 8 - n, c.inputEncoding.value = gh[t.texture.encoding], c.outputEncoding.value = gh[t.texture.encoding]; var y = Mh[i]; jh(e, g = 3 * Math.max(0, hh - 2 * y), (0 === i ? 0 : 2 * hh) + 2 * y * (i > 4 ? i - 8 + 4 : 0), 3 * y, 2 * y), Ah.setRenderTarget(e), Ah.render(s, vh) } function Bh() { var t = new ru({ uniforms: { envMap: { value: null }, texelSize: { value: new Zn(1,1) }, inputEncoding: { value: gh[cn] }, outputEncoding: { value: gh[cn] } }, vertexShader: "\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t", fragmentShader: "\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n".concat("\nuniform int inputEncoding;\nuniform int outputEncoding;\n\n#include \n\nvec4 inputTexelToLinear(vec4 value){\n\tif(inputEncoding == 0){\n\t\treturn value;\n\t}else if(inputEncoding == 1){\n\t\treturn sRGBToLinear(value);\n\t}else if(inputEncoding == 2){\n\t\treturn RGBEToLinear(value);\n\t}else if(inputEncoding == 3){\n\t\treturn RGBMToLinear(value, 7.0);\n\t}else if(inputEncoding == 4){\n\t\treturn RGBMToLinear(value, 16.0);\n\t}else if(inputEncoding == 5){\n\t\treturn RGBDToLinear(value, 256.0);\n\t}else{\n\t\treturn GammaToLinear(value, 2.2);\n\t}\n}\n\nvec4 linearToOutputTexel(vec4 value){\n\tif(outputEncoding == 0){\n\t\treturn value;\n\t}else if(outputEncoding == 1){\n\t\treturn LinearTosRGB(value);\n\t}else if(outputEncoding == 2){\n\t\treturn LinearToRGBE(value);\n\t}else if(outputEncoding == 3){\n\t\treturn LinearToRGBM(value, 7.0);\n\t}else if(outputEncoding == 4){\n\t\treturn LinearToRGBM(value, 16.0);\n\t}else if(outputEncoding == 5){\n\t\treturn LinearToRGBD(value, 256.0);\n\t}else{\n\t\treturn LinearToGamma(value, 2.2);\n\t}\n}\n\nvec4 envMapTexelToLinear(vec4 color) {\n\treturn inputTexelToLinear(color);\n}\n\t", "\n\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tvec3 outputDirection = normalize(vOutputDirection);\n\tvec2 uv;\n\tuv.y = asin(clamp(outputDirection.y, -1.0, 1.0)) * RECIPROCAL_PI + 0.5;\n\tuv.x = atan(outputDirection.z, outputDirection.x) * RECIPROCAL_PI2 + 0.5;\n\tvec2 f = fract(uv / texelSize - 0.5);\n\tuv -= f * texelSize;\n\tvec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x += texelSize.x;\n\tvec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.y += texelSize.y;\n\tvec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x -= texelSize.x;\n\tvec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tvec3 tm = mix(tl, tr, f.x);\n\tvec3 bm = mix(bl, br, f.x);\n\tgl_FragColor.rgb = mix(tm, bm, f.y);\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t"), blending: I, depthTest: !1, depthWrite: !1 }); return t.type = "EquirectangularToCubeUV", t } function zh() { var t = new ru({ uniforms: { envMap: { value: null }, inputEncoding: { value: gh[cn] }, outputEncoding: { value: gh[cn] } }, vertexShader: "\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t", fragmentShader: "\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n".concat("\nuniform int inputEncoding;\nuniform int outputEncoding;\n\n#include \n\nvec4 inputTexelToLinear(vec4 value){\n\tif(inputEncoding == 0){\n\t\treturn value;\n\t}else if(inputEncoding == 1){\n\t\treturn sRGBToLinear(value);\n\t}else if(inputEncoding == 2){\n\t\treturn RGBEToLinear(value);\n\t}else if(inputEncoding == 3){\n\t\treturn RGBMToLinear(value, 7.0);\n\t}else if(inputEncoding == 4){\n\t\treturn RGBMToLinear(value, 16.0);\n\t}else if(inputEncoding == 5){\n\t\treturn RGBDToLinear(value, 256.0);\n\t}else{\n\t\treturn GammaToLinear(value, 2.2);\n\t}\n}\n\nvec4 linearToOutputTexel(vec4 value){\n\tif(outputEncoding == 0){\n\t\treturn value;\n\t}else if(outputEncoding == 1){\n\t\treturn LinearTosRGB(value);\n\t}else if(outputEncoding == 2){\n\t\treturn LinearToRGBE(value);\n\t}else if(outputEncoding == 3){\n\t\treturn LinearToRGBM(value, 7.0);\n\t}else if(outputEncoding == 4){\n\t\treturn LinearToRGBM(value, 16.0);\n\t}else if(outputEncoding == 5){\n\t\treturn LinearToRGBD(value, 256.0);\n\t}else{\n\t\treturn LinearToGamma(value, 2.2);\n\t}\n}\n\nvec4 envMapTexelToLinear(vec4 color) {\n\treturn inputTexelToLinear(color);\n}\n\t", "\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb = envMapTexelToLinear(textureCube(envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ))).rgb;\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t"), blending: I, depthTest: !1, depthWrite: !1 }); return t.type = "CubemapToCubeUV", t } function Gh(t, e, n, i, r, o, a) { return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."), new Or(t,e,n,r,o,a) } Ih.prototype = { constructor: Ih, fromScene: function(t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0 , n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .1 , i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 100; Th = Ah.getRenderTarget(); var r = kh(); return Rh(t, n, i, r), e > 0 && Fh(r, 0, 0, e), Vh(r), Dh(r), r }, fromEquirectangular: function(t) { return t.magFilter = Tt, t.minFilter = Tt, t.generateMipmaps = !1, this.fromCubemap(t) }, fromCubemap: function(t) { Th = Ah.getRenderTarget(); var e = kh(t); return function(t, e) { var n = new Ri; t.isCubeTexture ? null == wh && (wh = zh()) : null == bh && (bh = Bh()); var i = t.isCubeTexture ? wh : bh; n.add(new vo(xh[0],i)); var r = i.uniforms; r.envMap.value = t, t.isCubeTexture || r.texelSize.value.set(1 / t.image.width, 1 / t.image.height); r.inputEncoding.value = gh[t.encoding], r.outputEncoding.value = gh[t.encoding], jh(e, 0, 0, 3 * hh, 2 * hh), Ah.setRenderTarget(e), Ah.render(n, vh) }(t, e), Vh(e), Dh(e), e }, compileCubemapShader: function() { null == wh && Lh(wh = zh()) }, compileEquirectangularShader: function() { null == bh && Lh(bh = Bh()) }, dispose: function() { yh.dispose(), null != wh && wh.dispose(), null != bh && bh.dispose(); for (var t = 0; t < xh.length; t++) xh[t].dispose() } }; var Hh = 0 , Wh = 1 , qh = 0 , Xh = 1 , Yh = 2; function Kh(t) { return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."), t } function Zh(t) { return void 0 === t && (t = []), console.warn("THREE.MultiMaterial has been removed. Use an Array instead."), t.isMultiMaterial = !0, t.materials = t, t.clone = function() { return t.slice() } , t } function Jh(t, e) { return console.warn("THREE.PointCloud has been renamed to THREE.Points."), new Vc(t,e) } function Qh(t) { return console.warn("THREE.Particle has been renamed to THREE.Sprite."), new sc(t) } function $h(t, e) { return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."), new Vc(t,e) } function tf(t) { return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."), new Dc(t) } function ef(t) { return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."), new Dc(t) } function nf(t) { return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."), new Dc(t) } function rf(t, e, n) { return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."), new si(t,e,n) } function of(t, e) { return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."), new Dr(t,e).setUsage(jn) } function af(t, e) { return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."), new Rr(t,e) } function sf(t, e) { return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."), new Lr(t,e) } function cf(t, e) { return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."), new Nr(t,e) } function lf(t, e) { return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."), new jr(t,e) } function uf(t, e) { return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."), new Vr(t,e) } function df(t, e) { return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."), new Fr(t,e) } function pf(t, e) { return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."), new Ur(t,e) } function hf(t, e) { return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."), new Br(t,e) } function ff(t, e) { return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."), new zr(t,e) } function mf(t) { console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."), Ku.call(this, t), this.type = "catmullrom", this.closed = !0 } function gf(t) { console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."), Ku.call(this, t), this.type = "catmullrom" } function vf(t) { console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."), Ku.call(this, t), this.type = "catmullrom" } function yf(t) { return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."), new ch(t) } function bf(t, e) { return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."), new eh(t,e) } function wf(t, e) { return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."), new Ic(new Kl(t.geometry),new xc({ color: void 0 !== e ? e : 16777215 })) } function Sf(t, e) { return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."), new Ic(new Hc(t.geometry),new xc({ color: void 0 !== e ? e : 16777215 })) } function xf(t) { return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."), new Ru(t) } function Mf(t) { return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."), new ju(t) } function Ef(t, e, n) { return console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options )."), new Ro(t,n) } Bu.create = function(t, e) { return console.log("THREE.Curve.create() has been deprecated"), t.prototype = Object.create(Bu.prototype), t.prototype.constructor = t, t.prototype.getPoint = e, t } , Object.assign(sd.prototype, { createPointsGeometry: function(t) { console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."); var e = this.getPoints(t); return this.createGeometry(e) }, createSpacedPointsGeometry: function(t) { console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."); var e = this.getSpacedPoints(t); return this.createGeometry(e) }, createGeometry: function(t) { console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."); for (var e = new Eo, n = 0, i = t.length; n < i; n++) { var r = t[n]; e.vertices.push(new si(r.x,r.y,r.z || 0)) } return e } }), Object.assign(cd.prototype, { fromPoints: function(t) { return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."), this.setFromPoints(t) } }), mf.prototype = Object.create(Ku.prototype), gf.prototype = Object.create(Ku.prototype), vf.prototype = Object.create(Ku.prototype), Object.assign(vf.prototype, { initFromArray: function() { console.error("THREE.Spline: .initFromArray() has been removed.") }, getControlPointsArray: function() { console.error("THREE.Spline: .getControlPointsArray() has been removed.") }, reparametrizeByArcLength: function() { console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.") } }), Hp.prototype.setColors = function() { console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.") } , Vp.prototype.update = function() { console.error("THREE.SkeletonHelper: update() no longer needs to be called.") } , Object.assign(ku.prototype, { extractUrlBase: function(t) { return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."), Md.extractUrlBase(t) } }), ku.Handlers = { add: function() { console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.") }, get: function() { console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.") } }, Object.assign(Od.prototype, { setTexturePath: function(t) { return console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath()."), this.setResourcePath(t) } }), Object.assign(Op.prototype, { center: function(t) { return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."), this.getCenter(t) }, empty: function() { return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."), this.isEmpty() }, isIntersectionBox: function(t) { return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(t) }, size: function(t) { return console.warn("THREE.Box2: .size() has been renamed to .getSize()."), this.getSize(t) } }), Object.assign(Yi.prototype, { center: function(t) { return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."), this.getCenter(t) }, empty: function() { return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."), this.isEmpty() }, isIntersectionBox: function(t) { return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(t) }, isIntersectionSphere: function(t) { return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."), this.intersectsSphere(t) }, size: function(t) { return console.warn("THREE.Box3: .size() has been renamed to .getSize()."), this.getSize(t) } }), Vo.prototype.setFromMatrix = function(t) { return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."), this.setFromProjectionMatrix(t) } , Ip.prototype.center = function(t) { return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."), this.getCenter(t) } , Object.assign(Kn, { random16: function() { return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."), Math.random() }, nearestPowerOfTwo: function(t) { return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."), Kn.floorPowerOfTwo(t) }, nextPowerOfTwo: function(t) { return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."), Kn.ceilPowerOfTwo(t) } }), Object.assign(Jn.prototype, { flattenToArrayOffset: function(t, e) { return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."), this.toArray(t, e) }, multiplyVector3: function(t) { return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."), t.applyMatrix3(this) }, multiplyVector3Array: function() { console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.") }, applyToBufferAttribute: function(t) { return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."), t.applyMatrix3(this) }, applyToVector3Array: function() { console.error("THREE.Matrix3: .applyToVector3Array() has been removed.") } }), Object.assign(mi.prototype, { extractPosition: function(t) { return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."), this.copyPosition(t) }, flattenToArrayOffset: function(t, e) { return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."), this.toArray(t, e) }, getPosition: function() { return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."), (new si).setFromMatrixColumn(this, 3) }, setRotationFromQuaternion: function(t) { return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."), this.makeRotationFromQuaternion(t) }, multiplyToArray: function() { console.warn("THREE.Matrix4: .multiplyToArray() has been removed.") }, multiplyVector3: function(t) { return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."), t.applyMatrix4(this) }, multiplyVector4: function(t) { return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."), t.applyMatrix4(this) }, multiplyVector3Array: function() { console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.") }, rotateAxis: function(t) { console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."), t.transformDirection(this) }, crossVector: function(t) { return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."), t.applyMatrix4(this) }, translate: function() { console.error("THREE.Matrix4: .translate() has been removed.") }, rotateX: function() { console.error("THREE.Matrix4: .rotateX() has been removed.") }, rotateY: function() { console.error("THREE.Matrix4: .rotateY() has been removed.") }, rotateZ: function() { console.error("THREE.Matrix4: .rotateZ() has been removed.") }, rotateByAxis: function() { console.error("THREE.Matrix4: .rotateByAxis() has been removed.") }, applyToBufferAttribute: function(t) { return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."), t.applyMatrix4(this) }, applyToVector3Array: function() { console.error("THREE.Matrix4: .applyToVector3Array() has been removed.") }, makeFrustum: function(t, e, n, i, r, o) { return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."), this.makePerspective(t, e, i, n, r, o) } }), lr.prototype.isIntersectionLine = function(t) { return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."), this.intersectsLine(t) } , ri.prototype.multiplyVector3 = function(t) { return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."), t.applyQuaternion(this) } , Object.assign(or.prototype, { isIntersectionBox: function(t) { return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."), this.intersectsBox(t) }, isIntersectionPlane: function(t) { return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."), this.intersectsPlane(t) }, isIntersectionSphere: function(t) { return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."), this.intersectsSphere(t) } }), Object.assign(wr.prototype, { area: function() { return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."), this.getArea() }, barycoordFromPoint: function(t, e) { return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."), this.getBarycoord(t, e) }, midpoint: function(t) { return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."), this.getMidpoint(t) }, normal: function(t) { return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."), this.getNormal(t) }, plane: function(t) { return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."), this.getPlane(t) } }), Object.assign(wr, { barycoordFromPoint: function(t, e, n, i, r) { return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."), wr.getBarycoord(t, e, n, i, r) }, normal: function(t, e, n, i) { return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."), wr.getNormal(t, e, n, i) } }), Object.assign(ld.prototype, { extractAllPoints: function(t) { return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."), this.extractPoints(t) }, extrude: function(t) { return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."), new Rl(this,t) }, makeGeometry: function(t) { return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."), new ql(this,t) } }), Object.assign(Zn.prototype, { fromAttribute: function(t, e, n) { return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."), this.fromBufferAttribute(t, e, n) }, distanceToManhattan: function(t) { return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."), this.manhattanDistanceTo(t) }, lengthManhattan: function() { return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."), this.manhattanLength() } }), Object.assign(si.prototype, { setEulerFromRotationMatrix: function() { console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.") }, setEulerFromQuaternion: function() { console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.") }, getPositionFromMatrix: function(t) { return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."), this.setFromMatrixPosition(t) }, getScaleFromMatrix: function(t) { return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."), this.setFromMatrixScale(t) }, getColumnFromMatrix: function(t, e) { return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."), this.setFromMatrixColumn(e, t) }, applyProjection: function(t) { return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."), this.applyMatrix4(t) }, fromAttribute: function(t, e, n) { return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."), this.fromBufferAttribute(t, e, n) }, distanceToManhattan: function(t) { return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."), this.manhattanDistanceTo(t) }, lengthManhattan: function() { return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."), this.manhattanLength() } }), Object.assign(ei.prototype, { fromAttribute: function(t, e, n) { return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."), this.fromBufferAttribute(t, e, n) }, lengthManhattan: function() { return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."), this.manhattanLength() } }), Object.assign(Eo.prototype, { computeTangents: function() { console.error("THREE.Geometry: .computeTangents() has been removed.") }, computeLineDistances: function() { console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.") }, applyMatrix: function(t) { return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."), this.applyMatrix4(t) } }), Object.assign(Di.prototype, { getChildByName: function(t) { return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."), this.getObjectByName(t) }, renderDepth: function() { console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.") }, translate: function(t, e) { return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."), this.translateOnAxis(e, t) }, getWorldRotation: function() { console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.") }, applyMatrix: function(t) { return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."), this.applyMatrix4(t) } }), Object.defineProperties(Di.prototype, { eulerOrder: { get: function() { return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."), this.rotation.order }, set: function(t) { console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."), this.rotation.order = t } }, useQuaternion: { get: function() { console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.") }, set: function() { console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.") } } }), Object.assign(vo.prototype, { setDrawMode: function() { console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.") } }), Object.defineProperties(vo.prototype, { drawMode: { get: function() { return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."), on }, set: function() { console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.") } } }), Object.defineProperties(dc.prototype, { objects: { get: function() { return console.warn("THREE.LOD: .objects has been renamed to .levels."), this.levels } } }), Object.defineProperty(mc.prototype, "useVertexTexture", { get: function() { console.warn("THREE.Skeleton: useVertexTexture has been removed.") }, set: function() { console.warn("THREE.Skeleton: useVertexTexture has been removed.") } }), pc.prototype.initBones = function() { console.error("THREE.SkinnedMesh: initBones() has been removed.") } , Object.defineProperty(Bu.prototype, "__arcLengthDivisions", { get: function() { return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."), this.arcLengthDivisions }, set: function(t) { console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."), this.arcLengthDivisions = t } }), ko.prototype.setLens = function(t, e) { console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."), void 0 !== e && (this.filmGauge = e), this.setFocalLength(t) } , Object.defineProperties(ud.prototype, { onlyShadow: { set: function() { console.warn("THREE.Light: .onlyShadow has been removed.") } }, shadowCameraFov: { set: function(t) { console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."), this.shadow.camera.fov = t } }, shadowCameraLeft: { set: function(t) { console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."), this.shadow.camera.left = t } }, shadowCameraRight: { set: function(t) { console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."), this.shadow.camera.right = t } }, shadowCameraTop: { set: function(t) { console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."), this.shadow.camera.top = t } }, shadowCameraBottom: { set: function(t) { console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."), this.shadow.camera.bottom = t } }, shadowCameraNear: { set: function(t) { console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."), this.shadow.camera.near = t } }, shadowCameraFar: { set: function(t) { console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."), this.shadow.camera.far = t } }, shadowCameraVisible: { set: function() { console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.") } }, shadowBias: { set: function(t) { console.warn("THREE.Light: .shadowBias is now .shadow.bias."), this.shadow.bias = t } }, shadowDarkness: { set: function() { console.warn("THREE.Light: .shadowDarkness has been removed.") } }, shadowMapWidth: { set: function(t) { console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."), this.shadow.mapSize.width = t } }, shadowMapHeight: { set: function(t) { console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."), this.shadow.mapSize.height = t } } }), Object.defineProperties(Dr.prototype, { length: { get: function() { return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."), this.array.length } }, dynamic: { get: function() { return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."), this.usage === jn }, set: function() { console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."), this.setUsage(jn) } } }), Object.assign(Dr.prototype, { setDynamic: function(t) { return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."), this.setUsage(!0 === t ? jn : Nn), this }, copyIndicesArray: function() { console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.") }, setArray: function() { console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers") } }), Object.assign(Qr.prototype, { addIndex: function(t) { console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."), this.setIndex(t) }, addAttribute: function(t, e) { return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."), e && e.isBufferAttribute || e && e.isInterleavedBufferAttribute ? "index" === t ? (console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."), this.setIndex(e), this) : this.setAttribute(t, e) : (console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."), this.setAttribute(t, new Dr(arguments[1],arguments[2]))) }, addDrawCall: function(t, e, n) { void 0 !== n && console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."), console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."), this.addGroup(t, e) }, clearDrawCalls: function() { console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."), this.clearGroups() }, computeTangents: function() { console.warn("THREE.BufferGeometry: .computeTangents() has been removed.") }, computeOffsets: function() { console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.") }, removeAttribute: function(t) { return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."), this.deleteAttribute(t) }, applyMatrix: function(t) { return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."), this.applyMatrix4(t) } }), Object.defineProperties(Qr.prototype, { drawcalls: { get: function() { return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."), this.groups } }, offsets: { get: function() { return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."), this.groups } } }), Object.defineProperties(xp.prototype, { linePrecision: { get: function() { return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."), this.params.Line.threshold }, set: function(t) { console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."), this.params.Line.threshold = t } } }), Object.defineProperties(Hs.prototype, { dynamic: { get: function() { return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."), this.usage === jn }, set: function(t) { console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."), this.setUsage(t) } } }), Object.assign(Hs.prototype, { setDynamic: function(t) { return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."), this.setUsage(!0 === t ? jn : Nn), this }, setArray: function() { console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers") } }), Object.assign(Ll.prototype, { getArrays: function() { console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.") }, addShapeList: function() { console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.") }, addShape: function() { console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.") } }), Object.defineProperties(wp.prototype, { dynamic: { set: function() { console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.") } }, onUpdate: { value: function() { return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."), this } } }), Object.defineProperties(Pr.prototype, { wrapAround: { get: function() { console.warn("THREE.Material: .wrapAround has been removed.") }, set: function() { console.warn("THREE.Material: .wrapAround has been removed.") } }, overdraw: { get: function() { console.warn("THREE.Material: .overdraw has been removed.") }, set: function() { console.warn("THREE.Material: .overdraw has been removed.") } }, wrapRGB: { get: function() { return console.warn("THREE.Material: .wrapRGB has been removed."), new Er } }, shading: { get: function() { console.error("THREE." + this.type + ": .shading has been removed. Use the boolean .flatShading instead.") }, set: function(t) { console.warn("THREE." + this.type + ": .shading has been removed. Use the boolean .flatShading instead."), this.flatShading = t === _ } }, stencilMask: { get: function() { return console.warn("THREE." + this.type + ": .stencilMask has been removed. Use .stencilFuncMask instead."), this.stencilFuncMask }, set: function(t) { console.warn("THREE." + this.type + ": .stencilMask has been removed. Use .stencilFuncMask instead."), this.stencilFuncMask = t } } }), Object.defineProperties(su.prototype, { metal: { get: function() { return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."), !1 }, set: function() { console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead") } } }), Object.defineProperties(Po.prototype, { derivatives: { get: function() { return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."), this.extensions.derivatives }, set: function(t) { console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."), this.extensions.derivatives = t } } }), Object.assign(Bs.prototype, { clearTarget: function(t, e, n, i) { console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."), this.setRenderTarget(t), this.clear(e, n, i) }, animate: function(t) { console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."), this.setAnimationLoop(t) }, getCurrentRenderTarget: function() { return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."), this.getRenderTarget() }, getMaxAnisotropy: function() { return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."), this.capabilities.getMaxAnisotropy() }, getPrecision: function() { return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."), this.capabilities.precision }, resetGLState: function() { return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."), this.state.reset() }, supportsFloatTextures: function() { return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."), this.extensions.get("OES_texture_float") }, supportsHalfFloatTextures: function() { return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."), this.extensions.get("OES_texture_half_float") }, supportsStandardDerivatives: function() { return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."), this.extensions.get("OES_standard_derivatives") }, supportsCompressedTextureS3TC: function() { return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."), this.extensions.get("WEBGL_compressed_texture_s3tc") }, supportsCompressedTexturePVRTC: function() { return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."), this.extensions.get("WEBGL_compressed_texture_pvrtc") }, supportsBlendMinMax: function() { return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."), this.extensions.get("EXT_blend_minmax") }, supportsVertexTextures: function() { return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."), this.capabilities.vertexTextures }, supportsInstancedArrays: function() { return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."), this.extensions.get("ANGLE_instanced_arrays") }, enableScissorTest: function(t) { console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."), this.setScissorTest(t) }, initMaterial: function() { console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.") }, addPrePlugin: function() { console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.") }, addPostPlugin: function() { console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.") }, updateShadowMap: function() { console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.") }, setFaceCulling: function() { console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.") }, allocTextureUnit: function() { console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.") }, setTexture: function() { console.warn("THREE.WebGLRenderer: .setTexture() has been removed.") }, setTexture2D: function() { console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.") }, setTextureCube: function() { console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.") }, getActiveMipMapLevel: function() { return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."), this.getActiveMipmapLevel() } }), Object.defineProperties(Bs.prototype, { shadowMapEnabled: { get: function() { return this.shadowMap.enabled }, set: function(t) { console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."), this.shadowMap.enabled = t } }, shadowMapType: { get: function() { return this.shadowMap.type }, set: function(t) { console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."), this.shadowMap.type = t } }, shadowMapCullFace: { get: function() { console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.") }, set: function() { console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.") } }, context: { get: function() { return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."), this.getContext() } }, vr: { get: function() { return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"), this.xr } }, gammaInput: { get: function() { return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."), !1 }, set: function() { console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.") } }, gammaOutput: { get: function() { return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."), !1 }, set: function(t) { console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."), this.outputEncoding = !0 === t ? ln : cn } } }), Object.defineProperties(Rs.prototype, { cullFace: { get: function() { console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.") }, set: function() { console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.") } }, renderReverseSided: { get: function() { console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.") }, set: function() { console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.") } }, renderSingleSided: { get: function() { console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.") }, set: function() { console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.") } } }), Object.defineProperties(ni.prototype, { wrapS: { get: function() { return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."), this.texture.wrapS }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."), this.texture.wrapS = t } }, wrapT: { get: function() { return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."), this.texture.wrapT }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."), this.texture.wrapT = t } }, magFilter: { get: function() { return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."), this.texture.magFilter }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."), this.texture.magFilter = t } }, minFilter: { get: function() { return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."), this.texture.minFilter }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."), this.texture.minFilter = t } }, anisotropy: { get: function() { return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."), this.texture.anisotropy }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."), this.texture.anisotropy = t } }, offset: { get: function() { return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."), this.texture.offset }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."), this.texture.offset = t } }, repeat: { get: function() { return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."), this.texture.repeat }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."), this.texture.repeat = t } }, format: { get: function() { return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."), this.texture.format }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."), this.texture.format = t } }, type: { get: function() { return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."), this.texture.type }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."), this.texture.type = t } }, generateMipmaps: { get: function() { return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."), this.texture.generateMipmaps }, set: function(t) { console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."), this.texture.generateMipmaps = t } } }), Object.defineProperties($d.prototype, { load: { value: function(t) { console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead."); var e = this; return (new Fd).load(t, (function(t) { e.setBuffer(t) } )), this } }, startTime: { set: function() { console.warn("THREE.Audio: .startTime is now .play( delay ).") } } }), op.prototype.getData = function() { return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."), this.getFrequencyData() } , Do.prototype.updateCubeMap = function(t, e) { return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."), this.update(t, e) } ; var Cf = { merge: function(t, e, n) { var i; console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."), e.isMesh && (e.matrixAutoUpdate && e.updateMatrix(), i = e.matrix, e = e.geometry), t.merge(e, i, n) }, center: function(t) { return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."), t.center() } }; function Af() { console.error("THREE.CanvasRenderer has been removed") } function Tf() { console.error("THREE.JSONLoader has been removed.") } Qn.crossOrigin = void 0, Qn.loadTexture = function(t, e, n, i) { console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead."); var r = new Uu; r.setCrossOrigin(this.crossOrigin); var o = r.load(t, n, void 0, i); return e && (o.mapping = e), o } , Qn.loadTextureCube = function(t, e, n, i) { console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead."); var r = new Fu; r.setCrossOrigin(this.crossOrigin); var o = r.load(t, n, void 0, i); return e && (o.mapping = e), o } , Qn.loadCompressedTexture = function() { console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.") } , Qn.loadCompressedTextureCube = function() { console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.") } ; var Of = { createMultiMaterialObject: function() { console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js") }, detach: function() { console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js") }, attach: function() { console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js") } }; function _f() { console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js") } "undefined" != typeof __THREE_DEVTOOLS__ && __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{ detail: { revision: h } })) } , function(t, e, n) { var i = n(34) , r = n(82).f , o = n(88) , a = n(98) , s = n(350) , c = n(465) , l = n(289); t.exports = function(t, e) { var n, u, d, p, h, f = t.target, m = t.global, g = t.stat; if (n = m ? i : g ? i[f] || s(f, {}) : (i[f] || {}).prototype) for (u in e) { if (p = e[u], d = t.noTargetGet ? (h = r(n, u)) && h.value : n[u], !l(m ? u : f + (g ? "." : "#") + u, t.forced) && void 0 !== d) { if (typeof p == typeof d) continue; c(p, d) } (t.sham || d && d.sham) && o(p, "sham", !0), a(n, u, p, t) } } } , function(t, e, n) { "use strict"; n.r(e), n.d(e, "UpgradeComponent", (function() { return $ } )), n.d(e, "UpgradeModule", (function() { return tt } )), n.d(e, "VERSION", (function() { return R } )), n.d(e, "downgradeComponent", (function() { return I } )), n.d(e, "downgradeInjectable", (function() { return D } )), n.d(e, "downgradeModule", (function() { return H } )), n.d(e, "getAngularJSGlobal", (function() { return p } )), n.d(e, "getAngularLib", (function() { return u } )), n.d(e, "setAngularJSGlobal", (function() { return d } )), n.d(e, "setAngularLib", (function() { return l } )), n.d(e, "ɵangular_packages_upgrade_static_static_a", (function() { return j } )), n.d(e, "ɵangular_packages_upgrade_static_static_b", (function() { return V } )), n.d(e, "ɵangular_packages_upgrade_static_static_c", (function() { return F } )), n.d(e, "ɵangular_packages_upgrade_static_static_d", (function() { return U } )), n.d(e, "ɵangular_packages_upgrade_static_static_e", (function() { return B } )); var i = n(1) , r = n(0) , o = n(125); /** * @license Angular v9.1.9 * (c) 2010-2020 Google LLC. https://angular.io/ * License: MIT */ /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function a() { throw new Error("AngularJS v1.x is not loaded!") } var s = function() { return a() }; s.cleanData = a; var c = { bootstrap: a, module: a, element: s, injector: a, version: void 0, resumeBootstrap: a, getTestability: a }; try { window.hasOwnProperty("angular") && (c = window.angular) } catch (t) {} function l(t) { d(t) } function u() { return p() } function d(t) { c = t } function p() { return c } var h = function(t, e) { return c.module(t, e) } , f = function(t) { return c.element(t) }; f.cleanData = function(t) { return c.element.cleanData(t) } ; var m = "$$angularInjector" , g = function() { function t(t, e) { this.prop = t, this.attr = e, this.parseBinding() } return t.prototype.parseBinding = function() { this.bracketAttr = "[" + this.attr + "]", this.parenAttr = "(" + this.attr + ")", this.bracketParenAttr = "[(" + this.attr + ")]"; var t = this.attr.charAt(0).toUpperCase() + this.attr.substr(1); this.onAttr = "on" + t, this.bindAttr = "bind" + t, this.bindonAttr = "bindon" + t } , t }() , v = /^(?:x|data)[:\-_]/i , y = /[:\-_]+(.)/g; function b(t) { return "$" + t + "Controller" } function w(t) { return t.overriddenName || t.name || t.toString().split("\n")[0] } function S(t) { return t.has("$$angularDowngradedModuleCount") ? t.get("$$angularDowngradedModuleCount") : 0 } function x(t) { return t.has("$$angularUpgradeAppType") ? t.get("$$angularUpgradeAppType") : 0 } function M(t) { return "function" == typeof t } function E(t, e, n, i) { var r = x(t) , o = S(t); switch (r) { case 1: case 2: if (e) throw new Error("Error while " + i + ": 'downgradedModule' unexpectedly specified.\nYou should not specify a value for 'downgradedModule', unless you are downgrading more than one Angular module (via 'downgradeModule()')."); break; case 3: if (!e && o >= 2) throw new Error("Error while " + i + ": 'downgradedModule' not specified.\nThis application contains more than one downgraded Angular module, thus you need to always specify 'downgradedModule' when downgrading components and injectables."); if (!t.has(n)) throw new Error("Error while " + i + ": Unable to find the specified downgraded module.\nDid you forget to downgrade an Angular module or include it in the AngularJS application?"); break; default: throw new Error("Error while " + i + ": Not a valid '@angular/upgrade' application.\nDid you forget to downgrade an Angular module or include it in the AngularJS application?") } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var C, A = { __UNINITIALIZED__: !0 }, T = function() { function t(t, e, n, i, r, o, a, s, c, l) { this.element = t, this.attrs = e, this.scope = n, this.ngModel = i, this.parentInjector = r, this.$injector = o, this.$compile = a, this.$parse = s, this.componentFactory = c, this.wrapCallback = l, this.implementsOnChanges = !1, this.inputChangeCount = 0, this.inputChanges = {}, this.componentScope = n.$new() } return t.prototype.compileContents = function() { var t = this , e = [] , n = this.groupProjectableNodes().map((function(e) { return t.$compile(e) } )); return this.element.empty(), n.forEach((function(n) { n(t.scope, (function(n) { e.push(n), t.element.append(n) } )) } )), e } , t.prototype.createComponent = function(t) { var e = [{ provide: "$scope", useValue: this.componentScope }] , n = r.Injector.create({ providers: e, parent: this.parentInjector, name: "DowngradeComponentAdapter" }); this.componentRef = this.componentFactory.create(n, t, this.element[0]), this.viewChangeDetector = this.componentRef.injector.get(r.ChangeDetectorRef), this.changeDetector = this.componentRef.changeDetectorRef, this.component = this.componentRef.instance; var i, o, a = this.componentRef.injector.get(r.Testability, null); a && this.componentRef.injector.get(r.TestabilityRegistry).registerApplication(this.componentRef.location.nativeElement, a), i = this.ngModel, o = this.component, i && function(t) { return "function" == typeof t.writeValue && "function" == typeof t.registerOnChange }(o) && (i.$render = function() { o.writeValue(i.$viewValue) } , o.registerOnChange(i.$setViewValue.bind(i)), "function" == typeof o.registerOnTouched && o.registerOnTouched(i.$setTouched.bind(i))) } , t.prototype.setupInputs = function(t, e) { var n = this; void 0 === e && (e = !0); for (var i = this.attrs, o = this.componentFactory.inputs || [], a = function(t) { var e, r, a = new g(o[t].propName,o[t].templateName), c = null; if (i.hasOwnProperty(a.attr)) { var l = (e = a.prop, r = A, function(t) { var i, o; (i = r) === (o = t) || i != i && o != o || (r === A && (r = t), n.updateInput(e, r, t), r = t) } ); i.$observe(a.attr, l); var u = s.componentScope.$watch((function() { u(), u = null, l(i[a.attr]) } )) } else i.hasOwnProperty(a.bindAttr) ? c = i[a.bindAttr] : i.hasOwnProperty(a.bracketAttr) ? c = i[a.bracketAttr] : i.hasOwnProperty(a.bindonAttr) ? c = i[a.bindonAttr] : i.hasOwnProperty(a.bracketParenAttr) && (c = i[a.bracketParenAttr]); if (null != c) { var d = function(t) { return function(e, i) { return n.updateInput(t, i, e) } }(a.prop); s.componentScope.$watch(c, d) } }, s = this, c = 0; c < o.length; c++) a(c); var l = function() { return n.changeDetector.detectChanges() } , u = this.componentFactory.componentType.prototype; if (this.implementsOnChanges = !(!u || !u.ngOnChanges), this.componentScope.$watch((function() { return n.inputChangeCount } ), this.wrapCallback((function() { if (n.implementsOnChanges) { var t = n.inputChanges; n.inputChanges = {}, n.component.ngOnChanges(t) } n.viewChangeDetector.markForCheck(), e || l() } ))), e && this.componentScope.$watch(this.wrapCallback(l)), t || !e) var d = this.componentScope.$watch((function() { d(), d = null, n.parentInjector.get(r.ApplicationRef).attachView(n.componentRef.hostView) } )) } , t.prototype.setupOutputs = function() { for (var t = this.attrs, e = this.componentFactory.outputs || [], n = 0; n < e.length; n++) { var i = new g(e[n].propName,e[n].templateName) , r = i.bindonAttr.substring(0, i.bindonAttr.length - 6) , o = "[(" + i.bracketParenAttr.substring(2, i.bracketParenAttr.length - 8) + ")]"; t.hasOwnProperty(r) && this.subscribeToOutput(i, t[r], !0), t.hasOwnProperty(o) && this.subscribeToOutput(i, t[o], !0), t.hasOwnProperty(i.onAttr) && this.subscribeToOutput(i, t[i.onAttr]), t.hasOwnProperty(i.parenAttr) && this.subscribeToOutput(i, t[i.parenAttr]) } } , t.prototype.subscribeToOutput = function(t, e, n) { var i = this; void 0 === n && (n = !1); var r = this.$parse(e) , o = r.assign; if (n && !o) throw new Error("Expression '" + e + "' is not assignable!"); var a = this.component[t.prop]; if (!a) throw new Error("Missing emitter '" + t.prop + "' on component '" + w(this.componentFactory.componentType) + "'!"); a.subscribe({ next: n ? function(t) { return o(i.scope, t) } : function(t) { return r(i.scope, { $event: t }) } }) } , t.prototype.registerCleanup = function() { var t = this , e = this.componentRef.injector.get(r.TestabilityRegistry) , n = this.wrapCallback((function() { return t.componentRef.destroy() } )) , i = !1; this.element.on("$destroy", (function() { return t.componentScope.$destroy() } )), this.componentScope.$on("$destroy", (function() { i || (i = !0, e.unregisterApplication(t.componentRef.location.nativeElement), n()) } )) } , t.prototype.getInjector = function() { return this.componentRef.injector } , t.prototype.updateInput = function(t, e, n) { this.implementsOnChanges && (this.inputChanges[t] = new r.SimpleChange(e,n,e === n)), this.inputChangeCount++, this.component[t] = n } , t.prototype.groupProjectableNodes = function() { return function(t, e) { for (var n = [], i = 0, r = t.length; i < r; ++i) n[i] = []; for (var o = 0, a = e.length; o < a; ++o) { var s = e[o] , c = O(s, t); null != c && n[c].push(s) } return n }(this.componentFactory.ngContentSelectors, this.element.contents()) } , t }(); function O(t, e) { for (var n = [], i = -1, r = 0; r < e.length; r++) { var o = e[r]; "*" === o ? i = r : _(t, o) && n.push(r) } return n.sort(), -1 !== i && n.push(i), n.length ? n[0] : null } function _(t, e) { if (!C) { var n = Element.prototype; C = n.matches || n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector } return t.nodeType === Node.ELEMENT_NODE && C.call(t, e) } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var P = function() { function t() { this.resolved = !1, this.callbacks = [] } return t.all = function(e) { var n = new t , i = 0 , r = [] , o = function(t, o) { r[t] = o, ++i === e.length && n.resolve(r) }; return e.forEach((function(t, e) { var n; (n = t) && M(n.then) ? t.then((function(t) { return o(e, t) } )) : o(e, t) } )), n } , t.prototype.resolve = function(t) { this.resolved || (this.value = t, this.resolved = !0, this.callbacks.forEach((function(e) { return e(t) } )), this.callbacks.length = 0) } , t.prototype.then = function(t) { this.resolved ? t(this.value) : this.callbacks.push(t) } , t }(); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function I(t) { var e = function(e, n, o) { var a, s = 3 === x(n), c = s ? function(t) { return function() { return r.NgZone.isInAngularZone() ? t() : a.run(t) } } : function(t) { return t } , l = s && S(n) > 1; return { restrict: "E", terminal: !0, require: ["?^^$$angularInjector", "?ngModel"], link: function(u, d, p, h) { var f = h[1] , m = h[0] , g = void 0 , v = !1; if (!m || l) { var y = t.downgradedModule || "" , b = "$$angularLazyModuleRef" + y , S = "instantiating component '" + w(t.component) + "'"; E(n, y, b, S); var x = n.get(b); g = x.injector || x.promise } var M = m || g , C = g || m , A = function(i, a) { var l = a.get(r.ComponentFactoryResolver).resolveComponentFactory(t.component); if (!l) throw new Error("Expecting ComponentFactory for: " + w(t.component)); var h = new k(d) , m = new T(d,p,u,f,i,n,e,o,l,c) , g = m.compileContents(); m.createComponent(g), m.setupInputs(s, t.propagateDigest), m.setupOutputs(), m.registerCleanup(), h.resolve(m.getInjector()), v && u.$evalAsync((function() {} )) } , O = s ? function(t, e) { a || (a = t.get(r.NgZone)), c((function() { return A(t, e) } ))() } : A; P.all([M, C]).then((function(t) { var e = Object(i.f)(t, 2) , n = e[0] , r = e[1]; return O(n, r) } )), v = !0 } } }; return e.$inject = ["$compile", "$injector", "$parse"], e } var k = function(t) { function e(e) { var n = t.call(this) || this; return n.element = e, n.injectorKey = b(m), e.data(n.injectorKey, n), n } return Object(i.c)(e, t), e.prototype.resolve = function(e) { this.element.data(this.injectorKey, e), this.element = null, t.prototype.resolve.call(this, e) } , e }(P); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function D(t, e) { void 0 === e && (e = ""); var n = function(n) { var i = "" + m + e , r = M(t) ? w(t) : String(t); return E(n, e, i, "instantiating injectable '" + r + "'"), n.get(i).get(t) }; return n.$inject = ["$injector"], n } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var R = new r.Version("9.1.9") , L = null; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function N(t) { L = t } function j() { if (!L) throw new Error("Trying to get the AngularJS injector before it being set."); var t = L; return L = null, t } function V(t) { return t.get("$rootScope") } function F(t) { return t.get("$compile") } function U(t) { return t.get("$parse") } var B = [{ provide: "$injector", useFactory: j, deps: [] }, { provide: "$rootScope", useFactory: V, deps: ["$injector"] }, { provide: "$compile", useFactory: F, deps: ["$injector"] }, { provide: "$parse", useFactory: U, deps: ["$injector"] }] , z = function() { function t(t) { this.modInjector = t } return t.prototype.get = function(t, e) { return e === r["ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR"] ? e : this.modInjector.get(t, e) } , t }() , G = 0; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function H(t) { var e, n = "$$UpgradeModule.lazy" + ++G, i = "$$angularLazyModuleRef" + n, r = "" + m + n, a = M(t) ? t : function(e) { return Object(o.platformBrowser)(e).bootstrapModuleFactory(t) } ; return h(n, []).constant("$$angularUpgradeAppType", 3).factory(m, [r, W]).factory(r, (function() { if (!e) throw new Error("Trying to get the Angular injector before bootstrapping the corresponding Angular module."); return e } )).factory("$$angularLazyModuleRef", [i, W]).factory(i, ["$injector", function(t) { N(t); var n = { promise: a(B).then((function(t) { return (e = n.injector = new z(t.injector)).get("$injector"), e } )) }; return n } ]).config(["$injector", "$provide", function(t, e) { e.constant("$$angularDowngradedModuleCount", S(t) + 1) } ]), n } function W(t) { return t } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var q = /^(\^\^?)?(\?)?(\^\^?)?/ , X = function() { function t(e, n, i, r) { this.injector = e, this.name = n, this.$injector = e.get("$injector"), this.$compile = this.$injector.get("$compile"), this.$controller = this.$injector.get("$controller"), this.element = i.nativeElement, this.$element = f(this.element), this.directive = r || t.getDirective(this.$injector, n) } return t.getDirective = function(t, e) { var n = t.get(e + "Directive"); if (n.length > 1) throw new Error("Only support single directive definition for: " + e); var i = n[0]; return i.compile && !i.link && Z(e, "compile"), i.replace && Z(e, "replace"), i.terminal && Z(e, "terminal"), i } , t.getTemplate = function(t, e, n, i) { if (void 0 === n && (n = !1), void 0 !== e.template) return Y(e.template, i); if (e.templateUrl) { var r = t.get("$templateCache") , o = Y(e.templateUrl, i) , a = r.get(o); if (void 0 !== a) return a; if (!n) throw new Error("loading directive templates asynchronously is not supported"); return new Promise((function(e, n) { t.get("$httpBackend")("GET", o, null, (function(t, i) { 200 === t ? e(r.put(o, i)) : n("GET component template from '" + o + "' returned '" + t + ": " + i + "'") } )) } )) } throw new Error("Directive '" + e.name + "' is not a component, it is missing template.") } , t.prototype.buildController = function(t, e) { var n = { $scope: e, $element: this.$element } , i = this.$controller(t, n, null, this.directive.controllerAs); return this.$element.data(b(this.directive.name), i), i } , t.prototype.compileTemplate = function(e) { return void 0 === e && (e = t.getTemplate(this.$injector, this.directive, !1, this.$element)), this.compileHtml(e) } , t.prototype.onDestroy = function(t, e) { e && M(e.$onDestroy) && e.$onDestroy(), t.$destroy(), f.cleanData([this.element]), f.cleanData(this.element.querySelectorAll("*")) } , t.prototype.prepareTransclusion = function() { var t = this , e = this.directive.transclude , n = this.extractChildNodes() , i = function(t, e) { return e(r, t = t || { $destroy: function() {} }) } , r = n; if (e) { var o = Object.create(null); if ("object" == typeof e) { r = []; var a = Object.create(null) , s = Object.create(null); Object.keys(e).forEach((function(t) { var n = e[t] , i = "?" === n.charAt(0); n = i ? n.substring(1) : n, a[n] = t, o[t] = null, s[t] = i } )), n.forEach((function(t) { var e = a[function(t) { return t.replace(v, "").replace(y, (function(t, e) { return e.toUpperCase() } )) }(t.nodeName.toLowerCase())]; e ? (s[e] = !0, o[e] = o[e] || [], o[e].push(t)) : r.push(t) } )), Object.keys(s).forEach((function(e) { if (!s[e]) throw new Error("Required transclusion slot '" + e + "' on directive: " + t.name) } )), Object.keys(o).filter((function(t) { return o[t] } )).forEach((function(t) { var e = o[t]; o[t] = function(t, n) { return n(e, t) } } )) } i.$$slots = o, r.forEach((function(t) { t.nodeType !== Node.TEXT_NODE || t.nodeValue || (t.nodeValue = "‌") } )) } return i } , t.prototype.resolveAndBindRequiredControllers = function(t) { var e = this.getDirectiveRequire() , n = this.resolveRequire(e); if (t && this.directive.bindToController && K(e)) { var i = n; Object.keys(i).forEach((function(e) { t[e] = i[e] } )) } return n } , t.prototype.compileHtml = function(t) { return this.element.innerHTML = t, this.$compile(this.element.childNodes) } , t.prototype.extractChildNodes = function() { for (var t, e = []; t = this.element.firstChild; ) this.element.removeChild(t), e.push(t); return e } , t.prototype.getDirectiveRequire = function() { var t = this.directive.require || this.directive.controller && this.directive.name; return K(t) && Object.keys(t).forEach((function(e) { var n = t[e] , i = n.match(q); n.substring(i[0].length) || (t[e] = i[0] + e) } )), t } , t.prototype.resolveRequire = function(t, e) { var n = this; if (t) { if (Array.isArray(t)) return t.map((function(t) { return n.resolveRequire(t) } )); if ("object" == typeof t) { var i = {}; return Object.keys(t).forEach((function(e) { return i[e] = n.resolveRequire(t[e]) } )), i } if ("string" == typeof t) { var r = t.match(q) , o = r[1] || r[3] , a = t.substring(r[0].length) , s = !!r[2] , c = !!o , l = "^^" === o , u = b(a) , d = l ? this.$element.parent() : this.$element , p = c ? d.inheritedData(u) : d.data(u); if (!p && !s) throw new Error("Unable to find required '" + t + "' in upgraded directive '" + this.name + "'."); return p } throw new Error("Unrecognized 'require' syntax on upgraded directive '" + this.name + "': " + t) } return null } , t }(); function Y(t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; return M(t) ? t.apply(void 0, Object(i.h)(e)) : t } function K(t) { return t && !Array.isArray(t) && "object" == typeof t } function Z(t, e) { throw new Error("Upgraded directive '" + t + "' contains unsupported feature: '" + e + "'.") } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var J = { __UNINITIALIZED__: !0 } , Q = function() { this.twoWayBoundProperties = [], this.twoWayBoundLastValues = [], this.expressionBoundProperties = [], this.propertyToOutputMap = {} } , $ = function() { function t(t, e, n) { this.name = t, this.elementRef = e, this.injector = n, this.helper = new X(n,t,e), this.$injector = this.helper.$injector, this.element = this.helper.element, this.$element = this.helper.$element, this.directive = this.helper.directive, this.bindings = this.initializeBindings(this.directive); var i = n.get("$scope"); this.$componentScope = i.$new(!!this.directive.scope), this.initializeOutputs() } return t.prototype.ngOnInit = function() { var t = this , e = this.helper.prepareTransclusion() , n = this.helper.compileTemplate() , i = this.directive.controller , r = this.directive.bindToController; if (i) this.controllerInstance = this.helper.buildController(i, this.$componentScope); else if (r) throw new Error("Upgraded directive '" + this.directive.name + "' specifies 'bindToController' but no controller."); this.bindingDestination = r ? this.controllerInstance : this.$componentScope, this.bindOutputs(); var o = this.helper.resolveAndBindRequiredControllers(this.controllerInstance); if (this.pendingChanges && (this.forwardChanges(this.pendingChanges), this.pendingChanges = null), this.controllerInstance && M(this.controllerInstance.$onInit) && this.controllerInstance.$onInit(), this.controllerInstance && M(this.controllerInstance.$doCheck)) { var a = function() { return t.controllerInstance.$doCheck() }; this.unregisterDoCheckWatcher = this.$componentScope.$parent.$watch(a), a() } var s = this.directive.link , c = "object" == typeof s && s.pre , l = "object" == typeof s ? s.post : s; c && c(this.$componentScope, this.$element, "NOT_SUPPORTED", o, "NOT_SUPPORTED"), n(this.$componentScope, null, { parentBoundTranscludeFn: e }), l && l(this.$componentScope, this.$element, "NOT_SUPPORTED", o, "NOT_SUPPORTED"), this.controllerInstance && M(this.controllerInstance.$postLink) && this.controllerInstance.$postLink() } , t.prototype.ngOnChanges = function(t) { this.bindingDestination ? this.forwardChanges(t) : this.pendingChanges = t } , t.prototype.ngDoCheck = function() { var t = this , e = this.bindings.twoWayBoundProperties , n = this.bindings.twoWayBoundLastValues , i = this.bindings.propertyToOutputMap; e.forEach((function(e, o) { var a = t.bindingDestination[e] , s = n[o]; if (!Object(r["ɵlooseIdentical"])(a, s)) { var c = i[e]; t[c].emit(a), n[o] = a } } )) } , t.prototype.ngOnDestroy = function() { M(this.unregisterDoCheckWatcher) && this.unregisterDoCheckWatcher(), this.helper.onDestroy(this.$componentScope, this.controllerInstance) } , t.prototype.initializeBindings = function(t) { var e = this , n = "object" == typeof t.bindToController; if (n && Object.keys(t.scope).length) throw new Error("Binding definitions on scope and controller at the same time is not supported."); var i = n ? t.bindToController : t.scope , r = new Q; return "object" == typeof i && Object.keys(i).forEach((function(t) { var n = i[t].charAt(0); switch (n) { case "@": case "<": break; case "=": r.twoWayBoundProperties.push(t), r.twoWayBoundLastValues.push(J), r.propertyToOutputMap[t] = t + "Change"; break; case "&": r.expressionBoundProperties.push(t), r.propertyToOutputMap[t] = t; break; default: var o = JSON.stringify(i); throw new Error("Unexpected mapping '" + n + "' in '" + o + "' in '" + e.name + "' directive.") } } )), r } , t.prototype.initializeOutputs = function() { var t = this; this.bindings.twoWayBoundProperties.concat(this.bindings.expressionBoundProperties).forEach((function(e) { var n = t.bindings.propertyToOutputMap[e]; t[n] = new r.EventEmitter } )) } , t.prototype.bindOutputs = function() { var t = this; this.bindings.expressionBoundProperties.forEach((function(e) { var n = t.bindings.propertyToOutputMap[e] , i = t[n]; t.bindingDestination[e] = function(t) { return i.emit(t) } } )) } , t.prototype.forwardChanges = function(t) { var e = this; Object.keys(t).forEach((function(n) { return e.bindingDestination[n] = t[n].currentValue } )), M(this.bindingDestination.$onChanges) && this.bindingDestination.$onChanges(t) } , t.ɵfac = function(t) { r["ɵɵinvalidFactory"]() } , t.ɵdir = r["ɵɵdefineDirective"]({ type: t, features: [r["ɵɵNgOnChangesFeature"]] }), t }() , tt = function() { function t(t, e) { this.ngZone = e, this.injector = new z(t) } return t.prototype.bootstrap = function(t, e, n) { var o = this; void 0 === e && (e = []); var a = "$$UpgradeModule.init" , s = (h(a, []).constant("$$angularUpgradeAppType", 2).value(m, this.injector).factory("$$angularLazyModuleRef", [m, function(t) { return { injector: t } } ]).config(["$provide", "$injector", function(t, e) { e.has("$$testability") && t.decorator("$$testability", ["$delegate", function(t) { var e = t.whenStable , n = o.injector , i = function(o) { e.call(t, (function() { var e = n.get(r.Testability); e.isStable() ? o() : e.whenStable(i.bind(t, o)) } )) }; return t.whenStable = i, t } ]), e.has("$interval") && t.decorator("$interval", ["$delegate", function(t) { var e = function(e, n, r, a) { for (var s = [], c = 4; c < arguments.length; c++) s[c - 4] = arguments[c]; return o.ngZone.runOutsideAngular((function() { return t.apply(void 0, Object(i.h)([function() { for (var t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n]; setTimeout((function() { o.ngZone.run((function() { return e.apply(void 0, Object(i.h)(t)) } )) } )) } , n, r, a], s)) } )) }; return e.cancel = t.cancel, e } ]) } ]).run(["$injector", function(e) { o.$injector = e, N(e), o.injector.get("$injector"), f(t).data(b(m), o.injector), setTimeout((function() { var t = e.get("$rootScope") , n = o.ngZone.onMicrotaskEmpty.subscribe((function() { return t.$$phase ? (Object(r.isDevMode)() && console.warn("A digest was triggered while one was already in progress. This may mean that something is triggering digests outside the Angular zone."), t.$evalAsync()) : t.$digest() } )); t.$on("$destroy", (function() { n.unsubscribe() } )) } ), 0) } ]), h("$$UpgradeModule", [a].concat(e))) , l = window.angular; if (l.resumeBootstrap = void 0, this.ngZone.run((function() { !function(t, e, n) { c.bootstrap(t, e, n) }(t, [s.name], n) } )), l.resumeBootstrap) { var u = l.resumeBootstrap , d = this.ngZone; l.resumeBootstrap = function() { var t = this , e = arguments; return l.resumeBootstrap = u, d.run((function() { return l.resumeBootstrap.apply(t, e) } )) } } } , (t = Object(i.b)([Object(i.d)("design:paramtypes", [r.Injector, r.NgZone])], t)).ɵmod = r["ɵɵdefineNgModule"]({ type: t }), t.ɵinj = r["ɵɵdefineInjector"]({ factory: function(e) { return new (e || t)(r["ɵɵinject"](r.Injector),r["ɵɵinject"](r.NgZone)) }, providers: [B] }), t }() } , function(t, e, n) { (function(t, i) { var r; /** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ (function() { var o = "Expected a function" , a = "__lodash_placeholder__" , s = [["ary", 128], ["bind", 1], ["bindKey", 2], ["curry", 8], ["curryRight", 16], ["flip", 512], ["partial", 32], ["partialRight", 64], ["rearg", 256]] , c = "[object Arguments]" , l = "[object Array]" , u = "[object Boolean]" , d = "[object Date]" , p = "[object Error]" , h = "[object Function]" , f = "[object GeneratorFunction]" , m = "[object Map]" , g = "[object Number]" , v = "[object Object]" , y = "[object RegExp]" , b = "[object Set]" , w = "[object String]" , S = "[object Symbol]" , x = "[object WeakMap]" , M = "[object ArrayBuffer]" , E = "[object DataView]" , C = "[object Float32Array]" , A = "[object Float64Array]" , T = "[object Int8Array]" , O = "[object Int16Array]" , _ = "[object Int32Array]" , P = "[object Uint8Array]" , I = "[object Uint16Array]" , k = "[object Uint32Array]" , D = /\b__p \+= '';/g , R = /\b(__p \+=) '' \+/g , L = /(__e\(.*?\)|\b__t\)) \+\n'';/g , N = /&(?:amp|lt|gt|quot|#39);/g , j = /[&<>"']/g , V = RegExp(N.source) , F = RegExp(j.source) , U = /<%-([\s\S]+?)%>/g , B = /<%([\s\S]+?)%>/g , z = /<%=([\s\S]+?)%>/g , G = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , H = /^\w*$/ , W = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g , q = /[\\^$.*+?()[\]{}|]/g , X = RegExp(q.source) , Y = /^\s+|\s+$/g , K = /^\s+/ , Z = /\s+$/ , J = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/ , Q = /\{\n\/\* \[wrapped with (.+)\] \*/ , $ = /,? & / , tt = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g , et = /\\(\\)?/g , nt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g , it = /\w*$/ , rt = /^[-+]0x[0-9a-f]+$/i , ot = /^0b[01]+$/i , at = /^\[object .+?Constructor\]$/ , st = /^0o[0-7]+$/i , ct = /^(?:0|[1-9]\d*)$/ , lt = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g , ut = /($^)/ , dt = /['\n\r\u2028\u2029\\]/g , pt = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff" , ht = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\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" , ft = "[\\ud800-\\udfff]" , mt = "[" + ht + "]" , gt = "[" + pt + "]" , vt = "\\d+" , yt = "[\\u2700-\\u27bf]" , bt = "[a-z\\xdf-\\xf6\\xf8-\\xff]" , wt = "[^\\ud800-\\udfff" + ht + vt + "\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]" , St = "\\ud83c[\\udffb-\\udfff]" , xt = "[^\\ud800-\\udfff]" , Mt = "(?:\\ud83c[\\udde6-\\uddff]){2}" , Et = "[\\ud800-\\udbff][\\udc00-\\udfff]" , Ct = "[A-Z\\xc0-\\xd6\\xd8-\\xde]" , At = "(?:" + bt + "|" + wt + ")" , Tt = "(?:" + Ct + "|" + wt + ")" , Ot = "(?:" + gt + "|" + St + ")" + "?" , _t = "[\\ufe0e\\ufe0f]?" + Ot + ("(?:\\u200d(?:" + [xt, Mt, Et].join("|") + ")[\\ufe0e\\ufe0f]?" + Ot + ")*") , Pt = "(?:" + [yt, Mt, Et].join("|") + ")" + _t , It = "(?:" + [xt + gt + "?", gt, Mt, Et, ft].join("|") + ")" , kt = RegExp("['’]", "g") , Dt = RegExp(gt, "g") , Rt = RegExp(St + "(?=" + St + ")|" + It + _t, "g") , Lt = RegExp([Ct + "?" + bt + "+(?:['’](?:d|ll|m|re|s|t|ve))?(?=" + [mt, Ct, "$"].join("|") + ")", Tt + "+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=" + [mt, Ct + At, "$"].join("|") + ")", Ct + "?" + At + "+(?:['’](?:d|ll|m|re|s|t|ve))?", Ct + "+(?:['’](?: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_])", vt, Pt].join("|"), "g") , Nt = RegExp("[\\u200d\\ud800-\\udfff" + pt + "\\ufe0e\\ufe0f]") , jt = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/ , Vt = ["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"] , Ft = -1 , Ut = {}; Ut[C] = Ut[A] = Ut[T] = Ut[O] = Ut[_] = Ut[P] = Ut["[object Uint8ClampedArray]"] = Ut[I] = Ut[k] = !0, Ut[c] = Ut[l] = Ut[M] = Ut[u] = Ut[E] = Ut[d] = Ut[p] = Ut[h] = Ut[m] = Ut[g] = Ut[v] = Ut[y] = Ut[b] = Ut[w] = Ut[x] = !1; var Bt = {}; Bt[c] = Bt[l] = Bt[M] = Bt[E] = Bt[u] = Bt[d] = Bt[C] = Bt[A] = Bt[T] = Bt[O] = Bt[_] = Bt[m] = Bt[g] = Bt[v] = Bt[y] = Bt[b] = Bt[w] = Bt[S] = Bt[P] = Bt["[object Uint8ClampedArray]"] = Bt[I] = Bt[k] = !0, Bt[p] = Bt[h] = Bt[x] = !1; var zt = { "\\": "\\", "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029" } , Gt = parseFloat , Ht = parseInt , Wt = "object" == typeof t && t && t.Object === Object && t , qt = "object" == typeof self && self && self.Object === Object && self , Xt = Wt || qt || Function("return this")() , Yt = e && !e.nodeType && e , Kt = Yt && "object" == typeof i && i && !i.nodeType && i , Zt = Kt && Kt.exports === Yt , Jt = Zt && Wt.process , Qt = function() { try { var t = Kt && Kt.require && Kt.require("util").types; return t || Jt && Jt.binding && Jt.binding("util") } catch (t) {} }() , $t = Qt && Qt.isArrayBuffer , te = Qt && Qt.isDate , ee = Qt && Qt.isMap , ne = Qt && Qt.isRegExp , ie = Qt && Qt.isSet , re = Qt && Qt.isTypedArray; function oe(t, e, n) { switch (n.length) { case 0: return t.call(e); case 1: return t.call(e, n[0]); case 2: return t.call(e, n[0], n[1]); case 3: return t.call(e, n[0], n[1], n[2]) } return t.apply(e, n) } function ae(t, e, n, i) { for (var r = -1, o = null == t ? 0 : t.length; ++r < o; ) { var a = t[r]; e(i, a, n(a), t) } return i } function se(t, e) { for (var n = -1, i = null == t ? 0 : t.length; ++n < i && !1 !== e(t[n], n, t); ) ; return t } function ce(t, e) { for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t); ) ; return t } function le(t, e) { for (var n = -1, i = null == t ? 0 : t.length; ++n < i; ) if (!e(t[n], n, t)) return !1; return !0 } function ue(t, e) { for (var n = -1, i = null == t ? 0 : t.length, r = 0, o = []; ++n < i; ) { var a = t[n]; e(a, n, t) && (o[r++] = a) } return o } function de(t, e) { return !!(null == t ? 0 : t.length) && Se(t, e, 0) > -1 } function pe(t, e, n) { for (var i = -1, r = null == t ? 0 : t.length; ++i < r; ) if (n(e, t[i])) return !0; return !1 } function he(t, e) { for (var n = -1, i = null == t ? 0 : t.length, r = Array(i); ++n < i; ) r[n] = e(t[n], n, t); return r } function fe(t, e) { for (var n = -1, i = e.length, r = t.length; ++n < i; ) t[r + n] = e[n]; return t } function me(t, e, n, i) { var r = -1 , o = null == t ? 0 : t.length; for (i && o && (n = t[++r]); ++r < o; ) n = e(n, t[r], r, t); return n } function ge(t, e, n, i) { var r = null == t ? 0 : t.length; for (i && r && (n = t[--r]); r--; ) n = e(n, t[r], r, t); return n } function ve(t, e) { for (var n = -1, i = null == t ? 0 : t.length; ++n < i; ) if (e(t[n], n, t)) return !0; return !1 } var ye = Ce("length"); function be(t, e, n) { var i; return n(t, (function(t, n, r) { if (e(t, n, r)) return i = n, !1 } )), i } function we(t, e, n, i) { for (var r = t.length, o = n + (i ? 1 : -1); i ? o-- : ++o < r; ) if (e(t[o], o, t)) return o; return -1 } function Se(t, e, n) { return e == e ? function(t, e, n) { var i = n - 1 , r = t.length; for (; ++i < r; ) if (t[i] === e) return i; return -1 }(t, e, n) : we(t, Me, n) } function xe(t, e, n, i) { for (var r = n - 1, o = t.length; ++r < o; ) if (i(t[r], e)) return r; return -1 } function Me(t) { return t != t } function Ee(t, e) { var n = null == t ? 0 : t.length; return n ? Oe(t, e) / n : NaN } function Ce(t) { return function(e) { return null == e ? void 0 : e[t] } } function Ae(t) { return function(e) { return null == t ? void 0 : t[e] } } function Te(t, e, n, i, r) { return r(t, (function(t, r, o) { n = i ? (i = !1, t) : e(n, t, r, o) } )), n } function Oe(t, e) { for (var n, i = -1, r = t.length; ++i < r; ) { var o = e(t[i]); void 0 !== o && (n = void 0 === n ? o : n + o) } return n } function _e(t, e) { for (var n = -1, i = Array(t); ++n < t; ) i[n] = e(n); return i } function Pe(t) { return function(e) { return t(e) } } function Ie(t, e) { return he(e, (function(e) { return t[e] } )) } function ke(t, e) { return t.has(e) } function De(t, e) { for (var n = -1, i = t.length; ++n < i && Se(e, t[n], 0) > -1; ) ; return n } function Re(t, e) { for (var n = t.length; n-- && Se(e, t[n], 0) > -1; ) ; return n } function Le(t, e) { for (var n = t.length, i = 0; n--; ) t[n] === e && ++i; return i } var Ne = Ae({ "À": "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" }) , je = Ae({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }); function Ve(t) { return "\\" + zt[t] } function Fe(t) { return Nt.test(t) } function Ue(t) { var e = -1 , n = Array(t.size); return t.forEach((function(t, i) { n[++e] = [i, t] } )), n } function Be(t, e) { return function(n) { return t(e(n)) } } function ze(t, e) { for (var n = -1, i = t.length, r = 0, o = []; ++n < i; ) { var s = t[n]; s !== e && s !== a || (t[n] = a, o[r++] = n) } return o } function Ge(t) { var e = -1 , n = Array(t.size); return t.forEach((function(t) { n[++e] = t } )), n } function He(t) { var e = -1 , n = Array(t.size); return t.forEach((function(t) { n[++e] = [t, t] } )), n } function We(t) { return Fe(t) ? function(t) { var e = Rt.lastIndex = 0; for (; Rt.test(t); ) ++e; return e }(t) : ye(t) } function qe(t) { return Fe(t) ? function(t) { return t.match(Rt) || [] }(t) : function(t) { return t.split("") }(t) } var Xe = Ae({ "&": "&", "<": "<", ">": ">", """: '"', "'": "'" }); var Ye = function t(e) { var n, i = (e = null == e ? Xt : Ye.defaults(Xt.Object(), e, Ye.pick(Xt, Vt))).Array, r = e.Date, pt = e.Error, ht = e.Function, ft = e.Math, mt = e.Object, gt = e.RegExp, vt = e.String, yt = e.TypeError, bt = i.prototype, wt = ht.prototype, St = mt.prototype, xt = e["__core-js_shared__"], Mt = wt.toString, Et = St.hasOwnProperty, Ct = 0, At = (n = /[^.]+$/.exec(xt && xt.keys && xt.keys.IE_PROTO || "")) ? "Symbol(src)_1." + n : "", Tt = St.toString, Ot = Mt.call(mt), _t = Xt._, Pt = gt("^" + Mt.call(Et).replace(q, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), It = Zt ? e.Buffer : void 0, Rt = e.Symbol, Nt = e.Uint8Array, zt = It ? It.allocUnsafe : void 0, Wt = Be(mt.getPrototypeOf, mt), qt = mt.create, Yt = St.propertyIsEnumerable, Kt = bt.splice, Jt = Rt ? Rt.isConcatSpreadable : void 0, Qt = Rt ? Rt.iterator : void 0, ye = Rt ? Rt.toStringTag : void 0, Ae = function() { try { var t = $r(mt, "defineProperty"); return t({}, "", {}), t } catch (t) {} }(), Ke = e.clearTimeout !== Xt.clearTimeout && e.clearTimeout, Ze = r && r.now !== Xt.Date.now && r.now, Je = e.setTimeout !== Xt.setTimeout && e.setTimeout, Qe = ft.ceil, $e = ft.floor, tn = mt.getOwnPropertySymbols, en = It ? It.isBuffer : void 0, nn = e.isFinite, rn = bt.join, on = Be(mt.keys, mt), an = ft.max, sn = ft.min, cn = r.now, ln = e.parseInt, un = ft.random, dn = bt.reverse, pn = $r(e, "DataView"), hn = $r(e, "Map"), fn = $r(e, "Promise"), mn = $r(e, "Set"), gn = $r(e, "WeakMap"), vn = $r(mt, "create"), yn = gn && new gn, bn = {}, wn = To(pn), Sn = To(hn), xn = To(fn), Mn = To(mn), En = To(gn), Cn = Rt ? Rt.prototype : void 0, An = Cn ? Cn.valueOf : void 0, Tn = Cn ? Cn.toString : void 0; function On(t) { if (Ha(t) && !Da(t) && !(t instanceof kn)) { if (t instanceof In) return t; if (Et.call(t, "__wrapped__")) return Oo(t) } return new In(t) } var _n = function() { function t() {} return function(e) { if (!Ga(e)) return {}; if (qt) return qt(e); t.prototype = e; var n = new t; return t.prototype = void 0, n } }(); function Pn() {} function In(t, e) { this.__wrapped__ = t, this.__actions__ = [], this.__chain__ = !!e, this.__index__ = 0, this.__values__ = void 0 } function kn(t) { this.__wrapped__ = t, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = 4294967295, this.__views__ = [] } function Dn(t) { var e = -1 , n = null == t ? 0 : t.length; for (this.clear(); ++e < n; ) { var i = t[e]; this.set(i[0], i[1]) } } function Rn(t) { var e = -1 , n = null == t ? 0 : t.length; for (this.clear(); ++e < n; ) { var i = t[e]; this.set(i[0], i[1]) } } function Ln(t) { var e = -1 , n = null == t ? 0 : t.length; for (this.clear(); ++e < n; ) { var i = t[e]; this.set(i[0], i[1]) } } function Nn(t) { var e = -1 , n = null == t ? 0 : t.length; for (this.__data__ = new Ln; ++e < n; ) this.add(t[e]) } function jn(t) { var e = this.__data__ = new Rn(t); this.size = e.size } function Vn(t, e) { var n = Da(t) , i = !n && ka(t) , r = !n && !i && ja(t) , o = !n && !i && !r && Qa(t) , a = n || i || r || o , s = a ? _e(t.length, vt) : [] , c = s.length; for (var l in t) !e && !Et.call(t, l) || a && ("length" == l || r && ("offset" == l || "parent" == l) || o && ("buffer" == l || "byteLength" == l || "byteOffset" == l) || ao(l, c)) || s.push(l); return s } function Fn(t) { var e = t.length; return e ? t[Ni(0, e - 1)] : void 0 } function Un(t, e) { return Eo(vr(t), Kn(e, 0, t.length)) } function Bn(t) { return Eo(vr(t)) } function zn(t, e, n) { (void 0 !== n && !_a(t[e], n) || void 0 === n && !(e in t)) && Xn(t, e, n) } function Gn(t, e, n) { var i = t[e]; Et.call(t, e) && _a(i, n) && (void 0 !== n || e in t) || Xn(t, e, n) } function Hn(t, e) { for (var n = t.length; n--; ) if (_a(t[n][0], e)) return n; return -1 } function Wn(t, e, n, i) { return ti(t, (function(t, r, o) { e(i, t, n(t), o) } )), i } function qn(t, e) { return t && yr(e, ws(e), t) } function Xn(t, e, n) { "__proto__" == e && Ae ? Ae(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : t[e] = n } function Yn(t, e) { for (var n = -1, r = e.length, o = i(r), a = null == t; ++n < r; ) o[n] = a ? void 0 : ms(t, e[n]); return o } function Kn(t, e, n) { return t == t && (void 0 !== n && (t = t <= n ? t : n), void 0 !== e && (t = t >= e ? t : e)), t } function Zn(t, e, n, i, r, o) { var a, s = 1 & e, l = 2 & e, p = 4 & e; if (n && (a = r ? n(t, i, r, o) : n(t)), void 0 !== a) return a; if (!Ga(t)) return t; var x = Da(t); if (x) { if (a = function(t) { var e = t.length , n = new t.constructor(e); e && "string" == typeof t[0] && Et.call(t, "index") && (n.index = t.index, n.input = t.input); return n }(t), !s) return vr(t, a) } else { var D = no(t) , R = D == h || D == f; if (ja(t)) return dr(t, s); if (D == v || D == c || R && !r) { if (a = l || R ? {} : ro(t), !s) return l ? function(t, e) { return yr(t, eo(t), e) }(t, function(t, e) { return t && yr(e, Ss(e), t) }(a, t)) : function(t, e) { return yr(t, to(t), e) }(t, qn(a, t)) } else { if (!Bt[D]) return r ? t : {}; a = function(t, e, n) { var i = t.constructor; switch (e) { case M: return pr(t); case u: case d: return new i(+t); case E: return function(t, e) { var n = e ? pr(t.buffer) : t.buffer; return new t.constructor(n,t.byteOffset,t.byteLength) }(t, n); case C: case A: case T: case O: case _: case P: case "[object Uint8ClampedArray]": case I: case k: return hr(t, n); case m: return new i; case g: case w: return new i(t); case y: return function(t) { var e = new t.constructor(t.source,it.exec(t)); return e.lastIndex = t.lastIndex, e }(t); case b: return new i; case S: return r = t, An ? mt(An.call(r)) : {} } var r }(t, D, s) } } o || (o = new jn); var L = o.get(t); if (L) return L; o.set(t, a), Ka(t) ? t.forEach((function(i) { a.add(Zn(i, e, n, i, t, o)) } )) : Wa(t) && t.forEach((function(i, r) { a.set(r, Zn(i, e, n, r, t, o)) } )); var N = x ? void 0 : (p ? l ? qr : Wr : l ? Ss : ws)(t); return se(N || t, (function(i, r) { N && (i = t[r = i]), Gn(a, r, Zn(i, e, n, r, t, o)) } )), a } function Jn(t, e, n) { var i = n.length; if (null == t) return !i; for (t = mt(t); i--; ) { var r = n[i] , o = e[r] , a = t[r]; if (void 0 === a && !(r in t) || !o(a)) return !1 } return !0 } function Qn(t, e, n) { if ("function" != typeof t) throw new yt(o); return wo((function() { t.apply(void 0, n) } ), e) } function $n(t, e, n, i) { var r = -1 , o = de , a = !0 , s = t.length , c = [] , l = e.length; if (!s) return c; n && (e = he(e, Pe(n))), i ? (o = pe, a = !1) : e.length >= 200 && (o = ke, a = !1, e = new Nn(e)); t: for (; ++r < s; ) { var u = t[r] , d = null == n ? u : n(u); if (u = i || 0 !== u ? u : 0, a && d == d) { for (var p = l; p--; ) if (e[p] === d) continue t; c.push(u) } else o(e, d, i) || c.push(u) } return c } On.templateSettings = { escape: U, evaluate: B, interpolate: z, variable: "", imports: { _: On } }, On.prototype = Pn.prototype, On.prototype.constructor = On, In.prototype = _n(Pn.prototype), In.prototype.constructor = In, kn.prototype = _n(Pn.prototype), kn.prototype.constructor = kn, Dn.prototype.clear = function() { this.__data__ = vn ? vn(null) : {}, this.size = 0 } , Dn.prototype.delete = function(t) { var e = this.has(t) && delete this.__data__[t]; return this.size -= e ? 1 : 0, e } , Dn.prototype.get = function(t) { var e = this.__data__; if (vn) { var n = e[t]; return "__lodash_hash_undefined__" === n ? void 0 : n } return Et.call(e, t) ? e[t] : void 0 } , Dn.prototype.has = function(t) { var e = this.__data__; return vn ? void 0 !== e[t] : Et.call(e, t) } , Dn.prototype.set = function(t, e) { var n = this.__data__; return this.size += this.has(t) ? 0 : 1, n[t] = vn && void 0 === e ? "__lodash_hash_undefined__" : e, this } , Rn.prototype.clear = function() { this.__data__ = [], this.size = 0 } , Rn.prototype.delete = function(t) { var e = this.__data__ , n = Hn(e, t); return !(n < 0) && (n == e.length - 1 ? e.pop() : Kt.call(e, n, 1), --this.size, !0) } , Rn.prototype.get = function(t) { var e = this.__data__ , n = Hn(e, t); return n < 0 ? void 0 : e[n][1] } , Rn.prototype.has = function(t) { return Hn(this.__data__, t) > -1 } , Rn.prototype.set = function(t, e) { var n = this.__data__ , i = Hn(n, t); return i < 0 ? (++this.size, n.push([t, e])) : n[i][1] = e, this } , Ln.prototype.clear = function() { this.size = 0, this.__data__ = { hash: new Dn, map: new (hn || Rn), string: new Dn } } , Ln.prototype.delete = function(t) { var e = Jr(this, t).delete(t); return this.size -= e ? 1 : 0, e } , Ln.prototype.get = function(t) { return Jr(this, t).get(t) } , Ln.prototype.has = function(t) { return Jr(this, t).has(t) } , Ln.prototype.set = function(t, e) { var n = Jr(this, t) , i = n.size; return n.set(t, e), this.size += n.size == i ? 0 : 1, this } , Nn.prototype.add = Nn.prototype.push = function(t) { return this.__data__.set(t, "__lodash_hash_undefined__"), this } , Nn.prototype.has = function(t) { return this.__data__.has(t) } , jn.prototype.clear = function() { this.__data__ = new Rn, this.size = 0 } , jn.prototype.delete = function(t) { var e = this.__data__ , n = e.delete(t); return this.size = e.size, n } , jn.prototype.get = function(t) { return this.__data__.get(t) } , jn.prototype.has = function(t) { return this.__data__.has(t) } , jn.prototype.set = function(t, e) { var n = this.__data__; if (n instanceof Rn) { var i = n.__data__; if (!hn || i.length < 199) return i.push([t, e]), this.size = ++n.size, this; n = this.__data__ = new Ln(i) } return n.set(t, e), this.size = n.size, this } ; var ti = Sr(ci) , ei = Sr(li, !0); function ni(t, e) { var n = !0; return ti(t, (function(t, i, r) { return n = !!e(t, i, r) } )), n } function ii(t, e, n) { for (var i = -1, r = t.length; ++i < r; ) { var o = t[i] , a = e(o); if (null != a && (void 0 === s ? a == a && !Ja(a) : n(a, s))) var s = a , c = o } return c } function ri(t, e) { var n = []; return ti(t, (function(t, i, r) { e(t, i, r) && n.push(t) } )), n } function oi(t, e, n, i, r) { var o = -1 , a = t.length; for (n || (n = oo), r || (r = []); ++o < a; ) { var s = t[o]; e > 0 && n(s) ? e > 1 ? oi(s, e - 1, n, i, r) : fe(r, s) : i || (r[r.length] = s) } return r } var ai = xr() , si = xr(!0); function ci(t, e) { return t && ai(t, e, ws) } function li(t, e) { return t && si(t, e, ws) } function ui(t, e) { return ue(e, (function(e) { return Ua(t[e]) } )) } function di(t, e) { for (var n = 0, i = (e = sr(e, t)).length; null != t && n < i; ) t = t[Ao(e[n++])]; return n && n == i ? t : void 0 } function pi(t, e, n) { var i = e(t); return Da(t) ? i : fe(i, n(t)) } function hi(t) { return null == t ? void 0 === t ? "[object Undefined]" : "[object Null]" : ye && ye in mt(t) ? function(t) { var e = Et.call(t, ye) , n = t[ye]; try { t[ye] = void 0; var i = !0 } catch (t) {} var r = Tt.call(t); i && (e ? t[ye] = n : delete t[ye]); return r }(t) : function(t) { return Tt.call(t) }(t) } function fi(t, e) { return t > e } function mi(t, e) { return null != t && Et.call(t, e) } function gi(t, e) { return null != t && e in mt(t) } function vi(t, e, n) { for (var r = n ? pe : de, o = t[0].length, a = t.length, s = a, c = i(a), l = 1 / 0, u = []; s--; ) { var d = t[s]; s && e && (d = he(d, Pe(e))), l = sn(d.length, l), c[s] = !n && (e || o >= 120 && d.length >= 120) ? new Nn(s && d) : void 0 } d = t[0]; var p = -1 , h = c[0]; t: for (; ++p < o && u.length < l; ) { var f = d[p] , m = e ? e(f) : f; if (f = n || 0 !== f ? f : 0, !(h ? ke(h, m) : r(u, m, n))) { for (s = a; --s; ) { var g = c[s]; if (!(g ? ke(g, m) : r(t[s], m, n))) continue t } h && h.push(m), u.push(f) } } return u } function yi(t, e, n) { var i = null == (t = go(t, e = sr(e, t))) ? t : t[Ao(Fo(e))]; return null == i ? void 0 : oe(i, t, n) } function bi(t) { return Ha(t) && hi(t) == c } function wi(t, e, n, i, r) { return t === e || (null == t || null == e || !Ha(t) && !Ha(e) ? t != t && e != e : function(t, e, n, i, r, o) { var a = Da(t) , s = Da(e) , h = a ? l : no(t) , f = s ? l : no(e) , x = (h = h == c ? v : h) == v , C = (f = f == c ? v : f) == v , A = h == f; if (A && ja(t)) { if (!ja(e)) return !1; a = !0, x = !1 } if (A && !x) return o || (o = new jn), a || Qa(t) ? Gr(t, e, n, i, r, o) : function(t, e, n, i, r, o, a) { switch (n) { case E: if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1; t = t.buffer, e = e.buffer; case M: return !(t.byteLength != e.byteLength || !o(new Nt(t), new Nt(e))); case u: case d: case g: return _a(+t, +e); case p: return t.name == e.name && t.message == e.message; case y: case w: return t == e + ""; case m: var s = Ue; case b: var c = 1 & i; if (s || (s = Ge), t.size != e.size && !c) return !1; var l = a.get(t); if (l) return l == e; i |= 2, a.set(t, e); var h = Gr(s(t), s(e), i, r, o, a); return a.delete(t), h; case S: if (An) return An.call(t) == An.call(e) } return !1 }(t, e, h, n, i, r, o); if (!(1 & n)) { var T = x && Et.call(t, "__wrapped__") , O = C && Et.call(e, "__wrapped__"); if (T || O) { var _ = T ? t.value() : t , P = O ? e.value() : e; return o || (o = new jn), r(_, P, n, i, o) } } if (!A) return !1; return o || (o = new jn), function(t, e, n, i, r, o) { var a = 1 & n , s = Wr(t) , c = s.length , l = Wr(e).length; if (c != l && !a) return !1; var u = c; for (; u--; ) { var d = s[u]; if (!(a ? d in e : Et.call(e, d))) return !1 } var p = o.get(t) , h = o.get(e); if (p && h) return p == e && h == t; var f = !0; o.set(t, e), o.set(e, t); var m = a; for (; ++u < c; ) { d = s[u]; var g = t[d] , v = e[d]; if (i) var y = a ? i(v, g, d, e, t, o) : i(g, v, d, t, e, o); if (!(void 0 === y ? g === v || r(g, v, n, i, o) : y)) { f = !1; break } m || (m = "constructor" == d) } if (f && !m) { var b = t.constructor , w = e.constructor; b == w || !("constructor"in t) || !("constructor"in e) || "function" == typeof b && b instanceof b && "function" == typeof w && w instanceof w || (f = !1) } return o.delete(t), o.delete(e), f }(t, e, n, i, r, o) }(t, e, n, i, wi, r)) } function Si(t, e, n, i) { var r = n.length , o = r , a = !i; if (null == t) return !o; for (t = mt(t); r--; ) { var s = n[r]; if (a && s[2] ? s[1] !== t[s[0]] : !(s[0]in t)) return !1 } for (; ++r < o; ) { var c = (s = n[r])[0] , l = t[c] , u = s[1]; if (a && s[2]) { if (void 0 === l && !(c in t)) return !1 } else { var d = new jn; if (i) var p = i(l, u, c, t, e, d); if (!(void 0 === p ? wi(u, l, 3, i, d) : p)) return !1 } } return !0 } function xi(t) { return !(!Ga(t) || (e = t, At && At in e)) && (Ua(t) ? Pt : at).test(To(t)); var e } function Mi(t) { return "function" == typeof t ? t : null == t ? qs : "object" == typeof t ? Da(t) ? _i(t[0], t[1]) : Oi(t) : ec(t) } function Ei(t) { if (!po(t)) return on(t); var e = []; for (var n in mt(t)) Et.call(t, n) && "constructor" != n && e.push(n); return e } function Ci(t) { if (!Ga(t)) return function(t) { var e = []; if (null != t) for (var n in mt(t)) e.push(n); return e }(t); var e = po(t) , n = []; for (var i in t) ("constructor" != i || !e && Et.call(t, i)) && n.push(i); return n } function Ai(t, e) { return t < e } function Ti(t, e) { var n = -1 , r = La(t) ? i(t.length) : []; return ti(t, (function(t, i, o) { r[++n] = e(t, i, o) } )), r } function Oi(t) { var e = Qr(t); return 1 == e.length && e[0][2] ? fo(e[0][0], e[0][1]) : function(n) { return n === t || Si(n, t, e) } } function _i(t, e) { return co(t) && ho(e) ? fo(Ao(t), e) : function(n) { var i = ms(n, t); return void 0 === i && i === e ? gs(n, t) : wi(e, i, 3) } } function Pi(t, e, n, i, r) { t !== e && ai(e, (function(o, a) { if (r || (r = new jn), Ga(o)) !function(t, e, n, i, r, o, a) { var s = yo(t, n) , c = yo(e, n) , l = a.get(c); if (l) return void zn(t, n, l); var u = o ? o(s, c, n + "", t, e, a) : void 0 , d = void 0 === u; if (d) { var p = Da(c) , h = !p && ja(c) , f = !p && !h && Qa(c); u = c, p || h || f ? Da(s) ? u = s : Na(s) ? u = vr(s) : h ? (d = !1, u = dr(c, !0)) : f ? (d = !1, u = hr(c, !0)) : u = [] : Xa(c) || ka(c) ? (u = s, ka(s) ? u = as(s) : Ga(s) && !Ua(s) || (u = ro(c))) : d = !1 } d && (a.set(c, u), r(u, c, i, o, a), a.delete(c)); zn(t, n, u) }(t, e, a, n, Pi, i, r); else { var s = i ? i(yo(t, a), o, a + "", t, e, r) : void 0; void 0 === s && (s = o), zn(t, a, s) } } ), Ss) } function Ii(t, e) { var n = t.length; if (n) return ao(e += e < 0 ? n : 0, n) ? t[e] : void 0 } function ki(t, e, n) { e = e.length ? he(e, (function(t) { return Da(t) ? function(e) { return di(e, 1 === t.length ? t[0] : t) } : t } )) : [qs]; var i = -1; return e = he(e, Pe(Zr())), function(t, e) { var n = t.length; for (t.sort(e); n--; ) t[n] = t[n].value; return t }(Ti(t, (function(t, n, r) { return { criteria: he(e, (function(e) { return e(t) } )), index: ++i, value: t } } )), (function(t, e) { return function(t, e, n) { var i = -1 , r = t.criteria , o = e.criteria , a = r.length , s = n.length; for (; ++i < a; ) { var c = fr(r[i], o[i]); if (c) { if (i >= s) return c; var l = n[i]; return c * ("desc" == l ? -1 : 1) } } return t.index - e.index }(t, e, n) } )) } function Di(t, e, n) { for (var i = -1, r = e.length, o = {}; ++i < r; ) { var a = e[i] , s = di(t, a); n(s, a) && Bi(o, sr(a, t), s) } return o } function Ri(t, e, n, i) { var r = i ? xe : Se , o = -1 , a = e.length , s = t; for (t === e && (e = vr(e)), n && (s = he(t, Pe(n))); ++o < a; ) for (var c = 0, l = e[o], u = n ? n(l) : l; (c = r(s, u, c, i)) > -1; ) s !== t && Kt.call(s, c, 1), Kt.call(t, c, 1); return t } function Li(t, e) { for (var n = t ? e.length : 0, i = n - 1; n--; ) { var r = e[n]; if (n == i || r !== o) { var o = r; ao(r) ? Kt.call(t, r, 1) : $i(t, r) } } return t } function Ni(t, e) { return t + $e(un() * (e - t + 1)) } function ji(t, e) { var n = ""; if (!t || e < 1 || e > 9007199254740991) return n; do { e % 2 && (n += t), (e = $e(e / 2)) && (t += t) } while (e); return n } function Vi(t, e) { return So(mo(t, e, qs), t + "") } function Fi(t) { return Fn(_s(t)) } function Ui(t, e) { var n = _s(t); return Eo(n, Kn(e, 0, n.length)) } function Bi(t, e, n, i) { if (!Ga(t)) return t; for (var r = -1, o = (e = sr(e, t)).length, a = o - 1, s = t; null != s && ++r < o; ) { var c = Ao(e[r]) , l = n; if ("__proto__" === c || "constructor" === c || "prototype" === c) return t; if (r != a) { var u = s[c]; void 0 === (l = i ? i(u, c, s) : void 0) && (l = Ga(u) ? u : ao(e[r + 1]) ? [] : {}) } Gn(s, c, l), s = s[c] } return t } var zi = yn ? function(t, e) { return yn.set(t, e), t } : qs , Gi = Ae ? function(t, e) { return Ae(t, "toString", { configurable: !0, enumerable: !1, value: Gs(e), writable: !0 }) } : qs; function Hi(t) { return Eo(_s(t)) } function Wi(t, e, n) { var r = -1 , o = t.length; e < 0 && (e = -e > o ? 0 : o + e), (n = n > o ? o : n) < 0 && (n += o), o = e > n ? 0 : n - e >>> 0, e >>>= 0; for (var a = i(o); ++r < o; ) a[r] = t[r + e]; return a } function qi(t, e) { var n; return ti(t, (function(t, i, r) { return !(n = e(t, i, r)) } )), !!n } function Xi(t, e, n) { var i = 0 , r = null == t ? i : t.length; if ("number" == typeof e && e == e && r <= 2147483647) { for (; i < r; ) { var o = i + r >>> 1 , a = t[o]; null !== a && !Ja(a) && (n ? a <= e : a < e) ? i = o + 1 : r = o } return r } return Yi(t, e, qs, n) } function Yi(t, e, n, i) { var r = 0 , o = null == t ? 0 : t.length; if (0 === o) return 0; for (var a = (e = n(e)) != e, s = null === e, c = Ja(e), l = void 0 === e; r < o; ) { var u = $e((r + o) / 2) , d = n(t[u]) , p = void 0 !== d , h = null === d , f = d == d , m = Ja(d); if (a) var g = i || f; else g = l ? f && (i || p) : s ? f && p && (i || !h) : c ? f && p && !h && (i || !m) : !h && !m && (i ? d <= e : d < e); g ? r = u + 1 : o = u } return sn(o, 4294967294) } function Ki(t, e) { for (var n = -1, i = t.length, r = 0, o = []; ++n < i; ) { var a = t[n] , s = e ? e(a) : a; if (!n || !_a(s, c)) { var c = s; o[r++] = 0 === a ? 0 : a } } return o } function Zi(t) { return "number" == typeof t ? t : Ja(t) ? NaN : +t } function Ji(t) { if ("string" == typeof t) return t; if (Da(t)) return he(t, Ji) + ""; if (Ja(t)) return Tn ? Tn.call(t) : ""; var e = t + ""; return "0" == e && 1 / t == -1 / 0 ? "-0" : e } function Qi(t, e, n) { var i = -1 , r = de , o = t.length , a = !0 , s = [] , c = s; if (n) a = !1, r = pe; else if (o >= 200) { var l = e ? null : jr(t); if (l) return Ge(l); a = !1, r = ke, c = new Nn } else c = e ? [] : s; t: for (; ++i < o; ) { var u = t[i] , d = e ? e(u) : u; if (u = n || 0 !== u ? u : 0, a && d == d) { for (var p = c.length; p--; ) if (c[p] === d) continue t; e && c.push(d), s.push(u) } else r(c, d, n) || (c !== s && c.push(d), s.push(u)) } return s } function $i(t, e) { return null == (t = go(t, e = sr(e, t))) || delete t[Ao(Fo(e))] } function tr(t, e, n, i) { return Bi(t, e, n(di(t, e)), i) } function er(t, e, n, i) { for (var r = t.length, o = i ? r : -1; (i ? o-- : ++o < r) && e(t[o], o, t); ) ; return n ? Wi(t, i ? 0 : o, i ? o + 1 : r) : Wi(t, i ? o + 1 : 0, i ? r : o) } function nr(t, e) { var n = t; return n instanceof kn && (n = n.value()), me(e, (function(t, e) { return e.func.apply(e.thisArg, fe([t], e.args)) } ), n) } function ir(t, e, n) { var r = t.length; if (r < 2) return r ? Qi(t[0]) : []; for (var o = -1, a = i(r); ++o < r; ) for (var s = t[o], c = -1; ++c < r; ) c != o && (a[o] = $n(a[o] || s, t[c], e, n)); return Qi(oi(a, 1), e, n) } function rr(t, e, n) { for (var i = -1, r = t.length, o = e.length, a = {}; ++i < r; ) { var s = i < o ? e[i] : void 0; n(a, t[i], s) } return a } function or(t) { return Na(t) ? t : [] } function ar(t) { return "function" == typeof t ? t : qs } function sr(t, e) { return Da(t) ? t : co(t, e) ? [t] : Co(ss(t)) } var cr = Vi; function lr(t, e, n) { var i = t.length; return n = void 0 === n ? i : n, !e && n >= i ? t : Wi(t, e, n) } var ur = Ke || function(t) { return Xt.clearTimeout(t) } ; function dr(t, e) { if (e) return t.slice(); var n = t.length , i = zt ? zt(n) : new t.constructor(n); return t.copy(i), i } function pr(t) { var e = new t.constructor(t.byteLength); return new Nt(e).set(new Nt(t)), e } function hr(t, e) { var n = e ? pr(t.buffer) : t.buffer; return new t.constructor(n,t.byteOffset,t.length) } function fr(t, e) { if (t !== e) { var n = void 0 !== t , i = null === t , r = t == t , o = Ja(t) , a = void 0 !== e , s = null === e , c = e == e , l = Ja(e); if (!s && !l && !o && t > e || o && a && c && !s && !l || i && a && c || !n && c || !r) return 1; if (!i && !o && !l && t < e || l && n && r && !i && !o || s && n && r || !a && r || !c) return -1 } return 0 } function mr(t, e, n, r) { for (var o = -1, a = t.length, s = n.length, c = -1, l = e.length, u = an(a - s, 0), d = i(l + u), p = !r; ++c < l; ) d[c] = e[c]; for (; ++o < s; ) (p || o < a) && (d[n[o]] = t[o]); for (; u--; ) d[c++] = t[o++]; return d } function gr(t, e, n, r) { for (var o = -1, a = t.length, s = -1, c = n.length, l = -1, u = e.length, d = an(a - c, 0), p = i(d + u), h = !r; ++o < d; ) p[o] = t[o]; for (var f = o; ++l < u; ) p[f + l] = e[l]; for (; ++s < c; ) (h || o < a) && (p[f + n[s]] = t[o++]); return p } function vr(t, e) { var n = -1 , r = t.length; for (e || (e = i(r)); ++n < r; ) e[n] = t[n]; return e } function yr(t, e, n, i) { var r = !n; n || (n = {}); for (var o = -1, a = e.length; ++o < a; ) { var s = e[o] , c = i ? i(n[s], t[s], s, n, t) : void 0; void 0 === c && (c = t[s]), r ? Xn(n, s, c) : Gn(n, s, c) } return n } function br(t, e) { return function(n, i) { var r = Da(n) ? ae : Wn , o = e ? e() : {}; return r(n, t, Zr(i, 2), o) } } function wr(t) { return Vi((function(e, n) { var i = -1 , r = n.length , o = r > 1 ? n[r - 1] : void 0 , a = r > 2 ? n[2] : void 0; for (o = t.length > 3 && "function" == typeof o ? (r--, o) : void 0, a && so(n[0], n[1], a) && (o = r < 3 ? void 0 : o, r = 1), e = mt(e); ++i < r; ) { var s = n[i]; s && t(e, s, i, o) } return e } )) } function Sr(t, e) { return function(n, i) { if (null == n) return n; if (!La(n)) return t(n, i); for (var r = n.length, o = e ? r : -1, a = mt(n); (e ? o-- : ++o < r) && !1 !== i(a[o], o, a); ) ; return n } } function xr(t) { return function(e, n, i) { for (var r = -1, o = mt(e), a = i(e), s = a.length; s--; ) { var c = a[t ? s : ++r]; if (!1 === n(o[c], c, o)) break } return e } } function Mr(t) { return function(e) { var n = Fe(e = ss(e)) ? qe(e) : void 0 , i = n ? n[0] : e.charAt(0) , r = n ? lr(n, 1).join("") : e.slice(1); return i[t]() + r } } function Er(t) { return function(e) { return me(Us(ks(e).replace(kt, "")), t, "") } } function Cr(t) { return function() { var e = arguments; switch (e.length) { case 0: return new t; case 1: return new t(e[0]); case 2: return new t(e[0],e[1]); case 3: return new t(e[0],e[1],e[2]); case 4: return new t(e[0],e[1],e[2],e[3]); case 5: return new t(e[0],e[1],e[2],e[3],e[4]); case 6: return new t(e[0],e[1],e[2],e[3],e[4],e[5]); case 7: return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6]) } var n = _n(t.prototype) , i = t.apply(n, e); return Ga(i) ? i : n } } function Ar(t) { return function(e, n, i) { var r = mt(e); if (!La(e)) { var o = Zr(n, 3); e = ws(e), n = function(t) { return o(r[t], t, r) } } var a = t(e, n, i); return a > -1 ? r[o ? e[a] : a] : void 0 } } function Tr(t) { return Hr((function(e) { var n = e.length , i = n , r = In.prototype.thru; for (t && e.reverse(); i--; ) { var a = e[i]; if ("function" != typeof a) throw new yt(o); if (r && !s && "wrapper" == Yr(a)) var s = new In([],!0) } for (i = s ? i : n; ++i < n; ) { var c = Yr(a = e[i]) , l = "wrapper" == c ? Xr(a) : void 0; s = l && lo(l[0]) && 424 == l[1] && !l[4].length && 1 == l[9] ? s[Yr(l[0])].apply(s, l[3]) : 1 == a.length && lo(a) ? s[c]() : s.thru(a) } return function() { var t = arguments , i = t[0]; if (s && 1 == t.length && Da(i)) return s.plant(i).value(); for (var r = 0, o = n ? e[r].apply(this, t) : i; ++r < n; ) o = e[r].call(this, o); return o } } )) } function Or(t, e, n, r, o, a, s, c, l, u) { var d = 128 & e , p = 1 & e , h = 2 & e , f = 24 & e , m = 512 & e , g = h ? void 0 : Cr(t); return function v() { for (var y = arguments.length, b = i(y), w = y; w--; ) b[w] = arguments[w]; if (f) var S = Kr(v) , x = Le(b, S); if (r && (b = mr(b, r, o, f)), a && (b = gr(b, a, s, f)), y -= x, f && y < u) { var M = ze(b, S); return Lr(t, e, Or, v.placeholder, n, b, M, c, l, u - y) } var E = p ? n : this , C = h ? E[t] : t; return y = b.length, c ? b = vo(b, c) : m && y > 1 && b.reverse(), d && l < y && (b.length = l), this && this !== Xt && this instanceof v && (C = g || Cr(C)), C.apply(E, b) } } function _r(t, e) { return function(n, i) { return function(t, e, n, i) { return ci(t, (function(t, r, o) { e(i, n(t), r, o) } )), i }(n, t, e(i), {}) } } function Pr(t, e) { return function(n, i) { var r; if (void 0 === n && void 0 === i) return e; if (void 0 !== n && (r = n), void 0 !== i) { if (void 0 === r) return i; "string" == typeof n || "string" == typeof i ? (n = Ji(n), i = Ji(i)) : (n = Zi(n), i = Zi(i)), r = t(n, i) } return r } } function Ir(t) { return Hr((function(e) { return e = he(e, Pe(Zr())), Vi((function(n) { var i = this; return t(e, (function(t) { return oe(t, i, n) } )) } )) } )) } function kr(t, e) { var n = (e = void 0 === e ? " " : Ji(e)).length; if (n < 2) return n ? ji(e, t) : e; var i = ji(e, Qe(t / We(e))); return Fe(e) ? lr(qe(i), 0, t).join("") : i.slice(0, t) } function Dr(t) { return function(e, n, r) { return r && "number" != typeof r && so(e, n, r) && (n = r = void 0), e = ns(e), void 0 === n ? (n = e, e = 0) : n = ns(n), function(t, e, n, r) { for (var o = -1, a = an(Qe((e - t) / (n || 1)), 0), s = i(a); a--; ) s[r ? a : ++o] = t, t += n; return s }(e, n, r = void 0 === r ? e < n ? 1 : -1 : ns(r), t) } } function Rr(t) { return function(e, n) { return "string" == typeof e && "string" == typeof n || (e = os(e), n = os(n)), t(e, n) } } function Lr(t, e, n, i, r, o, a, s, c, l) { var u = 8 & e; e |= u ? 32 : 64, 4 & (e &= ~(u ? 64 : 32)) || (e &= -4); var d = [t, e, r, u ? o : void 0, u ? a : void 0, u ? void 0 : o, u ? void 0 : a, s, c, l] , p = n.apply(void 0, d); return lo(t) && bo(p, d), p.placeholder = i, xo(p, t, e) } function Nr(t) { var e = ft[t]; return function(t, n) { if (t = os(t), (n = null == n ? 0 : sn(is(n), 292)) && nn(t)) { var i = (ss(t) + "e").split("e"); return +((i = (ss(e(i[0] + "e" + (+i[1] + n))) + "e").split("e"))[0] + "e" + (+i[1] - n)) } return e(t) } } var jr = mn && 1 / Ge(new mn([, -0]))[1] == 1 / 0 ? function(t) { return new mn(t) } : Js; function Vr(t) { return function(e) { var n = no(e); return n == m ? Ue(e) : n == b ? He(e) : function(t, e) { return he(e, (function(e) { return [e, t[e]] } )) }(e, t(e)) } } function Fr(t, e, n, r, s, c, l, u) { var d = 2 & e; if (!d && "function" != typeof t) throw new yt(o); var p = r ? r.length : 0; if (p || (e &= -97, r = s = void 0), l = void 0 === l ? l : an(is(l), 0), u = void 0 === u ? u : is(u), p -= s ? s.length : 0, 64 & e) { var h = r , f = s; r = s = void 0 } var m = d ? void 0 : Xr(t) , g = [t, e, n, r, s, h, f, c, l, u]; if (m && function(t, e) { var n = t[1] , i = e[1] , r = n | i , o = r < 131 , s = 128 == i && 8 == n || 128 == i && 256 == n && t[7].length <= e[8] || 384 == i && e[7].length <= e[8] && 8 == n; if (!o && !s) return t; 1 & i && (t[2] = e[2], r |= 1 & n ? 0 : 4); var c = e[3]; if (c) { var l = t[3]; t[3] = l ? mr(l, c, e[4]) : c, t[4] = l ? ze(t[3], a) : e[4] } (c = e[5]) && (l = t[5], t[5] = l ? gr(l, c, e[6]) : c, t[6] = l ? ze(t[5], a) : e[6]); (c = e[7]) && (t[7] = c); 128 & i && (t[8] = null == t[8] ? e[8] : sn(t[8], e[8])); null == t[9] && (t[9] = e[9]); t[0] = e[0], t[1] = r }(g, m), t = g[0], e = g[1], n = g[2], r = g[3], s = g[4], !(u = g[9] = void 0 === g[9] ? d ? 0 : t.length : an(g[9] - p, 0)) && 24 & e && (e &= -25), e && 1 != e) v = 8 == e || 16 == e ? function(t, e, n) { var r = Cr(t); return function o() { for (var a = arguments.length, s = i(a), c = a, l = Kr(o); c--; ) s[c] = arguments[c]; var u = a < 3 && s[0] !== l && s[a - 1] !== l ? [] : ze(s, l); if ((a -= u.length) < n) return Lr(t, e, Or, o.placeholder, void 0, s, u, void 0, void 0, n - a); var d = this && this !== Xt && this instanceof o ? r : t; return oe(d, this, s) } }(t, e, u) : 32 != e && 33 != e || s.length ? Or.apply(void 0, g) : function(t, e, n, r) { var o = 1 & e , a = Cr(t); return function e() { for (var s = -1, c = arguments.length, l = -1, u = r.length, d = i(u + c), p = this && this !== Xt && this instanceof e ? a : t; ++l < u; ) d[l] = r[l]; for (; c--; ) d[l++] = arguments[++s]; return oe(p, o ? n : this, d) } }(t, e, n, r); else var v = function(t, e, n) { var i = 1 & e , r = Cr(t); return function e() { var o = this && this !== Xt && this instanceof e ? r : t; return o.apply(i ? n : this, arguments) } }(t, e, n); return xo((m ? zi : bo)(v, g), t, e) } function Ur(t, e, n, i) { return void 0 === t || _a(t, St[n]) && !Et.call(i, n) ? e : t } function Br(t, e, n, i, r, o) { return Ga(t) && Ga(e) && (o.set(e, t), Pi(t, e, void 0, Br, o), o.delete(e)), t } function zr(t) { return Xa(t) ? void 0 : t } function Gr(t, e, n, i, r, o) { var a = 1 & n , s = t.length , c = e.length; if (s != c && !(a && c > s)) return !1; var l = o.get(t) , u = o.get(e); if (l && u) return l == e && u == t; var d = -1 , p = !0 , h = 2 & n ? new Nn : void 0; for (o.set(t, e), o.set(e, t); ++d < s; ) { var f = t[d] , m = e[d]; if (i) var g = a ? i(m, f, d, e, t, o) : i(f, m, d, t, e, o); if (void 0 !== g) { if (g) continue; p = !1; break } if (h) { if (!ve(e, (function(t, e) { if (!ke(h, e) && (f === t || r(f, t, n, i, o))) return h.push(e) } ))) { p = !1; break } } else if (f !== m && !r(f, m, n, i, o)) { p = !1; break } } return o.delete(t), o.delete(e), p } function Hr(t) { return So(mo(t, void 0, Ro), t + "") } function Wr(t) { return pi(t, ws, to) } function qr(t) { return pi(t, Ss, eo) } var Xr = yn ? function(t) { return yn.get(t) } : Js; function Yr(t) { for (var e = t.name + "", n = bn[e], i = Et.call(bn, e) ? n.length : 0; i--; ) { var r = n[i] , o = r.func; if (null == o || o == t) return r.name } return e } function Kr(t) { return (Et.call(On, "placeholder") ? On : t).placeholder } function Zr() { var t = On.iteratee || Xs; return t = t === Xs ? Mi : t, arguments.length ? t(arguments[0], arguments[1]) : t } function Jr(t, e) { var n, i, r = t.__data__; return ("string" == (i = typeof (n = e)) || "number" == i || "symbol" == i || "boolean" == i ? "__proto__" !== n : null === n) ? r["string" == typeof e ? "string" : "hash"] : r.map } function Qr(t) { for (var e = ws(t), n = e.length; n--; ) { var i = e[n] , r = t[i]; e[n] = [i, r, ho(r)] } return e } function $r(t, e) { var n = function(t, e) { return null == t ? void 0 : t[e] }(t, e); return xi(n) ? n : void 0 } var to = tn ? function(t) { return null == t ? [] : (t = mt(t), ue(tn(t), (function(e) { return Yt.call(t, e) } ))) } : rc , eo = tn ? function(t) { for (var e = []; t; ) fe(e, to(t)), t = Wt(t); return e } : rc , no = hi; function io(t, e, n) { for (var i = -1, r = (e = sr(e, t)).length, o = !1; ++i < r; ) { var a = Ao(e[i]); if (!(o = null != t && n(t, a))) break; t = t[a] } return o || ++i != r ? o : !!(r = null == t ? 0 : t.length) && za(r) && ao(a, r) && (Da(t) || ka(t)) } function ro(t) { return "function" != typeof t.constructor || po(t) ? {} : _n(Wt(t)) } function oo(t) { return Da(t) || ka(t) || !!(Jt && t && t[Jt]) } function ao(t, e) { var n = typeof t; return !!(e = null == e ? 9007199254740991 : e) && ("number" == n || "symbol" != n && ct.test(t)) && t > -1 && t % 1 == 0 && t < e } function so(t, e, n) { if (!Ga(n)) return !1; var i = typeof e; return !!("number" == i ? La(n) && ao(e, n.length) : "string" == i && e in n) && _a(n[e], t) } function co(t, e) { if (Da(t)) return !1; var n = typeof t; return !("number" != n && "symbol" != n && "boolean" != n && null != t && !Ja(t)) || (H.test(t) || !G.test(t) || null != e && t in mt(e)) } function lo(t) { var e = Yr(t) , n = On[e]; if ("function" != typeof n || !(e in kn.prototype)) return !1; if (t === n) return !0; var i = Xr(n); return !!i && t === i[0] } (pn && no(new pn(new ArrayBuffer(1))) != E || hn && no(new hn) != m || fn && "[object Promise]" != no(fn.resolve()) || mn && no(new mn) != b || gn && no(new gn) != x) && (no = function(t) { var e = hi(t) , n = e == v ? t.constructor : void 0 , i = n ? To(n) : ""; if (i) switch (i) { case wn: return E; case Sn: return m; case xn: return "[object Promise]"; case Mn: return b; case En: return x } return e } ); var uo = xt ? Ua : oc; function po(t) { var e = t && t.constructor; return t === ("function" == typeof e && e.prototype || St) } function ho(t) { return t == t && !Ga(t) } function fo(t, e) { return function(n) { return null != n && (n[t] === e && (void 0 !== e || t in mt(n))) } } function mo(t, e, n) { return e = an(void 0 === e ? t.length - 1 : e, 0), function() { for (var r = arguments, o = -1, a = an(r.length - e, 0), s = i(a); ++o < a; ) s[o] = r[e + o]; o = -1; for (var c = i(e + 1); ++o < e; ) c[o] = r[o]; return c[e] = n(s), oe(t, this, c) } } function go(t, e) { return e.length < 2 ? t : di(t, Wi(e, 0, -1)) } function vo(t, e) { for (var n = t.length, i = sn(e.length, n), r = vr(t); i--; ) { var o = e[i]; t[i] = ao(o, n) ? r[o] : void 0 } return t } function yo(t, e) { if (("constructor" !== e || "function" != typeof t[e]) && "__proto__" != e) return t[e] } var bo = Mo(zi) , wo = Je || function(t, e) { return Xt.setTimeout(t, e) } , So = Mo(Gi); function xo(t, e, n) { var i = e + ""; return So(t, function(t, e) { var n = e.length; if (!n) return t; var i = n - 1; return e[i] = (n > 1 ? "& " : "") + e[i], e = e.join(n > 2 ? ", " : " "), t.replace(J, "{\n/* [wrapped with " + e + "] */\n") }(i, function(t, e) { return se(s, (function(n) { var i = "_." + n[0]; e & n[1] && !de(t, i) && t.push(i) } )), t.sort() }(function(t) { var e = t.match(Q); return e ? e[1].split($) : [] }(i), n))) } function Mo(t) { var e = 0 , n = 0; return function() { var i = cn() , r = 16 - (i - n); if (n = i, r > 0) { if (++e >= 800) return arguments[0] } else e = 0; return t.apply(void 0, arguments) } } function Eo(t, e) { var n = -1 , i = t.length , r = i - 1; for (e = void 0 === e ? i : e; ++n < e; ) { var o = Ni(n, r) , a = t[o]; t[o] = t[n], t[n] = a } return t.length = e, t } var Co = function(t) { var e = Ma(t, (function(t) { return 500 === n.size && n.clear(), t } )) , n = e.cache; return e }((function(t) { var e = []; return 46 === t.charCodeAt(0) && e.push(""), t.replace(W, (function(t, n, i, r) { e.push(i ? r.replace(et, "$1") : n || t) } )), e } )); function Ao(t) { if ("string" == typeof t || Ja(t)) return t; var e = t + ""; return "0" == e && 1 / t == -1 / 0 ? "-0" : e } function To(t) { if (null != t) { try { return Mt.call(t) } catch (t) {} try { return t + "" } catch (t) {} } return "" } function Oo(t) { if (t instanceof kn) return t.clone(); var e = new In(t.__wrapped__,t.__chain__); return e.__actions__ = vr(t.__actions__), e.__index__ = t.__index__, e.__values__ = t.__values__, e } var _o = Vi((function(t, e) { return Na(t) ? $n(t, oi(e, 1, Na, !0)) : [] } )) , Po = Vi((function(t, e) { var n = Fo(e); return Na(n) && (n = void 0), Na(t) ? $n(t, oi(e, 1, Na, !0), Zr(n, 2)) : [] } )) , Io = Vi((function(t, e) { var n = Fo(e); return Na(n) && (n = void 0), Na(t) ? $n(t, oi(e, 1, Na, !0), void 0, n) : [] } )); function ko(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var r = null == n ? 0 : is(n); return r < 0 && (r = an(i + r, 0)), we(t, Zr(e, 3), r) } function Do(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var r = i - 1; return void 0 !== n && (r = is(n), r = n < 0 ? an(i + r, 0) : sn(r, i - 1)), we(t, Zr(e, 3), r, !0) } function Ro(t) { return (null == t ? 0 : t.length) ? oi(t, 1) : [] } function Lo(t) { return t && t.length ? t[0] : void 0 } var No = Vi((function(t) { var e = he(t, or); return e.length && e[0] === t[0] ? vi(e) : [] } )) , jo = Vi((function(t) { var e = Fo(t) , n = he(t, or); return e === Fo(n) ? e = void 0 : n.pop(), n.length && n[0] === t[0] ? vi(n, Zr(e, 2)) : [] } )) , Vo = Vi((function(t) { var e = Fo(t) , n = he(t, or); return (e = "function" == typeof e ? e : void 0) && n.pop(), n.length && n[0] === t[0] ? vi(n, void 0, e) : [] } )); function Fo(t) { var e = null == t ? 0 : t.length; return e ? t[e - 1] : void 0 } var Uo = Vi(Bo); function Bo(t, e) { return t && t.length && e && e.length ? Ri(t, e) : t } var zo = Hr((function(t, e) { var n = null == t ? 0 : t.length , i = Yn(t, e); return Li(t, he(e, (function(t) { return ao(t, n) ? +t : t } )).sort(fr)), i } )); function Go(t) { return null == t ? t : dn.call(t) } var Ho = Vi((function(t) { return Qi(oi(t, 1, Na, !0)) } )) , Wo = Vi((function(t) { var e = Fo(t); return Na(e) && (e = void 0), Qi(oi(t, 1, Na, !0), Zr(e, 2)) } )) , qo = Vi((function(t) { var e = Fo(t); return e = "function" == typeof e ? e : void 0, Qi(oi(t, 1, Na, !0), void 0, e) } )); function Xo(t) { if (!t || !t.length) return []; var e = 0; return t = ue(t, (function(t) { if (Na(t)) return e = an(t.length, e), !0 } )), _e(e, (function(e) { return he(t, Ce(e)) } )) } function Yo(t, e) { if (!t || !t.length) return []; var n = Xo(t); return null == e ? n : he(n, (function(t) { return oe(e, void 0, t) } )) } var Ko = Vi((function(t, e) { return Na(t) ? $n(t, e) : [] } )) , Zo = Vi((function(t) { return ir(ue(t, Na)) } )) , Jo = Vi((function(t) { var e = Fo(t); return Na(e) && (e = void 0), ir(ue(t, Na), Zr(e, 2)) } )) , Qo = Vi((function(t) { var e = Fo(t); return e = "function" == typeof e ? e : void 0, ir(ue(t, Na), void 0, e) } )) , $o = Vi(Xo); var ta = Vi((function(t) { var e = t.length , n = e > 1 ? t[e - 1] : void 0; return n = "function" == typeof n ? (t.pop(), n) : void 0, Yo(t, n) } )); function ea(t) { var e = On(t); return e.__chain__ = !0, e } function na(t, e) { return e(t) } var ia = Hr((function(t) { var e = t.length , n = e ? t[0] : 0 , i = this.__wrapped__ , r = function(e) { return Yn(e, t) }; return !(e > 1 || this.__actions__.length) && i instanceof kn && ao(n) ? ((i = i.slice(n, +n + (e ? 1 : 0))).__actions__.push({ func: na, args: [r], thisArg: void 0 }), new In(i,this.__chain__).thru((function(t) { return e && !t.length && t.push(void 0), t } ))) : this.thru(r) } )); var ra = br((function(t, e, n) { Et.call(t, n) ? ++t[n] : Xn(t, n, 1) } )); var oa = Ar(ko) , aa = Ar(Do); function sa(t, e) { return (Da(t) ? se : ti)(t, Zr(e, 3)) } function ca(t, e) { return (Da(t) ? ce : ei)(t, Zr(e, 3)) } var la = br((function(t, e, n) { Et.call(t, n) ? t[n].push(e) : Xn(t, n, [e]) } )); var ua = Vi((function(t, e, n) { var r = -1 , o = "function" == typeof e , a = La(t) ? i(t.length) : []; return ti(t, (function(t) { a[++r] = o ? oe(e, t, n) : yi(t, e, n) } )), a } )) , da = br((function(t, e, n) { Xn(t, n, e) } )); function pa(t, e) { return (Da(t) ? he : Ti)(t, Zr(e, 3)) } var ha = br((function(t, e, n) { t[n ? 0 : 1].push(e) } ), (function() { return [[], []] } )); var fa = Vi((function(t, e) { if (null == t) return []; var n = e.length; return n > 1 && so(t, e[0], e[1]) ? e = [] : n > 2 && so(e[0], e[1], e[2]) && (e = [e[0]]), ki(t, oi(e, 1), []) } )) , ma = Ze || function() { return Xt.Date.now() } ; function ga(t, e, n) { return e = n ? void 0 : e, Fr(t, 128, void 0, void 0, void 0, void 0, e = t && null == e ? t.length : e) } function va(t, e) { var n; if ("function" != typeof e) throw new yt(o); return t = is(t), function() { return --t > 0 && (n = e.apply(this, arguments)), t <= 1 && (e = void 0), n } } var ya = Vi((function(t, e, n) { var i = 1; if (n.length) { var r = ze(n, Kr(ya)); i |= 32 } return Fr(t, i, e, n, r) } )) , ba = Vi((function(t, e, n) { var i = 3; if (n.length) { var r = ze(n, Kr(ba)); i |= 32 } return Fr(e, i, t, n, r) } )); function wa(t, e, n) { var i, r, a, s, c, l, u = 0, d = !1, p = !1, h = !0; if ("function" != typeof t) throw new yt(o); function f(e) { var n = i , o = r; return i = r = void 0, u = e, s = t.apply(o, n) } function m(t) { return u = t, c = wo(v, e), d ? f(t) : s } function g(t) { var n = t - l; return void 0 === l || n >= e || n < 0 || p && t - u >= a } function v() { var t = ma(); if (g(t)) return y(t); c = wo(v, function(t) { var n = e - (t - l); return p ? sn(n, a - (t - u)) : n }(t)) } function y(t) { return c = void 0, h && i ? f(t) : (i = r = void 0, s) } function b() { var t = ma() , n = g(t); if (i = arguments, r = this, l = t, n) { if (void 0 === c) return m(l); if (p) return ur(c), c = wo(v, e), f(l) } return void 0 === c && (c = wo(v, e)), s } return e = os(e) || 0, Ga(n) && (d = !!n.leading, a = (p = "maxWait"in n) ? an(os(n.maxWait) || 0, e) : a, h = "trailing"in n ? !!n.trailing : h), b.cancel = function() { void 0 !== c && ur(c), u = 0, i = l = r = c = void 0 } , b.flush = function() { return void 0 === c ? s : y(ma()) } , b } var Sa = Vi((function(t, e) { return Qn(t, 1, e) } )) , xa = Vi((function(t, e, n) { return Qn(t, os(e) || 0, n) } )); function Ma(t, e) { if ("function" != typeof t || null != e && "function" != typeof e) throw new yt(o); var n = function() { var i = arguments , r = e ? e.apply(this, i) : i[0] , o = n.cache; if (o.has(r)) return o.get(r); var a = t.apply(this, i); return n.cache = o.set(r, a) || o, a }; return n.cache = new (Ma.Cache || Ln), n } function Ea(t) { if ("function" != typeof t) throw new yt(o); return function() { var e = arguments; switch (e.length) { case 0: return !t.call(this); case 1: return !t.call(this, e[0]); case 2: return !t.call(this, e[0], e[1]); case 3: return !t.call(this, e[0], e[1], e[2]) } return !t.apply(this, e) } } Ma.Cache = Ln; var Ca = cr((function(t, e) { var n = (e = 1 == e.length && Da(e[0]) ? he(e[0], Pe(Zr())) : he(oi(e, 1), Pe(Zr()))).length; return Vi((function(i) { for (var r = -1, o = sn(i.length, n); ++r < o; ) i[r] = e[r].call(this, i[r]); return oe(t, this, i) } )) } )) , Aa = Vi((function(t, e) { return Fr(t, 32, void 0, e, ze(e, Kr(Aa))) } )) , Ta = Vi((function(t, e) { return Fr(t, 64, void 0, e, ze(e, Kr(Ta))) } )) , Oa = Hr((function(t, e) { return Fr(t, 256, void 0, void 0, void 0, e) } )); function _a(t, e) { return t === e || t != t && e != e } var Pa = Rr(fi) , Ia = Rr((function(t, e) { return t >= e } )) , ka = bi(function() { return arguments }()) ? bi : function(t) { return Ha(t) && Et.call(t, "callee") && !Yt.call(t, "callee") } , Da = i.isArray , Ra = $t ? Pe($t) : function(t) { return Ha(t) && hi(t) == M } ; function La(t) { return null != t && za(t.length) && !Ua(t) } function Na(t) { return Ha(t) && La(t) } var ja = en || oc , Va = te ? Pe(te) : function(t) { return Ha(t) && hi(t) == d } ; function Fa(t) { if (!Ha(t)) return !1; var e = hi(t); return e == p || "[object DOMException]" == e || "string" == typeof t.message && "string" == typeof t.name && !Xa(t) } function Ua(t) { if (!Ga(t)) return !1; var e = hi(t); return e == h || e == f || "[object AsyncFunction]" == e || "[object Proxy]" == e } function Ba(t) { return "number" == typeof t && t == is(t) } function za(t) { return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991 } function Ga(t) { var e = typeof t; return null != t && ("object" == e || "function" == e) } function Ha(t) { return null != t && "object" == typeof t } var Wa = ee ? Pe(ee) : function(t) { return Ha(t) && no(t) == m } ; function qa(t) { return "number" == typeof t || Ha(t) && hi(t) == g } function Xa(t) { if (!Ha(t) || hi(t) != v) return !1; var e = Wt(t); if (null === e) return !0; var n = Et.call(e, "constructor") && e.constructor; return "function" == typeof n && n instanceof n && Mt.call(n) == Ot } var Ya = ne ? Pe(ne) : function(t) { return Ha(t) && hi(t) == y } ; var Ka = ie ? Pe(ie) : function(t) { return Ha(t) && no(t) == b } ; function Za(t) { return "string" == typeof t || !Da(t) && Ha(t) && hi(t) == w } function Ja(t) { return "symbol" == typeof t || Ha(t) && hi(t) == S } var Qa = re ? Pe(re) : function(t) { return Ha(t) && za(t.length) && !!Ut[hi(t)] } ; var $a = Rr(Ai) , ts = Rr((function(t, e) { return t <= e } )); function es(t) { if (!t) return []; if (La(t)) return Za(t) ? qe(t) : vr(t); if (Qt && t[Qt]) return function(t) { for (var e, n = []; !(e = t.next()).done; ) n.push(e.value); return n }(t[Qt]()); var e = no(t); return (e == m ? Ue : e == b ? Ge : _s)(t) } function ns(t) { return t ? (t = os(t)) === 1 / 0 || t === -1 / 0 ? 17976931348623157e292 * (t < 0 ? -1 : 1) : t == t ? t : 0 : 0 === t ? t : 0 } function is(t) { var e = ns(t) , n = e % 1; return e == e ? n ? e - n : e : 0 } function rs(t) { return t ? Kn(is(t), 0, 4294967295) : 0 } function os(t) { if ("number" == typeof t) return t; if (Ja(t)) return NaN; if (Ga(t)) { var e = "function" == typeof t.valueOf ? t.valueOf() : t; t = Ga(e) ? e + "" : e } if ("string" != typeof t) return 0 === t ? t : +t; t = t.replace(Y, ""); var n = ot.test(t); return n || st.test(t) ? Ht(t.slice(2), n ? 2 : 8) : rt.test(t) ? NaN : +t } function as(t) { return yr(t, Ss(t)) } function ss(t) { return null == t ? "" : Ji(t) } var cs = wr((function(t, e) { if (po(e) || La(e)) yr(e, ws(e), t); else for (var n in e) Et.call(e, n) && Gn(t, n, e[n]) } )) , ls = wr((function(t, e) { yr(e, Ss(e), t) } )) , us = wr((function(t, e, n, i) { yr(e, Ss(e), t, i) } )) , ds = wr((function(t, e, n, i) { yr(e, ws(e), t, i) } )) , ps = Hr(Yn); var hs = Vi((function(t, e) { t = mt(t); var n = -1 , i = e.length , r = i > 2 ? e[2] : void 0; for (r && so(e[0], e[1], r) && (i = 1); ++n < i; ) for (var o = e[n], a = Ss(o), s = -1, c = a.length; ++s < c; ) { var l = a[s] , u = t[l]; (void 0 === u || _a(u, St[l]) && !Et.call(t, l)) && (t[l] = o[l]) } return t } )) , fs = Vi((function(t) { return t.push(void 0, Br), oe(Ms, void 0, t) } )); function ms(t, e, n) { var i = null == t ? void 0 : di(t, e); return void 0 === i ? n : i } function gs(t, e) { return null != t && io(t, e, gi) } var vs = _r((function(t, e, n) { null != e && "function" != typeof e.toString && (e = Tt.call(e)), t[e] = n } ), Gs(qs)) , ys = _r((function(t, e, n) { null != e && "function" != typeof e.toString && (e = Tt.call(e)), Et.call(t, e) ? t[e].push(n) : t[e] = [n] } ), Zr) , bs = Vi(yi); function ws(t) { return La(t) ? Vn(t) : Ei(t) } function Ss(t) { return La(t) ? Vn(t, !0) : Ci(t) } var xs = wr((function(t, e, n) { Pi(t, e, n) } )) , Ms = wr((function(t, e, n, i) { Pi(t, e, n, i) } )) , Es = Hr((function(t, e) { var n = {}; if (null == t) return n; var i = !1; e = he(e, (function(e) { return e = sr(e, t), i || (i = e.length > 1), e } )), yr(t, qr(t), n), i && (n = Zn(n, 7, zr)); for (var r = e.length; r--; ) $i(n, e[r]); return n } )); var Cs = Hr((function(t, e) { return null == t ? {} : function(t, e) { return Di(t, e, (function(e, n) { return gs(t, n) } )) }(t, e) } )); function As(t, e) { if (null == t) return {}; var n = he(qr(t), (function(t) { return [t] } )); return e = Zr(e), Di(t, n, (function(t, n) { return e(t, n[0]) } )) } var Ts = Vr(ws) , Os = Vr(Ss); function _s(t) { return null == t ? [] : Ie(t, ws(t)) } var Ps = Er((function(t, e, n) { return e = e.toLowerCase(), t + (n ? Is(e) : e) } )); function Is(t) { return Fs(ss(t).toLowerCase()) } function ks(t) { return (t = ss(t)) && t.replace(lt, Ne).replace(Dt, "") } var Ds = Er((function(t, e, n) { return t + (n ? "-" : "") + e.toLowerCase() } )) , Rs = Er((function(t, e, n) { return t + (n ? " " : "") + e.toLowerCase() } )) , Ls = Mr("toLowerCase"); var Ns = Er((function(t, e, n) { return t + (n ? "_" : "") + e.toLowerCase() } )); var js = Er((function(t, e, n) { return t + (n ? " " : "") + Fs(e) } )); var Vs = Er((function(t, e, n) { return t + (n ? " " : "") + e.toUpperCase() } )) , Fs = Mr("toUpperCase"); function Us(t, e, n) { return t = ss(t), void 0 === (e = n ? void 0 : e) ? function(t) { return jt.test(t) }(t) ? function(t) { return t.match(Lt) || [] }(t) : function(t) { return t.match(tt) || [] }(t) : t.match(e) || [] } var Bs = Vi((function(t, e) { try { return oe(t, void 0, e) } catch (t) { return Fa(t) ? t : new pt(t) } } )) , zs = Hr((function(t, e) { return se(e, (function(e) { e = Ao(e), Xn(t, e, ya(t[e], t)) } )), t } )); function Gs(t) { return function() { return t } } var Hs = Tr() , Ws = Tr(!0); function qs(t) { return t } function Xs(t) { return Mi("function" == typeof t ? t : Zn(t, 1)) } var Ys = Vi((function(t, e) { return function(n) { return yi(n, t, e) } } )) , Ks = Vi((function(t, e) { return function(n) { return yi(t, n, e) } } )); function Zs(t, e, n) { var i = ws(e) , r = ui(e, i); null != n || Ga(e) && (r.length || !i.length) || (n = e, e = t, t = this, r = ui(e, ws(e))); var o = !(Ga(n) && "chain"in n && !n.chain) , a = Ua(t); return se(r, (function(n) { var i = e[n]; t[n] = i, a && (t.prototype[n] = function() { var e = this.__chain__; if (o || e) { var n = t(this.__wrapped__) , r = n.__actions__ = vr(this.__actions__); return r.push({ func: i, args: arguments, thisArg: t }), n.__chain__ = e, n } return i.apply(t, fe([this.value()], arguments)) } ) } )), t } function Js() {} var Qs = Ir(he) , $s = Ir(le) , tc = Ir(ve); function ec(t) { return co(t) ? Ce(Ao(t)) : function(t) { return function(e) { return di(e, t) } }(t) } var nc = Dr() , ic = Dr(!0); function rc() { return [] } function oc() { return !1 } var ac = Pr((function(t, e) { return t + e } ), 0) , sc = Nr("ceil") , cc = Pr((function(t, e) { return t / e } ), 1) , lc = Nr("floor"); var uc, dc = Pr((function(t, e) { return t * e } ), 1), pc = Nr("round"), hc = Pr((function(t, e) { return t - e } ), 0); return On.after = function(t, e) { if ("function" != typeof e) throw new yt(o); return t = is(t), function() { if (--t < 1) return e.apply(this, arguments) } } , On.ary = ga, On.assign = cs, On.assignIn = ls, On.assignInWith = us, On.assignWith = ds, On.at = ps, On.before = va, On.bind = ya, On.bindAll = zs, On.bindKey = ba, On.castArray = function() { if (!arguments.length) return []; var t = arguments[0]; return Da(t) ? t : [t] } , On.chain = ea, On.chunk = function(t, e, n) { e = (n ? so(t, e, n) : void 0 === e) ? 1 : an(is(e), 0); var r = null == t ? 0 : t.length; if (!r || e < 1) return []; for (var o = 0, a = 0, s = i(Qe(r / e)); o < r; ) s[a++] = Wi(t, o, o += e); return s } , On.compact = function(t) { for (var e = -1, n = null == t ? 0 : t.length, i = 0, r = []; ++e < n; ) { var o = t[e]; o && (r[i++] = o) } return r } , On.concat = function() { var t = arguments.length; if (!t) return []; for (var e = i(t - 1), n = arguments[0], r = t; r--; ) e[r - 1] = arguments[r]; return fe(Da(n) ? vr(n) : [n], oi(e, 1)) } , On.cond = function(t) { var e = null == t ? 0 : t.length , n = Zr(); return t = e ? he(t, (function(t) { if ("function" != typeof t[1]) throw new yt(o); return [n(t[0]), t[1]] } )) : [], Vi((function(n) { for (var i = -1; ++i < e; ) { var r = t[i]; if (oe(r[0], this, n)) return oe(r[1], this, n) } } )) } , On.conforms = function(t) { return function(t) { var e = ws(t); return function(n) { return Jn(n, t, e) } }(Zn(t, 1)) } , On.constant = Gs, On.countBy = ra, On.create = function(t, e) { var n = _n(t); return null == e ? n : qn(n, e) } , On.curry = function t(e, n, i) { var r = Fr(e, 8, void 0, void 0, void 0, void 0, void 0, n = i ? void 0 : n); return r.placeholder = t.placeholder, r } , On.curryRight = function t(e, n, i) { var r = Fr(e, 16, void 0, void 0, void 0, void 0, void 0, n = i ? void 0 : n); return r.placeholder = t.placeholder, r } , On.debounce = wa, On.defaults = hs, On.defaultsDeep = fs, On.defer = Sa, On.delay = xa, On.difference = _o, On.differenceBy = Po, On.differenceWith = Io, On.drop = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Wi(t, (e = n || void 0 === e ? 1 : is(e)) < 0 ? 0 : e, i) : [] } , On.dropRight = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Wi(t, 0, (e = i - (e = n || void 0 === e ? 1 : is(e))) < 0 ? 0 : e) : [] } , On.dropRightWhile = function(t, e) { return t && t.length ? er(t, Zr(e, 3), !0, !0) : [] } , On.dropWhile = function(t, e) { return t && t.length ? er(t, Zr(e, 3), !0) : [] } , On.fill = function(t, e, n, i) { var r = null == t ? 0 : t.length; return r ? (n && "number" != typeof n && so(t, e, n) && (n = 0, i = r), function(t, e, n, i) { var r = t.length; for ((n = is(n)) < 0 && (n = -n > r ? 0 : r + n), (i = void 0 === i || i > r ? r : is(i)) < 0 && (i += r), i = n > i ? 0 : rs(i); n < i; ) t[n++] = e; return t }(t, e, n, i)) : [] } , On.filter = function(t, e) { return (Da(t) ? ue : ri)(t, Zr(e, 3)) } , On.flatMap = function(t, e) { return oi(pa(t, e), 1) } , On.flatMapDeep = function(t, e) { return oi(pa(t, e), 1 / 0) } , On.flatMapDepth = function(t, e, n) { return n = void 0 === n ? 1 : is(n), oi(pa(t, e), n) } , On.flatten = Ro, On.flattenDeep = function(t) { return (null == t ? 0 : t.length) ? oi(t, 1 / 0) : [] } , On.flattenDepth = function(t, e) { return (null == t ? 0 : t.length) ? oi(t, e = void 0 === e ? 1 : is(e)) : [] } , On.flip = function(t) { return Fr(t, 512) } , On.flow = Hs, On.flowRight = Ws, On.fromPairs = function(t) { for (var e = -1, n = null == t ? 0 : t.length, i = {}; ++e < n; ) { var r = t[e]; i[r[0]] = r[1] } return i } , On.functions = function(t) { return null == t ? [] : ui(t, ws(t)) } , On.functionsIn = function(t) { return null == t ? [] : ui(t, Ss(t)) } , On.groupBy = la, On.initial = function(t) { return (null == t ? 0 : t.length) ? Wi(t, 0, -1) : [] } , On.intersection = No, On.intersectionBy = jo, On.intersectionWith = Vo, On.invert = vs, On.invertBy = ys, On.invokeMap = ua, On.iteratee = Xs, On.keyBy = da, On.keys = ws, On.keysIn = Ss, On.map = pa, On.mapKeys = function(t, e) { var n = {}; return e = Zr(e, 3), ci(t, (function(t, i, r) { Xn(n, e(t, i, r), t) } )), n } , On.mapValues = function(t, e) { var n = {}; return e = Zr(e, 3), ci(t, (function(t, i, r) { Xn(n, i, e(t, i, r)) } )), n } , On.matches = function(t) { return Oi(Zn(t, 1)) } , On.matchesProperty = function(t, e) { return _i(t, Zn(e, 1)) } , On.memoize = Ma, On.merge = xs, On.mergeWith = Ms, On.method = Ys, On.methodOf = Ks, On.mixin = Zs, On.negate = Ea, On.nthArg = function(t) { return t = is(t), Vi((function(e) { return Ii(e, t) } )) } , On.omit = Es, On.omitBy = function(t, e) { return As(t, Ea(Zr(e))) } , On.once = function(t) { return va(2, t) } , On.orderBy = function(t, e, n, i) { return null == t ? [] : (Da(e) || (e = null == e ? [] : [e]), Da(n = i ? void 0 : n) || (n = null == n ? [] : [n]), ki(t, e, n)) } , On.over = Qs, On.overArgs = Ca, On.overEvery = $s, On.overSome = tc, On.partial = Aa, On.partialRight = Ta, On.partition = ha, On.pick = Cs, On.pickBy = As, On.property = ec, On.propertyOf = function(t) { return function(e) { return null == t ? void 0 : di(t, e) } } , On.pull = Uo, On.pullAll = Bo, On.pullAllBy = function(t, e, n) { return t && t.length && e && e.length ? Ri(t, e, Zr(n, 2)) : t } , On.pullAllWith = function(t, e, n) { return t && t.length && e && e.length ? Ri(t, e, void 0, n) : t } , On.pullAt = zo, On.range = nc, On.rangeRight = ic, On.rearg = Oa, On.reject = function(t, e) { return (Da(t) ? ue : ri)(t, Ea(Zr(e, 3))) } , On.remove = function(t, e) { var n = []; if (!t || !t.length) return n; var i = -1 , r = [] , o = t.length; for (e = Zr(e, 3); ++i < o; ) { var a = t[i]; e(a, i, t) && (n.push(a), r.push(i)) } return Li(t, r), n } , On.rest = function(t, e) { if ("function" != typeof t) throw new yt(o); return Vi(t, e = void 0 === e ? e : is(e)) } , On.reverse = Go, On.sampleSize = function(t, e, n) { return e = (n ? so(t, e, n) : void 0 === e) ? 1 : is(e), (Da(t) ? Un : Ui)(t, e) } , On.set = function(t, e, n) { return null == t ? t : Bi(t, e, n) } , On.setWith = function(t, e, n, i) { return i = "function" == typeof i ? i : void 0, null == t ? t : Bi(t, e, n, i) } , On.shuffle = function(t) { return (Da(t) ? Bn : Hi)(t) } , On.slice = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? (n && "number" != typeof n && so(t, e, n) ? (e = 0, n = i) : (e = null == e ? 0 : is(e), n = void 0 === n ? i : is(n)), Wi(t, e, n)) : [] } , On.sortBy = fa, On.sortedUniq = function(t) { return t && t.length ? Ki(t) : [] } , On.sortedUniqBy = function(t, e) { return t && t.length ? Ki(t, Zr(e, 2)) : [] } , On.split = function(t, e, n) { return n && "number" != typeof n && so(t, e, n) && (e = n = void 0), (n = void 0 === n ? 4294967295 : n >>> 0) ? (t = ss(t)) && ("string" == typeof e || null != e && !Ya(e)) && !(e = Ji(e)) && Fe(t) ? lr(qe(t), 0, n) : t.split(e, n) : [] } , On.spread = function(t, e) { if ("function" != typeof t) throw new yt(o); return e = null == e ? 0 : an(is(e), 0), Vi((function(n) { var i = n[e] , r = lr(n, 0, e); return i && fe(r, i), oe(t, this, r) } )) } , On.tail = function(t) { var e = null == t ? 0 : t.length; return e ? Wi(t, 1, e) : [] } , On.take = function(t, e, n) { return t && t.length ? Wi(t, 0, (e = n || void 0 === e ? 1 : is(e)) < 0 ? 0 : e) : [] } , On.takeRight = function(t, e, n) { var i = null == t ? 0 : t.length; return i ? Wi(t, (e = i - (e = n || void 0 === e ? 1 : is(e))) < 0 ? 0 : e, i) : [] } , On.takeRightWhile = function(t, e) { return t && t.length ? er(t, Zr(e, 3), !1, !0) : [] } , On.takeWhile = function(t, e) { return t && t.length ? er(t, Zr(e, 3)) : [] } , On.tap = function(t, e) { return e(t), t } , On.throttle = function(t, e, n) { var i = !0 , r = !0; if ("function" != typeof t) throw new yt(o); return Ga(n) && (i = "leading"in n ? !!n.leading : i, r = "trailing"in n ? !!n.trailing : r), wa(t, e, { leading: i, maxWait: e, trailing: r }) } , On.thru = na, On.toArray = es, On.toPairs = Ts, On.toPairsIn = Os, On.toPath = function(t) { return Da(t) ? he(t, Ao) : Ja(t) ? [t] : vr(Co(ss(t))) } , On.toPlainObject = as, On.transform = function(t, e, n) { var i = Da(t) , r = i || ja(t) || Qa(t); if (e = Zr(e, 4), null == n) { var o = t && t.constructor; n = r ? i ? new o : [] : Ga(t) && Ua(o) ? _n(Wt(t)) : {} } return (r ? se : ci)(t, (function(t, i, r) { return e(n, t, i, r) } )), n } , On.unary = function(t) { return ga(t, 1) } , On.union = Ho, On.unionBy = Wo, On.unionWith = qo, On.uniq = function(t) { return t && t.length ? Qi(t) : [] } , On.uniqBy = function(t, e) { return t && t.length ? Qi(t, Zr(e, 2)) : [] } , On.uniqWith = function(t, e) { return e = "function" == typeof e ? e : void 0, t && t.length ? Qi(t, void 0, e) : [] } , On.unset = function(t, e) { return null == t || $i(t, e) } , On.unzip = Xo, On.unzipWith = Yo, On.update = function(t, e, n) { return null == t ? t : tr(t, e, ar(n)) } , On.updateWith = function(t, e, n, i) { return i = "function" == typeof i ? i : void 0, null == t ? t : tr(t, e, ar(n), i) } , On.values = _s, On.valuesIn = function(t) { return null == t ? [] : Ie(t, Ss(t)) } , On.without = Ko, On.words = Us, On.wrap = function(t, e) { return Aa(ar(e), t) } , On.xor = Zo, On.xorBy = Jo, On.xorWith = Qo, On.zip = $o, On.zipObject = function(t, e) { return rr(t || [], e || [], Gn) } , On.zipObjectDeep = function(t, e) { return rr(t || [], e || [], Bi) } , On.zipWith = ta, On.entries = Ts, On.entriesIn = Os, On.extend = ls, On.extendWith = us, Zs(On, On), On.add = ac, On.attempt = Bs, On.camelCase = Ps, On.capitalize = Is, On.ceil = sc, On.clamp = function(t, e, n) { return void 0 === n && (n = e, e = void 0), void 0 !== n && (n = (n = os(n)) == n ? n : 0), void 0 !== e && (e = (e = os(e)) == e ? e : 0), Kn(os(t), e, n) } , On.clone = function(t) { return Zn(t, 4) } , On.cloneDeep = function(t) { return Zn(t, 5) } , On.cloneDeepWith = function(t, e) { return Zn(t, 5, e = "function" == typeof e ? e : void 0) } , On.cloneWith = function(t, e) { return Zn(t, 4, e = "function" == typeof e ? e : void 0) } , On.conformsTo = function(t, e) { return null == e || Jn(t, e, ws(e)) } , On.deburr = ks, On.defaultTo = function(t, e) { return null == t || t != t ? e : t } , On.divide = cc, On.endsWith = function(t, e, n) { t = ss(t), e = Ji(e); var i = t.length , r = n = void 0 === n ? i : Kn(is(n), 0, i); return (n -= e.length) >= 0 && t.slice(n, r) == e } , On.eq = _a, On.escape = function(t) { return (t = ss(t)) && F.test(t) ? t.replace(j, je) : t } , On.escapeRegExp = function(t) { return (t = ss(t)) && X.test(t) ? t.replace(q, "\\$&") : t } , On.every = function(t, e, n) { var i = Da(t) ? le : ni; return n && so(t, e, n) && (e = void 0), i(t, Zr(e, 3)) } , On.find = oa, On.findIndex = ko, On.findKey = function(t, e) { return be(t, Zr(e, 3), ci) } , On.findLast = aa, On.findLastIndex = Do, On.findLastKey = function(t, e) { return be(t, Zr(e, 3), li) } , On.floor = lc, On.forEach = sa, On.forEachRight = ca, On.forIn = function(t, e) { return null == t ? t : ai(t, Zr(e, 3), Ss) } , On.forInRight = function(t, e) { return null == t ? t : si(t, Zr(e, 3), Ss) } , On.forOwn = function(t, e) { return t && ci(t, Zr(e, 3)) } , On.forOwnRight = function(t, e) { return t && li(t, Zr(e, 3)) } , On.get = ms, On.gt = Pa, On.gte = Ia, On.has = function(t, e) { return null != t && io(t, e, mi) } , On.hasIn = gs, On.head = Lo, On.identity = qs, On.includes = function(t, e, n, i) { t = La(t) ? t : _s(t), n = n && !i ? is(n) : 0; var r = t.length; return n < 0 && (n = an(r + n, 0)), Za(t) ? n <= r && t.indexOf(e, n) > -1 : !!r && Se(t, e, n) > -1 } , On.indexOf = function(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var r = null == n ? 0 : is(n); return r < 0 && (r = an(i + r, 0)), Se(t, e, r) } , On.inRange = function(t, e, n) { return e = ns(e), void 0 === n ? (n = e, e = 0) : n = ns(n), function(t, e, n) { return t >= sn(e, n) && t < an(e, n) }(t = os(t), e, n) } , On.invoke = bs, On.isArguments = ka, On.isArray = Da, On.isArrayBuffer = Ra, On.isArrayLike = La, On.isArrayLikeObject = Na, On.isBoolean = function(t) { return !0 === t || !1 === t || Ha(t) && hi(t) == u } , On.isBuffer = ja, On.isDate = Va, On.isElement = function(t) { return Ha(t) && 1 === t.nodeType && !Xa(t) } , On.isEmpty = function(t) { if (null == t) return !0; if (La(t) && (Da(t) || "string" == typeof t || "function" == typeof t.splice || ja(t) || Qa(t) || ka(t))) return !t.length; var e = no(t); if (e == m || e == b) return !t.size; if (po(t)) return !Ei(t).length; for (var n in t) if (Et.call(t, n)) return !1; return !0 } , On.isEqual = function(t, e) { return wi(t, e) } , On.isEqualWith = function(t, e, n) { var i = (n = "function" == typeof n ? n : void 0) ? n(t, e) : void 0; return void 0 === i ? wi(t, e, void 0, n) : !!i } , On.isError = Fa, On.isFinite = function(t) { return "number" == typeof t && nn(t) } , On.isFunction = Ua, On.isInteger = Ba, On.isLength = za, On.isMap = Wa, On.isMatch = function(t, e) { return t === e || Si(t, e, Qr(e)) } , On.isMatchWith = function(t, e, n) { return n = "function" == typeof n ? n : void 0, Si(t, e, Qr(e), n) } , On.isNaN = function(t) { return qa(t) && t != +t } , On.isNative = function(t) { if (uo(t)) throw new pt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill."); return xi(t) } , On.isNil = function(t) { return null == t } , On.isNull = function(t) { return null === t } , On.isNumber = qa, On.isObject = Ga, On.isObjectLike = Ha, On.isPlainObject = Xa, On.isRegExp = Ya, On.isSafeInteger = function(t) { return Ba(t) && t >= -9007199254740991 && t <= 9007199254740991 } , On.isSet = Ka, On.isString = Za, On.isSymbol = Ja, On.isTypedArray = Qa, On.isUndefined = function(t) { return void 0 === t } , On.isWeakMap = function(t) { return Ha(t) && no(t) == x } , On.isWeakSet = function(t) { return Ha(t) && "[object WeakSet]" == hi(t) } , On.join = function(t, e) { return null == t ? "" : rn.call(t, e) } , On.kebabCase = Ds, On.last = Fo, On.lastIndexOf = function(t, e, n) { var i = null == t ? 0 : t.length; if (!i) return -1; var r = i; return void 0 !== n && (r = (r = is(n)) < 0 ? an(i + r, 0) : sn(r, i - 1)), e == e ? function(t, e, n) { for (var i = n + 1; i--; ) if (t[i] === e) return i; return i }(t, e, r) : we(t, Me, r, !0) } , On.lowerCase = Rs, On.lowerFirst = Ls, On.lt = $a, On.lte = ts, On.max = function(t) { return t && t.length ? ii(t, qs, fi) : void 0 } , On.maxBy = function(t, e) { return t && t.length ? ii(t, Zr(e, 2), fi) : void 0 } , On.mean = function(t) { return Ee(t, qs) } , On.meanBy = function(t, e) { return Ee(t, Zr(e, 2)) } , On.min = function(t) { return t && t.length ? ii(t, qs, Ai) : void 0 } , On.minBy = function(t, e) { return t && t.length ? ii(t, Zr(e, 2), Ai) : void 0 } , On.stubArray = rc, On.stubFalse = oc, On.stubObject = function() { return {} } , On.stubString = function() { return "" } , On.stubTrue = function() { return !0 } , On.multiply = dc, On.nth = function(t, e) { return t && t.length ? Ii(t, is(e)) : void 0 } , On.noConflict = function() { return Xt._ === this && (Xt._ = _t), this } , On.noop = Js, On.now = ma, On.pad = function(t, e, n) { t = ss(t); var i = (e = is(e)) ? We(t) : 0; if (!e || i >= e) return t; var r = (e - i) / 2; return kr($e(r), n) + t + kr(Qe(r), n) } , On.padEnd = function(t, e, n) { t = ss(t); var i = (e = is(e)) ? We(t) : 0; return e && i < e ? t + kr(e - i, n) : t } , On.padStart = function(t, e, n) { t = ss(t); var i = (e = is(e)) ? We(t) : 0; return e && i < e ? kr(e - i, n) + t : t } , On.parseInt = function(t, e, n) { return n || null == e ? e = 0 : e && (e = +e), ln(ss(t).replace(K, ""), e || 0) } , On.random = function(t, e, n) { if (n && "boolean" != typeof n && so(t, e, n) && (e = n = void 0), void 0 === n && ("boolean" == typeof e ? (n = e, e = void 0) : "boolean" == typeof t && (n = t, t = void 0)), void 0 === t && void 0 === e ? (t = 0, e = 1) : (t = ns(t), void 0 === e ? (e = t, t = 0) : e = ns(e)), t > e) { var i = t; t = e, e = i } if (n || t % 1 || e % 1) { var r = un(); return sn(t + r * (e - t + Gt("1e-" + ((r + "").length - 1))), e) } return Ni(t, e) } , On.reduce = function(t, e, n) { var i = Da(t) ? me : Te , r = arguments.length < 3; return i(t, Zr(e, 4), n, r, ti) } , On.reduceRight = function(t, e, n) { var i = Da(t) ? ge : Te , r = arguments.length < 3; return i(t, Zr(e, 4), n, r, ei) } , On.repeat = function(t, e, n) { return e = (n ? so(t, e, n) : void 0 === e) ? 1 : is(e), ji(ss(t), e) } , On.replace = function() { var t = arguments , e = ss(t[0]); return t.length < 3 ? e : e.replace(t[1], t[2]) } , On.result = function(t, e, n) { var i = -1 , r = (e = sr(e, t)).length; for (r || (r = 1, t = void 0); ++i < r; ) { var o = null == t ? void 0 : t[Ao(e[i])]; void 0 === o && (i = r, o = n), t = Ua(o) ? o.call(t) : o } return t } , On.round = pc, On.runInContext = t, On.sample = function(t) { return (Da(t) ? Fn : Fi)(t) } , On.size = function(t) { if (null == t) return 0; if (La(t)) return Za(t) ? We(t) : t.length; var e = no(t); return e == m || e == b ? t.size : Ei(t).length } , On.snakeCase = Ns, On.some = function(t, e, n) { var i = Da(t) ? ve : qi; return n && so(t, e, n) && (e = void 0), i(t, Zr(e, 3)) } , On.sortedIndex = function(t, e) { return Xi(t, e) } , On.sortedIndexBy = function(t, e, n) { return Yi(t, e, Zr(n, 2)) } , On.sortedIndexOf = function(t, e) { var n = null == t ? 0 : t.length; if (n) { var i = Xi(t, e); if (i < n && _a(t[i], e)) return i } return -1 } , On.sortedLastIndex = function(t, e) { return Xi(t, e, !0) } , On.sortedLastIndexBy = function(t, e, n) { return Yi(t, e, Zr(n, 2), !0) } , On.sortedLastIndexOf = function(t, e) { if (null == t ? 0 : t.length) { var n = Xi(t, e, !0) - 1; if (_a(t[n], e)) return n } return -1 } , On.startCase = js, On.startsWith = function(t, e, n) { return t = ss(t), n = null == n ? 0 : Kn(is(n), 0, t.length), e = Ji(e), t.slice(n, n + e.length) == e } , On.subtract = hc, On.sum = function(t) { return t && t.length ? Oe(t, qs) : 0 } , On.sumBy = function(t, e) { return t && t.length ? Oe(t, Zr(e, 2)) : 0 } , On.template = function(t, e, n) { var i = On.templateSettings; n && so(t, e, n) && (e = void 0), t = ss(t), e = us({}, e, i, Ur); var r, o, a = us({}, e.imports, i.imports, Ur), s = ws(a), c = Ie(a, s), l = 0, u = e.interpolate || ut, d = "__p += '", p = gt((e.escape || ut).source + "|" + u.source + "|" + (u === z ? nt : ut).source + "|" + (e.evaluate || ut).source + "|$", "g"), h = "//# sourceURL=" + (Et.call(e, "sourceURL") ? (e.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Ft + "]") + "\n"; t.replace(p, (function(e, n, i, a, s, c) { return i || (i = a), d += t.slice(l, c).replace(dt, Ve), n && (r = !0, d += "' +\n__e(" + n + ") +\n'"), s && (o = !0, d += "';\n" + s + ";\n__p += '"), i && (d += "' +\n((__t = (" + i + ")) == null ? '' : __t) +\n'"), l = c + e.length, e } )), d += "';\n"; var f = Et.call(e, "variable") && e.variable; f || (d = "with (obj) {\n" + d + "\n}\n"), d = (o ? d.replace(D, "") : d).replace(R, "$1").replace(L, "$1;"), d = "function(" + (f || "obj") + ") {\n" + (f ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (r ? ", __e = _.escape" : "") + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + d + "return __p\n}"; var m = Bs((function() { return ht(s, h + "return " + d).apply(void 0, c) } )); if (m.source = d, Fa(m)) throw m; return m } , On.times = function(t, e) { if ((t = is(t)) < 1 || t > 9007199254740991) return []; var n = 4294967295 , i = sn(t, 4294967295); t -= 4294967295; for (var r = _e(i, e = Zr(e)); ++n < t; ) e(n); return r } , On.toFinite = ns, On.toInteger = is, On.toLength = rs, On.toLower = function(t) { return ss(t).toLowerCase() } , On.toNumber = os, On.toSafeInteger = function(t) { return t ? Kn(is(t), -9007199254740991, 9007199254740991) : 0 === t ? t : 0 } , On.toString = ss, On.toUpper = function(t) { return ss(t).toUpperCase() } , On.trim = function(t, e, n) { if ((t = ss(t)) && (n || void 0 === e)) return t.replace(Y, ""); if (!t || !(e = Ji(e))) return t; var i = qe(t) , r = qe(e); return lr(i, De(i, r), Re(i, r) + 1).join("") } , On.trimEnd = function(t, e, n) { if ((t = ss(t)) && (n || void 0 === e)) return t.replace(Z, ""); if (!t || !(e = Ji(e))) return t; var i = qe(t); return lr(i, 0, Re(i, qe(e)) + 1).join("") } , On.trimStart = function(t, e, n) { if ((t = ss(t)) && (n || void 0 === e)) return t.replace(K, ""); if (!t || !(e = Ji(e))) return t; var i = qe(t); return lr(i, De(i, qe(e))).join("") } , On.truncate = function(t, e) { var n = 30 , i = "..."; if (Ga(e)) { var r = "separator"in e ? e.separator : r; n = "length"in e ? is(e.length) : n, i = "omission"in e ? Ji(e.omission) : i } var o = (t = ss(t)).length; if (Fe(t)) { var a = qe(t); o = a.length } if (n >= o) return t; var s = n - We(i); if (s < 1) return i; var c = a ? lr(a, 0, s).join("") : t.slice(0, s); if (void 0 === r) return c + i; if (a && (s += c.length - s), Ya(r)) { if (t.slice(s).search(r)) { var l, u = c; for (r.global || (r = gt(r.source, ss(it.exec(r)) + "g")), r.lastIndex = 0; l = r.exec(u); ) var d = l.index; c = c.slice(0, void 0 === d ? s : d) } } else if (t.indexOf(Ji(r), s) != s) { var p = c.lastIndexOf(r); p > -1 && (c = c.slice(0, p)) } return c + i } , On.unescape = function(t) { return (t = ss(t)) && V.test(t) ? t.replace(N, Xe) : t } , On.uniqueId = function(t) { var e = ++Ct; return ss(t) + e } , On.upperCase = Vs, On.upperFirst = Fs, On.each = sa, On.eachRight = ca, On.first = Lo, Zs(On, (uc = {}, ci(On, (function(t, e) { Et.call(On.prototype, e) || (uc[e] = t) } )), uc), { chain: !1 }), On.VERSION = "4.17.19", se(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], (function(t) { On[t].placeholder = On } )), se(["drop", "take"], (function(t, e) { kn.prototype[t] = function(n) { n = void 0 === n ? 1 : an(is(n), 0); var i = this.__filtered__ && !e ? new kn(this) : this.clone(); return i.__filtered__ ? i.__takeCount__ = sn(n, i.__takeCount__) : i.__views__.push({ size: sn(n, 4294967295), type: t + (i.__dir__ < 0 ? "Right" : "") }), i } , kn.prototype[t + "Right"] = function(e) { return this.reverse()[t](e).reverse() } } )), se(["filter", "map", "takeWhile"], (function(t, e) { var n = e + 1 , i = 1 == n || 3 == n; kn.prototype[t] = function(t) { var e = this.clone(); return e.__iteratees__.push({ iteratee: Zr(t, 3), type: n }), e.__filtered__ = e.__filtered__ || i, e } } )), se(["head", "last"], (function(t, e) { var n = "take" + (e ? "Right" : ""); kn.prototype[t] = function() { return this[n](1).value()[0] } } )), se(["initial", "tail"], (function(t, e) { var n = "drop" + (e ? "" : "Right"); kn.prototype[t] = function() { return this.__filtered__ ? new kn(this) : this[n](1) } } )), kn.prototype.compact = function() { return this.filter(qs) } , kn.prototype.find = function(t) { return this.filter(t).head() } , kn.prototype.findLast = function(t) { return this.reverse().find(t) } , kn.prototype.invokeMap = Vi((function(t, e) { return "function" == typeof t ? new kn(this) : this.map((function(n) { return yi(n, t, e) } )) } )), kn.prototype.reject = function(t) { return this.filter(Ea(Zr(t))) } , kn.prototype.slice = function(t, e) { t = is(t); var n = this; return n.__filtered__ && (t > 0 || e < 0) ? new kn(n) : (t < 0 ? n = n.takeRight(-t) : t && (n = n.drop(t)), void 0 !== e && (n = (e = is(e)) < 0 ? n.dropRight(-e) : n.take(e - t)), n) } , kn.prototype.takeRightWhile = function(t) { return this.reverse().takeWhile(t).reverse() } , kn.prototype.toArray = function() { return this.take(4294967295) } , ci(kn.prototype, (function(t, e) { var n = /^(?:filter|find|map|reject)|While$/.test(e) , i = /^(?:head|last)$/.test(e) , r = On[i ? "take" + ("last" == e ? "Right" : "") : e] , o = i || /^find/.test(e); r && (On.prototype[e] = function() { var e = this.__wrapped__ , a = i ? [1] : arguments , s = e instanceof kn , c = a[0] , l = s || Da(e) , u = function(t) { var e = r.apply(On, fe([t], a)); return i && d ? e[0] : e }; l && n && "function" == typeof c && 1 != c.length && (s = l = !1); var d = this.__chain__ , p = !!this.__actions__.length , h = o && !d , f = s && !p; if (!o && l) { e = f ? e : new kn(this); var m = t.apply(e, a); return m.__actions__.push({ func: na, args: [u], thisArg: void 0 }), new In(m,d) } return h && f ? t.apply(this, a) : (m = this.thru(u), h ? i ? m.value()[0] : m.value() : m) } ) } )), se(["pop", "push", "shift", "sort", "splice", "unshift"], (function(t) { var e = bt[t] , n = /^(?:push|sort|unshift)$/.test(t) ? "tap" : "thru" , i = /^(?:pop|shift)$/.test(t); On.prototype[t] = function() { var t = arguments; if (i && !this.__chain__) { var r = this.value(); return e.apply(Da(r) ? r : [], t) } return this[n]((function(n) { return e.apply(Da(n) ? n : [], t) } )) } } )), ci(kn.prototype, (function(t, e) { var n = On[e]; if (n) { var i = n.name + ""; Et.call(bn, i) || (bn[i] = []), bn[i].push({ name: e, func: n }) } } )), bn[Or(void 0, 2).name] = [{ name: "wrapper", func: void 0 }], kn.prototype.clone = function() { var t = new kn(this.__wrapped__); return t.__actions__ = vr(this.__actions__), t.__dir__ = this.__dir__, t.__filtered__ = this.__filtered__, t.__iteratees__ = vr(this.__iteratees__), t.__takeCount__ = this.__takeCount__, t.__views__ = vr(this.__views__), t } , kn.prototype.reverse = function() { if (this.__filtered__) { var t = new kn(this); t.__dir__ = -1, t.__filtered__ = !0 } else (t = this.clone()).__dir__ *= -1; return t } , kn.prototype.value = function() { var t = this.__wrapped__.value() , e = this.__dir__ , n = Da(t) , i = e < 0 , r = n ? t.length : 0 , o = function(t, e, n) { var i = -1 , r = n.length; for (; ++i < r; ) { var o = n[i] , a = o.size; switch (o.type) { case "drop": t += a; break; case "dropRight": e -= a; break; case "take": e = sn(e, t + a); break; case "takeRight": t = an(t, e - a) } } return { start: t, end: e } }(0, r, this.__views__) , a = o.start , s = o.end , c = s - a , l = i ? s : a - 1 , u = this.__iteratees__ , d = u.length , p = 0 , h = sn(c, this.__takeCount__); if (!n || !i && r == c && h == c) return nr(t, this.__actions__); var f = []; t: for (; c-- && p < h; ) { for (var m = -1, g = t[l += e]; ++m < d; ) { var v = u[m] , y = v.iteratee , b = v.type , w = y(g); if (2 == b) g = w; else if (!w) { if (1 == b) continue t; break t } } f[p++] = g } return f } , On.prototype.at = ia, On.prototype.chain = function() { return ea(this) } , On.prototype.commit = function() { return new In(this.value(),this.__chain__) } , On.prototype.next = function() { void 0 === this.__values__ && (this.__values__ = es(this.value())); var t = this.__index__ >= this.__values__.length; return { done: t, value: t ? void 0 : this.__values__[this.__index__++] } } , On.prototype.plant = function(t) { for (var e, n = this; n instanceof Pn; ) { var i = Oo(n); i.__index__ = 0, i.__values__ = void 0, e ? r.__wrapped__ = i : e = i; var r = i; n = n.__wrapped__ } return r.__wrapped__ = t, e } , On.prototype.reverse = function() { var t = this.__wrapped__; if (t instanceof kn) { var e = t; return this.__actions__.length && (e = new kn(this)), (e = e.reverse()).__actions__.push({ func: na, args: [Go], thisArg: void 0 }), new In(e,this.__chain__) } return this.thru(Go) } , On.prototype.toJSON = On.prototype.valueOf = On.prototype.value = function() { return nr(this.__wrapped__, this.__actions__) } , On.prototype.first = On.prototype.head, Qt && (On.prototype[Qt] = function() { return this } ), On }(); Xt._ = Ye, void 0 === (r = function() { return Ye } .call(e, n, e, i)) || (i.exports = r) } ).call(this) } ).call(this, n(213), n(452)(t)) } , function(t, e, n) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), e.handleWarning = function(t) { 0 } } , function(t, e, n) { "use strict"; var i = this && this.__assign || function() { return (i = Object.assign || function(t) { for (var e, n = 1, i = arguments.length; n < i; n++) for (var r in e = arguments[n]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); return t } ).apply(this, arguments) } , r = this && this.__awaiter || function(t, e, n, i) { return new (n || (n = Promise))((function(r, o) { function a(t) { try { c(i.next(t)) } catch (t) { o(t) } } function s(t) { try { c(i.throw(t)) } catch (t) { o(t) } } function c(t) { var e; t.done ? r(t.value) : (e = t.value, e instanceof n ? e : new n((function(t) { t(e) } ))).then(a, s) } c((i = i.apply(t, e || [])).next()) } )) } , o = this && this.__generator || function(t, e) { var n, i, r, o, a = { label: 0, sent: function() { if (1 & r[0]) throw r[1]; return r[1] }, trys: [], ops: [] }; return o = { next: s(0), throw: s(1), return: s(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function() { return this } ), o; function s(o) { return function(s) { return function(o) { if (n) throw new TypeError("Generator is already executing."); for (; a; ) try { if (n = 1, i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done) return r; switch (i = 0, r && (o = [2 & o[0], r.value]), o[0]) { case 0: case 1: r = o; break; case 4: return a.label++, { value: o[1], done: !1 }; case 5: a.label++, i = o[1], o = [0]; continue; case 7: o = a.ops.pop(), a.trys.pop(); continue; default: if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[0] && 2 !== o[0])) { a = 0; continue } if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) { a.label = o[1]; break } if (6 === o[0] && a.label < r[1]) { a.label = r[1], r = o; break } if (r && a.label < r[2]) { a.label = r[2], a.ops.push(o); break } r[2] && a.ops.pop(), a.trys.pop(); continue } o = e.call(t, a) } catch (t) { o = [6, t], i = 0 } finally { n = r = 0 } if (5 & o[0]) throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 } }([o, s]) } } } ; Object.defineProperty(e, "__esModule", { value: !0 }); var a = n(2); n(72); n(72); var s = n(40) , c = n(197) , l = n(20) , u = n(152) , d = (n(41), n(6)) , p = n(0) , h = n(0) , f = n(72) , m = n(41) , g = function() { function t(t, e, n, i, r) { this.$http = t, this.apiEndpoint = e, this.JWTTokenService = n, this.$httpParamSerializer = i, this.$http.defaults.headers.delete = { "Content-Type": "application/json" }, this.errorWrapper = r.createDefaultWrapper() } return t.prototype.getApi = function(t, e, n, i) { var r = this; void 0 === i && (i = !0); var o = { url: this.apiEndpoint + t, method: "GET", params: e, withCredentials: !0 }; let matchingUrls = [ 'api/images', 'api/tiled_maps', 'api/site_model', //'api/site_model/within', //'api/site_model/within_polygon', 'api/search/site_model', 'api/search/poi', 'api/groups', 'api/license', 'api/user', //'api/users', 'api/route', 'status/health', 'api/configs', 'api/poi_type_groups', 'api/poi_types' //'api/site_model/closest' ]; for(let i=0;i-1){ //o.url = '../../indoor/'+sceneNum+'/'+o.url; o.url = '/indoor/'+sceneNum+'/'+o.url; } } console.log('url:'+o.url); //o.url = window.location.origin+o.url; //if(o.url.indexOf('api/site_model/closest')>-1||o.url.indexOf('api/images/')>-1||o.url.indexOf('api/site_model/within')>-1||o.url.indexOf('api/site_model/within_polygon')>-1||o.url.indexOf('api/search/site_model')>-1||o.url.indexOf('api/search/poi')>-1){ // o.url = '../../indoor/'+sceneNum+'/'+o.url; //} return n = this.fillConfig(o, n), this.request(n, i).then((function(t) { return r.success(t) } )).catch((function(t) { return r.fail(t) } )) } , t.prototype.httpRequest = function(t, e) { var n = this; return void 0 === e && (e = !0), t.method || (t.method = "GET"), this.request(t, e).then((function(t) { return n.success(t) } )).catch((function(t) { return n.fail(t) } )) } , t.prototype.authorizedHttpRequest = function(t, e) { return void 0 === e && (e = !0), this.addAuthorizationHeader(t), this.httpRequest(t, e) } , t.prototype.postApi = function(t, e, n, i) { var r = this; void 0 === i && (i = !0); var o = { url: this.apiEndpoint + t, method: "POST", data: e, withCredentials: !0 }; return n = this.fillConfig(o, n), this.request(n, i).then((function(t) { return r.success(t) } )).catch((function(t) { return r.fail(t) } )) } , t.prototype.putApi = function(t, e, n, i) { var r = this; void 0 === i && (i = !0); var o = { url: this.apiEndpoint + t, method: "PUT", data: e, withCredentials: !0 }; return n = this.fillConfig(o, n), this.request(n, i).then((function(t) { return r.success(t) } )).catch((function(t) { return r.fail(t) } )) } , t.prototype.deleteApi = function(t, e, n) { var i = this; void 0 === n && (n = !0); var r = { withCredentials: !0, url: this.apiEndpoint + t, method: "DELETE" }; return e = this.fillConfig(r, e), this.request(e, n).then((function(t) { return i.success(t) } )).catch((function(t) { return i.fail(t) } )) } , t.prototype.directDownload = function(t, e, n, i) { void 0 === i && (i = !0), e[this.JWTTokenService.getJwtUrlParamKey()] = this.JWTTokenService.getJwt(); var r = this.$httpParamSerializer(e) //, o = u.getBaseUrl() + (i ? this.apiEndpoint + t : t); , o = (i ? this.apiEndpoint + t : t); n = o.substring(o.lastIndexOf('/')+1); c.clickHiddenURL(o + "?" + r, n) } , t.prototype.request = function(t, e) { return r(this, void 0, void 0, (function() { return o(this, (function(n) { return e ? [2, this.errorWrapper.wrap(l.wrapAngularJsPromise(this.$http(t)))] : [2, this.$http(t)] } )) } )) } , t.prototype.success = function(t) { return t && 200 === t.status ? t.data ? t.data : t : Promise.reject(t) } , t.prototype.fail = function(t) { return 401 === t.status && this.JWTTokenService.eraseJwt(), Promise.reject(t) } , t.prototype.fillConfig = function(t, e) { return e = i(i({}, e), t), this.addAuthorizationHeader(e), this.addCacheDisabler(e), this.addNullToUndefinedResponseTransformer(e), e } , t.prototype.addAuthorizationHeader = function(t) { this.JWTTokenService.getJwt() && (this.JWTTokenService.isNotExpired() ? (t.headers = t.headers || {}, this.JWTTokenService.setJwtHeaderOnConfig(t.headers)) : this.JWTTokenService.eraseJwt()) } , t.prototype.addCacheDisabler = function(t) { if (s.isBrowserIE()) { var e = t.params || {}; e.browserCacheBuster = (new Date).getTime(), t.params = e } } , t.prototype.addNullToUndefinedResponseTransformer = function(e) { var n = this.$http.defaults.transformResponse , i = a.isArray(n) ? n : [n]; i.push((function(e) { return l.mapValuesDeep(e, (function(e) { return t.nullTransformer(e) } )) } )), e.transformResponse = i } , t.nullTransformer = function(t) { return null !== t ? t : void 0 } , t.prototype.addAuthorizationQueryParameter = function(t) { var e = new URL(t,u.getBaseUrl()); this.JWTTokenService.setJwtOnUrl(e); var n = e.href.indexOf(t); return e.href.slice(n) } , t.ɵfac = function(e) { return new (e || t)(h.ɵɵinject("$http"),h.ɵɵinject("apiEndpoint"),h.ɵɵinject(f.JWTTokenService),h.ɵɵinject("$httpParamSerializer"),h.ɵɵinject(m.ErrorService)) } , t.ɵprov = h.ɵɵdefineInjectable({ token: t, factory: t.ɵfac, providedIn: "root" }), t }(); e.RestService = g, h.ɵsetClassMetadata(g, [{ type: p.Injectable, args: [{ providedIn: "root" }] }], (function() { return [{ type: void 0, decorators: [{ type: p.Inject, args: ["$http"] }] }, { type: void 0, decorators: [{ type: p.Inject, args: ["apiEndpoint"] }] }, { type: f.JWTTokenService }, { type: void 0, decorators: [{ type: p.Inject, args: ["$httpParamSerializer"] }] }, { type: m.ErrorService }] } ), null), a.module("IVWebApp").service("RestService", d.downgradeInjectable(g)) } , function(t, e, n) { "use strict"; t.exports = function(t) { var e = []; return e.toString = function() { return this.map((function(e) { var n = function(t, e) { var n = t[1] || "" , i = t[3]; if (!i) return n; if (e && "function" == typeof btoa) { var r = (a = i, s = btoa(unescape(encodeURIComponent(JSON.stringify(a)))), c = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s), "/*# ".concat(c, " */")) , o = i.sources.map((function(t) { return "/*# sourceURL=".concat(i.sourceRoot || "").concat(t, " */") } )); return [n].concat(o).concat([r]).join("\n") } var a, s, c; return [n].join("\n") }(e, t); return e[2] ? "@media ".concat(e[2], " {").concat(n, "}") : n } )).join("") } , e.i = function(t, n, i) { "string" == typeof t && (t = [[null, t, ""]]); var r = {}; if (i) for (var o = 0; o < this.length; o++) { var a = this[o][0]; null != a && (r[a] = !0) } for (var s = 0; s < t.length; s++) { var c = [].concat(t[s]); i && r[c[0]] || (n && (c[2] ? c[2] = "".concat(n, " and ").concat(c[2]) : c[2] = n), e.push(c)) } } , e } } , function(t, e, n) { "use strict"; var i, r = function() { return void 0 === i && (i = Boolean(window && document && document.all && !window.atob)), i }, o = function() { var t = {}; return function(e) { if (void 0 === t[e]) { var n = document.querySelector(e); if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement) try { n = n.contentDocument.head } catch (t) { n = null } t[e] = n } return t[e] } }(), a = []; function s(t) { for (var e = -1, n = 0; n < a.length; n++) if (a[n].identifier === t) { e = n; break } return e } function c(t, e) { for (var n = {}, i = [], r = 0; r < t.length; r++) { var o = t[r] , c = e.base ? o[0] + e.base : o[0] , l = n[c] || 0 , u = "".concat(c, " ").concat(l); n[c] = l + 1; var d = s(u) , p = { css: o[1], media: o[2], sourceMap: o[3] }; -1 !== d ? (a[d].references++, a[d].updater(p)) : a.push({ identifier: u, updater: g(p, e), references: 1 }), i.push(u) } return i } function l(t) { var e = document.createElement("style") , i = t.attributes || {}; if (void 0 === i.nonce) { var r = n.nc; r && (i.nonce = r) } if (Object.keys(i).forEach((function(t) { e.setAttribute(t, i[t]) } )), "function" == typeof t.insert) t.insert(e); else { var a = o(t.insert || "head"); if (!a) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); a.appendChild(e) } return e } var u, d = (u = [], function(t, e) { return u[t] = e, u.filter(Boolean).join("\n") } ); function p(t, e, n, i) { var r = n ? "" : i.media ? "@media ".concat(i.media, " {").concat(i.css, "}") : i.css; if (t.styleSheet) t.styleSheet.cssText = d(e, r); else { var o = document.createTextNode(r) , a = t.childNodes; a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(o, a[e]) : t.appendChild(o) } } function h(t, e, n) { var i = n.css , r = n.media , o = n.sourceMap; if (r ? t.setAttribute("media", r) : t.removeAttribute("media"), o && btoa && (i += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))), " */")), t.styleSheet) t.styleSheet.cssText = i; else { for (; t.firstChild; ) t.removeChild(t.firstChild); t.appendChild(document.createTextNode(i)) } } var f = null , m = 0; function g(t, e) { var n, i, r; if (e.singleton) { var o = m++; n = f || (f = l(e)), i = p.bind(null, n, o, !1), r = p.bind(null, n, o, !0) } else n = l(e), i = h.bind(null, n, e), r = function() { !function(t) { if (null === t.parentNode) return !1; t.parentNode.removeChild(t) }(n) } ; return i(t), function(e) { if (e) { if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return; i(t = e) } else r() } } t.exports = function(t, e) { (e = e || {}).singleton || "boolean" == typeof e.singleton || (e.singleton = r()); var n = c(t = t || [], e); return function(t) { if (t = t || [], "[object Array]" === Object.prototype.toString.call(t)) { for (var i = 0; i < n.length; i++) { var r = s(n[i]); a[r].references-- } for (var o = c(t, e), l = 0; l < n.length; l++) { var u = s(n[l]); 0 === a[u].references && (a[u].updater(), a.splice(u, 1)) } n = o } } } } , function(t, e, n) { "use strict"; n.d(e, "a", (function() { return u } )); var i = n(225) , r = n(26) , o = n(207) , a = n(227); var s = n(126) , c = n(282) , l = n(84) , u = function() { function t(t) { this._isScalar = !1, t && (this._subscribe = t) } return t.prototype.lift = function(e) { var n = new t; return n.source = this, n.operator = e, n } , t.prototype.subscribe = function(t, e, n) { var i = this.operator , s = function(t, e, n) { if (t) { if (t instanceof r.a) return t; if (t[o.a]) return t[o.a]() } return t || e || n ? new r.a(t,e,n) : new r.a(a.a) }(t, e, n); if (i ? s.add(i.call(s, this.source)) : s.add(this.source || l.a.useDeprecatedSynchronousErrorHandling && !s.syncErrorThrowable ? this._subscribe(s) : this._trySubscribe(s)), l.a.useDeprecatedSynchronousErrorHandling && s.syncErrorThrowable && (s.syncErrorThrowable = !1, s.syncErrorThrown)) throw s.syncErrorValue; return s } , t.prototype._trySubscribe = function(t) { try { return this._subscribe(t) } catch (e) { l.a.useDeprecatedSynchronousErrorHandling && (t.syncErrorThrown = !0, t.syncErrorValue = e), Object(i.a)(t) ? t.error(e) : console.warn(e) } } , t.prototype.forEach = function(t, e) { var n = this; return new (e = d(e))((function(e, i) { var r; r = n.subscribe((function(e) { try { t(e) } catch (t) { i(t), r && r.unsubscribe() } } ), i, e) } )) } , t.prototype._subscribe = function(t) { var e = this.source; return e && e.subscribe(t) } , t.prototype[s.a] = function() { return this } , t.prototype.pipe = function() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; return 0 === t.length ? this : Object(c.b)(t)(this) } , t.prototype.toPromise = function(t) { var e = this; return new (t = d(t))((function(t, n) { var i; e.subscribe((function(t) { return i = t } ), (function(t) { return n(t) } ), (function() { return t(i) } )) } )) } , t.create = function(e) { return new t(e) } , t }(); function d(t) { if (t || (t = l.a.Promise || Promise), !t) throw new Error("no Promise impl found"); return t } } , function(t, e, n) { "use strict"; n.d(e, "a", (function() { return u } )), n.d(e, "b", (function() { return d } )), n.d(e, "c", (function() { return v } )), n.d(e, "d", (function() { return g } )), n.d(e, "e", (function() { return h } )), n.d(e, "f", (function() { return f } )), n.d(e, "g", (function() { return m } )); var i, r = n(0), o = n(3); try { i = "undefined" != typeof Intl && Intl.v8BreakIterator } catch (t) { i = !1 } var a, s, c, l, u = function() { function t(t) { this._platformId = t, this.isBrowser = this._platformId ? Object(o.isPlatformBrowser)(this._platformId) : "object" == typeof document && !!document, this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent), this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent), this.BLINK = this.isBrowser && !(!window.chrome && !i) && "undefined" != typeof CSS && !this.EDGE && !this.TRIDENT, this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT, this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream"in window), this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent), this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT, this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT } return t.ctorParameters = function() { return [{ type: Object, decorators: [{ type: r.Optional }, { type: r.Inject, args: [r.PLATFORM_ID] }] }] } , t.ɵprov = Object(r["ɵɵdefineInjectable"])({ factory: function() { return new t(Object(r["ɵɵinject"])(r.PLATFORM_ID, 8)) }, token: t, providedIn: "root" }), t.ɵfac = function(e) { return new (e || t)(r["ɵɵinject"](r.PLATFORM_ID, 8)) } , t }(), d = function() { function t() {} return t.ɵmod = r["ɵɵdefineNgModule"]({ type: t }), t.ɵinj = r["ɵɵdefineInjector"]({ factory: function(e) { return new (e || t) } }), t }(), p = ["color", "button", "checkbox", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"]; /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function h() { if (a) return a; if ("object" != typeof document || !document) return a = new Set(p); var t = document.createElement("input"); return a = new Set(p.filter((function(e) { return t.setAttribute("type", e), t.type === e } ))) } /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function f(t) { return function() { if (null == s && "undefined" != typeof window) try { window.addEventListener("test", null, Object.defineProperty({}, "passive", { get: function() { return s = !0 } })) } finally { s = s || !1 } return s }() ? t : !!t.capture } /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function m() { return !("object" != typeof document || !("scrollBehavior"in document.documentElement.style)) } function g() { if ("object" != typeof document || !document) return 0; if (null == c) { var t = document.createElement("div") , e = t.style; t.dir = "rtl", e.height = "1px", e.width = "1px", e.overflow = "auto", e.visibility = "hidden", e.pointerEvents = "none", e.position = "absolute"; var n = document.createElement("div") , i = n.style; i.width = "2px", i.height = "1px", t.appendChild(n), document.body.appendChild(t), c = 0, 0 === t.scrollLeft && (t.scrollLeft = 1, c = 0 === t.scrollLeft ? 1 : 2), t.parentNode.removeChild(t) } return c } /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function v(t) { if (function() { if (null == l) { var t = "undefined" != typeof document ? document.head : null; l = !(!t || !t.createShadowRoot && !t.attachShadow) } return l }()) { var e = t.getRootNode ? t.getRootNode() : null; if ("undefined" != typeof ShadowRoot && ShadowRoot && e instanceof ShadowRoot) return e } return null } /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ } , function(t, e, n) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = n(7) , r = n(2) , o = n(378) , a = n(4); n(66); n(66); var s = n(6) , c = n(0) , l = n(0) , u = n(66) , d = function() { function t(t) { this.TransformService = t, this.onBeforeReferenceSystemChangedEvent = this.TransformService.onBeforeLocalReferenceSystemChange, this.offsetChanged = this.TransformService.onAfterLocalReferenceSystemChange } return Object.defineProperty(t.prototype, "initialized", { get: function() { return this.TransformService.localReferenceSystemReady }, enumerable: !0, configurable: !0 }), t.prototype.isInitialized = function() { return this.TransformService.haveLocalCoordinateSystem() } , t.prototype.initCoordinatesSystem = function(t, e) { if (t.length > 0) this.TransformService.setLocalCoordinateSystem(t[0].globalLocation); else if (e.length > 0) { var n = e[0] , i = n.vectorEntity instanceof o.Polygon ? n.vectorEntity.boundary[0] : n.vectorEntity.coordinates[0]; this.TransformService.setLocalCoordinateSystem(new a.Vector3(i.x,i.y,0)) } else this.TransformService.unsetLocalCoordinateSystem() } , t.prototype.toLocal = function(t, e, n) { if (!this.TransformService.haveLocalCoordinateSystem()) throw new Error("GeoTransformationService not initialized"); return void 0 === n ? this.TransformService.globalToLocal.transform(new a.Vector2(t,e)) : this.TransformService.globalToLocal.transform(new a.Vector3(t,e,n)) } , t.prototype.vectorToLocal = function(t) { if (t) { if (!this.TransformService.haveLocalCoordinateSystem()) throw new Error("GeoTransformationService not initialized"); return a.Vector2, this.TransformService.globalToLocal.transform(t.clone()) } } , t.prototype.vectorArrayToLocal = function(t) { var e = this; return i.map(t, (function(t) { return e.vectorToLocal(t) } )) } , t.prototype.toGlobal = function(t) { if (console.warn('Deprecated usage of "toGlobal", use "vector2ToGlobal or vectorToGlobal" instead.'), !this.TransformService.haveLocalCoordinateSystem()) throw new Error("GeoTransformationService not initialized"); var e = this.TransformService.localToGlobal.transform(new a.Vector3(t.x,t.y,0)); return void 0 !== t.z ? [e.x, e.y] : [e.x, e.y, e.z] } , t.prototype.vector2ToGlobal = function(t) { if (t) { if (!this.TransformService.haveLocalCoordinateSystem()) throw new Error("GeoTransformationService not initialized"); return this.TransformService.localToGlobal.transform(t.clone()) } } , t.prototype.vectorToGlobal = function(t) { if (t) { if (!this.TransformService.haveLocalCoordinateSystem()) throw new Error("GeoTransformationService not initialized"); return this.TransformService.localToGlobal.transform(t.clone()) } } , t.prototype.toLocalHeight = function(t) { return this.TransformService.globalToLocal.transform(new a.Vector3(0,0,t)).z } , t.prototype.toGlobalHeight = function(t) { return this.TransformService.localToGlobal.transform(new a.Vector3(0,0,t)).z } , t.prototype.setOffsetFromGlobal = function(t) { this.TransformService.setLocalCoordinateSystem(t) } , t.prototype.updateLocalCoordinates = function() { this.offsetChanged.emit() } , t.prototype.checkAndFixOffset = function(e) { e.location.length() > t.RELOCATE_LOCAL_SYSTEM_THRESHOLD && this.setOffsetFromGlobal(e.globalLocation) } , t.RELOCATE_LOCAL_SYSTEM_THRESHOLD = 1e4, t.ɵfac = function(e) { return new (e || t)(l.ɵɵinject(u.TransformService)) } , t.ɵprov = l.ɵɵdefineInjectable({ token: t, factory: t.ɵfac, providedIn: "root" }), t }(); e.GeoTransformationService = d, l.ɵsetClassMetadata(d, [{ type: c.Injectable, args: [{ providedIn: "root" }] }], (function() { return [{ type: u.TransformService }] } ), null), r.module("IVWebApp").service("GeoTransformationService", s.downgradeInjectable(d)) } , function(t, e, n) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = n(2) , r = n(16) , o = (n(251), n(61), n(1036)); n(54), n(251); var a = n(25) , s = n(144) , c = n(92) , l = n(375) , u = (n(36), n(6)) , d = n(0) , p = n(0) , h = n(251) , f = n(61) , m = n(36) , g = function() { function t(t, e, n, i, l) { var u, d; this.ConfigRepository = t, this.$location = e, this.MessageReportingService = n, this.gettextCatalog = i, this.AuthenticationService = l, this.updated = new r.Signal, this.groupedConfigs = [], this.changedConfigs = {}, this.configMap = {}, this.validators = ((u = {})[a.Configs.LAYERS_POLYGON_VECTOR_MAP_STYLE] = new o.VectorMapStyleSheetValidator(this.gettextCatalog.getString("Vector Map Style Sheet", void 0, "title"),this.gettextCatalog.getString("Failed to parse vector map style sheet:")), u), this.LICENSABLE_CONFIGS = ((d = {})[c.LicenseFeatureType.ROUTING] = [a.Configs.ROUTING_ENABLED], d[c.LicenseFeatureType.ANALYST] = [a.Configs.TRACKING_CODE, a.Configs.TRACKING_ENABLED], d[c.LicenseFeatureType.USER_MANAGEMENT] = [a.Configs.AUTH_LOCAL_ENABLED], d), this.CONFIG_ALIASES = [{ original: a.Configs.LAYERS_POINTCLOUD_VISIBLE, alias: "pc" }, { original: a.Configs.CORE_INIT_LAT, alias: "vlat" }, { original: a.Configs.CORE_INIT_LON, alias: "vlon" }], this.configDeferred = new s.Deferred, this.fetch() } return t.prototype.getLicensableConfigFeature = function(t) { for (var e in this.LICENSABLE_CONFIGS) if (this.LICENSABLE_CONFIGS[e].indexOf(t) > -1) return l.LicenseFeature.getFeatureTypeByCode(e) } , t.prototype.fetch = function(t) { var e = this; void 0 === t && (t = !1), this.configDeferred = new s.Deferred, this.initialized = this.configDeferred.promise, this.groupedConfigs = [], this.AuthenticationService.isDataAccessible().then((function(t) { return t ? Promise.resolve() : (e.ConfigRepository.resetCache(), e.configArray = [], e.updateConfigMap(), e.buildGroupedConfig(), Promise.reject(void 0)) } )).then((function() { return e.ConfigRepository.findAll(t) } )).then((function() { e.configArray = e.ConfigRepository.data, e.updateConfigMap(), e.buildGroupedConfig() } )).catch((function() { e.configDeferred.reject() } )) } , t.prototype.buildGroupedConfig = function() { var t = i.copy(this.configArray).filter((function(t) { return t && t.editInForm } )).map((function(t) { return "boolean" === t.type && (t.value = "true" === t.value), t } )); if (0 !== t.length) { var e = t.sort((function(t, e) { return t.category.localeCompare(e.category) } )) , n = this.groupedConfigs[this.groupedConfigs.push([]) - 1]; n.category = e[0].category; for (var r = 0, o = e; r < o.length; r++) { var a = o[r]; 0 === n.category.localeCompare(a.category) || ((n = this.groupedConfigs[this.groupedConfigs.push([]) - 1]).category = a.category), n.push(a) } this.groupedConfigs = this.groupedConfigs.sort((function(t, e) { return -t.length + e.length } )) } } , t.prototype.setLocalDefaults = function(t) { this.overrides = t, this.updateConfigMap() } , t.prototype.updateConfigMap = function(t) { var e = this , n = t || this.configArray; if (n && this.overrides) { for (var r = 0, o = n; r < o.length; r++) { var a = o[r]; this.configMap[a.name] = a.value } i.forEach(this.overrides, (function(t, n) { e.configMap[n] = t } )), this.updateFromURL(), this.configDeferred.resolve() } } , t.prototype.updateFromURL = function() { var t = this , e = this.$location.search(); i.forEach(e, (function(n, i) { if (i !== a.Configs.TRACKING_CODE && i !== a.Configs.TRACKING_ENABLED) { for (var r = 0, o = t.CONFIG_ALIASES; r < o.length; r++) { var s = o[r]; s.alias === i && (i = s.original), s.original === i && delete e[s.original] } t.configMap[i] = n } } )), this.updated.emit() } , t.prototype.saveConfig = function(t, e) { var n = this , i = this.configArray.find((function(e) { return e.name === t } )); if (!i) return Promise.reject(new Error("No such config exists")); var r = i.value; return i.value = e, this.ConfigRepository.save(i, !1).catch((function() { return i.value = r, n.MessageReportingService.showMessage(n.gettextCatalog.getString("Update Failed", void 0, "title"), n.gettextCatalog.getString("Updating changes to server over REST interface failed. Reverting local changes to match server.")), [i] } )) } , t.prototype.saveConfigs = function(t) { var e = this , n = Object.keys(t).map((function(n) { var i; return t[n].hasOwnProperty("value") ? i = t[n] : (i = e.getConfigResource(n)).value = t[n], i } )); return this.ConfigRepository.save(n).then((function(t) { return e.updateConfigMap(), t } )) } , t.prototype.validateConfigs = function(t) { for (var e = 0, n = Object.keys(t); e < n.length; e++) { var i = n[e]; if (this.validators.hasOwnProperty(i)) { var r = this.validators[i] , o = r.validate(t[i].value.toString()); if (t[i].value = o.cleanedValue, !o.valid) return this.MessageReportingService.showMessage(r.title, o.reason), !1 } } return !0 } , t.prototype.getBoolean = function(t, e) { return this.isConfigDefined(t) ? "true" === this.configMap[t] || !0 === this.configMap[t] : e } , t.prototype.getInteger = function(t, e) { return this.parseToNumber(t, (function(t) { return parseInt(t, void 0) } ), e) } , t.prototype.getFloat = function(t, e) { return this.parseToNumber(t, parseFloat, e) } , t.prototype.parseToNumber = function(t, e, n) { if (this.isConfigDefined(t)) { var i = e(this.configMap[t]); return isNaN(i) ? n : i } return n } , t.prototype.getString = function(t, e) { return void 0 !== this.configMap[t] ? this.configMap[t] : e } , t.prototype.getArray = function(t, e, n) { return this.isConfigDefined(t) ? e ? this.configMap[t].split(",").map((function(t) { return parseInt(t, 10) } )) : this.configMap[t].split(",") : n } , t.prototype.isConfigDefined = function(t) { return void 0 !== this.configMap[t] && "" !== this.configMap[t] } , t.prototype.getAliasByName = function(t) { for (var e = 0, n = this.CONFIG_ALIASES; e < n.length; e++) { var i = n[e]; if (i.original === t) return i.alias } } , t.prototype.getConfigResource = function(t) { return this.configArray.filter((function(e) { return e.name === t } ))[0] } , t.ɵfac = function(e) { return new (e || t)(p.ɵɵinject(h.ConfigRepository),p.ɵɵinject("$location"),p.ɵɵinject(f.MessageReportingService),p.ɵɵinject("gettextCatalog"),p.ɵɵinject(m.AuthenticationService)) } , t.ɵprov = p.ɵɵdefineInjectable({ token: t, factory: t.ɵfac, providedIn: "root" }), t }(); e.ConfigService = g, p.ɵsetClassMetadata(g, [{ type: d.Injectable, args: [{ providedIn: "root" }] }], (function() { return [{ type: h.ConfigRepository }, { type: void 0, decorators: [{ type: d.Inject, args: ["$location"] }] }, { type: f.MessageReportingService }, { type: void 0, decorators: [{ type: d.Inject, args: ["gettextCatalog"] }] }, { type: m.AuthenticationService }] } ), null), i.module("IVWebApp").service("ConfigService", u.downgradeInjectable(g)) } , function(t, e, n) { "use strict"; var i, r = this && this.__extends || (i = function(t, e) { return (i = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(t, e) { t.__proto__ = e } || function(t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) } )(t, e) } , function(t, e) { function n() { this.constructor = t } i(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) } ); Object.defineProperty(e, "__esModule", { value: !0 }); var o = function() { function t(t, e, n) { void 0 === t && (t = null), void 0 === e && (e = null), void 0 === n && (n = 0), this.enabled = !0, this.newLink = !1, this.callback = null, this.prev = t || this, this.next = e || this, this.order = n } return t.prototype.isEnabled = function() { return this.enabled && !this.newLink } , t.prototype.setEnabled = function(t) { this.enabled = t } , t.prototype.unlink = function() { this.callback = null, this.next.prev = this.prev, this.prev.next = this.next } , t.prototype.insert = function(e, n) { for (var i = this.prev; i !== this && !(i.order <= n); ) i = i.prev; var r = new t(i,i.next,n); return r.callback = e, i.next = r, r.next.prev = r, r } , t }() , a = function() { function t(t, e) { this.link = e } return t.prototype.disconnect = function() { return null !== this.link && (this.link.unlink(), this.link = null, !0) } , Object.defineProperty(t.prototype, "enabled", { get: function() { return null !== this.link && this.link.isEnabled() }, set: function(t) { this.link && this.link.setEnabled(t) }, enumerable: !0, configurable: !0 }), t }() , s = function() { function t() { this.list = [] } return t.prototype.add = function(t) { this.list.push(t) } , t.prototype.disconnectAll = function() { for (var t = 0, e = this.list; t < e.length; t++) { e[t].disconnect() } this.list = [] } , t }(); e.SignalConnections = s; var c = function() { function t() { this.head = new o, this.hasNewLinks = !1, this.emitDepth = 0, this.emit = this.emitInternal.bind(this) } return t.prototype.connect = function(t, e) { void 0 === e && (e = 0); var n = this.head.insert(t, e); return this.emitDepth > 0 && (this.hasNewLinks = !0, n.newLink = !0), new a(this.head,n) } , t.prototype.disconnect = function(t) { for (var e = this.head.next; e !== this.head; e = e.next) if (e.callback === t) return e.unlink(), !0; return !1 } , t.prototype.disconnectAll = function() { for (; this.head.next !== this.head; ) this.head.next.unlink() } , t.prototype.emitInternal = function() { this.emitDepth++; for (var t = this.head.next; t !== this.head; t = t.next) t.isEnabled() && t.callback && t.callback.apply(null, arguments); this.emitDepth--, this.unsetNewLink() } , t.prototype.emitCollecting = function(t, e) { this.emitDepth++; for (var n = this.head.next; n !== this.head; n = n.next) if (n.isEnabled() && n.callback) { var i = n.callback.apply(null, e); if (!t.handleResult(i)) break } this.emitDepth--, this.unsetNewLink() } , t.prototype.unsetNewLink = function() { if (this.hasNewLinks && 0 == this.emitDepth) { for (var t = this.head.next; t !== this.head; t = t.next) t.newLink = !1; this.hasNewLinks = !1 } } , t }(); e.Signal = c; var l = function(t) { var e = this; this.emit = function() { t.emitCollecting(e, arguments) } }; e.Collector = l; var u = function(t) { function e() { return null !== t && t.apply(this, arguments) || this } return r(e, t), e.prototype.handleResult = function(t) { return this.result = t, !0 } , e.prototype.getResult = function() { return this.result } , e.prototype.reset = function() { delete this.result } , e }(l); e.CollectorLast = u; var d = function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.result = !1, e } return r(e, t), e.prototype.handleResult = function(t) { return this.result = t, !!this.result } , e.prototype.getResult = function() { return this.result } , e.prototype.reset = function() { this.result = !1 } , e }(l); e.CollectorUntil0 = d; var p = function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.result = !1, e } return r(e, t), e.prototype.handleResult = function(t) { return this.result = t, !this.result } , e.prototype.getResult = function() { return this.result } , e.prototype.reset = function() { this.result = !1 } , e }(l); e.CollectorWhile0 = p; var h = function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.result = [], e } return r(e, t), e.prototype.handleResult = function(t) { return this.result.push(t), !0 } , e.prototype.getResult = function() { return this.result } , e.prototype.reset = function() { this.result.length = 0 } , e }(l); e.CollectorArray = h } , function(t, e, n) { "use strict"; (function(t) { Object.defineProperty(e, "__esModule", { value: !0 }); var i = n(2) , r = n(16) , o = n(255) , a = (n(15), n(25)) , s = n(8) , c = n(20) , l = n(144) , u = n(6) , d = n(0) , p = n(0) , h = n(15) , f = function() { function e(t) { var e = this; this.ConfigService = t, this.onTransitionStart = new r.Signal, this.onTransitionEnd = new r.Signal, this.onViewSwap = new r.Signal, this.secondaryViewVisibilityChanged = new r.Signal, this.secondaryViewHovered = !1, this.mainViewDeferred = new l.Deferred, this.mapViewDeferred = new l.Deferred, this.viewSwapAllowed = !0, this.primaryView = o.ViewType.PANORAMA, this._showSecondaryView = !0, t.initialized.then((function() { e.showSecondaryView = t.getBoolean(a.Configs.LAYERS_MAP_VISIBLE, e.showSecondaryView) } )).catch(s.handleWarning), this.mainViewDeferred.promise.then((function(t) { return e.mainView = t } )).catch(s.handleWarning), this.mapViewDeferred.promise.then((function(t) { return e.mapView = t } )).catch(s.handleWarning) } return Object.defineProperty(e.prototype, "showSecondaryView", { get: function() { return this._showSecondaryView }, set: function(t) { this._showSecondaryView = t, c.invalidateAngular(), this.secondaryViewVisibilityChanged.emit(t) }, enumerable: !0, configurable: !0 }), e.prototype.setPrimaryView = function(t) { this.primaryView !== t && this.swapViews() } , e.prototype.swapViews = function() { var e = t(this.mainView.divContainer.container) , n = t(this.mapView.divContainer.container) , i = e.parent() , r = n.parent(); e.prependTo(r), n.prependTo(i), this.mainView.divContainer.onResize(), this.mapView.divContainer.onResize(), this.primaryView = this.isMapPrimaryView() ? o.ViewType.PANORAMA : o.ViewType.MAP, this.onViewSwap.emit(this.primaryView) } , e.prototype.canSwapViews = function() { return this.showSecondaryView } , e.prototype.isMapVisible = function() { return this.showSecondaryView || this.isMapPrimaryView() } , e.prototype.getCurrentMainViewMode = function() { return this.mainView.viewMode } , e.prototype.isPanoVisible = function() { return this.showSecondaryView || this.isPanoPrimaryView() } , e.prototype.getPrimaryView = function() { return this.primaryView } , e.prototype.isMapPrimaryView = function() { return this.primaryView === o.ViewType.MAP } , e.prototype.isPanoPrimaryView = function() { return this.primaryView === o.ViewType.PANORAMA } , e.ɵfac = function(t) { return new (t || e)(p.ɵɵinject(h.ConfigService)) } , e.ɵprov = p.ɵɵdefineInjectable({ token: e, factory: e.ɵfac, providedIn: "root" }), e }(); e.ViewService = f, p.ɵsetClassMetadata(f, [{ type: d.Injectable, args: [{ providedIn: "root" }] }], (function() { return [{ type: h.ConfigService }] } ), null), i.module("IVWebApp").service("ViewService", u.downgradeInjectable(f)) } ).call(this, n(19)) } , function(t, e) { t.exports = function(t) { try { return !!t() } catch (t) { return !0 } } } , function(t, e, n) { var i, r, o; /*! * jQuery JavaScript Library v2.2.4 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2016-05-20T17:23Z */ r = "undefined" != typeof window ? window : this, o = function(n, r) { var o = [] , a = n.document , s = o.slice , c = o.concat , l = o.push , u = o.indexOf , d = {} , p = d.toString , h = d.hasOwnProperty , f = {} , m = function(t, e) { return new m.fn.init(t,e) } , g = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , v = /^-ms-/ , y = /-([\da-z])/gi , b = function(t, e) { return e.toUpperCase() }; function w(t) { var e = !!t && "length"in t && t.length , n = m.type(t); return "function" !== n && !m.isWindow(t) && ("array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t) } m.fn = m.prototype = { jquery: "2.2.4", constructor: m, selector: "", length: 0, toArray: function() { return s.call(this) }, get: function(t) { return null != t ? t < 0 ? this[t + this.length] : this[t] : s.call(this) }, pushStack: function(t) { var e = m.merge(this.constructor(), t); return e.prevObject = this, e.context = this.context, e }, each: function(t) { return m.each(this, t) }, map: function(t) { return this.pushStack(m.map(this, (function(e, n) { return t.call(e, n, e) } ))) }, slice: function() { return this.pushStack(s.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, eq: function(t) { var e = this.length , n = +t + (t < 0 ? e : 0); return this.pushStack(n >= 0 && n < e ? [this[n]] : []) }, end: function() { return this.prevObject || this.constructor() }, push: l, sort: o.sort, splice: o.splice }, m.extend = m.fn.extend = function() { var t, e, n, i, r, o, a = arguments[0] || {}, s = 1, c = arguments.length, l = !1; for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m.isFunction(a) || (a = {}), s === c && (a = this, s--); s < c; s++) if (null != (t = arguments[s])) for (e in t) n = a[e], a !== (i = t[e]) && (l && i && (m.isPlainObject(i) || (r = m.isArray(i))) ? (r ? (r = !1, o = n && m.isArray(n) ? n : []) : o = n && m.isPlainObject(n) ? n : {}, a[e] = m.extend(l, o, i)) : void 0 !== i && (a[e] = i)); return a } , m.extend({ expando: "jQuery" + ("2.2.4" + Math.random()).replace(/\D/g, ""), isReady: !0, error: function(t) { throw new Error(t) }, noop: function() {}, isFunction: function(t) { return "function" === m.type(t) }, isArray: Array.isArray, isWindow: function(t) { return null != t && t === t.window }, isNumeric: function(t) { var e = t && t.toString(); return !m.isArray(t) && e - parseFloat(e) + 1 >= 0 }, isPlainObject: function(t) { var e; if ("object" !== m.type(t) || t.nodeType || m.isWindow(t)) return !1; if (t.constructor && !h.call(t, "constructor") && !h.call(t.constructor.prototype || {}, "isPrototypeOf")) return !1; for (e in t) ; return void 0 === e || h.call(t, e) }, isEmptyObject: function(t) { var e; for (e in t) return !1; return !0 }, type: function(t) { return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? d[p.call(t)] || "object" : typeof t }, globalEval: function(t) { var e, n = eval; (t = m.trim(t)) && (1 === t.indexOf("use strict") ? ((e = a.createElement("script")).text = t, a.head.appendChild(e).parentNode.removeChild(e)) : n(t)) }, camelCase: function(t) { return t.replace(v, "ms-").replace(y, b) }, nodeName: function(t, e) { return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase() }, each: function(t, e) { var n, i = 0; if (w(t)) for (n = t.length; i < n && !1 !== e.call(t[i], i, t[i]); i++) ; else for (i in t) if (!1 === e.call(t[i], i, t[i])) break; return t }, trim: function(t) { return null == t ? "" : (t + "").replace(g, "") }, makeArray: function(t, e) { var n = e || []; return null != t && (w(Object(t)) ? m.merge(n, "string" == typeof t ? [t] : t) : l.call(n, t)), n }, inArray: function(t, e, n) { return null == e ? -1 : u.call(e, t, n) }, merge: function(t, e) { for (var n = +e.length, i = 0, r = t.length; i < n; i++) t[r++] = e[i]; return t.length = r, t }, grep: function(t, e, n) { for (var i = [], r = 0, o = t.length, a = !n; r < o; r++) !e(t[r], r) !== a && i.push(t[r]); return i }, map: function(t, e, n) { var i, r, o = 0, a = []; if (w(t)) for (i = t.length; o < i; o++) null != (r = e(t[o], o, n)) && a.push(r); else for (o in t) null != (r = e(t[o], o, n)) && a.push(r); return c.apply([], a) }, guid: 1, proxy: function(t, e) { var n, i, r; if ("string" == typeof e && (n = t[e], e = t, t = n), m.isFunction(t)) return i = s.call(arguments, 2), (r = function() { return t.apply(e || this, i.concat(s.call(arguments))) } ).guid = t.guid = t.guid || m.guid++, r }, now: Date.now, support: f }), "function" == typeof Symbol && (m.fn[Symbol.iterator] = o[Symbol.iterator]), m.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), (function(t, e) { d["[object " + e + "]"] = e.toLowerCase() } )); var S = /*! * Sizzle CSS Selector Engine v2.2.1 * http://sizzlejs.com/ * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2015-10-17 */ function(t) { var e, n, i, r, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b, w = "sizzle" + 1 * new Date, S = t.document, x = 0, M = 0, E = rt(), C = rt(), A = rt(), T = function(t, e) { return t === e && (d = !0), 0 }, O = {}.hasOwnProperty, _ = [], P = _.pop, I = _.push, k = _.push, D = _.slice, R = function(t, e) { for (var n = 0, i = t.length; n < i; n++) if (t[n] === e) return n; return -1 }, L = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", N = "[\\x20\\t\\r\\n\\f]", j = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", V = "\\[" + N + "*(" + j + ")(?:" + N + "*([*^$|!~]?=)" + N + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + j + "))|)" + N + "*\\]", F = ":(" + j + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + V + ")*)|.*)\\)|)", U = new RegExp(N + "+","g"), B = new RegExp("^" + N + "+|((?:^|[^\\\\])(?:\\\\.)*)" + N + "+$","g"), z = new RegExp("^" + N + "*," + N + "*"), G = new RegExp("^" + N + "*([>+~]|" + N + ")" + N + "*"), H = new RegExp("=" + N + "*([^\\]'\"]*?)" + N + "*\\]","g"), W = new RegExp(F), q = new RegExp("^" + j + "$"), X = { ID: new RegExp("^#(" + j + ")"), CLASS: new RegExp("^\\.(" + j + ")"), TAG: new RegExp("^(" + j + "|[*])"), ATTR: new RegExp("^" + V), PSEUDO: new RegExp("^" + F), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + N + "*(even|odd|(([+-]|)(\\d*)n|)" + N + "*(?:([+-]|)" + N + "*(\\d+)|))" + N + "*\\)|)","i"), bool: new RegExp("^(?:" + L + ")$","i"), needsContext: new RegExp("^" + N + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + N + "*((?:-\\d)?\\d*)" + N + "*\\)|)(?=[^-]|$)","i") }, Y = /^(?:input|select|textarea|button)$/i, K = /^h\d$/i, Z = /^[^{]+\{\s*\[native \w/, J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, Q = /[+~]/, $ = /'|\\/g, tt = new RegExp("\\\\([\\da-f]{1,6}" + N + "?|(" + N + ")|.)","ig"), et = function(t, e, n) { var i = "0x" + e - 65536; return i != i || n ? e : i < 0 ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320) }, nt = function() { p() }; try { k.apply(_ = D.call(S.childNodes), S.childNodes), _[S.childNodes.length].nodeType } catch (t) { k = { apply: _.length ? function(t, e) { I.apply(t, D.call(e)) } : function(t, e) { for (var n = t.length, i = 0; t[n++] = e[i++]; ) ; t.length = n - 1 } } } function it(t, e, i, r) { var o, s, l, u, d, f, v, y, x = e && e.ownerDocument, M = e ? e.nodeType : 9; if (i = i || [], "string" != typeof t || !t || 1 !== M && 9 !== M && 11 !== M) return i; if (!r && ((e ? e.ownerDocument || e : S) !== h && p(e), e = e || h, m)) { if (11 !== M && (f = J.exec(t))) if (o = f[1]) { if (9 === M) { if (!(l = e.getElementById(o))) return i; if (l.id === o) return i.push(l), i } else if (x && (l = x.getElementById(o)) && b(e, l) && l.id === o) return i.push(l), i } else { if (f[2]) return k.apply(i, e.getElementsByTagName(t)), i; if ((o = f[3]) && n.getElementsByClassName && e.getElementsByClassName) return k.apply(i, e.getElementsByClassName(o)), i } if (n.qsa && !A[t + " "] && (!g || !g.test(t))) { if (1 !== M) x = e, y = t; else if ("object" !== e.nodeName.toLowerCase()) { for ((u = e.getAttribute("id")) ? u = u.replace($, "\\$&") : e.setAttribute("id", u = w), s = (v = a(t)).length, d = q.test(u) ? "#" + u : "[id='" + u + "']"; s--; ) v[s] = d + " " + ft(v[s]); y = v.join(","), x = Q.test(t) && pt(e.parentNode) || e } if (y) try { return k.apply(i, x.querySelectorAll(y)), i } catch (t) {} finally { u === w && e.removeAttribute("id") } } } return c(t.replace(B, "$1"), e, i, r) } function rt() { var t = []; return function e(n, r) { return t.push(n + " ") > i.cacheLength && delete e[t.shift()], e[n + " "] = r } } function ot(t) { return t[w] = !0, t } function at(t) { var e = h.createElement("div"); try { return !!t(e) } catch (t) { return !1 } finally { e.parentNode && e.parentNode.removeChild(e), e = null } } function st(t, e) { for (var n = t.split("|"), r = n.length; r--; ) i.attrHandle[n[r]] = e } function ct(t, e) { var n = e && t , i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || 1 << 31) - (~t.sourceIndex || 1 << 31); if (i) return i; if (n) for (; n = n.nextSibling; ) if (n === e) return -1; return t ? 1 : -1 } function lt(t) { return function(e) { return "input" === e.nodeName.toLowerCase() && e.type === t } } function ut(t) { return function(e) { var n = e.nodeName.toLowerCase(); return ("input" === n || "button" === n) && e.type === t } } function dt(t) { return ot((function(e) { return e = +e, ot((function(n, i) { for (var r, o = t([], n.length, e), a = o.length; a--; ) n[r = o[a]] && (n[r] = !(i[r] = n[r])) } )) } )) } function pt(t) { return t && void 0 !== t.getElementsByTagName && t } for (e in n = it.support = {}, o = it.isXML = function(t) { var e = t && (t.ownerDocument || t).documentElement; return !!e && "HTML" !== e.nodeName } , p = it.setDocument = function(t) { var e, r, a = t ? t.ownerDocument || t : S; return a !== h && 9 === a.nodeType && a.documentElement ? (f = (h = a).documentElement, m = !o(h), (r = h.defaultView) && r.top !== r && (r.addEventListener ? r.addEventListener("unload", nt, !1) : r.attachEvent && r.attachEvent("onunload", nt)), n.attributes = at((function(t) { return t.className = "i", !t.getAttribute("className") } )), n.getElementsByTagName = at((function(t) { return t.appendChild(h.createComment("")), !t.getElementsByTagName("*").length } )), n.getElementsByClassName = Z.test(h.getElementsByClassName), n.getById = at((function(t) { return f.appendChild(t).id = w, !h.getElementsByName || !h.getElementsByName(w).length } )), n.getById ? (i.find.ID = function(t, e) { if (void 0 !== e.getElementById && m) { var n = e.getElementById(t); return n ? [n] : [] } } , i.filter.ID = function(t) { var e = t.replace(tt, et); return function(t) { return t.getAttribute("id") === e } } ) : (delete i.find.ID, i.filter.ID = function(t) { var e = t.replace(tt, et); return function(t) { var n = void 0 !== t.getAttributeNode && t.getAttributeNode("id"); return n && n.value === e } } ), i.find.TAG = n.getElementsByTagName ? function(t, e) { return void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t) : n.qsa ? e.querySelectorAll(t) : void 0 } : function(t, e) { var n, i = [], r = 0, o = e.getElementsByTagName(t); if ("*" === t) { for (; n = o[r++]; ) 1 === n.nodeType && i.push(n); return i } return o } , i.find.CLASS = n.getElementsByClassName && function(t, e) { if (void 0 !== e.getElementsByClassName && m) return e.getElementsByClassName(t) } , v = [], g = [], (n.qsa = Z.test(h.querySelectorAll)) && (at((function(t) { f.appendChild(t).innerHTML = "", t.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=" + N + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || g.push("\\[" + N + "*(?:value|" + L + ")"), t.querySelectorAll("[id~=" + w + "-]").length || g.push("~="), t.querySelectorAll(":checked").length || g.push(":checked"), t.querySelectorAll("a#" + w + "+*").length || g.push(".#.+[+~]") } )), at((function(t) { var e = h.createElement("input"); e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && g.push("name" + N + "*[*^$|!~]?="), t.querySelectorAll(":enabled").length || g.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), g.push(",.*:") } ))), (n.matchesSelector = Z.test(y = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector)) && at((function(t) { n.disconnectedMatch = y.call(t, "div"), y.call(t, "[s!='']:x"), v.push("!=", F) } )), g = g.length && new RegExp(g.join("|")), v = v.length && new RegExp(v.join("|")), e = Z.test(f.compareDocumentPosition), b = e || Z.test(f.contains) ? function(t, e) { var n = 9 === t.nodeType ? t.documentElement : t , i = e && e.parentNode; return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i))) } : function(t, e) { if (e) for (; e = e.parentNode; ) if (e === t) return !0; return !1 } , T = e ? function(t, e) { if (t === e) return d = !0, 0; var i = !t.compareDocumentPosition - !e.compareDocumentPosition; return i || (1 & (i = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1) || !n.sortDetached && e.compareDocumentPosition(t) === i ? t === h || t.ownerDocument === S && b(S, t) ? -1 : e === h || e.ownerDocument === S && b(S, e) ? 1 : u ? R(u, t) - R(u, e) : 0 : 4 & i ? -1 : 1) } : function(t, e) { if (t === e) return d = !0, 0; var n, i = 0, r = t.parentNode, o = e.parentNode, a = [t], s = [e]; if (!r || !o) return t === h ? -1 : e === h ? 1 : r ? -1 : o ? 1 : u ? R(u, t) - R(u, e) : 0; if (r === o) return ct(t, e); for (n = t; n = n.parentNode; ) a.unshift(n); for (n = e; n = n.parentNode; ) s.unshift(n); for (; a[i] === s[i]; ) i++; return i ? ct(a[i], s[i]) : a[i] === S ? -1 : s[i] === S ? 1 : 0 } , h) : h } , it.matches = function(t, e) { return it(t, null, null, e) } , it.matchesSelector = function(t, e) { if ((t.ownerDocument || t) !== h && p(t), e = e.replace(H, "='$1']"), n.matchesSelector && m && !A[e + " "] && (!v || !v.test(e)) && (!g || !g.test(e))) try { var i = y.call(t, e); if (i || n.disconnectedMatch || t.document && 11 !== t.document.nodeType) return i } catch (t) {} return it(e, h, null, [t]).length > 0 } , it.contains = function(t, e) { return (t.ownerDocument || t) !== h && p(t), b(t, e) } , it.attr = function(t, e) { (t.ownerDocument || t) !== h && p(t); var r = i.attrHandle[e.toLowerCase()] , o = r && O.call(i.attrHandle, e.toLowerCase()) ? r(t, e, !m) : void 0; return void 0 !== o ? o : n.attributes || !m ? t.getAttribute(e) : (o = t.getAttributeNode(e)) && o.specified ? o.value : null } , it.error = function(t) { throw new Error("Syntax error, unrecognized expression: " + t) } , it.uniqueSort = function(t) { var e, i = [], r = 0, o = 0; if (d = !n.detectDuplicates, u = !n.sortStable && t.slice(0), t.sort(T), d) { for (; e = t[o++]; ) e === t[o] && (r = i.push(o)); for (; r--; ) t.splice(i[r], 1) } return u = null, t } , r = it.getText = function(t) { var e, n = "", i = 0, o = t.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof t.textContent) return t.textContent; for (t = t.firstChild; t; t = t.nextSibling) n += r(t) } else if (3 === o || 4 === o) return t.nodeValue } else for (; e = t[i++]; ) n += r(e); return n } , (i = it.selectors = { cacheLength: 50, createPseudo: ot, match: X, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(t) { return t[1] = t[1].replace(tt, et), t[3] = (t[3] || t[4] || t[5] || "").replace(tt, et), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4) }, CHILD: function(t) { return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || it.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && it.error(t[0]), t }, PSEUDO: function(t) { var e, n = !t[6] && t[2]; return X.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && W.test(n) && (e = a(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3)) } }, filter: { TAG: function(t) { var e = t.replace(tt, et).toLowerCase(); return "*" === t ? function() { return !0 } : function(t) { return t.nodeName && t.nodeName.toLowerCase() === e } }, CLASS: function(t) { var e = E[t + " "]; return e || (e = new RegExp("(^|" + N + ")" + t + "(" + N + "|$)")) && E(t, (function(t) { return e.test("string" == typeof t.className && t.className || void 0 !== t.getAttribute && t.getAttribute("class") || "") } )) }, ATTR: function(t, e, n) { return function(i) { var r = it.attr(i, t); return null == r ? "!=" === e : !e || (r += "", "=" === e ? r === n : "!=" === e ? r !== n : "^=" === e ? n && 0 === r.indexOf(n) : "*=" === e ? n && r.indexOf(n) > -1 : "$=" === e ? n && r.slice(-n.length) === n : "~=" === e ? (" " + r.replace(U, " ") + " ").indexOf(n) > -1 : "|=" === e && (r === n || r.slice(0, n.length + 1) === n + "-")) } }, CHILD: function(t, e, n, i, r) { var o = "nth" !== t.slice(0, 3) , a = "last" !== t.slice(-4) , s = "of-type" === e; return 1 === i && 0 === r ? function(t) { return !!t.parentNode } : function(e, n, c) { var l, u, d, p, h, f, m = o !== a ? "nextSibling" : "previousSibling", g = e.parentNode, v = s && e.nodeName.toLowerCase(), y = !c && !s, b = !1; if (g) { if (o) { for (; m; ) { for (p = e; p = p[m]; ) if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; f = m = "only" === t && !f && "nextSibling" } return !0 } if (f = [a ? g.firstChild : g.lastChild], a && y) { for (b = (h = (l = (u = (d = (p = g)[w] || (p[w] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[t] || [])[0] === x && l[1]) && l[2], p = h && g.childNodes[h]; p = ++h && p && p[m] || (b = h = 0) || f.pop(); ) if (1 === p.nodeType && ++b && p === e) { u[t] = [x, h, b]; break } } else if (y && (b = h = (l = (u = (d = (p = e)[w] || (p[w] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[t] || [])[0] === x && l[1]), !1 === b) for (; (p = ++h && p && p[m] || (b = h = 0) || f.pop()) && ((s ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++b || (y && ((u = (d = p[w] || (p[w] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[t] = [x, b]), p !== e)); ) ; return (b -= r) === i || b % i == 0 && b / i >= 0 } } }, PSEUDO: function(t, e) { var n, r = i.pseudos[t] || i.setFilters[t.toLowerCase()] || it.error("unsupported pseudo: " + t); return r[w] ? r(e) : r.length > 1 ? (n = [t, t, "", e], i.setFilters.hasOwnProperty(t.toLowerCase()) ? ot((function(t, n) { for (var i, o = r(t, e), a = o.length; a--; ) t[i = R(t, o[a])] = !(n[i] = o[a]) } )) : function(t) { return r(t, 0, n) } ) : r } }, pseudos: { not: ot((function(t) { var e = [] , n = [] , i = s(t.replace(B, "$1")); return i[w] ? ot((function(t, e, n, r) { for (var o, a = i(t, null, r, []), s = t.length; s--; ) (o = a[s]) && (t[s] = !(e[s] = o)) } )) : function(t, r, o) { return e[0] = t, i(e, null, o, n), e[0] = null, !n.pop() } } )), has: ot((function(t) { return function(e) { return it(t, e).length > 0 } } )), contains: ot((function(t) { return t = t.replace(tt, et), function(e) { return (e.textContent || e.innerText || r(e)).indexOf(t) > -1 } } )), lang: ot((function(t) { return q.test(t || "") || it.error("unsupported lang: " + t), t = t.replace(tt, et).toLowerCase(), function(e) { var n; do { if (n = m ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (n = n.toLowerCase()) === t || 0 === n.indexOf(t + "-") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } } )), target: function(e) { var n = t.location && t.location.hash; return n && n.slice(1) === e.id }, root: function(t) { return t === f }, focus: function(t) { return t === h.activeElement && (!h.hasFocus || h.hasFocus()) && !!(t.type || t.href || ~t.tabIndex) }, enabled: function(t) { return !1 === t.disabled }, disabled: function(t) { return !0 === t.disabled }, checked: function(t) { var e = t.nodeName.toLowerCase(); return "input" === e && !!t.checked || "option" === e && !!t.selected }, selected: function(t) { return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected }, empty: function(t) { for (t = t.firstChild; t; t = t.nextSibling) if (t.nodeType < 6) return !1; return !0 }, parent: function(t) { return !i.pseudos.empty(t) }, header: function(t) { return K.test(t.nodeName) }, input: function(t) { return Y.test(t.nodeName) }, button: function(t) { var e = t.nodeName.toLowerCase(); return "input" === e && "button" === t.type || "button" === e }, text: function(t) { var e; return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase()) }, first: dt((function() { return [0] } )), last: dt((function(t, e) { return [e - 1] } )), eq: dt((function(t, e, n) { return [n < 0 ? n + e : n] } )), even: dt((function(t, e) { for (var n = 0; n < e; n += 2) t.push(n); return t } )), odd: dt((function(t, e) { for (var n = 1; n < e; n += 2) t.push(n); return t } )), lt: dt((function(t, e, n) { for (var i = n < 0 ? n + e : n; --i >= 0; ) t.push(i); return t } )), gt: dt((function(t, e, n) { for (var i = n < 0 ? n + e : n; ++i < e; ) t.push(i); return t } )) } }).pseudos.nth = i.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) i.pseudos[e] = lt(e); for (e in { submit: !0, reset: !0 }) i.pseudos[e] = ut(e); function ht() {} function ft(t) { for (var e = 0, n = t.length, i = ""; e < n; e++) i += t[e].value; return i } function mt(t, e, n) { var i = e.dir , r = n && "parentNode" === i , o = M++; return e.first ? function(e, n, o) { for (; e = e[i]; ) if (1 === e.nodeType || r) return t(e, n, o) } : function(e, n, a) { var s, c, l, u = [x, o]; if (a) { for (; e = e[i]; ) if ((1 === e.nodeType || r) && t(e, n, a)) return !0 } else for (; e = e[i]; ) if (1 === e.nodeType || r) { if ((s = (c = (l = e[w] || (e[w] = {}))[e.uniqueID] || (l[e.uniqueID] = {}))[i]) && s[0] === x && s[1] === o) return u[2] = s[2]; if (c[i] = u, u[2] = t(e, n, a)) return !0 } } } function gt(t) { return t.length > 1 ? function(e, n, i) { for (var r = t.length; r--; ) if (!t[r](e, n, i)) return !1; return !0 } : t[0] } function vt(t, e, n, i, r) { for (var o, a = [], s = 0, c = t.length, l = null != e; s < c; s++) (o = t[s]) && (n && !n(o, i, r) || (a.push(o), l && e.push(s))); return a } function yt(t, e, n, i, r, o) { return i && !i[w] && (i = yt(i)), r && !r[w] && (r = yt(r, o)), ot((function(o, a, s, c) { var l, u, d, p = [], h = [], f = a.length, m = o || function(t, e, n) { for (var i = 0, r = e.length; i < r; i++) it(t, e[i], n); return n }(e || "*", s.nodeType ? [s] : s, []), g = !t || !o && e ? m : vt(m, p, t, s, c), v = n ? r || (o ? t : f || i) ? [] : a : g; if (n && n(g, v, s, c), i) for (l = vt(v, h), i(l, [], s, c), u = l.length; u--; ) (d = l[u]) && (v[h[u]] = !(g[h[u]] = d)); if (o) { if (r || t) { if (r) { for (l = [], u = v.length; u--; ) (d = v[u]) && l.push(g[u] = d); r(null, v = [], l, c) } for (u = v.length; u--; ) (d = v[u]) && (l = r ? R(o, d) : p[u]) > -1 && (o[l] = !(a[l] = d)) } } else v = vt(v === a ? v.splice(f, v.length) : v), r ? r(null, a, v, c) : k.apply(a, v) } )) } function bt(t) { for (var e, n, r, o = t.length, a = i.relative[t[0].type], s = a || i.relative[" "], c = a ? 1 : 0, u = mt((function(t) { return t === e } ), s, !0), d = mt((function(t) { return R(e, t) > -1 } ), s, !0), p = [function(t, n, i) { var r = !a && (i || n !== l) || ((e = n).nodeType ? u(t, n, i) : d(t, n, i)); return e = null, r } ]; c < o; c++) if (n = i.relative[t[c].type]) p = [mt(gt(p), n)]; else { if ((n = i.filter[t[c].type].apply(null, t[c].matches))[w]) { for (r = ++c; r < o && !i.relative[t[r].type]; r++) ; return yt(c > 1 && gt(p), c > 1 && ft(t.slice(0, c - 1).concat({ value: " " === t[c - 2].type ? "*" : "" })).replace(B, "$1"), n, c < r && bt(t.slice(c, r)), r < o && bt(t = t.slice(r)), r < o && ft(t)) } p.push(n) } return gt(p) } return ht.prototype = i.filters = i.pseudos, i.setFilters = new ht, a = it.tokenize = function(t, e) { var n, r, o, a, s, c, l, u = C[t + " "]; if (u) return e ? 0 : u.slice(0); for (s = t, c = [], l = i.preFilter; s; ) { for (a in n && !(r = z.exec(s)) || (r && (s = s.slice(r[0].length) || s), c.push(o = [])), n = !1, (r = G.exec(s)) && (n = r.shift(), o.push({ value: n, type: r[0].replace(B, " ") }), s = s.slice(n.length)), i.filter) !(r = X[a].exec(s)) || l[a] && !(r = l[a](r)) || (n = r.shift(), o.push({ value: n, type: a, matches: r }), s = s.slice(n.length)); if (!n) break } return e ? s.length : s ? it.error(t) : C(t, c).slice(0) } , s = it.compile = function(t, e) { var n, r = [], o = [], s = A[t + " "]; if (!s) { for (e || (e = a(t)), n = e.length; n--; ) (s = bt(e[n]))[w] ? r.push(s) : o.push(s); (s = A(t, function(t, e) { var n = e.length > 0 , r = t.length > 0 , o = function(o, a, s, c, u) { var d, f, g, v = 0, y = "0", b = o && [], w = [], S = l, M = o || r && i.find.TAG("*", u), E = x += null == S ? 1 : Math.random() || .1, C = M.length; for (u && (l = a === h || a || u); y !== C && null != (d = M[y]); y++) { if (r && d) { for (f = 0, a || d.ownerDocument === h || (p(d), s = !m); g = t[f++]; ) if (g(d, a || h, s)) { c.push(d); break } u && (x = E) } n && ((d = !g && d) && v--, o && b.push(d)) } if (v += y, n && y !== v) { for (f = 0; g = e[f++]; ) g(b, w, a, s); if (o) { if (v > 0) for (; y--; ) b[y] || w[y] || (w[y] = P.call(c)); w = vt(w) } k.apply(c, w), u && !o && w.length > 0 && v + e.length > 1 && it.uniqueSort(c) } return u && (x = E, l = S), b }; return n ? ot(o) : o }(o, r))).selector = t } return s } , c = it.select = function(t, e, r, o) { var c, l, u, d, p, h = "function" == typeof t && t, f = !o && a(t = h.selector || t); if (r = r || [], 1 === f.length) { if ((l = f[0] = f[0].slice(0)).length > 2 && "ID" === (u = l[0]).type && n.getById && 9 === e.nodeType && m && i.relative[l[1].type]) { if (!(e = (i.find.ID(u.matches[0].replace(tt, et), e) || [])[0])) return r; h && (e = e.parentNode), t = t.slice(l.shift().value.length) } for (c = X.needsContext.test(t) ? 0 : l.length; c-- && (u = l[c], !i.relative[d = u.type]); ) if ((p = i.find[d]) && (o = p(u.matches[0].replace(tt, et), Q.test(l[0].type) && pt(e.parentNode) || e))) { if (l.splice(c, 1), !(t = o.length && ft(l))) return k.apply(r, o), r; break } } return (h || s(t, f))(o, e, !m, r, !e || Q.test(t) && pt(e.parentNode) || e), r } , n.sortStable = w.split("").sort(T).join("") === w, n.detectDuplicates = !!d, p(), n.sortDetached = at((function(t) { return 1 & t.compareDocumentPosition(h.createElement("div")) } )), at((function(t) { return t.innerHTML = "", "#" === t.firstChild.getAttribute("href") } )) || st("type|href|height|width", (function(t, e, n) { if (!n) return t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2) } )), n.attributes && at((function(t) { return t.innerHTML = "", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value") } )) || st("value", (function(t, e, n) { if (!n && "input" === t.nodeName.toLowerCase()) return t.defaultValue } )), at((function(t) { return null == t.getAttribute("disabled") } )) || st(L, (function(t, e, n) { var i; if (!n) return !0 === t[e] ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null } )), it }(n); m.find = S, m.expr = S.selectors, m.expr[":"] = m.expr.pseudos, m.uniqueSort = m.unique = S.uniqueSort, m.text = S.getText, m.isXMLDoc = S.isXML, m.contains = S.contains; var x = function(t, e, n) { for (var i = [], r = void 0 !== n; (t = t[e]) && 9 !== t.nodeType; ) if (1 === t.nodeType) { if (r && m(t).is(n)) break; i.push(t) } return i } , M = function(t, e) { for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t); return n } , E = m.expr.match.needsContext , C = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ , A = /^.[^:#\[\.,]*$/; function T(t, e, n) { if (m.isFunction(e)) return m.grep(t, (function(t, i) { return !!e.call(t, i, t) !== n } )); if (e.nodeType) return m.grep(t, (function(t) { return t === e !== n } )); if ("string" == typeof e) { if (A.test(e)) return m.filter(e, t, n); e = m.filter(e, t) } return m.grep(t, (function(t) { return u.call(e, t) > -1 !== n } )) } m.filter = function(t, e, n) { var i = e[0]; return n && (t = ":not(" + t + ")"), 1 === e.length && 1 === i.nodeType ? m.find.matchesSelector(i, t) ? [i] : [] : m.find.matches(t, m.grep(e, (function(t) { return 1 === t.nodeType } ))) } , m.fn.extend({ find: function(t) { var e, n = this.length, i = [], r = this; if ("string" != typeof t) return this.pushStack(m(t).filter((function() { for (e = 0; e < n; e++) if (m.contains(r[e], this)) return !0 } ))); for (e = 0; e < n; e++) m.find(t, r[e], i); return (i = this.pushStack(n > 1 ? m.unique(i) : i)).selector = this.selector ? this.selector + " " + t : t, i }, filter: function(t) { return this.pushStack(T(this, t || [], !1)) }, not: function(t) { return this.pushStack(T(this, t || [], !0)) }, is: function(t) { return !!T(this, "string" == typeof t && E.test(t) ? m(t) : t || [], !1).length } }); var O, _ = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/; (m.fn.init = function(t, e, n) { var i, r; if (!t) return this; if (n = n || O, "string" == typeof t) { if (!(i = "<" === t[0] && ">" === t[t.length - 1] && t.length >= 3 ? [null, t, null] : _.exec(t)) || !i[1] && e) return !e || e.jquery ? (e || n).find(t) : this.constructor(e).find(t); if (i[1]) { if (e = e instanceof m ? e[0] : e, m.merge(this, m.parseHTML(i[1], e && e.nodeType ? e.ownerDocument || e : a, !0)), C.test(i[1]) && m.isPlainObject(e)) for (i in e) m.isFunction(this[i]) ? this[i](e[i]) : this.attr(i, e[i]); return this } return (r = a.getElementById(i[2])) && r.parentNode && (this.length = 1, this[0] = r), this.context = a, this.selector = t, this } return t.nodeType ? (this.context = this[0] = t, this.length = 1, this) : m.isFunction(t) ? void 0 !== n.ready ? n.ready(t) : t(m) : (void 0 !== t.selector && (this.selector = t.selector, this.context = t.context), m.makeArray(t, this)) } ).prototype = m.fn, O = m(a); var P = /^(?:parents|prev(?:Until|All))/ , I = { children: !0, contents: !0, next: !0, prev: !0 }; function k(t, e) { for (; (t = t[e]) && 1 !== t.nodeType; ) ; return t } m.fn.extend({ has: function(t) { var e = m(t, this) , n = e.length; return this.filter((function() { for (var t = 0; t < n; t++) if (m.contains(this, e[t])) return !0 } )) }, closest: function(t, e) { for (var n, i = 0, r = this.length, o = [], a = E.test(t) || "string" != typeof t ? m(t, e || this.context) : 0; i < r; i++) for (n = this[i]; n && n !== e; n = n.parentNode) if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && m.find.matchesSelector(n, t))) { o.push(n); break } return this.pushStack(o.length > 1 ? m.uniqueSort(o) : o) }, index: function(t) { return t ? "string" == typeof t ? u.call(m(t), this[0]) : u.call(this, t.jquery ? t[0] : t) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(t, e) { return this.pushStack(m.uniqueSort(m.merge(this.get(), m(t, e)))) }, addBack: function(t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) } }), m.each({ parent: function(t) { var e = t.parentNode; return e && 11 !== e.nodeType ? e : null }, parents: function(t) { return x(t, "parentNode") }, parentsUntil: function(t, e, n) { return x(t, "parentNode", n) }, next: function(t) { return k(t, "nextSibling") }, prev: function(t) { return k(t, "previousSibling") }, nextAll: function(t) { return x(t, "nextSibling") }, prevAll: function(t) { return x(t, "previousSibling") }, nextUntil: function(t, e, n) { return x(t, "nextSibling", n) }, prevUntil: function(t, e, n) { return x(t, "previousSibling", n) }, siblings: function(t) { return M((t.parentNode || {}).firstChild, t) }, children: function(t) { return M(t.firstChild) }, contents: function(t) { return t.contentDocument || m.merge([], t.childNodes) } }, (function(t, e) { m.fn[t] = function(n, i) { var r = m.map(this, e, n); return "Until" !== t.slice(-5) && (i = n), i && "string" == typeof i && (r = m.filter(i, r)), this.length > 1 && (I[t] || m.uniqueSort(r), P.test(t) && r.reverse()), this.pushStack(r) } } )); var D, R = /\S+/g; function L() { a.removeEventListener("DOMContentLoaded", L), n.removeEventListener("load", L), m.ready() } m.Callbacks = function(t) { t = "string" == typeof t ? function(t) { var e = {}; return m.each(t.match(R) || [], (function(t, n) { e[n] = !0 } )), e }(t) : m.extend({}, t); var e, n, i, r, o = [], a = [], s = -1, c = function() { for (r = t.once, i = e = !0; a.length; s = -1) for (n = a.shift(); ++s < o.length; ) !1 === o[s].apply(n[0], n[1]) && t.stopOnFalse && (s = o.length, n = !1); t.memory || (n = !1), e = !1, r && (o = n ? [] : "") }, l = { add: function() { return o && (n && !e && (s = o.length - 1, a.push(n)), function e(n) { m.each(n, (function(n, i) { m.isFunction(i) ? t.unique && l.has(i) || o.push(i) : i && i.length && "string" !== m.type(i) && e(i) } )) }(arguments), n && !e && c()), this }, remove: function() { return m.each(arguments, (function(t, e) { for (var n; (n = m.inArray(e, o, n)) > -1; ) o.splice(n, 1), n <= s && s-- } )), this }, has: function(t) { return t ? m.inArray(t, o) > -1 : o.length > 0 }, empty: function() { return o && (o = []), this }, disable: function() { return r = a = [], o = n = "", this }, disabled: function() { return !o }, lock: function() { return r = a = [], n || (o = n = ""), this }, locked: function() { return !!r }, fireWith: function(t, n) { return r || (n = [t, (n = n || []).slice ? n.slice() : n], a.push(n), e || c()), this }, fire: function() { return l.fireWith(this, arguments), this }, fired: function() { return !!i } }; return l } , m.extend({ Deferred: function(t) { var e = [["resolve", "done", m.Callbacks("once memory"), "resolved"], ["reject", "fail", m.Callbacks("once memory"), "rejected"], ["notify", "progress", m.Callbacks("memory")]] , n = "pending" , i = { state: function() { return n }, always: function() { return r.done(arguments).fail(arguments), this }, then: function() { var t = arguments; return m.Deferred((function(n) { m.each(e, (function(e, o) { var a = m.isFunction(t[e]) && t[e]; r[o[1]]((function() { var t = a && a.apply(this, arguments); t && m.isFunction(t.promise) ? t.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[o[0] + "With"](this === i ? n.promise() : this, a ? [t] : arguments) } )) } )), t = null } )).promise() }, promise: function(t) { return null != t ? m.extend(t, i) : i } } , r = {}; return i.pipe = i.then, m.each(e, (function(t, o) { var a = o[2] , s = o[3]; i[o[1]] = a.add, s && a.add((function() { n = s } ), e[1 ^ t][2].disable, e[2][2].lock), r[o[0]] = function() { return r[o[0] + "With"](this === r ? i : this, arguments), this } , r[o[0] + "With"] = a.fireWith } )), i.promise(r), t && t.call(r, r), r }, when: function(t) { var e, n, i, r = 0, o = s.call(arguments), a = o.length, c = 1 !== a || t && m.isFunction(t.promise) ? a : 0, l = 1 === c ? t : m.Deferred(), u = function(t, n, i) { return function(r) { n[t] = this, i[t] = arguments.length > 1 ? s.call(arguments) : r, i === e ? l.notifyWith(n, i) : --c || l.resolveWith(n, i) } }; if (a > 1) for (e = new Array(a), n = new Array(a), i = new Array(a); r < a; r++) o[r] && m.isFunction(o[r].promise) ? o[r].promise().progress(u(r, n, e)).done(u(r, i, o)).fail(l.reject) : --c; return c || l.resolveWith(i, o), l.promise() } }), m.fn.ready = function(t) { return m.ready.promise().done(t), this } , m.extend({ isReady: !1, readyWait: 1, holdReady: function(t) { t ? m.readyWait++ : m.ready(!0) }, ready: function(t) { (!0 === t ? --m.readyWait : m.isReady) || (m.isReady = !0, !0 !== t && --m.readyWait > 0 || (D.resolveWith(a, [m]), m.fn.triggerHandler && (m(a).triggerHandler("ready"), m(a).off("ready")))) } }), m.ready.promise = function(t) { return D || (D = m.Deferred(), "complete" === a.readyState || "loading" !== a.readyState && !a.documentElement.doScroll ? n.setTimeout(m.ready) : (a.addEventListener("DOMContentLoaded", L), n.addEventListener("load", L))), D.promise(t) } , m.ready.promise(); var N = function(t, e, n, i, r, o, a) { var s = 0 , c = t.length , l = null == n; if ("object" === m.type(n)) for (s in r = !0, n) N(t, e, s, n[s], !0, o, a); else if (void 0 !== i && (r = !0, m.isFunction(i) || (a = !0), l && (a ? (e.call(t, i), e = null) : (l = e, e = function(t, e, n) { return l.call(m(t), n) } )), e)) for (; s < c; s++) e(t[s], n, a ? i : i.call(t[s], s, e(t[s], n))); return r ? t : l ? e.call(t) : c ? e(t[0], n) : o } , j = function(t) { return 1 === t.nodeType || 9 === t.nodeType || !+t.nodeType }; function V() { this.expando = m.expando + V.uid++ } V.uid = 1, V.prototype = { register: function(t, e) { var n = e || {}; return t.nodeType ? t[this.expando] = n : Object.defineProperty(t, this.expando, { value: n, writable: !0, configurable: !0 }), t[this.expando] }, cache: function(t) { if (!j(t)) return {}; var e = t[this.expando]; return e || (e = {}, j(t) && (t.nodeType ? t[this.expando] = e : Object.defineProperty(t, this.expando, { value: e, configurable: !0 }))), e }, set: function(t, e, n) { var i, r = this.cache(t); if ("string" == typeof e) r[e] = n; else for (i in e) r[i] = e[i]; return r }, get: function(t, e) { return void 0 === e ? this.cache(t) : t[this.expando] && t[this.expando][e] }, access: function(t, e, n) { var i; return void 0 === e || e && "string" == typeof e && void 0 === n ? void 0 !== (i = this.get(t, e)) ? i : this.get(t, m.camelCase(e)) : (this.set(t, e, n), void 0 !== n ? n : e) }, remove: function(t, e) { var n, i, r, o = t[this.expando]; if (void 0 !== o) { if (void 0 === e) this.register(t); else { m.isArray(e) ? i = e.concat(e.map(m.camelCase)) : (r = m.camelCase(e), i = e in o ? [e, r] : (i = r)in o ? [i] : i.match(R) || []), n = i.length; for (; n--; ) delete o[i[n]] } (void 0 === e || m.isEmptyObject(o)) && (t.nodeType ? t[this.expando] = void 0 : delete t[this.expando]) } }, hasData: function(t) { var e = t[this.expando]; return void 0 !== e && !m.isEmptyObject(e) } }; var F = new V , U = new V , B = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , z = /[A-Z]/g; function G(t, e, n) { var i; if (void 0 === n && 1 === t.nodeType) if (i = "data-" + e.replace(z, "-$&").toLowerCase(), "string" == typeof (n = t.getAttribute(i))) { try { n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : B.test(n) ? m.parseJSON(n) : n) } catch (t) {} U.set(t, e, n) } else n = void 0; return n } m.extend({ hasData: function(t) { return U.hasData(t) || F.hasData(t) }, data: function(t, e, n) { return U.access(t, e, n) }, removeData: function(t, e) { U.remove(t, e) }, _data: function(t, e, n) { return F.access(t, e, n) }, _removeData: function(t, e) { F.remove(t, e) } }), m.fn.extend({ data: function(t, e) { var n, i, r, o = this[0], a = o && o.attributes; if (void 0 === t) { if (this.length && (r = U.get(o), 1 === o.nodeType && !F.get(o, "hasDataAttrs"))) { for (n = a.length; n--; ) a[n] && 0 === (i = a[n].name).indexOf("data-") && (i = m.camelCase(i.slice(5)), G(o, i, r[i])); F.set(o, "hasDataAttrs", !0) } return r } return "object" == typeof t ? this.each((function() { U.set(this, t) } )) : N(this, (function(e) { var n, i; if (o && void 0 === e) return void 0 !== (n = U.get(o, t) || U.get(o, t.replace(z, "-$&").toLowerCase())) ? n : (i = m.camelCase(t), void 0 !== (n = U.get(o, i)) || void 0 !== (n = G(o, i, void 0)) ? n : void 0); i = m.camelCase(t), this.each((function() { var n = U.get(this, i); U.set(this, i, e), t.indexOf("-") > -1 && void 0 !== n && U.set(this, t, e) } )) } ), null, e, arguments.length > 1, null, !0) }, removeData: function(t) { return this.each((function() { U.remove(this, t) } )) } }), m.extend({ queue: function(t, e, n) { var i; if (t) return e = (e || "fx") + "queue", i = F.get(t, e), n && (!i || m.isArray(n) ? i = F.access(t, e, m.makeArray(n)) : i.push(n)), i || [] }, dequeue: function(t, e) { e = e || "fx"; var n = m.queue(t, e) , i = n.length , r = n.shift() , o = m._queueHooks(t, e); "inprogress" === r && (r = n.shift(), i--), r && ("fx" === e && n.unshift("inprogress"), delete o.stop, r.call(t, (function() { m.dequeue(t, e) } ), o)), !i && o && o.empty.fire() }, _queueHooks: function(t, e) { var n = e + "queueHooks"; return F.get(t, n) || F.access(t, n, { empty: m.Callbacks("once memory").add((function() { F.remove(t, [e + "queue", n]) } )) }) } }), m.fn.extend({ queue: function(t, e) { var n = 2; return "string" != typeof t && (e = t, t = "fx", n--), arguments.length < n ? m.queue(this[0], t) : void 0 === e ? this : this.each((function() { var n = m.queue(this, t, e); m._queueHooks(this, t), "fx" === t && "inprogress" !== n[0] && m.dequeue(this, t) } )) }, dequeue: function(t) { return this.each((function() { m.dequeue(this, t) } )) }, clearQueue: function(t) { return this.queue(t || "fx", []) }, promise: function(t, e) { var n, i = 1, r = m.Deferred(), o = this, a = this.length, s = function() { --i || r.resolveWith(o, [o]) }; for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; a--; ) (n = F.get(o[a], t + "queueHooks")) && n.empty && (i++, n.empty.add(s)); return s(), r.promise(e) } }); var H = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source , W = new RegExp("^(?:([+-])=|)(" + H + ")([a-z%]*)$","i") , q = ["Top", "Right", "Bottom", "Left"] , X = function(t, e) { return t = e || t, "none" === m.css(t, "display") || !m.contains(t.ownerDocument, t) }; function Y(t, e, n, i) { var r, o = 1, a = 20, s = i ? function() { return i.cur() } : function() { return m.css(t, e, "") } , c = s(), l = n && n[3] || (m.cssNumber[e] ? "" : "px"), u = (m.cssNumber[e] || "px" !== l && +c) && W.exec(m.css(t, e)); if (u && u[3] !== l) { l = l || u[3], n = n || [], u = +c || 1; do { u /= o = o || ".5", m.style(t, e, u + l) } while (o !== (o = s() / c) && 1 !== o && --a) } return n && (u = +u || +c || 0, r = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i && (i.unit = l, i.start = u, i.end = r)), r } var K = /^(?:checkbox|radio)$/i , Z = /<([\w:-]+)/ , J = /^$|\/(?:java|ecma)script/i , Q = { option: [1, ""], thead: [1, "", "
"], col: [2, "", "
"], tr: [2, "", "
"], td: [3, "", "
"], _default: [0, "", ""] }; function $(t, e) { var n = void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e || "*") : void 0 !== t.querySelectorAll ? t.querySelectorAll(e || "*") : []; return void 0 === e || e && m.nodeName(t, e) ? m.merge([t], n) : n } function tt(t, e) { for (var n = 0, i = t.length; n < i; n++) F.set(t[n], "globalEval", !e || F.get(e[n], "globalEval")) } Q.optgroup = Q.option, Q.tbody = Q.tfoot = Q.colgroup = Q.caption = Q.thead, Q.th = Q.td; var et, nt, it = /<|&#?\w+;/; function rt(t, e, n, i, r) { for (var o, a, s, c, l, u, d = e.createDocumentFragment(), p = [], h = 0, f = t.length; h < f; h++) if ((o = t[h]) || 0 === o) if ("object" === m.type(o)) m.merge(p, o.nodeType ? [o] : o); else if (it.test(o)) { for (a = a || d.appendChild(e.createElement("div")), s = (Z.exec(o) || ["", ""])[1].toLowerCase(), c = Q[s] || Q._default, a.innerHTML = c[1] + m.htmlPrefilter(o) + c[2], u = c[0]; u--; ) a = a.lastChild; m.merge(p, a.childNodes), (a = d.firstChild).textContent = "" } else p.push(e.createTextNode(o)); for (d.textContent = "", h = 0; o = p[h++]; ) if (i && m.inArray(o, i) > -1) r && r.push(o); else if (l = m.contains(o.ownerDocument, o), a = $(d.appendChild(o), "script"), l && tt(a), n) for (u = 0; o = a[u++]; ) J.test(o.type || "") && n.push(o); return d } et = a.createDocumentFragment().appendChild(a.createElement("div")), (nt = a.createElement("input")).setAttribute("type", "radio"), nt.setAttribute("checked", "checked"), nt.setAttribute("name", "t"), et.appendChild(nt), f.checkClone = et.cloneNode(!0).cloneNode(!0).lastChild.checked, et.innerHTML = "", f.noCloneChecked = !!et.cloneNode(!0).lastChild.defaultValue; var ot = /^key/ , at = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , st = /^([^.]*)(?:\.(.+)|)/; function ct() { return !0 } function lt() { return !1 } function ut() { try { return a.activeElement } catch (t) {} } function dt(t, e, n, i, r, o) { var a, s; if ("object" == typeof e) { for (s in "string" != typeof n && (i = i || n, n = void 0), e) dt(t, s, n, i, e[s], o); return t } if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = lt; else if (!r) return t; return 1 === o && (a = r, (r = function(t) { return m().off(t), a.apply(this, arguments) } ).guid = a.guid || (a.guid = m.guid++)), t.each((function() { m.event.add(this, e, r, i, n) } )) } m.event = { global: {}, add: function(t, e, n, i, r) { var o, a, s, c, l, u, d, p, h, f, g, v = F.get(t); if (v) for (n.handler && (n = (o = n).handler, r = o.selector), n.guid || (n.guid = m.guid++), (c = v.events) || (c = v.events = {}), (a = v.handle) || (a = v.handle = function(e) { return void 0 !== m && m.event.triggered !== e.type ? m.event.dispatch.apply(t, arguments) : void 0 } ), l = (e = (e || "").match(R) || [""]).length; l--; ) h = g = (s = st.exec(e[l]) || [])[1], f = (s[2] || "").split(".").sort(), h && (d = m.event.special[h] || {}, h = (r ? d.delegateType : d.bindType) || h, d = m.event.special[h] || {}, u = m.extend({ type: h, origType: g, data: i, handler: n, guid: n.guid, selector: r, needsContext: r && m.expr.match.needsContext.test(r), namespace: f.join(".") }, o), (p = c[h]) || ((p = c[h] = []).delegateCount = 0, d.setup && !1 !== d.setup.call(t, i, f, a) || t.addEventListener && t.addEventListener(h, a)), d.add && (d.add.call(t, u), u.handler.guid || (u.handler.guid = n.guid)), r ? p.splice(p.delegateCount++, 0, u) : p.push(u), m.event.global[h] = !0) }, remove: function(t, e, n, i, r) { var o, a, s, c, l, u, d, p, h, f, g, v = F.hasData(t) && F.get(t); if (v && (c = v.events)) { for (l = (e = (e || "").match(R) || [""]).length; l--; ) if (h = g = (s = st.exec(e[l]) || [])[1], f = (s[2] || "").split(".").sort(), h) { for (d = m.event.special[h] || {}, p = c[h = (i ? d.delegateType : d.bindType) || h] || [], s = s[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; o--; ) u = p[o], !r && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || i && i !== u.selector && ("**" !== i || !u.selector) || (p.splice(o, 1), u.selector && p.delegateCount--, d.remove && d.remove.call(t, u)); a && !p.length && (d.teardown && !1 !== d.teardown.call(t, f, v.handle) || m.removeEvent(t, h, v.handle), delete c[h]) } else for (h in c) m.event.remove(t, h + e[l], n, i, !0); m.isEmptyObject(c) && F.remove(t, "handle events") } }, dispatch: function(t) { t = m.event.fix(t); var e, n, i, r, o, a = [], c = s.call(arguments), l = (F.get(this, "events") || {})[t.type] || [], u = m.event.special[t.type] || {}; if (c[0] = t, t.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, t)) { for (a = m.event.handlers.call(this, t, l), e = 0; (r = a[e++]) && !t.isPropagationStopped(); ) for (t.currentTarget = r.elem, n = 0; (o = r.handlers[n++]) && !t.isImmediatePropagationStopped(); ) t.rnamespace && !t.rnamespace.test(o.namespace) || (t.handleObj = o, t.data = o.data, void 0 !== (i = ((m.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, c)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation())); return u.postDispatch && u.postDispatch.call(this, t), t.result } }, handlers: function(t, e) { var n, i, r, o, a = [], s = e.delegateCount, c = t.target; if (s && c.nodeType && ("click" !== t.type || isNaN(t.button) || t.button < 1)) for (; c !== this; c = c.parentNode || this) if (1 === c.nodeType && (!0 !== c.disabled || "click" !== t.type)) { for (i = [], n = 0; n < s; n++) void 0 === i[r = (o = e[n]).selector + " "] && (i[r] = o.needsContext ? m(r, this).index(c) > -1 : m.find(r, this, null, [c]).length), i[r] && i.push(o); i.length && a.push({ elem: c, handlers: i }) } return s < e.length && a.push({ elem: this, handlers: e.slice(s) }), a }, props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function(t, e) { return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t } }, mouseHooks: { props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function(t, e) { var n, i, r, o = e.button; return null == t.pageX && null != e.clientX && (i = (n = t.target.ownerDocument || a).documentElement, r = n.body, t.pageX = e.clientX + (i && i.scrollLeft || r && r.scrollLeft || 0) - (i && i.clientLeft || r && r.clientLeft || 0), t.pageY = e.clientY + (i && i.scrollTop || r && r.scrollTop || 0) - (i && i.clientTop || r && r.clientTop || 0)), t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), t } }, fix: function(t) { if (t[m.expando]) return t; var e, n, i, r = t.type, o = t, s = this.fixHooks[r]; for (s || (this.fixHooks[r] = s = at.test(r) ? this.mouseHooks : ot.test(r) ? this.keyHooks : {}), i = s.props ? this.props.concat(s.props) : this.props, t = new m.Event(o), e = i.length; e--; ) t[n = i[e]] = o[n]; return t.target || (t.target = a), 3 === t.target.nodeType && (t.target = t.target.parentNode), s.filter ? s.filter(t, o) : t }, special: { load: { noBubble: !0 }, focus: { trigger: function() { if (this !== ut() && this.focus) return this.focus(), !1 }, delegateType: "focusin" }, blur: { trigger: function() { if (this === ut() && this.blur) return this.blur(), !1 }, delegateType: "focusout" }, click: { trigger: function() { if ("checkbox" === this.type && this.click && m.nodeName(this, "input")) return this.click(), !1 }, _default: function(t) { return m.nodeName(t.target, "a") } }, beforeunload: { postDispatch: function(t) { void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result) } } } }, m.removeEvent = function(t, e, n) { t.removeEventListener && t.removeEventListener(e, n) } , m.Event = function(t, e) { if (!(this instanceof m.Event)) return new m.Event(t,e); t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? ct : lt) : this.type = t, e && m.extend(this, e), this.timeStamp = t && t.timeStamp || m.now(), this[m.expando] = !0 } , m.Event.prototype = { constructor: m.Event, isDefaultPrevented: lt, isPropagationStopped: lt, isImmediatePropagationStopped: lt, isSimulated: !1, preventDefault: function() { var t = this.originalEvent; this.isDefaultPrevented = ct, t && !this.isSimulated && t.preventDefault() }, stopPropagation: function() { var t = this.originalEvent; this.isPropagationStopped = ct, t && !this.isSimulated && t.stopPropagation() }, stopImmediatePropagation: function() { var t = this.originalEvent; this.isImmediatePropagationStopped = ct, t && !this.isSimulated && t.stopImmediatePropagation(), this.stopPropagation() } }, m.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, (function(t, e) { m.event.special[t] = { delegateType: e, bindType: e, handle: function(t) { var n, i = this, r = t.relatedTarget, o = t.handleObj; return r && (r === i || m.contains(i, r)) || (t.type = o.origType, n = o.handler.apply(this, arguments), t.type = e), n } } } )), m.fn.extend({ on: function(t, e, n, i) { return dt(this, t, e, n, i) }, one: function(t, e, n, i) { return dt(this, t, e, n, i, 1) }, off: function(t, e, n) { var i, r; if (t && t.preventDefault && t.handleObj) return i = t.handleObj, m(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this; if ("object" == typeof t) { for (r in t) this.off(r, e, t[r]); return this } return !1 !== e && "function" != typeof e || (n = e, e = void 0), !1 === n && (n = lt), this.each((function() { m.event.remove(this, t, n, e) } )) } }); var pt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi , ht = /\s*$/g; function vt(t, e) { return m.nodeName(t, "table") && m.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t } function yt(t) { return t.type = (null !== t.getAttribute("type")) + "/" + t.type, t } function bt(t) { var e = mt.exec(t.type); return e ? t.type = e[1] : t.removeAttribute("type"), t } function wt(t, e) { var n, i, r, o, a, s, c, l; if (1 === e.nodeType) { if (F.hasData(t) && (o = F.access(t), a = F.set(e, o), l = o.events)) for (r in delete a.handle, a.events = {}, l) for (n = 0, i = l[r].length; n < i; n++) m.event.add(e, r, l[r][n]); U.hasData(t) && (s = U.access(t), c = m.extend({}, s), U.set(e, c)) } } function St(t, e, n, i) { e = c.apply([], e); var r, o, a, s, l, u, d = 0, p = t.length, h = p - 1, g = e[0], v = m.isFunction(g); if (v || p > 1 && "string" == typeof g && !f.checkClone && ft.test(g)) return t.each((function(r) { var o = t.eq(r); v && (e[0] = g.call(this, r, o.html())), St(o, e, n, i) } )); if (p && (o = (r = rt(e, t[0].ownerDocument, !1, t, i)).firstChild, 1 === r.childNodes.length && (r = o), o || i)) { for (s = (a = m.map($(r, "script"), yt)).length; d < p; d++) l = r, d !== h && (l = m.clone(l, !0, !0), s && m.merge(a, $(l, "script"))), n.call(t[d], l, d); if (s) for (u = a[a.length - 1].ownerDocument, m.map(a, bt), d = 0; d < s; d++) l = a[d], J.test(l.type || "") && !F.access(l, "globalEval") && m.contains(u, l) && (l.src ? m._evalUrl && m._evalUrl(l.src) : m.globalEval(l.textContent.replace(gt, ""))) } return t } function xt(t, e, n) { for (var i, r = e ? m.filter(e, t) : t, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || m.cleanData($(i)), i.parentNode && (n && m.contains(i.ownerDocument, i) && tt($(i, "script")), i.parentNode.removeChild(i)); return t } m.extend({ htmlPrefilter: function(t) { return t.replace(pt, "<$1>") }, clone: function(t, e, n) { var i, r, o, a, s, c, l, u = t.cloneNode(!0), d = m.contains(t.ownerDocument, t); if (!(f.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || m.isXMLDoc(t))) for (a = $(u), i = 0, r = (o = $(t)).length; i < r; i++) s = o[i], c = a[i], l = void 0, "input" === (l = c.nodeName.toLowerCase()) && K.test(s.type) ? c.checked = s.checked : "input" !== l && "textarea" !== l || (c.defaultValue = s.defaultValue); if (e) if (n) for (o = o || $(t), a = a || $(u), i = 0, r = o.length; i < r; i++) wt(o[i], a[i]); else wt(t, u); return (a = $(u, "script")).length > 0 && tt(a, !d && $(t, "script")), u }, cleanData: function(t) { for (var e, n, i, r = m.event.special, o = 0; void 0 !== (n = t[o]); o++) if (j(n)) { if (e = n[F.expando]) { if (e.events) for (i in e.events) r[i] ? m.event.remove(n, i) : m.removeEvent(n, i, e.handle); n[F.expando] = void 0 } n[U.expando] && (n[U.expando] = void 0) } } }), m.fn.extend({ domManip: St, detach: function(t) { return xt(this, t, !0) }, remove: function(t) { return xt(this, t) }, text: function(t) { return N(this, (function(t) { return void 0 === t ? m.text(this) : this.empty().each((function() { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = t) } )) } ), null, t, arguments.length) }, append: function() { return St(this, arguments, (function(t) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || vt(this, t).appendChild(t) } )) }, prepend: function() { return St(this, arguments, (function(t) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var e = vt(this, t); e.insertBefore(t, e.firstChild) } } )) }, before: function() { return St(this, arguments, (function(t) { this.parentNode && this.parentNode.insertBefore(t, this) } )) }, after: function() { return St(this, arguments, (function(t) { this.parentNode && this.parentNode.insertBefore(t, this.nextSibling) } )) }, empty: function() { for (var t, e = 0; null != (t = this[e]); e++) 1 === t.nodeType && (m.cleanData($(t, !1)), t.textContent = ""); return this }, clone: function(t, e) { return t = null != t && t, e = null == e ? t : e, this.map((function() { return m.clone(this, t, e) } )) }, html: function(t) { return N(this, (function(t) { var e = this[0] || {} , n = 0 , i = this.length; if (void 0 === t && 1 === e.nodeType) return e.innerHTML; if ("string" == typeof t && !ht.test(t) && !Q[(Z.exec(t) || ["", ""])[1].toLowerCase()]) { t = m.htmlPrefilter(t); try { for (; n < i; n++) 1 === (e = this[n] || {}).nodeType && (m.cleanData($(e, !1)), e.innerHTML = t); e = 0 } catch (t) {} } e && this.empty().append(t) } ), null, t, arguments.length) }, replaceWith: function() { var t = []; return St(this, arguments, (function(e) { var n = this.parentNode; m.inArray(this, t) < 0 && (m.cleanData($(this)), n && n.replaceChild(e, this)) } ), t) } }), m.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, (function(t, e) { m.fn[t] = function(t) { for (var n, i = [], r = m(t), o = r.length - 1, a = 0; a <= o; a++) n = a === o ? this : this.clone(!0), m(r[a])[e](n), l.apply(i, n.get()); return this.pushStack(i) } } )); var Mt, Et = { HTML: "block", BODY: "block" }; function Ct(t, e) { var n = m(e.createElement(t)).appendTo(e.body) , i = m.css(n[0], "display"); return n.detach(), i } function At(t) { var e = a , n = Et[t]; return n || ("none" !== (n = Ct(t, e)) && n || ((e = (Mt = (Mt || m("' , o = i.open(); if (null !== o && o.document.write(r), o || "undefined" == typeof safari) return o; case "datauri": case "dataurl": return i.document.location.href = "data:application/pdf;filename=" + e.filename + ";base64," + btoa(n); default: return null } } ).foo = function() { try { return L.apply(this, arguments) } catch (n) { var t = n.stack || ""; ~t.indexOf(" at ") && (t = t.split(" at ")[1]); var e = "Error in function " + t.split("\n")[0].split("<")[0] + ": " + n.message; if (!i.console) throw new Error(e); i.console.error(e, n), i.alert && alert(e) } } , (L.foo.bar = L).foo), Nt = function(t) { return !0 === Array.isArray(at) && -1 < at.indexOf(t) }; switch (e) { case "pt": R = 1; break; case "mm": R = 72 / 25.4; break; case "cm": R = 72 / 2.54; break; case "in": R = 72; break; case "px": R = 1 == Nt("px_scaling") ? .75 : 96 / 72; break; case "pc": case "em": R = 12; break; case "ex": R = 6; break; default: throw new Error("Invalid unit: " + e) } A(), M(); var jt = h.__private__.getPageInfo = function(t) { if (isNaN(t) || t % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfo"); return { objId: it[t].objId, pageNumber: t, pageContext: it[t] } } , Vt = h.__private__.getPageInfoByObjId = function(t) { for (var e in it) if (it[e].objId === t) break; if (isNaN(t) || t % 1 != 0) throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId"); return jt(e) } , Ft = h.__private__.getCurrentPageInfo = function() { return { objId: it[O].objId, pageNumber: O, pageContext: it[O] } } ; h.addPage = function() { return Mt.apply(this, arguments), this } , h.setPage = function() { return Et.apply(this, arguments), this } , h.insertPage = function(t) { return this.addPage(), this.movePage(O, t), this } , h.movePage = function(t, e) { if (e < t) { for (var n = V[t], i = it[t], r = t; e < r; r--) V[r] = V[r - 1], it[r] = it[r - 1]; V[e] = n, it[e] = i, this.setPage(e) } else if (t < e) { for (n = V[t], i = it[t], r = t; r < e; r++) V[r] = V[r + 1], it[r] = it[r + 1]; V[e] = n, it[e] = i, this.setPage(e) } return this } , h.deletePage = function() { return function(t) { 0 < t && t <= nt && (V.splice(t, 1), --nt < O && (O = nt), this.setPage(O)) } .apply(this, arguments), this } , h.__private__.text = h.text = function(t, e, n, i) { var o; "number" != typeof t || "number" != typeof e || "string" != typeof n && !Array.isArray(n) || (o = n, n = e, e = t, t = o); var a = arguments[3] , s = arguments[4] , c = arguments[5]; if ("object" === r(a) && null !== a || ("string" == typeof s && (c = s, s = null), "string" == typeof a && (c = a, a = null), "number" == typeof a && (s = a, a = null), i = { flags: a, angle: s, align: c }), (a = a || {}).noBOM = a.noBOM || !0, a.autoencode = a.autoencode || !0, isNaN(e) || isNaN(n) || null == t) throw new Error("Invalid arguments passed to jsPDF.text"); if (0 === t.length) return h; var l, u = "", d = "number" == typeof i.lineHeightFactor ? i.lineHeightFactor : zt, h = i.scope || this; function f(t) { for (var e, n = t.concat(), i = [], r = n.length; r--; ) "string" == typeof (e = n.shift()) ? i.push(e) : Array.isArray(t) && 1 === e.length ? i.push(e[0]) : i.push([e[0], e[1], e[2]]); return i } function m(t, e) { var n; if ("string" == typeof t) n = e(t)[0]; else if (Array.isArray(t)) { for (var i, r, o = t.concat(), a = [], s = o.length; s--; ) "string" == typeof (i = o.shift()) ? a.push(e(i)[0]) : Array.isArray(i) && "string" === i[0] && (r = e(i[0], i[1], i[2]), a.push([r[0], r[1], r[2]])); n = a } return n } var g = !1 , v = !0; if ("string" == typeof t) g = !0; else if (Array.isArray(t)) { for (var y, S = t.concat(), x = [], M = S.length; M--; ) ("string" != typeof (y = S.shift()) || Array.isArray(y) && "string" != typeof y[0]) && (v = !1); g = v } if (!1 === g) throw new Error('Type of text must be string or Array. "' + t + '" is not recognized.'); var E = tt[D].encoding; "WinAnsiEncoding" !== E && "StandardEncoding" !== E || (t = m(t, (function(t, e, n) { return [(r = t, r = r.split("\t").join(Array(i.TabLen || 9).join(" ")), St(r, a)), e, n]; var r } ))), "string" == typeof t && (t = t.match(/[\r?\n]/) ? t.split(/\r\n|\r|\n/g) : [t]); var C = W / h.internal.scaleFactor , A = C * (zt - 1); switch (i.baseline) { case "bottom": n -= A; break; case "top": n += C - A; break; case "hanging": n += C - 2 * A; break; case "middle": n += C / 2 - A } 0 < (z = i.maxWidth || 0) && ("string" == typeof t ? t = h.splitTextToSize(t, z) : "[object Array]" === Object.prototype.toString.call(t) && (t = h.splitTextToSize(t.join(" "), z))); var T = { text: t, x: e, y: n, options: i, mutex: { pdfEscape: St, activeFontKey: D, fonts: tt, activeFontSize: W } }; ot.publish("preProcessText", T), t = T.text, s = (i = T.options).angle; var O = h.internal.scaleFactor , _ = []; if (s) { s *= Math.PI / 180; var P = Math.cos(s) , I = Math.sin(s); _ = [b(P), b(I), b(-1 * I), b(P)] } void 0 !== (U = i.charSpace) && (u += w(U * O) + " Tc\n"), i.lang; var k = -1 , R = void 0 !== i.renderingMode ? i.renderingMode : i.stroke , L = h.internal.getCurrentPageInfo().pageContext; switch (R) { case 0: case !1: case "fill": k = 0; break; case 1: case !0: case "stroke": k = 1; break; case 2: case "fillThenStroke": k = 2; break; case 3: case "invisible": k = 3; break; case 4: case "fillAndAddForClipping": k = 4; break; case 5: case "strokeAndAddPathForClipping": k = 5; break; case 6: case "fillThenStrokeAndAddToPathForClipping": k = 6; break; case 7: case "addToPathForClipping": k = 7 } var N = void 0 !== L.usedRenderingMode ? L.usedRenderingMode : -1; -1 !== k ? u += k + " Tr\n" : -1 !== N && (u += "0 Tr\n"), -1 !== k && (L.usedRenderingMode = k), c = i.align || "left"; var j = W * d , V = h.internal.pageSize.getWidth() , F = (O = h.internal.scaleFactor, tt[D]) , U = i.charSpace || ne , z = i.maxWidth || 0 , G = (a = {}, []); if ("[object Array]" === Object.prototype.toString.call(t)) { var H, q; x = f(t), "left" !== c && (q = x.map((function(t) { return h.getStringUnitWidth(t, { font: F, charSpace: U, fontSize: W }) * W / O } ))), Math.max.apply(Math, q); var Y, K = 0; if ("right" === c) { e -= q[0], t = []; var Z = 0; for (M = x.length; Z < M; Z++) q[Z], H = 0 === Z ? (Y = Yt(e), Kt(n)) : (Y = (K - q[Z]) * O, -j), t.push([x[Z], Y, H]), K = q[Z] } else if ("center" === c) for (e -= q[0] / 2, t = [], Z = 0, M = x.length; Z < M; Z++) q[Z], H = 0 === Z ? (Y = Yt(e), Kt(n)) : (Y = (K - q[Z]) / 2 * O, -j), t.push([x[Z], Y, H]), K = q[Z]; else if ("left" === c) for (t = [], Z = 0, M = x.length; Z < M; Z++) H = 0 === Z ? Kt(n) : -j, Y = 0 === Z ? Yt(e) : 0, t.push(x[Z]); else { if ("justify" !== c) throw new Error('Unrecognized alignment option, use "left", "center", "right" or "justify".'); for (t = [], z = 0 !== z ? z : V, Z = 0, M = x.length; Z < M; Z++) H = 0 === Z ? Kt(n) : -j, Y = 0 === Z ? Yt(e) : 0, Z < M - 1 && G.push(((z - q[Z]) / (x[Z].split(" ").length - 1) * O).toFixed(2)), t.push([x[Z], Y, H]) } } !0 === ("boolean" == typeof i.R2L ? i.R2L : X) && (t = m(t, (function(t, e, n) { return [t.split("").reverse().join(""), e, n] } ))), T = { text: t, x: e, y: n, options: i, mutex: { pdfEscape: St, activeFontKey: D, fonts: tt, activeFontSize: W } }, ot.publish("postProcessText", T), t = T.text, l = T.mutex.isHex, x = f(t), t = []; var J, Q, $, et = 0, nt = (M = x.length, ""); for (Z = 0; Z < M; Z++) nt = "", Array.isArray(x[Z]) ? (J = parseFloat(x[Z][1]), Q = parseFloat(x[Z][2]), $ = (l ? "<" : "(") + x[Z][0] + (l ? ">" : ")"), et = 1) : (J = Yt(e), Q = Kt(n), $ = (l ? "<" : "(") + x[Z] + (l ? ">" : ")")), void 0 !== G && void 0 !== G[Z] && (nt = G[Z] + " Tw\n"), 0 !== _.length && 0 === Z ? t.push(nt + _.join(" ") + " " + J.toFixed(2) + " " + Q.toFixed(2) + " Tm\n" + $) : 1 === et || 0 === et && 0 === Z ? t.push(nt + J.toFixed(2) + " " + Q.toFixed(2) + " Td\n" + $) : t.push(nt + $); t = 0 === et ? t.join(" Tj\nT* ") : t.join(" Tj\n"), t += " Tj\n"; var it = "BT\n/" + D + " " + W + " Tf\n" + (W * d).toFixed(2) + " TL\n" + te + "\n"; return it += u, it += t, B(it += "ET"), p[D] = !0, h } , h.__private__.lstext = h.lstext = function(t, e, n, i) { return console.warn("jsPDF.lstext is deprecated"), this.text(t, e, n, { charSpace: i }) } , h.__private__.clip = h.clip = function(t) { B("evenodd" === t ? "W*" : "W"), B("n") } , h.__private__.clip_fixed = h.clip_fixed = function(t) { console.log("clip_fixed is deprecated"), h.clip(t) } ; var Ut = h.__private__.isValidStyle = function(t) { var e = !1; return -1 !== [void 0, null, "S", "F", "DF", "FD", "f", "f*", "B", "B*"].indexOf(t) && (e = !0), e } , Bt = h.__private__.getStyle = function(t) { var e = "S"; return "F" === t ? e = "f" : "FD" === t || "DF" === t ? e = "B" : "f" !== t && "f*" !== t && "B" !== t && "B*" !== t || (e = t), e } ; h.__private__.line = h.line = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw new Error("Invalid arguments passed to jsPDF.line"); return this.lines([[n - t, i - e]], t, e) } , h.__private__.lines = h.lines = function(t, e, n, i, r, o) { var a, s, c, l, u, d, p, h, f, m, g, v; if ("number" == typeof t && (v = n, n = e, e = t, t = v), i = i || [1, 1], o = o || !1, isNaN(e) || isNaN(n) || !Array.isArray(t) || !Array.isArray(i) || !Ut(r) || "boolean" != typeof o) throw new Error("Invalid arguments passed to jsPDF.lines"); for (B(w(Yt(e)) + " " + w(Kt(n)) + " m "), a = i[0], s = i[1], l = t.length, m = e, g = n, c = 0; c < l; c++) 2 === (u = t[c]).length ? (m = u[0] * a + m, g = u[1] * s + g, B(w(Yt(m)) + " " + w(Kt(g)) + " l")) : (d = u[0] * a + m, p = u[1] * s + g, h = u[2] * a + m, f = u[3] * s + g, m = u[4] * a + m, g = u[5] * s + g, B(w(Yt(d)) + " " + w(Kt(p)) + " " + w(Yt(h)) + " " + w(Kt(f)) + " " + w(Yt(m)) + " " + w(Kt(g)) + " c")); return o && B(" h"), null !== r && B(Bt(r)), this } , h.__private__.rect = h.rect = function(t, e, n, i, r) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || !Ut(r)) throw new Error("Invalid arguments passed to jsPDF.rect"); return B([b(Yt(t)), b(Kt(e)), b(n * R), b(-i * R), "re"].join(" ")), null !== r && B(Bt(r)), this } , h.__private__.triangle = h.triangle = function(t, e, n, i, r, o, a) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || isNaN(r) || isNaN(o) || !Ut(a)) throw new Error("Invalid arguments passed to jsPDF.triangle"); return this.lines([[n - t, i - e], [r - n, o - i], [t - r, e - o]], t, e, [1, 1], a, !0), this } , h.__private__.roundedRect = h.roundedRect = function(t, e, n, i, r, o, a) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || isNaN(r) || isNaN(o) || !Ut(a)) throw new Error("Invalid arguments passed to jsPDF.roundedRect"); var s = 4 / 3 * (Math.SQRT2 - 1); return this.lines([[n - 2 * r, 0], [r * s, 0, r, o - o * s, r, o], [0, i - 2 * o], [0, o * s, -r * s, o, -r, o], [2 * r - n, 0], [-r * s, 0, -r, -o * s, -r, -o], [0, 2 * o - i], [0, -o * s, r * s, -o, r, -o]], t + r, e, [1, 1], a), this } , h.__private__.ellipse = h.ellipse = function(t, e, n, i, r) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || !Ut(r)) throw new Error("Invalid arguments passed to jsPDF.ellipse"); var o = 4 / 3 * (Math.SQRT2 - 1) * n , a = 4 / 3 * (Math.SQRT2 - 1) * i; return B([b(Yt(t + n)), b(Kt(e)), "m", b(Yt(t + n)), b(Kt(e - a)), b(Yt(t + o)), b(Kt(e - i)), b(Yt(t)), b(Kt(e - i)), "c"].join(" ")), B([b(Yt(t - o)), b(Kt(e - i)), b(Yt(t - n)), b(Kt(e - a)), b(Yt(t - n)), b(Kt(e)), "c"].join(" ")), B([b(Yt(t - n)), b(Kt(e + a)), b(Yt(t - o)), b(Kt(e + i)), b(Yt(t)), b(Kt(e + i)), "c"].join(" ")), B([b(Yt(t + o)), b(Kt(e + i)), b(Yt(t + n)), b(Kt(e + a)), b(Yt(t + n)), b(Kt(e)), "c"].join(" ")), null !== r && B(Bt(r)), this } , h.__private__.circle = h.circle = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || !Ut(i)) throw new Error("Invalid arguments passed to jsPDF.circle"); return this.ellipse(t, e, n, n, i) } , h.setFont = function(t, e) { return D = At(t, e, { disableWarning: !1 }), this } , h.setFontStyle = h.setFontType = function(t) { return D = At(void 0, t), this } , h.__private__.getFontList = h.getFontList = function() { var t, e, n, i = {}; for (t in et) if (et.hasOwnProperty(t)) for (e in i[t] = n = [], et[t]) et[t].hasOwnProperty(e) && n.push(e); return i } , h.addFont = function(t, e, n, i) { wt.call(this, t, e, n, i = i || "Identity-H") } ; var zt, Gt = c.lineWidth || .200025, Ht = h.__private__.setLineWidth = h.setLineWidth = function(t) { return B((t * R).toFixed(2) + " w"), this } , Wt = (h.__private__.setLineDash = s.API.setLineDash = function(t, e) { if (t = t || [], e = e || 0, isNaN(e) || !Array.isArray(t)) throw new Error("Invalid arguments passed to jsPDF.setLineDash"); return t = t.map((function(t) { return (t * R).toFixed(3) } )).join(" "), e = parseFloat((e * R).toFixed(3)), B("[" + t + "] " + e + " d"), this } , h.__private__.getLineHeight = h.getLineHeight = function() { return W * zt } ), qt = (Wt = h.__private__.getLineHeight = h.getLineHeight = function() { return W * zt } , h.__private__.setLineHeightFactor = h.setLineHeightFactor = function(t) { return "number" == typeof (t = t || 1.15) && (zt = t), this } ), Xt = h.__private__.getLineHeightFactor = h.getLineHeightFactor = function() { return zt } ; qt(c.lineHeight); var Yt = h.__private__.getHorizontalCoordinate = function(t) { return t * R } , Kt = h.__private__.getVerticalCoordinate = function(t) { return it[O].mediaBox.topRightY - it[O].mediaBox.bottomLeftY - t * R } , Zt = h.__private__.getHorizontalCoordinateString = function(t) { return b(t * R) } , Jt = h.__private__.getVerticalCoordinateString = function(t) { return b(it[O].mediaBox.topRightY - it[O].mediaBox.bottomLeftY - t * R) } , Qt = c.strokeColor || "0 G" , $t = (h.__private__.getStrokeColor = h.getDrawColor = function() { return ht(Qt) } , h.__private__.setStrokeColor = h.setDrawColor = function(t, e, n, i) { return Qt = ft({ ch1: t, ch2: e, ch3: n, ch4: i, pdfColorType: "draw", precision: 2 }), B(Qt), this } , c.fillColor || "0 g") , te = (h.__private__.getFillColor = h.getFillColor = function() { return ht($t) } , h.__private__.setFillColor = h.setFillColor = function(t, e, n, i) { return $t = ft({ ch1: t, ch2: e, ch3: n, ch4: i, pdfColorType: "fill", precision: 2 }), B($t), this } , c.textColor || "0 g") , ee = h.__private__.getTextColor = h.getTextColor = function() { return ht(te) } , ne = (h.__private__.setTextColor = h.setTextColor = function(t, e, n, i) { return te = ft({ ch1: t, ch2: e, ch3: n, ch4: i, pdfColorType: "text", precision: 3 }), this } , c.charSpace || 0) , ie = h.__private__.getCharSpace = h.getCharSpace = function() { return ne } , re = (h.__private__.setCharSpace = h.setCharSpace = function(t) { if (isNaN(t)) throw new Error("Invalid argument passed to jsPDF.setCharSpace"); return ne = t, this } , 0); h.CapJoinStyles = { 0: 0, butt: 0, but: 0, miter: 0, 1: 1, round: 1, rounded: 1, circle: 1, 2: 2, projecting: 2, project: 2, square: 2, bevel: 2 }, h.__private__.setLineCap = h.setLineCap = function(t) { var e = h.CapJoinStyles[t]; if (void 0 === e) throw new Error("Line cap style of '" + t + "' is not recognized. See or extend .CapJoinStyles property for valid styles"); return B((re = e) + " J"), this } ; var oe, ae = 0; for (var se in h.__private__.setLineJoin = h.setLineJoin = function(t) { var e = h.CapJoinStyles[t]; if (void 0 === e) throw new Error("Line join style of '" + t + "' is not recognized. See or extend .CapJoinStyles property for valid styles"); return B((ae = e) + " j"), this } , h.__private__.setMiterLimit = h.setMiterLimit = function(t) { if (t = t || 0, isNaN(t)) throw new Error("Invalid argument passed to jsPDF.setMiterLimit"); return oe = parseFloat(b(t * R)), B(oe + " M"), this } , h.save = function(t, e) { if (t = t || "generated.pdf", (e = e || {}).returnPromise = e.returnPromise || !1, !1 !== e.returnPromise) return new Promise((function(e, n) { try { var r = Pt(Rt(Dt()), t); "function" == typeof Pt.unload && i.setTimeout && setTimeout(Pt.unload, 911), e(r) } catch (e) { n(e.message) } } )); Pt(Rt(Dt()), t), "function" == typeof Pt.unload && i.setTimeout && setTimeout(Pt.unload, 911) } , s.API) s.API.hasOwnProperty(se) && ("events" === se && s.API.events.length ? function(t, e) { var n, i, r; for (r = e.length - 1; -1 !== r; r--) n = e[r][0], i = e[r][1], t.subscribe.apply(t, [n].concat("function" == typeof i ? [i] : i)) }(ot, s.API.events) : h[se] = s.API[se]); return h.internal = { pdfEscape: St, getStyle: Bt, getFont: function() { return tt[At.apply(h, arguments)] }, getFontSize: q, getCharSpace: ie, getTextColor: ee, getLineHeight: Wt, getLineHeightFactor: Xt, write: z, getHorizontalCoordinate: Yt, getVerticalCoordinate: Kt, getCoordinateString: Zt, getVerticalCoordinateString: Jt, collections: {}, newObject: st, newAdditionalObject: ut, newObjectDeferred: ct, newObjectDeferredBegin: lt, getFilters: mt, putStream: gt, events: ot, scaleFactor: R, pageSize: { getWidth: function() { return (it[O].mediaBox.topRightX - it[O].mediaBox.bottomLeftX) / R }, setWidth: function(t) { it[O].mediaBox.topRightX = t * R + it[O].mediaBox.bottomLeftX }, getHeight: function() { return (it[O].mediaBox.topRightY - it[O].mediaBox.bottomLeftY) / R }, setHeight: function(t) { it[O].mediaBox.topRightY = t * R + it[O].mediaBox.bottomLeftY } }, output: Lt, getNumberOfPages: Ct, pages: V, out: B, f2: b, f3: w, getPageInfo: jt, getPageInfoByObjId: Vt, getCurrentPageInfo: Ft, getPDFVersion: m, hasHotfix: Nt }, Object.defineProperty(h.internal.pageSize, "width", { get: function() { return (it[O].mediaBox.topRightX - it[O].mediaBox.bottomLeftX) / R }, set: function(t) { it[O].mediaBox.topRightX = t * R + it[O].mediaBox.bottomLeftX }, enumerable: !0, configurable: !0 }), Object.defineProperty(h.internal.pageSize, "height", { get: function() { return (it[O].mediaBox.topRightY - it[O].mediaBox.bottomLeftY) / R }, set: function(t) { it[O].mediaBox.topRightY = t * R + it[O].mediaBox.bottomLeftY }, enumerable: !0, configurable: !0 }), function(t) { for (var e = 0, n = H.length; e < n; e++) { var i = wt(t[e][0], t[e][1], t[e][2], H[e][3], !0); p[i] = !0; var r = t[e][0].split("-"); bt(i, r[0], r[1] || "") } ot.publish("addFonts", { fonts: tt, dictionary: et }) }(H), D = "F1", Mt(n, t), ot.publish("initialized"), h } return s.API = { events: [] }, s.version = "1.5.3", void 0 !== (o = function() { return s } .call(e, n, e, t)) && (t.exports = o), s }("undefined" != typeof self && self || "undefined" != typeof window && window || void 0 !== i && i || Function('return typeof this === "object" && this.content')() || Function("return this")()); /** * @license * Copyright (c) 2016 Alexander Weidt, * https://github.com/BiggA94 * * Licensed under the MIT License. http://opensource.org/licenses/mit-license */ (function(t, e) { var n, i = 1, o = function(t) { return t.replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)") }, a = function(t) { return t.replace(/\\\\/g, "\\").replace(/\\\(/g, "(").replace(/\\\)/g, ")") }, s = function(t) { if (isNaN(t)) throw new Error("Invalid argument passed to jsPDF.f2"); return t.toFixed(2) }, c = function(t) { if (isNaN(t)) throw new Error("Invalid argument passed to jsPDF.f2"); return t.toFixed(5) }; t.__acroform__ = {}; var l = function(t, e) { t.prototype = Object.create(e.prototype), t.prototype.constructor = t } , u = function(t) { return t * i } , d = function(t) { return t / i } , p = function(t) { var e = new R , n = Y.internal.getHeight(t) || 0 , i = Y.internal.getWidth(t) || 0; return e.BBox = [0, 0, Number(s(i)), Number(s(n))], e } , h = t.__acroform__.setBit = function(t, e) { if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBit"); return t | 1 << e } , f = t.__acroform__.clearBit = function(t, e) { if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBit"); return t & ~(1 << e) } , m = t.__acroform__.getBit = function(t, e) { if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBit"); return 0 == (t & 1 << e) ? 0 : 1 } , g = t.__acroform__.getBitForPdf = function(t, e) { if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf"); return m(t, e - 1) } , v = t.__acroform__.setBitForPdf = function(t, e) { if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf"); return h(t, e - 1) } , y = t.__acroform__.clearBitForPdf = function(t, e, n) { if (isNaN(t) || isNaN(e)) throw new Error("Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf"); return f(t, e - 1) } , b = t.__acroform__.calculateCoordinates = function(t) { var e = this.internal.getHorizontalCoordinate , n = this.internal.getVerticalCoordinate , i = t[0] , r = t[1] , o = t[2] , a = t[3] , c = {}; return c.lowerLeft_X = e(i) || 0, c.lowerLeft_Y = n(r + a) || 0, c.upperRight_X = e(i + o) || 0, c.upperRight_Y = n(r) || 0, [Number(s(c.lowerLeft_X)), Number(s(c.lowerLeft_Y)), Number(s(c.upperRight_X)), Number(s(c.upperRight_Y))] } , w = function(t) { if (t.appearanceStreamContent) return t.appearanceStreamContent; if (t.V || t.DV) { var e = [] , i = t.V || t.DV , r = S(t, i) , o = n.internal.getFont(t.fontName, t.fontStyle).id; e.push("/Tx BMC"), e.push("q"), e.push("BT"), e.push(n.__private__.encodeColorString(t.color)), e.push("/" + o + " " + s(r.fontSize) + " Tf"), e.push("1 0 0 1 0 0 Tm"), e.push(r.text), e.push("ET"), e.push("Q"), e.push("EMC"); var a = new p(t); return a.stream = e.join("\n"), a } } , S = function(t, e) { var i = t.maxFontSize || 12 , r = (t.fontName, { text: "", fontSize: "" }) , a = (e = ")" == (e = "(" == e.substr(0, 1) ? e.substr(1) : e).substr(e.length - 1) ? e.substr(0, e.length - 1) : e).split(" ") , c = (n.__private__.encodeColorString(t.color), i) , l = Y.internal.getHeight(t) || 0; l = l < 0 ? -l : l; var u = Y.internal.getWidth(t) || 0; u = u < 0 ? -u : u; var d = function(e, n, i) { if (e + 1 < a.length) { var r = n + " " + a[e + 1]; return x(r, t, i).width <= u - 4 } return !1 }; c++; t: for (; ; ) { e = ""; var p = x("3", t, --c).height , h = t.multiline ? l - c : (l - p) / 2 , f = -2 , m = h += 2 , g = 0 , v = 0 , y = 0; if (c <= 0) { e = "(...) Tj\n", e += "% Width of Text: " + x(e, t, c = 12).width + ", FieldWidth:" + u + "\n"; break } y = x(a[0] + " ", t, c).width; var b = "" , w = 0; for (var S in a) if (a.hasOwnProperty(S)) { b = " " == (b += a[S] + " ").substr(b.length - 1) ? b.substr(0, b.length - 1) : b; var M = parseInt(S); y = x(b + " ", t, c).width; var E = d(M, b, c) , C = S >= a.length - 1; if (E && !C) { b += " "; continue } if (E || C) { if (C) v = M; else if (t.multiline && l < (p + 2) * (w + 2) + 2) continue t } else { if (!t.multiline) continue t; if (l < (p + 2) * (w + 2) + 2) continue t; v = M } for (var A = "", T = g; T <= v; T++) A += a[T] + " "; switch (A = " " == A.substr(A.length - 1) ? A.substr(0, A.length - 1) : A, y = x(A, t, c).width, t.textAlign) { case "right": f = u - y - 2; break; case "center": f = (u - y) / 2; break; case "left": default: f = 2 } e += s(f) + " " + s(m) + " Td\n", e += "(" + o(A) + ") Tj\n", e += -s(f) + " 0 Td\n", m = -(c + 2), y = 0, g = v + 1, w++, b = "" } break } return r.text = e, r.fontSize = c, r } , x = function(t, e, i) { var r = n.internal.getFont(e.fontName, e.fontStyle) , o = n.getStringUnitWidth(t, { font: r, fontSize: parseFloat(i), charSpace: 0 }) * parseFloat(i); return { height: n.getStringUnitWidth("3", { font: r, fontSize: parseFloat(i), charSpace: 0 }) * parseFloat(i) * 1.5, width: o } } , M = { fields: [], xForms: [], acroFormDictionaryRoot: null, printedOut: !1, internal: null, isInitialized: !1 } , E = function() { n.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0; var t = n.internal.acroformPlugin.acroFormDictionaryRoot.Fields; for (var e in t) if (t.hasOwnProperty(e)) { var i = t[e]; i.objId = void 0, i.hasAnnotation && C.call(n, i) } } , C = function(t) { var e = { type: "reference", object: t }; void 0 === n.internal.getPageInfo(t.page).pageContext.annotations.find((function(t) { return t.type === e.type && t.object === e.object } )) && n.internal.getPageInfo(t.page).pageContext.annotations.push(e) } , A = function() { if (void 0 === n.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("putCatalogCallback: Root missing."); n.internal.write("/AcroForm " + n.internal.acroformPlugin.acroFormDictionaryRoot.objId + " 0 R") } , T = function() { n.internal.events.unsubscribe(n.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete n.internal.acroformPlugin.acroFormDictionaryRoot._eventID, n.internal.acroformPlugin.printedOut = !0 } , O = function(t) { var e = !t; for (var i in t || (n.internal.newObjectDeferredBegin(n.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), n.internal.acroformPlugin.acroFormDictionaryRoot.putStream()), t = t || n.internal.acroformPlugin.acroFormDictionaryRoot.Kids) if (t.hasOwnProperty(i)) { var o = t[i] , a = [] , s = o.Rect; if (o.Rect && (o.Rect = b.call(this, o.Rect)), n.internal.newObjectDeferredBegin(o.objId, !0), o.DA = Y.createDefaultAppearanceStream(o), "object" === r(o) && "function" == typeof o.getKeyValueListForStream && (a = o.getKeyValueListForStream()), o.Rect = s, o.hasAppearanceStream && !o.appearanceStreamContent) { var c = w.call(this, o); a.push({ key: "AP", value: "<>" }), n.internal.acroformPlugin.xForms.push(c) } if (o.appearanceStreamContent) { var l = ""; for (var u in o.appearanceStreamContent) if (o.appearanceStreamContent.hasOwnProperty(u)) { var d = o.appearanceStreamContent[u]; if (l += "/" + u + " ", l += "<<", 1 <= Object.keys(d).length || Array.isArray(d)) for (var i in d) { var p; d.hasOwnProperty(i) && ("function" == typeof (p = d[i]) && (p = p.call(this, o)), l += "/" + i + " " + p + " ", 0 <= n.internal.acroformPlugin.xForms.indexOf(p) || n.internal.acroformPlugin.xForms.push(p)) } else "function" == typeof (p = d) && (p = p.call(this, o)), l += "/" + i + " " + p, 0 <= n.internal.acroformPlugin.xForms.indexOf(p) || n.internal.acroformPlugin.xForms.push(p); l += ">>" } a.push({ key: "AP", value: "<<\n" + l + ">>" }) } n.internal.putStream({ additionalKeyValues: a }), n.internal.out("endobj") } e && _.call(this, n.internal.acroformPlugin.xForms) } , _ = function(t) { for (var e in t) if (t.hasOwnProperty(e)) { var i = e , o = t[e]; n.internal.newObjectDeferredBegin(o && o.objId, !0), "object" === r(o) && "function" == typeof o.putStream && o.putStream(), delete t[i] } } , P = function() { if (void 0 !== this.internal && (void 0 === this.internal.acroformPlugin || !1 === this.internal.acroformPlugin.isInitialized)) { if (n = this, N.FieldNum = 0, this.internal.acroformPlugin = JSON.parse(JSON.stringify(M)), this.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error("Exception while creating AcroformDictionary"); i = n.internal.scaleFactor, n.internal.acroformPlugin.acroFormDictionaryRoot = new L, n.internal.acroformPlugin.acroFormDictionaryRoot._eventID = n.internal.events.subscribe("postPutResources", T), n.internal.events.subscribe("buildDocument", E), n.internal.events.subscribe("putCatalog", A), n.internal.events.subscribe("postPutPages", O), n.internal.acroformPlugin.isInitialized = !0 } } , I = t.__acroform__.arrayToPdfArray = function(t) { if (Array.isArray(t)) { for (var e = "[", n = 0; n < t.length; n++) switch (0 !== n && (e += " "), r(t[n])) { case "boolean": case "number": case "object": e += t[n].toString(); break; case "string": "/" !== t[n].substr(0, 1) ? e += "(" + o(t[n].toString()) + ")" : e += t[n].toString() } return e + "]" } throw new Error("Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray") } , k = function(t) { return (t = t || "").toString(), "(" + o(t) + ")" } , D = function() { var t; Object.defineProperty(this, "objId", { configurable: !0, get: function() { if (t || (t = n.internal.newObjectDeferred()), !t) throw new Error("AcroFormPDFObject: Couldn't create Object ID"); return t }, set: function(e) { t = e } }) }; D.prototype.toString = function() { return this.objId + " 0 R" } , D.prototype.putStream = function() { var t = this.getKeyValueListForStream(); n.internal.putStream({ data: this.stream, additionalKeyValues: t }), n.internal.out("endobj") } , D.prototype.getKeyValueListForStream = function() { return function(t) { var e = [] , n = Object.getOwnPropertyNames(t).filter((function(t) { return "content" != t && "appearanceStreamContent" != t && "_" != t.substring(0, 1) } )); for (var i in n) if (!1 === Object.getOwnPropertyDescriptor(t, n[i]).configurable) { var r = n[i] , o = t[r]; o && (Array.isArray(o) ? e.push({ key: r, value: I(o) }) : o instanceof D ? e.push({ key: r, value: o.objId + " 0 R" }) : "function" != typeof o && e.push({ key: r, value: o })) } return e }(this) } ; var R = function() { D.call(this), Object.defineProperty(this, "Type", { value: "/XObject", configurable: !1, writeable: !0 }), Object.defineProperty(this, "Subtype", { value: "/Form", configurable: !1, writeable: !0 }), Object.defineProperty(this, "FormType", { value: 1, configurable: !1, writeable: !0 }); var t, e = []; Object.defineProperty(this, "BBox", { configurable: !1, writeable: !0, get: function() { return e }, set: function(t) { e = t } }), Object.defineProperty(this, "Resources", { value: "2 0 R", configurable: !1, writeable: !0 }), Object.defineProperty(this, "stream", { enumerable: !1, configurable: !0, set: function(e) { t = e.trim() }, get: function() { return t || null } }) }; l(R, D); var L = function() { D.call(this); var t, e = []; Object.defineProperty(this, "Kids", { enumerable: !1, configurable: !0, get: function() { return 0 < e.length ? e : void 0 } }), Object.defineProperty(this, "Fields", { enumerable: !1, configurable: !1, get: function() { return e } }), Object.defineProperty(this, "DA", { enumerable: !1, configurable: !1, get: function() { if (t) return "(" + t + ")" }, set: function(e) { t = e } }) }; l(L, D); var N = function t() { D.call(this); var e = 4; Object.defineProperty(this, "F", { enumerable: !1, configurable: !1, get: function() { return e }, set: function(t) { if (isNaN(t)) throw new Error('Invalid value "' + t + '" for attribute F supplied.'); e = t } }), Object.defineProperty(this, "showWhenPrinted", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(e, 3)) }, set: function(t) { !0 === Boolean(t) ? this.F = v(e, 3) : this.F = y(e, 3) } }); var n = 0; Object.defineProperty(this, "Ff", { enumerable: !1, configurable: !1, get: function() { return n }, set: function(t) { if (isNaN(t)) throw new Error('Invalid value "' + t + '" for attribute Ff supplied.'); n = t } }); var i = []; Object.defineProperty(this, "Rect", { enumerable: !1, configurable: !1, get: function() { if (0 !== i.length) return i }, set: function(t) { i = void 0 !== t ? t : [] } }), Object.defineProperty(this, "x", { enumerable: !0, configurable: !0, get: function() { return !i || isNaN(i[0]) ? 0 : d(i[0]) }, set: function(t) { i[0] = u(t) } }), Object.defineProperty(this, "y", { enumerable: !0, configurable: !0, get: function() { return !i || isNaN(i[1]) ? 0 : d(i[1]) }, set: function(t) { i[1] = u(t) } }), Object.defineProperty(this, "width", { enumerable: !0, configurable: !0, get: function() { return !i || isNaN(i[2]) ? 0 : d(i[2]) }, set: function(t) { i[2] = u(t) } }), Object.defineProperty(this, "height", { enumerable: !0, configurable: !0, get: function() { return !i || isNaN(i[3]) ? 0 : d(i[3]) }, set: function(t) { i[3] = u(t) } }); var r = ""; Object.defineProperty(this, "FT", { enumerable: !0, configurable: !1, get: function() { return r }, set: function(t) { switch (t) { case "/Btn": case "/Tx": case "/Ch": case "/Sig": r = t; break; default: throw new Error('Invalid value "' + t + '" for attribute FT supplied.') } } }); var s = null; Object.defineProperty(this, "T", { enumerable: !0, configurable: !1, get: function() { if (!s || s.length < 1) { if (this instanceof H) return; s = "FieldObject" + t.FieldNum++ } return "(" + o(s) + ")" }, set: function(t) { s = t.toString() } }), Object.defineProperty(this, "fieldName", { configurable: !0, enumerable: !0, get: function() { return s }, set: function(t) { s = t } }); var c = "helvetica"; Object.defineProperty(this, "fontName", { enumerable: !0, configurable: !0, get: function() { return c }, set: function(t) { c = t } }); var l = "normal"; Object.defineProperty(this, "fontStyle", { enumerable: !0, configurable: !0, get: function() { return l }, set: function(t) { l = t } }); var p = 0; Object.defineProperty(this, "fontSize", { enumerable: !0, configurable: !0, get: function() { return d(p) }, set: function(t) { p = u(t) } }); var h = 50; Object.defineProperty(this, "maxFontSize", { enumerable: !0, configurable: !0, get: function() { return d(h) }, set: function(t) { h = u(t) } }); var f = "black"; Object.defineProperty(this, "color", { enumerable: !0, configurable: !0, get: function() { return f }, set: function(t) { f = t } }); var m = "/F1 0 Tf 0 g"; Object.defineProperty(this, "DA", { enumerable: !0, configurable: !1, get: function() { if (!(!m || this instanceof H || this instanceof q)) return k(m) }, set: function(t) { t = t.toString(), m = t } }); var b = null; Object.defineProperty(this, "DV", { enumerable: !1, configurable: !1, get: function() { if (b) return this instanceof B == 0 ? k(b) : b }, set: function(t) { t = t.toString(), b = this instanceof B == 0 ? "(" === t.substr(0, 1) ? a(t.substr(1, t.length - 2)) : a(t) : t } }), Object.defineProperty(this, "defaultValue", { enumerable: !0, configurable: !0, get: function() { return this instanceof B == 1 ? a(b.substr(1, b.length - 1)) : b }, set: function(t) { t = t.toString(), b = this instanceof B == 1 ? "/" + t : t } }); var w = null; Object.defineProperty(this, "V", { enumerable: !1, configurable: !1, get: function() { if (w) return this instanceof B == 0 ? k(w) : w }, set: function(t) { t = t.toString(), w = this instanceof B == 0 ? "(" === t.substr(0, 1) ? a(t.substr(1, t.length - 2)) : a(t) : t } }), Object.defineProperty(this, "value", { enumerable: !0, configurable: !0, get: function() { return this instanceof B == 1 ? a(w.substr(1, w.length - 1)) : w }, set: function(t) { t = t.toString(), w = this instanceof B == 1 ? "/" + t : t } }), Object.defineProperty(this, "hasAnnotation", { enumerable: !0, configurable: !0, get: function() { return this.Rect } }), Object.defineProperty(this, "Type", { enumerable: !0, configurable: !1, get: function() { return this.hasAnnotation ? "/Annot" : null } }), Object.defineProperty(this, "Subtype", { enumerable: !0, configurable: !1, get: function() { return this.hasAnnotation ? "/Widget" : null } }); var S, x = !1; Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, writeable: !0, get: function() { return x }, set: function(t) { t = Boolean(t), x = t } }), Object.defineProperty(this, "page", { enumerable: !0, configurable: !0, writeable: !0, get: function() { if (S) return S }, set: function(t) { S = t } }), Object.defineProperty(this, "readOnly", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 1)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 1) : this.Ff = y(this.Ff, 1) } }), Object.defineProperty(this, "required", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 2)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 2) : this.Ff = y(this.Ff, 2) } }), Object.defineProperty(this, "noExport", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 3)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 3) : this.Ff = y(this.Ff, 3) } }); var M = null; Object.defineProperty(this, "Q", { enumerable: !0, configurable: !1, get: function() { if (null !== M) return M }, set: function(t) { if (-1 === [0, 1, 2].indexOf(t)) throw new Error('Invalid value "' + t + '" for attribute Q supplied.'); M = t } }), Object.defineProperty(this, "textAlign", { get: function() { var t = "left"; switch (M) { case 0: default: t = "left"; break; case 1: t = "center"; break; case 2: t = "right" } return t }, configurable: !0, enumerable: !0, set: function(t) { switch (t) { case "right": case 2: M = 2; break; case "center": case 1: M = 1; break; case "left": case 0: default: M = 0 } } }) }; l(N, D); var j = function() { N.call(this), this.FT = "/Ch", this.V = "()", this.fontName = "zapfdingbats"; var t = 0; Object.defineProperty(this, "TI", { enumerable: !0, configurable: !1, get: function() { return t }, set: function(e) { t = e } }), Object.defineProperty(this, "topIndex", { enumerable: !0, configurable: !0, get: function() { return t }, set: function(e) { t = e } }); var e = []; Object.defineProperty(this, "Opt", { enumerable: !0, configurable: !1, get: function() { return I(e) }, set: function(t) { var n, i; i = [], "string" == typeof (n = t) && (i = function(t, e, n) { n || (n = 1); for (var i, r = []; i = e.exec(t); ) r.push(i[n]); return r }(n, /\((.*?)\)/g)), e = i } }), this.getOptions = function() { return e } , this.setOptions = function(t) { e = t, this.sort && e.sort() } , this.addOption = function(t) { t = (t = t || "").toString(), e.push(t), this.sort && e.sort() } , this.removeOption = function(t, n) { for (n = n || !1, t = (t = t || "").toString(); -1 !== e.indexOf(t) && (e.splice(e.indexOf(t), 1), !1 !== n); ) ; } , Object.defineProperty(this, "combo", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 18)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 18) : this.Ff = y(this.Ff, 18) } }), Object.defineProperty(this, "edit", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 19)) }, set: function(t) { !0 === this.combo && (!0 === Boolean(t) ? this.Ff = v(this.Ff, 19) : this.Ff = y(this.Ff, 19)) } }), Object.defineProperty(this, "sort", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 20)) }, set: function(t) { !0 === Boolean(t) ? (this.Ff = v(this.Ff, 20), e.sort()) : this.Ff = y(this.Ff, 20) } }), Object.defineProperty(this, "multiSelect", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 22)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 22) : this.Ff = y(this.Ff, 22) } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 23)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 23) : this.Ff = y(this.Ff, 23) } }), Object.defineProperty(this, "commitOnSelChange", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 27)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 27) : this.Ff = y(this.Ff, 27) } }), this.hasAppearanceStream = !1 }; l(j, N); var V = function() { j.call(this), this.fontName = "helvetica", this.combo = !1 }; l(V, j); var F = function() { V.call(this), this.combo = !0 }; l(F, V); var U = function() { F.call(this), this.edit = !0 }; l(U, F); var B = function() { N.call(this), this.FT = "/Btn", Object.defineProperty(this, "noToggleToOff", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 15)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 15) : this.Ff = y(this.Ff, 15) } }), Object.defineProperty(this, "radio", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 16)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 16) : this.Ff = y(this.Ff, 16) } }), Object.defineProperty(this, "pushButton", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 17)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 17) : this.Ff = y(this.Ff, 17) } }), Object.defineProperty(this, "radioIsUnison", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 26)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 26) : this.Ff = y(this.Ff, 26) } }); var t, e = {}; Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() { if (0 !== Object.keys(e).length) { var t, n = []; for (t in n.push("<<"), e) n.push("/" + t + " (" + e[t] + ")"); return n.push(">>"), n.join("\n") } }, set: function(t) { "object" === r(t) && (e = t) } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() { return e.CA || "" }, set: function(t) { "string" == typeof t && (e.CA = t) } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() { return t }, set: function(e) { t = e } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() { return t.substr(1, t.length - 1) }, set: function(e) { t = "/" + e } }) }; l(B, N); var z = function() { B.call(this), this.pushButton = !0 }; l(z, B); var G = function() { B.call(this), this.radio = !0, this.pushButton = !1; var t = []; Object.defineProperty(this, "Kids", { enumerable: !0, configurable: !1, get: function() { return t }, set: function(e) { t = void 0 !== e ? e : [] } }) }; l(G, B); var H = function() { var t, e; N.call(this), Object.defineProperty(this, "Parent", { enumerable: !1, configurable: !1, get: function() { return t }, set: function(e) { t = e } }), Object.defineProperty(this, "optionName", { enumerable: !1, configurable: !0, get: function() { return e }, set: function(t) { e = t } }); var n, i = {}; Object.defineProperty(this, "MK", { enumerable: !1, configurable: !1, get: function() { var t, e = []; for (t in e.push("<<"), i) e.push("/" + t + " (" + i[t] + ")"); return e.push(">>"), e.join("\n") }, set: function(t) { "object" === r(t) && (i = t) } }), Object.defineProperty(this, "caption", { enumerable: !0, configurable: !0, get: function() { return i.CA || "" }, set: function(t) { "string" == typeof t && (i.CA = t) } }), Object.defineProperty(this, "AS", { enumerable: !1, configurable: !1, get: function() { return n }, set: function(t) { n = t } }), Object.defineProperty(this, "appearanceState", { enumerable: !0, configurable: !0, get: function() { return n.substr(1, n.length - 1) }, set: function(t) { n = "/" + t } }), this.optionName = name, this.caption = "l", this.appearanceState = "Off", this._AppearanceType = Y.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(name) }; l(H, N), G.prototype.setAppearance = function(t) { if (!("createAppearanceStream"in t) || !("getCA"in t)) throw new Error("Couldn't assign Appearance to RadioButton. Appearance was Invalid!"); for (var e in this.Kids) if (this.Kids.hasOwnProperty(e)) { var n = this.Kids[e]; n.appearanceStreamContent = t.createAppearanceStream(n.optionName), n.caption = t.getCA() } } , G.prototype.createOption = function(t) { this.Kids.length; var e = new H; return e.Parent = this, e.optionName = t, this.Kids.push(e), K.call(this, e), e } ; var W = function() { B.call(this), this.fontName = "zapfdingbats", this.caption = "3", this.appearanceState = "On", this.value = "On", this.textAlign = "center", this.appearanceStreamContent = Y.CheckBox.createAppearanceStream() }; l(W, B); var q = function() { N.call(this), this.FT = "/Tx", Object.defineProperty(this, "multiline", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 13)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 13) : this.Ff = y(this.Ff, 13) } }), Object.defineProperty(this, "fileSelect", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 21)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 21) : this.Ff = y(this.Ff, 21) } }), Object.defineProperty(this, "doNotSpellCheck", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 23)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 23) : this.Ff = y(this.Ff, 23) } }), Object.defineProperty(this, "doNotScroll", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 24)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 24) : this.Ff = y(this.Ff, 24) } }), Object.defineProperty(this, "comb", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 25)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 25) : this.Ff = y(this.Ff, 25) } }), Object.defineProperty(this, "richText", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 26)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 26) : this.Ff = y(this.Ff, 26) } }); var t = null; Object.defineProperty(this, "MaxLen", { enumerable: !0, configurable: !1, get: function() { return t }, set: function(e) { t = e } }), Object.defineProperty(this, "maxLength", { enumerable: !0, configurable: !0, get: function() { return t }, set: function(e) { Number.isInteger(e) && (t = e) } }), Object.defineProperty(this, "hasAppearanceStream", { enumerable: !0, configurable: !0, get: function() { return this.V || this.DV } }) }; l(q, N); var X = function() { q.call(this), Object.defineProperty(this, "password", { enumerable: !0, configurable: !0, get: function() { return Boolean(g(this.Ff, 14)) }, set: function(t) { !0 === Boolean(t) ? this.Ff = v(this.Ff, 14) : this.Ff = y(this.Ff, 14) } }), this.password = !0 }; l(X, q); var Y = { CheckBox: { createAppearanceStream: function() { return { N: { On: Y.CheckBox.YesNormal }, D: { On: Y.CheckBox.YesPushDown, Off: Y.CheckBox.OffPushDown } } }, YesPushDown: function(t) { var e = p(t) , i = [] , r = n.internal.getFont(t.fontName, t.fontStyle).id , o = n.__private__.encodeColorString(t.color) , a = S(t, t.caption); return i.push("0.749023 g"), i.push("0 0 " + s(Y.internal.getWidth(t)) + " " + s(Y.internal.getHeight(t)) + " re"), i.push("f"), i.push("BMC"), i.push("q"), i.push("0 0 1 rg"), i.push("/" + r + " " + s(a.fontSize) + " Tf " + o), i.push("BT"), i.push(a.text), i.push("ET"), i.push("Q"), i.push("EMC"), e.stream = i.join("\n"), e }, YesNormal: function(t) { var e = p(t) , i = n.internal.getFont(t.fontName, t.fontStyle).id , r = n.__private__.encodeColorString(t.color) , o = [] , a = Y.internal.getHeight(t) , c = Y.internal.getWidth(t) , l = S(t, t.caption); return o.push("1 g"), o.push("0 0 " + s(c) + " " + s(a) + " re"), o.push("f"), o.push("q"), o.push("0 0 1 rg"), o.push("0 0 " + s(c - 1) + " " + s(a - 1) + " re"), o.push("W"), o.push("n"), o.push("0 g"), o.push("BT"), o.push("/" + i + " " + s(l.fontSize) + " Tf " + r), o.push(l.text), o.push("ET"), o.push("Q"), e.stream = o.join("\n"), e }, OffPushDown: function(t) { var e = p(t) , n = []; return n.push("0.749023 g"), n.push("0 0 " + s(Y.internal.getWidth(t)) + " " + s(Y.internal.getHeight(t)) + " re"), n.push("f"), e.stream = n.join("\n"), e } }, RadioButton: { Circle: { createAppearanceStream: function(t) { var e = { D: { Off: Y.RadioButton.Circle.OffPushDown }, N: {} }; return e.N[t] = Y.RadioButton.Circle.YesNormal, e.D[t] = Y.RadioButton.Circle.YesPushDown, e }, getCA: function() { return "l" }, YesNormal: function(t) { var e = p(t) , n = [] , i = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4; i = Number((.9 * i).toFixed(5)); var r = Y.internal.Bezier_C , o = Number((i * r).toFixed(5)); return n.push("q"), n.push("1 0 0 1 " + c(Y.internal.getWidth(t) / 2) + " " + c(Y.internal.getHeight(t) / 2) + " cm"), n.push(i + " 0 m"), n.push(i + " " + o + " " + o + " " + i + " 0 " + i + " c"), n.push("-" + o + " " + i + " -" + i + " " + o + " -" + i + " 0 c"), n.push("-" + i + " -" + o + " -" + o + " -" + i + " 0 -" + i + " c"), n.push(o + " -" + i + " " + i + " -" + o + " " + i + " 0 c"), n.push("f"), n.push("Q"), e.stream = n.join("\n"), e }, YesPushDown: function(t) { var e = p(t) , n = [] , i = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4 , r = (i = Number((.9 * i).toFixed(5)), Number((2 * i).toFixed(5))) , o = Number((r * Y.internal.Bezier_C).toFixed(5)) , a = Number((i * Y.internal.Bezier_C).toFixed(5)); return n.push("0.749023 g"), n.push("q"), n.push("1 0 0 1 " + c(Y.internal.getWidth(t) / 2) + " " + c(Y.internal.getHeight(t) / 2) + " cm"), n.push(r + " 0 m"), n.push(r + " " + o + " " + o + " " + r + " 0 " + r + " c"), n.push("-" + o + " " + r + " -" + r + " " + o + " -" + r + " 0 c"), n.push("-" + r + " -" + o + " -" + o + " -" + r + " 0 -" + r + " c"), n.push(o + " -" + r + " " + r + " -" + o + " " + r + " 0 c"), n.push("f"), n.push("Q"), n.push("0 g"), n.push("q"), n.push("1 0 0 1 " + c(Y.internal.getWidth(t) / 2) + " " + c(Y.internal.getHeight(t) / 2) + " cm"), n.push(i + " 0 m"), n.push(i + " " + a + " " + a + " " + i + " 0 " + i + " c"), n.push("-" + a + " " + i + " -" + i + " " + a + " -" + i + " 0 c"), n.push("-" + i + " -" + a + " -" + a + " -" + i + " 0 -" + i + " c"), n.push(a + " -" + i + " " + i + " -" + a + " " + i + " 0 c"), n.push("f"), n.push("Q"), e.stream = n.join("\n"), e }, OffPushDown: function(t) { var e = p(t) , n = [] , i = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4 , r = (i = Number((.9 * i).toFixed(5)), Number((2 * i).toFixed(5))) , o = Number((r * Y.internal.Bezier_C).toFixed(5)); return n.push("0.749023 g"), n.push("q"), n.push("1 0 0 1 " + c(Y.internal.getWidth(t) / 2) + " " + c(Y.internal.getHeight(t) / 2) + " cm"), n.push(r + " 0 m"), n.push(r + " " + o + " " + o + " " + r + " 0 " + r + " c"), n.push("-" + o + " " + r + " -" + r + " " + o + " -" + r + " 0 c"), n.push("-" + r + " -" + o + " -" + o + " -" + r + " 0 -" + r + " c"), n.push(o + " -" + r + " " + r + " -" + o + " " + r + " 0 c"), n.push("f"), n.push("Q"), e.stream = n.join("\n"), e } }, Cross: { createAppearanceStream: function(t) { var e = { D: { Off: Y.RadioButton.Cross.OffPushDown }, N: {} }; return e.N[t] = Y.RadioButton.Cross.YesNormal, e.D[t] = Y.RadioButton.Cross.YesPushDown, e }, getCA: function() { return "8" }, YesNormal: function(t) { var e = p(t) , n = [] , i = Y.internal.calculateCross(t); return n.push("q"), n.push("1 1 " + s(Y.internal.getWidth(t) - 2) + " " + s(Y.internal.getHeight(t) - 2) + " re"), n.push("W"), n.push("n"), n.push(s(i.x1.x) + " " + s(i.x1.y) + " m"), n.push(s(i.x2.x) + " " + s(i.x2.y) + " l"), n.push(s(i.x4.x) + " " + s(i.x4.y) + " m"), n.push(s(i.x3.x) + " " + s(i.x3.y) + " l"), n.push("s"), n.push("Q"), e.stream = n.join("\n"), e }, YesPushDown: function(t) { var e = p(t) , n = Y.internal.calculateCross(t) , i = []; return i.push("0.749023 g"), i.push("0 0 " + s(Y.internal.getWidth(t)) + " " + s(Y.internal.getHeight(t)) + " re"), i.push("f"), i.push("q"), i.push("1 1 " + s(Y.internal.getWidth(t) - 2) + " " + s(Y.internal.getHeight(t) - 2) + " re"), i.push("W"), i.push("n"), i.push(s(n.x1.x) + " " + s(n.x1.y) + " m"), i.push(s(n.x2.x) + " " + s(n.x2.y) + " l"), i.push(s(n.x4.x) + " " + s(n.x4.y) + " m"), i.push(s(n.x3.x) + " " + s(n.x3.y) + " l"), i.push("s"), i.push("Q"), e.stream = i.join("\n"), e }, OffPushDown: function(t) { var e = p(t) , n = []; return n.push("0.749023 g"), n.push("0 0 " + s(Y.internal.getWidth(t)) + " " + s(Y.internal.getHeight(t)) + " re"), n.push("f"), e.stream = n.join("\n"), e } } }, createDefaultAppearanceStream: function(t) { var e = n.internal.getFont(t.fontName, t.fontStyle).id , i = n.__private__.encodeColorString(t.color); return "/" + e + " " + t.fontSize + " Tf " + i } }; Y.internal = { Bezier_C: .551915024494, calculateCross: function(t) { var e = Y.internal.getWidth(t) , n = Y.internal.getHeight(t) , i = Math.min(e, n); return { x1: { x: (e - i) / 2, y: (n - i) / 2 + i }, x2: { x: (e - i) / 2 + i, y: (n - i) / 2 }, x3: { x: (e - i) / 2, y: (n - i) / 2 }, x4: { x: (e - i) / 2 + i, y: (n - i) / 2 + i } } } }, Y.internal.getWidth = function(t) { var e = 0; return "object" === r(t) && (e = u(t.Rect[2])), e } , Y.internal.getHeight = function(t) { var e = 0; return "object" === r(t) && (e = u(t.Rect[3])), e } ; var K = t.addField = function(t) { if (P.call(this), !(t instanceof N)) throw new Error("Invalid argument passed to jsPDF.addField."); return function(t) { n.internal.acroformPlugin.printedOut && (n.internal.acroformPlugin.printedOut = !1, n.internal.acroformPlugin.acroFormDictionaryRoot = null), n.internal.acroformPlugin.acroFormDictionaryRoot || P.call(n), n.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(t) } .call(this, t), t.page = n.internal.getCurrentPageInfo().pageNumber, this } ; t.addButton = function(t) { if (t instanceof B == 0) throw new Error("Invalid argument passed to jsPDF.addButton."); return K.call(this, t) } , t.addTextField = function(t) { if (t instanceof q == 0) throw new Error("Invalid argument passed to jsPDF.addTextField."); return K.call(this, t) } , t.addChoiceField = function(t) { if (t instanceof j == 0) throw new Error("Invalid argument passed to jsPDF.addChoiceField."); return K.call(this, t) } , "object" == r(e) && void 0 === e.ChoiceField && void 0 === e.ListBox && void 0 === e.ComboBox && void 0 === e.EditBox && void 0 === e.Button && void 0 === e.PushButton && void 0 === e.RadioButton && void 0 === e.CheckBox && void 0 === e.TextField && void 0 === e.PasswordField ? (e.ChoiceField = j, e.ListBox = V, e.ComboBox = F, e.EditBox = U, e.Button = B, e.PushButton = z, e.RadioButton = G, e.CheckBox = W, e.TextField = q, e.PasswordField = X, e.AcroForm = { Appearance: Y }) : console.warn("AcroForm-Classes are not populated into global-namespace, because the class-Names exist already."), t.AcroFormChoiceField = j, t.AcroFormListBox = V, t.AcroFormComboBox = F, t.AcroFormEditBox = U, t.AcroFormButton = B, t.AcroFormPushButton = z, t.AcroFormRadioButton = G, t.AcroFormCheckBox = W, t.AcroFormTextField = q, t.AcroFormPasswordField = X, t.AcroFormAppearance = Y, t.AcroForm = { ChoiceField: j, ListBox: V, ComboBox: F, EditBox: U, Button: B, PushButton: z, RadioButton: G, CheckBox: W, TextField: q, PasswordField: X, Appearance: Y } } )((window.tmp = ft).API, "undefined" != typeof window && window || void 0 !== i && i), /** @license * jsPDF addImage plugin * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/ * 2013 Chris Dowling, https://github.com/gingerchris * 2013 Trinh Ho, https://github.com/ineedfat * 2013 Edwin Alejandro Perez, https://github.com/eaparango * 2013 Norah Smith, https://github.com/burnburnrocket * 2014 Diego Casorran, https://github.com/diegocr * 2014 James Robb, https://github.com/jamesbrobb * * */ function(t) { var e = "addImage_" , n = { PNG: [[137, 80, 78, 71]], TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]], JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0]], JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]], GIF87a: [[71, 73, 70, 56, 55, 97]], GIF89a: [[71, 73, 70, 56, 57, 97]], BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]] } , i = t.getImageFileTypeByImageData = function(e, i) { var r, o; i = i || "UNKNOWN"; var a, s, c, l = "UNKNOWN"; for (c in t.isArrayBufferView(e) && (e = t.arrayBufferToBinaryString(e)), n) for (a = n[c], r = 0; r < a.length; r += 1) { for (s = !0, o = 0; o < a[r].length; o += 1) if (void 0 !== a[r][o] && a[r][o] !== e.charCodeAt(o)) { s = !1; break } if (!0 === s) { l = c; break } } return "UNKNOWN" === l && "UNKNOWN" !== i && (console.warn('FileType of Image not recognized. Processing image as "' + i + '".'), l = i), l } , o = function t(e) { for (var n = this.internal.newObject(), i = this.internal.write, r = this.internal.putStream, o = (0, this.internal.getFilters)(); -1 !== o.indexOf("FlateEncode"); ) o.splice(o.indexOf("FlateEncode"), 1); e.n = n; var a = []; if (a.push({ key: "Type", value: "/XObject" }), a.push({ key: "Subtype", value: "/Image" }), a.push({ key: "Width", value: e.w }), a.push({ key: "Height", value: e.h }), e.cs === this.color_spaces.INDEXED ? a.push({ key: "ColorSpace", value: "[/Indexed /DeviceRGB " + (e.pal.length / 3 - 1) + " " + ("smask"in e ? n + 2 : n + 1) + " 0 R]" }) : (a.push({ key: "ColorSpace", value: "/" + e.cs }), e.cs === this.color_spaces.DEVICE_CMYK && a.push({ key: "Decode", value: "[1 0 1 0 1 0 1 0]" })), a.push({ key: "BitsPerComponent", value: e.bpc }), "dp"in e && a.push({ key: "DecodeParms", value: "<<" + e.dp + ">>" }), "trns"in e && e.trns.constructor == Array) { for (var s = "", c = 0, l = e.trns.length; c < l; c++) s += e.trns[c] + " " + e.trns[c] + " "; a.push({ key: "Mask", value: "[" + s + "]" }) } "smask"in e && a.push({ key: "SMask", value: n + 1 + " 0 R" }); var u = void 0 !== e.f ? ["/" + e.f] : void 0; if (r({ data: e.data, additionalKeyValues: a, alreadyAppliedFilters: u }), i("endobj"), "smask"in e) { var d = "/Predictor " + e.p + " /Colors 1 /BitsPerComponent " + e.bpc + " /Columns " + e.w , p = { w: e.w, h: e.h, cs: "DeviceGray", bpc: e.bpc, dp: d, data: e.smask }; "f"in e && (p.f = e.f), t.call(this, p) } e.cs === this.color_spaces.INDEXED && (this.internal.newObject(), r({ data: this.arrayBufferToBinaryString(new Uint8Array(e.pal)) }), i("endobj")) } , a = function() { var t = this.internal.collections[e + "images"]; for (var n in t) o.call(this, t[n]) } , s = function() { var t, n = this.internal.collections[e + "images"], i = this.internal.write; for (var r in n) i("/I" + (t = n[r]).i, t.n, "0", "R") } , c = function(e) { return "function" == typeof t["process" + e.toUpperCase()] } , l = function(t) { return "object" === r(t) && 1 === t.nodeType } , u = function(e, n) { if ("IMG" === e.nodeName && e.hasAttribute("src")) { var i = "" + e.getAttribute("src"); if (0 === i.indexOf("data:image/")) return unescape(i); var r = t.loadFile(i); if (void 0 !== r) return btoa(r) } if ("CANVAS" === e.nodeName) { var o = e; return e.toDataURL("image/jpeg", 1) } (o = document.createElement("canvas")).width = e.clientWidth || e.width, o.height = e.clientHeight || e.height; var a = o.getContext("2d"); if (!a) throw "addImage requires canvas to be supported by browser."; return a.drawImage(e, 0, 0, o.width, o.height), o.toDataURL("png" == ("" + n).toLowerCase() ? "image/png" : "image/jpeg") } , d = function(t, e) { var n; if (e) for (var i in e) if (t === e[i].alias) { n = e[i]; break } return n }; t.color_spaces = { DEVICE_RGB: "DeviceRGB", DEVICE_GRAY: "DeviceGray", DEVICE_CMYK: "DeviceCMYK", CAL_GREY: "CalGray", CAL_RGB: "CalRGB", LAB: "Lab", ICC_BASED: "ICCBased", INDEXED: "Indexed", PATTERN: "Pattern", SEPARATION: "Separation", DEVICE_N: "DeviceN" }, t.decode = { DCT_DECODE: "DCTDecode", FLATE_DECODE: "FlateDecode", LZW_DECODE: "LZWDecode", JPX_DECODE: "JPXDecode", JBIG2_DECODE: "JBIG2Decode", ASCII85_DECODE: "ASCII85Decode", ASCII_HEX_DECODE: "ASCIIHexDecode", RUN_LENGTH_DECODE: "RunLengthDecode", CCITT_FAX_DECODE: "CCITTFaxDecode" }, t.image_compression = { NONE: "NONE", FAST: "FAST", MEDIUM: "MEDIUM", SLOW: "SLOW" }, t.sHashCode = function(t) { var e, n = 0; if (0 === (t = t || "").length) return n; for (e = 0; e < t.length; e++) n = (n << 5) - n + t.charCodeAt(e), n |= 0; return n } , t.isString = function(t) { return "string" == typeof t } , t.validateStringAsBase64 = function(t) { (t = t || "").toString().trim(); var e = !0; return 0 === t.length && (e = !1), t.length % 4 != 0 && (e = !1), !1 === /^[A-Za-z0-9+\/]+$/.test(t.substr(0, t.length - 2)) && (e = !1), !1 === /^[A-Za-z0-9\/][A-Za-z0-9+\/]|[A-Za-z0-9+\/]=|==$/.test(t.substr(-2)) && (e = !1), e } , t.extractInfoFromBase64DataURI = function(t) { return /^data:([\w]+?\/([\w]+?));\S*;*base64,(.+)$/g.exec(t) } , t.extractImageFromDataUrl = function(t) { var e = (t = t || "").split("base64,") , n = null; if (2 === e.length) { var i = /^data:(\w*\/\w*);*(charset=[\w=-]*)*;*$/.exec(e[0]); Array.isArray(i) && (n = { mimeType: i[1], charset: i[2], data: e[1] }) } return n } , t.supportsArrayBuffer = function() { return "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array } , t.isArrayBuffer = function(t) { return !!this.supportsArrayBuffer() && t instanceof ArrayBuffer } , t.isArrayBufferView = function(t) { return !!this.supportsArrayBuffer() && "undefined" != typeof Uint32Array && (t instanceof Int8Array || t instanceof Uint8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) } , t.binaryStringToUint8Array = function(t) { for (var e = t.length, n = new Uint8Array(e), i = 0; i < e; i++) n[i] = t.charCodeAt(i); return n } , t.arrayBufferToBinaryString = function(t) { if ("function" == typeof atob) return atob(this.arrayBufferToBase64(t)) } , t.arrayBufferToBase64 = function(t) { for (var e, n = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", r = new Uint8Array(t), o = r.byteLength, a = o % 3, s = o - a, c = 0; c < s; c += 3) n += i[(16515072 & (e = r[c] << 16 | r[c + 1] << 8 | r[c + 2])) >> 18] + i[(258048 & e) >> 12] + i[(4032 & e) >> 6] + i[63 & e]; return 1 == a ? n += i[(252 & (e = r[s])) >> 2] + i[(3 & e) << 4] + "==" : 2 == a && (n += i[(64512 & (e = r[s] << 8 | r[s + 1])) >> 10] + i[(1008 & e) >> 4] + i[(15 & e) << 2] + "="), n } , t.createImageInfo = function(t, e, n, i, r, o, a, s, c, l, u, d, p) { var h = { alias: s, w: e, h: n, cs: i, bpc: r, i: a, data: t }; return o && (h.f = o), c && (h.dp = c), l && (h.trns = l), u && (h.pal = u), d && (h.smask = d), p && (h.p = p), h } , t.addImage = function(n, i, o, p, h, f, m, g, v) { var y = ""; if ("string" != typeof i) { var b = f; f = h, h = p, p = o, o = i, i = b } if ("object" === r(n) && !l(n) && "imageData"in n) { var w = n; n = w.imageData, i = w.format || i || "UNKNOWN", o = w.x || o || 0, p = w.y || p || 0, h = w.w || h, f = w.h || f, m = w.alias || m, g = w.compression || g, v = w.rotation || w.angle || v } var S = this.internal.getFilters(); if (void 0 === g && -1 !== S.indexOf("FlateEncode") && (g = "SLOW"), "string" == typeof n && (n = unescape(n)), isNaN(o) || isNaN(p)) throw console.error("jsPDF.addImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addImage"); var x, M, E, C, A, T, O, _ = function() { var t = this.internal.collections[e + "images"]; return t || (this.internal.collections[e + "images"] = t = {}, this.internal.events.subscribe("putResources", a), this.internal.events.subscribe("putXobjectDict", s)), t } .call(this); if (!((x = d(n, _)) || (l(n) && (n = u(n, i)), (null == (O = m) || 0 === O.length) && (m = "string" == typeof (T = n) ? t.sHashCode(T) : t.isArrayBufferView(T) ? t.sHashCode(t.arrayBufferToBinaryString(T)) : null), x = d(m, _)))) { if (this.isString(n) && ("" !== (y = this.convertStringToImageData(n)) || void 0 !== (y = t.loadFile(n))) && (n = y), i = this.getImageFileTypeByImageData(n, i), !c(i)) throw new Error("addImage does not support files of type '" + i + "', please ensure that a plugin for '" + i + "' support is added."); if (this.supportsArrayBuffer() && (n instanceof Uint8Array || (M = n, n = this.binaryStringToUint8Array(n))), !(x = this["process" + i.toUpperCase()](n, (A = 0, (C = _) && (A = Object.keys ? Object.keys(C).length : function(t) { var e = 0; for (var n in t) t.hasOwnProperty(n) && e++; return e }(C)), A), m, ((E = g) && "string" == typeof E && (E = E.toUpperCase()), E in t.image_compression ? E : t.image_compression.NONE), M))) throw new Error("An unknown error occurred whilst processing the image") } return function(t, e, n, i, r, o, a, s) { var c = function(t, e, n) { return t || e || (e = t = -96), t < 0 && (t = -1 * n.w * 72 / t / this.internal.scaleFactor), e < 0 && (e = -1 * n.h * 72 / e / this.internal.scaleFactor), 0 === t && (t = e * n.w / n.h), 0 === e && (e = t * n.h / n.w), [t, e] } .call(this, n, i, r) , l = this.internal.getCoordinateString , u = this.internal.getVerticalCoordinateString; if (n = c[0], i = c[1], a[o] = r, s) { s *= Math.PI / 180; var d = Math.cos(s) , p = Math.sin(s) , h = function(t) { return t.toFixed(4) } , f = [h(d), h(p), h(-1 * p), h(d), 0, 0, "cm"] } this.internal.write("q"), s ? (this.internal.write([1, "0", "0", 1, l(t), u(e + i), "cm"].join(" ")), this.internal.write(f.join(" ")), this.internal.write([l(n), "0", "0", l(i), "0", "0", "cm"].join(" "))) : this.internal.write([l(n), "0", "0", l(i), l(t), u(e + i), "cm"].join(" ")), this.internal.write("/I" + r.i + " Do"), this.internal.write("Q") } .call(this, o, p, h, f, x, x.i, _, v), this } , t.convertStringToImageData = function(e) { var n, i = ""; if (this.isString(e)) { var r; n = null !== (r = this.extractImageFromDataUrl(e)) ? r.data : e; try { i = atob(n) } catch (e) { throw t.validateStringAsBase64(n) ? new Error("atob-Error in jsPDF.convertStringToImageData " + e.message) : new Error("Supplied Data is not a valid base64-String jsPDF.convertStringToImageData ") } } return i } ; var p = function(t, e) { return t.subarray(e, e + 5) }; t.processJPEG = function(t, e, n, r, o, a) { var s, c = this.decode.DCT_DECODE; if (!this.isString(t) && !this.isArrayBuffer(t) && !this.isArrayBufferView(t)) return null; if (this.isString(t) && (s = function(t) { var e; if ("JPEG" !== i(t)) throw new Error("getJpegSize requires a binary string jpeg file"); for (var n = 256 * t.charCodeAt(4) + t.charCodeAt(5), r = 4, o = t.length; r < o; ) { if (r += n, 255 !== t.charCodeAt(r)) throw new Error("getJpegSize could not find the size of the image"); if (192 === t.charCodeAt(r + 1) || 193 === t.charCodeAt(r + 1) || 194 === t.charCodeAt(r + 1) || 195 === t.charCodeAt(r + 1) || 196 === t.charCodeAt(r + 1) || 197 === t.charCodeAt(r + 1) || 198 === t.charCodeAt(r + 1) || 199 === t.charCodeAt(r + 1)) return e = 256 * t.charCodeAt(r + 5) + t.charCodeAt(r + 6), [256 * t.charCodeAt(r + 7) + t.charCodeAt(r + 8), e, t.charCodeAt(r + 9)]; r += 2, n = 256 * t.charCodeAt(r) + t.charCodeAt(r + 1) } }(t)), this.isArrayBuffer(t) && (t = new Uint8Array(t)), this.isArrayBufferView(t) && (s = function(t) { if (65496 != (t[0] << 8 | t[1])) throw new Error("Supplied data is not a JPEG"); for (var e, n = t.length, i = (t[4] << 8) + t[5], r = 4; r < n; ) { if (i = ((e = p(t, r += i))[2] << 8) + e[3], (192 === e[1] || 194 === e[1]) && 255 === e[0] && 7 < i) return { width: ((e = p(t, r + 5))[2] << 8) + e[3], height: (e[0] << 8) + e[1], numcomponents: e[4] }; r += 2 } throw new Error("getJpegSizeFromBytes could not find the size of the image") }(t), t = o || this.arrayBufferToBinaryString(t)), void 0 === a) switch (s.numcomponents) { case 1: a = this.color_spaces.DEVICE_GRAY; break; case 4: a = this.color_spaces.DEVICE_CMYK; break; default: case 3: a = this.color_spaces.DEVICE_RGB } return this.createImageInfo(t, s.width, s.height, a, 8, c, e, n) } , t.processJPG = function() { return this.processJPEG.apply(this, arguments) } , t.getImageProperties = function(e) { var n, i, r = ""; if (l(e) && (e = u(e)), this.isString(e) && ("" !== (r = this.convertStringToImageData(e)) || void 0 !== (r = t.loadFile(e))) && (e = r), i = this.getImageFileTypeByImageData(e), !c(i)) throw new Error("addImage does not support files of type '" + i + "', please ensure that a plugin for '" + i + "' support is added."); if (this.supportsArrayBuffer() && (e instanceof Uint8Array || (e = this.binaryStringToUint8Array(e))), !(n = this["process" + i.toUpperCase()](e))) throw new Error("An unknown error occurred whilst processing the image"); return { fileType: i, width: n.w, height: n.h, colorSpace: n.cs, compressionMode: n.f, bitsPerComponent: n.bpc } } }(ft.API), /** * @license * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv * * Licensed under the MIT License. * http://opensource.org/licenses/mit-license */ a = ft.API, ft.API.events.push(["addPage", function(t) { this.internal.getPageInfo(t.pageNumber).pageContext.annotations = [] } ]), a.events.push(["putPage", function(t) { for (var e = this.internal.getPageInfoByObjId(t.objId), n = t.pageContext.annotations, i = function(t) { if (void 0 !== t && "" != t) return !0 }, r = !1, o = 0; o < n.length && !r; o++) switch ((c = n[o]).type) { case "link": if (i(c.options.url) || i(c.options.pageNumber)) { r = !0; break } case "reference": case "text": case "freetext": r = !0 } if (0 != r) { this.internal.write("/Annots ["), this.internal.pageSize.height; var a = this.internal.getCoordinateString , s = this.internal.getVerticalCoordinateString; for (o = 0; o < n.length; o++) { var c; switch ((c = n[o]).type) { case "reference": this.internal.write(" " + c.object.objId + " 0 R "); break; case "text": var l = this.internal.newAdditionalObject() , u = this.internal.newAdditionalObject() , d = c.title || "Note"; g = "<>", l.content = g; var p = l.objId + " 0 R"; g = "<>"; else if (c.options.pageNumber) switch (g = "<>"), this.internal.out("endobj") } )), this.internal.events.subscribe("putCatalog", (function() { this.internal.out("/OpenAction " + e + " 0 R") } )) } return this } , /** * @license * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv * * Licensed under the MIT License. * http://opensource.org/licenses/mit-license */ s = ft.API, (c = function() { var t = void 0; Object.defineProperty(this, "pdf", { get: function() { return t }, set: function(e) { t = e } }); var e = 150; Object.defineProperty(this, "width", { get: function() { return e }, set: function(t) { e = isNaN(t) || !1 === Number.isInteger(t) || t < 0 ? 150 : t, this.getContext("2d").pageWrapXEnabled && (this.getContext("2d").pageWrapX = e + 1) } }); var n = 300; Object.defineProperty(this, "height", { get: function() { return n }, set: function(t) { n = isNaN(t) || !1 === Number.isInteger(t) || t < 0 ? 300 : t, this.getContext("2d").pageWrapYEnabled && (this.getContext("2d").pageWrapY = n + 1) } }); var i = []; Object.defineProperty(this, "childNodes", { get: function() { return i }, set: function(t) { i = t } }); var r = {}; Object.defineProperty(this, "style", { get: function() { return r }, set: function(t) { r = t } }), Object.defineProperty(this, "parentNode", { get: function() { return !1 } }) } ).prototype.getContext = function(t, e) { var n; if ("2d" !== (t = t || "2d")) return null; for (n in e) this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = e[n]); return (this.pdf.context2d._canvas = this).pdf.context2d } , c.prototype.toDataURL = function() { throw new Error("toDataURL is not implemented.") } , s.events.push(["initialized", function() { this.canvas = new c, this.canvas.pdf = this } ]), /** * @license * ==================================================================== * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br * 2013 Lee Driscoll, https://github.com/lsdriscoll * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria * 2014 James Hall, james@parall.ax * 2014 Diego Casorran, https://github.com/diegocr * * * ==================================================================== */ l = ft.API, d = { x: void 0, y: void 0, w: void 0, h: void 0, ln: void 0 }, p = 1, h = function(t, e, n, i, r) { d = { x: t, y: e, w: n, h: i, ln: r } } , f = function() { return d } , m = { left: 0, top: 0, bottom: 0 }, l.setHeaderFunction = function(t) { u = t } , l.getTextDimensions = function(t, e) { var n = this.table_font_size || this.internal.getFontSize() , i = (this.internal.getFont().fontStyle, (e = e || {}).scaleFactor || this.internal.scaleFactor) , r = 0 , o = 0 , a = 0; if ("string" == typeof t) 0 != (r = this.getStringUnitWidth(t) * n) && (o = 1); else { if ("[object Array]" !== Object.prototype.toString.call(t)) throw new Error("getTextDimensions expects text-parameter to be of type String or an Array of Strings."); for (var s = 0; s < t.length; s++) r < (a = this.getStringUnitWidth(t[s]) * n) && (r = a); 0 !== r && (o = t.length) } return { w: r /= i, h: Math.max((o * n * this.getLineHeightFactor() - n * (this.getLineHeightFactor() - 1)) / i, 0) } } , l.cellAddPage = function() { var t = this.margins || m; this.addPage(), h(t.left, t.top, void 0, void 0), p += 1 } , l.cellInitialize = function() { d = { x: void 0, y: void 0, w: void 0, h: void 0, ln: void 0 }, p = 1 } , l.cell = function(t, e, n, i, r, o, a) { var s = f() , c = !1; if (void 0 !== s.ln) if (s.ln === o) t = s.x + s.w, e = s.y; else { var l = this.margins || m; s.y + s.h + i + 13 >= this.internal.pageSize.getHeight() - l.bottom && (this.cellAddPage(), c = !0, this.printHeaders && this.tableHeaderRow && this.printHeaderRow(o, !0)), e = f().y + f().h, c && (e = 23) } if (void 0 !== r[0]) if (this.printingHeaderRow ? this.rect(t, e, n, i, "FD") : this.rect(t, e, n, i), "right" === a) { r instanceof Array || (r = [r]); for (var u = 0; u < r.length; u++) { var d = r[u] , p = this.getStringUnitWidth(d) * this.internal.getFontSize() / this.internal.scaleFactor; this.text(d, t + n - p - 3, e + this.internal.getLineHeight() * (u + 1)) } } else this.text(r, t + 3, e + this.internal.getLineHeight()); return h(t, e, n, i, o), this } , l.arrayMax = function(t, e) { var n, i, r, o = t[0]; for (n = 0, i = t.length; n < i; n += 1) r = t[n], e ? -1 === e(o, r) && (o = r) : o < r && (o = r); return o } , l.table = function(t, e, n, i, r) { if (!n) throw "No data for PDF table"; var o, a, s, c, u, h, f, g, v, y, b = [], w = [], S = {}, x = {}, M = [], E = [], C = !1, A = !0, T = 12, O = m; if (O.width = this.internal.pageSize.getWidth(), r && (!0 === r.autoSize && (C = !0), !1 === r.printHeaders && (A = !1), r.fontSize && (T = r.fontSize), r.css && void 0 !== r.css["font-size"] && (T = 16 * r.css["font-size"]), r.margins && (O = r.margins)), this.lnMod = 0, d = { x: void 0, y: void 0, w: void 0, h: void 0, ln: void 0 }, p = 1, this.printHeaders = A, this.margins = O, this.setFontSize(T), this.table_font_size = T, null == i) b = Object.keys(n[0]); else if (i[0] && "string" != typeof i[0]) for (a = 0, s = i.length; a < s; a += 1) o = i[a], b.push(o.name), w.push(o.prompt), x[o.name] = o.width * (19.049976 / 25.4); else b = i; if (C) for (y = function(t) { return t[o] } , a = 0, s = b.length; a < s; a += 1) { for (S[o = b[a]] = n.map(y), M.push(this.getTextDimensions(w[a] || o, { scaleFactor: 1 }).w), f = 0, c = (h = S[o]).length; f < c; f += 1) u = h[f], M.push(this.getTextDimensions(u, { scaleFactor: 1 }).w); x[o] = l.arrayMax(M), M = [] } if (A) { var _ = this.calculateLineHeight(b, x, w.length ? w : b); for (a = 0, s = b.length; a < s; a += 1) o = b[a], E.push([t, e, x[o], _, String(w.length ? w[a] : o)]); this.setTableHeaderRow(E), this.printHeaderRow(1, !1) } for (a = 0, s = n.length; a < s; a += 1) for (g = n[a], _ = this.calculateLineHeight(b, x, g), f = 0, v = b.length; f < v; f += 1) o = b[f], this.cell(t, e, x[o], _, g[o], a + 2, o.align); return this.lastCellPos = d, this.table_x = t, this.table_y = e, this } , l.calculateLineHeight = function(t, e, n) { for (var i, r = 0, o = 0; o < t.length; o++) { n[i = t[o]] = this.splitTextToSize(String(n[i]), e[i] - 3); var a = this.internal.getLineHeight() * n[i].length + 3; r < a && (r = a) } return r } , l.setTableHeaderRow = function(t) { this.tableHeaderRow = t } , l.printHeaderRow = function(t, e) { if (!this.tableHeaderRow) throw "Property tableHeaderRow does not exist."; var n, i, r, o; if (this.printingHeaderRow = !0, void 0 !== u) { var a = u(this, p); h(a[0], a[1], a[2], a[3], -1) } this.setFontStyle("bold"); var s = []; for (r = 0, o = this.tableHeaderRow.length; r < o; r += 1) this.setFillColor(200, 200, 200), n = this.tableHeaderRow[r], e && (this.margins.top = 13, n[1] = this.margins && this.margins.top || 0, s.push(n)), i = [].concat(n), this.cell.apply(this, i.concat(t)); 0 < s.length && this.setTableHeaderRow(s), this.setFontStyle("normal"), this.printingHeaderRow = !1 } , function(t, e) { var n, i, o, a, s, c = function(t) { return t = t || {}, this.isStrokeTransparent = t.isStrokeTransparent || !1, this.strokeOpacity = t.strokeOpacity || 1, this.strokeStyle = t.strokeStyle || "#000000", this.fillStyle = t.fillStyle || "#000000", this.isFillTransparent = t.isFillTransparent || !1, this.fillOpacity = t.fillOpacity || 1, this.font = t.font || "10px sans-serif", this.textBaseline = t.textBaseline || "alphabetic", this.textAlign = t.textAlign || "left", this.lineWidth = t.lineWidth || 1, this.lineJoin = t.lineJoin || "miter", this.lineCap = t.lineCap || "butt", this.path = t.path || [], this.transform = void 0 !== t.transform ? t.transform.clone() : new L, this.globalCompositeOperation = t.globalCompositeOperation || "normal", this.globalAlpha = t.globalAlpha || 1, this.clip_path = t.clip_path || [], this.currentPoint = t.currentPoint || new D, this.miterLimit = t.miterLimit || 10, this.lastPoint = t.lastPoint || new D, this.ignoreClearRect = "boolean" != typeof t.ignoreClearRect || t.ignoreClearRect, this }; t.events.push(["initialized", function() { this.context2d = new l(this), n = this.internal.f2, this.internal.f3, i = this.internal.getCoordinateString, o = this.internal.getVerticalCoordinateString, a = this.internal.getHorizontalCoordinate, s = this.internal.getVerticalCoordinate } ]); var l = function(t) { Object.defineProperty(this, "canvas", { get: function() { return { parentNode: !1, style: !1 } } }), Object.defineProperty(this, "pdf", { get: function() { return t } }); var e = !1; Object.defineProperty(this, "pageWrapXEnabled", { get: function() { return e }, set: function(t) { e = Boolean(t) } }); var n = !1; Object.defineProperty(this, "pageWrapYEnabled", { get: function() { return n }, set: function(t) { n = Boolean(t) } }); var i = 0; Object.defineProperty(this, "posX", { get: function() { return i }, set: function(t) { isNaN(t) || (i = t) } }); var r = 0; Object.defineProperty(this, "posY", { get: function() { return r }, set: function(t) { isNaN(t) || (r = t) } }); var o = !1; Object.defineProperty(this, "autoPaging", { get: function() { return o }, set: function(t) { o = Boolean(t) } }); var a = 0; Object.defineProperty(this, "lastBreak", { get: function() { return a }, set: function(t) { a = t } }); var s = []; Object.defineProperty(this, "pageBreaks", { get: function() { return s }, set: function(t) { s = t } }); var l = new c; Object.defineProperty(this, "ctx", { get: function() { return l }, set: function(t) { t instanceof c && (l = t) } }), Object.defineProperty(this, "path", { get: function() { return l.path }, set: function(t) { l.path = t } }); var d = []; Object.defineProperty(this, "ctxStack", { get: function() { return d }, set: function(t) { d = t } }), Object.defineProperty(this, "fillStyle", { get: function() { return this.ctx.fillStyle }, set: function(t) { var e; e = u(t), this.ctx.fillStyle = e.style, this.ctx.isFillTransparent = 0 === e.a, this.ctx.fillOpacity = e.a, this.pdf.setFillColor(e.r, e.g, e.b, { a: e.a }), this.pdf.setTextColor(e.r, e.g, e.b, { a: e.a }) } }), Object.defineProperty(this, "strokeStyle", { get: function() { return this.ctx.strokeStyle }, set: function(t) { var e = u(t); this.ctx.strokeStyle = e.style, this.ctx.isStrokeTransparent = 0 === e.a, this.ctx.strokeOpacity = e.a, 0 === e.a ? this.pdf.setDrawColor(255, 255, 255) : (e.a, this.pdf.setDrawColor(e.r, e.g, e.b)) } }), Object.defineProperty(this, "lineCap", { get: function() { return this.ctx.lineCap }, set: function(t) { -1 !== ["butt", "round", "square"].indexOf(t) && (this.ctx.lineCap = t, this.pdf.setLineCap(t)) } }), Object.defineProperty(this, "lineWidth", { get: function() { return this.ctx.lineWidth }, set: function(t) { isNaN(t) || (this.ctx.lineWidth = t, this.pdf.setLineWidth(t)) } }), Object.defineProperty(this, "lineJoin", { get: function() { return this.ctx.lineJoin }, set: function(t) { -1 !== ["bevel", "round", "miter"].indexOf(t) && (this.ctx.lineJoin = t, this.pdf.setLineJoin(t)) } }), Object.defineProperty(this, "miterLimit", { get: function() { return this.ctx.miterLimit }, set: function(t) { isNaN(t) || (this.ctx.miterLimit = t, this.pdf.setMiterLimit(t)) } }), Object.defineProperty(this, "textBaseline", { get: function() { return this.ctx.textBaseline }, set: function(t) { this.ctx.textBaseline = t } }), Object.defineProperty(this, "textAlign", { get: function() { return this.ctx.textAlign }, set: function(t) { -1 !== ["right", "end", "center", "left", "start"].indexOf(t) && (this.ctx.textAlign = t) } }), Object.defineProperty(this, "font", { get: function() { return this.ctx.font }, set: function(t) { var e; if (this.ctx.font = t, null !== (e = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-_,\"\'\sa-z]+?)\s*$/i.exec(t))) { var n = e[1] , i = (e[2], e[3]) , r = e[4] , o = e[5] , a = e[6]; r = "px" === o ? Math.floor(parseFloat(r)) : "em" === o ? Math.floor(parseFloat(r) * this.pdf.getFontSize()) : Math.floor(parseFloat(r)), this.pdf.setFontSize(r); var s = ""; ("bold" === i || 700 <= parseInt(i, 10) || "bold" === n) && (s = "bold"), "italic" === n && (s += "italic"), 0 === s.length && (s = "normal"); for (var c = "", l = a.toLowerCase().replace(/"|'/g, "").split(/\s*,\s*/), u = { arial: "Helvetica", verdana: "Helvetica", helvetica: "Helvetica", "sans-serif": "Helvetica", fixed: "Courier", monospace: "Courier", terminal: "Courier", courier: "Courier", times: "Times", cursive: "Times", fantasy: "Times", serif: "Times" }, d = 0; d < l.length; d++) { if (void 0 !== this.pdf.internal.getFont(l[d], s, { noFallback: !0, disableWarning: !0 })) { c = l[d]; break } if ("bolditalic" === s && void 0 !== this.pdf.internal.getFont(l[d], "bold", { noFallback: !0, disableWarning: !0 })) c = l[d], s = "bold"; else if (void 0 !== this.pdf.internal.getFont(l[d], "normal", { noFallback: !0, disableWarning: !0 })) { c = l[d], s = "normal"; break } } if ("" === c) for (d = 0; d < l.length; d++) if (u[l[d]]) { c = u[l[d]]; break } c = "" === c ? "Times" : c, this.pdf.setFont(c, s) } } }), Object.defineProperty(this, "globalCompositeOperation", { get: function() { return this.ctx.globalCompositeOperation }, set: function(t) { this.ctx.globalCompositeOperation = t } }), Object.defineProperty(this, "globalAlpha", { get: function() { return this.ctx.globalAlpha }, set: function(t) { this.ctx.globalAlpha = t } }), Object.defineProperty(this, "ignoreClearRect", { get: function() { return this.ctx.ignoreClearRect }, set: function(t) { this.ctx.ignoreClearRect = Boolean(t) } }) }; l.prototype.fill = function() { g.call(this, "fill", !1) } , l.prototype.stroke = function() { g.call(this, "stroke", !1) } , l.prototype.beginPath = function() { this.path = [{ type: "begin" }] } , l.prototype.moveTo = function(t, e) { if (isNaN(t) || isNaN(e)) throw console.error("jsPDF.context2d.moveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.moveTo"); var n = this.ctx.transform.applyToPoint(new D(t,e)); this.path.push({ type: "mt", x: n.x, y: n.y }), this.ctx.lastPoint = new D(t,e) } , l.prototype.closePath = function() { var t = new D(0,0) , e = 0; for (e = this.path.length - 1; -1 !== e; e--) if ("begin" === this.path[e].type && "object" === r(this.path[e + 1]) && "number" == typeof this.path[e + 1].x) { t = new D(this.path[e + 1].x,this.path[e + 1].y), this.path.push({ type: "lt", x: t.x, y: t.y }); break } "object" === r(this.path[e + 2]) && "number" == typeof this.path[e + 2].x && this.path.push(JSON.parse(JSON.stringify(this.path[e + 2]))), this.path.push({ type: "close" }), this.ctx.lastPoint = new D(t.x,t.y) } , l.prototype.lineTo = function(t, e) { if (isNaN(t) || isNaN(e)) throw console.error("jsPDF.context2d.lineTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.lineTo"); var n = this.ctx.transform.applyToPoint(new D(t,e)); this.path.push({ type: "lt", x: n.x, y: n.y }), this.ctx.lastPoint = new D(n.x,n.y) } , l.prototype.clip = function() { this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), g.call(this, null, !0) } , l.prototype.quadraticCurveTo = function(t, e, n, i) { if (isNaN(n) || isNaN(i) || isNaN(t) || isNaN(e)) throw console.error("jsPDF.context2d.quadraticCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.quadraticCurveTo"); var r = this.ctx.transform.applyToPoint(new D(n,i)) , o = this.ctx.transform.applyToPoint(new D(t,e)); this.path.push({ type: "qct", x1: o.x, y1: o.y, x: r.x, y: r.y }), this.ctx.lastPoint = new D(r.x,r.y) } , l.prototype.bezierCurveTo = function(t, e, n, i, r, o) { if (isNaN(r) || isNaN(o) || isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw console.error("jsPDF.context2d.bezierCurveTo: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.bezierCurveTo"); var a = this.ctx.transform.applyToPoint(new D(r,o)) , s = this.ctx.transform.applyToPoint(new D(t,e)) , c = this.ctx.transform.applyToPoint(new D(n,i)); this.path.push({ type: "bct", x1: s.x, y1: s.y, x2: c.x, y2: c.y, x: a.x, y: a.y }), this.ctx.lastPoint = new D(a.x,a.y) } , l.prototype.arc = function(t, e, n, i, r, o) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || isNaN(r)) throw console.error("jsPDF.context2d.arc: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.arc"); if (o = Boolean(o), !this.ctx.transform.isIdentity) { var a = this.ctx.transform.applyToPoint(new D(t,e)); t = a.x, e = a.y; var s = this.ctx.transform.applyToPoint(new D(0,n)) , c = this.ctx.transform.applyToPoint(new D(0,0)); n = Math.sqrt(Math.pow(s.x - c.x, 2) + Math.pow(s.y - c.y, 2)) } Math.abs(r - i) >= 2 * Math.PI && (i = 0, r = 2 * Math.PI), this.path.push({ type: "arc", x: t, y: e, radius: n, startAngle: i, endAngle: r, counterclockwise: o }) } , l.prototype.arcTo = function(t, e, n, i, r) { throw new Error("arcTo not implemented.") } , l.prototype.rect = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw console.error("jsPDF.context2d.rect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rect"); this.moveTo(t, e), this.lineTo(t + n, e), this.lineTo(t + n, e + i), this.lineTo(t, e + i), this.lineTo(t, e), this.lineTo(t + n, e), this.lineTo(t, e) } , l.prototype.fillRect = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw console.error("jsPDF.context2d.fillRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillRect"); if (!d.call(this)) { var r = {}; "butt" !== this.lineCap && (r.lineCap = this.lineCap, this.lineCap = "butt"), "miter" !== this.lineJoin && (r.lineJoin = this.lineJoin, this.lineJoin = "miter"), this.beginPath(), this.rect(t, e, n, i), this.fill(), r.hasOwnProperty("lineCap") && (this.lineCap = r.lineCap), r.hasOwnProperty("lineJoin") && (this.lineJoin = r.lineJoin) } } , l.prototype.strokeRect = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw console.error("jsPDF.context2d.strokeRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeRect"); p.call(this) || (this.beginPath(), this.rect(t, e, n, i), this.stroke()) } , l.prototype.clearRect = function(t, e, n, i) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i)) throw console.error("jsPDF.context2d.clearRect: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.clearRect"); this.ignoreClearRect || (this.fillStyle = "#ffffff", this.fillRect(t, e, n, i)) } , l.prototype.save = function(t) { t = "boolean" != typeof t || t; for (var e = this.pdf.internal.getCurrentPageInfo().pageNumber, n = 0; n < this.pdf.internal.getNumberOfPages(); n++) this.pdf.setPage(n + 1), this.pdf.internal.out("q"); if (this.pdf.setPage(e), t) { this.ctx.fontSize = this.pdf.internal.getFontSize(); var i = new c(this.ctx); this.ctxStack.push(this.ctx), this.ctx = i } } , l.prototype.restore = function(t) { t = "boolean" != typeof t || t; for (var e = this.pdf.internal.getCurrentPageInfo().pageNumber, n = 0; n < this.pdf.internal.getNumberOfPages(); n++) this.pdf.setPage(n + 1), this.pdf.internal.out("Q"); this.pdf.setPage(e), t && 0 !== this.ctxStack.length && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin) } , l.prototype.toDataURL = function() { throw new Error("toDataUrl not implemented.") } ; var u = function(t) { var e, n, i, r; if (!0 === t.isCanvasGradient && (t = t.getColor()), !t) return { r: 0, g: 0, b: 0, a: 0, style: t }; if (/transparent|rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*0+\s*\)/.test(t)) r = i = n = e = 0; else { var o = /rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(t); if (null !== o) e = parseInt(o[1]), n = parseInt(o[2]), i = parseInt(o[3]), r = 1; else if (null !== (o = /rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/.exec(t))) e = parseInt(o[1]), n = parseInt(o[2]), i = parseInt(o[3]), r = parseFloat(o[4]); else { if (r = 1, "string" == typeof t && "#" !== t.charAt(0)) { var a = new RGBColor(t); t = a.ok ? a.toHex() : "#000000" } 4 === t.length ? (e = t.substring(1, 2), e += e, n = t.substring(2, 3), n += n, i = t.substring(3, 4), i += i) : (e = t.substring(1, 3), n = t.substring(3, 5), i = t.substring(5, 7)), e = parseInt(e, 16), n = parseInt(n, 16), i = parseInt(i, 16) } } return { r: e, g: n, b: i, a: r, style: t } } , d = function() { return this.ctx.isFillTransparent || 0 == this.globalAlpha } , p = function() { return Boolean(this.ctx.isStrokeTransparent || 0 == this.globalAlpha) }; l.prototype.fillText = function(t, e, n, i) { if (isNaN(e) || isNaN(n) || "string" != typeof t) throw console.error("jsPDF.context2d.fillText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.fillText"); if (i = isNaN(i) ? void 0 : i, !d.call(this)) { n = y.call(this, n); var r = _(this.ctx.transform.rotation) , o = this.ctx.transform.scaleX; M.call(this, { text: t, x: e, y: n, scale: o, angle: r, align: this.textAlign, maxWidth: i }) } } , l.prototype.strokeText = function(t, e, n, i) { if (isNaN(e) || isNaN(n) || "string" != typeof t) throw console.error("jsPDF.context2d.strokeText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.strokeText"); if (!p.call(this)) { i = isNaN(i) ? void 0 : i, n = y.call(this, n); var r = _(this.ctx.transform.rotation) , o = this.ctx.transform.scaleX; M.call(this, { text: t, x: e, y: n, scale: o, renderingMode: "stroke", angle: r, align: this.textAlign, maxWidth: i }) } } , l.prototype.measureText = function(t) { if ("string" != typeof t) throw console.error("jsPDF.context2d.measureText: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.measureText"); var e = this.pdf , n = this.pdf.internal.scaleFactor , i = e.internal.getFontSize() , r = e.getStringUnitWidth(t) * i / e.internal.scaleFactor; return new function(t) { var e = (t = t || {}).width || 0; return Object.defineProperty(this, "width", { get: function() { return e } }), this } ({ width: r *= Math.round(96 * n / 72 * 1e4) / 1e4 }) } , l.prototype.scale = function(t, e) { if (isNaN(t) || isNaN(e)) throw console.error("jsPDF.context2d.scale: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.scale"); var n = new L(t,0,0,e,0,0); this.ctx.transform = this.ctx.transform.multiply(n) } , l.prototype.rotate = function(t) { if (isNaN(t)) throw console.error("jsPDF.context2d.rotate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.rotate"); var e = new L(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0); this.ctx.transform = this.ctx.transform.multiply(e) } , l.prototype.translate = function(t, e) { if (isNaN(t) || isNaN(e)) throw console.error("jsPDF.context2d.translate: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.translate"); var n = new L(1,0,0,1,t,e); this.ctx.transform = this.ctx.transform.multiply(n) } , l.prototype.transform = function(t, e, n, i, r, o) { if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(i) || isNaN(r) || isNaN(o)) throw console.error("jsPDF.context2d.transform: Invalid arguments", arguments), new Error("Invalid arguments passed to jsPDF.context2d.transform"); var a = new L(t,e,n,i,r,o); this.ctx.transform = this.ctx.transform.multiply(a) } , l.prototype.setTransform = function(t, e, n, i, r, o) { t = isNaN(t) ? 1 : t, e = isNaN(e) ? 0 : e, n = isNaN(n) ? 0 : n, i = isNaN(i) ? 1 : i, r = isNaN(r) ? 0 : r, o = isNaN(o) ? 0 : o, this.ctx.transform = new L(t,e,n,i,r,o) } , l.prototype.drawImage = function(t, e, n, i, r, o, a, s, c) { var l = this.pdf.getImageProperties(t) , u = 1 , d = 1 , p = 1 , f = 1; void 0 !== i && void 0 !== s && (p = s / i, f = c / r, u = l.width / i * s / i, d = l.height / r * c / r), void 0 === o && (o = e, a = n, n = e = 0), void 0 !== i && void 0 === s && (s = i, c = r), void 0 === i && void 0 === s && (s = l.width, c = l.height); var g = this.ctx.transform.decompose() , y = _(g.rotate.shx); g.scale.sx, g.scale.sy; for (var b, w = new L, S = ((w = (w = (w = w.multiply(g.translate)).multiply(g.skew)).multiply(g.scale)).applyToPoint(new D(s,c)), w.applyToRectangle(new R(o - e * p,a - n * f,i * u,r * d))), x = h.call(this, S), M = [], E = 0; E < x.length; E += 1) -1 === M.indexOf(x[E]) && M.push(x[E]); if (M.sort(), this.autoPaging) for (var C = M[0], A = M[M.length - 1], T = C; T < A + 1; T++) { if (this.pdf.setPage(T), 0 !== this.ctx.clip_path.length) { var O = this.path; b = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = m(b, this.posX, -1 * this.pdf.internal.pageSize.height * (T - 1) + this.posY), v.call(this, "fill", !0), this.path = O } var P = JSON.parse(JSON.stringify(S)); P = m([P], this.posX, -1 * this.pdf.internal.pageSize.height * (T - 1) + this.posY)[0], this.pdf.addImage(t, "jpg", P.x, P.y, P.w, P.h, null, null, y) } else this.pdf.addImage(t, "jpg", S.x, S.y, S.w, S.h, null, null, y) } ; var h = function(t, e, n) { var i = []; switch (e = e || this.pdf.internal.pageSize.width, n = n || this.pdf.internal.pageSize.height, t.type) { default: case "mt": case "lt": i.push(Math.floor((t.y + this.posY) / n) + 1); break; case "arc": i.push(Math.floor((t.y + this.posY - t.radius) / n) + 1), i.push(Math.floor((t.y + this.posY + t.radius) / n) + 1); break; case "qct": var r = I(this.ctx.lastPoint.x, this.ctx.lastPoint.y, t.x1, t.y1, t.x, t.y); i.push(Math.floor(r.y / n) + 1), i.push(Math.floor((r.y + r.h) / n) + 1); break; case "bct": var o = k(this.ctx.lastPoint.x, this.ctx.lastPoint.y, t.x1, t.y1, t.x2, t.y2, t.x, t.y); i.push(Math.floor(o.y / n) + 1), i.push(Math.floor((o.y + o.h) / n) + 1); break; case "rect": i.push(Math.floor((t.y + this.posY) / n) + 1), i.push(Math.floor((t.y + t.h + this.posY) / n) + 1) } for (var a = 0; a < i.length; a += 1) for (; this.pdf.internal.getNumberOfPages() < i[a]; ) f.call(this); return i } , f = function() { var t = this.fillStyle , e = this.strokeStyle , n = this.font , i = this.lineCap , r = this.lineWidth , o = this.lineJoin; this.pdf.addPage(), this.fillStyle = t, this.strokeStyle = e, this.font = n, this.lineCap = i, this.lineWidth = r, this.lineJoin = o } , m = function(t, e, n) { for (var i = 0; i < t.length; i++) switch (t[i].type) { case "bct": t[i].x2 += e, t[i].y2 += n; case "qct": t[i].x1 += e, t[i].y1 += n; case "mt": case "lt": case "arc": default: t[i].x += e, t[i].y += n } return t } , g = function(t, e) { for (var n, i, r = this.fillStyle, o = this.strokeStyle, a = (this.font, this.lineCap), s = this.lineWidth, c = this.lineJoin, l = JSON.parse(JSON.stringify(this.path)), u = JSON.parse(JSON.stringify(this.path)), d = [], p = 0; p < u.length; p++) if (void 0 !== u[p].x) for (var g = h.call(this, u[p]), y = 0; y < g.length; y += 1) -1 === d.indexOf(g[y]) && d.push(g[y]); for (p = 0; p < d.length; p++) for (; this.pdf.internal.getNumberOfPages() < d[p]; ) f.call(this); if (d.sort(), this.autoPaging) { var b = d[0] , w = d[d.length - 1]; for (p = b; p < w + 1; p++) { if (this.pdf.setPage(p), this.fillStyle = r, this.strokeStyle = o, this.lineCap = a, this.lineWidth = s, this.lineJoin = c, 0 !== this.ctx.clip_path.length) { var S = this.path; n = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = m(n, this.posX, -1 * this.pdf.internal.pageSize.height * (p - 1) + this.posY), v.call(this, t, !0), this.path = S } i = JSON.parse(JSON.stringify(l)), this.path = m(i, this.posX, -1 * this.pdf.internal.pageSize.height * (p - 1) + this.posY), !1 !== e && 0 !== p || v.call(this, t, e) } } else v.call(this, t, e); this.path = l } , v = function(t, e) { if (("stroke" !== t || e || !p.call(this)) && ("stroke" === t || e || !d.call(this))) { var n = []; this.ctx.globalAlpha, this.ctx.fillOpacity < 1 && this.ctx.fillOpacity; for (var i, r = this.path, o = 0; o < r.length; o++) { var a = r[o]; switch (a.type) { case "begin": n.push({ begin: !0 }); break; case "close": n.push({ close: !0 }); break; case "mt": n.push({ start: a, deltas: [], abs: [] }); break; case "lt": var s = n.length; if (!isNaN(r[o - 1].x)) { var c = [a.x - r[o - 1].x, a.y - r[o - 1].y]; if (0 < s) for (; 0 <= s; s--) if (!0 !== n[s - 1].close && !0 !== n[s - 1].begin) { n[s - 1].deltas.push(c), n[s - 1].abs.push(a); break } } break; case "bct": c = [a.x1 - r[o - 1].x, a.y1 - r[o - 1].y, a.x2 - r[o - 1].x, a.y2 - r[o - 1].y, a.x - r[o - 1].x, a.y - r[o - 1].y], n[n.length - 1].deltas.push(c); break; case "qct": var l = r[o - 1].x + 2 / 3 * (a.x1 - r[o - 1].x) , u = r[o - 1].y + 2 / 3 * (a.y1 - r[o - 1].y) , h = a.x + 2 / 3 * (a.x1 - a.x) , f = a.y + 2 / 3 * (a.y1 - a.y) , m = a.x , g = a.y; c = [l - r[o - 1].x, u - r[o - 1].y, h - r[o - 1].x, f - r[o - 1].y, m - r[o - 1].x, g - r[o - 1].y], n[n.length - 1].deltas.push(c); break; case "arc": n.push({ deltas: [], abs: [], arc: !0 }), Array.isArray(n[n.length - 1].abs) && n[n.length - 1].abs.push(a) } } for (i = e ? null : "stroke" === t ? "stroke" : "fill", o = 0; o < n.length; o++) { if (n[o].arc) for (var v = n[o].abs, y = 0; y < v.length; y++) { var x = v[y]; if (void 0 !== x.startAngle) { var M = _(x.startAngle) , A = _(x.endAngle) , T = x.x , O = x.y; b.call(this, T, O, x.radius, M, A, x.counterclockwise, i, e) } else E.call(this, x.x, x.y) } n[o].arc || !0 === n[o].close || !0 === n[o].begin || (T = n[o].start.x, O = n[o].start.y, C.call(this, n[o].deltas, T, O, null, null)) } i && w.call(this, i), e && S.call(this) } } , y = function(t) { var e = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor , n = e * (this.pdf.internal.getLineHeightFactor() - 1); switch (this.ctx.textBaseline) { case "bottom": return t - n; case "top": return t + e - n; case "hanging": return t + e - 2 * n; case "middle": return t + e / 2 - n; case "ideographic": return t; case "alphabetic": default: return t } }; l.prototype.createLinearGradient = function() { var t = function() {}; return t.colorStops = [], t.addColorStop = function(t, e) { this.colorStops.push([t, e]) } , t.getColor = function() { return 0 === this.colorStops.length ? "#000000" : this.colorStops[0][1] } , t.isCanvasGradient = !0, t } , l.prototype.createPattern = function() { return this.createLinearGradient() } , l.prototype.createRadialGradient = function() { return this.createLinearGradient() } ; var b = function(t, e, n, i, r, o, a, s) { this.pdf.internal.scaleFactor; for (var c = P(i), l = P(r), u = T.call(this, n, c, l, o), d = 0; d < u.length; d++) { var p = u[d]; 0 === d && x.call(this, p.x1 + t, p.y1 + e), A.call(this, t, e, p.x2, p.y2, p.x3, p.y3, p.x4, p.y4) } s ? S.call(this) : w.call(this, a) } , w = function(t) { switch (t) { case "stroke": this.pdf.internal.out("S"); break; case "fill": this.pdf.internal.out("f") } } , S = function() { this.pdf.clip() } , x = function(t, e) { this.pdf.internal.out(i(t) + " " + o(e) + " m") } , M = function(t) { var e; switch (t.align) { case "right": case "end": e = "right"; break; case "center": e = "center"; break; case "left": case "start": default: e = "left" } var n = this.ctx.transform.applyToPoint(new D(t.x,t.y)) , i = this.ctx.transform.decompose() , r = new L; r = (r = (r = r.multiply(i.translate)).multiply(i.skew)).multiply(i.scale); for (var o, a = this.pdf.getTextDimensions(t.text), s = this.ctx.transform.applyToRectangle(new R(t.x,t.y,a.w,a.h)), c = r.applyToRectangle(new R(t.x,t.y - a.h,a.w,a.h)), l = h.call(this, c), u = [], d = 0; d < l.length; d += 1) -1 === u.indexOf(l[d]) && u.push(l[d]); if (u.sort(), !0 === this.autoPaging) for (var p = u[0], f = u[u.length - 1], g = p; g < f + 1; g++) { if (this.pdf.setPage(g), 0 !== this.ctx.clip_path.length) { var y = this.path; o = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = m(o, this.posX, -1 * this.pdf.internal.pageSize.height * (g - 1) + this.posY), v.call(this, "fill", !0), this.path = y } var b = JSON.parse(JSON.stringify(s)); if (b = m([b], this.posX, -1 * this.pdf.internal.pageSize.height * (g - 1) + this.posY)[0], .01 <= t.scale) { var w = this.pdf.internal.getFontSize(); this.pdf.setFontSize(w * t.scale) } this.pdf.text(t.text, b.x, b.y, { angle: t.angle, align: e, renderingMode: t.renderingMode, maxWidth: t.maxWidth }), .01 <= t.scale && this.pdf.setFontSize(w) } else .01 <= t.scale && (w = this.pdf.internal.getFontSize(), this.pdf.setFontSize(w * t.scale)), this.pdf.text(t.text, n.x + this.posX, n.y + this.posY, { angle: t.angle, align: e, renderingMode: t.renderingMode, maxWidth: t.maxWidth }), .01 <= t.scale && this.pdf.setFontSize(w) } , E = function(t, e, n, r) { n = n || 0, r = r || 0, this.pdf.internal.out(i(t + n) + " " + o(e + r) + " l") } , C = function(t, e, n) { return this.pdf.lines(t, e, n, null, null) } , A = function(t, e, i, r, o, c, l, u) { this.pdf.internal.out([n(a(i + t)), n(s(r + e)), n(a(o + t)), n(s(c + e)), n(a(l + t)), n(s(u + e)), "c"].join(" ")) } , T = function(t, e, n, i) { var r = 2 * Math.PI , o = e; (o < r || r < o) && (o %= r); var a = n; (a < r || r < a) && (a %= r); for (var s = [], c = Math.PI / 2, l = i ? -1 : 1, u = e, d = Math.min(r, Math.abs(a - o)); 1e-5 < d; ) { var p = u + l * Math.min(d, c); s.push(O.call(this, t, u, p)), d -= Math.abs(p - u), u = p } return s } , O = function(t, e, n) { var i = (n - e) / 2 , r = t * Math.cos(i) , o = t * Math.sin(i) , a = r , s = -o , c = a * a + s * s , l = c + a * r + s * o , u = 4 / 3 * (Math.sqrt(2 * c * l) - l) / (a * o - s * r) , d = a - u * s , p = s + u * a , h = d , f = -p , m = i + e , g = Math.cos(m) , v = Math.sin(m); return { x1: t * Math.cos(e), y1: t * Math.sin(e), x2: d * g - p * v, y2: d * v + p * g, x3: h * g - f * v, y3: h * v + f * g, x4: t * Math.cos(n), y4: t * Math.sin(n) } } , _ = function(t) { return 180 * t / Math.PI } , P = function(t) { return t * Math.PI / 180 } , I = function(t, e, n, i, r, o) { var a = t + .5 * (n - t) , s = e + .5 * (i - e) , c = r + .5 * (n - r) , l = o + .5 * (i - o) , u = Math.min(t, r, a, c) , d = Math.max(t, r, a, c) , p = Math.min(e, o, s, l) , h = Math.max(e, o, s, l); return new R(u,p,d - u,h - p) } , k = function(t, e, n, i, r, o, a, s) { for (var c, l, u, d, p, h, f, m, g, v, y, b, w, S = n - t, x = i - e, M = r - n, E = o - i, C = a - r, A = s - o, T = 0; T < 41; T++) m = (h = (l = t + (c = T / 40) * S) + c * ((d = n + c * M) - l)) + c * (d + c * (r + c * C - d) - h), g = (f = (u = e + c * x) + c * ((p = i + c * E) - u)) + c * (p + c * (o + c * A - p) - f), w = 0 == T ? (b = v = m, y = g) : (v = Math.min(v, m), y = Math.min(y, g), b = Math.max(b, m), Math.max(w, g)); return new R(Math.round(v),Math.round(y),Math.round(b - v),Math.round(w - y)) } , D = function(t, e) { var n = t || 0; Object.defineProperty(this, "x", { enumerable: !0, get: function() { return n }, set: function(t) { isNaN(t) || (n = parseFloat(t)) } }); var i = e || 0; Object.defineProperty(this, "y", { enumerable: !0, get: function() { return i }, set: function(t) { isNaN(t) || (i = parseFloat(t)) } }); var r = "pt"; return Object.defineProperty(this, "type", { enumerable: !0, get: function() { return r }, set: function(t) { r = t.toString() } }), this } , R = function(t, e, n, i) { D.call(this, t, e), this.type = "rect"; var r = n || 0; Object.defineProperty(this, "w", { enumerable: !0, get: function() { return r }, set: function(t) { isNaN(t) || (r = parseFloat(t)) } }); var o = i || 0; return Object.defineProperty(this, "h", { enumerable: !0, get: function() { return o }, set: function(t) { isNaN(t) || (o = parseFloat(t)) } }), this } , L = function(t, e, n, i, r, o) { var a = []; return Object.defineProperty(this, "sx", { get: function() { return a[0] }, set: function(t) { a[0] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "shy", { get: function() { return a[1] }, set: function(t) { a[1] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "shx", { get: function() { return a[2] }, set: function(t) { a[2] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "sy", { get: function() { return a[3] }, set: function(t) { a[3] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "tx", { get: function() { return a[4] }, set: function(t) { a[4] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "ty", { get: function() { return a[5] }, set: function(t) { a[5] = Math.round(1e5 * t) / 1e5 } }), Object.defineProperty(this, "rotation", { get: function() { return Math.atan2(this.shx, this.sx) } }), Object.defineProperty(this, "scaleX", { get: function() { return this.decompose().scale.sx } }), Object.defineProperty(this, "scaleY", { get: function() { return this.decompose().scale.sy } }), Object.defineProperty(this, "isIdentity", { get: function() { return 1 === this.sx && 0 === this.shy && 0 === this.shx && 1 === this.sy && 0 === this.tx && 0 === this.ty } }), this.sx = isNaN(t) ? 1 : t, this.shy = isNaN(e) ? 0 : e, this.shx = isNaN(n) ? 0 : n, this.sy = isNaN(i) ? 1 : i, this.tx = isNaN(r) ? 0 : r, this.ty = isNaN(o) ? 0 : o, this }; L.prototype.multiply = function(t) { var e = t.sx * this.sx + t.shy * this.shx , n = t.sx * this.shy + t.shy * this.sy , i = t.shx * this.sx + t.sy * this.shx , r = t.shx * this.shy + t.sy * this.sy , o = t.tx * this.sx + t.ty * this.shx + this.tx , a = t.tx * this.shy + t.ty * this.sy + this.ty; return new L(e,n,i,r,o,a) } , L.prototype.decompose = function() { var t = this.sx , e = this.shy , n = this.shx , i = this.sy , r = this.tx , o = this.ty , a = Math.sqrt(t * t + e * e) , s = (t /= a) * n + (e /= a) * i; n -= t * s, i -= e * s; var c = Math.sqrt(n * n + i * i); return s /= c, t * (i /= c) < e * (n /= c) && (t = -t, e = -e, s = -s, a = -a), { scale: new L(a,0,0,c,0,0), translate: new L(1,0,0,1,r,o), rotate: new L(t,e,-e,t,0,0), skew: new L(1,0,s,1,0,0) } } , L.prototype.applyToPoint = function(t) { var e = t.x * this.sx + t.y * this.shx + this.tx , n = t.x * this.shy + t.y * this.sy + this.ty; return new D(e,n) } , L.prototype.applyToRectangle = function(t) { var e = this.applyToPoint(t) , n = this.applyToPoint(new D(t.x + t.w,t.y + t.h)); return new R(e.x,e.y,n.x - e.x,n.y - e.y) } , L.prototype.clone = function() { var t = this.sx , e = this.shy , n = this.shx , i = this.sy , r = this.tx , o = this.ty; return new L(t,e,n,i,r,o) } }(ft.API, "undefined" != typeof self && self || "undefined" != typeof window && window || void 0 !== i && i || Function('return typeof this === "object" && this.content')() || Function("return this")()), g = ft.API, v = function(t) { var e, n, i, r, o, a, s, c, l, u; for (/[^\x00-\xFF]/.test(t), n = [], i = 0, r = (t += e = "\0\0\0\0".slice(t.length % 4 || 4)).length; i < r; i += 4) 0 !== (o = (t.charCodeAt(i) << 24) + (t.charCodeAt(i + 1) << 16) + (t.charCodeAt(i + 2) << 8) + t.charCodeAt(i + 3)) ? (a = (o = ((o = ((o = ((o = (o - (u = o % 85)) / 85) - (l = o % 85)) / 85) - (c = o % 85)) / 85) - (s = o % 85)) / 85) % 85, n.push(a + 33, s + 33, c + 33, l + 33, u + 33)) : n.push(122); return function(t, n) { for (var i = e.length; 0 < i; i--) t.pop() }(n), String.fromCharCode.apply(String, n) + "~>" } , y = function(t) { var e, n, i, r, o, a = String, s = "length", c = "charCodeAt", l = "slice", u = "replace"; for (t[l](-2), t = t[l](0, -2)[u](/\s/g, "")[u]("z", "!!!!!"), i = [], r = 0, o = (t += e = "uuuuu"[l](t[s] % 5 || 5))[s]; r < o; r += 5) n = 52200625 * (t[c](r) - 33) + 614125 * (t[c](r + 1) - 33) + 7225 * (t[c](r + 2) - 33) + 85 * (t[c](r + 3) - 33) + (t[c](r + 4) - 33), i.push(255 & n >> 24, 255 & n >> 16, 255 & n >> 8, 255 & n); return function(t, n) { for (var i = e[s]; 0 < i; i--) t.pop() }(i), a.fromCharCode.apply(a, i) } , b = function(t) { for (var e = "", n = 0; n < t.length; n += 1) e += ("0" + t.charCodeAt(n).toString(16)).slice(-2); return e + ">" } , w = function(t) { var e = new RegExp(/^([0-9A-Fa-f]{2})+$/); if (-1 !== (t = t.replace(/\s/g, "")).indexOf(">") && (t = t.substr(0, t.indexOf(">"))), t.length % 2 && (t += "0"), !1 === e.test(t)) return ""; for (var n = "", i = 0; i < t.length; i += 2) n += String.fromCharCode("0x" + (t[i] + t[i + 1])); return n } , S = function(t, e) { e = Object.assign({ predictor: 1, colors: 1, bitsPerComponent: 8, columns: 1 }, e); for (var n, i, r = [], o = t.length; o--; ) r[o] = t.charCodeAt(o); return n = g.adler32cs.from(t), (i = new Deflater(6)).append(new Uint8Array(r)), t = i.flush(), (r = new Uint8Array(t.length + 6)).set(new Uint8Array([120, 156])), r.set(t, 2), r.set(new Uint8Array([255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255]), t.length + 2), String.fromCharCode.apply(null, r) } , g.processDataByFilters = function(t, e) { var n = 0 , i = t || "" , r = []; for ("string" == typeof (e = e || []) && (e = [e]), n = 0; n < e.length; n += 1) switch (e[n]) { case "ASCII85Decode": case "/ASCII85Decode": i = y(i), r.push("/ASCII85Encode"); break; case "ASCII85Encode": case "/ASCII85Encode": i = v(i), r.push("/ASCII85Decode"); break; case "ASCIIHexDecode": case "/ASCIIHexDecode": i = w(i), r.push("/ASCIIHexEncode"); break; case "ASCIIHexEncode": case "/ASCIIHexEncode": i = b(i), r.push("/ASCIIHexDecode"); break; case "FlateEncode": case "/FlateEncode": i = S(i), r.push("/FlateDecode"); break; default: throw 'The filter: "' + e[n] + '" is not implemented' } return { data: i, reverseChain: r.reverse().join(" ") } } , (x = ft.API).loadFile = function(t, e, n) { var i; e = e || !0, n = n || function() {} ; try { i = function(t, e, n) { var i = new XMLHttpRequest , r = [] , o = 0 , a = function(t) { var e = t.length , n = String.fromCharCode; for (o = 0; o < e; o += 1) r.push(n(255 & t.charCodeAt(o))); return r.join("") }; if (i.open("GET", t, !e), i.overrideMimeType("text/plain; charset=x-user-defined"), !1 === e && (i.onload = function() { return a(this.responseText) } ), i.send(null), 200 === i.status) return e ? a(i.responseText) : void 0; console.warn('Unable to load file "' + t + '"') }(t, e) } catch (t) { i = void 0 } return i } , x.loadImageFile = x.loadFile, M = ft.API, E = "undefined" != typeof window && window || void 0 !== i && i, C = function(t) { var e = r(t); return "undefined" === e ? "undefined" : "string" === e || t instanceof String ? "string" : "number" === e || t instanceof Number ? "number" : "function" === e || t instanceof Function ? "function" : t && t.constructor === Array ? "array" : t && 1 === t.nodeType ? "element" : "object" === e ? "object" : "unknown" } , A = function(t, e) { var n = document.createElement(t); if (e.className && (n.className = e.className), e.innerHTML) { n.innerHTML = e.innerHTML; for (var i = n.getElementsByTagName("script"), r = i.length; 0 < r--; null) i[r].parentNode.removeChild(i[r]) } for (var o in e.style) n.style[o] = e.style[o]; return n } , (((T = function t(e) { var n = Object.assign(t.convert(Promise.resolve()), JSON.parse(JSON.stringify(t.template))) , i = t.convert(Promise.resolve(), n); return (i = i.setProgress(1, t, 1, [t])).set(e) } ).prototype = Object.create(Promise.prototype)).constructor = T).convert = function(t, e) { return t.__proto__ = e || T.prototype, t } , T.template = { prop: { src: null, container: null, overlay: null, canvas: null, img: null, pdf: null, pageSize: null, callback: function() {} }, progress: { val: 0, state: null, n: 0, stack: [] }, opt: { filename: "file.pdf", margin: [0, 0, 0, 0], enableLinks: !0, x: 0, y: 0, html2canvas: {}, jsPDF: {} } }, T.prototype.from = function(t, e) { return this.then((function() { switch (e = e || function(t) { switch (C(t)) { case "string": return "string"; case "element": return "canvas" === t.nodeName.toLowerCase ? "canvas" : "element"; default: return "unknown" } }(t)) { case "string": return this.set({ src: A("div", { innerHTML: t }) }); case "element": return this.set({ src: t }); case "canvas": return this.set({ canvas: t }); case "img": return this.set({ img: t }); default: return this.error("Unknown source type.") } } )) } , T.prototype.to = function(t) { switch (t) { case "container": return this.toContainer(); case "canvas": return this.toCanvas(); case "img": return this.toImg(); case "pdf": return this.toPdf(); default: return this.error("Invalid target.") } } , T.prototype.toContainer = function() { return this.thenList([function() { return this.prop.src || this.error("Cannot duplicate - no source HTML.") } , function() { return this.prop.pageSize || this.setPageSize() } ]).then((function() { var t = { position: "relative", display: "inline-block", width: Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) + "px", left: 0, right: 0, top: 0, margin: "auto", backgroundColor: "white" } , e = function t(e, n) { for (var i = 3 === e.nodeType ? document.createTextNode(e.nodeValue) : e.cloneNode(!1), r = e.firstChild; r; r = r.nextSibling) !0 !== n && 1 === r.nodeType && "SCRIPT" === r.nodeName || i.appendChild(t(r, n)); return 1 === e.nodeType && ("CANVAS" === e.nodeName ? (i.width = e.width, i.height = e.height, i.getContext("2d").drawImage(e, 0, 0)) : "TEXTAREA" !== e.nodeName && "SELECT" !== e.nodeName || (i.value = e.value), i.addEventListener("load", (function() { i.scrollTop = e.scrollTop, i.scrollLeft = e.scrollLeft } ), !0)), i }(this.prop.src, this.opt.html2canvas.javascriptEnabled); "BODY" === e.tagName && (t.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + "px"), this.prop.overlay = A("div", { className: "html2pdf__overlay", style: { position: "fixed", overflow: "hidden", zIndex: 1e3, left: "-100000px", right: 0, bottom: 0, top: 0 } }), this.prop.container = A("div", { className: "html2pdf__container", style: t }), this.prop.container.appendChild(e), this.prop.container.firstChild.appendChild(A("div", { style: { clear: "both", border: "0 none transparent", margin: 0, padding: 0, height: 0 } })), this.prop.container.style.float = "none", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = "relative", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + "px" } )) } , T.prototype.toCanvas = function() { var t = [function() { return document.body.contains(this.prop.container) || this.toContainer() } ]; return this.thenList(t).then((function() { var t = Object.assign({}, this.opt.html2canvas); if (delete t.onrendered, this.isHtml2CanvasLoaded()) return html2canvas(this.prop.container, t) } )).then((function(t) { (this.opt.html2canvas.onrendered || function() {} )(t), this.prop.canvas = t, document.body.removeChild(this.prop.overlay) } )) } , T.prototype.toContext2d = function() { var t = [function() { return document.body.contains(this.prop.container) || this.toContainer() } ]; return this.thenList(t).then((function() { var t = this.opt.jsPDF , e = Object.assign({ async: !0, allowTaint: !0, backgroundColor: "#ffffff", imageTimeout: 15e3, logging: !0, proxy: null, removeContainer: !0, foreignObjectRendering: !1, useCORS: !1 }, this.opt.html2canvas); if (delete e.onrendered, t.context2d.autoPaging = !0, t.context2d.posX = this.opt.x, t.context2d.posY = this.opt.y, e.windowHeight = e.windowHeight || 0, e.windowHeight = 0 == e.windowHeight ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : e.windowHeight, this.isHtml2CanvasLoaded()) return html2canvas(this.prop.container, e) } )).then((function(t) { (this.opt.html2canvas.onrendered || function() {} )(t), this.prop.canvas = t, document.body.removeChild(this.prop.overlay) } )) } , T.prototype.toImg = function() { return this.thenList([function() { return this.prop.canvas || this.toCanvas() } ]).then((function() { var t = this.prop.canvas.toDataURL("image/" + this.opt.image.type, this.opt.image.quality); this.prop.img = document.createElement("img"), this.prop.img.src = t } )) } , T.prototype.toPdf = function() { return this.thenList([function() { return this.toContext2d() } ]).then((function() { this.prop.pdf = this.prop.pdf || this.opt.jsPDF } )) } , T.prototype.output = function(t, e, n) { return "img" === (n = n || "pdf").toLowerCase() || "image" === n.toLowerCase() ? this.outputImg(t, e) : this.outputPdf(t, e) } , T.prototype.outputPdf = function(t, e) { return this.thenList([function() { return this.prop.pdf || this.toPdf() } ]).then((function() { return this.prop.pdf.output(t, e) } )) } , T.prototype.outputImg = function(t, e) { return this.thenList([function() { return this.prop.img || this.toImg() } ]).then((function() { switch (t) { case void 0: case "img": return this.prop.img; case "datauristring": case "dataurlstring": return this.prop.img.src; case "datauri": case "dataurl": return document.location.href = this.prop.img.src; default: throw 'Image output type "' + t + '" is not supported.' } } )) } , T.prototype.isHtml2CanvasLoaded = function() { var t = void 0 !== E.html2canvas; return t || console.error("html2canvas not loaded."), t } , T.prototype.save = function(t) { if (this.isHtml2CanvasLoaded()) return this.thenList([function() { return this.prop.pdf || this.toPdf() } ]).set(t ? { filename: t } : null).then((function() { this.prop.pdf.save(this.opt.filename) } )) } , T.prototype.doCallback = function(t) { if (this.isHtml2CanvasLoaded()) return this.thenList([function() { return this.prop.pdf || this.toPdf() } ]).then((function() { this.prop.callback(this.prop.pdf) } )) } , T.prototype.set = function(t) { if ("object" !== C(t)) return this; var e = Object.keys(t || {}).map((function(e) { if (e in T.template.prop) return function() { this.prop[e] = t[e] } ; switch (e) { case "margin": return this.setMargin.bind(this, t.margin); case "jsPDF": return function() { return this.opt.jsPDF = t.jsPDF, this.setPageSize() } ; case "pageSize": return this.setPageSize.bind(this, t.pageSize); default: return function() { this.opt[e] = t[e] } } } ), this); return this.then((function() { return this.thenList(e) } )) } , T.prototype.get = function(t, e) { return this.then((function() { var n = t in T.template.prop ? this.prop[t] : this.opt[t]; return e ? e(n) : n } )) } , T.prototype.setMargin = function(t) { return this.then((function() { switch (C(t)) { case "number": t = [t, t, t, t]; case "array": if (2 === t.length && (t = [t[0], t[1], t[0], t[1]]), 4 === t.length) break; default: return this.error("Invalid margin array.") } this.opt.margin = t } )).then(this.setPageSize) } , T.prototype.setPageSize = function(t) { function e(t, e) { return Math.floor(t * e / 72 * 96) } return this.then((function() { (t = t || ft.getPageSize(this.opt.jsPDF)).hasOwnProperty("inner") || (t.inner = { width: t.width - this.opt.margin[1] - this.opt.margin[3], height: t.height - this.opt.margin[0] - this.opt.margin[2] }, t.inner.px = { width: e(t.inner.width, t.k), height: e(t.inner.height, t.k) }, t.inner.ratio = t.inner.height / t.inner.width), this.prop.pageSize = t } )) } , T.prototype.setProgress = function(t, e, n, i) { return null != t && (this.progress.val = t), null != e && (this.progress.state = e), null != n && (this.progress.n = n), null != i && (this.progress.stack = i), this.progress.ratio = this.progress.val / this.progress.state, this } , T.prototype.updateProgress = function(t, e, n, i) { return this.setProgress(t ? this.progress.val + t : null, e || null, n ? this.progress.n + n : null, i ? this.progress.stack.concat(i) : null) } , T.prototype.then = function(t, e) { var n = this; return this.thenCore(t, e, (function(t, e) { return n.updateProgress(null, null, 1, [t]), Promise.prototype.then.call(this, (function(e) { return n.updateProgress(null, t), e } )).then(t, e).then((function(t) { return n.updateProgress(1), t } )) } )) } , T.prototype.thenCore = function(t, e, n) { n = n || Promise.prototype.then; var i = this; t && (t = t.bind(i)), e && (e = e.bind(i)); var r = -1 !== Promise.toString().indexOf("[native code]") && "Promise" === Promise.name ? i : T.convert(Object.assign({}, i), Promise.prototype) , o = n.call(r, t, e); return T.convert(o, i.__proto__) } , T.prototype.thenExternal = function(t, e) { return Promise.prototype.then.call(this, t, e) } , T.prototype.thenList = function(t) { var e = this; return t.forEach((function(t) { e = e.thenCore(t) } )), e } , T.prototype.catch = function(t) { t && (t = t.bind(this)); var e = Promise.prototype.catch.call(this, t); return T.convert(e, this) } , T.prototype.catchExternal = function(t) { return Promise.prototype.catch.call(this, t) } , T.prototype.error = function(t) { return this.then((function() { throw new Error(t) } )) } , T.prototype.using = T.prototype.set, T.prototype.saveAs = T.prototype.save, T.prototype.export = T.prototype.output, T.prototype.run = T.prototype.then, ft.getPageSize = function(t, e, n) { if ("object" === r(t)) { var i = t; t = i.orientation, e = i.unit || e, n = i.format || n } e = e || "mm", n = n || "a4", t = ("" + (t || "P")).toLowerCase(); var o = ("" + n).toLowerCase() , a = { a0: [2383.94, 3370.39], a1: [1683.78, 2383.94], a2: [1190.55, 1683.78], a3: [841.89, 1190.55], a4: [595.28, 841.89], a5: [419.53, 595.28], a6: [297.64, 419.53], a7: [209.76, 297.64], a8: [147.4, 209.76], a9: [104.88, 147.4], a10: [73.7, 104.88], b0: [2834.65, 4008.19], b1: [2004.09, 2834.65], b2: [1417.32, 2004.09], b3: [1000.63, 1417.32], b4: [708.66, 1000.63], b5: [498.9, 708.66], b6: [354.33, 498.9], b7: [249.45, 354.33], b8: [175.75, 249.45], b9: [124.72, 175.75], b10: [87.87, 124.72], c0: [2599.37, 3676.54], c1: [1836.85, 2599.37], c2: [1298.27, 1836.85], c3: [918.43, 1298.27], c4: [649.13, 918.43], c5: [459.21, 649.13], c6: [323.15, 459.21], c7: [229.61, 323.15], c8: [161.57, 229.61], c9: [113.39, 161.57], c10: [79.37, 113.39], dl: [311.81, 623.62], letter: [612, 792], "government-letter": [576, 756], legal: [612, 1008], "junior-legal": [576, 360], ledger: [1224, 792], tabloid: [792, 1224], "credit-card": [153, 243] }; switch (e) { case "pt": var s = 1; break; case "mm": s = 72 / 25.4; break; case "cm": s = 72 / 2.54; break; case "in": s = 72; break; case "px": s = .75; break; case "pc": case "em": s = 12; break; case "ex": s = 6; break; default: throw "Invalid unit: " + e } if (a.hasOwnProperty(o)) var c = a[o][1] / s , l = a[o][0] / s; else try { c = n[1], l = n[0] } catch (t) { throw new Error("Invalid format: " + n) } if ("p" === t || "portrait" === t) { if (t = "p", c < l) { var u = l; l = c, c = u } } else { if ("l" !== t && "landscape" !== t) throw "Invalid orientation: " + t; t = "l", l < c && (u = l, l = c, c = u) } return { width: l, height: c, unit: e, k: s } } , M.html = function(t, e) { (e = e || {}).callback = e.callback || function() {} , e.html2canvas = e.html2canvas || {}, e.html2canvas.canvas = e.html2canvas.canvas || this.canvas, e.jsPDF = e.jsPDF || this, e.jsPDF; var n = new T(e); return e.worker ? n : n.from(t).doCallback() } , ft.API.addJS = function(t) { return P = t, this.internal.events.subscribe("postPutResources", (function(t) { O = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/Names [(EmbeddedJS) " + (O + 1) + " 0 R]"), this.internal.out(">>"), this.internal.out("endobj"), _ = this.internal.newObject(), this.internal.out("<<"), this.internal.out("/S /JavaScript"), this.internal.out("/JS (" + P + ")"), this.internal.out(">>"), this.internal.out("endobj") } )), this.internal.events.subscribe("putCatalog", (function() { void 0 !== O && void 0 !== _ && this.internal.out("/Names <>") } )), this } , /** * @license * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv * * Licensed under the MIT License. * http://opensource.org/licenses/mit-license */ (I = ft.API).events.push(["postPutResources", function() { var t = this , e = /^(\d+) 0 obj$/; if (0 < this.outline.root.children.length) for (var n = t.outline.render().split(/\r\n/), i = 0; i < n.length; i++) { var r = n[i] , o = e.exec(r); if (null != o) { var a = o[1]; t.internal.newObjectDeferredBegin(a, !1) } t.internal.write(r) } if (this.outline.createNamedDestinations) { var s = this.internal.pages.length , c = []; for (i = 0; i < s; i++) { var l = t.internal.newObject(); c.push(l); var u = t.internal.getPageInfo(i + 1); t.internal.write("<< /D[" + u.objId + " 0 R /XYZ null null null]>> endobj") } var d = t.internal.newObject(); for (t.internal.write("<< /Names [ "), i = 0; i < c.length; i++) t.internal.write("(page_" + (i + 1) + ")" + c[i] + " 0 R"); t.internal.write(" ] >>", "endobj"), t.internal.newObject(), t.internal.write("<< /Dests " + d + " 0 R"), t.internal.write(">>", "endobj") } } ]), I.events.push(["putCatalog", function() { 0 < this.outline.root.children.length && (this.internal.write("/Outlines", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && this.internal.write("/Names " + namesOid + " 0 R")) } ]), I.events.push(["initialized", function() { var t = this; t.outline = { createNamedDestinations: !1, root: { children: [] } }, t.outline.add = function(t, e, n) { var i = { title: e, options: n, children: [] }; return null == t && (t = this.root), t.children.push(i), i } , t.outline.render = function() { return this.ctx = {}, this.ctx.val = "", this.ctx.pdf = t, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val } , t.outline.genIds_r = function(e) { e.id = t.internal.newObjectDeferred(); for (var n = 0; n < e.children.length; n++) this.genIds_r(e.children[n]) } , t.outline.renderRoot = function(t) { this.objStart(t), this.line("/Type /Outlines"), 0 < t.children.length && (this.line("/First " + this.makeRef(t.children[0])), this.line("/Last " + this.makeRef(t.children[t.children.length - 1]))), this.line("/Count " + this.count_r({ count: 0 }, t)), this.objEnd() } , t.outline.renderItems = function(e) { this.ctx.pdf.internal.getCoordinateString; for (var n = this.ctx.pdf.internal.getVerticalCoordinateString, i = 0; i < e.children.length; i++) { var r = e.children[i]; this.objStart(r), this.line("/Title " + this.makeString(r.title)), this.line("/Parent " + this.makeRef(e)), 0 < i && this.line("/Prev " + this.makeRef(e.children[i - 1])), i < e.children.length - 1 && this.line("/Next " + this.makeRef(e.children[i + 1])), 0 < r.children.length && (this.line("/First " + this.makeRef(r.children[0])), this.line("/Last " + this.makeRef(r.children[r.children.length - 1]))); var o = this.count = this.count_r({ count: 0 }, r); if (0 < o && this.line("/Count " + o), r.options && r.options.pageNumber) { var a = t.internal.getPageInfo(r.options.pageNumber); this.line("/Dest [" + a.objId + " 0 R /XYZ 0 " + n(0) + " 0]") } this.objEnd() } for (i = 0; i < e.children.length; i++) r = e.children[i], this.renderItems(r) } , t.outline.line = function(t) { this.ctx.val += t + "\r\n" } , t.outline.makeRef = function(t) { return t.id + " 0 R" } , t.outline.makeString = function(e) { return "(" + t.internal.pdfEscape(e) + ")" } , t.outline.objStart = function(t) { this.ctx.val += "\r\n" + t.id + " 0 obj\r\n<<\r\n" } , t.outline.objEnd = function(t) { this.ctx.val += ">> \r\nendobj\r\n" } , t.outline.count_r = function(t, e) { for (var n = 0; n < e.children.length; n++) t.count++, this.count_r(t, e.children[n]); return t.count } } ]), /** * @license * * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb * * * ==================================================================== */ k = ft.API, D = function() { var t = "function" == typeof Deflater; if (!t) throw new Error("requires deflate.js for compression"); return t } , R = function(t, e, n, i) { var r = 5 , o = U; switch (i) { case k.image_compression.FAST: r = 3, o = F; break; case k.image_compression.MEDIUM: r = 6, o = B; break; case k.image_compression.SLOW: r = 9, o = z } t = j(t, e, n, o); var a = new Uint8Array(L(r)) , s = N(t) , c = new Deflater(r) , l = c.append(t) , u = c.flush() , d = a.length + l.length + u.length , p = new Uint8Array(d + 4); return p.set(a), p.set(l, a.length), p.set(u, a.length + l.length), p[d++] = s >>> 24 & 255, p[d++] = s >>> 16 & 255, p[d++] = s >>> 8 & 255, p[d++] = 255 & s, k.arrayBufferToBinaryString(p) } , L = function(t, e) { var n = Math.LOG2E * Math.log(32768) - 8 << 4 | 8 , i = n << 8; return i |= Math.min(3, (e - 1 & 255) >> 1) << 6, i |= 0, [n, 255 & (i += 31 - i % 31)] } , N = function(t, e) { for (var n, i = 1, r = 0, o = t.length, a = 0; 0 < o; ) { for (o -= n = e < o ? e : o; r += i += t[a++], --n; ) ; i %= 65521, r %= 65521 } return (r << 16 | i) >>> 0 } , j = function(t, e, n, i) { for (var r, o, a, s = t.length / e, c = new Uint8Array(t.length + s), l = H(), u = 0; u < s; u++) { if (a = u * e, r = t.subarray(a, a + e), i) c.set(i(r, n, o), a + u); else { for (var d = 0, p = l.length, h = []; d < p; d++) h[d] = l[d](r, n, o); var f = W(h.concat()); c.set(h[f], a + u) } o = r } return c } , V = function(t, e, n) { var i = Array.apply([], t); return i.unshift(0), i } , F = function(t, e, n) { var i, r = [], o = 0, a = t.length; for (r[0] = 1; o < a; o++) i = t[o - e] || 0, r[o + 1] = t[o] - i + 256 & 255; return r } , U = function(t, e, n) { var i, r = [], o = 0, a = t.length; for (r[0] = 2; o < a; o++) i = n && n[o] || 0, r[o + 1] = t[o] - i + 256 & 255; return r } , B = function(t, e, n) { var i, r, o = [], a = 0, s = t.length; for (o[0] = 3; a < s; a++) i = t[a - e] || 0, r = n && n[a] || 0, o[a + 1] = t[a] + 256 - (i + r >>> 1) & 255; return o } , z = function(t, e, n) { var i, r, o, a, s = [], c = 0, l = t.length; for (s[0] = 4; c < l; c++) i = t[c - e] || 0, r = n && n[c] || 0, o = n && n[c - e] || 0, a = G(i, r, o), s[c + 1] = t[c] - a + 256 & 255; return s } , G = function(t, e, n) { var i = t + e - n , r = Math.abs(i - t) , o = Math.abs(i - e) , a = Math.abs(i - n); return r <= o && r <= a ? t : o <= a ? e : n } , H = function() { return [V, F, U, B, z] } , W = function(t) { for (var e, n, i, r = 0, o = t.length; r < o; ) ((e = q(t[r].slice(1))) < n || !n) && (n = e, i = r), r++; return i } , q = function(t) { for (var e = 0, n = t.length, i = 0; e < n; ) i += Math.abs(t[e++]); return i } , k.processPNG = function(t, e, n, i, r) { var o, a, s, c, l, u, d = this.color_spaces.DEVICE_RGB, p = this.decode.FLATE_DECODE, h = 8; if (this.isArrayBuffer(t) && (t = new Uint8Array(t)), this.isArrayBufferView(t)) { if ("function" != typeof PNG || "function" != typeof Nt) throw new Error("PNG support requires png.js and zlib.js"); if (t = (o = new PNG(t)).imgData, h = o.bits, d = o.colorSpace, c = o.colors, -1 !== [4, 6].indexOf(o.colorType)) { if (8 === o.bits) for (var f, m = (A = 32 == o.pixelBitlength ? new Uint32Array(o.decodePixels().buffer) : 16 == o.pixelBitlength ? new Uint16Array(o.decodePixels().buffer) : new Uint8Array(o.decodePixels().buffer)).length, g = new Uint8Array(m * o.colors), v = new Uint8Array(m), y = o.pixelBitlength - o.bits, b = 0, w = 0; b < m; b++) { for (S = A[b], f = 0; f < y; ) g[w++] = S >>> f & 255, f += o.bits; v[b] = S >>> f & 255 } if (16 === o.bits) { m = (A = new Uint32Array(o.decodePixels().buffer)).length, g = new Uint8Array(m * (32 / o.pixelBitlength) * o.colors), v = new Uint8Array(m * (32 / o.pixelBitlength)); for (var S, x = 1 < o.colors, M = w = b = 0; b < m; ) S = A[b++], g[w++] = S >>> 0 & 255, x && (g[w++] = S >>> 16 & 255, S = A[b++], g[w++] = S >>> 0 & 255), v[M++] = S >>> 16 & 255; h = 8 } i !== k.image_compression.NONE && D() ? (t = R(g, o.width * o.colors, o.colors, i), u = R(v, o.width, 1, i)) : (t = g, u = v, p = null) } if (3 === o.colorType && (d = this.color_spaces.INDEXED, l = o.palette, o.transparency.indexed)) { var E = o.transparency.indexed , C = 0; for (b = 0, m = E.length; b < m; ++b) C += E[b]; if ((C /= 255) == m - 1 && -1 !== E.indexOf(0)) s = [E.indexOf(0)]; else if (C !== m) { var A = o.decodePixels(); for (v = new Uint8Array(A.length), b = 0, m = A.length; b < m; b++) v[b] = E[A[b]]; u = R(v, o.width, 1) } } var T = function(t) { var e; switch (t) { case k.image_compression.FAST: e = 11; break; case k.image_compression.MEDIUM: e = 13; break; case k.image_compression.SLOW: e = 14; break; default: e = 12 } return e }(i); return a = p === this.decode.FLATE_DECODE ? "/Predictor " + T + " /Colors " + c + " /BitsPerComponent " + h + " /Columns " + o.width : "/Colors " + c + " /BitsPerComponent " + h + " /Columns " + o.width, (this.isArrayBuffer(t) || this.isArrayBufferView(t)) && (t = this.arrayBufferToBinaryString(t)), (u && this.isArrayBuffer(u) || this.isArrayBufferView(u)) && (u = this.arrayBufferToBinaryString(u)), this.createImageInfo(t, o.width, o.height, d, h, p, e, n, a, s, l, u, T) } throw new Error("Unsupported PNG image data, try using JPEG instead.") } , /** * @license * Copyright (c) 2017 Aras Abbasi * * Licensed under the MIT License. * http://opensource.org/licenses/mit-license */ (X = ft.API).processGIF89A = function(t, e, n, i, r) { var o = new It(t) , a = o.width , s = o.height , c = []; o.decodeAndBlitFrameRGBA(0, c); var l = { data: c, width: a, height: s } , u = new Dt(100).encode(l, 100); return X.processJPEG.call(this, u, e, n, i) } , X.processGIF87A = X.processGIF89A, (Y = ft.API).processBMP = function(t, e, n, i, r) { var o = new Rt(t,!1) , a = o.width , s = o.height , c = { data: o.getData(), width: a, height: s } , l = new Dt(100).encode(c, 100); return Y.processJPEG.call(this, l, e, n, i) } , ft.API.setLanguage = function(t) { return void 0 === this.internal.languageSettings && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), void 0 !== { af: "Afrikaans", sq: "Albanian", ar: "Arabic (Standard)", "ar-DZ": "Arabic (Algeria)", "ar-BH": "Arabic (Bahrain)", "ar-EG": "Arabic (Egypt)", "ar-IQ": "Arabic (Iraq)", "ar-JO": "Arabic (Jordan)", "ar-KW": "Arabic (Kuwait)", "ar-LB": "Arabic (Lebanon)", "ar-LY": "Arabic (Libya)", "ar-MA": "Arabic (Morocco)", "ar-OM": "Arabic (Oman)", "ar-QA": "Arabic (Qatar)", "ar-SA": "Arabic (Saudi Arabia)", "ar-SY": "Arabic (Syria)", "ar-TN": "Arabic (Tunisia)", "ar-AE": "Arabic (U.A.E.)", "ar-YE": "Arabic (Yemen)", an: "Aragonese", hy: "Armenian", as: "Assamese", ast: "Asturian", az: "Azerbaijani", eu: "Basque", be: "Belarusian", bn: "Bengali", bs: "Bosnian", br: "Breton", bg: "Bulgarian", my: "Burmese", ca: "Catalan", ch: "Chamorro", ce: "Chechen", zh: "Chinese", "zh-HK": "Chinese (Hong Kong)", "zh-CN": "Chinese (PRC)", "zh-SG": "Chinese (Singapore)", "zh-TW": "Chinese (Taiwan)", cv: "Chuvash", co: "Corsican", cr: "Cree", hr: "Croatian", cs: "Czech", da: "Danish", nl: "Dutch (Standard)", "nl-BE": "Dutch (Belgian)", en: "English", "en-AU": "English (Australia)", "en-BZ": "English (Belize)", "en-CA": "English (Canada)", "en-IE": "English (Ireland)", "en-JM": "English (Jamaica)", "en-NZ": "English (New Zealand)", "en-PH": "English (Philippines)", "en-ZA": "English (South Africa)", "en-TT": "English (Trinidad & Tobago)", "en-GB": "English (United Kingdom)", "en-US": "English (United States)", "en-ZW": "English (Zimbabwe)", eo: "Esperanto", et: "Estonian", fo: "Faeroese", fj: "Fijian", fi: "Finnish", fr: "French (Standard)", "fr-BE": "French (Belgium)", "fr-CA": "French (Canada)", "fr-FR": "French (France)", "fr-LU": "French (Luxembourg)", "fr-MC": "French (Monaco)", "fr-CH": "French (Switzerland)", fy: "Frisian", fur: "Friulian", gd: "Gaelic (Scots)", "gd-IE": "Gaelic (Irish)", gl: "Galacian", ka: "Georgian", de: "German (Standard)", "de-AT": "German (Austria)", "de-DE": "German (Germany)", "de-LI": "German (Liechtenstein)", "de-LU": "German (Luxembourg)", "de-CH": "German (Switzerland)", el: "Greek", gu: "Gujurati", ht: "Haitian", he: "Hebrew", hi: "Hindi", hu: "Hungarian", is: "Icelandic", id: "Indonesian", iu: "Inuktitut", ga: "Irish", it: "Italian (Standard)", "it-CH": "Italian (Switzerland)", ja: "Japanese", kn: "Kannada", ks: "Kashmiri", kk: "Kazakh", km: "Khmer", ky: "Kirghiz", tlh: "Klingon", ko: "Korean", "ko-KP": "Korean (North Korea)", "ko-KR": "Korean (South Korea)", la: "Latin", lv: "Latvian", lt: "Lithuanian", lb: "Luxembourgish", mk: "FYRO Macedonian", ms: "Malay", ml: "Malayalam", mt: "Maltese", mi: "Maori", mr: "Marathi", mo: "Moldavian", nv: "Navajo", ng: "Ndonga", ne: "Nepali", no: "Norwegian", nb: "Norwegian (Bokmal)", nn: "Norwegian (Nynorsk)", oc: "Occitan", or: "Oriya", om: "Oromo", fa: "Persian", "fa-IR": "Persian/Iran", pl: "Polish", pt: "Portuguese", "pt-BR": "Portuguese (Brazil)", pa: "Punjabi", "pa-IN": "Punjabi (India)", "pa-PK": "Punjabi (Pakistan)", qu: "Quechua", rm: "Rhaeto-Romanic", ro: "Romanian", "ro-MO": "Romanian (Moldavia)", ru: "Russian", "ru-MO": "Russian (Moldavia)", sz: "Sami (Lappish)", sg: "Sango", sa: "Sanskrit", sc: "Sardinian", sd: "Sindhi", si: "Singhalese", sr: "Serbian", sk: "Slovak", sl: "Slovenian", so: "Somani", sb: "Sorbian", es: "Spanish", "es-AR": "Spanish (Argentina)", "es-BO": "Spanish (Bolivia)", "es-CL": "Spanish (Chile)", "es-CO": "Spanish (Colombia)", "es-CR": "Spanish (Costa Rica)", "es-DO": "Spanish (Dominican Republic)", "es-EC": "Spanish (Ecuador)", "es-SV": "Spanish (El Salvador)", "es-GT": "Spanish (Guatemala)", "es-HN": "Spanish (Honduras)", "es-MX": "Spanish (Mexico)", "es-NI": "Spanish (Nicaragua)", "es-PA": "Spanish (Panama)", "es-PY": "Spanish (Paraguay)", "es-PE": "Spanish (Peru)", "es-PR": "Spanish (Puerto Rico)", "es-ES": "Spanish (Spain)", "es-UY": "Spanish (Uruguay)", "es-VE": "Spanish (Venezuela)", sx: "Sutu", sw: "Swahili", sv: "Swedish", "sv-FI": "Swedish (Finland)", "sv-SV": "Swedish (Sweden)", ta: "Tamil", tt: "Tatar", te: "Teluga", th: "Thai", tig: "Tigre", ts: "Tsonga", tn: "Tswana", tr: "Turkish", tk: "Turkmen", uk: "Ukrainian", hsb: "Upper Sorbian", ur: "Urdu", ve: "Venda", vi: "Vietnamese", vo: "Volapuk", wa: "Walloon", cy: "Welsh", xh: "Xhosa", ji: "Yiddish", zu: "Zulu" }[t] && (this.internal.languageSettings.languageCode = t, !1 === this.internal.languageSettings.isSubscribed && (this.internal.events.subscribe("putCatalog", (function() { this.internal.write("/Lang (" + this.internal.languageSettings.languageCode + ")") } )), this.internal.languageSettings.isSubscribed = !0)), this /** @license * MIT license. * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com * 2014 Diego Casorran, https://github.com/diegocr * * * ==================================================================== */ } , K = ft.API, Z = K.getCharWidthsArray = function(t, e) { var n, i, r, o = (e = e || {}).font || this.internal.getFont(), a = e.fontSize || this.internal.getFontSize(), s = e.charSpace || this.internal.getCharSpace(), c = e.widths ? e.widths : o.metadata.Unicode.widths, l = c.fof ? c.fof : 1, u = e.kerning ? e.kerning : o.metadata.Unicode.kerning, d = u.fof ? u.fof : 1, p = 0, h = c[0] || l, f = []; for (n = 0, i = t.length; n < i; n++) r = t.charCodeAt(n), "function" == typeof o.metadata.widthOfString ? f.push((o.metadata.widthOfGlyph(o.metadata.characterToGlyph(r)) + s * (1e3 / a) || 0) / 1e3) : f.push((c[r] || h) / l + (u[r] && u[r][p] || 0) / d), p = r; return f } , J = K.getArraySum = function(t) { for (var e = t.length, n = 0; e; ) n += t[--e]; return n } , Q = K.getStringUnitWidth = function(t, e) { var n = (e = e || {}).fontSize || this.internal.getFontSize() , i = e.font || this.internal.getFont() , r = e.charSpace || this.internal.getCharSpace(); return "function" == typeof i.metadata.widthOfString ? i.metadata.widthOfString(t, n, r) / n : J(Z.apply(this, arguments)) } , $ = function(t, e, n, i) { for (var r = [], o = 0, a = t.length, s = 0; o !== a && s + e[o] < n; ) s += e[o], o++; r.push(t.slice(0, o)); var c = o; for (s = 0; o !== a; ) s + e[o] > i && (r.push(t.slice(c, o)), s = 0, c = o), s += e[o], o++; return c !== o && r.push(t.slice(c, o)), r } , tt = function(t, e, n) { n || (n = {}); var i, r, o, a, s, c, l = [], u = [l], d = n.textIndent || 0, p = 0, h = 0, f = t.split(" "), m = Z.apply(this, [" ", n])[0]; if (c = -1 === n.lineIndent ? f[0].length + 2 : n.lineIndent || 0) { var g = Array(c).join(" ") , v = []; f.map((function(t) { 1 < (t = t.split(/\s*\n/)).length ? v = v.concat(t.map((function(t, e) { return (e && t.length ? "\n" : "") + t } ))) : v.push(t[0]) } )), f = v, c = Q.apply(this, [g, n]) } for (o = 0, a = f.length; o < a; o++) { var y = 0; if (i = f[o], c && "\n" == i[0] && (i = i.substr(1), y = 1), r = Z.apply(this, [i, n]), e < d + p + (h = J(r)) || y) { if (e < h) { for (s = $.apply(this, [i, r, e - (d + p), e]), l.push(s.shift()), l = [s.pop()]; s.length; ) u.push([s.shift()]); h = J(r.slice(i.length - (l[0] ? l[0].length : 0))) } else l = [i]; u.push(l), d = h + c, p = m } else l.push(i), d += p + h, p = m } if (c) var b = function(t, e) { return (e ? g : "") + t.join(" ") }; else b = function(t) { return t.join(" ") } ; return u.map(b) } , K.splitTextToSize = function(t, e, n) { var i, r = (n = n || {}).fontSize || this.internal.getFontSize(), o = function(t) { if (t.widths && t.kerning) return { widths: t.widths, kerning: t.kerning }; var e = this.internal.getFont(t.fontName, t.fontStyle) , n = "Unicode"; return e.metadata[n] ? { widths: e.metadata[n].widths || { 0: 1 }, kerning: e.metadata[n].kerning || {} } : { font: e.metadata, fontSize: this.internal.getFontSize(), charSpace: this.internal.getCharSpace() } } .call(this, n); i = Array.isArray(t) ? t : t.split(/\r?\n/); var a = 1 * this.internal.scaleFactor * e / r; o.textIndent = n.textIndent ? 1 * n.textIndent * this.internal.scaleFactor / r : 0, o.lineIndent = n.lineIndent; var s, c, l = []; for (s = 0, c = i.length; s < c; s++) l = l.concat(tt.apply(this, [i[s], a, o])); return l } , /** @license jsPDF standard_fonts_metrics plugin * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com * MIT license. * * ==================================================================== */ et = ft.API, it = { codePages: ["WinAnsiEncoding"], WinAnsiEncoding: (nt = function(t) { for (var e = "klmnopqrstuvwxyz", n = {}, i = 0; i < e.length; i++) n[e[i]] = "0123456789abcdef"[i]; var r, o, a, s, c, l = {}, u = 1, d = l, p = [], h = "", f = "", m = t.length - 1; for (i = 1; i != m; ) c = t[i], i += 1, "'" == c ? o = o ? (s = o.join(""), r) : [] : o ? o.push(c) : "{" == c ? (p.push([d, s]), d = {}, s = r) : "}" == c ? ((a = p.pop())[0][a[1]] = d, s = r, d = a[0]) : "-" == c ? u = -1 : s === r ? n.hasOwnProperty(c) ? (h += n[c], s = parseInt(h, 16) * u, u = 1, h = "") : h += c : n.hasOwnProperty(c) ? (f += n[c], d[s] = parseInt(f, 16) * u, u = 1, s = r, f = "") : f += c; return l } )("{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}") }, rt = { Unicode: { Courier: it, "Courier-Bold": it, "Courier-BoldOblique": it, "Courier-Oblique": it, Helvetica: it, "Helvetica-Bold": it, "Helvetica-BoldOblique": it, "Helvetica-Oblique": it, "Times-Roman": it, "Times-Bold": it, "Times-BoldItalic": it, "Times-Italic": it } }, ot = { Unicode: { "Courier-Oblique": nt("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-BoldItalic": nt("{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}"), "Helvetica-Bold": nt("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), Courier: nt("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-BoldOblique": nt("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Bold": nt("{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}"), Symbol: nt("{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}"), Helvetica: nt("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}"), "Helvetica-BoldOblique": nt("{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}"), ZapfDingbats: nt("{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}"), "Courier-Bold": nt("{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}"), "Times-Italic": nt("{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}"), "Times-Roman": nt("{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}"), "Helvetica-Oblique": nt("{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}") } }, et.events.push(["addFont", function(t) { var e, n, i, r = t.font, o = "Unicode"; (e = ot[o][r.postScriptName]) && ((n = r.metadata[o] ? r.metadata[o] : r.metadata[o] = {}).widths = e.widths, n.kerning = e.kerning), (i = rt[o][r.postScriptName]) && ((n = r.metadata[o] ? r.metadata[o] : r.metadata[o] = {}).encoding = i).codePages && i.codePages.length && (r.encoding = i.codePages[0]) } ]), /** * @license * Licensed under the MIT License. * http://opensource.org/licenses/mit-license */ at = ft, "undefined" != typeof self && self || void 0 !== i && i || "undefined" != typeof window && window || Function("return this")(), at.API.events.push(["addFont", function(t) { var e = t.font , n = t.instance; if (void 0 !== n && n.existsFileInVFS(e.postScriptName)) { var i = n.getFileFromVFS(e.postScriptName); if ("string" != typeof i) throw new Error("Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('" + e.postScriptName + "')."); e.metadata = at.API.TTFFont.open(e.postScriptName, e.fontName, i, e.encoding), e.metadata.Unicode = e.metadata.Unicode || { encoding: {}, kerning: {}, widths: [] }, e.metadata.glyIdsUsed = [0] } else if (!1 === e.isStandardFont) throw new Error("Font does not exist in vFS, import fonts or remove declaration doc.addFont('" + e.postScriptName + "').") } ]), /** @license * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com * * * ==================================================================== */ (st = ft.API).addSvg = function(t, e, n, i, r) { if (void 0 === e || void 0 === n) throw new Error("addSVG needs values for 'x' and 'y'"); function o(t) { for (var e = parseFloat(t[1]), n = parseFloat(t[2]), i = [], r = 3, o = t.length; r < o; ) "c" === t[r] ? (i.push([parseFloat(t[r + 1]), parseFloat(t[r + 2]), parseFloat(t[r + 3]), parseFloat(t[r + 4]), parseFloat(t[r + 5]), parseFloat(t[r + 6])]), r += 7) : "l" === t[r] ? (i.push([parseFloat(t[r + 1]), parseFloat(t[r + 2])]), r += 3) : r += 1; return [e, n, i] } var a, s, c, l, u, d, p, h, f = (a = t, (c = ((h = (l = document).createElement("iframe"), u = ".jsPDF_sillysvg_iframe {display:none;position:absolute;}", (p = (d = l).createElement("style")).type = "text/css", p.styleSheet ? p.styleSheet.cssText = u : p.appendChild(d.createTextNode(u)), d.getElementsByTagName("head")[0].appendChild(p), h.name = "childframe", h.setAttribute("width", 0), h.setAttribute("height", 0), h.setAttribute("frameborder", "0"), h.setAttribute("scrolling", "no"), h.setAttribute("seamless", "seamless"), h.setAttribute("class", "jsPDF_sillysvg_iframe"), l.body.appendChild(h), s = h).contentWindow || s.contentDocument).document).write(a), c.close(), c.getElementsByTagName("svg")[0]), m = [1, 1], g = parseFloat(f.getAttribute("width")), v = parseFloat(f.getAttribute("height")); g && v && (i && r ? m = [i / g, r / v] : i ? m = [i / g, i / g] : r && (m = [r / v, r / v])); var y, b, w, S, x = f.childNodes; for (y = 0, b = x.length; y < b; y++) (w = x[y]).tagName && "PATH" === w.tagName.toUpperCase() && ((S = o(w.getAttribute("d").split(" ")))[0] = S[0] * m[0] + e, S[1] = S[1] * m[1] + n, this.lines.call(this, S[2], S[0], S[1], m)); return this } , st.addSVG = st.addSvg, st.addSvgAsImage = function(t, e, n, i, r, o, a, s) { if (isNaN(e) || isNaN(n)) throw console.error("jsPDF.addSvgAsImage: Invalid coordinates", arguments), new Error("Invalid coordinates passed to jsPDF.addSvgAsImage"); if (isNaN(i) || isNaN(r)) throw console.error("jsPDF.addSvgAsImage: Invalid measurements", arguments), new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage"); var c = document.createElement("canvas"); c.width = i, c.height = r; var l = c.getContext("2d"); return l.fillStyle = "#fff", l.fillRect(0, 0, c.width, c.height), canvg(c, t, { ignoreMouse: !0, ignoreAnimation: !0, ignoreDimensions: !0, ignoreClear: !0 }), this.addImage(c.toDataURL("image/jpeg", 1), e, n, i, r, a, s), this } , ft.API.putTotalPages = function(t) { var e, n; n = parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (e = new RegExp(t,"g"), this.internal.getNumberOfPages()) : (e = new RegExp(this.pdfEscape16(t, this.internal.getFont()),"g"), this.pdfEscape16(this.internal.getNumberOfPages() + "", this.internal.getFont())); for (var i = 1; i <= this.internal.getNumberOfPages(); i++) for (var r = 0; r < this.internal.pages[i].length; r++) this.internal.pages[i][r] = this.internal.pages[i][r].replace(e, n); return this } , ft.API.viewerPreferences = function(t, e) { var n; t = t || {}, e = e || !1; var i, o, a = { HideToolbar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideMenubar: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, HideWindowUI: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, FitWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, CenterWindow: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.3 }, DisplayDocTitle: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.4 }, NonFullScreenPageMode: { defaultValue: "UseNone", value: "UseNone", type: "name", explicitSet: !1, valueSet: ["UseNone", "UseOutlines", "UseThumbs", "UseOC"], pdfVersion: 1.3 }, Direction: { defaultValue: "L2R", value: "L2R", type: "name", explicitSet: !1, valueSet: ["L2R", "R2L"], pdfVersion: 1.3 }, ViewArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, ViewClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintArea: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintClip: { defaultValue: "CropBox", value: "CropBox", type: "name", explicitSet: !1, valueSet: ["MediaBox", "CropBox", "TrimBox", "BleedBox", "ArtBox"], pdfVersion: 1.4 }, PrintScaling: { defaultValue: "AppDefault", value: "AppDefault", type: "name", explicitSet: !1, valueSet: ["AppDefault", "None"], pdfVersion: 1.6 }, Duplex: { defaultValue: "", value: "none", type: "name", explicitSet: !1, valueSet: ["Simplex", "DuplexFlipShortEdge", "DuplexFlipLongEdge", "none"], pdfVersion: 1.7 }, PickTrayByPDFSize: { defaultValue: !1, value: !1, type: "boolean", explicitSet: !1, valueSet: [!0, !1], pdfVersion: 1.7 }, PrintPageRange: { defaultValue: "", value: "", type: "array", explicitSet: !1, valueSet: null, pdfVersion: 1.7 }, NumCopies: { defaultValue: 1, value: 1, type: "integer", explicitSet: !1, valueSet: null, pdfVersion: 1.7 } }, s = Object.keys(a), c = [], l = 0, u = 0, d = 0, p = !0; function h(t, e) { var n, i = !1; for (n = 0; n < t.length; n += 1) t[n] === e && (i = !0); return i } if (void 0 === this.internal.viewerpreferences && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(a)), this.internal.viewerpreferences.isSubscribed = !1), n = this.internal.viewerpreferences.configuration, "reset" === t || !0 === e) { var f = s.length; for (d = 0; d < f; d += 1) n[s[d]].value = n[s[d]].defaultValue, n[s[d]].explicitSet = !1 } if ("object" === r(t)) for (i in t) if (o = t[i], h(s, i) && void 0 !== o) { if ("boolean" === n[i].type && "boolean" == typeof o) n[i].value = o; else if ("name" === n[i].type && h(n[i].valueSet, o)) n[i].value = o; else if ("integer" === n[i].type && Number.isInteger(o)) n[i].value = o; else if ("array" === n[i].type) { for (l = 0; l < o.length; l += 1) if (p = !0, 1 === o[l].length && "number" == typeof o[l][0]) c.push(String(o[l] - 1)); else if (1 < o[l].length) { for (u = 0; u < o[l].length; u += 1) "number" != typeof o[l][u] && (p = !1); !0 === p && c.push([o[l][0] - 1, o[l][1] - 1].join(" ")) } n[i].value = "[" + c.join(" ") + "]" } else n[i].value = n[i].defaultValue; n[i].explicitSet = !0 } return !1 === this.internal.viewerpreferences.isSubscribed && (this.internal.events.subscribe("putCatalog", (function() { var t, e = []; for (t in n) !0 === n[t].explicitSet && ("name" === n[t].type ? e.push("/" + t + " /" + n[t].value) : e.push("/" + t + " " + n[t].value)); 0 !== e.length && this.internal.write("/ViewerPreferences\n<<\n" + e.join("\n") + "\n>>") } )), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = n, this } , ct = ft.API, dt = ut = lt = "", ct.addMetadata = function(t, e) { return ut = e || "http://jspdf.default.namespaceuri/", lt = t, this.internal.events.subscribe("postPutResources", (function() { if (lt) { var t = '' , e = unescape(encodeURIComponent('')) , n = unescape(encodeURIComponent(t)) , i = unescape(encodeURIComponent(lt)) , r = unescape(encodeURIComponent("")) , o = unescape(encodeURIComponent("")) , a = n.length + i.length + r.length + e.length + o.length; dt = this.internal.newObject(), this.internal.write("<< /Type /Metadata /Subtype /XML /Length " + a + " >>"), this.internal.write("stream"), this.internal.write(e + n + i + r + o), this.internal.write("endstream"), this.internal.write("endobj") } else dt = "" } )), this.internal.events.subscribe("putCatalog", (function() { dt && this.internal.write("/Metadata " + dt + " 0 R") } )), this } , function(t, e) { var n = t.API , i = n.pdfEscape16 = function(t, e) { for (var n, i = e.metadata.Unicode.widths, r = ["", "0", "00", "000", "0000"], o = [""], a = 0, s = t.length; a < s; ++a) { if (n = e.metadata.characterToGlyph(t.charCodeAt(a)), e.metadata.glyIdsUsed.push(n), e.metadata.toUnicode[n] = t.charCodeAt(a), -1 == i.indexOf(n) && (i.push(n), i.push([parseInt(e.metadata.widthOfGlyph(n), 10)])), "0" == n) return o.join(""); n = n.toString(16), o.push(r[4 - n.length], n) } return o.join("") } , r = function(t) { var e, n, i, r, o, a, s; for (o = "/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000>\nendcodespacerange", i = [], a = 0, s = (n = Object.keys(t).sort((function(t, e) { return t - e } ))).length; a < s; a++) e = n[a], 100 <= i.length && (o += "\n" + i.length + " beginbfchar\n" + i.join("\n") + "\nendbfchar", i = []), r = ("0000" + t[e].toString(16)).slice(-4), e = ("0000" + (+e).toString(16)).slice(-4), i.push("<" + e + "><" + r + ">"); return i.length && (o += "\n" + i.length + " beginbfchar\n" + i.join("\n") + "\nendbfchar\n"), o + "endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend" }; n.events.push(["putFont", function(e) { !function(e, n, i, o) { if (e.metadata instanceof t.API.TTFFont && "Identity-H" === e.encoding) { for (var a = e.metadata.Unicode.widths, s = e.metadata.subset.encode(e.metadata.glyIdsUsed, 1), c = "", l = 0; l < s.length; l++) c += String.fromCharCode(s[l]); var u = i(); o({ data: c, addLength1: !0 }), n("endobj"); var d = i(); o({ data: r(e.metadata.toUnicode), addLength1: !0 }), n("endobj"); var p = i(); n("<<"), n("/Type /FontDescriptor"), n("/FontName /" + e.fontName), n("/FontFile2 " + u + " 0 R"), n("/FontBBox " + t.API.PDFObject.convert(e.metadata.bbox)), n("/Flags " + e.metadata.flags), n("/StemV " + e.metadata.stemV), n("/ItalicAngle " + e.metadata.italicAngle), n("/Ascent " + e.metadata.ascender), n("/Descent " + e.metadata.decender), n("/CapHeight " + e.metadata.capHeight), n(">>"), n("endobj"); var h = i(); n("<<"), n("/Type /Font"), n("/BaseFont /" + e.fontName), n("/FontDescriptor " + p + " 0 R"), n("/W " + t.API.PDFObject.convert(a)), n("/CIDToGIDMap /Identity"), n("/DW 1000"), n("/Subtype /CIDFontType2"), n("/CIDSystemInfo"), n("<<"), n("/Supplement 0"), n("/Registry (Adobe)"), n("/Ordering (" + e.encoding + ")"), n(">>"), n(">>"), n("endobj"), e.objectNumber = i(), n("<<"), n("/Type /Font"), n("/Subtype /Type0"), n("/ToUnicode " + d + " 0 R"), n("/BaseFont /" + e.fontName), n("/Encoding /" + e.encoding), n("/DescendantFonts [" + h + " 0 R]"), n(">>"), n("endobj"), e.isAlreadyPutted = !0 } }(e.font, e.out, e.newObject, e.putStream) } ]), n.events.push(["putFont", function(e) { !function(e, n, i, o) { if (e.metadata instanceof t.API.TTFFont && "WinAnsiEncoding" === e.encoding) { e.metadata.Unicode.widths; for (var a = e.metadata.rawData, s = "", c = 0; c < a.length; c++) s += String.fromCharCode(a[c]); var l = i(); o({ data: s, addLength1: !0 }), n("endobj"); var u = i(); o({ data: r(e.metadata.toUnicode), addLength1: !0 }), n("endobj"); var d = i(); for (n("<<"), n("/Descent " + e.metadata.decender), n("/CapHeight " + e.metadata.capHeight), n("/StemV " + e.metadata.stemV), n("/Type /FontDescriptor"), n("/FontFile2 " + l + " 0 R"), n("/Flags 96"), n("/FontBBox " + t.API.PDFObject.convert(e.metadata.bbox)), n("/FontName /" + e.fontName), n("/ItalicAngle " + e.metadata.italicAngle), n("/Ascent " + e.metadata.ascender), n(">>"), n("endobj"), e.objectNumber = i(), c = 0; c < e.metadata.hmtx.widths.length; c++) e.metadata.hmtx.widths[c] = parseInt(e.metadata.hmtx.widths[c] * (1e3 / e.metadata.head.unitsPerEm)); n("<>"), n("endobj"), e.isAlreadyPutted = !0 } }(e.font, e.out, e.newObject, e.putStream) } ]); var o = function(t) { var e, n, r = t.text || "", o = t.x, a = t.y, s = t.options || {}, c = t.mutex || {}, l = c.pdfEscape, u = c.activeFontKey, d = c.fonts, p = (c.activeFontSize, ""), h = 0, f = "", m = d[n = u].encoding; if ("Identity-H" !== d[n].encoding) return { text: r, x: o, y: a, options: s, mutex: c }; for (f = r, n = u, "[object Array]" === Object.prototype.toString.call(r) && (f = r[0]), h = 0; h < f.length; h += 1) d[n].metadata.hasOwnProperty("cmap") && (e = d[n].metadata.cmap.unicode.codeMap[f[h].charCodeAt(0)]), e || f[h].charCodeAt(0) < 256 && d[n].metadata.hasOwnProperty("Unicode") ? p += f[h] : p += ""; var g = ""; return parseInt(n.slice(1)) < 14 || "WinAnsiEncoding" === m ? g = function(t) { for (var e = "", n = 0; n < t.length; n++) e += "" + t.charCodeAt(n).toString(16); return e }(l(p, n)) : "Identity-H" === m && (g = i(p, d[n])), c.isHex = !0, { text: g, x: o, y: a, options: s, mutex: c } }; n.events.push(["postProcessText", function(t) { var e = t.text || "" , n = t.x , i = t.y , r = t.options , a = t.mutex , s = (r.lang, []) , c = { text: e, x: n, y: i, options: r, mutex: a }; if ("[object Array]" === Object.prototype.toString.call(e)) { var l = 0; for (l = 0; l < e.length; l += 1) "[object Array]" === Object.prototype.toString.call(e[l]) && 3 === e[l].length ? s.push([o(Object.assign({}, c, { text: e[l][0] })).text, e[l][1], e[l][2]]) : s.push(o(Object.assign({}, c, { text: e[l] })).text); t.text = s } else t.text = o(Object.assign({}, c, { text: e })).text } ]) }(ft, "undefined" != typeof self && self || void 0 !== i && i || "undefined" != typeof window && window || Function("return this")()), pt = ft.API, ht = function(t) { return void 0 !== t && (void 0 === t.vFS && (t.vFS = {}), !0) } , pt.existsFileInVFS = function(t) { return !!ht(this.internal) && void 0 !== this.internal.vFS[t] } , pt.addFileToVFS = function(t, e) { return ht(this.internal), this.internal.vFS[t] = e, this } , pt.getFileFromVFS = function(t) { return ht(this.internal), void 0 !== this.internal.vFS[t] ? this.internal.vFS[t] : null } , ft.API.addHTML = function(t, e, n, i, r) { if ("undefined" == typeof html2canvas && "undefined" == typeof rasterizeHTML) throw new Error("You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js"); "number" != typeof e && (i = e, r = n), "function" == typeof i && (r = i, i = null), "function" != typeof r && (r = function() {} ); var o = this.internal , a = o.scaleFactor , s = o.pageSize.getWidth() , c = o.pageSize.getHeight(); if ((i = i || {}).onrendered = function(t) { e = parseInt(e) || 0, n = parseInt(n) || 0; var o = i.dim || {} , l = Object.assign({ top: 0, right: 0, bottom: 0, left: 0, useFor: "content" }, i.margin) , u = o.h || Math.min(c, t.height / a) , d = o.w || Math.min(s, t.width / a) - e , p = i.format || "JPEG" , h = i.imageCompression || "SLOW"; if (t.height > c - l.top - l.bottom && i.pagesplit) { var f = function(t, e, n, r, o) { var a = document.createElement("canvas"); a.height = o, a.width = r; var s = a.getContext("2d"); return s.mozImageSmoothingEnabled = !1, s.webkitImageSmoothingEnabled = !1, s.msImageSmoothingEnabled = !1, s.imageSmoothingEnabled = !1, s.fillStyle = i.backgroundColor || "#ffffff", s.fillRect(0, 0, r, o), s.drawImage(t, e, n, r, o, 0, 0, r, o), a } , m = function() { for (var i, o, u = 0, m = 0, g = {}, v = !1; ; ) { var y; if (m = 0, g.top = 0 !== u ? l.top : n, g.left = 0 !== u ? l.left : e, v = (s - l.left - l.right) * a < t.width, "content" === l.useFor ? 0 === u ? (i = Math.min((s - l.left) * a, t.width), o = Math.min((c - l.top) * a, t.height - u)) : (i = Math.min(s * a, t.width), o = Math.min(c * a, t.height - u), g.top = 0) : (i = Math.min((s - l.left - l.right) * a, t.width), o = Math.min((c - l.bottom - l.top) * a, t.height - u)), v) for (; ; ) { "content" === l.useFor && (0 === m ? i = Math.min((s - l.left) * a, t.width) : (i = Math.min(s * a, t.width - m), g.left = 0)); var b = [y = f(t, m, u, i, o), g.left, g.top, y.width / a, y.height / a, p, null, h]; if (this.addImage.apply(this, b), (m += i) >= t.width) break; this.addPage() } else b = [y = f(t, 0, u, i, o), g.left, g.top, y.width / a, y.height / a, p, null, h], this.addImage.apply(this, b); if ((u += o) >= t.height) break; this.addPage() } r(d, u, null, b) } .bind(this); if ("CANVAS" === t.nodeName) { var g = new Image; g.onload = m, g.src = t.toDataURL("image/png"), t = g } else m() } else { var v = Math.random().toString(35) , y = [t, e, n, d, u, p, v, h]; this.addImage.apply(this, y), r(d, u, v, y) } } .bind(this), "undefined" != typeof html2canvas && !i.rstz) return html2canvas(t, i); if ("undefined" == typeof rasterizeHTML) return null; var l = "drawDocument"; return "string" == typeof t && (l = /^http/.test(t) ? "drawURL" : "drawHTML"), i.width = i.width || s * a, rasterizeHTML[l](t, void 0, i).then((function(t) { i.onrendered(t.image) } ), (function(t) { r(null, t) } )) /** * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria * 2014 Diego Casorran, https://github.com/diegocr * 2014 Daniel Husar, https://github.com/danielhusar * 2014 Wolfgang Gassler, https://github.com/woolfg * 2014 Steven Spungin, https://github.com/flamenco * * @license * * ==================================================================== */ } , function(t) { var e, n, i, o, a, s, c, l, u, d, p, h, f, m, g, v, y, b, w, S; e = function() { return function(e) { return t.prototype = e, new t } ; function t() {} }(), d = function(t) { var e, n, i, r, o, a, s; for (n = 0, i = t.length, e = void 0, a = r = !1; !r && n !== i; ) (e = t[n] = t[n].trimLeft()) && (r = !0), n++; for (n = i - 1; i && !a && -1 !== n; ) (e = t[n] = t[n].trimRight()) && (a = !0), n--; for (o = /\s+$/g, s = !0, n = 0; n !== i; ) "\u2028" != t[n] && (e = t[n].replace(/\s+/g, " "), s && (e = e.trimLeft()), e && (s = o.test(e)), t[n] = e), n++; return t } , h = function(t) { var e, n, r; for (e = void 0, n = (r = t.split(",")).shift(); !e && n; ) e = i[n.trim().toLowerCase()], n = r.shift(); return e } , f = function(t) { var e; return -1 < (t = "auto" === t ? "0px" : t).indexOf("em") && !isNaN(Number(t.replace("em", ""))) && (t = 18.719 * Number(t.replace("em", "")) + "px"), -1 < t.indexOf("pt") && !isNaN(Number(t.replace("pt", ""))) && (t = 1.333 * Number(t.replace("pt", "")) + "px"), (e = m[t]) ? e : void 0 !== (e = { "xx-small": 9, "x-small": 11, small: 13, medium: 16, large: 19, "x-large": 23, "xx-large": 28, auto: 0 }[t]) || (e = parseFloat(t)) ? m[t] = e / 16 : (e = t.match(/([\d\.]+)(px)/), Array.isArray(e) && 3 === e.length ? m[t] = parseFloat(e[1]) / 16 : m[t] = 1) } , u = function(t) { var e, n, i, r, u; return u = t, r = document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(u, null) : u.currentStyle ? u.currentStyle : u.style, n = void 0, (e = {})["font-family"] = h((i = function(t) { return t = t.replace(/-\D/g, (function(t) { return t.charAt(1).toUpperCase() } )), r[t] } )("font-family")) || "times", e["font-style"] = o[i("font-style")] || "normal", e["text-align"] = a[i("text-align")] || "left", "bold" === (n = s[i("font-weight")] || "normal") && ("normal" === e["font-style"] ? e["font-style"] = n : e["font-style"] = n + e["font-style"]), e["font-size"] = f(i("font-size")) || 1, e["line-height"] = f(i("line-height")) || 1, e.display = "inline" === i("display") ? "inline" : "block", n = "block" === e.display, e["margin-top"] = n && f(i("margin-top")) || 0, e["margin-bottom"] = n && f(i("margin-bottom")) || 0, e["padding-top"] = n && f(i("padding-top")) || 0, e["padding-bottom"] = n && f(i("padding-bottom")) || 0, e["margin-left"] = n && f(i("margin-left")) || 0, e["margin-right"] = n && f(i("margin-right")) || 0, e["padding-left"] = n && f(i("padding-left")) || 0, e["padding-right"] = n && f(i("padding-right")) || 0, e["page-break-before"] = i("page-break-before") || "auto", e.float = c[i("cssFloat")] || "none", e.clear = l[i("clear")] || "none", e.color = i("color"), e } , g = function(t, e, n) { var i, r, o, a, s; if (o = !1, a = r = void 0, i = n["#" + t.id]) if ("function" == typeof i) o = i(t, e); else for (r = 0, a = i.length; !o && r !== a; ) o = i[r](t, e), r++; if (i = n[t.nodeName], !o && i) if ("function" == typeof i) o = i(t, e); else for (r = 0, a = i.length; !o && r !== a; ) o = i[r](t, e), r++; for (s = "string" == typeof t.className ? t.className.split(" ") : [], r = 0; r < s.length; r++) if (i = n["." + s[r]], !o && i) if ("function" == typeof i) o = i(t, e); else for (r = 0, a = i.length; !o && r !== a; ) o = i[r](t, e), r++; return o } , S = function(t, e) { var n, i, r, o, a, s, c, l, u; for (n = [], i = [], r = 0, u = t.rows[0].cells.length, c = t.clientWidth; r < u; ) l = t.rows[0].cells[r], i[r] = { name: l.textContent.toLowerCase().replace(/\s+/g, ""), prompt: l.textContent.replace(/\r?\n/g, ""), width: l.clientWidth / c * e.pdf.internal.pageSize.getWidth() }, r++; for (r = 1; r < t.rows.length; ) { for (s = t.rows[r], a = {}, o = 0; o < s.cells.length; ) a[i[o].name] = s.cells[o].textContent.replace(/\r?\n/g, ""), o++; n.push(a), r++ } return { rows: n, headers: i } } ; var x = { SCRIPT: 1, STYLE: 1, NOSCRIPT: 1, OBJECT: 1, EMBED: 1, SELECT: 1 } , M = 1; n = function(t, i, o) { var a, s, c, l, d, p, h, f; for (s = t.childNodes, a = void 0, (d = "block" === (c = u(t)).display) && (i.setBlockBoundary(), i.setBlockStyle(c)), l = 0, p = s.length; l < p; ) { if ("object" === r(a = s[l])) { if (i.executeWatchFunctions(a), 1 === a.nodeType && "HEADER" === a.nodeName) { var m = a , y = i.pdf.margins_doc.top; i.pdf.internal.events.subscribe("addPage", (function(t) { i.y = y, n(m, i, o), i.pdf.margins_doc.top = i.y + 10, i.y += 10 } ), !1) } if (8 === a.nodeType && "#comment" === a.nodeName) ~a.textContent.indexOf("ADD_PAGE") && (i.pdf.addPage(), i.y = i.pdf.margins_doc.top); else if (1 !== a.nodeType || x[a.nodeName]) if (3 === a.nodeType) { var b = a.nodeValue; if (a.nodeValue && "LI" === a.parentNode.nodeName) if ("OL" === a.parentNode.parentNode.nodeName) b = M++ + ". " + b; else { var w = c["font-size"] , E = (3 - .75 * w) * i.pdf.internal.scaleFactor , C = .75 * w * i.pdf.internal.scaleFactor , A = 1.74 * w / i.pdf.internal.scaleFactor; f = function(t, e) { this.pdf.circle(t + E, e + C, A, "FD") } } 16 & a.ownerDocument.body.compareDocumentPosition(a) && i.addText(b, c) } else "string" == typeof a && i.addText(a, c); else { var T; if ("IMG" === a.nodeName) { var O = a.getAttribute("src"); T = v[i.pdf.sHashCode(O) || O] } if (T) { i.pdf.internal.pageSize.getHeight() - i.pdf.margins_doc.bottom < i.y + a.height && i.y > i.pdf.margins_doc.top && (i.pdf.addPage(), i.y = i.pdf.margins_doc.top, i.executeWatchFunctions(a)); var _ = u(a) , P = i.x , I = 12 / i.pdf.internal.scaleFactor , k = (_["margin-left"] + _["padding-left"]) * I , D = (_["margin-right"] + _["padding-right"]) * I , R = (_["margin-top"] + _["padding-top"]) * I , L = (_["margin-bottom"] + _["padding-bottom"]) * I; void 0 !== _.float && "right" === _.float ? P += i.settings.width - a.width - D : P += k, i.pdf.addImage(T, P, i.y + R, a.width, a.height), T = void 0, "right" === _.float || "left" === _.float ? (i.watchFunctions.push(function(t, e, n, r) { return i.y >= e ? (i.x += t, i.settings.width += n, !0) : !!(r && 1 === r.nodeType && !x[r.nodeName] && i.x + r.width > i.pdf.margins_doc.left + i.pdf.margins_doc.width) && (i.x += t, i.y = e, i.settings.width += n, !0) } .bind(this, "left" === _.float ? -a.width - k - D : 0, i.y + a.height + R + L, a.width)), i.watchFunctions.push(function(t, e, n) { return !(i.y < t && e === i.pdf.internal.getNumberOfPages()) || 1 === n.nodeType && "both" === u(n).clear && (i.y = t, !0) } .bind(this, i.y + a.height, i.pdf.internal.getNumberOfPages())), i.settings.width -= a.width + k + D, "left" === _.float && (i.x += a.width + k + D)) : i.y += a.height + R + L } else if ("TABLE" === a.nodeName) h = S(a, i), i.y += 10, i.pdf.table(i.x, i.y, h.rows, h.headers, { autoSize: !1, printHeaders: o.printHeaders, margins: i.pdf.margins_doc, css: u(a) }), i.y = i.pdf.lastCellPos.y + i.pdf.lastCellPos.h + 20; else if ("OL" === a.nodeName || "UL" === a.nodeName) M = 1, g(a, i, o) || n(a, i, o), i.y += 10; else if ("LI" === a.nodeName) { var N = i.x; i.x += 20 / i.pdf.internal.scaleFactor, i.y += 3, g(a, i, o) || n(a, i, o), i.x = N } else "BR" === a.nodeName ? (i.y += c["font-size"] * i.pdf.internal.scaleFactor, i.addText("\u2028", e(c))) : g(a, i, o) || n(a, i, o) } } l++ } if (o.outY = i.y, d) return i.setBlockBoundary(f) } , v = {}, y = function(t, e, n, i) { var r, o = t.getElementsByTagName("img"), a = o.length, s = 0; function c() { e.pdf.internal.events.publish("imagesLoaded"), i(r) } function l(t, n, i) { if (t) { var o = new Image; r = ++s, o.crossOrigin = "", o.onerror = o.onload = function() { if (o.complete && (0 === o.src.indexOf("data:image/") && (o.width = n || o.width || 0, o.height = i || o.height || 0), o.width + o.height)) { var r = e.pdf.sHashCode(t) || t; v[r] = v[r] || o } --s || c() } , o.src = t } } for (; a--; ) l(o[a].getAttribute("src"), o[a].width, o[a].height); return s || c() } , b = function(t, e, i) { var r = t.getElementsByTagName("footer"); if (0 < r.length) { r = r[0]; var o = e.pdf.internal.write , a = e.y; e.pdf.internal.write = function() {} , n(r, e, i); var s = Math.ceil(e.y - a) + 5; e.y = a, e.pdf.internal.write = o, e.pdf.margins_doc.bottom += s; for (var c = function(t) { var o = void 0 !== t ? t.pageNumber : 1 , a = e.y; e.y = e.pdf.internal.pageSize.getHeight() - e.pdf.margins_doc.bottom, e.pdf.margins_doc.bottom -= s; for (var c = r.getElementsByTagName("span"), l = 0; l < c.length; ++l) -1 < (" " + c[l].className + " ").replace(/[\n\t]/g, " ").indexOf(" pageCounter ") && (c[l].innerHTML = o), -1 < (" " + c[l].className + " ").replace(/[\n\t]/g, " ").indexOf(" totalPages ") && (c[l].innerHTML = "###jsPDFVarTotalPages###"); n(r, e, i), e.pdf.margins_doc.bottom += s, e.y = a }, l = r.getElementsByTagName("span"), u = 0; u < l.length; ++u) -1 < (" " + l[u].className + " ").replace(/[\n\t]/g, " ").indexOf(" totalPages ") && e.pdf.internal.events.subscribe("htmlRenderingFinished", e.pdf.putTotalPages.bind(e.pdf, "###jsPDFVarTotalPages###"), !0); e.pdf.internal.events.subscribe("addPage", c, !1), c(), x.FOOTER = 1 } } , w = function(t, e, i, r, o, a) { if (!e) return !1; var s, c, l, u; "string" == typeof e || e.parentNode || (e = "" + e.innerHTML), "string" == typeof e && (s = e.replace(/<\/?script[^>]*?>/gi, ""), u = "jsPDFhtmlText" + Date.now().toString() + (1e3 * Math.random()).toFixed(0), (l = document.createElement("div")).style.cssText = "position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;", l.innerHTML = '