commit df592b6555b460f05d1280d655516887d4100a72 Author: anatolykopyl Date: Sun Jul 24 12:28:06 2022 +0000 Deploy to GitHub Pages diff --git a/404.html b/404.html new file mode 100644 index 0000000..27415c9 --- /dev/null +++ b/404.html @@ -0,0 +1,19 @@ + + + + + + 404 | Vue 3D Mockup + + + + + + + +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the GPL-3.0 license.

+ + + + + \ No newline at end of file diff --git a/assets/app.1b5fc780.js b/assets/app.1b5fc780.js new file mode 100644 index 0000000..d997cdd --- /dev/null +++ b/assets/app.1b5fc780.js @@ -0,0 +1 @@ +const Ti="modulepreload",po={},Li="/",Mi=function(t,n){return!n||n.length===0?t():Promise.all(n.map(s=>{if(s=`${Li}${s}`,s in po)return;po[s]=!0;const o=s.endsWith(".css"),r=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${r}`))return;const i=document.createElement("link");if(i.rel=o?"stylesheet":Ti,o||(i.as="script",i.crossOrigin=""),i.href=s,document.head.appendChild(i),o)return new Promise((l,c)=>{i.addEventListener("load",l),i.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t())};function Os(e,t){const n=Object.create(null),s=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}const Ai="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Ii=Os(Ai);function ar(e){return!!e||e===""}function Hs(e){if(K(e)){const t={};for(let n=0;n{if(n){const s=n.split(Bi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ve(e){let t="";if(we(e))t=e;else if(K(e))for(let n=0;nwe(e)?e:e==null?"":K(e)||ye(e)&&(e.toString===_r||!X(e.toString))?JSON.stringify(e,ur,2):String(e),ur=(e,t)=>t&&t.__v_isRef?ur(e,t.value):At(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o])=>(n[`${s} =>`]=o,n),{})}:fr(t)?{[`Set(${t.size})`]:[...t.values()]}:ye(t)&&!K(t)&&!hr(t)?String(t):t,_e={},Mt=[],We=()=>{},Oi=()=>!1,Hi=/^on[^a-z]/,dn=e=>Hi.test(e),Rs=e=>e.startsWith("onUpdate:"),$e=Object.assign,Ds=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ri=Object.prototype.hasOwnProperty,ne=(e,t)=>Ri.call(e,t),K=Array.isArray,At=e=>Dn(e)==="[object Map]",fr=e=>Dn(e)==="[object Set]",X=e=>typeof e=="function",we=e=>typeof e=="string",zs=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",dr=e=>ye(e)&&X(e.then)&&X(e.catch),_r=Object.prototype.toString,Dn=e=>_r.call(e),Di=e=>Dn(e).slice(8,-1),hr=e=>Dn(e)==="[object Object]",Us=e=>we(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Jt=Os(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),zn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},zi=/-(\w)/g,Ye=zn(e=>e.replace(zi,(t,n)=>n?n.toUpperCase():"")),Ui=/\B([A-Z])/g,Ht=zn(e=>e.replace(Ui,"-$1").toLowerCase()),Un=zn(e=>e.charAt(0).toUpperCase()+e.slice(1)),us=zn(e=>e?`on${Un(e)}`:""),on=(e,t)=>!Object.is(e,t),fs=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},pr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let vo;const ji=()=>vo||(vo=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Me;class Ki{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Me&&(this.parent=Me,this.index=(Me.scopes||(Me.scopes=[])).push(this)-1)}run(t){if(this.active){const n=Me;try{return Me=this,t()}finally{Me=n}}}on(){Me=this}off(){Me=this.parent}stop(t){if(this.active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},vr=e=>(e.w&ht)>0,mr=e=>(e.n&ht)>0,Yi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(f==="length"||f>=s)&&l.push(c)});else switch(n!==void 0&&l.push(i.get(n)),t){case"add":K(e)?Us(n)&&l.push(i.get("length")):(l.push(i.get(Pt)),At(e)&&l.push(i.get(ws)));break;case"delete":K(e)||(l.push(i.get(Pt)),At(e)&&l.push(i.get(ws)));break;case"set":At(e)&&l.push(i.get(Pt));break}if(l.length===1)l[0]&&xs(l[0]);else{const c=[];for(const f of l)f&&c.push(...f);xs(js(c))}}function xs(e,t){const n=K(e)?e:[...e];for(const s of n)s.computed&&go(s);for(const s of n)s.computed||go(s)}function go(e,t){(e!==je||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Xi=Os("__proto__,__v_isRef,__isVue"),br=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zs)),Qi=Ws(),Zi=Ws(!1,!0),el=Ws(!0),yo=tl();function tl(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=ie(this);for(let r=0,i=this.length;r{e[t]=function(...n){Rt();const s=ie(this)[t].apply(this,n);return Dt(),s}}),e}function Ws(e=!1,t=!1){return function(s,o,r){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&r===(e?t?ml:kr:t?Pr:$r).get(s))return s;const i=K(s);if(!e&&i&&ne(yo,o))return Reflect.get(yo,o,r);const l=Reflect.get(s,o,r);return(zs(o)?br.has(o):Xi(o))||(e||Ne(s,"get",o),t)?l:Pe(l)?i&&Us(o)?l:l.value:ye(l)?e?Ys(l):Kn(l):l}}const nl=wr(),sl=wr(!0);function wr(e=!1){return function(n,s,o,r){let i=n[s];if(rn(i)&&Pe(i)&&!Pe(o))return!1;if(!e&&!rn(o)&&($s(o)||(o=ie(o),i=ie(i)),!K(n)&&Pe(i)&&!Pe(o)))return i.value=o,!0;const l=K(n)&&Us(s)?Number(s)e,jn=e=>Reflect.getPrototypeOf(e);function gn(e,t,n=!1,s=!1){e=e.__v_raw;const o=ie(e),r=ie(t);n||(t!==r&&Ne(o,"get",t),Ne(o,"get",r));const{has:i}=jn(o),l=s?qs:n?Xs:ln;if(i.call(o,t))return l(e.get(t));if(i.call(o,r))return l(e.get(r));e!==o&&e.get(t)}function yn(e,t=!1){const n=this.__v_raw,s=ie(n),o=ie(e);return t||(e!==o&&Ne(s,"has",e),Ne(s,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function bn(e,t=!1){return e=e.__v_raw,!t&&Ne(ie(e),"iterate",Pt),Reflect.get(e,"size",e)}function bo(e){e=ie(e);const t=ie(this);return jn(t).has.call(t,e)||(t.add(e),et(t,"add",e,e)),this}function wo(e,t){t=ie(t);const n=ie(this),{has:s,get:o}=jn(n);let r=s.call(n,e);r||(e=ie(e),r=s.call(n,e));const i=o.call(n,e);return n.set(e,t),r?on(t,i)&&et(n,"set",e,t):et(n,"add",e,t),this}function xo(e){const t=ie(this),{has:n,get:s}=jn(t);let o=n.call(t,e);o||(e=ie(e),o=n.call(t,e)),s&&s.call(t,e);const r=t.delete(e);return o&&et(t,"delete",e,void 0),r}function $o(){const e=ie(this),t=e.size!==0,n=e.clear();return t&&et(e,"clear",void 0,void 0),n}function wn(e,t){return function(s,o){const r=this,i=r.__v_raw,l=ie(i),c=t?qs:e?Xs:ln;return!e&&Ne(l,"iterate",Pt),i.forEach((f,_)=>s.call(o,c(f),c(_),r))}}function xn(e,t,n){return function(...s){const o=this.__v_raw,r=ie(o),i=At(r),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,f=o[e](...s),_=n?qs:t?Xs:ln;return!t&&Ne(r,"iterate",c?ws:Pt),{next(){const{value:g,done:w}=f.next();return w?{value:g,done:w}:{value:l?[_(g[0]),_(g[1])]:_(g),done:w}},[Symbol.iterator](){return this}}}}function ot(e){return function(...t){return e==="delete"?!1:this}}function al(){const e={get(r){return gn(this,r)},get size(){return bn(this)},has:yn,add:bo,set:wo,delete:xo,clear:$o,forEach:wn(!1,!1)},t={get(r){return gn(this,r,!1,!0)},get size(){return bn(this)},has:yn,add:bo,set:wo,delete:xo,clear:$o,forEach:wn(!1,!0)},n={get(r){return gn(this,r,!0)},get size(){return bn(this,!0)},has(r){return yn.call(this,r,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:wn(!0,!1)},s={get(r){return gn(this,r,!0,!0)},get size(){return bn(this,!0)},has(r){return yn.call(this,r,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:wn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{e[r]=xn(r,!1,!1),n[r]=xn(r,!0,!1),t[r]=xn(r,!1,!0),s[r]=xn(r,!0,!0)}),[e,n,t,s]}const[ul,fl,dl,_l]=al();function Gs(e,t){const n=t?e?_l:dl:e?fl:ul;return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ne(n,o)&&o in s?n:s,o,r)}const hl={get:Gs(!1,!1)},pl={get:Gs(!1,!0)},vl={get:Gs(!0,!1)},$r=new WeakMap,Pr=new WeakMap,kr=new WeakMap,ml=new WeakMap;function gl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yl(e){return e.__v_skip||!Object.isExtensible(e)?0:gl(Di(e))}function Kn(e){return rn(e)?e:Js(e,!1,xr,hl,$r)}function bl(e){return Js(e,!1,cl,pl,Pr)}function Ys(e){return Js(e,!0,ll,vl,kr)}function Js(e,t,n,s,o){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=o.get(e);if(r)return r;const i=yl(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return o.set(e,l),l}function It(e){return rn(e)?It(e.__v_raw):!!(e&&e.__v_isReactive)}function rn(e){return!!(e&&e.__v_isReadonly)}function $s(e){return!!(e&&e.__v_isShallow)}function Cr(e){return It(e)||rn(e)}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function Xt(e){return Vn(e,"__v_skip",!0),e}const ln=e=>ye(e)?Kn(e):e,Xs=e=>ye(e)?Ys(e):e;function Sr(e){ut&&je&&(e=ie(e),yr(e.dep||(e.dep=js())))}function Vr(e,t){e=ie(e),e.dep&&xs(e.dep)}function Pe(e){return!!(e&&e.__v_isRef===!0)}function be(e){return Er(e,!1)}function wl(e){return Er(e,!0)}function Er(e,t){return Pe(e)?e:new xl(e,t)}class xl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ie(t),this._value=n?t:ln(t)}get value(){return Sr(this),this._value}set value(t){t=this.__v_isShallow?t:ie(t),on(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:ln(t),Vr(this))}}function v(e){return Pe(e)?e.value:e}const $l={get:(e,t,n)=>v(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Pe(o)&&!Pe(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function Tr(e){return It(e)?e:new Proxy(e,$l)}class Pl{constructor(t,n,s,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Ks(t,()=>{this._dirty||(this._dirty=!0,Vr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=s}get value(){const t=ie(this);return Sr(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function kl(e,t,n=!1){let s,o;const r=X(e);return r?(s=e,o=We):(s=e.get,o=e.set),new Pl(s,o,r||!o,n)}function ft(e,t,n,s){let o;try{o=s?e(...s):e()}catch(r){Wn(r,t,n)}return o}function He(e,t,n,s){if(X(e)){const r=ft(e,t,n,s);return r&&dr(r)&&r.catch(i=>{Wn(i,t,n)}),r}const o=[];for(let r=0;r>>1;cn(Ae[s])Ze&&Ae.splice(t,1)}function Ir(e,t,n,s){K(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?s+1:s))&&n.push(e),Ar()}function El(e){Ir(e,Yt,Qt,Tt)}function Tl(e){Ir(e,ct,Zt,Lt)}function qn(e,t=null){if(Qt.length){for(ks=t,Yt=[...new Set(Qt)],Qt.length=0,Tt=0;Ttcn(n)-cn(s)),Lt=0;Lte.id==null?1/0:e.id;function Nr(e){Ps=!1,En=!0,qn(e),Ae.sort((n,s)=>cn(n)-cn(s));const t=We;try{for(Ze=0;ZeC.trim())),g&&(o=n.map(pr))}let l,c=s[l=us(t)]||s[l=us(Ye(t))];!c&&r&&(c=s[l=us(Ht(t))]),c&&He(c,e,6,o);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,He(f,e,6,o)}}function Br(e,t,n=!1){const s=t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let i={},l=!1;if(!X(e)){const c=f=>{const _=Br(f,t,!0);_&&(l=!0,$e(i,_))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!l?(s.set(e,null),null):(K(r)?r.forEach(c=>i[c]=null):$e(i,r),s.set(e,i),i)}function Gn(e,t){return!e||!dn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ne(e,t[0].toLowerCase()+t.slice(1))||ne(e,Ht(t))||ne(e,t))}let ke=null,Yn=null;function Ln(e){const t=ke;return ke=e,Yn=e&&e.type.__scopeId||null,t}function Re(e){Yn=e}function De(){Yn=null}function j(e,t=ke,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&No(-1);const r=Ln(t),i=e(...o);return Ln(r),s._d&&No(1),i};return s._n=!0,s._c=!0,s._d=!0,s}function ds(e){const{type:t,vnode:n,proxy:s,withProxy:o,props:r,propsOptions:[i],slots:l,attrs:c,emit:f,render:_,renderCache:g,data:w,setupState:C,ctx:N,inheritAttrs:z}=e;let D,y;const V=Ln(e);try{if(n.shapeFlag&4){const Y=o||s;D=Ue(_.call(Y,Y,g,r,C,w,N)),y=c}else{const Y=t;D=Ue(Y.length>1?Y(r,{attrs:c,slots:l,emit:f}):Y(r,null)),y=t.props?c:Ml(c)}}catch(Y){tn.length=0,Wn(Y,e,1),D=E(Ie)}let U=D;if(y&&z!==!1){const Y=Object.keys(y),{shapeFlag:te}=U;Y.length&&te&7&&(i&&Y.some(Rs)&&(y=Al(y,i)),U=pt(U,y))}return n.dirs&&(U=pt(U),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition&&(U.transition=n.transition),D=U,Ln(V),D}const Ml=e=>{let t;for(const n in e)(n==="class"||n==="style"||dn(n))&&((t||(t={}))[n]=e[n]);return t},Al=(e,t)=>{const n={};for(const s in e)(!Rs(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Il(e,t,n){const{props:s,children:o,component:r}=e,{props:i,children:l,patchFlag:c}=t,f=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Po(s,i,f):!!i;if(c&8){const _=t.dynamicProps;for(let g=0;g<_.length;g++){const w=_[g];if(i[w]!==s[w]&&!Gn(f,w))return!0}}}else return(o||l)&&(!l||!l.$stable)?!0:s===i?!1:s?i?Po(s,i,f):!0:!!i;return!1}function Po(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let o=0;oe.__isSuspense;function Fr(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Tl(e)}function Zs(e,t){if(xe){let n=xe.provides;const s=xe.parent&&xe.parent.provides;s===n&&(n=xe.provides=Object.create(s)),n[e]=t}}function dt(e,t,n=!1){const s=xe||ke;if(s){const o=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&X(t)?t.call(s.proxy):t}}function Jn(e,t){return Xn(e,null,t)}function Fl(e,t){return Xn(e,null,{flush:"post"})}const ko={};function _t(e,t,n){return Xn(e,t,n)}function Xn(e,t,{immediate:n,deep:s,flush:o,onTrack:r,onTrigger:i}=_e){const l=xe;let c,f=!1,_=!1;if(Pe(e)?(c=()=>e.value,f=$s(e)):It(e)?(c=()=>e,s=!0):K(e)?(_=!0,f=e.some(y=>It(y)||$s(y)),c=()=>e.map(y=>{if(Pe(y))return y.value;if(It(y))return $t(y);if(X(y))return ft(y,l,2)})):X(e)?t?c=()=>ft(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return g&&g(),He(e,l,3,[w])}:c=We,t&&s){const y=c;c=()=>$t(y())}let g,w=y=>{g=D.onStop=()=>{ft(y,l,4)}};if(fn)return w=We,t?n&&He(t,l,3,[c(),_?[]:void 0,w]):c(),We;let C=_?[]:ko;const N=()=>{if(!!D.active)if(t){const y=D.run();(s||f||(_?y.some((V,U)=>on(V,C[U])):on(y,C)))&&(g&&g(),He(t,l,3,[y,C===ko?void 0:C,w]),C=y)}else D.run()};N.allowRecurse=!!t;let z;o==="sync"?z=N:o==="post"?z=()=>Ee(N,l&&l.suspense):z=()=>El(N);const D=new Ks(c,z);return t?n?N():C=D.run():o==="post"?Ee(D.run.bind(D),l&&l.suspense):D.run(),()=>{D.stop(),l&&l.scope&&Ds(l.scope.effects,D)}}function Ol(e,t,n){const s=this.proxy,o=we(e)?e.includes(".")?Or(s,e):()=>s[e]:e.bind(s,s);let r;X(t)?r=t:(r=t.handler,n=t);const i=xe;Ft(this);const l=Xn(o,r.bind(s),n);return i?Ft(i):kt(),l}function Or(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o{$t(n,t)});else if(hr(e))for(const n in e)$t(e[n],t);return e}function Hl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return nt(()=>{e.isMounted=!0}),Kr(()=>{e.isUnmounting=!0}),e}const Fe=[Function,Array],Rl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Fe,onEnter:Fe,onAfterEnter:Fe,onEnterCancelled:Fe,onBeforeLeave:Fe,onLeave:Fe,onAfterLeave:Fe,onLeaveCancelled:Fe,onBeforeAppear:Fe,onAppear:Fe,onAfterAppear:Fe,onAppearCancelled:Fe},setup(e,{slots:t}){const n=ii(),s=Hl();let o;return()=>{const r=t.default&&Dr(t.default(),!0);if(!r||!r.length)return;let i=r[0];if(r.length>1){for(const z of r)if(z.type!==Ie){i=z;break}}const l=ie(e),{mode:c}=l;if(s.isLeaving)return _s(i);const f=Co(i);if(!f)return _s(i);const _=Cs(f,l,s,n);Ss(f,_);const g=n.subTree,w=g&&Co(g);let C=!1;const{getTransitionKey:N}=f.type;if(N){const z=N();o===void 0?o=z:z!==o&&(o=z,C=!0)}if(w&&w.type!==Ie&&(!bt(f,w)||C)){const z=Cs(w,l,s,n);if(Ss(w,z),c==="out-in")return s.isLeaving=!0,z.afterLeave=()=>{s.isLeaving=!1,n.update()},_s(i);c==="in-out"&&f.type!==Ie&&(z.delayLeave=(D,y,V)=>{const U=Rr(s,w);U[String(w.key)]=w,D._leaveCb=()=>{y(),D._leaveCb=void 0,delete _.delayedLeave},_.delayedLeave=V})}return i}}},Hr=Rl;function Rr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Cs(e,t,n,s){const{appear:o,mode:r,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:f,onEnterCancelled:_,onBeforeLeave:g,onLeave:w,onAfterLeave:C,onLeaveCancelled:N,onBeforeAppear:z,onAppear:D,onAfterAppear:y,onAppearCancelled:V}=t,U=String(e.key),Y=Rr(n,e),te=(M,G)=>{M&&He(M,s,9,G)},ae=(M,G)=>{const Z=G[1];te(M,G),K(M)?M.every(oe=>oe.length<=1)&&Z():M.length<=1&&Z()},le={mode:r,persisted:i,beforeEnter(M){let G=l;if(!n.isMounted)if(o)G=z||l;else return;M._leaveCb&&M._leaveCb(!0);const Z=Y[U];Z&&bt(e,Z)&&Z.el._leaveCb&&Z.el._leaveCb(),te(G,[M])},enter(M){let G=c,Z=f,oe=_;if(!n.isMounted)if(o)G=D||c,Z=y||f,oe=V||_;else return;let A=!1;const ee=M._enterCb=F=>{A||(A=!0,F?te(oe,[M]):te(Z,[M]),le.delayedLeave&&le.delayedLeave(),M._enterCb=void 0)};G?ae(G,[M,ee]):ee()},leave(M,G){const Z=String(e.key);if(M._enterCb&&M._enterCb(!0),n.isUnmounting)return G();te(g,[M]);let oe=!1;const A=M._leaveCb=ee=>{oe||(oe=!0,G(),ee?te(N,[M]):te(C,[M]),M._leaveCb=void 0,Y[Z]===e&&delete Y[Z])};Y[Z]=e,w?ae(w,[M,A]):A()},clone(M){return Cs(M,t,n,s)}};return le}function _s(e){if(Qn(e))return e=pt(e),e.children=null,e}function Co(e){return Qn(e)?e.children?e.children[0]:void 0:e}function Ss(e,t){e.shapeFlag&6&&e.component?Ss(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Dr(e,t=!1,n){let s=[],o=0;for(let r=0;r1)for(let r=0;r!!e.type.__asyncLoader,Qn=e=>e.type.__isKeepAlive;function Dl(e,t){zr(e,"a",t)}function zl(e,t){zr(e,"da",t)}function zr(e,t,n=xe){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Zn(t,s,n),n){let o=n.parent;for(;o&&o.parent;)Qn(o.parent.vnode)&&Ul(s,t,n,o),o=o.parent}}function Ul(e,t,n,s){const o=Zn(t,e,s,!0);Ct(()=>{Ds(s[t],o)},n)}function Zn(e,t,n=xe,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Rt(),Ft(n);const l=He(t,n,e,i);return kt(),Dt(),l});return s?o.unshift(r):o.push(r),r}}const tt=e=>(t,n=xe)=>(!fn||e==="sp")&&Zn(e,t,n),Ur=tt("bm"),nt=tt("m"),jl=tt("bu"),jr=tt("u"),Kr=tt("bum"),Ct=tt("um"),Kl=tt("sp"),Wl=tt("rtg"),ql=tt("rtc");function Gl(e,t=xe){Zn("ec",e,t)}function So(e,t){const n=ke;if(n===null)return e;const s=ss(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let r=0;rt(i,l,void 0,r&&r[l]));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,c=i.length;lNn(t)?!(t.type===Ie||t.type===Q&&!Gr(t.children)):!0)?e:null}const Vs=e=>e?li(e)?ss(e)||e.proxy:Vs(e.parent):null,Mn=$e(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Vs(e.parent),$root:e=>Vs(e.root),$emit:e=>e.emit,$options:e=>Jr(e),$forceUpdate:e=>e.f||(e.f=()=>Mr(e.update)),$nextTick:e=>e.n||(e.n=_n.bind(e.proxy)),$watch:e=>Ol.bind(e)}),Yl={get({_:e},t){const{ctx:n,setupState:s,data:o,props:r,accessCache:i,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const C=i[t];if(C!==void 0)switch(C){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(s!==_e&&ne(s,t))return i[t]=1,s[t];if(o!==_e&&ne(o,t))return i[t]=2,o[t];if((f=e.propsOptions[0])&&ne(f,t))return i[t]=3,r[t];if(n!==_e&&ne(n,t))return i[t]=4,n[t];Es&&(i[t]=0)}}const _=Mn[t];let g,w;if(_)return t==="$attrs"&&Ne(e,"get",t),_(e);if((g=l.__cssModules)&&(g=g[t]))return g;if(n!==_e&&ne(n,t))return i[t]=4,n[t];if(w=c.config.globalProperties,ne(w,t))return w[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return o!==_e&&ne(o,t)?(o[t]=n,!0):s!==_e&&ne(s,t)?(s[t]=n,!0):ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:r}},i){let l;return!!n[i]||e!==_e&&ne(e,i)||t!==_e&&ne(t,i)||(l=r[0])&&ne(l,i)||ne(s,i)||ne(Mn,i)||ne(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Es=!0;function Jl(e){const t=Jr(e),n=e.proxy,s=e.ctx;Es=!1,t.beforeCreate&&Eo(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:i,watch:l,provide:c,inject:f,created:_,beforeMount:g,mounted:w,beforeUpdate:C,updated:N,activated:z,deactivated:D,beforeDestroy:y,beforeUnmount:V,destroyed:U,unmounted:Y,render:te,renderTracked:ae,renderTriggered:le,errorCaptured:M,serverPrefetch:G,expose:Z,inheritAttrs:oe,components:A,directives:ee,filters:F}=t;if(f&&Xl(f,s,null,e.appContext.config.unwrapInjectedRef),i)for(const ge in i){const he=i[ge];X(he)&&(s[ge]=he.bind(n))}if(o){const ge=o.call(n,n);ye(ge)&&(e.data=Kn(ge))}if(Es=!0,r)for(const ge in r){const he=r[ge],Xe=X(he)?he.bind(n,n):X(he.get)?he.get.bind(n,n):We,ls=!X(he)&&X(he.set)?he.set.bind(n):We,jt=me({get:Xe,set:ls});Object.defineProperty(s,ge,{enumerable:!0,configurable:!0,get:()=>jt.value,set:St=>jt.value=St})}if(l)for(const ge in l)Yr(l[ge],s,n,ge);if(c){const ge=X(c)?c.call(n):c;Reflect.ownKeys(ge).forEach(he=>{Zs(he,ge[he])})}_&&Eo(_,e,"c");function ue(ge,he){K(he)?he.forEach(Xe=>ge(Xe.bind(n))):he&&ge(he.bind(n))}if(ue(Ur,g),ue(nt,w),ue(jl,C),ue(jr,N),ue(Dl,z),ue(zl,D),ue(Gl,M),ue(ql,ae),ue(Wl,le),ue(Kr,V),ue(Ct,Y),ue(Kl,G),K(Z))if(Z.length){const ge=e.exposed||(e.exposed={});Z.forEach(he=>{Object.defineProperty(ge,he,{get:()=>n[he],set:Xe=>n[he]=Xe})})}else e.exposed||(e.exposed={});te&&e.render===We&&(e.render=te),oe!=null&&(e.inheritAttrs=oe),A&&(e.components=A),ee&&(e.directives=ee)}function Xl(e,t,n=We,s=!1){K(e)&&(e=Ts(e));for(const o in e){const r=e[o];let i;ye(r)?"default"in r?i=dt(r.from||o,r.default,!0):i=dt(r.from||o):i=dt(r),Pe(i)&&s?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Eo(e,t,n){He(K(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yr(e,t,n,s){const o=s.includes(".")?Or(n,s):()=>n[s];if(we(e)){const r=t[e];X(r)&&_t(o,r)}else if(X(e))_t(o,e.bind(n));else if(ye(e))if(K(e))e.forEach(r=>Yr(r,t,n,s));else{const r=X(e.handler)?e.handler.bind(n):t[e.handler];X(r)&&_t(o,r,e)}}function Jr(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,l=r.get(t);let c;return l?c=l:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(f=>An(c,f,i,!0)),An(c,t,i)),r.set(t,c),c}function An(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&An(e,r,n,!0),o&&o.forEach(i=>An(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=Ql[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ql={data:To,props:yt,emits:yt,methods:yt,computed:yt,beforeCreate:Se,created:Se,beforeMount:Se,mounted:Se,beforeUpdate:Se,updated:Se,beforeDestroy:Se,beforeUnmount:Se,destroyed:Se,unmounted:Se,activated:Se,deactivated:Se,errorCaptured:Se,serverPrefetch:Se,components:yt,directives:yt,watch:ec,provide:To,inject:Zl};function To(e,t){return t?e?function(){return $e(X(e)?e.call(this,this):e,X(t)?t.call(this,this):t)}:t:e}function Zl(e,t){return yt(Ts(e),Ts(t))}function Ts(e){if(K(e)){const t={};for(let n=0;n0)&&!(i&16)){if(i&8){const _=e.vnode.dynamicProps;for(let g=0;g<_.length;g++){let w=_[g];if(Gn(e.emitsOptions,w))continue;const C=t[w];if(c)if(ne(r,w))C!==r[w]&&(r[w]=C,f=!0);else{const N=Ye(w);o[N]=Ls(c,l,N,C,e,!1)}else C!==r[w]&&(r[w]=C,f=!0)}}}else{Xr(e,t,o,r)&&(f=!0);let _;for(const g in l)(!t||!ne(t,g)&&((_=Ht(g))===g||!ne(t,_)))&&(c?n&&(n[g]!==void 0||n[_]!==void 0)&&(o[g]=Ls(c,l,g,void 0,e,!0)):delete o[g]);if(r!==l)for(const g in r)(!t||!ne(t,g)&&!0)&&(delete r[g],f=!0)}f&&et(e,"set","$attrs")}function Xr(e,t,n,s){const[o,r]=e.propsOptions;let i=!1,l;if(t)for(let c in t){if(Jt(c))continue;const f=t[c];let _;o&&ne(o,_=Ye(c))?!r||!r.includes(_)?n[_]=f:(l||(l={}))[_]=f:Gn(e.emitsOptions,c)||(!(c in s)||f!==s[c])&&(s[c]=f,i=!0)}if(r){const c=ie(n),f=l||_e;for(let _=0;_{c=!0;const[w,C]=Qr(g,t,!0);$e(i,w),C&&l.push(...C)};!n&&t.mixins.length&&t.mixins.forEach(_),e.extends&&_(e.extends),e.mixins&&e.mixins.forEach(_)}if(!r&&!c)return s.set(e,Mt),Mt;if(K(r))for(let _=0;_-1,C[1]=z<0||N-1||ne(C,"default"))&&l.push(g)}}}const f=[i,l];return s.set(e,f),f}function Lo(e){return e[0]!=="$"}function Mo(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Ao(e,t){return Mo(e)===Mo(t)}function Io(e,t){return K(t)?t.findIndex(n=>Ao(n,e)):X(t)&&Ao(t,e)?0:-1}const Zr=e=>e[0]==="_"||e==="$stable",to=e=>K(e)?e.map(Ue):[Ue(e)],sc=(e,t,n)=>{if(t._n)return t;const s=j((...o)=>to(t(...o)),n);return s._c=!1,s},ei=(e,t,n)=>{const s=e._ctx;for(const o in e){if(Zr(o))continue;const r=e[o];if(X(r))t[o]=sc(o,r,s);else if(r!=null){const i=to(r);t[o]=()=>i}}},ti=(e,t)=>{const n=to(t);e.slots.default=()=>n},oc=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ie(t),Vn(t,"_",n)):ei(t,e.slots={})}else e.slots={},t&&ti(e,t);Vn(e.slots,ns,1)},rc=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,i=_e;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:($e(o,t),!n&&l===1&&delete o._):(r=!t.$stable,ei(t,o)),i=t}else t&&(ti(e,t),i={default:1});if(r)for(const l in o)!Zr(l)&&!(l in i)&&delete o[l]};function ni(){return{app:null,config:{isNativeTag:Oi,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ic=0;function lc(e,t){return function(s,o=null){X(s)||(s=Object.assign({},s)),o!=null&&!ye(o)&&(o=null);const r=ni(),i=new Set;let l=!1;const c=r.app={_uid:ic++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:Cc,get config(){return r.config},set config(f){},use(f,..._){return i.has(f)||(f&&X(f.install)?(i.add(f),f.install(c,..._)):X(f)&&(i.add(f),f(c,..._))),c},mixin(f){return r.mixins.includes(f)||r.mixins.push(f),c},component(f,_){return _?(r.components[f]=_,c):r.components[f]},directive(f,_){return _?(r.directives[f]=_,c):r.directives[f]},mount(f,_,g){if(!l){const w=E(s,o);return w.appContext=r,_&&t?t(w,f):e(w,f,g),l=!0,c._container=f,f.__vue_app__=c,ss(w.component)||w.component.proxy}},unmount(){l&&(e(null,c._container),delete c._container.__vue_app__)},provide(f,_){return r.provides[f]=_,c}};return c}}function In(e,t,n,s,o=!1){if(K(e)){e.forEach((w,C)=>In(w,t&&(K(t)?t[C]:t),n,s,o));return}if(Nt(s)&&!o)return;const r=s.shapeFlag&4?ss(s.component)||s.component.proxy:s.el,i=o?null:r,{i:l,r:c}=e,f=t&&t.r,_=l.refs===_e?l.refs={}:l.refs,g=l.setupState;if(f!=null&&f!==c&&(we(f)?(_[f]=null,ne(g,f)&&(g[f]=null)):Pe(f)&&(f.value=null)),X(c))ft(c,l,12,[i,_]);else{const w=we(c),C=Pe(c);if(w||C){const N=()=>{if(e.f){const z=w?_[c]:c.value;o?K(z)&&Ds(z,r):K(z)?z.includes(r)||z.push(r):w?(_[c]=[r],ne(g,c)&&(g[c]=_[c])):(c.value=[r],e.k&&(_[e.k]=c.value))}else w?(_[c]=i,ne(g,c)&&(g[c]=i)):C&&(c.value=i,e.k&&(_[e.k]=i))};i?(N.id=-1,Ee(N,n)):N()}}}let rt=!1;const $n=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Pn=e=>e.nodeType===8;function cc(e){const{mt:t,p:n,o:{patchProp:s,createText:o,nextSibling:r,parentNode:i,remove:l,insert:c,createComment:f}}=e,_=(y,V)=>{if(!V.hasChildNodes()){n(null,y,V),Tn(),V._vnode=y;return}rt=!1,g(V.firstChild,y,null,null,null),Tn(),V._vnode=y,rt&&console.error("Hydration completed but contains mismatches.")},g=(y,V,U,Y,te,ae=!1)=>{const le=Pn(y)&&y.data==="[",M=()=>z(y,V,U,Y,te,le),{type:G,ref:Z,shapeFlag:oe,patchFlag:A}=V,ee=y.nodeType;V.el=y,A===-2&&(ae=!1,V.dynamicChildren=null);let F=null;switch(G){case an:ee!==3?V.children===""?(c(V.el=o(""),i(y),y),F=y):F=M():(y.data!==V.children&&(rt=!0,y.data=V.children),F=r(y));break;case Ie:ee!==8||le?F=M():F=r(y);break;case en:if(ee!==1&&ee!==3)F=M();else{F=y;const Ve=!V.children.length;for(let ue=0;ue{ae=ae||!!V.dynamicChildren;const{type:le,props:M,patchFlag:G,shapeFlag:Z,dirs:oe}=V,A=le==="input"&&oe||le==="option";if(A||G!==-1){if(oe&&Ge(V,null,U,"created"),M)if(A||!ae||G&48)for(const F in M)(A&&F.endsWith("value")||dn(F)&&!Jt(F))&&s(y,F,null,M[F],!1,void 0,U);else M.onClick&&s(y,"onClick",null,M.onClick,!1,void 0,U);let ee;if((ee=M&&M.onVnodeBeforeMount)&&Oe(ee,U,V),oe&&Ge(V,null,U,"beforeMount"),((ee=M&&M.onVnodeMounted)||oe)&&Fr(()=>{ee&&Oe(ee,U,V),oe&&Ge(V,null,U,"mounted")},Y),Z&16&&!(M&&(M.innerHTML||M.textContent))){let F=C(y.firstChild,V,y,U,Y,te,ae);for(;F;){rt=!0;const Ve=F;F=F.nextSibling,l(Ve)}}else Z&8&&y.textContent!==V.children&&(rt=!0,y.textContent=V.children)}return y.nextSibling},C=(y,V,U,Y,te,ae,le)=>{le=le||!!V.dynamicChildren;const M=V.children,G=M.length;for(let Z=0;Z{const{slotScopeIds:le}=V;le&&(te=te?te.concat(le):le);const M=i(y),G=C(r(y),V,M,U,Y,te,ae);return G&&Pn(G)&&G.data==="]"?r(V.anchor=G):(rt=!0,c(V.anchor=f("]"),M,G),G)},z=(y,V,U,Y,te,ae)=>{if(rt=!0,V.el=null,ae){const G=D(y);for(;;){const Z=r(y);if(Z&&Z!==G)l(Z);else break}}const le=r(y),M=i(y);return l(y),n(null,V,M,le,U,Y,$n(M),te),le},D=y=>{let V=0;for(;y;)if(y=r(y),y&&Pn(y)&&(y.data==="["&&V++,y.data==="]")){if(V===0)return r(y);V--}return y};return[_,g]}const Ee=Fr;function ac(e){return uc(e,cc)}function uc(e,t){const n=ji();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:i,createText:l,createComment:c,setText:f,setElementText:_,parentNode:g,nextSibling:w,setScopeId:C=We,cloneNode:N,insertStaticContent:z}=e,D=(a,u,h,x=null,b=null,k=null,T=!1,P=null,S=!!u.dynamicChildren)=>{if(a===u)return;a&&!bt(a,u)&&(x=mn(a),st(a,b,k,!0),a=null),u.patchFlag===-2&&(S=!1,u.dynamicChildren=null);const{type:$,ref:O,shapeFlag:I}=u;switch($){case an:y(a,u,h,x);break;case Ie:V(a,u,h,x);break;case en:a==null&&U(u,h,x,T);break;case Q:ee(a,u,h,x,b,k,T,P,S);break;default:I&1?ae(a,u,h,x,b,k,T,P,S):I&6?F(a,u,h,x,b,k,T,P,S):(I&64||I&128)&&$.process(a,u,h,x,b,k,T,P,S,Vt)}O!=null&&b&&In(O,a&&a.ref,k,u||a,!u)},y=(a,u,h,x)=>{if(a==null)s(u.el=l(u.children),h,x);else{const b=u.el=a.el;u.children!==a.children&&f(b,u.children)}},V=(a,u,h,x)=>{a==null?s(u.el=c(u.children||""),h,x):u.el=a.el},U=(a,u,h,x)=>{[a.el,a.anchor]=z(a.children,u,h,x,a.el,a.anchor)},Y=({el:a,anchor:u},h,x)=>{let b;for(;a&&a!==u;)b=w(a),s(a,h,x),a=b;s(u,h,x)},te=({el:a,anchor:u})=>{let h;for(;a&&a!==u;)h=w(a),o(a),a=h;o(u)},ae=(a,u,h,x,b,k,T,P,S)=>{T=T||u.type==="svg",a==null?le(u,h,x,b,k,T,P,S):Z(a,u,b,k,T,P,S)},le=(a,u,h,x,b,k,T,P)=>{let S,$;const{type:O,props:I,shapeFlag:H,transition:W,patchFlag:re,dirs:fe}=a;if(a.el&&N!==void 0&&re===-1)S=a.el=N(a.el);else{if(S=a.el=i(a.type,k,I&&I.is,I),H&8?_(S,a.children):H&16&&G(a.children,S,null,x,b,k&&O!=="foreignObject",T,P),fe&&Ge(a,null,x,"created"),I){for(const pe in I)pe!=="value"&&!Jt(pe)&&r(S,pe,null,I[pe],k,a.children,x,b,Qe);"value"in I&&r(S,"value",null,I.value),($=I.onVnodeBeforeMount)&&Oe($,x,a)}M(S,a,a.scopeId,T,x)}fe&&Ge(a,null,x,"beforeMount");const de=(!b||b&&!b.pendingBranch)&&W&&!W.persisted;de&&W.beforeEnter(S),s(S,u,h),(($=I&&I.onVnodeMounted)||de||fe)&&Ee(()=>{$&&Oe($,x,a),de&&W.enter(S),fe&&Ge(a,null,x,"mounted")},b)},M=(a,u,h,x,b)=>{if(h&&C(a,h),x)for(let k=0;k{for(let $=S;${const P=u.el=a.el;let{patchFlag:S,dynamicChildren:$,dirs:O}=u;S|=a.patchFlag&16;const I=a.props||_e,H=u.props||_e;let W;h&&vt(h,!1),(W=H.onVnodeBeforeUpdate)&&Oe(W,h,u,a),O&&Ge(u,a,h,"beforeUpdate"),h&&vt(h,!0);const re=b&&u.type!=="foreignObject";if($?oe(a.dynamicChildren,$,P,h,x,re,k):T||Xe(a,u,P,null,h,x,re,k,!1),S>0){if(S&16)A(P,u,I,H,h,x,b);else if(S&2&&I.class!==H.class&&r(P,"class",null,H.class,b),S&4&&r(P,"style",I.style,H.style,b),S&8){const fe=u.dynamicProps;for(let de=0;de{W&&Oe(W,h,u,a),O&&Ge(u,a,h,"updated")},x)},oe=(a,u,h,x,b,k,T)=>{for(let P=0;P{if(h!==x){for(const P in x){if(Jt(P))continue;const S=x[P],$=h[P];S!==$&&P!=="value"&&r(a,P,$,S,T,u.children,b,k,Qe)}if(h!==_e)for(const P in h)!Jt(P)&&!(P in x)&&r(a,P,h[P],null,T,u.children,b,k,Qe);"value"in x&&r(a,"value",h.value,x.value)}},ee=(a,u,h,x,b,k,T,P,S)=>{const $=u.el=a?a.el:l(""),O=u.anchor=a?a.anchor:l("");let{patchFlag:I,dynamicChildren:H,slotScopeIds:W}=u;W&&(P=P?P.concat(W):W),a==null?(s($,h,x),s(O,h,x),G(u.children,h,O,b,k,T,P,S)):I>0&&I&64&&H&&a.dynamicChildren?(oe(a.dynamicChildren,H,h,b,k,T,P),(u.key!=null||b&&u===b.subTree)&&si(a,u,!0)):Xe(a,u,h,O,b,k,T,P,S)},F=(a,u,h,x,b,k,T,P,S)=>{u.slotScopeIds=P,a==null?u.shapeFlag&512?b.ctx.activate(u,h,x,T,S):Ve(u,h,x,b,k,T,S):ue(a,u,S)},Ve=(a,u,h,x,b,k,T)=>{const P=a.component=yc(a,x,b);if(Qn(a)&&(P.ctx.renderer=Vt),bc(P),P.asyncDep){if(b&&b.registerDep(P,ge),!a.el){const S=P.subTree=E(Ie);V(null,S,u,h)}return}ge(P,a,u,h,b,k,T)},ue=(a,u,h)=>{const x=u.component=a.component;if(Il(a,u,h))if(x.asyncDep&&!x.asyncResolved){he(x,u,h);return}else x.next=u,Vl(x.update),x.update();else u.el=a.el,x.vnode=u},ge=(a,u,h,x,b,k,T)=>{const P=()=>{if(a.isMounted){let{next:O,bu:I,u:H,parent:W,vnode:re}=a,fe=O,de;vt(a,!1),O?(O.el=re.el,he(a,O,T)):O=re,I&&fs(I),(de=O.props&&O.props.onVnodeBeforeUpdate)&&Oe(de,W,O,re),vt(a,!0);const pe=ds(a),ze=a.subTree;a.subTree=pe,D(ze,pe,g(ze.el),mn(ze),a,b,k),O.el=pe.el,fe===null&&Nl(a,pe.el),H&&Ee(H,b),(de=O.props&&O.props.onVnodeUpdated)&&Ee(()=>Oe(de,W,O,re),b)}else{let O;const{el:I,props:H}=u,{bm:W,m:re,parent:fe}=a,de=Nt(u);if(vt(a,!1),W&&fs(W),!de&&(O=H&&H.onVnodeBeforeMount)&&Oe(O,fe,u),vt(a,!0),I&&as){const pe=()=>{a.subTree=ds(a),as(I,a.subTree,a,b,null)};de?u.type.__asyncLoader().then(()=>!a.isUnmounted&&pe()):pe()}else{const pe=a.subTree=ds(a);D(null,pe,h,x,a,b,k),u.el=pe.el}if(re&&Ee(re,b),!de&&(O=H&&H.onVnodeMounted)){const pe=u;Ee(()=>Oe(O,fe,pe),b)}(u.shapeFlag&256||fe&&Nt(fe.vnode)&&fe.vnode.shapeFlag&256)&&a.a&&Ee(a.a,b),a.isMounted=!0,u=h=x=null}},S=a.effect=new Ks(P,()=>Mr($),a.scope),$=a.update=()=>S.run();$.id=a.uid,vt(a,!0),$()},he=(a,u,h)=>{u.component=a;const x=a.vnode.props;a.vnode=u,a.next=null,nc(a,u.props,x,h),rc(a,u.children,h),Rt(),qn(void 0,a.update),Dt()},Xe=(a,u,h,x,b,k,T,P,S=!1)=>{const $=a&&a.children,O=a?a.shapeFlag:0,I=u.children,{patchFlag:H,shapeFlag:W}=u;if(H>0){if(H&128){jt($,I,h,x,b,k,T,P,S);return}else if(H&256){ls($,I,h,x,b,k,T,P,S);return}}W&8?(O&16&&Qe($,b,k),I!==$&&_(h,I)):O&16?W&16?jt($,I,h,x,b,k,T,P,S):Qe($,b,k,!0):(O&8&&_(h,""),W&16&&G(I,h,x,b,k,T,P,S))},ls=(a,u,h,x,b,k,T,P,S)=>{a=a||Mt,u=u||Mt;const $=a.length,O=u.length,I=Math.min($,O);let H;for(H=0;HO?Qe(a,b,k,!0,!1,I):G(u,h,x,b,k,T,P,S,I)},jt=(a,u,h,x,b,k,T,P,S)=>{let $=0;const O=u.length;let I=a.length-1,H=O-1;for(;$<=I&&$<=H;){const W=a[$],re=u[$]=S?at(u[$]):Ue(u[$]);if(bt(W,re))D(W,re,h,null,b,k,T,P,S);else break;$++}for(;$<=I&&$<=H;){const W=a[I],re=u[H]=S?at(u[H]):Ue(u[H]);if(bt(W,re))D(W,re,h,null,b,k,T,P,S);else break;I--,H--}if($>I){if($<=H){const W=H+1,re=WH)for(;$<=I;)st(a[$],b,k,!0),$++;else{const W=$,re=$,fe=new Map;for($=re;$<=H;$++){const Le=u[$]=S?at(u[$]):Ue(u[$]);Le.key!=null&&fe.set(Le.key,$)}let de,pe=0;const ze=H-re+1;let Et=!1,fo=0;const Kt=new Array(ze);for($=0;$=ze){st(Le,b,k,!0);continue}let qe;if(Le.key!=null)qe=fe.get(Le.key);else for(de=re;de<=H;de++)if(Kt[de-re]===0&&bt(Le,u[de])){qe=de;break}qe===void 0?st(Le,b,k,!0):(Kt[qe-re]=$+1,qe>=fo?fo=qe:Et=!0,D(Le,u[qe],h,null,b,k,T,P,S),pe++)}const _o=Et?fc(Kt):Mt;for(de=_o.length-1,$=ze-1;$>=0;$--){const Le=re+$,qe=u[Le],ho=Le+1{const{el:k,type:T,transition:P,children:S,shapeFlag:$}=a;if($&6){St(a.component.subTree,u,h,x);return}if($&128){a.suspense.move(u,h,x);return}if($&64){T.move(a,u,h,Vt);return}if(T===Q){s(k,u,h);for(let I=0;IP.enter(k),b);else{const{leave:I,delayLeave:H,afterLeave:W}=P,re=()=>s(k,u,h),fe=()=>{I(k,()=>{re(),W&&W()})};H?H(k,re,fe):fe()}else s(k,u,h)},st=(a,u,h,x=!1,b=!1)=>{const{type:k,props:T,ref:P,children:S,dynamicChildren:$,shapeFlag:O,patchFlag:I,dirs:H}=a;if(P!=null&&In(P,null,h,a,!0),O&256){u.ctx.deactivate(a);return}const W=O&1&&H,re=!Nt(a);let fe;if(re&&(fe=T&&T.onVnodeBeforeUnmount)&&Oe(fe,u,a),O&6)Ei(a.component,h,x);else{if(O&128){a.suspense.unmount(h,x);return}W&&Ge(a,null,u,"beforeUnmount"),O&64?a.type.remove(a,u,h,b,Vt,x):$&&(k!==Q||I>0&&I&64)?Qe($,u,h,!1,!0):(k===Q&&I&384||!b&&O&16)&&Qe(S,u,h),x&&ao(a)}(re&&(fe=T&&T.onVnodeUnmounted)||W)&&Ee(()=>{fe&&Oe(fe,u,a),W&&Ge(a,null,u,"unmounted")},h)},ao=a=>{const{type:u,el:h,anchor:x,transition:b}=a;if(u===Q){Vi(h,x);return}if(u===en){te(a);return}const k=()=>{o(h),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(a.shapeFlag&1&&b&&!b.persisted){const{leave:T,delayLeave:P}=b,S=()=>T(h,k);P?P(a.el,k,S):S()}else k()},Vi=(a,u)=>{let h;for(;a!==u;)h=w(a),o(a),a=h;o(u)},Ei=(a,u,h)=>{const{bum:x,scope:b,update:k,subTree:T,um:P}=a;x&&fs(x),b.stop(),k&&(k.active=!1,st(T,a,u,h)),P&&Ee(P,u),Ee(()=>{a.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Qe=(a,u,h,x=!1,b=!1,k=0)=>{for(let T=k;Ta.shapeFlag&6?mn(a.component.subTree):a.shapeFlag&128?a.suspense.next():w(a.anchor||a.el),uo=(a,u,h)=>{a==null?u._vnode&&st(u._vnode,null,null,!0):D(u._vnode||null,a,u,null,null,null,h),Tn(),u._vnode=a},Vt={p:D,um:st,m:St,r:ao,mt:Ve,mc:G,pc:Xe,pbc:oe,n:mn,o:e};let cs,as;return t&&([cs,as]=t(Vt)),{render:uo,hydrate:cs,createApp:lc(uo,cs)}}function vt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function si(e,t,n=!1){const s=e.children,o=t.children;if(K(s)&&K(o))for(let r=0;r>1,e[n[l]]0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}const dc=e=>e.__isTeleport,Q=Symbol(void 0),an=Symbol(void 0),Ie=Symbol(void 0),en=Symbol(void 0),tn=[];let Ke=null;function d(e=!1){tn.push(Ke=e?null:[])}function _c(){tn.pop(),Ke=tn[tn.length-1]||null}let un=1;function No(e){un+=e}function oi(e){return e.dynamicChildren=un>0?Ke||Mt:null,_c(),un>0&&Ke&&Ke.push(e),e}function m(e,t,n,s,o,r){return oi(p(e,t,n,s,o,r,!0))}function J(e,t,n,s,o){return oi(E(e,t,n,s,o,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function bt(e,t){return e.type===t.type&&e.key===t.key}const ns="__vInternal",ri=({key:e})=>e!=null?e:null,Cn=({ref:e,ref_key:t,ref_for:n})=>e!=null?we(e)||Pe(e)||X(e)?{i:ke,r:e,k:t,f:!!n}:e:null;function p(e,t=null,n=null,s=0,o=null,r=e===Q?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ri(t),ref:t&&Cn(t),scopeId:Yn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null};return l?(no(c,n),r&128&&e.normalize(c)):n&&(c.shapeFlag|=we(n)?8:16),un>0&&!i&&Ke&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&Ke.push(c),c}const E=hc;function hc(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===Wr)&&(e=Ie),Nn(e)){const l=pt(e,t,!0);return n&&no(l,n),un>0&&!r&&Ke&&(l.shapeFlag&6?Ke[Ke.indexOf(e)]=l:Ke.push(l)),l.patchFlag|=-2,l}if(kc(e)&&(e=e.__vccOpts),t){t=pc(t);let{class:l,style:c}=t;l&&!we(l)&&(t.class=ve(l)),ye(c)&&(Cr(c)&&!K(c)&&(c=$e({},c)),t.style=Hs(c))}const i=we(e)?1:Bl(e)?128:dc(e)?64:ye(e)?4:X(e)?2:0;return p(e,t,n,s,o,i,r,!0)}function pc(e){return e?Cr(e)||ns in e?$e({},e):e:null}function pt(e,t,n=!1){const{props:s,ref:o,patchFlag:r,children:i}=e,l=t?Sn(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ri(l),ref:t&&t.ref?n&&o?K(o)?o.concat(Cn(t)):[o,Cn(t)]:Cn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Q?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pt(e.ssContent),ssFallback:e.ssFallback&&pt(e.ssFallback),el:e.el,anchor:e.anchor}}function Be(e=" ",t=0){return E(an,null,e,t)}function vc(e,t){const n=E(en,null,e);return n.staticCount=t,n}function q(e="",t=!1){return t?(d(),J(Ie,null,e)):E(Ie,null,e)}function Ue(e){return e==null||typeof e=="boolean"?E(Ie):K(e)?E(Q,null,e.slice()):typeof e=="object"?at(e):E(an,null,String(e))}function at(e){return e.el===null||e.memo?e:pt(e)}function no(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),no(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(ns in t)?t._ctx=ke:o===3&&ke&&(ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else X(t)?(t={default:t,_ctx:ke},n=32):(t=String(t),s&64?(n=16,t=[Be(t)]):n=8);e.children=t,e.shapeFlag|=n}function Sn(...e){const t={};for(let n=0;nxe||ke,Ft=e=>{xe=e,e.scope.on()},kt=()=>{xe&&xe.scope.off(),xe=null};function li(e){return e.vnode.shapeFlag&4}let fn=!1;function bc(e,t=!1){fn=t;const{props:n,children:s}=e.vnode,o=li(e);tc(e,n,o,t),oc(e,s);const r=o?wc(e,t):void 0;return fn=!1,r}function wc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Xt(new Proxy(e.ctx,Yl));const{setup:s}=n;if(s){const o=e.setupContext=s.length>1?$c(e):null;Ft(e),Rt();const r=ft(s,e,0,[e.props,o]);if(Dt(),kt(),dr(r)){if(r.then(kt,kt),t)return r.then(i=>{Bo(e,i,t)}).catch(i=>{Wn(i,e,0)});e.asyncDep=r}else Bo(e,r,t)}else ci(e,t)}function Bo(e,t,n){X(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=Tr(t)),ci(e,n)}let Fo;function ci(e,t,n){const s=e.type;if(!e.render){if(!t&&Fo&&!s.render){const o=s.template;if(o){const{isCustomElement:r,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,f=$e($e({isCustomElement:r,delimiters:l},i),c);s.render=Fo(o,f)}}e.render=s.render||We}Ft(e),Rt(),Jl(e),Dt(),kt()}function xc(e){return new Proxy(e.attrs,{get(t,n){return Ne(e,"get","$attrs"),t[n]}})}function $c(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=xc(e))},slots:e.slots,emit:e.emit,expose:t}}function ss(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Tr(Xt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Mn)return Mn[n](e)}}))}function Pc(e,t=!0){return X(e)?e.displayName||e.name:e.name||t&&e.__name}function kc(e){return X(e)&&"__vccOpts"in e}const me=(e,t)=>kl(e,t,fn);function Bn(e,t,n){const s=arguments.length;return s===2?ye(t)&&!K(t)?Nn(t)?E(e,null,[t]):E(e,t):E(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Nn(n)&&(n=[n]),E(e,t,n))}const Cc="3.2.37",Sc="http://www.w3.org/2000/svg",wt=typeof document!="undefined"?document:null,Oo=wt&&wt.createElement("template"),Vc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t?wt.createElementNS(Sc,e):wt.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>wt.createTextNode(e),createComment:e=>wt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>wt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,s,o,r){const i=n?n.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===r||!(o=o.nextSibling)););else{Oo.innerHTML=s?`${e}`:e;const l=Oo.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Ec(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Tc(e,t,n){const s=e.style,o=we(n);if(n&&!o){for(const r in n)Ms(s,r,n[r]);if(t&&!we(t))for(const r in t)n[r]==null&&Ms(s,r,"")}else{const r=s.display;o?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=r)}}const Ho=/\s*!important$/;function Ms(e,t,n){if(K(n))n.forEach(s=>Ms(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Lc(e,t);Ho.test(n)?e.setProperty(Ht(s),n.replace(Ho,""),"important"):e[s]=n}}const Ro=["Webkit","Moz","ms"],hs={};function Lc(e,t){const n=hs[t];if(n)return n;let s=Ye(t);if(s!=="filter"&&s in e)return hs[t]=s;s=Un(s);for(let o=0;o{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=performance.now.bind(performance));const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let As=0;const Nc=Promise.resolve(),Bc=()=>{As=0},Fc=()=>As||(Nc.then(Bc),As=ai());function Oc(e,t,n,s){e.addEventListener(t,n,s)}function Hc(e,t,n,s){e.removeEventListener(t,n,s)}function Rc(e,t,n,s,o=null){const r=e._vei||(e._vei={}),i=r[t];if(s&&i)i.value=s;else{const[l,c]=Dc(t);if(s){const f=r[t]=zc(s,o);Oc(e,l,f,c)}else i&&(Hc(e,l,i,c),r[t]=void 0)}}const zo=/(?:Once|Passive|Capture)$/;function Dc(e){let t;if(zo.test(e)){t={};let n;for(;n=e.match(zo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Ht(e.slice(2)),t]}function zc(e,t){const n=s=>{const o=s.timeStamp||ai();(Ic||o>=n.attached-1)&&He(Uc(s,n.value),t,5,[s])};return n.value=e,n.attached=Fc(),n}function Uc(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Uo=/^on[a-z]/,jc=(e,t,n,s,o=!1,r,i,l,c)=>{t==="class"?Ec(e,s,o):t==="style"?Tc(e,n,s):dn(t)?Rs(t)||Rc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kc(e,t,s,o))?Ac(e,t,s,r,i,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Mc(e,t,s,o))};function Kc(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Uo.test(t)&&X(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Uo.test(t)&&we(n)?!1:t in e}const it="transition",Wt="animation",os=(e,{slots:t})=>Bn(Hr,Wc(e),t);os.displayName="Transition";const ui={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};os.props=$e({},Hr.props,ui);const mt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},jo=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Wc(e){const t={};for(const A in e)A in ui||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:s,duration:o,enterFromClass:r=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=r,appearActiveClass:f=i,appearToClass:_=l,leaveFromClass:g=`${n}-leave-from`,leaveActiveClass:w=`${n}-leave-active`,leaveToClass:C=`${n}-leave-to`}=e,N=qc(o),z=N&&N[0],D=N&&N[1],{onBeforeEnter:y,onEnter:V,onEnterCancelled:U,onLeave:Y,onLeaveCancelled:te,onBeforeAppear:ae=y,onAppear:le=V,onAppearCancelled:M=U}=t,G=(A,ee,F)=>{gt(A,ee?_:l),gt(A,ee?f:i),F&&F()},Z=(A,ee)=>{A._isLeaving=!1,gt(A,g),gt(A,C),gt(A,w),ee&&ee()},oe=A=>(ee,F)=>{const Ve=A?le:V,ue=()=>G(ee,A,F);mt(Ve,[ee,ue]),Ko(()=>{gt(ee,A?c:r),lt(ee,A?_:l),jo(Ve)||Wo(ee,s,z,ue)})};return $e(t,{onBeforeEnter(A){mt(y,[A]),lt(A,r),lt(A,i)},onBeforeAppear(A){mt(ae,[A]),lt(A,c),lt(A,f)},onEnter:oe(!1),onAppear:oe(!0),onLeave(A,ee){A._isLeaving=!0;const F=()=>Z(A,ee);lt(A,g),Jc(),lt(A,w),Ko(()=>{!A._isLeaving||(gt(A,g),lt(A,C),jo(Y)||Wo(A,s,D,F))}),mt(Y,[A,F])},onEnterCancelled(A){G(A,!1),mt(U,[A])},onAppearCancelled(A){G(A,!0),mt(M,[A])},onLeaveCancelled(A){Z(A),mt(te,[A])}})}function qc(e){if(e==null)return null;if(ye(e))return[ps(e.enter),ps(e.leave)];{const t=ps(e);return[t,t]}}function ps(e){return pr(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function gt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Ko(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Gc=0;function Wo(e,t,n,s){const o=e._endId=++Gc,r=()=>{o===e._endId&&s()};if(n)return setTimeout(r,n);const{type:i,timeout:l,propCount:c}=Yc(e,t);if(!i)return s();const f=i+"end";let _=0;const g=()=>{e.removeEventListener(f,w),r()},w=C=>{C.target===e&&++_>=c&&g()};setTimeout(()=>{_(n[N]||"").split(", "),o=s(it+"Delay"),r=s(it+"Duration"),i=qo(o,r),l=s(Wt+"Delay"),c=s(Wt+"Duration"),f=qo(l,c);let _=null,g=0,w=0;t===it?i>0&&(_=it,g=i,w=r.length):t===Wt?f>0&&(_=Wt,g=f,w=c.length):(g=Math.max(i,f),_=g>0?i>f?it:Wt:null,w=_?_===it?r.length:c.length:0);const C=_===it&&/\b(transform|all)(,|$)/.test(n[it+"Property"]);return{type:_,timeout:g,propCount:w,hasTransform:C}}function qo(e,t){for(;e.lengthGo(n)+Go(e[s])))}function Go(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Jc(){return document.body.offsetHeight}const Xc=["ctrl","shift","alt","meta"],Qc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Xc.some(n=>e[`${n}Key`]&&!t.includes(n))},Zc=(e,t)=>(n,...s)=>{for(let o=0;o{qt(e,!1)}):qt(e,t))},beforeUnmount(e,{value:t}){qt(e,t)}};function qt(e,t){e.style.display=t?e._vod:"none"}const ea=$e({patchProp:jc},Vc);let vs,Jo=!1;function ta(){return vs=Jo?vs:ac(ea),Jo=!0,vs}const na=(...e)=>{const t=ta().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=sa(s);if(o)return n(o,!0,o instanceof SVGElement)},t};function sa(e){return we(e)?document.querySelector(e):e}var oa=JSON.parse('{"lang":"en-US","title":"Vue 3D Mockup","description":"\u{1F4F1} A 3D phone mockup component to showcase your apps","base":"/","head":[],"appearance":true,"themeConfig":{"nav":[{"text":"Guide","link":"/guide"},{"text":"Github","link":"https://github.com/anatolykopyl/vue-three-d-mockup"}],"footer":{"message":"Released under the GPL-3.0 license."}},"locales":{},"langs":{},"scrollOffset":90}');const ra=/^https?:/i,Xo="vitepress-theme-appearance",Te=typeof window!="undefined",fi={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{},lastUpdated:0};function ia(e,t){t.sort((n,s)=>{const o=s.split("/").length-n.split("/").length;return o!==0?o:s.length-n.length});for(const n of t)if(e.startsWith(n))return n}function Qo(e,t){const n=ia(t,Object.keys(e));return n?e[n]:void 0}function la(e){const{locales:t}=e.themeConfig||{},n=e.locales;return t&&n?Object.keys(t).reduce((s,o)=>(s[o]={label:t[o].label,lang:n[o].lang},s),{}):{}}function ca(e,t){t=ua(e,t);const n=Qo(e.locales||{},t),s=Qo(e.themeConfig.locales||{},t);return Object.assign({},e,n,{themeConfig:Object.assign({},e.themeConfig,s,{locales:{}}),lang:(n||e).lang,locales:{},langs:la(e)})}function di(e,t){var r;const n=t.title||e.title,s=(r=t.titleTemplate)!=null?r:e.titleTemplate,o=aa(e.title,s);return`${n}${o}`}function aa(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function ua(e,t){if(!Te)return t;const n=e.base,s=n.endsWith("/")?n.slice(0,-1):n;return t.slice(s.length)}function fa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ot(e){return ra.test(e)?e:fa(hn.value.base,e)}function _i(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t.endsWith("/")&&(t+="index"),Te){const n="/";t=t.slice(n.length).replace(/\//g,"_")+".md";const s=__VP_HASH_MAP__[t.toLowerCase()];t=`${n}assets/${t}.${s}.js`}else t=`./${t.slice(1).replace(/\//g,"_")}.md.js`;return t}const hi=Symbol(),hn=wl(oa);function da(e){const t=me(()=>ca(hn.value,e.path));return{site:t,theme:me(()=>t.value.themeConfig),page:me(()=>e.data),frontmatter:me(()=>e.data.frontmatter),lang:me(()=>t.value.lang),localePath:me(()=>{const{langs:n,lang:s}=t.value,o=Object.keys(n).find(r=>n[r].lang===s);return Ot(o||"/")}),title:me(()=>di(t.value,e.data)),description:me(()=>e.data.description||t.value.description)}}function ce(){const e=dt(hi);if(!e)throw new Error("vitepress data not properly injected in app");return e}const pi=Symbol(),Zo="http://a.com",_a=()=>({path:"/",component:null,data:fi});function ha(e,t){const n=Kn(_a());function s(i=Te?location.href:"/"){const l=new URL(i,Zo);return!l.pathname.endsWith("/")&&!l.pathname.endsWith(".html")&&(l.pathname+=".html",i=l.pathname+l.search+l.hash),Te&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",i)),r(i)}let o=null;async function r(i,l=0,c=!1){const f=new URL(i,Zo),_=o=f.pathname;try{let g=e(_);if("then"in g&&typeof g.then=="function"&&(g=await g),o===_){o=null;const{default:w,__pageData:C}=g;if(!w)throw new Error(`Invalid route component: ${w}`);n.path=Te?_:Ot(_),n.component=Xt(w),n.data=Xt(C),Te&&_n(()=>{if(f.hash&&!l){let N=null;try{N=document.querySelector(decodeURIComponent(f.hash))}catch(z){console.warn(z)}if(N){er(N,f.hash);return}}window.scrollTo(0,l)})}}catch(g){if(!g.message.match(/fetch/)&&!i.match(/^[\\/]404\.html$/)&&console.error(g),!c)try{const w=await fetch(hn.value.base+"hashmap.json");window.__VP_HASH_MAP__=await w.json(),await r(i,l,!0);return}catch{}o===_&&(o=null,n.path=Te?_:Ot(_),n.component=t?Xt(t):null,n.data=fi)}}return Te&&(window.addEventListener("click",i=>{const l=i.target.closest("a");if(l){const{href:c,protocol:f,hostname:_,pathname:g,hash:w,target:C}=l,N=window.location,z=g.match(/\.\w+$/);!i.ctrlKey&&!i.shiftKey&&!i.altKey&&!i.metaKey&&C!=="_blank"&&f===N.protocol&&_===N.hostname&&!(z&&z[0]!==".html")&&(i.preventDefault(),g===N.pathname?w&&w!==N.hash&&(history.pushState(null,"",w),window.dispatchEvent(new Event("hashchange")),er(l,w,l.classList.contains("header-anchor"))):s(c))}},{capture:!0}),window.addEventListener("popstate",i=>{r(location.href,i.state&&i.state.scrollPosition||0)}),window.addEventListener("hashchange",i=>{i.preventDefault()})),{route:n,go:s}}function pa(){const e=dt(pi);if(!e)throw new Error("useRouter() is called without provider.");return e}function zt(){return pa().route}function er(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(o){console.warn(o)}if(s){let o=hn.value.scrollOffset;typeof o=="string"&&(o=document.querySelector(o).getBoundingClientRect().bottom+24);const r=parseInt(window.getComputedStyle(s).paddingTop,10),i=window.scrollY+s.getBoundingClientRect().top-o+r;!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})}}const va=B({name:"VitePressContent",setup(){const e=zt();return()=>Bn("div",{style:{position:"relative"}},[e.component?Bn(e.component):null])}}),vi=/#.*$/,ma=/(index)?\.(md|html)$/,ga=/^[a-z]+:/i,ya=typeof window!="undefined",ba=be(ya?location.hash:"");function wa(e){return ga.test(e)}function xa(e,t){let n,s=!1;return()=>{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function pn(e,t,n=!1){if(t===void 0)return!1;if(e=nr(`/${e}`),n)return new RegExp(t).test(e);if(nr(t)!==e)return!1;const s=t.match(vi);return s?ba.value===s[0]:!0}function tr(e){return/^\//.test(e)?e:`/${e}`}function nr(e){return decodeURI(e).replace(vi,"").replace(ma,"")}function Is(e){if(wa(e))return e;const{pathname:t,search:n,hash:s}=new URL(e,"http://example.com"),o=t.endsWith("/")||t.endsWith(".html")?e:`${t.replace(/(\.md)?$/,".html")}${n}${s}`;return Ot(o)}function mi(e,t){if(Array.isArray(e))return e;t=tr(t);for(const n in e)if(t.startsWith(tr(n)))return e[n];return[]}function $a(e){const t=[];for(const n of e)for(const s of n.items)t.push(s);return t}function Je(){const e=zt(),{theme:t,frontmatter:n}=ce(),s=be(!1),o=me(()=>{const f=t.value.sidebar,_=e.data.relativePath;return f?mi(f,_):[]}),r=me(()=>n.value.sidebar!==!1&&o.value.length>0&&n.value.layout!=="home");function i(){s.value=!0}function l(){s.value=!1}function c(){s.value?l():i()}return{isOpen:s,sidebar:o,hasSidebar:r,open:i,close:l,toggle:c}}function Pa(e,t){let n;Jn(()=>{n=e.value?document.activeElement:void 0}),nt(()=>{window.addEventListener("keyup",s)}),Ct(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}var L=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n};const ka=B({__name:"VPSkipLink",setup(e){const t=zt(),n=be();_t(()=>t.path,()=>n.value.focus());function s({target:o}){const r=document.querySelector(o.hash);if(r){const i=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",i)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",i),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(d(),m(Q,null,[p("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});var Ca=L(ka,[["__scopeId","data-v-45f6ae50"]]);const Sa={key:0,class:"VPBackdrop"},Va=B({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(d(),J(os,{name:"fade"},{default:j(()=>[e.show?(d(),m("div",Sa)):q("",!0)]),_:1}))}});var Ea=L(Va,[["__scopeId","data-v-0e94ce1c"]]);function Ta(){const e=be(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function s(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}return{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:s}}const La=["src"],Ma={inheritAttrs:!1},Aa=B({...Ma,__name:"VPImage",props:{image:null},setup(e){return(t,n)=>{const s=es("VPImage",!0);return e.image?(d(),m(Q,{key:0},[typeof e.image=="string"||"src"in e.image?(d(),m("img",Sn({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:v(Ot)(typeof e.image=="string"?e.image:e.image.src)}),null,16,La)):(d(),m(Q,{key:1},[E(s,Sn({class:"dark",image:e.image.dark},t.$attrs),null,16,["image"]),E(s,Sn({class:"light",image:e.image.light},t.$attrs),null,16,["image"])],64))],64)):q("",!0)}}});var gi=L(Aa,[["__scopeId","data-v-73ae1788"]]);const Ia=["href"],Na=B({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=ce(),{hasSidebar:s}=Je();return(o,r)=>(d(),m("div",{class:ve(["VPNavBarTitle",{"has-sidebar":v(s)}])},[p("a",{class:"title",href:v(t).base},[E(gi,{class:"logo",image:v(n).logo},null,8,["image"]),v(n).siteTitle?(d(),m(Q,{key:0},[Be(se(v(n).siteTitle),1)],64)):v(n).siteTitle===void 0?(d(),m(Q,{key:1},[Be(se(v(t).title),1)],64)):q("",!0)],8,Ia)],2))}});var Ba=L(Na,[["__scopeId","data-v-6a6f7ff6"]]);const Fa={key:0,class:"VPNavBarSearch"},Oa={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Ha=p("span",{class:"DocSearch-Button-Container"},[p("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},[p("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})]),p("span",{class:"DocSearch-Button-Placeholder"},"Search")],-1),Ra={class:"DocSearch-Button-Keys"},Da=p("kbd",{class:"DocSearch-Button-Key"},"K",-1),za=B({__name:"VPNavBarSearch",setup(e){const t=()=>null,{theme:n}=ce(),s=be(!1),o=be();nt(()=>{if(!n.value.algolia)return;o.value.textContent=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"\u2318":"Ctrl";const i=c=>{c.key==="k"&&(c.ctrlKey||c.metaKey)&&(c.preventDefault(),r(),l())},l=()=>{window.removeEventListener("keydown",i)};window.addEventListener("keydown",i),Ct(l)});function r(){s.value||(s.value=!0)}return(i,l)=>v(n).algolia?(d(),m("div",Fa,[s.value?(d(),J(v(t),{key:0})):(d(),m("div",{key:1,id:"docsearch",onClick:r},[p("button",Oa,[Ha,p("span",Ra,[p("kbd",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:o},"Meta",512),Da])])]))])):q("",!0)}}),Ua={},ja={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},Ka=p("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),Wa=p("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),qa=[Ka,Wa];function Ga(e,t){return d(),m("svg",ja,qa)}var Ya=L(Ua,[["render",Ga]]);const Ja=B({__name:"VPLink",props:{href:null,noIcon:{type:Boolean}},setup(e){const t=e,n=me(()=>t.href&&/^[a-z]+:/i.test(t.href));return(s,o)=>(d(),J(ts(e.href?"a":"span"),{class:ve(["VPLink",{link:e.href}]),href:e.href?v(Is)(e.href):void 0,target:v(n)?"_blank":void 0,rel:v(n)?"noopener noreferrer":void 0},{default:j(()=>[R(s.$slots,"default",{},void 0,!0),v(n)&&!e.noIcon?(d(),J(Ya,{key:0,class:"icon"})):q("",!0)]),_:3},8,["class","href","target","rel"]))}});var Ut=L(Ja,[["__scopeId","data-v-5704c677"]]);const Xa=B({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=ce();return(n,s)=>(d(),J(Ut,{class:ve({VPNavBarMenuLink:!0,active:v(pn)(v(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,noIcon:!0},{default:j(()=>[Be(se(e.item.text),1)]),_:1},8,["class","href"]))}});var Qa=L(Xa,[["__scopeId","data-v-8fba5fa8"]]);const so=be();let yi=!1,ms=0;function Za(e){const t=be(!1);if(typeof window!="undefined"){!yi&&eu(),ms++;const n=_t(so,s=>{var o,r,i;s===e.el.value||((o=e.el.value)==null?void 0:o.contains(s))?(t.value=!0,(r=e.onFocus)==null||r.call(e)):(t.value=!1,(i=e.onBlur)==null||i.call(e))});Ct(()=>{n(),ms--,ms||tu()})}return Ys(t)}function eu(){document.addEventListener("focusin",bi),yi=!0,so.value=document.activeElement}function tu(){document.removeEventListener("focusin",bi)}function bi(){so.value=document.activeElement}const nu={},su={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ou=p("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),ru=[ou];function iu(e,t){return d(),m("svg",su,ru)}var wi=L(nu,[["render",iu]]);const lu={},cu={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},au=p("circle",{cx:"12",cy:"12",r:"2"},null,-1),uu=p("circle",{cx:"19",cy:"12",r:"2"},null,-1),fu=p("circle",{cx:"5",cy:"12",r:"2"},null,-1),du=[au,uu,fu];function _u(e,t){return d(),m("svg",cu,du)}var hu=L(lu,[["render",_u]]);const pu={class:"VPMenuLink"},vu=B({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=ce();return(n,s)=>(d(),m("div",pu,[E(Ut,{class:ve({active:v(pn)(v(t).relativePath,e.item.activeMatch||e.item.link)}),href:e.item.link},{default:j(()=>[Be(se(e.item.text),1)]),_:1},8,["class","href"])]))}});var rs=L(vu,[["__scopeId","data-v-06b18c43"]]);const mu={class:"VPMenuGroup"},gu={key:0,class:"title"},yu=B({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(d(),m("div",mu,[e.text?(d(),m("p",gu,se(e.text),1)):q("",!0),(d(!0),m(Q,null,Ce(e.items,s=>(d(),m(Q,null,["link"in s?(d(),J(rs,{key:0,item:s},null,8,["item"])):q("",!0)],64))),256))]))}});var bu=L(yu,[["__scopeId","data-v-4bc84c0d"]]);const wu={class:"VPMenu"},xu={key:0,class:"items"},$u=B({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(d(),m("div",wu,[e.items?(d(),m("div",xu,[(d(!0),m(Q,null,Ce(e.items,s=>(d(),m(Q,{key:s.text},["link"in s?(d(),J(rs,{key:0,item:s},null,8,["item"])):(d(),J(bu,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):q("",!0),R(t.$slots,"default",{},void 0,!0)]))}});var Pu=L($u,[["__scopeId","data-v-e73581a2"]]);const ku=["aria-expanded","aria-label"],Cu={key:0,class:"text"},Su={class:"menu"},Vu=B({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=be(!1),n=be();Za({el:n,onBlur:s});function s(){t.value=!1}return(o,r)=>(d(),m("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:r[1]||(r[1]=i=>t.value=!0),onMouseleave:r[2]||(r[2]=i=>t.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:r[0]||(r[0]=i=>t.value=!t.value)},[e.button||e.icon?(d(),m("span",Cu,[e.icon?(d(),J(ts(e.icon),{key:0,class:"option-icon"})):q("",!0),Be(" "+se(e.button)+" ",1),E(wi,{class:"text-icon"})])):(d(),J(hu,{key:1,class:"icon"}))],8,ku),p("div",Su,[E(Pu,{items:e.items},{default:j(()=>[R(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});var oo=L(Vu,[["__scopeId","data-v-8dccea88"]]);const Eu=B({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=ce();return(n,s)=>(d(),J(oo,{class:ve({VPNavBarMenuGroup:!0,active:v(pn)(v(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}});const Tu=e=>(Re("data-v-a30758ee"),e=e(),De(),e),Lu={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Mu=Tu(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Au=B({__name:"VPNavBarMenu",setup(e){const{theme:t}=ce();return(n,s)=>v(t).nav?(d(),m("nav",Lu,[Mu,(d(!0),m(Q,null,Ce(v(t).nav,o=>(d(),m(Q,{key:o.text},["link"in o?(d(),J(Qa,{key:0,item:o},null,8,["item"])):(d(),J(Eu,{key:1,item:o},null,8,["item"]))],64))),128))])):q("",!0)}});var Iu=L(Au,[["__scopeId","data-v-a30758ee"]]);const Nu={},Bu={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Fu=p("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Ou=p("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),Hu=[Fu,Ou];function Ru(e,t){return d(),m("svg",Bu,Hu)}var xi=L(Nu,[["render",Ru]]);const Du={class:"items"},zu={class:"title"},Uu=B({__name:"VPNavBarTranslations",setup(e){const{theme:t}=ce();return(n,s)=>v(t).localeLinks?(d(),J(oo,{key:0,class:"VPNavBarTranslations",icon:xi},{default:j(()=>[p("div",Du,[p("p",zu,se(v(t).localeLinks.text),1),(d(!0),m(Q,null,Ce(v(t).localeLinks.items,o=>(d(),J(rs,{key:o.link,item:o},null,8,["item"]))),128))])]),_:1})):q("",!0)}});var ju=L(Uu,[["__scopeId","data-v-2ec6e3c4"]]);const Ku={},Wu={class:"VPSwitch",type:"button",role:"switch"},qu={class:"check"},Gu={key:0,class:"icon"};function Yu(e,t){return d(),m("button",Wu,[p("span",qu,[e.$slots.default?(d(),m("span",Gu,[R(e.$slots,"default",{},void 0,!0)])):q("",!0)])])}var Ju=L(Ku,[["render",Yu],["__scopeId","data-v-1dda4c9c"]]);const Xu={},Qu={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Zu=vc('',9),ef=[Zu];function tf(e,t){return d(),m("svg",Qu,ef)}var nf=L(Xu,[["render",tf]]);const sf={},of={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},rf=p("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),lf=[rf];function cf(e,t){return d(),m("svg",of,lf)}var af=L(sf,[["render",cf]]);const uf=B({__name:"VPSwitchAppearance",setup(e){const t=typeof localStorage!="undefined"?n():()=>{};function n(){const s=window.matchMedia("(prefers-color-scheme: dark)"),o=document.documentElement.classList;let r=localStorage.getItem(Xo)||"auto",i=r==="auto"?s.matches:r==="dark";s.onchange=f=>{r==="auto"&&c(i=f.matches)};function l(){c(i=!i),r=i?s.matches?"auto":"dark":s.matches?"light":"auto",localStorage.setItem(Xo,r)}function c(f){o[f?"add":"remove"]("dark")}return l}return(s,o)=>(d(),J(Ju,{class:"VPSwitchAppearance","aria-label":"toggle dark mode",onClick:v(t)},{default:j(()=>[E(nf,{class:"sun"}),E(af,{class:"moon"})]),_:1},8,["onClick"]))}});var ro=L(uf,[["__scopeId","data-v-781f9d1b"]]);const ff={key:0,class:"VPNavBarAppearance"},df=B({__name:"VPNavBarAppearance",setup(e){const{site:t}=ce();return(n,s)=>v(t).appearance?(d(),m("div",ff,[E(ro)])):q("",!0)}});var _f=L(df,[["__scopeId","data-v-311055f2"]]);const hf={},pf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},vf=p("path",{d:"M20.222 0c1.406 0 2.54 1.137 2.607 2.475V24l-2.677-2.273-1.47-1.338-1.604-1.398.67 2.205H3.71c-1.402 0-2.54-1.065-2.54-2.476V2.48C1.17 1.142 2.31.003 3.715.003h16.5L20.222 0zm-6.118 5.683h-.03l-.202.2c2.073.6 3.076 1.537 3.076 1.537-1.336-.668-2.54-1.002-3.744-1.137-.87-.135-1.74-.064-2.475 0h-.2c-.47 0-1.47.2-2.81.735-.467.203-.735.336-.735.336s1.002-1.002 3.21-1.537l-.135-.135s-1.672-.064-3.477 1.27c0 0-1.805 3.144-1.805 7.02 0 0 1 1.74 3.743 1.806 0 0 .4-.533.805-1.002-1.54-.468-2.14-1.404-2.14-1.404s.134.066.335.2h.06c.03 0 .044.015.06.03v.006c.016.016.03.03.06.03.33.136.66.27.93.4.466.202 1.065.403 1.8.536.93.135 1.996.2 3.21 0 .6-.135 1.2-.267 1.8-.535.39-.2.87-.4 1.397-.737 0 0-.6.936-2.205 1.404.33.466.795 1 .795 1 2.744-.06 3.81-1.8 3.87-1.726 0-3.87-1.815-7.02-1.815-7.02-1.635-1.214-3.165-1.26-3.435-1.26l.056-.02zm.168 4.413c.703 0 1.27.6 1.27 1.335 0 .74-.57 1.34-1.27 1.34-.7 0-1.27-.6-1.27-1.334.002-.74.573-1.338 1.27-1.338zm-4.543 0c.7 0 1.266.6 1.266 1.335 0 .74-.57 1.34-1.27 1.34-.7 0-1.27-.6-1.27-1.334 0-.74.57-1.338 1.27-1.338z"},null,-1),mf=[vf];function gf(e,t){return d(),m("svg",pf,mf)}var yf=L(hf,[["render",gf]]);const bf={},wf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xf=p("path",{d:"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"},null,-1),$f=[xf];function Pf(e,t){return d(),m("svg",wf,$f)}var kf=L(bf,[["render",Pf]]);const Cf={},Sf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Vf=p("path",{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"},null,-1),Ef=[Vf];function Tf(e,t){return d(),m("svg",Sf,Ef)}var Lf=L(Cf,[["render",Tf]]);const Mf={},Af={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},If=p("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"},null,-1),Nf=[If];function Bf(e,t){return d(),m("svg",Af,Nf)}var Ff=L(Mf,[["render",Bf]]);const Of={},Hf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Rf=p("path",{d:"M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"},null,-1),Df=[Rf];function zf(e,t){return d(),m("svg",Hf,Df)}var Uf=L(Of,[["render",zf]]);const jf={},Kf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Wf=p("path",{d:"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"},null,-1),qf=[Wf];function Gf(e,t){return d(),m("svg",Kf,qf)}var Yf=L(jf,[["render",Gf]]);const Jf={},Xf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Qf=p("path",{d:"M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"},null,-1),Zf=[Qf];function ed(e,t){return d(),m("svg",Xf,Zf)}var td=L(Jf,[["render",ed]]);const nd={},sd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},od=p("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"},null,-1),rd=[od];function id(e,t){return d(),m("svg",sd,rd)}var ld=L(nd,[["render",id]]);const cd=["href","title"],ad={class:"visually-hidden"},ud=B({__name:"VPSocialLink",props:{icon:null,link:null},setup(e){const t={discord:yf,facebook:kf,github:Lf,instagram:Uf,linkedin:Ff,slack:Yf,twitter:td,youtube:ld};return(n,s)=>(d(),m("a",{class:"VPSocialLink",href:e.link,title:e.icon,target:"_blank",rel:"noopener noreferrer"},[(d(),J(ts(t[e.icon]),{class:"icon"})),p("span",ad,se(e.icon),1)],8,cd))}});var fd=L(ud,[["__scopeId","data-v-48c45ef6"]]);const dd={class:"VPSocialLinks"},_d=B({__name:"VPSocialLinks",props:{links:null},setup(e){return(t,n)=>(d(),m("div",dd,[(d(!0),m(Q,null,Ce(e.links,({link:s,icon:o})=>(d(),J(fd,{key:s,icon:o,link:s},null,8,["icon","link"]))),128))]))}});var io=L(_d,[["__scopeId","data-v-4dcbaf3a"]]);const hd=B({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=ce();return(n,s)=>v(t).socialLinks?(d(),J(io,{key:0,class:"VPNavBarSocialLinks",links:v(t).socialLinks},null,8,["links"])):q("",!0)}});var pd=L(hd,[["__scopeId","data-v-0ae890f7"]]);const vd=e=>(Re("data-v-0562f5c0"),e=e(),De(),e),md={key:0,class:"group"},gd={class:"trans-title"},yd={key:1,class:"group"},bd={class:"item appearance"},wd=vd(()=>p("p",{class:"label"},"Appearance",-1)),xd={class:"appearance-action"},$d={key:2,class:"group"},Pd={class:"item social-links"},kd=B({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=ce();return(s,o)=>(d(),J(oo,{class:"VPNavBarExtra",label:"extra navigation"},{default:j(()=>[v(n).localeLinks?(d(),m("div",md,[p("p",gd,se(v(n).localeLinks.text),1),(d(!0),m(Q,null,Ce(v(n).localeLinks.items,r=>(d(),J(rs,{key:r.link,item:r},null,8,["item"]))),128))])):q("",!0),v(t).appearance?(d(),m("div",yd,[p("div",bd,[wd,p("div",xd,[E(ro)])])])):q("",!0),v(n).socialLinks?(d(),m("div",$d,[p("div",Pd,[E(io,{class:"social-links-list",links:v(n).socialLinks},null,8,["links"])])])):q("",!0)]),_:1}))}});var Cd=L(kd,[["__scopeId","data-v-0562f5c0"]]);const Sd=e=>(Re("data-v-6f008456"),e=e(),De(),e),Vd=["aria-expanded"],Ed=Sd(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Td=[Ed],Ld=B({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(d(),m("button",{type:"button",class:ve(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=s=>t.$emit("click"))},Td,10,Vd))}});var Md=L(Ld,[["__scopeId","data-v-6f008456"]]);const Ad={class:"container"},Id={class:"content"},Nd=B({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const{hasSidebar:t}=Je();return(n,s)=>(d(),m("div",{class:ve(["VPNavBar",{"has-sidebar":v(t)}])},[p("div",Ad,[E(Ba),p("div",Id,[E(za,{class:"search"}),E(Iu,{class:"menu"}),E(ju,{class:"translations"}),E(_f,{class:"appearance"}),E(pd,{class:"social-links"}),E(Cd,{class:"extra"}),E(Md,{class:"hamburger",active:e.isScreenOpen,onClick:s[0]||(s[0]=o=>n.$emit("toggle-screen"))},null,8,["active"])])])],2))}});var Bd=L(Nd,[["__scopeId","data-v-8856f192"]]);function Fd(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1),Bt=[],On=!1,co=-1,nn=void 0,xt=void 0,sn=void 0,$i=function(t){return Bt.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(t))})},Hn=function(t){var n=t||window.event;return $i(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},Od=function(t){if(sn===void 0){var n=!!t&&t.reserveScrollBarGap===!0,s=window.innerWidth-document.documentElement.clientWidth;if(n&&s>0){var o=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);sn=document.body.style.paddingRight,document.body.style.paddingRight=o+s+"px"}}nn===void 0&&(nn=document.body.style.overflow,document.body.style.overflow="hidden")},Hd=function(){sn!==void 0&&(document.body.style.paddingRight=sn,sn=void 0),nn!==void 0&&(document.body.style.overflow=nn,nn=void 0)},Rd=function(){return window.requestAnimationFrame(function(){if(xt===void 0){xt={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var t=window,n=t.scrollY,s=t.scrollX,o=t.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-s,setTimeout(function(){return window.requestAnimationFrame(function(){var r=o-window.innerHeight;r&&n>=o&&(document.body.style.top=-(n+r))})},300)}})},Dd=function(){if(xt!==void 0){var t=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=xt.position,document.body.style.top=xt.top,document.body.style.left=xt.left,window.scrollTo(n,t),xt=void 0}},zd=function(t){return t?t.scrollHeight-t.scrollTop<=t.clientHeight:!1},Ud=function(t,n){var s=t.targetTouches[0].clientY-co;return $i(t.target)?!1:n&&n.scrollTop===0&&s>0||zd(n)&&s<0?Hn(t):(t.stopPropagation(),!0)},jd=function(t,n){if(!t){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Bt.some(function(o){return o.targetElement===t})){var s={targetElement:t,options:n||{}};Bt=[].concat(Fd(Bt),[s]),Fn?Rd():Od(n),Fn&&(t.ontouchstart=function(o){o.targetTouches.length===1&&(co=o.targetTouches[0].clientY)},t.ontouchmove=function(o){o.targetTouches.length===1&&Ud(o,t)},On||(document.addEventListener("touchmove",Hn,lo?{passive:!1}:void 0),On=!0))}},Kd=function(){Fn&&(Bt.forEach(function(t){t.targetElement.ontouchstart=null,t.targetElement.ontouchmove=null}),On&&(document.removeEventListener("touchmove",Hn,lo?{passive:!1}:void 0),On=!1),co=-1),Fn?Dd():Hd(),Bt=[]};const Wd=B({__name:"VPNavScreenMenuLink",props:{text:null,link:null},setup(e){const t=dt("close-screen");return(n,s)=>(d(),J(Ut,{class:"VPNavScreenMenuLink",href:e.link,onClick:v(t)},{default:j(()=>[Be(se(e.text),1)]),_:1},8,["href","onClick"]))}});var qd=L(Wd,[["__scopeId","data-v-c866d100"]]);const Gd={},Yd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Jd=p("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Xd=[Jd];function Qd(e,t){return d(),m("svg",Yd,Xd)}var Zd=L(Gd,[["render",Qd]]);const e_=B({__name:"VPNavScreenMenuGroupLink",props:{text:null,link:null},setup(e){const t=dt("close-screen");return(n,s)=>(d(),J(Ut,{class:"VPNavScreenMenuGroupLink",href:e.link,onClick:v(t)},{default:j(()=>[Be(se(e.text),1)]),_:1},8,["href","onClick"]))}});var Pi=L(e_,[["__scopeId","data-v-75257eac"]]);const t_={class:"VPNavScreenMenuGroupSection"},n_={key:0,class:"title"},s_=B({__name:"VPNavScreenMenuGroupSection",props:{text:null,items:null},setup(e){return(t,n)=>(d(),m("div",t_,[e.text?(d(),m("p",n_,se(e.text),1)):q("",!0),(d(!0),m(Q,null,Ce(e.items,s=>(d(),J(Pi,{key:s.text,text:s.text,link:s.link},null,8,["text","link"]))),128))]))}});var o_=L(s_,[["__scopeId","data-v-3e75c0f2"]]);const r_=["aria-controls","aria-expanded"],i_={class:"button-text"},l_=["id"],c_={key:1,class:"group"},a_=B({__name:"VPNavScreenMenuGroup",props:{text:null,items:null},setup(e){const t=e,n=be(!1),s=me(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(r,i)=>(d(),m("div",{class:ve(["VPNavScreenMenuGroup",{open:n.value}])},[p("button",{class:"button","aria-controls":v(s),"aria-expanded":n.value,onClick:o},[p("span",i_,se(e.text),1),E(Zd,{class:"button-icon"})],8,r_),p("div",{id:v(s),class:"items"},[(d(!0),m(Q,null,Ce(e.items,l=>(d(),m(Q,{key:l.text},["link"in l?(d(),m("div",{key:l.text,class:"item"},[E(Pi,{text:l.text,link:l.link},null,8,["text","link"])])):(d(),m("div",c_,[E(o_,{text:l.text,items:l.items},null,8,["text","items"])]))],64))),128))],8,l_)],2))}});var u_=L(a_,[["__scopeId","data-v-4e1ea8d2"]]);const f_={key:0,class:"VPNavScreenMenu"},d_=B({__name:"VPNavScreenMenu",setup(e){const{theme:t}=ce();return(n,s)=>v(t).nav?(d(),m("nav",f_,[(d(!0),m(Q,null,Ce(v(t).nav,o=>(d(),m(Q,{key:o.text},["link"in o?(d(),J(qd,{key:0,text:o.text,link:o.link},null,8,["text","link"])):(d(),J(u_,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):q("",!0)}});const __=e=>(Re("data-v-03f5dbc0"),e=e(),De(),e),h_={key:0,class:"VPNavScreenAppearance"},p_=__(()=>p("p",{class:"text"},"Appearance",-1)),v_=B({__name:"VPNavScreenAppearance",setup(e){const{site:t}=ce();return(n,s)=>v(t).appearance?(d(),m("div",h_,[p_,E(ro)])):q("",!0)}});var m_=L(v_,[["__scopeId","data-v-03f5dbc0"]]);const g_={class:"list"},y_=["href"],b_=B({__name:"VPNavScreenTranslations",setup(e){const{theme:t}=ce(),n=be(!1);function s(){n.value=!n.value}return(o,r)=>v(t).localeLinks?(d(),m("div",{key:0,class:ve(["VPNavScreenTranslations",{open:n.value}])},[p("button",{class:"title",onClick:s},[E(xi,{class:"icon lang"}),Be(" "+se(v(t).localeLinks.text)+" ",1),E(wi,{class:"icon chevron"})]),p("ul",g_,[(d(!0),m(Q,null,Ce(v(t).localeLinks.items,i=>(d(),m("li",{key:i.link,class:"item"},[p("a",{class:"link",href:i.link},se(i.text),9,y_)]))),128))])],2)):q("",!0)}});var w_=L(b_,[["__scopeId","data-v-2820938e"]]);const x_=B({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=ce();return(n,s)=>v(t).socialLinks?(d(),J(io,{key:0,class:"VPNavScreenSocialLinks",links:v(t).socialLinks},null,8,["links"])):q("",!0)}});const $_={class:"container"},P_=B({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=be(null);function n(){jd(t.value,{reserveScrollBarGap:!0})}function s(){Kd()}return(o,r)=>(d(),J(os,{name:"fade",onEnter:n,onAfterLeave:s},{default:j(()=>[e.open?(d(),m("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t},[p("div",$_,[E(d_,{class:"menu"}),E(w_,{class:"translations"}),E(m_,{class:"appearance"}),E(x_,{class:"social-links"})])],512)):q("",!0)]),_:1}))}});var k_=L(P_,[["__scopeId","data-v-031c365f"]]);const C_=B({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:s}=Ta(),{hasSidebar:o}=Je();return Zs("close-screen",n),(r,i)=>(d(),m("header",{class:ve(["VPNav",{"no-sidebar":!v(o)}])},[E(Bd,{"is-screen-open":v(t),onToggleScreen:v(s)},null,8,["is-screen-open","onToggleScreen"]),E(k_,{open:v(t)},null,8,["open"])],2))}});var S_=L(C_,[["__scopeId","data-v-0e356168"]]);const V_={},E_={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},T_=p("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),L_=p("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),M_=p("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),A_=p("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),I_=[T_,L_,M_,A_];function N_(e,t){return d(),m("svg",E_,I_)}var B_=L(V_,[["render",N_]]);const F_=e=>(Re("data-v-92b0f14a"),e=e(),De(),e),O_={key:0,class:"VPLocalNav"},H_=["aria-expanded"],R_=F_(()=>p("span",{class:"menu-text"},"Menu",-1)),D_=B({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{hasSidebar:t}=Je();function n(){window.scrollTo({top:0,left:0,behavior:"smooth"})}return(s,o)=>v(t)?(d(),m("div",O_,[p("button",{class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:o[0]||(o[0]=r=>s.$emit("open-menu"))},[E(B_,{class:"menu-icon"}),R_],8,H_),p("a",{class:"top-link",href:"#",onClick:n}," Return to top ")])):q("",!0)}});var z_=L(D_,[["__scopeId","data-v-92b0f14a"]]);const U_={},j_={version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},K_=p("path",{d:"M19,2H5C3.3,2,2,3.3,2,5v14c0,1.7,1.3,3,3,3h14c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2z M20,19c0,0.6-0.4,1-1,1H5c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h14c0.6,0,1,0.4,1,1V19z"},null,-1),W_=p("path",{d:"M16,11h-3V8c0-0.6-0.4-1-1-1s-1,0.4-1,1v3H8c-0.6,0-1,0.4-1,1s0.4,1,1,1h3v3c0,0.6,0.4,1,1,1s1-0.4,1-1v-3h3c0.6,0,1-0.4,1-1S16.6,11,16,11z"},null,-1),q_=[K_,W_];function G_(e,t){return d(),m("svg",j_,q_)}var Y_=L(U_,[["render",G_]]);const J_={},X_={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 24 24"},Q_=p("path",{d:"M19,2H5C3.3,2,2,3.3,2,5v14c0,1.7,1.3,3,3,3h14c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2zM20,19c0,0.6-0.4,1-1,1H5c-0.6,0-1-0.4-1-1V5c0-0.6,0.4-1,1-1h14c0.6,0,1,0.4,1,1V19z"},null,-1),Z_=p("path",{d:"M16,11H8c-0.6,0-1,0.4-1,1s0.4,1,1,1h8c0.6,0,1-0.4,1-1S16.6,11,16,11z"},null,-1),eh=[Q_,Z_];function th(e,t){return d(),m("svg",X_,eh)}var nh=L(J_,[["render",th]]);const sh={class:"link-text"},oh=B({__name:"VPSidebarLink",props:{item:null},setup(e){const{page:t}=ce(),n=dt("close-sidebar");return(s,o)=>(d(),J(Ut,{class:ve({active:v(pn)(v(t).relativePath,e.item.link)}),href:e.item.link,onClick:v(n)},{default:j(()=>[p("span",sh,se(e.item.text),1)]),_:1},8,["class","href","onClick"]))}});var rh=L(oh,[["__scopeId","data-v-f53f775e"]]);const ih=["role"],lh={class:"title-text"},ch={class:"action"},ah={class:"items"},uh=B({__name:"VPSidebarGroup",props:{text:null,items:null,collapsible:{type:Boolean},collapsed:{type:Boolean}},setup(e){const t=e,n=be(!1);Jn(()=>{n.value=!!(t.collapsible&&t.collapsed)});function s(){t.collapsible&&(n.value=!n.value)}return(o,r)=>(d(),m("section",{class:ve(["VPSidebarGroup",{collapsible:e.collapsible,collapsed:n.value}])},[e.text?(d(),m("div",{key:0,class:"title",role:e.collapsible?"button":void 0,onClick:s},[p("h2",lh,se(e.text),1),p("div",ch,[E(nh,{class:"icon minus"}),E(Y_,{class:"icon plus"})])],8,ih)):q("",!0),p("div",ah,[(d(!0),m(Q,null,Ce(e.items,i=>(d(),J(rh,{key:i.link,item:i},null,8,["item"]))),128))])],2))}});var fh=L(uh,[["__scopeId","data-v-1f69a7ed"]]);const dh=e=>(Re("data-v-55e4c7db"),e=e(),De(),e),_h={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},hh=dh(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ph=B({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const t=e,{sidebar:n,hasSidebar:s}=Je();let o=be(null);return Fl(async()=>{var r;t.open&&(await _n(),(r=o.value)==null||r.focus())}),(r,i)=>v(s)?(d(),m("aside",{key:0,class:ve(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:i[0]||(i[0]=Zc(()=>{},["stop"]))},[p("nav",_h,[hh,(d(!0),m(Q,null,Ce(v(n),l=>(d(),m("div",{key:l.text,class:"group"},[E(fh,{text:l.text,items:l.items,collapsible:l.collapsible,collapsed:l.collapsed},null,8,["text","items","collapsible","collapsed"])]))),128))])],2)):q("",!0)}});var vh=L(ph,[["__scopeId","data-v-55e4c7db"]]);function mh(){const{page:e}=ce();Te&&_t(()=>e.value.relativePath,()=>{_n(()=>{document.querySelectorAll('.vp-doc div[class*="language-"]>span.copy').forEach(yh)})},{immediate:!0,flush:"post"})}async function gh(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),o=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),o&&(s.removeAllRanges(),s.addRange(o)),n&&n.focus()}}function yh(e){e.onclick=()=>{const t=e.parentElement;if(!t)return;const n=t.classList.contains("language-sh")||t.classList.contains("language-bash");let{innerText:s=""}=t;n&&(s=s.replace(/^ *\$ /gm,"")),gh(s).then(()=>{e.classList.add("copied"),setTimeout(()=>{e.classList.remove("copied")},3e3)})}}const is=e=>(Re("data-v-689a417a"),e=e(),De(),e),bh={class:"NotFound"},wh=is(()=>p("p",{class:"code"},"404",-1)),xh=is(()=>p("h1",{class:"title"},"PAGE NOT FOUND",-1)),$h=is(()=>p("div",{class:"divider"},null,-1)),Ph=is(()=>p("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),kh={class:"action"},Ch=["href"],Sh=B({__name:"NotFound",setup(e){const{site:t}=ce();return(n,s)=>(d(),m("div",bh,[wh,xh,$h,Ph,p("div",kh,[p("a",{class:"link",href:v(t).base,"aria-label":"go to home"}," Take me home ",8,Ch)])]))}});var Ns=L(Sh,[["__scopeId","data-v-689a417a"]]);const Vh={},Eh={class:"VPPage"};function Th(e,t){const n=es("Content");return d(),m("div",Eh,[E(n)])}var Lh=L(Vh,[["render",Th]]);const Mh=B({__name:"VPButton",props:{tag:null,size:null,theme:null,text:null,href:null},setup(e){const t=e,n=me(()=>{var r,i;return[(r=t.size)!=null?r:"medium",(i=t.theme)!=null?i:"brand"]}),s=me(()=>t.href&&/^[a-z]+:/i.test(t.href)),o=me(()=>t.tag?t.tag:t.href?"a":"button");return(r,i)=>(d(),J(ts(v(o)),{class:ve(["VPButton",v(n)]),href:e.href?v(Ot)(e.href):void 0,target:v(s)?"_blank":void 0,rel:v(s)?"noopener noreferrer":void 0},{default:j(()=>[Be(se(e.text),1)]),_:1},8,["class","href","target","rel"]))}});var Ah=L(Mh,[["__scopeId","data-v-be07d988"]]);const Ih=e=>(Re("data-v-5d590baf"),e=e(),De(),e),Nh={class:"container"},Bh={class:"main"},Fh={key:0,class:"name"},Oh={class:"clip"},Hh={key:1,class:"text"},Rh={key:2,class:"tagline"},Dh={key:3,class:"actions"},zh={key:0,class:"image"},Uh={class:"image-container"},jh=Ih(()=>p("div",{class:"image-bg"},null,-1)),Kh=B({__name:"VPHero",props:{name:null,text:null,tagline:null,image:null,actions:null},setup(e){return(t,n)=>(d(),m("div",{class:ve(["VPHero",{"has-image":e.image}])},[p("div",Nh,[p("div",Bh,[e.name?(d(),m("h1",Fh,[p("span",Oh,se(e.name),1)])):q("",!0),e.text?(d(),m("p",Hh,se(e.text),1)):q("",!0),e.tagline?(d(),m("p",Rh,se(e.tagline),1)):q("",!0),e.actions?(d(),m("div",Dh,[(d(!0),m(Q,null,Ce(e.actions,s=>(d(),m("div",{key:s.link,class:"action"},[E(Ah,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link},null,8,["theme","text","href"])]))),128))])):q("",!0)]),e.image?(d(),m("div",zh,[p("div",Uh,[jh,E(gi,{class:"image-src",image:e.image},null,8,["image"])])])):q("",!0)])],2))}});var Wh=L(Kh,[["__scopeId","data-v-5d590baf"]]);const qh=B({__name:"VPHomeHero",setup(e){const{frontmatter:t}=ce();return(n,s)=>v(t).hero?(d(),J(Wh,{key:0,class:"VPHomeHero",name:v(t).hero.name,text:v(t).hero.text,tagline:v(t).hero.tagline,image:v(t).hero.image,actions:v(t).hero.actions},null,8,["name","text","tagline","image","actions"])):q("",!0)}});const Gh={class:"VPFeature"},Yh={key:0,class:"icon"},Jh={class:"title"},Xh={class:"details"},Qh=B({__name:"VPFeature",props:{icon:null,title:null,details:null},setup(e){return(t,n)=>(d(),m("article",Gh,[e.icon?(d(),m("div",Yh,se(e.icon),1)):q("",!0),p("h2",Jh,se(e.title),1),p("p",Xh,se(e.details),1)]))}});var Zh=L(Qh,[["__scopeId","data-v-3aa4af24"]]);const e1={key:0,class:"VPFeatures"},t1={class:"container"},n1={class:"items"},s1=B({__name:"VPFeatures",props:{features:null},setup(e){const t=e,n=me(()=>{const s=t.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s%2===0)return"grid-4"}else return});return(s,o)=>e.features?(d(),m("div",e1,[p("div",t1,[p("div",n1,[(d(!0),m(Q,null,Ce(e.features,r=>(d(),m("div",{key:r.title,class:ve(["item",[v(n)]])},[E(Zh,{icon:r.icon,title:r.title,details:r.details},null,8,["icon","title","details"])],2))),128))])])])):q("",!0)}});var o1=L(s1,[["__scopeId","data-v-1812ea91"]]);const r1=B({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=ce();return(n,s)=>v(t).features?(d(),J(o1,{key:0,class:"VPHomeFeatures",features:v(t).features},null,8,["features"])):q("",!0)}});const i1={class:"VPHome"},l1=B({__name:"VPHome",setup(e){return(t,n)=>{const s=es("Content");return d(),m("div",i1,[R(t.$slots,"home-hero-before",{},void 0,!0),E(qh),R(t.$slots,"home-hero-after",{},void 0,!0),R(t.$slots,"home-features-before",{},void 0,!0),E(r1),R(t.$slots,"home-features-after",{},void 0,!0),E(s)])}}});var c1=L(l1,[["__scopeId","data-v-3e80d098"]]),or;const vn=typeof window!="undefined";vn&&((or=window==null?void 0:window.navigator)==null?void 0:or.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function a1(e){return qi()?(Gi(e),!0):!1}function u1(e,t=!0){ii()?Ur(e):t?e():_n(e)}const f1=vn?window:void 0;vn&&window.document;vn&&window.navigator;vn&&window.location;function rr(e,t={}){const{window:n=f1}=t,s=Boolean(n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const r=be(!1),i=()=>{!s||(o||(o=n.matchMedia(e)),r.value=o.matches)};return u1(()=>{i(),o&&("addEventListener"in o?o.addEventListener("change",i):o.addListener(i),a1(()=>{"removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i)}))}),r}const Bs=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Fs="__vueuse_ssr_handlers__";Bs[Fs]=Bs[Fs]||{};Bs[Fs];var ir;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(ir||(ir={}));function d1(){const{hasSidebar:e}=Je(),t=rr("(min-width: 960px)"),n=rr("(min-width: 1280px)");return{isAsideEnabled:me(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const _1=56;function h1(){const{page:e}=ce();return{hasOutline:me(()=>e.value.headers.length>0)}}function p1(e){return ki(v1(e))}function v1(e){e=e.map(n=>Object.assign({},n));let t;for(const n of e)n.level===2?t=n:t&&n.level<=3&&(t.children||(t.children=[])).push(n);return e.filter(n=>n.level===2)}function ki(e){return e.map(t=>({text:t.title,link:`#${t.slug}`,children:t.children?ki(t.children):void 0,hidden:t.hidden}))}function m1(e,t){const{isAsideEnabled:n}=d1(),s=xa(r,100);let o=null;nt(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),jr(()=>{i(location.hash)}),Ct(()=>{window.removeEventListener("scroll",s)});function r(){if(!n.value)return;const l=[].slice.call(e.value.querySelectorAll(".outline-link")),c=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(C=>l.some(N=>N.hash===C.hash&&C.offsetParent!==null)),f=window.scrollY,_=window.innerHeight,g=document.body.offsetHeight,w=f+_===g;if(c.length&&w){i(c[c.length-1].hash);return}for(let C=0;C(Re("data-v-51e5a8ce"),e=e(),De(),e),b1={class:"content"},w1={class:"outline-title"},x1={"aria-labelledby":"doc-outline-aria-label"},$1=y1(()=>p("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),P1={class:"root"},k1=["href"],C1={key:0},S1=["href"],V1=B({__name:"VPDocAsideOutline",setup(e){const{page:t,frontmatter:n,theme:s}=ce(),{hasOutline:o}=h1(),r=be(),i=be();m1(r,i);const l=me(()=>p1(t.value.headers));function c({target:f}){const _="#"+f.href.split("#")[1],g=document.querySelector(_);g==null||g.focus()}return(f,_)=>(d(),m("div",{class:ve(["VPDocAsideOutline",{"has-outline":v(o)}]),ref_key:"container",ref:r},[p("div",b1,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",w1,se(v(s).outlineTitle||"On this page"),1),p("nav",x1,[$1,p("ul",P1,[(d(!0),m(Q,null,Ce(v(l),({text:g,link:w,children:C,hidden:N})=>So((d(),m("li",null,[p("a",{class:"outline-link",href:w,onClick:c},se(g),9,k1),C&&v(n).outline==="deep"?(d(),m("ul",C1,[(d(!0),m(Q,null,Ce(C,({text:z,link:D,hidden:y})=>So((d(),m("li",null,[p("a",{class:"outline-link nested",href:D,onClick:c},se(z),9,S1)],512)),[[Yo,!y]])),256))])):q("",!0)],512)),[[Yo,!N]])),256))])])])],2))}});var E1=L(V1,[["__scopeId","data-v-51e5a8ce"]]);const T1={class:"VPDocAsideCarbonAds"},L1=B({__name:"VPDocAsideCarbonAds",setup(e){const t=()=>null;return(n,s)=>(d(),m("div",T1,[E(v(t))]))}});const M1=e=>(Re("data-v-779d834d"),e=e(),De(),e),A1={class:"VPDocAside"},I1=M1(()=>p("div",{class:"spacer"},null,-1)),N1=B({__name:"VPDocAside",setup(e){const{page:t,theme:n}=ce();return(s,o)=>(d(),m("div",A1,[R(s.$slots,"aside-top",{},void 0,!0),R(s.$slots,"aside-outline-before",{},void 0,!0),v(t).headers.length?(d(),J(E1,{key:0})):q("",!0),R(s.$slots,"aside-outline-after",{},void 0,!0),I1,R(s.$slots,"aside-ads-before",{},void 0,!0),v(n).carbonAds?(d(),J(L1,{key:1})):q("",!0),R(s.$slots,"aside-ads-after",{},void 0,!0),R(s.$slots,"aside-bottom",{},void 0,!0)]))}});var B1=L(N1,[["__scopeId","data-v-779d834d"]]);function F1(){const{theme:e,page:t}=ce();return me(()=>{const{text:n="Edit this page",pattern:s}=e.value.editLink||{},{relativePath:o}=t.value;return{url:s.replace(/:path/g,o),text:n}})}function O1(){const{page:e,theme:t}=ce();return me(()=>{const n=mi(t.value.sidebar,e.value.relativePath),s=$a(n),o=s.findIndex(r=>pn(e.value.relativePath,r.link));return{prev:s[o-1],next:s[o+1]}})}const H1={},R1={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},D1=p("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),z1=p("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),U1=[D1,z1];function j1(e,t){return d(),m("svg",R1,U1)}var K1=L(H1,[["render",j1]]);const W1={class:"VPLastUpdated"},q1=["datatime"],G1=B({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n}=ce(),s=new Date(n.value.lastUpdated),o=s.toISOString(),r=be("");return nt(()=>{Jn(()=>{r.value=s.toLocaleString(window.navigator.language)})}),(i,l)=>{var c;return d(),m("p",W1,[Be(se((c=v(t).lastUpdatedText)!=null?c:"Last updated")+": ",1),p("time",{datatime:v(o)},se(r.value),9,q1)])}}});var Y1=L(G1,[["__scopeId","data-v-0ce8c960"]]);const Ci=e=>(Re("data-v-04568844"),e=e(),De(),e),J1={class:"VPDocFooter"},X1={class:"edit-info"},Q1={key:0,class:"edit-link"},Z1={key:1,class:"last-updated"},ep={key:0,class:"prev-next"},tp={class:"pager"},np=["href"],sp=Ci(()=>p("span",{class:"desc"},"Previous page",-1)),op={class:"title"},rp=["href"],ip=Ci(()=>p("span",{class:"desc"},"Next page",-1)),lp={class:"title"},cp=B({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:s}=ce(),o=F1(),r=O1(),i=me(()=>n.value.lastUpdated&&s.value.lastUpdated!==!1);return(l,c)=>(d(),m("footer",J1,[p("div",X1,[v(t).editLink&&v(s).editLink!==!1?(d(),m("div",Q1,[E(Ut,{class:"edit-link-button",href:v(o).url,"no-icon":!0},{default:j(()=>[E(K1,{class:"edit-link-icon"}),Be(" "+se(v(o).text),1)]),_:1},8,["href"])])):q("",!0),v(i)?(d(),m("div",Z1,[E(Y1)])):q("",!0)]),v(r).prev||v(r).next?(d(),m("div",ep,[p("div",tp,[v(r).prev?(d(),m("a",{key:0,class:"pager-link prev",href:v(Is)(v(r).prev.link)},[sp,p("span",op,se(v(r).prev.text),1)],8,np)):q("",!0)]),p("div",{class:ve(["pager",{"has-prev":v(r).prev}])},[v(r).next?(d(),m("a",{key:0,class:"pager-link next",href:v(Is)(v(r).next.link)},[ip,p("span",lp,se(v(r).next.text),1)],8,rp)):q("",!0)],2)])):q("",!0)]))}});var ap=L(cp,[["__scopeId","data-v-04568844"]]);const up=e=>(Re("data-v-79ca2460"),e=e(),De(),e),fp={class:"container"},dp={class:"aside"},_p=up(()=>p("div",{class:"aside-curtain"},null,-1)),hp={class:"aside-container"},pp={class:"aside-content"},vp={class:"content"},mp={class:"content-container"},gp={class:"main"},yp=B({__name:"VPDoc",setup(e){const{path:t}=zt(),{hasSidebar:n}=Je(),s=t.replace(/[./]+/g,"_").replace(/_html$/,"");return(o,r)=>{const i=es("Content");return d(),m("div",{class:ve(["VPDoc",{"has-sidebar":v(n)}])},[p("div",fp,[p("div",dp,[_p,p("div",hp,[p("div",pp,[E(B1,null,{"aside-top":j(()=>[R(o.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":j(()=>[R(o.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":j(()=>[R(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":j(()=>[R(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":j(()=>[R(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":j(()=>[R(o.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])]),p("div",vp,[p("div",mp,[R(o.$slots,"doc-before",{},void 0,!0),p("main",gp,[E(i,{class:ve(["vp-doc",v(s)])},null,8,["class"])]),E(ap),R(o.$slots,"doc-after",{},void 0,!0)])])])],2)}}});var bp=L(yp,[["__scopeId","data-v-79ca2460"]]);const wp=B({__name:"VPContent",setup(e){const t=zt(),{frontmatter:n}=ce(),{hasSidebar:s}=Je();return mh(),(o,r)=>(d(),m("div",{class:ve(["VPContent",{"has-sidebar":v(s),"is-home":v(n).layout==="home"}]),id:"VPContent"},[v(t).component===Ns?(d(),J(Ns,{key:0})):v(n).layout==="page"?(d(),J(Lh,{key:1})):v(n).layout==="home"?(d(),J(c1,{key:2},{"home-hero-before":j(()=>[R(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-after":j(()=>[R(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":j(()=>[R(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":j(()=>[R(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):(d(),J(bp,{key:3},{"doc-before":j(()=>[R(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":j(()=>[R(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":j(()=>[R(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":j(()=>[R(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":j(()=>[R(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":j(()=>[R(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":j(()=>[R(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":j(()=>[R(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});var xp=L(wp,[["__scopeId","data-v-a4c57a06"]]);const $p={class:"container"},Pp={class:"message"},kp={class:"copyright"},Cp=B({__name:"VPFooter",setup(e){const{theme:t}=ce(),{hasSidebar:n}=Je();return(s,o)=>v(t).footer?(d(),m("footer",{key:0,class:ve(["VPFooter",{"has-sidebar":v(n)}])},[p("div",$p,[p("p",Pp,se(v(t).footer.message),1),p("p",kp,se(v(t).footer.copyright),1)])],2)):q("",!0)}});var Sp=L(Cp,[["__scopeId","data-v-5b331722"]]);const Vp={class:"Layout"},Ep=B({__name:"Layout",setup(e){const{isOpen:t,open:n,close:s}=Je();return Pa(t,s),Zs("close-sidebar",s),(o,r)=>(d(),m("div",Vp,[R(o.$slots,"layout-top",{},void 0,!0),E(Ca),E(Ea,{class:"backdrop",show:v(t),onClick:v(s)},null,8,["show","onClick"]),E(S_),E(z_,{open:v(t),onOpenMenu:v(n)},null,8,["open","onOpenMenu"]),E(vh,{open:v(t)},null,8,["open"]),E(xp,null,{"home-hero-before":j(()=>[R(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-after":j(()=>[R(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":j(()=>[R(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":j(()=>[R(o.$slots,"home-features-after",{},void 0,!0)]),"doc-before":j(()=>[R(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":j(()=>[R(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":j(()=>[R(o.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":j(()=>[R(o.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":j(()=>[R(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":j(()=>[R(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":j(()=>[R(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":j(()=>[R(o.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),E(Sp),R(o.$slots,"layout-bottom",{},void 0,!0)]))}});var Tp=L(Ep,[["__scopeId","data-v-6b5fd0a9"]]);const Rn={Layout:Tp,NotFound:Ns};function Lp(e,t){let n=[],s=!0;const o=r=>{if(s){s=!1;return}const i=[],l=Math.min(n.length,r.length);for(let c=0;cdocument.head.removeChild(c)),r.slice(l).forEach(c=>{const f=cr(c);document.head.appendChild(f),i.push(f)}),n=i};Jn(()=>{const r=e.data,i=t.value,l=r&&r.description,c=r&&r.frontmatter.head;document.title=di(i,r),document.querySelector("meta[name=description]").setAttribute("content",l||i.description),o([...c?Ap(c):[]])})}function cr([e,t,n]){const s=document.createElement(e);for(const o in t)s.setAttribute(o,t[o]);return n&&(s.innerHTML=n),s}function Mp(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Ap(e){return e.filter(t=>!Mp(t))}const gs=new Set,Si=()=>document.createElement("link"),Ip=e=>{const t=Si();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Np=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let kn;const Bp=Te&&(kn=Si())&&kn.relList&&kn.relList.supports&&kn.relList.supports("prefetch")?Ip:Np;function Fp(){if(!Te||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(r=>{r.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!gs.has(c)){gs.add(c);const f=_i(c);Bp(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(r=>{const{target:i,hostname:l,pathname:c}=r,f=c.match(/\.\w+$/);f&&f[0]!==".html"||i!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(r):gs.add(c))})})};nt(s);const o=zt();_t(()=>o.path,s),Ct(()=>{n&&n.disconnect()})}const Op=B({setup(e,{slots:t}){const n=be(!1);return nt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}}),Hp=Rn.NotFound||(()=>"404 Not Found"),Rp={name:"VitePressApp",setup(){const{site:e}=ce();return nt(()=>{_t(()=>e.value.lang,t=>{document.documentElement.lang=t},{immediate:!0})}),Fp(),()=>Bn(Rn.Layout)}};function Dp(){const e=Up(),t=zp();t.provide(pi,e);const n=da(e.route);return t.provide(hi,n),t.component("Content",va),t.component("ClientOnly",Op),Object.defineProperty(t.config.globalProperties,"$frontmatter",{get(){return n.frontmatter.value}}),Rn.enhanceApp&&Rn.enhanceApp({app:t,router:e,siteData:hn}),{app:t,router:e,data:n}}function zp(){return na(Rp)}function Up(){let e=Te,t;return ha(n=>{let s=_i(n);return e&&(t=s),(e||t===s)&&(s=s.replace(/\.js$/,".lean.js")),Te&&(e=!1),Mi(()=>import(s),[])},Hp)}if(Te){const{app:e,router:t,data:n}=Dp();t.go().then(()=>{Lp(t.route,n.site),e.mount("#app")})}export{L as _,p as a,E as b,m as c,Dp as createApp,J as d,q as e,vc as f,nt as g,d as o,be as r,v as u}; diff --git a/assets/chunks/screen.9127d83c.js b/assets/chunks/screen.9127d83c.js new file mode 100644 index 0000000..ed5af22 --- /dev/null +++ b/assets/chunks/screen.9127d83c.js @@ -0,0 +1,3018 @@ +import{_ as sc,r as oc,g as ac,o as lc,c as cc}from"../app.1b5fc780.js";/** + * @license + * Copyright 2010-2022 Three.js Authors + * SPDX-License-Identifier: MIT + */const Js="137",hc=0,_o=1,uc=2,il=1,dc=2,Ai=3,Di=0,it=1,si=2,rl=1,ln=0,Li=1,vo=2,yo=3,Mo=4,fc=5,Zn=100,pc=101,mc=102,bo=103,wo=104,gc=200,xc=201,_c=202,vc=203,sl=204,ol=205,yc=206,Mc=207,bc=208,wc=209,Sc=210,Ec=0,Tc=1,Ac=2,Fs=3,Cc=4,Lc=5,Rc=6,Pc=7,Nr=0,Dc=1,Ic=2,cn=0,Fc=1,Nc=2,Bc=3,zc=4,Uc=5,al=300,Vi=301,Gi=302,Ns=303,Bs=304,Br=306,Zs=307,zs=1e3,St=1001,Us=1002,rt=1003,So=1004,Eo=1005,ut=1006,Oc=1007,zr=1008,hn=1009,Hc=1010,Vc=1011,Ii=1012,Gc=1013,Ar=1014,Sn=1015,ti=1016,kc=1017,Wc=1018,ni=1020,qc=1021,Xc=1022,xt=1023,jc=1024,Yc=1025,Tn=1026,oi=1027,Jc=1028,Zc=1029,$c=1030,Kc=1031,Qc=1033,jr=33776,Yr=33777,Jr=33778,Zr=33779,To=35840,Ao=35841,Co=35842,Lo=35843,eh=36196,Ro=37492,Po=37496,Do=37808,Io=37809,Fo=37810,No=37811,Bo=37812,zo=37813,Uo=37814,Oo=37815,Ho=37816,Vo=37817,Go=37818,ko=37819,Wo=37820,qo=37821,Xo=36492,th=2200,nh=2201,ih=2202,Lr=2300,Rr=2301,$r=2302,$n=2400,Kn=2401,Pr=2402,$s=2500,ll=2501,rh=0,mn=3e3,je=3001,sh=3200,oh=3201,ci=0,ah=1,Kr=7680,lh=519,Fi=35044,Dr=35048,jo="300 es",Os=1035;class Cn{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const i=this._listeners[e];if(i!==void 0){const r=i.indexOf(t);r!==-1&&i.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const n=this._listeners[e.type];if(n!==void 0){e.target=this;const i=n.slice(0);for(let r=0,o=i.length;r>8&255]+ht[s>>16&255]+ht[s>>24&255]+"-"+ht[e&255]+ht[e>>8&255]+"-"+ht[e>>16&15|64]+ht[e>>24&255]+"-"+ht[t&63|128]+ht[t>>8&255]+"-"+ht[t>>16&255]+ht[t>>24&255]+ht[n&255]+ht[n>>8&255]+ht[n>>16&255]+ht[n>>24&255]).toUpperCase()}function wt(s,e,t){return Math.max(e,Math.min(t,s))}function ch(s,e){return(s%e+e)%e}function es(s,e,t){return(1-t)*s+t*e}function Yo(s){return(s&s-1)===0&&s!==0}function hh(s){return Math.pow(2,Math.floor(Math.log(s)/Math.LN2))}class Z{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),i=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*n-o*i+e.x,this.y=r*i+o*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}Z.prototype.isVector2=!0;class dt{constructor(){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.")}set(e,t,n,i,r,o,a,c,l){const h=this.elements;return h[0]=e,h[1]=i,h[2]=a,h[3]=t,h[4]=r,h[5]=c,h[6]=n,h[7]=o,h[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,o=n[0],a=n[3],c=n[6],l=n[1],h=n[4],u=n[7],d=n[2],p=n[5],g=n[8],x=i[0],v=i[3],m=i[6],f=i[1],T=i[4],y=i[7],E=i[2],A=i[5],L=i[8];return r[0]=o*x+a*f+c*E,r[3]=o*v+a*T+c*A,r[6]=o*m+a*y+c*L,r[1]=l*x+h*f+u*E,r[4]=l*v+h*T+u*A,r[7]=l*m+h*y+u*L,r[2]=d*x+p*f+g*E,r[5]=d*v+p*T+g*A,r[8]=d*m+p*y+g*L,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8];return t*o*h-t*a*l-n*r*h+n*a*c+i*r*l-i*o*c}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],u=h*o-a*l,d=a*c-h*r,p=l*r-o*c,g=t*u+n*d+i*p;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const x=1/g;return e[0]=u*x,e[1]=(i*l-h*n)*x,e[2]=(a*n-i*o)*x,e[3]=d*x,e[4]=(h*t-i*c)*x,e[5]=(i*r-a*t)*x,e[6]=p*x,e[7]=(n*c-l*t)*x,e[8]=(o*t-n*r)*x,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,r,o,a){const c=Math.cos(r),l=Math.sin(r);return this.set(n*c,n*l,-n*(c*o+l*a)+o+e,-i*l,i*c,-i*(-l*o+c*a)+a+t,0,0,1),this}scale(e,t){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),i=this.elements,r=i[0],o=i[3],a=i[6],c=i[1],l=i[4],h=i[7];return i[0]=t*r+n*c,i[3]=t*o+n*l,i[6]=t*a+n*h,i[1]=-n*r+t*c,i[4]=-n*o+t*l,i[7]=-n*a+t*h,this}translate(e,t){const n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}dt.prototype.isMatrix3=!0;function cl(s){for(let e=s.length-1;e>=0;--e)if(s[e]>65535)return!0;return!1}function Ni(s){return document.createElementNS("http://www.w3.org/1999/xhtml",s)}const hl={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},Pt={h:0,s:0,l:0},Yi={h:0,s:0,l:0};function ts(s,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?s+(e-s)*6*t:t<1/2?e:t<2/3?s+(e-s)*6*(2/3-t):s}function ii(s){return s<.04045?s*.0773993808:Math.pow(s*.9478672986+.0521327014,2.4)}function ns(s){return s<.0031308?s*12.92:1.055*Math.pow(s,.41666)-.055}class me{constructor(e,t,n){return t===void 0&&n===void 0?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):typeof e=="number"?this.setHex(e):typeof e=="string"&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,this}setRGB(e,t,n){return this.r=e,this.g=t,this.b=n,this}setHSL(e,t,n){if(e=ch(e,1),t=wt(t,0,1),n=wt(n,0,1),t===0)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+t):n+t-n*t,r=2*n-i;this.r=ts(r,i,e+1/3),this.g=ts(r,i,e),this.b=ts(r,i,e-1/3)}return this}setStyle(e){function t(i){i!==void 0&&parseFloat(i)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let i;const r=n[1],o=n[2];switch(r){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\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,t(i[4]),this;if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\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,t(i[4]),this;break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){const a=parseFloat(i[1])/360,c=parseInt(i[2],10)/100,l=parseInt(i[3],10)/100;return t(i[4]),this.setHSL(a,c,l)}break}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){const i=n[1],r=i.length;if(r===3)return this.r=parseInt(i.charAt(0)+i.charAt(0),16)/255,this.g=parseInt(i.charAt(1)+i.charAt(1),16)/255,this.b=parseInt(i.charAt(2)+i.charAt(2),16)/255,this;if(r===6)return this.r=parseInt(i.charAt(0)+i.charAt(1),16)/255,this.g=parseInt(i.charAt(2)+i.charAt(3),16)/255,this.b=parseInt(i.charAt(4)+i.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this}setColorName(e){const t=hl[e.toLowerCase()];return t!==void 0?this.setHex(t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ii(e.r),this.g=ii(e.g),this.b=ii(e.b),this}copyLinearToSRGB(e){return this.r=ns(e.r),this.g=ns(e.g),this.b=ns(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return this.r*255<<16^this.g*255<<8^this.b*255<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(e){const t=this.r,n=this.g,i=this.b,r=Math.max(t,n,i),o=Math.min(t,n,i);let a,c;const l=(o+r)/2;if(o===r)a=0,c=0;else{const h=r-o;switch(c=l<=.5?h/(r+o):h/(2-r-o),r){case t:a=(n-i)/h+(n2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&e instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap){const t=Ni("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const i=n.getImageData(0,0,e.width,e.height),r=i.data;for(let o=0;o1)switch(this.wrapS){case zs:e.x=e.x-Math.floor(e.x);break;case St:e.x=e.x<0?0:1;break;case Us:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case zs:e.y=e.y-Math.floor(e.y);break;case St:e.y=e.y<0?0:1;break;case Us:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&this.version++}}lt.DEFAULT_IMAGE=void 0;lt.DEFAULT_MAPPING=al;lt.prototype.isTexture=!0;function is(s){return typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&s instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&s instanceof ImageBitmap?Ln.getDataURL(s):s.data?{data:Array.prototype.slice.call(s.data),width:s.width,height:s.height,type:s.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}class ke{constructor(e=0,t=0,n=0,i=1){this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*i+o[12]*r,this.y=o[1]*t+o[5]*n+o[9]*i+o[13]*r,this.z=o[2]*t+o[6]*n+o[10]*i+o[14]*r,this.w=o[3]*t+o[7]*n+o[11]*i+o[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,r;const c=e.elements,l=c[0],h=c[4],u=c[8],d=c[1],p=c[5],g=c[9],x=c[2],v=c[6],m=c[10];if(Math.abs(h-d)<.01&&Math.abs(u-x)<.01&&Math.abs(g-v)<.01){if(Math.abs(h+d)<.1&&Math.abs(u+x)<.1&&Math.abs(g+v)<.1&&Math.abs(l+p+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const T=(l+1)/2,y=(p+1)/2,E=(m+1)/2,A=(h+d)/4,L=(u+x)/4,j=(g+v)/4;return T>y&&T>E?T<.01?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(T),i=A/n,r=L/n):y>E?y<.01?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(y),n=A/i,r=j/i):E<.01?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(E),n=L/r,i=j/r),this.set(n,i,r,t),this}let f=Math.sqrt((v-g)*(v-g)+(u-x)*(u-x)+(d-h)*(d-h));return Math.abs(f)<.001&&(f=1),this.x=(v-g)/f,this.y=(u-x)/f,this.z=(d-h)/f,this.w=Math.acos((l+p+m-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}ke.prototype.isVector4=!0;class At extends Cn{constructor(e,t,n={}){super(),this.width=e,this.height=t,this.depth=1,this.scissor=new ke(0,0,e,t),this.scissorTest=!1,this.viewport=new ke(0,0,e,t),this.texture=new lt(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:e,height:t,depth:1},this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.internalFormat=n.internalFormat!==void 0?n.internalFormat:null,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:ut,this.depthBuffer=n.depthBuffer!==void 0?n.depthBuffer:!0,this.stencilBuffer=n.stencilBuffer!==void 0?n.stencilBuffer:!1,this.depthTexture=n.depthTexture!==void 0?n.depthTexture:null}setTexture(e){e.image={width:this.width,height:this.height,depth:this.depth},this.texture=e}setSize(e,t,n=1){(this.width!==e||this.height!==t||this.depth!==n)&&(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.image=Object.assign({},e.texture.image),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.depthTexture=e.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}At.prototype.isWebGLRenderTarget=!0;class dh extends At{constructor(e,t,n){super(e,t);const i=this.texture;this.texture=[];for(let r=0;r=0?1:-1,T=1-m*m;if(T>Number.EPSILON){const E=Math.sqrt(T),A=Math.atan2(E,m*f);v=Math.sin(v*A)/E,a=Math.sin(a*A)/E}const y=a*f;if(c=c*v+d*y,l=l*v+p*y,h=h*v+g*y,u=u*v+x*y,v===1-a){const E=1/Math.sqrt(c*c+l*l+h*h+u*u);c*=E,l*=E,h*=E,u*=E}}e[t]=c,e[t+1]=l,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,i,r,o){const a=n[i],c=n[i+1],l=n[i+2],h=n[i+3],u=r[o],d=r[o+1],p=r[o+2],g=r[o+3];return e[t]=a*g+h*u+c*p-l*d,e[t+1]=c*g+h*d+l*u-a*p,e[t+2]=l*g+h*p+a*d-c*u,e[t+3]=h*g-a*u-c*d-l*p,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){if(!(e&&e.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=e._x,i=e._y,r=e._z,o=e._order,a=Math.cos,c=Math.sin,l=a(n/2),h=a(i/2),u=a(r/2),d=c(n/2),p=c(i/2),g=c(r/2);switch(o){case"XYZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"YXZ":this._x=d*h*u+l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"ZXY":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u-d*p*g;break;case"ZYX":this._x=d*h*u-l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u+d*p*g;break;case"YZX":this._x=d*h*u+l*p*g,this._y=l*p*u+d*h*g,this._z=l*h*g-d*p*u,this._w=l*h*u-d*p*g;break;case"XZY":this._x=d*h*u-l*p*g,this._y=l*p*u-d*h*g,this._z=l*h*g+d*p*u,this._w=l*h*u+d*p*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],i=t[4],r=t[8],o=t[1],a=t[5],c=t[9],l=t[2],h=t[6],u=t[10],d=n+a+u;if(d>0){const p=.5/Math.sqrt(d+1);this._w=.25/p,this._x=(h-c)*p,this._y=(r-l)*p,this._z=(o-i)*p}else if(n>a&&n>u){const p=2*Math.sqrt(1+n-a-u);this._w=(h-c)/p,this._x=.25*p,this._y=(i+o)/p,this._z=(r+l)/p}else if(a>u){const p=2*Math.sqrt(1+a-n-u);this._w=(r-l)/p,this._x=(i+o)/p,this._y=.25*p,this._z=(c+h)/p}else{const p=2*Math.sqrt(1+u-n-a);this._w=(o-i)/p,this._x=(r+l)/p,this._y=(c+h)/p,this._z=.25*p}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(wt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e,t){return t!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,i=e._y,r=e._z,o=e._w,a=t._x,c=t._y,l=t._z,h=t._w;return this._x=n*h+o*a+i*l-r*c,this._y=i*h+o*c+r*a-n*l,this._z=r*h+o*l+n*c-i*a,this._w=o*h-n*a-i*c-r*l,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const n=this._x,i=this._y,r=this._z,o=this._w;let a=o*e._w+n*e._x+i*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=i,this._z=r,this;const c=1-a*a;if(c<=Number.EPSILON){const p=1-t;return this._w=p*o+t*this._w,this._x=p*n+t*this._x,this._y=p*i+t*this._y,this._z=p*r+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(c),h=Math.atan2(l,a),u=Math.sin((1-t)*h)/l,d=Math.sin(t*h)/l;return this._w=o*u+this._w*d,this._x=n*u+this._x*d,this._y=i*u+this._y*d,this._z=r*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(i),n*Math.sin(r),n*Math.cos(r),t*Math.sin(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}vt.prototype.isQuaternion=!0;class w{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e,t){return t!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e,t){return t!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Jo.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Jo.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*i,this.y=r[1]*t+r[4]*n+r[7]*i,this.z=r[2]*t+r[5]*n+r[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,i=this.z,r=e.elements,o=1/(r[3]*t+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*i+r[12])*o,this.y=(r[1]*t+r[5]*n+r[9]*i+r[13])*o,this.z=(r[2]*t+r[6]*n+r[10]*i+r[14])*o,this}applyQuaternion(e){const t=this.x,n=this.y,i=this.z,r=e.x,o=e.y,a=e.z,c=e.w,l=c*t+o*i-a*n,h=c*n+a*t-r*i,u=c*i+r*n-o*t,d=-r*t-o*n-a*i;return this.x=l*c+d*-r+h*-a-u*-o,this.y=h*c+d*-o+u*-r-l*-a,this.z=u*c+d*-a+l*-o-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,i=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*i,this.y=r[1]*t+r[5]*n+r[9]*i,this.z=r[2]*t+r[6]*n+r[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e,t){return t!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,i=e.y,r=e.z,o=t.x,a=t.y,c=t.z;return this.x=i*c-r*a,this.y=r*o-n*c,this.z=n*a-i*o,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return rs.copy(this).projectOnVector(e),this.sub(rs)}reflect(e){return this.sub(rs.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(wt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t,n){return n!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,n=Math.sqrt(1-e**2);return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}w.prototype.isVector3=!0;const rs=new w,Jo=new vt;class Lt{constructor(e=new w(1/0,1/0,1/0),t=new w(-1/0,-1/0,-1/0)){this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0;for(let c=0,l=e.length;cr&&(r=h),u>o&&(o=u),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(r,o,a),this}setFromBufferAttribute(e){let t=1/0,n=1/0,i=1/0,r=-1/0,o=-1/0,a=-1/0;for(let c=0,l=e.count;cr&&(r=h),u>o&&(o=u),d>a&&(a=d)}return this.min.set(t,n,i),this.max.set(r,o,a),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,yn),yn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(_i),Ji.subVectors(this.max,_i),Dn.subVectors(e.a,_i),In.subVectors(e.b,_i),Fn.subVectors(e.c,_i),Qt.subVectors(In,Dn),en.subVectors(Fn,In),Mn.subVectors(Dn,Fn);let t=[0,-Qt.z,Qt.y,0,-en.z,en.y,0,-Mn.z,Mn.y,Qt.z,0,-Qt.x,en.z,0,-en.x,Mn.z,0,-Mn.x,-Qt.y,Qt.x,0,-en.y,en.x,0,-Mn.y,Mn.x,0];return!os(t,Dn,In,Fn,Ji)||(t=[1,0,0,0,1,0,0,0,1],!os(t,Dn,In,Fn,Ji))?!1:(Zi.crossVectors(Qt,en),t=[Zi.x,Zi.y,Zi.z],os(t,Dn,In,Fn,Ji))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return yn.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=this.getSize(yn).length()*.5,e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(qt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),qt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),qt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),qt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),qt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),qt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),qt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),qt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(qt),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}Lt.prototype.isBox3=!0;const qt=[new w,new w,new w,new w,new w,new w,new w,new w],yn=new w,ss=new Lt,Dn=new w,In=new w,Fn=new w,Qt=new w,en=new w,Mn=new w,_i=new w,Ji=new w,Zi=new w,bn=new w;function os(s,e,t,n,i){for(let r=0,o=s.length-3;r<=o;r+=3){bn.fromArray(s,r);const a=i.x*Math.abs(bn.x)+i.y*Math.abs(bn.y)+i.z*Math.abs(bn.z),c=e.dot(bn),l=t.dot(bn),h=n.dot(bn);if(Math.max(-Math.max(c,l,h),Math.min(c,l,h))>a)return!1}return!0}const fh=new Lt,Zo=new w,$i=new w,as=new w;class hi{constructor(e=new w,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;t!==void 0?n.copy(t):fh.setFromPoints(e).getCenter(n);let i=0;for(let r=0,o=e.length;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){as.subVectors(e,this.center);const t=as.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.add(as.multiplyScalar(i/n)),this.radius+=i}return this}union(e){return this.center.equals(e.center)===!0?$i.set(0,0,1).multiplyScalar(e.radius):$i.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(Zo.copy(e.center).add($i)),this.expandByPoint(Zo.copy(e.center).sub($i)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Xt=new w,ls=new w,Ki=new w,tn=new w,cs=new w,Qi=new w,hs=new w;class ui{constructor(e=new w,t=new w(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Xt)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Xt.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Xt.copy(this.direction).multiplyScalar(t).add(this.origin),Xt.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){ls.copy(e).add(t).multiplyScalar(.5),Ki.copy(t).sub(e).normalize(),tn.copy(this.origin).sub(ls);const r=e.distanceTo(t)*.5,o=-this.direction.dot(Ki),a=tn.dot(this.direction),c=-tn.dot(Ki),l=tn.lengthSq(),h=Math.abs(1-o*o);let u,d,p,g;if(h>0)if(u=o*c-a,d=o*a-c,g=r*h,u>=0)if(d>=-g)if(d<=g){const x=1/h;u*=x,d*=x,p=u*(u+o*d+2*a)+d*(o*u+d+2*c)+l}else d=r,u=Math.max(0,-(o*d+a)),p=-u*u+d*(d+2*c)+l;else d=-r,u=Math.max(0,-(o*d+a)),p=-u*u+d*(d+2*c)+l;else d<=-g?(u=Math.max(0,-(-o*r+a)),d=u>0?-r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l):d<=g?(u=0,d=Math.min(Math.max(-r,-c),r),p=d*(d+2*c)+l):(u=Math.max(0,-(o*r+a)),d=u>0?r:Math.min(Math.max(-r,-c),r),p=-u*u+d*(d+2*c)+l);else d=o>0?-r:r,u=Math.max(0,-(o*d+a)),p=-u*u+d*(d+2*c)+l;return n&&n.copy(this.direction).multiplyScalar(u).add(this.origin),i&&i.copy(Ki).multiplyScalar(d).add(ls),p}intersectSphere(e,t){Xt.subVectors(e.center,this.origin);const n=Xt.dot(this.direction),i=Xt.dot(Xt)-n*n,r=e.radius*e.radius;if(i>r)return null;const o=Math.sqrt(r-i),a=n-o,c=n+o;return a<0&&c<0?null:a<0?this.at(c,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,r,o,a,c;const l=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,i=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,i=(e.min.x-d.x)*l),h>=0?(r=(e.min.y-d.y)*h,o=(e.max.y-d.y)*h):(r=(e.max.y-d.y)*h,o=(e.min.y-d.y)*h),n>o||r>i||((r>n||n!==n)&&(n=r),(o=0?(a=(e.min.z-d.z)*u,c=(e.max.z-d.z)*u):(a=(e.max.z-d.z)*u,c=(e.min.z-d.z)*u),n>c||a>i)||((a>n||n!==n)&&(n=a),(c=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Xt)!==null}intersectTriangle(e,t,n,i,r){cs.subVectors(t,e),Qi.subVectors(n,e),hs.crossVectors(cs,Qi);let o=this.direction.dot(hs),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;tn.subVectors(this.origin,e);const c=a*this.direction.dot(Qi.crossVectors(tn,Qi));if(c<0)return null;const l=a*this.direction.dot(cs.cross(tn));if(l<0||c+l>o)return null;const h=-a*tn.dot(hs);return h<0?null:this.at(h/o,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ve{constructor(){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.")}set(e,t,n,i,r,o,a,c,l,h,u,d,p,g,x,v){const m=this.elements;return m[0]=e,m[4]=t,m[8]=n,m[12]=i,m[1]=r,m[5]=o,m[9]=a,m[13]=c,m[2]=l,m[6]=h,m[10]=u,m[14]=d,m[3]=p,m[7]=g,m[11]=x,m[15]=v,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ve().fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,i=1/Nn.setFromMatrixColumn(e,0).length(),r=1/Nn.setFromMatrixColumn(e,1).length(),o=1/Nn.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*r,t[5]=n[5]*r,t[6]=n[6]*r,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const t=this.elements,n=e.x,i=e.y,r=e.z,o=Math.cos(n),a=Math.sin(n),c=Math.cos(i),l=Math.sin(i),h=Math.cos(r),u=Math.sin(r);if(e.order==="XYZ"){const d=o*h,p=o*u,g=a*h,x=a*u;t[0]=c*h,t[4]=-c*u,t[8]=l,t[1]=p+g*l,t[5]=d-x*l,t[9]=-a*c,t[2]=x-d*l,t[6]=g+p*l,t[10]=o*c}else if(e.order==="YXZ"){const d=c*h,p=c*u,g=l*h,x=l*u;t[0]=d+x*a,t[4]=g*a-p,t[8]=o*l,t[1]=o*u,t[5]=o*h,t[9]=-a,t[2]=p*a-g,t[6]=x+d*a,t[10]=o*c}else if(e.order==="ZXY"){const d=c*h,p=c*u,g=l*h,x=l*u;t[0]=d-x*a,t[4]=-o*u,t[8]=g+p*a,t[1]=p+g*a,t[5]=o*h,t[9]=x-d*a,t[2]=-o*l,t[6]=a,t[10]=o*c}else if(e.order==="ZYX"){const d=o*h,p=o*u,g=a*h,x=a*u;t[0]=c*h,t[4]=g*l-p,t[8]=d*l+x,t[1]=c*u,t[5]=x*l+d,t[9]=p*l-g,t[2]=-l,t[6]=a*c,t[10]=o*c}else if(e.order==="YZX"){const d=o*c,p=o*l,g=a*c,x=a*l;t[0]=c*h,t[4]=x-d*u,t[8]=g*u+p,t[1]=u,t[5]=o*h,t[9]=-a*h,t[2]=-l*h,t[6]=p*u+g,t[10]=d-x*u}else if(e.order==="XZY"){const d=o*c,p=o*l,g=a*c,x=a*l;t[0]=c*h,t[4]=-u,t[8]=l*h,t[1]=d*u+x,t[5]=o*h,t[9]=p*u-g,t[2]=g*u-p,t[6]=a*h,t[10]=x*u+d}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(ph,e,mh)}lookAt(e,t,n){const i=this.elements;return Mt.subVectors(e,t),Mt.lengthSq()===0&&(Mt.z=1),Mt.normalize(),nn.crossVectors(n,Mt),nn.lengthSq()===0&&(Math.abs(n.z)===1?Mt.x+=1e-4:Mt.z+=1e-4,Mt.normalize(),nn.crossVectors(n,Mt)),nn.normalize(),er.crossVectors(Mt,nn),i[0]=nn.x,i[4]=er.x,i[8]=Mt.x,i[1]=nn.y,i[5]=er.y,i[9]=Mt.y,i[2]=nn.z,i[6]=er.z,i[10]=Mt.z,this}multiply(e,t){return t!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,i=t.elements,r=this.elements,o=n[0],a=n[4],c=n[8],l=n[12],h=n[1],u=n[5],d=n[9],p=n[13],g=n[2],x=n[6],v=n[10],m=n[14],f=n[3],T=n[7],y=n[11],E=n[15],A=i[0],L=i[4],j=i[8],te=i[12],Y=i[1],_=i[5],R=i[9],P=i[13],B=i[2],F=i[6],I=i[10],H=i[14],J=i[3],ce=i[7],U=i[11],X=i[15];return r[0]=o*A+a*Y+c*B+l*J,r[4]=o*L+a*_+c*F+l*ce,r[8]=o*j+a*R+c*I+l*U,r[12]=o*te+a*P+c*H+l*X,r[1]=h*A+u*Y+d*B+p*J,r[5]=h*L+u*_+d*F+p*ce,r[9]=h*j+u*R+d*I+p*U,r[13]=h*te+u*P+d*H+p*X,r[2]=g*A+x*Y+v*B+m*J,r[6]=g*L+x*_+v*F+m*ce,r[10]=g*j+x*R+v*I+m*U,r[14]=g*te+x*P+v*H+m*X,r[3]=f*A+T*Y+y*B+E*J,r[7]=f*L+T*_+y*F+E*ce,r[11]=f*j+T*R+y*I+E*U,r[15]=f*te+T*P+y*H+E*X,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],i=e[8],r=e[12],o=e[1],a=e[5],c=e[9],l=e[13],h=e[2],u=e[6],d=e[10],p=e[14],g=e[3],x=e[7],v=e[11],m=e[15];return g*(+r*c*u-i*l*u-r*a*d+n*l*d+i*a*p-n*c*p)+x*(+t*c*p-t*l*d+r*o*d-i*o*p+i*l*h-r*c*h)+v*(+t*l*u-t*a*p-r*o*u+n*o*p+r*a*h-n*l*h)+m*(-i*a*h-t*c*u+t*a*d+i*o*u-n*o*d+n*c*h)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){const i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],i=e[2],r=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],u=e[9],d=e[10],p=e[11],g=e[12],x=e[13],v=e[14],m=e[15],f=u*v*l-x*d*l+x*c*p-a*v*p-u*c*m+a*d*m,T=g*d*l-h*v*l-g*c*p+o*v*p+h*c*m-o*d*m,y=h*x*l-g*u*l+g*a*p-o*x*p-h*a*m+o*u*m,E=g*u*c-h*x*c-g*a*d+o*x*d+h*a*v-o*u*v,A=t*f+n*T+i*y+r*E;if(A===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const L=1/A;return e[0]=f*L,e[1]=(x*d*r-u*v*r-x*i*p+n*v*p+u*i*m-n*d*m)*L,e[2]=(a*v*r-x*c*r+x*i*l-n*v*l-a*i*m+n*c*m)*L,e[3]=(u*c*r-a*d*r-u*i*l+n*d*l+a*i*p-n*c*p)*L,e[4]=T*L,e[5]=(h*v*r-g*d*r+g*i*p-t*v*p-h*i*m+t*d*m)*L,e[6]=(g*c*r-o*v*r-g*i*l+t*v*l+o*i*m-t*c*m)*L,e[7]=(o*d*r-h*c*r+h*i*l-t*d*l-o*i*p+t*c*p)*L,e[8]=y*L,e[9]=(g*u*r-h*x*r-g*n*p+t*x*p+h*n*m-t*u*m)*L,e[10]=(o*x*r-g*a*r+g*n*l-t*x*l-o*n*m+t*a*m)*L,e[11]=(h*a*r-o*u*r-h*n*l+t*u*l+o*n*p-t*a*p)*L,e[12]=E*L,e[13]=(h*x*i-g*u*i+g*n*d-t*x*d-h*n*v+t*u*v)*L,e[14]=(g*a*i-o*x*i-g*n*c+t*x*c+o*n*v-t*a*v)*L,e[15]=(o*u*i-h*a*i+h*n*c-t*u*c-o*n*d+t*a*d)*L,this}scale(e){const t=this.elements,n=e.x,i=e.y,r=e.z;return t[0]*=n,t[4]*=i,t[8]*=r,t[1]*=n,t[5]*=i,t[9]*=r,t[2]*=n,t[6]*=i,t[10]*=r,t[3]*=n,t[7]*=i,t[11]*=r,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),i=Math.sin(t),r=1-n,o=e.x,a=e.y,c=e.z,l=r*o,h=r*a;return this.set(l*o+n,l*a-i*c,l*c+i*a,0,l*a+i*c,h*a+n,h*c-i*o,0,l*c-i*a,h*c+i*o,r*c*c+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,r,o){return this.set(1,n,r,0,e,1,o,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){const i=this.elements,r=t._x,o=t._y,a=t._z,c=t._w,l=r+r,h=o+o,u=a+a,d=r*l,p=r*h,g=r*u,x=o*h,v=o*u,m=a*u,f=c*l,T=c*h,y=c*u,E=n.x,A=n.y,L=n.z;return i[0]=(1-(x+m))*E,i[1]=(p+y)*E,i[2]=(g-T)*E,i[3]=0,i[4]=(p-y)*A,i[5]=(1-(d+m))*A,i[6]=(v+f)*A,i[7]=0,i[8]=(g+T)*L,i[9]=(v-f)*L,i[10]=(1-(d+x))*L,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){const i=this.elements;let r=Nn.set(i[0],i[1],i[2]).length();const o=Nn.set(i[4],i[5],i[6]).length(),a=Nn.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),e.x=i[12],e.y=i[13],e.z=i[14],Dt.copy(this);const l=1/r,h=1/o,u=1/a;return Dt.elements[0]*=l,Dt.elements[1]*=l,Dt.elements[2]*=l,Dt.elements[4]*=h,Dt.elements[5]*=h,Dt.elements[6]*=h,Dt.elements[8]*=u,Dt.elements[9]*=u,Dt.elements[10]*=u,t.setFromRotationMatrix(Dt),n.x=r,n.y=o,n.z=a,this}makePerspective(e,t,n,i,r,o){o===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,c=2*r/(t-e),l=2*r/(n-i),h=(t+e)/(t-e),u=(n+i)/(n-i),d=-(o+r)/(o-r),p=-2*o*r/(o-r);return a[0]=c,a[4]=0,a[8]=h,a[12]=0,a[1]=0,a[5]=l,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(e,t,n,i,r,o){const a=this.elements,c=1/(t-e),l=1/(n-i),h=1/(o-r),u=(t+e)*c,d=(n+i)*l,p=(o+r)*h;return a[0]=2*c,a[4]=0,a[8]=0,a[12]=-u,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-d,a[2]=0,a[6]=0,a[10]=-2*h,a[14]=-p,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}ve.prototype.isMatrix4=!0;const Nn=new w,Dt=new ve,ph=new w(0,0,0),mh=new w(1,1,1),nn=new w,er=new w,Mt=new w,$o=new ve,Ko=new vt;class gn{constructor(e=0,t=0,n=0,i=gn.DefaultOrder){this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const i=e.elements,r=i[0],o=i[4],a=i[8],c=i[1],l=i[5],h=i[9],u=i[2],d=i[6],p=i[10];switch(t){case"XYZ":this._y=Math.asin(wt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,p),this._z=Math.atan2(-o,r)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-wt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,p),this._z=Math.atan2(c,l)):(this._y=Math.atan2(-u,r),this._z=0);break;case"ZXY":this._x=Math.asin(wt(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,p),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(c,r));break;case"ZYX":this._y=Math.asin(-wt(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(c,r)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(wt(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,l),this._y=Math.atan2(-u,r)):(this._x=0,this._y=Math.atan2(a,p));break;case"XZY":this._z=Math.asin(-wt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-h,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return $o.makeRotationFromQuaternion(e),this.setFromRotationMatrix($o,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Ko.setFromEuler(this),this.setFromQuaternion(Ko,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}toVector3(e){return e?e.set(this._x,this._y,this._z):new w(this._x,this._y,this._z)}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}}gn.prototype.isEuler=!0;gn.DefaultOrder="XYZ";gn.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class ul{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let n=0;n0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),c.length>0&&(n.materials=c),l.length>0&&(n.textures=l),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),d.length>0&&(n.skeletons=d),p.length>0&&(n.animations=p)}return n.object=i,n;function o(a){const c=[];for(const l in a){const h=a[l];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(e,t,n,i,r){It.subVectors(i,t),Yt.subVectors(n,t),us.subVectors(e,t);const o=It.dot(It),a=It.dot(Yt),c=It.dot(us),l=Yt.dot(Yt),h=Yt.dot(us),u=o*l-a*a;if(u===0)return r.set(-2,-1,-1);const d=1/u,p=(l*c-a*h)*d,g=(o*h-a*c)*d;return r.set(1-p-g,g,p)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Jt),Jt.x>=0&&Jt.y>=0&&Jt.x+Jt.y<=1}static getUV(e,t,n,i,r,o,a,c){return this.getBarycoord(e,t,n,i,Jt),c.set(0,0),c.addScaledVector(r,Jt.x),c.addScaledVector(o,Jt.y),c.addScaledVector(a,Jt.z),c}static isFrontFacing(e,t,n,i){return It.subVectors(n,t),Yt.subVectors(e,t),It.cross(Yt).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return It.subVectors(this.c,this.b),Yt.subVectors(this.a,this.b),It.cross(Yt).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return tt.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return tt.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,i,r){return tt.getUV(e,this.a,this.b,this.c,t,n,i,r)}containsPoint(e){return tt.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return tt.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,i=this.b,r=this.c;let o,a;zn.subVectors(i,n),Un.subVectors(r,n),ds.subVectors(e,n);const c=zn.dot(ds),l=Un.dot(ds);if(c<=0&&l<=0)return t.copy(n);fs.subVectors(e,i);const h=zn.dot(fs),u=Un.dot(fs);if(h>=0&&u<=h)return t.copy(i);const d=c*u-h*l;if(d<=0&&c>=0&&h<=0)return o=c/(c-h),t.copy(n).addScaledVector(zn,o);ps.subVectors(e,r);const p=zn.dot(ps),g=Un.dot(ps);if(g>=0&&p<=g)return t.copy(r);const x=p*l-c*g;if(x<=0&&l>=0&&g<=0)return a=l/(l-g),t.copy(n).addScaledVector(Un,a);const v=h*g-p*u;if(v<=0&&u-h>=0&&p-g>=0)return ra.subVectors(r,i),a=(u-h)/(u-h+(p-g)),t.copy(i).addScaledVector(ra,a);const m=1/(v+x+d);return o=x*m,a=d*m,t.copy(n).addScaledVector(zn,o).addScaledVector(Un,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let yh=0;class ct extends Cn{constructor(){super(),Object.defineProperty(this,"id",{value:yh++}),this.uuid=Ht(),this.name="",this.type="Material",this.fog=!0,this.blending=Li,this.side=Di,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=sl,this.blendDst=ol,this.blendEquation=Zn,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Fs,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=lh,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Kr,this.stencilZFail=Kr,this.stencilZPass=Kr,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if(t==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===rl;continue}const i=this[t];if(i===void 0){console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.");continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Li&&(n.blending=this.blending),this.side!==Di&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(n.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=this.flatShading),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData);function i(r){const o=[];for(const a in r){const c=r[a];delete c.metadata,o.push(c)}return o}if(t){const r=i(e.textures),o=i(e.images);r.length>0&&(n.textures=r),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.fog=e.fog,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const i=t.length;n=new Array(i);for(let r=0;r!==i;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}ct.prototype.isMaterial=!0;class Qs extends ct{constructor(e){super(),this.type="MeshBasicMaterial",this.color=new me(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=Nr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}Qs.prototype.isMeshBasicMaterial=!0;const qe=new w,nr=new Z;class ot{constructor(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n===!0,this.usage=Fi,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,r=this.itemSize;i0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const l in c)c[l]!==void 0&&(e[l]=c[l]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const c in n){const l=n[c];e.data.attributes[c]=l.toJSON(e.data)}const i={};let r=!1;for(const c in this.morphAttributes){const l=this.morphAttributes[c],h=[];for(let u=0,d=l.length;u0&&(i[c]=h,r=!0)}r&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;n!==null&&this.setIndex(n.clone(t));const i=e.attributes;for(const l in i){const h=i[l];this.setAttribute(l,h.clone(t))}const r=e.morphAttributes;for(const l in r){const h=[],u=r[l];for(let d=0,p=u.length;d0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(e,t){const n=this.geometry,i=this.material,r=this.matrixWorld;if(i===void 0||(n.boundingSphere===null&&n.computeBoundingSphere(),gs.copy(n.boundingSphere),gs.applyMatrix4(r),e.ray.intersectsSphere(gs)===!1)||(sa.copy(r).invert(),Hn.copy(e.ray).applyMatrix4(sa),n.boundingBox!==null&&Hn.intersectsBox(n.boundingBox)===!1))return;let o;if(n.isBufferGeometry){const a=n.index,c=n.attributes.position,l=n.morphAttributes.position,h=n.morphTargetsRelative,u=n.attributes.uv,d=n.attributes.uv2,p=n.groups,g=n.drawRange;if(a!==null)if(Array.isArray(i))for(let x=0,v=p.length;xt.far?null:{distance:l,point:cr.clone(),object:s}}function hr(s,e,t,n,i,r,o,a,c,l,h,u){rn.fromBufferAttribute(i,l),sn.fromBufferAttribute(i,h),on.fromBufferAttribute(i,u);const d=s.morphTargetInfluences;if(r&&d){ir.set(0,0,0),rr.set(0,0,0),sr.set(0,0,0);for(let g=0,x=r.length;g0?1:-1,h.push(ce.x,ce.y,ce.z),u.push(ie/L),u.push(1-U/j),H+=1}}for(let U=0;U0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;const n={};for(const i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}An.prototype.isShaderMaterial=!0;class eo extends Ue{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new ve,this.projectionMatrix=new ve,this.projectionMatrixInverse=new ve}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}eo.prototype.isCamera=!0;class gt extends eo{constructor(e=50,t=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Hs*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Qr*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Hs*2*Math.atan(Math.tan(Qr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,i,r,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(Qr*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,r=-.5*i;const o=this.view;if(this.view!==null&&this.view.enabled){const c=o.fullWidth,l=o.fullHeight;r+=o.offsetX*i/c,t-=o.offsetY*n/l,i*=o.width/c,n*=o.height/l}const a=this.filmOffset;a!==0&&(r+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}gt.prototype.isPerspectiveCamera=!0;const Vn=90,Gn=1;class to extends Ue{constructor(e,t,n){if(super(),this.type="CubeCamera",n.isWebGLCubeRenderTarget!==!0){console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");return}this.renderTarget=n;const i=new gt(Vn,Gn,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new w(1,0,0)),this.add(i);const r=new gt(Vn,Gn,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new w(-1,0,0)),this.add(r);const o=new gt(Vn,Gn,e,t);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new w(0,1,0)),this.add(o);const a=new gt(Vn,Gn,e,t);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new w(0,-1,0)),this.add(a);const c=new gt(Vn,Gn,e,t);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new w(0,0,1)),this.add(c);const l=new gt(Vn,Gn,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new w(0,0,-1)),this.add(l)}update(e,t){this.parent===null&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,o,a,c,l]=this.children,h=e.xr.enabled,u=e.getRenderTarget();e.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,i),e.setRenderTarget(n,1),e.render(t,r),e.setRenderTarget(n,2),e.render(t,o),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,c),n.texture.generateMipmaps=d,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(u),e.xr.enabled=h,n.texture.needsPMREMUpdate=!0}}class Ur extends lt{constructor(e,t,n,i,r,o,a,c,l,h){e=e!==void 0?e:[],t=t!==void 0?t:Vi,super(e,t,n,i,r,o,a,c,l,h),this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}Ur.prototype.isCubeTexture=!0;class pl extends At{constructor(e,t,n){Number.isInteger(t)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),t=n),super(e,e,t),t=t||{},this.texture=new Ur(void 0,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:ut}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.format=xt,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},i=new ki(5,5,5),r=new An({name:"CubemapFromEquirect",uniforms:ai(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:it,blending:ln});r.uniforms.tEquirect.value=t;const o=new st(i,r),a=t.minFilter;return t.minFilter===zr&&(t.minFilter=ut),new to(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,i){const r=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,i);e.setRenderTarget(r)}}pl.prototype.isWebGLCubeRenderTarget=!0;const Ms=new w,Ah=new w,Ch=new dt;class $t{constructor(e=new w(1,0,0),t=0){this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const i=Ms.subVectors(n,t).cross(Ah.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const n=e.delta(Ms),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const r=-(e.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:t.copy(n).multiplyScalar(r).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||Ch.getNormalMatrix(e),i=this.coplanarPoint(Ms).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}$t.prototype.isPlane=!0;const kn=new hi,ur=new w;class Or{constructor(e=new $t,t=new $t,n=new $t,i=new $t,r=new $t,o=new $t){this.planes=[e,t,n,i,r,o]}set(e,t,n,i,r,o){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(o),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){const t=this.planes,n=e.elements,i=n[0],r=n[1],o=n[2],a=n[3],c=n[4],l=n[5],h=n[6],u=n[7],d=n[8],p=n[9],g=n[10],x=n[11],v=n[12],m=n[13],f=n[14],T=n[15];return t[0].setComponents(a-i,u-c,x-d,T-v).normalize(),t[1].setComponents(a+i,u+c,x+d,T+v).normalize(),t[2].setComponents(a+r,u+l,x+p,T+m).normalize(),t[3].setComponents(a-r,u-l,x-p,T-m).normalize(),t[4].setComponents(a-o,u-h,x-g,T-f).normalize(),t[5].setComponents(a+o,u+h,x+g,T+f).normalize(),this}intersectsObject(e){const t=e.geometry;return t.boundingSphere===null&&t.computeBoundingSphere(),kn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(kn)}intersectsSprite(e){return kn.center.set(0,0,0),kn.radius=.7071067811865476,kn.applyMatrix4(e.matrixWorld),this.intersectsSphere(kn)}intersectsSphere(e){const t=this.planes,n=e.center,i=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)0?e.max.x:e.min.x,ur.y=i.normal.y>0?e.max.y:e.min.y,ur.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(ur)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function ml(){let s=null,e=!1,t=null,n=null;function i(r,o){t(r,o),n=s.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=s.requestAnimationFrame(i),e=!0)},stop:function(){s.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(r){t=r},setContext:function(r){s=r}}}function Lh(s,e){const t=e.isWebGL2,n=new WeakMap;function i(l,h){const u=l.array,d=l.usage,p=s.createBuffer();s.bindBuffer(h,p),s.bufferData(h,u,d),l.onUploadCallback();let g=5126;return u instanceof Float32Array?g=5126:u instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):u instanceof Uint16Array?l.isFloat16BufferAttribute?t?g=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):g=5123:u instanceof Int16Array?g=5122:u instanceof Uint32Array?g=5125:u instanceof Int32Array?g=5124:u instanceof Int8Array?g=5120:(u instanceof Uint8Array||u instanceof Uint8ClampedArray)&&(g=5121),{buffer:p,type:g,bytesPerElement:u.BYTES_PER_ELEMENT,version:l.version}}function r(l,h,u){const d=h.array,p=h.updateRange;s.bindBuffer(u,l),p.count===-1?s.bufferSubData(u,0,d):(t?s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d,p.offset,p.count):s.bufferSubData(u,p.offset*d.BYTES_PER_ELEMENT,d.subarray(p.offset,p.offset+p.count)),p.count=-1)}function o(l){return l.isInterleavedBufferAttribute&&(l=l.data),n.get(l)}function a(l){l.isInterleavedBufferAttribute&&(l=l.data);const h=n.get(l);h&&(s.deleteBuffer(h.buffer),n.delete(l))}function c(l,h){if(l.isGLBufferAttribute){const d=n.get(l);(!d||d.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +float G_BlinnPhong_Implicit( ) { + return 0.25; +} +float D_BlinnPhong( const in float shininess, const in float dotNH ) { + return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); +} +vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( specularColor, 1.0, dotVH ); + float G = G_BlinnPhong_Implicit( ); + float D = D_BlinnPhong( shininess, dotNH ); + return F * ( G * D ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif`,Oh=`#ifdef USE_BUMPMAP + uniform sampler2D bumpMap; + uniform float bumpScale; + vec2 dHdxy_fwd() { + vec2 dSTdx = dFdx( vUv ); + vec2 dSTdy = dFdy( vUv ); + float Hll = bumpScale * texture2D( bumpMap, vUv ).x; + float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll; + float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll; + return vec2( dBx, dBy ); + } + vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { + vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) ); + vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) ); + vec3 vN = surf_norm; + vec3 R1 = cross( vSigmaY, vN ); + vec3 R2 = cross( vN, vSigmaX ); + float fDet = dot( vSigmaX, R1 ) * faceDirection; + vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); + return normalize( abs( fDet ) * surf_norm - vGrad ); + } +#endif`,Hh=`#if NUM_CLIPPING_PLANES > 0 + vec4 plane; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif +#endif`,Vh=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,Gh=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,kh=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,Wh=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,qh=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,Xh=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + varying vec3 vColor; +#endif`,jh=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif`,Yh=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +struct GeometricContext { + vec3 position; + vec3 normal; + vec3 viewDir; +#ifdef USE_CLEARCOAT + vec3 clearcoatNormal; +#endif +}; +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float linearToRelativeLuminance( const in vec3 color ) { + vec3 weights = vec3( 0.2126, 0.7152, 0.0722 ); + return dot( weights, color.rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +}`,Jh=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_maxMipLevel 8.0 + #define cubeUV_minMipLevel 4.0 + #define cubeUV_maxTileSize 256.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + float texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize ); + vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + if ( mipInt < cubeUV_maxMipLevel ) { + uv.y += 2.0 * cubeUV_maxTileSize; + } + uv.y += filterInt * 2.0 * cubeUV_minTileSize; + uv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize ); + uv *= texelSize; + return texture2D( envMap, uv ).rgb; + } + #define r0 1.0 + #define v0 0.339 + #define m0 - 2.0 + #define r1 0.8 + #define v1 0.276 + #define m1 - 1.0 + #define r4 0.4 + #define v4 0.046 + #define m4 2.0 + #define r5 0.305 + #define v5 0.016 + #define m5 3.0 + #define r6 0.21 + #define v6 0.0038 + #define m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= r1 ) { + mip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0; + } else if ( roughness >= r4 ) { + mip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1; + } else if ( roughness >= r5 ) { + mip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4; + } else if ( roughness >= r6 ) { + mip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,Zh=`vec3 transformedNormal = objectNormal; +#ifdef USE_INSTANCING + mat3 m = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) ); + transformedNormal = m * transformedNormal; +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + vec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,$h=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,Kh=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias ); +#endif`,Qh=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,eu=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,tu="gl_FragColor = linearToOutputTexel( gl_FragColor );",nu=`vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}`,iu=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,ru=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,su=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,ou=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,au=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,lu=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,cu=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,hu=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,uu=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,du=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + return ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 ); + #endif +}`,fu=`#ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + reflectedLight.indirectDiffuse += lightMapIrradiance; +#endif`,pu=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,mu=`vec3 diffuse = vec3( 1.0 ); +GeometricContext geometry; +geometry.position = mvPosition.xyz; +geometry.normal = normalize( transformedNormal ); +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz ); +GeometricContext backGeometry; +backGeometry.position = geometry.position; +backGeometry.normal = -geometry.normal; +backGeometry.viewDir = geometry.viewDir; +vLightFront = vec3( 0.0 ); +vIndirectFront = vec3( 0.0 ); +#ifdef DOUBLE_SIDED + vLightBack = vec3( 0.0 ); + vIndirectBack = vec3( 0.0 ); +#endif +IncidentLight directLight; +float dotNL; +vec3 directLightColor_Diffuse; +vIndirectFront += getAmbientLightIrradiance( ambientLightColor ); +vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal ); +#ifdef DOUBLE_SIDED + vIndirectBack += getAmbientLightIrradiance( ambientLightColor ); + vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal ); +#endif +#if NUM_POINT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + getPointLightInfo( pointLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_SPOT_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + getSpotLightInfo( spotLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_DIR_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + getDirectionalLightInfo( directionalLights[ i ], geometry, directLight ); + dotNL = dot( geometry.normal, directLight.direction ); + directLightColor_Diffuse = directLight.color; + vLightFront += saturate( dotNL ) * directLightColor_Diffuse; + #ifdef DOUBLE_SIDED + vLightBack += saturate( - dotNL ) * directLightColor_Diffuse; + #endif + } + #pragma unroll_loop_end +#endif +#if NUM_HEMI_LIGHTS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + #ifdef DOUBLE_SIDED + vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal ); + #endif + } + #pragma unroll_loop_end +#endif`,gu=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +uniform vec3 lightProbe[ 9 ]; +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + #if defined ( PHYSICALLY_CORRECT_LIGHTS ) + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; + #else + if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) { + return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent ); + } + return 1.0; + #endif +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometry.position; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometry.position; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,xu=`#if defined( USE_ENVMAP ) + #ifdef ENVMAP_MODE_REFRACTION + uniform float refractionRatio; + #endif + vec3 getIBLIrradiance( const in vec3 normal ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #if defined( ENVMAP_TYPE_CUBE_UV ) + vec3 reflectVec; + #ifdef ENVMAP_MODE_REFLECTION + reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + #else + reflectVec = refract( - viewDir, normal, refractionRatio ); + #endif + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } +#endif`,_u=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,vu=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon +#define Material_LightProbeLOD( material ) (0)`,yu=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Mu=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong +#define Material_LightProbeLOD( material ) (0)`,bu=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + #ifdef SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULARINTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a; + #endif + #ifdef USE_SPECULARCOLORMAP + specularColorFactor *= texture2D( specularColorMap, vUv ).rgb; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEENCOLORMAP + material.sheenColor *= texture2D( sheenColorMap, vUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEENROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a; + #endif +#endif`,wu=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif +}; +vec3 clearcoatSpecular = vec3( 0.0 ); +vec3 sheenSpecular = vec3( 0.0 ); +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + vec3 FssEss = specularColor * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometry.normal; + vec3 viewDir = geometry.viewDir; + vec3 position = geometry.position; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometry.normal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + computeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + vec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,Su=` +GeometricContext geometry; +geometry.position = - vViewPosition; +geometry.normal = normal; +geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +#ifdef USE_CLEARCOAT + geometry.clearcoatNormal = clearcoatNormal; +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, geometry, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + irradiance += getLightProbeIrradiance( lightProbe, geometry.normal ); + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,Eu=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vUv2 ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + #ifndef PHYSICALLY_CORRECT_LIGHTS + lightMapIrradiance *= PI; + #endif + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometry.normal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + radiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness ); + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Tu=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometry, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight ); +#endif`,Au=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,Cu=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,Lu=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + varying float vFragDepth; + varying float vIsPerspective; + #else + uniform float logDepthBufFC; + #endif +#endif`,Ru=`#ifdef USE_LOGDEPTHBUF + #ifdef USE_LOGDEPTHBUF_EXT + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); + #else + if ( isPerspectiveMatrix( projectionMatrix ) ) { + gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0; + gl_Position.z *= gl_Position.w; + } + #endif +#endif`,Pu=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,Du=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,Iu=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,Fu=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Nu=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vUv ); + metalnessFactor *= texelMetalness.b; +#endif`,Bu=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,zu=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ]; + } + #else + objectNormal += morphNormal0 * morphTargetInfluences[ 0 ]; + objectNormal += morphNormal1 * morphTargetInfluences[ 1 ]; + objectNormal += morphNormal2 * morphTargetInfluences[ 2 ]; + objectNormal += morphNormal3 * morphTargetInfluences[ 3 ]; + #endif +#endif`,Uu=`#ifdef USE_MORPHTARGETS + uniform float morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + uniform sampler2DArray morphTargetsTexture; + uniform vec2 morphTargetsTextureSize; + vec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) { + float texelIndex = float( vertexIndex * stride + offset ); + float y = floor( texelIndex / morphTargetsTextureSize.x ); + float x = texelIndex - y * morphTargetsTextureSize.x; + vec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex ); + return texture( morphTargetsTexture, morphUV ).xyz; + } + #else + #ifndef USE_MORPHNORMALS + uniform float morphTargetInfluences[ 8 ]; + #else + uniform float morphTargetInfluences[ 4 ]; + #endif + #endif +#endif`,Ou=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + #ifdef MORPHTARGETS_TEXTURE + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #ifndef USE_MORPHNORMALS + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ]; + #else + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ]; + #endif + } + #else + transformed += morphTarget0 * morphTargetInfluences[ 0 ]; + transformed += morphTarget1 * morphTargetInfluences[ 1 ]; + transformed += morphTarget2 * morphTargetInfluences[ 2 ]; + transformed += morphTarget3 * morphTargetInfluences[ 3 ]; + #ifndef USE_MORPHNORMALS + transformed += morphTarget4 * morphTargetInfluences[ 4 ]; + transformed += morphTarget5 * morphTargetInfluences[ 5 ]; + transformed += morphTarget6 * morphTargetInfluences[ 6 ]; + transformed += morphTarget7 * morphTargetInfluences[ 7 ]; + #endif + #endif +#endif`,Hu=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) ); + vec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + #ifdef USE_TANGENT + vec3 tangent = normalize( vTangent ); + vec3 bitangent = normalize( vBitangent ); + #ifdef DOUBLE_SIDED + tangent = tangent * faceDirection; + bitangent = bitangent * faceDirection; + #endif + #if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP ) + mat3 vTBN = mat3( tangent, bitangent, normal ); + #endif + #endif +#endif +vec3 geometryNormal = normal;`,Vu=`#ifdef OBJECTSPACE_NORMALMAP + normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( TANGENTSPACE_NORMALMAP ) + vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + #ifdef USE_TANGENT + normal = normalize( vTBN * mapN ); + #else + normal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection ); + #endif +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,Gu=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,ku=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,Wu=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,qu=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef OBJECTSPACE_NORMALMAP + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) ) + vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) { + vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) ); + vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) ); + vec2 st0 = dFdx( vUv.st ); + vec2 st1 = dFdy( vUv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det ); + return normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ); + } +#endif`,Xu=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = geometryNormal; +#endif`,ju=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + #ifdef USE_TANGENT + clearcoatNormal = normalize( vTBN * clearcoatMapN ); + #else + clearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection ); + #endif +#endif`,Yu=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif`,Ju=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= transmissionAlpha + 0.1; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,Zu=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) { + return linearClipZ * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * invClipZ - far ); +}`,$u=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,Ku=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,Qu=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,ed=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,td=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vUv ); + roughnessFactor *= texelRoughness.g; +#endif`,nd=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,id=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 ); + bool inFrustum = all( inFrustumVec ); + bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 ); + bool frustumTest = all( frustumTestVec ); + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return shadow; + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + vec3 lightToPosition = shadowCoord.xyz; + float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + return ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } +#endif`,rd=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ]; + varying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,sd=`#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; + #endif + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 ); + vSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif`,od=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,ad=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,ld=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + #ifdef BONE_TEXTURE + uniform highp sampler2D boneTexture; + uniform int boneTextureSize; + mat4 getBoneMatrix( const in float i ) { + float j = i * 4.0; + float x = mod( j, float( boneTextureSize ) ); + float y = floor( j / float( boneTextureSize ) ); + float dx = 1.0 / float( boneTextureSize ); + float dy = 1.0 / float( boneTextureSize ); + y = dy * ( y + 0.5 ); + vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) ); + vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) ); + vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) ); + vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) ); + mat4 bone = mat4( v1, v2, v3, v4 ); + return bone; + } + #else + uniform mat4 boneMatrices[ MAX_BONES ]; + mat4 getBoneMatrix( const in float i ) { + mat4 bone = boneMatrices[ int(i) ]; + return bone; + } + #endif +#endif`,cd=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,hd=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,ud=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,dd=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,fd=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,pd=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return toneMappingExposure * color; +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,md=`#ifdef USE_TRANSMISSION + float transmissionAlpha = 1.0; + float transmissionFactor = transmission; + float thicknessFactor = thickness; + #ifdef USE_TRANSMISSIONMAP + transmissionFactor *= texture2D( transmissionMap, vUv ).r; + #endif + #ifdef USE_THICKNESSMAP + thicknessFactor *= texture2D( thicknessMap, vUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmission = getIBLVolumeRefraction( + n, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor, + attenuationColor, attenuationDistance ); + totalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor ); + transmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor ); +#endif`,gd=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + #ifdef TEXTURE_LOD_EXT + return texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #else + return texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod ); + #endif + } + vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( attenuationDistance == 0.0 ) { + return radiance; + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance * radiance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance ); + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a ); + } +#endif`,xd=`#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) ) + varying vec2 vUv; +#endif`,_d=`#ifdef USE_UV + #ifdef UVS_VERTEX_ONLY + vec2 vUv; + #else + varying vec2 vUv; + #endif + uniform mat3 uvTransform; +#endif`,vd=`#ifdef USE_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; +#endif`,yd=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + varying vec2 vUv2; +#endif`,Md=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + attribute vec2 uv2; + varying vec2 vUv2; + uniform mat3 uv2Transform; +#endif`,bd=`#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP ) + vUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy; +#endif`,wd=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const Sd=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,Ed=`uniform sampler2D t2D; +varying vec2 vUv; +void main() { + gl_FragColor = texture2D( t2D, vUv ); + #include + #include +}`,Td=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Ad=`#include +uniform float opacity; +varying vec3 vWorldDirection; +#include +void main() { + vec3 vReflect = vWorldDirection; + #include + gl_FragColor = envColor; + gl_FragColor.a *= opacity; + #include + #include +}`,Cd=`#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,Ld=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + vec4 diffuseColor = vec4( 1.0 ); + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,Rd=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,Pd=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main () { + #include + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,Dd=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,Id=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,Fd=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include +}`,Nd=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +void main() { + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Bd=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,zd=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel= texture2D( lightMap, vUv2 ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,Ud=`#define LAMBERT +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,Od=`uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +varying vec3 vLightFront; +varying vec3 vIndirectFront; +#ifdef DOUBLE_SIDED + varying vec3 vLightBack; + varying vec3 vIndirectBack; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #ifdef DOUBLE_SIDED + reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack; + #else + reflectedLight.indirectDiffuse += vIndirectFront; + #endif + #include + reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb ); + #ifdef DOUBLE_SIDED + reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack; + #else + reflectedLight.directDiffuse = vLightFront; + #endif + reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask(); + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,Hd=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,Vd=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,Gd=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + vViewPosition = - mvPosition.xyz; +#endif +}`,kd=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), opacity ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,Wd=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,qd=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,Xd=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,jd=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULARINTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif + #ifdef USE_SPECULARCOLORMAP + uniform sampler2D specularColorMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEENCOLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEENROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,Yd=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,Jd=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec4 diffuseColor = vec4( diffuse, opacity ); + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,Zd=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,$d=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Kd=`#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,Qd=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,ef=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,tf=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + vec3 outgoingLight = vec3( 0.0 ); + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Pe={alphamap_fragment:Rh,alphamap_pars_fragment:Ph,alphatest_fragment:Dh,alphatest_pars_fragment:Ih,aomap_fragment:Fh,aomap_pars_fragment:Nh,begin_vertex:Bh,beginnormal_vertex:zh,bsdfs:Uh,bumpmap_pars_fragment:Oh,clipping_planes_fragment:Hh,clipping_planes_pars_fragment:Vh,clipping_planes_pars_vertex:Gh,clipping_planes_vertex:kh,color_fragment:Wh,color_pars_fragment:qh,color_pars_vertex:Xh,color_vertex:jh,common:Yh,cube_uv_reflection_fragment:Jh,defaultnormal_vertex:Zh,displacementmap_pars_vertex:$h,displacementmap_vertex:Kh,emissivemap_fragment:Qh,emissivemap_pars_fragment:eu,encodings_fragment:tu,encodings_pars_fragment:nu,envmap_fragment:iu,envmap_common_pars_fragment:ru,envmap_pars_fragment:su,envmap_pars_vertex:ou,envmap_physical_pars_fragment:xu,envmap_vertex:au,fog_vertex:lu,fog_pars_vertex:cu,fog_fragment:hu,fog_pars_fragment:uu,gradientmap_pars_fragment:du,lightmap_fragment:fu,lightmap_pars_fragment:pu,lights_lambert_vertex:mu,lights_pars_begin:gu,lights_toon_fragment:_u,lights_toon_pars_fragment:vu,lights_phong_fragment:yu,lights_phong_pars_fragment:Mu,lights_physical_fragment:bu,lights_physical_pars_fragment:wu,lights_fragment_begin:Su,lights_fragment_maps:Eu,lights_fragment_end:Tu,logdepthbuf_fragment:Au,logdepthbuf_pars_fragment:Cu,logdepthbuf_pars_vertex:Lu,logdepthbuf_vertex:Ru,map_fragment:Pu,map_pars_fragment:Du,map_particle_fragment:Iu,map_particle_pars_fragment:Fu,metalnessmap_fragment:Nu,metalnessmap_pars_fragment:Bu,morphnormal_vertex:zu,morphtarget_pars_vertex:Uu,morphtarget_vertex:Ou,normal_fragment_begin:Hu,normal_fragment_maps:Vu,normal_pars_fragment:Gu,normal_pars_vertex:ku,normal_vertex:Wu,normalmap_pars_fragment:qu,clearcoat_normal_fragment_begin:Xu,clearcoat_normal_fragment_maps:ju,clearcoat_pars_fragment:Yu,output_fragment:Ju,packing:Zu,premultiplied_alpha_fragment:$u,project_vertex:Ku,dithering_fragment:Qu,dithering_pars_fragment:ed,roughnessmap_fragment:td,roughnessmap_pars_fragment:nd,shadowmap_pars_fragment:id,shadowmap_pars_vertex:rd,shadowmap_vertex:sd,shadowmask_pars_fragment:od,skinbase_vertex:ad,skinning_pars_vertex:ld,skinning_vertex:cd,skinnormal_vertex:hd,specularmap_fragment:ud,specularmap_pars_fragment:dd,tonemapping_fragment:fd,tonemapping_pars_fragment:pd,transmission_fragment:md,transmission_pars_fragment:gd,uv_pars_fragment:xd,uv_pars_vertex:_d,uv_vertex:vd,uv2_pars_fragment:yd,uv2_pars_vertex:Md,uv2_vertex:bd,worldpos_vertex:wd,background_vert:Sd,background_frag:Ed,cube_vert:Td,cube_frag:Ad,depth_vert:Cd,depth_frag:Ld,distanceRGBA_vert:Rd,distanceRGBA_frag:Pd,equirect_vert:Dd,equirect_frag:Id,linedashed_vert:Fd,linedashed_frag:Nd,meshbasic_vert:Bd,meshbasic_frag:zd,meshlambert_vert:Ud,meshlambert_frag:Od,meshmatcap_vert:Hd,meshmatcap_frag:Vd,meshnormal_vert:Gd,meshnormal_frag:kd,meshphong_vert:Wd,meshphong_frag:qd,meshphysical_vert:Xd,meshphysical_frag:jd,meshtoon_vert:Yd,meshtoon_frag:Jd,points_vert:Zd,points_frag:$d,shadow_vert:Kd,shadow_frag:Qd,sprite_vert:ef,sprite_frag:tf},ee={common:{diffuse:{value:new me(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new dt},uv2Transform:{value:new dt},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Z(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 me(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new me(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new dt}},sprite:{diffuse:{value:new me(16777215)},opacity:{value:1},center:{value:new Z(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new dt}}},Ot={basic:{uniforms:pt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.fog]),vertexShader:Pe.meshbasic_vert,fragmentShader:Pe.meshbasic_frag},lambert:{uniforms:pt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshlambert_vert,fragmentShader:Pe.meshlambert_frag},phong:{uniforms:pt([ee.common,ee.specularmap,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,ee.lights,{emissive:{value:new me(0)},specular:{value:new me(1118481)},shininess:{value:30}}]),vertexShader:Pe.meshphong_vert,fragmentShader:Pe.meshphong_frag},standard:{uniforms:pt([ee.common,ee.envmap,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.roughnessmap,ee.metalnessmap,ee.fog,ee.lights,{emissive:{value:new me(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag},toon:{uniforms:pt([ee.common,ee.aomap,ee.lightmap,ee.emissivemap,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.gradientmap,ee.fog,ee.lights,{emissive:{value:new me(0)}}]),vertexShader:Pe.meshtoon_vert,fragmentShader:Pe.meshtoon_frag},matcap:{uniforms:pt([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,ee.fog,{matcap:{value:null}}]),vertexShader:Pe.meshmatcap_vert,fragmentShader:Pe.meshmatcap_frag},points:{uniforms:pt([ee.points,ee.fog]),vertexShader:Pe.points_vert,fragmentShader:Pe.points_frag},dashed:{uniforms:pt([ee.common,ee.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Pe.linedashed_vert,fragmentShader:Pe.linedashed_frag},depth:{uniforms:pt([ee.common,ee.displacementmap]),vertexShader:Pe.depth_vert,fragmentShader:Pe.depth_frag},normal:{uniforms:pt([ee.common,ee.bumpmap,ee.normalmap,ee.displacementmap,{opacity:{value:1}}]),vertexShader:Pe.meshnormal_vert,fragmentShader:Pe.meshnormal_frag},sprite:{uniforms:pt([ee.sprite,ee.fog]),vertexShader:Pe.sprite_vert,fragmentShader:Pe.sprite_frag},background:{uniforms:{uvTransform:{value:new dt},t2D:{value:null}},vertexShader:Pe.background_vert,fragmentShader:Pe.background_frag},cube:{uniforms:pt([ee.envmap,{opacity:{value:1}}]),vertexShader:Pe.cube_vert,fragmentShader:Pe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Pe.equirect_vert,fragmentShader:Pe.equirect_frag},distanceRGBA:{uniforms:pt([ee.common,ee.displacementmap,{referencePosition:{value:new w},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Pe.distanceRGBA_vert,fragmentShader:Pe.distanceRGBA_frag},shadow:{uniforms:pt([ee.lights,ee.fog,{color:{value:new me(0)},opacity:{value:1}}]),vertexShader:Pe.shadow_vert,fragmentShader:Pe.shadow_frag}};Ot.physical={uniforms:pt([Ot.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Z(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new me(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Z},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new me(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new me(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Pe.meshphysical_vert,fragmentShader:Pe.meshphysical_frag};function nf(s,e,t,n,i,r){const o=new me(0);let a=i===!0?0:1,c,l,h=null,u=0,d=null;function p(x,v){let m=!1,f=v.isScene===!0?v.background:null;f&&f.isTexture&&(f=e.get(f));const T=s.xr,y=T.getSession&&T.getSession();y&&y.environmentBlendMode==="additive"&&(f=null),f===null?g(o,a):f&&f.isColor&&(g(f,1),m=!0),(s.autoClear||m)&&s.clear(s.autoClearColor,s.autoClearDepth,s.autoClearStencil),f&&(f.isCubeTexture||f.mapping===Br)?(l===void 0&&(l=new st(new ki(1,1,1),new An({name:"BackgroundCubeMaterial",uniforms:ai(Ot.cube.uniforms),vertexShader:Ot.cube.vertexShader,fragmentShader:Ot.cube.fragmentShader,side:it,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(E,A,L){this.matrixWorld.copyPosition(L.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=f,l.material.uniforms.flipEnvMap.value=f.isCubeTexture&&f.isRenderTargetTexture===!1?-1:1,(h!==f||u!==f.version||d!==s.toneMapping)&&(l.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),x.unshift(l,l.geometry,l.material,0,0,null)):f&&f.isTexture&&(c===void 0&&(c=new st(new no(2,2),new An({name:"BackgroundMaterial",uniforms:ai(Ot.background.uniforms),vertexShader:Ot.background.vertexShader,fragmentShader:Ot.background.fragmentShader,side:Di,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(c)),c.material.uniforms.t2D.value=f,f.matrixAutoUpdate===!0&&f.updateMatrix(),c.material.uniforms.uvTransform.value.copy(f.matrix),(h!==f||u!==f.version||d!==s.toneMapping)&&(c.material.needsUpdate=!0,h=f,u=f.version,d=s.toneMapping),x.unshift(c,c.geometry,c.material,0,0,null))}function g(x,v){t.buffers.color.setClear(x.r,x.g,x.b,v,r)}return{getClearColor:function(){return o},setClearColor:function(x,v=1){o.set(x),a=v,g(o,a)},getClearAlpha:function(){return a},setClearAlpha:function(x){a=x,g(o,a)},render:p}}function rf(s,e,t,n){const i=s.getParameter(34921),r=n.isWebGL2?null:e.get("OES_vertex_array_object"),o=n.isWebGL2||r!==null,a={},c=x(null);let l=c;function h(P,B,F,I,H){let J=!1;if(o){const ce=g(I,F,B);l!==ce&&(l=ce,d(l.object)),J=v(I,H),J&&m(I,H)}else{const ce=B.wireframe===!0;(l.geometry!==I.id||l.program!==F.id||l.wireframe!==ce)&&(l.geometry=I.id,l.program=F.id,l.wireframe=ce,J=!0)}P.isInstancedMesh===!0&&(J=!0),H!==null&&t.update(H,34963),J&&(L(P,B,F,I),H!==null&&s.bindBuffer(34963,t.get(H).buffer))}function u(){return n.isWebGL2?s.createVertexArray():r.createVertexArrayOES()}function d(P){return n.isWebGL2?s.bindVertexArray(P):r.bindVertexArrayOES(P)}function p(P){return n.isWebGL2?s.deleteVertexArray(P):r.deleteVertexArrayOES(P)}function g(P,B,F){const I=F.wireframe===!0;let H=a[P.id];H===void 0&&(H={},a[P.id]=H);let J=H[B.id];J===void 0&&(J={},H[B.id]=J);let ce=J[I];return ce===void 0&&(ce=x(u()),J[I]=ce),ce}function x(P){const B=[],F=[],I=[];for(let H=0;H=0){let ie=H[U];if(ie===void 0&&(U==="instanceMatrix"&&P.instanceMatrix&&(ie=P.instanceMatrix),U==="instanceColor"&&P.instanceColor&&(ie=P.instanceColor)),ie!==void 0){const ue=ie.normalized,ge=ie.itemSize,O=t.get(ie);if(O===void 0)continue;const Be=O.buffer,fe=O.type,be=O.bytesPerElement;if(ie.isInterleavedBufferAttribute){const ae=ie.data,Ce=ae.stride,we=ie.offset;if(ae&&ae.isInstancedInterleavedBuffer){for(let k=0;k0&&s.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";L="mediump"}return L==="mediump"&&s.getShaderPrecisionFormat(35633,36337).precision>0&&s.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext!="undefined"&&s instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&s instanceof WebGL2ComputeRenderingContext;let a=t.precision!==void 0?t.precision:"highp";const c=r(a);c!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",c,"instead."),a=c);const l=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,u=s.getParameter(34930),d=s.getParameter(35660),p=s.getParameter(3379),g=s.getParameter(34076),x=s.getParameter(34921),v=s.getParameter(36347),m=s.getParameter(36348),f=s.getParameter(36349),T=d>0,y=o||e.has("OES_texture_float"),E=T&&y,A=o?s.getParameter(36183):0;return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:i,getMaxPrecision:r,precision:a,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:g,maxAttributes:x,maxVertexUniforms:v,maxVaryings:m,maxFragmentUniforms:f,vertexTextures:T,floatFragmentTextures:y,floatVertexTextures:E,maxSamples:A}}function af(s){const e=this;let t=null,n=0,i=!1,r=!1;const o=new $t,a=new dt,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(u,d,p){const g=u.length!==0||d||n!==0||i;return i=d,t=h(u,p,0),n=u.length,g},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1,l()},this.setState=function(u,d,p){const g=u.clippingPlanes,x=u.clipIntersection,v=u.clipShadows,m=s.get(u);if(!i||g===null||g.length===0||r&&!v)r?h(null):l();else{const f=r?0:n,T=f*4;let y=m.clippingState||null;c.value=y,y=h(g,d,T,p);for(let E=0;E!==T;++E)y[E]=t[E];m.clippingState=y,this.numIntersection=x?this.numPlanes:0,this.numPlanes+=f}};function l(){c.value!==t&&(c.value=t,c.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(u,d,p,g){const x=u!==null?u.length:0;let v=null;if(x!==0){if(v=c.value,g!==!0||v===null){const m=p+x*4,f=d.matrixWorldInverse;a.getNormalMatrix(f),(v===null||v.length0){const l=new pl(c.height/2);return l.fromEquirectangularTexture(s,o),e.set(o,l),o.addEventListener("dispose",i),t(l.texture,o.mapping)}else return null}}return o}function i(o){const a=o.target;a.removeEventListener("dispose",i);const c=e.get(a);c!==void 0&&(e.delete(a),c.dispose())}function r(){e=new WeakMap}return{get:n,dispose:r}}class io extends eo{constructor(e=-1,t=1,n=1,i=-1,r=.1,o=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=r,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,r,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-e,o=n+e,a=i+t,c=i-t;if(this.view!==null&&this.view.enabled){const l=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=l*this.view.offsetX,o=r+l*this.view.width,a-=h*this.view.offsetY,c=a-h*this.view.height}this.projectionMatrix.makeOrthographic(r,o,a,c,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}io.prototype.isOrthographicCamera=!0;class Hr extends An{constructor(e){super(e),this.type="RawShaderMaterial"}}Hr.prototype.isRawShaderMaterial=!0;const ri=4,un=8,Ut=Math.pow(2,un),gl=[.125,.215,.35,.446,.526,.582],xl=un-ri+1+gl.length,Wn=20,bs=new io,{_lodPlanes:Mi,_sizeLods:oa,_sigmas:dr}=cf(),aa=new me;let ws=null;const wn=(1+Math.sqrt(5))/2,qn=1/wn,la=[new w(1,1,1),new w(-1,1,1),new w(1,1,-1),new w(-1,1,-1),new w(0,wn,qn),new w(0,wn,-qn),new w(qn,0,wn),new w(-qn,0,wn),new w(wn,qn,0),new w(-wn,qn,0)];class ca{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._blurMaterial=hf(Wn),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){ws=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(e,n,i,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapShader===null&&(this._cubemapShader=da(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){this._equirectShader===null&&(this._equirectShader=ua(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose(),this._cubemapShader!==null&&this._cubemapShader.dispose(),this._equirectShader!==null&&this._equirectShader.dispose();for(let e=0;e2?Ut:0,Ut,Ut),h.setRenderTarget(i),x&&h.render(g,a),h.render(e,a)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=d,h.autoClear=u,e.background=v}_textureToCubeUV(e,t){const n=this._renderer,i=e.mapping===Vi||e.mapping===Gi;i?(this._cubemapShader===null&&(this._cubemapShader=da()),this._cubemapShader.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectShader===null&&(this._equirectShader=ua());const r=i?this._cubemapShader:this._equirectShader,o=new st(Mi[0],r),a=r.uniforms;a.envMap.value=e,i||a.texelSize.value.set(1/e.image.width,1/e.image.height),fr(t,0,0,3*Ut,2*Ut),n.setRenderTarget(t),n.render(o,bs)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;iWn&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${v} samples when the maximum is set to ${Wn}`);const m=[];let f=0;for(let A=0;Aun-ri?i-un+ri:0);fr(t,y,E,3*T,2*T),c.setRenderTarget(t),c.render(u,bs)}}function cf(){const s=[],e=[],t=[];let n=un;for(let i=0;iun-ri?o=gl[i-un+ri-1]:i===0&&(o=0),t.push(o);const a=1/(r-1),c=-a/2,l=1+a/2,h=[c,c,l,c,l,l,c,c,l,l,c,l],u=6,d=6,p=3,g=2,x=1,v=new Float32Array(p*d*u),m=new Float32Array(g*d*u),f=new Float32Array(x*d*u);for(let y=0;y2?0:-1,L=[E,A,0,E+2/3,A,0,E+2/3,A+1,0,E,A,0,E+2/3,A+1,0,E,A+1,0];v.set(L,p*d*y),m.set(h,g*d*y);const j=[y,y,y,y,y,y];f.set(j,x*d*y)}const T=new Xe;T.setAttribute("position",new ot(v,p)),T.setAttribute("uv",new ot(m,g)),T.setAttribute("faceIndex",new ot(f,x)),s.push(T),n>ri&&n--}return{_lodPlanes:s,_sizeLods:e,_sigmas:t}}function ha(s){const e=new At(3*Ut,3*Ut,s);return e.texture.mapping=Br,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function fr(s,e,t,n,i){s.viewport.set(e,t,n,i),s.scissor.set(e,t,n,i)}function hf(s){const e=new Float32Array(s),t=new w(0,1,0);return new Hr({name:"SphericalGaussianBlur",defines:{n:s},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t}},vertexShader:ro(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:ln,depthTest:!1,depthWrite:!1})}function ua(){const s=new Z(1,1);return new Hr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:s}},vertexShader:ro(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform vec2 texelSize; + + #include + + void main() { + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + vec2 f = fract( uv / texelSize - 0.5 ); + uv -= f * texelSize; + vec3 tl = texture2D ( envMap, uv ).rgb; + uv.x += texelSize.x; + vec3 tr = texture2D ( envMap, uv ).rgb; + uv.y += texelSize.y; + vec3 br = texture2D ( envMap, uv ).rgb; + uv.x -= texelSize.x; + vec3 bl = texture2D ( envMap, uv ).rgb; + + vec3 tm = mix( tl, tr, f.x ); + vec3 bm = mix( bl, br, f.x ); + gl_FragColor.rgb = mix( tm, bm, f.y ); + + } + `,blending:ln,depthTest:!1,depthWrite:!1})}function da(){return new Hr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ro(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:ln,depthTest:!1,depthWrite:!1})}function ro(){return` + + precision mediump float; + precision mediump int; + + attribute vec3 position; + attribute vec2 uv; + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function uf(s){let e=new WeakMap,t=null;function n(a){if(a&&a.isTexture){const c=a.mapping,l=c===Ns||c===Bs,h=c===Vi||c===Gi;if(l||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let u=e.get(a);return t===null&&(t=new ca(s)),u=l?t.fromEquirectangular(a,u):t.fromCubemap(a,u),e.set(a,u),u.texture}else{if(e.has(a))return e.get(a).texture;{const u=a.image;if(l&&u&&u.height>0||h&&u&&i(u)){t===null&&(t=new ca(s));const d=l?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,d),a.addEventListener("dispose",r),d.texture}else return null}}}return a}function i(a){let c=0;const l=6;for(let h=0;he.maxTextureSize&&(j=Math.ceil(L/e.maxTextureSize),L=e.maxTextureSize);const te=new Float32Array(L*j*4*g),Y=new so(te,L,j,g);Y.format=xt,Y.type=Sn,Y.needsUpdate=!0;const _=A*4;for(let P=0;P0)return s;const i=e*t;let r=pa[i];if(r===void 0&&(r=new Float32Array(i),pa[i]=r),e!==0){n.toArray(r,0);for(let o=1,a=0;o!==e;++o)a+=t,s[o].toArray(r,a)}return r}function _t(s,e){if(s.length!==e.length)return!1;for(let t=0,n=s.length;t/gm;function Vs(s){return s.replace(gp,xp)}function xp(s,e){const t=Pe[e];if(t===void 0)throw new Error("Can not resolve #include <"+e+">");return Vs(t)}const _p=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,vp=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Sa(s){return s.replace(vp,El).replace(_p,yp)}function yp(s,e,t,n){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),El(s,e,t,n)}function El(s,e,t,n){let i="";for(let r=parseInt(e);r0&&(x+=` +`),v=[d,p].filter(Ci).join(` +`),v.length>0&&(v+=` +`)):(x=[Ea(t),"#define SHADER_NAME "+t.shaderName,p,t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define MAX_BONES "+t.maxBones,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.displacementMap&&t.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.useVertexTexture?"#define BONE_TEXTURE":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargets&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(Ci).join(` +`),v=[d,Ea(t),"#define SHADER_NAME "+t.shaderName,p,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+l:"",t.envMap?"#define "+h:"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMap&&t.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",t.normalMap&&t.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",t.specularColorMap?"#define USE_SPECULARCOLORMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEENCOLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.vertexTangents?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUvs?"#define USE_UV":"",t.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+c:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==cn?"#define TONE_MAPPING":"",t.toneMapping!==cn?Pe.tonemapping_pars_fragment:"",t.toneMapping!==cn?dp("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.transparent?"":"#define OPAQUE",Pe.encodings_pars_fragment,up("linearToOutputTexel",t.outputEncoding),t.depthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(Ci).join(` +`)),o=Vs(o),o=ba(o,t),o=wa(o,t),a=Vs(a),a=ba(a,t),a=wa(a,t),o=Sa(o),a=Sa(a),t.isWebGL2&&t.isRawShaderMaterial!==!0&&(m=`#version 300 es +`,x=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+x,v=["#define varying in",t.glslVersion===jo?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===jo?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+v);const f=m+x+o,T=m+v+a,y=ya(i,35633,f),E=ya(i,35632,T);if(i.attachShader(g,y),i.attachShader(g,E),t.index0AttributeName!==void 0?i.bindAttribLocation(g,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(g,0,"position"),i.linkProgram(g),s.debug.checkShaderErrors){const j=i.getProgramInfoLog(g).trim(),te=i.getShaderInfoLog(y).trim(),Y=i.getShaderInfoLog(E).trim();let _=!0,R=!0;if(i.getProgramParameter(g,35714)===!1){_=!1;const P=Ma(i,y,"vertex"),B=Ma(i,E,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(g,35715)+` + +Program Info Log: `+j+` +`+P+` +`+B)}else j!==""?console.warn("THREE.WebGLProgram: Program Info Log:",j):(te===""||Y==="")&&(R=!1);R&&(this.diagnostics={runnable:_,programLog:j,vertexShader:{log:te,prefix:x},fragmentShader:{log:Y,prefix:v}})}i.deleteShader(y),i.deleteShader(E);let A;this.getUniforms=function(){return A===void 0&&(A=new dn(i,g)),A};let L;return this.getAttributes=function(){return L===void 0&&(L=mp(i,g)),L},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(g),this.program=void 0},this.name=t.shaderName,this.id=lp++,this.cacheKey=e,this.usedTimes=1,this.program=g,this.vertexShader=y,this.fragmentShader=E,this}let Tp=0;class Ap{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),r=this._getShaderStage(n),o=this._getShaderCacheForMaterial(e);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(r)===!1&&(o.add(r),r.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;return t.has(e)===!1&&t.set(e,new Set),t.get(e)}_getShaderStage(e){const t=this.shaderCache;if(t.has(e)===!1){const n=new Cp;t.set(e,n)}return t.get(e)}}class Cp{constructor(){this.id=Tp++,this.usedTimes=0}}function Lp(s,e,t,n,i,r,o){const a=new ul,c=new Ap,l=[],h=i.isWebGL2,u=i.logarithmicDepthBuffer,d=i.floatVertexTextures,p=i.maxVertexUniforms,g=i.vertexTextures;let x=i.precision;const v={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(_){const P=_.skeleton.bones;if(d)return 1024;{const F=Math.floor((p-20)/4),I=Math.min(F,P.length);return I0,fe=_.clearcoat>0;return{isWebGL2:h,shaderID:ce,shaderName:_.type,vertexShader:X,fragmentShader:ie,defines:_.defines,customVertexShaderID:ue,customFragmentShaderID:ge,isRawShaderMaterial:_.isRawShaderMaterial===!0,glslVersion:_.glslVersion,precision:x,instancing:F.isInstancedMesh===!0,instancingColor:F.isInstancedMesh===!0&&F.instanceColor!==null,supportsVertexTextures:g,outputEncoding:O===null?s.outputEncoding:O.isXRRenderTarget===!0?O.texture.encoding:mn,map:!!_.map,matcap:!!_.matcap,envMap:!!J,envMapMode:J&&J.mapping,envMapCubeUV:!!J&&(J.mapping===Br||J.mapping===Zs),lightMap:!!_.lightMap,aoMap:!!_.aoMap,emissiveMap:!!_.emissiveMap,bumpMap:!!_.bumpMap,normalMap:!!_.normalMap,objectSpaceNormalMap:_.normalMapType===ah,tangentSpaceNormalMap:_.normalMapType===ci,decodeVideoTexture:!!_.map&&_.map.isVideoTexture===!0&&_.map.encoding===je,clearcoat:fe,clearcoatMap:fe&&!!_.clearcoatMap,clearcoatRoughnessMap:fe&&!!_.clearcoatRoughnessMap,clearcoatNormalMap:fe&&!!_.clearcoatNormalMap,displacementMap:!!_.displacementMap,roughnessMap:!!_.roughnessMap,metalnessMap:!!_.metalnessMap,specularMap:!!_.specularMap,specularIntensityMap:!!_.specularIntensityMap,specularColorMap:!!_.specularColorMap,transparent:_.transparent,alphaMap:!!_.alphaMap,alphaTest:Be,gradientMap:!!_.gradientMap,sheen:_.sheen>0,sheenColorMap:!!_.sheenColorMap,sheenRoughnessMap:!!_.sheenRoughnessMap,transmission:_.transmission>0,transmissionMap:!!_.transmissionMap,thicknessMap:!!_.thicknessMap,combine:_.combine,vertexTangents:!!_.normalMap&&!!F.geometry&&!!F.geometry.attributes.tangent,vertexColors:_.vertexColors,vertexAlphas:_.vertexColors===!0&&!!F.geometry&&!!F.geometry.attributes.color&&F.geometry.attributes.color.itemSize===4,vertexUvs:!!_.map||!!_.bumpMap||!!_.normalMap||!!_.specularMap||!!_.alphaMap||!!_.emissiveMap||!!_.roughnessMap||!!_.metalnessMap||!!_.clearcoatMap||!!_.clearcoatRoughnessMap||!!_.clearcoatNormalMap||!!_.displacementMap||!!_.transmissionMap||!!_.thicknessMap||!!_.specularIntensityMap||!!_.specularColorMap||!!_.sheenColorMap||!!_.sheenRoughnessMap,uvsVertexOnly:!(!!_.map||!!_.bumpMap||!!_.normalMap||!!_.specularMap||!!_.alphaMap||!!_.emissiveMap||!!_.roughnessMap||!!_.metalnessMap||!!_.clearcoatNormalMap||_.transmission>0||!!_.transmissionMap||!!_.thicknessMap||!!_.specularIntensityMap||!!_.specularColorMap||_.sheen>0||!!_.sheenColorMap||!!_.sheenRoughnessMap)&&!!_.displacementMap,fog:!!I,useFog:_.fog,fogExp2:I&&I.isFogExp2,flatShading:!!_.flatShading,sizeAttenuation:_.sizeAttenuation,logarithmicDepthBuffer:u,skinning:F.isSkinnedMesh===!0&&U>0,maxBones:U,useVertexTexture:d,morphTargets:!!F.geometry&&!!F.geometry.morphAttributes.position,morphNormals:!!F.geometry&&!!F.geometry.morphAttributes.normal,morphTargetsCount:!!F.geometry&&!!F.geometry.morphAttributes.position?F.geometry.morphAttributes.position.length:0,numDirLights:R.directional.length,numPointLights:R.point.length,numSpotLights:R.spot.length,numRectAreaLights:R.rectArea.length,numHemiLights:R.hemi.length,numDirLightShadows:R.directionalShadowMap.length,numPointLightShadows:R.pointShadowMap.length,numSpotLightShadows:R.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:_.dithering,shadowMapEnabled:s.shadowMap.enabled&&P.length>0,shadowMapType:s.shadowMap.type,toneMapping:_.toneMapped?s.toneMapping:cn,physicallyCorrectLights:s.physicallyCorrectLights,premultipliedAlpha:_.premultipliedAlpha,doubleSided:_.side===si,flipSided:_.side===it,depthPacking:_.depthPacking!==void 0?_.depthPacking:!1,index0AttributeName:_.index0AttributeName,extensionDerivatives:_.extensions&&_.extensions.derivatives,extensionFragDepth:_.extensions&&_.extensions.fragDepth,extensionDrawBuffers:_.extensions&&_.extensions.drawBuffers,extensionShaderTextureLOD:_.extensions&&_.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||n.has("EXT_shader_texture_lod"),customProgramCacheKey:_.customProgramCacheKey()}}function T(_){const R=[];if(_.shaderID?R.push(_.shaderID):(R.push(_.customVertexShaderID),R.push(_.customFragmentShaderID)),_.defines!==void 0)for(const P in _.defines)R.push(P),R.push(_.defines[P]);return _.isRawShaderMaterial===!1&&(y(R,_),E(R,_),R.push(s.outputEncoding)),R.push(_.customProgramCacheKey),R.join()}function y(_,R){_.push(R.precision),_.push(R.outputEncoding),_.push(R.envMapMode),_.push(R.combine),_.push(R.vertexUvs),_.push(R.fogExp2),_.push(R.sizeAttenuation),_.push(R.maxBones),_.push(R.morphTargetsCount),_.push(R.numDirLights),_.push(R.numPointLights),_.push(R.numSpotLights),_.push(R.numHemiLights),_.push(R.numRectAreaLights),_.push(R.numDirLightShadows),_.push(R.numPointLightShadows),_.push(R.numSpotLightShadows),_.push(R.shadowMapType),_.push(R.toneMapping),_.push(R.numClippingPlanes),_.push(R.numClipIntersection)}function E(_,R){a.disableAll(),R.isWebGL2&&a.enable(0),R.supportsVertexTextures&&a.enable(1),R.instancing&&a.enable(2),R.instancingColor&&a.enable(3),R.map&&a.enable(4),R.matcap&&a.enable(5),R.envMap&&a.enable(6),R.envMapCubeUV&&a.enable(7),R.lightMap&&a.enable(8),R.aoMap&&a.enable(9),R.emissiveMap&&a.enable(10),R.bumpMap&&a.enable(11),R.normalMap&&a.enable(12),R.objectSpaceNormalMap&&a.enable(13),R.tangentSpaceNormalMap&&a.enable(14),R.clearcoat&&a.enable(15),R.clearcoatMap&&a.enable(16),R.clearcoatRoughnessMap&&a.enable(17),R.clearcoatNormalMap&&a.enable(18),R.displacementMap&&a.enable(19),R.specularMap&&a.enable(20),R.roughnessMap&&a.enable(21),R.metalnessMap&&a.enable(22),R.gradientMap&&a.enable(23),R.alphaMap&&a.enable(24),R.alphaTest&&a.enable(25),R.vertexColors&&a.enable(26),R.vertexAlphas&&a.enable(27),R.vertexUvs&&a.enable(28),R.vertexTangents&&a.enable(29),R.uvsVertexOnly&&a.enable(30),R.fog&&a.enable(31),_.push(a.mask),a.disableAll(),R.useFog&&a.enable(0),R.flatShading&&a.enable(1),R.logarithmicDepthBuffer&&a.enable(2),R.skinning&&a.enable(3),R.useVertexTexture&&a.enable(4),R.morphTargets&&a.enable(5),R.morphNormals&&a.enable(6),R.premultipliedAlpha&&a.enable(7),R.shadowMapEnabled&&a.enable(8),R.physicallyCorrectLights&&a.enable(9),R.doubleSided&&a.enable(10),R.flipSided&&a.enable(11),R.depthPacking&&a.enable(12),R.dithering&&a.enable(13),R.specularIntensityMap&&a.enable(14),R.specularColorMap&&a.enable(15),R.transmission&&a.enable(16),R.transmissionMap&&a.enable(17),R.thicknessMap&&a.enable(18),R.sheen&&a.enable(19),R.sheenColorMap&&a.enable(20),R.sheenRoughnessMap&&a.enable(21),R.decodeVideoTexture&&a.enable(22),R.transparent&&a.enable(23),_.push(a.mask)}function A(_){const R=v[_.type];let P;if(R){const B=Ot[R];P=Sh.clone(B.uniforms)}else P=_.uniforms;return P}function L(_,R){let P;for(let B=0,F=l.length;B0?n.push(m):p.transparent===!0?i.push(m):t.push(m)}function c(u,d,p,g,x,v){const m=o(u,d,p,g,x,v);p.transmission>0?n.unshift(m):p.transparent===!0?i.unshift(m):t.unshift(m)}function l(u,d){t.length>1&&t.sort(u||Pp),n.length>1&&n.sort(d||Ta),i.length>1&&i.sort(d||Ta)}function h(){for(let u=e,d=s.length;u=s.get(n).length?(r=new Aa,s.get(n).push(r)):r=s.get(n)[i],r}function t(){s=new WeakMap}return{get:e,dispose:t}}function Ip(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new w,color:new me};break;case"SpotLight":t={position:new w,direction:new w,color:new me,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new w,color:new me,distance:0,decay:0};break;case"HemisphereLight":t={direction:new w,skyColor:new me,groundColor:new me};break;case"RectAreaLight":t={color:new me,position:new w,halfWidth:new w,halfHeight:new w};break}return s[e.id]=t,t}}}function Fp(){const s={};return{get:function(e){if(s[e.id]!==void 0)return s[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Z};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Z};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Z,shadowCameraNear:1,shadowCameraFar:1e3};break}return s[e.id]=t,t}}}let Np=0;function Bp(s,e){return(e.castShadow?1:0)-(s.castShadow?1:0)}function zp(s,e){const t=new Ip,n=Fp(),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:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let h=0;h<9;h++)i.probe.push(new w);const r=new w,o=new ve,a=new ve;function c(h,u){let d=0,p=0,g=0;for(let te=0;te<9;te++)i.probe[te].set(0,0,0);let x=0,v=0,m=0,f=0,T=0,y=0,E=0,A=0;h.sort(Bp);const L=u!==!0?Math.PI:1;for(let te=0,Y=h.length;te0&&(e.isWebGL2||s.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_FLOAT_1,i.rectAreaLTC2=ee.LTC_FLOAT_2):s.has("OES_texture_half_float_linear")===!0?(i.rectAreaLTC1=ee.LTC_HALF_1,i.rectAreaLTC2=ee.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=d,i.ambient[1]=p,i.ambient[2]=g;const j=i.hash;(j.directionalLength!==x||j.pointLength!==v||j.spotLength!==m||j.rectAreaLength!==f||j.hemiLength!==T||j.numDirectionalShadows!==y||j.numPointShadows!==E||j.numSpotShadows!==A)&&(i.directional.length=x,i.spot.length=m,i.rectArea.length=f,i.point.length=v,i.hemi.length=T,i.directionalShadow.length=y,i.directionalShadowMap.length=y,i.pointShadow.length=E,i.pointShadowMap.length=E,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=y,i.pointShadowMatrix.length=E,i.spotShadowMatrix.length=A,j.directionalLength=x,j.pointLength=v,j.spotLength=m,j.rectAreaLength=f,j.hemiLength=T,j.numDirectionalShadows=y,j.numPointShadows=E,j.numSpotShadows=A,i.version=Np++)}function l(h,u){let d=0,p=0,g=0,x=0,v=0;const m=u.matrixWorldInverse;for(let f=0,T=h.length;f=t.get(r).length?(a=new Ca(s,e),t.get(r).push(a)):a=t.get(r)[o],a}function i(){t=new WeakMap}return{get:n,dispose:i}}class Tl extends ct{constructor(e){super(),this.type="MeshDepthMaterial",this.depthPacking=sh,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(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}Tl.prototype.isMeshDepthMaterial=!0;class Al extends ct{constructor(e){super(),this.type="MeshDistanceMaterial",this.referencePosition=new w,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}Al.prototype.isMeshDistanceMaterial=!0;const Op=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,Hp=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function Cl(s,e,t){let n=new Or;const i=new Z,r=new Z,o=new ke,a=new Tl({depthPacking:oh}),c=new Al,l={},h=t.maxTextureSize,u={0:it,1:Di,2:si},d=new An({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Z},radius:{value:4}},vertexShader:Op,fragmentShader:Hp}),p=d.clone();p.defines.HORIZONTAL_PASS=1;const g=new Xe;g.setAttribute("position",new ot(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const x=new st(g,d),v=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=il,this.render=function(y,E,A){if(v.enabled===!1||v.autoUpdate===!1&&v.needsUpdate===!1||y.length===0)return;const L=s.getRenderTarget(),j=s.getActiveCubeFace(),te=s.getActiveMipmapLevel(),Y=s.state;Y.setBlending(ln),Y.buffers.color.setClear(1,1,1,1),Y.buffers.depth.setTest(!0),Y.setScissorTest(!1);for(let _=0,R=y.length;_h||i.y>h)&&(i.x>h&&(r.x=Math.floor(h/F.x),i.x=r.x*F.x,B.mapSize.x=r.x),i.y>h&&(r.y=Math.floor(h/F.y),i.y=r.y*F.y,B.mapSize.y=r.y)),B.map===null&&!B.isPointLightShadow&&this.type===Ai){const H={minFilter:ut,magFilter:ut,format:xt};B.map=new At(i.x,i.y,H),B.map.texture.name=P.name+".shadowMap",B.mapPass=new At(i.x,i.y,H),B.camera.updateProjectionMatrix()}if(B.map===null){const H={minFilter:rt,magFilter:rt,format:xt};B.map=new At(i.x,i.y,H),B.map.texture.name=P.name+".shadowMap",B.camera.updateProjectionMatrix()}s.setRenderTarget(B.map),s.clear();const I=B.getViewportCount();for(let H=0;H0){const P=_.uuid,B=A.uuid;let F=l[P];F===void 0&&(F={},l[P]=F);let I=F[B];I===void 0&&(I=_.clone(),F[B]=I),_=I}return _.visible=A.visible,_.wireframe=A.wireframe,Y===Ai?_.side=A.shadowSide!==null?A.shadowSide:A.side:_.side=A.shadowSide!==null?A.shadowSide:u[A.side],_.alphaMap=A.alphaMap,_.alphaTest=A.alphaTest,_.clipShadows=A.clipShadows,_.clippingPlanes=A.clippingPlanes,_.clipIntersection=A.clipIntersection,_.displacementMap=A.displacementMap,_.displacementScale=A.displacementScale,_.displacementBias=A.displacementBias,_.wireframeLinewidth=A.wireframeLinewidth,_.linewidth=A.linewidth,L.isPointLight===!0&&_.isMeshDistanceMaterial===!0&&(_.referencePosition.setFromMatrixPosition(L.matrixWorld),_.nearDistance=j,_.farDistance=te),_}function T(y,E,A,L,j){if(y.visible===!1)return;if(y.layers.test(E.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&j===Ai)&&(!y.frustumCulled||n.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,y.matrixWorld);const _=e.update(y),R=y.material;if(Array.isArray(R)){const P=_.groups;for(let B=0,F=P.length;B=1):I.indexOf("OpenGL ES")!==-1&&(F=parseFloat(/^OpenGL ES (\d)/.exec(I)[1]),B=F>=2);let H=null,J={};const ce=s.getParameter(3088),U=s.getParameter(2978),X=new ke().fromArray(ce),ie=new ke().fromArray(U);function ue(C,he,oe){const Me=new Uint8Array(4),W=s.createTexture();s.bindTexture(C,W),s.texParameteri(C,10241,9728),s.texParameteri(C,10240,9728);for(let _e=0;_eK||S.height>K)&&(de=K/Math.max(S.width,S.height)),de<1||M===!0)if(typeof HTMLImageElement!="undefined"&&S instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&S instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&S instanceof ImageBitmap){const V=M?hh:Math.floor,xe=V(de*S.width),pe=V(de*S.height);x===void 0&&(x=m(xe,pe));const re=G?m(xe,pe):x;return re.width=xe,re.height=pe,re.getContext("2d").drawImage(S,0,0,xe,pe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+S.width+"x"+S.height+") to ("+xe+"x"+pe+")."),re}else return"data"in S&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+S.width+"x"+S.height+")."),S;return S}function T(S){return Yo(S.width)&&Yo(S.height)}function y(S){return a?!1:S.wrapS!==St||S.wrapT!==St||S.minFilter!==rt&&S.minFilter!==ut}function E(S,M){return S.generateMipmaps&&M&&S.minFilter!==rt&&S.minFilter!==ut}function A(S){s.generateMipmap(S)}function L(S,M,G,K,de=!1){if(a===!1)return M;if(S!==null){if(s[S]!==void 0)return s[S];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+S+"'")}let V=M;return M===6403&&(G===5126&&(V=33326),G===5131&&(V=33325),G===5121&&(V=33321)),M===33319&&(G===5126&&(V=33328),G===5131&&(V=33327),G===5121&&(V=33323)),M===6408&&(G===5126&&(V=34836),G===5131&&(V=34842),G===5121&&(V=K===je&&de===!1?35907:32856),G===32819&&(V=32854),G===32820&&(V=32855)),(V===33325||V===33326||V===33327||V===33328||V===34842||V===34836)&&e.get("EXT_color_buffer_float"),V}function j(S,M,G){return E(S,G)===!0||S.isFramebufferTexture&&S.minFilter!==rt&&S.minFilter!==ut?Math.log2(Math.max(M.width,M.height))+1:S.mipmaps!==void 0&&S.mipmaps.length>0?S.mipmaps.length:S.isCompressedTexture&&Array.isArray(S.image)?M.mipmaps.length:1}function te(S){return S===rt||S===So||S===Eo?9728:9729}function Y(S){const M=S.target;M.removeEventListener("dispose",Y),R(M),M.isVideoTexture&&g.delete(M),o.memory.textures--}function _(S){const M=S.target;M.removeEventListener("dispose",_),P(M)}function R(S){const M=n.get(S);M.__webglInit!==void 0&&(s.deleteTexture(M.__webglTexture),n.remove(S))}function P(S){const M=S.texture,G=n.get(S),K=n.get(M);if(!!S){if(K.__webglTexture!==void 0&&(s.deleteTexture(K.__webglTexture),o.memory.textures--),S.depthTexture&&S.depthTexture.dispose(),S.isWebGLCubeRenderTarget)for(let de=0;de<6;de++)s.deleteFramebuffer(G.__webglFramebuffer[de]),G.__webglDepthbuffer&&s.deleteRenderbuffer(G.__webglDepthbuffer[de]);else s.deleteFramebuffer(G.__webglFramebuffer),G.__webglDepthbuffer&&s.deleteRenderbuffer(G.__webglDepthbuffer),G.__webglMultisampledFramebuffer&&s.deleteFramebuffer(G.__webglMultisampledFramebuffer),G.__webglColorRenderbuffer&&s.deleteRenderbuffer(G.__webglColorRenderbuffer),G.__webglDepthRenderbuffer&&s.deleteRenderbuffer(G.__webglDepthRenderbuffer);if(S.isWebGLMultipleRenderTargets)for(let de=0,V=M.length;de=c&&console.warn("THREE.WebGLTextures: Trying to use "+S+" texture units while this GPU supports only "+c),B+=1,S}function H(S,M){const G=n.get(S);if(S.isVideoTexture&&se(S),S.version>0&&G.__version!==S.version){const K=S.image;if(K===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{O(G,S,M);return}}t.activeTexture(33984+M),t.bindTexture(3553,G.__webglTexture)}function J(S,M){const G=n.get(S);if(S.version>0&&G.__version!==S.version){O(G,S,M);return}t.activeTexture(33984+M),t.bindTexture(35866,G.__webglTexture)}function ce(S,M){const G=n.get(S);if(S.version>0&&G.__version!==S.version){O(G,S,M);return}t.activeTexture(33984+M),t.bindTexture(32879,G.__webglTexture)}function U(S,M){const G=n.get(S);if(S.version>0&&G.__version!==S.version){Be(G,S,M);return}t.activeTexture(33984+M),t.bindTexture(34067,G.__webglTexture)}const X={[zs]:10497,[St]:33071,[Us]:33648},ie={[rt]:9728,[So]:9984,[Eo]:9986,[ut]:9729,[Oc]:9985,[zr]:9987};function ue(S,M,G){if(G?(s.texParameteri(S,10242,X[M.wrapS]),s.texParameteri(S,10243,X[M.wrapT]),(S===32879||S===35866)&&s.texParameteri(S,32882,X[M.wrapR]),s.texParameteri(S,10240,ie[M.magFilter]),s.texParameteri(S,10241,ie[M.minFilter])):(s.texParameteri(S,10242,33071),s.texParameteri(S,10243,33071),(S===32879||S===35866)&&s.texParameteri(S,32882,33071),(M.wrapS!==St||M.wrapT!==St)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),s.texParameteri(S,10240,te(M.magFilter)),s.texParameteri(S,10241,te(M.minFilter)),M.minFilter!==rt&&M.minFilter!==ut&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),e.has("EXT_texture_filter_anisotropic")===!0){const K=e.get("EXT_texture_filter_anisotropic");if(M.type===Sn&&e.has("OES_texture_float_linear")===!1||a===!1&&M.type===ti&&e.has("OES_texture_half_float_linear")===!1)return;(M.anisotropy>1||n.get(M).__currentAnisotropy)&&(s.texParameterf(S,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(M.anisotropy,i.getMaxAnisotropy())),n.get(M).__currentAnisotropy=M.anisotropy)}}function ge(S,M){S.__webglInit===void 0&&(S.__webglInit=!0,M.addEventListener("dispose",Y),S.__webglTexture=s.createTexture(),o.memory.textures++)}function O(S,M,G){let K=3553;M.isDataTexture2DArray&&(K=35866),M.isDataTexture3D&&(K=32879),ge(S,M),t.activeTexture(33984+G),t.bindTexture(K,S.__webglTexture),s.pixelStorei(37440,M.flipY),s.pixelStorei(37441,M.premultiplyAlpha),s.pixelStorei(3317,M.unpackAlignment),s.pixelStorei(37443,0);const de=y(M)&&T(M.image)===!1;let V=f(M.image,de,!1,h);V=ye(M,V);const xe=T(V)||a,pe=r.convert(M.format,M.encoding);let re=r.convert(M.type),ne=L(M.internalFormat,pe,re,M.encoding,M.isVideoTexture);ue(K,M,xe);let Te;const C=M.mipmaps,he=a&&M.isVideoTexture!==!0,oe=S.__version===void 0,Me=j(M,V,xe);if(M.isDepthTexture)ne=6402,a?M.type===Sn?ne=36012:M.type===Ar?ne=33190:M.type===ni?ne=35056:ne=33189:M.type===Sn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),M.format===Tn&&ne===6402&&M.type!==Ii&&M.type!==Ar&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),M.type=Ii,re=r.convert(M.type)),M.format===oi&&ne===6402&&(ne=34041,M.type!==ni&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),M.type=ni,re=r.convert(M.type))),he&&oe?t.texStorage2D(3553,1,ne,V.width,V.height):t.texImage2D(3553,0,ne,V.width,V.height,0,pe,re,null);else if(M.isDataTexture)if(C.length>0&&xe){he&&oe&&t.texStorage2D(3553,Me,ne,C[0].width,C[0].height);for(let W=0,_e=C.length;W<_e;W++)Te=C[W],he?t.texSubImage2D(3553,0,0,0,Te.width,Te.height,pe,re,Te.data):t.texImage2D(3553,W,ne,Te.width,Te.height,0,pe,re,Te.data);M.generateMipmaps=!1}else he?(oe&&t.texStorage2D(3553,Me,ne,V.width,V.height),t.texSubImage2D(3553,0,0,0,V.width,V.height,pe,re,V.data)):t.texImage2D(3553,0,ne,V.width,V.height,0,pe,re,V.data);else if(M.isCompressedTexture){he&&oe&&t.texStorage2D(3553,Me,ne,C[0].width,C[0].height);for(let W=0,_e=C.length;W<_e;W++)Te=C[W],M.format!==xt?pe!==null?he?t.compressedTexSubImage2D(3553,W,0,0,Te.width,Te.height,pe,Te.data):t.compressedTexImage2D(3553,W,ne,Te.width,Te.height,0,Te.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):he?t.texSubImage2D(3553,W,0,0,Te.width,Te.height,pe,re,Te.data):t.texImage2D(3553,W,ne,Te.width,Te.height,0,pe,re,Te.data)}else if(M.isDataTexture2DArray)he?(oe&&t.texStorage3D(35866,Me,ne,V.width,V.height,V.depth),t.texSubImage3D(35866,0,0,0,0,V.width,V.height,V.depth,pe,re,V.data)):t.texImage3D(35866,0,ne,V.width,V.height,V.depth,0,pe,re,V.data);else if(M.isDataTexture3D)he?(oe&&t.texStorage3D(32879,Me,ne,V.width,V.height,V.depth),t.texSubImage3D(32879,0,0,0,0,V.width,V.height,V.depth,pe,re,V.data)):t.texImage3D(32879,0,ne,V.width,V.height,V.depth,0,pe,re,V.data);else if(M.isFramebufferTexture)he&&oe?t.texStorage2D(3553,Me,ne,V.width,V.height):t.texImage2D(3553,0,ne,V.width,V.height,0,pe,re,null);else if(C.length>0&&xe){he&&oe&&t.texStorage2D(3553,Me,ne,C[0].width,C[0].height);for(let W=0,_e=C.length;W<_e;W++)Te=C[W],he?t.texSubImage2D(3553,W,0,0,pe,re,Te):t.texImage2D(3553,W,ne,pe,re,Te);M.generateMipmaps=!1}else he?(oe&&t.texStorage2D(3553,Me,ne,V.width,V.height),t.texSubImage2D(3553,0,0,0,pe,re,V)):t.texImage2D(3553,0,ne,pe,re,V);E(M,xe)&&A(K),S.__version=M.version,M.onUpdate&&M.onUpdate(M)}function Be(S,M,G){if(M.image.length!==6)return;ge(S,M),t.activeTexture(33984+G),t.bindTexture(34067,S.__webglTexture),s.pixelStorei(37440,M.flipY),s.pixelStorei(37441,M.premultiplyAlpha),s.pixelStorei(3317,M.unpackAlignment),s.pixelStorei(37443,0);const K=M&&(M.isCompressedTexture||M.image[0].isCompressedTexture),de=M.image[0]&&M.image[0].isDataTexture,V=[];for(let W=0;W<6;W++)!K&&!de?V[W]=f(M.image[W],!1,!0,l):V[W]=de?M.image[W].image:M.image[W],V[W]=ye(M,V[W]);const xe=V[0],pe=T(xe)||a,re=r.convert(M.format,M.encoding),ne=r.convert(M.type),Te=L(M.internalFormat,re,ne,M.encoding),C=a&&M.isVideoTexture!==!0,he=S.__version===void 0;let oe=j(M,xe,pe);ue(34067,M,pe);let Me;if(K){C&&he&&t.texStorage2D(34067,oe,Te,xe.width,xe.height);for(let W=0;W<6;W++){Me=V[W].mipmaps;for(let _e=0;_e0&&oe++,t.texStorage2D(34067,oe,Te,V[0].width,V[0].height));for(let W=0;W<6;W++)if(de){C?t.texSubImage2D(34069+W,0,0,0,V[W].width,V[W].height,re,ne,V[W].data):t.texImage2D(34069+W,0,Te,V[W].width,V[W].height,0,re,ne,V[W].data);for(let _e=0;_ep+g?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&d<=p-g&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,n),r!==null&&(c.matrix.fromArray(r.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),r.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(r.linearVelocity)):c.hasLinearVelocity=!1,r.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(r.angularVelocity)):c.hasAngularVelocity=!1));return a!==null&&(a.visible=i!==null),c!==null&&(c.visible=r!==null),l!==null&&(l.visible=o!==null),this}}class Gs extends lt{constructor(e,t,n,i,r,o,a,c,l,h){if(h=h!==void 0?h:Tn,h!==Tn&&h!==oi)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Tn&&(n=Ii),n===void 0&&h===oi&&(n=ni),super(null,i,r,o,a,c,h,n,l),this.image={width:e,height:t},this.magFilter=a!==void 0?a:rt,this.minFilter=c!==void 0?c:rt,this.flipY=!1,this.generateMipmaps=!1}}Gs.prototype.isDepthTexture=!0;class qp extends Cn{constructor(e,t){super();const n=this;let i=null,r=1,o=null,a="local-floor";const c=e.extensions.has("WEBGL_multisampled_render_to_texture");let l=null,h=null,u=null,d=null,p=!1,g=null;const x=t.getContextAttributes();let v=null,m=null;const f=[],T=new Map,y=new gt;y.layers.enable(1),y.viewport=new ke;const E=new gt;E.layers.enable(2),E.viewport=new ke;const A=[y,E],L=new Ll;L.layers.enable(1),L.layers.enable(2);let j=null,te=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(U){let X=f[U];return X===void 0&&(X=new Es,f[U]=X),X.getTargetRaySpace()},this.getControllerGrip=function(U){let X=f[U];return X===void 0&&(X=new Es,f[U]=X),X.getGripSpace()},this.getHand=function(U){let X=f[U];return X===void 0&&(X=new Es,f[U]=X),X.getHandSpace()};function Y(U){const X=T.get(U.inputSource);X&&X.dispatchEvent({type:U.type,data:U.inputSource})}function _(){T.forEach(function(U,X){U.disconnect(X)}),T.clear(),j=null,te=null,e.setRenderTarget(v),d=null,u=null,h=null,i=null,m=null,ce.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(U){r=U,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(U){a=U,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return o},this.getBaseLayer=function(){return u!==null?u:d},this.getBinding=function(){return h},this.getFrame=function(){return g},this.getSession=function(){return i},this.setSession=async function(U){if(i=U,i!==null){if(v=e.getRenderTarget(),i.addEventListener("select",Y),i.addEventListener("selectstart",Y),i.addEventListener("selectend",Y),i.addEventListener("squeeze",Y),i.addEventListener("squeezestart",Y),i.addEventListener("squeezeend",Y),i.addEventListener("end",_),i.addEventListener("inputsourceschange",R),x.xrCompatible!==!0&&await t.makeXRCompatible(),i.renderState.layers===void 0||e.capabilities.isWebGL2===!1){const X={antialias:i.renderState.layers===void 0?x.antialias:!0,alpha:x.alpha,depth:x.depth,stencil:x.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(i,t,X),i.updateRenderState({baseLayer:d}),m=new At(d.framebufferWidth,d.framebufferHeight,{format:xt,type:hn,encoding:e.outputEncoding})}else{p=x.antialias;let X=null,ie=null,ue=null;x.depth&&(ue=x.stencil?35056:33190,X=x.stencil?oi:Tn,ie=x.stencil?ni:Ii);const ge={colorFormat:e.outputEncoding===je?35907:32856,depthFormat:ue,scaleFactor:r};h=new XRWebGLBinding(i,t),u=h.createProjectionLayer(ge),i.updateRenderState({layers:[u]}),p?m=new Ks(u.textureWidth,u.textureHeight,{format:xt,type:hn,depthTexture:new Gs(u.textureWidth,u.textureHeight,ie,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:x.stencil,ignoreDepth:u.ignoreDepthValues,useRenderToTexture:c,encoding:e.outputEncoding}):m=new At(u.textureWidth,u.textureHeight,{format:xt,type:hn,depthTexture:new Gs(u.textureWidth,u.textureHeight,ie,void 0,void 0,void 0,void 0,void 0,void 0,X),stencilBuffer:x.stencil,ignoreDepth:u.ignoreDepthValues,encoding:e.outputEncoding})}m.isXRRenderTarget=!0,this.setFoveation(1),o=await i.requestReferenceSpace(a),ce.setContext(i),ce.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};function R(U){const X=i.inputSources;for(let ie=0;ie0&&(m.alphaTest.value=f.alphaTest);const T=s.get(f).envMap;T&&(m.envMap.value=T,m.flipEnvMap.value=T.isCubeTexture&&T.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=f.reflectivity,m.ior.value=f.ior,m.refractionRatio.value=f.refractionRatio),f.lightMap&&(m.lightMap.value=f.lightMap,m.lightMapIntensity.value=f.lightMapIntensity),f.aoMap&&(m.aoMap.value=f.aoMap,m.aoMapIntensity.value=f.aoMapIntensity);let y;f.map?y=f.map:f.specularMap?y=f.specularMap:f.displacementMap?y=f.displacementMap:f.normalMap?y=f.normalMap:f.bumpMap?y=f.bumpMap:f.roughnessMap?y=f.roughnessMap:f.metalnessMap?y=f.metalnessMap:f.alphaMap?y=f.alphaMap:f.emissiveMap?y=f.emissiveMap:f.clearcoatMap?y=f.clearcoatMap:f.clearcoatNormalMap?y=f.clearcoatNormalMap:f.clearcoatRoughnessMap?y=f.clearcoatRoughnessMap:f.specularIntensityMap?y=f.specularIntensityMap:f.specularColorMap?y=f.specularColorMap:f.transmissionMap?y=f.transmissionMap:f.thicknessMap?y=f.thicknessMap:f.sheenColorMap?y=f.sheenColorMap:f.sheenRoughnessMap&&(y=f.sheenRoughnessMap),y!==void 0&&(y.isWebGLRenderTarget&&(y=y.texture),y.matrixAutoUpdate===!0&&y.updateMatrix(),m.uvTransform.value.copy(y.matrix));let E;f.aoMap?E=f.aoMap:f.lightMap&&(E=f.lightMap),E!==void 0&&(E.isWebGLRenderTarget&&(E=E.texture),E.matrixAutoUpdate===!0&&E.updateMatrix(),m.uv2Transform.value.copy(E.matrix))}function i(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity}function r(m,f){m.dashSize.value=f.dashSize,m.totalSize.value=f.dashSize+f.gapSize,m.scale.value=f.scale}function o(m,f,T,y){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.size.value=f.size*T,m.scale.value=y*.5,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let E;f.map?E=f.map:f.alphaMap&&(E=f.alphaMap),E!==void 0&&(E.matrixAutoUpdate===!0&&E.updateMatrix(),m.uvTransform.value.copy(E.matrix))}function a(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.rotation.value=f.rotation,f.map&&(m.map.value=f.map),f.alphaMap&&(m.alphaMap.value=f.alphaMap),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest);let T;f.map?T=f.map:f.alphaMap&&(T=f.alphaMap),T!==void 0&&(T.matrixAutoUpdate===!0&&T.updateMatrix(),m.uvTransform.value.copy(T.matrix))}function c(m,f){f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap)}function l(m,f){m.specular.value.copy(f.specular),m.shininess.value=Math.max(f.shininess,1e-4),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===it&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===it&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function h(m,f){f.gradientMap&&(m.gradientMap.value=f.gradientMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===it&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===it&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function u(m,f){m.roughness.value=f.roughness,m.metalness.value=f.metalness,f.roughnessMap&&(m.roughnessMap.value=f.roughnessMap),f.metalnessMap&&(m.metalnessMap.value=f.metalnessMap),f.emissiveMap&&(m.emissiveMap.value=f.emissiveMap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===it&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===it&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),s.get(f).envMap&&(m.envMapIntensity.value=f.envMapIntensity)}function d(m,f,T){u(m,f),m.ior.value=f.ior,f.sheen>0&&(m.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),m.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(m.sheenColorMap.value=f.sheenColorMap),f.sheenRoughnessMap&&(m.sheenRoughnessMap.value=f.sheenRoughnessMap)),f.clearcoat>0&&(m.clearcoat.value=f.clearcoat,m.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(m.clearcoatMap.value=f.clearcoatMap),f.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap),f.clearcoatNormalMap&&(m.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),m.clearcoatNormalMap.value=f.clearcoatNormalMap,f.side===it&&m.clearcoatNormalScale.value.negate())),f.transmission>0&&(m.transmission.value=f.transmission,m.transmissionSamplerMap.value=T.texture,m.transmissionSamplerSize.value.set(T.width,T.height),f.transmissionMap&&(m.transmissionMap.value=f.transmissionMap),m.thickness.value=f.thickness,f.thicknessMap&&(m.thicknessMap.value=f.thicknessMap),m.attenuationDistance.value=f.attenuationDistance,m.attenuationColor.value.copy(f.attenuationColor)),m.specularIntensity.value=f.specularIntensity,m.specularColor.value.copy(f.specularColor),f.specularIntensityMap&&(m.specularIntensityMap.value=f.specularIntensityMap),f.specularColorMap&&(m.specularColorMap.value=f.specularColorMap)}function p(m,f){f.matcap&&(m.matcap.value=f.matcap),f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===it&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===it&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function g(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}function x(m,f){f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias),m.referencePosition.value.copy(f.referencePosition),m.nearDistance.value=f.nearDistance,m.farDistance.value=f.farDistance}function v(m,f){f.bumpMap&&(m.bumpMap.value=f.bumpMap,m.bumpScale.value=f.bumpScale,f.side===it&&(m.bumpScale.value*=-1)),f.normalMap&&(m.normalMap.value=f.normalMap,m.normalScale.value.copy(f.normalScale),f.side===it&&m.normalScale.value.negate()),f.displacementMap&&(m.displacementMap.value=f.displacementMap,m.displacementScale.value=f.displacementScale,m.displacementBias.value=f.displacementBias)}return{refreshFogUniforms:e,refreshMaterialUniforms:t}}function jp(){const s=Ni("canvas");return s.style.display="block",s}function Ve(s={}){const e=s.canvas!==void 0?s.canvas:jp(),t=s.context!==void 0?s.context:null,n=s.alpha!==void 0?s.alpha:!1,i=s.depth!==void 0?s.depth:!0,r=s.stencil!==void 0?s.stencil:!0,o=s.antialias!==void 0?s.antialias:!1,a=s.premultipliedAlpha!==void 0?s.premultipliedAlpha:!0,c=s.preserveDrawingBuffer!==void 0?s.preserveDrawingBuffer:!1,l=s.powerPreference!==void 0?s.powerPreference:"default",h=s.failIfMajorPerformanceCaveat!==void 0?s.failIfMajorPerformanceCaveat:!1;let u=null,d=null;const p=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=mn,this.physicallyCorrectLights=!1,this.toneMapping=cn,this.toneMappingExposure=1;const x=this;let v=!1,m=0,f=0,T=null,y=-1,E=null;const A=new ke,L=new ke;let j=null,te=e.width,Y=e.height,_=1,R=null,P=null;const B=new ke(0,0,te,Y),F=new ke(0,0,te,Y);let I=!1;const H=new Or;let J=!1,ce=!1,U=null;const X=new ve,ie=new w,ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function ge(){return T===null?_:1}let O=t;function Be(b,D){for(let z=0;z0?d=g[g.length-1]:d=null,p.pop(),p.length>0?u=p[p.length-1]:u=null};function Ke(b,D,z,N){if(b.visible===!1)return;if(b.layers.test(D.layers)){if(b.isGroup)z=b.renderOrder;else if(b.isLOD)b.autoUpdate===!0&&b.update(D);else if(b.isLight)d.pushLight(b),b.castShadow&&d.pushShadow(b);else if(b.isSprite){if(!b.frustumCulled||H.intersectsSprite(b)){N&&ie.setFromMatrixPosition(b.matrixWorld).applyMatrix4(X);const Ae=ye.update(b),Re=b.material;Re.visible&&u.push(b,Ae,Re,z,ie.z,null)}}else if((b.isMesh||b.isLine||b.isPoints)&&(b.isSkinnedMesh&&b.skeleton.frame!==Ce.render.frame&&(b.skeleton.update(),b.skeleton.frame=Ce.render.frame),!b.frustumCulled||H.intersectsObject(b))){N&&ie.setFromMatrixPosition(b.matrixWorld).applyMatrix4(X);const Ae=ye.update(b),Re=b.material;if(Array.isArray(Re)){const Le=Ae.groups;for(let Oe=0,Fe=Le.length;Oe0&&kt(q,D,z),N&&ae.viewport(A.copy(N)),q.length>0&&Xi(q,D,z),Ee.length>0&&Xi(Ee,D,z),Ae.length>0&&Xi(Ae,D,z)}function kt(b,D,z){if(U===null){const Ae=o===!0&&be.isWebGL2===!0?Ks:At;U=new Ae(1024,1024,{generateMipmaps:!0,type:xe.convert(ti)!==null?ti:hn,minFilter:zr,magFilter:rt,wrapS:St,wrapT:St,useRenderToTexture:fe.has("WEBGL_multisampled_render_to_texture")})}const N=x.getRenderTarget();x.setRenderTarget(U),x.clear();const q=x.toneMapping;x.toneMapping=cn,Xi(b,D,z),x.toneMapping=q,k.updateMultisampleRenderTarget(U),k.updateRenderTargetMipmap(U),x.setRenderTarget(N)}function Xi(b,D,z){const N=D.isScene===!0?D.overrideMaterial:null;for(let q=0,Ee=b.length;q=0&&D<=b.width-N&&z>=0&&z<=b.height-q&&O.readPixels(D,z,N,q,xe.convert(Oe),xe.convert(Fe),Ee):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{const Le=T!==null?we.get(T).__webglFramebuffer:null;ae.bindFramebuffer(36160,Le)}}},this.copyFramebufferToTexture=function(b,D,z=0){if(D.isFramebufferTexture!==!0){console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");return}const N=Math.pow(2,-z),q=Math.floor(D.image.width*N),Ee=Math.floor(D.image.height*N);k.setTexture2D(D,0),O.copyTexSubImage2D(3553,z,0,0,b.x,b.y,q,Ee),ae.unbindTexture()},this.copyTextureToTexture=function(b,D,z,N=0){const q=D.image.width,Ee=D.image.height,Ae=xe.convert(z.format),Re=xe.convert(z.type);k.setTexture2D(z,0),O.pixelStorei(37440,z.flipY),O.pixelStorei(37441,z.premultiplyAlpha),O.pixelStorei(3317,z.unpackAlignment),D.isDataTexture?O.texSubImage2D(3553,N,b.x,b.y,q,Ee,Ae,Re,D.image.data):D.isCompressedTexture?O.compressedTexSubImage2D(3553,N,b.x,b.y,D.mipmaps[0].width,D.mipmaps[0].height,Ae,D.mipmaps[0].data):O.texSubImage2D(3553,N,b.x,b.y,Ae,Re,D.image),N===0&&z.generateMipmaps&&O.generateMipmap(3553),ae.unbindTexture()},this.copyTextureToTexture3D=function(b,D,z,N,q=0){if(x.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Ee=b.max.x-b.min.x+1,Ae=b.max.y-b.min.y+1,Re=b.max.z-b.min.z+1,Le=xe.convert(N.format),Oe=xe.convert(N.type);let Fe;if(N.isDataTexture3D)k.setTexture3D(N,0),Fe=32879;else if(N.isDataTexture2DArray)k.setTexture2DArray(N,0),Fe=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}O.pixelStorei(37440,N.flipY),O.pixelStorei(37441,N.premultiplyAlpha),O.pixelStorei(3317,N.unpackAlignment);const Ne=O.getParameter(3314),Qe=O.getParameter(32878),vn=O.getParameter(3316),Rn=O.getParameter(3315),ze=O.getParameter(32877),Nt=z.isCompressedTexture?z.mipmaps[0]:z.image;O.pixelStorei(3314,Nt.width),O.pixelStorei(32878,Nt.height),O.pixelStorei(3316,b.min.x),O.pixelStorei(3315,b.min.y),O.pixelStorei(32877,b.min.z),z.isDataTexture||z.isDataTexture3D?O.texSubImage3D(Fe,q,D.x,D.y,D.z,Ee,Ae,Re,Le,Oe,Nt.data):z.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),O.compressedTexSubImage3D(Fe,q,D.x,D.y,D.z,Ee,Ae,Re,Le,Nt.data)):O.texSubImage3D(Fe,q,D.x,D.y,D.z,Ee,Ae,Re,Le,Oe,Nt),O.pixelStorei(3314,Ne),O.pixelStorei(32878,Qe),O.pixelStorei(3316,vn),O.pixelStorei(3315,Rn),O.pixelStorei(32877,ze),q===0&&N.generateMipmaps&&O.generateMipmap(Fe),ae.unbindTexture()},this.initTexture=function(b){k.setTexture2D(b,0),ae.unbindTexture()},this.resetState=function(){m=0,f=0,T=null,ae.reset(),pe.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}Ve.prototype.isWebGLRenderer=!0;class Yp extends Ve{}Yp.prototype.isWebGL1Renderer=!0;class oo extends Ue{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),t}}oo.prototype.isScene=!0;class Wi{constructor(e,t){this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=Fi,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ht()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let i=0,r=this.stride;ie.far||t.push({distance:c,point:bi.clone(),uv:tt.getUV(bi,pr,Si,mr,La,Ts,Ra,new Z),face:null,object:this})}copy(e){return super.copy(e),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}Jp.prototype.isSprite=!0;function gr(s,e,t,n,i,r){Jn.subVectors(s,t).addScalar(.5).multiply(n),i!==void 0?(wi.x=r*Jn.x-i*Jn.y,wi.y=i*Jn.x+r*Jn.y):wi.copy(Jn),s.copy(e),s.x+=wi.x,s.y+=wi.y,s.applyMatrix4(Pl)}const Pa=new w,Da=new ke,Ia=new ke,Zp=new w,Fa=new ve;class Dl extends st{constructor(e,t){super(e,t),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new ve,this.bindMatrixInverse=new ve}copy(e){return super.copy(e),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,this}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new ke,t=this.geometry.attributes.skinWeight;for(let n=0,i=t.count;nc)continue;d.applyMatrix4(this.matrixWorld);const j=e.ray.origin.distanceTo(d);je.far||t.push({distance:j,point:u.clone().applyMatrix4(this.matrixWorld),index:T,face:null,faceIndex:null,object:this})}}else{const m=Math.max(0,o.start),f=Math.min(v.count,o.start+o.count);for(let T=m,y=f-1;Tc)continue;d.applyMatrix4(this.matrixWorld);const A=e.ray.origin.distanceTo(d);Ae.far||t.push({distance:A,point:u.clone().applyMatrix4(this.matrixWorld),index:T,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}ao.prototype.isLine=!0;const Ha=new w,Va=new w;class zi extends ao{constructor(e,t){super(e,t),this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(e.index===null){const t=e.attributes.position,n=[];for(let i=0,r=t.count;i0){const i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}Cr.prototype.isPoints=!0;function ka(s,e,t,n,i,r,o){const a=Ws.distanceSqToPoint(s);if(ai.far)return;r.push({distance:l,distanceToRay:Math.sqrt(a),point:c,index:e,face:null,object:o})}}class Il extends lt{constructor(e,t,n,i,r,o,a,c,l){super(e,t,n,i,r,o,a,c,l),this.minFilter=o!==void 0?o:ut,this.magFilter=r!==void 0?r:ut,this.generateMipmaps=!1;const h=this;function u(){h.needsUpdate=!0,e.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback(u)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}Il.prototype.isVideoTexture=!0;class tm extends lt{constructor(e,t,n){super({width:e,height:t}),this.format=n,this.magFilter=rt,this.minFilter=rt,this.generateMipmaps=!1,this.needsUpdate=!0}}tm.prototype.isFramebufferTexture=!0;class nm extends lt{constructor(e,t,n,i,r,o,a,c,l,h,u,d){super(null,o,a,c,l,h,i,r,u,d),this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}nm.prototype.isCompressedTexture=!0;class im extends lt{constructor(e,t,n,i,r,o,a,c,l){super(e,t,n,i,r,o,a,c,l),this.needsUpdate=!0}}im.prototype.isCanvasTexture=!0;new w;new w;new w;new tt;class Ct{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let n,i=this.getPoint(0),r=0;t.push(0);for(let o=1;o<=e;o++)n=this.getPoint(o/e),r+=n.distanceTo(i),t.push(r),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let i=0;const r=n.length;let o;t?o=t:o=e*n[r-1];let a=0,c=r-1,l;for(;a<=c;)if(i=Math.floor(a+(c-a)/2),l=n[i]-o,l<0)a=i+1;else if(l>0)c=i-1;else{c=i;break}if(i=c,n[i]===o)return i/(r-1);const h=n[i],d=n[i+1]-h,p=(o-h)/d;return(i+p)/(r-1)}getTangent(e,t){let i=e-1e-4,r=e+1e-4;i<0&&(i=0),r>1&&(r=1);const o=this.getPoint(i),a=this.getPoint(r),c=t||(o.isVector2?new Z:new w);return c.copy(a).sub(o).normalize(),c}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new w,i=[],r=[],o=[],a=new w,c=new ve;for(let p=0;p<=e;p++){const g=p/e;i[p]=this.getTangentAt(g,new w)}r[0]=new w,o[0]=new w;let l=Number.MAX_VALUE;const h=Math.abs(i[0].x),u=Math.abs(i[0].y),d=Math.abs(i[0].z);h<=l&&(l=h,n.set(1,0,0)),u<=l&&(l=u,n.set(0,1,0)),d<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),o[0].crossVectors(i[0],r[0]);for(let p=1;p<=e;p++){if(r[p]=r[p-1].clone(),o[p]=o[p-1].clone(),a.crossVectors(i[p-1],i[p]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(wt(i[p-1].dot(i[p]),-1,1));r[p].applyMatrix4(c.makeRotationAxis(a,g))}o[p].crossVectors(i[p],r[p])}if(t===!0){let p=Math.acos(wt(r[0].dot(r[e]),-1,1));p/=e,i[0].dot(a.crossVectors(r[0],r[e]))>0&&(p=-p);for(let g=1;g<=e;g++)r[g].applyMatrix4(c.makeRotationAxis(i[g],p*g)),o[g].crossVectors(i[g],r[g])}return{tangents:i,normals:r,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class Gr extends Ct{constructor(e=0,t=0,n=1,i=1,r=0,o=Math.PI*2,a=!1,c=0){super(),this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=o,this.aClockwise=a,this.aRotation=c}getPoint(e,t){const n=t||new Z,i=Math.PI*2;let r=this.aEndAngle-this.aStartAngle;const o=Math.abs(r)i;)r-=i;r0?0:(Math.floor(Math.abs(a)/r)+1)*r:c===0&&a===r-1&&(a=r-2,c=1);let l,h;this.closed||a>0?l=i[(a-1)%r]:(Mr.subVectors(i[0],i[1]).add(i[0]),l=Mr);const u=i[a%r],d=i[(a+1)%r];if(this.closed||a+2i.length-2?i.length-1:o+1],u=i[o>i.length-3?i.length-1:o+2];return n.set(Wa(a,c.x,l.x,h.x,u.x),Wa(a,c.y,l.y,h.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const o=i[r]-n,a=this.curves[r],c=a.getLength(),l=c===0?0:1-o/c;return a.getPointAt(l,t)}r++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,i=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){const u=l.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(l);const h=l.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class fi extends qs{constructor(e){super(e),this.uuid=Ht(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,i=this.holes.length;n80*t){a=l=s[0],c=h=s[1];for(let g=t;gl&&(l=u),d>h&&(h=d);p=Math.max(l-a,h-c),p=p!==0?1/p:0}return Ui(r,o,t,a,c,p),o}};function Ol(s,e,t,n,i){let r,o;if(i===Lm(s,e,t,n)>0)for(r=e;r=e;r-=n)o=qa(r,s[r],s[r+1],o);return o&&Wr(o,o.next)&&(Hi(o),o=o.next),o}function xn(s,e){if(!s)return s;e||(e=s);let t=s,n;do if(n=!1,!t.steiner&&(Wr(t,t.next)||$e(t.prev,t,t.next)===0)){if(Hi(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function Ui(s,e,t,n,i,r,o){if(!s)return;!o&&r&&wm(s,n,i,r);let a=s,c,l;for(;s.prev!==s.next;){if(c=s.prev,l=s.next,r?mm(s,n,i,r):pm(s)){e.push(c.i/t),e.push(s.i/t),e.push(l.i/t),Hi(s),s=l.next,a=l.next;continue}if(s=l,s===a){o?o===1?(s=gm(xn(s),e,t),Ui(s,e,t,n,i,r,2)):o===2&&xm(s,e,t,n,i,r):Ui(xn(s),e,t,n,i,r,1);break}}}function pm(s){const e=s.prev,t=s,n=s.next;if($e(e,t,n)>=0)return!1;let i=s.next.next;for(;i!==s.prev;){if(ei(e.x,e.y,t.x,t.y,n.x,n.y,i.x,i.y)&&$e(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function mm(s,e,t,n){const i=s.prev,r=s,o=s.next;if($e(i,r,o)>=0)return!1;const a=i.xr.x?i.x>o.x?i.x:o.x:r.x>o.x?r.x:o.x,h=i.y>r.y?i.y>o.y?i.y:o.y:r.y>o.y?r.y:o.y,u=Xs(a,c,e,t,n),d=Xs(l,h,e,t,n);let p=s.prevZ,g=s.nextZ;for(;p&&p.z>=u&&g&&g.z<=d;){if(p!==s.prev&&p!==s.next&&ei(i.x,i.y,r.x,r.y,o.x,o.y,p.x,p.y)&&$e(p.prev,p,p.next)>=0||(p=p.prevZ,g!==s.prev&&g!==s.next&&ei(i.x,i.y,r.x,r.y,o.x,o.y,g.x,g.y)&&$e(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;p&&p.z>=u;){if(p!==s.prev&&p!==s.next&&ei(i.x,i.y,r.x,r.y,o.x,o.y,p.x,p.y)&&$e(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=d;){if(g!==s.prev&&g!==s.next&&ei(i.x,i.y,r.x,r.y,o.x,o.y,g.x,g.y)&&$e(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function gm(s,e,t){let n=s;do{const i=n.prev,r=n.next.next;!Wr(i,r)&&Hl(i,n,n.next,r)&&Oi(i,r)&&Oi(r,i)&&(e.push(i.i/t),e.push(n.i/t),e.push(r.i/t),Hi(n),Hi(n.next),n=s=r),n=n.next}while(n!==s);return xn(n)}function xm(s,e,t,n,i,r){let o=s;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&Tm(o,a)){let c=Vl(o,a);o=xn(o,o.next),c=xn(c,c.next),Ui(o,e,t,n,i,r),Ui(c,e,t,n,i,r);return}a=a.next}o=o.next}while(o!==s)}function _m(s,e,t,n){const i=[];let r,o,a,c,l;for(r=0,o=e.length;r=t.next.y&&t.next.y!==t.y){const d=t.x+(i-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(d<=n&&d>r){if(r=d,d===n){if(i===t.y)return t;if(i===t.next.y)return t.next}o=t.x=t.x&&t.x>=c&&n!==t.x&&ei(io.x||t.x===o.x&&bm(o,t)))&&(o=t,h=u)),t=t.next;while(t!==a);return o}function bm(s,e){return $e(s.prev,s,e.prev)<0&&$e(e.next,s,s.next)<0}function wm(s,e,t,n){let i=s;do i.z===null&&(i.z=Xs(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==s);i.prevZ.nextZ=null,i.prevZ=null,Sm(i)}function Sm(s){let e,t,n,i,r,o,a,c,l=1;do{for(t=s,s=null,r=null,o=0;t;){for(o++,n=t,a=0,e=0;e0||c>0&&n;)a!==0&&(c===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,a--):(i=n,n=n.nextZ,c--),r?r.nextZ=i:s=i,i.prevZ=r,r=i;t=n}r.nextZ=null,l*=2}while(o>1);return s}function Xs(s,e,t,n,i){return s=32767*(s-t)*i,e=32767*(e-n)*i,s=(s|s<<8)&16711935,s=(s|s<<4)&252645135,s=(s|s<<2)&858993459,s=(s|s<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,s|e<<1}function Em(s){let e=s,t=s;do(e.x=0&&(s-o)*(n-a)-(t-o)*(e-a)>=0&&(t-o)*(r-a)-(i-o)*(n-a)>=0}function Tm(s,e){return s.next.i!==e.i&&s.prev.i!==e.i&&!Am(s,e)&&(Oi(s,e)&&Oi(e,s)&&Cm(s,e)&&($e(s.prev,s,e.prev)||$e(s,e.prev,e))||Wr(s,e)&&$e(s.prev,s,s.next)>0&&$e(e.prev,e,e.next)>0)}function $e(s,e,t){return(e.y-s.y)*(t.x-e.x)-(e.x-s.x)*(t.y-e.y)}function Wr(s,e){return s.x===e.x&&s.y===e.y}function Hl(s,e,t,n){const i=wr($e(s,e,t)),r=wr($e(s,e,n)),o=wr($e(t,n,s)),a=wr($e(t,n,e));return!!(i!==r&&o!==a||i===0&&br(s,t,e)||r===0&&br(s,n,e)||o===0&&br(t,s,n)||a===0&&br(t,e,n))}function br(s,e,t){return e.x<=Math.max(s.x,t.x)&&e.x>=Math.min(s.x,t.x)&&e.y<=Math.max(s.y,t.y)&&e.y>=Math.min(s.y,t.y)}function wr(s){return s>0?1:s<0?-1:0}function Am(s,e){let t=s;do{if(t.i!==s.i&&t.next.i!==s.i&&t.i!==e.i&&t.next.i!==e.i&&Hl(t,t.next,s,e))return!0;t=t.next}while(t!==s);return!1}function Oi(s,e){return $e(s.prev,s,s.next)<0?$e(s,e,s.next)>=0&&$e(s,s.prev,e)>=0:$e(s,e,s.prev)<0||$e(s,s.next,e)<0}function Cm(s,e){let t=s,n=!1;const i=(s.x+e.x)/2,r=(s.y+e.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&i<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==s);return n}function Vl(s,e){const t=new js(s.i,s.x,s.y),n=new js(e.i,e.x,e.y),i=s.next,r=e.prev;return s.next=e,e.prev=s,t.next=i,i.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function qa(s,e,t,n){const i=new js(s,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Hi(s){s.next.prev=s.prev,s.prev.next=s.next,s.prevZ&&(s.prevZ.nextZ=s.nextZ),s.nextZ&&(s.nextZ.prevZ=s.prevZ)}function js(s,e,t){this.i=s,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Lm(s,e,t,n){let i=0;for(let r=e,o=t-n;r2&&s[e-1].equals(s[0])&&s.pop()}function ja(s,e){for(let t=0;tNumber.EPSILON){const G=Math.sqrt(S),K=Math.sqrt(We*We+Ge*Ge),de=Q.x-Ie/G,V=Q.y+Se/G,xe=$.x-Ge/K,pe=$.y+We/K,re=((xe-de)*Ge-(pe-V)*We)/(Se*Ge-Ie*We);le=de+Se*re-k.x,se=V+Ie*re-k.y;const ne=le*le+se*se;if(ne<=2)return new Z(le,se);ye=Math.sqrt(ne/2)}else{let G=!1;Se>Number.EPSILON?We>Number.EPSILON&&(G=!0):Se<-Number.EPSILON?We<-Number.EPSILON&&(G=!0):Math.sign(Ie)===Math.sign(Ge)&&(G=!0),G?(le=-Ie,se=Se,ye=Math.sqrt(S)):(le=Se,se=Ie,ye=Math.sqrt(S/2))}return new Z(le/ye,se/ye)}const ce=[];for(let k=0,Q=B.length,$=Q-1,le=k+1;k=0;k--){const Q=k/v,$=p*Math.cos(Q*Math.PI/2),le=g*Math.sin(Q*Math.PI/2)+x;for(let se=0,ye=B.length;se=0;){const le=$;let se=$-1;se<0&&(se=k.length-1);for(let ye=0,Se=h+v*2;ye0!=e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}Fm.prototype.isMeshPhysicalMaterial=!0;class kl extends ct{constructor(e){super(),this.type="MeshPhongMaterial",this.color=new me(16777215),this.specular=new me(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ci,this.normalScale=new Z(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this}}kl.prototype.isMeshPhongMaterial=!0;class Nm extends ct{constructor(e){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new me(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ci,this.normalScale=new Z(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}Nm.prototype.isMeshToonMaterial=!0;class Bm extends ct{constructor(e){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ci,this.normalScale=new Z(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}Bm.prototype.isMeshNormalMaterial=!0;class Ys extends ct{constructor(e){super(),this.type="MeshLambertMaterial",this.color=new me(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new me(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Nr,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this}}Ys.prototype.isMeshLambertMaterial=!0;class zm extends ct{constructor(e){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new me(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=ci,this.normalScale=new Z(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this}}zm.prototype.isMeshMatcapMaterial=!0;class Um extends fn{constructor(e){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}Um.prototype.isLineDashedMaterial=!0;const Ye={arraySlice:function(s,e,t){return Ye.isTypedArray(s)?new s.constructor(s.subarray(e,t!==void 0?t:s.length)):s.slice(e,t)},convertArray:function(s,e,t){return!s||!t&&s.constructor===e?s:typeof e.BYTES_PER_ELEMENT=="number"?new e(s):Array.prototype.slice.call(s)},isTypedArray:function(s){return ArrayBuffer.isView(s)&&!(s instanceof DataView)},getKeyframeOrder:function(s){function e(i,r){return s[i]-s[r]}const t=s.length,n=new Array(t);for(let i=0;i!==t;++i)n[i]=i;return n.sort(e),n},sortedArray:function(s,e,t){const n=s.length,i=new s.constructor(n);for(let r=0,o=0;o!==n;++r){const a=t[r]*e;for(let c=0;c!==e;++c)i[o++]=s[a+c]}return i},flattenJSON:function(s,e,t,n){let i=1,r=s[0];for(;r!==void 0&&r[n]===void 0;)r=s[i++];if(r===void 0)return;let o=r[n];if(o!==void 0)if(Array.isArray(o))do o=r[n],o!==void 0&&(e.push(r.time),t.push.apply(t,o)),r=s[i++];while(r!==void 0);else if(o.toArray!==void 0)do o=r[n],o!==void 0&&(e.push(r.time),o.toArray(t,t.length)),r=s[i++];while(r!==void 0);else do o=r[n],o!==void 0&&(e.push(r.time),t.push(o)),r=s[i++];while(r!==void 0)},subclip:function(s,e,t,n,i=30){const r=s.clone();r.name=e;const o=[];for(let c=0;c=n)){u.push(l.times[p]);for(let x=0;xr.tracks[c].times[0]&&(a=r.tracks[c].times[0]);for(let c=0;c=a.times[g]){const m=g*u+h,f=m+u-h;x=Ye.arraySlice(a.values,m,f)}else{const m=a.createInterpolant(),f=h,T=u-h;m.evaluate(r),x=Ye.arraySlice(m.resultBuffer,f,T)}c==="quaternion"&&new vt().fromArray(x).normalize().conjugate().toArray(x);const v=l.times.length;for(let m=0;m=r)){const a=t[1];e=r)break t}o=n,n=0;break n}break e}for(;n>>1;et;)--o;if(++o,r!==0||o!==i){r>=o&&(o=Math.max(o,1),r=o-1);const a=this.getValueSize();this.times=Ye.arraySlice(n,r,o),this.values=Ye.arraySlice(this.values,r*a,o*a)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,i=this.values,r=n.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==r;a++){const c=n[a];if(typeof c=="number"&&isNaN(c)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,c),e=!1;break}if(o!==null&&o>c){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,c,o),e=!1;break}o=c}if(i!==void 0&&Ye.isTypedArray(i))for(let a=0,c=i.length;a!==c;++a){const l=i[a];if(isNaN(l)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,l),e=!1;break}}return e}optimize(){const e=Ye.arraySlice(this.times),t=Ye.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===$r,r=e.length-1;let o=1;for(let a=1;a0){e[o]=e[r];for(let a=r*n,c=o*n,l=0;l!==n;++l)t[c+l]=t[a+l];++o}return o!==e.length?(this.times=Ye.arraySlice(e,0,o),this.values=Ye.arraySlice(t,0,o*n)):(this.times=e,this.values=t),this}clone(){const e=Ye.arraySlice(this.times,0),t=Ye.arraySlice(this.values,0),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}}Gt.prototype.TimeBufferType=Float32Array;Gt.prototype.ValueBufferType=Float32Array;Gt.prototype.DefaultInterpolation=Rr;class mi extends Gt{}mi.prototype.ValueTypeName="bool";mi.prototype.ValueBufferType=Array;mi.prototype.DefaultInterpolation=Lr;mi.prototype.InterpolantFactoryMethodLinear=void 0;mi.prototype.InterpolantFactoryMethodSmooth=void 0;class ql extends Gt{}ql.prototype.ValueTypeName="color";class Ir extends Gt{}Ir.prototype.ValueTypeName="number";class Vm extends _n{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){const r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,c=(n-t)/(i-t);let l=e*a;for(let h=l+a;l!==h;l+=4)vt.slerpFlat(r,0,o,l-a,o,l,c);return r}}class qi extends Gt{InterpolantFactoryMethodLinear(e){return new Vm(this.times,this.values,this.getValueSize(),e)}}qi.prototype.ValueTypeName="quaternion";qi.prototype.DefaultInterpolation=Rr;qi.prototype.InterpolantFactoryMethodSmooth=void 0;class gi extends Gt{}gi.prototype.ValueTypeName="string";gi.prototype.ValueBufferType=Array;gi.prototype.DefaultInterpolation=Lr;gi.prototype.InterpolantFactoryMethodLinear=void 0;gi.prototype.InterpolantFactoryMethodSmooth=void 0;class Fr extends Gt{}Fr.prototype.ValueTypeName="vector";class Ya{constructor(e,t=-1,n,i=$s){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=Ht(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,i=1/(e.fps||1);for(let o=0,a=n.length;o!==a;++o)t.push(km(n[o]).scale(i));const r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){const t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,o=n.length;r!==o;++r)t.push(Gt.toJSON(n[r]));return i}static CreateFromMorphTargetSequence(e,t,n,i){const r=t.length,o=[];for(let a=0;a1){const u=h[1];let d=i[u];d||(i[u]=d=[]),d.push(l)}}const o=[];for(const a in i)o.push(this.CreateFromMorphTargetSequence(a,i[a],t,n));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,p,g,x){if(p.length!==0){const v=[],m=[];Ye.flattenJSON(p,v,m,g),v.length!==0&&x.push(new u(d,v,m))}},i=[],r=e.name||"default",o=e.fps||30,a=e.blendMode;let c=e.length||-1;const l=e.hierarchy||[];for(let u=0;u{t&&t(r),this.manager.itemEnd(e)},0),r;if(Zt[e]!==void 0){Zt[e].push({onLoad:t,onProgress:n,onError:i});return}Zt[e]=[],Zt[e].push({onLoad:t,onProgress:n,onError:i});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,c=this.responseType;fetch(o).then(l=>{if(l.status===200||l.status===0){if(l.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||l.body.getReader===void 0)return l;const h=Zt[e],u=l.body.getReader(),d=l.headers.get("Content-Length"),p=d?parseInt(d):0,g=p!==0;let x=0;const v=new ReadableStream({start(m){f();function f(){u.read().then(({done:T,value:y})=>{if(T)m.close();else{x+=y.byteLength;const E=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:p});for(let A=0,L=h.length;A{switch(c){case"arraybuffer":return l.arrayBuffer();case"blob":return l.blob();case"document":return l.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return l.json();default:if(a===void 0)return l.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,p=new TextDecoder(d);return l.arrayBuffer().then(g=>p.decode(g))}}}).then(l=>{li.add(e,l);const h=Zt[e];delete Zt[e];for(let u=0,d=h.length;u{const h=Zt[e];if(h===void 0)throw this.manager.itemError(e),l;delete Zt[e];for(let u=0,d=h.length;u{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class jl extends Kt{constructor(e){super(e)}load(e,t,n,i){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const r=this,o=li.get(e);if(o!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(o),r.manager.itemEnd(e)},0),o;const a=Ni("img");function c(){h(),li.add(e,this),t&&t(this),r.manager.itemEnd(e)}function l(u){h(),i&&i(u),r.manager.itemError(e),r.manager.itemEnd(e)}function h(){a.removeEventListener("load",c,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",c,!1),a.addEventListener("error",l,!1),e.substr(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(e),a.src=e,a}}class Xm extends Kt{constructor(e){super(e)}load(e,t,n,i){const r=new Ur,o=new jl(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let a=0;function c(l){o.load(e[l],function(h){r.images[l]=h,a++,a===6&&(r.needsUpdate=!0,t&&t(r))},void 0,i)}for(let l=0;l0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,i,this._addIndex*t,1,t);for(let c=t,l=t+t;c!==l;++c)if(n[c]!==n[c+t]){a.setValue(n,i);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,i=n*this._origIndex;e.getValue(t,i);for(let r=n,o=i;r!==o;++r)t[r]=t[i+r%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let o=0;o!==r;++o)e[t+o]=e[n+o]}_slerp(e,t,n,i){vt.slerpFlat(e,t,e,t,e,n,i)}_slerpAdditive(e,t,n,i,r){const o=this._workIndex*r;vt.multiplyQuaternionsFlat(e,o,e,t,e,n),vt.slerpFlat(e,t,e,t,e,o,i)}_lerp(e,t,n,i,r){const o=1-i;for(let a=0;a!==r;++a){const c=t+a;e[c]=e[c]*o+e[n+a]*i}}_lerpAdditive(e,t,n,i,r){for(let o=0;o!==r;++o){const a=t+o;e[a]=e[a]+e[n+o]*i}}}const mo="\\[\\]\\.:\\/",ag=new RegExp("["+mo+"]","g"),go="[^"+mo+"]",lg="[^"+mo.replace("\\.","")+"]",cg=/((?:WC+[\/:])*)/.source.replace("WC",go),hg=/(WCOD+)?/.source.replace("WCOD",lg),ug=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",go),dg=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",go),fg=new RegExp("^"+cg+hg+ug+dg+"$"),pg=["material","materials","bones"];class mg{constructor(e,t,n){const i=n||He.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,i)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];i!==void 0&&i.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}class He{constructor(e,t,n){this.path=t,this.parsedPath=n||He.parseTrackName(t),this.node=He.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new He.Composite(e,t,n):new He(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(ag,"")}static parseTrackName(e){const t=fg.exec(e);if(!t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const r=n.nodeName.substring(i+1);pg.indexOf(r)!==-1&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=r)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(!t||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(n!==void 0)return n}if(e.children){const n=function(r){for(let o=0;o0){const c=this._interpolants,l=this._propertyBindings;switch(this.blendMode){case ll:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(o),l[h].accumulateAdditive(a);break;case $s:default:for(let h=0,u=c.length;h!==u;++h)c[h].evaluate(o),l[h].accumulate(i,a)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const i=n.evaluate(e)[0];t*=i,e>n.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;n!==null&&(t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),t===0?this.paused=!0:this.timeScale=t))}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let i=this.time+e,r=this._loopCount;const o=n===ih;if(e===0)return r===-1?i:o&&(r&1)===1?t-i:i;if(n===th){r===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=t)i=t;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(r===-1&&(e>=0?(r=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),i>=t||i<0){const a=Math.floor(i/t);i-=t*a,r+=Math.abs(a);const c=this.repetitions-r;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?t:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const l=e<0;this._setEndings(l,!l,o)}else this._setEndings(!1,!1,o);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=i;if(o&&(r&1)===1)return t-i}return i}_setEndings(e,t,n){const i=this._interpolantSettings;n?(i.endingStart=Kn,i.endingEnd=Kn):(e?i.endingStart=this.zeroSlopeAtStart?Kn:$n:i.endingStart=Pr,t?i.endingEnd=this.zeroSlopeAtEnd?Kn:$n:i.endingEnd=Pr)}_scheduleFading(e,t,n){const i=this._mixer,r=i.time;let o=this._weightInterpolant;o===null&&(o=i._lendControlInterpolant(),this._weightInterpolant=o);const a=o.parameterPositions,c=o.sampleValues;return a[0]=r,c[0]=t,a[1]=r+e,c[1]=n,this}}class xg extends Cn{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,i=e._clip.tracks,r=i.length,o=e._propertyBindings,a=e._interpolants,c=n.uuid,l=this._bindingsByRootAndName;let h=l[c];h===void 0&&(h={},l[c]=h);for(let u=0;u!==r;++u){const d=i[u],p=d.name;let g=h[p];if(g!==void 0)++g.referenceCount,o[u]=g;else{if(g=o[u],g!==void 0){g._cacheIndex===null&&(++g.referenceCount,this._addInactiveBinding(g,c,p));continue}const x=t&&t._propertyBindings[u].binding.parsedPath;g=new og(He.create(n,p,x),d.ValueTypeName,d.getValueSize()),++g.referenceCount,this._addInactiveBinding(g,c,p),o[u]=g}a[u].resultBuffer=g.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,i=e._clip.uuid,r=this._actionsByClip[i];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,i,n)}const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];r.useCount++===0&&(this._lendBinding(r),r.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,i=t.length;n!==i;++n){const r=t[n];--r.useCount===0&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,i=this.time+=e,r=Math.sign(e),o=this._accuIndex^=1;for(let l=0;l!==n;++l)t[l]._update(i,e,r,o);const a=this._bindings,c=this._nActiveBindings;for(let l=0;l!==c;++l)a[l].apply(o);return this}setTime(e){this.time=0;for(let t=0;t0?r[r.length-1]:"",smooth:o!==void 0?o.smooth:this.smooth,groupStart:o!==void 0?o.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(c){const l={index:typeof c=="number"?c:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return l.clone=this.clone.bind(l),l}};return this.materials.push(a),a},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(i){const r=this.currentMaterial();if(r&&r.groupEnd===-1&&(r.groupEnd=this.geometry.vertices.length/3,r.groupCount=r.groupEnd-r.groupStart,r.inherited=!1),i&&this.materials.length>1)for(let o=this.materials.length-1;o>=0;o--)this.materials[o].groupCount<=0&&this.materials.splice(o,1);return i&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),r}},n&&n.name&&typeof n.clone=="function"){const i=n.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},parseVertexIndex:function(e,t){const n=parseInt(e,10);return(n>=0?n-1:n+t/3)*3},parseNormalIndex:function(e,t){const n=parseInt(e,10);return(n>=0?n-1:n+t/3)*3},parseUVIndex:function(e,t){const n=parseInt(e,10);return(n>=0?n-1:n+t/2)*2},addVertex:function(e,t,n){const i=this.vertices,r=this.object.geometry.vertices;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[t+0],i[t+1],i[t+2]),r.push(i[n+0],i[n+1],i[n+2])},addVertexPoint:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,n){const i=this.normals,r=this.object.geometry.normals;r.push(i[e+0],i[e+1],i[e+2]),r.push(i[t+0],i[t+1],i[t+2]),r.push(i[n+0],i[n+1],i[n+2])},addFaceNormal:function(e,t,n){const i=this.vertices,r=this.object.geometry.normals;el.fromArray(i,e),Is.fromArray(i,t),tl.fromArray(i,n),Tt.subVectors(tl,Is),nl.subVectors(el,Is),Tt.cross(nl),Tt.normalize(),r.push(Tt.x,Tt.y,Tt.z),r.push(Tt.x,Tt.y,Tt.z),r.push(Tt.x,Tt.y,Tt.z)},addColor:function(e,t,n){const i=this.colors,r=this.object.geometry.colors;i[e]!==void 0&&r.push(i[e+0],i[e+1],i[e+2]),i[t]!==void 0&&r.push(i[t+0],i[t+1],i[t+2]),i[n]!==void 0&&r.push(i[n+0],i[n+1],i[n+2])},addUV:function(e,t,n){const i=this.uvs,r=this.object.geometry.uvs;r.push(i[e+0],i[e+1]),r.push(i[t+0],i[t+1]),r.push(i[n+0],i[n+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,n,i,r,o,a,c,l){const h=this.vertices.length;let u=this.parseVertexIndex(e,h),d=this.parseVertexIndex(t,h),p=this.parseVertexIndex(n,h);if(this.addVertex(u,d,p),this.addColor(u,d,p),a!==void 0&&a!==""){const g=this.normals.length;u=this.parseNormalIndex(a,g),d=this.parseNormalIndex(c,g),p=this.parseNormalIndex(l,g),this.addNormal(u,d,p)}else this.addFaceNormal(u,d,p);if(i!==void 0&&i!==""){const g=this.uvs.length;u=this.parseUVIndex(i,g),d=this.parseUVIndex(r,g),p=this.parseUVIndex(o,g),this.addUV(u,d,p),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const t=this.vertices.length;for(let n=0,i=e.length;n=7?(Tr.setRGB(parseFloat(u[4]),parseFloat(u[5]),parseFloat(u[6])).convertSRGBToLinear(),t.colors.push(Tr.r,Tr.g,Tr.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(u[1]),parseFloat(u[2]),parseFloat(u[3]));break;case"vt":t.uvs.push(parseFloat(u[1]),parseFloat(u[2]));break}}else if(h==="f"){const d=l.slice(1).trim().split(Qa),p=[];for(let x=0,v=d.length;x0){const f=m.split("/");p.push(f)}}const g=p[0];for(let x=1,v=p.length-1;x1){const d=i[1].trim().toLowerCase();t.object.smooth=d!=="0"&&d!=="off"}else t.object.smooth=!0;const u=t.object.currentMaterial();u&&(u.smooth=t.object.smooth)}else{if(l==="\0")continue;console.warn('THREE.OBJLoader: Unexpected line: "'+l+'"')}}t.finalize();const r=new En;if(r.materialLibraries=[].concat(t.materialLibraries),!(t.objects.length===1&&t.objects[0].geometry.vertices.length===0)===!0)for(let a=0,c=t.objects.length;a0&&x.setAttribute("normal",new Je(h.normals,3)),h.colors.length>0&&(g=!0,x.setAttribute("color",new Je(h.colors,3))),h.hasUVIndices===!0&&x.setAttribute("uv",new Je(h.uvs,2));const v=[];for(let f=0,T=u.length;f1){for(let f=0,T=u.length;f0){const a=new Qn({size:1,sizeAttenuation:!1}),c=new Xe;c.setAttribute("position",new Je(t.vertices,3)),t.colors.length>0&&t.colors[0]!==void 0&&(c.setAttribute("color",new Je(t.colors,3)),a.vertexColors=!0);const l=new Cr(c,a);r.add(l)}return r}}class Cg extends En{constructor(e){super(),this.animation=this.floatAnim,this.goingHome=!1,this.homeTimeout=null,this.home={position:new w(e.position.x,e.position.y,e.position.z),rotation:new gn(e.rotation.x,e.rotation.y,e.rotation.z)},this.reset()}reset(){this.position.copy(this.home.position),this.rotation.copy(this.home.rotation),this.speed=new w,this.rotSpeed=new gn,this.acceleration=new w}homeAnim(e){if(!this.goingHome){this.goingHome=!0;const t=1;this.speed.subVectors(this.home.position,this.position).multiplyScalar(1/t);const n=this.rotSpeed.toVector3();n.subVectors(this.home.rotation,this.rotation).multiplyScalar(1/t),this.rotSpeed.setFromVector3(n),this.homeTimeout=setTimeout(()=>{this.goingHome=!1,this.reset(),this.startFloat()},t*1e3)}this.position.addScaledVector(this.speed,e),this.rotation.setFromVector3(this.rotation.toVector3().addScaledVector(this.rotSpeed,e))}startFloat(){this.acceleration.y=-.01,this.animation=this.floatAnim}floatAnim(){this.position.y<-2&&(this.acceleration.y=.01),this.position.y>2&&(this.acceleration.y=-.01),this.speed.y=Math.min(this.speed.y+this.acceleration.y,.1),this.position.y+=this.speed.y}rotateAnim(){this.rotation.y+=.02}lookAtAnim(e,{x:t,y:n,z:i}){const r=new w(t,n,i).sub(this.position);this.lookAt(r)}}function Lg(s,e,t){const o=t/2.2,a=new fi;return a.moveTo(0,0+t),a.lineTo(0,0+e-t),a.quadraticCurveTo(0,0+e,0+t,0+e),a.lineTo(s/2-25/2-o,0+e),a.quadraticCurveTo(s/2-25/2,0+e,s/2-25/2,0+e-o/10),a.quadraticCurveTo(s/2-25/2,0+e-o,s/2-25/2+o,0+e-o),a.lineTo(s/2+25/2-o,0+e-o),a.quadraticCurveTo(s/2+25/2,0+e-o,s/2+25/2,0+e-o/10),a.quadraticCurveTo(s/2+25/2,0+e,s/2+25/2+o,0+e),a.lineTo(0+s-t,0+e),a.quadraticCurveTo(0+s,0+e,0+s,0+e-t),a.lineTo(0+s,0+t),a.quadraticCurveTo(0+s,0,0+s-t,0),a.lineTo(0+t,0),a.quadraticCurveTo(0,0,0,0+t),new qr(a)}const Rg=new URL("/assets/iphone.4fe8eea4.obj",self.location).href,Pg={name:"Mockup",props:{screen:{type:null},lightClr:{type:String,default:"white"},phoneClr:{type:String,default:"white"},position:{type:Object,default:()=>({})},rotation:{type:Object,default:()=>({})},linearFilter:{type:Boolean}},setup(s){const e=oc(null);let t,n;const i=[];let r,o=0,a=0;function c(){const x=()=>{t=new gt(45,e.value.clientWidth/e.value.clientHeight,.1,1e4),n=new oo;const m=new Kl(s.lightClr);n.add(m),m.position.set(0,0,300),t.position.set(0,0,200)},v=(m,f)=>{const T=new Cg({position:{x:0,y:0,z:0,...f.position},rotation:{x:-.2,y:.3,z:.06,...f.rotation}}),y=()=>{const Y=Lg(54,115.80000000000001,8);let _;typeof m=="string"?_=new Yl().load(m):_=new Il(m),_.anisotropy=r.capabilities.getMaxAnisotropy();const R=new Ys({map:_});s.linearFilter&&(R.map.minFilter=ut);const P=new st(Y,R);(()=>{const F=new Lt().setFromObject(P),I=new w;F.getSize(I);const H=new w,J=P.geometry.attributes.position,ce=P.geometry.attributes.uv;for(let U=0;U{new Ag().load(Rg,L=>{const j=new Ue;L.traverse(te=>{if(te instanceof st){te.material=new Ys({color:s.phoneClr}),te.geometry.center();const Y=new st(te.geometry,te.material),_=8.6;Y.rotateX(Math.PI/2),Y.scale.set(-_,_,_),j.add(Y)}}),T.add(j)})};return T.startFloat(),n.add(T),y(),E(),T};if(r=new Ve({antialias:!0,alpha:!0}),r.setSize(e.value.clientWidth,e.value.clientHeight),x(),Array.isArray(s.screen))for(let m=0;m<=s.screen.length-1;m+=1)i.push(v(s.screen[m],{position:s.position[m],rotation:s.rotation[m]}));else i.push(v(s.screen,{position:s.position,rotation:s.rotation}));e.value.appendChild(r.domElement)}let l=0;function h(x){x*=.001;const v=x-l;l=x,requestAnimationFrame(h),i.length&&i.forEach(m=>{m.animation(v,{x:o/2,y:a/2,z:t.position.z})}),r.render(n,t)}function u(){i.length&&i.forEach(x=>{x.animation=x.lookAtAnim,x.goingHome=!1,clearTimeout(x.homeTimeout)})}function d(){i.length&&i.forEach(x=>{x.animation=x.homeAnim})}function p(x){const v=e.value.getBoundingClientRect();o=x.clientX-v.left-v.width/2,a=-(x.clientY-v.top-v.height/2)}function g(x){x.preventDefault();const v=e.value.getBoundingClientRect();o=x.touches[0].clientX-v.left-v.width/2,a=-(x.touches[0].clientY-v.top-v.height/2)}return ac(()=>{c(),h(0)}),{container:e,handleMouseEnter:u,handleMouseLeave:d,handleMouseMove:p,handleTouchMove:g}}};function Dg(s,e,t,n,i,r){return lc(),cc("div",{ref:"container",onMouseenter:e[0]||(e[0]=(...o)=>n.handleMouseEnter&&n.handleMouseEnter(...o)),onMouseleave:e[1]||(e[1]=(...o)=>n.handleMouseLeave&&n.handleMouseLeave(...o)),onMousemove:e[2]||(e[2]=(...o)=>n.handleMouseMove&&n.handleMouseMove(...o)),onTouchstart:e[3]||(e[3]=(...o)=>n.handleMouseEnter&&n.handleMouseEnter(...o)),onTouchend:e[4]||(e[4]=(...o)=>n.handleMouseLeave&&n.handleMouseLeave(...o)),onTouchmove:e[5]||(e[5]=(...o)=>n.handleTouchMove&&n.handleTouchMove(...o))},null,544)}var Fg=sc(Pg,[["render",Dg]]),Ng="/assets/screen.13e2504d.png";export{Fg as M,Ng as s}; diff --git a/assets/guide.md.77d8480e.js b/assets/guide.md.77d8480e.js new file mode 100644 index 0000000..b43d55d --- /dev/null +++ b/assets/guide.md.77d8480e.js @@ -0,0 +1,76 @@ +import{M as l,s as e}from"./chunks/screen.9127d83c.js";import{r as c,o as r,c as F,a as s,b as D,u as a,d as i,e as y,f as n}from"./app.1b5fc780.js";var d="/assets/screen.273a9703.mp4";const C=n(`

Guide

Installation

npm install vue-three-d-mockup
+

Usage

`,4),h=n(`

Simple example

screen.png is a static asset in the public folder.

<template>
+  <Mockup screen="screen.png" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+</script>
+

Using assets as the screen

  • In vite powered projects

<template>
+  <Mockup :screen="screenImage" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+import screenImage from './assets/screen.png';
+</script>
+
  • In vue-cli powered projects

<template>
+  <Mockup :screen="require('./assets/screen.png')" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+</script>
+

Multiple phones

`,9),u=n(`
<template>
+  <Mockup 
+    :screen="[screenImage, screenImage]"
+    :position="[
+      {
+        x: -50
+      },
+      {
+        x: 50
+      },
+    ]"
+    :rotation="[{}, {
+      y: -0.3,
+      z: -0.06,
+    }]" 
+  />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+import screenImage from './assets/screen.png';
+</script>
+

Video

`,2),A=["src"],g=n(`
<template>
+  <Mockup 
+    v-if="vidReady"
+    :screen="videoElement"
+  />
+
+  <video
+    :src="screenVideo"
+    ref="videoElement"
+    @canplay="vidReady = true"
+    muted
+    autoplay
+    loop
+    style="
+      position: fixed;
+      top: 0;
+      left: 0;
+      visibility: hidden;
+    "
+  ></video>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import Mockup from 'vue-three-d-mockup';
+import screenVideo from './assets/screen.mp4';
+
+const videoElement = ref(null);
+const vidReady = ref(false);
+</script>
+

Avaliable props

PropTypeRequiredDefaultDescription
screenString | Element | ArraytruenonePath to an image that will be displayed on the phones screen or the <video> element displayed on the phones screen. When using the latter there are caveats. Can also be an array of any of the options above.
lightClrStringfalse"white"Color of the light as a CSS-style string.
phoneClrStringfalse"white"Color of the phone as a CSS-style string.
positionObject | Arrayfalse{ x: 0, y: 0, z: 0 }The position of the phone. Can also be an array if multiple screens specified.
rotationObject | Arrayfalse{ x: -0.2, y: 0.3, z: 0.06 }The orientation of the phone described in rotation values arround the 3 axes. Can also be an array if multiple screens specified.

Caveats

  • The screen prop is unreactive, so when using it as a video it's important to only render the Mockup element when the video is loaded. Check out the examples above to see how to do this.
  • The video on the model will not be shown if the original <video> element is hidden with display: none, so use visibility: hidden instead.
  • The video may not be autoplaying if the original <video> element is scrolled off screen.
  • Even with the mentioned above workarounds, the video may not be working in Safari.
`,5),x=JSON.parse('{"title":"Guide","description":"","frontmatter":{},"headers":[{"level":2,"title":"Installation","slug":"installation"},{"level":2,"title":"Usage","slug":"usage"},{"level":3,"title":"Simple example","slug":"simple-example"},{"level":3,"title":"Using assets as the screen","slug":"using-assets-as-the-screen"},{"level":3,"title":"Multiple phones","slug":"multiple-phones"},{"level":3,"title":"Video","slug":"video"},{"level":2,"title":"Avaliable props","slug":"avaliable-props"},{"level":2,"title":"Caveats","slug":"caveats"}],"relativePath":"guide.md"}'),v={name:"guide.md"},q=Object.assign(v,{setup(m){const p=c(null),o=c(!1);return(f,t)=>(r(),F("div",null,[C,s("p",null,[D(l,{style:{width:"100%",height:"400px"},screen:a(e)},null,8,["screen"])]),h,s("p",null,[D(l,{style:{width:"100%",height:"400px"},screen:[a(e),a(e)],position:[{x:-50},{x:50}],rotation:[{},{y:-.3,z:-.06}]},null,8,["screen","rotation"])]),u,s("p",null,[o.value?(r(),i(l,{key:0,style:{width:"100%",height:"400px"},screen:p.value},null,8,["screen"])):y("",!0)]),s("div",null,[s("video",{src:a(d),ref_key:"videoElement",ref:p,onCanplay:t[0]||(t[0]=_=>o.value=!0),muted:"",autoplay:"",loop:"",style:{position:"fixed",top:"0",left:"0",visibility:"hidden"}},null,40,A)]),g]))}});export{x as __pageData,q as default}; diff --git a/assets/guide.md.77d8480e.lean.js b/assets/guide.md.77d8480e.lean.js new file mode 100644 index 0000000..8b8493a --- /dev/null +++ b/assets/guide.md.77d8480e.lean.js @@ -0,0 +1 @@ +import{M as l,s as e}from"./chunks/screen.9127d83c.js";import{r as c,o as r,c as F,a as s,b as D,u as a,d as i,e as y,f as n}from"./app.1b5fc780.js";var d="/assets/screen.273a9703.mp4";const C=n("",4),h=n("",9),u=n("",2),A=["src"],g=n("",5),x=JSON.parse('{"title":"Guide","description":"","frontmatter":{},"headers":[{"level":2,"title":"Installation","slug":"installation"},{"level":2,"title":"Usage","slug":"usage"},{"level":3,"title":"Simple example","slug":"simple-example"},{"level":3,"title":"Using assets as the screen","slug":"using-assets-as-the-screen"},{"level":3,"title":"Multiple phones","slug":"multiple-phones"},{"level":3,"title":"Video","slug":"video"},{"level":2,"title":"Avaliable props","slug":"avaliable-props"},{"level":2,"title":"Caveats","slug":"caveats"}],"relativePath":"guide.md"}'),v={name:"guide.md"},q=Object.assign(v,{setup(m){const p=c(null),o=c(!1);return(f,t)=>(r(),F("div",null,[C,s("p",null,[D(l,{style:{width:"100%",height:"400px"},screen:a(e)},null,8,["screen"])]),h,s("p",null,[D(l,{style:{width:"100%",height:"400px"},screen:[a(e),a(e)],position:[{x:-50},{x:50}],rotation:[{},{y:-.3,z:-.06}]},null,8,["screen","rotation"])]),u,s("p",null,[o.value?(r(),i(l,{key:0,style:{width:"100%",height:"400px"},screen:p.value},null,8,["screen"])):y("",!0)]),s("div",null,[s("video",{src:a(d),ref_key:"videoElement",ref:p,onCanplay:t[0]||(t[0]=_=>o.value=!0),muted:"",autoplay:"",loop:"",style:{position:"fixed",top:"0",left:"0",visibility:"hidden"}},null,40,A)]),g]))}});export{x as __pageData,q as default}; diff --git a/assets/index.md.e8d327de.js b/assets/index.md.e8d327de.js new file mode 100644 index 0000000..7202669 --- /dev/null +++ b/assets/index.md.e8d327de.js @@ -0,0 +1 @@ +import{M as e,s as a}from"./chunks/screen.9127d83c.js";import{o as t,c as s,a as _,b as o,u as n,_ as c,f as r}from"./app.1b5fc780.js";const d=r('

Vue 3D Mockup

Create interactive 3D mockups with ease.

',3),v=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home"},"headers":[],"relativePath":"index.md"}'),u={name:"index.md"},i=Object.assign(u,{setup(l){return(p,m)=>(t(),s("div",null,[_("main",null,[o(e,{class:"mockup",screen:n(a)},null,8,["screen"]),d])]))}});var f=c(i,[["__scopeId","data-v-7b43e306"]]);export{v as __pageData,f as default}; diff --git a/assets/index.md.e8d327de.lean.js b/assets/index.md.e8d327de.lean.js new file mode 100644 index 0000000..2f32ed4 --- /dev/null +++ b/assets/index.md.e8d327de.lean.js @@ -0,0 +1 @@ +import{M as e,s as a}from"./chunks/screen.9127d83c.js";import{o as t,c as s,a as _,b as o,u as n,_ as c,f as r}from"./app.1b5fc780.js";const d=r("",3),v=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home"},"headers":[],"relativePath":"index.md"}'),u={name:"index.md"},i=Object.assign(u,{setup(l){return(p,m)=>(t(),s("div",null,[_("main",null,[o(e,{class:"mockup",screen:n(a)},null,8,["screen"]),d])]))}});var f=c(i,[["__scopeId","data-v-7b43e306"]]);export{v as __pageData,f as default}; diff --git a/assets/inter-cyrillic-ext.0877b0d9.woff2 b/assets/inter-cyrillic-ext.0877b0d9.woff2 new file mode 100644 index 0000000..f272875 Binary files /dev/null and b/assets/inter-cyrillic-ext.0877b0d9.woff2 differ diff --git a/assets/inter-cyrillic.f8750142.woff2 b/assets/inter-cyrillic.f8750142.woff2 new file mode 100644 index 0000000..de6a128 Binary files /dev/null and b/assets/inter-cyrillic.f8750142.woff2 differ diff --git a/assets/inter-greek-ext.3e6f6728.woff2 b/assets/inter-greek-ext.3e6f6728.woff2 new file mode 100644 index 0000000..701afd3 Binary files /dev/null and b/assets/inter-greek-ext.3e6f6728.woff2 differ diff --git a/assets/inter-greek.117e1956.woff2 b/assets/inter-greek.117e1956.woff2 new file mode 100644 index 0000000..74125bb Binary files /dev/null and b/assets/inter-greek.117e1956.woff2 differ diff --git a/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 b/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 new file mode 100644 index 0000000..2a68729 Binary files /dev/null and b/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 differ diff --git a/assets/inter-italic-cyrillic.ea42a392.woff2 b/assets/inter-italic-cyrillic.ea42a392.woff2 new file mode 100644 index 0000000..f640351 Binary files /dev/null and b/assets/inter-italic-cyrillic.ea42a392.woff2 differ diff --git a/assets/inter-italic-greek-ext.4fbe9427.woff2 b/assets/inter-italic-greek-ext.4fbe9427.woff2 new file mode 100644 index 0000000..0021896 Binary files /dev/null and b/assets/inter-italic-greek-ext.4fbe9427.woff2 differ diff --git a/assets/inter-italic-greek.8f4463c4.woff2 b/assets/inter-italic-greek.8f4463c4.woff2 new file mode 100644 index 0000000..71c265f Binary files /dev/null and b/assets/inter-italic-greek.8f4463c4.woff2 differ diff --git a/assets/inter-italic-latin-ext.bd8920cc.woff2 b/assets/inter-italic-latin-ext.bd8920cc.woff2 new file mode 100644 index 0000000..9c1b944 Binary files /dev/null and b/assets/inter-italic-latin-ext.bd8920cc.woff2 differ diff --git a/assets/inter-italic-latin.bd3b6f56.woff2 b/assets/inter-italic-latin.bd3b6f56.woff2 new file mode 100644 index 0000000..01fcf20 Binary files /dev/null and b/assets/inter-italic-latin.bd3b6f56.woff2 differ diff --git a/assets/inter-italic-vietnamese.6ce511fb.woff2 b/assets/inter-italic-vietnamese.6ce511fb.woff2 new file mode 100644 index 0000000..e4f788e Binary files /dev/null and b/assets/inter-italic-vietnamese.6ce511fb.woff2 differ diff --git a/assets/inter-latin-ext.7cc429bc.woff2 b/assets/inter-latin-ext.7cc429bc.woff2 new file mode 100644 index 0000000..2fa148c Binary files /dev/null and b/assets/inter-latin-ext.7cc429bc.woff2 differ diff --git a/assets/inter-latin.4fe6132f.woff2 b/assets/inter-latin.4fe6132f.woff2 new file mode 100644 index 0000000..1a4cd42 Binary files /dev/null and b/assets/inter-latin.4fe6132f.woff2 differ diff --git a/assets/inter-roman-cyrillic-ext.e75737ce.woff2 b/assets/inter-roman-cyrillic-ext.e75737ce.woff2 new file mode 100644 index 0000000..28593cc Binary files /dev/null and b/assets/inter-roman-cyrillic-ext.e75737ce.woff2 differ diff --git a/assets/inter-roman-cyrillic.5f2c6c8c.woff2 b/assets/inter-roman-cyrillic.5f2c6c8c.woff2 new file mode 100644 index 0000000..a20adc1 Binary files /dev/null and b/assets/inter-roman-cyrillic.5f2c6c8c.woff2 differ diff --git a/assets/inter-roman-greek-ext.ab0619bc.woff2 b/assets/inter-roman-greek-ext.ab0619bc.woff2 new file mode 100644 index 0000000..e3b0be7 Binary files /dev/null and b/assets/inter-roman-greek-ext.ab0619bc.woff2 differ diff --git a/assets/inter-roman-greek.d5a6d92a.woff2 b/assets/inter-roman-greek.d5a6d92a.woff2 new file mode 100644 index 0000000..f790e04 Binary files /dev/null and b/assets/inter-roman-greek.d5a6d92a.woff2 differ diff --git a/assets/inter-roman-latin-ext.0030eebd.woff2 b/assets/inter-roman-latin-ext.0030eebd.woff2 new file mode 100644 index 0000000..715bd90 Binary files /dev/null and b/assets/inter-roman-latin-ext.0030eebd.woff2 differ diff --git a/assets/inter-roman-latin.2ed14f66.woff2 b/assets/inter-roman-latin.2ed14f66.woff2 new file mode 100644 index 0000000..a540b7a Binary files /dev/null and b/assets/inter-roman-latin.2ed14f66.woff2 differ diff --git a/assets/inter-roman-vietnamese.14ce25a6.woff2 b/assets/inter-roman-vietnamese.14ce25a6.woff2 new file mode 100644 index 0000000..5a9f9cb Binary files /dev/null and b/assets/inter-roman-vietnamese.14ce25a6.woff2 differ diff --git a/assets/inter-vietnamese.2c644a25.woff2 b/assets/inter-vietnamese.2c644a25.woff2 new file mode 100644 index 0000000..c2ffbb0 Binary files /dev/null and b/assets/inter-vietnamese.2c644a25.woff2 differ diff --git a/assets/iphone.4fe8eea4.obj b/assets/iphone.4fe8eea4.obj new file mode 100644 index 0000000..784b169 --- /dev/null +++ b/assets/iphone.4fe8eea4.obj @@ -0,0 +1,13830 @@ +# Blender v3.0.1 OBJ File: 'iphone.blend' +# www.blender.org +mtllib iphoneObj.mtl +o phone_Cube.005 +v 3.468147 2.651099 -4.959607 +v 3.466282 2.651190 -4.402884 +v 3.461208 2.498169 -4.940196 +v 3.459147 2.493304 -4.427958 +v 3.462138 2.503681 -4.945257 +v 3.459954 2.498230 -4.422294 +v 3.468658 2.643634 -4.960032 +v 3.466790 2.643725 -4.402459 +v 3.468536 2.544801 -4.960032 +v 3.468334 2.540666 -4.959795 +v 3.466620 2.538536 -4.402822 +v 3.467789 2.537397 -4.959607 +v 3.466573 2.530110 -4.958334 +v 3.465384 2.523007 -4.956232 +v 3.464240 2.516178 -4.953326 +v 3.463153 2.509709 -4.949652 +v 3.462922 2.516242 -4.409165 +v 3.465230 2.530175 -4.404156 +v 3.461853 2.509772 -4.412839 +v 3.460860 2.503743 -4.417233 +v 3.466441 2.537462 -4.402884 +v 3.464052 2.523071 -4.406259 +v 3.471389 2.603646 -4.960032 +v 3.469672 2.601513 -4.402458 +v 3.466927 2.544879 -4.402458 +v 3.458886 2.708880 -4.907379 +v 3.458618 2.710152 -4.899891 +v 3.458509 2.710576 -4.892309 +v 3.456891 2.710654 -4.470182 +v 3.456941 2.710234 -4.462600 +v 3.459877 2.703915 -4.921694 +v 3.459305 2.706808 -4.914677 +v 3.457150 2.708975 -4.455112 +v 3.457515 2.706895 -4.447814 +v 3.457876 2.478868 -4.892309 +v 3.460586 2.700290 -4.928340 +v 3.458031 2.704018 -4.440798 +v 3.458188 2.480519 -4.907379 +v 3.458546 2.482565 -4.914677 +v 3.457963 2.479282 -4.899891 +v 3.459035 2.485393 -4.921693 +v 3.456854 2.478918 -4.470182 +v 3.456905 2.479333 -4.462599 +v 3.457093 2.480572 -4.455112 +v 3.457416 2.482620 -4.447814 +v 3.465902 2.672599 -4.953326 +v 3.461430 2.695937 -4.934534 +v 3.463474 2.685316 -4.945257 +v 3.462397 2.690925 -4.940197 +v 3.464647 2.679182 -4.949652 +v 3.467096 2.666322 -4.955952 +v 3.461449 2.685414 -4.417233 +v 3.460411 2.691021 -4.422295 +v 3.463816 2.672700 -4.409165 +v 3.462589 2.679282 -4.412839 +v 3.459488 2.696031 -4.427956 +v 3.458691 2.700382 -4.434151 +v 3.465402 2.664218 -4.405811 +v 3.465115 2.665753 -4.406259 +v 3.467143 2.665655 -4.956233 +v 3.467640 2.658470 -4.958335 +v 3.465783 2.658560 -4.404156 +v 3.459646 2.488968 -4.928340 +v 3.460374 2.493244 -4.934534 +v 3.457870 2.485449 -4.440798 +v 3.458450 2.489026 -4.434151 +v 3.329297 2.698107 -2.960744 +v 3.329297 2.695930 -2.939093 +v 3.329297 2.689558 -2.918518 +v 3.329297 2.679205 -2.899549 +v 3.329297 2.665266 -2.882912 +v 3.329297 2.648271 -2.869252 +v 3.329297 2.628871 -2.859096 +v 3.329297 2.607813 -2.852839 +v 3.329297 2.585909 -2.850726 +v 3.329297 2.564005 -2.852839 +v 3.329297 2.542947 -2.859096 +v 3.329297 2.523547 -2.869251 +v 3.329297 2.506552 -2.882912 +v 3.329297 2.492613 -2.899548 +v 3.329297 2.482260 -2.918518 +v 3.329297 2.475888 -2.939093 +v 3.329297 2.473711 -2.960744 +v 3.329297 2.475966 -3.854171 +v 3.329297 2.482260 -3.874495 +v 3.329297 2.492613 -3.893464 +v 3.329297 2.506552 -3.910100 +v 3.329297 2.523547 -3.923761 +v 3.329297 2.542947 -3.933917 +v 3.329297 2.564005 -3.940174 +v 3.329297 2.585909 -3.942287 +v 3.329297 2.607813 -3.940174 +v 3.329297 2.628871 -3.933917 +v 3.329297 2.648271 -3.923760 +v 3.329297 2.665266 -3.910100 +v 3.329297 2.679205 -3.893464 +v 3.329297 2.689558 -3.874495 +v 3.329297 2.695852 -3.854171 +v 3.329297 2.698107 -1.640101 +v 3.329297 2.695930 -1.618450 +v 3.329297 2.689558 -1.597875 +v 3.329297 2.679205 -1.578905 +v 3.329297 2.665266 -1.562269 +v 3.329297 2.648271 -1.548609 +v 3.329297 2.628871 -1.538452 +v 3.329297 2.607813 -1.532196 +v 3.329297 2.585909 -1.530083 +v 3.329297 2.564005 -1.532196 +v 3.329297 2.542947 -1.538453 +v 3.329297 2.523547 -1.548609 +v 3.329297 2.506552 -1.562269 +v 3.329297 2.492613 -1.578905 +v 3.329297 2.482260 -1.597875 +v 3.329297 2.475888 -1.618450 +v 3.329297 2.473711 -1.640101 +v 3.329297 2.475966 -2.533528 +v 3.329297 2.482260 -2.553851 +v 3.329297 2.492613 -2.572821 +v 3.329297 2.506552 -2.589457 +v 3.329297 2.523547 -2.603118 +v 3.329297 2.542947 -2.613274 +v 3.329297 2.564005 -2.619530 +v 3.329297 2.585909 -2.621644 +v 3.329297 2.607813 -2.619530 +v 3.329297 2.628871 -2.613274 +v 3.329297 2.648271 -2.603118 +v 3.329297 2.665266 -2.589457 +v 3.329297 2.679205 -2.572821 +v 3.329297 2.689558 -2.553851 +v 3.329297 2.695852 -2.533528 +v 1.559055 2.510523 5.439047 +v 1.547451 2.511666 5.439047 +v 1.536293 2.515051 5.439048 +v 1.526009 2.520547 5.439048 +v 1.516996 2.527945 5.439048 +v 1.509598 2.536958 5.439048 +v 1.504102 2.547242 5.439047 +v 1.500717 2.558400 5.439048 +v 1.499574 2.570004 5.439048 +v 1.500717 2.581608 5.439048 +v 1.504102 2.592767 5.439048 +v 1.509598 2.603050 5.439047 +v 1.516996 2.612064 5.439047 +v 1.526009 2.619461 5.439048 +v 1.536293 2.624958 5.439048 +v 1.547451 2.628342 5.439048 +v 1.559055 2.629485 5.439047 +v 1.570659 2.628342 5.439047 +v 1.581818 2.624958 5.439047 +v 1.592101 2.619461 5.439048 +v 1.601115 2.612064 5.439047 +v 1.608512 2.603050 5.439047 +v 1.614009 2.592767 5.439047 +v 1.617393 2.581608 5.439047 +v 1.618536 2.570004 5.439048 +v 1.617393 2.558400 5.439047 +v 1.614009 2.547241 5.439047 +v 1.608512 2.536958 5.439047 +v 1.601115 2.527944 5.439047 +v 1.592101 2.520547 5.439048 +v 1.581818 2.515050 5.439047 +v 1.570659 2.511666 5.439047 +v 1.333027 2.510523 5.439048 +v 1.321422 2.511666 5.439047 +v 1.310264 2.515051 5.439047 +v 1.299981 2.520547 5.439048 +v 1.290967 2.527945 5.439048 +v 1.283570 2.536958 5.439047 +v 1.278073 2.547242 5.439047 +v 1.274688 2.558400 5.439047 +v 1.273545 2.570004 5.439048 +v 1.274688 2.581608 5.439047 +v 1.278073 2.592767 5.439047 +v 1.283570 2.603050 5.439047 +v 1.290967 2.612064 5.439048 +v 1.299981 2.619461 5.439048 +v 1.310264 2.624958 5.439047 +v 1.321422 2.628342 5.439047 +v 1.333027 2.629485 5.439048 +v 1.344631 2.628342 5.439048 +v 1.355789 2.624958 5.439047 +v 1.366073 2.619461 5.439047 +v 1.375086 2.612064 5.439048 +v 1.382483 2.603050 5.439047 +v 1.387980 2.592767 5.439048 +v 1.391365 2.581608 5.439048 +v 1.392508 2.570004 5.439048 +v 1.391365 2.558400 5.439048 +v 1.387980 2.547241 5.439047 +v 1.382483 2.536958 5.439048 +v 1.375086 2.527944 5.439048 +v 1.366073 2.520547 5.439047 +v 1.355789 2.515051 5.439048 +v 1.344631 2.511666 5.439047 +v 1.106998 2.510523 5.439048 +v 1.095394 2.511666 5.439048 +v 1.084236 2.515051 5.439048 +v 1.073952 2.520547 5.439048 +v 1.064938 2.527945 5.439048 +v 1.057541 2.536958 5.439048 +v 1.052045 2.547242 5.439047 +v 1.048660 2.558400 5.439048 +v 1.047517 2.570004 5.439048 +v 1.048660 2.581608 5.439047 +v 1.052045 2.592767 5.439048 +v 1.057541 2.603050 5.439048 +v 1.064938 2.612064 5.439047 +v 1.073952 2.619461 5.439048 +v 1.084236 2.624958 5.439047 +v 1.095394 2.628342 5.439048 +v 1.106998 2.629485 5.439047 +v 1.118602 2.628342 5.439047 +v 1.129761 2.624958 5.439047 +v 1.140044 2.619461 5.439048 +v 1.149058 2.612064 5.439048 +v 1.156455 2.603050 5.439047 +v 1.161952 2.592767 5.439047 +v 1.165336 2.581608 5.439047 +v 1.166479 2.570004 5.439048 +v 1.165336 2.558400 5.439047 +v 1.161951 2.547241 5.439047 +v 1.156455 2.536958 5.439047 +v 1.149057 2.527945 5.439048 +v 1.140044 2.520547 5.439048 +v 1.129761 2.515051 5.439047 +v 1.118602 2.511666 5.439047 +v -1.127962 2.510523 5.439048 +v -1.139566 2.511666 5.439048 +v -1.150724 2.515051 5.439047 +v -1.161008 2.520548 5.439048 +v -1.170021 2.527945 5.439048 +v -1.177418 2.536958 5.439047 +v -1.182915 2.547242 5.439048 +v -1.186300 2.558400 5.439048 +v -1.187443 2.570004 5.439047 +v -1.186300 2.581609 5.439048 +v -1.182915 2.592767 5.439047 +v -1.177418 2.603050 5.439048 +v -1.170021 2.612064 5.439047 +v -1.161008 2.619461 5.439048 +v -1.150724 2.624958 5.439047 +v -1.139566 2.628343 5.439047 +v -1.127961 2.629486 5.439047 +v -1.116357 2.628343 5.439047 +v -1.105199 2.624958 5.439048 +v -1.094916 2.619461 5.439048 +v -1.085902 2.612064 5.439047 +v -1.078505 2.603050 5.439048 +v -1.073008 2.592767 5.439047 +v -1.069623 2.581609 5.439048 +v -1.068480 2.570004 5.439047 +v -1.069623 2.558400 5.439047 +v -1.073008 2.547242 5.439048 +v -1.078505 2.536958 5.439047 +v -1.085902 2.527945 5.439048 +v -1.094916 2.520548 5.439048 +v -1.105199 2.515051 5.439047 +v -1.116357 2.511666 5.439048 +v -1.353990 2.510523 5.439048 +v -1.365595 2.511666 5.439048 +v -1.376753 2.515051 5.439047 +v -1.387036 2.520548 5.439047 +v -1.396050 2.527945 5.439048 +v -1.403447 2.536958 5.439047 +v -1.408944 2.547242 5.439048 +v -1.412328 2.558400 5.439047 +v -1.413471 2.570004 5.439048 +v -1.412328 2.581609 5.439048 +v -1.408944 2.592767 5.439047 +v -1.403447 2.603050 5.439048 +v -1.396050 2.612064 5.439048 +v -1.387036 2.619461 5.439047 +v -1.376753 2.624958 5.439048 +v -1.365594 2.628343 5.439047 +v -1.353990 2.629486 5.439048 +v -1.342386 2.628343 5.439047 +v -1.331228 2.624958 5.439047 +v -1.320944 2.619461 5.439048 +v -1.311931 2.612064 5.439048 +v -1.304533 2.603050 5.439048 +v -1.299037 2.592767 5.439047 +v -1.295652 2.581609 5.439048 +v -1.294509 2.570004 5.439047 +v -1.295652 2.558400 5.439047 +v -1.299037 2.547242 5.439047 +v -1.304534 2.536958 5.439047 +v -1.311931 2.527945 5.439048 +v -1.320944 2.520548 5.439048 +v -1.331228 2.515051 5.439047 +v -1.342386 2.511666 5.439048 +v -1.580019 2.510523 5.439047 +v -1.591623 2.511666 5.439047 +v -1.602781 2.515051 5.439047 +v -1.613065 2.520548 5.439048 +v -1.622078 2.527945 5.439048 +v -1.629476 2.536958 5.439047 +v -1.634972 2.547242 5.439047 +v -1.638357 2.558400 5.439048 +v -1.639500 2.570004 5.439047 +v -1.638357 2.581609 5.439048 +v -1.634972 2.592767 5.439047 +v -1.629476 2.603050 5.439047 +v -1.622078 2.612064 5.439047 +v -1.613065 2.619461 5.439048 +v -1.602781 2.624958 5.439047 +v -1.591623 2.628343 5.439047 +v -1.580019 2.629486 5.439047 +v -1.568415 2.628343 5.439047 +v -1.557256 2.624958 5.439048 +v -1.546973 2.619461 5.439048 +v -1.537959 2.612064 5.439047 +v -1.530562 2.603050 5.439048 +v -1.525065 2.592767 5.439047 +v -1.521681 2.581609 5.439048 +v -1.520538 2.570004 5.439048 +v -1.521681 2.558400 5.439047 +v -1.525066 2.547242 5.439048 +v -1.530562 2.536958 5.439047 +v -1.537959 2.527945 5.439047 +v -1.546973 2.520548 5.439048 +v -1.557256 2.515051 5.439047 +v -1.568415 2.511666 5.439048 +v -1.796055 2.510523 5.439048 +v -1.807659 2.511666 5.439048 +v -1.818817 2.515051 5.439047 +v -1.829101 2.520548 5.439047 +v -1.838114 2.527945 5.439047 +v -1.845511 2.536958 5.439048 +v -1.851008 2.547242 5.439048 +v -1.854393 2.558400 5.439048 +v -1.855536 2.570004 5.439048 +v -1.854393 2.581609 5.439048 +v -1.851008 2.592767 5.439048 +v -1.845511 2.603050 5.439048 +v -1.838114 2.612064 5.439047 +v -1.829101 2.619461 5.439047 +v -1.818817 2.624958 5.439048 +v -1.807659 2.628343 5.439048 +v -1.796054 2.629486 5.439048 +v -1.784450 2.628343 5.439048 +v -1.773292 2.624958 5.439048 +v -1.763008 2.619461 5.439048 +v -1.753995 2.612064 5.439048 +v -1.746598 2.603050 5.439048 +v -1.741101 2.592767 5.439047 +v -1.737716 2.581609 5.439048 +v -1.736573 2.570004 5.439047 +v -1.737716 2.558400 5.439048 +v -1.741101 2.547242 5.439048 +v -1.746598 2.536958 5.439047 +v -1.753995 2.527945 5.439048 +v -1.763009 2.520548 5.439048 +v -1.773292 2.515051 5.439047 +v -1.784450 2.511666 5.439048 +v -2.022083 2.510523 5.439048 +v -2.033687 2.511666 5.439048 +v -2.044846 2.515051 5.439047 +v -2.055129 2.520548 5.439048 +v -2.064143 2.527945 5.439048 +v -2.071540 2.536959 5.439047 +v -2.077037 2.547242 5.439048 +v -2.080421 2.558400 5.439048 +v -2.081564 2.570004 5.439047 +v -2.080421 2.581609 5.439048 +v -2.077037 2.592767 5.439047 +v -2.071540 2.603050 5.439048 +v -2.064143 2.612064 5.439047 +v -2.055129 2.619461 5.439048 +v -2.044846 2.624958 5.439047 +v -2.033687 2.628343 5.439048 +v -2.022083 2.629486 5.439047 +v -2.010479 2.628343 5.439048 +v -1.999321 2.624958 5.439048 +v -1.989037 2.619461 5.439047 +v -1.980024 2.612064 5.439047 +v -1.972626 2.603050 5.439048 +v -1.967130 2.592767 5.439048 +v -1.963745 2.581609 5.439048 +v -1.962602 2.570004 5.439048 +v -1.963745 2.558400 5.439048 +v -1.967130 2.547242 5.439048 +v -1.972626 2.536958 5.439047 +v -1.980024 2.527945 5.439048 +v -1.989037 2.520548 5.439047 +v -1.999321 2.515051 5.439047 +v -2.010479 2.511666 5.439048 +v -2.248112 2.510523 5.439048 +v -2.259716 2.511666 5.439048 +v -2.270874 2.515051 5.439047 +v -2.281158 2.520548 5.439047 +v -2.290171 2.527945 5.439048 +v -2.297568 2.536959 5.439047 +v -2.303065 2.547242 5.439048 +v -2.306450 2.558400 5.439048 +v -2.307593 2.570005 5.439048 +v -2.306450 2.581609 5.439048 +v -2.303065 2.592767 5.439047 +v -2.297568 2.603051 5.439048 +v -2.290171 2.612064 5.439048 +v -2.281158 2.619462 5.439047 +v -2.270874 2.624958 5.439048 +v -2.259716 2.628343 5.439048 +v -2.248112 2.629486 5.439048 +v -2.236507 2.628343 5.439048 +v -2.225349 2.624958 5.439048 +v -2.215066 2.619461 5.439048 +v -2.206052 2.612064 5.439048 +v -2.198655 2.603050 5.439048 +v -2.193158 2.592767 5.439047 +v -2.189773 2.581609 5.439048 +v -2.188631 2.570004 5.439047 +v -2.189773 2.558400 5.439048 +v -2.193158 2.547242 5.439048 +v -2.198655 2.536958 5.439047 +v -2.206052 2.527945 5.439048 +v -2.215066 2.520548 5.439048 +v -2.225349 2.515051 5.439047 +v -2.236508 2.511666 5.439048 +v -0.280781 2.442782 6.540327 +v -0.305738 2.445240 6.540327 +v -0.329735 2.452520 6.540327 +v -0.351851 2.464341 6.540327 +v -0.371236 2.480250 6.540327 +v -0.387145 2.499635 6.540327 +v -0.398967 2.521751 6.540327 +v -0.406246 2.545749 6.540327 +v -0.408704 2.570705 6.540327 +v -0.406246 2.595662 6.540327 +v -0.398967 2.619660 6.540327 +v -0.387145 2.641776 6.540327 +v -0.371236 2.661161 6.540327 +v -0.351851 2.677070 6.540327 +v -0.329735 2.688891 6.540327 +v -0.305737 2.696171 6.540327 +v -0.280781 2.698629 6.540327 +v 0.306420 2.696171 6.540327 +v 0.330417 2.688891 6.540327 +v 0.352533 2.677070 6.540327 +v 0.371918 2.661161 6.540327 +v 0.387827 2.641776 6.540327 +v 0.399649 2.619659 6.540327 +v 0.406928 2.595662 6.540327 +v 0.409386 2.570705 6.540327 +v 0.406928 2.545749 6.540327 +v 0.399649 2.521751 6.540327 +v 0.387827 2.499635 6.540327 +v 0.371918 2.480250 6.540327 +v 0.352533 2.464341 6.540327 +v 0.330417 2.452520 6.540327 +v 0.306419 2.445240 6.540327 +v -3.317164 2.585888 -3.547554 +v -3.317164 2.607889 -3.545387 +v -3.317164 2.629045 -3.538969 +v -3.317164 2.648542 -3.528547 +v -3.317164 2.665632 -3.514523 +v -3.317164 2.679657 -3.497433 +v -3.317164 2.690078 -3.477936 +v -3.317163 2.696496 -3.456780 +v -3.317164 2.698688 -3.434521 +v -3.317164 2.696420 -1.927904 +v -3.317163 2.690078 -1.906998 +v -3.317164 2.679657 -1.887501 +v -3.317164 2.665632 -1.870412 +v -3.317163 2.648542 -1.856387 +v -3.317163 2.629045 -1.845965 +v -3.317164 2.607889 -1.839547 +v -3.317163 2.585888 -1.837381 +v -3.317164 2.563887 -1.839547 +v -3.317163 2.542731 -1.845965 +v -3.317164 2.523234 -1.856387 +v -3.317164 2.506144 -1.870412 +v -3.317164 2.492119 -1.887501 +v -3.317164 2.481698 -1.906999 +v -3.317164 2.475356 -1.927904 +v -3.317164 2.473088 -3.434521 +v -3.317164 2.475280 -3.456780 +v -3.317164 2.481698 -3.477936 +v -3.317163 2.492119 -3.497433 +v -3.317164 2.506144 -3.514523 +v -3.317164 2.523234 -3.528548 +v -3.317164 2.542731 -3.538969 +v -3.317164 2.563887 -3.545386 +v -3.365685 2.918022 5.991899 +v -2.432981 2.914186 6.941484 +v -3.351958 2.917356 6.156356 +v -3.310223 2.916710 6.315900 +v -3.241748 2.916104 6.465682 +v -3.148615 2.915557 6.601153 +v -3.033653 2.915084 6.718195 +v -2.900355 2.914701 6.813254 +v -2.752771 2.914418 6.883440 +v -2.595386 2.914245 6.926620 +v -2.392018 2.970454 -6.952728 +v -3.330305 2.966620 -6.008659 +v -2.554507 2.970395 -6.938822 +v -2.712144 2.970222 -6.896571 +v -2.860140 2.969940 -6.827256 +v -2.993996 2.969557 -6.732985 +v -3.109647 2.969084 -6.616623 +v -3.203577 2.968537 -6.481703 +v -3.272933 2.967931 -6.332327 +v -3.315608 2.967286 -6.173032 +v 2.392009 2.914183 6.955709 +v 3.330297 2.918017 6.011641 +v 2.554499 2.914241 6.941803 +v 2.712136 2.914414 6.899552 +v 2.860132 2.914696 6.830237 +v 2.993988 2.915080 6.735966 +v 3.109638 2.915552 6.619604 +v 3.203568 2.916100 6.484684 +v 3.272925 2.916705 6.335308 +v 3.315600 2.917351 6.176013 +v 3.365677 2.966615 -5.988918 +v 2.432973 2.970450 -6.938503 +v 3.351949 2.967281 -6.153375 +v 3.310215 2.967927 -6.312919 +v 3.241740 2.968532 -6.462701 +v 3.148607 2.969080 -6.598172 +v 3.033645 2.969553 -6.715214 +v 2.900347 2.969936 -6.810273 +v 2.752763 2.970219 -6.880459 +v 2.595378 2.970392 -6.923639 +v -2.466560 2.234806 6.991539 +v -2.466568 2.857028 6.994058 +v -2.490808 2.282093 7.029851 +v -2.510827 2.334775 7.061537 +v -2.526209 2.391780 7.085951 +v -2.536641 2.451946 7.102595 +v -2.541911 2.514049 7.111131 +v -2.541912 2.576824 7.111385 +v -2.536643 2.638994 7.103352 +v -2.526212 2.699293 7.087196 +v -2.510832 2.756493 7.063245 +v -2.490814 2.809431 7.031987 +v -2.631979 2.236072 6.977685 +v -2.631987 2.855870 6.980196 +v -2.657752 2.283176 7.015766 +v -2.679028 2.335653 7.047259 +v -2.695377 2.392436 7.071524 +v -2.706465 2.452367 7.088068 +v -2.712066 2.514228 7.096552 +v -2.712067 2.576759 7.096806 +v -2.706467 2.638686 7.088822 +v -2.695380 2.698750 7.072765 +v -2.679033 2.755727 7.048960 +v -2.657757 2.808458 7.017893 +v -2.792814 2.238069 6.935856 +v -2.792821 2.854208 6.938351 +v -2.819993 2.284896 6.973474 +v -2.842432 2.337064 7.004586 +v -2.859674 2.393512 7.028557 +v -2.871368 2.453090 7.044900 +v -2.877275 2.514586 7.053284 +v -2.877275 2.576747 7.053535 +v -2.871370 2.638309 7.045651 +v -2.859677 2.698018 7.029790 +v -2.842437 2.754659 7.006277 +v -2.819999 2.807078 6.975588 +v -2.943737 2.240029 6.866641 +v -2.943744 2.852805 6.869122 +v -2.972223 2.286602 6.903672 +v -2.995740 2.338486 6.934298 +v -3.013811 2.394627 6.957896 +v -3.026067 2.453881 6.973987 +v -3.032258 2.515041 6.982241 +v -3.032259 2.576864 6.982491 +v -3.026068 2.638089 6.974733 +v -3.013814 2.697472 6.959123 +v -2.995745 2.753802 6.935980 +v -2.972228 2.805934 6.905775 +v -3.079797 2.241444 6.771726 +v -3.079803 2.852156 6.774199 +v -3.109497 2.287862 6.808117 +v -3.134017 2.339573 6.838216 +v -3.152858 2.395526 6.861408 +v -3.165636 2.454581 6.877223 +v -3.172090 2.515536 6.885337 +v -3.172091 2.577151 6.885587 +v -3.165637 2.638169 6.877966 +v -3.152861 2.697351 6.862631 +v -3.134021 2.753490 6.839892 +v -3.109503 2.805444 6.810214 +v -3.196582 2.242007 6.653777 +v -3.196589 2.852545 6.656250 +v -3.227403 2.288414 6.689526 +v -3.252849 2.340114 6.719092 +v -3.272402 2.396052 6.741877 +v -3.285662 2.455091 6.757415 +v -3.292361 2.516030 6.765389 +v -3.292361 2.577626 6.765639 +v -3.285664 2.638627 6.758158 +v -3.272405 2.697790 6.743099 +v -3.252854 2.753912 6.720768 +v -3.227409 2.805850 6.691621 +v -3.290383 2.241600 6.516331 +v -3.290390 2.854064 6.518811 +v -3.322221 2.288156 6.551458 +v -3.348505 2.340021 6.580512 +v -3.368702 2.396138 6.602902 +v -3.382400 2.455365 6.618173 +v -3.389320 2.516496 6.626014 +v -3.389320 2.578287 6.626264 +v -3.382402 2.639479 6.618919 +v -3.368706 2.698828 6.604127 +v -3.348510 2.755125 6.582193 +v -3.322227 2.807224 6.553560 +v -3.358367 2.240321 6.363702 +v -3.358374 2.856578 6.366198 +v -3.391082 2.287169 6.398230 +v -3.418091 2.339357 6.426790 +v -3.438845 2.395824 6.448801 +v -3.452920 2.455419 6.463815 +v -3.460030 2.516929 6.471527 +v -3.460031 2.579103 6.471778 +v -3.452922 2.640674 6.464565 +v -3.438848 2.700389 6.450034 +v -3.418096 2.757032 6.428482 +v -3.391088 2.809451 6.400345 +v -3.398765 2.238585 6.200901 +v -3.398772 2.859631 6.203416 +v -3.432154 2.285801 6.234821 +v -3.459719 2.338398 6.262880 +v -3.480899 2.395305 6.284507 +v -3.495264 2.455365 6.299260 +v -3.502520 2.517354 6.306842 +v -3.502521 2.580011 6.307096 +v -3.495266 2.642059 6.300016 +v -3.480902 2.702237 6.285750 +v -3.459723 2.759318 6.264584 +v -3.432159 2.812141 6.236952 +v -3.411095 2.862267 6.036135 +v -3.411088 2.237304 6.033604 +v -3.444833 2.814481 6.068975 +v -3.472686 2.761328 6.096032 +v -3.494088 2.703889 6.116754 +v -3.508602 2.643333 6.130720 +v -3.515933 2.580894 6.137646 +v -3.515933 2.517843 6.137391 +v -3.508600 2.455462 6.129959 +v -3.494085 2.395022 6.115502 +v -3.472682 2.337753 6.094316 +v -3.444827 2.284821 6.066830 +v -2.425292 2.913723 -7.005961 +v -2.425285 2.291501 -7.008481 +v -2.449314 2.866436 -7.044416 +v -2.469146 2.813753 -7.076219 +v -2.484383 2.756749 -7.100723 +v -2.494717 2.696583 -7.117428 +v -2.499937 2.634480 -7.125995 +v -2.499937 2.571705 -7.126249 +v -2.494715 2.509535 -7.118186 +v -2.484380 2.449236 -7.101969 +v -2.469141 2.392036 -7.077927 +v -2.449308 2.339098 -7.046551 +v -2.590790 2.912457 -6.993083 +v -2.590783 2.292659 -6.995594 +v -2.616337 2.865353 -7.031314 +v -2.637428 2.812876 -7.062932 +v -2.653633 2.756094 -7.087294 +v -2.664624 2.696162 -7.103902 +v -2.670175 2.634301 -7.112420 +v -2.670175 2.571770 -7.112674 +v -2.664622 2.509843 -7.104657 +v -2.653630 2.449779 -7.088535 +v -2.637423 2.392802 -7.064634 +v -2.616332 2.340071 -7.033442 +v -2.751869 2.910460 -6.952203 +v -2.751862 2.294321 -6.954698 +v -2.778826 2.863634 -6.989980 +v -2.801081 2.811466 -7.021224 +v -2.818181 2.755018 -7.045297 +v -2.829778 2.695439 -7.061709 +v -2.835636 2.633944 -7.070127 +v -2.835635 2.571782 -7.070378 +v -2.829776 2.510220 -7.062459 +v -2.818178 2.450511 -7.046530 +v -2.801076 2.393871 -7.022914 +v -2.778820 2.341451 -6.992095 +v -2.903197 2.908500 -6.883878 +v -2.903190 2.295724 -6.886360 +v -2.931464 2.861928 -6.921077 +v -2.954801 2.810043 -6.951841 +v -2.972732 2.753902 -6.975546 +v -2.984893 2.694649 -6.991708 +v -2.991035 2.633488 -6.999999 +v -2.991035 2.571666 -7.000250 +v -2.984891 2.510440 -6.992454 +v -2.972728 2.451058 -6.976772 +v -2.954796 2.394727 -6.953524 +v -2.931458 2.342596 -6.923180 +v -3.039814 2.907086 -6.789768 +v -3.039807 2.296373 -6.792241 +v -3.069299 2.860668 -6.826334 +v -3.093641 2.808956 -6.856576 +v -3.112345 2.753003 -6.879879 +v -3.125030 2.693948 -6.895769 +v -3.131437 2.632993 -6.903921 +v -3.131436 2.571379 -6.904171 +v -3.125028 2.510360 -6.896513 +v -3.112342 2.451179 -6.881102 +v -3.093637 2.395040 -6.858253 +v -3.069293 2.343085 -6.828430 +v -3.157293 2.906522 -6.672509 +v -3.157286 2.295985 -6.674982 +v -3.187903 2.860115 -6.708439 +v -3.213175 2.808416 -6.738155 +v -3.232592 2.752478 -6.761055 +v -3.245760 2.693439 -6.776670 +v -3.252412 2.632500 -6.784685 +v -3.252412 2.570904 -6.784935 +v -3.245759 2.509903 -6.777413 +v -3.232589 2.450739 -6.762277 +v -3.213170 2.394618 -6.739831 +v -3.187898 2.342680 -6.710534 +v -3.251903 2.906930 -6.535619 +v -3.251896 2.294466 -6.538099 +v -3.283533 2.860374 -6.570933 +v -3.309646 2.808509 -6.600141 +v -3.329710 2.752392 -6.622651 +v -3.343318 2.693165 -6.638002 +v -3.350191 2.632034 -6.645884 +v -3.350191 2.570244 -6.646133 +v -3.343316 2.509051 -6.638748 +v -3.329707 2.449702 -6.623876 +v -3.309641 2.393405 -6.601822 +v -3.283527 2.341306 -6.573035 +v -3.320785 2.908209 -6.383393 +v -3.320778 2.291952 -6.385889 +v -3.353297 2.861361 -6.418114 +v -3.380137 2.809173 -6.446832 +v -3.400760 2.752706 -6.468966 +v -3.414747 2.693111 -6.484062 +v -3.421811 2.631601 -6.491816 +v -3.421811 2.569427 -6.492068 +v -3.414745 2.507857 -6.484813 +v -3.400757 2.448142 -6.470199 +v -3.380132 2.391498 -6.448524 +v -3.353291 2.339079 -6.420229 +v -3.362143 2.909945 -6.220834 +v -3.362136 2.288899 -6.223349 +v -3.395331 2.862729 -6.254950 +v -3.422730 2.810132 -6.283171 +v -3.443783 2.753225 -6.304923 +v -3.458060 2.693165 -6.319760 +v -3.465272 2.631176 -6.327384 +v -3.465271 2.568520 -6.327638 +v -3.458058 2.506471 -6.320517 +v -3.443779 2.446293 -6.306165 +v -3.422725 2.389212 -6.284875 +v -3.395325 2.336389 -6.257082 +v -3.375445 2.286263 -6.056143 +v -3.375452 2.911226 -6.053612 +v -3.408988 2.334049 -6.089181 +v -3.436682 2.387202 -6.116402 +v -3.457961 2.444641 -6.137250 +v -3.472392 2.505197 -6.151301 +v -3.479683 2.567636 -6.158270 +v -3.479683 2.630688 -6.158015 +v -3.472394 2.693069 -6.150540 +v -3.457964 2.753508 -6.135999 +v -3.436687 2.810777 -6.114686 +v -3.408994 2.863709 -6.087037 +v 3.411088 2.911221 -6.033604 +v 3.411095 2.286259 -6.036135 +v 3.444827 2.863704 -6.066830 +v 3.472682 2.810772 -6.094316 +v 3.494085 2.753503 -6.115502 +v 3.508600 2.693063 -6.129959 +v 3.515933 2.630683 -6.137391 +v 3.515933 2.567631 -6.137646 +v 3.508602 2.505192 -6.130720 +v 3.494088 2.444636 -6.116754 +v 3.472686 2.387197 -6.096032 +v 3.444833 2.334044 -6.068975 +v 3.398765 2.909940 -6.200901 +v 3.398772 2.288894 -6.203416 +v 3.432154 2.862724 -6.234821 +v 3.459719 2.810127 -6.262880 +v 3.480899 2.753220 -6.284507 +v 3.495264 2.693160 -6.299260 +v 3.502520 2.631171 -6.306842 +v 3.502521 2.568515 -6.307096 +v 3.495266 2.506466 -6.300016 +v 3.480902 2.446288 -6.285750 +v 3.459723 2.389207 -6.264584 +v 3.432159 2.336384 -6.236952 +v 3.358367 2.908205 -6.363702 +v 3.358374 2.291947 -6.366198 +v 3.391082 2.861356 -6.398230 +v 3.418091 2.809168 -6.426790 +v 3.438845 2.752701 -6.448801 +v 3.452920 2.693106 -6.463815 +v 3.460030 2.631596 -6.471527 +v 3.460031 2.569422 -6.471778 +v 3.452922 2.507852 -6.464565 +v 3.438848 2.448137 -6.450034 +v 3.418096 2.391493 -6.428482 +v 3.391088 2.339074 -6.400345 +v 3.290383 2.906925 -6.516331 +v 3.290390 2.294461 -6.518811 +v 3.322221 2.860369 -6.551458 +v 3.348505 2.808504 -6.580512 +v 3.368702 2.752387 -6.602902 +v 3.382400 2.693161 -6.618173 +v 3.389320 2.632030 -6.626014 +v 3.389320 2.570239 -6.626264 +v 3.382402 2.509046 -6.618919 +v 3.368706 2.449697 -6.604127 +v 3.348510 2.393400 -6.582193 +v 3.322227 2.341301 -6.553560 +v 3.196583 2.906518 -6.653777 +v 3.196589 2.295980 -6.656250 +v 3.227404 2.860111 -6.689526 +v 3.252850 2.808412 -6.719092 +v 3.272402 2.752473 -6.741877 +v 3.285662 2.693434 -6.757415 +v 3.292361 2.632496 -6.765389 +v 3.292361 2.570899 -6.765639 +v 3.285664 2.509898 -6.758158 +v 3.272405 2.450735 -6.743099 +v 3.252854 2.394613 -6.720768 +v 3.227409 2.342676 -6.691621 +v 3.079797 2.907081 -6.771726 +v 3.079803 2.296369 -6.774199 +v 3.109497 2.860664 -6.808117 +v 3.134017 2.808952 -6.838216 +v 3.152858 2.752999 -6.861408 +v 3.165636 2.693944 -6.877223 +v 3.172090 2.632989 -6.885337 +v 3.172091 2.571375 -6.885587 +v 3.165637 2.510356 -6.877966 +v 3.152861 2.451174 -6.862631 +v 3.134021 2.395035 -6.839892 +v 3.109503 2.343081 -6.810214 +v 2.943737 2.908496 -6.866641 +v 2.943744 2.295720 -6.869122 +v 2.972223 2.861923 -6.903672 +v 2.995740 2.810039 -6.934298 +v 3.013811 2.753898 -6.957896 +v 3.026067 2.694644 -6.973987 +v 3.032258 2.633484 -6.982241 +v 3.032259 2.571661 -6.982491 +v 3.026068 2.510436 -6.974733 +v 3.013814 2.451054 -6.959123 +v 2.995745 2.394723 -6.935980 +v 2.972228 2.342592 -6.905775 +v 2.792814 2.910456 -6.935856 +v 2.792821 2.294317 -6.938351 +v 2.819993 2.863630 -6.973474 +v 2.842432 2.811461 -7.004586 +v 2.859674 2.755013 -7.028557 +v 2.871368 2.695435 -7.044900 +v 2.877275 2.633940 -7.053284 +v 2.877275 2.571778 -7.053535 +v 2.871370 2.510216 -7.045651 +v 2.859677 2.450507 -7.029790 +v 2.842437 2.393867 -7.006277 +v 2.819999 2.341447 -6.975588 +v 2.631979 2.912453 -6.977685 +v 2.631987 2.292656 -6.980196 +v 2.657752 2.865349 -7.015766 +v 2.679028 2.812872 -7.047259 +v 2.695377 2.756090 -7.071524 +v 2.706465 2.696158 -7.088068 +v 2.712066 2.634297 -7.096552 +v 2.712067 2.571767 -7.096806 +v 2.706467 2.509839 -7.088822 +v 2.695380 2.449775 -7.072765 +v 2.679033 2.392798 -7.048960 +v 2.657757 2.340067 -7.017893 +v 2.466568 2.291497 -6.994058 +v 2.466560 2.913720 -6.991539 +v 2.490814 2.339094 -7.031987 +v 2.510832 2.392032 -7.063245 +v 2.526212 2.449233 -7.087196 +v 2.536643 2.509531 -7.103352 +v 2.541912 2.571702 -7.111385 +v 2.541911 2.634477 -7.111131 +v 2.536641 2.696579 -7.102595 +v 2.526209 2.756745 -7.085951 +v 2.510827 2.813750 -7.061537 +v 2.490808 2.866432 -7.029851 +v 2.425285 2.857024 7.008481 +v 2.425292 2.234802 7.005961 +v 2.449308 2.809427 7.046551 +v 2.469141 2.756490 7.077927 +v 2.484380 2.699289 7.101969 +v 2.494715 2.638990 7.118186 +v 2.499937 2.576820 7.126249 +v 2.499937 2.514045 7.125995 +v 2.494717 2.451942 7.117428 +v 2.484383 2.391776 7.100723 +v 2.469146 2.334772 7.076219 +v 2.449314 2.282090 7.044416 +v 2.590783 2.855866 6.995594 +v 2.590790 2.236068 6.993083 +v 2.616332 2.808455 7.033442 +v 2.637423 2.755723 7.064634 +v 2.653630 2.698746 7.088535 +v 2.664622 2.638682 7.104657 +v 2.670175 2.576755 7.112674 +v 2.670175 2.514224 7.112420 +v 2.664624 2.452363 7.103902 +v 2.653633 2.392432 7.087294 +v 2.637428 2.335649 7.062932 +v 2.616337 2.283172 7.031314 +v 2.751862 2.854204 6.954698 +v 2.751869 2.238065 6.952203 +v 2.778820 2.807074 6.992095 +v 2.801076 2.754655 7.022914 +v 2.818178 2.698014 7.046530 +v 2.829776 2.638305 7.062459 +v 2.835635 2.576743 7.070378 +v 2.835636 2.514582 7.070127 +v 2.829778 2.453086 7.061709 +v 2.818181 2.393508 7.045297 +v 2.801081 2.337060 7.021224 +v 2.778826 2.284892 6.989980 +v 2.903190 2.852801 6.886360 +v 2.903197 2.240025 6.883878 +v 2.931458 2.805929 6.923180 +v 2.954796 2.753798 6.953524 +v 2.972728 2.697467 6.976772 +v 2.984891 2.638085 6.992454 +v 2.991035 2.576859 7.000250 +v 2.991035 2.515037 6.999999 +v 2.984893 2.453876 6.991708 +v 2.972732 2.394623 6.975546 +v 2.954801 2.338482 6.951841 +v 2.931464 2.286597 6.921077 +v 3.039807 2.852152 6.792241 +v 3.039814 2.241439 6.789768 +v 3.069293 2.805440 6.828430 +v 3.093637 2.753486 6.858253 +v 3.112342 2.697346 6.881102 +v 3.125028 2.638165 6.896513 +v 3.131436 2.577146 6.904171 +v 3.131437 2.515532 6.903921 +v 3.125030 2.454577 6.895769 +v 3.112345 2.395522 6.879879 +v 3.093641 2.339569 6.856576 +v 3.069299 2.287857 6.826334 +v 3.157286 2.852541 6.674982 +v 3.157293 2.242003 6.672509 +v 3.187897 2.805845 6.710534 +v 3.213170 2.753907 6.739831 +v 3.232589 2.697786 6.762277 +v 3.245759 2.638622 6.777413 +v 3.252412 2.577621 6.784935 +v 3.252412 2.516025 6.784685 +v 3.245760 2.455087 6.776670 +v 3.232592 2.396048 6.761055 +v 3.213175 2.340109 6.738155 +v 3.187903 2.288410 6.708439 +v 3.251896 2.854059 6.538099 +v 3.251903 2.241595 6.535619 +v 3.283527 2.807219 6.573035 +v 3.309641 2.755120 6.601822 +v 3.329707 2.698823 6.623876 +v 3.343316 2.639474 6.638748 +v 3.350191 2.578282 6.646133 +v 3.350191 2.516491 6.645884 +v 3.343318 2.455360 6.638002 +v 3.329710 2.396133 6.622651 +v 3.309646 2.340016 6.600141 +v 3.283533 2.288152 6.570933 +v 3.320778 2.856573 6.385889 +v 3.320785 2.240316 6.383393 +v 3.353291 2.809446 6.420229 +v 3.380132 2.757027 6.448524 +v 3.400757 2.700384 6.470199 +v 3.414745 2.640669 6.484813 +v 3.421811 2.579098 6.492068 +v 3.421811 2.516924 6.491816 +v 3.414747 2.455414 6.484062 +v 3.400760 2.395819 6.468966 +v 3.380137 2.339352 6.446832 +v 3.353297 2.287164 6.418114 +v 3.362136 2.859626 6.223349 +v 3.362143 2.238580 6.220834 +v 3.395325 2.812136 6.257082 +v 3.422725 2.759313 6.284875 +v 3.443779 2.702232 6.306165 +v 3.458058 2.642054 6.320517 +v 3.465271 2.580006 6.327638 +v 3.465272 2.517349 6.327384 +v 3.458060 2.455360 6.319760 +v 3.443783 2.395300 6.304923 +v 3.422730 2.338393 6.283171 +v 3.395331 2.285796 6.254950 +v 3.375452 2.237299 6.053612 +v 3.375445 2.862262 6.056143 +v 3.408994 2.284816 6.087037 +v 3.436687 2.337748 6.114686 +v 3.457964 2.395017 6.135999 +v 3.472394 2.455457 6.150540 +v 3.479683 2.517838 6.158015 +v 3.479683 2.580889 6.158270 +v 3.472392 2.643328 6.151301 +v 3.457961 2.703884 6.137250 +v 3.436682 2.761323 6.116402 +v 3.408988 2.814476 6.089181 +v -2.591879 2.178133 6.922701 +v -2.429693 2.178075 6.937562 +v -2.749053 2.178307 6.879527 +v -2.896437 2.178589 6.809350 +v -3.029556 2.178973 6.714304 +v -3.144363 2.179445 6.597279 +v -3.237371 2.179993 6.461825 +v -3.305753 2.180599 6.312064 +v -3.347431 2.181244 6.152542 +v -3.361141 2.181910 5.988108 +v -2.388786 2.234342 -6.954767 +v -2.551056 2.234284 -6.940863 +v -2.708481 2.234111 -6.898618 +v -2.856277 2.233829 -6.829312 +v -2.989953 2.233445 -6.735054 +v -3.105447 2.232973 -6.618708 +v -3.199250 2.232425 -6.483806 +v -3.268513 2.231820 -6.334450 +v -3.311131 2.231174 -6.175178 +v -3.325808 2.230508 -6.010827 +v 3.361149 2.230504 -5.991089 +v 3.347439 2.231169 -6.155523 +v 3.305761 2.231815 -6.315045 +v 3.237379 2.232421 -6.464807 +v 3.144371 2.232969 -6.600260 +v 3.029564 2.233441 -6.717286 +v 2.896446 2.233825 -6.812331 +v 2.749061 2.234107 -6.882508 +v 2.591887 2.234280 -6.925682 +v 2.429702 2.234339 -6.940544 +v 2.388794 2.178072 6.951786 +v 2.551064 2.178130 6.937881 +v 2.708489 2.178303 6.895637 +v 2.856285 2.178585 6.826331 +v 2.989961 2.178968 6.732072 +v 3.105455 2.179441 6.615726 +v 3.199259 2.179988 6.480824 +v 3.268521 2.180594 6.331469 +v 3.311139 2.181240 6.172196 +v 3.325816 2.181905 6.007846 +v -2.565109 2.178809 6.756848 +v -2.425013 2.178759 6.769670 +v -2.693707 2.178951 6.721566 +v -2.814405 2.179182 6.664165 +v -2.923552 2.179496 6.586330 +v -3.017811 2.179883 6.490365 +v -3.094274 2.180333 6.379142 +v -3.150558 2.180831 6.256025 +v -3.184892 2.181362 6.124773 +v -3.196799 2.181940 5.982132 +v -2.385046 2.233658 -6.786832 +v -2.525215 2.233608 -6.774836 +v -2.654018 2.233467 -6.740313 +v -2.775053 2.233236 -6.683625 +v -2.884656 2.232922 -6.606435 +v -2.979480 2.232535 -6.511027 +v -3.056598 2.232085 -6.400257 +v -3.113607 2.231587 -6.277474 +v -3.148714 2.231056 -6.146427 +v -3.161462 2.230479 -6.003859 +v 3.196807 2.230474 -5.985113 +v 3.184900 2.231052 -6.127754 +v 3.150566 2.231583 -6.259007 +v 3.094282 2.232081 -6.382123 +v 3.017819 2.232530 -6.493346 +v 2.923560 2.232918 -6.589311 +v 2.814413 2.233232 -6.667147 +v 2.693715 2.233463 -6.724547 +v 2.565117 2.233604 -6.759829 +v 2.425021 2.233655 -6.772651 +v 2.385054 2.178756 6.783851 +v 2.525223 2.178806 6.771855 +v 2.654026 2.178947 6.737332 +v 2.775061 2.179178 6.680644 +v 2.884665 2.179492 6.603454 +v 2.979488 2.179879 6.508046 +v 3.056606 2.180329 6.397276 +v 3.113615 2.180826 6.274493 +v 3.148722 2.181358 6.143446 +v 3.161470 2.181935 6.000877 +v -2.445957 2.892102 6.961797 +v -2.609527 2.891691 6.947320 +v 2.404866 2.892099 6.976098 +v -2.768245 2.891155 6.904655 +v -2.917119 2.890787 6.834839 +v -3.051484 2.890771 6.739833 +v -3.167151 2.891212 6.622440 +v -3.260542 2.892134 6.486209 +v -3.328827 2.893477 6.335333 +v -3.370045 2.895053 6.174539 +v -3.383230 2.896480 6.008990 +v -3.347748 2.945218 -6.026028 +v -2.404874 2.948535 -6.973295 +v 2.445950 2.948532 -6.958994 +v -2.568526 2.948010 -6.959786 +v -2.727492 2.947133 -6.918065 +v -2.876775 2.946202 -6.849133 +v -3.011698 2.945420 -6.754924 +v -3.128055 2.944913 -6.638215 +v -3.222248 2.944734 -6.502534 +v -3.291422 2.944857 -6.352057 +v -3.333587 2.945131 -6.191502 +v 3.383223 2.945213 -6.006184 +v 3.347741 2.896475 6.028834 +v 3.370037 2.945127 -6.171738 +v 3.328819 2.944852 -6.332540 +v 3.260534 2.944730 -6.483422 +v 3.167143 2.944908 -6.619656 +v 3.051476 2.945416 -6.737049 +v 2.917111 2.946198 -6.832051 +v 2.768237 2.947129 -6.901862 +v 2.609519 2.948006 -6.944520 +v 2.568518 2.891687 6.962585 +v 2.727485 2.891151 6.920858 +v 2.876768 2.890782 6.851920 +v 3.011691 2.890767 6.757709 +v 3.128048 2.891207 6.641000 +v 3.222241 2.892130 6.505322 +v 3.291414 2.893472 6.354851 +v 3.333580 2.895048 6.194303 +v 2.404665 2.199634 6.972961 +v -2.445739 2.199638 6.958661 +v -2.609290 2.200155 6.944181 +v -2.767986 2.201022 6.901515 +v -2.916839 2.201942 6.831697 +v -3.051187 2.202717 6.736694 +v -3.166842 2.203225 6.619307 +v -3.260229 2.203409 6.483086 +v -3.328517 2.203299 6.332221 +v -3.369744 2.203039 6.171440 +v -3.382938 2.202965 6.005904 +v -3.347458 2.251700 -6.028555 +v -2.404658 2.256068 -6.975767 +v 2.445747 2.256064 -6.961467 +v -2.568291 2.256472 -6.962248 +v -2.727236 2.256996 -6.920512 +v -2.876498 2.257354 -6.851569 +v -3.011403 2.257364 -6.757356 +v -3.127749 2.256923 -6.640652 +v -3.221937 2.256006 -6.504987 +v -3.291114 2.254676 -6.354533 +v -3.333288 2.253115 -6.194005 +v 3.382945 2.251696 -6.008713 +v 3.347465 2.202960 6.025746 +v 3.369751 2.253110 -6.174243 +v 3.328525 2.254671 -6.335017 +v 3.260237 2.256002 -6.485876 +v 3.166850 2.256918 -6.622095 +v 3.051194 2.257360 -6.739482 +v 2.916846 2.257350 -6.834488 +v 2.767993 2.256992 -6.904311 +v 2.609297 2.256468 -6.946983 +v 2.568298 2.200152 6.959446 +v 2.727243 2.201018 6.917716 +v 2.876505 2.201938 6.848777 +v 3.011411 2.202713 6.754568 +v 3.127757 2.203220 6.637865 +v 3.221945 2.203404 6.502196 +v 3.291121 2.203294 6.351737 +v 3.333295 2.203034 6.191202 +v -2.591937 2.178210 6.904680 +v -2.432068 2.178153 6.919311 +v -2.746050 2.178380 6.862398 +v -2.890578 2.178657 6.793664 +v -3.021130 2.179032 6.700564 +v -3.133739 2.179495 6.585917 +v -3.224977 2.180032 6.453202 +v -3.292066 2.180625 6.306451 +v -3.332960 2.181258 6.150124 +v -3.346480 2.181914 5.988147 +v -2.391218 2.234264 -6.936512 +v -2.551171 2.234207 -6.922824 +v -2.705530 2.234038 -6.881451 +v -2.850461 2.233761 -6.813571 +v -2.981560 2.233386 -6.721242 +v -3.094843 2.232923 -6.607262 +v -3.186862 2.232387 -6.475087 +v -3.254815 2.231793 -6.328734 +v -3.296630 2.231161 -6.172650 +v -3.311105 2.230505 -6.010756 +v 3.346488 2.230500 -5.991128 +v 3.332968 2.231156 -6.153105 +v 3.292074 2.231789 -6.309433 +v 3.224986 2.232382 -6.456183 +v 3.133747 2.232919 -6.588899 +v 3.021138 2.233382 -6.703545 +v 2.890586 2.233757 -6.796645 +v 2.746058 2.234034 -6.865379 +v 2.591945 2.234203 -6.907661 +v 2.432076 2.234261 -6.922292 +v 2.391226 2.178149 6.933531 +v 2.551179 2.178207 6.919843 +v 2.705538 2.178376 6.878470 +v 2.850469 2.178653 6.810590 +v 2.981568 2.179028 6.718261 +v 3.094851 2.179491 6.604280 +v 3.186870 2.180027 6.472106 +v 3.254823 2.180620 6.325753 +v 3.296638 2.181253 6.169669 +v 3.311113 2.181909 6.007775 +v -1.710003 2.233658 -6.784842 +v 1.631541 2.233655 -6.774990 +v -2.565110 2.197308 6.757190 +v -2.425014 2.197258 6.770012 +v -2.693708 2.197450 6.721908 +v -2.814406 2.197681 6.664508 +v -2.923553 2.197995 6.586672 +v -3.017812 2.198382 6.490707 +v -3.094275 2.198832 6.379484 +v -3.150559 2.199330 6.256368 +v -3.184893 2.199861 6.125115 +v -3.196800 2.200438 5.982474 +v -2.385047 2.252157 -6.786489 +v -2.525216 2.252107 -6.774494 +v -2.654019 2.251966 -6.739971 +v -2.775054 2.251735 -6.683283 +v -2.884658 2.251421 -6.606093 +v -2.979481 2.251034 -6.510685 +v -3.056599 2.250584 -6.399915 +v -3.113608 2.250086 -6.277133 +v -3.148715 2.249555 -6.146085 +v -3.161463 2.248978 -6.003516 +v 3.196806 2.248973 -5.984771 +v 3.184899 2.249551 -6.127412 +v 3.150565 2.250082 -6.258665 +v 3.094281 2.250580 -6.381781 +v 3.017818 2.251029 -6.493004 +v 2.923558 2.251417 -6.588969 +v 2.814412 2.251731 -6.666804 +v 2.693714 2.251962 -6.724205 +v 2.565116 2.252103 -6.759487 +v 2.425020 2.252154 -6.772308 +v 2.385053 2.197254 6.784193 +v 2.525222 2.197305 6.772197 +v 2.654025 2.197446 6.737674 +v 2.775060 2.197677 6.680986 +v 2.884664 2.197991 6.603796 +v 2.979487 2.198378 6.508389 +v 3.056605 2.198828 6.397618 +v 3.113614 2.199325 6.274836 +v 3.148721 2.199857 6.143788 +v 3.161469 2.200434 6.001220 +v -1.710004 2.252157 -6.784499 +v 1.631540 2.252154 -6.774648 +v 1.600640 2.252124 -6.767280 +v 1.569746 2.252024 -6.742565 +v 1.541323 2.251853 -6.700549 +v 1.536379 2.251613 -6.641232 +v 1.535144 2.251333 -6.572027 +v 1.526493 2.251168 -6.531248 +v 1.504250 2.250952 -6.478108 +v 1.469647 2.250726 -6.422499 +v 1.422688 2.250561 -6.381718 +v 1.347306 2.250380 -6.337232 +v 1.306526 2.250344 -6.328580 +v -1.319493 2.250295 -6.323631 +v -1.408468 2.250459 -6.364413 +v -1.467786 2.250654 -6.412608 +v -1.515980 2.250913 -6.476867 +v -1.539460 2.251148 -6.534947 +v -1.545639 2.251383 -6.593029 +v -1.546814 2.251653 -6.659761 +v -1.550030 2.251823 -6.699194 +v -1.575032 2.251928 -6.731552 +v -1.603721 2.252033 -6.753681 +v -1.655623 2.252133 -6.778395 +v -1.710004 2.233251 -6.784976 +v 1.631541 2.233249 -6.775125 +v 1.600640 2.234620 -6.767432 +v 1.569746 2.234519 -6.742717 +v 1.541323 2.234349 -6.700701 +v 1.536380 2.234108 -6.641385 +v 1.535144 2.233828 -6.572179 +v 1.526494 2.233663 -6.531400 +v 1.504250 2.233448 -6.478261 +v 1.469648 2.233222 -6.422651 +v 1.422689 2.233056 -6.381870 +v 1.347307 2.232875 -6.337384 +v 1.306526 2.232840 -6.328732 +v -1.319492 2.232790 -6.323783 +v -1.408468 2.232955 -6.364565 +v -1.467785 2.233149 -6.412760 +v -1.515980 2.233409 -6.477019 +v -1.539460 2.233644 -6.535100 +v -1.545638 2.233879 -6.593181 +v -1.546814 2.234149 -6.659914 +v -1.550030 2.234319 -6.699346 +v -1.575032 2.234424 -6.731704 +v -1.603720 2.234529 -6.753833 +v -1.655622 2.234628 -6.778547 +v -2.439356 2.188857 6.948582 +v -2.602334 2.189145 6.933911 +v -2.760374 2.189664 6.890987 +v -2.908592 2.190266 6.820985 +v -3.042416 2.190845 6.725954 +v -3.157724 2.191335 6.608739 +v -3.250984 2.191701 6.472893 +v -3.319366 2.191949 6.322570 +v -3.360847 2.192142 6.162407 +v -3.374307 2.192438 5.997411 +v -3.338877 2.241104 -6.020098 +v 2.439364 2.245201 -6.951475 +v 3.338885 2.192433 6.017203 +v 2.398341 2.188853 6.962844 +v -2.398333 2.245205 -6.965737 +v -2.561395 2.245378 -6.952026 +v -2.719686 2.245554 -6.910032 +v -2.868315 2.245592 -6.840903 +v -3.002696 2.245405 -6.746661 +v -3.118694 2.244948 -6.630127 +v -3.212753 2.244216 -6.494835 +v -3.282019 2.243248 -6.344921 +v -3.324444 2.242145 -6.185009 +v 3.374315 2.241100 -6.000307 +v 3.360855 2.242140 -6.165300 +v 3.319374 2.243243 -6.325459 +v 3.250993 2.244211 -6.475779 +v 3.157732 2.244943 -6.611623 +v 3.042424 2.245400 -6.728839 +v 2.908601 2.245588 -6.823871 +v 2.760382 2.245550 -6.893876 +v 2.602342 2.245374 -6.936802 +v 2.561403 2.189141 6.949134 +v 2.719694 2.189660 6.907143 +v 2.868323 2.190261 6.838017 +v 3.002704 2.190841 6.743776 +v 3.118702 2.191330 6.627244 +v 3.212761 2.191696 6.491950 +v 3.282027 2.191944 6.342032 +v 3.324452 2.192137 6.182117 +v -3.474077 2.467760 -3.434779 +v -3.474530 2.470029 -3.457825 +v -3.475151 2.704016 -3.434778 +v -3.478678 2.701747 -1.927110 +v -3.480525 2.470029 -1.927110 +v -3.480330 2.695024 -1.904950 +v -3.482220 2.476752 -1.904950 +v -3.482982 2.684108 -1.884527 +v -3.484912 2.487668 -1.884527 +v -3.485763 2.669417 -1.866626 +v -3.485001 2.675751 -1.874344 +v -3.486724 2.502359 -1.866626 +v -3.484972 2.487916 -1.884224 +v -3.487896 2.651517 -1.851935 +v -3.488872 2.520259 -1.851935 +v -3.492430 2.562842 -1.834297 +v -3.490315 2.631094 -1.841019 +v -3.492419 2.550141 -1.838149 +v -3.491301 2.540682 -1.841019 +v -3.492437 2.585888 -1.832027 +v -3.492430 2.608934 -1.834297 +v -3.492427 2.613183 -1.835585 +v -3.475648 2.701747 -3.457824 +v -3.477212 2.695024 -3.479985 +v -3.476051 2.476752 -3.479985 +v -3.479784 2.684108 -3.500407 +v -3.478582 2.487668 -3.500407 +v -3.480201 2.682345 -3.502557 +v -3.481677 2.669417 -3.518308 +v -3.481071 2.502359 -3.518308 +v -3.480183 2.494495 -3.508728 +v -3.483118 2.520260 -3.532999 +v -3.483737 2.651517 -3.532999 +v -3.486102 2.631094 -3.543915 +v -3.485473 2.540682 -3.543915 +v -3.487380 2.620115 -3.547245 +v -3.487370 2.608934 -3.550637 +v -3.487370 2.562843 -3.550637 +v -3.487376 2.557069 -3.548886 +v -3.487364 2.585888 -3.552907 +v -3.317164 2.585888 -3.552907 +v -3.317164 2.608934 -3.550637 +v -3.317164 2.631094 -3.543915 +v -3.317164 2.651517 -3.532999 +v -3.317164 2.669417 -3.518308 +v -3.317164 2.684108 -3.500407 +v -3.317164 2.695024 -3.479985 +v -3.317163 2.701747 -3.457824 +v -3.317163 2.704016 -3.434779 +v -3.317164 2.701747 -1.927110 +v -3.317163 2.695024 -1.904950 +v -3.317164 2.684108 -1.884527 +v -3.317164 2.669417 -1.866626 +v -3.317163 2.651517 -1.851935 +v -3.317163 2.631094 -1.841019 +v -3.317163 2.608934 -1.834297 +v -3.317164 2.585888 -1.832027 +v -3.317164 2.562842 -1.834297 +v -3.317164 2.540682 -1.841019 +v -3.317164 2.520259 -1.851935 +v -3.317164 2.502358 -1.866626 +v -3.317164 2.487668 -1.884527 +v -3.317164 2.476752 -1.904950 +v -3.317164 2.470029 -1.927110 +v -3.317164 2.467760 -3.434779 +v -3.317164 2.470029 -3.457825 +v -3.317164 2.476752 -3.479985 +v -3.317163 2.487668 -3.500407 +v -3.317164 2.502359 -3.518308 +v -3.317164 2.520260 -3.532999 +v -3.317164 2.540682 -3.543915 +v -3.317164 2.562842 -3.550637 +v -3.532599 2.585888 -3.547554 +v -3.581663 2.585889 -3.498252 +v -3.540274 2.585888 -3.546947 +v -3.547761 2.585888 -3.545141 +v -3.554874 2.585888 -3.542180 +v -3.561438 2.585888 -3.538138 +v -3.567293 2.585888 -3.533113 +v -3.572293 2.585889 -3.527231 +v -3.576315 2.585889 -3.520634 +v -3.579261 2.585889 -3.513487 +v -3.581058 2.585889 -3.505964 +v -3.581665 2.598271 -3.497032 +v -3.532599 2.607889 -3.545387 +v -3.581061 2.599775 -3.504597 +v -3.579263 2.601243 -3.511975 +v -3.576317 2.602638 -3.518985 +v -3.572294 2.603925 -3.525454 +v -3.567294 2.605072 -3.531224 +v -3.561439 2.606052 -3.536152 +v -3.554874 2.606841 -3.540116 +v -3.547761 2.607419 -3.543020 +v -3.540275 2.607771 -3.544791 +v -3.581662 2.610178 -3.493420 +v -3.532599 2.629045 -3.538969 +v -3.581058 2.613129 -3.500546 +v -3.579261 2.616008 -3.507495 +v -3.576315 2.618744 -3.514099 +v -3.572293 2.621268 -3.520193 +v -3.567293 2.623519 -3.525628 +v -3.561439 2.625442 -3.530270 +v -3.554874 2.626989 -3.534004 +v -3.547761 2.628122 -3.536740 +v -3.540275 2.628813 -3.538408 +v -3.581662 2.621152 -3.487554 +v -3.532599 2.648543 -3.528547 +v -3.581059 2.625437 -3.493967 +v -3.579261 2.629616 -3.500222 +v -3.576315 2.633587 -3.506165 +v -3.572292 2.637252 -3.511649 +v -3.567292 2.640520 -3.516541 +v -3.561438 2.643312 -3.520719 +v -3.554874 2.645557 -3.524080 +v -3.547761 2.647202 -3.526541 +v -3.540275 2.648205 -3.528043 +v -3.581666 2.630771 -3.479661 +v -3.532599 2.665632 -3.514523 +v -3.581061 2.636224 -3.485115 +v -3.579264 2.641544 -3.490434 +v -3.576318 2.646598 -3.495488 +v -3.572294 2.651262 -3.500152 +v -3.567294 2.655421 -3.504312 +v -3.561439 2.658974 -3.507864 +v -3.554874 2.661832 -3.510723 +v -3.547761 2.663926 -3.512816 +v -3.540275 2.665203 -3.514093 +v -3.581663 2.638664 -3.470042 +v -3.532599 2.679657 -3.497433 +v -3.581059 2.645077 -3.474327 +v -3.579262 2.651332 -3.478507 +v -3.576316 2.657275 -3.482478 +v -3.572293 2.662759 -3.486143 +v -3.567293 2.667651 -3.489411 +v -3.561439 2.671828 -3.492202 +v -3.554874 2.675189 -3.494447 +v -3.547761 2.677651 -3.496093 +v -3.540275 2.679152 -3.497096 +v -3.581662 2.644530 -3.459069 +v -3.532599 2.690078 -3.477936 +v -3.581059 2.651655 -3.462020 +v -3.579261 2.658605 -3.464899 +v -3.576315 2.665208 -3.467634 +v -3.572293 2.671303 -3.470158 +v -3.567293 2.676738 -3.472410 +v -3.561438 2.681380 -3.474332 +v -3.554874 2.685114 -3.475879 +v -3.547761 2.687849 -3.477012 +v -3.540275 2.689518 -3.477703 +v -3.581665 2.648142 -3.447162 +v -3.532599 2.696496 -3.456780 +v -3.581060 2.655706 -3.448666 +v -3.579263 2.663084 -3.450134 +v -3.576317 2.670094 -3.451528 +v -3.572294 2.676564 -3.452815 +v -3.567293 2.682333 -3.453963 +v -3.561439 2.687261 -3.454943 +v -3.554874 2.691226 -3.455731 +v -3.547761 2.694129 -3.456309 +v -3.540274 2.695901 -3.456661 +v -3.581664 2.649621 -3.432147 +v -3.532599 2.698689 -3.434521 +v -3.581059 2.657297 -3.432518 +v -3.579262 2.664783 -3.432881 +v -3.576316 2.671897 -3.433225 +v -3.572293 2.678462 -3.433542 +v -3.567293 2.684317 -3.433825 +v -3.561439 2.689317 -3.434067 +v -3.554874 2.693340 -3.434262 +v -3.547761 2.696287 -3.434404 +v -3.540275 2.698084 -3.434491 +v -3.581663 2.647367 -1.935218 +v -3.532599 2.696420 -1.927904 +v -3.581059 2.655041 -1.934074 +v -3.579262 2.662525 -1.932958 +v -3.576316 2.669637 -1.931898 +v -3.572293 2.676200 -1.930919 +v -3.567293 2.682053 -1.930046 +v -3.561439 2.687052 -1.929301 +v -3.554874 2.691074 -1.928701 +v -3.547761 2.694019 -1.928262 +v -3.540275 2.695816 -1.927994 +v -3.581665 2.644530 -1.925865 +v -3.532599 2.690078 -1.906999 +v -3.581061 2.651655 -1.922914 +v -3.579263 2.658605 -1.920035 +v -3.576317 2.665209 -1.917300 +v -3.572293 2.671303 -1.914776 +v -3.567293 2.676738 -1.912524 +v -3.561439 2.681380 -1.910602 +v -3.554874 2.685114 -1.909055 +v -3.547761 2.687849 -1.907922 +v -3.540275 2.689518 -1.907231 +v -3.581665 2.638664 -1.914891 +v -3.532599 2.679657 -1.887501 +v -3.581060 2.645077 -1.910607 +v -3.579262 2.651332 -1.906427 +v -3.576316 2.657274 -1.902456 +v -3.572294 2.662759 -1.898792 +v -3.567293 2.667650 -1.895523 +v -3.561439 2.671828 -1.892732 +v -3.554874 2.675189 -1.890486 +v -3.547761 2.677651 -1.888842 +v -3.540274 2.679152 -1.887838 +v -3.581661 2.630771 -1.905273 +v -3.532599 2.665632 -1.870412 +v -3.581058 2.636224 -1.899819 +v -3.579261 2.641543 -1.894500 +v -3.576315 2.646597 -1.889446 +v -3.572292 2.651262 -1.884782 +v -3.567292 2.655421 -1.880622 +v -3.561438 2.658974 -1.877069 +v -3.554874 2.661832 -1.874211 +v -3.547761 2.663926 -1.872118 +v -3.540275 2.665203 -1.870841 +v -3.581665 2.621152 -1.897380 +v -3.532599 2.648543 -1.856387 +v -3.581060 2.625437 -1.890967 +v -3.579263 2.629616 -1.884712 +v -3.576316 2.633587 -1.878769 +v -3.572293 2.637252 -1.873284 +v -3.567293 2.640520 -1.868393 +v -3.561439 2.643312 -1.864215 +v -3.554874 2.645557 -1.860855 +v -3.547761 2.647202 -1.858393 +v -3.540274 2.648205 -1.856891 +v -3.581665 2.610178 -1.891514 +v -3.532599 2.629045 -1.845965 +v -3.581060 2.613130 -1.884388 +v -3.579263 2.616008 -1.877438 +v -3.576317 2.618744 -1.870835 +v -3.572294 2.621268 -1.864741 +v -3.567293 2.623519 -1.859306 +v -3.561439 2.625442 -1.854664 +v -3.554874 2.626989 -1.850930 +v -3.547761 2.628122 -1.848194 +v -3.540274 2.628813 -1.846526 +v -3.581662 2.598271 -1.887902 +v -3.532599 2.607889 -1.839548 +v -3.581058 2.599776 -1.880338 +v -3.579261 2.601243 -1.872960 +v -3.576315 2.602638 -1.865949 +v -3.572293 2.603925 -1.859480 +v -3.567293 2.605072 -1.853710 +v -3.561438 2.606053 -1.848782 +v -3.554874 2.606841 -1.844818 +v -3.547761 2.607419 -1.841914 +v -3.540275 2.607771 -1.840143 +v -3.581665 2.585888 -1.886682 +v -3.532599 2.585888 -1.837381 +v -3.581060 2.585888 -1.878970 +v -3.579263 2.585888 -1.871447 +v -3.576316 2.585888 -1.864300 +v -3.572293 2.585888 -1.857703 +v -3.567293 2.585888 -1.851821 +v -3.561439 2.585888 -1.846796 +v -3.554874 2.585888 -1.842754 +v -3.547761 2.585888 -1.839794 +v -3.540274 2.585888 -1.837988 +v -3.581662 2.573505 -1.887902 +v -3.532599 2.563887 -1.839548 +v -3.581059 2.572001 -1.880338 +v -3.579261 2.570533 -1.872960 +v -3.576315 2.569139 -1.865949 +v -3.572292 2.567852 -1.859480 +v -3.567293 2.566704 -1.853710 +v -3.561438 2.565724 -1.848783 +v -3.554874 2.564935 -1.844818 +v -3.547761 2.564358 -1.841914 +v -3.540275 2.564005 -1.840143 +v -3.581665 2.561598 -1.891514 +v -3.532599 2.542731 -1.845965 +v -3.581061 2.558646 -1.884388 +v -3.579263 2.555768 -1.877439 +v -3.576317 2.553033 -1.870835 +v -3.572294 2.550508 -1.864741 +v -3.567293 2.548257 -1.859306 +v -3.561439 2.546334 -1.854664 +v -3.554874 2.544787 -1.850930 +v -3.547761 2.543654 -1.848195 +v -3.540275 2.542963 -1.846526 +v -3.581665 2.550624 -1.897380 +v -3.532599 2.523234 -1.856387 +v -3.581060 2.546339 -1.890967 +v -3.579263 2.542160 -1.884712 +v -3.576317 2.538189 -1.878769 +v -3.572293 2.534524 -1.873284 +v -3.567293 2.531256 -1.868393 +v -3.561438 2.528465 -1.864216 +v -3.554874 2.526219 -1.860855 +v -3.547761 2.524574 -1.858393 +v -3.540274 2.523571 -1.856891 +v -3.581661 2.541006 -1.905273 +v -3.532599 2.506144 -1.870412 +v -3.581058 2.535553 -1.899819 +v -3.579261 2.530233 -1.894500 +v -3.576315 2.525179 -1.889446 +v -3.572292 2.520515 -1.884782 +v -3.567292 2.516355 -1.880622 +v -3.561438 2.512802 -1.877070 +v -3.554874 2.509944 -1.874211 +v -3.547761 2.507850 -1.872118 +v -3.540275 2.506573 -1.870841 +v -3.581664 2.533112 -1.914892 +v -3.532599 2.492119 -1.887501 +v -3.581060 2.526699 -1.910607 +v -3.579263 2.520445 -1.906428 +v -3.576317 2.514502 -1.902457 +v -3.572294 2.509017 -1.898792 +v -3.567293 2.504126 -1.895524 +v -3.561439 2.499948 -1.892732 +v -3.554874 2.496587 -1.890487 +v -3.547761 2.494125 -1.888842 +v -3.540275 2.492624 -1.887839 +v -3.581665 2.527246 -1.925865 +v -3.532599 2.481698 -1.906999 +v -3.581061 2.520121 -1.922914 +v -3.579263 2.513171 -1.920035 +v -3.576317 2.506568 -1.917300 +v -3.572294 2.500473 -1.914776 +v -3.567293 2.495039 -1.912525 +v -3.561439 2.490397 -1.910602 +v -3.554874 2.486662 -1.909055 +v -3.547761 2.483927 -1.907922 +v -3.540275 2.482259 -1.907231 +v -3.581663 2.524409 -1.935218 +v -3.532599 2.475356 -1.927904 +v -3.581059 2.516736 -1.934074 +v -3.579262 2.509251 -1.932958 +v -3.576315 2.502140 -1.931898 +v -3.572293 2.495577 -1.930919 +v -3.567293 2.489723 -1.930046 +v -3.561438 2.484725 -1.929301 +v -3.554874 2.480703 -1.928701 +v -3.547761 2.477757 -1.928262 +v -3.540275 2.475960 -1.927994 +v -3.581664 2.522156 -3.432147 +v -3.532600 2.473088 -3.434521 +v -3.581060 2.514480 -3.432519 +v -3.579262 2.506993 -3.432881 +v -3.576316 2.499879 -3.433225 +v -3.572294 2.493315 -3.433542 +v -3.567293 2.487460 -3.433826 +v -3.561439 2.482459 -3.434067 +v -3.554874 2.478436 -3.434262 +v -3.547761 2.475489 -3.434405 +v -3.540275 2.473692 -3.434492 +v -3.581666 2.523634 -3.447162 +v -3.532599 2.475280 -3.456780 +v -3.581061 2.516070 -3.448667 +v -3.579263 2.508692 -3.450134 +v -3.576317 2.501682 -3.451529 +v -3.572294 2.495213 -3.452815 +v -3.567294 2.489443 -3.453963 +v -3.561439 2.484515 -3.454943 +v -3.554874 2.480551 -3.455732 +v -3.547761 2.477647 -3.456309 +v -3.540275 2.475876 -3.456662 +v -3.581660 2.527246 -3.459069 +v -3.532599 2.481698 -3.477936 +v -3.581056 2.520121 -3.462020 +v -3.579260 2.513171 -3.464899 +v -3.576314 2.506568 -3.467635 +v -3.572292 2.500473 -3.470159 +v -3.567292 2.495039 -3.472410 +v -3.561438 2.490397 -3.474333 +v -3.554874 2.486662 -3.475879 +v -3.547761 2.483927 -3.477012 +v -3.540275 2.482259 -3.477703 +v -3.581668 2.533112 -3.470042 +v -3.532599 2.492119 -3.497433 +v -3.581064 2.526700 -3.474327 +v -3.579266 2.520445 -3.478507 +v -3.576319 2.514502 -3.482478 +v -3.572295 2.509017 -3.486142 +v -3.567295 2.504126 -3.489411 +v -3.561440 2.499948 -3.492202 +v -3.554875 2.496587 -3.494448 +v -3.547762 2.494126 -3.496093 +v -3.540275 2.492624 -3.497096 +v -3.581661 2.541006 -3.479661 +v -3.532599 2.506144 -3.514523 +v -3.581057 2.535552 -3.485115 +v -3.579260 2.530233 -3.490433 +v -3.576315 2.525179 -3.495487 +v -3.572292 2.520515 -3.500152 +v -3.567293 2.516355 -3.504312 +v -3.561438 2.512802 -3.507864 +v -3.554874 2.509944 -3.510722 +v -3.547761 2.507851 -3.512816 +v -3.540275 2.506574 -3.514093 +v -3.581665 2.550625 -3.487555 +v -3.532599 2.523234 -3.528548 +v -3.581061 2.546340 -3.493967 +v -3.579263 2.542161 -3.500222 +v -3.576317 2.538190 -3.506165 +v -3.572294 2.534525 -3.511649 +v -3.567293 2.531257 -3.516541 +v -3.561439 2.528465 -3.520719 +v -3.554874 2.526219 -3.524080 +v -3.547761 2.524575 -3.526541 +v -3.540275 2.523571 -3.528043 +v -3.581665 2.561598 -3.493420 +v -3.532599 2.542731 -3.538969 +v -3.581061 2.558646 -3.500546 +v -3.579263 2.555768 -3.507495 +v -3.576317 2.553033 -3.514099 +v -3.572294 2.550508 -3.520193 +v -3.567294 2.548257 -3.525628 +v -3.561439 2.546335 -3.530270 +v -3.554874 2.544788 -3.534005 +v -3.547761 2.543655 -3.536740 +v -3.540275 2.542964 -3.538408 +v -3.581663 2.573505 -3.497032 +v -3.532599 2.563887 -3.545386 +v -3.581059 2.572000 -3.504597 +v -3.579262 2.570533 -3.511974 +v -3.576316 2.569138 -3.518984 +v -3.572293 2.567852 -3.525454 +v -3.567293 2.566704 -3.531224 +v -3.561439 2.565724 -3.536152 +v -3.554874 2.564935 -3.540116 +v -3.547761 2.564358 -3.543020 +v -3.540275 2.564005 -3.544791 +v -0.371236 2.661161 7.103786 +v -0.351851 2.677070 7.099572 +v -0.387145 2.641776 7.108942 +v -0.398967 2.619660 7.112158 +v -0.388633 2.638992 7.109685 +v -0.406246 2.595662 7.115242 +v -0.408704 2.570705 7.117650 +v -0.408102 2.576822 7.117676 +v -0.406246 2.545749 7.117556 +v -0.398967 2.521751 7.117480 +v -0.280781 2.442782 7.106706 +v -0.387145 2.499635 7.115499 +v -0.394849 2.514047 7.117460 +v -0.305738 2.445240 7.107314 +v -0.371236 2.480250 7.112876 +v -0.329735 2.452520 7.109181 +v -0.327838 2.451944 7.109107 +v -0.351851 2.464341 7.110743 +v -0.329735 2.688891 7.096465 +v -0.305737 2.696171 7.094581 +v 0.352533 2.464341 7.112819 +v 0.330417 2.452520 7.111127 +v 0.328518 2.451944 7.111042 +v 0.306419 2.445240 7.109118 +v -0.280781 2.698629 7.093994 +v 0.387827 2.499635 7.117784 +v 0.371918 2.480250 7.115067 +v 0.409386 2.570705 7.120061 +v 0.408784 2.576822 7.120084 +v 0.406928 2.545749 7.119953 +v 0.395531 2.514046 7.119791 +v 0.399649 2.521751 7.119834 +v 0.306420 2.696171 7.096385 +v 0.399649 2.619659 7.114511 +v 0.406928 2.595662 7.117640 +v 0.371918 2.661161 7.105977 +v 0.330417 2.688891 7.098410 +v 0.389315 2.638992 7.111979 +v 0.387827 2.641776 7.111227 +v 0.352533 2.677070 7.101648 +v 0.420457 2.576822 7.120119 +v 0.405350 2.638992 7.112026 +v 0.348897 2.451944 7.111102 +v 0.352077 2.699291 7.095682 +v 0.410915 2.514046 7.119836 +v -0.244498 2.756492 7.069926 +v 0.268352 2.756491 7.071438 +v -0.357404 2.451944 7.109020 +v -0.422604 2.576822 7.117633 +v -0.301746 2.391778 7.092509 +v 0.243703 2.391778 7.094117 +v -0.405110 2.638992 7.109636 +v -0.343092 2.699291 7.093633 +v -0.413062 2.514047 7.117407 +v -2.010479 2.511666 7.112369 +v -2.080421 2.558400 7.112671 +v -2.077036 2.547242 7.112636 +v -2.022083 2.510523 7.112178 +v -2.071540 2.536958 7.112610 +v -2.033687 2.511666 7.112301 +v -2.064143 2.527945 7.112596 +v -2.041540 2.514048 7.112606 +v -2.044846 2.515051 7.112600 +v -2.055129 2.520548 7.112592 +v -2.215066 2.619461 7.106828 +v -2.225349 2.624958 7.106087 +v -2.206052 2.612064 7.107813 +v -2.236508 2.628343 7.105616 +v -2.198655 2.603050 7.109002 +v -2.248112 2.629486 7.105433 +v -2.193158 2.592767 7.110349 +v -2.259716 2.628343 7.105547 +v -2.189774 2.581609 7.111804 +v -2.270875 2.624958 7.105953 +v -2.188630 2.570004 7.112399 +v -2.189302 2.576823 7.112425 +v -2.281157 2.619461 7.106634 +v -2.189773 2.558400 7.112349 +v -2.290171 2.612064 7.107565 +v -2.193158 2.547242 7.112293 +v -2.297569 2.603050 7.108710 +v -2.198655 2.536958 7.112236 +v -2.303065 2.592767 7.110025 +v -2.206052 2.527945 7.112177 +v -2.306450 2.581609 7.111459 +v -2.215066 2.520548 7.112121 +v -2.306921 2.576823 7.112078 +v -2.307593 2.570004 7.112048 +v -2.225349 2.515051 7.112068 +v -2.306450 2.558400 7.112004 +v -2.236508 2.511666 7.111703 +v -2.228655 2.514048 7.112054 +v -2.303065 2.547242 7.111969 +v -2.248112 2.510523 7.111511 +v -2.297569 2.536958 7.111944 +v -2.259716 2.511666 7.111635 +v -2.290171 2.527945 7.111929 +v -2.267569 2.514048 7.111939 +v -2.270874 2.515051 7.111934 +v -2.281158 2.520548 7.111926 +v -1.980024 2.612064 7.108480 +v -2.010479 2.628343 7.106282 +v -1.999321 2.624958 7.106753 +v -1.972626 2.603050 7.109668 +v -2.022083 2.629486 7.106100 +v -1.967130 2.592767 7.111015 +v -2.033687 2.628343 7.106214 +v -1.963745 2.581609 7.112470 +v -2.044846 2.624958 7.106619 +v -1.962602 2.570004 7.113065 +v -1.963274 2.576823 7.113091 +v -2.055129 2.619461 7.107300 +v -1.963745 2.558400 7.113015 +v -2.064143 2.612064 7.108231 +v -1.967130 2.547242 7.112959 +v -2.071540 2.603050 7.109376 +v -1.972626 2.536958 7.112902 +v -2.077037 2.592767 7.110692 +v -1.980024 2.527945 7.112844 +v -2.080422 2.581609 7.112126 +v -1.989037 2.520548 7.112787 +v -2.081564 2.570004 7.112715 +v -2.080893 2.576823 7.112744 +v -1.999321 2.515051 7.112734 +v -2.002627 2.514048 7.112720 +v -1.737716 2.558400 7.113681 +v -1.829100 2.619461 7.107966 +v -1.838114 2.612064 7.108898 +v -1.741101 2.547242 7.113626 +v -1.845511 2.603050 7.110043 +v -1.746598 2.536958 7.113568 +v -1.851008 2.592767 7.111358 +v -1.753995 2.527945 7.113510 +v -1.854393 2.581609 7.112792 +v -1.763009 2.520548 7.113453 +v -1.855536 2.570004 7.113381 +v -1.854864 2.576823 7.113410 +v -1.773292 2.515051 7.113401 +v -1.854393 2.558400 7.113337 +v -1.784451 2.511666 7.113036 +v -1.776599 2.514048 7.113387 +v -1.851008 2.547242 7.113302 +v -1.796055 2.510523 7.112844 +v -1.845511 2.536958 7.113276 +v -1.807659 2.511666 7.112967 +v -1.838114 2.527945 7.113262 +v -1.818817 2.515051 7.113266 +v -1.815510 2.514048 7.113272 +v -1.829101 2.520548 7.113259 +v -1.989037 2.619461 7.107495 +v -1.639500 2.570004 7.114018 +v -1.638357 2.558400 7.113974 +v -1.568415 2.511666 7.113673 +v -1.560563 2.514048 7.114024 +v -1.634972 2.547242 7.113939 +v -1.580019 2.510523 7.113481 +v -1.629476 2.536958 7.113914 +v -1.591623 2.511666 7.113605 +v -1.622078 2.527945 7.113898 +v -1.599474 2.514048 7.113909 +v -1.602781 2.515051 7.113904 +v -1.613065 2.520548 7.113895 +v -1.773292 2.624958 7.107420 +v -1.763008 2.619461 7.108161 +v -1.753995 2.612064 7.109146 +v -1.784451 2.628343 7.106949 +v -1.746598 2.603050 7.110334 +v -1.796055 2.629486 7.106767 +v -1.741101 2.592767 7.111682 +v -1.807659 2.628343 7.106880 +v -1.737716 2.581609 7.113136 +v -1.818817 2.624958 7.107285 +v -1.736573 2.570004 7.113732 +v -1.737245 2.576823 7.113758 +v -1.557256 2.624958 7.108056 +v -1.546973 2.619461 7.108798 +v -1.537959 2.612064 7.109783 +v -1.568415 2.628343 7.107585 +v -1.530562 2.603050 7.110971 +v -1.580019 2.629486 7.107404 +v -1.525065 2.592767 7.112319 +v -1.591623 2.628343 7.107517 +v -1.521680 2.581609 7.113773 +v -1.602781 2.624958 7.107923 +v -1.520538 2.570004 7.114369 +v -1.521209 2.576823 7.114394 +v -1.613065 2.619461 7.108603 +v -1.521680 2.558400 7.114318 +v -1.622078 2.612064 7.109535 +v -1.525065 2.547242 7.114263 +v -1.629475 2.603050 7.110680 +v -1.530562 2.536958 7.114205 +v -1.634972 2.592767 7.111995 +v -1.537959 2.527945 7.114147 +v -1.638357 2.581609 7.113429 +v -1.546973 2.520547 7.114090 +v -1.638828 2.576823 7.114048 +v -1.557256 2.515051 7.114038 +v -1.294509 2.570004 7.115035 +v -1.295180 2.576823 7.115061 +v -1.387036 2.619461 7.109270 +v -1.376753 2.624958 7.108588 +v -1.295652 2.558400 7.114985 +v -1.396050 2.612064 7.110201 +v -1.299037 2.547242 7.114929 +v -1.403447 2.603050 7.111346 +v -1.304533 2.536958 7.114872 +v -1.408944 2.592767 7.112661 +v -1.311931 2.527945 7.114813 +v -1.412328 2.581609 7.114096 +v -1.320944 2.520547 7.114757 +v -1.412800 2.576823 7.114714 +v -1.413471 2.570004 7.114685 +v -1.331228 2.515051 7.114704 +v -1.412328 2.558400 7.114641 +v -1.342386 2.511666 7.114339 +v -1.334535 2.514048 7.114690 +v -1.408944 2.547242 7.114605 +v -1.353990 2.510523 7.114148 +v -1.403447 2.536958 7.114580 +v -1.365594 2.511666 7.114271 +v -1.396050 2.527945 7.114565 +v -1.376753 2.515051 7.114570 +v -1.373445 2.514048 7.114575 +v -1.387036 2.520548 7.114562 +v -1.186771 2.576823 7.115380 +v -1.186300 2.581609 7.114762 +v -1.187443 2.570004 7.115351 +v -1.105199 2.515051 7.115370 +v -1.186300 2.558400 7.115306 +v -1.116358 2.511666 7.115005 +v -1.108507 2.514047 7.115356 +v -1.182915 2.547242 7.115272 +v -1.127962 2.510523 7.114814 +v -1.177418 2.536958 7.115246 +v -1.139566 2.511666 7.114937 +v -1.170021 2.527945 7.115232 +v -1.150724 2.515051 7.115236 +v -1.147416 2.514047 7.115242 +v -1.161008 2.520547 7.115228 +v -1.320944 2.619461 7.109465 +v -1.331228 2.624958 7.108723 +v -1.311931 2.612064 7.110449 +v -1.342386 2.628343 7.108252 +v -1.304533 2.603050 7.111638 +v -1.353990 2.629486 7.108070 +v -1.299037 2.592767 7.112986 +v -1.365595 2.628343 7.108183 +v -1.295652 2.581609 7.114439 +v -1.094916 2.619461 7.110131 +v -1.105199 2.624958 7.109389 +v -1.085902 2.612064 7.111116 +v -1.116357 2.628343 7.108918 +v -1.078505 2.603050 7.112304 +v -1.127962 2.629486 7.108737 +v -1.073008 2.592767 7.113651 +v -1.139566 2.628343 7.108850 +v -1.069623 2.581609 7.115106 +v -1.150724 2.624958 7.109255 +v -1.068480 2.570004 7.115702 +v -1.069152 2.576823 7.115727 +v -1.161008 2.619461 7.109936 +v -1.069623 2.558400 7.115651 +v -1.170021 2.612064 7.110868 +v -1.073008 2.547242 7.115596 +v -1.177418 2.603050 7.112012 +v -1.078505 2.536958 7.115538 +v -1.182915 2.592767 7.113328 +v -1.085902 2.527945 7.115479 +v -1.094916 2.520547 7.115423 +v 1.149058 2.527944 7.122068 +v 1.052045 2.592767 7.119916 +v 1.048660 2.581608 7.121351 +v 1.140044 2.520547 7.122012 +v 1.047517 2.570004 7.121940 +v 1.048188 2.576821 7.121970 +v 1.129760 2.515050 7.121959 +v 1.048660 2.558400 7.121896 +v 1.118602 2.511666 7.121595 +v 1.126449 2.514046 7.121945 +v 1.052045 2.547241 7.121860 +v 1.106998 2.510523 7.121403 +v 1.057541 2.536958 7.121835 +v 1.095394 2.511666 7.121526 +v 1.064938 2.527944 7.121820 +v 1.084236 2.515050 7.121825 +v 1.087547 2.514046 7.121831 +v 1.073952 2.520547 7.121818 +v 1.283570 2.536958 7.122502 +v 1.290967 2.527944 7.122487 +v 1.310264 2.515050 7.122491 +v 1.313576 2.514046 7.122497 +v 1.299981 2.520547 7.122483 +v 1.140044 2.619461 7.116720 +v 1.129761 2.624957 7.115978 +v 1.149058 2.612063 7.117705 +v 1.118602 2.628342 7.115508 +v 1.156455 2.603050 7.118893 +v 1.106998 2.629485 7.115325 +v 1.161952 2.592766 7.120241 +v 1.095394 2.628342 7.115438 +v 1.165336 2.581608 7.121695 +v 1.084236 2.624958 7.115844 +v 1.166479 2.570004 7.122291 +v 1.165807 2.576821 7.122316 +v 1.073952 2.619461 7.116525 +v 1.165336 2.558400 7.122240 +v 1.064938 2.612064 7.117456 +v 1.161952 2.547241 7.122185 +v 1.057541 2.603050 7.118601 +v 1.156455 2.536958 7.122127 +v 1.391365 2.581608 7.122361 +v 1.321422 2.628342 7.116105 +v 1.310264 2.624957 7.116510 +v 1.391836 2.576821 7.122983 +v 1.392508 2.570004 7.122957 +v 1.299981 2.619461 7.117191 +v 1.391365 2.558400 7.122906 +v 1.290967 2.612063 7.118123 +v 1.387980 2.547241 7.122851 +v 1.283570 2.603050 7.119267 +v 1.382483 2.536958 7.122793 +v 1.278073 2.592767 7.120583 +v 1.375086 2.527944 7.122735 +v 1.274688 2.581608 7.122017 +v 1.366072 2.520547 7.122679 +v 1.274217 2.576821 7.122636 +v 1.273546 2.570004 7.122606 +v 1.355789 2.515050 7.122625 +v 1.274688 2.558400 7.122562 +v 1.344631 2.511666 7.122261 +v 1.352477 2.514046 7.122612 +v 1.278073 2.547241 7.122527 +v 1.333027 2.510523 7.122069 +v 1.321422 2.511666 7.122193 +v 1.509598 2.603050 7.119934 +v 1.601115 2.527944 7.123401 +v 1.500717 2.581608 7.122683 +v 1.504102 2.592766 7.121249 +v 1.592101 2.520547 7.123345 +v 1.499574 2.570004 7.123272 +v 1.500245 2.576821 7.123302 +v 1.581818 2.515050 7.123292 +v 1.500717 2.558400 7.123229 +v 1.570659 2.511666 7.122928 +v 1.578505 2.514045 7.123278 +v 1.504102 2.547241 7.123193 +v 1.559055 2.510523 7.122736 +v 1.509598 2.536958 7.123168 +v 1.547451 2.511666 7.122859 +v 1.516996 2.527944 7.123153 +v 1.536293 2.515050 7.123158 +v 1.539605 2.514045 7.123164 +v 1.526009 2.520547 7.123150 +v 1.355789 2.624957 7.116644 +v 1.366073 2.619461 7.117386 +v 1.375086 2.612063 7.118371 +v 1.344631 2.628342 7.116174 +v 1.382483 2.603050 7.119559 +v 1.333027 2.629485 7.115992 +v 1.387980 2.592766 7.120907 +v 1.559055 2.629485 7.116658 +v 1.614009 2.592766 7.121573 +v 1.547451 2.628342 7.116771 +v 1.617394 2.581608 7.123027 +v 1.536293 2.624957 7.117177 +v 1.617865 2.576821 7.123650 +v 1.618536 2.570004 7.123624 +v 1.526009 2.619461 7.117858 +v 1.617393 2.558400 7.123573 +v 1.516996 2.612063 7.118789 +v 1.614009 2.547241 7.123518 +v 1.608512 2.536958 7.123459 +v 1.601115 2.612063 7.119037 +v 1.581818 2.624957 7.117311 +v 1.570660 2.628342 7.116840 +v 1.608512 2.603050 7.120225 +v 1.592101 2.619461 7.118052 +v 1.632521 2.576821 7.123693 +v 1.528361 2.638991 7.115336 +v 1.600717 2.638991 7.115550 +v 1.549829 2.451943 7.114643 +v 1.488605 2.576821 7.123268 +v 1.506893 2.514045 7.123067 +v 1.603102 2.514045 7.123351 +v 1.261997 2.576821 7.122600 +v 1.283465 2.514046 7.122408 +v 1.374108 2.514046 7.122676 +v 1.290621 2.638991 7.114635 +v 1.364567 2.638991 7.114854 +v 1.410684 2.576821 7.123038 +v 1.327196 2.451943 7.113986 +v 1.100058 2.451943 7.113317 +v 1.032473 2.576821 7.121923 +v 1.050364 2.514046 7.121721 +v 1.153728 2.514046 7.122026 +v 1.180233 2.576821 7.122359 +v 1.062290 2.638991 7.113963 +v 1.154391 2.638991 7.114234 +v -1.136383 2.451945 7.106723 +v -1.176139 2.514047 7.115157 +v -1.088676 2.514047 7.115415 +v -1.055546 2.576823 7.115767 +v -1.171500 2.638993 7.107377 +v -1.082712 2.638993 7.107638 +v -1.201317 2.576823 7.115337 +v -1.423287 2.638993 7.106635 +v -1.296069 2.638993 7.107009 +v -1.432564 2.576823 7.114655 +v -1.351727 2.451945 7.106088 +v -1.409373 2.514048 7.114470 +v -1.282154 2.576823 7.115099 +v -1.304020 2.514048 7.114780 +v -1.535929 2.514048 7.114096 +v -1.618091 2.638993 7.106060 +v -1.529965 2.638993 7.106320 +v -1.653872 2.576823 7.114003 +v -1.587612 2.451945 7.105393 +v -1.637969 2.514048 7.113795 +v -1.510087 2.576823 7.114427 +v -1.850663 2.514048 7.113168 +v -1.793680 2.451945 7.104785 +v -1.745973 2.514048 7.113477 +v -1.731709 2.576823 7.113774 +v -1.875179 2.576823 7.113351 +v -1.845363 2.638993 7.105390 +v -1.748623 2.638993 7.105675 +v -1.730733 2.573236 7.113762 +v -2.094499 2.576823 7.112704 +v -1.973907 2.514048 7.112805 +v -2.078597 2.514048 7.112496 +v -2.069320 2.638993 7.104730 +v -1.983183 2.638993 7.104984 +v -2.024264 2.451945 7.104105 +v -1.948728 2.576823 7.113134 +v -2.191901 2.514048 7.112163 +v -2.260811 2.451946 7.103408 +v -2.335684 2.576824 7.111993 +v -2.309843 2.514048 7.111814 +v -2.170697 2.576823 7.112480 +v -2.293278 2.638994 7.104070 +v -2.207140 2.638994 7.104323 +v 3.488988 2.701156 -1.617389 +v 3.490504 2.694469 -1.595799 +v 3.493023 2.683610 -1.575902 +v 3.495142 2.674577 -1.565121 +v 3.495773 2.668997 -1.558461 +v 3.497809 2.651191 -1.544149 +v 3.502340 2.608833 -1.526964 +v 3.502343 2.612016 -1.527910 +v 3.500153 2.630876 -1.533513 +v 3.502340 2.562985 -1.526964 +v 3.502334 2.585909 -1.524752 +v 3.499064 2.520627 -1.544149 +v 3.501417 2.540942 -1.533513 +v 3.502352 2.548976 -1.531126 +v 3.497014 2.502821 -1.558461 +v 3.490912 2.468404 -1.639841 +v 3.491408 2.470662 -1.617389 +v 3.492965 2.477349 -1.595799 +v 3.495181 2.486757 -1.578559 +v 3.495345 2.488208 -1.575901 +v 3.498139 2.678694 -2.581692 +v 3.496940 2.683610 -2.575825 +v 3.499315 2.668997 -2.593265 +v 3.499573 2.502821 -2.593265 +v 3.497502 2.488208 -2.575825 +v 3.498131 2.490808 -2.578929 +v 3.494264 2.694469 -2.555928 +v 3.494865 2.477349 -2.555928 +v 3.493223 2.470662 -2.534338 +v 3.492580 2.701156 -2.534337 +v 3.488536 2.703413 -1.639841 +v 3.501449 2.651191 -2.607578 +v 3.501695 2.520627 -2.607578 +v 3.503865 2.630876 -2.618213 +v 3.505577 2.608833 -2.624763 +v 3.505577 2.562985 -2.624763 +v 3.504101 2.540942 -2.618213 +v 3.505568 2.553393 -2.621912 +v 3.505570 2.616448 -2.622499 +v 3.505583 2.585909 -2.626974 +v 3.494161 2.701156 -2.938032 +v 3.495676 2.694469 -2.916442 +v 3.498196 2.683610 -2.896544 +v 3.499054 2.679951 -2.892179 +v 3.500293 2.668997 -2.879105 +v 3.502330 2.651191 -2.864791 +v 3.506234 2.608833 -2.847607 +v 3.506241 2.617370 -2.850144 +v 3.504673 2.630876 -2.854156 +v 3.506234 2.562985 -2.847607 +v 3.506227 2.585909 -2.845396 +v 3.502331 2.520627 -2.864792 +v 3.504684 2.540942 -2.854156 +v 3.506241 2.554318 -2.850182 +v 3.500281 2.502821 -2.879104 +v 3.493526 2.468404 -2.960485 +v 3.494022 2.470662 -2.938032 +v 3.495579 2.477349 -2.916442 +v 3.498137 2.488208 -2.896545 +v 3.499053 2.492076 -2.891928 +v 3.502063 2.683610 -3.896468 +v 3.503834 2.668997 -3.913908 +v 3.502840 2.502821 -3.913908 +v 3.500116 2.488208 -3.896468 +v 3.502043 2.496182 -3.905986 +v 3.499437 2.694469 -3.876570 +v 3.502013 2.684016 -3.895725 +v 3.497479 2.477349 -3.876571 +v 3.495837 2.470662 -3.854981 +v 3.497753 2.701156 -3.854981 +v 3.493709 2.703413 -2.960485 +v 3.505969 2.651191 -3.928221 +v 3.504961 2.520627 -3.928221 +v 3.508385 2.630876 -3.938856 +v 3.509470 2.608833 -3.945405 +v 3.509470 2.562985 -3.945405 +v 3.509466 2.558748 -3.944147 +v 3.507368 2.540942 -3.938856 +v 3.509459 2.621790 -3.941556 +v 3.509477 2.585909 -3.947617 +v 3.329297 2.701156 -2.938032 +v 3.329297 2.703413 -2.960485 +v 3.329297 2.694469 -2.916442 +v 3.329297 2.683610 -2.896545 +v 3.329297 2.668997 -2.879104 +v 3.329297 2.651191 -2.864792 +v 3.329297 2.630876 -2.854156 +v 3.329297 2.608833 -2.847607 +v 3.329297 2.585909 -2.845396 +v 3.329297 2.562985 -2.847607 +v 3.329297 2.540942 -2.854156 +v 3.329297 2.520627 -2.864792 +v 3.329297 2.502821 -2.879104 +v 3.329297 2.488208 -2.896544 +v 3.329297 2.477349 -2.916442 +v 3.329297 2.470662 -2.938032 +v 3.329297 2.468404 -2.960485 +v 3.329297 2.470662 -3.854981 +v 3.329297 2.477349 -3.876571 +v 3.329297 2.488208 -3.896468 +v 3.329297 2.502821 -3.913908 +v 3.329297 2.520627 -3.928221 +v 3.329297 2.540942 -3.938857 +v 3.329297 2.562985 -3.945406 +v 3.329297 2.585909 -3.947617 +v 3.329297 2.608833 -3.945405 +v 3.329297 2.630876 -3.938856 +v 3.329297 2.651191 -3.928221 +v 3.329297 2.668997 -3.913908 +v 3.329297 2.683610 -3.896468 +v 3.329297 2.694469 -3.876571 +v 3.329297 2.701156 -3.854980 +v 3.329297 2.701156 -1.617389 +v 3.329297 2.703413 -1.639842 +v 3.329297 2.694469 -1.595799 +v 3.329297 2.683610 -1.575901 +v 3.329297 2.668997 -1.558461 +v 3.329297 2.651191 -1.544148 +v 3.329297 2.630876 -1.533513 +v 3.329297 2.608833 -1.526964 +v 3.329297 2.585909 -1.524752 +v 3.329297 2.562985 -1.526964 +v 3.329297 2.540942 -1.533513 +v 3.329297 2.520627 -1.544148 +v 3.329297 2.502821 -1.558461 +v 3.329297 2.488208 -1.575902 +v 3.329297 2.477349 -1.595799 +v 3.329297 2.470662 -1.617389 +v 3.329297 2.468404 -1.639842 +v 3.329297 2.470662 -2.534338 +v 3.329297 2.477349 -2.555928 +v 3.329297 2.488208 -2.575825 +v 3.329297 2.502821 -2.593265 +v 3.329297 2.520627 -2.607578 +v 3.329297 2.540942 -2.618213 +v 3.329297 2.562985 -2.624763 +v 3.329297 2.585909 -2.626974 +v 3.329297 2.608833 -2.624763 +v 3.329297 2.630876 -2.618213 +v 3.329297 2.651191 -2.607578 +v 3.329297 2.668997 -2.593265 +v 3.329297 2.683610 -2.575825 +v 3.329297 2.694469 -2.555928 +v 3.329297 2.701156 -2.534338 +v 3.544702 2.695930 -2.939093 +v 3.603158 2.638356 -2.950781 +v 3.553847 2.695221 -2.939237 +v 3.562766 2.693112 -2.939665 +v 3.571240 2.689655 -2.940367 +v 3.579061 2.684934 -2.941325 +v 3.586036 2.679067 -2.942516 +v 3.591994 2.672197 -2.943911 +v 3.596786 2.664494 -2.945474 +v 3.600296 2.656147 -2.947169 +v 3.602438 2.647362 -2.948952 +v 3.603157 2.639645 -2.963602 +v 3.544703 2.698107 -2.960744 +v 3.602437 2.648791 -2.963155 +v 3.600296 2.657711 -2.962719 +v 3.596786 2.666186 -2.962305 +v 3.591993 2.674008 -2.961922 +v 3.586036 2.680984 -2.961581 +v 3.579062 2.686942 -2.961290 +v 3.571241 2.691735 -2.961056 +v 3.562766 2.695246 -2.960884 +v 3.553847 2.697387 -2.960779 +v 3.544702 2.689558 -2.918518 +v 3.603160 2.635448 -2.941392 +v 3.553847 2.688891 -2.918799 +v 3.562766 2.686909 -2.919637 +v 3.571240 2.683660 -2.921011 +v 3.579062 2.679224 -2.922886 +v 3.586037 2.673709 -2.925218 +v 3.591994 2.667253 -2.927947 +v 3.596787 2.660013 -2.931008 +v 3.600298 2.652169 -2.934324 +v 3.602439 2.643913 -2.937814 +v 3.544702 2.679205 -2.899548 +v 3.603156 2.630673 -2.932643 +v 3.553847 2.678608 -2.899956 +v 3.562766 2.676830 -2.901168 +v 3.571240 2.673916 -2.903155 +v 3.579061 2.669936 -2.905869 +v 3.586036 2.664991 -2.909242 +v 3.591993 2.659200 -2.913190 +v 3.596786 2.652706 -2.917618 +v 3.600296 2.645671 -2.922416 +v 3.602437 2.638266 -2.927466 +v 3.544702 2.665266 -2.882912 +v 3.603156 2.624157 -2.924866 +v 3.553847 2.664760 -2.883429 +v 3.562766 2.663254 -2.884966 +v 3.571240 2.660785 -2.887485 +v 3.579061 2.657415 -2.890924 +v 3.586036 2.653225 -2.895200 +v 3.591993 2.648320 -2.900206 +v 3.596786 2.642820 -2.905819 +v 3.600296 2.636860 -2.911901 +v 3.602437 2.630588 -2.918303 +v 3.544702 2.648271 -2.869251 +v 3.603158 2.616101 -2.918390 +v 3.553847 2.647875 -2.869857 +v 3.562766 2.646696 -2.871657 +v 3.571240 2.644764 -2.874607 +v 3.579061 2.642127 -2.878636 +v 3.586036 2.638848 -2.883644 +v 3.591994 2.635010 -2.889507 +v 3.596786 2.630706 -2.896081 +v 3.600297 2.626042 -2.903205 +v 3.602438 2.621133 -2.910703 +v 3.544703 2.628871 -2.859095 +v 3.603154 2.606785 -2.913513 +v 3.553847 2.628599 -2.859765 +v 3.562766 2.627790 -2.861758 +v 3.571240 2.626464 -2.865026 +v 3.579061 2.624653 -2.869488 +v 3.586035 2.622402 -2.875034 +v 3.591992 2.619767 -2.881527 +v 3.596785 2.616812 -2.888808 +v 3.600294 2.613610 -2.896697 +v 3.602435 2.610240 -2.905000 +v 3.544702 2.607813 -2.852839 +v 3.603158 2.596579 -2.910481 +v 3.553847 2.607675 -2.853549 +v 3.562766 2.607263 -2.855661 +v 3.571240 2.606589 -2.859122 +v 3.579062 2.605668 -2.863847 +v 3.586036 2.604523 -2.869722 +v 3.591994 2.603182 -2.876600 +v 3.596786 2.601679 -2.884312 +v 3.600296 2.600050 -2.892669 +v 3.602438 2.598336 -2.901464 +v 3.544702 2.585909 -2.850726 +v 3.603158 2.585909 -2.909452 +v 3.553846 2.585909 -2.851449 +v 3.562766 2.585909 -2.853600 +v 3.571240 2.585909 -2.857126 +v 3.579061 2.585909 -2.861941 +v 3.586036 2.585909 -2.867926 +v 3.591994 2.585909 -2.874934 +v 3.596786 2.585909 -2.882791 +v 3.600296 2.585909 -2.891304 +v 3.602438 2.585909 -2.900265 +v 3.544702 2.564005 -2.852839 +v 3.603158 2.575239 -2.910481 +v 3.553846 2.564143 -2.853549 +v 3.562766 2.564554 -2.855660 +v 3.571240 2.565229 -2.859121 +v 3.579061 2.566150 -2.863847 +v 3.586036 2.567295 -2.869721 +v 3.591993 2.568636 -2.876599 +v 3.596786 2.570139 -2.884312 +v 3.600296 2.571768 -2.892668 +v 3.602437 2.573482 -2.901464 +v 3.544702 2.542947 -2.859095 +v 3.603158 2.565032 -2.913514 +v 3.553847 2.543218 -2.859766 +v 3.562766 2.544027 -2.861759 +v 3.571241 2.545354 -2.865027 +v 3.579061 2.547164 -2.869488 +v 3.586036 2.549415 -2.875034 +v 3.591994 2.552050 -2.881527 +v 3.596786 2.555005 -2.888808 +v 3.600296 2.558207 -2.896698 +v 3.602438 2.561577 -2.905001 +v 3.544703 2.523547 -2.869251 +v 3.603155 2.555717 -2.918390 +v 3.553847 2.523943 -2.869856 +v 3.562766 2.525121 -2.871656 +v 3.571240 2.527053 -2.874607 +v 3.579062 2.529691 -2.878636 +v 3.586036 2.532969 -2.883644 +v 3.591993 2.536808 -2.889507 +v 3.596786 2.541112 -2.896081 +v 3.600295 2.545776 -2.903205 +v 3.602436 2.550684 -2.910703 +v 3.544703 2.506552 -2.882912 +v 3.603156 2.547660 -2.924867 +v 3.553847 2.507058 -2.883429 +v 3.562766 2.508564 -2.884966 +v 3.571241 2.511032 -2.887485 +v 3.579061 2.514403 -2.890925 +v 3.586036 2.518592 -2.895200 +v 3.591994 2.523497 -2.900206 +v 3.596786 2.528997 -2.905820 +v 3.600296 2.534957 -2.911902 +v 3.602437 2.541229 -2.918303 +v 3.544702 2.492612 -2.899548 +v 3.603157 2.541144 -2.932643 +v 3.553847 2.493210 -2.899956 +v 3.562766 2.494988 -2.901168 +v 3.571240 2.497902 -2.903155 +v 3.579061 2.501881 -2.905869 +v 3.586036 2.506827 -2.909242 +v 3.591993 2.512618 -2.913191 +v 3.596786 2.519111 -2.917618 +v 3.600296 2.526147 -2.922416 +v 3.602437 2.533552 -2.927466 +v 3.544702 2.482260 -2.918518 +v 3.603160 2.536370 -2.941392 +v 3.553847 2.482926 -2.918800 +v 3.562766 2.484909 -2.919637 +v 3.571241 2.488158 -2.921011 +v 3.579062 2.492594 -2.922886 +v 3.586037 2.498108 -2.925217 +v 3.591995 2.504565 -2.927947 +v 3.596788 2.511804 -2.931008 +v 3.600298 2.519649 -2.934323 +v 3.602440 2.527905 -2.937814 +v 3.544702 2.475888 -2.939093 +v 3.603155 2.533462 -2.950781 +v 3.553846 2.476597 -2.939237 +v 3.562765 2.478706 -2.939665 +v 3.571240 2.482163 -2.940367 +v 3.579061 2.486883 -2.941325 +v 3.586035 2.492751 -2.942516 +v 3.591992 2.499621 -2.943910 +v 3.596785 2.507324 -2.945474 +v 3.600294 2.515671 -2.947169 +v 3.602435 2.524455 -2.948952 +v 3.544702 2.473711 -2.960744 +v 3.603157 2.532172 -2.963602 +v 3.553847 2.474430 -2.960779 +v 3.562766 2.476572 -2.960884 +v 3.571240 2.480083 -2.961056 +v 3.579061 2.484876 -2.961290 +v 3.586036 2.490834 -2.961581 +v 3.591993 2.497809 -2.961922 +v 3.596786 2.505631 -2.962304 +v 3.600296 2.514107 -2.962719 +v 3.602437 2.523027 -2.963155 +v 3.544703 2.475966 -3.854171 +v 3.603158 2.534398 -3.845254 +v 3.553846 2.476685 -3.854061 +v 3.562766 2.478826 -3.853735 +v 3.571240 2.482334 -3.853199 +v 3.579061 2.487125 -3.852468 +v 3.586036 2.493080 -3.851560 +v 3.591993 2.500052 -3.850495 +v 3.596786 2.507870 -3.849303 +v 3.600296 2.516341 -3.848010 +v 3.602437 2.525257 -3.846649 +v 3.544703 2.482260 -3.874494 +v 3.603154 2.536370 -3.851620 +v 3.553847 2.482926 -3.874213 +v 3.562765 2.484908 -3.873375 +v 3.571240 2.488158 -3.872001 +v 3.579061 2.492594 -3.870126 +v 3.586035 2.498108 -3.867795 +v 3.591992 2.504565 -3.865065 +v 3.596784 2.511804 -3.862005 +v 3.600294 2.519649 -3.858689 +v 3.602435 2.527905 -3.855199 +v 3.544703 2.492612 -3.893464 +v 3.603161 2.541144 -3.860369 +v 3.553847 2.493210 -3.893057 +v 3.562766 2.494988 -3.891844 +v 3.571240 2.497902 -3.889857 +v 3.579062 2.501881 -3.887143 +v 3.586037 2.506827 -3.883771 +v 3.591995 2.512618 -3.879822 +v 3.596788 2.519111 -3.875394 +v 3.600299 2.526147 -3.870596 +v 3.602440 2.533552 -3.865546 +v 3.544703 2.506552 -3.910100 +v 3.603154 2.547660 -3.868146 +v 3.553847 2.507058 -3.909584 +v 3.562766 2.508564 -3.908047 +v 3.571240 2.511032 -3.905527 +v 3.579061 2.514403 -3.902088 +v 3.586035 2.518592 -3.897812 +v 3.591992 2.523497 -3.892806 +v 3.596784 2.528997 -3.887193 +v 3.600294 2.534957 -3.881111 +v 3.602435 2.541229 -3.874709 +v 3.544703 2.523547 -3.923761 +v 3.603156 2.555717 -3.874622 +v 3.553847 2.523943 -3.923156 +v 3.562766 2.525121 -3.921356 +v 3.571240 2.527053 -3.918405 +v 3.579061 2.529691 -3.914376 +v 3.586036 2.532969 -3.909369 +v 3.591993 2.536808 -3.903505 +v 3.596785 2.541112 -3.896931 +v 3.600296 2.545776 -3.889807 +v 3.602436 2.550685 -3.882309 +v 3.544703 2.542947 -3.933917 +v 3.603159 2.565032 -3.879499 +v 3.553847 2.543218 -3.933247 +v 3.562766 2.544027 -3.931254 +v 3.571241 2.545354 -3.927986 +v 3.579062 2.547164 -3.923524 +v 3.586037 2.549415 -3.917979 +v 3.591995 2.552050 -3.911485 +v 3.596788 2.555005 -3.904204 +v 3.600298 2.558207 -3.896315 +v 3.602439 2.561577 -3.888012 +v 3.544703 2.564005 -3.940174 +v 3.603156 2.575239 -3.882531 +v 3.553847 2.564143 -3.939464 +v 3.562766 2.564554 -3.937352 +v 3.571240 2.565229 -3.933891 +v 3.579061 2.566150 -3.929165 +v 3.586036 2.567295 -3.923290 +v 3.591993 2.568636 -3.916413 +v 3.596786 2.570139 -3.908700 +v 3.600296 2.571767 -3.900344 +v 3.602437 2.573482 -3.891549 +v 3.544703 2.585909 -3.942286 +v 3.603156 2.585909 -3.883561 +v 3.553847 2.585909 -3.941563 +v 3.562766 2.585909 -3.939412 +v 3.571240 2.585909 -3.935886 +v 3.579061 2.585909 -3.931071 +v 3.586036 2.585909 -3.925086 +v 3.591993 2.585909 -3.918079 +v 3.596786 2.585909 -3.910222 +v 3.600296 2.585909 -3.901708 +v 3.602437 2.585909 -3.892747 +v 3.544703 2.607813 -3.940173 +v 3.603156 2.596578 -3.882531 +v 3.553847 2.607675 -3.939463 +v 3.562766 2.607263 -3.937352 +v 3.571240 2.606589 -3.933891 +v 3.579062 2.605668 -3.929165 +v 3.586036 2.604522 -3.923290 +v 3.591993 2.603182 -3.916413 +v 3.596786 2.601679 -3.908700 +v 3.600296 2.600050 -3.900344 +v 3.602437 2.598336 -3.891548 +v 3.544703 2.628871 -3.933917 +v 3.603156 2.606785 -3.879499 +v 3.553847 2.628599 -3.933247 +v 3.562766 2.627790 -3.931254 +v 3.571240 2.626464 -3.927986 +v 3.579061 2.624653 -3.923524 +v 3.586035 2.622403 -3.917979 +v 3.591993 2.619767 -3.911485 +v 3.596785 2.616812 -3.904204 +v 3.600296 2.613611 -3.896315 +v 3.602436 2.610240 -3.888012 +v 3.544703 2.648271 -3.923761 +v 3.603159 2.616101 -3.874622 +v 3.553847 2.647875 -3.923156 +v 3.562766 2.646697 -3.921356 +v 3.571240 2.644765 -3.918405 +v 3.579062 2.642127 -3.914376 +v 3.586037 2.638849 -3.909369 +v 3.591994 2.635010 -3.903505 +v 3.596787 2.630706 -3.896931 +v 3.600297 2.626042 -3.889807 +v 3.602439 2.621133 -3.882309 +v 3.544703 2.665266 -3.910100 +v 3.603158 2.624157 -3.868146 +v 3.553846 2.664760 -3.909583 +v 3.562766 2.663254 -3.908047 +v 3.571240 2.660785 -3.905527 +v 3.579061 2.657415 -3.902088 +v 3.586036 2.653225 -3.897812 +v 3.591993 2.648320 -3.892806 +v 3.596786 2.642820 -3.887193 +v 3.600296 2.636861 -3.881111 +v 3.602437 2.630588 -3.874709 +v 3.544703 2.679205 -3.893464 +v 3.603157 2.630674 -3.860369 +v 3.553847 2.678608 -3.893056 +v 3.562766 2.676830 -3.891844 +v 3.571240 2.673916 -3.889856 +v 3.579061 2.669937 -3.887143 +v 3.586036 2.664991 -3.883770 +v 3.591994 2.659200 -3.879821 +v 3.596786 2.652707 -3.875393 +v 3.600296 2.645671 -3.870595 +v 3.602437 2.638266 -3.865546 +v 3.544703 2.689558 -3.874494 +v 3.603155 2.635448 -3.851620 +v 3.553847 2.688891 -3.874213 +v 3.562766 2.686909 -3.873375 +v 3.571240 2.683660 -3.872001 +v 3.579061 2.679224 -3.870126 +v 3.586035 2.673709 -3.867795 +v 3.591992 2.667253 -3.865066 +v 3.596785 2.660013 -3.862005 +v 3.600295 2.652169 -3.858689 +v 3.602435 2.643913 -3.855199 +v 3.544703 2.695852 -3.854171 +v 3.603158 2.637420 -3.845254 +v 3.553847 2.695132 -3.854061 +v 3.562766 2.692992 -3.853734 +v 3.571240 2.689483 -3.853199 +v 3.579062 2.684692 -3.852468 +v 3.586036 2.678737 -3.851559 +v 3.591994 2.671765 -3.850495 +v 3.596786 2.663947 -3.849302 +v 3.600296 2.655476 -3.848010 +v 3.602438 2.646561 -3.846649 +v 3.544703 2.695930 -1.618450 +v 3.603158 2.638356 -1.630137 +v 3.553847 2.695221 -1.618593 +v 3.562766 2.693112 -1.619022 +v 3.571240 2.689655 -1.619723 +v 3.579061 2.684934 -1.620682 +v 3.586036 2.679067 -1.621873 +v 3.591994 2.672197 -1.623267 +v 3.596786 2.664494 -1.624831 +v 3.600296 2.656147 -1.626526 +v 3.602438 2.647362 -1.628309 +v 3.603157 2.639645 -1.642959 +v 3.544703 2.698107 -1.640101 +v 3.602437 2.648791 -1.642512 +v 3.600296 2.657711 -1.642076 +v 3.596786 2.666186 -1.641662 +v 3.591994 2.674008 -1.641279 +v 3.586036 2.680984 -1.640938 +v 3.579061 2.686942 -1.640647 +v 3.571240 2.691735 -1.640412 +v 3.562766 2.695246 -1.640241 +v 3.553847 2.697387 -1.640136 +v 3.544702 2.689558 -1.597875 +v 3.603160 2.635448 -1.620749 +v 3.553847 2.688891 -1.598157 +v 3.562766 2.686909 -1.598994 +v 3.571241 2.683660 -1.600368 +v 3.579062 2.679224 -1.602244 +v 3.586037 2.673709 -1.604575 +v 3.591995 2.667253 -1.607304 +v 3.596787 2.660013 -1.610364 +v 3.600298 2.652169 -1.613680 +v 3.602440 2.643913 -1.617171 +v 3.544702 2.679205 -1.578905 +v 3.603157 2.630674 -1.612000 +v 3.553847 2.678608 -1.579313 +v 3.562766 2.676830 -1.580525 +v 3.571241 2.673916 -1.582513 +v 3.579061 2.669937 -1.585226 +v 3.586036 2.664991 -1.588599 +v 3.591993 2.659200 -1.592548 +v 3.596786 2.652707 -1.596976 +v 3.600296 2.645671 -1.601773 +v 3.602437 2.638266 -1.606823 +v 3.544703 2.665266 -1.562269 +v 3.603157 2.624157 -1.604223 +v 3.553847 2.664760 -1.562786 +v 3.562766 2.663254 -1.564323 +v 3.571240 2.660785 -1.566842 +v 3.579061 2.657415 -1.570282 +v 3.586036 2.653225 -1.574557 +v 3.591993 2.648320 -1.579563 +v 3.596786 2.642820 -1.585177 +v 3.600296 2.636861 -1.591259 +v 3.602437 2.630588 -1.597660 +v 3.544703 2.648271 -1.548608 +v 3.603158 2.616100 -1.597747 +v 3.553847 2.647875 -1.549214 +v 3.562766 2.646696 -1.551014 +v 3.571241 2.644764 -1.553964 +v 3.579061 2.642127 -1.557993 +v 3.586036 2.638848 -1.563001 +v 3.591994 2.635010 -1.568864 +v 3.596787 2.630705 -1.575438 +v 3.600297 2.626041 -1.582562 +v 3.602438 2.621132 -1.590060 +v 3.544703 2.628871 -1.538452 +v 3.603154 2.606786 -1.592871 +v 3.553847 2.628599 -1.539122 +v 3.562766 2.627790 -1.541116 +v 3.571241 2.626464 -1.544384 +v 3.579061 2.624653 -1.548845 +v 3.586036 2.622402 -1.554391 +v 3.591993 2.619767 -1.560884 +v 3.596785 2.616812 -1.568165 +v 3.600294 2.613611 -1.576054 +v 3.602435 2.610240 -1.584358 +v 3.544703 2.607813 -1.532196 +v 3.603158 2.596579 -1.589838 +v 3.553847 2.607675 -1.532905 +v 3.562766 2.607263 -1.535017 +v 3.571240 2.606589 -1.538478 +v 3.579062 2.605668 -1.543205 +v 3.586036 2.604523 -1.549079 +v 3.591994 2.603182 -1.555957 +v 3.596786 2.601679 -1.563669 +v 3.600296 2.600050 -1.572026 +v 3.602438 2.598336 -1.580821 +v 3.544703 2.585909 -1.530083 +v 3.603158 2.585908 -1.588809 +v 3.553847 2.585909 -1.530806 +v 3.562766 2.585909 -1.532957 +v 3.571240 2.585909 -1.536484 +v 3.579062 2.585909 -1.541299 +v 3.586036 2.585909 -1.547283 +v 3.591994 2.585909 -1.554291 +v 3.596786 2.585909 -1.562148 +v 3.600297 2.585908 -1.570661 +v 3.602438 2.585908 -1.579622 +v 3.544703 2.564005 -1.532196 +v 3.603158 2.575239 -1.589838 +v 3.553847 2.564143 -1.532905 +v 3.562766 2.564554 -1.535017 +v 3.571241 2.565229 -1.538478 +v 3.579062 2.566150 -1.543204 +v 3.586037 2.567295 -1.549079 +v 3.591994 2.568636 -1.555957 +v 3.596786 2.570139 -1.563669 +v 3.600296 2.571768 -1.572025 +v 3.602438 2.573482 -1.580821 +v 3.544703 2.542947 -1.538453 +v 3.603158 2.565032 -1.592871 +v 3.553847 2.543218 -1.539122 +v 3.562766 2.544027 -1.541116 +v 3.571241 2.545354 -1.544384 +v 3.579062 2.547164 -1.548845 +v 3.586036 2.549415 -1.554391 +v 3.591994 2.552050 -1.560884 +v 3.596786 2.555005 -1.568165 +v 3.600297 2.558207 -1.576054 +v 3.602438 2.561577 -1.584358 +v 3.544703 2.523547 -1.548608 +v 3.603155 2.555718 -1.597747 +v 3.553847 2.523943 -1.549214 +v 3.562766 2.525121 -1.551014 +v 3.571240 2.527053 -1.553964 +v 3.579061 2.529691 -1.557993 +v 3.586035 2.532969 -1.563001 +v 3.591993 2.536808 -1.568864 +v 3.596785 2.541112 -1.575438 +v 3.600295 2.545776 -1.582562 +v 3.602436 2.550685 -1.590060 +v 3.544703 2.506552 -1.562269 +v 3.603157 2.547660 -1.604224 +v 3.553847 2.507058 -1.562786 +v 3.562766 2.508564 -1.564323 +v 3.571240 2.511032 -1.566842 +v 3.579061 2.514403 -1.570282 +v 3.586036 2.518592 -1.574557 +v 3.591993 2.523497 -1.579563 +v 3.596785 2.528997 -1.585177 +v 3.600296 2.534957 -1.591259 +v 3.602437 2.541229 -1.597661 +v 3.544703 2.492612 -1.578905 +v 3.603157 2.541144 -1.612000 +v 3.553847 2.493210 -1.579313 +v 3.562766 2.494988 -1.580525 +v 3.571240 2.497902 -1.582513 +v 3.579062 2.501881 -1.585226 +v 3.586036 2.506827 -1.588599 +v 3.591993 2.512618 -1.592548 +v 3.596786 2.519111 -1.596976 +v 3.600296 2.526147 -1.601773 +v 3.602437 2.533552 -1.606823 +v 3.544703 2.482260 -1.597875 +v 3.603160 2.536370 -1.620749 +v 3.553847 2.482926 -1.598157 +v 3.562766 2.484908 -1.598995 +v 3.571241 2.488158 -1.600368 +v 3.579062 2.492594 -1.602244 +v 3.586037 2.498108 -1.604575 +v 3.591995 2.504565 -1.607304 +v 3.596787 2.511804 -1.610365 +v 3.600298 2.519649 -1.613681 +v 3.602440 2.527905 -1.617171 +v 3.544703 2.475888 -1.618450 +v 3.603155 2.533462 -1.630138 +v 3.553847 2.476597 -1.618593 +v 3.562766 2.478706 -1.619022 +v 3.571240 2.482163 -1.619724 +v 3.579061 2.486884 -1.620682 +v 3.586036 2.492751 -1.621873 +v 3.591993 2.499621 -1.623267 +v 3.596785 2.507324 -1.624831 +v 3.600295 2.515671 -1.626526 +v 3.602436 2.524455 -1.628309 +v 3.544703 2.473711 -1.640101 +v 3.603157 2.532172 -1.642959 +v 3.553847 2.474430 -1.640136 +v 3.562766 2.476572 -1.640241 +v 3.571240 2.480083 -1.640412 +v 3.579061 2.484876 -1.640647 +v 3.586036 2.490834 -1.640938 +v 3.591994 2.497809 -1.641279 +v 3.596786 2.505631 -1.641662 +v 3.600296 2.514107 -1.642076 +v 3.602437 2.523027 -1.642512 +v 3.544702 2.475966 -2.533528 +v 3.603158 2.534398 -2.524611 +v 3.553847 2.476685 -2.533418 +v 3.562766 2.478826 -2.533092 +v 3.571241 2.482334 -2.532556 +v 3.579062 2.487125 -2.531825 +v 3.586036 2.493080 -2.530917 +v 3.591994 2.500052 -2.529852 +v 3.596786 2.507870 -2.528660 +v 3.600297 2.516341 -2.527367 +v 3.602438 2.525257 -2.526006 +v 3.544703 2.482260 -2.553851 +v 3.603154 2.536370 -2.530977 +v 3.553847 2.482926 -2.553570 +v 3.562766 2.484909 -2.552732 +v 3.571240 2.488158 -2.551358 +v 3.579061 2.492594 -2.549483 +v 3.586036 2.498108 -2.547152 +v 3.591993 2.504565 -2.544422 +v 3.596785 2.511804 -2.541362 +v 3.600294 2.519649 -2.538046 +v 3.602436 2.527905 -2.534555 +v 3.544702 2.492612 -2.572821 +v 3.603161 2.541144 -2.539726 +v 3.553847 2.493210 -2.572413 +v 3.562766 2.494988 -2.571201 +v 3.571241 2.497902 -2.569214 +v 3.579062 2.501881 -2.566500 +v 3.586037 2.506827 -2.563128 +v 3.591995 2.512618 -2.559179 +v 3.596788 2.519111 -2.554751 +v 3.600299 2.526147 -2.549953 +v 3.602440 2.533552 -2.544903 +v 3.544703 2.506552 -2.589457 +v 3.603154 2.547660 -2.547503 +v 3.553847 2.507058 -2.588941 +v 3.562766 2.508564 -2.587404 +v 3.571240 2.511032 -2.584884 +v 3.579061 2.514403 -2.581445 +v 3.586036 2.518592 -2.577169 +v 3.591992 2.523497 -2.572163 +v 3.596785 2.528997 -2.566550 +v 3.600294 2.534957 -2.560467 +v 3.602435 2.541229 -2.554065 +v 3.544703 2.523547 -2.603118 +v 3.603156 2.555718 -2.553979 +v 3.553847 2.523943 -2.602513 +v 3.562766 2.525121 -2.600713 +v 3.571240 2.527053 -2.597762 +v 3.579061 2.529691 -2.593733 +v 3.586036 2.532969 -2.588726 +v 3.591993 2.536808 -2.582862 +v 3.596785 2.541112 -2.576288 +v 3.600295 2.545776 -2.569164 +v 3.602437 2.550685 -2.561666 +v 3.544703 2.542947 -2.613274 +v 3.603160 2.565033 -2.558856 +v 3.553847 2.543218 -2.612604 +v 3.562766 2.544027 -2.610611 +v 3.571240 2.545354 -2.607343 +v 3.579062 2.547165 -2.602881 +v 3.586037 2.549415 -2.597335 +v 3.591995 2.552051 -2.590842 +v 3.596787 2.555006 -2.583561 +v 3.600298 2.558208 -2.575672 +v 3.602439 2.561578 -2.567369 +v 3.544703 2.564005 -2.619530 +v 3.603153 2.575239 -2.561888 +v 3.553847 2.564143 -2.618820 +v 3.562766 2.564554 -2.616709 +v 3.571240 2.565229 -2.613248 +v 3.579061 2.566150 -2.608522 +v 3.586035 2.567295 -2.602647 +v 3.591992 2.568636 -2.595769 +v 3.596784 2.570139 -2.588057 +v 3.600294 2.571767 -2.579700 +v 3.602434 2.573482 -2.570905 +v 3.544702 2.585909 -2.621643 +v 3.603163 2.585908 -2.562917 +v 3.553847 2.585909 -2.620920 +v 3.562767 2.585909 -2.618769 +v 3.571241 2.585909 -2.615243 +v 3.579063 2.585909 -2.610428 +v 3.586038 2.585909 -2.604443 +v 3.591996 2.585909 -2.597436 +v 3.596789 2.585909 -2.589578 +v 3.600300 2.585909 -2.581065 +v 3.602443 2.585909 -2.572104 +v 3.544703 2.607813 -2.619530 +v 3.603153 2.596578 -2.561888 +v 3.553847 2.607675 -2.618821 +v 3.562766 2.607263 -2.616709 +v 3.571240 2.606589 -2.613248 +v 3.579061 2.605668 -2.608522 +v 3.586035 2.604523 -2.602648 +v 3.591992 2.603182 -2.595770 +v 3.596784 2.601679 -2.588058 +v 3.600293 2.600050 -2.579701 +v 3.602434 2.598336 -2.570906 +v 3.544703 2.628871 -2.613274 +v 3.603156 2.606786 -2.558856 +v 3.553847 2.628599 -2.612603 +v 3.562766 2.627790 -2.610610 +v 3.571240 2.626464 -2.607342 +v 3.579061 2.624653 -2.602881 +v 3.586036 2.622402 -2.597335 +v 3.591993 2.619767 -2.590841 +v 3.596785 2.616812 -2.583561 +v 3.600296 2.613611 -2.575672 +v 3.602437 2.610240 -2.567368 +v 3.544702 2.648271 -2.603118 +v 3.603159 2.616100 -2.553979 +v 3.553847 2.647875 -2.602513 +v 3.562766 2.646696 -2.600713 +v 3.571241 2.644765 -2.597762 +v 3.579062 2.642127 -2.593733 +v 3.586037 2.638848 -2.588726 +v 3.591994 2.635010 -2.582862 +v 3.596787 2.630705 -2.576288 +v 3.600298 2.626041 -2.569164 +v 3.602439 2.621133 -2.561666 +v 3.544702 2.665266 -2.589457 +v 3.603158 2.624158 -2.547503 +v 3.553847 2.664760 -2.588940 +v 3.562766 2.663254 -2.587404 +v 3.571241 2.660785 -2.584884 +v 3.579062 2.657415 -2.581444 +v 3.586037 2.653226 -2.577169 +v 3.591994 2.648321 -2.572163 +v 3.596786 2.642820 -2.566549 +v 3.600297 2.636861 -2.560467 +v 3.602438 2.630589 -2.554066 +v 3.544703 2.679205 -2.572821 +v 3.603158 2.630674 -2.539726 +v 3.553847 2.678608 -2.572413 +v 3.562766 2.676830 -2.571201 +v 3.571240 2.673916 -2.569214 +v 3.579062 2.669937 -2.566500 +v 3.586036 2.664991 -2.563128 +v 3.591993 2.659200 -2.559178 +v 3.596786 2.652707 -2.554750 +v 3.600296 2.645671 -2.549953 +v 3.602437 2.638266 -2.544903 +v 3.544703 2.689558 -2.553851 +v 3.603155 2.635448 -2.530977 +v 3.553847 2.688891 -2.553569 +v 3.562766 2.686909 -2.552732 +v 3.571240 2.683660 -2.551358 +v 3.579061 2.679224 -2.549483 +v 3.586036 2.673709 -2.547152 +v 3.591993 2.667253 -2.544422 +v 3.596785 2.660013 -2.541362 +v 3.600295 2.652169 -2.538046 +v 3.602436 2.643913 -2.534555 +v 3.544703 2.695852 -2.533528 +v 3.603158 2.637420 -2.524611 +v 3.553847 2.695132 -2.533418 +v 3.562766 2.692992 -2.533091 +v 3.571240 2.689483 -2.532556 +v 3.579061 2.684692 -2.531825 +v 3.586036 2.678738 -2.530916 +v 3.591994 2.671765 -2.529852 +v 3.596786 2.663947 -2.528659 +v 3.600296 2.655476 -2.527366 +v 3.602438 2.646561 -2.526006 +v 3.500694 2.698345 -4.434151 +v 3.501713 2.693984 -4.427957 +v 3.502892 2.688961 -4.422294 +v 3.503558 2.686138 -4.419752 +v 3.503875 2.683357 -4.417234 +v 3.504576 2.677246 -4.412839 +v 3.505332 2.670688 -4.409165 +v 3.506133 2.663764 -4.406259 +v 3.506969 2.656564 -4.404156 +v 3.507830 2.649175 -4.402884 +v 3.508705 2.641693 -4.402459 +v 3.510818 2.623657 -4.402458 +v 3.508738 2.542852 -4.402458 +v 3.510818 2.560604 -4.402459 +v 3.507873 2.535454 -4.402884 +v 3.507020 2.528149 -4.404156 +v 3.506191 2.521029 -4.406259 +v 3.505397 2.514183 -4.409165 +v 3.504646 2.507697 -4.412838 +v 3.503949 2.501654 -4.417233 +v 3.503055 2.496141 -4.422295 +v 3.503559 2.498265 -4.420337 +v 3.501892 2.491232 -4.427957 +v 3.500884 2.486969 -4.434151 +v 3.500045 2.483405 -4.440798 +v 3.499486 2.477269 -4.899892 +v 3.500176 2.708138 -4.899891 +v 3.500045 2.708562 -4.892309 +v 3.499372 2.476857 -4.892309 +v 3.498372 2.708643 -4.470182 +v 3.498546 2.476897 -4.470181 +v 3.498443 2.708222 -4.462600 +v 3.498630 2.477310 -4.462599 +v 3.498715 2.706960 -4.455112 +v 3.498911 2.478545 -4.455112 +v 3.499185 2.704875 -4.447814 +v 3.499848 2.701991 -4.440797 +v 3.499384 2.480585 -4.447814 +v 3.500510 2.706863 -4.907379 +v 3.501035 2.704785 -4.914677 +v 3.501756 2.701886 -4.921694 +v 3.502652 2.698251 -4.928339 +v 3.503721 2.693887 -4.934534 +v 3.504945 2.688862 -4.940197 +v 3.505692 2.683269 -4.945257 +v 3.505094 2.688248 -4.940750 +v 3.506423 2.677157 -4.949652 +v 3.507204 2.670597 -4.953326 +v 3.506735 2.514118 -4.953325 +v 3.505966 2.507633 -4.949652 +v 3.505247 2.501591 -4.945257 +v 3.505104 2.500386 -4.944154 +v 3.504068 2.496092 -4.940197 +v 3.502883 2.491184 -4.934534 +v 3.501851 2.486922 -4.928340 +v 3.500986 2.483359 -4.921693 +v 3.500298 2.480541 -4.914677 +v 3.499795 2.478502 -4.907379 +v 3.508877 2.656471 -4.958334 +v 3.508025 2.663673 -4.956232 +v 3.508383 2.528083 -4.958335 +v 3.507544 2.520963 -4.956232 +v 3.510110 2.542785 -4.960032 +v 3.512461 2.562862 -4.960032 +v 3.509242 2.535388 -4.959607 +v 3.509746 2.649082 -4.959606 +v 3.510624 2.641600 -4.960032 +v 3.512462 2.625915 -4.960032 +v 3.505158 2.688335 -4.962399 +v 3.510776 2.560546 -4.388216 +v 3.503533 2.686103 -4.411201 +v 3.510778 2.623602 -4.388889 +v 3.503481 2.498157 -4.393639 +v 3.512513 2.562933 -4.977536 +v 3.505162 2.500466 -4.963747 +v 3.512511 2.625983 -4.976811 +v 3.512514 2.570331 -4.977954 +v 3.506099 2.663662 -4.392946 +v 3.509177 2.534487 -4.975926 +v 3.498847 2.714385 -4.942109 +v 3.495966 2.725882 -4.908970 +v 3.494530 2.724529 -4.459902 +v 3.507460 2.669072 -4.975924 +v 3.497500 2.472944 -4.419322 +v 3.495474 2.464152 -4.458549 +v 3.494929 2.461447 -4.509947 +v 3.495228 2.462123 -4.579607 +v 3.497328 2.468209 -4.904912 +v 3.500813 2.482411 -4.948869 +v 3.498995 2.491995 -2.871981 +v 3.506212 2.554278 -2.840327 +v 3.509507 2.558804 -3.957865 +v 3.506210 2.617327 -2.839542 +v 3.502107 2.496271 -3.927842 +v 3.499006 2.679884 -2.875591 +v 3.502117 2.684159 -3.931071 +v 3.509505 2.621853 -3.957069 +v 3.505268 2.657615 -3.943254 +v 3.493545 2.703062 -2.897142 +v 3.489690 2.720106 -2.953952 +v 3.493356 2.719294 -3.840187 +v 3.498095 2.700628 -3.909982 +v 3.494616 2.465273 -3.889693 +v 3.492963 2.458780 -3.839374 +v 3.490009 2.453910 -2.935286 +v 3.495536 2.477446 -2.883346 +v 3.502275 2.520459 -2.850072 +v 3.501636 2.656803 -2.854128 +v 3.506200 2.602428 -2.836274 +v 3.502275 2.548869 -1.504697 +v 3.480962 2.735478 -1.664407 +v 3.483494 2.738956 -2.523350 +v 3.498277 2.491009 -2.628556 +v 3.505643 2.616548 -2.647052 +v 3.495047 2.674447 -1.532931 +v 3.502263 2.611906 -1.500775 +v 3.498243 2.678837 -2.616847 +v 3.495073 2.486608 -1.541715 +v 3.505656 2.553515 -2.651897 +v 3.494884 2.692524 -2.595437 +v 3.488969 2.700316 -1.561174 +v 3.483656 2.723689 -1.632265 +v 3.501151 2.515277 -2.641209 +v 3.493563 2.471452 -2.611019 +v 3.487383 2.446131 -2.548689 +v 3.485053 2.444184 -1.606943 +v 3.489397 2.462688 -1.565067 +v 3.498951 2.520147 -1.521243 +v 3.502266 2.576632 -1.501765 +v 3.501940 2.647726 -2.632444 +v 3.499473 2.636039 -1.511505 +v 3.505657 2.581501 -2.651922 +v -3.485117 2.675593 -1.835154 +v -3.485142 2.487684 -1.826745 +v -3.487253 2.620289 -3.590333 +v -3.465757 2.742804 -3.492748 +v -3.470441 2.736371 -1.904118 +v -3.492512 2.550013 -1.806502 +v -3.479992 2.682632 -3.573518 +v -3.479977 2.494778 -3.578606 +v -3.492512 2.613066 -1.806547 +v -3.465698 2.434014 -3.512968 +v -3.470495 2.427424 -1.885651 +v -3.487263 2.557223 -3.587046 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.920953 +vt 1.000000 0.920922 +vt 0.937500 0.500000 +vt 0.937500 0.921028 +vt 0.946778 0.921029 +vt 0.906250 0.500000 +vt 0.906250 0.921026 +vt 0.875000 0.500000 +vt 0.875000 0.921026 +vt 0.843750 0.500000 +vt 0.843750 0.921030 +vt 0.812500 0.500000 +vt 0.812500 0.921036 +vt 0.781250 0.500000 +vt 0.781250 0.921045 +vt 0.750000 0.500000 +vt 0.750000 0.921056 +vt 0.718750 0.500000 +vt 0.718750 0.920909 +vt 0.731642 0.921064 +vt 0.687500 0.500000 +vt 0.687500 0.920550 +vt 0.656250 0.500000 +vt 0.656250 0.920222 +vt 0.625000 0.500000 +vt 0.625000 0.919935 +vt 0.593750 0.500000 +vt 0.593750 0.919703 +vt 0.562500 0.500000 +vt 0.562500 0.919532 +vt 0.531250 0.500000 +vt 0.531250 0.919431 +vt 0.500000 0.500000 +vt 0.500000 0.919403 +vt 0.468750 0.500000 +vt 0.468750 0.919448 +vt 0.437500 0.500000 +vt 0.437500 0.919566 +vt 0.406250 0.500000 +vt 0.406250 0.919751 +vt 0.375000 0.500000 +vt 0.375000 0.919997 +vt 0.343750 0.500000 +vt 0.343750 0.920294 +vt 0.312500 0.500000 +vt 0.312500 0.920631 +vt 0.281250 0.500000 +vt 0.281250 0.920995 +vt 0.250000 0.500000 +vt 0.250000 0.921144 +vt 0.268358 0.921150 +vt 0.218750 0.500000 +vt 0.218750 0.921131 +vt 0.187500 0.500000 +vt 0.187500 0.921117 +vt 0.156250 0.500000 +vt 0.156250 0.921103 +vt 0.125000 0.500000 +vt 0.125000 0.921088 +vt 0.093750 0.500000 +vt 0.093750 0.921074 +vt 0.062500 0.500000 +vt 0.062500 0.921061 +vt 0.031250 0.500000 +vt 0.031250 0.920970 +vt 0.053223 0.921058 +vt 0.000000 0.500000 +vt 0.000000 0.920922 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.920786 +vt 1.000000 0.920756 +vt 0.937500 0.500000 +vt 0.937500 0.920861 +vt 0.946776 0.920862 +vt 0.906250 0.500000 +vt 0.906250 0.920859 +vt 0.875000 0.500000 +vt 0.875000 0.920860 +vt 0.843750 0.500000 +vt 0.843750 0.920864 +vt 0.812500 0.500000 +vt 0.812500 0.920870 +vt 0.781250 0.500000 +vt 0.781250 0.920879 +vt 0.750000 0.500000 +vt 0.750000 0.920890 +vt 0.718750 0.500000 +vt 0.718750 0.920742 +vt 0.731642 0.920897 +vt 0.687500 0.500000 +vt 0.687500 0.920384 +vt 0.656250 0.500000 +vt 0.656250 0.920055 +vt 0.625000 0.500000 +vt 0.625000 0.919769 +vt 0.593750 0.500000 +vt 0.593750 0.919536 +vt 0.562500 0.500000 +vt 0.562500 0.919366 +vt 0.531250 0.500000 +vt 0.531250 0.919264 +vt 0.500000 0.500000 +vt 0.500000 0.919236 +vt 0.468750 0.500000 +vt 0.468750 0.919282 +vt 0.437500 0.500000 +vt 0.437500 0.919399 +vt 0.406250 0.500000 +vt 0.406250 0.919585 +vt 0.375000 0.500000 +vt 0.375000 0.919831 +vt 0.343750 0.500000 +vt 0.343750 0.920128 +vt 0.312500 0.500000 +vt 0.312500 0.920465 +vt 0.281250 0.500000 +vt 0.281250 0.920828 +vt 0.250000 0.500000 +vt 0.250000 0.920977 +vt 0.268358 0.920984 +vt 0.218750 0.500000 +vt 0.218750 0.920965 +vt 0.187500 0.500000 +vt 0.187500 0.920951 +vt 0.156250 0.500000 +vt 0.156250 0.920936 +vt 0.125000 0.500000 +vt 0.125000 0.920922 +vt 0.093750 0.500000 +vt 0.093750 0.920908 +vt 0.062500 0.500000 +vt 0.062500 0.920894 +vt 0.031250 0.500000 +vt 0.031250 0.920803 +vt 0.053224 0.920891 +vt 0.000000 0.500000 +vt 0.000000 0.920756 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.920620 +vt 1.000000 0.920589 +vt 0.937500 0.500000 +vt 0.937500 0.920694 +vt 0.946775 0.920696 +vt 0.906250 0.500000 +vt 0.906250 0.920692 +vt 0.875000 0.500000 +vt 0.875000 0.920693 +vt 0.843750 0.500000 +vt 0.843750 0.920697 +vt 0.812500 0.500000 +vt 0.812500 0.920703 +vt 0.781250 0.500000 +vt 0.781250 0.920712 +vt 0.750000 0.500000 +vt 0.750000 0.920723 +vt 0.718750 0.500000 +vt 0.718750 0.920576 +vt 0.731641 0.920730 +vt 0.687500 0.500000 +vt 0.687500 0.920217 +vt 0.656250 0.500000 +vt 0.656250 0.919888 +vt 0.625000 0.500000 +vt 0.625000 0.919602 +vt 0.593750 0.500000 +vt 0.593750 0.919369 +vt 0.562500 0.500000 +vt 0.562500 0.919199 +vt 0.531250 0.500000 +vt 0.531250 0.919098 +vt 0.500000 0.500000 +vt 0.500000 0.919069 +vt 0.468750 0.500000 +vt 0.468750 0.919115 +vt 0.437500 0.500000 +vt 0.437500 0.919233 +vt 0.406250 0.500000 +vt 0.406250 0.919418 +vt 0.375000 0.500000 +vt 0.375000 0.919664 +vt 0.343750 0.500000 +vt 0.343750 0.919961 +vt 0.312500 0.500000 +vt 0.312500 0.920298 +vt 0.281250 0.500000 +vt 0.281250 0.920662 +vt 0.250000 0.500000 +vt 0.250000 0.920811 +vt 0.268359 0.920817 +vt 0.218750 0.500000 +vt 0.218750 0.920798 +vt 0.187500 0.500000 +vt 0.187500 0.920784 +vt 0.156250 0.500000 +vt 0.156250 0.920770 +vt 0.125000 0.500000 +vt 0.125000 0.920755 +vt 0.093750 0.500000 +vt 0.093750 0.920741 +vt 0.062500 0.500000 +vt 0.062500 0.920728 +vt 0.031250 0.500000 +vt 0.031250 0.920637 +vt 0.053225 0.920725 +vt 0.000000 0.500000 +vt 0.000000 0.920589 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918972 +vt 1.000000 0.918942 +vt 0.937500 0.500000 +vt 0.937500 0.919047 +vt 0.946764 0.919049 +vt 0.906250 0.500000 +vt 0.906250 0.919045 +vt 0.875000 0.500000 +vt 0.875000 0.919046 +vt 0.843750 0.500000 +vt 0.843750 0.919050 +vt 0.812500 0.500000 +vt 0.812500 0.919056 +vt 0.781250 0.500000 +vt 0.781250 0.919065 +vt 0.750000 0.500000 +vt 0.750000 0.919076 +vt 0.718750 0.500000 +vt 0.718750 0.918929 +vt 0.731638 0.919083 +vt 0.687500 0.500000 +vt 0.687500 0.918570 +vt 0.656250 0.500000 +vt 0.656250 0.918241 +vt 0.625000 0.500000 +vt 0.625000 0.917955 +vt 0.593750 0.500000 +vt 0.593750 0.917722 +vt 0.562500 0.500000 +vt 0.562500 0.917552 +vt 0.531250 0.500000 +vt 0.531250 0.917451 +vt 0.500000 0.500000 +vt 0.500000 0.917422 +vt 0.468750 0.500000 +vt 0.468750 0.917468 +vt 0.437500 0.500000 +vt 0.437500 0.917585 +vt 0.406250 0.500000 +vt 0.406250 0.917771 +vt 0.375000 0.500000 +vt 0.375000 0.918017 +vt 0.343750 0.500000 +vt 0.343750 0.918314 +vt 0.312500 0.500000 +vt 0.312500 0.918651 +vt 0.281250 0.500000 +vt 0.281250 0.919015 +vt 0.250000 0.500000 +vt 0.250000 0.919163 +vt 0.268362 0.919170 +vt 0.218750 0.500000 +vt 0.218750 0.919151 +vt 0.187500 0.500000 +vt 0.187500 0.919137 +vt 0.156250 0.500000 +vt 0.156250 0.919123 +vt 0.125000 0.500000 +vt 0.125000 0.919108 +vt 0.093750 0.500000 +vt 0.093750 0.919094 +vt 0.062500 0.500000 +vt 0.062500 0.919081 +vt 0.031250 0.500000 +vt 0.031250 0.918989 +vt 0.053236 0.919077 +vt 0.000000 0.500000 +vt 0.000000 0.918942 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918806 +vt 1.000000 0.918775 +vt 0.937500 0.500000 +vt 0.937500 0.918881 +vt 0.946763 0.918882 +vt 0.906250 0.500000 +vt 0.906250 0.918878 +vt 0.875000 0.500000 +vt 0.875000 0.918879 +vt 0.843750 0.500000 +vt 0.843750 0.918883 +vt 0.812500 0.500000 +vt 0.812500 0.918889 +vt 0.781250 0.500000 +vt 0.781250 0.918898 +vt 0.750000 0.500000 +vt 0.750000 0.918909 +vt 0.718750 0.500000 +vt 0.718750 0.918762 +vt 0.731638 0.918917 +vt 0.687500 0.500000 +vt 0.687500 0.918403 +vt 0.656250 0.500000 +vt 0.656250 0.918075 +vt 0.625000 0.500000 +vt 0.625000 0.917788 +vt 0.593750 0.500000 +vt 0.593750 0.917556 +vt 0.562500 0.500000 +vt 0.562500 0.917385 +vt 0.531250 0.500000 +vt 0.531250 0.917284 +vt 0.500000 0.500000 +vt 0.500000 0.917256 +vt 0.468750 0.500000 +vt 0.468750 0.917301 +vt 0.437500 0.500000 +vt 0.437500 0.917419 +vt 0.406250 0.500000 +vt 0.406250 0.917604 +vt 0.375000 0.500000 +vt 0.375000 0.917850 +vt 0.343750 0.500000 +vt 0.343750 0.918148 +vt 0.312500 0.500000 +vt 0.312500 0.918485 +vt 0.281250 0.500000 +vt 0.281250 0.918848 +vt 0.250000 0.500000 +vt 0.250000 0.918997 +vt 0.268362 0.919003 +vt 0.218750 0.500000 +vt 0.218750 0.918984 +vt 0.187500 0.500000 +vt 0.187500 0.918970 +vt 0.156250 0.500000 +vt 0.156250 0.918956 +vt 0.125000 0.500000 +vt 0.125000 0.918941 +vt 0.093750 0.500000 +vt 0.093750 0.918927 +vt 0.062500 0.500000 +vt 0.062500 0.918914 +vt 0.031250 0.500000 +vt 0.031250 0.918823 +vt 0.053237 0.918911 +vt 0.000000 0.500000 +vt 0.000000 0.918775 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918639 +vt 1.000000 0.918608 +vt 0.937500 0.500000 +vt 0.937500 0.918714 +vt 0.946761 0.918715 +vt 0.906250 0.500000 +vt 0.906250 0.918712 +vt 0.875000 0.500000 +vt 0.875000 0.918713 +vt 0.843750 0.500000 +vt 0.843750 0.918716 +vt 0.812500 0.500000 +vt 0.812500 0.918723 +vt 0.781250 0.500000 +vt 0.781250 0.918732 +vt 0.750000 0.500000 +vt 0.750000 0.918743 +vt 0.718750 0.500000 +vt 0.718750 0.918595 +vt 0.731637 0.918750 +vt 0.687500 0.500000 +vt 0.687500 0.918237 +vt 0.656250 0.500000 +vt 0.656250 0.917908 +vt 0.625000 0.500000 +vt 0.625000 0.917622 +vt 0.593750 0.500000 +vt 0.593750 0.917389 +vt 0.562500 0.500000 +vt 0.562500 0.917219 +vt 0.531250 0.500000 +vt 0.531250 0.917117 +vt 0.500000 0.500000 +vt 0.500000 0.917089 +vt 0.468750 0.500000 +vt 0.468750 0.917134 +vt 0.437500 0.500000 +vt 0.437500 0.917252 +vt 0.406250 0.500000 +vt 0.406250 0.917438 +vt 0.375000 0.500000 +vt 0.375000 0.917684 +vt 0.343750 0.500000 +vt 0.343750 0.917981 +vt 0.312500 0.500000 +vt 0.312500 0.918318 +vt 0.281250 0.500000 +vt 0.281250 0.918681 +vt 0.250000 0.500000 +vt 0.250000 0.918830 +vt 0.268363 0.918837 +vt 0.218750 0.500000 +vt 0.218750 0.918818 +vt 0.187500 0.500000 +vt 0.187500 0.918804 +vt 0.156250 0.500000 +vt 0.156250 0.918789 +vt 0.125000 0.500000 +vt 0.125000 0.918775 +vt 0.093750 0.500000 +vt 0.093750 0.918761 +vt 0.062500 0.500000 +vt 0.062500 0.918748 +vt 0.031250 0.500000 +vt 0.031250 0.918656 +vt 0.053238 0.918744 +vt 0.000000 0.500000 +vt 0.000000 0.918608 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918480 +vt 1.000000 0.918449 +vt 0.937500 0.500000 +vt 0.937500 0.918555 +vt 0.946760 0.918556 +vt 0.906250 0.500000 +vt 0.906250 0.918553 +vt 0.875000 0.500000 +vt 0.875000 0.918554 +vt 0.843750 0.500000 +vt 0.843750 0.918557 +vt 0.812500 0.500000 +vt 0.812500 0.918564 +vt 0.781250 0.500000 +vt 0.781250 0.918572 +vt 0.750000 0.500000 +vt 0.750000 0.918583 +vt 0.718750 0.500000 +vt 0.718750 0.918436 +vt 0.731637 0.918591 +vt 0.687500 0.500000 +vt 0.687500 0.918077 +vt 0.656250 0.500000 +vt 0.656250 0.917749 +vt 0.625000 0.500000 +vt 0.625000 0.917462 +vt 0.593750 0.500000 +vt 0.593750 0.917230 +vt 0.562500 0.500000 +vt 0.562500 0.917060 +vt 0.531250 0.500000 +vt 0.531250 0.916958 +vt 0.500000 0.500000 +vt 0.500000 0.916930 +vt 0.468750 0.500000 +vt 0.468750 0.916975 +vt 0.437500 0.500000 +vt 0.437500 0.917093 +vt 0.406250 0.500000 +vt 0.406250 0.917279 +vt 0.375000 0.500000 +vt 0.375000 0.917524 +vt 0.343750 0.500000 +vt 0.343750 0.917822 +vt 0.312500 0.500000 +vt 0.312500 0.918159 +vt 0.281250 0.500000 +vt 0.281250 0.918522 +vt 0.250000 0.500000 +vt 0.250000 0.918671 +vt 0.268363 0.918677 +vt 0.218750 0.500000 +vt 0.218750 0.918658 +vt 0.187500 0.500000 +vt 0.187500 0.918645 +vt 0.156250 0.500000 +vt 0.156250 0.918630 +vt 0.125000 0.500000 +vt 0.125000 0.918616 +vt 0.093750 0.500000 +vt 0.093750 0.918601 +vt 0.062500 0.500000 +vt 0.062500 0.918588 +vt 0.031250 0.500000 +vt 0.031250 0.918497 +vt 0.053240 0.918585 +vt 0.000000 0.500000 +vt 0.000000 0.918449 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918313 +vt 1.000000 0.918283 +vt 0.937500 0.500000 +vt 0.937500 0.918388 +vt 0.946759 0.918389 +vt 0.906250 0.500000 +vt 0.906250 0.918386 +vt 0.875000 0.500000 +vt 0.875000 0.918387 +vt 0.843750 0.500000 +vt 0.843750 0.918391 +vt 0.812500 0.500000 +vt 0.812500 0.918397 +vt 0.781250 0.500000 +vt 0.781250 0.918406 +vt 0.750000 0.500000 +vt 0.750000 0.918417 +vt 0.718750 0.500000 +vt 0.718750 0.918270 +vt 0.731637 0.918424 +vt 0.687500 0.500000 +vt 0.687500 0.917911 +vt 0.656250 0.500000 +vt 0.656250 0.917582 +vt 0.625000 0.500000 +vt 0.625000 0.917296 +vt 0.593750 0.500000 +vt 0.593750 0.917063 +vt 0.562500 0.500000 +vt 0.562500 0.916893 +vt 0.531250 0.500000 +vt 0.531250 0.916792 +vt 0.500000 0.500000 +vt 0.500000 0.916763 +vt 0.468750 0.500000 +vt 0.468750 0.916809 +vt 0.437500 0.500000 +vt 0.437500 0.916927 +vt 0.406250 0.500000 +vt 0.406250 0.917112 +vt 0.375000 0.500000 +vt 0.375000 0.917358 +vt 0.343750 0.500000 +vt 0.343750 0.917655 +vt 0.312500 0.500000 +vt 0.312500 0.917992 +vt 0.281250 0.500000 +vt 0.281250 0.918356 +vt 0.250000 0.500000 +vt 0.250000 0.918504 +vt 0.268363 0.918511 +vt 0.218750 0.500000 +vt 0.218750 0.918492 +vt 0.187500 0.500000 +vt 0.187500 0.918478 +vt 0.156250 0.500000 +vt 0.156250 0.918464 +vt 0.125000 0.500000 +vt 0.125000 0.918449 +vt 0.093750 0.500000 +vt 0.093750 0.918435 +vt 0.062500 0.500000 +vt 0.062500 0.918422 +vt 0.031250 0.500000 +vt 0.031250 0.918330 +vt 0.053241 0.918418 +vt 0.000000 0.500000 +vt 0.000000 0.918283 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.918147 +vt 1.000000 0.918116 +vt 0.937500 0.500000 +vt 0.937500 0.918222 +vt 0.946758 0.918223 +vt 0.906250 0.500000 +vt 0.906250 0.918220 +vt 0.875000 0.500000 +vt 0.875000 0.918220 +vt 0.843750 0.500000 +vt 0.843750 0.918224 +vt 0.812500 0.500000 +vt 0.812500 0.918230 +vt 0.781250 0.500000 +vt 0.781250 0.918239 +vt 0.750000 0.500000 +vt 0.750000 0.918250 +vt 0.718750 0.500000 +vt 0.718750 0.918103 +vt 0.731636 0.918258 +vt 0.687500 0.500000 +vt 0.687500 0.917744 +vt 0.656250 0.500000 +vt 0.656250 0.917416 +vt 0.625000 0.500000 +vt 0.625000 0.917129 +vt 0.593750 0.500000 +vt 0.593750 0.916897 +vt 0.562500 0.500000 +vt 0.562500 0.916726 +vt 0.531250 0.500000 +vt 0.531250 0.916625 +vt 0.500000 0.500000 +vt 0.500000 0.916596 +vt 0.468750 0.500000 +vt 0.468750 0.916642 +vt 0.437500 0.500000 +vt 0.437500 0.916760 +vt 0.406250 0.500000 +vt 0.406250 0.916945 +vt 0.375000 0.500000 +vt 0.375000 0.917191 +vt 0.343750 0.500000 +vt 0.343750 0.917488 +vt 0.312500 0.500000 +vt 0.312500 0.917825 +vt 0.281250 0.500000 +vt 0.281250 0.918189 +vt 0.250000 0.500000 +vt 0.250000 0.918338 +vt 0.268364 0.918344 +vt 0.218750 0.500000 +vt 0.218750 0.918325 +vt 0.187500 0.500000 +vt 0.187500 0.918311 +vt 0.156250 0.500000 +vt 0.156250 0.918297 +vt 0.125000 0.500000 +vt 0.125000 0.918282 +vt 0.093750 0.500000 +vt 0.093750 0.918268 +vt 0.062500 0.500000 +vt 0.062500 0.918255 +vt 0.031250 0.500000 +vt 0.031250 0.918164 +vt 0.053242 0.918252 +vt 0.000000 0.500000 +vt 0.000000 0.918116 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.641747 +vt 1.000000 0.641595 +vt 0.937500 0.500000 +vt 0.937500 0.642213 +vt 0.939970 0.642195 +vt 0.906250 0.500000 +vt 0.906250 0.642604 +vt 0.875000 0.500000 +vt 0.875000 0.643137 +vt 0.843750 0.500000 +vt 0.843750 0.643793 +vt 0.812500 0.500000 +vt 0.812500 0.644288 +vt 0.823386 0.644283 +vt 0.781250 0.500000 +vt 0.781250 0.644307 +vt 0.750000 0.500000 +vt 0.750000 0.644331 +vt 0.718750 0.500000 +vt 0.718750 0.643729 +vt 0.742341 0.644337 +vt 0.687500 0.500000 +vt 0.687500 0.642958 +vt 0.656250 0.500000 +vt 0.656250 0.642154 +vt 0.660183 0.642340 +vt 0.625000 0.500000 +vt 0.625000 0.640865 +vt 0.593750 0.500000 +vt 0.593750 0.639811 +vt 0.562500 0.500000 +vt 0.562500 0.639034 +vt 0.531250 0.500000 +vt 0.531250 0.638563 +vt 0.500000 0.500000 +vt 0.500000 0.638417 +vt 0.468750 0.500000 +vt 0.468750 0.639015 +vt 0.437500 0.500000 +vt 0.437500 0.639521 +vt 0.406250 0.500000 +vt 0.406250 0.640330 +vt 0.375000 0.500000 +vt 0.375000 0.641412 +vt 0.343750 0.500000 +vt 0.343750 0.642725 +vt 0.312500 0.500000 +vt 0.312500 0.643546 +vt 0.339816 0.642913 +vt 0.281250 0.500000 +vt 0.281250 0.644328 +vt 0.250000 0.500000 +vt 0.250000 0.644934 +vt 0.257659 0.644939 +vt 0.218750 0.500000 +vt 0.218750 0.644906 +vt 0.187500 0.500000 +vt 0.187500 0.644877 +vt 0.156250 0.500000 +vt 0.156250 0.644364 +vt 0.176613 0.644866 +vt 0.125000 0.500000 +vt 0.125000 0.643685 +vt 0.093750 0.500000 +vt 0.093750 0.643123 +vt 0.062500 0.500000 +vt 0.062500 0.642700 +vt 0.031250 0.500000 +vt 0.031250 0.642198 +vt 0.060028 0.642679 +vt 0.000000 0.500000 +vt 0.000000 0.641595 +vt 0.750000 0.490000 +vt 0.703179 0.485389 +vt 0.658156 0.471731 +vt 0.616663 0.449553 +vt 0.580295 0.419706 +vt 0.550447 0.383337 +vt 0.528269 0.341844 +vt 0.514612 0.296822 +vt 0.510000 0.250000 +vt 0.514611 0.203179 +vt 0.528269 0.158156 +vt 0.550447 0.116663 +vt 0.580294 0.080294 +vt 0.616663 0.050447 +vt 0.658156 0.028269 +vt 0.703178 0.014612 +vt 0.750000 0.010000 +vt 0.796822 0.014612 +vt 0.841844 0.028269 +vt 0.883337 0.050447 +vt 0.919706 0.080294 +vt 0.949553 0.116663 +vt 0.971731 0.158156 +vt 0.985388 0.203178 +vt 0.990000 0.250000 +vt 0.985388 0.296822 +vt 0.971731 0.341844 +vt 0.949553 0.383337 +vt 0.919706 0.419706 +vt 0.883337 0.449553 +vt 0.841844 0.471731 +vt 0.796822 0.485388 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.860215 +vt 1.000000 0.860201 +vt 0.937500 0.500000 +vt 0.937500 0.857532 +vt 0.952982 0.860237 +vt 0.906250 0.500000 +vt 0.906250 0.852526 +vt 0.875000 0.500000 +vt 0.875000 0.848166 +vt 0.843750 0.500000 +vt 0.843750 0.844159 +vt 0.847502 0.845043 +vt 0.812500 0.500000 +vt 0.812500 0.838718 +vt 0.781250 0.500000 +vt 0.781250 0.835407 +vt 0.750000 0.500000 +vt 0.750000 0.834354 +vt 0.718750 0.500000 +vt 0.718750 0.841820 +vt 0.687500 0.500000 +vt 0.687500 0.845316 +vt 0.656250 0.500000 +vt 0.656250 0.850928 +vt 0.625000 0.500000 +vt 0.625000 0.856813 +vt 0.638473 0.855202 +vt 0.593750 0.500000 +vt 0.593750 0.861328 +vt 0.562500 0.500000 +vt 0.562500 0.866447 +vt 0.531250 0.500000 +vt 0.531250 0.870924 +vt 0.537242 0.870916 +vt 0.500000 0.500000 +vt 0.500000 0.870938 +vt 0.468750 0.500000 +vt 0.468750 0.870924 +vt 0.437500 0.500000 +vt 0.437500 0.868534 +vt 0.450839 0.870900 +vt 0.406250 0.500000 +vt 0.406250 0.863393 +vt 0.375000 0.500000 +vt 0.375000 0.858848 +vt 0.343750 0.500000 +vt 0.343750 0.855012 +vt 0.344279 0.855140 +vt 0.312500 0.500000 +vt 0.312500 0.849316 +vt 0.281250 0.500000 +vt 0.281250 0.845729 +vt 0.250000 0.500000 +vt 0.250000 0.832081 +vt 0.218750 0.500000 +vt 0.218750 0.833040 +vt 0.187500 0.500000 +vt 0.187500 0.836259 +vt 0.156250 0.500000 +vt 0.156250 0.841617 +vt 0.125000 0.500000 +vt 0.125000 0.846885 +vt 0.141726 0.845005 +vt 0.093750 0.500000 +vt 0.093750 0.851216 +vt 0.062500 0.500000 +vt 0.062500 0.856200 +vt 0.031250 0.500000 +vt 0.031250 0.860215 +vt 0.039392 0.860226 +vt 0.000000 0.500000 +vt 0.000000 0.860201 +vt 0.750000 0.482992 +vt 0.794700 0.478603 +vt 0.796822 0.485388 +vt 0.750000 0.490000 +vt 0.837682 0.465605 +vt 0.841844 0.471731 +vt 0.877294 0.444502 +vt 0.883337 0.449553 +vt 0.912015 0.416114 +vt 0.919706 0.419706 +vt 0.940509 0.381547 +vt 0.949553 0.383337 +vt 0.961682 0.342167 +vt 0.971731 0.341844 +vt 0.974721 0.299644 +vt 0.985388 0.296822 +vt 0.979175 0.259405 +vt 0.990000 0.250000 +vt 0.974567 0.195155 +vt 0.985388 0.203178 +vt 0.961682 0.156923 +vt 0.971731 0.158156 +vt 0.940509 0.117746 +vt 0.949553 0.116663 +vt 0.912015 0.083244 +vt 0.919706 0.080294 +vt 0.877294 0.054889 +vt 0.883337 0.050447 +vt 0.837682 0.033805 +vt 0.841844 0.028269 +vt 0.794700 0.020817 +vt 0.796822 0.014612 +vt 0.750000 0.016431 +vt 0.750000 0.010000 +vt 0.705300 0.020817 +vt 0.703178 0.014612 +vt 0.662318 0.033805 +vt 0.658156 0.028269 +vt 0.622706 0.054889 +vt 0.616663 0.050447 +vt 0.587985 0.083244 +vt 0.580294 0.080294 +vt 0.559491 0.117746 +vt 0.550447 0.116663 +vt 0.538318 0.156923 +vt 0.528269 0.158156 +vt 0.525433 0.195156 +vt 0.514611 0.203179 +vt 0.520825 0.259405 +vt 0.510000 0.250000 +vt 0.525279 0.299645 +vt 0.514612 0.296822 +vt 0.538318 0.342167 +vt 0.528269 0.341844 +vt 0.559491 0.381547 +vt 0.550447 0.383337 +vt 0.587986 0.416114 +vt 0.580295 0.419706 +vt 0.622706 0.444503 +vt 0.616663 0.449553 +vt 0.662319 0.465605 +vt 0.658156 0.471731 +vt 0.705301 0.478603 +vt 0.703179 0.485389 +vt 0.883618 0.139667 +vt 0.870253 0.122115 +vt 0.882961 0.121605 +vt 0.897738 0.142492 +vt 0.312500 0.640754 +vt 0.312500 1.000000 +vt 0.343750 1.000000 +vt 0.343750 0.645698 +vt 0.062500 0.660969 +vt 0.062500 1.000000 +vt 0.093750 1.000000 +vt 0.093750 0.655470 +vt 0.031250 0.664430 +vt 0.031250 1.000000 +vt 0.281250 0.637720 +vt 0.281250 1.000000 +vt 0.294848 0.637738 +vt 0.781250 0.644372 +vt 0.781250 1.000000 +vt 0.812500 1.000000 +vt 0.812500 0.648867 +vt 0.785762 0.644366 +vt 0.843750 0.653683 +vt 0.843750 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.657868 +vt 0.718750 0.644372 +vt 0.718750 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.644385 +vt 0.531250 0.666839 +vt 0.531250 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.663639 +vt 0.187500 0.641237 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.218750 0.637720 +vt 0.207954 0.637734 +vt 0.468750 0.663109 +vt 0.468750 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.667858 +vt 0.656250 0.651105 +vt 0.656250 1.000000 +vt 0.687500 1.000000 +vt 0.687500 0.646269 +vt 0.698890 0.644346 +vt 0.906250 1.000000 +vt 0.906250 0.663520 +vt 0.886933 0.659165 +vt 0.593750 1.000000 +vt 0.593750 0.658748 +vt 0.589576 0.659084 +vt 0.437500 0.659733 +vt 0.437500 1.000000 +vt 0.125000 0.650590 +vt 0.125000 1.000000 +vt 0.156250 1.000000 +vt 0.156250 0.646203 +vt 0.937500 1.000000 +vt 0.937500 0.668698 +vt 0.625000 1.000000 +vt 0.625000 0.655319 +vt 0.250000 0.637707 +vt 0.250000 1.000000 +vt 0.968750 1.000000 +vt 0.968750 0.671811 +vt 1.000000 1.000000 +vt 1.000000 0.672741 +vt 0.000000 0.672741 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.650058 +vt 0.104264 0.653006 +vt 0.406250 1.000000 +vt 0.406250 0.654314 +vt 0.400689 0.653023 +vt 0.312500 0.634039 +vt 0.312500 1.000000 +vt 0.343750 1.000000 +vt 0.343750 0.638984 +vt 0.062500 0.650338 +vt 0.062500 1.000000 +vt 0.093750 1.000000 +vt 0.093750 0.644941 +vt 0.092584 0.645044 +vt 0.031250 0.653799 +vt 0.031250 1.000000 +vt 0.281250 0.629718 +vt 0.281250 1.000000 +vt 0.287257 0.629726 +vt 0.781250 0.636370 +vt 0.781250 1.000000 +vt 0.812500 1.000000 +vt 0.812500 0.639578 +vt 0.793353 0.636354 +vt 0.843750 0.644393 +vt 0.843750 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.648579 +vt 0.718750 0.636370 +vt 0.718750 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.636383 +vt 0.531250 0.661467 +vt 0.531250 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.658267 +vt 0.187500 0.631948 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.218750 0.629718 +vt 0.200381 0.629741 +vt 0.468750 0.657736 +vt 0.468750 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.662485 +vt 0.656250 0.644391 +vt 0.656250 1.000000 +vt 0.687500 1.000000 +vt 0.687500 0.639554 +vt 0.706463 0.636354 +vt 0.906250 1.000000 +vt 0.906250 0.652888 +vt 0.898426 0.651125 +vt 0.593750 1.000000 +vt 0.593750 0.653009 +vt 0.437500 0.654361 +vt 0.437500 1.000000 +vt 0.125000 0.641300 +vt 0.125000 1.000000 +vt 0.156250 1.000000 +vt 0.156250 0.636913 +vt 0.937500 1.000000 +vt 0.937500 0.658067 +vt 0.625000 1.000000 +vt 0.625000 0.648604 +vt 0.602022 0.651127 +vt 0.250000 0.629705 +vt 0.250000 1.000000 +vt 0.968750 1.000000 +vt 0.968750 0.661181 +vt 1.000000 1.000000 +vt 1.000000 0.662110 +vt 0.000000 0.662110 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.643344 +vt 0.406250 1.000000 +vt 0.406250 0.648942 +vt 0.389196 0.644982 +vt 0.299570 0.474715 +vt 0.259435 0.479162 +vt 0.250000 0.490000 +vt 0.296822 0.485388 +vt 0.342015 0.461700 +vt 0.341844 0.471731 +vt 0.381346 0.440556 +vt 0.383337 0.449553 +vt 0.415891 0.412085 +vt 0.419706 0.419706 +vt 0.444279 0.377373 +vt 0.449553 0.383337 +vt 0.465392 0.337750 +vt 0.471731 0.341844 +vt 0.478401 0.294739 +vt 0.485388 0.296822 +vt 0.482795 0.250000 +vt 0.490000 0.250000 +vt 0.478401 0.205261 +vt 0.485388 0.203178 +vt 0.465392 0.162250 +vt 0.471731 0.158156 +vt 0.444279 0.122627 +vt 0.449553 0.116663 +vt 0.415891 0.087915 +vt 0.419706 0.080294 +vt 0.381346 0.059444 +vt 0.383337 0.050447 +vt 0.342015 0.038300 +vt 0.341844 0.028269 +vt 0.299571 0.025285 +vt 0.296822 0.014612 +vt 0.259435 0.020838 +vt 0.250000 0.010000 +vt 0.195183 0.025444 +vt 0.203178 0.014612 +vt 0.157065 0.038300 +vt 0.158156 0.028269 +vt 0.117941 0.059445 +vt 0.116663 0.050447 +vt 0.083462 0.087915 +vt 0.080294 0.080294 +vt 0.055106 0.122627 +vt 0.050447 0.116663 +vt 0.034011 0.162251 +vt 0.028269 0.158156 +vt 0.021011 0.205261 +vt 0.014611 0.203179 +vt 0.016621 0.250000 +vt 0.010000 0.250000 +vt 0.021012 0.294739 +vt 0.014612 0.296822 +vt 0.034012 0.337750 +vt 0.028269 0.341844 +vt 0.055106 0.377373 +vt 0.050447 0.383337 +vt 0.083462 0.412085 +vt 0.080295 0.419706 +vt 0.117942 0.440556 +vt 0.116663 0.449553 +vt 0.157065 0.461700 +vt 0.158156 0.471731 +vt 0.195184 0.474556 +vt 0.203179 0.485389 +vt 0.299571 0.474715 +vt 0.259435 0.479162 +vt 0.250000 0.490000 +vt 0.296822 0.485388 +vt 0.342015 0.461700 +vt 0.341844 0.471731 +vt 0.381346 0.440556 +vt 0.383337 0.449553 +vt 0.415891 0.412085 +vt 0.419706 0.419706 +vt 0.444279 0.377373 +vt 0.449553 0.383337 +vt 0.465392 0.337749 +vt 0.471731 0.341844 +vt 0.478401 0.294739 +vt 0.485388 0.296822 +vt 0.482795 0.250000 +vt 0.490000 0.250000 +vt 0.478401 0.205261 +vt 0.485388 0.203178 +vt 0.465392 0.162250 +vt 0.471731 0.158156 +vt 0.444279 0.122627 +vt 0.449553 0.116663 +vt 0.415891 0.087915 +vt 0.419706 0.080294 +vt 0.381346 0.059444 +vt 0.383337 0.050447 +vt 0.342015 0.038300 +vt 0.341844 0.028269 +vt 0.299571 0.025285 +vt 0.296822 0.014612 +vt 0.259434 0.020838 +vt 0.250000 0.010000 +vt 0.195183 0.025444 +vt 0.203178 0.014612 +vt 0.157065 0.038300 +vt 0.158156 0.028269 +vt 0.117941 0.059445 +vt 0.116663 0.050447 +vt 0.083461 0.087915 +vt 0.080294 0.080294 +vt 0.055106 0.122627 +vt 0.050447 0.116663 +vt 0.034011 0.162251 +vt 0.028269 0.158156 +vt 0.021012 0.205261 +vt 0.014611 0.203179 +vt 0.016621 0.250000 +vt 0.010000 0.250000 +vt 0.021012 0.294739 +vt 0.014612 0.296822 +vt 0.034012 0.337750 +vt 0.028269 0.341844 +vt 0.055106 0.377373 +vt 0.050447 0.383337 +vt 0.083461 0.412085 +vt 0.080295 0.419706 +vt 0.117941 0.440556 +vt 0.116663 0.449553 +vt 0.157066 0.461700 +vt 0.158156 0.471731 +vt 0.195183 0.474556 +vt 0.203179 0.485389 +vt 0.446686 0.268737 +vt 0.446686 0.293982 +vt 0.468467 0.294817 +vt 0.536489 0.292965 +vt 0.553314 0.291391 +vt 0.553314 0.265909 +vt 0.510317 0.268737 +vt 0.467630 0.680009 +vt 0.467394 0.680013 +vt 0.465793 0.680024 +vt 0.464232 0.680021 +vt 0.462730 0.680003 +vt 0.461306 0.679969 +vt 0.459978 0.679922 +vt 0.458764 0.679861 +vt 0.457677 0.679786 +vt 0.456733 0.679700 +vt 0.455942 0.679602 +vt 0.455314 0.679495 +vt 0.454859 0.679380 +vt 0.454580 0.679257 +vt 0.454483 0.679130 +vt 0.454118 0.671916 +vt 0.454202 0.671784 +vt 0.454467 0.671652 +vt 0.454910 0.671519 +vt 0.455525 0.671388 +vt 0.456305 0.671261 +vt 0.457239 0.671139 +vt 0.458315 0.671024 +vt 0.459521 0.670916 +vt 0.460841 0.670818 +vt 0.462259 0.670731 +vt 0.463756 0.670656 +vt 0.465313 0.670593 +vt 0.466913 0.670544 +vt 0.467630 0.670528 +vt 0.138595 0.719635 +vt 0.163912 0.719635 +vt 0.164413 0.530365 +vt 0.139216 0.530365 +vt 0.471880 0.670524 +vt 0.532370 0.670520 +vt 0.532370 0.680011 +vt 0.474152 0.680015 +vt 0.545980 0.670815 +vt 0.547470 0.670886 +vt 0.549033 0.670975 +vt 0.550490 0.671075 +vt 0.551823 0.671184 +vt 0.553015 0.671301 +vt 0.554052 0.671426 +vt 0.554917 0.671555 +vt 0.555609 0.671687 +vt 0.556106 0.671821 +vt 0.556414 0.671955 +vt 0.556521 0.672087 +vt 0.556922 0.679345 +vt 0.556830 0.679473 +vt 0.556539 0.679596 +vt 0.556052 0.679711 +vt 0.555377 0.679818 +vt 0.554522 0.679915 +vt 0.553497 0.680000 +vt 0.552315 0.680074 +vt 0.550991 0.680133 +vt 0.549542 0.680179 +vt 0.547987 0.680211 +vt 0.546344 0.680227 +vt 0.545980 0.680227 +vt 0.541051 0.670664 +vt 0.542672 0.670698 +vt 0.544274 0.670746 +vt 0.545835 0.670808 +vt 0.544753 0.680231 +vt 0.543154 0.680220 +vt 0.541534 0.680195 +vt 0.625000 0.517036 +vt 0.625177 0.514078 +vt 0.625702 0.511210 +vt 0.626560 0.508518 +vt 0.627724 0.506086 +vt 0.629159 0.493011 +vt 0.630821 0.489118 +vt 0.632661 0.485021 +vt 0.634621 0.480845 +vt 0.659927 0.500000 +vt 0.840073 0.500000 +vt 0.698713 0.352661 +vt 0.700673 0.348997 +vt 0.702512 0.345737 +vt 0.704175 0.342980 +vt 0.705610 0.331305 +vt 0.706774 0.330494 +vt 0.707631 0.329597 +vt 0.708156 0.328641 +vt 0.875000 0.517036 +vt 0.875000 0.732964 +vt 0.874469 0.735922 +vt 0.872894 0.738791 +vt 0.870321 0.741482 +vt 0.866829 0.743914 +vt 0.862523 0.746014 +vt 0.857536 0.747718 +vt 0.852018 0.748973 +vt 0.846138 0.749741 +vt 0.840073 0.750000 +vt 0.659927 0.750000 +vt 0.634621 0.769155 +vt 0.632661 0.764979 +vt 0.630821 0.760882 +vt 0.629159 0.756989 +vt 0.627724 0.743914 +vt 0.626560 0.741482 +vt 0.625702 0.738790 +vt 0.625177 0.735922 +vt 0.625000 0.732964 +vt 0.617528 0.284927 +vt 0.625000 0.284927 +vt 0.625000 0.465073 +vt 0.617528 0.465073 +vt 0.617708 0.517036 +vt 0.617708 0.732964 +vt 0.617451 0.014078 +vt 0.625000 0.014078 +vt 0.625000 0.017036 +vt 0.617708 0.017036 +vt 0.617136 0.011210 +vt 0.625000 0.011210 +vt 0.616888 0.008518 +vt 0.625000 0.008518 +vt 0.616761 0.006086 +vt 0.625000 0.006086 +vt 0.616773 0.987523 +vt 0.625000 0.987523 +vt 0.625000 1.000000 +vt 0.616761 1.000000 +vt 0.616908 0.982536 +vt 0.625000 0.982536 +vt 0.617129 0.977018 +vt 0.625000 0.977018 +vt 0.617369 0.971138 +vt 0.625000 0.971138 +vt 0.617528 0.784927 +vt 0.625000 0.784927 +vt 0.625000 0.965073 +vt 0.617528 0.965073 +vt 0.625000 0.232964 +vt 0.617708 0.232964 +vt 0.686581 0.352661 +vt 0.688037 0.348997 +vt 0.617617 0.514078 +vt 0.617794 0.511210 +vt 0.626402 0.769155 +vt 0.624307 0.764979 +vt 0.617617 0.735922 +vt 0.617794 0.738790 +vt 0.618346 0.741482 +vt 0.619306 0.743914 +vt 0.620658 0.756989 +vt 0.622353 0.760882 +vt 0.626402 0.480845 +vt 0.624307 0.485021 +vt 0.622353 0.489118 +vt 0.620658 0.493011 +vt 0.619306 0.506086 +vt 0.618346 0.508518 +vt 0.695585 0.328641 +vt 0.694569 0.329597 +vt 0.693354 0.330494 +vt 0.692058 0.331305 +vt 0.690736 0.342980 +vt 0.689403 0.345737 +vt 0.446686 0.956851 +vt 0.446686 0.982240 +vt 0.507927 0.982240 +vt 0.553314 0.985226 +vt 0.553314 0.959774 +vt 0.533967 0.957965 +vt 0.465946 0.956113 +vt 0.843000 0.719635 +vt 0.868188 0.719635 +vt 0.867205 0.530365 +vt 0.841984 0.530365 +vt 0.444279 0.122627 +vt 0.465392 0.162250 +vt 0.974567 0.195155 +vt 0.961682 0.156923 +vt 0.705301 0.478603 +vt 0.750000 0.482992 +vt 0.525433 0.195156 +vt 0.520825 0.259405 +vt 0.940509 0.117746 +vt 0.525279 0.299645 +vt 0.912015 0.083244 +vt 0.538318 0.342167 +vt 0.877294 0.054889 +vt 0.559491 0.381547 +vt 0.837682 0.033805 +vt 0.587986 0.416114 +vt 0.794700 0.020817 +vt 0.750002 0.416412 +vt 0.724841 0.414169 +vt 0.700650 0.407564 +vt 0.678356 0.396974 +vt 0.658813 0.383046 +vt 0.642775 0.366749 +vt 0.630859 0.349452 +vt 0.623520 0.332966 +vt 0.620516 0.316627 +vt 0.625094 0.147269 +vt 0.630858 0.137271 +vt 0.642775 0.122730 +vt 0.658813 0.108140 +vt 0.678354 0.095230 +vt 0.700650 0.085229 +vt 0.724841 0.078931 +vt 0.750000 0.076783 +vt 0.775159 0.078931 +vt 0.799349 0.085228 +vt 0.821646 0.095230 +vt 0.841187 0.108141 +vt 0.857224 0.122729 +vt 0.869142 0.137271 +vt 0.874906 0.147269 +vt 0.879484 0.316626 +vt 0.876480 0.332966 +vt 0.869142 0.349452 +vt 0.857225 0.366749 +vt 0.841188 0.383045 +vt 0.821646 0.396973 +vt 0.799349 0.407564 +vt 0.775157 0.414169 +vt 0.622706 0.444503 +vt 0.750000 0.016431 +vt 0.837682 0.465605 +vt 0.877294 0.444502 +vt 0.662319 0.465605 +vt 0.705300 0.020817 +vt 0.912015 0.416114 +vt 0.662318 0.033805 +vt 0.940509 0.381547 +vt 0.622706 0.054889 +vt 0.961682 0.342167 +vt 0.794700 0.478603 +vt 0.587985 0.083244 +vt 0.974721 0.299644 +vt 0.559491 0.117746 +vt 0.979175 0.259405 +vt 0.538318 0.156923 +vt 0.778214 0.424177 +vt 0.750001 0.426764 +vt 0.781196 0.434085 +vt 0.750001 0.437008 +vt 0.784029 0.443579 +vt 0.750001 0.446818 +vt 0.786644 0.452349 +vt 0.750001 0.455877 +vt 0.794644 0.478327 +vt 0.750000 0.482711 +vt 0.794664 0.478423 +vt 0.750000 0.482809 +vt 0.794679 0.478500 +vt 0.750000 0.482888 +vt 0.794690 0.478557 +vt 0.750000 0.482945 +vt 0.794697 0.478591 +vt 0.750000 0.482980 +vt 0.805346 0.416545 +vt 0.811194 0.425453 +vt 0.816752 0.434002 +vt 0.821880 0.441913 +vt 0.837574 0.465346 +vt 0.837611 0.465436 +vt 0.837642 0.465508 +vt 0.837664 0.465562 +vt 0.837677 0.465594 +vt 0.830351 0.404267 +vt 0.838842 0.411525 +vt 0.846909 0.418517 +vt 0.854355 0.425009 +vt 0.877138 0.444269 +vt 0.877192 0.444350 +vt 0.877235 0.444416 +vt 0.877268 0.444463 +vt 0.877288 0.444493 +vt 0.852267 0.388034 +vt 0.863074 0.393015 +vt 0.873343 0.397849 +vt 0.882819 0.402374 +vt 0.911816 0.415916 +vt 0.911885 0.415985 +vt 0.911941 0.416040 +vt 0.911981 0.416081 +vt 0.912006 0.416106 +vt 0.870253 0.368883 +vt 0.882961 0.370993 +vt 0.895035 0.373070 +vt 0.906178 0.375072 +vt 0.940275 0.381393 +vt 0.940356 0.381446 +vt 0.940422 0.381489 +vt 0.940470 0.381521 +vt 0.940499 0.381540 +vt 0.883618 0.348354 +vt 0.897738 0.347086 +vt 0.911154 0.345804 +vt 0.923535 0.344652 +vt 0.961422 0.342066 +vt 0.961513 0.342101 +vt 0.961586 0.342129 +vt 0.961639 0.342150 +vt 0.961671 0.342163 +vt 0.891848 0.328711 +vt 0.906838 0.323952 +vt 0.921080 0.318939 +vt 0.934224 0.314003 +vt 0.974444 0.299732 +vt 0.974540 0.299702 +vt 0.974618 0.299677 +vt 0.974674 0.299659 +vt 0.974709 0.299648 +vt 0.895079 0.310492 +vt 0.910291 0.303634 +vt 0.924743 0.296255 +vt 0.938081 0.288635 +vt 0.979102 0.260034 +vt 0.979128 0.259815 +vt 0.979148 0.259639 +vt 0.979163 0.259510 +vt 0.979172 0.259431 +vt 0.890496 0.152207 +vt 0.905703 0.157826 +vt 0.920151 0.163952 +vt 0.933485 0.170340 +vt 0.973945 0.193345 +vt 0.974161 0.193975 +vt 0.974335 0.194482 +vt 0.974463 0.194853 +vt 0.974540 0.195079 +vt 0.911154 0.145562 +vt 0.923536 0.148620 +vt 0.961422 0.156907 +vt 0.961513 0.156913 +vt 0.961586 0.156917 +vt 0.961639 0.156920 +vt 0.961672 0.156923 +vt 0.895035 0.121113 +vt 0.906178 0.120570 +vt 0.940275 0.117896 +vt 0.940356 0.117844 +vt 0.940422 0.117802 +vt 0.940470 0.117771 +vt 0.940499 0.117752 +vt 0.852267 0.104597 +vt 0.863074 0.101019 +vt 0.873342 0.097477 +vt 0.882819 0.094081 +vt 0.911815 0.083441 +vt 0.911885 0.083372 +vt 0.911940 0.083317 +vt 0.911981 0.083277 +vt 0.912006 0.083252 +vt 0.830351 0.089259 +vt 0.838842 0.083234 +vt 0.846910 0.077347 +vt 0.854355 0.071810 +vt 0.877138 0.055122 +vt 0.877192 0.055041 +vt 0.877236 0.054976 +vt 0.877268 0.054928 +vt 0.877288 0.054899 +vt 0.805346 0.077475 +vt 0.811195 0.069690 +vt 0.816752 0.062138 +vt 0.821881 0.055090 +vt 0.837574 0.034064 +vt 0.837612 0.033974 +vt 0.837642 0.033901 +vt 0.837664 0.033848 +vt 0.837677 0.033816 +vt 0.778216 0.070095 +vt 0.781197 0.061250 +vt 0.784030 0.052699 +vt 0.786645 0.044746 +vt 0.794645 0.021093 +vt 0.794664 0.020997 +vt 0.794679 0.020920 +vt 0.794691 0.020863 +vt 0.794698 0.020829 +vt 0.750000 0.067585 +vt 0.750000 0.058386 +vt 0.750000 0.049501 +vt 0.750001 0.041246 +vt 0.750000 0.016712 +vt 0.750000 0.016614 +vt 0.750000 0.016536 +vt 0.750000 0.016478 +vt 0.750000 0.016443 +vt 0.721784 0.070096 +vt 0.718803 0.061250 +vt 0.715970 0.052699 +vt 0.713355 0.044746 +vt 0.705355 0.021093 +vt 0.705336 0.020997 +vt 0.705321 0.020920 +vt 0.705310 0.020863 +vt 0.705303 0.020829 +vt 0.694653 0.077476 +vt 0.688805 0.069691 +vt 0.683248 0.062138 +vt 0.678119 0.055091 +vt 0.662426 0.034064 +vt 0.662388 0.033974 +vt 0.662358 0.033902 +vt 0.662336 0.033849 +vt 0.662323 0.033816 +vt 0.669649 0.089259 +vt 0.661158 0.083234 +vt 0.653090 0.077346 +vt 0.645645 0.071810 +vt 0.622863 0.055122 +vt 0.622808 0.055041 +vt 0.622764 0.054976 +vt 0.622732 0.054928 +vt 0.622712 0.054899 +vt 0.647733 0.104597 +vt 0.636926 0.101019 +vt 0.626658 0.097477 +vt 0.617182 0.094082 +vt 0.588185 0.083441 +vt 0.588115 0.083373 +vt 0.588059 0.083317 +vt 0.588018 0.083277 +vt 0.587993 0.083253 +vt 0.629747 0.122116 +vt 0.617039 0.121605 +vt 0.604965 0.121113 +vt 0.593822 0.120570 +vt 0.559725 0.117896 +vt 0.559644 0.117844 +vt 0.559578 0.117802 +vt 0.559530 0.117771 +vt 0.559501 0.117752 +vt 0.616382 0.139667 +vt 0.602261 0.142493 +vt 0.588846 0.145562 +vt 0.576465 0.148620 +vt 0.538578 0.156907 +vt 0.538487 0.156913 +vt 0.538414 0.156917 +vt 0.538361 0.156920 +vt 0.538328 0.156923 +vt 0.609504 0.152207 +vt 0.594297 0.157827 +vt 0.579849 0.163952 +vt 0.566515 0.170340 +vt 0.526055 0.193345 +vt 0.525839 0.193975 +vt 0.525665 0.194482 +vt 0.525537 0.194853 +vt 0.525460 0.195080 +vt 0.604921 0.310492 +vt 0.589709 0.303634 +vt 0.575257 0.296256 +vt 0.561919 0.288636 +vt 0.520898 0.260035 +vt 0.520872 0.259815 +vt 0.520852 0.259639 +vt 0.520837 0.259510 +vt 0.520828 0.259432 +vt 0.608152 0.328710 +vt 0.593162 0.323952 +vt 0.578920 0.318939 +vt 0.565776 0.314003 +vt 0.525556 0.299733 +vt 0.525460 0.299702 +vt 0.525382 0.299677 +vt 0.525326 0.299659 +vt 0.525291 0.299649 +vt 0.616382 0.348354 +vt 0.602262 0.347086 +vt 0.588846 0.345804 +vt 0.576464 0.344653 +vt 0.538578 0.342067 +vt 0.538488 0.342102 +vt 0.538415 0.342130 +vt 0.538361 0.342150 +vt 0.538329 0.342163 +vt 0.629747 0.368883 +vt 0.617039 0.370993 +vt 0.604965 0.373070 +vt 0.593822 0.375072 +vt 0.559725 0.381393 +vt 0.559644 0.381447 +vt 0.559578 0.381490 +vt 0.559530 0.381521 +vt 0.559501 0.381541 +vt 0.647733 0.388034 +vt 0.636926 0.393015 +vt 0.626658 0.397849 +vt 0.617182 0.402374 +vt 0.588185 0.415916 +vt 0.588115 0.415985 +vt 0.588059 0.416040 +vt 0.588019 0.416081 +vt 0.587994 0.416106 +vt 0.669650 0.404268 +vt 0.661160 0.411525 +vt 0.653091 0.418518 +vt 0.645646 0.425009 +vt 0.622863 0.444270 +vt 0.622808 0.444351 +vt 0.622765 0.444416 +vt 0.622733 0.444464 +vt 0.622713 0.444493 +vt 0.694653 0.416545 +vt 0.688805 0.425453 +vt 0.683248 0.434002 +vt 0.678119 0.441913 +vt 0.662426 0.465346 +vt 0.662389 0.465436 +vt 0.662359 0.465509 +vt 0.662337 0.465562 +vt 0.662323 0.465594 +vt 0.721784 0.424176 +vt 0.718802 0.434085 +vt 0.715970 0.443578 +vt 0.713355 0.452349 +vt 0.705355 0.478327 +vt 0.705336 0.478423 +vt 0.705321 0.478500 +vt 0.705310 0.478557 +vt 0.705303 0.478591 +vt 0.342015 0.461700 +vt 0.299570 0.474715 +vt 0.342015 0.461700 +vt 0.299571 0.474715 +vt 0.465392 0.337749 +vt 0.444279 0.377373 +vt 0.415891 0.087915 +vt 0.381346 0.440556 +vt 0.478401 0.294739 +vt 0.381346 0.059444 +vt 0.482795 0.250000 +vt 0.342015 0.038300 +vt 0.478401 0.205261 +vt 0.299571 0.025285 +vt 0.465392 0.162250 +vt 0.259435 0.020838 +vt 0.444279 0.122627 +vt 0.195183 0.025444 +vt 0.415891 0.087915 +vt 0.157065 0.038300 +vt 0.381346 0.059444 +vt 0.117941 0.059445 +vt 0.342015 0.038300 +vt 0.083462 0.087915 +vt 0.299571 0.025285 +vt 0.055106 0.122627 +vt 0.259434 0.020838 +vt 0.034011 0.162251 +vt 0.195183 0.025444 +vt 0.021011 0.205261 +vt 0.157065 0.038300 +vt 0.016621 0.250000 +vt 0.117941 0.059445 +vt 0.021012 0.294739 +vt 0.083461 0.087915 +vt 0.034012 0.337750 +vt 0.055106 0.122627 +vt 0.055106 0.377373 +vt 0.034011 0.162251 +vt 0.083462 0.412085 +vt 0.336562 0.357122 +vt 0.348988 0.351183 +vt 0.362102 0.341431 +vt 0.374734 0.328121 +vt 0.385800 0.311666 +vt 0.394398 0.292638 +vt 0.399840 0.271793 +vt 0.401703 0.250001 +vt 0.399840 0.228208 +vt 0.394396 0.207360 +vt 0.385800 0.188334 +vt 0.374733 0.171878 +vt 0.362102 0.158569 +vt 0.348988 0.148817 +vt 0.336562 0.142878 +vt 0.322671 0.140245 +vt 0.143120 0.144790 +vt 0.136482 0.148817 +vt 0.125605 0.158569 +vt 0.114577 0.171878 +vt 0.104582 0.188335 +vt 0.096656 0.207360 +vt 0.091577 0.228207 +vt 0.089830 0.250001 +vt 0.091577 0.271792 +vt 0.096655 0.292640 +vt 0.104583 0.311666 +vt 0.114576 0.328121 +vt 0.125605 0.341432 +vt 0.136482 0.351183 +vt 0.143121 0.355210 +vt 0.322671 0.359755 +vt 0.021012 0.205261 +vt 0.117942 0.440556 +vt 0.259435 0.479162 +vt 0.195183 0.474556 +vt 0.016621 0.250000 +vt 0.157065 0.461700 +vt 0.415891 0.412085 +vt 0.381346 0.440556 +vt 0.021012 0.294739 +vt 0.444279 0.377373 +vt 0.034012 0.337750 +vt 0.259435 0.479162 +vt 0.465392 0.337750 +vt 0.055106 0.377373 +vt 0.478401 0.294739 +vt 0.083461 0.412085 +vt 0.336562 0.357122 +vt 0.348988 0.351183 +vt 0.362101 0.341431 +vt 0.374734 0.328122 +vt 0.385801 0.311664 +vt 0.394397 0.292641 +vt 0.399840 0.271793 +vt 0.401703 0.249999 +vt 0.399840 0.228208 +vt 0.394397 0.207360 +vt 0.385801 0.188336 +vt 0.374733 0.171878 +vt 0.362101 0.158569 +vt 0.348989 0.148817 +vt 0.336562 0.142878 +vt 0.322671 0.140245 +vt 0.143120 0.144790 +vt 0.136482 0.148817 +vt 0.125604 0.158569 +vt 0.114578 0.171877 +vt 0.104583 0.188336 +vt 0.096655 0.207362 +vt 0.091576 0.228207 +vt 0.089829 0.249999 +vt 0.091577 0.271792 +vt 0.096656 0.292640 +vt 0.104583 0.311665 +vt 0.114577 0.328122 +vt 0.125605 0.341431 +vt 0.136482 0.351183 +vt 0.143121 0.355210 +vt 0.322671 0.359755 +vt 0.482795 0.250000 +vt 0.117941 0.440556 +vt 0.195183 0.474556 +vt 0.478401 0.205261 +vt 0.157066 0.461700 +vt 0.415891 0.412085 +vt 0.316586 0.378434 +vt 0.332516 0.375517 +vt 0.309487 0.396654 +vt 0.327660 0.393460 +vt 0.301589 0.413965 +vt 0.322253 0.410508 +vt 0.293208 0.429941 +vt 0.316676 0.426241 +vt 0.260215 0.479070 +vt 0.299679 0.474371 +vt 0.259943 0.479102 +vt 0.299642 0.474491 +vt 0.259725 0.479128 +vt 0.299611 0.474587 +vt 0.259565 0.479147 +vt 0.299589 0.474657 +vt 0.259468 0.479158 +vt 0.299575 0.474701 +vt 0.348264 0.368472 +vt 0.347145 0.385334 +vt 0.345841 0.401356 +vt 0.344584 0.416143 +vt 0.341886 0.461380 +vt 0.341932 0.461491 +vt 0.341967 0.461581 +vt 0.341993 0.461646 +vt 0.342010 0.461686 +vt 0.364912 0.356937 +vt 0.367618 0.372062 +vt 0.370251 0.386433 +vt 0.372803 0.399695 +vt 0.381152 0.440272 +vt 0.381220 0.440371 +vt 0.381274 0.440450 +vt 0.381314 0.440508 +vt 0.381338 0.440544 +vt 0.380790 0.341256 +vt 0.386866 0.354068 +vt 0.392816 0.366240 +vt 0.398449 0.377474 +vt 0.415647 0.411848 +vt 0.415732 0.411931 +vt 0.415800 0.411997 +vt 0.415850 0.412045 +vt 0.415881 0.412075 +vt 0.394535 0.321945 +vt 0.403316 0.331970 +vt 0.411867 0.341496 +vt 0.419885 0.350287 +vt 0.443996 0.377191 +vt 0.444095 0.377254 +vt 0.444174 0.377305 +vt 0.444232 0.377343 +vt 0.444267 0.377365 +vt 0.405107 0.299695 +vt 0.415851 0.306579 +vt 0.426269 0.313119 +vt 0.435989 0.319154 +vt 0.465083 0.337626 +vt 0.465190 0.337669 +vt 0.465277 0.337703 +vt 0.465340 0.337729 +vt 0.465378 0.337745 +vt 0.411753 0.275383 +vt 0.423684 0.278884 +vt 0.435225 0.282210 +vt 0.445970 0.285280 +vt 0.478076 0.294677 +vt 0.478189 0.294698 +vt 0.478280 0.294716 +vt 0.478346 0.294729 +vt 0.478387 0.294736 +vt 0.414020 0.250001 +vt 0.426349 0.250001 +vt 0.438264 0.250001 +vt 0.449351 0.250000 +vt 0.482466 0.250000 +vt 0.482580 0.250000 +vt 0.482673 0.250000 +vt 0.482740 0.250000 +vt 0.482781 0.250000 +vt 0.411754 0.224618 +vt 0.423685 0.221117 +vt 0.435226 0.217790 +vt 0.445971 0.214720 +vt 0.478076 0.205324 +vt 0.478189 0.205302 +vt 0.478280 0.205284 +vt 0.478347 0.205271 +vt 0.478387 0.205264 +vt 0.405106 0.200303 +vt 0.415850 0.193420 +vt 0.426267 0.186880 +vt 0.435988 0.180845 +vt 0.465083 0.162374 +vt 0.465190 0.162331 +vt 0.465277 0.162296 +vt 0.465340 0.162271 +vt 0.465379 0.162255 +vt 0.394535 0.178056 +vt 0.403316 0.168029 +vt 0.411867 0.158504 +vt 0.419885 0.149713 +vt 0.443996 0.122809 +vt 0.444095 0.122746 +vt 0.444174 0.122695 +vt 0.444232 0.122658 +vt 0.444267 0.122635 +vt 0.380789 0.158743 +vt 0.386865 0.145932 +vt 0.392814 0.133760 +vt 0.398448 0.122526 +vt 0.415647 0.088152 +vt 0.415732 0.088069 +vt 0.415800 0.088003 +vt 0.415850 0.087955 +vt 0.415881 0.087925 +vt 0.364912 0.143062 +vt 0.367617 0.127938 +vt 0.370251 0.113567 +vt 0.372803 0.100305 +vt 0.381152 0.059728 +vt 0.381220 0.059629 +vt 0.381274 0.059550 +vt 0.381314 0.059492 +vt 0.381338 0.059457 +vt 0.348265 0.131529 +vt 0.347145 0.114666 +vt 0.345842 0.098644 +vt 0.344585 0.083857 +vt 0.341887 0.038620 +vt 0.341932 0.038509 +vt 0.341968 0.038419 +vt 0.341994 0.038354 +vt 0.342010 0.038314 +vt 0.332516 0.124483 +vt 0.327660 0.106540 +vt 0.322253 0.089492 +vt 0.316677 0.073759 +vt 0.299679 0.025629 +vt 0.299641 0.025509 +vt 0.299611 0.025413 +vt 0.299589 0.025342 +vt 0.299575 0.025299 +vt 0.316586 0.121566 +vt 0.309487 0.103346 +vt 0.301589 0.086035 +vt 0.293208 0.070059 +vt 0.260215 0.020930 +vt 0.259943 0.020898 +vt 0.259725 0.020872 +vt 0.259565 0.020854 +vt 0.259467 0.020842 +vt 0.147810 0.126120 +vt 0.153454 0.107910 +vt 0.159871 0.090608 +vt 0.166785 0.074640 +vt 0.192975 0.026214 +vt 0.193743 0.025946 +vt 0.194361 0.025730 +vt 0.194814 0.025573 +vt 0.195090 0.025476 +vt 0.138405 0.131528 +vt 0.141016 0.114665 +vt 0.144129 0.098643 +vt 0.147449 0.083857 +vt 0.157049 0.038620 +vt 0.157055 0.038509 +vt 0.157060 0.038419 +vt 0.157063 0.038353 +vt 0.157065 0.038314 +vt 0.124408 0.143062 +vt 0.123478 0.127938 +vt 0.122687 0.113567 +vt 0.121906 0.100305 +vt 0.118130 0.059727 +vt 0.118064 0.059629 +vt 0.118012 0.059550 +vt 0.117973 0.059492 +vt 0.117949 0.059456 +vt 0.110221 0.158743 +vt 0.105846 0.145932 +vt 0.101502 0.133760 +vt 0.097291 0.122526 +vt 0.083705 0.088151 +vt 0.083620 0.088069 +vt 0.083552 0.088003 +vt 0.083502 0.087955 +vt 0.083472 0.087926 +vt 0.097501 0.178056 +vt 0.090279 0.168030 +vt 0.083134 0.158504 +vt 0.076326 0.149713 +vt 0.055388 0.122809 +vt 0.055290 0.122746 +vt 0.055211 0.122695 +vt 0.055153 0.122658 +vt 0.055118 0.122635 +vt 0.087530 0.200303 +vt 0.078233 0.193420 +vt 0.069091 0.186881 +vt 0.060462 0.180845 +vt 0.034320 0.162374 +vt 0.034213 0.162331 +vt 0.034126 0.162296 +vt 0.034063 0.162271 +vt 0.034024 0.162256 +vt 0.081198 0.224618 +vt 0.070645 0.221117 +vt 0.060312 0.217790 +vt 0.050598 0.214720 +vt 0.021336 0.205323 +vt 0.021223 0.205302 +vt 0.021132 0.205284 +vt 0.021066 0.205272 +vt 0.021025 0.205264 +vt 0.079029 0.250000 +vt 0.068058 0.250000 +vt 0.057327 0.250000 +vt 0.047253 0.250000 +vt 0.016950 0.250001 +vt 0.016835 0.250000 +vt 0.016743 0.250000 +vt 0.016676 0.250000 +vt 0.016634 0.250000 +vt 0.081198 0.275382 +vt 0.070646 0.278883 +vt 0.060312 0.282210 +vt 0.050599 0.285280 +vt 0.021336 0.294677 +vt 0.021223 0.294698 +vt 0.021132 0.294716 +vt 0.021066 0.294729 +vt 0.021025 0.294737 +vt 0.087530 0.299697 +vt 0.078233 0.306580 +vt 0.069091 0.313120 +vt 0.060462 0.319155 +vt 0.034320 0.337627 +vt 0.034213 0.337669 +vt 0.034126 0.337704 +vt 0.034063 0.337729 +vt 0.034025 0.337745 +vt 0.097501 0.321945 +vt 0.090280 0.331971 +vt 0.083134 0.341497 +vt 0.076326 0.350288 +vt 0.055389 0.377191 +vt 0.055291 0.377255 +vt 0.055212 0.377306 +vt 0.055154 0.377343 +vt 0.055118 0.377366 +vt 0.110220 0.341256 +vt 0.105845 0.354068 +vt 0.101502 0.366240 +vt 0.097291 0.377474 +vt 0.083704 0.411848 +vt 0.083620 0.411930 +vt 0.083552 0.411997 +vt 0.083502 0.412045 +vt 0.083472 0.412075 +vt 0.124409 0.356938 +vt 0.123479 0.372063 +vt 0.122688 0.386433 +vt 0.121907 0.399695 +vt 0.118131 0.440273 +vt 0.118065 0.440371 +vt 0.118012 0.440450 +vt 0.117973 0.440508 +vt 0.117950 0.440544 +vt 0.138405 0.368471 +vt 0.141016 0.385335 +vt 0.144128 0.401356 +vt 0.147449 0.416143 +vt 0.157049 0.461380 +vt 0.157055 0.461491 +vt 0.157060 0.461581 +vt 0.157063 0.461646 +vt 0.157065 0.461686 +vt 0.147810 0.373879 +vt 0.153455 0.392090 +vt 0.159872 0.409392 +vt 0.166785 0.425360 +vt 0.192975 0.473787 +vt 0.193743 0.474054 +vt 0.194361 0.474270 +vt 0.194815 0.474427 +vt 0.195091 0.474524 +vt 0.316585 0.378434 +vt 0.332516 0.375518 +vt 0.309487 0.396654 +vt 0.327660 0.393460 +vt 0.301588 0.413964 +vt 0.322253 0.410508 +vt 0.293208 0.429941 +vt 0.316676 0.426241 +vt 0.260215 0.479070 +vt 0.299679 0.474371 +vt 0.259943 0.479102 +vt 0.299641 0.474491 +vt 0.259725 0.479128 +vt 0.299611 0.474587 +vt 0.259565 0.479146 +vt 0.299589 0.474657 +vt 0.259467 0.479158 +vt 0.299575 0.474700 +vt 0.348264 0.368472 +vt 0.347145 0.385335 +vt 0.345842 0.401357 +vt 0.344584 0.416143 +vt 0.341887 0.461380 +vt 0.341931 0.461491 +vt 0.341967 0.461581 +vt 0.341994 0.461646 +vt 0.342010 0.461686 +vt 0.364912 0.356937 +vt 0.367617 0.372062 +vt 0.370251 0.386433 +vt 0.372803 0.399695 +vt 0.381152 0.440272 +vt 0.381219 0.440371 +vt 0.381274 0.440450 +vt 0.381313 0.440508 +vt 0.381338 0.440544 +vt 0.380789 0.341257 +vt 0.386865 0.354068 +vt 0.392815 0.366240 +vt 0.398448 0.377474 +vt 0.415647 0.411849 +vt 0.415732 0.411931 +vt 0.415800 0.411997 +vt 0.415850 0.412045 +vt 0.415881 0.412075 +vt 0.394536 0.321943 +vt 0.403317 0.331969 +vt 0.411867 0.341495 +vt 0.419885 0.350287 +vt 0.443996 0.377191 +vt 0.444094 0.377254 +vt 0.444173 0.377305 +vt 0.444231 0.377342 +vt 0.444267 0.377365 +vt 0.405106 0.299697 +vt 0.415851 0.306580 +vt 0.426267 0.313119 +vt 0.435988 0.319155 +vt 0.465083 0.337626 +vt 0.465190 0.337669 +vt 0.465277 0.337704 +vt 0.465340 0.337729 +vt 0.465379 0.337744 +vt 0.411754 0.275383 +vt 0.423685 0.278884 +vt 0.435225 0.282210 +vt 0.445970 0.285280 +vt 0.478077 0.294677 +vt 0.478190 0.294698 +vt 0.478280 0.294716 +vt 0.478347 0.294729 +vt 0.478388 0.294736 +vt 0.414020 0.249999 +vt 0.426348 0.249999 +vt 0.438264 0.250000 +vt 0.449351 0.250000 +vt 0.482465 0.250000 +vt 0.482580 0.250000 +vt 0.482673 0.250000 +vt 0.482740 0.250000 +vt 0.482781 0.250000 +vt 0.411753 0.224618 +vt 0.423685 0.221117 +vt 0.435225 0.217790 +vt 0.445970 0.214720 +vt 0.478077 0.205324 +vt 0.478189 0.205302 +vt 0.478280 0.205284 +vt 0.478347 0.205272 +vt 0.478387 0.205264 +vt 0.405106 0.200303 +vt 0.415850 0.193420 +vt 0.426267 0.186880 +vt 0.435988 0.180845 +vt 0.465083 0.162374 +vt 0.465190 0.162331 +vt 0.465277 0.162296 +vt 0.465340 0.162271 +vt 0.465379 0.162256 +vt 0.394536 0.178057 +vt 0.403316 0.168031 +vt 0.411867 0.158505 +vt 0.419885 0.149713 +vt 0.443996 0.122809 +vt 0.444095 0.122746 +vt 0.444174 0.122695 +vt 0.444231 0.122658 +vt 0.444267 0.122635 +vt 0.380789 0.158743 +vt 0.386865 0.145932 +vt 0.392814 0.133759 +vt 0.398448 0.122526 +vt 0.415647 0.088152 +vt 0.415732 0.088069 +vt 0.415800 0.088003 +vt 0.415851 0.087955 +vt 0.415881 0.087925 +vt 0.364912 0.143062 +vt 0.367617 0.127938 +vt 0.370251 0.113567 +vt 0.372803 0.100305 +vt 0.381152 0.059728 +vt 0.381220 0.059629 +vt 0.381274 0.059550 +vt 0.381314 0.059492 +vt 0.381338 0.059457 +vt 0.348264 0.131529 +vt 0.347145 0.114666 +vt 0.345841 0.098643 +vt 0.344584 0.083857 +vt 0.341886 0.038620 +vt 0.341931 0.038509 +vt 0.341967 0.038419 +vt 0.341994 0.038354 +vt 0.342010 0.038314 +vt 0.332516 0.124483 +vt 0.327660 0.106540 +vt 0.322253 0.089492 +vt 0.316676 0.073759 +vt 0.299679 0.025629 +vt 0.299641 0.025509 +vt 0.299611 0.025413 +vt 0.299589 0.025343 +vt 0.299575 0.025300 +vt 0.316585 0.121566 +vt 0.309486 0.103346 +vt 0.301589 0.086035 +vt 0.293208 0.070059 +vt 0.260215 0.020930 +vt 0.259943 0.020898 +vt 0.259725 0.020872 +vt 0.259565 0.020854 +vt 0.259467 0.020842 +vt 0.147810 0.126121 +vt 0.153454 0.107910 +vt 0.159871 0.090608 +vt 0.166785 0.074640 +vt 0.192975 0.026214 +vt 0.193743 0.025946 +vt 0.194361 0.025730 +vt 0.194814 0.025573 +vt 0.195090 0.025477 +vt 0.138406 0.131529 +vt 0.141016 0.114666 +vt 0.144128 0.098644 +vt 0.147449 0.083857 +vt 0.157050 0.038620 +vt 0.157055 0.038509 +vt 0.157059 0.038419 +vt 0.157062 0.038354 +vt 0.157065 0.038314 +vt 0.124408 0.143063 +vt 0.123478 0.127938 +vt 0.122687 0.113567 +vt 0.121906 0.100305 +vt 0.118129 0.059728 +vt 0.118064 0.059629 +vt 0.118011 0.059550 +vt 0.117973 0.059492 +vt 0.117949 0.059456 +vt 0.110221 0.158743 +vt 0.105846 0.145932 +vt 0.101502 0.133759 +vt 0.097291 0.122526 +vt 0.083704 0.088151 +vt 0.083620 0.088069 +vt 0.083552 0.088003 +vt 0.083502 0.087955 +vt 0.083471 0.087925 +vt 0.097501 0.178056 +vt 0.090279 0.168031 +vt 0.083133 0.158505 +vt 0.076326 0.149713 +vt 0.055388 0.122809 +vt 0.055290 0.122746 +vt 0.055211 0.122695 +vt 0.055153 0.122658 +vt 0.055118 0.122635 +vt 0.087529 0.200305 +vt 0.078232 0.193422 +vt 0.069091 0.186881 +vt 0.060461 0.180846 +vt 0.034320 0.162374 +vt 0.034213 0.162331 +vt 0.034126 0.162297 +vt 0.034063 0.162271 +vt 0.034024 0.162256 +vt 0.081198 0.224618 +vt 0.070646 0.221117 +vt 0.060312 0.217790 +vt 0.050599 0.214720 +vt 0.021336 0.205323 +vt 0.021223 0.205302 +vt 0.021132 0.205284 +vt 0.021066 0.205272 +vt 0.021025 0.205264 +vt 0.079028 0.250000 +vt 0.068057 0.250000 +vt 0.057327 0.250000 +vt 0.047253 0.250000 +vt 0.016950 0.250000 +vt 0.016835 0.250000 +vt 0.016743 0.250000 +vt 0.016676 0.250000 +vt 0.016634 0.250000 +vt 0.081197 0.275382 +vt 0.070645 0.278883 +vt 0.060311 0.282210 +vt 0.050598 0.285280 +vt 0.021336 0.294677 +vt 0.021223 0.294699 +vt 0.021132 0.294716 +vt 0.021066 0.294729 +vt 0.021025 0.294737 +vt 0.087530 0.299697 +vt 0.078233 0.306580 +vt 0.069092 0.313120 +vt 0.060463 0.319155 +vt 0.034320 0.337627 +vt 0.034213 0.337669 +vt 0.034126 0.337704 +vt 0.034063 0.337729 +vt 0.034025 0.337745 +vt 0.097501 0.321944 +vt 0.090279 0.331970 +vt 0.083134 0.341496 +vt 0.076326 0.350287 +vt 0.055388 0.377191 +vt 0.055290 0.377255 +vt 0.055211 0.377306 +vt 0.055153 0.377343 +vt 0.055118 0.377365 +vt 0.110221 0.341257 +vt 0.105846 0.354068 +vt 0.101503 0.366240 +vt 0.097292 0.377474 +vt 0.083705 0.411849 +vt 0.083620 0.411931 +vt 0.083552 0.411997 +vt 0.083502 0.412045 +vt 0.083472 0.412075 +vt 0.124408 0.356938 +vt 0.123478 0.372063 +vt 0.122687 0.386433 +vt 0.121907 0.399695 +vt 0.118130 0.440272 +vt 0.118065 0.440371 +vt 0.118012 0.440450 +vt 0.117973 0.440509 +vt 0.117949 0.440544 +vt 0.138405 0.368471 +vt 0.141016 0.385334 +vt 0.144128 0.401356 +vt 0.147449 0.416143 +vt 0.157049 0.461380 +vt 0.157055 0.461491 +vt 0.157060 0.461581 +vt 0.157063 0.461646 +vt 0.157065 0.461687 +vt 0.147810 0.373880 +vt 0.153455 0.392090 +vt 0.159871 0.409392 +vt 0.166785 0.425360 +vt 0.192975 0.473786 +vt 0.193744 0.474054 +vt 0.194362 0.474270 +vt 0.194815 0.474427 +vt 0.195091 0.474524 +vt 0.591453 0.262435 +vt 0.591453 0.287802 +vt 0.598010 0.287180 +vt 0.598010 0.261544 +vt 0.584418 0.263388 +vt 0.584418 0.288468 +vt 0.138614 0.723035 +vt 0.163950 0.723035 +vt 0.865645 0.514210 +vt 0.840102 0.514210 +vt 0.840751 0.517190 +vt 0.866181 0.517190 +vt 0.139562 0.738567 +vt 0.165518 0.738567 +vt 0.165032 0.735790 +vt 0.139265 0.735790 +vt 0.866613 0.520336 +vt 0.841273 0.520336 +vt 0.841653 0.523608 +vt 0.866927 0.523608 +vt 0.561341 0.265380 +vt 0.561341 0.290640 +vt 0.569266 0.289896 +vt 0.569266 0.264856 +vt 0.139906 0.750000 +vt 0.166078 0.750000 +vt 0.408547 0.984282 +vt 0.408547 0.958298 +vt 0.401990 0.958543 +vt 0.401990 0.984707 +vt 0.385440 0.958679 +vt 0.375000 0.958922 +vt 0.375000 0.985094 +vt 0.438659 0.982316 +vt 0.438659 0.957158 +vt 0.430734 0.957460 +vt 0.430734 0.982836 +vt 0.164628 0.732810 +vt 0.139019 0.732810 +vt 0.867127 0.526965 +vt 0.841893 0.526965 +vt 0.164311 0.729664 +vt 0.138827 0.729664 +vt 0.439827 0.982239 +vt 0.864273 0.500000 +vt 0.838437 0.500000 +vt 0.839327 0.511433 +vt 0.865006 0.511433 +vt 0.164084 0.726392 +vt 0.138691 0.726392 +vt 0.423009 0.957753 +vt 0.423009 0.983341 +vt 0.415582 0.958034 +vt 0.415582 0.983825 +vt 0.576991 0.289169 +vt 0.576991 0.264344 +vt 0.577708 0.264296 +vt 0.622052 0.286671 +vt 0.625000 0.286563 +vt 0.625000 0.260727 +vt 0.382507 0.971138 +vt 0.394751 0.971138 +vt 0.395373 0.977018 +vt 0.382743 0.977018 +vt 0.606126 0.517036 +vt 0.605610 0.514078 +vt 0.382351 0.284927 +vt 0.394340 0.284927 +vt 0.394340 0.465073 +vt 0.382351 0.465073 +vt 0.605660 0.284927 +vt 0.667314 0.352661 +vt 0.382351 0.784927 +vt 0.394340 0.784927 +vt 0.394340 0.965073 +vt 0.382351 0.965073 +vt 0.395944 0.982536 +vt 0.382961 0.982536 +vt 0.396294 0.987523 +vt 0.383094 0.987523 +vt 0.396324 1.000000 +vt 0.383105 1.000000 +vt 0.383105 0.006086 +vt 0.396324 0.006086 +vt 0.395997 0.008518 +vt 0.382981 0.008518 +vt 0.395353 0.011210 +vt 0.382736 0.011210 +vt 0.394539 0.014078 +vt 0.382427 0.014078 +vt 0.393874 0.017036 +vt 0.382174 0.017036 +vt 0.393874 0.232964 +vt 0.382174 0.232964 +vt 0.667967 0.348997 +vt 0.668581 0.345737 +vt 0.669393 0.342980 +vt 0.670534 0.331305 +vt 0.672041 0.330494 +vt 0.673824 0.329597 +vt 0.675618 0.328641 +vt 0.606126 0.232964 +vt 0.382174 0.517036 +vt 0.393874 0.517036 +vt 0.393874 0.732964 +vt 0.382174 0.732964 +vt 0.605235 0.511210 +vt 0.605301 0.508518 +vt 0.605935 0.506086 +vt 0.607156 0.493011 +vt 0.608902 0.489118 +vt 0.611040 0.485021 +vt 0.613349 0.480845 +vt 0.605660 0.465073 +vt 0.605660 0.784927 +vt 0.613349 0.769155 +vt 0.611040 0.764979 +vt 0.608902 0.760882 +vt 0.607156 0.756989 +vt 0.605935 0.743914 +vt 0.605301 0.741482 +vt 0.605235 0.738790 +vt 0.605610 0.735922 +vt 0.606126 0.732964 +vt 0.394390 0.735922 +vt 0.409156 0.732914 +vt 0.409493 0.735883 +vt 0.424482 0.732766 +vt 0.424432 0.735766 +vt 0.439539 0.732524 +vt 0.438899 0.735576 +vt 0.454020 0.732193 +vt 0.452597 0.735317 +vt 0.467630 0.731780 +vt 0.465246 0.734994 +vt 0.532370 0.731780 +vt 0.534754 0.734994 +vt 0.545980 0.732193 +vt 0.547403 0.735317 +vt 0.560461 0.732524 +vt 0.561101 0.735576 +vt 0.575518 0.732766 +vt 0.575568 0.735766 +vt 0.590844 0.732914 +vt 0.590507 0.735883 +vt 0.394765 0.738790 +vt 0.409706 0.738764 +vt 0.424270 0.738687 +vt 0.438154 0.738560 +vt 0.451072 0.738388 +vt 0.462759 0.738173 +vt 0.537241 0.738173 +vt 0.548928 0.738388 +vt 0.561846 0.738560 +vt 0.575730 0.738687 +vt 0.590294 0.738764 +vt 0.394699 0.741482 +vt 0.409579 0.741466 +vt 0.423942 0.741421 +vt 0.437491 0.741346 +vt 0.449946 0.741245 +vt 0.461053 0.741119 +vt 0.538947 0.741119 +vt 0.550054 0.741245 +vt 0.562509 0.741346 +vt 0.576058 0.741421 +vt 0.590421 0.741466 +vt 0.394065 0.743914 +vt 0.408996 0.743900 +vt 0.423332 0.743859 +vt 0.436777 0.743791 +vt 0.449056 0.743699 +vt 0.459918 0.743584 +vt 0.540082 0.743585 +vt 0.550944 0.743699 +vt 0.563223 0.743791 +vt 0.576669 0.743859 +vt 0.591004 0.743900 +vt 0.392844 0.756989 +vt 0.407937 0.756980 +vt 0.422408 0.756954 +vt 0.435963 0.756911 +vt 0.448326 0.756852 +vt 0.459246 0.756779 +vt 0.540755 0.756779 +vt 0.551674 0.756852 +vt 0.564037 0.756911 +vt 0.577592 0.756954 +vt 0.592063 0.756980 +vt 0.391098 0.760882 +vt 0.406453 0.760892 +vt 0.421211 0.760922 +vt 0.435074 0.760971 +vt 0.447764 0.761038 +vt 0.459022 0.761121 +vt 0.540979 0.761121 +vt 0.552236 0.761038 +vt 0.564926 0.760971 +vt 0.578789 0.760922 +vt 0.593547 0.760892 +vt 0.388960 0.764979 +vt 0.404661 0.765001 +vt 0.419841 0.765066 +vt 0.434200 0.765173 +vt 0.447449 0.765318 +vt 0.459322 0.765498 +vt 0.540678 0.765498 +vt 0.552551 0.765318 +vt 0.565800 0.765173 +vt 0.580159 0.765066 +vt 0.595339 0.765001 +vt 0.386651 0.769155 +vt 0.402788 0.769251 +vt 0.418589 0.769533 +vt 0.433710 0.769991 +vt 0.447821 0.770612 +vt 0.460622 0.771381 +vt 0.539378 0.771381 +vt 0.552179 0.770612 +vt 0.566290 0.769991 +vt 0.581411 0.769533 +vt 0.597212 0.769251 +vt 0.409465 0.785040 +vt 0.424442 0.785373 +vt 0.438940 0.785917 +vt 0.452646 0.786656 +vt 0.465277 0.787575 +vt 0.534723 0.787575 +vt 0.547354 0.786656 +vt 0.561060 0.785917 +vt 0.575558 0.785373 +vt 0.590535 0.785040 +vt 0.386651 0.480845 +vt 0.409465 0.464960 +vt 0.402788 0.480749 +vt 0.424442 0.464627 +vt 0.418589 0.480467 +vt 0.438940 0.464083 +vt 0.433710 0.480009 +vt 0.452646 0.463344 +vt 0.447821 0.479388 +vt 0.465277 0.462425 +vt 0.460622 0.478619 +vt 0.534723 0.462425 +vt 0.539378 0.478619 +vt 0.547354 0.463344 +vt 0.552179 0.479388 +vt 0.561060 0.464083 +vt 0.566290 0.480010 +vt 0.575558 0.464627 +vt 0.581411 0.480467 +vt 0.590535 0.464960 +vt 0.597212 0.480749 +vt 0.388961 0.485021 +vt 0.404661 0.484999 +vt 0.419841 0.484934 +vt 0.434200 0.484827 +vt 0.447449 0.484682 +vt 0.459322 0.484503 +vt 0.540678 0.484502 +vt 0.552551 0.484682 +vt 0.565800 0.484827 +vt 0.580159 0.484934 +vt 0.595339 0.484999 +vt 0.391098 0.489118 +vt 0.406453 0.489108 +vt 0.421211 0.489078 +vt 0.435074 0.489029 +vt 0.447764 0.488962 +vt 0.459022 0.488879 +vt 0.540978 0.488879 +vt 0.552236 0.488962 +vt 0.564926 0.489029 +vt 0.578789 0.489078 +vt 0.593547 0.489108 +vt 0.392844 0.493011 +vt 0.407937 0.493020 +vt 0.422408 0.493046 +vt 0.435963 0.493089 +vt 0.448326 0.493148 +vt 0.459246 0.493221 +vt 0.540755 0.493221 +vt 0.551674 0.493148 +vt 0.564037 0.493089 +vt 0.577592 0.493046 +vt 0.592063 0.493020 +vt 0.394065 0.506086 +vt 0.408996 0.506100 +vt 0.423331 0.506141 +vt 0.436777 0.506209 +vt 0.449056 0.506301 +vt 0.459919 0.506416 +vt 0.540082 0.506416 +vt 0.550944 0.506301 +vt 0.563223 0.506209 +vt 0.576669 0.506141 +vt 0.591004 0.506100 +vt 0.394699 0.508518 +vt 0.409579 0.508534 +vt 0.423942 0.508579 +vt 0.437491 0.508654 +vt 0.449946 0.508755 +vt 0.461053 0.508880 +vt 0.538947 0.508880 +vt 0.550054 0.508755 +vt 0.562509 0.508653 +vt 0.576058 0.508579 +vt 0.590421 0.508534 +vt 0.394765 0.511210 +vt 0.409706 0.511236 +vt 0.424270 0.511313 +vt 0.438154 0.511440 +vt 0.451072 0.511612 +vt 0.462759 0.511827 +vt 0.537241 0.511827 +vt 0.548928 0.511612 +vt 0.561846 0.511440 +vt 0.575730 0.511313 +vt 0.590294 0.511236 +vt 0.394390 0.514078 +vt 0.409493 0.514117 +vt 0.424432 0.514234 +vt 0.438899 0.514424 +vt 0.452597 0.514683 +vt 0.465246 0.515006 +vt 0.534754 0.515006 +vt 0.547403 0.514683 +vt 0.561101 0.514424 +vt 0.575568 0.514234 +vt 0.590507 0.514117 +vt 0.409156 0.517086 +vt 0.424482 0.517234 +vt 0.439539 0.517476 +vt 0.454020 0.517807 +vt 0.467630 0.518220 +vt 0.532370 0.518220 +vt 0.545980 0.517807 +vt 0.560461 0.517476 +vt 0.575518 0.517234 +vt 0.590844 0.517086 +vt 0.324382 0.328641 +vt 0.409681 0.232189 +vt 0.349865 0.327877 +vt 0.426332 0.229893 +vt 0.375536 0.325619 +vt 0.443133 0.226143 +vt 0.400494 0.321932 +vt 0.459506 0.221029 +vt 0.423914 0.316910 +vt 0.475085 0.214657 +vt 0.445085 0.310668 +vt 0.524915 0.214657 +vt 0.554915 0.310668 +vt 0.540494 0.221029 +vt 0.576086 0.316910 +vt 0.556867 0.226143 +vt 0.599506 0.321932 +vt 0.573668 0.229893 +vt 0.624464 0.325619 +vt 0.590319 0.232189 +vt 0.650135 0.327877 +vt 0.326176 0.329597 +vt 0.350844 0.329588 +vt 0.374873 0.329562 +vt 0.397774 0.329520 +vt 0.419081 0.329463 +vt 0.438360 0.329391 +vt 0.561640 0.329391 +vt 0.580919 0.329463 +vt 0.602226 0.329520 +vt 0.625127 0.329562 +vt 0.649156 0.329588 +vt 0.327959 0.330494 +vt 0.352261 0.330489 +vt 0.375703 0.330474 +vt 0.397810 0.330449 +vt 0.418132 0.330415 +vt 0.436256 0.330373 +vt 0.563744 0.330373 +vt 0.581868 0.330415 +vt 0.602190 0.330449 +vt 0.624297 0.330474 +vt 0.647740 0.330489 +vt 0.329466 0.331305 +vt 0.353496 0.331295 +vt 0.376559 0.331268 +vt 0.398185 0.331222 +vt 0.417936 0.331160 +vt 0.435408 0.331083 +vt 0.564592 0.331083 +vt 0.582064 0.331160 +vt 0.601815 0.331222 +vt 0.623442 0.331267 +vt 0.646504 0.331295 +vt 0.330607 0.342980 +vt 0.354466 0.342971 +vt 0.377342 0.342946 +vt 0.398770 0.342905 +vt 0.418313 0.342849 +vt 0.435573 0.342780 +vt 0.564427 0.342780 +vt 0.581687 0.342849 +vt 0.601230 0.342905 +vt 0.622658 0.342946 +vt 0.645534 0.342971 +vt 0.331419 0.345737 +vt 0.355196 0.345745 +vt 0.378059 0.345768 +vt 0.399542 0.345807 +vt 0.419205 0.345859 +vt 0.436648 0.345923 +vt 0.563352 0.345923 +vt 0.580795 0.345859 +vt 0.600458 0.345807 +vt 0.621941 0.345768 +vt 0.644804 0.345745 +vt 0.332033 0.348997 +vt 0.355799 0.349016 +vt 0.378802 0.349072 +vt 0.400570 0.349162 +vt 0.420657 0.349285 +vt 0.438650 0.349438 +vt 0.561350 0.349438 +vt 0.579343 0.349285 +vt 0.599430 0.349162 +vt 0.621198 0.349072 +vt 0.644201 0.349016 +vt 0.332686 0.352661 +vt 0.356703 0.352321 +vt 0.380482 0.351320 +vt 0.403319 0.349693 +vt 0.424571 0.347487 +vt 0.443681 0.344756 +vt 0.556319 0.344756 +vt 0.575429 0.347487 +vt 0.596681 0.349693 +vt 0.619518 0.351320 +vt 0.643297 0.352321 +vt 0.409709 0.284630 +vt 0.425291 0.283753 +vt 0.440571 0.282330 +vt 0.455102 0.280400 +vt 0.468553 0.278002 +vt 0.531447 0.278002 +vt 0.544898 0.280400 +vt 0.559429 0.282330 +vt 0.574709 0.283753 +vt 0.590291 0.284630 +vt 0.605461 0.014078 +vt 0.606126 0.017036 +vt 0.590845 0.017086 +vt 0.590382 0.014117 +vt 0.575522 0.017234 +vt 0.575472 0.014234 +vt 0.560469 0.017476 +vt 0.561035 0.014424 +vt 0.545992 0.017807 +vt 0.547366 0.014683 +vt 0.532386 0.018220 +vt 0.534743 0.015006 +vt 0.467614 0.018220 +vt 0.465257 0.015006 +vt 0.454008 0.017807 +vt 0.452634 0.014683 +vt 0.439531 0.017476 +vt 0.438965 0.014424 +vt 0.424478 0.017234 +vt 0.424528 0.014234 +vt 0.409155 0.017086 +vt 0.409618 0.014117 +vt 0.604647 0.011210 +vt 0.589794 0.011236 +vt 0.575321 0.011313 +vt 0.561527 0.011440 +vt 0.548693 0.011612 +vt 0.537081 0.011827 +vt 0.462920 0.011827 +vt 0.451307 0.011612 +vt 0.438473 0.011440 +vt 0.424679 0.011313 +vt 0.410206 0.011236 +vt 0.604003 0.008518 +vt 0.589310 0.008534 +vt 0.575133 0.008579 +vt 0.561762 0.008653 +vt 0.549471 0.008755 +vt 0.538509 0.008881 +vt 0.461491 0.008881 +vt 0.450529 0.008755 +vt 0.438238 0.008653 +vt 0.424867 0.008579 +vt 0.410690 0.008534 +vt 0.603676 0.006086 +vt 0.589053 0.006097 +vt 0.574991 0.006130 +vt 0.561778 0.006183 +vt 0.549685 0.006257 +vt 0.538956 0.006347 +vt 0.461044 0.006347 +vt 0.450315 0.006257 +vt 0.438222 0.006183 +vt 0.425009 0.006130 +vt 0.410947 0.006097 +vt 0.603706 0.987523 +vt 0.603676 1.000000 +vt 0.589078 1.000016 +vt 0.589099 0.987531 +vt 0.575091 1.000064 +vt 0.575094 0.987554 +vt 0.562000 1.000142 +vt 0.561975 0.987590 +vt 0.550072 1.000248 +vt 0.550010 0.987641 +vt 0.539549 1.000380 +vt 0.539443 0.987703 +vt 0.460451 1.000380 +vt 0.460557 0.987703 +vt 0.449928 1.000248 +vt 0.449990 0.987641 +vt 0.438000 1.000142 +vt 0.438025 0.987591 +vt 0.424909 1.000064 +vt 0.424906 0.987554 +vt 0.410922 1.000016 +vt 0.410901 0.987531 +vt 0.604056 0.982536 +vt 0.589382 0.982523 +vt 0.575274 0.982482 +vt 0.562019 0.982417 +vt 0.549887 0.982327 +vt 0.539124 0.982217 +vt 0.460876 0.982217 +vt 0.450113 0.982327 +vt 0.437981 0.982417 +vt 0.424726 0.982482 +vt 0.410618 0.982523 +vt 0.604627 0.977018 +vt 0.589828 0.976987 +vt 0.575509 0.976896 +vt 0.561961 0.976749 +vt 0.549460 0.976548 +vt 0.538261 0.976299 +vt 0.461739 0.976298 +vt 0.450540 0.976548 +vt 0.438039 0.976749 +vt 0.424491 0.976897 +vt 0.410172 0.976987 +vt 0.605249 0.971138 +vt 0.590288 0.971087 +vt 0.575669 0.970937 +vt 0.561687 0.970694 +vt 0.548627 0.970364 +vt 0.536753 0.969955 +vt 0.463247 0.969955 +vt 0.451373 0.970364 +vt 0.438313 0.970694 +vt 0.424331 0.970937 +vt 0.409712 0.971087 +vt 0.605660 0.965073 +vt 0.590571 0.965008 +vt 0.575685 0.964815 +vt 0.561305 0.964500 +vt 0.547723 0.964071 +vt 0.535215 0.963538 +vt 0.464785 0.963538 +vt 0.452277 0.964071 +vt 0.438695 0.964500 +vt 0.424315 0.964815 +vt 0.409429 0.965008 +vt 0.557644 0.181128 +vt 0.558111 0.154073 +vt 0.542426 0.149621 +vt 0.527559 0.145137 +vt 0.472441 0.145132 +vt 0.457570 0.149469 +vt 0.441883 0.153738 +vt 0.442362 0.181451 +vt 0.560461 0.595597 +vt 0.560461 0.580522 +vt 0.549277 0.579450 +vt 0.545980 0.579133 +vt 0.545980 0.574616 +vt 0.551507 0.574134 +vt 0.555532 0.573062 +vt 0.554479 0.557562 +vt 0.549943 0.556457 +vt 0.545980 0.556192 +vt 0.545980 0.547810 +vt 0.555131 0.546690 +vt 0.555019 0.538829 +vt 0.552235 0.538339 +vt 0.545980 0.538188 +vt 0.541767 0.538089 +vt 0.532370 0.538378 +vt 0.475224 0.538362 +vt 0.467630 0.538369 +vt 0.461428 0.538201 +vt 0.454020 0.538178 +vt 0.449713 0.538300 +vt 0.446356 0.538962 +vt 0.445214 0.544622 +vt 0.445120 0.545840 +vt 0.445817 0.546760 +vt 0.447960 0.547509 +vt 0.454020 0.548130 +vt 0.454020 0.556261 +vt 0.446637 0.556742 +vt 0.445132 0.557585 +vt 0.444842 0.573414 +vt 0.450526 0.574430 +vt 0.454020 0.574693 +vt 0.454020 0.578942 +vt 0.449356 0.579170 +vt 0.443355 0.580162 +vt 0.443802 0.596671 +vt 0.448272 0.597450 +vt 0.454020 0.597914 +vt 0.575627 0.883153 +vt 0.575614 0.864674 +vt 0.561164 0.861915 +vt 0.547507 0.860331 +vt 0.547459 0.837166 +vt 0.547452 0.833918 +vt 0.547442 0.829115 +vt 0.547437 0.826507 +vt 0.547425 0.820732 +vt 0.547419 0.818180 +vt 0.534808 0.817848 +vt 0.465189 0.818875 +vt 0.452577 0.819975 +vt 0.452561 0.827825 +vt 0.452544 0.835834 +vt 0.452489 0.862322 +vt 0.438831 0.865777 +vt 0.438804 0.885218 +vt 0.382260 0.514078 +vt 0.313222 0.352661 +vt 0.311758 0.348997 +vt 0.310385 0.345737 +vt 0.309046 0.342980 +vt 0.307722 0.331305 +vt 0.306428 0.330494 +vt 0.305219 0.329597 +vt 0.304211 0.328641 +vt 0.382077 0.511210 +vt 0.381521 0.508518 +vt 0.380558 0.506086 +vt 0.379204 0.493011 +vt 0.377510 0.489118 +vt 0.375557 0.485021 +vt 0.373464 0.480845 +vt 0.373464 0.769155 +vt 0.375558 0.764979 +vt 0.377510 0.760882 +vt 0.379204 0.756989 +vt 0.380558 0.743914 +vt 0.381520 0.741482 +vt 0.382077 0.738791 +vt 0.382260 0.735922 +vt 0.526501 0.172947 +vt 0.529173 0.173775 +vt 0.534149 0.175238 +vt 0.538518 0.176434 +vt 0.541679 0.177212 +vt 0.541648 0.178386 +vt 0.526475 0.173635 +vt 0.473500 0.172969 +vt 0.478348 0.172997 +vt 0.497711 0.173035 +vt 0.517089 0.173000 +vt 0.473523 0.173579 +vt 0.458323 0.177302 +vt 0.460227 0.176836 +vt 0.464567 0.175652 +vt 0.469522 0.174199 +vt 0.458354 0.178458 +vt 0.464994 0.888604 +vt 0.473586 0.888748 +vt 0.500350 0.889002 +vt 0.528185 0.889088 +vt 0.535007 0.889067 +vt 0.535008 0.889573 +vt 0.464992 0.889240 +vt 0.538813 0.888986 +vt 0.543660 0.888710 +vt 0.547565 0.888328 +vt 0.547566 0.888909 +vt 0.452439 0.886185 +vt 0.452556 0.886252 +vt 0.454945 0.887046 +vt 0.458161 0.887745 +vt 0.462080 0.888322 +vt 0.452437 0.887227 +vt 0.465073 0.860483 +vt 0.534926 0.860150 +vt 0.534927 0.860557 +vt 0.528121 0.860536 +vt 0.500350 0.860622 +vt 0.473646 0.860876 +vt 0.465071 0.861020 +vt 0.462151 0.861210 +vt 0.458224 0.861662 +vt 0.455000 0.862259 +vt 0.452604 0.862976 +vt 0.452487 0.863040 +vt 0.561198 0.886691 +vt 0.548195 0.888275 +vt 0.552577 0.887707 +vt 0.556173 0.887014 +vt 0.558845 0.886221 +vt 0.560490 0.885362 +vt 0.561045 0.884471 +vt 0.560460 0.863556 +vt 0.558811 0.862736 +vt 0.556133 0.862007 +vt 0.552529 0.861399 +vt 0.548139 0.860935 +vt 0.547508 0.860896 +vt 0.543596 0.860639 +vt 0.538740 0.860517 +vt 0.535070 0.911663 +vt 0.464927 0.912819 +vt 0.547616 0.912803 +vt 0.547705 0.955490 +vt 0.547698 0.952452 +vt 0.547688 0.947592 +vt 0.547682 0.944555 +vt 0.547672 0.939695 +vt 0.547665 0.936284 +vt 0.547655 0.931681 +vt 0.547649 0.928574 +vt 0.547641 0.924812 +vt 0.547632 0.920326 +vt 0.547623 0.915934 +vt 0.452380 0.914695 +vt 0.450965 0.863789 +vt 0.450366 0.884517 +vt 0.450921 0.885400 +vt 0.452364 0.922289 +vt 0.452347 0.930606 +vt 0.452332 0.937873 +vt 0.452315 0.946004 +vt 0.452298 0.954345 +vt 0.464921 0.914869 +vt 0.466042 0.914985 +vt 0.472184 0.915344 +vt 0.480451 0.915658 +vt 0.490526 0.915916 +vt 0.502019 0.916108 +vt 0.514491 0.916226 +vt 0.527462 0.916266 +vt 0.535083 0.916243 +vt 0.535084 0.916750 +vt 0.464918 0.915872 +vt 0.464899 0.922758 +vt 0.466020 0.922873 +vt 0.472167 0.923232 +vt 0.480439 0.923547 +vt 0.490519 0.923805 +vt 0.502021 0.923996 +vt 0.514500 0.924115 +vt 0.527479 0.924155 +vt 0.535105 0.924131 +vt 0.535107 0.924821 +vt 0.464895 0.924012 +vt 0.464877 0.930646 +vt 0.465999 0.930762 +vt 0.472149 0.931121 +vt 0.480426 0.931435 +vt 0.490513 0.931693 +vt 0.502022 0.931885 +vt 0.514509 0.932003 +vt 0.527496 0.932043 +vt 0.535127 0.932020 +vt 0.535129 0.932545 +vt 0.464873 0.931990 +vt 0.464856 0.938186 +vt 0.465978 0.938301 +vt 0.472132 0.938660 +vt 0.480415 0.938975 +vt 0.490507 0.939233 +vt 0.502023 0.939425 +vt 0.514518 0.939543 +vt 0.527512 0.939583 +vt 0.535148 0.939559 +vt 0.535150 0.940268 +vt 0.464852 0.939413 +vt 0.464834 0.946075 +vt 0.465957 0.946190 +vt 0.472114 0.946549 +vt 0.480402 0.946864 +vt 0.490501 0.947122 +vt 0.502024 0.947313 +vt 0.514527 0.947432 +vt 0.527530 0.947471 +vt 0.535170 0.947448 +vt 0.535172 0.947923 +vt 0.464830 0.947368 +vt 0.464812 0.953963 +vt 0.465935 0.954078 +vt 0.472097 0.954437 +vt 0.480390 0.954752 +vt 0.490495 0.955010 +vt 0.502025 0.955202 +vt 0.514536 0.955320 +vt 0.527547 0.955360 +vt 0.535192 0.955336 +vt 0.535195 0.956340 +vt 0.464807 0.955438 +vt 0.465183 0.821091 +vt 0.466297 0.821207 +vt 0.472394 0.821566 +vt 0.480599 0.821880 +vt 0.490598 0.822138 +vt 0.502006 0.822330 +vt 0.514385 0.822448 +vt 0.527258 0.822488 +vt 0.534821 0.822465 +vt 0.534822 0.822871 +vt 0.465180 0.822233 +vt 0.465161 0.828980 +vt 0.466276 0.829095 +vt 0.472376 0.829454 +vt 0.480587 0.829769 +vt 0.490592 0.830027 +vt 0.502007 0.830219 +vt 0.514394 0.830337 +vt 0.527275 0.830377 +vt 0.534843 0.830353 +vt 0.534844 0.830780 +vt 0.465158 0.830031 +vt 0.465139 0.836868 +vt 0.466254 0.836984 +vt 0.472358 0.837343 +vt 0.480574 0.837657 +vt 0.490586 0.837915 +vt 0.502008 0.838107 +vt 0.514403 0.838225 +vt 0.527293 0.838265 +vt 0.534865 0.838242 +vt 0.534867 0.838790 +vt 0.465135 0.838166 +vt 0.534830 0.825591 +vt 0.465167 0.826867 +vt 0.535792 0.822391 +vt 0.538054 0.822140 +vt 0.540138 0.821824 +vt 0.541965 0.821456 +vt 0.543465 0.821050 +vt 0.544578 0.820622 +vt 0.545264 0.820188 +vt 0.545495 0.819766 +vt 0.545262 0.819371 +vt 0.544575 0.819021 +vt 0.543459 0.818727 +vt 0.541959 0.818503 +vt 0.540130 0.818357 +vt 0.538044 0.818294 +vt 0.535780 0.818316 +vt 0.534809 0.818360 +vt 0.527249 0.818336 +vt 0.514380 0.818376 +vt 0.502005 0.818494 +vt 0.490600 0.818686 +vt 0.480604 0.818945 +vt 0.472399 0.819259 +vt 0.466302 0.819618 +vt 0.465187 0.819734 +vt 0.464703 0.819978 +vt 0.464470 0.820369 +vt 0.464701 0.820788 +vt 0.534832 0.826248 +vt 0.527266 0.826225 +vt 0.514389 0.826265 +vt 0.502006 0.826383 +vt 0.490594 0.826575 +vt 0.480591 0.826833 +vt 0.472381 0.827148 +vt 0.466280 0.827507 +vt 0.465165 0.827622 +vt 0.534852 0.833633 +vt 0.465145 0.834558 +vt 0.464681 0.827870 +vt 0.464448 0.828262 +vt 0.464679 0.828680 +vt 0.535813 0.830286 +vt 0.538074 0.830049 +vt 0.540158 0.829747 +vt 0.541984 0.829391 +vt 0.543483 0.828995 +vt 0.544596 0.828574 +vt 0.545282 0.828145 +vt 0.545512 0.827724 +vt 0.545280 0.827328 +vt 0.544593 0.826972 +vt 0.543478 0.826672 +vt 0.541977 0.826438 +vt 0.540150 0.826280 +vt 0.538064 0.826203 +vt 0.535802 0.826211 +vt 0.534854 0.834137 +vt 0.527283 0.834113 +vt 0.514398 0.834153 +vt 0.502008 0.834271 +vt 0.490588 0.834463 +vt 0.480579 0.834722 +vt 0.472364 0.835036 +vt 0.466259 0.835395 +vt 0.465143 0.835511 +vt 0.535835 0.838181 +vt 0.538095 0.837959 +vt 0.540178 0.837670 +vt 0.542003 0.837326 +vt 0.543501 0.836940 +vt 0.544614 0.836526 +vt 0.545299 0.836101 +vt 0.545530 0.835681 +vt 0.545297 0.835284 +vt 0.544610 0.834924 +vt 0.543496 0.834616 +vt 0.541996 0.834373 +vt 0.540169 0.834203 +vt 0.538085 0.834113 +vt 0.535824 0.834105 +vt 0.464659 0.835761 +vt 0.464426 0.836155 +vt 0.464657 0.836572 +vt 0.535092 0.919571 +vt 0.464906 0.920335 +vt 0.464925 0.913511 +vt 0.464443 0.913793 +vt 0.464211 0.914202 +vt 0.464441 0.914603 +vt 0.536048 0.916244 +vt 0.538299 0.916167 +vt 0.540373 0.916012 +vt 0.542190 0.915785 +vt 0.543682 0.915494 +vt 0.544790 0.915152 +vt 0.545472 0.914771 +vt 0.545702 0.914367 +vt 0.545470 0.913954 +vt 0.544786 0.913550 +vt 0.543677 0.913172 +vt 0.542183 0.912832 +vt 0.540364 0.912544 +vt 0.538289 0.912320 +vt 0.536037 0.912169 +vt 0.535072 0.912138 +vt 0.527453 0.912114 +vt 0.514487 0.912154 +vt 0.502019 0.912272 +vt 0.490528 0.912464 +vt 0.480456 0.912722 +vt 0.472189 0.913037 +vt 0.466046 0.913396 +vt 0.536070 0.924138 +vt 0.538319 0.924076 +vt 0.540392 0.923934 +vt 0.542209 0.923719 +vt 0.543700 0.923439 +vt 0.544808 0.923104 +vt 0.545489 0.922727 +vt 0.545719 0.922324 +vt 0.545487 0.921910 +vt 0.544804 0.921502 +vt 0.543695 0.921116 +vt 0.542202 0.920766 +vt 0.540384 0.920467 +vt 0.538310 0.920230 +vt 0.536059 0.920063 +vt 0.535094 0.920026 +vt 0.535115 0.927526 +vt 0.464883 0.928429 +vt 0.464903 0.921400 +vt 0.464421 0.921685 +vt 0.464189 0.922095 +vt 0.464419 0.922495 +vt 0.527470 0.920003 +vt 0.514496 0.920043 +vt 0.502020 0.920161 +vt 0.490522 0.920353 +vt 0.480444 0.920611 +vt 0.472172 0.920925 +vt 0.466025 0.921284 +vt 0.536092 0.932033 +vt 0.538340 0.931985 +vt 0.540412 0.931858 +vt 0.542228 0.931654 +vt 0.543718 0.931384 +vt 0.544825 0.931056 +vt 0.545507 0.930684 +vt 0.545736 0.930282 +vt 0.545505 0.929867 +vt 0.544822 0.929454 +vt 0.543713 0.929061 +vt 0.542221 0.928701 +vt 0.540404 0.928390 +vt 0.538330 0.928139 +vt 0.536080 0.927958 +vt 0.535116 0.927915 +vt 0.464881 0.929288 +vt 0.464399 0.929576 +vt 0.464168 0.929988 +vt 0.464397 0.930387 +vt 0.464862 0.935759 +vt 0.527487 0.927891 +vt 0.514505 0.927931 +vt 0.502021 0.928049 +vt 0.490516 0.928241 +vt 0.480431 0.928499 +vt 0.472154 0.928814 +vt 0.466003 0.929173 +vt 0.535136 0.935261 +vt 0.531120 0.935227 +vt 0.535157 0.942835 +vt 0.464840 0.943714 +vt 0.536112 0.939579 +vt 0.538360 0.939545 +vt 0.540431 0.939430 +vt 0.542246 0.939238 +vt 0.543735 0.938977 +vt 0.544842 0.938656 +vt 0.545524 0.938288 +vt 0.545753 0.937888 +vt 0.545522 0.937471 +vt 0.544839 0.937054 +vt 0.543730 0.936654 +vt 0.542239 0.936285 +vt 0.540422 0.935963 +vt 0.538350 0.935699 +vt 0.536101 0.935504 +vt 0.535137 0.935454 +vt 0.527503 0.935431 +vt 0.514513 0.935471 +vt 0.502022 0.935589 +vt 0.490510 0.935781 +vt 0.480419 0.936039 +vt 0.472137 0.936354 +vt 0.465983 0.936713 +vt 0.464859 0.936828 +vt 0.464378 0.937119 +vt 0.464147 0.937533 +vt 0.464376 0.937929 +vt 0.535179 0.950582 +vt 0.464819 0.951322 +vt 0.464837 0.944716 +vt 0.464356 0.945011 +vt 0.464125 0.945426 +vt 0.464354 0.945821 +vt 0.536134 0.947474 +vt 0.538380 0.947455 +vt 0.540451 0.947353 +vt 0.542265 0.947173 +vt 0.543754 0.946921 +vt 0.544860 0.946608 +vt 0.545541 0.946244 +vt 0.545770 0.945846 +vt 0.545539 0.945427 +vt 0.544857 0.945006 +vt 0.543749 0.944598 +vt 0.542258 0.944220 +vt 0.540442 0.943886 +vt 0.538370 0.943609 +vt 0.536123 0.943399 +vt 0.535159 0.943343 +vt 0.527520 0.943320 +vt 0.514522 0.943359 +vt 0.502023 0.943478 +vt 0.490504 0.943669 +vt 0.480407 0.943928 +vt 0.472120 0.944242 +vt 0.465961 0.944601 +vt 0.536155 0.955369 +vt 0.538401 0.955364 +vt 0.540470 0.955276 +vt 0.542284 0.955108 +vt 0.543772 0.954866 +vt 0.544878 0.954559 +vt 0.545558 0.954200 +vt 0.545787 0.953803 +vt 0.545557 0.953384 +vt 0.544874 0.952958 +vt 0.543767 0.952543 +vt 0.542277 0.952155 +vt 0.540462 0.951809 +vt 0.538391 0.951518 +vt 0.536144 0.951293 +vt 0.535181 0.951231 +vt 0.527538 0.951208 +vt 0.514531 0.951248 +vt 0.502024 0.951366 +vt 0.490498 0.951558 +vt 0.480394 0.951816 +vt 0.472102 0.952131 +vt 0.465940 0.952489 +vt 0.464815 0.952605 +vt 0.464335 0.952902 +vt 0.464103 0.953319 +vt 0.464332 0.953713 +vt 0.467630 0.598229 +vt 0.482031 0.598301 +vt 0.505578 0.598337 +vt 0.529106 0.598297 +vt 0.532370 0.598281 +vt 0.532370 0.598752 +vt 0.496148 0.598737 +vt 0.467630 0.598688 +vt 0.536478 0.598141 +vt 0.540899 0.597911 +vt 0.544769 0.597621 +vt 0.545980 0.597492 +vt 0.545980 0.598054 +vt 0.537623 0.598513 +vt 0.454020 0.597271 +vt 0.454339 0.597321 +vt 0.457541 0.597656 +vt 0.461436 0.597943 +vt 0.465876 0.598171 +vt 0.461352 0.598341 +vt 0.532370 0.575315 +vt 0.535312 0.575190 +vt 0.539732 0.574922 +vt 0.543603 0.574600 +vt 0.545980 0.574327 +vt 0.540966 0.575085 +vt 0.532370 0.575499 +vt 0.454020 0.574345 +vt 0.456374 0.574612 +vt 0.460270 0.574932 +vt 0.464710 0.575197 +vt 0.467630 0.575319 +vt 0.467630 0.575490 +vt 0.460247 0.575188 +vt 0.476540 0.575363 +vt 0.500086 0.575400 +vt 0.523615 0.575360 +vt 0.517086 0.575557 +vt 0.164866 0.520336 +vt 0.139514 0.520336 +vt 0.139356 0.523608 +vt 0.164621 0.523608 +vt 0.569266 0.961263 +vt 0.569266 0.986271 +vt 0.575349 0.986668 +vt 0.576991 0.986888 +vt 0.576991 0.961981 +vt 0.430734 0.293368 +vt 0.430734 0.267979 +vt 0.423009 0.267468 +vt 0.423009 0.293068 +vt 0.165619 0.514210 +vt 0.139992 0.514210 +vt 0.139726 0.517190 +vt 0.165200 0.517190 +vt 0.584417 0.987879 +vt 0.584418 0.962669 +vt 0.840546 0.738567 +vt 0.866185 0.738567 +vt 0.866796 0.735790 +vt 0.841291 0.735790 +vt 0.164470 0.526965 +vt 0.139257 0.526965 +vt 0.561341 0.960524 +vt 0.561341 0.985753 +vt 0.166693 0.500000 +vt 0.140668 0.500000 +vt 0.140307 0.511433 +vt 0.166119 0.511433 +vt 0.842945 0.723035 +vt 0.868145 0.723035 +vt 0.442214 0.268737 +vt 0.438659 0.268502 +vt 0.438659 0.293674 +vt 0.841911 0.732810 +vt 0.867303 0.732810 +vt 0.867700 0.729664 +vt 0.842397 0.729664 +vt 0.867982 0.726392 +vt 0.842743 0.726392 +vt 0.415582 0.292779 +vt 0.415582 0.266975 +vt 0.408547 0.266507 +vt 0.408547 0.292504 +vt 0.591453 0.963320 +vt 0.591453 0.988815 +vt 0.598010 0.989686 +vt 0.598010 0.963924 +vt 0.401990 0.292246 +vt 0.401990 0.266069 +vt 0.375000 0.265668 +vt 0.375000 0.291693 +vt 0.396107 0.292194 +vt 0.532370 0.548353 +vt 0.536303 0.548240 +vt 0.537935 0.548186 +vt 0.539544 0.548118 +vt 0.541113 0.548036 +vt 0.542620 0.547942 +vt 0.544047 0.547837 +vt 0.545376 0.547723 +vt 0.545980 0.547661 +vt 0.541102 0.548268 +vt 0.532370 0.548589 +vt 0.625000 0.990479 +vt 0.625000 0.964684 +vt 0.611441 0.964197 +vt 0.467630 0.548358 +vt 0.467630 0.548605 +vt 0.839684 0.750000 +vt 0.865479 0.750000 +vt 0.454020 0.547664 +vt 0.454762 0.547739 +vt 0.456083 0.547853 +vt 0.457501 0.547957 +vt 0.458996 0.548050 +vt 0.460551 0.548130 +vt 0.462145 0.548197 +vt 0.463759 0.548249 +vt 0.532370 0.538669 +vt 0.467630 0.538673 +vt 0.540181 0.556128 +vt 0.532370 0.556089 +vt 0.463252 0.538535 +vt 0.461639 0.538491 +vt 0.460047 0.538463 +vt 0.458496 0.538451 +vt 0.457006 0.538455 +vt 0.455595 0.538474 +vt 0.454282 0.538509 +vt 0.454020 0.538520 +vt 0.546653 0.547597 +vt 0.547850 0.547463 +vt 0.548888 0.547324 +vt 0.549754 0.547183 +vt 0.550438 0.547040 +vt 0.550930 0.546898 +vt 0.551225 0.546758 +vt 0.551318 0.546623 +vt 0.550890 0.539253 +vt 0.550781 0.539124 +vt 0.550468 0.539003 +vt 0.549964 0.538892 +vt 0.549263 0.538792 +vt 0.548386 0.538705 +vt 0.547336 0.538631 +vt 0.546128 0.538571 +vt 0.545980 0.538566 +vt 0.467630 0.556080 +vt 0.544890 0.538523 +vt 0.543554 0.538489 +vt 0.542120 0.538471 +vt 0.540607 0.538469 +vt 0.539035 0.538483 +vt 0.537422 0.538513 +vt 0.535790 0.538559 +vt 0.452996 0.538557 +vt 0.451826 0.538618 +vt 0.450812 0.538694 +vt 0.449966 0.538783 +vt 0.449298 0.538885 +vt 0.448817 0.538997 +vt 0.448529 0.539119 +vt 0.448438 0.539247 +vt 0.448857 0.546645 +vt 0.448963 0.546780 +vt 0.449266 0.546920 +vt 0.449761 0.547062 +vt 0.450443 0.547204 +vt 0.451302 0.547345 +vt 0.452329 0.547483 +vt 0.453509 0.547615 +vt 0.532370 0.556359 +vt 0.519050 0.556293 +vt 0.495504 0.556256 +vt 0.471975 0.556296 +vt 0.467630 0.556318 +vt 0.545980 0.556809 +vt 0.545891 0.556798 +vt 0.542689 0.556575 +vt 0.538793 0.556426 +vt 0.534354 0.556355 +vt 0.546852 0.574234 +vt 0.549432 0.573836 +vt 0.551011 0.573428 +vt 0.551530 0.573025 +vt 0.550122 0.557414 +vt 0.548501 0.557078 +vt 0.463752 0.556313 +vt 0.459331 0.556387 +vt 0.455461 0.556541 +vt 0.454020 0.556643 +vt 0.452120 0.556761 +vt 0.449540 0.557044 +vt 0.447961 0.557382 +vt 0.448287 0.573039 +vt 0.448850 0.573442 +vt 0.450471 0.573850 +vt 0.453089 0.574247 +vt 0.467630 0.578763 +vt 0.459301 0.578810 +vt 0.539182 0.578979 +vt 0.532370 0.578843 +vt 0.496365 0.578760 +vt 0.557670 0.596192 +vt 0.552145 0.597496 +vt 0.548132 0.597281 +vt 0.550712 0.596906 +vt 0.552291 0.596511 +vt 0.552810 0.596113 +vt 0.551403 0.580482 +vt 0.549781 0.580132 +vt 0.547163 0.579829 +vt 0.545980 0.579747 +vt 0.467630 0.579284 +vt 0.464918 0.579303 +vt 0.460497 0.579415 +vt 0.456627 0.579601 +vt 0.454020 0.579808 +vt 0.453400 0.579852 +vt 0.450821 0.580157 +vt 0.449241 0.580509 +vt 0.449568 0.596155 +vt 0.450130 0.596553 +vt 0.451751 0.596947 +vt 0.543855 0.579581 +vt 0.539960 0.579398 +vt 0.535520 0.579289 +vt 0.532370 0.579269 +vt 0.524541 0.579230 +vt 0.500995 0.579193 +vt 0.477467 0.579233 +vt 0.457596 0.150420 +vt 0.457531 0.150439 +vt 0.454683 0.151378 +vt 0.452922 0.152119 +vt 0.451320 0.177844 +vt 0.451902 0.178085 +vt 0.453660 0.178010 +vt 0.456527 0.177621 +vt 0.542408 0.150270 +vt 0.540908 0.149733 +vt 0.536659 0.148337 +vt 0.531804 0.146843 +vt 0.527541 0.145601 +vt 0.523834 0.145580 +vt 0.503709 0.145543 +vt 0.483568 0.145577 +vt 0.472460 0.145638 +vt 0.470203 0.146294 +vt 0.465328 0.147790 +vt 0.461050 0.149191 +vt 0.542148 0.177296 +vt 0.545058 0.177698 +vt 0.546864 0.177787 +vt 0.547496 0.177560 +vt 0.549084 0.152558 +vt 0.547369 0.151824 +vt 0.544564 0.150892 +vt 0.378675 0.784927 +vt 0.375000 0.784927 +vt 0.365379 0.769155 +vt 0.369422 0.769155 +vt 0.378542 0.735922 +vt 0.374823 0.735922 +vt 0.375000 0.732964 +vt 0.378587 0.732964 +vt 0.378188 0.738791 +vt 0.374298 0.738791 +vt 0.377480 0.741482 +vt 0.373440 0.741482 +vt 0.376417 0.743914 +vt 0.372276 0.743914 +vt 0.375023 0.756989 +vt 0.370841 0.756989 +vt 0.373344 0.760882 +vt 0.369179 0.760882 +vt 0.371449 0.764979 +vt 0.367339 0.764979 +vt 0.369422 0.480845 +vt 0.365379 0.480845 +vt 0.375000 0.465073 +vt 0.378675 0.465072 +vt 0.371448 0.485021 +vt 0.367339 0.485021 +vt 0.373344 0.489118 +vt 0.369179 0.489118 +vt 0.375023 0.493011 +vt 0.370841 0.493011 +vt 0.376417 0.506086 +vt 0.372276 0.506086 +vt 0.377480 0.508518 +vt 0.373440 0.508518 +vt 0.378188 0.511210 +vt 0.374298 0.511210 +vt 0.378542 0.514078 +vt 0.374823 0.514078 +vt 0.298027 0.328641 +vt 0.291844 0.328641 +vt 0.375000 0.232964 +vt 0.378587 0.232964 +vt 0.298794 0.329597 +vt 0.292369 0.329597 +vt 0.299827 0.330494 +vt 0.293226 0.330494 +vt 0.301056 0.331305 +vt 0.294390 0.331305 +vt 0.302436 0.342980 +vt 0.295826 0.342980 +vt 0.303936 0.345737 +vt 0.297488 0.345737 +vt 0.305543 0.348997 +vt 0.299327 0.348997 +vt 0.307255 0.352661 +vt 0.301287 0.352661 +vt 0.378675 0.284927 +vt 0.375000 0.284927 +vt 0.378587 0.517036 +vt 0.375000 0.517036 +vt 0.153997 0.749394 +vt 0.159968 0.749648 +vt 0.159928 0.750000 +vt 0.153862 0.749741 +vt 0.148238 0.748641 +vt 0.147982 0.748973 +vt 0.142835 0.747412 +vt 0.142464 0.747718 +vt 0.137950 0.745744 +vt 0.137477 0.746014 +vt 0.133733 0.743687 +vt 0.133171 0.743914 +vt 0.130312 0.741304 +vt 0.129679 0.741482 +vt 0.127792 0.738667 +vt 0.127106 0.738790 +vt 0.126248 0.735856 +vt 0.125531 0.735922 +vt 0.125726 0.732942 +vt 0.125000 0.732964 +vt 0.169763 0.490471 +vt 0.292618 0.361712 +vt 0.159928 0.500000 +vt 0.298181 0.350627 +vt 0.296589 0.347198 +vt 0.295017 0.343927 +vt 0.293615 0.333576 +vt 0.292424 0.332241 +vt 0.291361 0.331590 +vt 0.282251 0.340420 +vt 0.136458 0.505155 +vt 0.125000 0.517036 +vt 0.374398 0.516968 +vt 0.374249 0.514049 +vt 0.373745 0.511224 +vt 0.372912 0.508555 +vt 0.371776 0.505569 +vt 0.370372 0.493851 +vt 0.368737 0.489533 +vt 0.366905 0.485532 +vt 0.363769 0.482653 +vt 0.341247 0.499129 +vt 0.340072 0.500000 +vt 0.341215 0.750822 +vt 0.363741 0.767301 +vt 0.340072 0.750000 +vt 0.366879 0.764425 +vt 0.368712 0.760424 +vt 0.370347 0.756108 +vt 0.371752 0.744390 +vt 0.372888 0.741404 +vt 0.373721 0.738735 +vt 0.374226 0.735909 +vt 0.374373 0.732988 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.378675 0.965073 +vt 0.378754 0.971138 +vt 0.378587 0.017036 +vt 0.378713 0.014078 +vt 0.378868 0.011210 +vt 0.378990 0.008518 +vt 0.379052 0.006086 +vt 0.379047 0.987523 +vt 0.379052 1.000000 +vt 0.378980 0.982536 +vt 0.378872 0.977018 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.375000 0.971138 +vt 0.375000 0.977018 +vt 0.375000 0.965073 +vt 0.375000 0.982536 +vt 0.375000 0.987523 +vt 0.375000 1.000000 +vt 0.375000 0.006086 +vt 0.375000 0.008518 +vt 0.375000 0.011210 +vt 0.375000 0.014078 +vt 0.375000 0.017036 +vt 0.080767 0.010727 +vt 0.101015 0.008243 +vt 0.123057 0.007398 +vt 0.879560 0.009348 +vt 0.901597 0.010307 +vt 0.921831 0.012895 +vt 0.940830 0.017091 +vt 0.958017 0.022768 +vt 0.972867 0.029761 +vt 0.984923 0.037859 +vt 0.993808 0.046818 +vt 0.999244 0.056364 +vt 1.001155 0.066733 +vt 0.998842 0.937864 +vt 0.996875 0.948224 +vt 0.991389 0.957741 +vt 0.982456 0.966654 +vt 0.970358 0.974690 +vt 0.955470 0.981606 +vt 0.938253 0.987196 +vt 0.919233 0.991292 +vt 0.898985 0.993777 +vt 0.876943 0.994622 +vt 0.752149 0.994300 +vt 0.747294 0.993746 +vt 0.742451 0.991930 +vt 0.738009 0.988859 +vt 0.737270 0.984545 +vt 0.737121 0.979515 +vt 0.735788 0.976546 +vt 0.732324 0.972670 +vt 0.726919 0.968607 +vt 0.719560 0.965614 +vt 0.707734 0.962334 +vt 0.701326 0.961680 +vt 0.288327 0.959693 +vt 0.274307 0.962601 +vt 0.264946 0.966067 +vt 0.257324 0.970708 +vt 0.253593 0.974914 +vt 0.252584 0.979132 +vt 0.252355 0.983981 +vt 0.251823 0.986845 +vt 0.247870 0.989181 +vt 0.243343 0.990771 +vt 0.235164 0.992535 +vt 0.226608 0.992945 +vt 0.120440 0.992672 +vt 0.098403 0.991713 +vt 0.078169 0.989124 +vt 0.059170 0.984929 +vt 0.041983 0.979251 +vt 0.027133 0.972259 +vt 0.015077 0.964160 +vt 0.006192 0.955201 +vt 0.000756 0.945655 +vt -0.001155 0.935286 +vt 0.001158 0.064155 +vt 0.003125 0.053796 +vt 0.008611 0.044278 +vt 0.017543 0.035365 +vt 0.029642 0.027329 +vt 0.044530 0.020413 +vt 0.061747 0.014824 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 0.0980 0.9952 0.0000 +vn 0.2903 0.9569 0.0000 +vn 0.4714 0.8819 0.0000 +vn 0.6344 0.7730 -0.0000 +vn 0.7730 0.6344 0.0000 +vn 0.8819 0.4714 0.0000 +vn 0.9569 0.2903 0.0000 +vn 0.9952 0.0980 -0.0000 +vn 0.9952 -0.0980 -0.0000 +vn 0.9569 -0.2903 0.0000 +vn 0.8819 -0.4714 -0.0000 +vn 0.7730 -0.6344 0.0000 +vn 0.6344 -0.7730 0.0000 +vn 0.4714 -0.8819 0.0000 +vn 0.2903 -0.9569 0.0000 +vn 0.0980 -0.9952 -0.0000 +vn -0.0980 -0.9952 -0.0000 +vn -0.2903 -0.9569 0.0000 +vn -0.4714 -0.8819 0.0000 +vn -0.6344 -0.7730 -0.0000 +vn -0.7730 -0.6344 -0.0000 +vn -0.8819 -0.4714 -0.0000 +vn -0.9569 -0.2903 0.0000 +vn -0.9952 -0.0980 0.0000 +vn -0.9952 0.0980 0.0000 +vn -0.9569 0.2903 -0.0000 +vn -0.8819 0.4714 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.6344 0.7730 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.2903 0.9569 0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.0042 -1.0000 -0.0000 +vn -0.0042 1.0000 0.0000 +vn 0.0000 -0.0980 0.9952 +vn 0.0000 -0.2903 0.9569 +vn 0.0000 -0.4714 0.8819 +vn 0.0000 -0.6344 0.7730 +vn 0.0000 -0.7730 0.6344 +vn 0.0000 -0.8819 0.4714 +vn 0.0000 -0.9569 0.2903 +vn 0.0000 -0.9952 0.0980 +vn -0.0000 -1.0000 -0.0015 +vn 0.0000 -0.9569 -0.2903 +vn 0.0000 -0.8819 -0.4714 +vn 0.0000 -0.7730 -0.6344 +vn 0.0000 -0.6344 -0.7730 +vn 0.0000 -0.4714 -0.8819 +vn -0.0000 -0.2903 -0.9569 +vn 0.0000 -0.0980 -0.9952 +vn 0.0000 0.0980 -0.9952 +vn -0.0000 0.2903 -0.9569 +vn 0.0000 0.4714 -0.8819 +vn 0.0000 0.6344 -0.7730 +vn 0.0000 0.7730 -0.6344 +vn 0.0000 0.8819 -0.4714 +vn -0.0000 0.9569 -0.2903 +vn 0.0000 1.0000 -0.0015 +vn 0.0000 0.9952 0.0980 +vn 0.0000 0.9569 0.2903 +vn 0.0000 0.8819 0.4714 +vn -0.0000 0.7730 0.6344 +vn -0.0000 0.6344 0.7730 +vn 0.0000 0.4714 0.8819 +vn 0.0000 0.2903 0.9569 +vn 0.0000 0.0980 0.9952 +vn -1.0000 0.0000 -0.0000 +vn -1.0000 0.0001 -0.0000 +vn -1.0000 -0.0001 0.0000 +vn -0.9724 0.2059 0.1101 +vn 0.0000 0.4638 0.8859 +vn 0.0000 -0.8778 0.4791 +vn 0.0000 -0.9552 0.2958 +vn -0.0000 0.2848 0.9586 +vn -0.0000 -0.2848 -0.9586 +vn 0.0000 -0.6265 -0.7794 +vn 0.0000 0.0960 -0.9954 +vn 0.0000 0.9552 -0.2959 +vn -0.0000 -0.2848 0.9586 +vn 0.0000 1.0000 0.0025 +vn 0.0000 0.4638 -0.8859 +vn -0.0000 0.2848 -0.9586 +vn -0.0000 -0.7665 -0.6422 +vn 0.0000 0.9950 -0.1001 +vn 0.0000 0.8778 -0.4790 +vn 0.0000 -0.0960 -0.9954 +vn 0.0000 0.9552 0.2958 +vn 0.0000 -0.6265 0.7794 +vn -0.0000 -0.8778 -0.4790 +vn 0.0000 0.7665 -0.6422 +vn 0.0000 0.0960 0.9954 +vn 0.0000 -0.9552 -0.2958 +vn 0.0000 -0.9950 -0.1001 +vn -0.0000 -1.0000 0.0025 +vn 0.0000 0.6265 0.7794 +vn 0.0000 -0.7665 0.6423 +vn 0.0000 -0.0960 0.9954 +vn 0.0000 -0.4638 0.8859 +vn 0.0000 0.7665 0.6422 +vn 0.0000 0.6265 -0.7794 +vn 0.0000 -0.4638 -0.8859 +vn 0.0000 0.8778 0.4791 +vn -0.0000 -0.7665 -0.6423 +vn -0.0000 0.9950 -0.1000 +vn 0.0000 -0.9552 -0.2959 +vn 0.0000 -0.9950 -0.1000 +vn 0.0000 -0.7665 0.6422 +vn 0.0000 0.8778 0.4790 +vn 1.0000 -0.0001 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 1.0000 0.0001 -0.0000 +vn 0.0014 0.0286 0.9996 +vn 0.0013 0.0273 0.9996 +vn -0.0012 -0.0256 0.9997 +vn -0.0015 -0.0307 0.9995 +vn 0.9945 -0.1046 0.0027 +vn 0.9864 -0.1643 0.0024 +vn 0.9945 -0.1043 0.0027 +vn 0.0484 0.9984 -0.0275 +vn 0.0484 0.9984 -0.0276 +vn 0.0484 0.9984 0.0276 +vn 0.0484 0.9985 0.0274 +vn 0.9988 -0.0484 0.0029 +vn 0.9999 0.0100 0.0031 +vn 0.9999 0.0097 0.0031 +vn 0.9937 0.1124 0.0035 +vn 0.9827 0.1853 0.0037 +vn 0.9932 0.1163 0.0035 +vn 0.9977 0.0681 0.0033 +vn -0.0000 1.0000 0.0040 +vn -0.0294 0.6932 -0.7201 +vn -0.0220 0.6910 -0.7225 +vn 0.0262 0.6910 -0.7223 +vn 0.0336 0.6932 -0.7199 +vn 0.7622 0.6468 -0.0276 +vn 0.7666 0.6419 -0.0168 +vn 0.7665 0.6417 0.0265 +vn 0.7620 0.6465 0.0373 +vn -0.7189 0.6839 0.1244 +vn -0.7275 0.6776 0.1078 +vn -0.7667 0.6417 0.0220 +vn -0.7622 0.6465 0.0328 +vn -0.6535 0.7195 0.2351 +vn -0.6609 0.7164 0.2237 +vn -0.5824 0.7416 0.3331 +vn -0.5880 0.7403 0.3259 +vn -0.5059 0.7530 0.4208 +vn -0.5093 0.7527 0.4172 +vn -0.4232 0.7555 0.5001 +vn -0.4240 0.7555 0.4994 +vn -0.3330 0.7498 0.5718 +vn -0.3307 0.7495 0.5735 +vn -0.2336 0.7356 0.6358 +vn -0.2274 0.7345 0.6394 +vn -0.1233 0.7121 0.6912 +vn -0.1125 0.7094 0.6958 +vn 0.0293 0.6874 0.7257 +vn 0.0220 0.6852 0.7280 +vn -0.0263 0.6852 0.7279 +vn -0.0336 0.6874 0.7255 +vn -0.7665 0.6419 -0.0213 +vn -0.7620 0.6468 -0.0320 +vn -0.1084 0.7150 -0.6906 +vn -0.1192 0.7177 -0.6861 +vn -0.2299 0.7408 -0.6312 +vn -0.2237 0.7397 -0.6347 +vn 0.7275 0.6785 -0.1023 +vn 0.7189 0.6849 -0.1188 +vn 0.6535 0.7214 -0.2293 +vn 0.6609 0.7182 -0.2179 +vn 0.1084 0.7094 0.6964 +vn 0.1192 0.7121 0.6919 +vn 0.2298 0.7356 0.6372 +vn 0.2236 0.7345 0.6407 +vn 0.7268 0.6776 0.1121 +vn 0.7182 0.6839 0.1286 +vn 0.6596 0.7164 0.2276 +vn 0.6521 0.7195 0.2389 +vn 0.5861 0.7403 0.3294 +vn 0.5804 0.7416 0.3365 +vn 0.5069 0.7527 0.4202 +vn 0.5034 0.7530 0.4238 +vn 0.4211 0.7555 0.5019 +vn 0.4202 0.7555 0.5026 +vn 0.3273 0.7495 0.5754 +vn 0.3296 0.7498 0.5737 +vn 0.1125 0.7150 -0.6900 +vn 0.1233 0.7177 -0.6854 +vn 0.2274 0.7397 -0.6334 +vn 0.2336 0.7408 -0.6298 +vn 0.3306 0.7542 -0.5674 +vn 0.3330 0.7544 -0.5657 +vn 0.4240 0.7596 -0.4932 +vn 0.4232 0.7596 -0.4940 +vn 0.5093 0.7561 -0.4111 +vn 0.5058 0.7564 -0.4147 +vn 0.5880 0.7429 -0.3199 +vn 0.5824 0.7442 -0.3270 +vn -0.7268 0.6785 -0.1066 +vn -0.7182 0.6849 -0.1231 +vn -0.6596 0.7182 -0.2218 +vn -0.6521 0.7214 -0.2331 +vn -0.5861 0.7429 -0.3234 +vn -0.5804 0.7443 -0.3305 +vn -0.5069 0.7561 -0.4141 +vn -0.5034 0.7564 -0.4177 +vn -0.4211 0.7596 -0.4957 +vn -0.4203 0.7596 -0.4964 +vn -0.3273 0.7542 -0.5693 +vn -0.3296 0.7544 -0.5676 +vn 0.0013 0.0273 -0.9996 +vn 0.0014 0.0286 -0.9996 +vn -0.0000 -0.0000 -1.0000 +vn -0.0015 -0.0307 -0.9995 +vn -0.0013 -0.0256 -0.9997 +vn -0.0484 -0.9984 -0.0276 +vn -0.0484 -0.9985 -0.0275 +vn -0.0484 -0.9985 0.0273 +vn -0.0484 -0.9984 0.0277 +vn -0.0000 -1.0000 0.0015 +vn -0.0000 -0.9952 -0.0980 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 1.0000 0.0015 +vn -0.9969 0.0075 -0.0781 +vn -0.9724 0.0227 -0.2323 +vn -0.9239 0.0374 -0.3808 +vn -0.8526 0.0512 -0.5200 +vn -0.7604 0.0636 -0.6463 +vn -0.6494 0.0745 -0.7568 +vn -0.5225 0.0836 -0.8485 +vn -0.3827 0.0906 -0.9194 +vn -0.2334 0.0953 -0.9677 +vn -0.0785 0.0977 -0.9921 +vn -0.9969 0.0230 -0.0750 +vn -0.9724 0.0679 -0.2234 +vn -0.9239 0.1112 -0.3661 +vn -0.8527 0.1517 -0.5000 +vn -0.7604 0.1886 -0.6215 +vn -0.6494 0.2208 -0.7277 +vn -0.5225 0.2475 -0.8159 +vn -0.3827 0.2682 -0.8841 +vn -0.2334 0.2823 -0.9305 +vn -0.0784 0.2894 -0.9540 +vn -0.9969 0.0370 -0.0692 +vn -0.9724 0.1101 -0.2059 +vn -0.9239 0.1804 -0.3375 +vn -0.8527 0.2463 -0.4608 +vn -0.7604 0.3062 -0.5727 +vn -0.6495 0.3584 -0.6706 +vn -0.5225 0.4020 -0.7519 +vn -0.3827 0.4355 -0.8148 +vn -0.2334 0.4584 -0.8576 +vn -0.0785 0.4699 -0.8792 +vn -0.9969 0.0496 -0.0608 +vn -0.9724 0.1479 -0.1806 +vn -0.9239 0.2426 -0.2959 +vn -0.8526 0.3314 -0.4040 +vn -0.7604 0.4119 -0.5021 +vn -0.6494 0.4824 -0.5878 +vn -0.5225 0.5409 -0.6591 +vn -0.3827 0.5861 -0.7142 +vn -0.2334 0.6169 -0.7517 +vn -0.0785 0.6324 -0.7706 +vn -0.9969 0.0607 -0.0496 +vn -0.9724 0.1805 -0.1480 +vn -0.9239 0.2959 -0.2427 +vn -0.8526 0.4040 -0.3314 +vn -0.7604 0.5020 -0.4120 +vn -0.6494 0.5878 -0.4824 +vn -0.5224 0.6591 -0.5409 +vn -0.3827 0.7141 -0.5861 +vn -0.2334 0.7517 -0.6169 +vn -0.0785 0.7706 -0.6324 +vn -0.9969 0.0692 -0.0369 +vn -0.9724 0.2059 -0.1100 +vn -0.9239 0.3375 -0.1804 +vn -0.8526 0.4608 -0.2463 +vn -0.7604 0.5727 -0.3061 +vn -0.6494 0.6707 -0.3584 +vn -0.5225 0.7520 -0.4019 +vn -0.3827 0.8148 -0.4355 +vn -0.2334 0.8576 -0.4584 +vn -0.0785 0.8792 -0.4700 +vn -0.9969 0.0750 -0.0230 +vn -0.9724 0.2233 -0.0679 +vn -0.9239 0.3662 -0.1112 +vn -0.8527 0.4999 -0.1517 +vn -0.7604 0.6215 -0.1886 +vn -0.6495 0.7276 -0.2208 +vn -0.5225 0.8159 -0.2475 +vn -0.3827 0.8841 -0.2682 +vn -0.2335 0.9305 -0.2823 +vn -0.0785 0.9540 -0.2894 +vn -0.9969 0.0781 -0.0076 +vn -0.9724 0.2323 -0.0228 +vn -0.9239 0.3808 -0.0375 +vn -0.8526 0.5200 -0.0512 +vn -0.7604 0.6463 -0.0637 +vn -0.6495 0.7567 -0.0745 +vn -0.5225 0.8485 -0.0836 +vn -0.3827 0.9194 -0.0906 +vn -0.2334 0.9677 -0.0953 +vn -0.0785 0.9921 -0.0977 +vn -0.9969 0.0784 0.0001 +vn -0.9724 0.2334 0.0004 +vn -0.9239 0.3826 0.0006 +vn -0.8527 0.5225 0.0008 +vn -0.7604 0.6495 0.0010 +vn -0.6494 0.7604 0.0011 +vn -0.5225 0.8526 0.0013 +vn -0.3827 0.9239 0.0014 +vn -0.2335 0.9724 0.0015 +vn -0.0785 0.9969 0.0015 +vn -0.9969 0.0752 0.0226 +vn -0.9724 0.2234 0.0677 +vn -0.9239 0.3662 0.1110 +vn -0.8526 0.5000 0.1516 +vn -0.7604 0.6215 0.1885 +vn -0.6494 0.7277 0.2207 +vn -0.5225 0.8159 0.2475 +vn -0.3827 0.8841 0.2682 +vn -0.2334 0.9305 0.2823 +vn -0.0785 0.9540 0.2894 +vn -0.9969 0.0692 0.0371 +vn -0.9239 0.3375 0.1804 +vn -0.8526 0.4608 0.2463 +vn -0.7604 0.5728 0.3062 +vn -0.6494 0.6706 0.3584 +vn -0.5225 0.7520 0.4019 +vn -0.3827 0.8148 0.4355 +vn -0.2334 0.8576 0.4584 +vn -0.0784 0.8792 0.4699 +vn -0.9969 0.0605 0.0499 +vn -0.9724 0.1803 0.1482 +vn -0.9239 0.2957 0.2428 +vn -0.8526 0.4039 0.3315 +vn -0.7604 0.5020 0.4120 +vn -0.6495 0.5878 0.4824 +vn -0.5225 0.6591 0.5409 +vn -0.3827 0.7142 0.5861 +vn -0.2334 0.7517 0.6169 +vn -0.0785 0.7706 0.6324 +vn -0.9969 0.0500 0.0605 +vn -0.9724 0.1482 0.1803 +vn -0.9239 0.2428 0.2957 +vn -0.8526 0.3315 0.4039 +vn -0.7604 0.4120 0.5020 +vn -0.6495 0.4824 0.5878 +vn -0.5225 0.5409 0.6591 +vn -0.3827 0.5861 0.7142 +vn -0.2334 0.6169 0.7516 +vn -0.0785 0.6324 0.7706 +vn -0.9969 0.0370 0.0693 +vn -0.9724 0.1100 0.2059 +vn -0.9239 0.1804 0.3375 +vn -0.8526 0.2463 0.4608 +vn -0.7604 0.3062 0.5727 +vn -0.6495 0.3585 0.6706 +vn -0.5225 0.4020 0.7520 +vn -0.3827 0.4355 0.8148 +vn -0.2334 0.4584 0.8576 +vn -0.0784 0.4700 0.8792 +vn -0.9969 0.0226 0.0752 +vn -0.9724 0.0676 0.2234 +vn -0.9239 0.1110 0.3662 +vn -0.8526 0.1516 0.5000 +vn -0.7604 0.1885 0.6215 +vn -0.6494 0.2207 0.7277 +vn -0.5225 0.2475 0.8159 +vn -0.3827 0.2682 0.8841 +vn -0.2334 0.2822 0.9305 +vn -0.0785 0.2894 0.9540 +vn -0.9969 0.0078 0.0781 +vn -0.9724 0.0230 0.2323 +vn -0.9239 0.0376 0.3808 +vn -0.8526 0.0513 0.5200 +vn -0.7604 0.0637 0.6463 +vn -0.6494 0.0746 0.7568 +vn -0.5225 0.0836 0.8485 +vn -0.3827 0.0906 0.9194 +vn -0.2334 0.0953 0.9677 +vn -0.0785 0.0977 0.9921 +vn -0.9969 -0.0079 0.0780 +vn -0.9724 -0.0230 0.2323 +vn -0.9239 -0.0376 0.3808 +vn -0.8526 -0.0513 0.5200 +vn -0.7604 -0.0637 0.6463 +vn -0.6494 -0.0746 0.7568 +vn -0.5225 -0.0836 0.8485 +vn -0.3827 -0.0905 0.9194 +vn -0.2334 -0.0953 0.9677 +vn -0.0785 -0.0977 0.9921 +vn -0.9969 -0.0226 0.0751 +vn -0.9724 -0.0676 0.2234 +vn -0.9239 -0.1110 0.3662 +vn -0.8526 -0.1516 0.5000 +vn -0.7604 -0.1885 0.6215 +vn -0.6494 -0.2207 0.7277 +vn -0.5225 -0.2475 0.8159 +vn -0.3827 -0.2682 0.8841 +vn -0.2334 -0.2823 0.9305 +vn -0.0785 -0.2894 0.9540 +vn -0.9969 -0.0370 0.0692 +vn -0.9724 -0.1101 0.2059 +vn -0.9239 -0.1804 0.3375 +vn -0.8526 -0.2463 0.4608 +vn -0.7604 -0.3061 0.5728 +vn -0.6494 -0.3584 0.6706 +vn -0.5225 -0.4020 0.7519 +vn -0.3827 -0.4355 0.8148 +vn -0.2334 -0.4584 0.8576 +vn -0.0785 -0.4699 0.8792 +vn -0.9969 -0.0499 0.0605 +vn -0.9724 -0.1482 0.1804 +vn -0.9239 -0.2428 0.2957 +vn -0.8526 -0.3315 0.4039 +vn -0.7604 -0.4120 0.5020 +vn -0.6494 -0.4824 0.5878 +vn -0.5225 -0.5409 0.6591 +vn -0.3827 -0.5861 0.7142 +vn -0.2334 -0.6169 0.7517 +vn -0.0785 -0.6324 0.7706 +vn -0.9969 -0.0605 0.0499 +vn -0.9724 -0.1804 0.1482 +vn -0.9239 -0.2957 0.2428 +vn -0.8526 -0.4039 0.3315 +vn -0.7604 -0.5020 0.4121 +vn -0.6495 -0.5878 0.4824 +vn -0.5225 -0.6591 0.5409 +vn -0.3827 -0.7142 0.5861 +vn -0.2334 -0.7517 0.6169 +vn -0.0785 -0.7706 0.6325 +vn -0.9969 -0.0692 0.0371 +vn -0.9724 -0.2058 0.1101 +vn -0.9238 -0.3376 0.1804 +vn -0.8526 -0.4608 0.2463 +vn -0.7604 -0.5727 0.3062 +vn -0.6494 -0.6706 0.3585 +vn -0.5225 -0.7520 0.4019 +vn -0.3827 -0.8148 0.4355 +vn -0.2334 -0.8576 0.4584 +vn -0.0784 -0.8792 0.4699 +vn -0.9969 -0.0752 0.0226 +vn -0.9724 -0.2234 0.0676 +vn -0.9239 -0.3663 0.1110 +vn -0.8527 -0.5000 0.1516 +vn -0.7604 -0.6215 0.1885 +vn -0.6494 -0.7277 0.2207 +vn -0.5225 -0.8159 0.2475 +vn -0.3827 -0.8841 0.2682 +vn -0.2335 -0.9305 0.2823 +vn -0.0785 -0.9540 0.2894 +vn -0.9969 -0.0784 0.0001 +vn -0.9724 -0.2335 0.0004 +vn -0.9239 -0.3826 0.0006 +vn -0.8527 -0.5224 0.0008 +vn -0.7604 -0.6495 0.0010 +vn -0.6494 -0.7604 0.0011 +vn -0.5225 -0.8526 0.0013 +vn -0.3827 -0.9239 0.0014 +vn -0.2335 -0.9724 0.0015 +vn -0.0785 -0.9969 0.0015 +vn -0.9969 -0.0781 -0.0076 +vn -0.9724 -0.2324 -0.0228 +vn -0.9239 -0.3808 -0.0375 +vn -0.8526 -0.5200 -0.0512 +vn -0.7604 -0.6463 -0.0636 +vn -0.6495 -0.7567 -0.0745 +vn -0.5225 -0.8485 -0.0836 +vn -0.3827 -0.9194 -0.0906 +vn -0.2335 -0.9677 -0.0953 +vn -0.0785 -0.9921 -0.0977 +vn -0.9969 -0.0749 -0.0232 +vn -0.9724 -0.2233 -0.0680 +vn -0.9239 -0.3661 -0.1113 +vn -0.8527 -0.4999 -0.1518 +vn -0.7604 -0.6215 -0.1886 +vn -0.6494 -0.7277 -0.2208 +vn -0.5225 -0.8159 -0.2475 +vn -0.3827 -0.8841 -0.2682 +vn -0.2334 -0.9305 -0.2823 +vn -0.0785 -0.9540 -0.2894 +vn -0.9969 -0.0695 -0.0364 +vn -0.9724 -0.2061 -0.1097 +vn -0.9239 -0.3376 -0.1801 +vn -0.8526 -0.4609 -0.2461 +vn -0.7604 -0.5728 -0.3060 +vn -0.6495 -0.6706 -0.3584 +vn -0.5225 -0.7520 -0.4019 +vn -0.3827 -0.8148 -0.4355 +vn -0.2334 -0.8576 -0.4584 +vn -0.0785 -0.8792 -0.4699 +vn -0.9969 -0.0603 -0.0502 +vn -0.9724 -0.1803 -0.1484 +vn -0.9239 -0.2956 -0.2430 +vn -0.8526 -0.4038 -0.3316 +vn -0.7604 -0.5020 -0.4121 +vn -0.6494 -0.5878 -0.4825 +vn -0.5225 -0.6591 -0.5410 +vn -0.3827 -0.7141 -0.5861 +vn -0.2334 -0.7516 -0.6169 +vn -0.0785 -0.7706 -0.6325 +vn -0.9969 -0.0500 -0.0605 +vn -0.9724 -0.1482 -0.1803 +vn -0.9239 -0.2429 -0.2957 +vn -0.8526 -0.3316 -0.4039 +vn -0.7604 -0.4120 -0.5020 +vn -0.6495 -0.4824 -0.5878 +vn -0.5225 -0.5409 -0.6591 +vn -0.3827 -0.5861 -0.7142 +vn -0.2334 -0.6169 -0.7517 +vn -0.0785 -0.6324 -0.7706 +vn -0.9969 -0.0370 -0.0692 +vn -0.9724 -0.1101 -0.2059 +vn -0.9239 -0.1804 -0.3375 +vn -0.8526 -0.2463 -0.4608 +vn -0.7604 -0.3061 -0.5728 +vn -0.6494 -0.3585 -0.6706 +vn -0.5225 -0.4020 -0.7520 +vn -0.3827 -0.4355 -0.8148 +vn -0.2335 -0.4584 -0.8575 +vn -0.0785 -0.4700 -0.8792 +vn -0.9969 -0.0226 -0.0751 +vn -0.9724 -0.0677 -0.2234 +vn -0.9239 -0.1110 -0.3662 +vn -0.8527 -0.1516 -0.5000 +vn -0.7604 -0.1885 -0.6215 +vn -0.6494 -0.2207 -0.7277 +vn -0.5225 -0.2475 -0.8159 +vn -0.3827 -0.2682 -0.8841 +vn -0.2335 -0.2823 -0.9305 +vn -0.0784 -0.2894 -0.9540 +vn -0.9969 -0.0077 -0.0781 +vn -0.9724 -0.0229 -0.2323 +vn -0.9239 -0.0375 -0.3808 +vn -0.8527 -0.0512 -0.5200 +vn -0.7604 -0.0636 -0.6463 +vn -0.6494 -0.0745 -0.7568 +vn -0.5225 -0.0836 -0.8485 +vn -0.3826 -0.0906 -0.9195 +vn -0.2334 -0.0953 -0.9677 +vn -0.0784 -0.0977 -0.9921 +vn 0.0000 0.9552 0.2959 +vn -0.0000 -0.8778 0.4790 +vn -0.0000 -0.9552 0.2959 +vn -0.0000 -0.9950 0.1001 +vn -0.0000 -1.0000 -0.0025 +vn 0.0000 1.0000 -0.0025 +vn 0.0000 0.9950 0.1001 +vn 0.0000 0.9552 -0.2958 +vn 0.9969 0.0781 0.0078 +vn 0.9724 0.2322 0.0233 +vn 0.9239 0.3808 0.0383 +vn 0.8526 0.5199 0.0523 +vn 0.7604 0.6462 0.0650 +vn 0.6495 0.7566 0.0761 +vn 0.5225 0.8484 0.0853 +vn 0.3827 0.9192 0.0924 +vn 0.2334 0.9675 0.0973 +vn 0.0785 0.9919 0.0998 +vn 0.9969 0.0751 0.0231 +vn 0.9724 0.2231 0.0690 +vn 0.9239 0.3655 0.1131 +vn 0.8526 0.4991 0.1546 +vn 0.7604 0.6204 0.1921 +vn 0.6494 0.7264 0.2250 +vn 0.5225 0.8145 0.2523 +vn 0.3827 0.8825 0.2733 +vn 0.2334 0.9288 0.2877 +vn 0.0784 0.9523 0.2949 +vn 0.9969 0.0688 0.0378 +vn 0.9724 0.2049 0.1120 +vn 0.9239 0.3359 0.1834 +vn 0.8526 0.4586 0.2504 +vn 0.7604 0.5701 0.3112 +vn 0.6494 0.6675 0.3643 +vn 0.5225 0.7484 0.4085 +vn 0.3827 0.8110 0.4426 +vn 0.2335 0.8535 0.4658 +vn 0.0784 0.8751 0.4776 +vn 0.9969 0.0601 0.0504 +vn 0.9724 0.1789 0.1499 +vn 0.9239 0.2933 0.2458 +vn 0.8527 0.4005 0.3355 +vn 0.7604 0.4978 0.4171 +vn 0.6495 0.5829 0.4883 +vn 0.5225 0.6536 0.5476 +vn 0.3827 0.7082 0.5934 +vn 0.2334 0.7453 0.6245 +vn 0.0785 0.7641 0.6403 +vn 0.9969 0.0492 0.0611 +vn 0.9724 0.1463 0.1819 +vn 0.9239 0.2398 0.2982 +vn 0.8526 0.3274 0.4072 +vn 0.7604 0.4069 0.5062 +vn 0.6494 0.4764 0.5927 +vn 0.5225 0.5342 0.6646 +vn 0.3827 0.5788 0.7201 +vn 0.2334 0.6092 0.7579 +vn 0.0785 0.6246 0.7770 +vn 0.9969 0.0361 0.0696 +vn 0.9724 0.1081 0.2069 +vn 0.9239 0.1773 0.3391 +vn 0.8526 0.2422 0.4630 +vn 0.7604 0.3012 0.5754 +vn 0.6494 0.3526 0.6737 +vn 0.5225 0.3955 0.7554 +vn 0.3827 0.4285 0.8185 +vn 0.2334 0.4510 0.8615 +vn 0.0785 0.4624 0.8832 +vn 0.9969 0.0226 0.0751 +vn 0.9724 0.0666 0.2237 +vn 0.9239 0.1091 0.3668 +vn 0.8526 0.1489 0.5008 +vn 0.7604 0.1850 0.6225 +vn 0.6495 0.2166 0.7289 +vn 0.5225 0.2428 0.8173 +vn 0.3826 0.2631 0.8856 +vn 0.2335 0.2769 0.9321 +vn 0.0785 0.2839 0.9556 +vn 0.9969 0.0075 0.0781 +vn 0.9724 0.0224 0.2324 +vn 0.9239 0.0368 0.3809 +vn 0.8526 0.0502 0.5201 +vn 0.7604 0.0624 0.6465 +vn 0.6495 0.0730 0.7569 +vn 0.5225 0.0819 0.8487 +vn 0.3827 0.0887 0.9196 +vn 0.2335 0.0934 0.9679 +vn 0.0785 0.0957 0.9923 +vn 0.9969 -0.0075 0.0781 +vn 0.9724 -0.0224 0.2324 +vn 0.9239 -0.0367 0.3809 +vn 0.8526 -0.0502 0.5201 +vn 0.7604 -0.0623 0.6464 +vn 0.6495 -0.0730 0.7569 +vn 0.5225 -0.0819 0.8487 +vn 0.3827 -0.0887 0.9196 +vn 0.2334 -0.0934 0.9679 +vn 0.0784 -0.0957 0.9923 +vn 0.9969 -0.0223 0.0753 +vn 0.9724 -0.0664 0.2238 +vn 0.9239 -0.1090 0.3668 +vn 0.8526 -0.1488 0.5009 +vn 0.7604 -0.1850 0.6226 +vn 0.6494 -0.2166 0.7289 +vn 0.5225 -0.2428 0.8173 +vn 0.3826 -0.2631 0.8856 +vn 0.2334 -0.2769 0.9321 +vn 0.0785 -0.2839 0.9556 +vn 0.9969 -0.0366 0.0694 +vn 0.9724 -0.1084 0.2068 +vn 0.9239 -0.1775 0.3390 +vn 0.8526 -0.2424 0.4629 +vn 0.7604 -0.3012 0.5754 +vn 0.6495 -0.3527 0.6737 +vn 0.5225 -0.3955 0.7554 +vn 0.3827 -0.4285 0.8185 +vn 0.2334 -0.4510 0.8615 +vn 0.0784 -0.4624 0.8832 +vn 0.9969 -0.0491 0.0612 +vn 0.9724 -0.1462 0.1820 +vn 0.9239 -0.2397 0.2982 +vn 0.8527 -0.3273 0.4072 +vn 0.7604 -0.4069 0.5062 +vn 0.6495 -0.4764 0.5927 +vn 0.5225 -0.5342 0.6645 +vn 0.3827 -0.5788 0.7201 +vn 0.2335 -0.6092 0.7579 +vn 0.0784 -0.6246 0.7770 +vn 0.9969 -0.0601 0.0504 +vn 0.9724 -0.1790 0.1499 +vn 0.9239 -0.2933 0.2458 +vn 0.8526 -0.4005 0.3356 +vn 0.7604 -0.4978 0.4171 +vn 0.6494 -0.5829 0.4884 +vn 0.5226 -0.6535 0.5476 +vn 0.3826 -0.7082 0.5934 +vn 0.2334 -0.7453 0.6245 +vn 0.0785 -0.7641 0.6403 +vn 0.9969 -0.0687 0.0378 +vn 0.9724 -0.2048 0.1120 +vn 0.9239 -0.3358 0.1834 +vn 0.8526 -0.4586 0.2504 +vn 0.7604 -0.5700 0.3112 +vn 0.6494 -0.6675 0.3643 +vn 0.5225 -0.7485 0.4084 +vn 0.3827 -0.8110 0.4426 +vn 0.2334 -0.8536 0.4658 +vn 0.0785 -0.8751 0.4776 +vn 0.9969 -0.0751 0.0228 +vn 0.9724 -0.2231 0.0688 +vn 0.9239 -0.3656 0.1130 +vn 0.8526 -0.4992 0.1544 +vn 0.7604 -0.6204 0.1921 +vn 0.6494 -0.7264 0.2249 +vn 0.5225 -0.8145 0.2522 +vn 0.3827 -0.8825 0.2733 +vn 0.2335 -0.9288 0.2877 +vn 0.0785 -0.9523 0.2949 +vn 0.9969 -0.0780 0.0080 +vn 0.9724 -0.2322 0.0235 +vn 0.9239 -0.3807 0.0384 +vn 0.8526 -0.5199 0.0523 +vn 0.7604 -0.6462 0.0650 +vn 0.6495 -0.7566 0.0761 +vn 0.5225 -0.8484 0.0853 +vn 0.3827 -0.9192 0.0925 +vn 0.2335 -0.9675 0.0973 +vn 0.0785 -0.9919 0.0997 +vn 0.9969 -0.0785 -0.0002 +vn 0.9724 -0.2335 -0.0006 +vn 0.9239 -0.3826 -0.0010 +vn 0.8526 -0.5225 -0.0013 +vn 0.7604 -0.6494 -0.0016 +vn 0.6494 -0.7604 -0.0019 +vn 0.5225 -0.8526 -0.0022 +vn 0.3827 -0.9239 -0.0023 +vn 0.2335 -0.9724 -0.0025 +vn 0.0785 -0.9969 -0.0025 +vn 0.9969 -0.0749 -0.0236 +vn 0.9724 -0.2229 -0.0693 +vn 0.9239 -0.3655 -0.1133 +vn 0.8526 -0.4991 -0.1547 +vn 0.7604 -0.6203 -0.1922 +vn 0.6494 -0.7264 -0.2250 +vn 0.5225 -0.8145 -0.2523 +vn 0.3827 -0.8825 -0.2733 +vn 0.2334 -0.9288 -0.2877 +vn 0.0784 -0.9523 -0.2949 +vn 0.9969 -0.0691 -0.0371 +vn 0.9724 -0.2050 -0.1115 +vn 0.9239 -0.3361 -0.1831 +vn 0.8526 -0.4588 -0.2502 +vn 0.7604 -0.5701 -0.3110 +vn 0.6494 -0.6675 -0.3642 +vn 0.5225 -0.7484 -0.4084 +vn 0.3827 -0.8110 -0.4426 +vn 0.2335 -0.8535 -0.4658 +vn 0.0785 -0.8751 -0.4776 +vn 0.9969 -0.0598 -0.0508 +vn 0.9724 -0.1787 -0.1502 +vn 0.9239 -0.2932 -0.2460 +vn 0.8526 -0.4004 -0.3357 +vn 0.7604 -0.4977 -0.4172 +vn 0.6494 -0.5828 -0.4884 +vn 0.5225 -0.6535 -0.5476 +vn 0.3827 -0.7082 -0.5934 +vn 0.2335 -0.7453 -0.6245 +vn 0.0784 -0.7641 -0.6403 +vn 0.9969 -0.0493 -0.0611 +vn 0.9724 -0.1463 -0.1818 +vn 0.9239 -0.2398 -0.2982 +vn 0.8527 -0.3274 -0.4072 +vn 0.7604 -0.4069 -0.5062 +vn 0.6495 -0.4764 -0.5926 +vn 0.5225 -0.5342 -0.6646 +vn 0.3827 -0.5788 -0.7201 +vn 0.2335 -0.6092 -0.7579 +vn 0.0784 -0.6246 -0.7770 +vn 0.9969 -0.0366 -0.0694 +vn 0.9724 -0.1085 -0.2067 +vn 0.9239 -0.1777 -0.3390 +vn 0.8526 -0.2424 -0.4629 +vn 0.7604 -0.3013 -0.5754 +vn 0.6494 -0.3527 -0.6737 +vn 0.5225 -0.3955 -0.7554 +vn 0.3827 -0.4285 -0.8185 +vn 0.2334 -0.4510 -0.8615 +vn 0.0784 -0.4624 -0.8832 +vn 0.9969 -0.0221 -0.0753 +vn 0.9724 -0.0663 -0.2238 +vn 0.9239 -0.1089 -0.3669 +vn 0.8527 -0.1487 -0.5009 +vn 0.7604 -0.1849 -0.6226 +vn 0.6494 -0.2165 -0.7289 +vn 0.5225 -0.2428 -0.8173 +vn 0.3827 -0.2631 -0.8856 +vn 0.2334 -0.2769 -0.9321 +vn 0.0784 -0.2839 -0.9556 +vn 0.9969 -0.0075 -0.0781 +vn 0.9724 -0.0224 -0.2323 +vn 0.9239 -0.0367 -0.3809 +vn 0.8526 -0.0502 -0.5201 +vn 0.7604 -0.0624 -0.6464 +vn 0.6495 -0.0730 -0.7569 +vn 0.5225 -0.0819 -0.8487 +vn 0.3827 -0.0887 -0.9196 +vn 0.2334 -0.0934 -0.9679 +vn 0.0784 -0.0957 -0.9923 +vn 0.9969 0.0075 -0.0781 +vn 0.9724 0.0224 -0.2323 +vn 0.9239 0.0367 -0.3809 +vn 0.8527 0.0502 -0.5201 +vn 0.7604 0.0624 -0.6465 +vn 0.6495 0.0730 -0.7569 +vn 0.5225 0.0819 -0.8487 +vn 0.3827 0.0887 -0.9196 +vn 0.2334 0.0934 -0.9679 +vn 0.0785 0.0957 -0.9923 +vn 0.9969 0.0224 -0.0752 +vn 0.9724 0.0665 -0.2237 +vn 0.9239 0.1090 -0.3669 +vn 0.8527 0.1488 -0.5008 +vn 0.7604 0.1850 -0.6226 +vn 0.6495 0.2166 -0.7289 +vn 0.5225 0.2428 -0.8173 +vn 0.3827 0.2631 -0.8856 +vn 0.2334 0.2769 -0.9321 +vn 0.0785 0.2839 -0.9556 +vn 0.9969 0.0361 -0.0696 +vn 0.9724 0.1081 -0.2069 +vn 0.9239 0.1774 -0.3391 +vn 0.8526 0.2423 -0.4629 +vn 0.7604 0.3012 -0.5754 +vn 0.6494 0.3526 -0.6737 +vn 0.5225 0.3954 -0.7554 +vn 0.3827 0.4285 -0.8185 +vn 0.2334 0.4510 -0.8615 +vn 0.0784 0.4624 -0.8832 +vn 0.9969 0.0493 -0.0611 +vn 0.9724 0.1464 -0.1819 +vn 0.9239 0.2398 -0.2983 +vn 0.8526 0.3274 -0.4072 +vn 0.7604 0.4069 -0.5062 +vn 0.6494 0.4764 -0.5927 +vn 0.5225 0.5342 -0.6646 +vn 0.3827 0.5788 -0.7201 +vn 0.2334 0.6092 -0.7579 +vn 0.0785 0.6246 -0.7770 +vn 0.9969 0.0602 -0.0504 +vn 0.9724 0.1789 -0.1499 +vn 0.9239 0.2933 -0.2458 +vn 0.8526 0.4005 -0.3356 +vn 0.7604 0.4978 -0.4171 +vn 0.6494 0.5829 -0.4884 +vn 0.5225 0.6536 -0.5476 +vn 0.3827 0.7082 -0.5933 +vn 0.2334 0.7453 -0.6245 +vn 0.0785 0.7641 -0.6403 +vn 0.9969 0.0690 -0.0374 +vn 0.9724 0.2049 -0.1117 +vn 0.9239 0.3359 -0.1832 +vn 0.8527 0.4587 -0.2502 +vn 0.7604 0.5701 -0.3111 +vn 0.6494 0.6675 -0.3643 +vn 0.5225 0.7484 -0.4084 +vn 0.3827 0.8110 -0.4426 +vn 0.2334 0.8535 -0.4658 +vn 0.0785 0.8751 -0.4776 +vn 0.9969 0.0749 -0.0235 +vn 0.9724 0.2229 -0.0693 +vn 0.9239 0.3655 -0.1133 +vn 0.8527 0.4991 -0.1547 +vn 0.7604 0.6204 -0.1922 +vn 0.6495 0.7263 -0.2250 +vn 0.5225 0.8145 -0.2522 +vn 0.3827 0.8825 -0.2733 +vn 0.2335 0.9288 -0.2877 +vn 0.0785 0.9523 -0.2949 +vn 0.9969 0.0785 -0.0002 +vn 0.9724 0.2334 -0.0006 +vn 0.9239 0.3827 -0.0010 +vn 0.8526 0.5225 -0.0013 +vn 0.7604 0.6495 -0.0016 +vn 0.6495 0.7604 -0.0019 +vn 0.5225 0.8526 -0.0022 +vn 0.3827 0.9239 -0.0023 +vn 0.2334 0.9724 -0.0025 +vn 0.0785 0.9969 -0.0025 +vn 0.9724 0.2323 0.0233 +vn 0.6494 0.7566 0.0761 +vn 0.9969 0.0750 0.0231 +vn 0.9239 0.3656 0.1132 +vn 0.8526 0.4991 0.1545 +vn 0.5225 0.8145 0.2522 +vn 0.0785 0.9523 0.2949 +vn 0.9969 0.0687 0.0378 +vn 0.9724 0.2048 0.1120 +vn 0.5225 0.7485 0.4084 +vn 0.2334 0.8535 0.4658 +vn 0.0785 0.8751 0.4776 +vn 0.9969 0.0602 0.0504 +vn 0.8527 0.4005 0.3356 +vn 0.6495 0.5828 0.4884 +vn 0.0784 0.7641 0.6403 +vn 0.8527 0.3274 0.4072 +vn 0.6495 0.4764 0.5927 +vn 0.2335 0.6092 0.7579 +vn 0.0784 0.6246 0.7770 +vn 0.8526 0.2422 0.4629 +vn 0.6494 0.3527 0.6737 +vn 0.8527 0.1489 0.5008 +vn 0.6494 0.2166 0.7289 +vn 0.3827 0.2631 0.8856 +vn 0.2334 0.2769 0.9321 +vn 0.9969 0.0076 0.0781 +vn 0.8527 0.0501 0.5201 +vn 0.6494 0.0730 0.7569 +vn 0.0784 0.0957 0.9923 +vn 0.9239 -0.0368 0.3809 +vn 0.8527 -0.0502 0.5200 +vn 0.7604 -0.0623 0.6465 +vn 0.6494 -0.0730 0.7569 +vn 0.2335 -0.0934 0.9679 +vn 0.9969 -0.0223 0.0752 +vn 0.9724 -0.0665 0.2238 +vn 0.9239 -0.1090 0.3669 +vn 0.8527 -0.1488 0.5008 +vn 0.6495 -0.2166 0.7289 +vn 0.3827 -0.2631 0.8856 +vn 0.9724 -0.1084 0.2067 +vn 0.9239 -0.1776 0.3390 +vn 0.8527 -0.2424 0.4628 +vn 0.7604 -0.3013 0.5754 +vn 0.2334 -0.4510 0.8614 +vn 0.0785 -0.4624 0.8832 +vn 0.9239 -0.2397 0.2983 +vn 0.5225 -0.5342 0.6646 +vn 0.0785 -0.6246 0.7770 +vn 0.9724 -0.1789 0.1499 +vn 0.6495 -0.5828 0.4884 +vn 0.5225 -0.6535 0.5476 +vn 0.3827 -0.7081 0.5934 +vn 0.2335 -0.7453 0.6245 +vn 0.9969 -0.0688 0.0378 +vn 0.9724 -0.2049 0.1120 +vn 0.9239 -0.3359 0.1834 +vn 0.7604 -0.5701 0.3112 +vn 0.6495 -0.6675 0.3643 +vn 0.5225 -0.7485 0.4085 +vn 0.2334 -0.8535 0.4658 +vn 0.0785 -0.8751 0.4775 +vn 0.8527 -0.4991 0.1545 +vn 0.2334 -0.9288 0.2877 +vn 0.9239 -0.3808 0.0383 +vn 0.8527 -0.5198 0.0523 +vn 0.6494 -0.7566 0.0761 +vn 0.5225 -0.8483 0.0853 +vn 0.3827 -0.9192 0.0924 +vn 0.2334 -0.9675 0.0973 +vn 0.9969 -0.0784 -0.0002 +vn 0.9239 -0.3827 -0.0010 +vn 0.8527 -0.5225 -0.0013 +vn 0.7604 -0.6495 -0.0016 +vn 0.6495 -0.7604 -0.0019 +vn 0.9969 -0.0748 -0.0236 +vn 0.9239 -0.3655 -0.1134 +vn 0.8527 -0.4990 -0.1547 +vn 0.7604 -0.6204 -0.1922 +vn 0.6495 -0.7263 -0.2250 +vn 0.3826 -0.8825 -0.2733 +vn 0.0785 -0.9523 -0.2950 +vn 0.9724 -0.2051 -0.1115 +vn 0.9239 -0.3360 -0.1831 +vn 0.8526 -0.4587 -0.2502 +vn 0.2334 -0.8536 -0.4658 +vn 0.0784 -0.8751 -0.4776 +vn 0.7604 -0.4978 -0.4172 +vn 0.5225 -0.6536 -0.5476 +vn 0.3826 -0.7082 -0.5934 +vn 0.0785 -0.7641 -0.6403 +vn 0.9969 -0.0492 -0.0610 +vn 0.9724 -0.1463 -0.1819 +vn 0.8527 -0.3273 -0.4072 +vn 0.6495 -0.4764 -0.5927 +vn 0.9969 -0.0367 -0.0694 +vn 0.9724 -0.1084 -0.2067 +vn 0.9239 -0.1776 -0.3390 +vn 0.8527 -0.2424 -0.4628 +vn 0.7604 -0.3013 -0.5753 +vn 0.9969 -0.0219 -0.0753 +vn 0.9724 -0.0662 -0.2239 +vn 0.9239 -0.1088 -0.3669 +vn 0.8526 -0.1487 -0.5009 +vn 0.7604 -0.1849 -0.6225 +vn 0.0785 -0.2839 -0.9556 +vn 0.9969 -0.0083 -0.0780 +vn 0.9724 -0.0229 -0.2323 +vn 0.9239 -0.0371 -0.3809 +vn 0.8526 -0.0504 -0.5201 +vn 0.7604 -0.0625 -0.6464 +vn 0.6494 -0.0731 -0.7569 +vn 0.0785 -0.0957 -0.9923 +vn 0.9969 0.0083 -0.0780 +vn 0.9724 0.0230 -0.2323 +vn 0.9239 0.0371 -0.3809 +vn 0.8526 0.0504 -0.5201 +vn 0.7604 0.0625 -0.6464 +vn 0.6494 0.0731 -0.7569 +vn 0.2335 0.0934 -0.9679 +vn 0.0784 0.0957 -0.9923 +vn 0.9969 0.0221 -0.0752 +vn 0.9724 0.0663 -0.2238 +vn 0.9239 0.1089 -0.3668 +vn 0.7604 0.1849 -0.6225 +vn 0.6494 0.2166 -0.7289 +vn 0.2335 0.2770 -0.9321 +vn 0.0784 0.2839 -0.9556 +vn 0.9969 0.0362 -0.0696 +vn 0.8527 0.2422 -0.4629 +vn 0.2335 0.4510 -0.8615 +vn 0.9724 0.1463 -0.1819 +vn 0.0784 0.6246 -0.7770 +vn 0.9969 0.0601 -0.0504 +vn 0.9724 0.1790 -0.1499 +vn 0.6495 0.5828 -0.4884 +vn 0.5225 0.6535 -0.5476 +vn 0.9724 0.2050 -0.1117 +vn 0.9239 0.3360 -0.1832 +vn 0.8527 0.4586 -0.2502 +vn 0.2335 0.8536 -0.4658 +vn 0.9969 0.0748 -0.0235 +vn 0.8527 0.4991 -0.1546 +vn 0.7604 0.6203 -0.1922 +vn 0.6494 0.7264 -0.2250 +vn 0.5225 0.8145 -0.2523 +vn 0.2334 0.9288 -0.2877 +vn 0.7604 0.6494 -0.0016 +vn 0.6494 0.7604 -0.0019 +vn -0.0264 -0.5451 0.8379 +vn -0.0259 -0.5348 0.8446 +vn -0.0304 -0.6268 0.7786 +vn -0.0308 -0.6356 0.7714 +vn -0.0217 -0.4474 0.8941 +vn -0.0211 -0.4356 0.8999 +vn 0.0481 0.9928 -0.1094 +vn 0.0481 0.9927 -0.1104 +vn -0.0414 -0.8533 0.5198 +vn -0.0411 -0.8480 0.5285 +vn -0.0437 -0.9014 0.4308 +vn -0.0439 -0.9048 0.4236 +vn 0.0382 0.7885 -0.6139 +vn 0.0380 0.7845 -0.6190 +vn 0.0411 0.8487 -0.5273 +vn 0.0413 0.8516 -0.5226 +vn -0.0458 -0.9457 0.3217 +vn -0.0457 -0.9436 0.3278 +vn -0.0472 -0.9742 0.2205 +vn -0.0473 -0.9751 0.2164 +vn -0.0057 -0.1183 0.9930 +vn -0.0053 -0.1081 0.9941 +vn -0.0107 -0.2208 0.9753 +vn -0.0112 -0.2305 0.9730 +vn 0.0347 0.7153 -0.6979 +vn 0.0344 0.7101 -0.7033 +vn 0.0263 0.5420 -0.8400 +vn 0.0261 0.5374 -0.8430 +vn 0.0305 0.6290 -0.7768 +vn 0.0307 0.6329 -0.7737 +vn 0.0326 0.6730 -0.7389 +vn 0.0057 0.1182 -0.9930 +vn 0.0054 0.1116 -0.9937 +vn 0.0109 0.2242 -0.9745 +vn 0.0112 0.2305 -0.9730 +vn 0.0437 0.9021 -0.4293 +vn 0.0438 0.9040 -0.4253 +vn -0.0481 -0.9928 0.1094 +vn -0.0481 -0.9926 0.1117 +vn 0.0458 0.9441 -0.3264 +vn 0.0458 0.9452 -0.3232 +vn 0.0028 0.0571 -0.9984 +vn -0.0348 -0.7175 0.6957 +vn -0.0343 -0.7082 0.7051 +vn -0.0380 -0.7830 0.6208 +vn -0.0383 -0.7902 0.6116 +vn 0.0472 0.9744 -0.2196 +vn 0.0473 0.9749 -0.2175 +vn 0.0162 0.3337 -0.9425 +vn 0.0165 0.3396 -0.9404 +vn 0.0213 0.4385 -0.8985 +vn 0.0215 0.4438 -0.8959 +vn -0.0160 -0.3305 0.9437 +vn -0.0165 -0.3396 0.9404 +vn -0.0188 -0.3889 0.9211 +vn -0.0326 -0.6730 0.7389 +vn -0.1232 -0.7177 0.6854 +vn -0.1271 -0.6913 0.7113 +vn -0.2417 -0.7151 0.6559 +vn -0.2335 -0.7408 0.6299 +vn 0.7843 0.6197 -0.0286 +vn 0.7429 0.6580 -0.1230 +vn -0.0293 -0.6874 -0.7257 +vn -0.0301 -0.6608 -0.7500 +vn 0.0346 -0.6608 -0.7498 +vn 0.0336 -0.6874 -0.7255 +vn -0.0302 0.6668 -0.7446 +vn -0.1229 0.6913 -0.7120 +vn 0.0293 -0.6932 0.7201 +vn 0.0302 -0.6668 0.7446 +vn -0.0345 -0.6668 0.7444 +vn -0.0336 -0.6932 0.7199 +vn -0.3456 -0.7294 0.5904 +vn -0.3329 -0.7544 0.5657 +vn -0.4400 -0.7348 0.5161 +vn -0.4231 -0.7596 0.4940 +vn -0.5264 -0.7316 0.4332 +vn -0.5058 -0.7564 0.4148 +vn -0.6056 -0.7190 0.3411 +vn -0.5823 -0.7443 0.3271 +vn -0.6780 -0.6954 0.2383 +vn -0.6534 -0.7214 0.2293 +vn -0.7429 -0.6580 0.1230 +vn -0.7189 -0.6849 0.1189 +vn -0.7843 -0.6197 0.0286 +vn -0.7622 -0.6468 0.0276 +vn -0.7841 -0.6195 -0.0383 +vn -0.7620 -0.6465 -0.0373 +vn -0.2378 0.7151 -0.6573 +vn -0.3421 0.7294 -0.5925 +vn -0.4370 0.7348 -0.5187 +vn -0.5238 0.7316 -0.4363 +vn -0.6035 0.7190 -0.3446 +vn -0.6766 0.6954 -0.2423 +vn -0.7422 0.6580 -0.1274 +vn -0.7841 0.6197 -0.0332 +vn 0.7622 -0.6465 -0.0328 +vn 0.7843 -0.6195 -0.0336 +vn 0.7841 -0.6197 0.0332 +vn 0.7620 -0.6468 0.0321 +vn 0.6780 0.6954 -0.2383 +vn 0.6056 0.7190 -0.3411 +vn 0.5264 0.7316 -0.4332 +vn 0.4400 0.7348 -0.5161 +vn 0.3456 0.7294 -0.5905 +vn 0.2417 0.7151 -0.6559 +vn 0.1271 0.6913 -0.7113 +vn 0.0345 0.6668 -0.7444 +vn 0.0301 0.6608 0.7500 +vn 0.1228 0.6856 0.7176 +vn 0.2378 0.7098 0.6631 +vn 0.3421 0.7245 0.5984 +vn 0.4370 0.7306 0.5247 +vn 0.5238 0.7281 0.4422 +vn 0.6035 0.7162 0.3504 +vn 0.6766 0.6934 0.2479 +vn 0.7422 0.6569 0.1327 +vn 0.7841 0.6195 0.0383 +vn 0.7422 -0.6580 0.1274 +vn 0.8432 -0.5364 0.0363 +vn 0.8065 -0.5746 0.1390 +vn 0.9064 -0.4207 0.0395 +vn 0.8769 -0.4561 0.1519 +vn 0.9524 -0.3020 0.0420 +vn 0.9297 -0.3307 0.1619 +vn 0.9824 -0.1818 0.0438 +vn 0.9650 -0.2006 0.1689 +vn 0.9971 -0.0608 0.0450 +vn 0.9826 -0.0676 0.1727 +vn 0.9971 0.0604 0.0455 +vn 0.9826 0.0663 0.1733 +vn 0.9824 0.1814 0.0453 +vn 0.9650 0.1992 0.1705 +vn 0.9524 0.3017 0.0444 +vn 0.9297 0.3294 0.1646 +vn 0.9063 0.4203 0.0429 +vn 0.8769 0.4549 0.1556 +vn 0.8431 0.5361 0.0406 +vn 0.8065 0.5735 0.1437 +vn 0.6766 -0.6954 0.2423 +vn 0.7435 -0.6132 0.2669 +vn 0.8185 -0.4931 0.2947 +vn 0.8769 -0.3615 0.3168 +vn 0.9169 -0.2211 0.3323 +vn 0.9372 -0.0753 0.3406 +vn 0.9372 0.0725 0.3412 +vn 0.9169 0.2184 0.3341 +vn 0.8769 0.3589 0.3198 +vn 0.8185 0.4907 0.2987 +vn 0.7434 0.6111 0.2718 +vn 0.6036 -0.7190 0.3446 +vn 0.6679 -0.6384 0.3826 +vn 0.7415 -0.5181 0.4264 +vn 0.8002 -0.3828 0.4617 +vn 0.8411 -0.2357 0.4868 +vn 0.8622 -0.0808 0.5000 +vn 0.8622 0.0768 0.5007 +vn 0.8411 0.2318 0.4887 +vn 0.8002 0.3791 0.4648 +vn 0.7415 0.5146 0.4306 +vn 0.6678 0.6353 0.3878 +vn 0.5238 -0.7316 0.4363 +vn 0.5814 -0.6520 0.4867 +vn 0.6481 -0.5318 0.5451 +vn 0.7020 -0.3948 0.5927 +vn 0.7401 -0.2441 0.6266 +vn 0.7598 -0.0842 0.6446 +vn 0.7598 0.0790 0.6453 +vn 0.7401 0.2390 0.6286 +vn 0.7020 0.3901 0.5958 +vn 0.6481 0.5274 0.5493 +vn 0.5814 0.6481 0.4919 +vn 0.4370 -0.7348 0.5187 +vn 0.4847 -0.6555 0.5791 +vn 0.5403 -0.5353 0.6493 +vn 0.5853 -0.3979 0.7065 +vn 0.6172 -0.2463 0.7472 +vn 0.6338 -0.0853 0.7688 +vn 0.6338 0.0791 0.7694 +vn 0.6172 0.2403 0.7492 +vn 0.5853 0.3921 0.7096 +vn 0.5403 0.5300 0.6536 +vn 0.4847 0.6508 0.5844 +vn 0.3421 -0.7294 0.5925 +vn 0.3780 -0.6494 0.6599 +vn 0.4196 -0.5290 0.7376 +vn 0.4532 -0.3924 0.8004 +vn 0.4768 -0.2427 0.8449 +vn 0.4890 -0.0843 0.8682 +vn 0.4890 0.0772 0.8689 +vn 0.4768 0.2358 0.8468 +vn 0.4532 0.3859 0.8036 +vn 0.4196 0.5230 0.7419 +vn 0.3780 0.6440 0.6651 +vn 0.2378 -0.7151 0.6573 +vn 0.2610 -0.6339 0.7280 +vn 0.2876 -0.5135 0.8085 +vn 0.3088 -0.3790 0.8723 +vn 0.3235 -0.2337 0.9169 +vn 0.3310 -0.0813 0.9401 +vn 0.3310 0.0736 0.9407 +vn 0.3235 0.2262 0.9188 +vn 0.3088 0.3720 0.8754 +vn 0.2876 0.5069 0.8126 +vn 0.2610 0.6280 0.7331 +vn 0.1229 -0.6913 0.7120 +vn 0.1337 -0.6089 0.7819 +vn 0.1460 -0.4890 0.8600 +vn 0.1556 -0.3584 0.9205 +vn 0.1622 -0.2199 0.9619 +vn 0.1656 -0.0765 0.9832 +vn 0.1656 0.0686 0.9838 +vn 0.1622 0.2121 0.9637 +vn 0.1556 0.3509 0.9234 +vn 0.1460 0.4820 0.8639 +vn 0.1337 0.6025 0.7868 +vn 0.0326 -0.5840 0.8111 +vn 0.0352 -0.4651 0.8845 +vn 0.0372 -0.3387 0.9402 +vn 0.0386 -0.2069 0.9776 +vn 0.0393 -0.0720 0.9966 +vn 0.0393 0.0640 0.9972 +vn 0.0386 0.1990 0.9792 +vn 0.0372 0.3311 0.9429 +vn 0.0352 0.4580 0.8883 +vn 0.0326 0.5774 0.8158 +vn 0.1271 -0.6856 -0.7168 +vn 0.0374 -0.5774 -0.8156 +vn 0.1384 -0.6025 -0.7860 +vn 0.0404 -0.4580 -0.8880 +vn 0.1511 -0.4820 -0.8630 +vn 0.0428 -0.3311 -0.9426 +vn 0.1611 -0.3509 -0.9224 +vn 0.0443 -0.1990 -0.9790 +vn 0.1679 -0.2121 -0.9627 +vn 0.0451 -0.0640 -0.9969 +vn 0.1714 -0.0686 -0.9828 +vn 0.0451 0.0720 -0.9964 +vn 0.1714 0.0765 -0.9822 +vn 0.0443 0.2069 -0.9773 +vn 0.1679 0.2199 -0.9610 +vn 0.0428 0.3387 -0.9399 +vn 0.1611 0.3584 -0.9196 +vn 0.0404 0.4651 -0.8843 +vn 0.1511 0.4890 -0.8591 +vn 0.0374 0.5840 -0.8109 +vn 0.1383 0.6089 -0.7811 +vn 0.2417 -0.7098 -0.6617 +vn 0.2653 -0.6280 -0.7316 +vn 0.2924 -0.5069 -0.8109 +vn 0.3139 -0.3720 -0.8735 +vn 0.3289 -0.2263 -0.9169 +vn 0.3366 -0.0736 -0.9388 +vn 0.3366 0.0813 -0.9381 +vn 0.3289 0.2337 -0.9150 +vn 0.3139 0.3790 -0.8705 +vn 0.2924 0.5135 -0.8068 +vn 0.2653 0.6339 -0.7265 +vn 0.3456 -0.7245 -0.5963 +vn 0.3819 -0.6440 -0.6629 +vn 0.4240 -0.5230 -0.7394 +vn 0.4579 -0.3859 -0.8009 +vn 0.4818 -0.2358 -0.8440 +vn 0.4941 -0.0772 -0.8660 +vn 0.4941 0.0843 -0.8653 +vn 0.4818 0.2427 -0.8420 +vn 0.4579 0.3924 -0.7977 +vn 0.4240 0.5290 -0.7351 +vn 0.3819 0.6494 -0.6576 +vn 0.4400 -0.7306 -0.5221 +vn 0.4882 -0.6508 -0.5816 +vn 0.5441 -0.5300 -0.6504 +vn 0.5895 -0.3921 -0.7062 +vn 0.6216 -0.2402 -0.7456 +vn 0.6383 -0.0791 -0.7657 +vn 0.6383 0.0853 -0.7650 +vn 0.6216 0.2463 -0.7436 +vn 0.5895 0.3979 -0.7030 +vn 0.5441 0.5353 -0.6461 +vn 0.4881 0.6555 -0.5763 +vn 0.5264 -0.7281 -0.4391 +vn 0.5843 -0.6481 -0.4885 +vn 0.6513 -0.5274 -0.5455 +vn 0.7055 -0.3901 -0.5917 +vn 0.7438 -0.2390 -0.6242 +vn 0.7636 -0.0790 -0.6408 +vn 0.7636 0.0842 -0.6401 +vn 0.7438 0.2441 -0.6223 +vn 0.7055 0.3948 -0.5885 +vn 0.6513 0.5318 -0.5412 +vn 0.5842 0.6520 -0.4832 +vn 0.6056 -0.7162 -0.3469 +vn 0.6701 -0.6353 -0.3839 +vn 0.7440 -0.5146 -0.4262 +vn 0.8029 -0.3791 -0.4601 +vn 0.8440 -0.2318 -0.4837 +vn 0.8652 -0.0768 -0.4956 +vn 0.8652 0.0808 -0.4949 +vn 0.8440 0.2357 -0.4818 +vn 0.8029 0.3828 -0.4570 +vn 0.7440 0.5181 -0.4220 +vn 0.6701 0.6384 -0.3787 +vn 0.6780 -0.6934 -0.2439 +vn 0.7450 -0.6111 -0.2674 +vn 0.8203 -0.4907 -0.2939 +vn 0.8788 -0.3589 -0.3146 +vn 0.9188 -0.2184 -0.3287 +vn 0.9392 -0.0725 -0.3356 +vn 0.9392 0.0753 -0.3350 +vn 0.9188 0.2211 -0.3269 +vn 0.8787 0.3615 -0.3117 +vn 0.8203 0.4931 -0.2899 +vn 0.7450 0.6132 -0.2625 +vn 0.7429 -0.6569 -0.1284 +vn 0.8074 -0.5735 -0.1389 +vn 0.8778 -0.4549 -0.1504 +vn 0.9307 -0.3294 -0.1591 +vn 0.9660 -0.1992 -0.1649 +vn 0.9836 -0.0663 -0.1675 +vn 0.9836 0.0676 -0.1669 +vn 0.9660 0.2006 -0.1632 +vn 0.9307 0.3307 -0.1564 +vn 0.8777 0.4561 -0.1467 +vn 0.8073 0.5746 -0.1343 +vn 0.8434 -0.5361 -0.0356 +vn 0.9066 -0.4203 -0.0375 +vn 0.9526 -0.3017 -0.0388 +vn 0.9826 -0.1814 -0.0395 +vn 0.9974 -0.0604 -0.0396 +vn 0.9974 0.0608 -0.0391 +vn 0.9826 0.1818 -0.0380 +vn 0.9526 0.3020 -0.0364 +vn 0.9066 0.4207 -0.0341 +vn 0.8434 0.5364 -0.0313 +vn -0.7422 -0.6569 -0.1327 +vn -0.8431 -0.5361 -0.0406 +vn -0.8065 -0.5735 -0.1437 +vn -0.9063 -0.4203 -0.0429 +vn -0.8769 -0.4549 -0.1556 +vn -0.9524 -0.3017 -0.0444 +vn -0.9297 -0.3294 -0.1646 +vn -0.9824 -0.1814 -0.0453 +vn -0.9650 -0.1992 -0.1705 +vn -0.9971 -0.0604 -0.0455 +vn -0.9826 -0.0663 -0.1733 +vn -0.9971 0.0608 -0.0450 +vn -0.9826 0.0676 -0.1727 +vn -0.9824 0.1818 -0.0438 +vn -0.9650 0.2006 -0.1689 +vn -0.9524 0.3020 -0.0420 +vn -0.9297 0.3307 -0.1619 +vn -0.9064 0.4207 -0.0395 +vn -0.8769 0.4561 -0.1519 +vn -0.8432 0.5364 -0.0363 +vn -0.8065 0.5746 -0.1390 +vn -0.6766 -0.6934 -0.2479 +vn -0.7434 -0.6111 -0.2718 +vn -0.8185 -0.4907 -0.2987 +vn -0.8769 -0.3589 -0.3198 +vn -0.9169 -0.2184 -0.3341 +vn -0.9372 -0.0725 -0.3412 +vn -0.9372 0.0753 -0.3406 +vn -0.9169 0.2211 -0.3323 +vn -0.8769 0.3615 -0.3168 +vn -0.8185 0.4931 -0.2947 +vn -0.7435 0.6132 -0.2669 +vn -0.6035 -0.7162 -0.3504 +vn -0.6678 -0.6353 -0.3878 +vn -0.7415 -0.5146 -0.4306 +vn -0.8002 -0.3791 -0.4648 +vn -0.8411 -0.2318 -0.4887 +vn -0.8622 -0.0768 -0.5007 +vn -0.8622 0.0808 -0.5000 +vn -0.8411 0.2357 -0.4868 +vn -0.8002 0.3828 -0.4617 +vn -0.7415 0.5181 -0.4264 +vn -0.6679 0.6384 -0.3826 +vn -0.5238 -0.7281 -0.4422 +vn -0.5814 -0.6481 -0.4919 +vn -0.6481 -0.5274 -0.5493 +vn -0.7020 -0.3900 -0.5958 +vn -0.7401 -0.2390 -0.6286 +vn -0.7598 -0.0790 -0.6453 +vn -0.7598 0.0842 -0.6446 +vn -0.7401 0.2441 -0.6266 +vn -0.7020 0.3948 -0.5927 +vn -0.6481 0.5318 -0.5451 +vn -0.5814 0.6520 -0.4867 +vn -0.4370 -0.7306 -0.5247 +vn -0.4847 -0.6508 -0.5844 +vn -0.5403 -0.5300 -0.6536 +vn -0.5853 -0.3921 -0.7096 +vn -0.6172 -0.2403 -0.7492 +vn -0.6338 -0.0791 -0.7694 +vn -0.6338 0.0853 -0.7688 +vn -0.6172 0.2463 -0.7472 +vn -0.5853 0.3979 -0.7065 +vn -0.5403 0.5353 -0.6493 +vn -0.4847 0.6555 -0.5791 +vn -0.3421 -0.7245 -0.5984 +vn -0.3780 -0.6440 -0.6651 +vn -0.4196 -0.5230 -0.7419 +vn -0.4532 -0.3859 -0.8036 +vn -0.4768 -0.2358 -0.8468 +vn -0.4890 -0.0772 -0.8689 +vn -0.4890 0.0843 -0.8682 +vn -0.4768 0.2427 -0.8449 +vn -0.4532 0.3924 -0.8004 +vn -0.4196 0.5290 -0.7376 +vn -0.3780 0.6494 -0.6599 +vn -0.2378 -0.7098 -0.6631 +vn -0.2610 -0.6280 -0.7331 +vn -0.2876 -0.5069 -0.8126 +vn -0.3088 -0.3720 -0.8754 +vn -0.3235 -0.2262 -0.9188 +vn -0.3310 -0.0736 -0.9407 +vn -0.3310 0.0813 -0.9401 +vn -0.3235 0.2337 -0.9169 +vn -0.3088 0.3790 -0.8723 +vn -0.2876 0.5135 -0.8085 +vn -0.2610 0.6339 -0.7280 +vn -0.1228 -0.6856 -0.7176 +vn -0.1337 -0.6025 -0.7868 +vn -0.1460 -0.4820 -0.8639 +vn -0.1556 -0.3509 -0.9234 +vn -0.1622 -0.2121 -0.9637 +vn -0.1656 -0.0686 -0.9838 +vn -0.1656 0.0765 -0.9832 +vn -0.1622 0.2199 -0.9619 +vn -0.1556 0.3584 -0.9205 +vn -0.1460 0.4890 -0.8600 +vn -0.1337 0.6089 -0.7819 +vn -0.0326 -0.5774 -0.8158 +vn -0.0352 -0.4580 -0.8883 +vn -0.0372 -0.3311 -0.9429 +vn -0.0386 -0.1990 -0.9792 +vn -0.0393 -0.0640 -0.9972 +vn -0.0393 0.0720 -0.9966 +vn -0.0386 0.2069 -0.9776 +vn -0.0372 0.3387 -0.9402 +vn -0.0352 0.4651 -0.8845 +vn -0.0326 0.5840 -0.8111 +vn -0.7429 0.6569 0.1284 +vn -0.7843 0.6195 0.0336 +vn -0.8434 0.5361 0.0356 +vn -0.8074 0.5735 0.1389 +vn -0.9066 0.4203 0.0375 +vn -0.8778 0.4549 0.1504 +vn -0.9526 0.3017 0.0388 +vn -0.9307 0.3294 0.1591 +vn -0.9826 0.1814 0.0395 +vn -0.9660 0.1992 0.1649 +vn -0.9974 0.0604 0.0396 +vn -0.9836 0.0663 0.1675 +vn -0.9974 -0.0608 0.0391 +vn -0.9836 -0.0676 0.1669 +vn -0.9826 -0.1818 0.0380 +vn -0.9660 -0.2006 0.1632 +vn -0.9526 -0.3020 0.0364 +vn -0.9307 -0.3307 0.1564 +vn -0.9066 -0.4207 0.0341 +vn -0.8777 -0.4561 0.1467 +vn -0.8434 -0.5364 0.0313 +vn -0.8073 -0.5746 0.1343 +vn -0.6780 0.6934 0.2439 +vn -0.7450 0.6111 0.2674 +vn -0.8203 0.4907 0.2939 +vn -0.8788 0.3589 0.3146 +vn -0.9188 0.2184 0.3287 +vn -0.9392 0.0725 0.3356 +vn -0.9392 -0.0753 0.3350 +vn -0.9188 -0.2211 0.3269 +vn -0.8787 -0.3615 0.3117 +vn -0.8203 -0.4931 0.2899 +vn -0.7450 -0.6132 0.2625 +vn -0.6056 0.7162 0.3469 +vn -0.6701 0.6353 0.3839 +vn -0.7440 0.5146 0.4262 +vn -0.8029 0.3791 0.4601 +vn -0.8440 0.2318 0.4837 +vn -0.8652 0.0768 0.4956 +vn -0.8652 -0.0808 0.4949 +vn -0.8440 -0.2357 0.4818 +vn -0.8029 -0.3828 0.4570 +vn -0.7440 -0.5181 0.4220 +vn -0.6701 -0.6384 0.3787 +vn -0.5264 0.7281 0.4391 +vn -0.5843 0.6481 0.4885 +vn -0.6513 0.5274 0.5455 +vn -0.7055 0.3901 0.5917 +vn -0.7438 0.2390 0.6242 +vn -0.7636 0.0790 0.6408 +vn -0.7636 -0.0842 0.6401 +vn -0.7438 -0.2441 0.6223 +vn -0.7055 -0.3948 0.5885 +vn -0.6513 -0.5318 0.5412 +vn -0.5842 -0.6520 0.4832 +vn -0.4400 0.7306 0.5221 +vn -0.4882 0.6508 0.5816 +vn -0.5441 0.5300 0.6504 +vn -0.5895 0.3921 0.7062 +vn -0.6216 0.2402 0.7456 +vn -0.6383 0.0791 0.7657 +vn -0.6383 -0.0853 0.7650 +vn -0.6216 -0.2463 0.7436 +vn -0.5895 -0.3979 0.7030 +vn -0.5441 -0.5353 0.6461 +vn -0.4881 -0.6555 0.5763 +vn -0.3456 0.7245 0.5963 +vn -0.3819 0.6440 0.6629 +vn -0.4240 0.5230 0.7394 +vn -0.4579 0.3859 0.8009 +vn -0.4818 0.2358 0.8440 +vn -0.4941 0.0772 0.8660 +vn -0.4941 -0.0843 0.8653 +vn -0.4818 -0.2427 0.8420 +vn -0.4579 -0.3924 0.7977 +vn -0.4240 -0.5290 0.7351 +vn -0.3819 -0.6494 0.6576 +vn -0.2417 0.7098 0.6617 +vn -0.2653 0.6280 0.7316 +vn -0.2924 0.5069 0.8109 +vn -0.3139 0.3720 0.8736 +vn -0.3289 0.2262 0.9169 +vn -0.3366 0.0736 0.9388 +vn -0.3366 -0.0813 0.9381 +vn -0.3289 -0.2337 0.9150 +vn -0.3139 -0.3790 0.8705 +vn -0.2924 -0.5135 0.8068 +vn -0.2653 -0.6339 0.7265 +vn -0.1271 0.6856 0.7168 +vn -0.1384 0.6025 0.7860 +vn -0.1511 0.4820 0.8630 +vn -0.1611 0.3509 0.9224 +vn -0.1679 0.2121 0.9627 +vn -0.1714 0.0686 0.9828 +vn -0.1714 -0.0765 0.9822 +vn -0.1679 -0.2199 0.9610 +vn -0.1611 -0.3584 0.9196 +vn -0.1511 -0.4890 0.8591 +vn -0.1383 -0.6089 0.7811 +vn -0.0346 0.6608 0.7498 +vn -0.0374 0.5774 0.8156 +vn -0.0404 0.4580 0.8880 +vn -0.0428 0.3311 0.9426 +vn -0.0443 0.1990 0.9790 +vn -0.0451 0.0640 0.9969 +vn -0.0451 -0.0720 0.9964 +vn -0.0443 -0.2069 0.9773 +vn -0.0428 -0.3387 0.9399 +vn -0.0404 -0.4651 0.8843 +vn -0.0374 -0.5840 0.8109 +vn -0.9567 0.2912 -0.0016 +vn -0.9846 0.1748 -0.0022 +vn -0.9983 0.0583 -0.0027 +vn -0.9983 -0.0583 -0.0032 +vn -0.9846 -0.1748 -0.0036 +vn -0.9566 -0.2912 -0.0040 +vn 0.9566 0.2912 0.0040 +vn 0.9726 0.2327 0.0038 +vn 0.9846 0.1748 0.0036 +vn 0.9725 0.2327 0.0038 +vn 0.9932 0.1163 0.0034 +vn 0.9983 0.0583 0.0032 +vn 1.0000 -0.0000 0.0030 +vn 0.9983 -0.0583 0.0027 +vn 0.9932 -0.1164 0.0025 +vn 0.9846 -0.1748 0.0022 +vn 0.9726 -0.2327 0.0019 +vn -0.0026 0.4491 0.8935 +vn -0.0028 0.3238 0.9461 +vn -0.0029 0.1942 0.9809 +vn -0.0029 0.1943 0.9809 +vn -0.0030 0.0623 0.9981 +vn -0.0030 -0.0704 0.9975 +vn -0.0029 -0.2022 0.9793 +vn -0.0028 -0.3314 0.9435 +vn 0.7189 -0.6839 -0.1244 +vn -0.1192 -0.7121 -0.6919 +vn -0.2298 -0.7356 -0.6372 +vn -0.3295 -0.7498 -0.5738 +vn -0.4202 -0.7555 -0.5026 +vn -0.5033 -0.7530 -0.4239 +vn -0.5803 -0.7416 -0.3366 +vn -0.6520 -0.7195 -0.2390 +vn -0.7181 -0.6839 -0.1286 +vn 0.6534 -0.7195 -0.2351 +vn 0.5823 -0.7416 -0.3331 +vn 0.5058 -0.7530 -0.4209 +vn 0.4231 -0.7555 -0.5002 +vn 0.3329 -0.7498 -0.5718 +vn 0.2335 -0.7356 -0.6358 +vn 0.1232 -0.7121 -0.6912 +vn 0.1192 -0.7177 0.6861 +vn 0.2298 -0.7408 0.6312 +vn 0.3296 -0.7544 0.5677 +vn 0.4202 -0.7596 0.4965 +vn 0.5033 -0.7564 0.4177 +vn 0.5804 -0.7443 0.3305 +vn 0.6521 -0.7214 0.2332 +vn 0.7182 -0.6849 0.1231 +vn -0.9976 0.0690 -0.0027 +vn -0.9932 0.1163 -0.0025 +vn -0.9783 0.2071 -0.0020 +vn -0.9976 -0.0693 -0.0032 +vn -1.0000 0.0000 -0.0029 +vn -0.9782 -0.2074 -0.0037 +vn -0.9932 -0.1163 -0.0034 +vn -0.0029 -0.0910 0.9958 +vn -0.0029 -0.0041 1.0000 +vn -0.0029 0.0664 0.9978 +vn -0.0029 0.0623 0.9981 +vn -0.0029 -0.0704 0.9975 +vn -0.0029 0.1284 0.9917 +vn -0.0029 0.2144 0.9768 +vn -0.0028 -0.2549 0.9670 +vn -0.0029 -0.1364 0.9907 +vn -0.0029 -0.2549 0.9670 +vn -0.0029 0.2592 0.9658 +vn -0.0029 0.2144 0.9767 +vn -0.0028 -0.2671 0.9637 +vn -0.0029 -0.1241 0.9923 +vn -0.0030 -0.0041 1.0000 +vn -0.0030 0.0664 0.9978 +vn -0.0029 -0.0040 1.0000 +vn -0.0029 -0.1364 0.9906 +vn -0.0030 0.0665 0.9978 +vn -0.0030 -0.0040 1.0000 +vn -0.0030 0.1284 0.9917 +vn 0.9976 -0.0688 0.0027 +vn 1.0000 -0.0000 0.0029 +vn 0.9976 0.0691 0.0032 +vn 0.9783 0.2070 0.0037 +vn 0.9768 -0.2141 0.0020 +vn 0.9932 -0.1163 0.0025 +vn 0.9932 0.1164 0.0034 +vn 0.9784 -0.2067 0.0020 +vn 0.0458 0.9441 0.3265 +vn 0.0458 0.9453 0.3231 +vn 0.0473 0.9749 0.2173 +vn 0.0472 0.9744 0.2198 +vn -0.0107 -0.2209 -0.9752 +vn -0.0112 -0.2305 -0.9730 +vn -0.0137 -0.2817 -0.9594 +vn -0.0167 -0.3433 -0.9391 +vn -0.0160 -0.3306 -0.9436 +vn 0.0109 0.2242 0.9745 +vn 0.0112 0.2306 0.9730 +vn 0.0165 0.3396 0.9404 +vn 0.0162 0.3336 0.9426 +vn 0.0411 0.8486 0.5274 +vn 0.0413 0.8516 0.5225 +vn 0.0438 0.9040 0.4252 +vn 0.0437 0.9020 0.4295 +vn -0.0217 -0.4473 -0.8941 +vn -0.0211 -0.4357 -0.8998 +vn -0.0380 -0.7831 -0.6207 +vn -0.0383 -0.7901 -0.6118 +vn -0.0413 -0.8528 -0.5207 +vn -0.0411 -0.8478 -0.5288 +vn 0.0481 0.9927 0.1105 +vn 0.0481 0.9929 0.1092 +vn -0.0053 -0.1081 -0.9941 +vn -0.0057 -0.1182 -0.9930 +vn 0.0344 0.7100 0.7033 +vn 0.0347 0.7154 0.6978 +vn 0.0382 0.7886 0.6138 +vn 0.0380 0.7844 0.6191 +vn -0.0481 -0.9927 -0.1107 +vn -0.0481 -0.9929 -0.1090 +vn 0.0028 0.0571 0.9984 +vn 0.0057 0.1183 0.9930 +vn 0.0054 0.1116 0.9937 +vn -0.0437 -0.9015 -0.4306 +vn -0.0439 -0.9047 -0.4237 +vn -0.0458 -0.9456 -0.3220 +vn -0.0457 -0.9438 -0.3274 +vn -0.0473 -0.9751 -0.2166 +vn -0.0472 -0.9743 -0.2203 +vn 0.0213 0.4384 0.8985 +vn 0.0215 0.4439 0.8958 +vn 0.0263 0.5421 0.8399 +vn 0.0260 0.5373 0.8430 +vn -0.0259 -0.5349 -0.8445 +vn -0.0264 -0.5451 -0.8380 +vn -0.0308 -0.6354 -0.7715 +vn -0.0304 -0.6269 -0.7785 +vn 0.0305 0.6289 0.7769 +vn 0.0307 0.6330 0.7736 +vn 0.0326 0.6730 0.7389 +vn 0.9983 0.0584 0.0032 +vn 0.9794 0.2019 0.0037 +vn -0.0348 -0.7174 -0.6958 +vn -0.0343 -0.7084 -0.7050 +vn -0.0326 -0.6730 -0.7389 +vn 0.9983 -0.0581 0.0027 +vn 0.9794 -0.2019 0.0021 +vn 0.9983 0.0581 0.0032 +vn 0.9983 -0.0584 0.0027 +vn 0.9793 -0.2022 0.0021 +vn 0.9795 0.2016 0.0037 +vn 0.9976 0.0688 0.0032 +vn 0.9976 -0.0691 0.0027 +vn 0.9768 0.2141 0.0037 +vn 0.9783 -0.2071 0.0020 +vn 0.9784 0.2067 0.0037 +vn 0.9783 -0.2070 0.0020 +vn -0.9783 -0.2071 -0.0037 +vn -0.9725 -0.2327 -0.0038 +vn -0.9783 0.2074 -0.0020 +vn -0.9976 0.0693 -0.0027 +vn -0.9976 -0.0690 -0.0032 +vn -0.9726 0.2327 -0.0019 +vn 0.0299 -0.7114 0.7021 +vn 0.0181 -0.7239 0.6897 +vn 0.0964 -0.7544 0.6494 +vn 0.1174 -0.7396 0.6627 +vn 0.6594 -0.7438 0.1097 +vn 0.5904 -0.8022 0.0884 +vn 0.6202 -0.7843 0.0173 +vn 0.6956 -0.7179 0.0272 +vn 0.6019 -0.7700 0.2119 +vn 0.5428 -0.8192 0.1850 +vn 0.5395 -0.7852 0.3039 +vn 0.4908 -0.8272 0.2738 +vn 0.4717 -0.7919 0.3879 +vn 0.4323 -0.8281 0.3569 +vn 0.3973 -0.7910 0.4654 +vn 0.3657 -0.8224 0.4357 +vn 0.3147 -0.7826 0.5371 +vn 0.2891 -0.8096 0.5108 +vn 0.2221 -0.7660 0.6032 +vn 0.2003 -0.7878 0.5824 +vn 0.1213 -0.7347 -0.6675 +vn 0.1000 -0.7499 -0.6539 +vn 0.0221 -0.7187 -0.6949 +vn 0.0340 -0.7060 -0.7074 +vn 0.2255 -0.7616 -0.6076 +vn 0.2033 -0.7840 -0.5865 +vn 0.3176 -0.7787 -0.5411 +vn 0.2915 -0.8063 -0.5146 +vn 0.3997 -0.7876 -0.4689 +vn 0.3674 -0.8198 -0.4392 +vn 0.4735 -0.7892 -0.3911 +vn 0.4334 -0.8261 -0.3603 +vn 0.5408 -0.7832 -0.3068 +vn 0.4912 -0.8259 -0.2769 +vn 0.6025 -0.7688 -0.2144 +vn 0.5426 -0.8187 -0.1880 +vn 0.6594 -0.7435 -0.1117 +vn 0.5895 -0.8026 -0.0912 +vn -0.6592 -0.7430 -0.1157 +vn -0.5902 -0.8017 -0.0949 +vn -0.6201 -0.7842 -0.0237 +vn -0.6955 -0.7177 -0.0330 +vn -0.6017 -0.7683 -0.2181 +vn -0.5426 -0.8179 -0.1915 +vn -0.5394 -0.7828 -0.3102 +vn -0.4906 -0.8251 -0.2804 +vn -0.4716 -0.7888 -0.3942 +vn -0.4321 -0.8253 -0.3635 +vn -0.3972 -0.7872 -0.4717 +vn -0.3655 -0.8191 -0.4422 +vn -0.3146 -0.7783 -0.5434 +vn -0.2890 -0.8056 -0.5172 +vn -0.2221 -0.7612 -0.6093 +vn -0.2002 -0.7833 -0.5885 +vn -0.1174 -0.7343 -0.6686 +vn -0.0963 -0.7493 -0.6552 +vn -0.0298 -0.7058 -0.7078 +vn -0.0180 -0.7185 -0.6953 +vn 0.6954 -0.7181 -0.0289 +vn 0.6198 -0.7845 -0.0200 +vn 0.0001 -1.0000 -0.0043 +vn 0.0000 -1.0000 -0.0043 +vn 0.0002 -1.0000 -0.0042 +vn 0.0002 -1.0000 -0.0041 +vn 0.0001 -1.0000 -0.0041 +vn -0.0001 -1.0000 -0.0042 +vn -0.0002 -1.0000 -0.0042 +vn -0.0002 -1.0000 -0.0041 +vn -0.0001 -1.0000 -0.0041 +vn 0.0001 -1.0000 -0.0042 +vn -0.0000 -1.0000 -0.0042 +vn -0.0001 -1.0000 -0.0043 +vn -0.5073 -0.0160 0.8616 +vn -0.3486 -0.0174 0.9371 +vn -0.3481 -0.0174 0.9373 +vn -0.5066 -0.0160 0.8620 +vn -0.0340 -0.7116 0.7017 +vn -0.1213 -0.7400 0.6616 +vn -0.6954 -0.7182 0.0231 +vn -0.6594 -0.7443 0.1057 +vn -0.6026 -0.7704 0.2082 +vn -0.5409 -0.7856 0.3005 +vn -0.4736 -0.7922 0.3848 +vn -0.3997 -0.7913 0.4626 +vn -0.3176 -0.7830 0.5349 +vn -0.2255 -0.7664 0.6015 +vn -0.0000 1.0000 0.0041 +vn -0.8667 0.0092 -0.4987 +vn -0.9397 0.0063 -0.3419 +vn -0.9402 0.0062 -0.3405 +vn -0.8674 0.0091 -0.4975 +vn 0.3431 -0.0174 0.9391 +vn 0.5022 -0.0160 0.8646 +vn 0.5015 -0.0160 0.8650 +vn 0.3426 -0.0174 0.9393 +vn -0.9845 0.0032 -0.1753 +vn -0.9848 0.0032 -0.1738 +vn -0.6499 -0.0141 0.7599 +vn -0.6491 -0.0141 0.7606 +vn 0.6454 -0.0141 0.7637 +vn 0.6446 -0.0141 0.7644 +vn -0.9989 0.0008 -0.0464 +vn -0.9990 0.0008 -0.0456 +vn -0.7720 -0.0118 0.6355 +vn -0.7712 -0.0118 0.6364 +vn 0.7683 -0.0118 0.6400 +vn 0.7675 -0.0118 0.6410 +vn 0.9992 0.0008 -0.0405 +vn 0.9855 0.0032 -0.1695 +vn 0.9858 0.0032 -0.1680 +vn 0.9992 0.0008 -0.0398 +vn -0.8704 -0.0092 0.4923 +vn -0.8697 -0.0092 0.4936 +vn 0.8674 -0.0092 0.4975 +vn 0.8667 -0.0092 0.4987 +vn 0.9417 0.0063 -0.3364 +vn 0.9422 0.0062 -0.3349 +vn -0.9422 -0.0063 0.3349 +vn -0.9417 -0.0063 0.3364 +vn 0.9402 -0.0063 0.3405 +vn 0.9397 -0.0063 0.3419 +vn 0.8697 0.0092 -0.4936 +vn 0.8704 0.0092 -0.4923 +vn -0.9858 -0.0032 0.1680 +vn -0.9855 -0.0032 0.1695 +vn 0.9848 -0.0032 0.1738 +vn 0.9845 -0.0032 0.1753 +vn 0.7712 0.0118 -0.6364 +vn 0.7720 0.0118 -0.6355 +vn -0.9992 -0.0008 0.0398 +vn -0.9992 -0.0008 0.0405 +vn 0.9990 -0.0008 0.0456 +vn 0.9989 -0.0008 0.0464 +vn 0.6491 0.0141 -0.7606 +vn 0.6499 0.0141 -0.7599 +vn -0.0412 0.0185 -0.9990 +vn -0.1726 0.0182 -0.9848 +vn -0.1729 0.0182 -0.9848 +vn 0.5066 0.0160 -0.8620 +vn 0.5073 0.0160 -0.8616 +vn -0.3426 0.0174 -0.9393 +vn -0.3431 0.0174 -0.9391 +vn 0.0471 0.0185 -0.9987 +vn 0.0029 0.0185 -0.9998 +vn 0.3481 0.0174 -0.9373 +vn 0.3486 0.0174 -0.9371 +vn -0.5015 0.0160 -0.8650 +vn -0.5022 0.0160 -0.8646 +vn 0.1784 0.0182 -0.9838 +vn 0.1787 0.0182 -0.9837 +vn -0.6446 0.0141 -0.7644 +vn -0.6454 0.0141 -0.7637 +vn -0.0471 -0.0185 0.9987 +vn 0.0412 -0.0185 0.9990 +vn -0.7675 0.0118 -0.6410 +vn -0.7683 0.0118 -0.6400 +vn -0.1787 -0.0182 0.9837 +vn -0.1784 -0.0182 0.9838 +vn 0.1729 -0.0182 0.9848 +vn 0.1726 -0.0182 0.9848 +vn -0.0000 1.0000 0.0007 +vn -0.0029 -0.0252 0.9997 +vn -0.1000 -0.7550 0.6481 +vn -0.2034 -0.7885 0.5804 +vn -0.0221 -0.7241 0.6894 +vn -0.2916 -0.8103 0.5083 +vn -0.3676 -0.8232 0.4328 +vn -0.4335 -0.8288 0.3537 +vn -0.4914 -0.8279 0.2704 +vn -0.5428 -0.8201 0.1814 +vn -0.5898 -0.8031 0.0847 +vn -0.6198 -0.7846 0.0136 +vn -0.5843 0.0070 -0.8115 +vn -0.7606 0.0056 -0.6491 +vn -0.7611 0.0056 -0.6486 +vn -0.5845 0.0070 -0.8114 +vn -0.7350 0.0059 -0.6780 +vn -0.4412 0.0121 -0.8973 +vn -0.4380 0.0121 -0.8989 +vn -0.7346 0.0059 -0.6785 +vn 0.9981 0.0006 -0.0619 +vn 0.9700 0.0021 -0.2430 +vn 0.9702 0.0021 -0.2422 +vn 0.9981 0.0006 -0.0616 +vn -0.3625 0.0081 -0.9320 +vn -0.3628 0.0081 -0.9318 +vn -0.9433 0.0029 -0.3318 +vn -0.9429 0.0029 -0.3332 +vn 0.9988 0.0005 -0.0494 +vn 0.9988 0.0005 -0.0496 +vn -0.1052 0.0086 -0.9944 +vn -0.1053 0.0086 -0.9944 +vn -0.9987 0.0004 -0.0504 +vn -0.9987 0.0004 -0.0506 +vn 0.9967 0.0007 -0.0813 +vn 0.2122 0.0085 -0.9772 +vn 0.2124 0.0085 -0.9771 +vn -0.9935 0.0010 -0.1135 +vn -0.9936 0.0010 -0.1129 +vn 0.7070 0.0062 -0.7072 +vn 0.7913 0.0053 -0.6114 +vn 0.7066 0.0062 -0.7076 +vn 0.5277 0.0074 -0.8494 +vn 0.5280 0.0074 -0.8492 +vn -0.9544 0.0026 -0.2984 +vn -0.9546 0.0026 -0.2979 +vn 0.5234 0.0074 -0.8520 +vn 0.5232 0.0074 -0.8522 +vn 0.7205 0.0060 -0.6934 +vn 0.7209 0.0060 -0.6930 +vn -0.8885 0.0040 -0.4589 +vn -0.8887 0.0040 -0.4585 +vn 0.2760 0.0127 -0.9611 +vn 0.2744 0.0127 -0.9615 +vn 0.8707 0.0043 -0.4918 +vn 0.8710 0.0043 -0.4912 +vn 0.1142 0.0172 -0.9933 +vn -0.2364 0.0168 -0.9715 +usemtl back_of_phone_color +s off +f 131/1/1 132/2/1 2106/3/1 2104/4/1 +f 132/2/2 133/5/2 2108/6/2 2109/7/2 2106/3/2 +f 133/5/3 134/8/3 2110/9/3 2108/6/3 +f 134/8/4 135/10/4 2107/11/4 2110/9/4 +f 135/10/5 136/12/5 2105/13/5 2107/11/5 +f 136/12/6 137/14/6 2103/15/6 2105/13/6 +f 137/14/7 138/16/7 2100/17/7 2103/15/7 +f 138/16/8 139/18/8 2097/19/8 2100/17/8 +f 139/18/9 140/20/9 2094/21/9 2098/22/9 2097/19/9 +f 140/20/10 141/23/10 2095/24/10 2094/21/10 +f 141/23/11 142/25/11 2092/26/11 2095/24/11 +f 142/25/12 143/27/12 2127/28/12 2092/26/12 +f 143/27/13 144/29/13 2125/30/13 2127/28/13 +f 144/29/14 145/31/14 2122/32/14 2125/30/14 +f 145/31/15 146/33/15 2120/34/15 2122/32/15 +f 146/33/16 147/35/16 2118/36/16 2120/34/16 +f 147/35/17 148/37/17 2132/38/17 2118/36/17 +f 148/37/18 149/39/18 2131/40/18 2132/38/18 +f 149/39/19 150/41/19 2134/42/19 2131/40/19 +f 150/41/20 151/43/20 2130/44/20 2134/42/20 +f 151/43/21 152/45/21 2133/46/21 2130/44/21 +f 152/45/22 153/47/22 2119/48/22 2133/46/22 +f 153/47/23 154/49/23 2121/50/23 2119/48/23 +f 154/49/24 155/51/24 2124/52/24 2123/53/24 2121/50/24 +f 155/51/25 156/54/25 2126/55/25 2124/52/25 +f 156/54/26 157/56/26 2128/57/26 2126/55/26 +f 157/56/27 158/58/27 2129/59/27 2128/57/27 +f 158/58/28 159/60/28 2093/61/28 2129/59/28 +f 159/60/29 160/62/29 2096/63/29 2093/61/29 +f 160/62/30 161/64/30 2099/65/30 2096/63/30 +f 161/64/31 162/66/31 2101/67/31 2102/68/31 2099/65/31 +f 162/66/32 131/69/32 2104/70/32 2101/67/32 +f 131/71/33 162/72/33 161/73/33 160/74/33 159/75/33 158/76/33 157/77/33 156/78/33 155/79/33 154/80/33 153/81/33 152/82/33 151/83/33 150/84/33 149/85/33 148/86/33 147/87/33 146/88/33 145/89/33 144/90/33 143/91/33 142/92/33 141/93/33 140/94/33 139/95/33 138/96/33 137/97/33 136/98/33 135/99/33 134/100/33 133/101/33 132/102/33 +f 163/103/1 164/104/1 2091/105/1 2090/106/1 +f 164/104/2 165/107/2 2047/108/2 2048/109/2 2091/105/2 +f 165/107/3 166/110/3 2049/111/3 2047/108/3 +f 166/110/4 167/112/4 2046/113/4 2049/111/4 +f 167/112/5 168/114/5 2045/115/5 2046/113/5 +f 168/114/6 169/116/6 2089/117/6 2045/115/6 +f 169/116/7 170/118/7 2086/119/7 2089/117/7 +f 170/118/8 171/120/8 2084/121/8 2086/119/8 +f 171/120/9 172/122/9 2081/123/9 2083/124/9 2084/121/9 +f 172/122/10 173/125/10 2079/126/10 2081/123/10 +f 173/125/11 174/127/11 2077/128/11 2079/126/11 +f 174/127/12 175/129/12 2075/130/12 2077/128/12 +f 175/129/13 176/131/13 2073/132/13 2075/130/13 +f 176/131/14 177/133/14 2070/134/14 2073/132/14 +f 177/133/15 178/135/15 2069/136/15 2070/134/15 +f 178/135/16 179/137/16 2116/138/16 2069/136/16 +f 179/137/17 180/139/17 2114/140/17 2116/138/17 +f 180/139/18 181/141/18 2111/142/18 2114/140/18 +f 181/141/19 182/143/19 2112/144/19 2111/142/19 +f 182/143/20 183/145/20 2113/146/20 2112/144/20 +f 183/145/21 184/147/21 2115/148/21 2113/146/21 +f 184/147/22 185/149/22 2117/150/22 2115/148/22 +f 185/149/23 186/151/23 2068/152/23 2117/150/23 +f 186/151/24 187/153/24 2072/154/24 2071/155/24 2068/152/24 +f 187/153/25 188/156/25 2074/157/25 2072/154/25 +f 188/156/26 189/158/26 2076/159/26 2074/157/26 +f 189/158/27 190/160/27 2078/161/27 2076/159/27 +f 190/160/28 191/162/28 2080/163/28 2078/161/28 +f 191/162/29 192/164/29 2082/165/29 2080/163/29 +f 192/164/30 193/166/30 2085/167/30 2082/165/30 +f 193/166/31 194/168/31 2087/169/31 2088/170/31 2085/167/31 +f 194/168/32 163/171/32 2090/172/32 2087/169/32 +f 163/173/33 194/174/33 193/175/33 192/176/33 191/177/33 190/178/33 189/179/33 188/180/33 187/181/33 186/182/33 185/183/33 184/184/33 183/185/33 182/186/33 181/187/33 180/188/33 179/189/33 178/190/33 177/191/33 176/192/33 175/193/33 174/194/33 173/195/33 172/196/33 171/197/33 170/198/33 169/199/33 168/200/33 167/201/33 166/202/33 165/203/33 164/204/33 +f 195/205/1 196/206/1 2040/207/1 2038/208/1 +f 196/206/2 197/209/2 2042/210/2 2043/211/2 2040/207/2 +f 197/209/3 198/212/3 2044/213/3 2042/210/3 +f 198/212/4 199/214/4 2041/215/4 2044/213/4 +f 199/214/5 200/216/5 2039/217/5 2041/215/5 +f 200/216/6 201/218/6 2037/219/6 2039/217/6 +f 201/218/7 202/220/7 2034/221/7 2037/219/7 +f 202/220/8 203/222/8 2031/223/8 2034/221/8 +f 203/222/9 204/224/9 2029/225/9 2032/226/9 2031/223/9 +f 204/224/10 205/227/10 2028/228/10 2029/225/10 +f 205/227/11 206/229/11 2066/230/11 2028/228/11 +f 206/229/12 207/231/12 2064/232/12 2066/230/12 +f 207/231/13 208/233/13 2062/234/13 2064/232/13 +f 208/233/14 209/235/14 2059/236/14 2062/234/14 +f 209/235/15 210/237/15 2057/238/15 2059/236/15 +f 210/237/16 211/239/16 2055/240/16 2057/238/16 +f 211/239/17 212/241/17 2053/242/17 2055/240/17 +f 212/241/18 213/243/18 2051/244/18 2053/242/18 +f 213/243/19 214/245/19 2050/246/19 2051/244/19 +f 214/245/20 215/247/20 2052/248/20 2050/246/20 +f 215/247/21 216/249/21 2054/250/21 2052/248/21 +f 216/249/22 217/251/22 2056/252/22 2054/250/22 +f 217/251/23 218/253/23 2058/254/23 2056/252/23 +f 218/253/24 219/255/24 2060/256/24 2061/257/24 2058/254/24 +f 219/255/25 220/258/25 2063/259/25 2060/256/25 +f 220/258/26 221/260/26 2065/261/26 2063/259/26 +f 221/260/27 222/262/27 2067/263/27 2065/261/27 +f 222/262/28 223/264/28 2027/265/28 2067/263/28 +f 223/264/29 224/266/29 2030/267/29 2027/265/29 +f 224/266/30 225/268/30 2033/269/30 2030/267/30 +f 225/268/31 226/270/31 2035/271/31 2036/272/31 2033/269/31 +f 226/270/32 195/273/32 2038/274/32 2035/271/32 +f 195/275/33 226/276/33 225/277/33 224/278/33 223/279/33 222/280/33 221/281/33 220/282/33 219/283/33 218/284/33 217/285/33 216/286/33 215/287/33 214/288/33 213/289/33 212/290/33 211/291/33 210/292/33 209/293/33 208/294/33 207/295/33 206/296/33 205/297/33 204/298/33 203/299/33 202/300/33 201/301/33 200/302/33 199/303/33 198/304/33 197/305/33 196/306/33 +f 227/307/1 228/308/1 1992/309/1 1990/310/1 +f 228/308/2 229/311/2 1994/312/2 1995/313/2 1992/309/2 +f 229/311/3 230/314/3 1996/315/3 1994/312/3 +f 230/314/4 231/316/4 1993/317/4 1996/315/4 +f 231/316/5 232/318/5 1991/319/5 1993/317/5 +f 232/318/6 233/320/6 1989/321/6 1991/319/6 +f 233/320/7 234/322/7 1986/323/7 1989/321/7 +f 234/322/8 235/324/8 1984/325/8 1986/323/8 +f 235/324/9 236/326/9 1983/327/9 1982/328/9 1984/325/9 +f 236/326/10 237/329/10 2024/330/10 1983/327/10 +f 237/329/11 238/331/11 2022/332/11 2024/330/11 +f 238/331/12 239/333/12 2020/334/12 2022/332/12 +f 239/333/13 240/335/13 2018/336/13 2020/334/13 +f 240/335/14 241/337/14 2015/338/14 2018/336/14 +f 241/337/15 242/339/15 2013/340/15 2015/338/15 +f 242/339/16 243/341/16 2011/342/16 2013/340/16 +f 243/341/17 244/343/17 2009/344/17 2011/342/17 +f 244/343/18 245/345/18 2007/346/18 2009/344/18 +f 245/345/19 246/347/19 2006/348/19 2007/346/19 +f 246/347/20 247/349/20 2008/350/20 2006/348/20 +f 247/349/21 248/351/21 2010/352/21 2008/350/21 +f 248/351/22 249/353/22 2012/354/22 2010/352/22 +f 249/353/23 250/355/23 2014/356/23 2012/354/23 +f 250/355/24 251/357/24 2016/358/24 2017/359/24 2014/356/24 +f 251/357/25 252/360/25 2019/361/25 2016/358/25 +f 252/360/26 253/362/26 2021/363/26 2019/361/26 +f 253/362/27 254/364/27 2023/365/27 2021/363/27 +f 254/364/28 255/366/28 2025/367/28 2023/365/28 +f 255/366/29 256/368/29 2026/369/29 2025/367/29 +f 256/368/30 257/370/30 1985/371/30 2026/369/30 +f 257/370/31 258/372/31 1987/373/31 1988/374/31 1985/371/31 +f 258/372/32 227/375/32 1990/376/32 1987/373/32 +f 227/377/33 258/378/33 257/379/33 256/380/33 255/381/33 254/382/33 253/383/33 252/384/33 251/385/33 250/386/33 249/387/33 248/388/33 247/389/33 246/390/33 245/391/33 244/392/33 243/393/33 242/394/33 241/395/33 240/396/33 239/397/33 238/398/33 237/399/33 236/400/33 235/401/33 234/402/33 233/403/33 232/404/33 231/405/33 230/406/33 229/407/33 228/408/33 +f 259/409/1 260/410/1 1977/411/1 1975/412/1 +f 260/410/2 261/413/2 1979/414/2 1980/415/2 1977/411/2 +f 261/413/3 262/416/3 1981/417/3 1979/414/3 +f 262/416/4 263/418/4 1978/419/4 1981/417/4 +f 263/418/5 264/420/5 1976/421/5 1978/419/5 +f 264/420/6 265/422/6 1974/423/6 1976/421/6 +f 265/422/7 266/424/7 1971/425/7 1974/423/7 +f 266/424/8 267/426/8 1969/427/8 1971/425/8 +f 267/426/9 268/428/9 1966/429/9 1968/430/9 1969/427/9 +f 268/428/10 269/431/10 1964/432/10 1966/429/10 +f 269/431/11 270/433/11 1962/434/11 1964/432/11 +f 270/433/12 271/435/12 1960/436/12 1962/434/12 +f 271/435/13 272/437/13 1957/438/13 1960/436/13 +f 272/437/14 273/439/14 1958/440/14 1957/438/14 +f 273/439/15 274/441/15 2004/442/15 1958/440/15 +f 274/441/16 275/443/16 2002/444/16 2004/442/16 +f 275/443/17 276/445/17 2000/446/17 2002/444/17 +f 276/445/18 277/447/18 1998/448/18 2000/446/18 +f 277/447/19 278/449/19 1997/450/19 1998/448/19 +f 278/449/20 279/451/20 1999/452/20 1997/450/20 +f 279/451/21 280/453/21 2001/454/21 1999/452/21 +f 280/453/22 281/455/22 2003/456/22 2001/454/22 +f 281/455/23 282/457/23 2005/458/23 2003/456/23 +f 282/457/24 283/459/24 1955/460/24 1956/461/24 2005/458/24 +f 283/459/25 284/462/25 1959/463/25 1955/460/25 +f 284/462/26 285/464/26 1961/465/26 1959/463/26 +f 285/464/27 286/466/27 1963/467/27 1961/465/27 +f 286/466/28 287/468/28 1965/469/28 1963/467/28 +f 287/468/29 288/470/29 1967/471/29 1965/469/29 +f 288/470/30 289/472/30 1970/473/30 1967/471/30 +f 289/472/31 290/474/31 1972/475/31 1973/476/31 1970/473/31 +f 290/474/32 259/477/32 1975/478/32 1972/475/32 +f 259/479/33 290/480/33 289/481/33 288/482/33 287/483/33 286/484/33 285/485/33 284/486/33 283/487/33 282/488/33 281/489/33 280/490/33 279/491/33 278/492/33 277/493/33 276/494/33 275/495/33 274/496/33 273/497/33 272/498/33 271/499/33 270/500/33 269/501/33 268/502/33 267/503/33 266/504/33 265/505/33 264/506/33 263/507/33 262/508/33 261/509/33 260/510/33 +f 291/511/1 292/512/1 1914/513/1 1912/514/1 +f 292/512/2 293/515/2 1917/516/2 1916/517/2 1914/513/2 +f 293/515/3 294/518/3 1918/519/3 1917/516/3 +f 294/518/4 295/520/4 1915/521/4 1918/519/4 +f 295/520/5 296/522/5 1913/523/5 1915/521/5 +f 296/522/6 297/524/6 1911/525/6 1913/523/6 +f 297/524/7 298/526/7 1908/527/7 1911/525/7 +f 298/526/8 299/528/8 1907/529/8 1908/527/8 +f 299/528/9 300/530/9 1951/531/9 1953/532/9 1907/529/9 +f 300/530/10 301/533/10 1949/534/10 1951/531/10 +f 301/533/11 302/535/11 1947/536/11 1949/534/11 +f 302/535/12 303/537/12 1945/538/12 1947/536/12 +f 303/537/13 304/539/13 1943/540/13 1945/538/13 +f 304/539/14 305/541/14 1940/542/14 1943/540/14 +f 305/541/15 306/543/15 1938/544/15 1940/542/15 +f 306/543/16 307/545/16 1936/546/16 1938/544/16 +f 307/545/17 308/547/17 1934/548/17 1936/546/17 +f 308/547/18 309/549/18 1931/550/18 1934/548/18 +f 309/549/19 310/551/19 1932/552/19 1931/550/19 +f 310/551/20 311/553/20 1933/554/20 1932/552/20 +f 311/553/21 312/555/21 1935/556/21 1933/554/21 +f 312/555/22 313/557/22 1937/558/22 1935/556/22 +f 313/557/23 314/559/23 1939/560/23 1937/558/23 +f 314/559/24 315/561/24 1941/562/24 1942/563/24 1939/560/24 +f 315/561/25 316/564/25 1944/565/25 1941/562/25 +f 316/564/26 317/566/26 1946/567/26 1944/565/26 +f 317/566/27 318/568/27 1948/569/27 1946/567/27 +f 318/568/28 319/570/28 1950/571/28 1948/569/28 +f 319/570/29 320/572/29 1952/573/29 1950/571/29 +f 320/572/30 321/574/30 1954/575/30 1952/573/30 +f 321/574/31 322/576/31 1909/577/31 1910/578/31 1954/575/31 +f 322/576/32 291/579/32 1912/580/32 1909/577/32 +f 291/581/33 322/582/33 321/583/33 320/584/33 319/585/33 318/586/33 317/587/33 316/588/33 315/589/33 314/590/33 313/591/33 312/592/33 311/593/33 310/594/33 309/595/33 308/596/33 307/597/33 306/598/33 305/599/33 304/600/33 303/601/33 302/602/33 301/603/33 300/604/33 299/605/33 298/606/33 297/607/33 296/608/33 295/609/33 294/610/33 293/611/33 292/612/33 +f 323/613/1 324/614/1 1901/615/1 1899/616/1 +f 324/614/2 325/617/2 1903/618/2 1904/619/2 1901/615/2 +f 325/617/3 326/620/3 1905/621/3 1903/618/3 +f 326/620/4 327/622/4 1902/623/4 1905/621/4 +f 327/622/5 328/624/5 1900/625/5 1902/623/5 +f 328/624/6 329/626/6 1898/627/6 1900/625/6 +f 329/626/7 330/628/7 1895/629/7 1898/627/7 +f 330/628/8 331/630/8 1892/631/8 1895/629/8 +f 331/630/9 332/632/9 1890/633/9 1893/634/9 1892/631/9 +f 332/632/10 333/635/10 1888/636/10 1890/633/10 +f 333/635/11 334/637/11 1886/638/11 1888/636/11 +f 334/637/12 335/639/12 1884/640/12 1886/638/12 +f 335/639/13 336/641/13 1883/642/13 1884/640/13 +f 336/641/14 337/643/14 1928/644/14 1883/642/14 +f 337/643/15 338/645/15 1926/646/15 1928/644/15 +f 338/645/16 339/647/16 1924/648/16 1926/646/16 +f 339/647/17 340/649/17 1922/650/17 1924/648/17 +f 340/649/18 341/651/18 1919/652/18 1922/650/18 +f 341/651/19 342/653/19 1920/654/19 1919/652/19 +f 342/653/20 343/655/20 1921/656/20 1920/654/20 +f 343/655/21 344/657/21 1923/658/21 1921/656/21 +f 344/657/22 345/659/22 1925/660/22 1923/658/22 +f 345/659/23 346/661/23 1927/662/23 1925/660/23 +f 346/661/24 347/663/24 1929/664/24 1930/665/24 1927/662/24 +f 347/663/25 348/666/25 1882/667/25 1929/664/25 +f 348/666/26 349/668/26 1885/669/26 1882/667/26 +f 349/668/27 350/670/27 1887/671/27 1885/669/27 +f 350/670/28 351/672/28 1889/673/28 1887/671/28 +f 351/672/29 352/674/29 1891/675/29 1889/673/29 +f 352/674/30 353/676/30 1894/677/30 1891/675/30 +f 353/676/31 354/678/31 1896/679/31 1897/680/31 1894/677/31 +f 354/678/32 323/681/32 1899/682/32 1896/679/32 +f 323/683/33 354/684/33 353/685/33 352/686/33 351/687/33 350/688/33 349/689/33 348/690/33 347/691/33 346/692/33 345/693/33 344/694/33 343/695/33 342/696/33 341/697/33 340/698/33 339/699/33 338/700/33 337/701/33 336/702/33 335/703/33 334/704/33 333/705/33 332/706/33 331/707/33 330/708/33 329/709/33 328/710/33 327/711/33 326/712/33 325/713/33 324/714/33 +f 355/715/1 356/716/1 1816/717/1 1814/718/1 +f 356/716/2 357/719/2 1819/720/2 1818/721/2 1816/717/2 +f 357/719/3 358/722/3 1820/723/3 1819/720/3 +f 358/722/4 359/724/4 1817/725/4 1820/723/4 +f 359/724/5 360/726/5 1815/727/5 1817/725/5 +f 360/726/6 361/728/6 1813/729/6 1815/727/6 +f 361/728/7 362/730/7 1812/731/7 1813/729/7 +f 362/730/8 363/732/8 1878/733/8 1812/731/8 +f 363/732/9 364/734/9 1876/735/9 1879/736/9 1878/733/9 +f 364/734/10 365/737/10 1874/738/10 1876/735/10 +f 365/737/11 366/739/11 1872/740/11 1874/738/11 +f 366/739/12 367/741/12 1870/742/12 1872/740/12 +f 367/741/13 368/743/13 1868/744/13 1870/742/13 +f 368/743/14 369/745/14 1865/746/14 1868/744/14 +f 369/745/15 370/747/15 1863/748/15 1865/746/15 +f 370/747/16 371/749/16 1861/750/16 1863/748/16 +f 371/749/17 372/751/17 1858/752/17 1861/750/17 +f 372/751/18 373/753/18 1859/754/18 1858/752/18 +f 373/753/19 374/755/19 1906/756/19 1859/754/19 +f 374/755/20 375/757/20 1857/758/20 1906/756/20 +f 375/757/21 376/759/21 1860/760/21 1857/758/21 +f 376/759/22 377/761/22 1862/762/22 1860/760/22 +f 377/761/23 378/763/23 1864/764/23 1862/762/23 +f 378/763/24 379/765/24 1866/766/24 1867/767/24 1864/764/24 +f 379/765/25 380/768/25 1869/769/25 1866/766/25 +f 380/768/26 381/770/26 1871/771/26 1869/769/26 +f 381/770/27 382/772/27 1873/773/27 1871/771/27 +f 382/772/28 383/774/28 1875/775/28 1873/773/28 +f 383/774/29 384/776/29 1877/777/29 1875/775/29 +f 384/776/30 385/778/30 1880/779/30 1877/777/30 +f 385/778/31 386/780/31 1811/781/31 1881/782/31 1880/779/31 +f 386/780/32 355/783/32 1814/784/32 1811/781/32 +f 355/785/33 386/786/33 385/787/33 384/788/33 383/789/33 382/790/33 381/791/33 380/792/33 379/793/33 378/794/33 377/795/33 376/796/33 375/797/33 374/798/33 373/799/33 372/800/33 371/801/33 370/802/33 369/803/33 368/804/33 367/805/33 366/806/33 365/807/33 364/808/33 363/809/33 362/810/33 361/811/33 360/812/33 359/813/33 358/814/33 357/815/33 356/816/33 +f 387/817/1 388/818/1 1852/819/1 1850/820/1 +f 388/818/2 389/821/2 1855/822/2 1854/823/2 1852/819/2 +f 389/821/3 390/824/3 1856/825/3 1855/822/3 +f 390/824/4 391/826/4 1853/827/4 1856/825/4 +f 391/826/5 392/828/5 1851/829/5 1853/827/5 +f 392/828/6 393/830/6 1849/831/6 1851/829/6 +f 393/830/7 394/832/7 1846/833/7 1849/831/7 +f 394/832/8 395/834/8 1844/835/8 1846/833/8 +f 395/834/9 396/836/9 1841/837/9 1843/838/9 1844/835/9 +f 396/836/10 397/839/10 1839/840/10 1841/837/10 +f 397/839/11 398/841/11 1837/842/11 1839/840/11 +f 398/841/12 399/843/12 1835/844/12 1837/842/12 +f 399/843/13 400/845/13 1833/846/13 1835/844/13 +f 400/845/14 401/847/14 1830/848/14 1833/846/14 +f 401/847/15 402/849/15 1828/850/15 1830/848/15 +f 402/849/16 403/851/16 1826/852/16 1828/850/16 +f 403/851/17 404/853/17 1824/854/17 1826/852/17 +f 404/853/18 405/855/18 1822/856/18 1824/854/18 +f 405/855/19 406/857/19 1821/858/19 1822/856/19 +f 406/857/20 407/859/20 1823/860/20 1821/858/20 +f 407/859/21 408/861/21 1825/862/21 1823/860/21 +f 408/861/22 409/863/22 1827/864/22 1825/862/22 +f 409/863/23 410/865/23 1829/866/23 1827/864/23 +f 410/865/24 411/867/24 1831/868/24 1832/869/24 1829/866/24 +f 411/867/25 412/870/25 1834/871/25 1831/868/25 +f 412/870/26 413/872/26 1836/873/26 1834/871/26 +f 413/872/27 414/874/27 1838/875/27 1836/873/27 +f 414/874/28 415/876/28 1840/877/28 1838/875/28 +f 415/876/29 416/878/29 1842/879/29 1840/877/29 +f 416/878/30 417/880/30 1845/881/30 1842/879/30 +f 417/880/31 418/882/31 1847/883/31 1848/884/31 1845/881/31 +f 418/882/32 387/885/32 1850/886/32 1847/883/32 +f 387/887/33 418/888/33 417/889/33 416/890/33 415/891/33 414/892/33 413/893/33 412/894/33 411/895/33 410/896/33 409/897/33 408/898/33 407/899/33 406/900/33 405/901/33 404/902/33 403/903/33 402/904/33 401/905/33 400/906/33 399/907/33 398/908/33 397/909/33 396/910/33 395/911/33 394/912/33 393/913/33 392/914/33 391/915/33 390/916/33 389/917/33 388/918/33 +f 419/919/1 420/920/1 1770/921/1 1767/922/1 +f 420/920/2 421/923/2 1772/924/2 1773/925/2 1770/921/2 +f 421/923/3 422/926/3 1774/927/3 1772/924/3 +f 422/926/4 423/928/4 1771/929/4 1774/927/4 +f 423/928/5 424/930/5 1768/931/5 1771/929/5 +f 424/930/6 425/932/6 1766/933/6 1769/934/6 1768/931/6 +f 425/932/7 426/935/7 1765/936/7 1766/933/7 +f 426/935/8 427/937/8 1763/938/8 1765/936/8 +f 427/937/9 428/939/9 1762/940/9 1764/941/9 1763/938/9 +f 428/939/10 429/942/10 1760/943/10 1762/940/10 +f 429/942/11 430/944/11 1759/945/11 1761/946/11 1760/943/11 +f 430/944/12 431/947/12 1757/948/12 1759/945/12 +f 431/947/13 432/949/13 1758/950/13 1757/948/13 +f 432/949/14 433/951/14 1775/952/14 1758/950/14 +f 433/951/15 434/953/15 1776/954/15 1775/952/15 +f 434/953/16 435/955/16 1781/956/16 1776/954/16 +f 435/955/34 436/957/34 1789/958/34 1781/956/34 +f 436/957/18 437/959/18 1793/960/18 1789/958/18 +f 437/959/19 438/961/19 1796/962/19 1793/960/19 +f 438/961/20 439/963/20 1792/964/20 1796/962/20 +f 439/963/21 440/965/21 1795/966/21 1792/964/21 +f 440/965/22 441/967/22 1790/968/22 1794/969/22 1795/966/22 +f 441/967/23 442/970/23 1791/971/23 1790/968/23 +f 442/970/24 443/972/24 1784/973/24 1785/974/24 1791/971/24 +f 443/972/25 444/975/25 1786/976/25 1784/973/25 +f 444/975/26 445/977/26 1788/978/26 1786/976/26 +f 445/977/27 446/979/27 1782/980/27 1787/981/27 1788/978/27 +f 446/979/28 447/982/28 1783/983/28 1782/980/28 +f 447/982/29 448/984/29 1777/985/29 1783/983/29 +f 448/984/30 449/986/30 1778/987/30 1777/985/30 +f 449/986/31 450/988/31 1780/989/31 1779/990/31 1778/987/31 +f 450/988/35 419/991/35 1767/992/35 1780/989/35 +f 419/993/33 450/994/33 449/995/33 448/996/33 447/997/33 446/998/33 445/999/33 444/1000/33 443/1001/33 442/1002/33 441/1003/33 440/1004/33 439/1005/33 438/1006/33 437/1007/33 436/1008/33 435/1009/33 434/1010/33 433/1011/33 432/1012/33 431/1013/33 430/1014/33 429/1015/33 428/1016/33 427/1017/33 426/1018/33 425/1019/33 424/1020/33 423/1021/33 422/1022/33 421/1023/33 420/1024/33 +f 1373/1025/36 1374/1026/36 1369/1027/36 1372/1028/36 +f 1374/1026/37 1375/1029/37 1366/1030/37 1368/1031/37 1369/1027/37 +f 1375/1029/38 1376/1032/38 1365/1033/38 1366/1030/38 +f 1376/1032/39 1377/1034/39 1361/1035/39 1365/1033/39 +f 1377/1034/40 1378/1036/40 1358/1037/40 1360/1038/40 1361/1035/40 +f 1378/1036/41 1379/1039/41 1356/1040/41 1358/1037/41 +f 1379/1039/42 1380/1041/42 1355/1042/42 1356/1040/42 +f 1380/1041/43 1381/1043/43 1335/1044/43 1355/1042/43 +f 1381/1043/44 1382/1045/44 1336/1046/44 1335/1044/44 +f 1382/1045/45 1383/1047/45 1338/1048/45 1336/1046/45 +f 1383/1047/46 1384/1049/46 1340/1050/46 1338/1048/46 +f 1384/1049/47 1385/1051/47 1342/1052/47 1343/1053/47 1340/1050/47 +f 1385/1051/48 1386/1054/48 1346/1055/48 1342/1052/48 +f 1386/1054/49 1387/1056/49 1349/1057/49 1346/1055/49 +f 1387/1056/50 1388/1058/50 1353/1059/50 1354/1060/50 1349/1057/50 +f 1388/1058/51 1389/1061/51 1352/1062/51 1353/1059/51 +f 1389/1061/52 1390/1063/52 1348/1064/52 1352/1062/52 +f 1390/1063/53 1391/1065/53 1351/1066/53 1350/1067/53 1348/1064/53 +f 1391/1065/54 1392/1068/54 1347/1069/54 1351/1066/54 +f 1392/1068/55 1393/1070/55 1344/1071/55 1347/1069/55 +f 1393/1070/56 1394/1072/56 1341/1073/56 1345/1074/56 1344/1071/56 +f 1394/1072/57 1395/1075/57 1339/1076/57 1341/1073/57 +f 1395/1075/58 1396/1077/58 1337/1078/58 1339/1076/58 +f 1396/1077/59 1397/1079/59 1333/1080/59 1337/1078/59 +f 1397/1079/60 1398/1081/60 1334/1082/60 1333/1080/60 +f 1398/1081/61 1399/1083/61 1357/1084/61 1334/1082/61 +f 1399/1083/62 1400/1085/62 1359/1086/62 1357/1084/62 +f 1400/1085/63 1401/1087/63 1362/1088/63 1363/1089/63 1359/1086/63 +f 1401/1087/64 1402/1090/64 1364/1091/64 1362/1088/64 +f 1402/1090/65 1403/1092/65 1367/1093/65 1364/1091/65 +f 1403/1092/66 1404/1094/66 1370/1095/66 1371/1096/66 1367/1093/66 +f 1404/1094/67 1373/1097/67 1372/1098/67 1370/1095/67 +f 451/1099/68 452/1100/68 1374/1101/68 1373/1102/68 +f 452/1100/68 453/1103/68 1375/1104/68 1374/1101/68 +f 453/1103/69 454/1105/69 1376/1106/69 1375/1104/69 +f 454/1105/68 455/1107/68 1377/1108/68 1376/1106/68 +f 455/1107/68 456/1109/68 1378/1110/68 1377/1108/68 +f 456/1109/68 457/1111/68 1379/1112/68 1378/1110/68 +f 457/1111/69 458/1113/69 1380/1114/69 1379/1112/69 +f 458/1113/69 459/1115/69 1381/1116/69 1380/1114/69 +f 459/1115/69 460/1117/69 1382/1118/69 1381/1116/69 +f 460/1117/68 461/1119/68 1383/1120/68 1382/1118/68 +f 461/1119/68 462/1121/68 1384/1122/68 1383/1120/68 +f 462/1121/68 463/1123/68 1385/1124/68 1384/1122/68 +f 463/1123/68 464/1125/68 1386/1126/68 1385/1124/68 +f 464/1125/68 465/1127/68 1387/1128/68 1386/1126/68 +f 465/1127/68 466/1129/68 1388/1130/68 1387/1128/68 +f 466/1129/68 467/1131/68 1389/1132/68 1388/1130/68 +f 467/1131/68 468/1133/68 1390/1134/68 1389/1132/68 +f 468/1133/68 469/1135/68 1391/1136/68 1390/1134/68 +f 469/1135/68 470/1137/68 1392/1138/68 1391/1136/68 +f 470/1137/68 471/1139/68 1393/1140/68 1392/1138/68 +f 471/1139/68 472/1141/68 1394/1142/68 1393/1140/68 +f 472/1141/68 473/1143/68 1395/1144/68 1394/1142/68 +f 473/1143/70 474/1145/70 1396/1146/70 1395/1144/70 +f 474/1145/70 475/1147/70 1397/1148/70 1396/1146/70 +f 475/1147/70 476/1149/70 1398/1150/70 1397/1148/70 +f 476/1149/68 477/1151/68 1399/1152/68 1398/1150/68 +f 477/1151/69 478/1153/69 1400/1154/69 1399/1152/69 +f 478/1153/68 479/1155/68 1401/1156/68 1400/1154/68 +f 479/1155/68 480/1157/68 1402/1158/68 1401/1156/68 +f 480/1157/68 481/1159/68 1403/1160/68 1402/1158/68 +f 481/1159/68 482/1161/68 1404/1162/68 1403/1160/68 +f 482/1161/68 451/1099/68 1373/1102/68 1404/1162/68 +f 1517/1163/71 1528/1164/71 1529/1165/71 1518/1166/71 +f 2235/1167/72 2333/1168/72 2332/1169/72 2231/1170/72 +f 2225/1171/73 2341/1172/73 2340/1173/73 2220/1174/73 +f 2228/1175/74 2342/1176/74 2341/1172/74 2225/1171/74 +f 2234/1177/75 2334/1178/75 2333/1168/75 2235/1167/75 2236/1179/75 +f 2205/1180/76 2318/1181/76 2317/1182/76 2207/1183/76 2206/1184/76 +f 2204/1185/77 2316/1186/77 2315/1187/77 2203/1188/77 +f 2208/1189/78 2320/1190/78 2319/1191/78 2209/1192/78 +f 2215/1193/79 2326/1194/79 2325/1195/79 2216/1196/79 +f 2232/1197/80 2337/1198/80 2336/1199/80 2233/1200/80 2237/1201/80 +f 2227/1202/81 2328/1203/81 2327/1204/81 2214/1205/81 +f 2210/1206/82 2322/1207/82 2321/1208/82 2211/1209/82 +f 2211/1209/83 2321/1208/83 2320/1190/83 2208/1189/83 2212/1210/83 +f 2203/1188/84 2315/1187/84 2314/1211/84 2201/1212/84 2202/1213/84 +f 2214/1205/85 2327/1204/85 2326/1194/85 2215/1193/85 +f 2216/1196/86 2325/1195/86 2324/1214/86 2218/1215/86 2217/1216/86 +f 2209/1192/87 2319/1191/87 2318/1181/87 2205/1180/87 +f 2226/1217/88 2329/1218/88 2328/1203/88 2227/1202/88 +f 2221/1219/89 2339/1220/89 2338/1221/89 2230/1222/89 +f 2201/1212/90 2314/1211/90 2313/1223/90 2200/1224/90 +f 2218/1215/91 2324/1214/91 2323/1225/91 2213/1226/91 +f 2238/1227/92 2335/1228/92 2334/1178/92 2234/1177/92 +f 2200/1224/93 2313/1223/93 2311/1229/93 2199/1230/93 +f 2199/1230/94 2311/1229/94 2312/1231/94 2229/1232/94 +f 2229/1233/95 2312/1234/95 2342/1176/95 2228/1175/95 +f 2231/1170/96 2332/1169/96 2331/1235/96 2222/1236/96 +f 2220/1174/97 2340/1173/97 2339/1220/97 2221/1219/97 2219/1237/97 +f 2233/1200/98 2336/1199/98 2335/1228/98 2238/1227/98 +f 2230/1222/99 2338/1221/99 2337/1198/99 2232/1197/99 +f 2222/1236/100 2331/1235/100 2330/1238/100 2223/1239/100 2224/1240/100 +f 2213/1226/101 2323/1225/101 2322/1207/101 2210/1206/101 +f 2207/1183/102 2317/1182/102 2316/1186/102 2204/1185/102 +f 2223/1239/103 2330/1238/103 2329/1218/103 2226/1217/103 +f 2276/1241/72 2301/1242/72 2300/1243/72 2271/1244/72 +f 2264/1245/73 2309/1246/73 2308/1247/73 2259/1248/73 2265/1249/73 +f 2268/1250/74 2310/1251/74 2309/1246/74 2264/1245/74 +f 2274/1252/75 2302/1253/75 2301/1242/75 2276/1241/75 2275/1254/75 +f 2245/1255/76 2286/1256/76 2285/1257/76 2247/1258/76 2246/1259/76 +f 2244/1260/77 2284/1261/77 2283/1262/77 2243/1263/77 +f 2248/1264/78 2288/1265/78 2287/1266/78 2249/1267/78 +f 2255/1268/79 2294/1269/79 2293/1270/79 2256/1271/79 +f 2272/1272/80 2305/1273/80 2304/1274/80 2273/1275/80 2277/1276/80 +f 2267/1277/81 2296/1278/81 2295/1279/81 2254/1280/81 +f 2250/1281/82 2290/1282/82 2289/1283/82 2251/1284/82 +f 2251/1284/83 2289/1283/83 2288/1265/83 2248/1264/83 2252/1285/83 +f 2243/1263/104 2283/1262/104 2282/1286/104 2241/1287/104 2242/1288/104 +f 2254/1280/105 2295/1279/105 2294/1269/105 2255/1268/105 +f 2256/1271/86 2293/1270/86 2292/1289/86 2257/1290/86 +f 2249/1267/87 2287/1266/87 2286/1256/87 2245/1255/87 +f 2266/1291/88 2297/1292/88 2296/1278/88 2267/1277/88 +f 2260/1293/89 2307/1294/89 2306/1295/89 2270/1296/89 +f 2241/1287/90 2282/1286/90 2281/1297/90 2240/1298/90 +f 2257/1290/91 2292/1289/91 2291/1299/91 2253/1300/91 2258/1301/91 +f 2278/1302/92 2303/1303/92 2302/1253/92 2274/1252/92 +f 2240/1298/106 2281/1297/106 2279/1304/106 2239/1305/106 +f 2239/1305/107 2279/1304/107 2280/1306/107 2269/1307/107 +f 2269/1308/95 2280/1309/95 2310/1251/95 2268/1250/95 +f 2271/1244/96 2300/1243/96 2299/1310/96 2261/1311/96 +f 2259/1248/108 2308/1247/108 2307/1294/108 2260/1293/108 +f 2273/1275/98 2304/1274/98 2303/1303/98 2278/1302/98 +f 2270/1296/99 2306/1295/99 2305/1273/99 2272/1272/99 +f 2261/1311/100 2299/1310/100 2298/1312/100 2262/1313/100 2263/1314/100 +f 2253/1300/101 2291/1299/101 2290/1282/101 2250/1281/101 +f 2247/1258/102 2285/1257/102 2284/1261/102 2244/1260/102 +f 2262/1313/109 2298/1312/109 2297/1292/109 2266/1291/109 +f 68/1315/110 67/1316/110 2280/1317/110 2279/1318/110 +f 69/1319/111 68/1315/111 2279/1318/111 2281/1320/111 +f 70/1321/111 69/1319/111 2281/1320/111 2282/1322/111 +f 71/1323/111 70/1321/111 2282/1322/111 2283/1324/111 +f 72/1325/111 71/1323/111 2283/1324/111 2284/1326/111 +f 73/1327/111 72/1325/111 2284/1326/111 2285/1328/111 +f 74/1329/111 73/1327/111 2285/1328/111 2286/1330/111 +f 75/1331/111 74/1329/111 2286/1330/111 2287/1332/111 +f 76/1333/111 75/1331/111 2287/1332/111 2288/1334/111 +f 77/1335/111 76/1333/111 2288/1334/111 2289/1336/111 +f 78/1337/111 77/1335/111 2289/1336/111 2290/1338/111 +f 79/1339/111 78/1337/111 2290/1338/111 2291/1340/111 +f 80/1341/111 79/1339/111 2291/1340/111 2292/1342/111 +f 81/1343/112 80/1341/112 2292/1342/112 2293/1344/112 +f 82/1345/111 81/1343/111 2293/1344/111 2294/1346/111 +f 83/1347/112 82/1345/112 2294/1346/112 2295/1348/112 +f 84/1349/111 83/1347/111 2295/1348/111 2296/1350/111 +f 85/1351/110 84/1349/110 2296/1350/110 2297/1352/110 +f 86/1353/111 85/1351/111 2297/1352/111 2298/1354/111 +f 87/1355/111 86/1353/111 2298/1354/111 2299/1356/111 +f 88/1357/111 87/1355/111 2299/1356/111 2300/1358/111 +f 89/1359/111 88/1357/111 2300/1358/111 2301/1360/111 +f 90/1361/111 89/1359/111 2301/1360/111 2302/1362/111 +f 91/1363/111 90/1361/111 2302/1362/111 2303/1364/111 +f 92/1365/111 91/1363/111 2303/1364/111 2304/1366/111 +f 93/1367/111 92/1365/111 2304/1366/111 2305/1368/111 +f 94/1369/111 93/1367/111 2305/1368/111 2306/1370/111 +f 95/1371/111 94/1369/111 2306/1370/111 2307/1372/111 +f 96/1373/111 95/1371/111 2307/1372/111 2308/1374/111 +f 97/1375/111 96/1373/111 2308/1374/111 2309/1376/111 +f 98/1377/111 97/1375/111 2309/1376/111 2310/1378/111 +f 67/1316/112 98/1377/112 2310/1378/112 2280/1317/112 +f 100/1379/111 99/1380/111 2312/1381/111 2311/1382/111 +f 101/1383/111 100/1379/111 2311/1382/111 2313/1384/111 +f 102/1385/111 101/1383/111 2313/1384/111 2314/1386/111 +f 103/1387/111 102/1385/111 2314/1386/111 2315/1388/111 +f 104/1389/111 103/1387/111 2315/1388/111 2316/1390/111 +f 105/1391/111 104/1389/111 2316/1390/111 2317/1392/111 +f 106/1393/111 105/1391/111 2317/1392/111 2318/1394/111 +f 107/1395/111 106/1393/111 2318/1394/111 2319/1396/111 +f 108/1397/111 107/1395/111 2319/1396/111 2320/1398/111 +f 109/1399/111 108/1397/111 2320/1398/111 2321/1400/111 +f 110/1401/111 109/1399/111 2321/1400/111 2322/1402/111 +f 111/1403/111 110/1401/111 2322/1402/111 2323/1404/111 +f 112/1405/111 111/1403/111 2323/1404/111 2324/1406/111 +f 113/1407/111 112/1405/111 2324/1406/111 2325/1408/111 +f 114/1409/111 113/1407/111 2325/1408/111 2326/1410/111 +f 115/1411/111 114/1409/111 2326/1410/111 2327/1412/111 +f 116/1413/111 115/1411/111 2327/1412/111 2328/1414/111 +f 117/1415/110 116/1413/110 2328/1414/110 2329/1416/110 +f 118/1417/112 117/1415/112 2329/1416/112 2330/1418/112 +f 119/1419/111 118/1417/111 2330/1418/111 2331/1420/111 +f 120/1421/111 119/1419/111 2331/1420/111 2332/1422/111 +f 121/1423/111 120/1421/111 2332/1422/111 2333/1424/111 +f 122/1425/111 121/1423/111 2333/1424/111 2334/1426/111 +f 123/1427/111 122/1425/111 2334/1426/111 2335/1428/111 +f 124/1429/111 123/1427/111 2335/1428/111 2336/1430/111 +f 125/1431/111 124/1429/111 2336/1430/111 2337/1432/111 +f 126/1433/111 125/1431/111 2337/1432/111 2338/1434/111 +f 127/1435/111 126/1433/111 2338/1434/111 2339/1436/111 +f 128/1437/111 127/1435/111 2339/1436/111 2340/1438/111 +f 129/1439/112 128/1437/112 2340/1438/112 2341/1440/112 +f 130/1441/110 129/1439/110 2341/1440/110 2342/1442/110 +f 99/1380/110 130/1441/110 2342/1442/110 2312/1381/110 +s 1 +f 9/1443/113 3109/1444/114 3110/1445/33 3114/1446/33 3113/1447/115 7/1448/116 23/1449/33 +f 11/1450/117 21/1451/118 18/1452/118 22/1453/118 17/1454/118 19/1455/118 20/1456/118 6/1457/118 4/1458/118 66/1459/118 65/1460/118 45/1461/118 44/1462/118 43/1463/118 42/1464/118 35/1465/118 40/1466/118 38/1467/118 39/1468/118 41/1469/118 63/1470/118 64/1471/118 3/1472/118 5/1473/118 16/1474/118 15/1475/118 14/1476/118 13/1477/118 12/1478/118 10/1479/119 +f 42/1480/120 3077/1481/121 3075/1482/122 35/1483/123 +f 10/1479/119 9/1484/124 23/1485/125 24/1486/126 25/1487/124 11/1450/117 +f 51/1488/127 46/1489/128 50/1490/128 48/1491/128 49/1492/128 47/1493/128 36/1494/128 31/1495/128 32/1496/128 26/1497/128 27/1498/128 28/1499/128 29/1500/128 30/1501/128 33/1502/128 34/1503/128 37/1504/128 57/1505/128 56/1506/128 53/1507/128 52/1508/128 55/1509/128 54/1510/128 59/1511/128 58/1512/129 +f 23/1485/125 7/1513/130 1/1514/130 61/1515/130 60/1516/130 51/1488/127 58/1512/129 62/1517/130 2/1518/130 8/1519/130 24/1486/126 +f 513/1520/131 515/1521/131 516/1522/131 517/1523/131 518/1524/131 519/1525/131 520/1526/131 521/1527/131 522/1528/131 514/1529/131 493/1530/131 495/1531/131 496/1532/131 497/1533/131 498/1534/131 499/1535/131 500/1536/131 501/1537/131 502/1538/131 494/1539/131 483/1540/131 485/1541/131 486/1542/131 487/1543/131 488/1544/131 489/1545/131 490/1546/131 491/1547/131 492/1548/131 484/1549/131 503/1550/131 505/1551/131 506/1552/131 507/1553/131 508/1554/131 509/1555/131 510/1556/131 511/1557/131 512/1558/131 504/1559/131 +f 1095/1560/132 493/1561/133 514/1562/134 1096/1563/135 +f 1105/1564/136 513/1520/137 504/1559/138 1106/1565/139 +f 1092/1566/140 485/1567/141 483/1568/142 1093/1569/143 +f 1091/1570/144 486/1571/145 485/1567/141 1092/1566/140 +f 1090/1572/146 487/1573/147 486/1571/145 1091/1570/144 +f 1089/1574/148 488/1575/149 487/1573/147 1090/1572/146 +f 1088/1576/150 489/1577/151 488/1578/149 1089/1579/148 +f 1087/1580/152 490/1581/153 489/1577/151 1088/1576/150 +f 1086/1582/154 491/1583/155 490/1581/153 1087/1580/152 +f 1084/1584/156 492/1585/157 491/1583/155 1086/1582/154 +f 1085/1586/158 503/1587/159 484/1588/160 1083/1589/161 +f 1093/1569/143 483/1568/142 494/1590/162 1094/1591/163 +f 1083/1589/161 484/1588/160 492/1585/157 1084/1584/156 +f 495/1531/164 1097/1592/165 1098/1593/166 496/1532/167 +f 515/1521/168 1107/1594/169 1108/1595/170 516/1522/171 +f 505/1551/172 1115/1596/173 1116/1597/174 506/1552/175 +f 512/1558/176 1122/1598/177 1106/1565/139 504/1559/138 +f 511/1557/178 1121/1599/179 1122/1598/177 512/1558/176 +f 510/1556/180 1120/1600/181 1121/1599/179 511/1557/178 +f 509/1555/182 1119/1601/183 1120/1600/181 510/1556/180 +f 508/1554/184 1118/1602/185 1119/1601/183 509/1555/182 +f 507/1553/186 1117/1603/187 1118/1602/185 508/1554/184 +f 506/1552/175 1116/1597/174 1117/1603/187 507/1553/186 +f 503/1587/159 1085/1586/158 1115/1596/173 505/1551/172 +f 522/1528/188 1114/1604/189 1096/1563/135 514/1562/134 +f 521/1527/190 1113/1605/191 1114/1604/189 522/1528/188 +f 520/1526/192 1112/1606/193 1113/1605/191 521/1527/190 +f 519/1525/194 1111/1607/195 1112/1606/193 520/1526/192 +f 518/1524/196 1110/1608/197 1111/1607/195 519/1525/194 +f 517/1523/198 1109/1609/199 1110/1608/197 518/1524/196 +f 516/1522/171 1108/1595/170 1109/1609/199 517/1523/198 +f 502/1538/200 1104/1610/201 1094/1591/163 494/1590/162 +f 501/1537/202 1103/1611/203 1104/1610/201 502/1538/200 +f 500/1536/204 1102/1612/205 1103/1611/203 501/1537/202 +f 499/1535/206 1101/1613/207 1102/1612/205 500/1536/204 +f 498/1534/208 1100/1614/209 1101/1613/207 499/1535/206 +f 497/1533/210 1099/1615/211 1100/1614/209 498/1534/208 +f 496/1532/167 1098/1593/166 1099/1615/211 497/1533/210 +f 493/1561/133 1095/1560/132 1097/1592/165 495/1531/164 +f 513/1520/137 1105/1564/136 1107/1594/169 515/1521/168 +f 3059/1616/212 25/1617/213 24/1618/214 8/1619/215 3057/1620/216 3058/1621/214 3060/1622/214 +f 3076/1623/217 29/1624/218 28/1625/219 3074/1626/220 +usemtl rim_on_phone +s off +f 77/1335/99 78/1337/99 2464/1627/99 2453/1628/99 +f 461/1119/61 460/1117/61 1505/1629/61 1516/1630/61 +f 451/1099/51 482/1161/51 1747/1631/51 1405/1632/51 +f 475/1147/221 474/1145/221 1659/1633/221 1670/1634/221 +f 462/1121/62 461/1119/62 1516/1630/62 1527/1635/62 +f 476/1149/222 475/1147/222 1670/1634/222 1681/1636/222 +f 463/1123/63 462/1121/63 1527/1635/63 1538/1637/63 +f 477/1151/45 476/1149/45 1681/1636/45 1692/1638/45 +f 464/1125/64 463/1123/64 1538/1637/64 1549/1639/64 +f 478/1153/46 477/1151/46 1692/1638/46 1703/1640/46 +f 465/1127/65 464/1125/65 1549/1639/65 1560/1641/65 +f 479/1155/47 478/1153/47 1703/1640/47 1714/1642/47 +f 466/1129/66 465/1127/66 1560/1641/66 1571/1643/66 +f 1406/1644/68 1746/1645/68 1735/1646/68 1724/1647/68 1713/1648/68 1702/1649/68 1691/1650/68 1680/1651/68 1669/1652/68 1658/1653/68 1647/1654/68 1636/1655/68 1625/1656/68 1614/1657/68 1603/1658/68 1592/1659/68 1581/1660/68 1570/1661/68 1559/1662/68 1548/1663/68 1537/1664/68 1526/1665/68 1515/1666/68 1504/1667/68 1493/1668/68 1482/1669/68 1471/1670/68 1460/1671/68 1449/1672/68 1438/1673/68 1427/1674/68 1416/1675/68 +f 480/1157/48 479/1155/48 1714/1642/48 1725/1676/48 +f 467/1131/67 466/1129/67 1571/1643/67 1582/1677/67 +f 454/1105/54 453/1103/54 1428/1678/54 1439/1679/54 +f 481/1159/49 480/1157/49 1725/1676/49 1736/1680/49 +f 468/1133/36 467/1131/36 1582/1677/36 1593/1681/36 +f 455/1107/55 454/1105/55 1439/1679/55 1450/1682/55 +f 482/1161/50 481/1159/50 1736/1680/50 1747/1631/50 +f 469/1135/37 468/1133/37 1593/1681/37 1604/1683/37 +f 456/1109/56 455/1107/56 1450/1682/56 1461/1684/56 +f 470/1137/38 469/1135/38 1604/1683/38 1615/1685/38 +f 457/1111/57 456/1109/57 1461/1684/57 1472/1686/57 +f 453/1103/53 452/1100/53 1417/1687/53 1428/1678/53 +f 471/1139/39 470/1137/39 1615/1685/39 1626/1688/39 +f 458/1113/58 457/1111/58 1472/1686/58 1483/1689/58 +f 472/1141/40 471/1139/40 1626/1688/40 1637/1690/40 +f 459/1115/223 458/1113/223 1483/1689/223 1494/1691/223 +f 473/1143/41 472/1141/41 1637/1690/41 1648/1692/41 +f 460/1117/224 459/1115/224 1494/1691/224 1505/1629/224 +f 474/1145/42 473/1143/42 1648/1692/42 1659/1633/42 +f 1406/1644/225 1416/1675/225 1418/1693/225 1415/1694/225 +f 1415/1694/226 1418/1693/226 1419/1695/226 1414/1696/226 +f 1414/1696/227 1419/1695/227 1420/1697/227 1413/1698/227 +f 1413/1698/228 1420/1697/228 1421/1699/228 1412/1700/228 +f 1412/1700/229 1421/1699/229 1422/1701/229 1411/1702/229 +f 1411/1702/230 1422/1701/230 1423/1703/230 1410/1704/230 +f 1410/1704/231 1423/1703/231 1424/1705/231 1409/1706/231 +f 1409/1706/232 1424/1705/232 1425/1707/232 1408/1708/232 +f 1408/1708/233 1425/1707/233 1426/1709/233 1407/1710/233 +f 1407/1710/234 1426/1709/234 1417/1687/234 1405/1632/234 +f 1416/1675/235 1427/1674/235 1429/1711/235 1418/1693/235 +f 1418/1693/236 1429/1711/236 1430/1712/236 1419/1695/236 +f 1419/1695/237 1430/1712/237 1431/1713/237 1420/1697/237 +f 1420/1697/238 1431/1713/238 1432/1714/238 1421/1699/238 +f 1421/1699/239 1432/1714/239 1433/1715/239 1422/1701/239 +f 1422/1701/240 1433/1715/240 1434/1716/240 1423/1703/240 +f 1423/1703/241 1434/1716/241 1435/1717/241 1424/1705/241 +f 1424/1705/242 1435/1717/242 1436/1718/242 1425/1707/242 +f 1425/1707/243 1436/1718/243 1437/1719/243 1426/1709/243 +f 1426/1709/244 1437/1719/244 1428/1678/244 1417/1687/244 +f 1427/1674/245 1438/1673/245 1440/1720/245 1429/1711/245 +f 1429/1711/246 1440/1720/246 1441/1721/246 1430/1712/246 +f 1430/1712/247 1441/1721/247 1442/1722/247 1431/1713/247 +f 1431/1713/248 1442/1722/248 1443/1723/248 1432/1714/248 +f 1432/1714/249 1443/1723/249 1444/1724/249 1433/1715/249 +f 1433/1715/250 1444/1724/250 1445/1725/250 1434/1716/250 +f 1434/1716/251 1445/1725/251 1446/1726/251 1435/1717/251 +f 1435/1717/252 1446/1726/252 1447/1727/252 1436/1718/252 +f 1436/1718/253 1447/1727/253 1448/1728/253 1437/1719/253 +f 1437/1719/254 1448/1728/254 1439/1679/254 1428/1678/254 +f 1438/1673/255 1449/1672/255 1451/1729/255 1440/1720/255 +f 1440/1720/256 1451/1729/256 1452/1730/256 1441/1721/256 +f 1441/1721/257 1452/1730/257 1453/1731/257 1442/1722/257 +f 1442/1722/258 1453/1731/258 1454/1732/258 1443/1723/258 +f 1443/1723/259 1454/1732/259 1455/1733/259 1444/1724/259 +f 1444/1724/260 1455/1733/260 1456/1734/260 1445/1725/260 +f 1445/1725/261 1456/1734/261 1457/1735/261 1446/1726/261 +f 1446/1726/262 1457/1735/262 1458/1736/262 1447/1727/262 +f 1447/1727/263 1458/1736/263 1459/1737/263 1448/1728/263 +f 1448/1728/264 1459/1737/264 1450/1682/264 1439/1679/264 +f 1449/1672/265 1460/1671/265 1462/1738/265 1451/1729/265 +f 1451/1729/266 1462/1738/266 1463/1739/266 1452/1730/266 +f 1452/1730/267 1463/1739/267 1464/1740/267 1453/1731/267 +f 1453/1731/268 1464/1740/268 1465/1741/268 1454/1732/268 +f 1454/1732/269 1465/1741/269 1466/1742/269 1455/1733/269 +f 1455/1733/270 1466/1742/270 1467/1743/270 1456/1734/270 +f 1456/1734/271 1467/1743/271 1468/1744/271 1457/1735/271 +f 1457/1735/272 1468/1744/272 1469/1745/272 1458/1736/272 +f 1458/1736/273 1469/1745/273 1470/1746/273 1459/1737/273 +f 1459/1737/274 1470/1746/274 1461/1684/274 1450/1682/274 +f 1460/1671/275 1471/1670/275 1473/1747/275 1462/1738/275 +f 1462/1738/276 1473/1747/276 1474/1748/276 1463/1739/276 +f 1463/1739/277 1474/1748/277 1475/1749/277 1464/1740/277 +f 1464/1740/278 1475/1749/278 1476/1750/278 1465/1741/278 +f 1465/1741/279 1476/1750/279 1477/1751/279 1466/1742/279 +f 1466/1742/280 1477/1751/280 1478/1752/280 1467/1743/280 +f 1467/1743/281 1478/1752/281 1479/1753/281 1468/1744/281 +f 1468/1744/282 1479/1753/282 1480/1754/282 1469/1745/282 +f 1469/1745/283 1480/1754/283 1481/1755/283 1470/1746/283 +f 1470/1746/284 1481/1755/284 1472/1686/284 1461/1684/284 +f 1471/1670/285 1482/1669/285 1484/1756/285 1473/1747/285 +f 1473/1747/286 1484/1756/286 1485/1757/286 1474/1748/286 +f 1474/1748/287 1485/1757/287 1486/1758/287 1475/1749/287 +f 1475/1749/288 1486/1758/288 1487/1759/288 1476/1750/288 +f 1476/1750/289 1487/1759/289 1488/1760/289 1477/1751/289 +f 1477/1751/290 1488/1760/290 1489/1761/290 1478/1752/290 +f 1478/1752/291 1489/1761/291 1490/1762/291 1479/1753/291 +f 1479/1753/292 1490/1762/292 1491/1763/292 1480/1754/292 +f 1480/1754/293 1491/1763/293 1492/1764/293 1481/1755/293 +f 1481/1755/294 1492/1764/294 1483/1689/294 1472/1686/294 +f 1482/1669/295 1493/1668/295 1495/1765/295 1484/1756/295 +f 1484/1756/296 1495/1765/296 1496/1766/296 1485/1757/296 +f 1485/1757/297 1496/1766/297 1497/1767/297 1486/1758/297 +f 1486/1758/298 1497/1767/298 1498/1768/298 1487/1759/298 +f 1487/1759/299 1498/1768/299 1499/1769/299 1488/1760/299 +f 1488/1760/300 1499/1769/300 1500/1770/300 1489/1761/300 +f 1489/1761/301 1500/1770/301 1501/1771/301 1490/1762/301 +f 1490/1762/302 1501/1771/302 1502/1772/302 1491/1763/302 +f 1491/1763/303 1502/1772/303 1503/1773/303 1492/1764/303 +f 1492/1764/304 1503/1773/304 1494/1691/304 1483/1689/304 +f 1493/1668/305 1504/1667/305 1506/1774/305 1495/1765/305 +f 1495/1765/306 1506/1774/306 1507/1775/306 1496/1766/306 +f 1496/1766/307 1507/1775/307 1508/1776/307 1497/1767/307 +f 1497/1767/308 1508/1776/308 1509/1777/308 1498/1768/308 +f 1498/1768/309 1509/1777/309 1510/1778/309 1499/1769/309 +f 1499/1769/310 1510/1778/310 1511/1779/310 1500/1770/310 +f 1500/1770/311 1511/1779/311 1512/1780/311 1501/1771/311 +f 1501/1771/312 1512/1780/312 1513/1781/312 1502/1772/312 +f 1502/1772/313 1513/1781/313 1514/1782/313 1503/1773/313 +f 1503/1773/314 1514/1782/314 1505/1629/314 1494/1691/314 +f 1504/1667/315 1515/1666/315 1517/1163/315 1506/1774/315 +f 1506/1774/316 1517/1163/316 1518/1166/316 1507/1775/316 +f 1507/1775/317 1518/1166/317 1519/1783/317 1508/1776/317 +f 1508/1776/318 1519/1783/318 1520/1784/318 1509/1777/318 +f 1509/1777/319 1520/1784/319 1521/1785/319 1510/1778/319 +f 1510/1778/320 1521/1785/320 1522/1786/320 1511/1779/320 +f 1511/1779/321 1522/1786/321 1523/1787/321 1512/1780/321 +f 1512/1780/322 1523/1787/322 1524/1788/322 1513/1781/322 +f 1513/1781/323 1524/1788/323 1525/1789/323 1514/1782/323 +f 1514/1782/324 1525/1789/324 1516/1630/324 1505/1629/324 +f 1515/1666/325 1526/1665/325 1528/1164/325 1517/1163/325 +f 1518/1166/326 1529/1165/326 1530/1790/326 1519/1783/326 +f 1519/1783/327 1530/1790/327 1531/1791/327 1520/1784/327 +f 1520/1784/328 1531/1791/328 1532/1792/328 1521/1785/328 +f 1521/1785/329 1532/1792/329 1533/1793/329 1522/1786/329 +f 1522/1786/330 1533/1793/330 1534/1794/330 1523/1787/330 +f 1523/1787/331 1534/1794/331 1535/1795/331 1524/1788/331 +f 1524/1788/332 1535/1795/332 1536/1796/332 1525/1789/332 +f 1525/1789/333 1536/1796/333 1527/1635/333 1516/1630/333 +f 1526/1665/334 1537/1664/334 1539/1797/334 1528/1164/334 +f 1528/1164/335 1539/1797/335 1540/1798/335 1529/1165/335 +f 1529/1165/336 1540/1798/336 1541/1799/336 1530/1790/336 +f 1530/1790/337 1541/1799/337 1542/1800/337 1531/1791/337 +f 1531/1791/338 1542/1800/338 1543/1801/338 1532/1792/338 +f 1532/1792/339 1543/1801/339 1544/1802/339 1533/1793/339 +f 1533/1793/340 1544/1802/340 1545/1803/340 1534/1794/340 +f 1534/1794/341 1545/1803/341 1546/1804/341 1535/1795/341 +f 1535/1795/342 1546/1804/342 1547/1805/342 1536/1796/342 +f 1536/1796/343 1547/1805/343 1538/1637/343 1527/1635/343 +f 1537/1664/344 1548/1663/344 1550/1806/344 1539/1797/344 +f 1539/1797/345 1550/1806/345 1551/1807/345 1540/1798/345 +f 1540/1798/346 1551/1807/346 1552/1808/346 1541/1799/346 +f 1541/1799/347 1552/1808/347 1553/1809/347 1542/1800/347 +f 1542/1800/348 1553/1809/348 1554/1810/348 1543/1801/348 +f 1543/1801/349 1554/1810/349 1555/1811/349 1544/1802/349 +f 1544/1802/350 1555/1811/350 1556/1812/350 1545/1803/350 +f 1545/1803/351 1556/1812/351 1557/1813/351 1546/1804/351 +f 1546/1804/352 1557/1813/352 1558/1814/352 1547/1805/352 +f 1547/1805/353 1558/1814/353 1549/1639/353 1538/1637/353 +f 1548/1663/354 1559/1662/354 1561/1815/354 1550/1806/354 +f 1550/1806/355 1561/1815/355 1562/1816/355 1551/1807/355 +f 1551/1807/356 1562/1816/356 1563/1817/356 1552/1808/356 +f 1552/1808/357 1563/1817/357 1564/1818/357 1553/1809/357 +f 1553/1809/358 1564/1818/358 1565/1819/358 1554/1810/358 +f 1554/1810/359 1565/1819/359 1566/1820/359 1555/1811/359 +f 1555/1811/360 1566/1820/360 1567/1821/360 1556/1812/360 +f 1556/1812/361 1567/1821/361 1568/1822/361 1557/1813/361 +f 1557/1813/362 1568/1822/362 1569/1823/362 1558/1814/362 +f 1558/1814/363 1569/1823/363 1560/1641/363 1549/1639/363 +f 1559/1662/364 1570/1661/364 1572/1824/364 1561/1815/364 +f 1561/1815/365 1572/1824/365 1573/1825/365 1562/1816/365 +f 1562/1816/366 1573/1825/366 1574/1826/366 1563/1817/366 +f 1563/1817/367 1574/1826/367 1575/1827/367 1564/1818/367 +f 1564/1818/368 1575/1827/368 1576/1828/368 1565/1819/368 +f 1565/1819/369 1576/1828/369 1577/1829/369 1566/1820/369 +f 1566/1820/370 1577/1829/370 1578/1830/370 1567/1821/370 +f 1567/1821/371 1578/1830/371 1579/1831/371 1568/1822/371 +f 1568/1822/372 1579/1831/372 1580/1832/372 1569/1823/372 +f 1569/1823/373 1580/1832/373 1571/1643/373 1560/1641/373 +f 1570/1661/374 1581/1660/374 1583/1833/374 1572/1824/374 +f 1572/1824/375 1583/1833/375 1584/1834/375 1573/1825/375 +f 1573/1825/376 1584/1834/376 1585/1835/376 1574/1826/376 +f 1574/1826/377 1585/1835/377 1586/1836/377 1575/1827/377 +f 1575/1827/378 1586/1836/378 1587/1837/378 1576/1828/378 +f 1576/1828/379 1587/1837/379 1588/1838/379 1577/1829/379 +f 1577/1829/380 1588/1838/380 1589/1839/380 1578/1830/380 +f 1578/1830/381 1589/1839/381 1590/1840/381 1579/1831/381 +f 1579/1831/382 1590/1840/382 1591/1841/382 1580/1832/382 +f 1580/1832/383 1591/1841/383 1582/1677/383 1571/1643/383 +f 1581/1660/384 1592/1659/384 1594/1842/384 1583/1833/384 +f 1583/1833/385 1594/1842/385 1595/1843/385 1584/1834/385 +f 1584/1834/386 1595/1843/386 1596/1844/386 1585/1835/386 +f 1585/1835/387 1596/1844/387 1597/1845/387 1586/1836/387 +f 1586/1836/388 1597/1845/388 1598/1846/388 1587/1837/388 +f 1587/1837/389 1598/1846/389 1599/1847/389 1588/1838/389 +f 1588/1838/390 1599/1847/390 1600/1848/390 1589/1839/390 +f 1589/1839/391 1600/1848/391 1601/1849/391 1590/1840/391 +f 1590/1840/392 1601/1849/392 1602/1850/392 1591/1841/392 +f 1591/1841/393 1602/1850/393 1593/1681/393 1582/1677/393 +f 1592/1659/394 1603/1658/394 1605/1851/394 1594/1842/394 +f 1594/1842/395 1605/1851/395 1606/1852/395 1595/1843/395 +f 1595/1843/396 1606/1852/396 1607/1853/396 1596/1844/396 +f 1596/1844/397 1607/1853/397 1608/1854/397 1597/1845/397 +f 1597/1845/398 1608/1854/398 1609/1855/398 1598/1846/398 +f 1598/1846/399 1609/1855/399 1610/1856/399 1599/1847/399 +f 1599/1847/400 1610/1856/400 1611/1857/400 1600/1848/400 +f 1600/1848/401 1611/1857/401 1612/1858/401 1601/1849/401 +f 1601/1849/402 1612/1858/402 1613/1859/402 1602/1850/402 +f 1602/1850/403 1613/1859/403 1604/1683/403 1593/1681/403 +f 1603/1658/404 1614/1657/404 1616/1860/404 1605/1851/404 +f 1605/1851/405 1616/1860/405 1617/1861/405 1606/1852/405 +f 1606/1852/406 1617/1861/406 1618/1862/406 1607/1853/406 +f 1607/1853/407 1618/1862/407 1619/1863/407 1608/1854/407 +f 1608/1854/408 1619/1863/408 1620/1864/408 1609/1855/408 +f 1609/1855/409 1620/1864/409 1621/1865/409 1610/1856/409 +f 1610/1856/410 1621/1865/410 1622/1866/410 1611/1857/410 +f 1611/1857/411 1622/1866/411 1623/1867/411 1612/1858/411 +f 1612/1858/412 1623/1867/412 1624/1868/412 1613/1859/412 +f 1613/1859/413 1624/1868/413 1615/1685/413 1604/1683/413 +f 1614/1657/414 1625/1656/414 1627/1869/414 1616/1860/414 +f 1616/1860/415 1627/1869/415 1628/1870/415 1617/1861/415 +f 1617/1861/416 1628/1870/416 1629/1871/416 1618/1862/416 +f 1618/1862/417 1629/1871/417 1630/1872/417 1619/1863/417 +f 1619/1863/418 1630/1872/418 1631/1873/418 1620/1864/418 +f 1620/1864/419 1631/1873/419 1632/1874/419 1621/1865/419 +f 1621/1865/420 1632/1874/420 1633/1875/420 1622/1866/420 +f 1622/1866/421 1633/1875/421 1634/1876/421 1623/1867/421 +f 1623/1867/422 1634/1876/422 1635/1877/422 1624/1868/422 +f 1624/1868/423 1635/1877/423 1626/1688/423 1615/1685/423 +f 1625/1656/424 1636/1655/424 1638/1878/424 1627/1869/424 +f 1627/1869/425 1638/1878/425 1639/1879/425 1628/1870/425 +f 1628/1870/426 1639/1879/426 1640/1880/426 1629/1871/426 +f 1629/1871/427 1640/1880/427 1641/1881/427 1630/1872/427 +f 1630/1872/428 1641/1881/428 1642/1882/428 1631/1873/428 +f 1631/1873/429 1642/1882/429 1643/1883/429 1632/1874/429 +f 1632/1874/430 1643/1883/430 1644/1884/430 1633/1875/430 +f 1633/1875/431 1644/1884/431 1645/1885/431 1634/1876/431 +f 1634/1876/432 1645/1885/432 1646/1886/432 1635/1877/432 +f 1635/1877/433 1646/1886/433 1637/1690/433 1626/1688/433 +f 1636/1655/434 1647/1654/434 1649/1887/434 1638/1878/434 +f 1638/1878/435 1649/1887/435 1650/1888/435 1639/1879/435 +f 1639/1879/436 1650/1888/436 1651/1889/436 1640/1880/436 +f 1640/1880/437 1651/1889/437 1652/1890/437 1641/1881/437 +f 1641/1881/438 1652/1890/438 1653/1891/438 1642/1882/438 +f 1642/1882/439 1653/1891/439 1654/1892/439 1643/1883/439 +f 1643/1883/440 1654/1892/440 1655/1893/440 1644/1884/440 +f 1644/1884/441 1655/1893/441 1656/1894/441 1645/1885/441 +f 1645/1885/442 1656/1894/442 1657/1895/442 1646/1886/442 +f 1646/1886/443 1657/1895/443 1648/1692/443 1637/1690/443 +f 1647/1654/444 1658/1653/444 1660/1896/444 1649/1887/444 +f 1649/1887/445 1660/1896/445 1661/1897/445 1650/1888/445 +f 1650/1888/446 1661/1897/446 1662/1898/446 1651/1889/446 +f 1651/1889/447 1662/1898/447 1663/1899/447 1652/1890/447 +f 1652/1890/448 1663/1899/448 1664/1900/448 1653/1891/448 +f 1653/1891/449 1664/1900/449 1665/1901/449 1654/1892/449 +f 1654/1892/450 1665/1901/450 1666/1902/450 1655/1893/450 +f 1655/1893/451 1666/1902/451 1667/1903/451 1656/1894/451 +f 1656/1894/452 1667/1903/452 1668/1904/452 1657/1895/452 +f 1657/1895/453 1668/1904/453 1659/1633/453 1648/1692/453 +f 1658/1653/454 1669/1652/454 1671/1905/454 1660/1896/454 +f 1660/1896/455 1671/1905/455 1672/1906/455 1661/1897/455 +f 1661/1897/456 1672/1906/456 1673/1907/456 1662/1898/456 +f 1662/1898/457 1673/1907/457 1674/1908/457 1663/1899/457 +f 1663/1899/458 1674/1908/458 1675/1909/458 1664/1900/458 +f 1664/1900/459 1675/1909/459 1676/1910/459 1665/1901/459 +f 1665/1901/460 1676/1910/460 1677/1911/460 1666/1902/460 +f 1666/1902/461 1677/1911/461 1678/1912/461 1667/1903/461 +f 1667/1903/462 1678/1912/462 1679/1913/462 1668/1904/462 +f 1668/1904/463 1679/1913/463 1670/1634/463 1659/1633/463 +f 1669/1652/464 1680/1651/464 1682/1914/464 1671/1905/464 +f 1671/1905/465 1682/1914/465 1683/1915/465 1672/1906/465 +f 1672/1906/466 1683/1915/466 1684/1916/466 1673/1907/466 +f 1673/1907/467 1684/1916/467 1685/1917/467 1674/1908/467 +f 1674/1908/468 1685/1917/468 1686/1918/468 1675/1909/468 +f 1675/1909/469 1686/1918/469 1687/1919/469 1676/1910/469 +f 1676/1910/470 1687/1919/470 1688/1920/470 1677/1911/470 +f 1677/1911/471 1688/1920/471 1689/1921/471 1678/1912/471 +f 1678/1912/472 1689/1921/472 1690/1922/472 1679/1913/472 +f 1679/1913/473 1690/1922/473 1681/1636/473 1670/1634/473 +f 1680/1651/474 1691/1650/474 1693/1923/474 1682/1914/474 +f 1682/1914/475 1693/1923/475 1694/1924/475 1683/1915/475 +f 1683/1915/476 1694/1924/476 1695/1925/476 1684/1916/476 +f 1684/1916/477 1695/1925/477 1696/1926/477 1685/1917/477 +f 1685/1917/478 1696/1926/478 1697/1927/478 1686/1918/478 +f 1686/1918/479 1697/1927/479 1698/1928/479 1687/1919/479 +f 1687/1919/480 1698/1928/480 1699/1929/480 1688/1920/480 +f 1688/1920/481 1699/1929/481 1700/1930/481 1689/1921/481 +f 1689/1921/482 1700/1930/482 1701/1931/482 1690/1922/482 +f 1690/1922/483 1701/1931/483 1692/1638/483 1681/1636/483 +f 1691/1650/484 1702/1649/484 1704/1932/484 1693/1923/484 +f 1693/1923/485 1704/1932/485 1705/1933/485 1694/1924/485 +f 1694/1924/486 1705/1933/486 1706/1934/486 1695/1925/486 +f 1695/1925/487 1706/1934/487 1707/1935/487 1696/1926/487 +f 1696/1926/488 1707/1935/488 1708/1936/488 1697/1927/488 +f 1697/1927/489 1708/1936/489 1709/1937/489 1698/1928/489 +f 1698/1928/490 1709/1937/490 1710/1938/490 1699/1929/490 +f 1699/1929/491 1710/1938/491 1711/1939/491 1700/1930/491 +f 1700/1930/492 1711/1939/492 1712/1940/492 1701/1931/492 +f 1701/1931/493 1712/1940/493 1703/1640/493 1692/1638/493 +f 1702/1649/494 1713/1648/494 1715/1941/494 1704/1932/494 +f 1704/1932/495 1715/1941/495 1716/1942/495 1705/1933/495 +f 1705/1933/496 1716/1942/496 1717/1943/496 1706/1934/496 +f 1706/1934/497 1717/1943/497 1718/1944/497 1707/1935/497 +f 1707/1935/498 1718/1944/498 1719/1945/498 1708/1936/498 +f 1708/1936/499 1719/1945/499 1720/1946/499 1709/1937/499 +f 1709/1937/500 1720/1946/500 1721/1947/500 1710/1938/500 +f 1710/1938/501 1721/1947/501 1722/1948/501 1711/1939/501 +f 1711/1939/502 1722/1948/502 1723/1949/502 1712/1940/502 +f 1712/1940/503 1723/1949/503 1714/1642/503 1703/1640/503 +f 1713/1648/504 1724/1647/504 1726/1950/504 1715/1941/504 +f 1715/1941/505 1726/1950/505 1727/1951/505 1716/1942/505 +f 1716/1942/506 1727/1951/506 1728/1952/506 1717/1943/506 +f 1717/1943/507 1728/1952/507 1729/1953/507 1718/1944/507 +f 1718/1944/508 1729/1953/508 1730/1954/508 1719/1945/508 +f 1719/1945/509 1730/1954/509 1731/1955/509 1720/1946/509 +f 1720/1946/510 1731/1955/510 1732/1956/510 1721/1947/510 +f 1721/1947/511 1732/1956/511 1733/1957/511 1722/1948/511 +f 1722/1948/512 1733/1957/512 1734/1958/512 1723/1949/512 +f 1723/1949/513 1734/1958/513 1725/1676/513 1714/1642/513 +f 1724/1647/514 1735/1646/514 1737/1959/514 1726/1950/514 +f 1726/1950/515 1737/1959/515 1738/1960/515 1727/1951/515 +f 1727/1951/516 1738/1960/516 1739/1961/516 1728/1952/516 +f 1728/1952/517 1739/1961/517 1740/1962/517 1729/1953/517 +f 1729/1953/518 1740/1962/518 1741/1963/518 1730/1954/518 +f 1730/1954/519 1741/1963/519 1742/1964/519 1731/1955/519 +f 1731/1955/520 1742/1964/520 1743/1965/520 1732/1956/520 +f 1732/1956/521 1743/1965/521 1744/1966/521 1733/1957/521 +f 1733/1957/522 1744/1966/522 1745/1967/522 1734/1958/522 +f 1734/1958/523 1745/1967/523 1736/1680/523 1725/1676/523 +f 1735/1646/524 1746/1645/524 1748/1968/524 1737/1959/524 +f 1737/1959/525 1748/1968/525 1749/1969/525 1738/1960/525 +f 1738/1960/526 1749/1969/526 1750/1970/526 1739/1961/526 +f 1739/1961/527 1750/1970/527 1751/1971/527 1740/1962/527 +f 1740/1962/528 1751/1971/528 1752/1972/528 1741/1963/528 +f 1741/1963/529 1752/1972/529 1753/1973/529 1742/1964/529 +f 1742/1964/530 1753/1973/530 1754/1974/530 1743/1965/530 +f 1743/1965/531 1754/1974/531 1755/1975/531 1744/1966/531 +f 1744/1966/532 1755/1975/532 1756/1976/532 1745/1967/532 +f 1745/1967/533 1756/1976/533 1747/1631/533 1736/1680/533 +f 1746/1645/534 1406/1644/534 1415/1694/534 1748/1968/534 +f 1748/1968/535 1415/1694/535 1414/1696/535 1749/1969/535 +f 1749/1969/536 1414/1696/536 1413/1698/536 1750/1970/536 +f 1750/1970/537 1413/1698/537 1412/1700/537 1751/1971/537 +f 1751/1971/538 1412/1700/538 1411/1702/538 1752/1972/538 +f 1752/1972/539 1411/1702/539 1410/1704/539 1753/1973/539 +f 1753/1973/540 1410/1704/540 1409/1706/540 1754/1974/540 +f 1754/1974/541 1409/1706/541 1408/1708/541 1755/1975/541 +f 1755/1975/542 1408/1708/542 1407/1710/542 1756/1976/542 +f 1756/1976/543 1407/1710/543 1405/1632/543 1747/1631/543 +f 452/1100/52 451/1099/52 1405/1632/52 1417/1687/52 +f 68/1315/544 69/1319/544 2365/1977/544 2343/1978/544 +f 100/1379/544 101/1383/544 2717/1979/544 2695/1980/544 +f 104/1389/72 105/1391/72 2761/1981/72 2750/1982/72 +f 78/1337/89 79/1339/89 2475/1983/89 2464/1627/89 +f 101/1383/109 102/1385/109 2728/1984/109 2717/1979/109 +f 105/1391/75 106/1393/75 2772/1985/75 2761/1981/75 +f 79/1339/108 80/1341/108 2486/1986/108 2475/1983/108 +f 106/1393/92 107/1395/92 2783/1987/92 2772/1985/92 +f 80/1341/545 81/1343/545 2497/1988/545 2486/1986/545 +f 107/1395/98 108/1397/98 2794/1989/98 2783/1987/98 +f 81/1343/546 82/1345/546 2508/1990/546 2497/1988/546 +f 108/1397/80 109/1399/80 2805/1991/80 2794/1989/80 +f 82/1345/547 83/1347/547 2519/1992/547 2508/1990/547 +f 109/1399/99 110/1401/99 2816/1993/99 2805/1991/99 +f 83/1347/548 84/1349/548 2530/1994/548 2519/1992/548 +f 110/1401/89 111/1403/89 2827/1995/89 2816/1993/89 +f 84/1349/93 85/1351/93 2541/1996/93 2530/1994/93 +f 111/1403/108 112/1405/108 2838/1997/108 2827/1995/108 +f 85/1351/90 86/1353/90 2552/1998/90 2541/1996/90 +f 112/1405/545 113/1407/545 2849/1999/545 2838/1997/545 +f 86/1353/104 87/1355/104 2563/2000/104 2552/1998/104 +f 113/1407/546 114/1409/546 2860/2001/546 2849/1999/546 +f 87/1355/77 88/1357/77 2574/2002/77 2563/2000/77 +f 114/1409/547 115/1411/547 2871/2003/547 2860/2001/547 +f 88/1357/102 89/1359/102 2585/2004/102 2574/2002/102 +f 115/1411/548 116/1413/548 2882/2005/548 2871/2003/548 +f 89/1359/76 90/1361/76 2596/2006/76 2585/2004/76 +f 116/1413/93 117/1415/93 2893/2007/93 2882/2005/93 +f 90/1361/87 91/1363/87 2607/2008/87 2596/2006/87 +f 117/1415/90 118/1417/90 2904/2009/90 2893/2007/90 +f 91/1363/78 92/1365/78 2618/2010/78 2607/2008/78 +f 118/1417/84 119/1419/84 2915/2011/84 2904/2009/84 +f 92/1365/83 93/1367/83 2629/2012/83 2618/2010/83 +f 119/1419/77 120/1421/77 2926/2013/77 2915/2011/77 +f 93/1367/82 94/1369/82 2640/2014/82 2629/2012/82 +f 120/1421/102 121/1423/102 2937/2015/102 2926/2013/102 +f 94/1369/101 95/1371/101 2651/2016/101 2640/2014/101 +f 2344/2017/111 2366/2018/111 2377/2019/111 2388/2020/111 2399/2021/111 2410/2022/111 2421/2023/111 2432/2024/111 2443/2025/111 2454/2026/111 2465/2027/111 2476/2028/111 2487/2029/111 2498/2030/111 2509/2031/111 2520/2032/111 2531/2033/111 2542/2034/111 2553/2035/111 2564/2036/111 2575/2037/111 2586/2038/111 2597/2039/111 2608/2040/111 2619/2041/111 2630/2042/111 2641/2043/111 2652/2044/111 2663/2045/111 2674/2046/111 2685/2047/111 2354/2048/111 +f 121/1423/76 122/1425/76 2948/2049/76 2937/2015/76 +f 95/1371/91 96/1373/91 2662/2050/91 2651/2016/91 +f 98/1377/549 67/1316/549 2355/2051/549 2684/2052/549 +f 122/1425/87 123/1427/87 2959/2053/87 2948/2049/87 +f 96/1373/86 97/1375/86 2673/2054/86 2662/2050/86 +f 70/1321/100 71/1323/100 2387/2055/100 2376/2056/100 +f 123/1427/78 124/1429/78 2970/2057/78 2959/2053/78 +f 97/1375/79 98/1377/79 2684/2052/79 2673/2054/79 +f 71/1323/96 72/1325/96 2398/2058/96 2387/2055/96 +f 124/1429/83 125/1431/83 2981/2059/83 2970/2057/83 +f 99/1380/550 100/1379/550 2695/1980/550 2707/2060/550 +f 72/1325/72 73/1327/72 2409/2061/72 2398/2058/72 +f 125/1431/82 126/1433/82 2992/2062/82 2981/2059/82 +f 69/1319/109 70/1321/109 2376/2056/109 2365/1977/109 +f 73/1327/75 74/1329/75 2420/2063/75 2409/2061/75 +f 126/1433/101 127/1435/101 3003/2064/101 2992/2062/101 +f 2696/2065/111 2718/2066/111 2729/2067/111 2740/2068/111 2751/2069/111 2762/2070/111 2773/2071/111 2784/2072/111 2795/2073/111 2806/2074/111 2817/2075/111 2828/2076/111 2839/2077/111 2850/2078/111 2861/2079/111 2872/2080/111 2883/2081/111 2894/2082/111 2905/2083/111 2916/2084/111 2927/2085/111 2938/2086/111 2949/2087/111 2960/2088/111 2971/2089/111 2982/2090/111 2993/2091/111 3004/2092/111 3015/2093/111 3026/2094/111 3037/2095/111 2706/2096/111 +f 74/1329/92 75/1331/92 2431/2097/92 2420/2063/92 +f 127/1435/91 128/1437/91 3014/2098/91 3003/2064/91 +f 130/1441/549 99/1380/549 2707/2060/549 3036/2099/549 +f 75/1331/98 76/1333/98 2442/2100/98 2431/2097/98 +f 128/1437/86 129/1439/86 3025/2101/86 3014/2098/86 +f 102/1385/100 103/1387/100 2739/2102/100 2728/1984/100 +f 76/1333/80 77/1335/80 2453/1628/80 2442/2100/80 +f 129/1439/551 130/1441/551 3036/2099/551 3025/2101/551 +f 103/1387/96 104/1389/96 2750/1982/96 2739/2102/96 +f 2344/2017/552 2354/2048/552 2356/2103/552 2353/2104/552 +f 2353/2104/553 2356/2103/553 2357/2105/553 2352/2106/553 +f 2352/2106/554 2357/2105/554 2358/2107/554 2351/2108/554 +f 2351/2108/555 2358/2107/555 2359/2109/555 2350/2110/555 +f 2350/2110/556 2359/2109/556 2360/2111/556 2349/2112/556 +f 2349/2112/557 2360/2111/557 2361/2113/557 2348/2114/557 +f 2348/2114/558 2361/2113/558 2362/2115/558 2347/2116/558 +f 2347/2116/559 2362/2115/559 2363/2117/559 2346/2118/559 +f 2346/2118/560 2363/2117/560 2364/2119/560 2345/2120/560 +f 2345/2120/561 2364/2119/561 2355/2051/561 2343/1978/561 +f 2366/2018/562 2344/2017/562 2353/2104/562 2375/2121/562 +f 2375/2121/563 2353/2104/563 2352/2106/563 2374/2122/563 +f 2374/2122/564 2352/2106/564 2351/2108/564 2373/2123/564 +f 2373/2123/565 2351/2108/565 2350/2110/565 2372/2124/565 +f 2372/2124/566 2350/2110/566 2349/2112/566 2371/2125/566 +f 2371/2125/567 2349/2112/567 2348/2114/567 2370/2126/567 +f 2370/2126/568 2348/2114/568 2347/2116/568 2369/2127/568 +f 2369/2127/569 2347/2116/569 2346/2118/569 2368/2128/569 +f 2368/2128/570 2346/2118/570 2345/2120/570 2367/2129/570 +f 2367/2129/571 2345/2120/571 2343/1978/571 2365/1977/571 +f 2377/2019/572 2366/2018/572 2375/2121/572 2386/2130/572 +f 2386/2130/573 2375/2121/573 2374/2122/573 2385/2131/573 +f 2385/2131/574 2374/2122/574 2373/2123/574 2384/2132/574 +f 2384/2132/575 2373/2123/575 2372/2124/575 2383/2133/575 +f 2383/2133/576 2372/2124/576 2371/2125/576 2382/2134/576 +f 2382/2134/577 2371/2125/577 2370/2126/577 2381/2135/577 +f 2381/2135/578 2370/2126/578 2369/2127/578 2380/2136/578 +f 2380/2136/579 2369/2127/579 2368/2128/579 2379/2137/579 +f 2379/2137/580 2368/2128/580 2367/2129/580 2378/2138/580 +f 2378/2138/581 2367/2129/581 2365/1977/581 2376/2056/581 +f 2388/2020/582 2377/2019/582 2386/2130/582 2397/2139/582 +f 2397/2139/583 2386/2130/583 2385/2131/583 2396/2140/583 +f 2396/2140/584 2385/2131/584 2384/2132/584 2395/2141/584 +f 2395/2141/585 2384/2132/585 2383/2133/585 2394/2142/585 +f 2394/2142/586 2383/2133/586 2382/2134/586 2393/2143/586 +f 2393/2143/587 2382/2134/587 2381/2135/587 2392/2144/587 +f 2392/2144/588 2381/2135/588 2380/2136/588 2391/2145/588 +f 2391/2145/589 2380/2136/589 2379/2137/589 2390/2146/589 +f 2390/2146/590 2379/2137/590 2378/2138/590 2389/2147/590 +f 2389/2147/591 2378/2138/591 2376/2056/591 2387/2055/591 +f 2399/2021/592 2388/2020/592 2397/2139/592 2408/2148/592 +f 2408/2148/593 2397/2139/593 2396/2140/593 2407/2149/593 +f 2407/2149/594 2396/2140/594 2395/2141/594 2406/2150/594 +f 2406/2150/595 2395/2141/595 2394/2142/595 2405/2151/595 +f 2405/2151/596 2394/2142/596 2393/2143/596 2404/2152/596 +f 2404/2152/597 2393/2143/597 2392/2144/597 2403/2153/597 +f 2403/2153/598 2392/2144/598 2391/2145/598 2402/2154/598 +f 2402/2154/599 2391/2145/599 2390/2146/599 2401/2155/599 +f 2401/2155/600 2390/2146/600 2389/2147/600 2400/2156/600 +f 2400/2156/601 2389/2147/601 2387/2055/601 2398/2058/601 +f 2410/2022/602 2399/2021/602 2408/2148/602 2419/2157/602 +f 2419/2157/603 2408/2148/603 2407/2149/603 2418/2158/603 +f 2418/2158/604 2407/2149/604 2406/2150/604 2417/2159/604 +f 2417/2159/605 2406/2150/605 2405/2151/605 2416/2160/605 +f 2416/2160/606 2405/2151/606 2404/2152/606 2415/2161/606 +f 2415/2161/607 2404/2152/607 2403/2153/607 2414/2162/607 +f 2414/2162/608 2403/2153/608 2402/2154/608 2413/2163/608 +f 2413/2163/609 2402/2154/609 2401/2155/609 2412/2164/609 +f 2412/2164/610 2401/2155/610 2400/2156/610 2411/2165/610 +f 2411/2165/611 2400/2156/611 2398/2058/611 2409/2061/611 +f 2421/2023/612 2410/2022/612 2419/2157/612 2430/2166/612 +f 2430/2166/613 2419/2157/613 2418/2158/613 2429/2167/613 +f 2429/2167/614 2418/2158/614 2417/2159/614 2428/2168/614 +f 2428/2168/615 2417/2159/615 2416/2160/615 2427/2169/615 +f 2427/2169/616 2416/2160/616 2415/2161/616 2426/2170/616 +f 2426/2170/617 2415/2161/617 2414/2162/617 2425/2171/617 +f 2425/2171/618 2414/2162/618 2413/2163/618 2424/2172/618 +f 2424/2172/619 2413/2163/619 2412/2164/619 2423/2173/619 +f 2423/2173/620 2412/2164/620 2411/2165/620 2422/2174/620 +f 2422/2174/621 2411/2165/621 2409/2061/621 2420/2063/621 +f 2432/2024/622 2421/2023/622 2430/2166/622 2441/2175/622 +f 2441/2175/623 2430/2166/623 2429/2167/623 2440/2176/623 +f 2440/2176/624 2429/2167/624 2428/2168/624 2439/2177/624 +f 2439/2177/625 2428/2168/625 2427/2169/625 2438/2178/625 +f 2438/2178/626 2427/2169/626 2426/2170/626 2437/2179/626 +f 2437/2179/627 2426/2170/627 2425/2171/627 2436/2180/627 +f 2436/2180/628 2425/2171/628 2424/2172/628 2435/2181/628 +f 2435/2181/629 2424/2172/629 2423/2173/629 2434/2182/629 +f 2434/2182/630 2423/2173/630 2422/2174/630 2433/2183/630 +f 2433/2183/631 2422/2174/631 2420/2063/631 2431/2097/631 +f 2443/2025/632 2432/2024/632 2441/2175/632 2452/2184/632 +f 2452/2184/633 2441/2175/633 2440/2176/633 2451/2185/633 +f 2451/2185/634 2440/2176/634 2439/2177/634 2450/2186/634 +f 2450/2186/635 2439/2177/635 2438/2178/635 2449/2187/635 +f 2449/2187/636 2438/2178/636 2437/2179/636 2448/2188/636 +f 2448/2188/637 2437/2179/637 2436/2180/637 2447/2189/637 +f 2447/2189/638 2436/2180/638 2435/2181/638 2446/2190/638 +f 2446/2190/639 2435/2181/639 2434/2182/639 2445/2191/639 +f 2445/2191/640 2434/2182/640 2433/2183/640 2444/2192/640 +f 2444/2192/641 2433/2183/641 2431/2097/641 2442/2100/641 +f 2454/2026/642 2443/2025/642 2452/2184/642 2463/2193/642 +f 2463/2193/643 2452/2184/643 2451/2185/643 2462/2194/643 +f 2462/2194/644 2451/2185/644 2450/2186/644 2461/2195/644 +f 2461/2195/645 2450/2186/645 2449/2187/645 2460/2196/645 +f 2460/2196/646 2449/2187/646 2448/2188/646 2459/2197/646 +f 2459/2197/647 2448/2188/647 2447/2189/647 2458/2198/647 +f 2458/2198/648 2447/2189/648 2446/2190/648 2457/2199/648 +f 2457/2199/649 2446/2190/649 2445/2191/649 2456/2200/649 +f 2456/2200/650 2445/2191/650 2444/2192/650 2455/2201/650 +f 2455/2201/651 2444/2192/651 2442/2100/651 2453/1628/651 +f 2465/2027/652 2454/2026/652 2463/2193/652 2474/2202/652 +f 2474/2202/653 2463/2193/653 2462/2194/653 2473/2203/653 +f 2473/2203/654 2462/2194/654 2461/2195/654 2472/2204/654 +f 2472/2204/655 2461/2195/655 2460/2196/655 2471/2205/655 +f 2471/2205/656 2460/2196/656 2459/2197/656 2470/2206/656 +f 2470/2206/657 2459/2197/657 2458/2198/657 2469/2207/657 +f 2469/2207/658 2458/2198/658 2457/2199/658 2468/2208/658 +f 2468/2208/659 2457/2199/659 2456/2200/659 2467/2209/659 +f 2467/2209/660 2456/2200/660 2455/2201/660 2466/2210/660 +f 2466/2210/661 2455/2201/661 2453/1628/661 2464/1627/661 +f 2476/2028/662 2465/2027/662 2474/2202/662 2485/2211/662 +f 2485/2211/663 2474/2202/663 2473/2203/663 2484/2212/663 +f 2484/2212/664 2473/2203/664 2472/2204/664 2483/2213/664 +f 2483/2213/665 2472/2204/665 2471/2205/665 2482/2214/665 +f 2482/2214/666 2471/2205/666 2470/2206/666 2481/2215/666 +f 2481/2215/667 2470/2206/667 2469/2207/667 2480/2216/667 +f 2480/2216/668 2469/2207/668 2468/2208/668 2479/2217/668 +f 2479/2217/669 2468/2208/669 2467/2209/669 2478/2218/669 +f 2478/2218/670 2467/2209/670 2466/2210/670 2477/2219/670 +f 2477/2219/671 2466/2210/671 2464/1627/671 2475/1983/671 +f 2487/2029/672 2476/2028/672 2485/2211/672 2496/2220/672 +f 2496/2220/673 2485/2211/673 2484/2212/673 2495/2221/673 +f 2495/2221/674 2484/2212/674 2483/2213/674 2494/2222/674 +f 2494/2222/675 2483/2213/675 2482/2214/675 2493/2223/675 +f 2493/2223/676 2482/2214/676 2481/2215/676 2492/2224/676 +f 2492/2224/677 2481/2215/677 2480/2216/677 2491/2225/677 +f 2491/2225/678 2480/2216/678 2479/2217/678 2490/2226/678 +f 2490/2226/679 2479/2217/679 2478/2218/679 2489/2227/679 +f 2489/2227/680 2478/2218/680 2477/2219/680 2488/2228/680 +f 2488/2228/681 2477/2219/681 2475/1983/681 2486/1986/681 +f 2498/2030/682 2487/2029/682 2496/2220/682 2507/2229/682 +f 2507/2229/683 2496/2220/683 2495/2221/683 2506/2230/683 +f 2506/2230/684 2495/2221/684 2494/2222/684 2505/2231/684 +f 2505/2231/685 2494/2222/685 2493/2223/685 2504/2232/685 +f 2504/2232/686 2493/2223/686 2492/2224/686 2503/2233/686 +f 2503/2233/687 2492/2224/687 2491/2225/687 2502/2234/687 +f 2502/2234/688 2491/2225/688 2490/2226/688 2501/2235/688 +f 2501/2235/689 2490/2226/689 2489/2227/689 2500/2236/689 +f 2500/2236/690 2489/2227/690 2488/2228/690 2499/2237/690 +f 2499/2237/691 2488/2228/691 2486/1986/691 2497/1988/691 +f 2509/2031/692 2498/2030/692 2507/2229/692 2518/2238/692 +f 2518/2238/693 2507/2229/693 2506/2230/693 2517/2239/693 +f 2517/2239/694 2506/2230/694 2505/2231/694 2516/2240/694 +f 2516/2240/695 2505/2231/695 2504/2232/695 2515/2241/695 +f 2515/2241/696 2504/2232/696 2503/2233/696 2514/2242/696 +f 2514/2242/697 2503/2233/697 2502/2234/697 2513/2243/697 +f 2513/2243/698 2502/2234/698 2501/2235/698 2512/2244/698 +f 2512/2244/699 2501/2235/699 2500/2236/699 2511/2245/699 +f 2511/2245/700 2500/2236/700 2499/2237/700 2510/2246/700 +f 2510/2246/701 2499/2237/701 2497/1988/701 2508/1990/701 +f 2520/2032/702 2509/2031/702 2518/2238/702 2529/2247/702 +f 2529/2247/703 2518/2238/703 2517/2239/703 2528/2248/703 +f 2528/2248/704 2517/2239/704 2516/2240/704 2527/2249/704 +f 2527/2249/705 2516/2240/705 2515/2241/705 2526/2250/705 +f 2526/2250/706 2515/2241/706 2514/2242/706 2525/2251/706 +f 2525/2251/707 2514/2242/707 2513/2243/707 2524/2252/707 +f 2524/2252/708 2513/2243/708 2512/2244/708 2523/2253/708 +f 2523/2253/709 2512/2244/709 2511/2245/709 2522/2254/709 +f 2522/2254/710 2511/2245/710 2510/2246/710 2521/2255/710 +f 2521/2255/711 2510/2246/711 2508/1990/711 2519/1992/711 +f 2531/2033/712 2520/2032/712 2529/2247/712 2540/2256/712 +f 2540/2256/713 2529/2247/713 2528/2248/713 2539/2257/713 +f 2539/2257/714 2528/2248/714 2527/2249/714 2538/2258/714 +f 2538/2258/715 2527/2249/715 2526/2250/715 2537/2259/715 +f 2537/2259/716 2526/2250/716 2525/2251/716 2536/2260/716 +f 2536/2260/717 2525/2251/717 2524/2252/717 2535/2261/717 +f 2535/2261/718 2524/2252/718 2523/2253/718 2534/2262/718 +f 2534/2262/719 2523/2253/719 2522/2254/719 2533/2263/719 +f 2533/2263/720 2522/2254/720 2521/2255/720 2532/2264/720 +f 2532/2264/721 2521/2255/721 2519/1992/721 2530/1994/721 +f 2542/2034/722 2531/2033/722 2540/2256/722 2551/2265/722 +f 2551/2265/723 2540/2256/723 2539/2257/723 2550/2266/723 +f 2550/2266/724 2539/2257/724 2538/2258/724 2549/2267/724 +f 2549/2267/725 2538/2258/725 2537/2259/725 2548/2268/725 +f 2548/2268/726 2537/2259/726 2536/2260/726 2547/2269/726 +f 2547/2269/727 2536/2260/727 2535/2261/727 2546/2270/727 +f 2546/2270/728 2535/2261/728 2534/2262/728 2545/2271/728 +f 2545/2271/729 2534/2262/729 2533/2263/729 2544/2272/729 +f 2544/2272/730 2533/2263/730 2532/2264/730 2543/2273/730 +f 2543/2273/731 2532/2264/731 2530/1994/731 2541/1996/731 +f 2553/2035/732 2542/2034/732 2551/2265/732 2562/2274/732 +f 2562/2274/733 2551/2265/733 2550/2266/733 2561/2275/733 +f 2561/2275/734 2550/2266/734 2549/2267/734 2560/2276/734 +f 2560/2276/735 2549/2267/735 2548/2268/735 2559/2277/735 +f 2559/2277/736 2548/2268/736 2547/2269/736 2558/2278/736 +f 2558/2278/737 2547/2269/737 2546/2270/737 2557/2279/737 +f 2557/2279/738 2546/2270/738 2545/2271/738 2556/2280/738 +f 2556/2280/739 2545/2271/739 2544/2272/739 2555/2281/739 +f 2555/2281/740 2544/2272/740 2543/2273/740 2554/2282/740 +f 2554/2282/741 2543/2273/741 2541/1996/741 2552/1998/741 +f 2564/2036/742 2553/2035/742 2562/2274/742 2573/2283/742 +f 2573/2283/743 2562/2274/743 2561/2275/743 2572/2284/743 +f 2572/2284/744 2561/2275/744 2560/2276/744 2571/2285/744 +f 2571/2285/745 2560/2276/745 2559/2277/745 2570/2286/745 +f 2570/2286/746 2559/2277/746 2558/2278/746 2569/2287/746 +f 2569/2287/747 2558/2278/747 2557/2279/747 2568/2288/747 +f 2568/2288/748 2557/2279/748 2556/2280/748 2567/2289/748 +f 2567/2289/749 2556/2280/749 2555/2281/749 2566/2290/749 +f 2566/2290/750 2555/2281/750 2554/2282/750 2565/2291/750 +f 2565/2291/751 2554/2282/751 2552/1998/751 2563/2000/751 +f 2575/2037/752 2564/2036/752 2573/2283/752 2584/2292/752 +f 2584/2292/753 2573/2283/753 2572/2284/753 2583/2293/753 +f 2583/2293/754 2572/2284/754 2571/2285/754 2582/2294/754 +f 2582/2294/755 2571/2285/755 2570/2286/755 2581/2295/755 +f 2581/2295/756 2570/2286/756 2569/2287/756 2580/2296/756 +f 2580/2296/757 2569/2287/757 2568/2288/757 2579/2297/757 +f 2579/2297/758 2568/2288/758 2567/2289/758 2578/2298/758 +f 2578/2298/759 2567/2289/759 2566/2290/759 2577/2299/759 +f 2577/2299/760 2566/2290/760 2565/2291/760 2576/2300/760 +f 2576/2300/761 2565/2291/761 2563/2000/761 2574/2002/761 +f 2586/2038/762 2575/2037/762 2584/2292/762 2595/2301/762 +f 2595/2301/763 2584/2292/763 2583/2293/763 2594/2302/763 +f 2594/2302/764 2583/2293/764 2582/2294/764 2593/2303/764 +f 2593/2303/765 2582/2294/765 2581/2295/765 2592/2304/765 +f 2592/2304/766 2581/2295/766 2580/2296/766 2591/2305/766 +f 2591/2305/767 2580/2296/767 2579/2297/767 2590/2306/767 +f 2590/2306/768 2579/2297/768 2578/2298/768 2589/2307/768 +f 2589/2307/769 2578/2298/769 2577/2299/769 2588/2308/769 +f 2588/2308/770 2577/2299/770 2576/2300/770 2587/2309/770 +f 2587/2309/771 2576/2300/771 2574/2002/771 2585/2004/771 +f 2597/2039/772 2586/2038/772 2595/2301/772 2606/2310/772 +f 2606/2310/773 2595/2301/773 2594/2302/773 2605/2311/773 +f 2605/2311/774 2594/2302/774 2593/2303/774 2604/2312/774 +f 2604/2312/775 2593/2303/775 2592/2304/775 2603/2313/775 +f 2603/2313/776 2592/2304/776 2591/2305/776 2602/2314/776 +f 2602/2314/777 2591/2305/777 2590/2306/777 2601/2315/777 +f 2601/2315/778 2590/2306/778 2589/2307/778 2600/2316/778 +f 2600/2316/779 2589/2307/779 2588/2308/779 2599/2317/779 +f 2599/2317/780 2588/2308/780 2587/2309/780 2598/2318/780 +f 2598/2318/781 2587/2309/781 2585/2004/781 2596/2006/781 +f 2608/2040/782 2597/2039/782 2606/2310/782 2617/2319/782 +f 2617/2319/783 2606/2310/783 2605/2311/783 2616/2320/783 +f 2616/2320/784 2605/2311/784 2604/2312/784 2615/2321/784 +f 2615/2321/785 2604/2312/785 2603/2313/785 2614/2322/785 +f 2614/2322/786 2603/2313/786 2602/2314/786 2613/2323/786 +f 2613/2323/787 2602/2314/787 2601/2315/787 2612/2324/787 +f 2612/2324/788 2601/2315/788 2600/2316/788 2611/2325/788 +f 2611/2325/789 2600/2316/789 2599/2317/789 2610/2326/789 +f 2610/2326/790 2599/2317/790 2598/2318/790 2609/2327/790 +f 2609/2327/791 2598/2318/791 2596/2006/791 2607/2008/791 +f 2619/2041/792 2608/2040/792 2617/2319/792 2628/2328/792 +f 2628/2328/793 2617/2319/793 2616/2320/793 2627/2329/793 +f 2627/2329/794 2616/2320/794 2615/2321/794 2626/2330/794 +f 2626/2330/795 2615/2321/795 2614/2322/795 2625/2331/795 +f 2625/2331/796 2614/2322/796 2613/2323/796 2624/2332/796 +f 2624/2332/797 2613/2323/797 2612/2324/797 2623/2333/797 +f 2623/2333/798 2612/2324/798 2611/2325/798 2622/2334/798 +f 2622/2334/799 2611/2325/799 2610/2326/799 2621/2335/799 +f 2621/2335/800 2610/2326/800 2609/2327/800 2620/2336/800 +f 2620/2336/801 2609/2327/801 2607/2008/801 2618/2010/801 +f 2630/2042/802 2619/2041/802 2628/2328/802 2639/2337/802 +f 2639/2337/803 2628/2328/803 2627/2329/803 2638/2338/803 +f 2638/2338/804 2627/2329/804 2626/2330/804 2637/2339/804 +f 2637/2339/805 2626/2330/805 2625/2331/805 2636/2340/805 +f 2636/2340/806 2625/2331/806 2624/2332/806 2635/2341/806 +f 2635/2341/807 2624/2332/807 2623/2333/807 2634/2342/807 +f 2634/2342/808 2623/2333/808 2622/2334/808 2633/2343/808 +f 2633/2343/809 2622/2334/809 2621/2335/809 2632/2344/809 +f 2632/2344/810 2621/2335/810 2620/2336/810 2631/2345/810 +f 2631/2345/811 2620/2336/811 2618/2010/811 2629/2012/811 +f 2641/2043/812 2630/2042/812 2639/2337/812 2650/2346/812 +f 2650/2346/813 2639/2337/813 2638/2338/813 2649/2347/813 +f 2649/2347/814 2638/2338/814 2637/2339/814 2648/2348/814 +f 2648/2348/815 2637/2339/815 2636/2340/815 2647/2349/815 +f 2647/2349/816 2636/2340/816 2635/2341/816 2646/2350/816 +f 2646/2350/817 2635/2341/817 2634/2342/817 2645/2351/817 +f 2645/2351/818 2634/2342/818 2633/2343/818 2644/2352/818 +f 2644/2352/819 2633/2343/819 2632/2344/819 2643/2353/819 +f 2643/2353/820 2632/2344/820 2631/2345/820 2642/2354/820 +f 2642/2354/821 2631/2345/821 2629/2012/821 2640/2014/821 +f 2652/2044/822 2641/2043/822 2650/2346/822 2661/2355/822 +f 2661/2355/823 2650/2346/823 2649/2347/823 2660/2356/823 +f 2660/2356/824 2649/2347/824 2648/2348/824 2659/2357/824 +f 2659/2357/825 2648/2348/825 2647/2349/825 2658/2358/825 +f 2658/2358/826 2647/2349/826 2646/2350/826 2657/2359/826 +f 2657/2359/827 2646/2350/827 2645/2351/827 2656/2360/827 +f 2656/2360/828 2645/2351/828 2644/2352/828 2655/2361/828 +f 2655/2361/829 2644/2352/829 2643/2353/829 2654/2362/829 +f 2654/2362/830 2643/2353/830 2642/2354/830 2653/2363/830 +f 2653/2363/831 2642/2354/831 2640/2014/831 2651/2016/831 +f 2663/2045/832 2652/2044/832 2661/2355/832 2672/2364/832 +f 2672/2364/833 2661/2355/833 2660/2356/833 2671/2365/833 +f 2671/2365/834 2660/2356/834 2659/2357/834 2670/2366/834 +f 2670/2366/835 2659/2357/835 2658/2358/835 2669/2367/835 +f 2669/2367/836 2658/2358/836 2657/2359/836 2668/2368/836 +f 2668/2368/837 2657/2359/837 2656/2360/837 2667/2369/837 +f 2667/2369/838 2656/2360/838 2655/2361/838 2666/2370/838 +f 2666/2370/839 2655/2361/839 2654/2362/839 2665/2371/839 +f 2665/2371/840 2654/2362/840 2653/2363/840 2664/2372/840 +f 2664/2372/841 2653/2363/841 2651/2016/841 2662/2050/841 +f 2674/2046/842 2663/2045/842 2672/2364/842 2683/2373/842 +f 2683/2373/843 2672/2364/843 2671/2365/843 2682/2374/843 +f 2682/2374/844 2671/2365/844 2670/2366/844 2681/2375/844 +f 2681/2375/845 2670/2366/845 2669/2367/845 2680/2376/845 +f 2680/2376/846 2669/2367/846 2668/2368/846 2679/2377/846 +f 2679/2377/847 2668/2368/847 2667/2369/847 2678/2378/847 +f 2678/2378/848 2667/2369/848 2666/2370/848 2677/2379/848 +f 2677/2379/849 2666/2370/849 2665/2371/849 2676/2380/849 +f 2676/2380/850 2665/2371/850 2664/2372/850 2675/2381/850 +f 2675/2381/851 2664/2372/851 2662/2050/851 2673/2054/851 +f 2685/2047/852 2674/2046/852 2683/2373/852 2694/2382/852 +f 2694/2382/853 2683/2373/853 2682/2374/853 2693/2383/853 +f 2693/2383/854 2682/2374/854 2681/2375/854 2692/2384/854 +f 2692/2384/855 2681/2375/855 2680/2376/855 2691/2385/855 +f 2691/2385/856 2680/2376/856 2679/2377/856 2690/2386/856 +f 2690/2386/857 2679/2377/857 2678/2378/857 2689/2387/857 +f 2689/2387/858 2678/2378/858 2677/2379/858 2688/2388/858 +f 2688/2388/859 2677/2379/859 2676/2380/859 2687/2389/859 +f 2687/2389/860 2676/2380/860 2675/2381/860 2686/2390/860 +f 2686/2390/861 2675/2381/861 2673/2054/861 2684/2052/861 +f 2354/2048/862 2685/2047/862 2694/2382/862 2356/2103/862 +f 2356/2103/863 2694/2382/863 2693/2383/863 2357/2105/863 +f 2357/2105/864 2693/2383/864 2692/2384/864 2358/2107/864 +f 2358/2107/865 2692/2384/865 2691/2385/865 2359/2109/865 +f 2359/2109/866 2691/2385/866 2690/2386/866 2360/2111/866 +f 2360/2111/867 2690/2386/867 2689/2387/867 2361/2113/867 +f 2361/2113/868 2689/2387/868 2688/2388/868 2362/2115/868 +f 2362/2115/869 2688/2388/869 2687/2389/869 2363/2117/869 +f 2363/2117/870 2687/2389/870 2686/2390/870 2364/2119/870 +f 2364/2119/871 2686/2390/871 2684/2052/871 2355/2051/871 +f 2696/2065/552 2706/2096/552 2708/2391/552 2705/2392/552 +f 2705/2392/872 2708/2391/872 2709/2393/872 2704/2394/872 +f 2704/2394/554 2709/2393/554 2710/2395/554 2703/2396/554 +f 2703/2396/555 2710/2395/555 2711/2397/555 2702/2398/555 +f 2702/2398/556 2711/2397/556 2712/2399/556 2701/2400/556 +f 2701/2400/873 2712/2399/873 2713/2401/873 2700/2402/873 +f 2700/2402/558 2713/2401/558 2714/2403/558 2699/2404/558 +f 2699/2404/559 2714/2403/559 2715/2405/559 2698/2406/559 +f 2698/2406/560 2715/2405/560 2716/2407/560 2697/2408/560 +f 2697/2408/561 2716/2407/561 2707/2060/561 2695/1980/561 +f 2718/2066/874 2696/2065/874 2705/2392/874 2727/2409/874 +f 2727/2409/563 2705/2392/563 2704/2394/563 2726/2410/563 +f 2726/2410/875 2704/2394/875 2703/2396/875 2725/2411/875 +f 2725/2411/876 2703/2396/876 2702/2398/876 2724/2412/876 +f 2724/2412/566 2702/2398/566 2701/2400/566 2723/2413/566 +f 2723/2413/567 2701/2400/567 2700/2402/567 2722/2414/567 +f 2722/2414/877 2700/2402/877 2699/2404/877 2721/2415/877 +f 2721/2415/569 2699/2404/569 2698/2406/569 2720/2416/569 +f 2720/2416/570 2698/2406/570 2697/2408/570 2719/2417/570 +f 2719/2417/878 2697/2408/878 2695/1980/878 2717/1979/878 +f 2729/2067/879 2718/2066/879 2727/2409/879 2738/2418/879 +f 2738/2418/880 2727/2409/880 2726/2410/880 2737/2419/880 +f 2737/2419/574 2726/2410/574 2725/2411/574 2736/2420/574 +f 2736/2420/575 2725/2411/575 2724/2412/575 2735/2421/575 +f 2735/2421/576 2724/2412/576 2723/2413/576 2734/2422/576 +f 2734/2422/577 2723/2413/577 2722/2414/577 2733/2423/577 +f 2733/2423/881 2722/2414/881 2721/2415/881 2732/2424/881 +f 2732/2424/579 2721/2415/579 2720/2416/579 2731/2425/579 +f 2731/2425/882 2720/2416/882 2719/2417/882 2730/2426/882 +f 2730/2426/883 2719/2417/883 2717/1979/883 2728/1984/883 +f 2740/2068/884 2729/2067/884 2738/2418/884 2749/2427/884 +f 2749/2427/583 2738/2418/583 2737/2419/583 2748/2428/583 +f 2748/2428/584 2737/2419/584 2736/2420/584 2747/2429/584 +f 2747/2429/885 2736/2420/885 2735/2421/885 2746/2430/885 +f 2746/2430/586 2735/2421/586 2734/2422/586 2745/2431/586 +f 2745/2431/886 2734/2422/886 2733/2423/886 2744/2432/886 +f 2744/2432/588 2733/2423/588 2732/2424/588 2743/2433/588 +f 2743/2433/589 2732/2424/589 2731/2425/589 2742/2434/589 +f 2742/2434/590 2731/2425/590 2730/2426/590 2741/2435/590 +f 2741/2435/887 2730/2426/887 2728/1984/887 2739/2102/887 +f 2751/2069/592 2740/2068/592 2749/2427/592 2760/2436/592 +f 2760/2436/593 2749/2427/593 2748/2428/593 2759/2437/593 +f 2759/2437/594 2748/2428/594 2747/2429/594 2758/2438/594 +f 2758/2438/888 2747/2429/888 2746/2430/888 2757/2439/888 +f 2757/2439/596 2746/2430/596 2745/2431/596 2756/2440/596 +f 2756/2440/889 2745/2431/889 2744/2432/889 2755/2441/889 +f 2755/2441/598 2744/2432/598 2743/2433/598 2754/2442/598 +f 2754/2442/599 2743/2433/599 2742/2434/599 2753/2443/599 +f 2753/2443/890 2742/2434/890 2741/2435/890 2752/2444/890 +f 2752/2444/891 2741/2435/891 2739/2102/891 2750/1982/891 +f 2762/2070/602 2751/2069/602 2760/2436/602 2771/2445/602 +f 2771/2445/603 2760/2436/603 2759/2437/603 2770/2446/603 +f 2770/2446/604 2759/2437/604 2758/2438/604 2769/2447/604 +f 2769/2447/892 2758/2438/892 2757/2439/892 2768/2448/892 +f 2768/2448/606 2757/2439/606 2756/2440/606 2767/2449/606 +f 2767/2449/893 2756/2440/893 2755/2441/893 2766/2450/893 +f 2766/2450/608 2755/2441/608 2754/2442/608 2765/2451/608 +f 2765/2451/609 2754/2442/609 2753/2443/609 2764/2452/609 +f 2764/2452/610 2753/2443/610 2752/2444/610 2763/2453/610 +f 2763/2453/611 2752/2444/611 2750/1982/611 2761/1981/611 +f 2773/2071/612 2762/2070/612 2771/2445/612 2782/2454/612 +f 2782/2454/613 2771/2445/613 2770/2446/613 2781/2455/613 +f 2781/2455/614 2770/2446/614 2769/2447/614 2780/2456/614 +f 2780/2456/894 2769/2447/894 2768/2448/894 2779/2457/894 +f 2779/2457/616 2768/2448/616 2767/2449/616 2778/2458/616 +f 2778/2458/895 2767/2449/895 2766/2450/895 2777/2459/895 +f 2777/2459/618 2766/2450/618 2765/2451/618 2776/2460/618 +f 2776/2460/896 2765/2451/896 2764/2452/896 2775/2461/896 +f 2775/2461/897 2764/2452/897 2763/2453/897 2774/2462/897 +f 2774/2462/621 2763/2453/621 2761/1981/621 2772/1985/621 +f 2784/2072/898 2773/2071/898 2782/2454/898 2793/2463/898 +f 2793/2463/623 2782/2454/623 2781/2455/623 2792/2464/623 +f 2792/2464/624 2781/2455/624 2780/2456/624 2791/2465/624 +f 2791/2465/899 2780/2456/899 2779/2457/899 2790/2466/899 +f 2790/2466/626 2779/2457/626 2778/2458/626 2789/2467/626 +f 2789/2467/900 2778/2458/900 2777/2459/900 2788/2468/900 +f 2788/2468/628 2777/2459/628 2776/2460/628 2787/2469/628 +f 2787/2469/629 2776/2460/629 2775/2461/629 2786/2470/629 +f 2786/2470/630 2775/2461/630 2774/2462/630 2785/2471/630 +f 2785/2471/901 2774/2462/901 2772/1985/901 2783/1987/901 +f 2795/2073/632 2784/2072/632 2793/2463/632 2804/2472/632 +f 2804/2472/633 2793/2463/633 2792/2464/633 2803/2473/633 +f 2803/2473/902 2792/2464/902 2791/2465/902 2802/2474/902 +f 2802/2474/903 2791/2465/903 2790/2466/903 2801/2475/903 +f 2801/2475/904 2790/2466/904 2789/2467/904 2800/2476/904 +f 2800/2476/905 2789/2467/905 2788/2468/905 2799/2477/905 +f 2799/2477/638 2788/2468/638 2787/2469/638 2798/2478/638 +f 2798/2478/639 2787/2469/639 2786/2470/639 2797/2479/639 +f 2797/2479/906 2786/2470/906 2785/2471/906 2796/2480/906 +f 2796/2480/641 2785/2471/641 2783/1987/641 2794/1989/641 +f 2806/2074/907 2795/2073/907 2804/2472/907 2815/2481/907 +f 2815/2481/908 2804/2472/908 2803/2473/908 2814/2482/908 +f 2814/2482/909 2803/2473/909 2802/2474/909 2813/2483/909 +f 2813/2483/910 2802/2474/910 2801/2475/910 2812/2484/910 +f 2812/2484/646 2801/2475/646 2800/2476/646 2811/2485/646 +f 2811/2485/911 2800/2476/911 2799/2477/911 2810/2486/911 +f 2810/2486/648 2799/2477/648 2798/2478/648 2809/2487/648 +f 2809/2487/912 2798/2478/912 2797/2479/912 2808/2488/912 +f 2808/2488/650 2797/2479/650 2796/2480/650 2807/2489/650 +f 2807/2489/651 2796/2480/651 2794/1989/651 2805/1991/651 +f 2817/2075/652 2806/2074/652 2815/2481/652 2826/2490/652 +f 2826/2490/913 2815/2481/913 2814/2482/913 2825/2491/913 +f 2825/2491/914 2814/2482/914 2813/2483/914 2824/2492/914 +f 2824/2492/915 2813/2483/915 2812/2484/915 2823/2493/915 +f 2823/2493/916 2812/2484/916 2811/2485/916 2822/2494/916 +f 2822/2494/657 2811/2485/657 2810/2486/657 2821/2495/657 +f 2821/2495/658 2810/2486/658 2809/2487/658 2820/2496/658 +f 2820/2496/659 2809/2487/659 2808/2488/659 2819/2497/659 +f 2819/2497/917 2808/2488/917 2807/2489/917 2818/2498/917 +f 2818/2498/918 2807/2489/918 2805/1991/918 2816/1993/918 +f 2828/2076/662 2817/2075/662 2826/2490/662 2837/2499/662 +f 2837/2499/663 2826/2490/663 2825/2491/663 2836/2500/663 +f 2836/2500/919 2825/2491/919 2824/2492/919 2835/2501/919 +f 2835/2501/665 2824/2492/665 2823/2493/665 2834/2502/665 +f 2834/2502/666 2823/2493/666 2822/2494/666 2833/2503/666 +f 2833/2503/667 2822/2494/667 2821/2495/667 2832/2504/667 +f 2832/2504/920 2821/2495/920 2820/2496/920 2831/2505/920 +f 2831/2505/669 2820/2496/669 2819/2497/669 2830/2506/669 +f 2830/2506/670 2819/2497/670 2818/2498/670 2829/2507/670 +f 2829/2507/921 2818/2498/921 2816/1993/921 2827/1995/921 +f 2839/2077/672 2828/2076/672 2837/2499/672 2848/2508/672 +f 2848/2508/922 2837/2499/922 2836/2500/922 2847/2509/922 +f 2847/2509/674 2836/2500/674 2835/2501/674 2846/2510/674 +f 2846/2510/675 2835/2501/675 2834/2502/675 2845/2511/675 +f 2845/2511/676 2834/2502/676 2833/2503/676 2844/2512/676 +f 2844/2512/923 2833/2503/923 2832/2504/923 2843/2513/923 +f 2843/2513/924 2832/2504/924 2831/2505/924 2842/2514/924 +f 2842/2514/925 2831/2505/925 2830/2506/925 2841/2515/925 +f 2841/2515/926 2830/2506/926 2829/2507/926 2840/2516/926 +f 2840/2516/681 2829/2507/681 2827/1995/681 2838/1997/681 +f 2850/2078/927 2839/2077/927 2848/2508/927 2859/2517/927 +f 2859/2517/928 2848/2508/928 2847/2509/928 2858/2518/928 +f 2858/2518/929 2847/2509/929 2846/2510/929 2857/2519/929 +f 2857/2519/685 2846/2510/685 2845/2511/685 2856/2520/685 +f 2856/2520/930 2845/2511/930 2844/2512/930 2855/2521/930 +f 2855/2521/931 2844/2512/931 2843/2513/931 2854/2522/931 +f 2854/2522/932 2843/2513/932 2842/2514/932 2853/2523/932 +f 2853/2523/689 2842/2514/689 2841/2515/689 2852/2524/689 +f 2852/2524/933 2841/2515/933 2840/2516/933 2851/2525/933 +f 2851/2525/934 2840/2516/934 2838/1997/934 2849/1999/934 +f 2861/2079/692 2850/2078/692 2859/2517/692 2870/2526/692 +f 2870/2526/693 2859/2517/693 2858/2518/693 2869/2527/693 +f 2869/2527/694 2858/2518/694 2857/2519/694 2868/2528/694 +f 2868/2528/935 2857/2519/935 2856/2520/935 2867/2529/935 +f 2867/2529/696 2856/2520/696 2855/2521/696 2866/2530/696 +f 2866/2530/697 2855/2521/697 2854/2522/697 2865/2531/697 +f 2865/2531/698 2854/2522/698 2853/2523/698 2864/2532/698 +f 2864/2532/699 2853/2523/699 2852/2524/699 2863/2533/699 +f 2863/2533/936 2852/2524/936 2851/2525/936 2862/2534/936 +f 2862/2534/701 2851/2525/701 2849/1999/701 2860/2001/701 +f 2872/2080/702 2861/2079/702 2870/2526/702 2881/2535/702 +f 2881/2535/703 2870/2526/703 2869/2527/703 2880/2536/703 +f 2880/2536/937 2869/2527/937 2868/2528/937 2879/2537/937 +f 2879/2537/938 2868/2528/938 2867/2529/938 2878/2538/938 +f 2878/2538/706 2867/2529/706 2866/2530/706 2877/2539/706 +f 2877/2539/939 2866/2530/939 2865/2531/939 2876/2540/939 +f 2876/2540/940 2865/2531/940 2864/2532/940 2875/2541/940 +f 2875/2541/941 2864/2532/941 2863/2533/941 2874/2542/941 +f 2874/2542/942 2863/2533/942 2862/2534/942 2873/2543/942 +f 2873/2543/711 2862/2534/711 2860/2001/711 2871/2003/711 +f 2883/2081/943 2872/2080/943 2881/2535/943 2892/2544/943 +f 2892/2544/713 2881/2535/713 2880/2536/713 2891/2545/713 +f 2891/2545/944 2880/2536/944 2879/2537/944 2890/2546/944 +f 2890/2546/945 2879/2537/945 2878/2538/945 2889/2547/945 +f 2889/2547/946 2878/2538/946 2877/2539/946 2888/2548/946 +f 2888/2548/947 2877/2539/947 2876/2540/947 2887/2549/947 +f 2887/2549/718 2876/2540/718 2875/2541/718 2886/2550/718 +f 2886/2550/719 2875/2541/719 2874/2542/719 2885/2551/719 +f 2885/2551/720 2874/2542/720 2873/2543/720 2884/2552/720 +f 2884/2552/721 2873/2543/721 2871/2003/721 2882/2005/721 +f 2894/2082/948 2883/2081/948 2892/2544/948 2903/2553/948 +f 2903/2553/723 2892/2544/723 2891/2545/723 2902/2554/723 +f 2902/2554/949 2891/2545/949 2890/2546/949 2901/2555/949 +f 2901/2555/950 2890/2546/950 2889/2547/950 2900/2556/950 +f 2900/2556/951 2889/2547/951 2888/2548/951 2899/2557/951 +f 2899/2557/952 2888/2548/952 2887/2549/952 2898/2558/952 +f 2898/2558/728 2887/2549/728 2886/2550/728 2897/2559/728 +f 2897/2559/953 2886/2550/953 2885/2551/953 2896/2560/953 +f 2896/2560/730 2885/2551/730 2884/2552/730 2895/2561/730 +f 2895/2561/954 2884/2552/954 2882/2005/954 2893/2007/954 +f 2905/2083/732 2894/2082/732 2903/2553/732 2914/2562/732 +f 2914/2562/955 2903/2553/955 2902/2554/955 2913/2563/955 +f 2913/2563/956 2902/2554/956 2901/2555/956 2912/2564/956 +f 2912/2564/957 2901/2555/957 2900/2556/957 2911/2565/957 +f 2911/2565/736 2900/2556/736 2899/2557/736 2910/2566/736 +f 2910/2566/737 2899/2557/737 2898/2558/737 2909/2567/737 +f 2909/2567/738 2898/2558/738 2897/2559/738 2908/2568/738 +f 2908/2568/739 2897/2559/739 2896/2560/739 2907/2569/739 +f 2907/2569/958 2896/2560/958 2895/2561/958 2906/2570/958 +f 2906/2570/959 2895/2561/959 2893/2007/959 2904/2009/959 +f 2916/2084/742 2905/2083/742 2914/2562/742 2925/2571/742 +f 2925/2571/743 2914/2562/743 2913/2563/743 2924/2572/743 +f 2924/2572/744 2913/2563/744 2912/2564/744 2923/2573/744 +f 2923/2573/745 2912/2564/745 2911/2565/745 2922/2574/745 +f 2922/2574/960 2911/2565/960 2910/2566/960 2921/2575/960 +f 2921/2575/747 2910/2566/747 2909/2567/747 2920/2576/747 +f 2920/2576/961 2909/2567/961 2908/2568/961 2919/2577/961 +f 2919/2577/962 2908/2568/962 2907/2569/962 2918/2578/962 +f 2918/2578/750 2907/2569/750 2906/2570/750 2917/2579/750 +f 2917/2579/963 2906/2570/963 2904/2009/963 2915/2011/963 +f 2927/2085/964 2916/2084/964 2925/2571/964 2936/2580/964 +f 2936/2580/965 2925/2571/965 2924/2572/965 2935/2581/965 +f 2935/2581/754 2924/2572/754 2923/2573/754 2934/2582/754 +f 2934/2582/966 2923/2573/966 2922/2574/966 2933/2583/966 +f 2933/2583/756 2922/2574/756 2921/2575/756 2932/2584/756 +f 2932/2584/967 2921/2575/967 2920/2576/967 2931/2585/967 +f 2931/2585/758 2920/2576/758 2919/2577/758 2930/2586/758 +f 2930/2586/759 2919/2577/759 2918/2578/759 2929/2587/759 +f 2929/2587/760 2918/2578/760 2917/2579/760 2928/2588/760 +f 2928/2588/761 2917/2579/761 2915/2011/761 2926/2013/761 +f 2938/2086/968 2927/2085/968 2936/2580/968 2947/2589/968 +f 2947/2589/969 2936/2580/969 2935/2581/969 2946/2590/969 +f 2946/2590/970 2935/2581/970 2934/2582/970 2945/2591/970 +f 2945/2591/971 2934/2582/971 2933/2583/971 2944/2592/971 +f 2944/2592/972 2933/2583/972 2932/2584/972 2943/2593/972 +f 2943/2593/767 2932/2584/767 2931/2585/767 2942/2594/767 +f 2942/2594/768 2931/2585/768 2930/2586/768 2941/2595/768 +f 2941/2595/769 2930/2586/769 2929/2587/769 2940/2596/769 +f 2940/2596/770 2929/2587/770 2928/2588/770 2939/2597/770 +f 2939/2597/771 2928/2588/771 2926/2013/771 2937/2015/771 +f 2949/2087/973 2938/2086/973 2947/2589/973 2958/2598/973 +f 2958/2598/974 2947/2589/974 2946/2590/974 2957/2599/974 +f 2957/2599/975 2946/2590/975 2945/2591/975 2956/2600/975 +f 2956/2600/976 2945/2591/976 2944/2592/976 2955/2601/976 +f 2955/2601/977 2944/2592/977 2943/2593/977 2954/2602/977 +f 2954/2602/777 2943/2593/777 2942/2594/777 2953/2603/777 +f 2953/2603/778 2942/2594/778 2941/2595/778 2952/2604/778 +f 2952/2604/779 2941/2595/779 2940/2596/779 2951/2605/779 +f 2951/2605/780 2940/2596/780 2939/2597/780 2950/2606/780 +f 2950/2606/978 2939/2597/978 2937/2015/978 2948/2049/978 +f 2960/2088/979 2949/2087/979 2958/2598/979 2969/2607/979 +f 2969/2607/980 2958/2598/980 2957/2599/980 2968/2608/980 +f 2968/2608/981 2957/2599/981 2956/2600/981 2967/2609/981 +f 2967/2609/982 2956/2600/982 2955/2601/982 2966/2610/982 +f 2966/2610/983 2955/2601/983 2954/2602/983 2965/2611/983 +f 2965/2611/984 2954/2602/984 2953/2603/984 2964/2612/984 +f 2964/2612/788 2953/2603/788 2952/2604/788 2963/2613/788 +f 2963/2613/789 2952/2604/789 2951/2605/789 2962/2614/789 +f 2962/2614/790 2951/2605/790 2950/2606/790 2961/2615/790 +f 2961/2615/985 2950/2606/985 2948/2049/985 2959/2053/985 +f 2971/2089/986 2960/2088/986 2969/2607/986 2980/2616/986 +f 2980/2616/987 2969/2607/987 2968/2608/987 2979/2617/987 +f 2979/2617/988 2968/2608/988 2967/2609/988 2978/2618/988 +f 2978/2618/989 2967/2609/989 2966/2610/989 2977/2619/989 +f 2977/2619/990 2966/2610/990 2965/2611/990 2976/2620/990 +f 2976/2620/991 2965/2611/991 2964/2612/991 2975/2621/991 +f 2975/2621/798 2964/2612/798 2963/2613/798 2974/2622/798 +f 2974/2622/799 2963/2613/799 2962/2614/799 2973/2623/799 +f 2973/2623/992 2962/2614/992 2961/2615/992 2972/2624/992 +f 2972/2624/993 2961/2615/993 2959/2053/993 2970/2057/993 +f 2982/2090/994 2971/2089/994 2980/2616/994 2991/2625/994 +f 2991/2625/995 2980/2616/995 2979/2617/995 2990/2626/995 +f 2990/2626/996 2979/2617/996 2978/2618/996 2989/2627/996 +f 2989/2627/805 2978/2618/805 2977/2619/805 2988/2628/805 +f 2988/2628/997 2977/2619/997 2976/2620/997 2987/2629/997 +f 2987/2629/998 2976/2620/998 2975/2621/998 2986/2630/998 +f 2986/2630/808 2975/2621/808 2974/2622/808 2985/2631/808 +f 2985/2631/809 2974/2622/809 2973/2623/809 2984/2632/809 +f 2984/2632/999 2973/2623/999 2972/2624/999 2983/2633/999 +f 2983/2633/1000 2972/2624/1000 2970/2057/1000 2981/2059/1000 +f 2993/2091/1001 2982/2090/1001 2991/2625/1001 3002/2634/1001 +f 3002/2634/813 2991/2625/813 2990/2626/813 3001/2635/813 +f 3001/2635/814 2990/2626/814 2989/2627/814 3000/2636/814 +f 3000/2636/1002 2989/2627/1002 2988/2628/1002 2999/2637/1002 +f 2999/2637/816 2988/2628/816 2987/2629/816 2998/2638/816 +f 2998/2638/817 2987/2629/817 2986/2630/817 2997/2639/817 +f 2997/2639/818 2986/2630/818 2985/2631/818 2996/2640/818 +f 2996/2640/819 2985/2631/819 2984/2632/819 2995/2641/819 +f 2995/2641/1003 2984/2632/1003 2983/2633/1003 2994/2642/1003 +f 2994/2642/821 2983/2633/821 2981/2059/821 2992/2062/821 +f 3004/2092/822 2993/2091/822 3002/2634/822 3013/2643/822 +f 3013/2643/1004 3002/2634/1004 3001/2635/1004 3012/2644/1004 +f 3012/2644/824 3001/2635/824 3000/2636/824 3011/2645/824 +f 3011/2645/825 3000/2636/825 2999/2637/825 3010/2646/825 +f 3010/2646/826 2999/2637/826 2998/2638/826 3009/2647/826 +f 3009/2647/827 2998/2638/827 2997/2639/827 3008/2648/827 +f 3008/2648/828 2997/2639/828 2996/2640/828 3007/2649/828 +f 3007/2649/829 2996/2640/829 2995/2641/829 3006/2650/829 +f 3006/2650/830 2995/2641/830 2994/2642/830 3005/2651/830 +f 3005/2651/1005 2994/2642/1005 2992/2062/1005 3003/2064/1005 +f 3015/2093/1006 3004/2092/1006 3013/2643/1006 3024/2652/1006 +f 3024/2652/1007 3013/2643/1007 3012/2644/1007 3023/2653/1007 +f 3023/2653/834 3012/2644/834 3011/2645/834 3022/2654/834 +f 3022/2654/835 3011/2645/835 3010/2646/835 3021/2655/835 +f 3021/2655/836 3010/2646/836 3009/2647/836 3020/2656/836 +f 3020/2656/1008 3009/2647/1008 3008/2648/1008 3019/2657/1008 +f 3019/2657/1009 3008/2648/1009 3007/2649/1009 3018/2658/1009 +f 3018/2658/839 3007/2649/839 3006/2650/839 3017/2659/839 +f 3017/2659/840 3006/2650/840 3005/2651/840 3016/2660/840 +f 3016/2660/841 3005/2651/841 3003/2064/841 3014/2098/841 +f 3026/2094/842 3015/2093/842 3024/2652/842 3035/2661/842 +f 3035/2661/1010 3024/2652/1010 3023/2653/1010 3034/2662/1010 +f 3034/2662/1011 3023/2653/1011 3022/2654/1011 3033/2663/1011 +f 3033/2663/1012 3022/2654/1012 3021/2655/1012 3032/2664/1012 +f 3032/2664/846 3021/2655/846 3020/2656/846 3031/2665/846 +f 3031/2665/847 3020/2656/847 3019/2657/847 3030/2666/847 +f 3030/2666/848 3019/2657/848 3018/2658/848 3029/2667/848 +f 3029/2667/849 3018/2658/849 3017/2659/849 3028/2668/849 +f 3028/2668/1013 3017/2659/1013 3016/2660/1013 3027/2669/1013 +f 3027/2669/851 3016/2660/851 3014/2098/851 3025/2101/851 +f 3037/2095/1014 3026/2094/1014 3035/2661/1014 3046/2670/1014 +f 3046/2670/853 3035/2661/853 3034/2662/853 3045/2671/853 +f 3045/2671/854 3034/2662/854 3033/2663/854 3044/2672/854 +f 3044/2672/1015 3033/2663/1015 3032/2664/1015 3043/2673/1015 +f 3043/2673/1016 3032/2664/1016 3031/2665/1016 3042/2674/1016 +f 3042/2674/1017 3031/2665/1017 3030/2666/1017 3041/2675/1017 +f 3041/2675/1018 3030/2666/1018 3029/2667/1018 3040/2676/1018 +f 3040/2676/859 3029/2667/859 3028/2668/859 3039/2677/859 +f 3039/2677/1019 3028/2668/1019 3027/2669/1019 3038/2678/1019 +f 3038/2678/861 3027/2669/861 3025/2101/861 3036/2099/861 +f 2706/2096/862 3037/2095/862 3046/2670/862 2708/2391/862 +f 2708/2391/863 3046/2670/863 3045/2671/863 2709/2393/863 +f 2709/2393/864 3045/2671/864 3044/2672/864 2710/2395/864 +f 2710/2395/865 3044/2672/865 3043/2673/865 2711/2397/865 +f 2711/2397/1020 3043/2673/1020 3042/2674/1020 2712/2399/1020 +f 2712/2399/1021 3042/2674/1021 3041/2675/1021 2713/2401/1021 +f 2713/2401/868 3041/2675/868 3040/2676/868 2714/2403/868 +f 2714/2403/869 3040/2676/869 3039/2677/869 2715/2405/869 +f 2715/2405/870 3039/2677/870 3038/2678/870 2716/2407/870 +f 2716/2407/871 3038/2678/871 3036/2099/871 2707/2060/871 +f 67/1316/550 68/1315/550 2343/1978/550 2355/2051/550 +s 1 +f 50/2679/1022 3093/2680/1023 3091/2681/1024 48/2682/1025 +f 46/2683/1026 3094/2684/1027 3093/2680/1023 50/2679/1022 +f 43/2685/1028 3079/2686/1029 3077/1481/121 42/1480/120 +f 36/2687/1030 3088/2688/1031 3087/2689/1032 31/2690/1033 +f 4/2691/1034 3069/2692/1035 3070/2693/1036 66/2694/1037 +f 32/2695/1038 3086/2696/1039 3085/2697/1040 26/2698/1041 +f 1/2699/1042 3112/2700/1043 3105/2701/1044 61/2702/1045 +f 6/2703/1046 3067/2704/1047 3069/2692/1035 4/2691/1034 +f 19/2705/1048 3065/2706/1049 3066/2707/1050 20/2708/1051 +f 20/2708/1051 3066/2707/1050 3068/2709/1052 3067/2710/1047 6/2711/1046 +f 21/2712/1053 3061/2713/1054 3062/2714/1055 18/2715/1056 +f 66/2694/1037 3070/2693/1036 3071/2716/1057 65/2717/1058 +f 27/2718/1059 3073/2719/1060 3074/1626/220 28/1625/219 +f 65/2717/1058 3071/2716/1057 3084/2720/1061 45/2721/1062 +f 7/1448/116 3113/1447/115 3112/2700/1043 1/2699/1042 +f 25/1617/213 3059/1616/212 3061/2713/1054 21/2712/1053 11/2722/1063 +f 49/2723/1064 3090/2724/1065 3089/2725/1066 47/2726/1067 +f 47/2726/1067 3089/2725/1066 3088/2688/1031 36/2687/1030 +f 45/2721/1062 3084/2720/1061 3081/2727/1068 44/2728/1069 +f 44/2728/1069 3081/2727/1068 3079/2686/1029 43/2685/1028 +f 18/2715/1056 3062/2714/1055 3063/2729/1070 22/2730/1071 +f 31/2690/1033 3087/2689/1032 3086/2696/1039 32/2695/1038 +f 26/2698/1041 3085/2697/1040 3073/2719/1060 27/2718/1059 +f 22/2730/1071 3063/2729/1070 3064/2731/1072 17/2732/1073 +f 61/2702/1045 3105/2701/1044 3106/2733/1074 60/2734/1075 +f 60/2734/1075 3106/2733/1074 3094/2684/1027 46/2683/1026 51/2735/1076 +f 17/2732/1073 3064/2731/1072 3065/2706/1049 19/2705/1048 +f 48/2682/1025 3091/2681/1024 3092/2736/1077 3090/2737/1065 49/2738/1064 +f 1125/2739/1078 535/2740/1079 547/2741/1080 1126/2742/1081 +f 1105/1564/136 763/2743/1082 775/2744/1083 1107/1594/169 +f 1135/2745/1084 644/2746/1085 871/2747/1086 1136/2748/1087 +f 1095/1560/132 643/2749/1088 655/2750/1089 1097/1592/165 +f 1123/2751/1090 884/2752/1091 523/2753/1092 1124/2754/1093 +f 1126/2742/1081 547/2741/1080 559/2755/1094 1127/2756/1095 +f 1127/2756/1095 559/2755/1094 571/2757/1096 1128/2758/1097 +f 1128/2758/1097 571/2757/1096 583/2759/1098 1129/2760/1099 +f 1129/2761/1099 583/2762/1098 595/2763/1100 1130/2764/1101 +f 1130/2764/1101 595/2763/1100 607/2765/1102 1131/2766/1103 +f 1131/2766/1103 607/2765/1102 619/2767/1104 1132/2768/1105 +f 1132/2768/1105 619/2767/1104 632/2769/1106 1133/2770/1107 +f 1133/2770/1107 632/2769/1106 751/2771/1108 1134/2772/1109 +f 1098/1593/166 667/2773/1110 679/2774/1111 1099/1615/211 +f 1099/1615/211 679/2774/1111 691/2775/1112 1100/1614/209 +f 1100/1614/209 691/2775/1112 703/2776/1113 1101/1613/207 +f 1101/1613/207 703/2776/1113 715/2777/1114 1102/1612/205 +f 1102/1612/205 715/2777/1114 727/2778/1115 1103/1611/203 +f 1103/1611/203 727/2778/1115 739/2779/1116 1104/1610/201 +f 1104/1610/201 739/2779/1116 752/2780/1117 1094/1591/163 +f 1145/2781/1118 764/2782/1119 991/2783/1120 1146/2784/1121 +f 1108/1595/170 787/2785/1122 799/2786/1123 1109/1609/199 +f 1109/1609/199 799/2786/1123 811/2787/1124 1110/1608/197 +f 1110/1608/197 811/2787/1124 823/2788/1125 1111/1607/195 +f 1111/1607/195 823/2788/1125 835/2789/1126 1112/1606/193 +f 1112/1606/193 835/2789/1126 847/2790/1127 1113/1605/191 +f 1113/1605/191 847/2790/1127 859/2791/1128 1114/1604/189 +f 1114/1604/189 859/2791/1128 872/2792/1129 1096/1563/135 +f 1085/1586/158 883/2793/1130 895/2794/1131 1115/1596/173 +f 1116/1597/174 907/2795/1132 919/2796/1133 1117/1603/187 +f 1117/1603/187 919/2796/1133 931/2797/1134 1118/1602/185 +f 1118/1602/185 931/2797/1134 943/2798/1135 1119/1601/183 +f 1119/1601/183 943/2798/1135 955/2799/1136 1120/1600/181 +f 1120/1600/181 955/2799/1136 967/2800/1137 1121/1599/179 +f 1121/1599/179 967/2800/1137 979/2801/1138 1122/1598/177 +f 1122/1598/177 979/2801/1138 992/2802/1139 1106/1565/139 +f 1115/1596/173 895/2794/1131 907/2795/1132 1116/1597/174 +f 1107/1594/169 775/2744/1083 787/2785/1122 1108/1595/170 +f 1097/1592/165 655/2750/1089 667/2773/1110 1098/1593/166 +f 1124/2754/1093 523/2753/1092 535/2740/1079 1125/2739/1078 +f 980/2803/1140 991/2783/1120 993/2804/1141 990/2805/1142 +f 990/2805/1142 993/2804/1141 994/2806/1143 989/2807/1144 +f 989/2807/1144 994/2806/1143 995/2808/1145 988/2809/1146 +f 988/2809/1146 995/2808/1145 996/2810/1147 987/2811/1148 +f 987/2811/1148 996/2810/1147 997/2812/1149 986/2813/1150 +f 986/2813/1150 997/2812/1149 998/2814/1151 985/2815/1152 +f 985/2815/1152 998/2814/1151 999/2816/1153 984/2817/1154 +f 984/2817/1154 999/2816/1153 1000/2818/1155 983/2819/1156 +f 983/2819/1156 1000/2818/1155 1001/2820/1157 982/2821/1158 +f 982/2821/1158 1001/2820/1157 1002/2822/1159 981/2823/1160 +f 981/2823/1160 1002/2822/1159 992/2802/1139 979/2801/1138 +f 968/2824/1161 980/2803/1140 990/2805/1142 978/2825/1162 +f 978/2825/1162 990/2805/1142 989/2807/1144 977/2826/1163 +f 977/2826/1163 989/2807/1144 988/2809/1146 976/2827/1164 +f 976/2827/1164 988/2809/1146 987/2811/1148 975/2828/1165 +f 975/2828/1165 987/2811/1148 986/2813/1150 974/2829/1166 +f 974/2829/1166 986/2813/1150 985/2815/1152 973/2830/1167 +f 973/2830/1167 985/2815/1152 984/2817/1154 972/2831/1168 +f 972/2831/1168 984/2817/1154 983/2819/1156 971/2832/1169 +f 971/2832/1169 983/2819/1156 982/2821/1158 970/2833/1170 +f 970/2833/1170 982/2821/1158 981/2823/1160 969/2834/1171 +f 969/2834/1171 981/2823/1160 979/2801/1138 967/2800/1137 +f 956/2835/1172 968/2824/1161 978/2825/1162 966/2836/1173 +f 966/2836/1173 978/2825/1162 977/2826/1163 965/2837/1174 +f 965/2837/1174 977/2826/1163 976/2827/1164 964/2838/1175 +f 964/2838/1175 976/2827/1164 975/2828/1165 963/2839/1176 +f 963/2839/1176 975/2828/1165 974/2829/1166 962/2840/1177 +f 962/2840/1177 974/2829/1166 973/2830/1167 961/2841/1178 +f 961/2841/1178 973/2830/1167 972/2831/1168 960/2842/1179 +f 960/2842/1179 972/2831/1168 971/2832/1169 959/2843/1180 +f 959/2843/1180 971/2832/1169 970/2833/1170 958/2844/1181 +f 958/2844/1181 970/2833/1170 969/2834/1171 957/2845/1182 +f 957/2845/1182 969/2834/1171 967/2800/1137 955/2799/1136 +f 944/2846/1183 956/2835/1172 966/2836/1173 954/2847/1184 +f 954/2847/1184 966/2836/1173 965/2837/1174 953/2848/1185 +f 953/2848/1185 965/2837/1174 964/2838/1175 952/2849/1186 +f 952/2849/1186 964/2838/1175 963/2839/1176 951/2850/1187 +f 951/2850/1187 963/2839/1176 962/2840/1177 950/2851/1188 +f 950/2851/1188 962/2840/1177 961/2841/1178 949/2852/1189 +f 949/2852/1189 961/2841/1178 960/2842/1179 948/2853/1190 +f 948/2853/1190 960/2842/1179 959/2843/1180 947/2854/1191 +f 947/2854/1191 959/2843/1180 958/2844/1181 946/2855/1192 +f 946/2855/1192 958/2844/1181 957/2845/1182 945/2856/1193 +f 945/2856/1193 957/2845/1182 955/2799/1136 943/2798/1135 +f 932/2857/1194 944/2846/1183 954/2847/1184 942/2858/1195 +f 942/2858/1195 954/2847/1184 953/2848/1185 941/2859/1196 +f 941/2859/1196 953/2848/1185 952/2849/1186 940/2860/1197 +f 940/2860/1197 952/2849/1186 951/2850/1187 939/2861/1198 +f 939/2861/1198 951/2850/1187 950/2851/1188 938/2862/1199 +f 938/2862/1199 950/2851/1188 949/2852/1189 937/2863/1200 +f 937/2863/1200 949/2852/1189 948/2853/1190 936/2864/1201 +f 936/2864/1201 948/2853/1190 947/2854/1191 935/2865/1202 +f 935/2865/1202 947/2854/1191 946/2855/1192 934/2866/1203 +f 934/2866/1203 946/2855/1192 945/2856/1193 933/2867/1204 +f 933/2867/1204 945/2856/1193 943/2798/1135 931/2797/1134 +f 920/2868/1205 932/2857/1194 942/2858/1195 930/2869/1206 +f 930/2869/1206 942/2858/1195 941/2859/1196 929/2870/1207 +f 929/2870/1207 941/2859/1196 940/2860/1197 928/2871/1208 +f 928/2871/1208 940/2860/1197 939/2861/1198 927/2872/1209 +f 927/2872/1209 939/2861/1198 938/2862/1199 926/2873/1210 +f 926/2873/1210 938/2862/1199 937/2863/1200 925/2874/1211 +f 925/2874/1211 937/2863/1200 936/2864/1201 924/2875/1212 +f 924/2875/1212 936/2864/1201 935/2865/1202 923/2876/1213 +f 923/2876/1213 935/2865/1202 934/2866/1203 922/2877/1214 +f 922/2877/1214 934/2866/1203 933/2867/1204 921/2878/1215 +f 921/2878/1215 933/2867/1204 931/2797/1134 919/2796/1133 +f 908/2879/1216 920/2868/1205 930/2869/1206 918/2880/1217 +f 918/2880/1217 930/2869/1206 929/2870/1207 917/2881/1218 +f 917/2881/1218 929/2870/1207 928/2871/1208 916/2882/1219 +f 916/2882/1219 928/2871/1208 927/2872/1209 915/2883/1220 +f 915/2883/1220 927/2872/1209 926/2873/1210 914/2884/1221 +f 914/2884/1221 926/2873/1210 925/2874/1211 913/2885/1222 +f 913/2885/1222 925/2874/1211 924/2875/1212 912/2886/1223 +f 912/2886/1223 924/2875/1212 923/2876/1213 911/2887/1224 +f 911/2887/1224 923/2876/1213 922/2877/1214 910/2888/1225 +f 910/2888/1225 922/2877/1214 921/2878/1215 909/2889/1226 +f 909/2889/1226 921/2878/1215 919/2796/1133 907/2795/1132 +f 896/2890/1227 908/2879/1216 918/2880/1217 906/2891/1228 +f 906/2891/1228 918/2880/1217 917/2881/1218 905/2892/1229 +f 905/2892/1229 917/2881/1218 916/2882/1219 904/2893/1230 +f 904/2893/1230 916/2882/1219 915/2883/1220 903/2894/1231 +f 903/2894/1231 915/2883/1220 914/2884/1221 902/2895/1232 +f 902/2895/1232 914/2884/1221 913/2885/1222 901/2896/1233 +f 901/2896/1233 913/2885/1222 912/2886/1223 900/2897/1234 +f 900/2897/1234 912/2886/1223 911/2887/1224 899/2898/1235 +f 899/2898/1235 911/2887/1224 910/2888/1225 898/2899/1236 +f 898/2899/1236 910/2888/1225 909/2889/1226 897/2900/1237 +f 897/2900/1237 909/2889/1226 907/2795/1132 895/2794/1131 +f 884/2752/1091 896/2890/1227 906/2891/1228 894/2901/1238 +f 894/2901/1238 906/2891/1228 905/2892/1229 893/2902/1239 +f 893/2902/1239 905/2892/1229 904/2893/1230 892/2903/1240 +f 892/2903/1240 904/2893/1230 903/2894/1231 891/2904/1241 +f 891/2904/1241 903/2894/1231 902/2895/1232 890/2905/1242 +f 890/2905/1242 902/2895/1232 901/2896/1233 889/2906/1243 +f 889/2906/1243 901/2896/1233 900/2897/1234 888/2907/1244 +f 888/2907/1244 900/2897/1234 899/2898/1235 887/2908/1245 +f 887/2908/1245 899/2898/1235 898/2899/1236 886/2909/1246 +f 886/2909/1246 898/2899/1236 897/2900/1237 885/2910/1247 +f 885/2910/1247 897/2900/1237 895/2794/1131 883/2793/1130 +f 860/2911/1248 871/2747/1086 873/2912/1249 870/2913/1250 +f 870/2913/1250 873/2912/1249 874/2914/1251 869/2915/1252 +f 869/2915/1252 874/2914/1251 875/2916/1253 868/2917/1254 +f 868/2917/1254 875/2916/1253 876/2918/1255 867/2919/1256 +f 867/2919/1256 876/2918/1255 877/2920/1257 866/2921/1258 +f 866/2921/1258 877/2920/1257 878/2922/1259 865/2923/1260 +f 865/2923/1260 878/2922/1259 879/2924/1261 864/2925/1262 +f 864/2925/1262 879/2924/1261 880/2926/1263 863/2927/1264 +f 863/2927/1264 880/2926/1263 881/2928/1265 862/2929/1266 +f 862/2929/1266 881/2928/1265 882/2930/1267 861/2931/1268 +f 861/2931/1268 882/2930/1267 872/2792/1129 859/2791/1128 +f 848/2932/1269 860/2911/1248 870/2913/1250 858/2933/1270 +f 858/2933/1270 870/2913/1250 869/2915/1252 857/2934/1271 +f 857/2934/1271 869/2915/1252 868/2917/1254 856/2935/1272 +f 856/2935/1272 868/2917/1254 867/2919/1256 855/2936/1273 +f 855/2936/1273 867/2919/1256 866/2921/1258 854/2937/1274 +f 854/2937/1274 866/2921/1258 865/2923/1260 853/2938/1275 +f 853/2938/1275 865/2923/1260 864/2925/1262 852/2939/1276 +f 852/2939/1276 864/2925/1262 863/2927/1264 851/2940/1277 +f 851/2940/1277 863/2927/1264 862/2929/1266 850/2941/1278 +f 850/2941/1278 862/2929/1266 861/2931/1268 849/2942/1279 +f 849/2942/1279 861/2931/1268 859/2791/1128 847/2790/1127 +f 836/2943/1280 848/2932/1269 858/2933/1270 846/2944/1281 +f 846/2944/1281 858/2933/1270 857/2934/1271 845/2945/1282 +f 845/2945/1282 857/2934/1271 856/2935/1272 844/2946/1283 +f 844/2946/1283 856/2935/1272 855/2936/1273 843/2947/1284 +f 843/2947/1284 855/2936/1273 854/2937/1274 842/2948/1285 +f 842/2948/1285 854/2937/1274 853/2938/1275 841/2949/1286 +f 841/2949/1286 853/2938/1275 852/2939/1276 840/2950/1287 +f 840/2950/1287 852/2939/1276 851/2940/1277 839/2951/1288 +f 839/2951/1288 851/2940/1277 850/2941/1278 838/2952/1289 +f 838/2952/1289 850/2941/1278 849/2942/1279 837/2953/1290 +f 837/2953/1290 849/2942/1279 847/2790/1127 835/2789/1126 +f 824/2954/1291 836/2943/1280 846/2944/1281 834/2955/1292 +f 834/2955/1292 846/2944/1281 845/2945/1282 833/2956/1293 +f 833/2956/1293 845/2945/1282 844/2946/1283 832/2957/1294 +f 832/2957/1294 844/2946/1283 843/2947/1284 831/2958/1295 +f 831/2958/1295 843/2947/1284 842/2948/1285 830/2959/1296 +f 830/2959/1296 842/2948/1285 841/2949/1286 829/2960/1297 +f 829/2960/1297 841/2949/1286 840/2950/1287 828/2961/1298 +f 828/2961/1298 840/2950/1287 839/2951/1288 827/2962/1299 +f 827/2962/1299 839/2951/1288 838/2952/1289 826/2963/1300 +f 826/2963/1300 838/2952/1289 837/2953/1290 825/2964/1301 +f 825/2964/1301 837/2953/1290 835/2789/1126 823/2788/1125 +f 812/2965/1302 824/2954/1291 834/2955/1292 822/2966/1303 +f 822/2966/1303 834/2955/1292 833/2956/1293 821/2967/1304 +f 821/2967/1304 833/2956/1293 832/2957/1294 820/2968/1305 +f 820/2968/1305 832/2957/1294 831/2958/1295 819/2969/1306 +f 819/2969/1306 831/2958/1295 830/2959/1296 818/2970/1307 +f 818/2970/1307 830/2959/1296 829/2960/1297 817/2971/1308 +f 817/2971/1308 829/2960/1297 828/2961/1298 816/2972/1309 +f 816/2972/1309 828/2961/1298 827/2962/1299 815/2973/1310 +f 815/2973/1310 827/2962/1299 826/2963/1300 814/2974/1311 +f 814/2974/1311 826/2963/1300 825/2964/1301 813/2975/1312 +f 813/2975/1312 825/2964/1301 823/2788/1125 811/2787/1124 +f 800/2976/1313 812/2965/1302 822/2966/1303 810/2977/1314 +f 810/2977/1314 822/2966/1303 821/2967/1304 809/2978/1315 +f 809/2978/1315 821/2967/1304 820/2968/1305 808/2979/1316 +f 808/2979/1316 820/2968/1305 819/2969/1306 807/2980/1317 +f 807/2980/1317 819/2969/1306 818/2970/1307 806/2981/1318 +f 806/2981/1318 818/2970/1307 817/2971/1308 805/2982/1319 +f 805/2982/1319 817/2971/1308 816/2972/1309 804/2983/1320 +f 804/2983/1320 816/2972/1309 815/2973/1310 803/2984/1321 +f 803/2984/1321 815/2973/1310 814/2974/1311 802/2985/1322 +f 802/2985/1322 814/2974/1311 813/2975/1312 801/2986/1323 +f 801/2986/1323 813/2975/1312 811/2787/1124 799/2786/1123 +f 788/2987/1324 800/2976/1313 810/2977/1314 798/2988/1325 +f 798/2988/1325 810/2977/1314 809/2978/1315 797/2989/1326 +f 797/2989/1326 809/2978/1315 808/2979/1316 796/2990/1327 +f 796/2990/1327 808/2979/1316 807/2980/1317 795/2991/1328 +f 795/2991/1328 807/2980/1317 806/2981/1318 794/2992/1329 +f 794/2992/1329 806/2981/1318 805/2982/1319 793/2993/1330 +f 793/2993/1330 805/2982/1319 804/2983/1320 792/2994/1331 +f 792/2994/1331 804/2983/1320 803/2984/1321 791/2995/1332 +f 791/2995/1332 803/2984/1321 802/2985/1322 790/2996/1333 +f 790/2996/1333 802/2985/1322 801/2986/1323 789/2997/1334 +f 789/2997/1334 801/2986/1323 799/2786/1123 787/2785/1122 +f 776/2998/1335 788/2987/1324 798/2988/1325 786/2999/1336 +f 786/2999/1336 798/2988/1325 797/2989/1326 785/3000/1337 +f 785/3000/1337 797/2989/1326 796/2990/1327 784/3001/1338 +f 784/3001/1338 796/2990/1327 795/2991/1328 783/3002/1339 +f 783/3002/1339 795/2991/1328 794/2992/1329 782/3003/1340 +f 782/3003/1340 794/2992/1329 793/2993/1330 781/3004/1341 +f 781/3004/1341 793/2993/1330 792/2994/1331 780/3005/1342 +f 780/3005/1342 792/2994/1331 791/2995/1332 779/3006/1343 +f 779/3006/1343 791/2995/1332 790/2996/1333 778/3007/1344 +f 778/3007/1344 790/2996/1333 789/2997/1334 777/3008/1345 +f 777/3008/1345 789/2997/1334 787/2785/1122 775/2744/1083 +f 764/2782/1119 776/2998/1335 786/2999/1336 774/3009/1346 +f 774/3009/1346 786/2999/1336 785/3000/1337 773/3010/1347 +f 773/3010/1347 785/3000/1337 784/3001/1338 772/3011/1348 +f 772/3011/1348 784/3001/1338 783/3002/1339 771/3012/1349 +f 771/3012/1349 783/3002/1339 782/3003/1340 770/3013/1350 +f 770/3013/1350 782/3003/1340 781/3004/1341 769/3014/1351 +f 769/3014/1351 781/3004/1341 780/3005/1342 768/3015/1352 +f 768/3015/1352 780/3005/1342 779/3006/1343 767/3016/1353 +f 767/3016/1353 779/3006/1343 778/3007/1344 766/3017/1354 +f 766/3017/1354 778/3007/1344 777/3008/1345 765/3018/1355 +f 765/3018/1355 777/3008/1345 775/2744/1083 763/2743/1082 +f 740/3019/1356 751/2771/1108 753/3020/1357 750/3021/1358 +f 750/3021/1358 753/3020/1357 754/3022/1359 749/3023/1360 +f 749/3023/1360 754/3022/1359 755/3024/1361 748/3025/1362 +f 748/3025/1362 755/3024/1361 756/3026/1363 747/3027/1364 +f 747/3027/1364 756/3026/1363 757/3028/1365 746/3029/1366 +f 746/3029/1366 757/3028/1365 758/3030/1367 745/3031/1368 +f 745/3031/1368 758/3030/1367 759/3032/1369 744/3033/1370 +f 744/3033/1370 759/3032/1369 760/3034/1371 743/3035/1372 +f 743/3035/1372 760/3034/1371 761/3036/1373 742/3037/1374 +f 742/3037/1374 761/3036/1373 762/3038/1375 741/3039/1376 +f 741/3039/1376 762/3038/1375 752/2780/1117 739/2779/1116 +f 728/3040/1377 740/3019/1356 750/3021/1358 738/3041/1378 +f 738/3041/1378 750/3021/1358 749/3023/1360 737/3042/1379 +f 737/3042/1379 749/3023/1360 748/3025/1362 736/3043/1380 +f 736/3043/1380 748/3025/1362 747/3027/1364 735/3044/1381 +f 735/3044/1381 747/3027/1364 746/3029/1366 734/3045/1382 +f 734/3045/1382 746/3029/1366 745/3031/1368 733/3046/1383 +f 733/3046/1383 745/3031/1368 744/3033/1370 732/3047/1384 +f 732/3047/1384 744/3033/1370 743/3035/1372 731/3048/1385 +f 731/3048/1385 743/3035/1372 742/3037/1374 730/3049/1386 +f 730/3049/1386 742/3037/1374 741/3039/1376 729/3050/1387 +f 729/3050/1387 741/3039/1376 739/2779/1116 727/2778/1115 +f 716/3051/1388 728/3040/1377 738/3041/1378 726/3052/1389 +f 726/3052/1389 738/3041/1378 737/3042/1379 725/3053/1390 +f 725/3053/1390 737/3042/1379 736/3043/1380 724/3054/1391 +f 724/3054/1391 736/3043/1380 735/3044/1381 723/3055/1392 +f 723/3055/1392 735/3044/1381 734/3045/1382 722/3056/1393 +f 722/3056/1393 734/3045/1382 733/3046/1383 721/3057/1394 +f 721/3057/1394 733/3046/1383 732/3047/1384 720/3058/1395 +f 720/3058/1395 732/3047/1384 731/3048/1385 719/3059/1396 +f 719/3059/1396 731/3048/1385 730/3049/1386 718/3060/1397 +f 718/3060/1397 730/3049/1386 729/3050/1387 717/3061/1398 +f 717/3061/1398 729/3050/1387 727/2778/1115 715/2777/1114 +f 704/3062/1399 716/3051/1388 726/3052/1389 714/3063/1400 +f 714/3063/1400 726/3052/1389 725/3053/1390 713/3064/1401 +f 713/3064/1401 725/3053/1390 724/3054/1391 712/3065/1402 +f 712/3065/1402 724/3054/1391 723/3055/1392 711/3066/1403 +f 711/3066/1403 723/3055/1392 722/3056/1393 710/3067/1404 +f 710/3067/1404 722/3056/1393 721/3057/1394 709/3068/1405 +f 709/3068/1405 721/3057/1394 720/3058/1395 708/3069/1406 +f 708/3069/1406 720/3058/1395 719/3059/1396 707/3070/1407 +f 707/3070/1407 719/3059/1396 718/3060/1397 706/3071/1408 +f 706/3071/1408 718/3060/1397 717/3061/1398 705/3072/1409 +f 705/3072/1409 717/3061/1398 715/2777/1114 703/2776/1113 +f 692/3073/1410 704/3062/1399 714/3063/1400 702/3074/1411 +f 702/3074/1411 714/3063/1400 713/3064/1401 701/3075/1412 +f 701/3075/1412 713/3064/1401 712/3065/1402 700/3076/1413 +f 700/3076/1413 712/3065/1402 711/3066/1403 699/3077/1414 +f 699/3077/1414 711/3066/1403 710/3067/1404 698/3078/1415 +f 698/3078/1415 710/3067/1404 709/3068/1405 697/3079/1416 +f 697/3079/1416 709/3068/1405 708/3069/1406 696/3080/1417 +f 696/3080/1417 708/3069/1406 707/3070/1407 695/3081/1418 +f 695/3081/1418 707/3070/1407 706/3071/1408 694/3082/1419 +f 694/3082/1419 706/3071/1408 705/3072/1409 693/3083/1420 +f 693/3083/1420 705/3072/1409 703/2776/1113 691/2775/1112 +f 680/3084/1421 692/3073/1410 702/3074/1411 690/3085/1422 +f 690/3085/1422 702/3074/1411 701/3075/1412 689/3086/1423 +f 689/3086/1423 701/3075/1412 700/3076/1413 688/3087/1424 +f 688/3087/1424 700/3076/1413 699/3077/1414 687/3088/1425 +f 687/3088/1425 699/3077/1414 698/3078/1415 686/3089/1426 +f 686/3089/1426 698/3078/1415 697/3079/1416 685/3090/1427 +f 685/3090/1427 697/3079/1416 696/3080/1417 684/3091/1428 +f 684/3091/1428 696/3080/1417 695/3081/1418 683/3092/1429 +f 683/3092/1429 695/3081/1418 694/3082/1419 682/3093/1430 +f 682/3093/1430 694/3082/1419 693/3083/1420 681/3094/1431 +f 681/3094/1431 693/3083/1420 691/2775/1112 679/2774/1111 +f 668/3095/1432 680/3084/1421 690/3085/1422 678/3096/1433 +f 678/3096/1433 690/3085/1422 689/3086/1423 677/3097/1434 +f 677/3097/1434 689/3086/1423 688/3087/1424 676/3098/1435 +f 676/3098/1435 688/3087/1424 687/3088/1425 675/3099/1436 +f 675/3099/1436 687/3088/1425 686/3089/1426 674/3100/1437 +f 674/3100/1437 686/3089/1426 685/3090/1427 673/3101/1438 +f 673/3101/1438 685/3090/1427 684/3091/1428 672/3102/1439 +f 672/3102/1439 684/3091/1428 683/3092/1429 671/3103/1440 +f 671/3103/1440 683/3092/1429 682/3093/1430 670/3104/1441 +f 670/3104/1441 682/3093/1430 681/3094/1431 669/3105/1442 +f 669/3105/1442 681/3094/1431 679/2774/1111 667/2773/1110 +f 656/3106/1443 668/3095/1432 678/3096/1433 666/3107/1444 +f 666/3107/1444 678/3096/1433 677/3097/1434 665/3108/1445 +f 665/3108/1445 677/3097/1434 676/3098/1435 664/3109/1446 +f 664/3109/1446 676/3098/1435 675/3099/1436 663/3110/1447 +f 663/3110/1447 675/3099/1436 674/3100/1437 662/3111/1448 +f 662/3111/1448 674/3100/1437 673/3101/1438 661/3112/1449 +f 661/3112/1449 673/3101/1438 672/3102/1439 660/3113/1450 +f 660/3113/1450 672/3102/1439 671/3103/1440 659/3114/1451 +f 659/3114/1451 671/3103/1440 670/3104/1441 658/3115/1452 +f 658/3115/1452 670/3104/1441 669/3105/1442 657/3116/1453 +f 657/3116/1453 669/3105/1442 667/2773/1110 655/2750/1089 +f 644/2746/1085 656/3106/1443 666/3107/1444 654/3117/1454 +f 654/3117/1454 666/3107/1444 665/3108/1445 653/3118/1455 +f 653/3118/1455 665/3108/1445 664/3109/1446 652/3119/1456 +f 652/3119/1456 664/3109/1446 663/3110/1447 651/3120/1457 +f 651/3120/1457 663/3110/1447 662/3111/1448 650/3121/1458 +f 650/3121/1458 662/3111/1448 661/3112/1449 649/3122/1459 +f 649/3122/1459 661/3112/1449 660/3113/1450 648/3123/1460 +f 648/3123/1460 660/3113/1450 659/3114/1451 647/3124/1461 +f 647/3124/1461 659/3114/1451 658/3115/1452 646/3125/1462 +f 646/3125/1462 658/3115/1452 657/3116/1453 645/3126/1463 +f 645/3126/1463 657/3116/1453 655/2750/1089 643/2749/1088 +f 620/3127/1464 631/3128/1465 633/3129/1466 630/3130/1467 +f 630/3130/1467 633/3129/1466 634/3131/1468 629/3132/1469 +f 629/3132/1469 634/3131/1468 635/3133/1470 628/3134/1471 +f 628/3134/1471 635/3133/1470 636/3135/1472 627/3136/1473 +f 627/3136/1473 636/3135/1472 637/3137/1474 626/3138/1475 +f 626/3138/1475 637/3137/1474 638/3139/1476 625/3140/1477 +f 625/3140/1477 638/3139/1476 639/3141/1478 624/3142/1479 +f 624/3142/1479 639/3141/1478 640/3143/1480 623/3144/1481 +f 623/3144/1481 640/3143/1480 641/3145/1482 622/3146/1483 +f 622/3146/1483 641/3145/1482 642/3147/1484 621/3148/1485 +f 621/3148/1485 642/3147/1484 632/2769/1106 619/2767/1104 +f 608/3149/1486 620/3127/1464 630/3130/1467 618/3150/1487 +f 618/3150/1487 630/3130/1467 629/3132/1469 617/3151/1488 +f 617/3151/1488 629/3132/1469 628/3134/1471 616/3152/1489 +f 616/3152/1489 628/3134/1471 627/3136/1473 615/3153/1490 +f 615/3153/1490 627/3136/1473 626/3138/1475 614/3154/1491 +f 614/3154/1491 626/3138/1475 625/3140/1477 613/3155/1492 +f 613/3155/1492 625/3140/1477 624/3142/1479 612/3156/1493 +f 612/3156/1493 624/3142/1479 623/3144/1481 611/3157/1494 +f 611/3157/1494 623/3144/1481 622/3146/1483 610/3158/1495 +f 610/3158/1495 622/3146/1483 621/3148/1485 609/3159/1496 +f 609/3159/1496 621/3148/1485 619/2767/1104 607/2765/1102 +f 596/3160/1497 608/3149/1486 618/3150/1487 606/3161/1498 +f 606/3161/1498 618/3150/1487 617/3151/1488 605/3162/1499 +f 605/3162/1499 617/3151/1488 616/3152/1489 604/3163/1500 +f 604/3163/1500 616/3152/1489 615/3153/1490 603/3164/1501 +f 603/3164/1501 615/3153/1490 614/3154/1491 602/3165/1502 +f 602/3165/1502 614/3154/1491 613/3155/1492 601/3166/1503 +f 601/3166/1503 613/3155/1492 612/3156/1493 600/3167/1504 +f 600/3167/1504 612/3156/1493 611/3157/1494 599/3168/1505 +f 599/3168/1505 611/3157/1494 610/3158/1495 598/3169/1506 +f 598/3169/1506 610/3158/1495 609/3159/1496 597/3170/1507 +f 597/3170/1507 609/3159/1496 607/2765/1102 595/2763/1100 +f 584/3171/1508 596/3160/1497 606/3161/1498 594/3172/1509 +f 594/3172/1509 606/3161/1498 605/3162/1499 593/3173/1510 +f 593/3173/1510 605/3162/1499 604/3163/1500 592/3174/1511 +f 592/3174/1511 604/3163/1500 603/3164/1501 591/3175/1512 +f 591/3175/1512 603/3164/1501 602/3165/1502 590/3176/1513 +f 590/3176/1513 602/3165/1502 601/3166/1503 589/3177/1514 +f 589/3177/1514 601/3166/1503 600/3167/1504 588/3178/1515 +f 588/3178/1515 600/3167/1504 599/3168/1505 587/3179/1516 +f 587/3179/1516 599/3168/1505 598/3169/1506 586/3180/1517 +f 586/3180/1517 598/3169/1506 597/3170/1507 585/3181/1518 +f 585/3181/1518 597/3170/1507 595/2763/1100 583/2762/1098 +f 572/3182/1519 584/3183/1508 594/3184/1509 582/3185/1520 +f 582/3185/1520 594/3184/1509 593/3186/1510 581/3187/1521 +f 581/3187/1521 593/3186/1510 592/3188/1511 580/3189/1522 +f 580/3189/1522 592/3188/1511 591/3190/1512 579/3191/1523 +f 579/3191/1523 591/3190/1512 590/3192/1513 578/3193/1524 +f 578/3193/1524 590/3192/1513 589/3194/1514 577/3195/1525 +f 577/3195/1525 589/3194/1514 588/3196/1515 576/3197/1526 +f 576/3197/1526 588/3196/1515 587/3198/1516 575/3199/1527 +f 575/3199/1527 587/3198/1516 586/3200/1517 574/3201/1528 +f 574/3201/1528 586/3200/1517 585/3202/1518 573/3203/1529 +f 573/3203/1529 585/3202/1518 583/2759/1098 571/2757/1096 +f 560/3204/1530 572/3182/1519 582/3185/1520 570/3205/1531 +f 570/3205/1531 582/3185/1520 581/3187/1521 569/3206/1532 +f 569/3206/1532 581/3187/1521 580/3189/1522 568/3207/1533 +f 568/3207/1533 580/3189/1522 579/3191/1523 567/3208/1534 +f 567/3208/1534 579/3191/1523 578/3193/1524 566/3209/1535 +f 566/3209/1535 578/3193/1524 577/3195/1525 565/3210/1536 +f 565/3210/1536 577/3195/1525 576/3197/1526 564/3211/1537 +f 564/3211/1537 576/3197/1526 575/3199/1527 563/3212/1538 +f 563/3212/1538 575/3199/1527 574/3201/1528 562/3213/1539 +f 562/3213/1539 574/3201/1528 573/3203/1529 561/3214/1540 +f 561/3214/1540 573/3203/1529 571/2757/1096 559/2755/1094 +f 548/3215/1541 560/3204/1530 570/3205/1531 558/3216/1542 +f 558/3216/1542 570/3205/1531 569/3206/1532 557/3217/1543 +f 557/3217/1543 569/3206/1532 568/3207/1533 556/3218/1544 +f 556/3218/1544 568/3207/1533 567/3208/1534 555/3219/1545 +f 555/3219/1545 567/3208/1534 566/3209/1535 554/3220/1546 +f 554/3220/1546 566/3209/1535 565/3210/1536 553/3221/1547 +f 553/3221/1547 565/3210/1536 564/3211/1537 552/3222/1548 +f 552/3222/1548 564/3211/1537 563/3212/1538 551/3223/1549 +f 551/3223/1549 563/3212/1538 562/3213/1539 550/3224/1550 +f 550/3224/1550 562/3213/1539 561/3214/1540 549/3225/1551 +f 549/3225/1551 561/3214/1540 559/2755/1094 547/2741/1080 +f 536/3226/1552 548/3215/1541 558/3216/1542 546/3227/1553 +f 546/3227/1553 558/3216/1542 557/3217/1543 545/3228/1554 +f 545/3228/1554 557/3217/1543 556/3218/1544 544/3229/1555 +f 544/3229/1555 556/3218/1544 555/3219/1545 543/3230/1556 +f 543/3230/1556 555/3219/1545 554/3220/1546 542/3231/1557 +f 542/3231/1557 554/3220/1546 553/3221/1547 541/3232/1558 +f 541/3232/1558 553/3221/1547 552/3222/1548 540/3233/1559 +f 540/3233/1559 552/3222/1548 551/3223/1549 539/3234/1560 +f 539/3234/1560 551/3223/1549 550/3224/1550 538/3235/1561 +f 538/3235/1561 550/3224/1550 549/3225/1551 537/3236/1562 +f 537/3236/1562 549/3225/1551 547/2741/1080 535/2740/1079 +f 524/3237/1563 536/3226/1552 546/3227/1553 534/3238/1564 +f 534/3238/1564 546/3227/1553 545/3228/1554 533/3239/1565 +f 533/3239/1565 545/3228/1554 544/3229/1555 532/3240/1566 +f 532/3240/1566 544/3229/1555 543/3230/1556 531/3241/1567 +f 531/3241/1567 543/3230/1556 542/3231/1557 530/3242/1568 +f 530/3242/1568 542/3231/1557 541/3232/1558 529/3243/1569 +f 529/3243/1569 541/3232/1558 540/3233/1559 528/3244/1570 +f 528/3244/1570 540/3233/1559 539/3234/1560 527/3245/1571 +f 527/3245/1571 539/3234/1560 538/3235/1561 526/3246/1572 +f 526/3246/1572 538/3235/1561 537/3236/1562 525/3247/1573 +f 525/3247/1573 537/3236/1562 535/2740/1079 523/2753/1092 +f 643/2749/1088 872/2792/1129 882/2930/1267 645/3126/1463 +f 645/3126/1463 882/2930/1267 881/2928/1265 646/3125/1462 +f 646/3125/1462 881/2928/1265 880/2926/1263 647/3124/1461 +f 647/3124/1461 880/2926/1263 879/2924/1261 648/3123/1460 +f 648/3123/1460 879/2924/1261 878/2922/1259 649/3122/1459 +f 649/3122/1459 878/2922/1259 877/2920/1257 650/3121/1458 +f 650/3121/1458 877/2920/1257 876/2918/1255 651/3120/1457 +f 651/3120/1457 876/2918/1255 875/2916/1253 652/3119/1456 +f 652/3119/1456 875/2916/1253 874/2914/1251 653/3118/1455 +f 653/3118/1455 874/2914/1251 873/2912/1249 654/3117/1454 +f 654/3117/1454 873/2912/1249 871/2747/1086 644/2746/1085 +f 631/3128/1465 752/2780/1117 762/3038/1375 633/3129/1466 +f 633/3129/1466 762/3038/1375 761/3036/1373 634/3131/1468 +f 634/3131/1468 761/3036/1373 760/3034/1371 3182/3248/1574 3183/3249/1574 635/3133/1470 +f 635/3133/1470 3183/3249/1574 3179/3250/1575 636/3135/1472 +f 636/3135/1472 3179/3250/1575 3187/3251/1576 637/3137/1474 +f 637/3137/1474 3187/3251/1576 3184/3252/1577 638/3139/1476 +f 638/3139/1476 3184/3252/1577 3180/3253/1578 639/3141/1478 +f 639/3141/1478 3180/3253/1578 3189/3254/1579 640/3143/1480 +f 640/3143/1480 3189/3254/1579 3188/3255/1579 755/3024/1361 754/3022/1359 641/3145/1482 +f 641/3145/1482 754/3022/1359 753/3020/1357 642/3147/1484 +f 642/3147/1484 753/3020/1357 751/2771/1108 632/2769/1106 +f 763/2743/1082 992/2802/1139 1002/2822/1159 765/3018/1355 +f 765/3018/1355 1002/2822/1159 1001/2820/1157 766/3017/1354 +f 766/3017/1354 1001/2820/1157 1000/2818/1155 3157/3256/1580 3158/3257/1580 767/3016/1353 +f 767/3016/1353 3158/3257/1580 3166/3258/1581 3163/3259/1582 3141/3260/1582 3145/3261/1583 3146/3262/1583 3147/3263/1583 3148/3264/1583 3142/3265/1582 3117/3266/1582 3128/3267/1583 3127/3268/1583 3126/3269/1583 3115/3270/1582 768/3015/1352 +f 768/3015/1352 3115/3270/1582 3129/3271/1584 3122/3272/1585 769/3014/1351 +f 769/3014/1351 3122/3272/1585 3123/3273/1586 3120/3274/1587 770/3013/1350 +f 770/3013/1350 3120/3274/1587 3125/3275/1588 3121/3276/1589 771/3012/1349 +f 771/3012/1349 3121/3276/1589 3135/3277/1590 3134/3278/1590 3133/3279/1590 3132/3280/1590 3131/3281/1590 3130/3282/1590 3119/3283/1589 3140/3284/1589 3149/3285/1590 3150/3286/1590 3151/3287/1590 3152/3288/1590 3136/3289/1589 3159/3290/1589 3170/3291/1590 3171/3292/1590 3172/3293/1590 3173/3294/1590 3164/3295/1589 996/2810/1147 995/2808/1145 772/3011/1348 +f 772/3011/1348 995/2808/1145 994/2806/1143 773/3010/1347 +f 773/3010/1347 994/2806/1143 993/2804/1141 774/3009/1346 +f 774/3009/1346 993/2804/1141 991/2783/1120 764/2782/1119 +f 883/2793/1130 524/3237/1563 534/3238/1564 885/2910/1247 +f 885/2910/1247 534/3238/1564 533/3239/1565 1802/3296/1591 1803/3297/1591 886/2909/1246 +f 886/2909/1246 1803/3297/1591 1800/3298/1592 887/2908/1245 +f 887/2908/1245 1800/3298/1592 1798/3299/1593 2154/3300/1594 2155/3301/1594 2145/3302/1594 2146/3303/1594 2136/3304/1594 2137/3305/1594 888/2907/1244 +f 888/2907/1244 2137/3305/1594 2135/3306/1595 889/2906/1243 +f 889/2906/1243 2135/3306/1595 2141/3307/1596 890/2905/1242 +f 890/2905/1242 2141/3307/1596 2138/3308/1597 891/2904/1241 +f 891/2904/1241 2138/3308/1597 2148/3309/1597 2149/3310/1597 1799/3311/1597 1807/3312/1598 892/2903/1240 +f 892/2903/1240 1807/3312/1598 1806/3313/1598 527/3245/1571 526/3246/1572 893/2902/1239 +f 893/2902/1239 526/3246/1572 525/3247/1573 894/2901/1238 +f 894/2901/1238 525/3247/1573 523/2753/1092 884/2752/1091 +f 524/3237/1563 1083/1589/161 1084/1584/156 536/3226/1552 +f 631/3128/1465 1093/1569/143 1094/1591/163 752/2780/1117 +f 883/2793/1130 1085/1586/158 1083/1589/161 524/3237/1563 +f 536/3226/1552 1084/1584/156 1086/1582/154 548/3215/1541 +f 548/3215/1541 1086/1582/154 1087/1580/152 560/3204/1530 +f 560/3204/1530 1087/1580/152 1088/1576/150 572/3182/1519 +f 572/3182/1519 1088/1576/150 1089/1579/148 584/3183/1508 +f 584/3171/1508 1089/1574/148 1090/1572/146 596/3160/1497 +f 596/3160/1497 1090/1572/146 1091/1570/144 608/3149/1486 +f 608/3149/1486 1091/1570/144 1092/1566/140 620/3127/1464 +f 620/3127/1464 1092/1566/140 1093/1569/143 631/3128/1465 +f 763/2743/1082 1105/1564/136 1106/1565/139 992/2802/1139 +f 643/2749/1088 1095/1560/132 1096/1563/135 872/2792/1129 +f 764/2782/1119 1145/2781/1118 1147/3314/1599 776/2998/1335 +f 644/2746/1085 1135/2745/1084 1137/3315/1600 656/3106/1443 +f 656/3106/1443 1137/3315/1600 1138/3316/1601 668/3095/1432 +f 668/3095/1432 1138/3316/1601 1139/3317/1602 680/3084/1421 +f 680/3084/1421 1139/3317/1602 1140/3318/1603 692/3073/1410 +f 692/3073/1410 1140/3318/1603 1141/3319/1604 704/3062/1399 +f 704/3062/1399 1141/3319/1604 1142/3320/1605 716/3051/1388 +f 716/3051/1388 1142/3320/1605 1143/3321/1606 728/3040/1377 +f 728/3040/1377 1143/3321/1606 1144/3322/1607 740/3019/1356 +f 740/3019/1356 1144/3322/1607 1134/2772/1109 751/2771/1108 +f 776/2998/1335 1147/3314/1599 1148/3323/1608 788/2987/1324 +f 788/2987/1324 1148/3323/1608 1149/3324/1609 800/2976/1313 +f 800/2976/1313 1149/3324/1609 1150/3325/1610 812/2965/1302 +f 812/2965/1302 1150/3325/1610 1151/3326/1611 824/2954/1291 +f 824/2954/1291 1151/3326/1611 1152/3327/1612 836/2943/1280 +f 836/2943/1280 1152/3327/1612 1153/3328/1613 848/2932/1269 +f 848/2932/1269 1153/3328/1613 1154/3329/1614 860/2911/1248 +f 860/2911/1248 1154/3329/1614 1136/2748/1087 871/2747/1086 +f 896/2890/1227 1155/3330/1615 1156/3331/1616 908/2879/1216 +f 908/2879/1216 1156/3331/1616 1157/3332/1617 920/2868/1205 +f 920/2868/1205 1157/3332/1617 1158/3333/1618 932/2857/1194 +f 932/2857/1194 1158/3333/1618 1159/3334/1619 944/2846/1183 +f 944/2846/1183 1159/3334/1619 1160/3335/1620 956/2835/1172 +f 956/2835/1172 1160/3335/1620 1161/3336/1621 968/2824/1161 +f 968/2824/1161 1161/3336/1621 1162/3337/1622 980/2803/1140 +f 980/2803/1140 1162/3337/1622 1146/2784/1121 991/2783/1120 +f 884/2752/1091 1123/2751/1090 1155/3330/1615 896/2890/1227 +f 1368/3338/1623 1366/3339/1624 1365/3340/1624 1361/3341/1624 1360/3342/1625 3185/3343/1575 3181/3344/1576 +f 1371/3345/1626 1370/3346/1627 1372/3347/1627 1369/3348/1627 1368/3338/1623 3181/3344/1576 3190/3349/1577 +f 1363/3350/1628 1362/3351/1629 1364/3352/1629 1367/3353/1629 1371/3345/1626 3190/3349/1577 3186/3354/1578 +f 1769/3355/1630 1766/3356/1631 1765/3357/1631 1763/3358/1631 1764/3359/1632 1805/3360/1633 1810/3361/1634 +f 1764/3359/1632 1762/3362/1635 1760/3363/1635 1761/3364/1636 1808/3365/1594 1805/3360/1633 +f 1773/3366/1637 1772/3367/1638 1774/3368/1638 1771/3369/1638 1768/3370/1638 1769/3355/1630 1810/3361/1634 1804/3371/1597 +f 1801/3372/1634 1797/3373/1633 1785/3374/1632 1784/3375/1631 1786/3376/1631 1788/3377/1631 1787/3378/1630 +f 1799/3311/1597 1801/3372/1634 1787/3378/1630 1782/3379/1638 1783/3380/1638 1777/3381/1638 1778/3382/1638 1779/3383/1639 +f 1798/3299/1593 1800/3298/1592 1809/3384/1592 1808/3365/1594 1761/3364/1636 1759/3385/1640 1757/3386/1640 1758/3387/1640 1775/3388/1640 1776/3389/1640 1781/3390/1640 1789/3391/1640 1793/3392/1640 1796/3393/1640 1792/3394/1640 1795/3395/1640 1794/3396/1641 +f 1797/3373/1633 1798/3299/1593 1794/3396/1641 1790/3397/1635 1791/3398/1635 1785/3374/1632 +f 1810/3361/1634 1805/3360/1633 2159/3399/1595 2158/3400/1596 +f 1800/3298/1592 1803/3297/1591 1802/3296/1591 1809/3384/1592 +f 1809/3384/1592 1802/3296/1591 533/3239/1565 532/3240/1566 +f 1805/3360/1633 1808/3365/1594 2161/3401/1594 2159/3399/1595 +f 1808/3365/1594 1809/3384/1592 532/3240/1566 531/3241/1567 2197/3402/1594 2198/3403/1594 2188/3404/1594 2189/3405/1594 2182/3406/1594 2183/3407/1594 2171/3408/1594 2172/3409/1594 2163/3410/1594 2164/3411/1594 2160/3412/1594 2161/3401/1594 +f 1804/3371/1597 1810/3361/1634 2158/3400/1596 2156/3413/1597 +f 1807/3312/1598 1799/3311/1597 1779/3383/1639 1780/3414/1642 1767/3415/1642 1770/3416/1642 1773/3366/1637 1804/3371/1597 1806/3313/1598 +f 1806/3313/1598 1804/3371/1597 2156/3413/1597 2166/3417/1597 2174/3418/1597 2178/3419/1597 2190/3420/1597 2193/3421/1597 528/3244/1570 527/3245/1571 +f 1995/3422/1643 1994/3423/1644 1996/3424/1644 1993/3425/1644 1991/3426/1644 1989/3427/1644 1986/3428/1644 1984/3429/1644 1982/3430/1645 2162/3431/1633 2157/3432/1634 +f 1980/3433/1643 1979/3434/1631 1981/3435/1631 1978/3436/1631 1976/3437/1631 1974/3438/1631 1971/3439/1631 1969/3440/1631 1968/3441/1632 2165/3442/1633 2167/3443/1634 +f 1916/3444/1643 1917/3445/1644 1918/3446/1644 1915/3447/1644 1913/3448/1644 1911/3449/1644 1908/3450/1644 1907/3451/1644 1953/3452/1632 2173/3453/1633 2175/3454/1634 +f 1904/3455/1643 1903/3456/1631 1905/3457/1631 1902/3458/1631 1900/3459/1631 1898/3460/1631 1895/3461/1631 1892/3462/1631 1893/3463/1632 2181/3464/1633 2177/3465/1634 +f 1818/3466/1643 1819/3467/1631 1820/3468/1631 1817/3469/1631 1815/3470/1631 1813/3471/1631 1812/3472/1631 1878/3473/1631 1879/3474/1632 2185/3475/1633 2187/3476/1634 +f 1854/3477/1643 1855/3478/1631 1856/3479/1631 1853/3480/1631 1851/3481/1631 1849/3482/1631 1846/3483/1631 1844/3484/1631 1843/3485/1632 2194/3486/1633 2195/3487/1634 +f 2109/3488/1643 2108/3489/1646 2110/3490/1646 2107/3491/1646 2105/3492/1646 2103/3493/1646 2100/3494/1646 2097/3495/1646 2098/3496/1632 2139/3497/1633 2140/3498/1634 +f 2048/3499/1643 2047/3500/1631 2049/3501/1631 2046/3502/1631 2045/3503/1631 2089/3504/1631 2086/3505/1631 2084/3506/1631 2083/3507/1632 2142/3508/1633 2143/3509/1634 +f 2043/3510/1643 2042/3511/1631 2044/3512/1631 2041/3513/1631 2039/3514/1631 2037/3515/1631 2034/3516/1631 2031/3517/1631 2032/3518/1632 2150/3519/1633 2151/3520/1634 +f 2140/3498/1634 2139/3497/1633 2147/3521/1595 2144/3522/1634 +f 2135/3306/1595 2137/3305/1594 2136/3304/1594 2139/3497/1633 2098/3496/1632 2094/3523/1635 2095/3524/1635 2092/3525/1635 2127/3526/1635 2125/3527/1635 2122/3528/1635 2120/3529/1635 2118/3530/1635 2132/3531/1635 2131/3532/1635 2134/3533/1635 2130/3534/1635 2133/3535/1635 2119/3536/1635 2121/3537/1635 2123/3538/1645 +f 2139/3497/1633 2136/3304/1594 2146/3303/1594 +f 2141/3307/1596 2135/3306/1595 2123/3538/1645 2124/3539/1644 2126/3540/1644 2128/3541/1644 2129/3542/1644 2093/3543/1644 2096/3544/1644 2099/3545/1644 2102/3546/1643 +f 2138/3308/1597 2141/3307/1596 2102/3546/1643 2101/3547/1647 2104/3548/1647 2106/3549/1647 2109/3488/1643 2140/3498/1634 +f 2140/3498/1634 2144/3522/1634 2148/3309/1597 2138/3308/1597 +f 2144/3522/1634 2147/3521/1595 2071/3550/1648 2072/3551/1649 2074/3552/1649 2076/3553/1649 2078/3554/1649 2080/3555/1649 2082/3556/1649 2085/3557/1649 2088/3558/1643 +f 2143/3509/1634 2142/3508/1633 2153/3559/1633 2152/3560/1634 +f 2148/3309/1597 2144/3522/1634 2088/3558/1643 2087/3561/1647 2090/3562/1647 2091/3563/1647 2048/3499/1643 2143/3509/1634 +f 2143/3509/1634 2152/3560/1634 2149/3310/1597 2148/3309/1597 +f 2146/3303/1594 2145/3302/1594 2142/3508/1633 2083/3507/1632 2081/3564/1650 2079/3565/1650 2077/3566/1650 2075/3567/1650 2073/3568/1650 2070/3569/1650 2069/3570/1650 2116/3571/1650 2114/3572/1650 2111/3573/1650 2112/3574/1650 2113/3575/1650 2115/3576/1650 2117/3577/1650 2068/3578/1650 2071/3550/1648 2147/3521/1595 +f 2147/3521/1595 2139/3497/1633 2146/3303/1594 +f 2142/3508/1633 2145/3302/1594 2155/3301/1594 +f 2152/3560/1634 2153/3559/1633 2061/3579/1645 2060/3580/1644 2063/3581/1644 2065/3582/1644 2067/3583/1644 2027/3584/1644 2030/3585/1644 2033/3586/1644 2036/3587/1643 +f 2151/3520/1634 2150/3519/1633 1797/3373/1633 1801/3372/1634 +f 2155/3301/1594 2154/3300/1594 2150/3519/1633 2032/3518/1632 2029/3588/1635 2028/3589/1635 2066/3590/1635 2064/3591/1635 2062/3592/1635 2059/3593/1635 2057/3594/1635 2055/3595/1635 2053/3596/1635 2051/3597/1635 2050/3598/1635 2052/3599/1635 2054/3600/1635 2056/3601/1635 2058/3602/1635 2061/3579/1645 2153/3559/1633 +f 2153/3559/1633 2142/3508/1633 2155/3301/1594 +f 2150/3519/1633 2154/3300/1594 1798/3299/1593 1797/3373/1633 +f 2149/3310/1597 2152/3560/1634 2036/3587/1643 2035/3603/1647 2038/3604/1647 2040/3605/1647 2043/3510/1643 2151/3520/1634 +f 2151/3520/1634 1801/3372/1634 1799/3311/1597 2149/3310/1597 +f 2157/3432/1634 2162/3431/1633 2168/3606/1633 2169/3607/1634 +f 2156/3413/1597 2158/3400/1596 1988/3608/1643 1987/3609/1647 1990/3610/1647 1992/3611/1647 1995/3422/1643 2157/3432/1634 +f 2157/3432/1634 2169/3607/1634 2166/3417/1597 2156/3413/1597 +f 2159/3399/1595 2161/3401/1594 2160/3412/1594 2162/3431/1633 1982/3430/1645 1983/3612/1635 2024/3613/1635 2022/3614/1635 2020/3615/1635 2018/3616/1635 2015/3617/1635 2013/3618/1635 2011/3619/1635 2009/3620/1635 2007/3621/1635 2006/3622/1635 2008/3623/1635 2010/3624/1635 2012/3625/1635 2014/3626/1635 2017/3627/1645 +f 2162/3431/1633 2164/3411/1594 2168/3606/1633 +f 2158/3400/1596 2159/3399/1595 2017/3627/1645 2016/3628/1644 2019/3629/1644 2021/3630/1644 2023/3631/1644 2025/3632/1644 2026/3633/1644 1985/3634/1644 1988/3608/1643 +f 2168/3606/1633 2164/3411/1594 2163/3410/1594 2165/3442/1633 1968/3441/1632 1966/3635/1635 1964/3636/1635 1962/3637/1635 1960/3638/1635 1957/3639/1635 1958/3640/1635 2004/3641/1635 2002/3642/1635 2000/3643/1635 1998/3644/1635 1997/3645/1635 1999/3646/1635 2001/3647/1635 2003/3648/1635 2005/3649/1635 1956/3650/1632 +f 2165/3442/1633 2163/3410/1594 2172/3409/1594 +f 2164/3411/1594 2162/3431/1633 2160/3412/1594 +f 2167/3443/1634 2165/3442/1633 2176/3651/1633 2170/3652/1634 +f 2166/3417/1597 2169/3607/1634 1973/3653/1643 1972/3654/1647 1975/3655/1647 1977/3656/1647 1980/3433/1643 2167/3443/1634 +f 2167/3443/1634 2170/3652/1634 2174/3418/1597 2166/3417/1597 +f 2169/3607/1634 2168/3606/1633 1956/3650/1632 1955/3657/1631 1959/3658/1631 1961/3659/1631 1963/3660/1631 1965/3661/1631 1967/3662/1631 1970/3663/1631 1973/3653/1643 +f 2172/3409/1594 2171/3408/1594 2173/3453/1633 1953/3452/1632 1951/3664/1635 1949/3665/1635 1947/3666/1635 1945/3667/1635 1943/3668/1635 1940/3669/1635 1938/3670/1635 1936/3671/1635 1934/3672/1635 1931/3673/1635 1932/3674/1635 1933/3675/1635 1935/3676/1635 1937/3677/1635 1939/3678/1635 1942/3679/1632 2176/3651/1633 +f 2176/3651/1633 2165/3442/1633 2172/3409/1594 +f 2173/3453/1633 2171/3408/1594 2183/3407/1594 +f 2174/3418/1597 2170/3652/1634 1910/3680/1643 1909/3681/1647 1912/3682/1647 1914/3683/1647 1916/3444/1643 2175/3454/1634 +f 2175/3454/1634 2179/3684/1634 2178/3419/1597 2174/3418/1597 +f 2170/3652/1634 2176/3651/1633 1942/3679/1632 1941/3685/1631 1944/3686/1631 1946/3687/1631 1948/3688/1631 1950/3689/1631 1952/3690/1631 1954/3691/1631 1910/3680/1643 +f 2175/3454/1634 2173/3453/1633 2180/3692/1595 2184/3693/1644 2179/3684/1634 +f 2177/3465/1634 2181/3464/1633 2191/3694/1633 2186/3695/1596 +f 2183/3407/1594 2182/3406/1594 2181/3464/1633 1893/3463/1632 1890/3696/1635 1888/3697/1635 1886/3698/1635 1884/3699/1635 1883/3700/1635 1928/3701/1635 1926/3702/1635 1924/3703/1635 1922/3704/1635 1919/3705/1635 1920/3706/1635 1921/3707/1635 1923/3708/1635 1925/3709/1635 1927/3710/1635 1930/3711/1645 2180/3692/1595 +f 2180/3692/1595 2173/3453/1633 2183/3407/1594 +f 2181/3464/1633 2189/3405/1594 2191/3694/1633 +f 2179/3684/1634 2184/3693/1644 2180/3692/1595 1930/3711/1645 1929/3712/1644 1882/3713/1644 1885/3714/1644 1887/3715/1644 1889/3716/1644 1891/3717/1644 1894/3718/1644 1897/3719/1643 +f 2178/3419/1597 2179/3684/1634 1897/3719/1643 1896/3720/1647 1899/3721/1647 1901/3722/1647 1904/3455/1643 2177/3465/1634 +f 2177/3465/1634 2186/3695/1596 2190/3420/1597 2178/3419/1597 +f 2187/3476/1634 2185/3475/1633 2196/3723/1633 2192/3724/1634 +f 2190/3420/1597 2186/3695/1596 1881/3725/1643 1811/3726/1647 1814/3727/1647 1816/3728/1647 1818/3466/1643 2187/3476/1634 +f 2187/3476/1634 2192/3724/1634 2193/3421/1597 2190/3420/1597 +f 2191/3694/1633 2189/3405/1594 2188/3404/1594 2185/3475/1633 1879/3474/1632 1876/3729/1635 1874/3730/1635 1872/3731/1635 1870/3732/1635 1868/3733/1635 1865/3734/1635 1863/3735/1635 1861/3736/1635 1858/3737/1635 1859/3738/1635 1906/3739/1635 1857/3740/1635 1860/3741/1635 1862/3742/1635 1864/3743/1635 1867/3744/1645 +f 2185/3475/1633 2188/3404/1594 2198/3403/1594 +f 2189/3405/1594 2181/3464/1633 2182/3406/1594 +f 2186/3695/1596 2191/3694/1633 1867/3744/1645 1866/3745/1644 1869/3746/1644 1871/3747/1644 1873/3748/1644 1875/3749/1644 1877/3750/1644 1880/3751/1644 1881/3725/1643 +f 2195/3487/1634 2194/3486/1633 530/3242/1568 529/3243/1569 +f 2198/3403/1594 2197/3402/1594 2194/3486/1633 1843/3485/1632 1841/3752/1635 1839/3753/1635 1837/3754/1635 1835/3755/1635 1833/3756/1635 1830/3757/1635 1828/3758/1635 1826/3759/1635 1824/3760/1635 1822/3761/1635 1821/3762/1635 1823/3763/1635 1825/3764/1635 1827/3765/1635 1829/3766/1635 1832/3767/1632 2196/3723/1633 +f 2196/3723/1633 2185/3475/1633 2198/3403/1594 +f 2194/3486/1633 2197/3402/1594 531/3241/1567 530/3242/1568 +f 2192/3724/1634 2196/3723/1633 1832/3767/1632 1831/3768/1631 1834/3769/1631 1836/3770/1631 1838/3771/1631 1840/3772/1631 1842/3773/1631 1845/3774/1631 1848/3775/1643 +f 2193/3421/1597 2192/3724/1634 1848/3775/1643 1847/3776/1647 1850/3777/1647 1852/3778/1647 1854/3477/1643 2195/3487/1634 +f 2195/3487/1634 529/3243/1569 528/3244/1570 2193/3421/1597 +f 2212/3779/1651 2208/3780/1652 2209/3781/1652 2205/3782/1652 2206/3783/1653 3162/3784/1585 3175/3785/1652 3156/3786/1587 +f 2206/3783/1653 2207/3787/1584 2204/3788/1584 2203/3789/1584 2202/3790/1654 3161/3791/1582 3177/3792/1584 3162/3784/1585 +f 2217/3793/1655 2218/3794/1656 2213/3795/1656 2210/3796/1656 2211/3797/1656 2212/3779/1651 3156/3786/1587 3174/3798/1656 3164/3295/1589 +f 2246/3799/1653 2247/3800/1657 2244/3801/1657 2243/3802/1657 2242/3803/1654 3141/3260/1582 3154/3804/1584 3139/3805/1585 +f 2258/3806/1658 2253/3807/1588 2250/3808/1588 2251/3809/1588 2252/3810/1651 3137/3811/1587 3153/3812/1656 3136/3289/1589 +f 2252/3810/1651 2248/3813/1652 2249/3814/1652 2245/3815/1652 2246/3799/1653 3139/3805/1585 3155/3816/1652 3137/3811/1587 +f 3103/3817/1659 39/3818/1660 38/3819/1661 3104/3820/1662 +f 3055/3821/1663 62/3822/1664 58/3823/1665 59/3824/1666 3054/3825/1667 +f 3107/3826/1668 13/3827/1669 14/3828/1670 3108/3829/1671 +f 3101/3830/1672 63/3831/1673 41/3832/1674 3102/3833/1675 +f 3054/3825/1667 59/3824/1666 54/3834/1676 3053/3835/1677 +f 3048/3836/1678 56/3837/1679 57/3838/1680 3047/3839/1681 +f 3072/3840/1682 40/3841/1683 35/1483/123 3075/1482/122 +f 3056/3842/1684 2/3843/1685 62/3822/1664 3055/3821/1663 +f 3099/3844/1686 3/3845/1687 64/3846/1688 3100/3847/1689 +f 3078/3848/1690 30/3849/1691 29/1624/218 3076/1623/217 +f 3109/1444/114 9/1443/113 10/3850/1692 12/3851/1693 3111/3852/1694 +f 3111/3852/1694 12/3851/1693 13/3827/1669 3107/3826/1668 +f 3083/3853/1695 37/3854/1696 34/3855/1697 3082/3856/1698 +f 3082/3856/1698 34/3855/1697 33/3857/1699 3080/3858/1700 +f 3095/3859/1701 15/3860/1702 16/3861/1703 3096/3862/1704 +f 3052/3863/1705 55/3864/1706 52/3865/1707 3051/3866/1708 +f 3102/3833/1675 41/3832/1674 39/3818/1660 3103/3817/1659 +f 3047/3839/1681 57/3838/1680 37/3854/1696 3083/3853/1695 +f 3097/3867/1709 5/3868/1710 3/3869/1687 3099/3870/1686 3098/3871/1711 +f 3058/3872/1712 3057/3873/1657 3056/3874/1657 3055/3875/1657 3054/3876/1657 3053/3877/1657 3052/3878/1657 3051/3879/1657 3050/3880/1713 3117/3266/1582 3124/3881/1657 3118/3882/1585 +f 3104/3820/1662 38/3819/1661 40/3841/1683 3072/3840/1682 +f 3096/3862/1704 16/3861/1703 5/3868/1710 3097/3867/1709 +f 3051/3866/1708 52/3865/1707 53/3883/1714 3049/3884/1715 3050/3885/1716 +f 3100/3847/1689 64/3846/1688 63/3831/1673 3101/3830/1672 +f 3108/3829/1671 14/3828/1670 15/3860/1702 3095/3859/1701 +f 3053/3835/1677 54/3834/1676 55/3864/1706 3052/3863/1705 +f 3060/3886/1717 3058/3872/1712 3118/3882/1585 3116/3887/1587 +f 3080/3858/1700 33/3857/1699 30/3849/1691 3078/3848/1690 +f 3049/3888/1715 53/3889/1714 56/3837/1679 3048/3836/1678 +f 3068/3890/1718 3066/3891/1588 3065/3892/1588 3064/3893/1588 3063/3894/1588 3062/3895/1588 3061/3896/1588 3059/3897/1588 3060/3886/1717 3116/3887/1587 3119/3283/1589 +f 3057/1620/216 8/1619/215 2/3843/1685 3056/3842/1684 +f 3120/3274/1587 3123/3273/1586 3122/3272/1585 3114/3898/1719 3110/3899/1720 +f 3118/3882/1585 3124/3881/1657 3117/3266/1582 3142/3265/1582 3144/3900/1584 3143/3901/1585 +f 3121/3276/1589 3125/3275/1588 3120/3274/1587 3110/3899/1720 3109/3902/1588 3111/3903/1588 3107/3904/1588 3108/3905/1588 3095/3906/1588 3096/3907/1588 3097/3908/1588 3098/3909/1721 +f 3115/3270/1582 3126/3269/1583 3127/3268/1583 3128/3267/1583 3117/3266/1582 3050/3880/1713 3049/3910/1583 3048/3911/1583 3047/3912/1583 3083/3913/1583 3082/3914/1583 3080/3915/1583 3078/3916/1583 3076/3917/1583 3074/3918/1583 3073/3919/1583 3085/3920/1583 3086/3921/1583 3087/3922/1583 3088/3923/1583 3089/3924/1583 3090/3925/1583 3092/3926/1722 +f 3119/3283/1589 3116/3887/1587 3138/3927/1587 3140/3284/1589 +f 3116/3887/1587 3118/3882/1585 3143/3901/1585 3138/3927/1587 +f 3122/3272/1585 3129/3271/1584 3115/3270/1582 3092/3926/1722 3091/3928/1584 3093/3929/1584 3094/3930/1584 3106/3931/1584 3105/3932/1584 3112/3933/1584 3113/3934/1584 3114/3898/1719 +f 3119/3283/1589 3130/3282/1590 3131/3281/1590 3132/3280/1590 3133/3279/1590 3134/3278/1590 3135/3277/1590 3121/3276/1589 3098/3909/1721 3099/3935/1590 3100/3936/1590 3101/3937/1590 3102/3938/1590 3103/3939/1590 3104/3940/1590 3072/3941/1590 3075/3942/1590 3077/3943/1590 3079/3944/1590 3081/3945/1590 3084/3946/1590 3071/3947/1590 3070/3948/1590 3069/3949/1590 3067/3950/1590 3068/3890/1718 +f 3138/3927/1587 3143/3901/1585 2277/3951/1723 2273/3952/1586 2278/3953/1586 2274/3954/1586 2275/3955/1724 +f 3143/3901/1585 3144/3900/1584 3142/3265/1582 2265/3956/1725 2259/3957/1584 2260/3958/1584 2270/3959/1584 2272/3960/1584 2277/3951/1723 +f 3142/3265/1582 3148/3264/1583 3147/3263/1583 3146/3262/1583 3145/3261/1583 3141/3260/1582 2242/3803/1654 2241/3961/1583 2240/3962/1583 2239/3963/1583 2269/3964/1583 2268/3965/1583 2264/3966/1583 2265/3956/1725 +f 3140/3284/1589 3138/3927/1587 2275/3955/1724 2276/3967/1588 2271/3968/1588 2261/3969/1588 2263/3970/1726 +f 3136/3289/1589 3152/3288/1590 3151/3287/1590 3150/3286/1590 3149/3285/1590 3140/3284/1589 2263/3970/1726 2262/3971/1590 2266/3972/1590 2267/3973/1590 2254/3974/1590 2255/3975/1590 2256/3976/1590 2257/3977/1590 2258/3806/1658 +f 3136/3289/1589 3153/3812/1656 3137/3811/1587 3165/3978/1587 3169/3979/1656 3159/3290/1589 +f 3139/3805/1585 3154/3804/1584 3141/3260/1582 3163/3259/1582 3176/3980/1584 3160/3981/1585 +f 3137/3811/1587 3155/3816/1652 3139/3805/1585 3160/3981/1585 3178/3982/1652 3165/3978/1587 +f 3163/3259/1582 3166/3258/1581 3158/3257/1580 3157/3256/1580 3168/3983/1581 3167/3984/1581 3161/3791/1582 2202/3790/1654 2201/3985/1581 2200/3986/1581 2199/3987/1581 2229/3988/1581 2228/3989/1581 2225/3990/1581 2220/3991/1581 2219/3992/1727 +f 3161/3791/1582 3167/3984/1581 3168/3983/1581 3157/3256/1580 1000/2818/1155 999/2816/1153 +f 3159/3290/1589 3169/3979/1656 3165/3978/1587 2236/3993/1724 2235/3994/1588 2231/3995/1588 2222/3996/1588 2224/3997/1728 +f 3164/3295/1589 3173/3294/1590 3172/3293/1590 3171/3292/1590 3170/3291/1590 3159/3290/1589 2224/3997/1728 2223/3998/1590 2226/3999/1590 2227/4000/1590 2214/4001/1590 2215/4002/1590 2216/4003/1590 2217/3793/1655 +f 3164/3295/1589 3174/3798/1656 3156/3786/1587 997/2812/1149 996/2810/1147 +f 3156/3786/1587 3175/3785/1652 3162/3784/1585 998/2814/1151 997/2812/1149 +f 3160/3981/1585 3176/3980/1584 3163/3259/1582 2219/3992/1727 2221/4004/1584 2230/4005/1584 2232/4006/1584 2237/4007/1723 +f 3162/3784/1585 3177/3792/1584 3161/3791/1582 999/2816/1153 998/2814/1151 +f 3165/3978/1587 3178/3982/1652 3160/3981/1585 2237/4007/1723 2233/4008/1652 2238/4009/1652 2234/4010/1652 2236/3993/1724 +f 3189/3254/1579 3180/3253/1578 1345/4011/1729 1341/4012/1730 1339/4013/1730 1337/4014/1730 1333/4015/1730 1334/4016/1730 1357/4017/1730 1359/4018/1730 1363/3350/1628 3186/3354/1578 3188/3255/1579 +f 3188/3255/1579 3186/3354/1578 756/3026/1363 755/3024/1361 +f 3187/3251/1576 3179/3250/1575 1343/4019/1731 1342/4020/1624 1346/4021/1624 1349/4022/1624 1354/4023/1732 +f 3190/3349/1577 3181/3344/1576 758/3030/1367 757/3028/1365 +f 3186/3354/1578 3190/3349/1577 757/3028/1365 756/3026/1363 +f 3184/3252/1577 3187/3251/1576 1354/4023/1732 1353/4024/1627 1352/4025/1627 1348/4026/1627 1350/4027/1733 +f 3180/3253/1578 3184/3252/1577 1350/4027/1733 1351/4028/1629 1347/4029/1629 1344/4030/1629 1345/4011/1729 +f 3179/3250/1575 3183/3249/1574 3182/3248/1574 3185/3343/1575 1360/3342/1625 1358/4031/1734 1356/4032/1734 1355/4033/1734 1335/4034/1734 1336/4035/1734 1338/4036/1734 1340/4037/1734 1343/4019/1731 +f 3185/3343/1575 3182/3248/1574 760/3034/1371 759/3032/1369 +f 3181/3344/1576 3185/3343/1575 759/3032/1369 758/3030/1367 +usemtl edge_of_screen +f 1306/4038/1735 1033/4039/1736 1034/4040/1737 1325/4041/1738 +f 1332/4042/1739 1041/4043/1740 1042/4044/1741 1305/4045/1742 +f 1331/4046/1743 1040/4047/1744 1041/4043/1740 1332/4042/1739 +f 1330/4048/1745 1039/4049/1746 1040/4047/1744 1331/4046/1743 +f 1329/4050/1747 1038/4051/1748 1039/4049/1746 1330/4048/1745 +f 1328/4052/1749 1037/4053/1750 1038/4051/1748 1329/4050/1747 +f 1327/4054/1751 1036/4055/1752 1037/4053/1750 1328/4052/1749 +f 1326/4056/1753 1035/4057/1754 1036/4055/1752 1327/4054/1751 +f 1325/4041/1738 1034/4040/1737 1035/4057/1754 1326/4056/1753 +f 1324/4058/1755 1031/4059/1756 1032/4060/1757 1304/4061/1758 +f 1323/4062/1759 1030/4063/1760 1031/4059/1756 1324/4058/1755 +f 1322/4064/1761 1029/4065/1762 1030/4063/1760 1323/4062/1759 +f 1321/4066/1763 1028/4067/1764 1029/4065/1762 1322/4064/1761 +f 1320/4068/1765 1027/4069/1766 1028/4067/1764 1321/4066/1763 +f 1319/4070/1767 1026/4071/1768 1027/4069/1766 1320/4068/1765 +f 1318/4072/1769 1025/4073/1770 1026/4071/1768 1319/4070/1767 +f 1317/4074/1771 1024/4075/1772 1025/4073/1770 1318/4072/1769 +f 1315/4076/1773 1021/4077/1774 1022/4078/1775 1303/4079/1776 +f 1314/4080/1777 1020/4081/1778 1021/4077/1774 1315/4076/1773 +f 1313/4082/1779 1019/4083/1780 1020/4081/1778 1314/4080/1777 +f 1312/4084/1781 1018/4085/1782 1019/4083/1780 1313/4082/1779 +f 1311/4086/1783 1017/4087/1784 1018/4085/1782 1312/4084/1781 +f 1310/4088/1785 1016/4089/1786 1017/4087/1784 1311/4086/1783 +f 1309/4090/1787 1015/4091/1788 1016/4089/1786 1310/4088/1785 +f 1308/4092/1789 1014/4093/1790 1015/4091/1788 1309/4090/1787 +f 1307/4094/1791 1013/4095/1792 1014/4093/1790 1308/4092/1789 +f 1316/4096/1793 1023/4097/1794 1024/4075/1772 1317/4074/1771 +f 1163/4098/1795 1164/4099/1796 1004/4100/1796 1003/4101/1796 +f 1165/4102/1795 1163/4098/1795 1003/4101/1796 1005/4103/1795 +f 1166/4104/1795 1165/4102/1795 1005/4103/1795 1006/4105/1795 +f 1167/4106/1797 1166/4104/1795 1006/4105/1795 1007/4107/1797 +f 1168/4108/1797 1167/4106/1797 1007/4107/1797 1008/4109/1797 +f 1169/4110/1797 1168/4108/1797 1008/4109/1797 1009/4111/1797 +f 1170/4112/1798 1169/4110/1797 1009/4111/1797 1010/4113/1798 +f 1171/4114/1798 1170/4112/1798 1010/4113/1798 1011/4115/1798 +f 1172/4116/1799 1171/4114/1798 1011/4115/1798 1012/4117/1799 +f 1173/4118/1796 1174/4119/1796 1014/4093/1796 1013/4120/1796 +f 1174/4119/1796 1175/4121/1800 1015/4091/1800 1014/4093/1796 +f 1175/4121/1800 1176/4122/1800 1016/4089/1800 1015/4091/1800 +f 1176/4122/1800 1177/4123/1800 1017/4087/1800 1016/4089/1800 +f 1177/4123/1800 1178/4124/1801 1018/4085/1801 1017/4087/1800 +f 1178/4124/1801 1179/4125/1801 1019/4083/1801 1018/4085/1801 +f 1179/4125/1801 1180/4126/1802 1020/4081/1802 1019/4083/1801 +f 1180/4126/1802 1181/4127/1802 1021/4077/1802 1020/4081/1802 +f 1181/4127/1802 1182/4128/1803 1022/4129/1803 1021/4077/1802 +f 1183/4130/1799 1184/4131/1798 1024/4075/1798 1023/4097/1799 +f 1184/4131/1798 1185/4132/1798 1025/4073/1798 1024/4075/1798 +f 1185/4132/1798 1186/4133/1797 1026/4071/1797 1025/4073/1798 +f 1186/4133/1797 1187/4134/1797 1027/4069/1797 1026/4071/1797 +f 1187/4134/1797 1188/4135/1797 1028/4067/1797 1027/4069/1797 +f 1188/4135/1797 1189/4136/1804 1029/4065/1804 1028/4067/1797 +f 1189/4136/1804 1190/4137/1795 1030/4063/1795 1029/4065/1804 +f 1190/4137/1795 1191/4138/1795 1031/4059/1796 1030/4063/1795 +f 1191/4138/1795 1192/4139/1796 1032/4140/1796 1031/4059/1796 +f 1193/4141/1796 1194/4142/1805 1034/4040/1805 1033/4143/1796 +f 1194/4142/1805 1195/4144/1806 1035/4057/1806 1034/4040/1805 +f 1195/4144/1806 1196/4145/1800 1036/4055/1806 1035/4057/1806 +f 1196/4145/1800 1197/4146/1800 1037/4053/1800 1036/4055/1806 +f 1197/4146/1800 1198/4147/1801 1038/4051/1801 1037/4053/1800 +f 1198/4147/1801 1199/4148/1801 1039/4049/1801 1038/4051/1801 +f 1199/4148/1801 1200/4149/1802 1040/4047/1802 1039/4049/1801 +f 1200/4149/1802 1201/4150/1802 1041/4043/1802 1040/4047/1802 +f 1201/4150/1802 1202/4151/1803 1042/4044/1803 1041/4043/1802 +f 1182/4128/1803 1172/4116/1799 1012/4117/1799 1022/4129/1803 +f 1192/4139/1796 1173/4118/1796 1013/4120/1796 1032/4140/1796 +f 1202/4151/1803 1183/4130/1799 1023/4097/1799 1042/4044/1803 +f 1164/4099/1796 1193/4141/1796 1033/4143/1796 1004/4100/1796 +f 1046/4152/1807 1045/4153/1808 1207/4154/1809 1208/4155/1810 +f 1293/4156/1811 1124/2754/1093 1125/2739/1078 1294/4157/1812 +f 1316/4096/1793 1145/2781/1118 1146/2784/1121 1305/4045/1742 +f 1302/4158/1813 1133/2770/1107 1134/2772/1109 1303/4079/1776 +f 1301/4159/1814 1132/2768/1105 1133/2770/1107 1302/4158/1813 +f 1300/4160/1815 1131/2766/1103 1132/2768/1105 1301/4159/1814 +f 1299/4161/1816 1130/2764/1101 1131/2766/1103 1300/4160/1815 +f 1298/4162/1817 1129/2761/1099 1130/2764/1101 1299/4161/1816 +f 1297/4163/1818 1128/2758/1097 1129/2760/1099 1298/4164/1817 +f 1296/4165/1819 1127/2756/1095 1128/2758/1097 1297/4163/1818 +f 1295/4166/1820 1126/2742/1081 1127/2756/1095 1296/4165/1819 +f 1306/4038/1735 1123/2751/1090 1124/2754/1093 1293/4156/1811 +f 1307/4094/1791 1135/2745/1084 1136/2748/1087 1304/4061/1758 +f 1294/4157/1812 1125/2739/1078 1126/2742/1081 1295/4166/1820 +f 1044/4167/131 1043/4168/131 1163/4169/131 1164/4170/131 +f 1043/4168/131 1045/4153/131 1165/4171/131 1163/4169/131 +f 1045/4153/131 1046/4152/131 1166/4172/131 1165/4171/131 +f 1046/4152/131 1047/4173/1821 1167/4174/1821 1166/4172/131 +f 1047/4173/1821 1048/4175/131 1168/4176/131 1167/4174/1821 +f 1048/4175/131 1049/4177/131 1169/4178/131 1168/4176/131 +f 1049/4177/131 1050/4179/131 1170/4180/131 1169/4178/131 +f 1050/4179/131 1051/4181/1821 1171/4182/1821 1170/4180/131 +f 1051/4181/1821 1052/4183/1821 1172/4184/1821 1171/4182/1821 +f 1054/4185/131 1053/4186/1821 1173/4187/1821 1174/4188/131 +f 1055/4189/1821 1054/4185/131 1174/4188/131 1175/4190/1821 +f 1056/4191/1821 1055/4189/1821 1175/4190/1821 1176/4192/1821 +f 1057/4193/131 1056/4191/1821 1176/4192/1821 1177/4194/131 +f 1058/4195/131 1057/4193/131 1177/4194/131 1178/4196/131 +f 1059/4197/1821 1058/4195/131 1178/4196/131 1179/4198/1821 +f 1060/4199/131 1059/4197/1821 1179/4198/1821 1180/4200/131 +f 1061/4201/1821 1060/4199/131 1180/4200/131 1181/4202/1821 +f 1062/4203/1821 1061/4201/1821 1181/4202/1821 1182/4204/1821 +f 1064/4205/131 1063/4206/131 1183/4207/131 1184/4208/131 +f 1065/4209/1821 1064/4205/131 1184/4208/131 1185/4210/1821 +f 1066/4211/1821 1065/4209/1821 1185/4210/1821 1186/4212/1821 +f 1067/4213/1821 1066/4211/1821 1186/4212/1821 1187/4214/1821 +f 1068/4215/1821 1067/4213/1821 1187/4214/1821 1188/4216/1821 +f 1069/4217/1821 1068/4215/1821 1188/4216/1821 1189/4218/1821 +f 1070/4219/1821 1069/4217/1821 1189/4218/1821 1190/4220/1821 +f 1071/4221/1821 1070/4219/1821 1190/4220/1821 1191/4222/1821 +f 1072/4223/1821 1071/4221/1821 1191/4222/1821 1192/4224/1821 +f 1074/4225/131 1073/4226/131 1193/4227/131 1194/4228/131 +f 1075/4229/131 1074/4225/131 1194/4228/131 1195/4230/131 +f 1076/4231/131 1075/4229/131 1195/4230/131 1196/4232/131 +f 1077/4233/131 1076/4231/131 1196/4232/131 1197/4234/131 +f 1078/4235/131 1077/4233/131 1197/4234/131 1198/4236/131 +f 1079/4237/131 1078/4235/131 1198/4236/131 1199/4238/131 +f 1080/4239/1821 1079/4237/131 1199/4238/131 1200/4240/1821 +f 1081/4241/131 1080/4239/1821 1200/4240/1821 1201/4242/131 +f 1082/4243/131 1081/4241/131 1201/4242/131 1202/4244/131 +f 1052/4183/1821 1062/4203/1821 1182/4204/1821 1172/4184/1821 +f 1053/4186/1821 1203/4245/1821 1204/4246/1821 1072/4223/1821 1192/4224/1821 1173/4187/1821 +f 1063/4206/131 1082/4243/131 1202/4244/131 1183/4207/131 +f 1073/4226/131 1044/4167/131 1164/4170/131 1193/4227/131 +f 1059/4197/1822 1060/4199/1823 1222/4247/1824 1221/4248/1825 +f 1075/4229/1826 1076/4231/1827 1238/4249/1828 1237/4250/1829 +f 1060/4199/1823 1061/4201/1830 1223/4251/1831 1222/4247/1824 +f 1047/4173/1832 1046/4152/1807 1208/4155/1810 1209/4252/1833 +f 1076/4231/1827 1077/4233/1834 1239/4253/1835 1238/4249/1828 +f 1061/4201/1830 1062/4203/1836 1224/4254/1837 1223/4251/1831 +f 1048/4175/1838 1047/4173/1832 1209/4252/1833 1210/4255/1839 +f 1077/4233/1834 1078/4235/1840 1240/4256/1841 1239/4253/1835 +f 1063/4206/1842 1064/4205/1843 1226/4257/1844 1225/4258/1845 +f 1049/4177/1846 1048/4175/1838 1210/4255/1839 1211/4259/1847 +f 1078/4235/1840 1079/4237/1848 1241/4260/1849 1240/4256/1841 +f 1064/4205/1843 1065/4209/1850 1227/4261/1851 1226/4257/1844 +f 1050/4179/1852 1049/4177/1846 1211/4259/1847 1212/4262/1853 +f 1079/4237/1848 1080/4239/1854 1242/4263/1855 1241/4260/1849 +f 1065/4209/1850 1066/4211/1856 1228/4264/1857 1227/4261/1851 +f 1051/4181/1858 1050/4179/1852 1212/4262/1853 1213/4265/1859 +f 1080/4239/1854 1081/4241/1860 1243/4266/1861 1242/4263/1855 +f 1066/4211/1856 1067/4213/1862 1229/4267/1863 1228/4264/1857 +f 1052/4183/1864 1051/4181/1858 1213/4265/1859 1214/4268/1865 +f 1081/4241/1860 1082/4243/1866 1244/4269/1867 1243/4266/1861 +f 1067/4213/1862 1068/4215/1868 1230/4270/1869 1229/4267/1863 +f 1053/4186/1870 1054/4185/1871 1216/4271/1872 1215/4272/1870 +f 1062/4203/1836 1052/4183/1864 1214/4268/1865 1224/4254/1837 +f 1068/4215/1868 1069/4217/1873 1231/4273/1874 1230/4270/1869 +f 1054/4185/1871 1055/4189/1875 1217/4274/1876 1216/4271/1872 +f 1072/4223/1877 1204/4246/1878 1246/4275/1878 1234/4276/1877 +f 1069/4217/1873 1070/4219/1879 1232/4277/1880 1231/4273/1874 +f 1055/4189/1875 1056/4191/1881 1218/4278/1882 1217/4274/1876 +f 1082/4243/1866 1063/4206/1842 1225/4258/1845 1244/4269/1867 +f 1070/4219/1879 1071/4221/1883 1233/4279/1884 1232/4277/1880 +f 1056/4191/1881 1057/4193/1885 1219/4280/1886 1218/4278/1882 +f 1044/4167/1887 1073/4226/1888 1235/4281/1888 1206/4282/1887 +f 1071/4221/1883 1072/4223/1877 1234/4276/1877 1233/4279/1884 +f 1203/4245/1878 1053/4186/1870 1215/4272/1870 1245/4283/1878 +f 1057/4193/1885 1058/4195/1889 1220/4284/1890 1219/4280/1886 +f 1043/4168/1891 1044/4167/1887 1206/4282/1887 1205/4285/1892 +f 1073/4226/1888 1074/4225/1893 1236/4286/1894 1235/4281/1888 +f 1204/4246/1878 1203/4245/1878 1245/4283/1878 1246/4275/1878 +f 1058/4195/1889 1059/4197/1822 1221/4248/1825 1220/4284/1890 +f 1045/4153/1808 1043/4168/1891 1205/4285/1892 1207/4154/1809 +f 1074/4225/1893 1075/4229/1826 1237/4250/1829 1236/4286/1894 +f 1269/4287/1895 1292/4288/1895 1291/4289/1895 1290/4290/1895 1289/4291/1895 1288/4292/1895 1287/4293/1895 1286/4294/1895 1285/4295/1895 1284/4296/1895 1283/4297/1895 1282/4298/1895 1281/4299/1895 1280/4300/1895 1279/4301/1895 1278/4302/1895 1277/4303/1895 1276/4304/1895 1275/4305/1895 1274/4306/1895 1273/4307/1895 1272/4308/1895 1271/4309/1895 1270/4310/1895 +f 1246/4275/1896 1245/4283/1896 1269/4287/1896 1270/4310/1896 +f 1003/4311/1897 1294/4157/1812 1295/4166/1820 1005/4312/1898 +f 1013/4095/1792 1307/4094/1791 1304/4061/1758 1032/4060/1757 +f 1033/4039/1736 1306/4038/1735 1293/4156/1811 1004/4313/1899 +f 1005/4312/1898 1295/4166/1820 1296/4165/1819 1006/4314/1900 +f 1006/4314/1900 1296/4165/1819 1297/4163/1818 1007/4315/1901 +f 1007/4315/1901 1297/4163/1818 1298/4164/1817 1008/4316/1902 +f 1008/4317/1902 1298/4162/1817 1299/4161/1816 1009/4318/1903 +f 1009/4318/1903 1299/4161/1816 1300/4160/1815 1010/4319/1904 +f 1010/4319/1904 1300/4160/1815 1301/4159/1814 1011/4320/1905 +f 1011/4320/1905 1301/4159/1814 1302/4158/1813 1012/4321/1906 +f 1012/4321/1906 1302/4158/1813 1303/4079/1776 1022/4078/1775 +f 1023/4097/1794 1316/4096/1793 1305/4045/1742 1042/4044/1741 +f 1004/4313/1899 1293/4156/1811 1294/4157/1812 1003/4311/1897 +f 1145/2781/1118 1316/4096/1793 1317/4074/1771 1147/3314/1599 +f 1135/2745/1084 1307/4094/1791 1308/4092/1789 1137/3315/1600 +f 1137/3315/1600 1308/4092/1789 1309/4090/1787 1138/3316/1601 +f 1138/3316/1601 1309/4090/1787 1310/4088/1785 1139/3317/1602 +f 1139/3317/1602 1310/4088/1785 1311/4086/1783 1140/3318/1603 +f 1140/3318/1603 1311/4086/1783 1312/4084/1781 1141/3319/1604 +f 1141/3319/1604 1312/4084/1781 1313/4082/1779 1142/3320/1605 +f 1142/3320/1605 1313/4082/1779 1314/4080/1777 1143/3321/1606 +f 1143/3321/1606 1314/4080/1777 1315/4076/1773 1144/3322/1607 +f 1144/3322/1607 1315/4076/1773 1303/4079/1776 1134/2772/1109 +f 1147/3314/1599 1317/4074/1771 1318/4072/1769 1148/3323/1608 +f 1148/3323/1608 1318/4072/1769 1319/4070/1767 1149/3324/1609 +f 1149/3324/1609 1319/4070/1767 1320/4068/1765 1150/3325/1610 +f 1150/3325/1610 1320/4068/1765 1321/4066/1763 1151/3326/1611 +f 1151/3326/1611 1321/4066/1763 1322/4064/1761 1152/3327/1612 +f 1152/3327/1612 1322/4064/1761 1323/4062/1759 1153/3328/1613 +f 1153/3328/1613 1323/4062/1759 1324/4058/1755 1154/3329/1614 +f 1154/3329/1614 1324/4058/1755 1304/4061/1758 1136/2748/1087 +f 1155/3330/1615 1325/4041/1738 1326/4056/1753 1156/3331/1616 +f 1156/3331/1616 1326/4056/1753 1327/4054/1751 1157/3332/1617 +f 1157/3332/1617 1327/4054/1751 1328/4052/1749 1158/3333/1618 +f 1158/3333/1618 1328/4052/1749 1329/4050/1747 1159/3334/1619 +f 1159/3334/1619 1329/4050/1747 1330/4048/1745 1160/3335/1620 +f 1160/3335/1620 1330/4048/1745 1331/4046/1743 1161/3336/1621 +f 1161/3336/1621 1331/4046/1743 1332/4042/1739 1162/3337/1622 +f 1162/3337/1622 1332/4042/1739 1305/4045/1742 1146/2784/1121 +f 1123/2751/1090 1306/4038/1735 1325/4041/1738 1155/3330/1615 +usemtl screen +f 1207/4322/131 1205/4323/131 1206/4324/131 1235/4325/131 1236/4326/131 1237/4327/131 1238/4328/131 1239/4329/131 1240/4330/131 1241/4331/131 1242/4332/131 1243/4333/131 1244/4334/131 1225/4335/131 1226/4336/131 1227/4337/131 1228/4338/131 1229/4339/131 1230/4340/131 1231/4341/131 1232/4342/131 1233/4343/131 1234/4344/131 1246/4345/131 1247/4346/131 1248/4347/131 1249/4348/131 1250/4349/131 1251/4350/131 1252/4351/131 1253/4352/131 1254/4353/131 1255/4354/131 1256/4355/131 1257/4356/131 1258/4357/131 1259/4358/131 1260/4359/131 1261/4360/131 1262/4361/131 1263/4362/131 1264/4363/131 1265/4364/131 1266/4365/131 1267/4366/131 1268/4367/131 1245/4368/131 1215/4369/131 1216/4370/131 1217/4371/131 1218/4372/131 1219/4373/131 1220/4374/131 1221/4375/131 1222/4376/131 1223/4377/131 1224/4378/131 1214/4379/131 1213/4380/131 1212/4381/131 1211/4382/131 1210/4383/131 1209/4384/131 1208/4385/131 +f 1255/4386/1907 1254/4387/1908 1278/4302/1909 1279/4301/1910 +f 1248/4388/1911 1247/4389/1912 1271/4309/1913 1272/4308/1914 +f 1263/4390/1915 1262/4391/1916 1286/4294/1917 1287/4293/1918 +f 1256/4392/1919 1255/4386/1907 1279/4301/1910 1280/4300/1920 +f 1249/4393/1921 1248/4388/1911 1272/4308/1914 1273/4307/1922 +f 1264/4394/1923 1263/4390/1915 1287/4293/1918 1288/4292/1924 +f 1257/4395/1925 1256/4392/1919 1280/4300/1920 1281/4299/1926 +f 1250/4396/1927 1249/4393/1921 1273/4307/1922 1274/4306/1928 +f 1265/4397/1929 1264/4394/1923 1288/4292/1924 1289/4291/1929 +f 1258/4398/1930 1257/4395/1925 1281/4299/1926 1282/4298/1931 +f 1251/4399/1932 1250/4396/1927 1274/4306/1928 1275/4305/1933 +f 1266/4400/1934 1265/4397/1935 1289/4291/1935 1290/4290/1936 +f 1259/4401/1937 1258/4398/1930 1282/4298/1931 1283/4297/1938 +f 1252/4402/1939 1251/4399/1932 1275/4305/1933 1276/4304/1940 +f 1267/4403/1941 1266/4400/1934 1290/4290/1936 1291/4289/1942 +f 1260/4404/1943 1259/4401/1937 1283/4297/1938 1284/4296/1944 +f 1253/4405/1945 1252/4402/1939 1276/4304/1940 1277/4303/1946 +f 1268/4406/1947 1267/4403/1941 1291/4289/1942 1292/4288/1948 +f 1261/4407/1949 1260/4404/1943 1284/4296/1944 1285/4295/1950 +f 1254/4387/1908 1253/4405/1945 1277/4303/1946 1278/4302/1909 +f 1245/4283/1951 1268/4406/1947 1292/4288/1948 1269/4287/1951 +f 1247/4389/1912 1246/4275/1952 1270/4310/1952 1271/4309/1913 +f 1262/4391/1916 1261/4407/1949 1285/4295/1950 1286/4294/1917 +o Cube.001_Cube +v 3.104426 2.197546 6.557122 +v 3.104426 2.184348 6.557073 +v 3.058684 2.250175 -6.632474 +v 3.058684 2.236976 -6.632524 +v -3.092911 2.197551 6.557122 +v -3.092911 2.184352 6.557073 +v -3.047169 2.250180 -6.632474 +v -3.047169 2.236981 -6.632524 +v 3.241182 2.200704 6.026027 +v 3.241182 2.187505 6.025977 +v -3.229666 2.200709 6.026027 +v -3.229666 2.187510 6.025977 +v -2.681870 2.250180 -6.847705 +v -2.681870 2.236981 -6.847755 +v -2.681870 2.197551 6.847755 +v -2.681870 2.184352 6.847705 +v -2.681870 2.187510 6.025977 +v -2.681870 2.200708 6.026027 +v 2.659148 2.250175 -6.847705 +v 2.659148 2.184348 6.847705 +v 2.659148 2.200704 6.026027 +v 2.659148 2.236977 -6.847755 +v 2.659148 2.197546 6.847755 +v 2.659148 2.187505 6.025977 +v 3.241182 2.234016 -6.077385 +v -3.229666 2.247220 -6.077336 +v 3.241182 2.247215 -6.077336 +v -3.229666 2.234021 -6.077385 +v -2.681870 2.247219 -6.077336 +v -2.681870 2.234021 -6.077385 +v 2.659148 2.247215 -6.077336 +v 2.659148 2.234016 -6.077385 +vt 0.375000 0.235938 +vt 0.625000 0.235938 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375172 0.478960 +vt 0.624828 0.478960 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.735000 +vt 0.625000 0.735000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375159 0.977617 +vt 0.623733 0.977283 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.353836 0.735000 +vt 0.353836 0.750000 +vt 0.852513 0.735000 +vt 0.875000 0.735000 +vt 0.875000 0.750000 +vt 0.852513 0.750000 +vt 0.852513 0.514063 +vt 0.875000 0.514063 +vt 0.353836 0.514063 +vt 0.375000 0.514063 +vt 0.625000 0.514063 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.015000 +vt 0.375000 0.015000 +vt 0.147487 0.514063 +vt 0.147487 0.735000 +vt 0.646164 0.514063 +vt 0.646164 0.735000 +vt 0.646164 0.750000 +vt 0.147487 0.750000 +vt 0.625000 0.771164 +vt 0.375172 0.771040 +vt 0.375017 0.272499 +vt 0.624817 0.272366 +vt 0.125000 0.735000 +vt 0.125000 0.750000 +vt 0.125000 0.514063 +vt 0.646164 0.500000 +vt 0.852513 0.500000 +vt 0.125000 0.500000 +vt 0.147487 0.500000 +vt 0.353836 0.500000 +vt 0.875000 0.500000 +vn 0.9500 0.0012 -0.3123 +vn -0.5076 0.0033 -0.8616 +vn -0.9684 -0.0009 0.2494 +vn 0.5466 -0.0032 0.8374 +vn -0.0015 1.0000 0.0048 +vn -0.0014 -1.0000 -0.0048 +vn -0.0000 -1.0000 -0.0038 +vn 0.0000 1.0000 0.0038 +vn -1.0000 -0.0000 0.0000 +vn 0.9684 -0.0009 0.2494 +vn 0.0015 -1.0000 -0.0048 +vn -0.5773 -0.0031 0.8165 +vn 0.0000 0.0038 -1.0000 +vn 0.4743 0.0033 -0.8804 +vn 0.0014 1.0000 0.0048 +vn 0.0000 -0.0038 1.0000 +vn -0.0010 1.0000 0.0046 +vn -0.0011 -1.0000 -0.0046 +vn -0.9500 0.0012 -0.3123 +vn 0.0011 1.0000 0.0046 +vn 0.0010 -1.0000 -0.0046 +vn 1.0000 -0.0000 0.0000 +usemtl glass_on_screen +s off +f 3217/4408/1953 3215/4409/1953 3194/4410/1953 3193/4411/1953 +f 3203/4412/1954 3204/4413/1954 3198/4414/1954 3197/4415/1954 +f 3201/4416/1955 3202/4417/1955 3196/4418/1955 3195/4419/1955 +f 3213/4420/1956 3210/4421/1956 3192/4422/1956 3191/4423/1956 +f 3208/4424/1957 3201/4416/1957 3195/4419/1957 3205/4425/1957 +f 3214/4426/1958 3200/4427/1958 3192/4428/1958 3210/4429/1958 +f 3222/4430/1959 3215/4431/1959 3200/4427/1959 3214/4426/1959 +f 3219/4432/1960 3216/4433/1960 3201/4416/1960 3208/4424/1960 +f 3216/4433/1961 3218/4434/1961 3202/4417/1961 3201/4416/1961 +f 3191/4435/1962 3192/4436/1962 3200/4437/1962 3199/4438/1962 +f 3221/4439/1960 3219/4432/1960 3208/4424/1960 3211/4440/1960 +f 3218/4434/1959 3220/4441/1959 3207/4442/1959 3202/4417/1959 +f 3202/4417/1963 3207/4442/1963 3206/4443/1963 3196/4418/1963 +f 3211/4440/1960 3208/4424/1960 3205/4425/1960 3213/4444/1960 +f 3195/4419/1964 3196/4418/1964 3206/4445/1964 3205/4446/1964 +f 3209/4447/1965 3212/4448/1965 3204/4413/1965 3203/4412/1965 +f 3193/4411/1966 3194/4410/1966 3212/4448/1966 3209/4447/1966 +f 3199/4449/1967 3211/4440/1967 3213/4444/1967 3191/4450/1967 +f 3217/4451/1960 3221/4439/1960 3211/4440/1960 3199/4449/1960 +f 3220/4441/1959 3222/4430/1959 3214/4426/1959 3207/4442/1959 +f 3207/4442/1959 3214/4426/1959 3210/4429/1959 3206/4443/1959 +f 3205/4446/1968 3206/4445/1968 3210/4421/1968 3213/4420/1968 +f 3204/4452/1959 3212/4453/1959 3222/4430/1959 3220/4441/1959 +f 3193/4454/1969 3209/4455/1969 3221/4439/1969 3217/4451/1969 +f 3198/4414/1970 3204/4452/1970 3220/4441/1970 3218/4434/1970 +f 3209/4455/1960 3203/4456/1960 3219/4432/1960 3221/4439/1960 +f 3197/4415/1971 3198/4414/1971 3218/4434/1971 3216/4433/1971 +f 3203/4456/1972 3197/4415/1972 3216/4433/1972 3219/4432/1972 +f 3212/4453/1973 3194/4457/1973 3215/4431/1973 3222/4430/1973 +f 3199/4438/1974 3200/4437/1974 3215/4409/1974 3217/4408/1974 +o Cylinder.001_Cylinder.008 +v 3.416260 2.698164 -4.444767 +v 3.416260 2.697469 -4.438632 +v 3.416260 2.695411 -4.432732 +v 3.416260 2.692069 -4.427294 +v 3.416260 2.687570 -4.422527 +v 3.416260 2.682089 -4.418616 +v 3.416260 2.675836 -4.415709 +v 3.416260 2.669050 -4.413920 +v 3.416260 2.661994 -4.413315 +v 3.416260 2.654937 -4.413920 +v 3.416260 2.648152 -4.415709 +v 3.416260 2.641898 -4.418616 +v 3.416260 2.636417 -4.422527 +v 3.416260 2.631919 -4.427294 +v 3.416260 2.628576 -4.432732 +v 3.416260 2.626518 -4.438632 +v 3.416260 2.625823 -4.444767 +v 3.416260 2.626518 -4.923088 +v 3.416260 2.628576 -4.929109 +v 3.416260 2.631919 -4.934659 +v 3.416260 2.636417 -4.939522 +v 3.416260 2.641898 -4.943514 +v 3.416260 2.648152 -4.946480 +v 3.416260 2.654937 -4.948307 +v 3.416260 2.661994 -4.948924 +v 3.416260 2.669050 -4.948307 +v 3.416260 2.675836 -4.946480 +v 3.416260 2.682089 -4.943514 +v 3.416260 2.687570 -4.939522 +v 3.416260 2.692069 -4.934659 +v 3.416260 2.695411 -4.929109 +v 3.416260 2.697469 -4.923088 +v 3.611115 2.660264 -4.413464 +v 3.610837 2.660264 -4.948772 +v 3.611395 2.654937 -4.413920 +v 3.611118 2.661994 -4.413315 +v 3.611128 2.669050 -4.413920 +v 3.610840 2.661994 -4.948924 +v 3.610852 2.669050 -4.948307 +v 3.611139 2.678014 -4.416722 +v 3.611365 2.682089 -4.418616 +v 3.611667 2.687570 -4.422527 +v 3.610871 2.678014 -4.945447 +v 3.611137 2.675836 -4.415709 +v 3.610866 2.675836 -4.946480 +v 3.611479 2.648152 -4.946480 +v 3.611750 2.648152 -4.415709 +v 3.611119 2.654937 -4.948307 +v 3.612035 2.642685 -4.418251 +v 3.612120 2.641898 -4.418616 +v 3.612714 2.636417 -4.422527 +v 3.611857 2.641898 -4.943514 +v 3.611770 2.642685 -4.943888 +v 3.611674 2.692069 -4.934659 +v 3.612308 2.697469 -4.438632 +v 3.612377 2.698164 -4.444767 +v 3.612101 2.695574 -4.433197 +v 3.612100 2.697469 -4.923088 +v 3.611878 2.695574 -4.928634 +v 3.611102 2.682089 -4.943514 +v 3.611913 2.692069 -4.427294 +v 3.611415 2.687570 -4.939522 +v 3.612092 2.695411 -4.432732 +v 3.611868 2.695411 -4.929109 +v 3.613333 2.628576 -4.929109 +v 3.613774 2.626518 -4.438632 +v 3.613566 2.626518 -4.923088 +v 3.613841 2.625823 -4.444767 +v 3.613557 2.628576 -4.432732 +v 3.612960 2.631919 -4.934659 +v 3.613199 2.631919 -4.427294 +v 3.612462 2.636417 -4.939522 +vt 0.296822 0.485388 +vt 0.250000 0.490000 +vt 0.203179 0.485389 +vt 0.158156 0.471731 +vt 0.116663 0.449553 +vt 0.080295 0.419706 +vt 0.050447 0.383337 +vt 0.028269 0.341844 +vt 0.014612 0.296822 +vt 0.010000 0.250000 +vt 0.014611 0.203179 +vt 0.028269 0.158156 +vt 0.050447 0.116663 +vt 0.080294 0.080294 +vt 0.116663 0.050447 +vt 0.158156 0.028269 +vt 0.203178 0.014612 +vt 0.250000 0.010000 +vt 0.296822 0.014612 +vt 0.341844 0.028269 +vt 0.383337 0.050447 +vt 0.419706 0.080294 +vt 0.449553 0.116663 +vt 0.471731 0.158156 +vt 0.485388 0.203178 +vt 0.490000 0.250000 +vt 0.485388 0.296822 +vt 0.471731 0.341844 +vt 0.449553 0.383337 +vt 0.419706 0.419706 +vt 0.383337 0.449553 +vt 0.341844 0.471731 +vt 0.375000 0.573979 +vt 0.406250 0.572897 +vt 0.406250 1.000000 +vt 0.375000 1.000000 +vt 0.562500 0.571601 +vt 0.593750 0.572378 +vt 0.593750 1.000000 +vt 0.562500 1.000000 +vt 0.875000 0.575704 +vt 0.906250 0.575170 +vt 0.906250 1.000000 +vt 0.875000 1.000000 +vt 0.718750 0.576295 +vt 0.742340 0.576904 +vt 0.750000 0.576897 +vt 0.750000 1.000000 +vt 0.718750 1.000000 +vt 0.000000 0.574161 +vt 0.031250 0.574764 +vt 0.031250 1.000000 +vt 0.000000 1.000000 +vt 0.781250 0.576873 +vt 0.812500 0.576855 +vt 0.812500 1.000000 +vt 0.781250 1.000000 +vt 0.843750 0.576359 +vt 0.843750 1.000000 +vt 0.060031 0.575245 +vt 0.062500 0.575266 +vt 0.062500 1.000000 +vt 0.250000 0.577500 +vt 0.257660 0.577506 +vt 0.281250 0.576895 +vt 0.281250 1.000000 +vt 0.250000 1.000000 +vt 0.656250 0.574720 +vt 0.660182 0.574906 +vt 0.687500 0.575524 +vt 0.687500 1.000000 +vt 0.656250 1.000000 +vt 0.187500 0.577443 +vt 0.218750 0.577473 +vt 0.218750 1.000000 +vt 0.187500 1.000000 +vt 0.093750 0.575689 +vt 0.125000 0.576251 +vt 0.125000 1.000000 +vt 0.093750 1.000000 +vt 0.500000 0.570983 +vt 0.531250 0.571130 +vt 0.531250 1.000000 +vt 0.500000 1.000000 +vt 0.937500 0.574780 +vt 0.939968 0.574761 +vt 0.968750 0.574313 +vt 0.968750 1.000000 +vt 0.937500 1.000000 +vt 0.823385 0.576850 +vt 1.000000 0.574161 +vt 1.000000 1.000000 +vt 0.156250 0.576930 +vt 0.176614 0.577432 +vt 0.156250 1.000000 +vt 0.343750 0.575291 +vt 0.343750 1.000000 +vt 0.312500 0.576113 +vt 0.312500 1.000000 +vt 0.468750 0.571581 +vt 0.468750 1.000000 +vt 0.625000 0.573431 +vt 0.625000 1.000000 +vt 0.437500 0.572087 +vt 0.437500 1.000000 +vt 0.339817 0.575479 +vt 0.452397 0.906734 +vt 0.452348 0.929879 +vt 0.452464 0.929942 +vt 0.454848 0.930651 +vt 0.458056 0.931235 +vt 0.461966 0.931672 +vt 0.464873 0.931851 +vt 0.464950 0.904266 +vt 0.462037 0.904560 +vt 0.458119 0.905152 +vt 0.454903 0.905864 +vt 0.452513 0.906666 +vt 0.535048 0.903804 +vt 0.535128 0.932313 +vt 0.538924 0.932368 +vt 0.543760 0.932265 +vt 0.547656 0.932023 +vt 0.547599 0.904591 +vt 0.543696 0.904194 +vt 0.538851 0.903899 +vt 0.473494 0.931994 +vt 0.500351 0.932248 +vt 0.528281 0.932334 +vt 0.528218 0.903783 +vt 0.500350 0.903868 +vt 0.473554 0.904122 +vt 0.548284 0.931991 +vt 0.552657 0.931575 +vt 0.556245 0.931005 +vt 0.558911 0.930305 +vt 0.560552 0.929502 +vt 0.561106 0.928630 +vt 0.560522 0.907696 +vt 0.558876 0.906819 +vt 0.556204 0.905998 +vt 0.552609 0.905266 +vt 0.548228 0.904650 +vt 0.450877 0.907535 +vt 0.450280 0.928283 +vt 0.450834 0.929147 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.7341 -0.6790 +vn 0.0000 -0.8519 0.5237 +vn 0.0000 0.7273 0.6863 +vn -0.0000 -0.0854 0.9963 +vn 0.0000 1.0000 -0.0015 +vn 0.0000 0.2550 0.9669 +vn 0.0000 0.5808 0.8140 +vn 0.0000 0.9462 -0.3235 +vn 0.0000 0.0854 0.9963 +vn 0.0000 -0.0870 -0.9962 +vn -0.0000 -0.4215 0.9068 +vn 0.0000 0.2600 -0.9656 +vn 0.0000 0.7341 -0.6790 +vn 0.0000 -0.9936 0.1126 +vn -0.0000 0.9442 0.3294 +vn 0.0000 0.4215 0.9068 +vn 0.0000 0.9936 0.1125 +vn -0.0000 0.4285 -0.9035 +vn 0.0000 -0.5887 -0.8083 +vn 0.0000 -0.2600 -0.9656 +vn 0.0000 0.8519 0.5237 +vn 0.0000 -1.0000 -0.0015 +vn 0.0000 -0.5808 0.8140 +vn 0.0000 -0.9462 -0.3235 +vn 0.0000 0.5887 -0.8083 +vn 0.0000 -0.2550 0.9669 +vn 0.0000 -0.9442 0.3294 +vn 0.0000 0.8566 -0.5160 +vn 0.0000 -0.4285 -0.9035 +vn 0.0000 -0.7273 0.6863 +vn 0.0000 -0.8566 -0.5160 +vn 0.0000 0.0870 -0.9962 +vn 0.7295 0.6422 -0.2353 +vn 0.7296 0.6407 0.2389 +vn 0.7018 0.6366 0.3194 +vn 0.7006 0.5528 0.4512 +vn 0.6988 0.4491 0.5568 +vn 0.6966 0.3335 0.6352 +vn 0.7158 0.2818 0.6388 +vn 0.7155 0.2868 -0.6370 +vn 0.6962 0.3392 -0.6327 +vn 0.6986 0.4546 -0.5525 +vn 0.7006 0.5569 -0.4461 +vn 0.7020 0.6388 -0.3147 +vn 0.7134 -0.0439 -0.6993 +vn 0.7138 -0.0428 0.6990 +vn 0.6908 -0.0901 0.7174 +vn 0.6936 -0.2140 0.6878 +vn 0.7223 -0.2475 0.6457 +vn 0.7222 -0.2525 -0.6439 +vn 0.6930 -0.2186 -0.6869 +vn 0.6901 -0.0927 -0.7177 +vn 0.6881 0.2455 0.6828 +vn 0.6885 0.1229 0.7147 +vn 0.6886 -0.0011 0.7252 +vn 0.6878 -0.0011 -0.7259 +vn 0.6878 0.1253 -0.7150 +vn 0.6874 0.2499 -0.6818 +vn 0.7039 -0.3024 0.6427 +vn 0.7095 -0.4208 0.5653 +vn 0.7143 -0.5277 0.4596 +vn 0.7182 -0.6147 0.3262 +vn 0.7206 -0.6722 0.1696 +vn 0.7324 -0.6796 0.0418 +vn 0.7111 -0.6915 -0.1272 +vn 0.7184 -0.6169 -0.3214 +vn 0.7144 -0.5320 -0.4544 +vn 0.7094 -0.4265 -0.5611 +vn 0.7037 -0.3083 -0.6401 +vn 0.7120 0.6906 -0.1272 +vn 0.7332 0.6787 0.0419 +vn 0.7214 0.6713 0.1698 +usemtl rim_on_phone +s off +f 3224/4458/1975 3223/4459/1975 3254/4460/1975 3253/4461/1975 3252/4462/1975 3251/4463/1975 3250/4464/1975 3249/4465/1975 3248/4466/1975 3247/4467/1975 3246/4468/1975 3245/4469/1975 3244/4470/1975 3243/4471/1975 3242/4472/1975 3241/4473/1975 3240/4474/1975 3239/4475/1975 3238/4476/1975 3237/4477/1975 3236/4478/1975 3235/4479/1975 3234/4480/1975 3233/4481/1975 3232/4482/1975 3231/4483/1975 3230/4484/1975 3229/4485/1975 3228/4486/1975 3227/4487/1975 3226/4488/1975 3225/4489/1975 +f 3294/4490/1976 3292/4491/1976 3242/4492/1976 3243/4493/1976 +f 3291/4494/1977 3293/4495/1977 3236/4496/1977 3237/4497/1977 +f 3264/4498/1978 3283/4499/1978 3226/4500/1978 3227/4501/1978 +f 3257/4502/1979 3255/4503/1979 3258/4504/1979 3231/4505/1979 3232/4506/1979 +f 3278/4507/1980 3280/4508/1980 3254/4509/1980 3223/4510/1980 +f 3259/4511/1981 3266/4512/1981 3229/4513/1981 3230/4514/1981 +f 3263/4515/1982 3264/4498/1982 3227/4501/1982 3228/4516/1982 +f 3280/4508/1983 3281/4517/1983 3286/4518/1983 3253/4519/1983 3254/4509/1983 +f 3258/4504/1984 3259/4511/1984 3230/4514/1984 3231/4505/1984 +f 3260/4520/1985 3256/4521/1985 3270/4522/1985 3246/4523/1985 3247/4524/1985 +f 3272/4525/1986 3271/4526/1986 3269/4527/1986 3233/4528/1986 3234/4529/1986 +f 3267/4530/1987 3261/4531/1987 3248/4532/1987 3249/4533/1987 +f 3276/4534/1988 3284/4535/1988 3251/4536/1988 3252/4537/1988 +f 3290/4538/1989 3288/4539/1989 3238/4540/1989 3239/4541/1989 +f 3285/4542/1990 3279/4543/1990 3277/4544/1990 3224/4545/1990 3225/4546/1990 +f 3266/4512/1991 3262/4547/1991 3263/4515/1991 3228/4516/1991 3229/4513/1991 +f 3277/4544/1992 3278/4548/1992 3223/4549/1992 3224/4545/1992 +f 3282/4550/1993 3265/4551/1993 3267/4530/1993 3249/4533/1993 3250/4552/1993 +f 3274/4553/1994 3294/4490/1994 3243/4493/1994 3244/4554/1994 +f 3270/4522/1995 3268/4555/1995 3245/4556/1995 3246/4523/1995 +f 3283/4499/1996 3285/4542/1996 3225/4546/1996 3226/4500/1996 +f 3289/4557/1997 3290/4538/1997 3239/4541/1997 3240/4558/1997 +f 3273/4559/1998 3272/4525/1998 3234/4529/1998 3235/4560/1998 +f 3287/4561/1999 3289/4557/1999 3240/4558/1999 3241/4562/1999 +f 3284/4535/2000 3282/4550/2000 3250/4552/2000 3251/4536/2000 +f 3269/4527/2001 3257/4502/2001 3232/4506/2001 3233/4528/2001 +f 3288/4539/2002 3291/4494/2002 3237/4497/2002 3238/4540/2002 +f 3286/4518/2003 3276/4534/2003 3252/4537/2003 3253/4519/2003 +f 3268/4555/2004 3275/4563/2004 3274/4553/2004 3244/4554/2004 3245/4556/2004 +f 3293/4495/2005 3273/4559/2005 3235/4560/2005 3236/4496/2005 +f 3292/4491/2006 3287/4561/2006 3241/4562/2006 3242/4492/2006 +f 3261/4531/2007 3260/4520/2007 3247/4524/2007 3248/4532/2007 +s 1 +f 3281/4564/2008 3279/4565/2009 3285/4566/2010 3283/4567/2011 3264/4568/2012 3263/4569/2013 3262/4570/2014 3265/4571/2015 3282/4572/2016 3284/4573/2017 3276/4574/2018 3286/4575/2019 +f 3256/4576/2020 3255/4577/2021 3257/4578/2022 3269/4579/2023 3271/4580/2024 3275/4581/2025 3268/4582/2026 3270/4583/2027 +f 3265/4571/2015 3262/4570/2014 3266/4584/2028 3259/4585/2029 3258/4586/2030 3255/4577/2021 3256/4576/2020 3260/4587/2031 3261/4588/2032 3267/4589/2033 +f 3275/4581/2025 3271/4580/2024 3272/4590/2034 3273/4591/2035 3293/4592/2036 3291/4593/2037 3288/4594/2038 3290/4595/2039 3289/4596/2040 3287/4597/2041 3292/4598/2042 3294/4599/2043 3274/4600/2044 +f 3279/4565/2009 3281/4564/2008 3280/4601/2045 3278/4602/2046 3277/4603/2047 +o Cylinder.004_Cylinder.010 +v 0.252779 2.471537 6.451721 +v 0.275232 2.473442 6.451721 +v 0.296822 2.479085 6.451721 +v 0.316719 2.488250 6.451721 +v 0.334159 2.500583 6.451721 +v 0.348472 2.515610 6.451721 +v 0.359107 2.532756 6.451721 +v 0.365656 2.551359 6.451721 +v 0.367868 2.570706 6.451721 +v 0.365656 2.590053 6.451721 +v 0.359107 2.608657 6.451721 +v 0.348472 2.625802 6.451721 +v 0.334159 2.640830 6.451721 +v 0.316719 2.653162 6.451721 +v 0.296822 2.662327 6.451721 +v 0.275232 2.667970 6.451721 +v 0.252779 2.669876 6.451721 +v -0.275509 2.667970 6.451721 +v -0.297099 2.662327 6.451721 +v -0.316996 2.653162 6.451721 +v -0.334437 2.640830 6.451721 +v -0.348749 2.625802 6.451721 +v -0.359385 2.608657 6.451721 +v -0.365934 2.590053 6.451721 +v -0.368145 2.570706 6.451721 +v -0.365934 2.551359 6.451721 +v -0.359385 2.532756 6.451721 +v -0.348749 2.515610 6.451721 +v -0.334436 2.500583 6.451721 +v -0.316996 2.488250 6.451721 +v -0.297099 2.479085 6.451721 +v -0.275509 2.473442 6.451721 +v -0.402078 2.576526 5.815379 +v 0.401651 2.576525 5.817787 +v -0.400253 2.594448 5.812945 +v -0.402671 2.570706 5.815352 +v -0.400253 2.546964 5.815258 +v 0.402243 2.570706 5.817764 +v 0.399825 2.546964 5.817656 +v -0.389039 2.516806 5.815163 +v -0.381460 2.503094 5.813201 +v -0.365807 2.484653 5.810579 +v 0.388611 2.516805 5.817493 +v -0.393091 2.524134 5.815183 +v 0.392663 2.524134 5.817537 +v 0.392663 2.617277 5.812215 +v -0.393091 2.617277 5.809860 +v 0.399825 2.594448 5.815343 +v -0.382923 2.635670 5.807387 +v -0.381460 2.638317 5.806645 +v -0.365807 2.656759 5.801488 +v 0.381032 2.638317 5.808929 +v 0.382496 2.635669 5.809681 +v 0.346306 2.469518 5.810522 +v -0.301363 2.451347 5.805017 +v -0.276808 2.449009 5.804409 +v -0.323110 2.457726 5.806809 +v 0.300935 2.451347 5.806822 +v 0.322681 2.457725 5.808745 +v 0.381032 2.503094 5.815486 +v -0.346734 2.469518 5.808446 +v 0.365379 2.484653 5.812770 +v -0.324974 2.458272 5.806883 +v 0.324546 2.458272 5.808830 +v 0.324546 2.683139 5.796113 +v -0.301363 2.690065 5.792284 +v 0.300935 2.690064 5.794088 +v -0.276808 2.692403 5.791697 +v -0.324974 2.683139 5.794167 +v 0.346306 2.671893 5.799352 +v -0.346734 2.671893 5.797275 +v 0.365379 2.656759 5.803679 +v 0.300935 2.690065 7.094358 +v 0.324546 2.683140 7.096287 +v 0.365379 2.484653 7.112003 +v 0.346306 2.671893 7.099370 +v 0.365379 2.656759 7.103488 +v -0.303404 2.451946 7.105528 +v 0.302975 2.451945 7.107316 +v 0.324546 2.458272 7.108251 +v 0.346306 2.469518 7.109863 +v 0.381032 2.503094 7.114589 +v -0.301363 2.451347 7.105369 +v -0.276808 2.449009 7.104793 +v 0.300935 2.451347 7.107144 +v -0.365807 2.656759 7.101333 +v -0.346734 2.671894 7.097326 +v -0.387515 2.514049 7.113832 +v 0.387087 2.514048 7.116115 +v 0.392663 2.524134 7.116172 +v 0.399825 2.546964 7.116286 +v 0.402243 2.570706 7.116390 +v -0.365807 2.484653 7.109848 +v -0.380885 2.638994 7.106057 +v -0.276808 2.692403 7.092027 +v 0.380458 2.638993 7.108302 +v -0.324974 2.683140 7.094372 +v -0.301363 2.690065 7.092582 +v -0.381460 2.503095 7.112341 +v -0.346734 2.469519 7.107820 +v -0.324974 2.458272 7.106336 +v -0.402048 2.576824 7.114043 +v 0.392663 2.617277 7.111149 +v 0.381032 2.638317 7.108391 +v 0.399825 2.594448 7.114126 +v 0.401620 2.576823 7.116413 +v -0.402671 2.570706 7.114017 +v -0.400253 2.546964 7.113927 +v -0.393091 2.524135 7.113856 +v -0.400253 2.594448 7.111767 +v -0.393091 2.617278 7.108832 +v -0.381460 2.638317 7.106143 +v 0.275232 2.667970 7.100213 +v 0.296821 2.662327 7.101791 +v 0.316719 2.653163 7.104310 +v 0.334159 2.640830 7.107672 +v 0.335908 2.638993 7.108171 +v 0.252779 2.471537 7.109866 +v 0.275232 2.473442 7.110194 +v 0.348472 2.625802 7.109915 +v 0.296821 2.479086 7.111035 +v 0.359107 2.608657 7.112166 +v 0.316719 2.488250 7.112355 +v 0.334159 2.500583 7.114105 +v 0.365656 2.590053 7.114594 +v 0.348472 2.515611 7.116007 +v 0.346984 2.514048 7.115997 +v 0.359107 2.532756 7.116108 +v 0.365656 2.551359 7.116203 +v 0.367868 2.570706 7.116288 +v 0.367169 2.576823 7.116311 +v -0.316996 2.653163 7.102442 +v -0.334437 2.640830 7.105701 +v -0.316996 2.488250 7.110487 +v -0.297099 2.662327 7.100040 +v -0.297099 2.479086 7.109284 +v -0.334436 2.500583 7.112134 +v -0.275509 2.667970 7.098589 +v -0.275509 2.473442 7.108571 +v 0.252779 2.669876 7.099635 +v -0.348749 2.625802 7.107860 +v -0.336185 2.638994 7.106189 +v -0.348749 2.515611 7.113952 +v -0.347261 2.514049 7.113950 +v -0.359385 2.608657 7.110048 +v -0.365934 2.590053 7.112437 +v -0.359385 2.532756 7.113990 +v -0.365934 2.551359 7.114047 +v -0.368145 2.570706 7.114119 +v -0.367446 2.576824 7.114145 +vt 0.296822 0.485388 +vt 0.341844 0.471731 +vt 0.383337 0.449553 +vt 0.419706 0.419706 +vt 0.449553 0.383337 +vt 0.471731 0.341844 +vt 0.485388 0.296822 +vt 0.490000 0.250000 +vt 0.485388 0.203178 +vt 0.471731 0.158156 +vt 0.449553 0.116663 +vt 0.419706 0.080294 +vt 0.383337 0.050447 +vt 0.341844 0.028269 +vt 0.296822 0.014612 +vt 0.250000 0.010000 +vt 0.203178 0.014612 +vt 0.158156 0.028269 +vt 0.116663 0.050447 +vt 0.080294 0.080294 +vt 0.050447 0.116663 +vt 0.028269 0.158156 +vt 0.014611 0.203179 +vt 0.010000 0.250000 +vt 0.014612 0.296822 +vt 0.028269 0.341844 +vt 0.050447 0.383337 +vt 0.080295 0.419706 +vt 0.116663 0.449553 +vt 0.158156 0.471731 +vt 0.203179 0.485389 +vt 0.250000 0.490000 +vt 0.375000 0.573979 +vt 0.406250 0.572897 +vt 0.406250 0.897901 +vt 0.375000 0.898931 +vt 0.562500 0.571601 +vt 0.593750 0.572378 +vt 0.593750 0.897390 +vt 0.562500 0.896652 +vt 0.875000 0.575704 +vt 0.906250 0.575170 +vt 0.906250 0.900014 +vt 0.875000 0.900521 +vt 0.718750 0.576295 +vt 0.742340 0.576904 +vt 0.750000 0.576897 +vt 0.750000 0.901563 +vt 0.741947 0.901570 +vt 0.718750 0.901001 +vt 0.000000 0.574161 +vt 0.031250 0.574764 +vt 0.031250 0.899845 +vt 0.000000 0.899257 +vt 0.781250 0.576873 +vt 0.812500 0.576855 +vt 0.812500 0.901523 +vt 0.781250 0.901541 +vt 0.843750 0.576359 +vt 0.843750 0.901144 +vt 0.060031 0.575245 +vt 0.062500 0.575266 +vt 0.062500 0.900122 +vt 0.033950 0.899888 +vt 0.250000 0.577500 +vt 0.257660 0.577506 +vt 0.281250 0.576895 +vt 0.281250 0.901590 +vt 0.258052 0.902162 +vt 0.250000 0.902156 +vt 0.656250 0.574720 +vt 0.660182 0.574906 +vt 0.687500 0.575524 +vt 0.687500 0.900267 +vt 0.656250 0.899595 +vt 0.187500 0.577443 +vt 0.218750 0.577473 +vt 0.218750 0.902130 +vt 0.187500 0.902102 +vt 0.093750 0.575689 +vt 0.125000 0.576251 +vt 0.125000 0.901060 +vt 0.093750 0.900525 +vt 0.500000 0.570983 +vt 0.531250 0.571130 +vt 0.531250 0.896204 +vt 0.500000 0.896066 +vt 0.937500 0.574780 +vt 0.939968 0.574761 +vt 0.968750 0.574313 +vt 0.968750 0.899401 +vt 0.966049 0.899441 +vt 0.937500 0.899643 +vt 0.823385 0.576850 +vt 0.827480 0.901517 +vt 1.000000 0.574161 +vt 1.000000 0.899257 +vt 0.156250 0.576930 +vt 0.176614 0.577432 +vt 0.172519 0.902088 +vt 0.156250 0.901706 +vt 0.343750 0.575291 +vt 0.344896 0.900134 +vt 0.343750 0.900157 +vt 0.312500 0.576113 +vt 0.312500 0.900846 +vt 0.468750 0.571581 +vt 0.468750 0.896648 +vt 0.625000 0.573431 +vt 0.655104 0.899573 +vt 0.625000 0.898392 +vt 0.437500 0.572087 +vt 0.437500 0.897131 +vt 0.339817 0.575479 +vt 0.312500 0.835418 +vt 0.312500 1.000000 +vt 0.343750 1.000000 +vt 0.343750 0.835965 +vt 0.062500 0.835609 +vt 0.062500 1.000000 +vt 0.093750 1.000000 +vt 0.093750 0.835308 +vt 0.031250 0.835788 +vt 0.031250 1.000000 +vt 0.281250 0.834821 +vt 0.281250 1.000000 +vt 0.781250 0.833879 +vt 0.781250 1.000000 +vt 0.812500 1.000000 +vt 0.812500 0.833903 +vt 0.843750 0.833928 +vt 0.843750 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.834404 +vt 0.847000 0.833931 +vt 0.718750 0.834282 +vt 0.718750 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.833858 +vt 0.740119 0.833852 +vt 0.531250 0.837877 +vt 0.531250 1.000000 +vt 0.562500 1.000000 +vt 0.562500 0.837482 +vt 0.187500 0.834433 +vt 0.187500 1.000000 +vt 0.218750 1.000000 +vt 0.218750 0.834419 +vt 0.468750 0.838283 +vt 0.468750 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.838021 +vt 0.656250 0.835451 +vt 0.656250 1.000000 +vt 0.687500 1.000000 +vt 0.687500 0.834889 +vt 0.906250 1.000000 +vt 0.906250 0.834841 +vt 0.593750 1.000000 +vt 0.593750 0.836853 +vt 0.437500 0.837920 +vt 0.437500 1.000000 +vt 0.125000 0.834897 +vt 0.125000 1.000000 +vt 0.156250 1.000000 +vt 0.156250 0.834442 +vt 0.153002 0.834443 +vt 0.937500 1.000000 +vt 0.937500 0.835171 +vt 0.625000 1.000000 +vt 0.625000 0.836012 +vt 0.250000 0.834401 +vt 0.250000 1.000000 +vt 0.259881 0.834394 +vt 0.968750 1.000000 +vt 0.968750 0.835382 +vt 1.000000 1.000000 +vt 1.000000 0.835464 +vt 0.000000 0.835464 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.836505 +vt 0.371182 0.836383 +vt 0.406250 1.000000 +vt 0.406250 0.837320 +vt 0.628819 0.835888 +vt 0.452397 0.906734 +vt 0.452348 0.929879 +vt 0.452464 0.929942 +vt 0.454848 0.930651 +vt 0.458056 0.931235 +vt 0.461966 0.931672 +vt 0.464873 0.931851 +vt 0.464950 0.904266 +vt 0.462037 0.904560 +vt 0.458119 0.905152 +vt 0.454903 0.905864 +vt 0.452513 0.906666 +vt 0.535048 0.903804 +vt 0.535128 0.932313 +vt 0.538924 0.932368 +vt 0.543760 0.932265 +vt 0.547656 0.932023 +vt 0.547599 0.904591 +vt 0.543696 0.904194 +vt 0.538851 0.903899 +vt 0.473494 0.931994 +vt 0.500351 0.932248 +vt 0.528281 0.932334 +vt 0.528218 0.903783 +vt 0.500350 0.903868 +vt 0.473554 0.904122 +vt 0.548284 0.931991 +vt 0.552657 0.931575 +vt 0.556245 0.931005 +vt 0.558911 0.930305 +vt 0.560552 0.929502 +vt 0.561106 0.928630 +vt 0.560522 0.907696 +vt 0.558876 0.906819 +vt 0.556204 0.905998 +vt 0.552609 0.905266 +vt 0.548228 0.904650 +vt 0.450877 0.907535 +vt 0.450280 0.928283 +vt 0.450834 0.929147 +vt 0.464950 0.904537 +vt 0.464946 0.905936 +vt 0.462224 0.906412 +vt 0.459731 0.907049 +vt 0.457877 0.907766 +vt 0.456736 0.908538 +vt 0.456349 0.909331 +vt 0.456691 0.927889 +vt 0.457827 0.928615 +vt 0.459675 0.929260 +vt 0.462162 0.929797 +vt 0.464878 0.930166 +vt 0.464874 0.931571 +vt 0.462665 0.931427 +vt 0.458945 0.930993 +vt 0.455893 0.930415 +vt 0.453625 0.929716 +vt 0.452350 0.928993 +vt 0.452395 0.907611 +vt 0.453675 0.906837 +vt 0.455949 0.906048 +vt 0.459008 0.905350 +vt 0.462736 0.904768 +vt 0.535049 0.904029 +vt 0.535052 0.905232 +vt 0.528221 0.905207 +vt 0.506615 0.905285 +vt 0.485840 0.905513 +vt 0.466691 0.905884 +vt 0.476214 0.904342 +vt 0.501706 0.904092 +vt 0.528217 0.904008 +vt 0.547600 0.904879 +vt 0.547603 0.906449 +vt 0.544939 0.905980 +vt 0.541478 0.905574 +vt 0.537723 0.905310 +vt 0.538606 0.904122 +vt 0.543215 0.904411 +vt 0.547463 0.904857 +vt 0.452215 0.928925 +vt 0.451688 0.928075 +vt 0.452259 0.907685 +vt 0.547655 0.931725 +vt 0.547652 0.930149 +vt 0.548066 0.930100 +vt 0.550848 0.929572 +vt 0.552915 0.928933 +vt 0.554187 0.928208 +vt 0.554585 0.909490 +vt 0.554153 0.908688 +vt 0.552877 0.907904 +vt 0.550805 0.907171 +vt 0.548018 0.906517 +vt 0.551614 0.905461 +vt 0.555035 0.906180 +vt 0.557577 0.906986 +vt 0.559143 0.907847 +vt 0.559700 0.928421 +vt 0.559174 0.929279 +vt 0.557613 0.930069 +vt 0.555076 0.930760 +vt 0.551663 0.931324 +vt 0.466626 0.930218 +vt 0.485810 0.930589 +vt 0.506628 0.930817 +vt 0.528278 0.930894 +vt 0.535124 0.930870 +vt 0.535127 0.932078 +vt 0.528281 0.932100 +vt 0.501710 0.932015 +vt 0.476161 0.931765 +vt 0.537790 0.930898 +vt 0.541539 0.930782 +vt 0.544994 0.930513 +vt 0.547519 0.931741 +vt 0.543279 0.932019 +vt 0.538679 0.932126 +vn -0.0000 0.0000 1.0000 +vn 0.6216 0.7833 -0.0000 +vn -0.4591 0.8884 -0.0000 +vn -0.6216 -0.7833 0.0000 +vn -0.9949 0.1013 0.0000 +vn 0.0040 -1.0000 0.0000 +vn -0.9541 -0.2993 0.0000 +vn -0.7624 -0.6471 0.0000 +vn 0.2815 -0.9596 0.0000 +vn -0.9949 -0.1013 0.0000 +vn 0.9949 0.1013 -0.0000 +vn -0.8752 0.4838 -0.0000 +vn 0.9541 -0.2993 0.0000 +vn 0.6216 -0.7833 0.0000 +vn -0.0948 0.9955 -0.0000 +vn -0.2814 -0.9596 0.0000 +vn -0.8752 -0.4838 0.0000 +vn -0.0948 -0.9955 0.0000 +vn 0.8752 -0.4838 0.0000 +vn 0.7624 0.6471 -0.0000 +vn 0.9541 0.2993 -0.0000 +vn -0.4591 -0.8884 0.0000 +vn 0.0040 1.0000 -0.0000 +vn -0.7624 0.6471 -0.0000 +vn 0.2814 0.9596 -0.0000 +vn 0.7624 -0.6471 0.0000 +vn -0.9541 0.2993 -0.0000 +vn -0.2815 0.9596 0.0000 +vn 0.4591 -0.8884 0.0000 +vn 0.8752 0.4838 0.0000 +vn -0.6216 0.7833 0.0000 +vn 0.4591 0.8884 -0.0000 +vn 0.9949 -0.1013 0.0000 +vn 0.8498 -0.5271 0.0000 +vn 0.4183 0.9083 -0.0000 +vn 0.2529 0.9675 -0.0000 +vn 0.9433 -0.3321 0.0000 +vn -0.9433 0.3321 -0.0000 +vn -0.7241 0.6897 -0.0000 +vn -0.9935 -0.1136 -0.0000 +vn -0.2529 -0.9675 -0.0000 +vn 0.9433 0.3321 -0.0000 +vn 0.0036 -1.0000 0.0000 +vn -0.8498 -0.5271 -0.0000 +vn -0.9433 -0.3321 0.0000 +vn -0.5774 0.8165 -0.0000 +vn -0.0846 -0.9964 -0.0000 +vn -0.4183 -0.9083 0.0000 +vn -0.9935 0.1136 -0.0000 +vn 0.2529 -0.9675 0.0000 +vn 0.7241 0.6897 0.0000 +vn -0.4183 0.9083 -0.0000 +vn -0.5774 -0.8165 0.0000 +vn 0.9935 -0.1136 0.0000 +vn -0.2529 0.9675 -0.0000 +vn -0.0846 0.9964 -0.0000 +vn 0.0036 1.0000 -0.0000 +vn 0.7241 -0.6897 0.0000 +vn 0.5774 0.8165 -0.0000 +vn 0.9935 0.1136 0.0000 +vn 0.8498 0.5271 -0.0000 +vn 0.5774 -0.8165 0.0000 +vn -0.7241 -0.6897 0.0000 +vn -0.8498 0.5271 -0.0000 +vn 0.4183 -0.9083 0.0000 +vn 0.0030 0.1562 -0.9877 +vn 0.0030 0.1432 -0.9897 +vn 0.0030 0.0517 -0.9987 +vn 0.0030 0.0516 -0.9987 +vn 0.0030 -0.0610 -0.9981 +vn 0.0030 -0.1348 -0.9909 +vn 0.0029 -0.1822 -0.9833 +vn 0.0029 -0.1821 -0.9833 +vn 0.0030 0.0043 -1.0000 +vn 0.0029 -0.2716 -0.9624 +vn 0.0029 0.2797 -0.9601 +vn -0.0029 -0.0492 0.9988 +vn -0.0029 -0.1024 0.9947 +vn -0.0029 -0.1364 0.9906 +vn -0.0029 -0.1488 0.9889 +vn -0.0029 0.0580 0.9983 +vn -0.0029 0.0671 0.9977 +vn -0.0030 -0.0041 1.0000 +vn -0.0029 0.1653 0.9862 +vn -0.0029 0.2256 0.9742 +vn -0.0029 0.1284 0.9917 +vn -0.0028 -0.2671 0.9637 +vn -0.0029 0.1654 0.9862 +vn -0.0028 0.2593 0.9658 +vn -0.0030 0.0580 0.9983 +usemtl None +s off +f 3296/4604/2048 3297/4605/2048 3298/4606/2048 3299/4607/2048 3300/4608/2048 3301/4609/2048 3302/4610/2048 3303/4611/2048 3304/4612/2048 3305/4613/2048 3306/4614/2048 3307/4615/2048 3308/4616/2048 3309/4617/2048 3310/4618/2048 3311/4619/2048 3312/4620/2048 3313/4621/2048 3314/4622/2048 3315/4623/2048 3316/4624/2048 3317/4625/2048 3318/4626/2048 3319/4627/2048 3320/4628/2048 3321/4629/2048 3322/4630/2048 3323/4631/2048 3324/4632/2048 3325/4633/2048 3326/4634/2048 3295/4635/2048 +f 3366/4636/2049 3364/4637/2049 3370/4638/2049 3371/4639/2049 +f 3363/4640/2050 3365/4641/2050 3381/4642/2050 3391/4643/2050 +f 3336/4644/2051 3355/4645/2051 3394/4646/2051 3387/4647/2051 +f 3329/4648/2052 3327/4649/2052 3330/4650/2052 3401/4651/2052 3396/4652/2052 3404/4653/2052 +f 3350/4654/2053 3352/4655/2053 3379/4656/2053 3378/4657/2053 +f 3331/4658/2054 3338/4659/2054 3403/4660/2054 3402/4661/2054 +f 3335/4662/2055 3336/4644/2055 3387/4647/2055 3393/4663/2055 +f 3352/4655/2056 3353/4664/2056 3358/4665/2056 3374/4666/2056 3373/4667/2056 3379/4656/2056 +f 3330/4650/2057 3331/4658/2057 3402/4661/2057 3401/4651/2057 +f 3332/4668/2058 3328/4669/2058 3342/4670/2058 3399/4671/2058 3400/4672/2058 3386/4673/2058 +f 3344/4674/2059 3343/4675/2059 3341/4676/2059 3405/4677/2059 3406/4678/2059 +f 3339/4679/2060 3333/4680/2060 3385/4681/2060 3384/4682/2060 +f 3348/4683/2061 3356/4684/2061 3369/4685/2061 3375/4686/2061 +f 3362/4687/2062 3360/4688/2062 3392/4689/2062 3389/4690/2062 +f 3357/4691/2063 3351/4692/2063 3349/4693/2063 3377/4694/2063 3372/4695/2063 3395/4696/2063 +f 3338/4659/2064 3334/4697/2064 3335/4662/2064 3393/4663/2064 3382/4698/2064 3403/4660/2064 +f 3349/4693/2065 3350/4699/2065 3378/4700/2065 3377/4694/2065 +f 3354/4701/2066 3337/4702/2066 3339/4679/2066 3384/4682/2066 3383/4703/2066 3376/4704/2066 +f 3346/4705/2067 3366/4636/2067 3371/4639/2067 3390/4706/2067 3398/4707/2067 +f 3342/4670/2068 3340/4708/2068 3397/4709/2068 3399/4671/2068 +f 3355/4645/2069 3357/4691/2069 3395/4696/2069 3394/4646/2069 +f 3361/4710/2070 3362/4687/2070 3389/4690/2070 3367/4711/2070 +f 3345/4712/2071 3344/4674/2071 3406/4678/2071 3388/4713/2071 3380/4714/2071 +f 3359/4715/2072 3361/4710/2072 3367/4711/2072 3368/4716/2072 +f 3356/4684/2073 3354/4701/2073 3376/4704/2073 3369/4685/2073 +f 3341/4676/2074 3329/4648/2074 3404/4653/2074 3405/4677/2074 +f 3360/4688/2075 3363/4640/2075 3391/4643/2075 3392/4689/2075 +f 3358/4665/2076 3348/4683/2076 3375/4686/2076 3374/4666/2076 +f 3340/4708/2077 3347/4717/2077 3346/4705/2077 3398/4707/2077 3397/4709/2077 +f 3365/4641/2078 3345/4712/2078 3380/4714/2078 3381/4642/2078 +f 3364/4637/2079 3359/4715/2079 3368/4716/2079 3370/4638/2079 +f 3333/4680/2080 3332/4668/2080 3386/4673/2080 3385/4681/2080 +f 3439/4718/2081 3317/4719/2081 3316/4720/2081 3435/4721/2081 +f 3430/4722/2082 3325/4723/2082 3324/4724/2082 3428/4725/2082 +f 3433/4726/2083 3326/4727/2083 3325/4723/2083 3430/4722/2083 +f 3440/4728/2084 3318/4729/2084 3317/4719/2084 3439/4718/2084 +f 3423/4730/2085 3302/4731/2085 3301/4732/2085 3422/4733/2085 +f 3420/4734/2086 3300/4735/2086 3299/4736/2086 3418/4737/2086 3421/4738/2086 +f 3419/4739/2087 3304/4740/2087 3303/4741/2087 3424/4742/2087 3425/4743/2087 +f 3407/4744/2088 3310/4745/2088 3309/4746/2088 3408/4747/2088 +f 3441/4748/2089 3321/4749/2089 3320/4750/2089 3442/4751/2089 +f 3432/4752/2090 3312/4753/2090 3311/4754/2090 3434/4755/2090 +f 3414/4756/2091 3306/4757/2091 3305/4758/2091 3416/4759/2091 +f 3416/4759/2092 3305/4758/2092 3304/4740/2092 3419/4739/2092 +f 3418/4737/2093 3299/4736/2093 3298/4760/2093 3417/4761/2093 +f 3434/4755/2094 3311/4754/2094 3310/4745/2094 3407/4744/2094 +f 3408/4747/2095 3309/4746/2095 3308/4762/2095 3409/4763/2095 +f 3424/4742/2096 3303/4741/2096 3302/4731/2096 3423/4730/2096 +f 3429/4764/2097 3313/4765/2097 3312/4753/2097 3432/4752/2097 +f 3431/4766/2098 3323/4767/2098 3322/4768/2098 3437/4769/2098 3438/4770/2098 +f 3417/4761/2099 3298/4760/2099 3297/4771/2099 3415/4772/2099 +f 3409/4763/2100 3308/4762/2100 3307/4773/2100 3410/4774/2100 +f 3443/4775/2101 3319/4776/2101 3318/4729/2101 3440/4728/2101 3444/4777/2101 +f 3415/4772/2102 3297/4771/2102 3296/4778/2102 3413/4779/2102 +f 3413/4779/2103 3296/4778/2103 3295/4780/2103 3412/4781/2103 +f 3412/4782/2104 3295/4783/2104 3326/4727/2104 3433/4726/2104 +f 3435/4721/2105 3316/4720/2105 3315/4784/2105 3427/4785/2105 3436/4786/2105 +f 3428/4725/2106 3324/4724/2106 3323/4767/2106 3431/4766/2106 +f 3442/4751/2107 3320/4750/2107 3319/4776/2107 3443/4775/2107 +f 3437/4769/2108 3322/4768/2108 3321/4749/2108 3441/4748/2108 +f 3427/4785/2109 3315/4784/2109 3314/4787/2109 3426/4788/2109 +f 3410/4774/2110 3307/4773/2110 3306/4757/2110 3414/4756/2110 3411/4789/2110 +f 3422/4733/2111 3301/4732/2111 3300/4735/2111 3420/4734/2111 +f 3426/4788/2112 3314/4787/2112 3313/4765/2112 3429/4764/2112 +s 1 +f 3353/4790/2113 3351/4791/2113 3357/4792/2114 3355/4793/2114 3336/4794/2114 3335/4795/2114 3334/4796/2115 3337/4797/2116 3354/4798/2114 3356/4799/2114 3348/4800/2114 3358/4801/2114 +f 3328/4802/2117 3327/4803/2117 3329/4804/2118 3341/4805/2118 3343/4806/2119 3347/4807/2120 3340/4808/2118 3342/4809/2118 +f 3337/4797/2116 3334/4796/2115 3338/4810/2121 3331/4811/2121 3330/4812/2121 3327/4803/2117 3328/4802/2117 3332/4813/2121 3333/4814/2121 3339/4815/2121 +f 3347/4807/2120 3343/4806/2119 3344/4816/2122 3345/4817/2122 3365/4818/2122 3363/4819/2122 3360/4820/2122 3362/4821/2122 3361/4822/2122 3359/4823/2122 3364/4824/2122 3366/4825/2122 3346/4826/2122 +f 3351/4791/2113 3353/4790/2113 3352/4827/2123 3350/4828/2123 3349/4829/2123 +f 3383/4830/2124 3421/4831/2125 3418/4832/2126 3417/4833/2126 3415/4834/2126 3413/4835/2126 3412/4836/2126 3433/4837/2126 3430/4838/2126 3428/4839/2126 3431/4840/2126 3438/4841/2125 3382/4842/2124 3393/4843/2126 3387/4844/2126 3394/4845/2126 3395/4846/2126 3372/4847/2127 3373/4848/2127 3374/4849/2126 3375/4850/2126 3369/4851/2126 3376/4852/2126 +f 3400/4853/2128 3425/4854/2129 3424/4855/2130 3423/4856/2130 3422/4857/2130 3420/4858/2130 3421/4831/2125 3383/4830/2124 3384/4859/2130 3385/4860/2130 3386/4861/2130 +f 3390/4862/2131 3411/4863/2132 3414/4864/2133 3416/4865/2133 3419/4866/2133 3425/4854/2129 3400/4853/2128 3399/4867/2133 3397/4868/2133 3398/4869/2133 +f 3373/4848/2127 3372/4847/2127 3377/4870/2134 3378/4871/2134 3379/4872/2134 +f 3388/4873/2135 3436/4874/2132 3427/4875/2136 3426/4876/2136 3429/4877/2136 3432/4878/2136 3434/4879/2136 3407/4880/2136 3408/4881/2136 3409/4882/2136 3410/4883/2136 3411/4863/2132 3390/4862/2131 3371/4884/2136 3370/4885/2136 3368/4886/2136 3367/4887/2136 3389/4888/2136 3392/4889/2136 3391/4890/2136 3381/4891/2136 3380/4892/2136 +f 3438/4841/2125 3437/4893/2130 3441/4894/2130 3442/4895/2130 3443/4896/2130 3444/4897/2129 3396/4898/2137 3401/4899/2130 3402/4900/2130 3403/4901/2130 3382/4842/2124 +f 3444/4897/2129 3440/4902/2133 3439/4903/2133 3435/4904/2133 3436/4874/2132 3388/4873/2135 3406/4905/2133 3405/4906/2133 3404/4907/2133 3396/4898/2137 +o Cylinder.012_Cylinder.013 +v 0.622711 2.519460 7.058853 +v 0.622711 2.520952 7.125809 +v 0.613176 2.520399 7.058832 +v 0.613176 2.521891 7.125788 +v 0.604007 2.523180 7.058770 +v 0.604007 2.524672 7.125726 +v 0.595557 2.527696 7.058670 +v 0.595557 2.529187 7.125626 +v 0.588150 2.533772 7.058534 +v 0.588150 2.535264 7.125490 +v 0.582072 2.541177 7.058369 +v 0.582072 2.542669 7.125325 +v 0.577555 2.549625 7.058181 +v 0.577555 2.551117 7.125137 +v 0.574774 2.558792 7.057977 +v 0.574774 2.560284 7.124933 +v 0.573835 2.568325 7.057764 +v 0.573835 2.569817 7.124721 +v 0.574774 2.577858 7.057552 +v 0.574774 2.579350 7.124508 +v 0.577555 2.587024 7.057348 +v 0.577555 2.588516 7.124304 +v 0.582072 2.595473 7.057159 +v 0.582072 2.596964 7.124115 +v 0.588150 2.602877 7.056994 +v 0.588150 2.604369 7.123950 +v 0.595557 2.608954 7.056859 +v 0.595557 2.610446 7.123815 +v 0.604007 2.613470 7.056758 +v 0.604007 2.614962 7.123714 +v 0.613176 2.616251 7.056696 +v 0.613176 2.617742 7.123652 +v 0.622711 2.617189 7.056675 +v 0.622711 2.618681 7.123631 +v 0.632247 2.616251 7.056696 +v 0.632247 2.617742 7.123652 +v 0.641415 2.613470 7.056758 +v 0.641415 2.614962 7.123714 +v 0.649866 2.608954 7.056859 +v 0.649866 2.610446 7.123815 +v 0.657272 2.602877 7.056994 +v 0.657272 2.604369 7.123950 +v 0.663351 2.595473 7.057159 +v 0.663351 2.596964 7.124115 +v 0.667867 2.587024 7.057348 +v 0.667867 2.588516 7.124304 +v 0.670649 2.577858 7.057552 +v 0.670649 2.579350 7.124508 +v 0.671588 2.568325 7.057764 +v 0.671588 2.569817 7.124721 +v 0.670649 2.558792 7.057977 +v 0.670649 2.560284 7.124933 +v 0.667867 2.549625 7.058181 +v 0.667867 2.551117 7.125137 +v 0.663351 2.541177 7.058369 +v 0.663351 2.542669 7.125325 +v 0.657272 2.533772 7.058534 +v 0.657272 2.535264 7.125490 +v 0.649866 2.527696 7.058670 +v 0.649866 2.529187 7.125626 +v 0.641415 2.523180 7.058770 +v 0.641415 2.524672 7.125726 +v 0.632246 2.520399 7.058832 +v 0.632246 2.521891 7.125788 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.968750 1.000000 +vt 0.968750 0.500000 +vt 0.937500 1.000000 +vt 0.937500 0.500000 +vt 0.906250 1.000000 +vt 0.906250 0.500000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.843750 1.000000 +vt 0.843750 0.500000 +vt 0.812500 1.000000 +vt 0.812500 0.500000 +vt 0.781250 1.000000 +vt 0.781250 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.718750 1.000000 +vt 0.718750 0.500000 +vt 0.687500 1.000000 +vt 0.687500 0.500000 +vt 0.656250 1.000000 +vt 0.656250 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.531250 1.000000 +vt 0.531250 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.468750 1.000000 +vt 0.468750 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.500000 +vt 0.406250 1.000000 +vt 0.406250 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.343750 1.000000 +vt 0.343750 0.500000 +vt 0.312500 1.000000 +vt 0.312500 0.500000 +vt 0.281250 1.000000 +vt 0.281250 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.218750 1.000000 +vt 0.218750 0.500000 +vt 0.187500 1.000000 +vt 0.187500 0.500000 +vt 0.156250 1.000000 +vt 0.156250 0.500000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.093750 1.000000 +vt 0.093750 0.500000 +vt 0.062500 1.000000 +vt 0.062500 0.500000 +vt 0.296822 0.485388 +vt 0.250000 0.490000 +vt 0.203179 0.485389 +vt 0.158156 0.471731 +vt 0.116663 0.449553 +vt 0.080295 0.419706 +vt 0.050447 0.383337 +vt 0.028269 0.341844 +vt 0.014612 0.296822 +vt 0.010000 0.250000 +vt 0.014611 0.203179 +vt 0.028269 0.158156 +vt 0.050447 0.116663 +vt 0.080294 0.080294 +vt 0.116663 0.050447 +vt 0.158156 0.028269 +vt 0.203178 0.014612 +vt 0.250000 0.010000 +vt 0.296822 0.014612 +vt 0.341844 0.028269 +vt 0.383337 0.050447 +vt 0.419706 0.080294 +vt 0.449553 0.116663 +vt 0.471731 0.158156 +vt 0.485388 0.203178 +vt 0.490000 0.250000 +vt 0.485388 0.296822 +vt 0.471731 0.341844 +vt 0.449553 0.383337 +vt 0.419706 0.419706 +vt 0.383337 0.449553 +vt 0.341844 0.471731 +vt 0.031250 1.000000 +vt 0.031250 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.796822 0.485388 +vt 0.841844 0.471731 +vt 0.883337 0.449553 +vt 0.919706 0.419706 +vt 0.949553 0.383337 +vt 0.971731 0.341844 +vt 0.985388 0.296822 +vt 0.990000 0.250000 +vt 0.985388 0.203178 +vt 0.971731 0.158156 +vt 0.949553 0.116663 +vt 0.919706 0.080294 +vt 0.883337 0.050447 +vt 0.841844 0.028269 +vt 0.796822 0.014612 +vt 0.750000 0.010000 +vt 0.703178 0.014612 +vt 0.658156 0.028269 +vt 0.616663 0.050447 +vt 0.580294 0.080294 +vt 0.550447 0.116663 +vt 0.528269 0.158156 +vt 0.514611 0.203179 +vt 0.510000 0.250000 +vt 0.514612 0.296822 +vt 0.528269 0.341844 +vt 0.550447 0.383337 +vt 0.580295 0.419706 +vt 0.616663 0.449553 +vt 0.658156 0.471731 +vt 0.703179 0.485389 +vn -0.0980 -0.9949 0.0222 +vn -0.2903 -0.9567 0.0213 +vn -0.4714 -0.8817 0.0196 +vn -0.6344 -0.7728 0.0172 +vn -0.7730 -0.6342 0.0141 +vn -0.8819 -0.4713 0.0105 +vn -0.9569 -0.2902 0.0065 +vn -0.9952 -0.0980 0.0022 +vn -0.9952 0.0980 -0.0022 +vn -0.9569 0.2902 -0.0065 +vn -0.8819 0.4713 -0.0105 +vn -0.7730 0.6342 -0.0141 +vn -0.6344 0.7728 -0.0172 +vn -0.4714 0.8817 -0.0196 +vn -0.2903 0.9567 -0.0213 +vn -0.0980 0.9949 -0.0222 +vn 0.0980 0.9949 -0.0222 +vn 0.2903 0.9567 -0.0213 +vn 0.4714 0.8817 -0.0196 +vn 0.6344 0.7728 -0.0172 +vn 0.7730 0.6342 -0.0141 +vn 0.8819 0.4713 -0.0105 +vn 0.9569 0.2902 -0.0065 +vn 0.9952 0.0980 -0.0022 +vn 0.9952 -0.0980 0.0022 +vn 0.9569 -0.2902 0.0065 +vn 0.8819 -0.4713 0.0105 +vn 0.7730 -0.6342 0.0141 +vn 0.6344 -0.7728 0.0172 +vn 0.4714 -0.8817 0.0196 +vn -0.0000 0.0223 0.9998 +vn 0.2903 -0.9567 0.0213 +vn 0.0980 -0.9949 0.0222 +vn -0.0000 -0.0223 -0.9998 +usemtl None +s off +f 3445/4908/2138 3446/4909/2138 3448/4910/2138 3447/4911/2138 +f 3447/4911/2139 3448/4910/2139 3450/4912/2139 3449/4913/2139 +f 3449/4913/2140 3450/4912/2140 3452/4914/2140 3451/4915/2140 +f 3451/4915/2141 3452/4914/2141 3454/4916/2141 3453/4917/2141 +f 3453/4917/2142 3454/4916/2142 3456/4918/2142 3455/4919/2142 +f 3455/4919/2143 3456/4918/2143 3458/4920/2143 3457/4921/2143 +f 3457/4921/2144 3458/4920/2144 3460/4922/2144 3459/4923/2144 +f 3459/4923/2145 3460/4922/2145 3462/4924/2145 3461/4925/2145 +f 3461/4925/2146 3462/4924/2146 3464/4926/2146 3463/4927/2146 +f 3463/4927/2147 3464/4926/2147 3466/4928/2147 3465/4929/2147 +f 3465/4929/2148 3466/4928/2148 3468/4930/2148 3467/4931/2148 +f 3467/4931/2149 3468/4930/2149 3470/4932/2149 3469/4933/2149 +f 3469/4933/2150 3470/4932/2150 3472/4934/2150 3471/4935/2150 +f 3471/4935/2151 3472/4934/2151 3474/4936/2151 3473/4937/2151 +f 3473/4937/2152 3474/4936/2152 3476/4938/2152 3475/4939/2152 +f 3475/4939/2153 3476/4938/2153 3478/4940/2153 3477/4941/2153 +f 3477/4941/2154 3478/4940/2154 3480/4942/2154 3479/4943/2154 +f 3479/4943/2155 3480/4942/2155 3482/4944/2155 3481/4945/2155 +f 3481/4945/2156 3482/4944/2156 3484/4946/2156 3483/4947/2156 +f 3483/4947/2157 3484/4946/2157 3486/4948/2157 3485/4949/2157 +f 3485/4949/2158 3486/4948/2158 3488/4950/2158 3487/4951/2158 +f 3487/4951/2159 3488/4950/2159 3490/4952/2159 3489/4953/2159 +f 3489/4953/2160 3490/4952/2160 3492/4954/2160 3491/4955/2160 +f 3491/4955/2161 3492/4954/2161 3494/4956/2161 3493/4957/2161 +f 3493/4957/2162 3494/4956/2162 3496/4958/2162 3495/4959/2162 +f 3495/4959/2163 3496/4958/2163 3498/4960/2163 3497/4961/2163 +f 3497/4961/2164 3498/4960/2164 3500/4962/2164 3499/4963/2164 +f 3499/4963/2165 3500/4962/2165 3502/4964/2165 3501/4965/2165 +f 3501/4965/2166 3502/4964/2166 3504/4966/2166 3503/4967/2166 +f 3503/4967/2167 3504/4966/2167 3506/4968/2167 3505/4969/2167 +f 3448/4970/2168 3446/4971/2168 3508/4972/2168 3506/4973/2168 3504/4974/2168 3502/4975/2168 3500/4976/2168 3498/4977/2168 3496/4978/2168 3494/4979/2168 3492/4980/2168 3490/4981/2168 3488/4982/2168 3486/4983/2168 3484/4984/2168 3482/4985/2168 3480/4986/2168 3478/4987/2168 3476/4988/2168 3474/4989/2168 3472/4990/2168 3470/4991/2168 3468/4992/2168 3466/4993/2168 3464/4994/2168 3462/4995/2168 3460/4996/2168 3458/4997/2168 3456/4998/2168 3454/4999/2168 3452/5000/2168 3450/5001/2168 +f 3505/4969/2169 3506/4968/2169 3508/5002/2169 3507/5003/2169 +f 3507/5003/2170 3508/5002/2170 3446/5004/2170 3445/5005/2170 +f 3445/5006/2171 3447/5007/2171 3449/5008/2171 3451/5009/2171 3453/5010/2171 3455/5011/2171 3457/5012/2171 3459/5013/2171 3461/5014/2171 3463/5015/2171 3465/5016/2171 3467/5017/2171 3469/5018/2171 3471/5019/2171 3473/5020/2171 3475/5021/2171 3477/5022/2171 3479/5023/2171 3481/5024/2171 3483/5025/2171 3485/5026/2171 3487/5027/2171 3489/5028/2171 3491/5029/2171 3493/5030/2171 3495/5031/2171 3497/5032/2171 3499/5033/2171 3501/5034/2171 3503/5035/2171 3505/5036/2171 3507/5037/2171 +o Cylinder.013_Cylinder.014 +v -0.639891 2.519460 7.058853 +v -0.639891 2.520952 7.125809 +v -0.649427 2.520399 7.058832 +v -0.649427 2.521891 7.125788 +v -0.658595 2.523180 7.058770 +v -0.658595 2.524672 7.125726 +v -0.667046 2.527696 7.058670 +v -0.667046 2.529187 7.125626 +v -0.674452 2.533772 7.058534 +v -0.674452 2.535264 7.125490 +v -0.680531 2.541177 7.058369 +v -0.680531 2.542669 7.125325 +v -0.685047 2.549625 7.058181 +v -0.685047 2.551117 7.125137 +v -0.687829 2.558792 7.057977 +v -0.687829 2.560284 7.124933 +v -0.688768 2.568325 7.057764 +v -0.688768 2.569817 7.124721 +v -0.687829 2.577858 7.057552 +v -0.687829 2.579350 7.124508 +v -0.685047 2.587024 7.057348 +v -0.685047 2.588516 7.124304 +v -0.680530 2.595473 7.057159 +v -0.680530 2.596964 7.124115 +v -0.674452 2.602877 7.056994 +v -0.674452 2.604369 7.123950 +v -0.667045 2.608954 7.056859 +v -0.667045 2.610446 7.123815 +v -0.658595 2.613470 7.056758 +v -0.658595 2.614962 7.123714 +v -0.649426 2.616251 7.056696 +v -0.649426 2.617742 7.123652 +v -0.639891 2.617189 7.056675 +v -0.639891 2.618681 7.123631 +v -0.630356 2.616251 7.056696 +v -0.630356 2.617742 7.123652 +v -0.621187 2.613470 7.056758 +v -0.621187 2.614962 7.123714 +v -0.612737 2.608954 7.056859 +v -0.612737 2.610446 7.123815 +v -0.605330 2.602877 7.056994 +v -0.605330 2.604369 7.123950 +v -0.599252 2.595473 7.057159 +v -0.599252 2.596964 7.124115 +v -0.594735 2.587024 7.057348 +v -0.594735 2.588516 7.124304 +v -0.591954 2.577858 7.057552 +v -0.591954 2.579350 7.124508 +v -0.591015 2.568325 7.057764 +v -0.591015 2.569817 7.124721 +v -0.591954 2.558792 7.057977 +v -0.591954 2.560284 7.124933 +v -0.594735 2.549625 7.058181 +v -0.594735 2.551117 7.125137 +v -0.599252 2.541177 7.058369 +v -0.599252 2.542669 7.125325 +v -0.605330 2.533772 7.058534 +v -0.605330 2.535264 7.125490 +v -0.612737 2.527696 7.058670 +v -0.612737 2.529187 7.125626 +v -0.621187 2.523180 7.058770 +v -0.621187 2.524672 7.125726 +v -0.630356 2.520399 7.058832 +v -0.630356 2.521891 7.125788 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.968750 1.000000 +vt 0.968750 0.500000 +vt 0.937500 1.000000 +vt 0.937500 0.500000 +vt 0.906250 1.000000 +vt 0.906250 0.500000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.843750 1.000000 +vt 0.843750 0.500000 +vt 0.812500 1.000000 +vt 0.812500 0.500000 +vt 0.781250 1.000000 +vt 0.781250 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.718750 1.000000 +vt 0.718750 0.500000 +vt 0.687500 1.000000 +vt 0.687500 0.500000 +vt 0.656250 1.000000 +vt 0.656250 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.593750 1.000000 +vt 0.593750 0.500000 +vt 0.562500 1.000000 +vt 0.562500 0.500000 +vt 0.531250 1.000000 +vt 0.531250 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.468750 1.000000 +vt 0.468750 0.500000 +vt 0.437500 1.000000 +vt 0.437500 0.500000 +vt 0.406250 1.000000 +vt 0.406250 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.343750 1.000000 +vt 0.343750 0.500000 +vt 0.312500 1.000000 +vt 0.312500 0.500000 +vt 0.281250 1.000000 +vt 0.281250 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.218750 1.000000 +vt 0.218750 0.500000 +vt 0.187500 1.000000 +vt 0.187500 0.500000 +vt 0.156250 1.000000 +vt 0.156250 0.500000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.093750 1.000000 +vt 0.093750 0.500000 +vt 0.062500 1.000000 +vt 0.062500 0.500000 +vt 0.296822 0.485388 +vt 0.250000 0.490000 +vt 0.203179 0.485389 +vt 0.158156 0.471731 +vt 0.116663 0.449553 +vt 0.080295 0.419706 +vt 0.050447 0.383337 +vt 0.028269 0.341844 +vt 0.014612 0.296822 +vt 0.010000 0.250000 +vt 0.014611 0.203179 +vt 0.028269 0.158156 +vt 0.050447 0.116663 +vt 0.080294 0.080294 +vt 0.116663 0.050447 +vt 0.158156 0.028269 +vt 0.203178 0.014612 +vt 0.250000 0.010000 +vt 0.296822 0.014612 +vt 0.341844 0.028269 +vt 0.383337 0.050447 +vt 0.419706 0.080294 +vt 0.449553 0.116663 +vt 0.471731 0.158156 +vt 0.485388 0.203178 +vt 0.490000 0.250000 +vt 0.485388 0.296822 +vt 0.471731 0.341844 +vt 0.449553 0.383337 +vt 0.419706 0.419706 +vt 0.383337 0.449553 +vt 0.341844 0.471731 +vt 0.031250 1.000000 +vt 0.031250 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.796822 0.485388 +vt 0.841844 0.471731 +vt 0.883337 0.449553 +vt 0.919706 0.419706 +vt 0.949553 0.383337 +vt 0.971731 0.341844 +vt 0.985388 0.296822 +vt 0.990000 0.250000 +vt 0.985388 0.203178 +vt 0.971731 0.158156 +vt 0.949553 0.116663 +vt 0.919706 0.080294 +vt 0.883337 0.050447 +vt 0.841844 0.028269 +vt 0.796822 0.014612 +vt 0.750000 0.010000 +vt 0.703178 0.014612 +vt 0.658156 0.028269 +vt 0.616663 0.050447 +vt 0.580294 0.080294 +vt 0.550447 0.116663 +vt 0.528269 0.158156 +vt 0.514611 0.203179 +vt 0.510000 0.250000 +vt 0.514612 0.296822 +vt 0.528269 0.341844 +vt 0.550447 0.383337 +vt 0.580295 0.419706 +vt 0.616663 0.449553 +vt 0.658156 0.471731 +vt 0.703179 0.485389 +vn -0.0980 -0.9949 0.0222 +vn -0.2903 -0.9567 0.0213 +vn -0.4714 -0.8817 0.0196 +vn -0.6344 -0.7728 0.0172 +vn -0.7730 -0.6342 0.0141 +vn -0.8819 -0.4713 0.0105 +vn -0.9569 -0.2902 0.0065 +vn -0.9952 -0.0980 0.0022 +vn -0.9952 0.0980 -0.0022 +vn -0.9569 0.2902 -0.0065 +vn -0.8819 0.4713 -0.0105 +vn -0.7730 0.6342 -0.0141 +vn -0.6344 0.7728 -0.0172 +vn -0.4714 0.8817 -0.0196 +vn -0.2903 0.9567 -0.0213 +vn -0.0980 0.9949 -0.0222 +vn 0.0980 0.9949 -0.0222 +vn 0.2903 0.9567 -0.0213 +vn 0.4714 0.8817 -0.0196 +vn 0.6344 0.7728 -0.0172 +vn 0.7730 0.6342 -0.0141 +vn 0.8819 0.4713 -0.0105 +vn 0.9569 0.2902 -0.0065 +vn 0.9952 0.0980 -0.0022 +vn 0.9952 -0.0980 0.0022 +vn 0.9569 -0.2902 0.0065 +vn 0.8819 -0.4713 0.0105 +vn 0.7730 -0.6342 0.0141 +vn 0.6344 -0.7728 0.0172 +vn 0.4714 -0.8817 0.0196 +vn -0.0000 0.0223 0.9998 +vn 0.2903 -0.9567 0.0213 +vn 0.0980 -0.9949 0.0222 +vn -0.0000 -0.0223 -0.9998 +usemtl None +s off +f 3509/5038/2172 3510/5039/2172 3512/5040/2172 3511/5041/2172 +f 3511/5041/2173 3512/5040/2173 3514/5042/2173 3513/5043/2173 +f 3513/5043/2174 3514/5042/2174 3516/5044/2174 3515/5045/2174 +f 3515/5045/2175 3516/5044/2175 3518/5046/2175 3517/5047/2175 +f 3517/5047/2176 3518/5046/2176 3520/5048/2176 3519/5049/2176 +f 3519/5049/2177 3520/5048/2177 3522/5050/2177 3521/5051/2177 +f 3521/5051/2178 3522/5050/2178 3524/5052/2178 3523/5053/2178 +f 3523/5053/2179 3524/5052/2179 3526/5054/2179 3525/5055/2179 +f 3525/5055/2180 3526/5054/2180 3528/5056/2180 3527/5057/2180 +f 3527/5057/2181 3528/5056/2181 3530/5058/2181 3529/5059/2181 +f 3529/5059/2182 3530/5058/2182 3532/5060/2182 3531/5061/2182 +f 3531/5061/2183 3532/5060/2183 3534/5062/2183 3533/5063/2183 +f 3533/5063/2184 3534/5062/2184 3536/5064/2184 3535/5065/2184 +f 3535/5065/2185 3536/5064/2185 3538/5066/2185 3537/5067/2185 +f 3537/5067/2186 3538/5066/2186 3540/5068/2186 3539/5069/2186 +f 3539/5069/2187 3540/5068/2187 3542/5070/2187 3541/5071/2187 +f 3541/5071/2188 3542/5070/2188 3544/5072/2188 3543/5073/2188 +f 3543/5073/2189 3544/5072/2189 3546/5074/2189 3545/5075/2189 +f 3545/5075/2190 3546/5074/2190 3548/5076/2190 3547/5077/2190 +f 3547/5077/2191 3548/5076/2191 3550/5078/2191 3549/5079/2191 +f 3549/5079/2192 3550/5078/2192 3552/5080/2192 3551/5081/2192 +f 3551/5081/2193 3552/5080/2193 3554/5082/2193 3553/5083/2193 +f 3553/5083/2194 3554/5082/2194 3556/5084/2194 3555/5085/2194 +f 3555/5085/2195 3556/5084/2195 3558/5086/2195 3557/5087/2195 +f 3557/5087/2196 3558/5086/2196 3560/5088/2196 3559/5089/2196 +f 3559/5089/2197 3560/5088/2197 3562/5090/2197 3561/5091/2197 +f 3561/5091/2198 3562/5090/2198 3564/5092/2198 3563/5093/2198 +f 3563/5093/2199 3564/5092/2199 3566/5094/2199 3565/5095/2199 +f 3565/5095/2200 3566/5094/2200 3568/5096/2200 3567/5097/2200 +f 3567/5097/2201 3568/5096/2201 3570/5098/2201 3569/5099/2201 +f 3512/5100/2202 3510/5101/2202 3572/5102/2202 3570/5103/2202 3568/5104/2202 3566/5105/2202 3564/5106/2202 3562/5107/2202 3560/5108/2202 3558/5109/2202 3556/5110/2202 3554/5111/2202 3552/5112/2202 3550/5113/2202 3548/5114/2202 3546/5115/2202 3544/5116/2202 3542/5117/2202 3540/5118/2202 3538/5119/2202 3536/5120/2202 3534/5121/2202 3532/5122/2202 3530/5123/2202 3528/5124/2202 3526/5125/2202 3524/5126/2202 3522/5127/2202 3520/5128/2202 3518/5129/2202 3516/5130/2202 3514/5131/2202 +f 3569/5099/2203 3570/5098/2203 3572/5132/2203 3571/5133/2203 +f 3571/5133/2204 3572/5132/2204 3510/5134/2204 3509/5135/2204 +f 3509/5136/2205 3511/5137/2205 3513/5138/2205 3515/5139/2205 3517/5140/2205 3519/5141/2205 3521/5142/2205 3523/5143/2205 3525/5144/2205 3527/5145/2205 3529/5146/2205 3531/5147/2205 3533/5148/2205 3535/5149/2205 3537/5150/2205 3539/5151/2205 3541/5152/2205 3543/5153/2205 3545/5154/2205 3547/5155/2205 3549/5156/2205 3551/5157/2205 3553/5158/2205 3555/5159/2205 3557/5160/2205 3559/5161/2205 3561/5162/2205 3563/5163/2205 3565/5164/2205 3567/5165/2205 3569/5166/2205 3571/5167/2205 +o Cube_Cube.003 +v 1.874757 2.708358 7.087219 +v 1.874757 2.438132 7.087219 +v 1.874757 2.708358 6.879181 +v 1.874757 2.438132 6.879181 +v 0.862865 2.708359 7.087219 +v 0.862865 2.438132 7.087219 +v 0.862865 2.708359 6.879181 +v 0.862865 2.438132 6.879181 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.288909 0.358772 +vt 0.730778 0.358772 +vt 0.730778 0.800640 +vt 0.288909 0.800640 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +usemtl Material.045 +s off +f 3573/5168/2206 3574/5169/2206 3576/5170/2206 3575/5171/2206 +f 3575/5171/2207 3576/5170/2207 3580/5172/2207 3579/5173/2207 +f 3579/5173/2208 3580/5172/2208 3578/5174/2208 3577/5175/2208 +f 3577/5176/2209 3578/5177/2209 3574/5178/2209 3573/5179/2209 +f 3575/5180/2210 3579/5173/2210 3577/5175/2210 3573/5181/2210 +f 3580/5172/2211 3576/5182/2211 3574/5183/2211 3578/5174/2211 +o Cube.002_Cube.004 +v -1.018683 2.649904 7.087219 +v -1.018683 2.441180 7.087219 +v -1.018683 2.649904 6.879181 +v -1.018683 2.441180 6.879181 +v -2.358313 2.649904 7.087219 +v -2.358313 2.441180 7.087219 +v -2.358313 2.649904 6.879181 +v -2.358313 2.441180 6.879181 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.316235 0.317196 +vt 0.683765 0.317196 +vt 0.683765 0.684726 +vt 0.316235 0.684726 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +usemtl Material.024 +s off +f 3581/5184/2212 3582/5185/2212 3584/5186/2212 3583/5187/2212 +f 3583/5187/2213 3584/5186/2213 3588/5188/2213 3587/5189/2213 +f 3587/5189/2214 3588/5188/2214 3586/5190/2214 3585/5191/2214 +f 3585/5192/2215 3586/5193/2215 3582/5194/2215 3581/5195/2215 +f 3583/5196/2216 3587/5189/2216 3585/5191/2216 3581/5197/2216 +f 3588/5188/2217 3584/5198/2217 3582/5199/2217 3586/5190/2217 diff --git a/assets/screen.13e2504d.png b/assets/screen.13e2504d.png new file mode 100644 index 0000000..d066e1c Binary files /dev/null and b/assets/screen.13e2504d.png differ diff --git a/assets/screen.273a9703.mp4 b/assets/screen.273a9703.mp4 new file mode 100644 index 0000000..e2e7f5a Binary files /dev/null and b/assets/screen.273a9703.mp4 differ diff --git a/assets/style.d257e3fd.css b/assets/style.d257e3fd.css new file mode 100644 index 0000000..3678630 --- /dev/null +++ b/assets/style.d257e3fd.css @@ -0,0 +1 @@ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-cyrillic.f8750142.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-cyrillic-ext.0877b0d9.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-greek.117e1956.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-greek-ext.3e6f6728.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-latin.4fe6132f.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-latin-ext.7cc429bc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var experimental;font-weight:100 900;font-display:swap;font-style:oblique 0deg 10deg;src:url(/assets/inter-vietnamese.2c644a25.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}:root{--vp-c-white: #ffffff;--vp-c-white-soft: #f9f9f9;--vp-c-white-mute: #f1f1f1;--vp-c-black: #1a1a1a;--vp-c-black-pure: #000000;--vp-c-black-soft: #242424;--vp-c-black-mute: #2f2f2f;--vp-c-gray: #8e8e8e;--vp-c-gray-light-1: #aeaeae;--vp-c-gray-light-2: #c7c7c7;--vp-c-gray-light-3: #d1d1d1;--vp-c-gray-light-4: #e5e5e5;--vp-c-gray-light-5: #f2f2f2;--vp-c-gray-dark-1: #636363;--vp-c-gray-dark-2: #484848;--vp-c-gray-dark-3: #3a3a3a;--vp-c-gray-dark-4: #282828;--vp-c-gray-dark-5: #202020;--vp-c-divider-light-1: rgba(60, 60, 60, .29);--vp-c-divider-light-2: rgba(60, 60, 60, .12);--vp-c-divider-dark-1: rgba(84, 84, 84, .65);--vp-c-divider-dark-2: rgba(84, 84, 84, .48);--vp-c-text-light-1: var(--vp-c-indigo);--vp-c-text-light-2: rgba(60, 60, 60, .7);--vp-c-text-light-3: rgba(60, 60, 60, .33);--vp-c-text-light-4: rgba(60, 60, 60, .18);--vp-c-text-dark-1: rgba(255, 255, 255, .87);--vp-c-text-dark-2: rgba(235, 235, 235, .6);--vp-c-text-dark-3: rgba(235, 235, 235, .38);--vp-c-text-dark-4: rgba(235, 235, 235, .18);--vp-c-indigo: #213547;--vp-c-indigo-soft: #476582;--vp-c-indigo-light: #aac8e4;--vp-c-indigo-lighter: #c9def1;--vp-c-indigo-dark: #1d2f3f;--vp-c-indigo-darker: #14212e;--vp-c-green: #42b883;--vp-c-green-light: #42d392;--vp-c-green-lighter: #35eb9a;--vp-c-green-dark: #33a06f;--vp-c-green-darker: #155f3e;--vp-c-green-dimm-1: rgba(66, 184, 131, .5);--vp-c-green-dimm-2: rgba(66, 184, 131, .25);--vp-c-green-dimm-3: rgba(66, 184, 131, .05);--vp-c-yellow: #ffc517;--vp-c-yellow-light: #fcd253;--vp-c-yellow-lighter: #fcfc7c;--vp-c-yellow-dark: #e0ad15;--vp-c-yellow-darker: #ad850e;--vp-c-yellow-dimm-1: rgba(255, 197, 23, .5);--vp-c-yellow-dimm-2: rgba(255, 197, 23, .25);--vp-c-yellow-dimm-3: rgba(255, 197, 23, .05);--vp-c-red: #ed3c50;--vp-c-red-light: #f54e82;--vp-c-red-lighter: #fd1d7c;--vp-c-red-dark: #cd2d3f;--vp-c-red-darker: #ab2131;--vp-c-red-dimm-1: rgba(237, 60, 80, .5);--vp-c-red-dimm-2: rgba(237, 60, 80, .25);--vp-c-red-dimm-3: rgba(237, 60, 80, .05)}:root{--vp-c-bg: var(--vp-c-white);--vp-c-bg-soft: var(--vp-c-white-soft);--vp-c-bg-mute: var(--vp-c-white-mute);--vp-c-bg-alt: var(--vp-c-white-soft);--vp-c-divider: var(--vp-c-divider-light-1);--vp-c-divider-light: var(--vp-c-divider-light-2);--vp-c-divider-inverse: var(--vp-c-divider-dark-1);--vp-c-divider-inverse-light: var(--vp-c-divider-dark-2);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-4: var(--vp-c-text-light-4);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-4: var(--vp-c-text-dark-4);--vp-c-text-code: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-sponsor: #fd1d7c}.dark{--vp-c-bg: var(--vp-c-black-soft);--vp-c-bg-soft: var(--vp-c-black-mute);--vp-c-bg-mute: var(--vp-c-gray-dark-3);--vp-c-bg-alt: var(--vp-c-black);--vp-c-divider: var(--vp-c-divider-dark-1);--vp-c-divider-light: var(--vp-c-divider-dark-2);--vp-c-divider-inverse: var(--vp-c-divider-light-1);--vp-c-divider-inverse-light: var(--vp-c-divider-light-2);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-4: var(--vp-c-text-dark-4);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-inverse-4: var(--vp-c-text-light-4);--vp-c-text-code: var(--vp-c-indigo-lighter)}:root{--vp-font-family-base: "Inter var experimental", "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--vp-font-family-mono: Menlo, Monaco, Consolas, "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-backdrop: 30;--vp-z-index-sidebar: 40;--vp-z-index-footer: 50}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' class='h-6 w-6' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292d3e;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2)}.dark{--vp-code-block-bg: var(--vp-c-bg-alt)}:root{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand-light);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-light-3);--vp-button-alt-text: var(--vp-c-text-light-1);--vp-button-alt-bg: var(--vp-c-gray-light-5);--vp-button-alt-hover-border: var(--vp-c-gray-light-3);--vp-button-alt-hover-text: var(--vp-c-text-light-1);--vp-button-alt-hover-bg: var(--vp-c-gray-light-4);--vp-button-alt-active-border: var(--vp-c-gray-light-3);--vp-button-alt-active-text: var(--vp-c-text-light-1);--vp-button-alt-active-bg: var(--vp-c-gray-light-3);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-text: var(--vp-c-text-dark-1);--vp-button-brand-bg: var(--vp-c-brand-dark);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-text-dark-1);--vp-button-brand-hover-bg: var(--vp-c-brand);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-text-dark-1);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-button-alt-border: var(--vp-c-gray-dark-2);--vp-button-alt-text: var(--vp-c-text-dark-1);--vp-button-alt-bg: var(--vp-c-bg-mute);--vp-button-alt-hover-border: var(--vp-c-gray-dark-2);--vp-button-alt-hover-text: var(--vp-c-text-dark-1);--vp-button-alt-hover-bg: var(--vp-c-gray-dark-2);--vp-button-alt-active-border: var(--vp-c-gray-dark-2);--vp-button-alt-active-text: var(--vp-c-text-dark-1);--vp-button-alt-active-bg: var(--vp-button-alt-bg);--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-white-soft);--vp-custom-block-info-code-bg: var(--vp-c-gray-light-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-1);--vp-custom-block-tip-text: var(--vp-c-green-darker);--vp-custom-block-tip-bg: var(--vp-c-green-dimm-3);--vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-1);--vp-custom-block-warning-text: var(--vp-c-yellow-darker);--vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-3);--vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg);--vp-custom-block-danger-border: var(--vp-c-red-dimm-1);--vp-custom-block-danger-text: var(--vp-c-red-darker);--vp-custom-block-danger-bg: var(--vp-c-red-dimm-3);--vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}.dark{--vp-custom-block-info-border: var(--vp-c-divider-light);--vp-custom-block-info-bg: var(--vp-c-black-mute);--vp-custom-block-info-code-bg: var(--vp-c-gray-dark-4);--vp-custom-block-tip-border: var(--vp-c-green-dimm-2);--vp-custom-block-tip-text: var(--vp-c-green-light);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-2);--vp-custom-block-warning-text: var(--vp-c-yellow-light);--vp-custom-block-danger-border: var(--vp-c-red-dimm-2);--vp-custom-block-danger-text: var(--vp-c-red-light)}:root{--vp-nav-height: var(--vp-nav-height-mobile);--vp-nav-height-mobile: 56px;--vp-nav-height-desktop: 72px}@media (min-width: 960px){:root{--vp-nav-height: var(--vp-nav-height-desktop)}}:root{--vp-sidebar-width: 272px}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:14px;color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:700}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.custom-block a:hover{opacity:.6}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider-light);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;opacity:0;transition:color .25s,opacity .25s}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{color:var(--vp-c-brand-dark)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:12px 16px}.vp-doc th{font-size:16px;font-weight:600;background-color:var(--vp-c-white-soft)}.dark .vp-doc th{background-color:var(--vp-c-black)}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider-light)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.vp-doc .custom-block a:hover{opacity:.6}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:var(--vp-code-block-bg)}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-bg-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:16px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc .highlight-lines{position:absolute;top:0;bottom:0;left:0;padding-top:16px;width:100%;line-height:var(--vp-code-line-height);font-family:var(--vp-font-family-mono);font-size:var(--vp-code-font-size);user-select:none;overflow:hidden}.vp-doc .highlight-lines .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc div[class*=language-].line-numbers-mode pre{padding-left:16px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-c-divider-dark-2);padding-top:16px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>span.copy{position:absolute;top:8px;right:8px;z-index:2;display:block;justify-content:center;align-items:center;border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-block-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:opacity .25s}.vp-doc [class*=language-]:hover>span.copy{opacity:1}.vp-doc [class*=language-]>span.copy:hover{background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>span.copy.copied,.vp-doc [class*=language-]>span.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>span.copy.copied:before,.vp-doc [class*=language-]>span.copy:hover.copied:before{position:relative;left:-65px;display:block;border-radius:4px 0 0 4px;padding-top:8px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]:before{position:absolute;top:6px;right:12px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-text-dark-3);transition:color .5s,opacity .5s}.vp-doc [class*=language-]:hover:before{opacity:0}.vp-doc [class~=language-c]:before{content:"c"}.vp-doc [class~=language-css]:before{content:"css"}.vp-doc [class~=language-go]:before{content:"go"}.vp-doc [class~=language-html]:before{content:"html"}.vp-doc [class~=language-java]:before{content:"java"}.vp-doc [class~=language-javascript]:before{content:"js"}.vp-doc [class~=language-js]:before{content:"js"}.vp-doc [class~=language-json]:before{content:"json"}.vp-doc [class~=language-jsx]:before{content:"jsx"}.vp-doc [class~=language-less]:before{content:"less"}.vp-doc [class~=language-markdown]:before{content:"md"}.vp-doc [class~=language-md]:before{content:"md"}.vp-doc [class~=language-php]:before{content:"php"}.vp-doc [class~=language-python]:before{content:"py"}.vp-doc [class~=language-py]:before{content:"py"}.vp-doc [class~=language-rb]:before{content:"rb"}.vp-doc [class~=language-ruby]:before{content:"rb"}.vp-doc [class~=language-rust]:before{content:"rust"}.vp-doc [class~=language-sass]:before{content:"sass"}.vp-doc [class~=language-scss]:before{content:"scss"}.vp-doc [class~=language-sh]:before{content:"sh"}.vp-doc [class~=language-bash]:before{content:"sh"}.vp-doc [class~=language-stylus]:before{content:"styl"}.vp-doc [class~=language-vue-html]:before{content:"template"}.vp-doc [class~=language-typescript]:before{content:"ts"}.vp-doc [class~=language-ts]:before{content:"ts"}.vp-doc [class~=language-tsx]:before{content:"tsx"}.vp-doc [class~=language-vue]:before{content:"vue"}.vp-doc [class~=language-yaml]:before{content:"yaml"}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-mute)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white-soft)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-black-mute)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPSkipLink[data-v-45f6ae50]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-45f6ae50]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-45f6ae50]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-45f6ae50]{top:14px;left:16px}}.VPBackdrop[data-v-0e94ce1c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:rgba(0,0,0,.6);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-0e94ce1c],.VPBackdrop.fade-leave-to[data-v-0e94ce1c]{opacity:0}.VPBackdrop.fade-leave-active[data-v-0e94ce1c]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-0e94ce1c]{display:none}}html:not(.dark) .VPImage.dark[data-v-73ae1788]{display:none}.dark .VPImage.light[data-v-73ae1788]{display:none}.VPNavBarTitle[data-v-6a6f7ff6]{flex-shrink:0;border-bottom:1px solid transparent}@media (min-width: 960px){.VPNavBarTitle.has-sidebar[data-v-6a6f7ff6]{margin-right:32px;width:calc(var(--vp-sidebar-width) - 64px);border-bottom-color:var(--vp-c-divider-light);background-color:var(--vp-c-bg-alt)}}.title[data-v-6a6f7ff6]{display:flex;align-items:center;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}.title[data-v-6a6f7ff6]:hover{opacity:.6}@media (min-width: 960px){.title[data-v-6a6f7ff6]{flex-shrink:0}}[data-v-6a6f7ff6] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.1.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:750px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:focus{outline:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"\bb "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:750px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:32px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-mute)}.icon[data-v-5704c677]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s}.VPNavBarMenuLink[data-v-8fba5fa8]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-8fba5fa8],.VPNavBarMenuLink[data-v-8fba5fa8]:hover{color:var(--vp-c-brand)}@media (min-width: 1280px){.VPNavBarMenuLink[data-v-8fba5fa8]{line-height:var(--vp-nav-height-desktop)}}.VPMenuGroup+.VPMenuLink[data-v-06b18c43]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.link[data-v-06b18c43]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-06b18c43]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-mute)}.dark .link[data-v-06b18c43]:hover{background-color:var(--vp-c-bg-soft)}.link.active[data-v-06b18c43]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-4bc84c0d]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider-light);padding:12px 12px 0}.VPMenuGroup[data-v-4bc84c0d]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-4bc84c0d]{margin-top:12px;border-top:1px solid var(--vp-c-divider-light)}.title[data-v-4bc84c0d]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);transition:color .25s}.VPMenu[data-v-e73581a2]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider-light);background-color:var(--vp-c-bg);box-shadow:var(--vp-shadow-3);transition:background-color .5s}.dark .VPMenu[data-v-e73581a2]{box-shadow:var(--vp-shadow-2)}.VPMenu[data-v-e73581a2] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e73581a2] .group+.group{border-top:1px solid var(--vp-c-divider-light);padding:11px 12px 12px}.VPMenu[data-v-e73581a2] .group:last-child{padding-bottom:0}.VPMenu[data-v-e73581a2] .group+.item{border-top:1px solid var(--vp-c-divider-light);padding:11px 16px 0}.VPMenu[data-v-e73581a2] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e73581a2] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e73581a2] .action{padding-left:24px}.VPFlyout[data-v-8dccea88]{position:relative}.VPFlyout[data-v-8dccea88]:hover{color:var(--vp-c-bland);transition:color .25s}.VPFlyout:hover .text[data-v-8dccea88]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-8dccea88]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-8dccea88]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-8dccea88]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-8dccea88],.button[aria-expanded=true]+.menu[data-v-8dccea88]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-8dccea88]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height-mobile);color:var(--vp-c-text-1);transition:color .5s}@media (min-width: 960px){.button[data-v-8dccea88]{height:var(--vp-nav-height-desktop)}}.text[data-v-8dccea88]{display:flex;align-items:center;line-height:var(--vp-nav-height-mobile);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 960px){.text[data-v-8dccea88]{line-height:var(--vp-nav-height-desktop)}}.option-icon[data-v-8dccea88]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-8dccea88]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-8dccea88]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-8dccea88]{position:absolute;top:calc(var(--vp-nav-height-mobile) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}@media (min-width: 960px){.menu[data-v-8dccea88]{top:calc(var(--vp-nav-height-desktop) / 2 + 20px)}}.VPNavBarMenu[data-v-a30758ee]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-a30758ee]{display:flex}}.VPNavBarTranslations[data-v-2ec6e3c4]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-2ec6e3c4]{display:flex;align-items:center}}.title[data-v-2ec6e3c4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-1dda4c9c]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-mute);transition:border-color .25s,background-color .25s}.VPSwitch[data-v-1dda4c9c]:hover{border-color:var(--vp-c-gray)}.check[data-v-1dda4c9c]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-white);box-shadow:var(--vp-shadow-1);transition:background-color .25s,transform .25s}.dark .check[data-v-1dda4c9c]{background-color:var(--vp-c-black)}.icon[data-v-1dda4c9c]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1dda4c9c] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-1dda4c9c] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-781f9d1b]{opacity:1}.moon[data-v-781f9d1b],.dark .sun[data-v-781f9d1b]{opacity:0}.dark .moon[data-v-781f9d1b]{opacity:1}.dark .VPSwitchAppearance[data-v-781f9d1b] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-311055f2]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-311055f2]{display:flex;align-items:center}}.VPSocialLink[data-v-48c45ef6]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-48c45ef6]:hover{color:var(--vp-c-text-1);transition:color .25s}.icon[data-v-48c45ef6]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-4dcbaf3a]{display:flex;flex-wrap:wrap;justify-content:center}.VPNavBarSocialLinks[data-v-0ae890f7]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0ae890f7]{display:flex;align-items:center}}.VPNavBarExtra[data-v-0562f5c0]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-0562f5c0]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-0562f5c0]{display:none}}.trans-title[data-v-0562f5c0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-0562f5c0],.item.social-links[data-v-0562f5c0]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-0562f5c0]{min-width:176px}.appearance-action[data-v-0562f5c0]{margin-right:-2px}.social-links-list[data-v-0562f5c0]{margin:-4px -8px}.VPNavBarHamburger[data-v-6f008456]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-6f008456]{display:none}}.container[data-v-6f008456]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-6f008456]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-6f008456]{top:6;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-6f008456]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-6f008456]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-6f008456]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-6f008456]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-6f008456],.VPNavBarHamburger.active:hover .middle[data-v-6f008456],.VPNavBarHamburger.active:hover .bottom[data-v-6f008456]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-6f008456],.middle[data-v-6f008456],.bottom[data-v-6f008456]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-6f008456]{top:0;left:0;transform:translate(0)}.middle[data-v-6f008456]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-6f008456]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-8856f192]{position:relative;border-bottom:1px solid var(--vp-c-divider-light);padding:0 8px 0 24px;height:var(--vp-nav-height-mobile);transition:border-color .5s,background-color .5s}@media (min-width: 768px){.VPNavBar[data-v-8856f192]{padding:0 32px}}@media (min-width: 960px){.VPNavBar[data-v-8856f192]{height:var(--vp-nav-height-desktop);border-bottom:0}.VPNavBar.has-sidebar .content[data-v-8856f192]{margin-right:-32px;padding-right:32px;-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNavBar.has-sidebar .content[data-v-8856f192]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNavBar.has-sidebar .content[data-v-8856f192]{background:rgba(255,255,255,.95)}.dark .VPNavBar.has-sidebar .content[data-v-8856f192]{background:rgba(36,36,36,.95)}}}.container[data-v-8856f192]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px)}.content[data-v-8856f192]{display:flex;justify-content:flex-end;align-items:center;flex-grow:1}.menu+.translations[data-v-8856f192]:before,.menu+.appearance[data-v-8856f192]:before,.menu+.social-links[data-v-8856f192]:before,.translations+.appearance[data-v-8856f192]:before,.appearance+.social-links[data-v-8856f192]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider-light);content:""}.menu+.appearance[data-v-8856f192]:before,.translations+.appearance[data-v-8856f192]:before{margin-right:16px}.appearance+.social-links[data-v-8856f192]:before{margin-left:16px}.social-links[data-v-8856f192]{margin-right:-8px}.VPNavScreenMenuLink[data-v-c866d100]{display:block;border-bottom:1px solid var(--vp-c-divider-light);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .5s,color .25s}.VPNavScreenMenuLink[data-v-c866d100]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-75257eac]{display:block;line-height:32px;font-size:13px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s;margin-left:12px}.VPNavScreenMenuGroupLink[data-v-75257eac]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-3e75c0f2]{display:block}.title[data-v-3e75c0f2]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-4e1ea8d2]{border-bottom:1px solid var(--vp-c-divider-light);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-4e1ea8d2]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-4e1ea8d2]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-4e1ea8d2]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-4e1ea8d2]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-4e1ea8d2]{transform:rotate(45deg)}.button[data-v-4e1ea8d2]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-4e1ea8d2]:hover{color:var(--vp-c-brand)}.button-icon[data-v-4e1ea8d2]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-4e1ea8d2]:first-child{padding-top:0}.group+.group[data-v-4e1ea8d2],.group+.item[data-v-4e1ea8d2]{padding-top:4px}.VPNavScreenAppearance[data-v-03f5dbc0]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft);transition:background-color .5s}.text[data-v-03f5dbc0]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPNavScreenTranslations[data-v-2820938e]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-2820938e]{height:auto}.title[data-v-2820938e]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-2820938e]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-2820938e]{margin-right:8px}.icon.chevron[data-v-2820938e]{margin-left:4px}.list[data-v-2820938e]{padding:4px 0 0 24px}.link[data-v-2820938e]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-031c365f]{position:fixed;top:var(--vp-nav-height-mobile);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-c-bg);overflow-y:auto;transition:background-color .5s}.VPNavScreen.fade-enter-active[data-v-031c365f],.VPNavScreen.fade-leave-active[data-v-031c365f]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-031c365f],.VPNavScreen.fade-leave-active .container[data-v-031c365f]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-031c365f],.VPNavScreen.fade-leave-to[data-v-031c365f]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-031c365f],.VPNavScreen.fade-leave-to .container[data-v-031c365f]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-031c365f]{display:none}}.container[data-v-031c365f]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-031c365f],.menu+.appearance[data-v-031c365f],.translations+.appearance[data-v-031c365f]{margin-top:24px}.menu+.social-links[data-v-031c365f]{margin-top:16px}.appearance+.social-links[data-v-031c365f]{margin-top:16px}.VPNav[data-v-0e356168]{position:relative;top:0;left:0;z-index:var(--vp-z-index-nav);width:100%}@media (min-width: 960px){.VPNav[data-v-0e356168]{position:fixed}.VPNav.no-sidebar[data-v-0e356168]{-webkit-backdrop-filter:saturate(50%) blur(8px);backdrop-filter:saturate(50%) blur(8px);background:rgba(255,255,255,.7)}.dark .VPNav.no-sidebar[data-v-0e356168]{background:rgba(36,36,36,.7)}@supports not (backdrop-filter: saturate(50%) blur(8px)){.VPNav.no-sidebar[data-v-0e356168]{background:rgba(255,255,255,.95)}.dark .VPNav.no-sidebar[data-v-0e356168]{background:rgba(36,36,36,.95)}}}.VPLocalNav[data-v-92b0f14a]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-divider-light);width:100%;background-color:var(--vp-c-bg);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-92b0f14a]{display:none}}.menu[data-v-92b0f14a]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-92b0f14a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-92b0f14a]{padding:0 32px}}.menu-icon[data-v-92b0f14a]{margin-right:8px;width:16px;height:16px;fill:currentColor}.top-link[data-v-92b0f14a]{display:block;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.top-link[data-v-92b0f14a]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.top-link[data-v-92b0f14a]{padding:12px 32px 11px}}.link[data-v-f53f775e]{display:block;padding:4px 0;color:var(--vp-c-text-2);transition:color .5s}.link[data-v-f53f775e]:hover{color:var(--vp-c-text-1)}.link.active[data-v-f53f775e]{color:var(--vp-c-brand)}.link[data-v-f53f775e] .icon{width:12px;height:12px;fill:currentColor}.link-text[data-v-f53f775e]{line-height:20px;font-size:14px;font-weight:500}.title[data-v-1f69a7ed]{display:flex;justify-content:space-between;align-items:flex-start;z-index:2}.title-text[data-v-1f69a7ed]{padding-top:6px;padding-bottom:6px;line-height:20px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.action[data-v-1f69a7ed]{display:none;position:relative;margin-right:-8px;border-radius:4px;width:32px;height:32px;color:var(--vp-c-text-3);transition:color .25s}.VPSidebarGroup.collapsible .action[data-v-1f69a7ed]{display:block}.title:hover .action[data-v-1f69a7ed]{color:var(--vp-c-text-2)}.icon[data-v-1f69a7ed]{position:absolute;top:8px;left:8px;width:16px;height:16px;fill:currentColor}.icon.minus[data-v-1f69a7ed]{opacity:1}.icon.plus[data-v-1f69a7ed],.VPSidebarGroup.collapsed .icon.minus[data-v-1f69a7ed]{opacity:0}.VPSidebarGroup.collapsed .icon.plus[data-v-1f69a7ed]{opacity:1}.items[data-v-1f69a7ed]{overflow:hidden}.VPSidebarGroup.collapsed .items[data-v-1f69a7ed]{margin-bottom:-22px;max-height:0}@media (min-width: 960px){.VPSidebarGroup.collapsed .items[data-v-1f69a7ed]{margin-bottom:-14px}}.VPSidebar[data-v-55e4c7db]{position:fixed;top:0;bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-c-bg);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease}.VPSidebar.open[data-v-55e4c7db]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-55e4c7db]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-55e4c7db]{z-index:1;padding-top:var(--vp-nav-height-desktop);padding-bottom:128px;max-width:100%;width:var(--vp-sidebar-width);background-color:var(--vp-c-bg-alt);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-55e4c7db]{padding-left:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2);width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.nav[data-v-55e4c7db]{outline:0}.group+.group[data-v-55e4c7db]{margin-top:32px;border-top:1px solid var(--vp-c-divider-light);padding-top:10px}@media (min-width: 960px){.group[data-v-55e4c7db]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}.group+.group[data-v-55e4c7db]{margin-top:24px}}.NotFound[data-v-689a417a]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-689a417a]{padding:96px 32px 168px}}.code[data-v-689a417a]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-689a417a]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-689a417a]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-689a417a]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-689a417a]{padding-top:20px}.link[data-v-689a417a]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-689a417a]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPButton[data-v-be07d988]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:500;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-be07d988]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-be07d988]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-be07d988]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-be07d988]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-be07d988]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-be07d988]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-be07d988]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-be07d988]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-be07d988]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-be07d988]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-be07d988]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-be07d988]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-5d590baf]{margin-top:calc(var(--vp-nav-height) * -1);padding:calc(var(--vp-nav-height) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-5d590baf]{padding:calc(var(--vp-nav-height) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-5d590baf]{padding:calc(var(--vp-nav-height) + 80px) 64px 64px}}.container[data-v-5d590baf]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-5d590baf]{flex-direction:row}}.main[data-v-5d590baf]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-5d590baf]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-5d590baf]{text-align:left}}@media (min-width: 960px){.main[data-v-5d590baf]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-5d590baf]{max-width:592px}}.name[data-v-5d590baf],.text[data-v-5d590baf]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-5d590baf],.VPHero.has-image .text[data-v-5d590baf]{margin:0 auto}.name[data-v-5d590baf]{color:var(--vp-home-hero-name-color)}.clip[data-v-5d590baf]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-5d590baf],.text[data-v-5d590baf]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-5d590baf],.text[data-v-5d590baf]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-5d590baf],.VPHero.has-image .text[data-v-5d590baf]{margin:0}}.tagline[data-v-5d590baf]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-5d590baf]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-5d590baf]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-5d590baf]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-5d590baf]{margin:0}}.actions[data-v-5d590baf]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-5d590baf]{justify-content:center}@media (min-width: 640px){.actions[data-v-5d590baf]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-5d590baf]{justify-content:flex-start}}.action[data-v-5d590baf]{flex-shrink:0;padding:6px}.image[data-v-5d590baf]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-5d590baf]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-5d590baf]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-5d590baf]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-5d590baf]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-5d590baf]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-5d590baf]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-5d590baf]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-5d590baf]{width:320px;height:320px}}[data-v-5d590baf] .image-src{position:absolute;top:50%;left:50%;max-width:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-5d590baf] .image-src{max-width:256px}}@media (min-width: 960px){[data-v-5d590baf] .image-src{max-width:320px}}.VPFeature[data-v-3aa4af24]{border:1px solid var(--vp-c-bg-soft);border-radius:12px;padding:24px;height:100%;background-color:var(--vp-c-bg-soft)}.icon[data-v-3aa4af24]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-gray-light-4);width:48px;height:48px;font-size:24px}.dark .icon[data-v-3aa4af24]{background-color:var(--vp-c-bg)}.title[data-v-3aa4af24]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-3aa4af24]{padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPFeatures[data-v-1812ea91]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-1812ea91]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-1812ea91]{padding:0 64px}}.container[data-v-1812ea91]{margin:0 auto;max-width:1152px}.items[data-v-1812ea91]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-1812ea91]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-1812ea91],.item.grid-4[data-v-1812ea91],.item.grid-6[data-v-1812ea91]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-1812ea91],.item.grid-4[data-v-1812ea91]{width:50%}.item.grid-3[data-v-1812ea91],.item.grid-6[data-v-1812ea91]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-1812ea91]{width:25%}}.VPHome[data-v-3e80d098]{padding-bottom:96px}.VPHome[data-v-3e80d098] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-3e80d098]{padding-bottom:128px}}.VPDocAsideOutline[data-v-51e5a8ce]{display:none}.VPDocAsideOutline.has-outline[data-v-51e5a8ce]{display:block}.content[data-v-51e5a8ce]{position:relative;border-left:1px solid var(--vp-c-divider-light);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-51e5a8ce]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-51e5a8ce]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.outline-link[data-v-51e5a8ce]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-51e5a8ce]:hover,.outline-link.active[data-v-51e5a8ce]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-51e5a8ce]{padding-left:13px}.root[data-v-51e5a8ce]{position:relative;z-index:1}.VPDocAside[data-v-779d834d]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-779d834d]{flex-grow:1}.VPDocAside[data-v-779d834d] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-779d834d] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-779d834d] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-0ce8c960]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-0ce8c960]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-04568844]{margin-top:64px}.edit-info[data-v-04568844]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-04568844]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-04568844]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-04568844]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-04568844]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-04568844]{border-top:1px solid var(--vp-c-divider-light);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-04568844]{display:flex}}.pager.has-prev[data-v-04568844]{padding-top:8px}@media (min-width: 640px){.pager[data-v-04568844]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-04568844]{padding-top:0;padding-left:16px}}.pager-link[data-v-04568844]{display:block;border:1px solid var(--vp-c-divider-light);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-04568844]:hover{border-color:var(--vp-c-brand)}.pager-link:hover .title[data-v-04568844]{color:var(--vp-c-brand-dark)}.pager-link.next[data-v-04568844]{margin-left:auto;text-align:right}.desc[data-v-04568844]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-04568844]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDoc[data-v-79ca2460]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-79ca2460]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-79ca2460]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-79ca2460]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .aside[data-v-79ca2460]{display:block}.VPDoc:not(.has-sidebar) .content[data-v-79ca2460]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-79ca2460]{display:flex;justify-content:center}.VPDoc .aside[data-v-79ca2460]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-79ca2460]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-79ca2460]{max-width:1104px}}.container[data-v-79ca2460]{margin:0 auto;width:100%}.aside[data-v-79ca2460]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.aside-container[data-v-79ca2460]{position:sticky;top:0;margin-top:calc(var(--vp-nav-height-desktop) * -1 - 32px);padding-top:calc(var(--vp-nav-height-desktop) + 32px);height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-79ca2460]::-webkit-scrollbar{display:none}.aside-curtain[data-v-79ca2460]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-79ca2460]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height-desktop) + 32px));padding-bottom:32px}.content[data-v-79ca2460]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-79ca2460]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-79ca2460]{order:1;margin:0;min-width:640px}}.content-container[data-v-79ca2460]{margin:0 auto;max-width:688px}.VPContent[data-v-a4c57a06]{flex-grow:1;flex-shrink:0;margin:0 auto;width:100%}.VPContent.is-home[data-v-a4c57a06]{width:100%;max-width:100%}@media (min-width: 960px){.VPContent[data-v-a4c57a06]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-a4c57a06]{margin:0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-a4c57a06]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-5b331722]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-divider-light);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-5b331722]{display:none}@media (min-width: 768px){.VPFooter[data-v-5b331722]{padding:32px}}.container[data-v-5b331722]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-5b331722],.copyright[data-v-5b331722]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-5b331722]{order:2}.copyright[data-v-5b331722]{order:1}.Layout[data-v-6b5fd0a9]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-7938d153]{border-top:1px solid var(--vp-c-divider-light);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-7938d153]{margin:0 auto;max-width:1152px}.love[data-v-7938d153]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-7938d153]{width:28px;height:28px;fill:currentColor}.message[data-v-7938d153]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-7938d153]{padding-top:32px}.action[data-v-7938d153]{padding-top:40px;text-align:center}.VPTeamPage[data-v-6a9d4b4a]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-6a9d4b4a]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-6a9d4b4a-s],.VPTeamMembers+.VPTeamPageSection[data-v-6a9d4b4a-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-6a9d4b4a-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-6a9d4b4a-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-6a9d4b4a-s],.VPTeamMembers+.VPTeamPageSection[data-v-6a9d4b4a-s]{margin-top:96px}}.VPTeamMembers[data-v-6a9d4b4a-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-6a9d4b4a-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-6a9d4b4a-s]{padding:0 64px}}.VPTeamPageTitle[data-v-c3606700]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-c3606700]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-c3606700]{padding:80px 64px 48px}}.title[data-v-c3606700]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-c3606700]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-c3606700]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-c3606700]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-897fac7c]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-897fac7c]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-897fac7c]{padding:0 64px}}.title[data-v-897fac7c]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-897fac7c]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider-light)}.title-text[data-v-897fac7c]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-897fac7c]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-897fac7c]{padding-top:40px}.VPTeamMembersItem[data-v-8225bc5a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-8225bc5a]{padding:32px}.VPTeamMembersItem.small .data[data-v-8225bc5a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-8225bc5a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-8225bc5a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-8225bc5a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-8225bc5a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-8225bc5a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-8225bc5a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-8225bc5a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-8225bc5a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-8225bc5a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-8225bc5a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-8225bc5a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-8225bc5a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-8225bc5a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-8225bc5a]{text-align:center}.avatar[data-v-8225bc5a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-8225bc5a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-8225bc5a]{margin:0;font-weight:600}.affiliation[data-v-8225bc5a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-8225bc5a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-8225bc5a]:hover{color:var(--vp-c-brand)}.desc[data-v-8225bc5a]{margin:0 auto}.links[data-v-8225bc5a]{display:flex;justify-content:center;height:56px}.sponsor-link[data-v-8225bc5a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sponsor-link[data-v-8225bc5a]:hover,.sponsor-link[data-v-8225bc5a]:focus{outline:none;color:var(--vp-c-text-dark-1);background-color:var(--vp-c-sponsor)}.sponsor-icon[data-v-8225bc5a]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-ab0b5e38]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-ab0b5e38]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-ab0b5e38]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-ab0b5e38]{max-width:876px}.VPTeamMembers.medium .container[data-v-ab0b5e38]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-ab0b5e38]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-ab0b5e38]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-ab0b5e38]{max-width:760px}.container[data-v-ab0b5e38]{display:grid;gap:24px;margin:0 auto;max-width:1152px}main[data-v-7b43e306]{text-align:center}.mockup[data-v-7b43e306]{max-width:600px;height:500px;margin:auto}.heading[data-v-7b43e306]{font-size:42px;line-height:1.2;padding:32px;font-weight:700;color:var(--vp-c-brand)}.tagline[data-v-7b43e306]{font-size:24px;padding:16px}.buttons[data-v-7b43e306]{padding:32px}.buttons__button[data-v-7b43e306]{display:inline-block;padding:8px 16px;border-radius:4px;background-color:var(--vp-c-brand);border:1px solid var(--vp-c-brand);color:var(--vp-c-white);text-decoration:none;font-size:16px;margin:0 8px}.buttons__button--secondary[data-v-7b43e306]{background-color:var(--vp-c-gray-light-4);color:var(--vp-c-black);border:1px solid var(--vp-c-divider-light-2)} diff --git a/guide.html b/guide.html new file mode 100644 index 0000000..5a474aa --- /dev/null +++ b/guide.html @@ -0,0 +1,96 @@ + + + + + + Guide | Vue 3D Mockup + + + + + + + + + +
Skip to content
On this page

Guide

Installation

npm install vue-three-d-mockup
+

Usage

Simple example

screen.png is a static asset in the public folder.

<template>
+  <Mockup screen="screen.png" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+</script>
+

Using assets as the screen

  • In vite powered projects

<template>
+  <Mockup :screen="screenImage" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+import screenImage from './assets/screen.png';
+</script>
+
  • In vue-cli powered projects

<template>
+  <Mockup :screen="require('./assets/screen.png')" />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+</script>
+

Multiple phones

<template>
+  <Mockup 
+    :screen="[screenImage, screenImage]"
+    :position="[
+      {
+        x: -50
+      },
+      {
+        x: 50
+      },
+    ]"
+    :rotation="[{}, {
+      y: -0.3,
+      z: -0.06,
+    }]" 
+  />
+</template>
+
+<script setup>
+import Mockup from 'vue-three-d-mockup';
+import screenImage from './assets/screen.png';
+</script>
+

Video

<template>
+  <Mockup 
+    v-if="vidReady"
+    :screen="videoElement"
+  />
+
+  <video
+    :src="screenVideo"
+    ref="videoElement"
+    @canplay="vidReady = true"
+    muted
+    autoplay
+    loop
+    style="
+      position: fixed;
+      top: 0;
+      left: 0;
+      visibility: hidden;
+    "
+  ></video>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import Mockup from 'vue-three-d-mockup';
+import screenVideo from './assets/screen.mp4';
+
+const videoElement = ref(null);
+const vidReady = ref(false);
+</script>
+

Avaliable props

PropTypeRequiredDefaultDescription
screenString | Element | ArraytruenonePath to an image that will be displayed on the phones screen or the <video> element displayed on the phones screen. When using the latter there are caveats. Can also be an array of any of the options above.
lightClrStringfalse"white"Color of the light as a CSS-style string.
phoneClrStringfalse"white"Color of the phone as a CSS-style string.
positionObject | Arrayfalse{ x: 0, y: 0, z: 0 }The position of the phone. Can also be an array if multiple screens specified.
rotationObject | Arrayfalse{ x: -0.2, y: 0.3, z: 0.06 }The orientation of the phone described in rotation values arround the 3 axes. Can also be an array if multiple screens specified.

Caveats

  • The screen prop is unreactive, so when using it as a video it's important to only render the Mockup element when the video is loaded. Check out the examples above to see how to do this.
  • The video on the model will not be shown if the original <video> element is hidden with display: none, so use visibility: hidden instead.
  • The video may not be autoplaying if the original <video> element is scrolled off screen.
  • Even with the mentioned above workarounds, the video may not be working in Safari.

Released under the GPL-3.0 license.

+ + + + + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json new file mode 100644 index 0000000..425d5ca --- /dev/null +++ b/hashmap.json @@ -0,0 +1 @@ +{"guide.md":"77d8480e","index.md":"e8d327de"} diff --git a/index.html b/index.html new file mode 100644 index 0000000..9041941 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + + + + Vue 3D Mockup | Vue 3D Mockup + + + + + + + + + +
Skip to content

Vue 3D Mockup

Create interactive 3D mockups with ease.

Released under the GPL-3.0 license.

+ + + + + \ No newline at end of file